@selvajs/selva 4.6.21-beta.0 → 4.7.0-beta.2
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/{BRbaYEL5.js → 9i3rf9gV.js} +1 -1
- package/build/client/_app/immutable/chunks/9i3rf9gV.js.br +0 -0
- package/build/client/_app/immutable/chunks/9i3rf9gV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{zOoVG74V.js → BUuRpU5m.js} +1 -1
- package/build/client/_app/immutable/chunks/BUuRpU5m.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUuRpU5m.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{COYKudi0.js → C1lje54W.js} +1 -1
- package/build/client/_app/immutable/chunks/C1lje54W.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1lje54W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{I2TM0do6.js → CNzANXEE.js} +1 -1
- package/build/client/_app/immutable/chunks/CNzANXEE.js.br +0 -0
- package/build/client/_app/immutable/chunks/CNzANXEE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CYwmPsLn.js → CZrHjFO_.js} +1 -1
- package/build/client/_app/immutable/chunks/CZrHjFO_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZrHjFO_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B2u4e1Y9.js → CtQi8B_W.js} +5 -5
- package/build/client/_app/immutable/chunks/CtQi8B_W.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtQi8B_W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0ZkELYt.js +2 -0
- package/build/client/_app/immutable/chunks/D0ZkELYt.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0ZkELYt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvWy04ZP.js +2 -0
- package/build/client/_app/immutable/chunks/DvWy04ZP.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvWy04ZP.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CRaXT8K-.js → app.CHLvYXSV.js} +2 -2
- package/build/client/_app/immutable/entry/app.CHLvYXSV.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CHLvYXSV.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.x7J2Q5dO.js +1 -0
- package/build/client/_app/immutable/entry/start.x7J2Q5dO.js.br +2 -0
- package/build/client/_app/immutable/entry/start.x7J2Q5dO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DPMP9Es7.js → 1.DHaPDVfK.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DHaPDVfK.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DHaPDVfK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.O0oWpOpl.js +3 -0
- package/build/client/_app/immutable/nodes/10.O0oWpOpl.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.O0oWpOpl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.BxhrIetk.js → 11.DhYj36Fk.js} +1 -1
- package/build/client/_app/immutable/nodes/11.DhYj36Fk.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DhYj36Fk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.bzJyaCKt.js → 13.CfJOch3J.js} +1 -1
- package/build/client/_app/immutable/nodes/13.CfJOch3J.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CfJOch3J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.XVGDZn7V.js → 14.DisTiyB2.js} +1 -1
- package/build/client/_app/immutable/nodes/14.DisTiyB2.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DisTiyB2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{15.Ds7J6ry6.js → 15.A437nu0T.js} +1 -1
- package/build/client/_app/immutable/nodes/15.A437nu0T.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.A437nu0T.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.C6HKDHv3.js → 16.B9S-bV_g.js} +1 -1
- package/build/client/_app/immutable/nodes/16.B9S-bV_g.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.B9S-bV_g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.BxjH0QZF.js → 17.BRN_aGIk.js} +1 -1
- package/build/client/_app/immutable/nodes/17.BRN_aGIk.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.BRN_aGIk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.BU2Lw57i.js → 19.DwCFMX9M.js} +1 -1
- package/build/client/_app/immutable/nodes/19.DwCFMX9M.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DwCFMX9M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.D9dN-poH.js → 2.DP5fYr4M.js} +1 -1
- package/build/client/_app/immutable/nodes/2.DP5fYr4M.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DP5fYr4M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.nfHXDL2z.js +5414 -0
- package/build/client/_app/immutable/nodes/20.nfHXDL2z.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.nfHXDL2z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.qpo7v5r_.js → 21.OD5sg0NU.js} +1 -1
- package/build/client/_app/immutable/nodes/21.OD5sg0NU.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.OD5sg0NU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CNjTTgpk.js +16 -0
- package/build/client/_app/immutable/nodes/23.CNjTTgpk.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.CNjTTgpk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.BSJH1lHT.js → 24.CEgabT6P.js} +1 -1
- package/build/client/_app/immutable/nodes/24.CEgabT6P.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.CEgabT6P.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.BKQucFUA.js → 27.CRIaBHAx.js} +1 -1
- package/build/client/_app/immutable/nodes/27.CRIaBHAx.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CRIaBHAx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.BleEhT0J.js → 28.BC6m2tWk.js} +1 -1
- package/build/client/_app/immutable/nodes/28.BC6m2tWk.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BC6m2tWk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.fAbDo5Et.js → 29.BFYPdg-j.js} +1 -1
- package/build/client/_app/immutable/nodes/29.BFYPdg-j.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BFYPdg-j.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.XubMG-dn.js → 3.J7HfMiHi.js} +1 -1
- package/build/client/_app/immutable/nodes/3.J7HfMiHi.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.J7HfMiHi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.DRrc_hLr.js → 30.60AXFjfN.js} +1 -1
- package/build/client/_app/immutable/nodes/30.60AXFjfN.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.60AXFjfN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.C77UuNpH.js → 5.CLnvzJQ1.js} +1 -1
- package/build/client/_app/immutable/nodes/5.CLnvzJQ1.js.br +1 -0
- package/build/client/_app/immutable/nodes/5.CLnvzJQ1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.B23L8hA_.js → 6.8mUhfqtj.js} +1 -1
- package/build/client/_app/immutable/nodes/6.8mUhfqtj.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.8mUhfqtj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.BZj0oAjH.js → 7.Bu0PYCkD.js} +1 -1
- package/build/client/_app/immutable/nodes/7.Bu0PYCkD.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Bu0PYCkD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.CGy_fUC4.js → 8.CzmdM7pu.js} +1 -1
- package/build/client/_app/immutable/nodes/8.CzmdM7pu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CzmdM7pu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.BpEiOuN0.js → 9.BogAwqgH.js} +1 -1
- package/build/client/_app/immutable/nodes/9.BogAwqgH.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BogAwqgH.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/{access.server.js-D99g5hZd.js → access.server.js-_nJWuQcN.js} +66 -51
- package/build/server/chunks/chunks/access.server.js-_nJWuQcN.js.map +1 -0
- package/build/server/chunks/chunks/{admin-auth.server.js-hCWF6Pqg.js → admin-auth.server.js-CitjWnKM.js} +53 -31
- package/build/server/chunks/chunks/admin-auth.server.js-CitjWnKM.js.map +1 -0
- package/build/server/chunks/chunks/{api-errors.js-yRMzxqNi.js → api-errors.js-DlfcfPJs.js} +4 -4
- package/build/server/chunks/chunks/{api-errors.js-yRMzxqNi.js.map → api-errors.js-DlfcfPJs.js.map} +1 -1
- package/build/server/chunks/chunks/{auth-bootstrap.server.js-BpQr_I_2.js → auth-bootstrap.server.js-S-F5QI4m.js} +3 -3
- package/build/server/chunks/chunks/{auth-bootstrap.server.js-BpQr_I_2.js.map → auth-bootstrap.server.js-S-F5QI4m.js.map} +1 -1
- package/build/server/chunks/chunks/{bootHealth.server.js-CxNJCaGf.js → bootHealth.server.js-CvLSuL2x.js} +27 -4
- package/build/server/chunks/chunks/bootHealth.server.js-CvLSuL2x.js.map +1 -0
- package/build/server/chunks/chunks/{clientCache.server.js-nl8vnalG.js → clientCache.server.js-BS8-NdiI.js} +21 -5
- package/build/server/chunks/chunks/clientCache.server.js-BS8-NdiI.js.map +1 -0
- package/build/server/chunks/chunks/computeLimits.js-CQh4jXlX.js +28 -0
- package/build/server/chunks/chunks/computeLimits.js-CQh4jXlX.js.map +1 -0
- package/build/server/chunks/chunks/{context.js-D8E0GFTw.js → context.js-DsQGiS2x.js} +4 -1
- package/build/server/chunks/chunks/context.js-DsQGiS2x.js.map +1 -0
- package/build/server/chunks/chunks/{evictChangedServers.js-AKiDolw-.js → evictChangedServers.js-R3UCE6wP.js} +2 -2
- package/build/server/chunks/chunks/{evictChangedServers.js-AKiDolw-.js.map → evictChangedServers.js-R3UCE6wP.js.map} +1 -1
- package/build/server/chunks/chunks/{internal2.js-CNimHS8p.js → internal2.js-BBcEKa-m.js} +3 -3
- package/build/server/chunks/chunks/{internal2.js-CNimHS8p.js.map → internal2.js-BBcEKa-m.js.map} +1 -1
- package/build/server/chunks/chunks/{org-members.server.js-HahiM88D.js → org-members.server.js-DskaqUJo.js} +2 -2
- package/build/server/chunks/chunks/{org-members.server.js-HahiM88D.js.map → org-members.server.js-DskaqUJo.js.map} +1 -1
- package/build/server/chunks/chunks/{package.js-CGjshiZJ.js → package.js-Cl0z1gce.js} +2 -2
- package/build/server/chunks/chunks/package.js-Cl0z1gce.js.map +1 -0
- package/build/server/chunks/chunks/{permissions-compat.server.js-BfoBZYSH.js → permissions-compat.server.js-DNsLyriU.js} +2 -2
- package/build/server/chunks/chunks/{permissions-compat.server.js-BfoBZYSH.js.map → permissions-compat.server.js-DNsLyriU.js.map} +1 -1
- package/build/server/chunks/chunks/{permissions.server.js-B9lpLFEj.js → permissions.server.js-C3_SFjUh.js} +2 -2
- package/build/server/chunks/chunks/{permissions.server.js-B9lpLFEj.js.map → permissions.server.js-C3_SFjUh.js.map} +1 -1
- package/build/server/chunks/chunks/{providers.server.js-D0hpk-aq.js → providers.server.js-CIHOepKv.js} +152 -34
- package/build/server/chunks/chunks/providers.server.js-CIHOepKv.js.map +1 -0
- package/build/server/chunks/chunks/redirect.js-1CZ30qn2.js +9 -0
- package/build/server/chunks/chunks/redirect.js-1CZ30qn2.js.map +1 -0
- package/build/server/chunks/chunks/{resolve.server.js-CtUK_9yC.js → resolve.server.js-Dg1o2vnd.js} +4 -4
- package/build/server/chunks/chunks/{resolve.server.js-CtUK_9yC.js.map → resolve.server.js-Dg1o2vnd.js.map} +1 -1
- package/build/server/chunks/chunks/selfUpdate.server.js-CXejyqIT.js +109 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-CXejyqIT.js.map +1 -0
- package/build/server/chunks/chunks/solve-cache-key.js-BIwJfBG9.js +320 -0
- package/build/server/chunks/chunks/solve-cache-key.js-BIwJfBG9.js.map +1 -0
- package/build/server/chunks/chunks/token-codec.js-1RPNe2RW.js +32 -0
- package/build/server/chunks/chunks/token-codec.js-1RPNe2RW.js.map +1 -0
- package/build/server/chunks/chunks/{token.server.js-q3fv9Fqo.js → token.server.js-DbTfFk9r.js} +10 -6
- package/build/server/chunks/chunks/token.server.js-DbTfFk9r.js.map +1 -0
- package/build/server/chunks/chunks/{token2.server.js-Cqw1dJj-.js → token2.server.js-Cjb4XaWC.js} +10 -6
- package/build/server/chunks/chunks/token2.server.js-Cjb4XaWC.js.map +1 -0
- package/build/server/chunks/chunks/update-outcome.js-mUyfVCnt.js +99 -0
- package/build/server/chunks/chunks/update-outcome.js-mUyfVCnt.js.map +1 -0
- package/build/server/chunks/chunks/{utils4.js-BRotGwxx.js → utils4.js-8SHxuGTr.js} +2 -2
- package/build/server/chunks/chunks/{utils4.js-BRotGwxx.js.map → utils4.js-8SHxuGTr.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-9SFgd7Dh.js → _server.ts.js-CR_1eCgH.js} +12 -9
- package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-9SFgd7Dh.js.map → _server.ts.js-CR_1eCgH.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/{_server.ts.js-nqqXR4_e.js → _server.ts.js-D1UFM_o6.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/{_server.ts.js-nqqXR4_e.js.map → _server.ts.js-D1UFM_o6.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/{_server.ts.js-a2K9SJfi.js → _server.ts.js-DdzXkztc.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/{_server.ts.js-a2K9SJfi.js.map → _server.ts.js-DdzXkztc.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/{_server.ts.js-BAhINzFq.js → _server.ts.js-CqdBKOC6.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/{_server.ts.js-BAhINzFq.js.map → _server.ts.js-CqdBKOC6.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/{_server.ts.js-DYD3g-28.js → _server.ts.js-Bi3NbLd3.js} +11 -7
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/{_server.ts.js-DYD3g-28.js.map → _server.ts.js-Bi3NbLd3.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/{_server.ts.js-PhwONmey.js → _server.ts.js-C3ZwVpyg.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/orgs/{_server.ts.js-PhwONmey.js.map → _server.ts.js-C3ZwVpyg.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/{_server.ts.js-DVXfLqfN.js → _server.ts.js-CAe8T4G6.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/{_server.ts.js-DVXfLqfN.js.map → _server.ts.js-CAe8T4G6.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/{_server.ts.js-C3Gcr9vO.js → _server.ts.js-DHYHT1N8.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/{_server.ts.js-C3Gcr9vO.js.map → _server.ts.js-DHYHT1N8.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/{_server.ts.js-8rwkvJsL.js → _server.ts.js-Cgt7iGfE.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/{_server.ts.js-8rwkvJsL.js.map → _server.ts.js-Cgt7iGfE.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/{_server.ts.js-BTgoWufU.js → _server.ts.js-BFi1Di59.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/projects/{_server.ts.js-BTgoWufU.js.map → _server.ts.js-BFi1Di59.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/health/{_server.ts.js-CQdxoaBS.js → _server.ts.js-Br7kd03s.js} +35 -6
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-Br7kd03s.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/{_server.ts.js-DFacQgP7.js → _server.ts.js-ufKMuphM.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/{_server.ts.js-DFacQgP7.js.map → _server.ts.js-ufKMuphM.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/update/{_server.ts.js-y3dgQz-R.js → _server.ts.js-D-IGlEji.js} +43 -30
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-D-IGlEji.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/{_server.ts.js-BEGaGEwg.js → _server.ts.js-7Efk1xkU.js} +8 -8
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/{_server.ts.js-BEGaGEwg.js.map → _server.ts.js-7Efk1xkU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/{_server.ts.js-CGwcR-7k.js → _server.ts.js-4UrDw7Q3.js} +6 -6
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/{_server.ts.js-CGwcR-7k.js.map → _server.ts.js-4UrDw7Q3.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/admin/api/users/{_server.ts.js-D-z-Kl_c.js → _server.ts.js-B9ZWJoST.js} +9 -9
- package/build/server/chunks/entries/endpoints/admin/api/users/{_server.ts.js-D-z-Kl_c.js.map → _server.ts.js-B9ZWJoST.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/compute/{_server.ts.js-DkyT3FO6.js → _server.ts.js-D9qvgnX7.js} +287 -198
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-D9qvgnX7.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-BmYC9zZb.js → _server.ts.js-CoS51dOD.js} +12 -8
- package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-BmYC9zZb.js.map → _server.ts.js-CoS51dOD.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/{_server.ts.js--cRkjXHi.js → _server.ts.js-D7jS25IN.js} +11 -7
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/{_server.ts.js--cRkjXHi.js.map → _server.ts.js-D7jS25IN.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/{_server.ts.js-Dz0exqZ1.js → _server.ts.js-5hlsFhI1.js} +11 -7
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/{_server.ts.js-Dz0exqZ1.js.map → _server.ts.js-5hlsFhI1.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-CgM8FSl0.js → _server.ts.js-CRMcPOgH.js} +11 -7
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-CgM8FSl0.js.map → _server.ts.js-CRMcPOgH.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/{_server.ts.js-BQX0WanC.js → _server.ts.js-C8-AAq8y.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/{_server.ts.js-BQX0WanC.js.map → _server.ts.js-C8-AAq8y.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/{_server.ts.js-BsV3i0Cq.js → _server.ts.js-LV0ZGJh9.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/{_server.ts.js-BsV3i0Cq.js.map → _server.ts.js-LV0ZGJh9.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/{_server.ts.js-DWFprR5Z.js → _server.ts.js-OUvpfSN4.js} +8 -7
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/{_server.ts.js-DWFprR5Z.js.map → _server.ts.js-OUvpfSN4.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/{_server.ts.js-DA3K2FgH.js → _server.ts.js-BJxBKsrU.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/{_server.ts.js-DA3K2FgH.js.map → _server.ts.js-BJxBKsrU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/{_server.ts.js-SHjs_zm9.js → _server.ts.js-BaHW7TEs.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/{_server.ts.js-SHjs_zm9.js.map → _server.ts.js-BaHW7TEs.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/definitions/{_server.ts.js-ycJ8puIN.js → _server.ts.js-CBMi-KUD.js} +11 -7
- package/build/server/chunks/entries/endpoints/api/definitions/{_server.ts.js-ycJ8puIN.js.map → _server.ts.js-CBMi-KUD.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/diag/throughput/{_server.ts.js-BdF3kn__.js → _server.ts.js-C98KkHLg.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/diag/throughput/{_server.ts.js-BdF3kn__.js.map → _server.ts.js-C98KkHLg.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/files/_...path_/{_server.ts.js-C26jiO43.js → _server.ts.js-CeTV6qVK.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/files/_...path_/{_server.ts.js-C26jiO43.js.map → _server.ts.js-CeTV6qVK.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-CoRl_nbA.js → _server.ts.js-7eclLbhJ.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-CoRl_nbA.js.map → _server.ts.js-7eclLbhJ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/invites/_id_/{_server.ts.js-CvAeI7gV.js → _server.ts.js-DNh5594J.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/invites/_id_/{_server.ts.js-CvAeI7gV.js.map → _server.ts.js-DNh5594J.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/invites/{_server.ts.js-Cd0V4sta.js → _server.ts.js-DGKHjtw8.js} +9 -8
- package/build/server/chunks/entries/endpoints/api/invites/{_server.ts.js-Cd0V4sta.js.map → _server.ts.js-DGKHjtw8.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/{_server.ts.js-BThetmba.js → _server.ts.js-CZ50nT84.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/{_server.ts.js-BThetmba.js.map → _server.ts.js-CZ50nT84.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/org/compute/{_server.ts.js-B4lGohx2.js → _server.ts.js-Bf1qSz52.js} +12 -9
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-Bf1qSz52.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/{_server.ts.js-BcW-ZH-q.js → _server.ts.js-8PZedKem.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/{_server.ts.js-BcW-ZH-q.js.map → _server.ts.js-8PZedKem.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/{_server.ts.js-bIB33ABF.js → _server.ts.js-C6v2wqYB.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/projects/_id_/{_server.ts.js-bIB33ABF.js.map → _server.ts.js-C6v2wqYB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/{_server.ts.js-B1AwpUGi.js → _server.ts.js-B3WPTw6C.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/{_server.ts.js-B1AwpUGi.js.map → _server.ts.js-B3WPTw6C.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/{_server.ts.js-DMl495J4.js → _server.ts.js-CY3ngc5p.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/{_server.ts.js-DMl495J4.js.map → _server.ts.js-CY3ngc5p.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/{_server.ts.js-DFJbS6RF.js → _server.ts.js-DMAeVu3R.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/{_server.ts.js-DFJbS6RF.js.map → _server.ts.js-DMAeVu3R.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/projects/{_server.ts.js-Gcc5eHXJ.js → _server.ts.js-D32BzObk.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/projects/{_server.ts.js-Gcc5eHXJ.js.map → _server.ts.js-D32BzObk.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/{_server.ts.js-B7kvAKyV.js → _server.ts.js-DREl2Sbq.js} +12 -7
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-DREl2Sbq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/{_server.ts.js-3yXXN2SO.js → _server.ts.js-CmIWOQ81.js} +12 -7
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-CmIWOQ81.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/{_server.ts.js-1z1P1Ihi.js → _server.ts.js-D0O8rZwg.js} +5 -5
- package/build/server/chunks/entries/endpoints/auth/supabase/start/{_server.ts.js-1z1P1Ihi.js.map → _server.ts.js-D0O8rZwg.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-OUXv4_qA.js → hooks.server.js-DSn6v_nP.js} +88 -40
- package/build/server/chunks/entries/hooks.server.js-DSn6v_nP.js.map +1 -0
- package/build/server/chunks/entries/pages/{_layout.server.ts.js-Cu7ejVMb.js → _layout.server.ts.js-Cts38lSM.js} +2 -2
- package/build/server/chunks/entries/pages/{_layout.server.ts.js-Cu7ejVMb.js.map → _layout.server.ts.js-Cts38lSM.js.map} +1 -1
- package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-koO2loGE.js → _page.server.ts.js-BIr1NoEK.js} +5 -5
- package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-koO2loGE.js.map → _page.server.ts.js-BIr1NoEK.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_layout.server.ts.js-BcS7EPWJ.js → _layout.server.ts.js-DjB5P2N0.js} +3 -3
- package/build/server/chunks/entries/pages/admin/{_layout.server.ts.js-BcS7EPWJ.js.map → _layout.server.ts.js-DjB5P2N0.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-ColpdHsj.js → _page.server.ts.js-DMawiAOU.js} +4 -4
- package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-ColpdHsj.js.map → _page.server.ts.js-DMawiAOU.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/audit/{_page.server.ts.js-pm9fJjcH.js → _page.server.ts.js-CJie_AQe.js} +14 -5
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-CJie_AQe.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/{_page.svelte.js-smQE9KlB.js → _page.svelte.js-B3TE0-_a.js} +6 -2
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-B3TE0-_a.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/{_page.server.ts.js-btPxjqx4.js → _page.server.ts.js-DJI-BqLn.js} +5 -5
- package/build/server/chunks/entries/pages/admin/compute/{_page.server.ts.js-btPxjqx4.js.map → _page.server.ts.js-DJI-BqLn.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/organizations/{_page.server.ts.js-CQSWGW0Y.js → _page.server.ts.js-DRZlByRc.js} +3 -3
- package/build/server/chunks/entries/pages/admin/organizations/{_page.server.ts.js-CQSWGW0Y.js.map → _page.server.ts.js-DRZlByRc.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.server.ts.js-DWObSxSO.js → _page.server.ts.js-cnc8alqe.js} +9 -7
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-cnc8alqe.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/{_page.server.ts.js-BSYX7hSD.js → _page.server.ts.js-7suWtJxu.js} +3 -3
- package/build/server/chunks/entries/pages/admin/projects/{_page.server.ts.js-BSYX7hSD.js.map → _page.server.ts.js-7suWtJxu.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-DFA57irm.js → _page.server.ts.js-C0ZdK8vU.js} +6 -6
- package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-DFA57irm.js.map → _page.server.ts.js-C0ZdK8vU.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-D4Z-BGD2.js → _page.svelte.js-CqNLFuOZ.js} +2 -97
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CqNLFuOZ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/{_page.server.ts.js-B0s6jSPs.js → _page.server.ts.js-C1LiUNB_.js} +5 -5
- package/build/server/chunks/entries/pages/admin/users/{_page.server.ts.js-B0s6jSPs.js.map → _page.server.ts.js-C1LiUNB_.js.map} +1 -1
- package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-CO0kHa1b.js → _page.svelte.js-C-jy08cJ.js} +2 -2
- package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-CO0kHa1b.js.map → _page.svelte.js-C-jy08cJ.js.map} +1 -1
- package/build/server/chunks/entries/pages/auth/email/start/{_page.server.ts.js-F8fXU2YV.js → _page.server.ts.js-Bf5aciLN.js} +4 -3
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-Bf5aciLN.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/{_page.server.ts.js-BXXiZbrJ.js → _page.server.ts.js-Cd1cMb0M.js} +9 -9
- package/build/server/chunks/entries/pages/library/_guid_/{_page.server.ts.js-BXXiZbrJ.js.map → _page.server.ts.js-Cd1cMb0M.js.map} +1 -1
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-BpEnQ79H.js → _page.svelte.js-BHPELPpI.js} +53 -1
- package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-BpEnQ79H.js.map → _page.svelte.js-BHPELPpI.js.map} +1 -1
- package/build/server/chunks/entries/pages/library/{_page.server.ts.js-CNsQMZl_.js → _page.server.ts.js-CkNgTDfl.js} +4 -4
- package/build/server/chunks/entries/pages/library/{_page.server.ts.js-CNsQMZl_.js.map → _page.server.ts.js-CkNgTDfl.js.map} +1 -1
- package/build/server/chunks/entries/pages/login/{_page.server.ts.js-DLtWh9lt.js → _page.server.ts.js-BM0BZFoZ.js} +4 -3
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-BM0BZFoZ.js.map +1 -0
- package/build/server/chunks/entries/pages/logout/{_page.server.ts.js-DbaORCjB.js → _page.server.ts.js-Cc1BjCbc.js} +2 -2
- package/build/server/chunks/entries/pages/logout/{_page.server.ts.js-DbaORCjB.js.map → _page.server.ts.js-Cc1BjCbc.js.map} +1 -1
- package/build/server/chunks/entries/pages/projects/{_layout.server.ts.js-CNMJpFAK.js → _layout.server.ts.js-DuJkKJcb.js} +2 -2
- package/build/server/chunks/entries/pages/projects/{_layout.server.ts.js-CNMJpFAK.js.map → _layout.server.ts.js-DuJkKJcb.js.map} +1 -1
- package/build/server/chunks/entries/pages/projects/{_page.server.ts.js-BPAfS2yX.js → _page.server.ts.js-6JTf7XX0.js} +5 -5
- package/build/server/chunks/entries/pages/projects/{_page.server.ts.js-BPAfS2yX.js.map → _page.server.ts.js-6JTf7XX0.js.map} +1 -1
- package/build/server/chunks/entries/pages/projects/{_page.svelte.js-nQ9Uj1kK.js → _page.svelte.js-DVU6xc3i.js} +30 -4
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-DVU6xc3i.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-DmwzD-qo.js → _page.server.ts.js-CAIQvVcR.js} +5 -5
- package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-DmwzD-qo.js.map → _page.server.ts.js-CAIQvVcR.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/{_layout.server.ts.js-Bm1MwrYZ.js → _layout.server.ts.js-CBM_iY4T.js} +2 -2
- package/build/server/chunks/entries/pages/team/{_layout.server.ts.js-Bm1MwrYZ.js.map → _layout.server.ts.js-CBM_iY4T.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/{_page.server.ts.js-DjFIDiK1.js → _page.server.ts.js-Pf-MSXv0.js} +2 -2
- package/build/server/chunks/entries/pages/team/{_page.server.ts.js-DjFIDiK1.js.map → _page.server.ts.js-Pf-MSXv0.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/compute/{_page.server.ts.js-B331KcmA.js → _page.server.ts.js-CR-ddKJ4.js} +4 -4
- package/build/server/chunks/entries/pages/team/compute/{_page.server.ts.js-B331KcmA.js.map → _page.server.ts.js-CR-ddKJ4.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/members/{_page.server.ts.js-lSFTK3rq.js → _page.server.ts.js-DCQ0yy-F.js} +3 -3
- package/build/server/chunks/entries/pages/team/members/{_page.server.ts.js-lSFTK3rq.js.map → _page.server.ts.js-DCQ0yy-F.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-C70N76b0.js → _page.svelte.js-DVOfVzGn.js} +2 -2
- package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-C70N76b0.js.map → _page.svelte.js-DVOfVzGn.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/projects/{_page.server.ts.js-CFZGG_Ci.js → _page.server.ts.js-FUxzp5PC.js} +3 -3
- package/build/server/chunks/entries/pages/team/projects/{_page.server.ts.js-CFZGG_Ci.js.map → _page.server.ts.js-FUxzp5PC.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/reclaim/{_page.server.ts.js-AFrlbBl8.js → _page.server.ts.js-Btcar0yP.js} +3 -3
- package/build/server/chunks/entries/pages/team/reclaim/{_page.server.ts.js-AFrlbBl8.js.map → _page.server.ts.js-Btcar0yP.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/settings/{_page.server.ts.js-BbKtggo9.js → _page.server.ts.js-CS5FLYXE.js} +3 -3
- package/build/server/chunks/entries/pages/team/settings/{_page.server.ts.js-BbKtggo9.js.map → _page.server.ts.js-CS5FLYXE.js.map} +1 -1
- package/build/server/chunks/entries/pages/team/shares/{_page.server.ts.js-B0XsHyzb.js → _page.server.ts.js-B1QqNYRo.js} +2 -2
- package/build/server/chunks/entries/pages/team/shares/{_page.server.ts.js-B0XsHyzb.js.map → _page.server.ts.js-B1QqNYRo.js.map} +1 -1
- package/build/server/chunks/{handler-BVoIPaUa.js → handler-CiXlY3wu.js} +3 -3
- package/build/server/chunks/{handler-BVoIPaUa.js.map → handler-CiXlY3wu.js.map} +1 -1
- package/build/server/chunks/{index.js-hj4o2h8q.js → index.js-CfdDzNmO.js} +2 -2
- package/build/server/chunks/{index.js-hj4o2h8q.js.map → index.js-CfdDzNmO.js.map} +1 -1
- package/build/server/chunks/{manifest.js-BIVs9dfJ.js → manifest.js-DZ6WZ-WA.js} +76 -76
- package/build/server/chunks/{manifest.js-BIVs9dfJ.js.map → manifest.js-DZ6WZ-WA.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-OxxVvycM.js → 0.js-BMoQIPmA.js} +4 -4
- package/build/server/chunks/nodes/{0.js-OxxVvycM.js.map → 0.js-BMoQIPmA.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-Bs6uvYbc.js → 1.js-Cm5AdicB.js} +2 -2
- package/build/server/chunks/nodes/{1.js-Bs6uvYbc.js.map → 1.js-Cm5AdicB.js.map} +1 -1
- package/build/server/chunks/nodes/{10.js-CvIgMW7D.js → 10.js-BNCwQwZV.js} +9 -9
- package/build/server/chunks/nodes/{10.js-CvIgMW7D.js.map → 10.js-BNCwQwZV.js.map} +1 -1
- package/build/server/chunks/nodes/{11.js-CnBjS7-t.js → 11.js-DkWLgBVg.js} +8 -8
- package/build/server/chunks/nodes/{11.js-CnBjS7-t.js.map → 11.js-DkWLgBVg.js.map} +1 -1
- package/build/server/chunks/nodes/{12.js-Dq_XopIA.js → 12.js-kNjmUDDo.js} +4 -4
- package/build/server/chunks/nodes/{12.js-Dq_XopIA.js.map → 12.js-kNjmUDDo.js.map} +1 -1
- package/build/server/chunks/nodes/{13.js-CqZCtg80.js → 13.js-jNBOb5Ni.js} +5 -5
- package/build/server/chunks/nodes/{13.js-CqZCtg80.js.map → 13.js-jNBOb5Ni.js.map} +1 -1
- package/build/server/chunks/nodes/{14.js-OvULgcZx.js → 14.js-jkWhR5ra.js} +5 -5
- package/build/server/chunks/nodes/{14.js-OvULgcZx.js.map → 14.js-jkWhR5ra.js.map} +1 -1
- package/build/server/chunks/nodes/{15.js-3rOev7kG.js → 15.js-Bh0tBhZ6.js} +15 -11
- package/build/server/chunks/nodes/{15.js-3rOev7kG.js.map → 15.js-Bh0tBhZ6.js.map} +1 -1
- package/build/server/chunks/nodes/{16.js-DY4bmQK_.js → 16.js-BjSvS7x7.js} +11 -11
- package/build/server/chunks/nodes/{16.js-DY4bmQK_.js.map → 16.js-BjSvS7x7.js.map} +1 -1
- package/build/server/chunks/nodes/{17.js-DzcgsMqq.js → 17.js-CVAlNLd1.js} +2 -2
- package/build/server/chunks/nodes/{17.js-DzcgsMqq.js.map → 17.js-CVAlNLd1.js.map} +1 -1
- package/build/server/chunks/nodes/{18.js-C3GcE50R.js → 18.js-m1EmD7J9.js} +10 -5
- package/build/server/chunks/nodes/{18.js-C3GcE50R.js.map → 18.js-m1EmD7J9.js.map} +1 -1
- package/build/server/chunks/nodes/{19.js-4ei3NRJW.js → 19.js-Cvq4wk_v.js} +8 -8
- package/build/server/chunks/nodes/{19.js-4ei3NRJW.js.map → 19.js-Cvq4wk_v.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-BhhMlQQP.js → 2.js-_j2qbJf6.js} +8 -8
- package/build/server/chunks/nodes/{2.js-BhhMlQQP.js.map → 2.js-_j2qbJf6.js.map} +1 -1
- package/build/server/chunks/nodes/{20.js-BQZue73m.js → 20.js-BjgFHK82.js} +17 -13
- package/build/server/chunks/nodes/{20.js-BQZue73m.js.map → 20.js-BjgFHK82.js.map} +1 -1
- package/build/server/chunks/nodes/{21.js-BAkAIvfV.js → 21.js-C3u9VeIP.js} +12 -7
- package/build/server/chunks/nodes/{21.js-BAkAIvfV.js.map → 21.js-C3u9VeIP.js.map} +1 -1
- package/build/server/chunks/nodes/{22.js-d354Ho4z.js → 22.js-3vW3ZPjE.js} +8 -3
- package/build/server/chunks/nodes/{22.js-d354Ho4z.js.map → 22.js-3vW3ZPjE.js.map} +1 -1
- package/build/server/chunks/nodes/{23.js-BMNUZekw.js → 23.js-h3AKg2Bd.js} +9 -9
- package/build/server/chunks/nodes/{23.js-BMNUZekw.js.map → 23.js-h3AKg2Bd.js.map} +1 -1
- package/build/server/chunks/nodes/{24.js-BGD-JCcE.js → 24.js-DcfMC0S6.js} +11 -7
- package/build/server/chunks/nodes/{24.js-BGD-JCcE.js.map → 24.js-DcfMC0S6.js.map} +1 -1
- package/build/server/chunks/nodes/{25.js-BqxnZYdq.js → 25.js-B8F-WcNH.js} +4 -4
- package/build/server/chunks/nodes/{25.js-BqxnZYdq.js.map → 25.js-B8F-WcNH.js.map} +1 -1
- package/build/server/chunks/nodes/{27.js-Bpas2N07.js → 27.js-DmjAkuen.js} +6 -6
- package/build/server/chunks/nodes/{27.js-Bpas2N07.js.map → 27.js-DmjAkuen.js.map} +1 -1
- package/build/server/chunks/nodes/{28.js-CzzcTWyj.js → 28.js-B7Rf1M8l.js} +6 -6
- package/build/server/chunks/nodes/{28.js-CzzcTWyj.js.map → 28.js-B7Rf1M8l.js.map} +1 -1
- package/build/server/chunks/nodes/{29.js-D-yU37B7.js → 29.js-DFPsK4BF.js} +5 -5
- package/build/server/chunks/nodes/{29.js-D-yU37B7.js.map → 29.js-DFPsK4BF.js.map} +1 -1
- package/build/server/chunks/nodes/{3.js-Cz9pT7ce.js → 3.js-DEDKRIYO.js} +2 -2
- package/build/server/chunks/nodes/{3.js-Cz9pT7ce.js.map → 3.js-DEDKRIYO.js.map} +1 -1
- package/build/server/chunks/nodes/{30.js-CTnqbIs1.js → 30.js-B17mHAaN.js} +5 -5
- package/build/server/chunks/nodes/{30.js-CTnqbIs1.js.map → 30.js-B17mHAaN.js.map} +1 -1
- package/build/server/chunks/nodes/{31.js-BzVXDu0q.js → 31.js-g3F8A8P0.js} +4 -4
- package/build/server/chunks/nodes/{31.js-BzVXDu0q.js.map → 31.js-g3F8A8P0.js.map} +1 -1
- package/build/server/chunks/nodes/{32.js-D5n6ZsDK.js → 32.js-1VSkrG-2.js} +4 -4
- package/build/server/chunks/nodes/{32.js-D5n6ZsDK.js.map → 32.js-1VSkrG-2.js.map} +1 -1
- package/build/server/chunks/nodes/{5.js-BJ8b3aNu.js → 5.js-BvHhhp_p.js} +4 -4
- package/build/server/chunks/nodes/{5.js-BJ8b3aNu.js.map → 5.js-BvHhhp_p.js.map} +1 -1
- package/build/server/chunks/nodes/{6.js-BUe0tZCB.js → 6.js-BHejxveY.js} +5 -5
- package/build/server/chunks/nodes/{6.js-BUe0tZCB.js.map → 6.js-BHejxveY.js.map} +1 -1
- package/build/server/chunks/nodes/{7.js-Bo7bTIfx.js → 7.js-CV5qjTXV.js} +2 -2
- package/build/server/chunks/nodes/{7.js-Bo7bTIfx.js.map → 7.js-CV5qjTXV.js.map} +1 -1
- package/build/server/chunks/nodes/{8.js-C6iVKn1o.js → 8.js-jhS48nhZ.js} +12 -7
- package/build/server/chunks/nodes/{8.js-C6iVKn1o.js.map → 8.js-jhS48nhZ.js.map} +1 -1
- package/build/server/chunks/nodes/{9.js-DPMqw-Dj.js → 9.js-27g91Gox.js} +6 -6
- package/build/server/chunks/nodes/{9.js-DPMqw-Dj.js.map → 9.js-27g91Gox.js.map} +1 -1
- package/package.json +4 -4
- package/templates/.env.example +57 -0
- package/build/client/_app/immutable/chunks/B2u4e1Y9.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2u4e1Y9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BRbaYEL5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BRbaYEL5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/COYKudi0.js.br +0 -0
- package/build/client/_app/immutable/chunks/COYKudi0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CYwmPsLn.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYwmPsLn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxPY7Obc.js +0 -2
- package/build/client/_app/immutable/chunks/CxPY7Obc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxPY7Obc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/I2TM0do6.js.br +0 -0
- package/build/client/_app/immutable/chunks/I2TM0do6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/IUqeb3TJ.js +0 -2
- package/build/client/_app/immutable/chunks/IUqeb3TJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/IUqeb3TJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zOoVG74V.js.br +0 -0
- package/build/client/_app/immutable/chunks/zOoVG74V.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CRaXT8K-.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CRaXT8K-.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DuKqaS_0.js +0 -1
- package/build/client/_app/immutable/entry/start.DuKqaS_0.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DuKqaS_0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DPMP9Es7.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DPMP9Es7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DMJdbPyC.js +0 -3
- package/build/client/_app/immutable/nodes/10.DMJdbPyC.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DMJdbPyC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BxhrIetk.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BxhrIetk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.bzJyaCKt.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.bzJyaCKt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.XVGDZn7V.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.XVGDZn7V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.Ds7J6ry6.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Ds7J6ry6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.C6HKDHv3.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.C6HKDHv3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.BxjH0QZF.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.BxjH0QZF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.BU2Lw57i.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.BU2Lw57i.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.D9dN-poH.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.D9dN-poH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BIo_tnO_.js +0 -5021
- package/build/client/_app/immutable/nodes/20.BIo_tnO_.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BIo_tnO_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.qpo7v5r_.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.qpo7v5r_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CdjZcdrJ.js +0 -16
- package/build/client/_app/immutable/nodes/23.CdjZcdrJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.CdjZcdrJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.BSJH1lHT.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BSJH1lHT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.BKQucFUA.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.BKQucFUA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.BleEhT0J.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BleEhT0J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.fAbDo5Et.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.fAbDo5Et.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.XubMG-dn.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.XubMG-dn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.DRrc_hLr.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.DRrc_hLr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.C77UuNpH.js.br +0 -1
- package/build/client/_app/immutable/nodes/5.C77UuNpH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.B23L8hA_.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.B23L8hA_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BZj0oAjH.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BZj0oAjH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CGy_fUC4.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CGy_fUC4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BpEiOuN0.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BpEiOuN0.js.gz +0 -0
- package/build/server/chunks/chunks/access.server.js-D99g5hZd.js.map +0 -1
- package/build/server/chunks/chunks/admin-auth.server.js-hCWF6Pqg.js.map +0 -1
- package/build/server/chunks/chunks/bootHealth.server.js-CxNJCaGf.js.map +0 -1
- package/build/server/chunks/chunks/clientCache.server.js-nl8vnalG.js.map +0 -1
- package/build/server/chunks/chunks/computeLimits.js-C5c7HPGJ.js +0 -20
- package/build/server/chunks/chunks/computeLimits.js-C5c7HPGJ.js.map +0 -1
- package/build/server/chunks/chunks/context.js-D8E0GFTw.js.map +0 -1
- package/build/server/chunks/chunks/package.js-CGjshiZJ.js.map +0 -1
- package/build/server/chunks/chunks/providers.server.js-D0hpk-aq.js.map +0 -1
- package/build/server/chunks/chunks/token.server.js-q3fv9Fqo.js.map +0 -1
- package/build/server/chunks/chunks/token2.server.js-Cqw1dJj-.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-CQdxoaBS.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-y3dgQz-R.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-DkyT3FO6.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-B4lGohx2.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-B7kvAKyV.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-3yXXN2SO.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-OUXv4_qA.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-pm9fJjcH.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-smQE9KlB.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DWObSxSO.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-D4Z-BGD2.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-F8fXU2YV.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-DLtWh9lt.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-nQ9Uj1kK.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
function safeRedirectTarget(raw, fallback) {
|
|
2
|
+
if (typeof raw !== "string" || raw.length < 2) return fallback;
|
|
3
|
+
if (raw[0] !== "/") return fallback;
|
|
4
|
+
if (raw[1] === "/" || raw[1] === "\\") return fallback;
|
|
5
|
+
return raw;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { safeRedirectTarget as s };
|
|
9
|
+
//# sourceMappingURL=redirect.js-1CZ30qn2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirect.js-1CZ30qn2.js","sources":["../../../../.svelte-kit/output/server/chunks/redirect.js"],"sourcesContent":["function safeRedirectTarget(raw, fallback) {\n if (typeof raw !== \"string\" || raw.length < 2) return fallback;\n if (raw[0] !== \"/\") return fallback;\n if (raw[1] === \"/\" || raw[1] === \"\\\\\") return fallback;\n return raw;\n}\nexport {\n safeRedirectTarget as s\n};\n"],"names":[],"mappings":"AAAA,SAAS,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC3C,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,QAAQ;AAChE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,QAAQ;AACrC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,QAAQ;AACxD,EAAE,OAAO,GAAG;AACZ;;;;"}
|
package/build/server/chunks/chunks/{resolve.server.js-CtUK_9yC.js → resolve.server.js-Dg1o2vnd.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { error } from '@sveltejs/kit';
|
|
2
|
-
import { S as SYSTEM_CONTEXT } from './context.js-
|
|
3
|
-
import { p as providers,
|
|
4
|
-
import { h as hashToken, l as looksLikeShareToken } from './token2.server.js-
|
|
2
|
+
import { S as SYSTEM_CONTEXT } from './context.js-DsQGiS2x.js';
|
|
3
|
+
import { p as providers, m as getDefinitionMeta, e as getProjectProvider, i as flag } from './providers.server.js-CIHOepKv.js';
|
|
4
|
+
import { h as hashToken, l as looksLikeShareToken } from './token2.server.js-Cjb4XaWC.js';
|
|
5
5
|
|
|
6
6
|
function readShareToken(request, url) {
|
|
7
7
|
if (!flag("ENABLE_SHARING")) return null;
|
|
@@ -47,4 +47,4 @@ async function tryResolveShareToken(request, url, requestedDefinitionId, request
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
export { tryResolveShareToken as t };
|
|
50
|
-
//# sourceMappingURL=resolve.server.js-
|
|
50
|
+
//# sourceMappingURL=resolve.server.js-Dg1o2vnd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.server.js-
|
|
1
|
+
{"version":3,"file":"resolve.server.js-Dg1o2vnd.js","sources":["../../../../.svelte-kit/output/server/chunks/resolve.server.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"./context.js\";\nimport { p as providers, s as getDefinitionMeta, m as getProjectProvider, f as flag } from \"./providers.server.js\";\nimport { h as hashToken, l as looksLikeShareToken } from \"./token2.server.js\";\nfunction readShareToken(request, url) {\n if (!flag(\"ENABLE_SHARING\")) return null;\n const q = url.searchParams.get(\"token\");\n if (q && looksLikeShareToken(q)) return q;\n const auth = request.headers.get(\"authorization\");\n if (auth?.startsWith(\"Bearer \")) {\n const candidate = auth.slice(\"Bearer \".length).trim();\n if (looksLikeShareToken(candidate)) return candidate;\n }\n return null;\n}\nasync function tryResolveShareToken(request, url, requestedDefinitionId, requestedChannel, opts) {\n const raw = readShareToken(request, url);\n if (!raw) return null;\n const tokenHash = hashToken(raw);\n const link = await providers.data.shareLinks.getByTokenHash(SYSTEM_CONTEXT, tokenHash);\n if (!link) throw error(401, \"Invalid or revoked share token.\");\n if (link.expiresAt && new Date(link.expiresAt).getTime() <= Date.now()) {\n throw error(401, \"Share token has expired.\");\n }\n if (link.definitionId !== requestedDefinitionId) {\n throw error(403, \"Share token is not valid for this definition.\");\n }\n if (link.channel !== requestedChannel) {\n throw error(403, `Share token is for the '${link.channel}' channel only.`);\n }\n if (opts.requireSolve && !link.allowSolve) {\n throw error(403, \"Share token grants view-only access.\");\n }\n const def = await getDefinitionMeta().get(SYSTEM_CONTEXT, link.definitionId);\n if (!def) throw error(401, \"Share token target no longer exists.\");\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, def.projectId);\n if (!project) throw error(401, \"Share token target no longer exists.\");\n const ctx = {\n userId: \"\",\n actingOrgId: project.orgId,\n platformPermissions: [],\n orgPermissions: [],\n system: true\n };\n return { link, ctx };\n}\nexport {\n tryResolveShareToken as t\n};\n"],"names":[],"mappings":";;;;;AAIA,SAAS,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE;AACtC,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,IAAI;AAC1C,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3C,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AACnD,EAAE,IAAI,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;AACnC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AACzD,IAAI,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,SAAS;AACxD,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,eAAe,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;AACjG,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC;AAC1C,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACvB,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;AAClC,EAAE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC;AACxF,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC;AAChE,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;AAC1E,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;AAChD,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,YAAY,KAAK,qBAAqB,EAAE;AACnD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,+CAA+C,CAAC;AACrE,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE;AACzC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9E,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC7C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AAC5D,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC;AAC9E,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AACpE,EAAE,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC;AACtF,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AACxE,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,WAAW,EAAE,OAAO,CAAC,KAAK;AAC9B,IAAI,mBAAmB,EAAE,EAAE;AAC3B,IAAI,cAAc,EAAE,EAAE;AACtB,IAAI,MAAM,EAAE;AACZ,GAAG;AACH,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACtB;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { existsSync, readFileSync, rmSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { d as deriveOutcome } from './update-outcome.js-mUyfVCnt.js';
|
|
4
|
+
|
|
5
|
+
function isDeploymentDir(dir) {
|
|
6
|
+
return existsSync(join(dir, "node_modules", "@selvajs", "selva", "package.json"));
|
|
7
|
+
}
|
|
8
|
+
function findDeploymentDir(env) {
|
|
9
|
+
if (env.INSTALL_DIR && isDeploymentDir(env.INSTALL_DIR)) return env.INSTALL_DIR;
|
|
10
|
+
let dir = process.cwd();
|
|
11
|
+
for (let i = 0; i < 6; i++) {
|
|
12
|
+
if (isDeploymentDir(dir)) return dir;
|
|
13
|
+
const parent = join(dir, "..");
|
|
14
|
+
if (parent === dir) break;
|
|
15
|
+
dir = parent;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
function updateLogPath(deploymentDir) {
|
|
20
|
+
return deploymentDir ? join(deploymentDir, "selva-update.log") : "/tmp/selva-update.log";
|
|
21
|
+
}
|
|
22
|
+
function updateStatePath(deploymentDir) {
|
|
23
|
+
return join(deploymentDir, "selva-update-state.json");
|
|
24
|
+
}
|
|
25
|
+
async function reconcileUpdateOutcome(deps) {
|
|
26
|
+
const statePath = updateStatePath(deps.deploymentDir);
|
|
27
|
+
let state;
|
|
28
|
+
try {
|
|
29
|
+
state = JSON.parse(readFileSync(statePath, "utf8"));
|
|
30
|
+
} catch {
|
|
31
|
+
return "no_pending_update";
|
|
32
|
+
}
|
|
33
|
+
let logs = "";
|
|
34
|
+
try {
|
|
35
|
+
logs = readFileSync(updateLogPath(deps.deploymentDir), "utf8");
|
|
36
|
+
} catch {
|
|
37
|
+
}
|
|
38
|
+
const exitMatch = /\[EXIT\] code=(\d+)/.exec(logs);
|
|
39
|
+
if (!exitMatch) return "still_running";
|
|
40
|
+
const exitCode = Number(exitMatch[1]);
|
|
41
|
+
const outcome = deriveOutcome(exitCode, logs);
|
|
42
|
+
const base = {
|
|
43
|
+
fromVersion: state.fromVersion ?? outcome.from,
|
|
44
|
+
toVersion: outcome.to,
|
|
45
|
+
actorId: state.actorId
|
|
46
|
+
};
|
|
47
|
+
let event;
|
|
48
|
+
if (outcome.severity === "critical") {
|
|
49
|
+
event = { type: "system.update.failed", ...base, detail: outcome.title };
|
|
50
|
+
} else if (exitCode === 5 || logs.includes("Rolled back")) {
|
|
51
|
+
event = { type: "system.update.rolled_back", ...base, detail: outcome.title };
|
|
52
|
+
} else if (outcome.severity === "success" || outcome.severity === "info") {
|
|
53
|
+
event = { type: "system.update.finished", ...base };
|
|
54
|
+
} else {
|
|
55
|
+
event = { type: "system.update.finished", ...base, detail: outcome.title };
|
|
56
|
+
}
|
|
57
|
+
await deps.emit(event);
|
|
58
|
+
if (event.type !== "system.update.finished") {
|
|
59
|
+
deps.report(new Error(`[selfUpdate] ${outcome.title}`));
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
rmSync(statePath);
|
|
63
|
+
} catch {
|
|
64
|
+
}
|
|
65
|
+
return "reconciled";
|
|
66
|
+
}
|
|
67
|
+
const POLL_MS = 15e3;
|
|
68
|
+
const MAX_POLLS = 80;
|
|
69
|
+
let reconcilerActive = false;
|
|
70
|
+
function startUpdateOutcomeReconciler(deps) {
|
|
71
|
+
if (reconcilerActive) return;
|
|
72
|
+
if (!existsSync(updateStatePath(deps.deploymentDir))) return;
|
|
73
|
+
reconcilerActive = true;
|
|
74
|
+
let polls = 0;
|
|
75
|
+
const timer = setInterval(() => {
|
|
76
|
+
void (async () => {
|
|
77
|
+
polls += 1;
|
|
78
|
+
let result;
|
|
79
|
+
try {
|
|
80
|
+
result = await reconcileUpdateOutcome(deps);
|
|
81
|
+
} catch (err) {
|
|
82
|
+
console.error("[selfUpdate] outcome reconciliation failed:", err);
|
|
83
|
+
result = "still_running";
|
|
84
|
+
}
|
|
85
|
+
if (result === "still_running" && polls < MAX_POLLS) return;
|
|
86
|
+
if (result === "still_running") {
|
|
87
|
+
try {
|
|
88
|
+
const statePath = updateStatePath(deps.deploymentDir);
|
|
89
|
+
const state = JSON.parse(readFileSync(statePath, "utf8"));
|
|
90
|
+
await deps.emit({
|
|
91
|
+
type: "system.update.failed",
|
|
92
|
+
fromVersion: state.fromVersion,
|
|
93
|
+
actorId: state.actorId,
|
|
94
|
+
detail: "No terminal marker in the update log within 20 minutes."
|
|
95
|
+
});
|
|
96
|
+
deps.report(new Error("[selfUpdate] update never reached a terminal state"));
|
|
97
|
+
rmSync(statePath);
|
|
98
|
+
} catch {
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
clearInterval(timer);
|
|
102
|
+
reconcilerActive = false;
|
|
103
|
+
})();
|
|
104
|
+
}, POLL_MS);
|
|
105
|
+
timer.unref?.();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { updateStatePath as a, findDeploymentDir as f, startUpdateOutcomeReconciler as s, updateLogPath as u };
|
|
109
|
+
//# sourceMappingURL=selfUpdate.server.js-CXejyqIT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfUpdate.server.js-CXejyqIT.js","sources":["../../../../.svelte-kit/output/server/chunks/selfUpdate.server.js"],"sourcesContent":["import { existsSync, readFileSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { d as deriveOutcome } from \"./update-outcome.js\";\nfunction isDeploymentDir(dir) {\n return existsSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"));\n}\nfunction findDeploymentDir(env) {\n if (env.INSTALL_DIR && isDeploymentDir(env.INSTALL_DIR)) return env.INSTALL_DIR;\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n if (isDeploymentDir(dir)) return dir;\n const parent = join(dir, \"..\");\n if (parent === dir) break;\n dir = parent;\n }\n return null;\n}\nfunction updateLogPath(deploymentDir) {\n return deploymentDir ? join(deploymentDir, \"selva-update.log\") : \"/tmp/selva-update.log\";\n}\nfunction updateStatePath(deploymentDir) {\n return join(deploymentDir, \"selva-update-state.json\");\n}\nasync function reconcileUpdateOutcome(deps) {\n const statePath = updateStatePath(deps.deploymentDir);\n let state;\n try {\n state = JSON.parse(readFileSync(statePath, \"utf8\"));\n } catch {\n return \"no_pending_update\";\n }\n let logs = \"\";\n try {\n logs = readFileSync(updateLogPath(deps.deploymentDir), \"utf8\");\n } catch {\n }\n const exitMatch = /\\[EXIT\\] code=(\\d+)/.exec(logs);\n if (!exitMatch) return \"still_running\";\n const exitCode = Number(exitMatch[1]);\n const outcome = deriveOutcome(exitCode, logs);\n const base = {\n fromVersion: state.fromVersion ?? outcome.from,\n toVersion: outcome.to,\n actorId: state.actorId\n };\n let event;\n if (outcome.severity === \"critical\") {\n event = { type: \"system.update.failed\", ...base, detail: outcome.title };\n } else if (exitCode === 5 || logs.includes(\"Rolled back\")) {\n event = { type: \"system.update.rolled_back\", ...base, detail: outcome.title };\n } else if (outcome.severity === \"success\" || outcome.severity === \"info\") {\n event = { type: \"system.update.finished\", ...base };\n } else {\n event = { type: \"system.update.finished\", ...base, detail: outcome.title };\n }\n await deps.emit(event);\n if (event.type !== \"system.update.finished\") {\n deps.report(new Error(`[selfUpdate] ${outcome.title}`));\n }\n try {\n rmSync(statePath);\n } catch {\n }\n return \"reconciled\";\n}\nconst POLL_MS = 15e3;\nconst MAX_POLLS = 80;\nlet reconcilerActive = false;\nfunction startUpdateOutcomeReconciler(deps) {\n if (reconcilerActive) return;\n if (!existsSync(updateStatePath(deps.deploymentDir))) return;\n reconcilerActive = true;\n let polls = 0;\n const timer = setInterval(() => {\n void (async () => {\n polls += 1;\n let result;\n try {\n result = await reconcileUpdateOutcome(deps);\n } catch (err) {\n console.error(\"[selfUpdate] outcome reconciliation failed:\", err);\n result = \"still_running\";\n }\n if (result === \"still_running\" && polls < MAX_POLLS) return;\n if (result === \"still_running\") {\n try {\n const statePath = updateStatePath(deps.deploymentDir);\n const state = JSON.parse(readFileSync(statePath, \"utf8\"));\n await deps.emit({\n type: \"system.update.failed\",\n fromVersion: state.fromVersion,\n actorId: state.actorId,\n detail: \"No terminal marker in the update log within 20 minutes.\"\n });\n deps.report(new Error(\"[selfUpdate] update never reached a terminal state\"));\n rmSync(statePath);\n } catch {\n }\n }\n clearInterval(timer);\n reconcilerActive = false;\n })();\n }, POLL_MS);\n timer.unref?.();\n}\nexport {\n updateStatePath as a,\n findDeploymentDir as f,\n startUpdateOutcomeReconciler as s,\n updateLogPath as u\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { TreeBuilder, RhinoComputeError, ErrorCodes, processInput, stableStringify } from '@selvajs/compute';
|
|
3
|
+
import { gzip, gunzipSync } from 'node:zlib';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
5
|
+
|
|
6
|
+
function transformInputParameter(input, value) {
|
|
7
|
+
const raw = {
|
|
8
|
+
id: input.id,
|
|
9
|
+
name: input.nickname,
|
|
10
|
+
nickname: input.nickname || null,
|
|
11
|
+
description: input.description || "",
|
|
12
|
+
// Dynamic value lists ride the ValueList contract on the wire — the plugin's
|
|
13
|
+
// GetDynamicValueListParameter deliberately reuses TypeName "ValueList" so the
|
|
14
|
+
// compute fork's existing ValueList input case assigns it. processInput has no
|
|
15
|
+
// dynamicValueList handler; without this mapping it falls back to Geometry with
|
|
16
|
+
// a null default and TreeBuilder DROPS the input, so the user's selection never
|
|
17
|
+
// reaches the definition (the param then solves on its own stale fallback).
|
|
18
|
+
paramType: input.paramType === "dynamicValueList" ? "valueList" : input.paramType,
|
|
19
|
+
treeAccess: input.inputStructure === "tree",
|
|
20
|
+
minimum: input.minimum ?? null,
|
|
21
|
+
maximum: input.maximum ?? null,
|
|
22
|
+
atLeast: 1,
|
|
23
|
+
atMost: 1,
|
|
24
|
+
stepSize: input.stepSize,
|
|
25
|
+
// The user's selection wins; otherwise the schema default.
|
|
26
|
+
default: value ?? input.default
|
|
27
|
+
};
|
|
28
|
+
const processed = processInput(raw);
|
|
29
|
+
const effective = value ?? input.default;
|
|
30
|
+
if (processed.default == null && effective != null) {
|
|
31
|
+
if (Array.isArray(effective)) {
|
|
32
|
+
processed.default = effective;
|
|
33
|
+
} else if (processed.paramType === "ValueList" && typeof effective !== "object") {
|
|
34
|
+
processed.default = effective;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return processed;
|
|
38
|
+
}
|
|
39
|
+
function encodeSolveCacheEntry(header, gzippedBody) {
|
|
40
|
+
const headerJson = Buffer.from(JSON.stringify(header), "utf8");
|
|
41
|
+
const out = Buffer.allocUnsafe(4 + headerJson.byteLength + gzippedBody.byteLength);
|
|
42
|
+
out.writeUInt32BE(headerJson.byteLength, 0);
|
|
43
|
+
headerJson.copy(out, 4);
|
|
44
|
+
Buffer.from(gzippedBody.buffer, gzippedBody.byteOffset, gzippedBody.byteLength).copy(
|
|
45
|
+
out,
|
|
46
|
+
4 + headerJson.byteLength
|
|
47
|
+
);
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
function decodeSolveCacheEntry(bytes) {
|
|
51
|
+
if (bytes.byteLength < 4) return null;
|
|
52
|
+
const buf = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
53
|
+
const headerLen = buf.readUInt32BE(0);
|
|
54
|
+
const headerEnd = 4 + headerLen;
|
|
55
|
+
if (headerEnd > buf.byteLength) return null;
|
|
56
|
+
let header;
|
|
57
|
+
try {
|
|
58
|
+
header = JSON.parse(buf.toString("utf8", 4, headerEnd));
|
|
59
|
+
} catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
if (typeof header?.errorCount !== "number" || typeof header?.warningCount !== "number" || typeof header?.serializedBytes !== "number" || typeof header?.inputHash !== "string") {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const gzippedBody = new Uint8Array(
|
|
66
|
+
bytes.buffer,
|
|
67
|
+
bytes.byteOffset + headerEnd,
|
|
68
|
+
bytes.byteLength - headerEnd
|
|
69
|
+
);
|
|
70
|
+
return { header, gzippedBody };
|
|
71
|
+
}
|
|
72
|
+
function gunzipEntryBody(gzippedBody) {
|
|
73
|
+
return gunzipSync(gzippedBody).toString("utf8");
|
|
74
|
+
}
|
|
75
|
+
const gzipAsync = promisify(gzip);
|
|
76
|
+
const COMPUTE_CONTRACT_VERSION = 1;
|
|
77
|
+
const COMPUTE_VERSION_HEADER = "X-Selva-Compute-Version";
|
|
78
|
+
async function runSolvePipeline(args) {
|
|
79
|
+
const { client, signal } = args;
|
|
80
|
+
const treeBuildStart = performance.now();
|
|
81
|
+
const inputTree = TreeBuilder.fromInputParams(
|
|
82
|
+
args.inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, args.values[input.id]))
|
|
83
|
+
);
|
|
84
|
+
const treeBuildMs = performance.now() - treeBuildStart;
|
|
85
|
+
let inputKey = null;
|
|
86
|
+
if (args.solveCache) {
|
|
87
|
+
inputKey = deriveSolveCacheInputKey(inputTree, args.solveCache.configSubset).hash;
|
|
88
|
+
let stored = null;
|
|
89
|
+
try {
|
|
90
|
+
stored = await args.solveCache.lookup(inputKey);
|
|
91
|
+
} catch {
|
|
92
|
+
stored = null;
|
|
93
|
+
}
|
|
94
|
+
if (stored) {
|
|
95
|
+
const hit = buildEnvelopeFromCacheEntry(stored, inputKey, args);
|
|
96
|
+
if (hit) return hit;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const settleSeqBefore = client.solveMeta.seq;
|
|
100
|
+
const rhinoSeqBefore = client.rhinoTiming.seq;
|
|
101
|
+
let result;
|
|
102
|
+
const solveStart = performance.now();
|
|
103
|
+
try {
|
|
104
|
+
result = await client.scheduler.solve(args.definitionSource, inputTree, { signal });
|
|
105
|
+
} catch (err) {
|
|
106
|
+
const durationMs = performance.now() - solveStart;
|
|
107
|
+
const isAbort = err instanceof Error && err.name === "AbortError";
|
|
108
|
+
if (isAbort) {
|
|
109
|
+
if (signal.aborted) return { kind: "client_abort", durationMs };
|
|
110
|
+
return {
|
|
111
|
+
kind: "timeout",
|
|
112
|
+
durationMs,
|
|
113
|
+
message: `Solve exceeded the ${Math.round(args.maxSolveDurationMs / 1e3)}s deadline.`
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (err instanceof RhinoComputeError) {
|
|
117
|
+
if (err.code === ErrorCodes.QUEUE_FULL) {
|
|
118
|
+
return {
|
|
119
|
+
kind: "shed",
|
|
120
|
+
durationMs,
|
|
121
|
+
reason: "queue_full",
|
|
122
|
+
retryAfterSeconds: 1,
|
|
123
|
+
message: "Compute server is at capacity. Retry shortly."
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (err.code === ErrorCodes.QUEUE_TIMEOUT) {
|
|
127
|
+
return {
|
|
128
|
+
kind: "shed",
|
|
129
|
+
durationMs,
|
|
130
|
+
reason: "queue_timeout",
|
|
131
|
+
retryAfterSeconds: 1,
|
|
132
|
+
message: "Compute request waited too long in the queue. Retry shortly."
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { kind: "compute_error", durationMs, error: err };
|
|
137
|
+
}
|
|
138
|
+
const solveMs = performance.now() - solveStart;
|
|
139
|
+
const serializeStart = performance.now();
|
|
140
|
+
let serialized;
|
|
141
|
+
try {
|
|
142
|
+
serialized = JSON.stringify(result);
|
|
143
|
+
} catch (err) {
|
|
144
|
+
if (err instanceof RangeError) return { kind: "too_large" };
|
|
145
|
+
throw err;
|
|
146
|
+
}
|
|
147
|
+
if (serialized.length > args.responseMaxBytes) return { kind: "too_large" };
|
|
148
|
+
const serializeMs = performance.now() - serializeStart;
|
|
149
|
+
const clientWantsGzip = /\bgzip\b/i.test(args.acceptEncoding);
|
|
150
|
+
const worthSendingGzip = clientWantsGzip && serialized.length > 1024;
|
|
151
|
+
const willCache = args.solveCache != null;
|
|
152
|
+
let compressed = null;
|
|
153
|
+
let gzipMs = 0;
|
|
154
|
+
if (worthSendingGzip || willCache) {
|
|
155
|
+
const gzipStart = performance.now();
|
|
156
|
+
compressed = await gzipAsync(Buffer.from(serialized));
|
|
157
|
+
gzipMs = performance.now() - gzipStart;
|
|
158
|
+
}
|
|
159
|
+
if (args.solveCache && inputKey && compressed) {
|
|
160
|
+
const entry = encodeSolveCacheEntry(
|
|
161
|
+
{
|
|
162
|
+
errorCount: result.errors?.length ?? 0,
|
|
163
|
+
warningCount: result.warnings?.length ?? 0,
|
|
164
|
+
serializedBytes: serialized.length,
|
|
165
|
+
inputHash: inputKey
|
|
166
|
+
},
|
|
167
|
+
new Uint8Array(compressed)
|
|
168
|
+
);
|
|
169
|
+
args.solveCache.store(inputKey, entry);
|
|
170
|
+
}
|
|
171
|
+
const serverTotalMs = performance.now() - args.loadStartMs;
|
|
172
|
+
const settle = client.solveMeta.seq === settleSeqBefore + 1 ? client.solveMeta.last : null;
|
|
173
|
+
const rhino = settle && !settle.fromCache && client.rhinoTiming.seq === rhinoSeqBefore + 1 ? client.rhinoTiming.last : null;
|
|
174
|
+
const sendCompressed = compressed && worthSendingGzip ? compressed : null;
|
|
175
|
+
const serverTiming = buildServerTiming({
|
|
176
|
+
defLoadMs: args.defLoadMs,
|
|
177
|
+
treeBuildMs,
|
|
178
|
+
solveMs,
|
|
179
|
+
serializeMs,
|
|
180
|
+
gzipMs,
|
|
181
|
+
serverTotalMs,
|
|
182
|
+
rhino,
|
|
183
|
+
settle,
|
|
184
|
+
byteRefOutcome: args.byteRefOutcome,
|
|
185
|
+
// L2 was consulted (hook present) and missed — otherwise not consulted.
|
|
186
|
+
l2CacheHit: args.solveCache ? false : null,
|
|
187
|
+
prepMarks: args.prepMarks ?? []
|
|
188
|
+
});
|
|
189
|
+
const headers = {
|
|
190
|
+
"Content-Type": "application/json",
|
|
191
|
+
"Server-Timing": serverTiming,
|
|
192
|
+
[COMPUTE_VERSION_HEADER]: String(COMPUTE_CONTRACT_VERSION),
|
|
193
|
+
Vary: "Accept-Encoding"
|
|
194
|
+
};
|
|
195
|
+
const metrics = {
|
|
196
|
+
treeBuildMs,
|
|
197
|
+
solveMs,
|
|
198
|
+
serializeMs,
|
|
199
|
+
gzipMs,
|
|
200
|
+
serverTotalMs,
|
|
201
|
+
serializedBytes: serialized.length,
|
|
202
|
+
compressedBytes: sendCompressed?.byteLength ?? null,
|
|
203
|
+
l2CacheHit: args.solveCache ? false : null
|
|
204
|
+
};
|
|
205
|
+
let envelope;
|
|
206
|
+
if (sendCompressed) {
|
|
207
|
+
headers["Content-Encoding"] = "gzip";
|
|
208
|
+
headers["Content-Length"] = String(sendCompressed.byteLength);
|
|
209
|
+
envelope = {
|
|
210
|
+
body: new Uint8Array(sendCompressed),
|
|
211
|
+
encoding: "gzip",
|
|
212
|
+
headers,
|
|
213
|
+
result,
|
|
214
|
+
metrics
|
|
215
|
+
};
|
|
216
|
+
} else {
|
|
217
|
+
headers["Content-Length"] = String(Buffer.byteLength(serialized));
|
|
218
|
+
envelope = { body: serialized, headers, result, metrics };
|
|
219
|
+
}
|
|
220
|
+
return {
|
|
221
|
+
kind: "ok",
|
|
222
|
+
envelope,
|
|
223
|
+
solveMs,
|
|
224
|
+
errorCount: result.errors?.length ?? 0,
|
|
225
|
+
warningCount: result.warnings?.length ?? 0
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function buildEnvelopeFromCacheEntry(entryBytes, inputKey, args) {
|
|
229
|
+
const decoded = decodeSolveCacheEntry(entryBytes);
|
|
230
|
+
if (!decoded || decoded.header.inputHash !== inputKey) return null;
|
|
231
|
+
const { header, gzippedBody } = decoded;
|
|
232
|
+
const clientWantsGzip = /\bgzip\b/i.test(args.acceptEncoding);
|
|
233
|
+
const serverTotalMs = performance.now() - args.loadStartMs;
|
|
234
|
+
const serverTiming = buildServerTiming({
|
|
235
|
+
defLoadMs: args.defLoadMs,
|
|
236
|
+
treeBuildMs: 0,
|
|
237
|
+
solveMs: 0,
|
|
238
|
+
serializeMs: 0,
|
|
239
|
+
gzipMs: 0,
|
|
240
|
+
serverTotalMs,
|
|
241
|
+
rhino: null,
|
|
242
|
+
settle: null,
|
|
243
|
+
byteRefOutcome: args.byteRefOutcome,
|
|
244
|
+
l2CacheHit: true,
|
|
245
|
+
prepMarks: args.prepMarks ?? []
|
|
246
|
+
});
|
|
247
|
+
const headers = {
|
|
248
|
+
"Content-Type": "application/json",
|
|
249
|
+
"Server-Timing": serverTiming,
|
|
250
|
+
[COMPUTE_VERSION_HEADER]: String(COMPUTE_CONTRACT_VERSION),
|
|
251
|
+
Vary: "Accept-Encoding"
|
|
252
|
+
};
|
|
253
|
+
const metrics = {
|
|
254
|
+
treeBuildMs: 0,
|
|
255
|
+
solveMs: 0,
|
|
256
|
+
serializeMs: 0,
|
|
257
|
+
gzipMs: 0,
|
|
258
|
+
serverTotalMs,
|
|
259
|
+
serializedBytes: header.serializedBytes,
|
|
260
|
+
compressedBytes: clientWantsGzip ? gzippedBody.byteLength : null,
|
|
261
|
+
l2CacheHit: true
|
|
262
|
+
};
|
|
263
|
+
let envelope;
|
|
264
|
+
if (clientWantsGzip) {
|
|
265
|
+
headers["Content-Encoding"] = "gzip";
|
|
266
|
+
headers["Content-Length"] = String(gzippedBody.byteLength);
|
|
267
|
+
envelope = { body: new Uint8Array(gzippedBody), encoding: "gzip", headers, metrics };
|
|
268
|
+
} else {
|
|
269
|
+
const json = gunzipEntryBody(gzippedBody);
|
|
270
|
+
headers["Content-Length"] = String(Buffer.byteLength(json));
|
|
271
|
+
envelope = { body: json, headers, metrics };
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
kind: "ok",
|
|
275
|
+
envelope,
|
|
276
|
+
solveMs: 0,
|
|
277
|
+
errorCount: header.errorCount,
|
|
278
|
+
warningCount: header.warningCount
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
function buildServerTiming(parts) {
|
|
282
|
+
let header = `load;dur=${parts.defLoadMs.toFixed(1)}, tree;dur=${parts.treeBuildMs.toFixed(1)}, solve;dur=${parts.solveMs.toFixed(1)}, serialize;dur=${parts.serializeMs.toFixed(1)}, gzip;dur=${parts.gzipMs.toFixed(1)}, total;dur=${parts.serverTotalMs.toFixed(1)}`;
|
|
283
|
+
const rhino = parts.rhino;
|
|
284
|
+
if (rhino) {
|
|
285
|
+
const onRhinoMs = rhino.decode + rhino.solve + rhino.encode;
|
|
286
|
+
const computeLinkMs = Math.max(0, parts.solveMs - onRhinoMs);
|
|
287
|
+
header += `, 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)}`;
|
|
288
|
+
}
|
|
289
|
+
for (const [label, ms] of parts.prepMarks) {
|
|
290
|
+
header += `, p_${label};dur=${ms.toFixed(1)}`;
|
|
291
|
+
}
|
|
292
|
+
const settle = parts.settle;
|
|
293
|
+
if (settle) {
|
|
294
|
+
header += `, selva_cache;dur=${settle.fromCache ? 1 : 0}`;
|
|
295
|
+
if (settle.definitionReuploaded !== void 0) {
|
|
296
|
+
header += `, def_reupload;dur=${settle.definitionReuploaded ? 1 : 0}`;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
const byteRef = parts.byteRefOutcome;
|
|
300
|
+
if (byteRef) {
|
|
301
|
+
const verdict = !byteRef.loaded ? "skipped" : byteRef.fromCache ? "hit" : "miss";
|
|
302
|
+
header += `, def_bytes;desc=${verdict}`;
|
|
303
|
+
}
|
|
304
|
+
if (parts.l2CacheHit !== null) {
|
|
305
|
+
header += `, l2_cache;dur=${parts.l2CacheHit ? 1 : 0}`;
|
|
306
|
+
}
|
|
307
|
+
return header;
|
|
308
|
+
}
|
|
309
|
+
function deriveSolveCacheInputKey(transformedTree, config) {
|
|
310
|
+
const canonical = stableStringify({
|
|
311
|
+
v: COMPUTE_CONTRACT_VERSION,
|
|
312
|
+
tree: transformedTree,
|
|
313
|
+
config
|
|
314
|
+
});
|
|
315
|
+
const hash = createHash("sha256").update(canonical).digest("hex");
|
|
316
|
+
return { canonical, hash };
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export { runSolvePipeline as r };
|
|
320
|
+
//# sourceMappingURL=solve-cache-key.js-BIwJfBG9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solve-cache-key.js-BIwJfBG9.js","sources":["../../../../.svelte-kit/output/server/chunks/solve-cache-key.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { processInput, TreeBuilder, RhinoComputeError, ErrorCodes, stableStringify } from \"@selvajs/compute\";\nimport { gunzipSync, gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\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 // Dynamic value lists ride the ValueList contract on the wire — the plugin's\n // GetDynamicValueListParameter deliberately reuses TypeName \"ValueList\" so the\n // compute fork's existing ValueList input case assigns it. processInput has no\n // dynamicValueList handler; without this mapping it falls back to Geometry with\n // a null default and TreeBuilder DROPS the input, so the user's selection never\n // reaches the definition (the param then solves on its own stale fallback).\n paramType: input.paramType === \"dynamicValueList\" ? \"valueList\" : 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 const processed = processInput(raw);\n const effective = value ?? input.default;\n if (processed.default == null && effective != null) {\n if (Array.isArray(effective)) {\n processed.default = effective;\n } else if (processed.paramType === \"ValueList\" && typeof effective !== \"object\") {\n processed.default = effective;\n }\n }\n return processed;\n}\nfunction encodeSolveCacheEntry(header, gzippedBody) {\n const headerJson = Buffer.from(JSON.stringify(header), \"utf8\");\n const out = Buffer.allocUnsafe(4 + headerJson.byteLength + gzippedBody.byteLength);\n out.writeUInt32BE(headerJson.byteLength, 0);\n headerJson.copy(out, 4);\n Buffer.from(gzippedBody.buffer, gzippedBody.byteOffset, gzippedBody.byteLength).copy(\n out,\n 4 + headerJson.byteLength\n );\n return out;\n}\nfunction decodeSolveCacheEntry(bytes) {\n if (bytes.byteLength < 4) return null;\n const buf = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n const headerLen = buf.readUInt32BE(0);\n const headerEnd = 4 + headerLen;\n if (headerEnd > buf.byteLength) return null;\n let header;\n try {\n header = JSON.parse(buf.toString(\"utf8\", 4, headerEnd));\n } catch {\n return null;\n }\n if (typeof header?.errorCount !== \"number\" || typeof header?.warningCount !== \"number\" || typeof header?.serializedBytes !== \"number\" || typeof header?.inputHash !== \"string\") {\n return null;\n }\n const gzippedBody = new Uint8Array(\n bytes.buffer,\n bytes.byteOffset + headerEnd,\n bytes.byteLength - headerEnd\n );\n return { header, gzippedBody };\n}\nfunction gunzipEntryBody(gzippedBody) {\n return gunzipSync(gzippedBody).toString(\"utf8\");\n}\nconst gzipAsync = promisify(gzip);\nconst COMPUTE_CONTRACT_VERSION = 1;\nconst COMPUTE_VERSION_HEADER = \"X-Selva-Compute-Version\";\nasync function runSolvePipeline(args) {\n const { client, signal } = args;\n const treeBuildStart = performance.now();\n const inputTree = TreeBuilder.fromInputParams(\n args.inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, args.values[input.id]))\n );\n const treeBuildMs = performance.now() - treeBuildStart;\n let inputKey = null;\n if (args.solveCache) {\n inputKey = deriveSolveCacheInputKey(inputTree, args.solveCache.configSubset).hash;\n let stored = null;\n try {\n stored = await args.solveCache.lookup(inputKey);\n } catch {\n stored = null;\n }\n if (stored) {\n const hit = buildEnvelopeFromCacheEntry(stored, inputKey, args);\n if (hit) return hit;\n }\n }\n const settleSeqBefore = client.solveMeta.seq;\n const rhinoSeqBefore = client.rhinoTiming.seq;\n let result;\n const solveStart = performance.now();\n try {\n result = await client.scheduler.solve(args.definitionSource, inputTree, { signal });\n } catch (err) {\n const durationMs = performance.now() - solveStart;\n const isAbort = err instanceof Error && err.name === \"AbortError\";\n if (isAbort) {\n if (signal.aborted) return { kind: \"client_abort\", durationMs };\n return {\n kind: \"timeout\",\n durationMs,\n message: `Solve exceeded the ${Math.round(args.maxSolveDurationMs / 1e3)}s deadline.`\n };\n }\n if (err instanceof RhinoComputeError) {\n if (err.code === ErrorCodes.QUEUE_FULL) {\n return {\n kind: \"shed\",\n durationMs,\n reason: \"queue_full\",\n retryAfterSeconds: 1,\n message: \"Compute server is at capacity. Retry shortly.\"\n };\n }\n if (err.code === ErrorCodes.QUEUE_TIMEOUT) {\n return {\n kind: \"shed\",\n durationMs,\n reason: \"queue_timeout\",\n retryAfterSeconds: 1,\n message: \"Compute request waited too long in the queue. Retry shortly.\"\n };\n }\n }\n return { kind: \"compute_error\", durationMs, error: err };\n }\n const solveMs = performance.now() - solveStart;\n const serializeStart = performance.now();\n let serialized;\n try {\n serialized = JSON.stringify(result);\n } catch (err) {\n if (err instanceof RangeError) return { kind: \"too_large\" };\n throw err;\n }\n if (serialized.length > args.responseMaxBytes) return { kind: \"too_large\" };\n const serializeMs = performance.now() - serializeStart;\n const clientWantsGzip = /\\bgzip\\b/i.test(args.acceptEncoding);\n const worthSendingGzip = clientWantsGzip && serialized.length > 1024;\n const willCache = args.solveCache != null;\n let compressed = null;\n let gzipMs = 0;\n if (worthSendingGzip || willCache) {\n const gzipStart = performance.now();\n compressed = await gzipAsync(Buffer.from(serialized));\n gzipMs = performance.now() - gzipStart;\n }\n if (args.solveCache && inputKey && compressed) {\n const entry = encodeSolveCacheEntry(\n {\n errorCount: result.errors?.length ?? 0,\n warningCount: result.warnings?.length ?? 0,\n serializedBytes: serialized.length,\n inputHash: inputKey\n },\n new Uint8Array(compressed)\n );\n args.solveCache.store(inputKey, entry);\n }\n const serverTotalMs = performance.now() - args.loadStartMs;\n const settle = client.solveMeta.seq === settleSeqBefore + 1 ? client.solveMeta.last : null;\n const rhino = settle && !settle.fromCache && client.rhinoTiming.seq === rhinoSeqBefore + 1 ? client.rhinoTiming.last : null;\n const sendCompressed = compressed && worthSendingGzip ? compressed : null;\n const serverTiming = buildServerTiming({\n defLoadMs: args.defLoadMs,\n treeBuildMs,\n solveMs,\n serializeMs,\n gzipMs,\n serverTotalMs,\n rhino,\n settle,\n byteRefOutcome: args.byteRefOutcome,\n // L2 was consulted (hook present) and missed — otherwise not consulted.\n l2CacheHit: args.solveCache ? false : null,\n prepMarks: args.prepMarks ?? []\n });\n const headers = {\n \"Content-Type\": \"application/json\",\n \"Server-Timing\": serverTiming,\n [COMPUTE_VERSION_HEADER]: String(COMPUTE_CONTRACT_VERSION),\n Vary: \"Accept-Encoding\"\n };\n const metrics = {\n treeBuildMs,\n solveMs,\n serializeMs,\n gzipMs,\n serverTotalMs,\n serializedBytes: serialized.length,\n compressedBytes: sendCompressed?.byteLength ?? null,\n l2CacheHit: args.solveCache ? false : null\n };\n let envelope;\n if (sendCompressed) {\n headers[\"Content-Encoding\"] = \"gzip\";\n headers[\"Content-Length\"] = String(sendCompressed.byteLength);\n envelope = {\n body: new Uint8Array(sendCompressed),\n encoding: \"gzip\",\n headers,\n result,\n metrics\n };\n } else {\n headers[\"Content-Length\"] = String(Buffer.byteLength(serialized));\n envelope = { body: serialized, headers, result, metrics };\n }\n return {\n kind: \"ok\",\n envelope,\n solveMs,\n errorCount: result.errors?.length ?? 0,\n warningCount: result.warnings?.length ?? 0\n };\n}\nfunction buildEnvelopeFromCacheEntry(entryBytes, inputKey, args) {\n const decoded = decodeSolveCacheEntry(entryBytes);\n if (!decoded || decoded.header.inputHash !== inputKey) return null;\n const { header, gzippedBody } = decoded;\n const clientWantsGzip = /\\bgzip\\b/i.test(args.acceptEncoding);\n const serverTotalMs = performance.now() - args.loadStartMs;\n const serverTiming = buildServerTiming({\n defLoadMs: args.defLoadMs,\n treeBuildMs: 0,\n solveMs: 0,\n serializeMs: 0,\n gzipMs: 0,\n serverTotalMs,\n rhino: null,\n settle: null,\n byteRefOutcome: args.byteRefOutcome,\n l2CacheHit: true,\n prepMarks: args.prepMarks ?? []\n });\n const headers = {\n \"Content-Type\": \"application/json\",\n \"Server-Timing\": serverTiming,\n [COMPUTE_VERSION_HEADER]: String(COMPUTE_CONTRACT_VERSION),\n Vary: \"Accept-Encoding\"\n };\n const metrics = {\n treeBuildMs: 0,\n solveMs: 0,\n serializeMs: 0,\n gzipMs: 0,\n serverTotalMs,\n serializedBytes: header.serializedBytes,\n compressedBytes: clientWantsGzip ? gzippedBody.byteLength : null,\n l2CacheHit: true\n };\n let envelope;\n if (clientWantsGzip) {\n headers[\"Content-Encoding\"] = \"gzip\";\n headers[\"Content-Length\"] = String(gzippedBody.byteLength);\n envelope = { body: new Uint8Array(gzippedBody), encoding: \"gzip\", headers, metrics };\n } else {\n const json = gunzipEntryBody(gzippedBody);\n headers[\"Content-Length\"] = String(Buffer.byteLength(json));\n envelope = { body: json, headers, metrics };\n }\n return {\n kind: \"ok\",\n envelope,\n solveMs: 0,\n errorCount: header.errorCount,\n warningCount: header.warningCount\n };\n}\nfunction buildServerTiming(parts) {\n let header = `load;dur=${parts.defLoadMs.toFixed(1)}, tree;dur=${parts.treeBuildMs.toFixed(1)}, solve;dur=${parts.solveMs.toFixed(1)}, serialize;dur=${parts.serializeMs.toFixed(1)}, gzip;dur=${parts.gzipMs.toFixed(1)}, total;dur=${parts.serverTotalMs.toFixed(1)}`;\n const rhino = parts.rhino;\n if (rhino) {\n const onRhinoMs = rhino.decode + rhino.solve + rhino.encode;\n const computeLinkMs = Math.max(0, parts.solveMs - onRhinoMs);\n header += `, 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 parts.prepMarks) {\n header += `, p_${label};dur=${ms.toFixed(1)}`;\n }\n const settle = parts.settle;\n if (settle) {\n header += `, selva_cache;dur=${settle.fromCache ? 1 : 0}`;\n if (settle.definitionReuploaded !== void 0) {\n header += `, def_reupload;dur=${settle.definitionReuploaded ? 1 : 0}`;\n }\n }\n const byteRef = parts.byteRefOutcome;\n if (byteRef) {\n const verdict = !byteRef.loaded ? \"skipped\" : byteRef.fromCache ? \"hit\" : \"miss\";\n header += `, def_bytes;desc=${verdict}`;\n }\n if (parts.l2CacheHit !== null) {\n header += `, l2_cache;dur=${parts.l2CacheHit ? 1 : 0}`;\n }\n return header;\n}\nfunction deriveSolveCacheInputKey(transformedTree, config) {\n const canonical = stableStringify({\n v: COMPUTE_CONTRACT_VERSION,\n tree: transformedTree,\n config\n });\n const hash = createHash(\"sha256\").update(canonical).digest(\"hex\");\n return { canonical, hash };\n}\nexport {\n runSolvePipeline as r\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { timingSafeEqual, createHmac, randomBytes } from 'node:crypto';
|
|
2
|
+
|
|
3
|
+
const MIN_TOKEN_SECRET_LENGTH = 32;
|
|
4
|
+
function createTokenCodec(config) {
|
|
5
|
+
const { prefix, secret } = config;
|
|
6
|
+
if (secret.length < MIN_TOKEN_SECRET_LENGTH) {
|
|
7
|
+
throw new Error(
|
|
8
|
+
`Secret for "${prefix}" tokens must be at least ${MIN_TOKEN_SECRET_LENGTH} characters (got ${secret.length}). Generate one with: openssl rand -base64 32`
|
|
9
|
+
);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
prefix,
|
|
13
|
+
mintRawToken() {
|
|
14
|
+
return prefix + randomBytes(32).toString("base64url");
|
|
15
|
+
},
|
|
16
|
+
hashToken(raw) {
|
|
17
|
+
return createHmac("sha256", secret).update(raw).digest("base64url");
|
|
18
|
+
},
|
|
19
|
+
hashesEqual(a, b) {
|
|
20
|
+
const ab = Buffer.from(a);
|
|
21
|
+
const bb = Buffer.from(b);
|
|
22
|
+
if (ab.length !== bb.length) return false;
|
|
23
|
+
return timingSafeEqual(ab, bb);
|
|
24
|
+
},
|
|
25
|
+
looksLikeToken(value) {
|
|
26
|
+
return value.startsWith(prefix);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { createTokenCodec as c };
|
|
32
|
+
//# sourceMappingURL=token-codec.js-1RPNe2RW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-codec.js-1RPNe2RW.js","sources":["../../../../.svelte-kit/output/server/chunks/token-codec.js"],"sourcesContent":["import { timingSafeEqual, createHmac, randomBytes } from \"node:crypto\";\nconst MIN_TOKEN_SECRET_LENGTH = 32;\nfunction createTokenCodec(config) {\n const { prefix, secret } = config;\n if (secret.length < MIN_TOKEN_SECRET_LENGTH) {\n throw new Error(\n `Secret for \"${prefix}\" tokens must be at least ${MIN_TOKEN_SECRET_LENGTH} characters (got ${secret.length}). Generate one with: openssl rand -base64 32`\n );\n }\n return {\n prefix,\n mintRawToken() {\n return prefix + randomBytes(32).toString(\"base64url\");\n },\n hashToken(raw) {\n return createHmac(\"sha256\", secret).update(raw).digest(\"base64url\");\n },\n hashesEqual(a, b) {\n const ab = Buffer.from(a);\n const bb = Buffer.from(b);\n if (ab.length !== bb.length) return false;\n return timingSafeEqual(ab, bb);\n },\n looksLikeToken(value) {\n return value.startsWith(prefix);\n }\n };\n}\nexport {\n createTokenCodec as c\n};\n"],"names":[],"mappings":";;AACA,MAAM,uBAAuB,GAAG,EAAE;AAClC,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAClC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;AACnC,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,uBAAuB,EAAE;AAC/C,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,6CAA6C;AAC9J,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,YAAY,GAAG;AACnB,MAAM,OAAO,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC3D,IAAI,CAAC;AACL,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,MAAM,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACzE,IAAI,CAAC;AACL,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK;AAC/C,MAAM,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC;AACpC,IAAI,CAAC;AACL,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,MAAM,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;AACrC,IAAI;AACJ,GAAG;AACH;;;;"}
|
package/build/server/chunks/chunks/{token.server.js-q3fv9Fqo.js → token.server.js-DbTfFk9r.js}
RENAMED
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import { randomBytes, createHmac } from 'node:crypto';
|
|
2
1
|
import { b as private_env } from './shared-server.js-DaWdgxVh.js';
|
|
2
|
+
import { c as createTokenCodec } from './token-codec.js-1RPNe2RW.js';
|
|
3
3
|
|
|
4
4
|
const TOKEN_PREFIX = "invite_";
|
|
5
|
-
|
|
5
|
+
let cached = null;
|
|
6
|
+
function getCodec() {
|
|
6
7
|
const secret = private_env.INVITE_TOKEN_SECRET || private_env.SELVA_HMAC_KEY;
|
|
7
8
|
if (!secret) {
|
|
8
9
|
throw new Error(
|
|
9
10
|
"Missing required env var: INVITE_TOKEN_SECRET (or SELVA_HMAC_KEY as fallback). Generate with: openssl rand -base64 32"
|
|
10
11
|
);
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
if (cached?.secret !== secret) {
|
|
14
|
+
cached = { secret, codec: createTokenCodec({ prefix: TOKEN_PREFIX, secret }) };
|
|
15
|
+
}
|
|
16
|
+
return cached.codec;
|
|
13
17
|
}
|
|
14
18
|
function mintRawToken() {
|
|
15
|
-
return
|
|
19
|
+
return getCodec().mintRawToken();
|
|
16
20
|
}
|
|
17
21
|
function hashToken(raw) {
|
|
18
|
-
return
|
|
22
|
+
return getCodec().hashToken(raw);
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
export { hashToken as h, mintRawToken as m };
|
|
22
|
-
//# sourceMappingURL=token.server.js-
|
|
26
|
+
//# sourceMappingURL=token.server.js-DbTfFk9r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.server.js-DbTfFk9r.js","sources":["../../../../.svelte-kit/output/server/chunks/token.server.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { c as createTokenCodec } from \"./token-codec.js\";\nconst TOKEN_PREFIX = \"invite_\";\nlet cached = null;\nfunction getCodec() {\n const secret = private_env.INVITE_TOKEN_SECRET || private_env.SELVA_HMAC_KEY;\n if (!secret) {\n throw new Error(\n \"Missing required env var: INVITE_TOKEN_SECRET (or SELVA_HMAC_KEY as fallback). Generate with: openssl rand -base64 32\"\n );\n }\n if (cached?.secret !== secret) {\n cached = { secret, codec: createTokenCodec({ prefix: TOKEN_PREFIX, secret }) };\n }\n return cached.codec;\n}\nfunction mintRawToken() {\n return getCodec().mintRawToken();\n}\nfunction hashToken(raw) {\n return getCodec().hashToken(raw);\n}\nexport {\n hashToken as h,\n mintRawToken as m\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG,SAAS;AAC9B,IAAI,MAAM,GAAG,IAAI;AACjB,SAAS,QAAQ,GAAG;AACpB,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,IAAI,WAAW,CAAC,cAAc;AAC9E,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM;AACN,KAAK;AACL,EAAE;AACF,EAAE,IAAI,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE;AACjC,IAAI,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE;AAClF,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,KAAK;AACrB;AACA,SAAS,YAAY,GAAG;AACxB,EAAE,OAAO,QAAQ,EAAE,CAAC,YAAY,EAAE;AAClC;AACA,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB,EAAE,OAAO,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;AAClC;;;;"}
|