@selvajs/selva 4.8.0-beta.3 → 4.8.0-beta.4
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/B2m1aiqd.js +2 -0
- package/build/client/_app/immutable/chunks/B2m1aiqd.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2m1aiqd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHaxl4UA2.js +1 -0
- package/build/client/_app/immutable/chunks/BHaxl4UA2.js.br +2 -0
- package/build/client/_app/immutable/chunks/BHaxl4UA2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByCmnt592.js +1 -0
- package/build/client/_app/immutable/chunks/ByCmnt592.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByCmnt592.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CHffZrQP2.js +1 -0
- package/build/client/_app/immutable/chunks/CHffZrQP2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CHffZrQP2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWctdF4V.js +1 -0
- package/build/client/_app/immutable/chunks/CWctdF4V.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWctdF4V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cs0rCd9B.js +1 -0
- package/build/client/_app/immutable/chunks/Cs0rCd9B.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cs0rCd9B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DERvcgWk.js +3 -0
- package/build/client/_app/immutable/chunks/DERvcgWk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DERvcgWk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dj1uuMrB.js +1 -0
- package/build/client/_app/immutable/chunks/Dj1uuMrB.js.br +3 -0
- package/build/client/_app/immutable/chunks/Dj1uuMrB.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Dy62haiU.js +2 -0
- package/build/client/_app/immutable/entry/app.Dy62haiU.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Dy62haiU.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BUmLt6z-.js +1 -0
- package/build/client/_app/immutable/entry/start.BUmLt6z-.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BUmLt6z-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BroM7TDD.js +1 -0
- package/build/client/_app/immutable/nodes/1.BroM7TDD.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BroM7TDD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.XFNvIuAP.js +3 -0
- package/build/client/_app/immutable/nodes/11.XFNvIuAP.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.XFNvIuAP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.hLLWE2Ji.js +2 -0
- package/build/client/_app/immutable/nodes/13.hLLWE2Ji.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.hLLWE2Ji.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.D9rIZM_m.js +2 -0
- package/build/client/_app/immutable/nodes/14.D9rIZM_m.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.D9rIZM_m.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.C3r0yl5v.js +21 -0
- package/build/client/_app/immutable/nodes/15.C3r0yl5v.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.C3r0yl5v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.DKSgWPWU.js +6 -0
- package/build/client/_app/immutable/nodes/16.DKSgWPWU.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DKSgWPWU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.QReUrw5d.js +2 -0
- package/build/client/_app/immutable/nodes/17.QReUrw5d.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.QReUrw5d.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.0f5cLm_b.js +7 -0
- package/build/client/_app/immutable/nodes/19.0f5cLm_b.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.0f5cLm_b.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DAsKCl3L.js +1 -0
- package/build/client/_app/immutable/nodes/2.DAsKCl3L.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DAsKCl3L.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.CnxjLfXf.js +2 -0
- package/build/client/_app/immutable/nodes/20.CnxjLfXf.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CnxjLfXf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.CmIrh-tf.js +5497 -0
- package/build/client/_app/immutable/nodes/21.CmIrh-tf.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CmIrh-tf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.CbN4qlix.js +6 -0
- package/build/client/_app/immutable/nodes/22.CbN4qlix.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.CbN4qlix.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.BTmjTlVf.js +16 -0
- package/build/client/_app/immutable/nodes/24.BTmjTlVf.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BTmjTlVf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.CINOrkSN.js +6 -0
- package/build/client/_app/immutable/nodes/25.CINOrkSN.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.CINOrkSN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.Cle19B0u.js +4 -0
- package/build/client/_app/immutable/nodes/28.Cle19B0u.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.Cle19B0u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.CRngUFAO.js +4 -0
- package/build/client/_app/immutable/nodes/29.CRngUFAO.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.CRngUFAO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CpPesHdc.js +1 -0
- package/build/client/_app/immutable/nodes/3.CpPesHdc.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CpPesHdc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CcDPX0uD.js +2 -0
- package/build/client/_app/immutable/nodes/30.CcDPX0uD.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CcDPX0uD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.B3RQjLto.js +2 -0
- package/build/client/_app/immutable/nodes/31.B3RQjLto.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.B3RQjLto.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CFrbcht_.js +1 -0
- package/build/client/_app/immutable/nodes/5.CFrbcht_.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CFrbcht_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.-7KlEy0g.js +1 -0
- package/build/client/_app/immutable/nodes/6.-7KlEy0g.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.-7KlEy0g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Cb7yXCDW.js +1 -0
- package/build/client/_app/immutable/nodes/7.Cb7yXCDW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Cb7yXCDW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Udv3OSR0.js +2 -0
- package/build/client/_app/immutable/nodes/8.Udv3OSR0.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Udv3OSR0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.B2Tb5eVJ.js +1 -0
- package/build/client/_app/immutable/nodes/9.B2Tb5eVJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B2Tb5eVJ.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/AppHeader.js-BdQKLyBE.js +281 -0
- package/build/server/chunks/chunks/AppHeader.js-BdQKLyBE.js.map +1 -0
- package/build/server/chunks/chunks/SideNav.js-DO1VthFe.js +67 -0
- package/build/server/chunks/chunks/SideNav.js-DO1VthFe.js.map +1 -0
- package/build/server/chunks/chunks/UserChip.js-C-fSwWM-.js +1163 -0
- package/build/server/chunks/chunks/UserChip.js-C-fSwWM-.js.map +1 -0
- package/build/server/chunks/chunks/access.server.js-B9md32Em.js +470 -0
- package/build/server/chunks/chunks/access.server.js-B9md32Em.js.map +1 -0
- package/build/server/chunks/chunks/access2.server.js-hdqZkiJP.js +22 -0
- package/build/server/chunks/chunks/access2.server.js-hdqZkiJP.js.map +1 -0
- package/build/server/chunks/chunks/admin-config.js-DbxHlEX-.js +3 -0
- package/build/server/chunks/chunks/admin-config.js-DbxHlEX-.js.map +1 -0
- package/build/server/chunks/chunks/api-errors.js-DosmliOb.js +141 -0
- package/build/server/chunks/chunks/api-errors.js-DosmliOb.js.map +1 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-i0vG4aoe.js +162 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-i0vG4aoe.js.map +1 -0
- package/build/server/chunks/chunks/auth.server.js-DBV_9IRm.js +2 -0
- package/build/server/chunks/chunks/auth.server.js-DBV_9IRm.js.map +1 -0
- package/build/server/chunks/chunks/bootHealth.server.js-CU9-w0Po.js +91 -0
- package/build/server/chunks/chunks/bootHealth.server.js-CU9-w0Po.js.map +1 -0
- package/build/server/chunks/chunks/client.js-DR5TCsCi.js +59 -0
- package/build/server/chunks/chunks/client.js-DR5TCsCi.js.map +1 -0
- package/build/server/chunks/chunks/computeLimits.js-DfoUIXcs.js +47 -0
- package/build/server/chunks/chunks/computeLimits.js-DfoUIXcs.js.map +1 -0
- package/build/server/chunks/chunks/engine.server.js-BBfASUFz.js +580 -0
- package/build/server/chunks/chunks/engine.server.js-BBfASUFz.js.map +1 -0
- package/build/server/chunks/chunks/forms.js-Cg1smB8A.js +2 -0
- package/build/server/chunks/chunks/forms.js-Cg1smB8A.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-Du115o1_.js.map +1 -1
- package/build/server/chunks/chunks/internal2.js-DDzAKJyc.js +224 -0
- package/build/server/chunks/chunks/internal2.js-DDzAKJyc.js.map +1 -0
- package/build/server/chunks/chunks/navigation.js-Cg1smB8A.js +2 -0
- package/build/server/chunks/chunks/navigation.js-Cg1smB8A.js.map +1 -0
- package/build/server/chunks/chunks/org-members.server.js-vcFLmUhD.js +35 -0
- package/build/server/chunks/chunks/org-members.server.js-vcFLmUhD.js.map +1 -0
- package/build/server/chunks/chunks/package.js-C1LylBVO.js +79 -0
- package/build/server/chunks/chunks/package.js-C1LylBVO.js.map +1 -0
- package/build/server/chunks/chunks/paths.js-DXDcXA0-.js +19 -0
- package/build/server/chunks/chunks/paths.js-DXDcXA0-.js.map +1 -0
- package/build/server/chunks/chunks/permissions.server.js-DH_n7uec.js +15 -0
- package/build/server/chunks/chunks/permissions.server.js-DH_n7uec.js.map +1 -0
- package/build/server/chunks/chunks/providers.server.js-DJ9IeW2d.js +6354 -0
- package/build/server/chunks/chunks/providers.server.js-DJ9IeW2d.js.map +1 -0
- package/build/server/chunks/chunks/resolve.server.js-BvOer2RB.js +62 -0
- package/build/server/chunks/chunks/resolve.server.js-BvOer2RB.js.map +1 -0
- package/build/server/chunks/chunks/route.js-q7VYdCdP.js +185 -0
- package/build/server/chunks/chunks/route.js-q7VYdCdP.js.map +1 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-BHxfSSOy.js +152 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-BHxfSSOy.js.map +1 -0
- package/build/server/chunks/chunks/serverConfigWrite.js-D6aTltyi.js +89 -0
- package/build/server/chunks/chunks/serverConfigWrite.js-D6aTltyi.js.map +1 -0
- package/build/server/chunks/chunks/solve.server.js-VAD2x0Cy.js +308 -0
- package/build/server/chunks/chunks/solve.server.js-VAD2x0Cy.js.map +1 -0
- package/build/server/chunks/chunks/state.js-BctZJYoH.js +76 -0
- package/build/server/chunks/chunks/state.js-BctZJYoH.js.map +1 -0
- package/build/server/chunks/chunks/stores.js-geMmaWjz.js +35 -0
- package/build/server/chunks/chunks/stores.js-geMmaWjz.js.map +1 -0
- package/build/server/chunks/chunks/utils2.js-StB0R7IF.js +62 -0
- package/build/server/chunks/chunks/utils2.js-StB0R7IF.js.map +1 -0
- package/build/server/chunks/chunks/visibility.server.js-C51y52V-.js +110 -0
- package/build/server/chunks/chunks/visibility.server.js-C51y52V-.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CHZVfZ8j.js +85 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CHZVfZ8j.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-CsCxw5SL.js +54 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-CsCxw5SL.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-AjY3cvvD.js +80 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-AjY3cvvD.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-B3xZUNod.js +51 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-B3xZUNod.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-B2xk64oj.js +72 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-B2xk64oj.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BghL4bOV.js +75 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BghL4bOV.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-D1gaCv6K.js +34 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-D1gaCv6K.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-C1utzGCL.js +72 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-C1utzGCL.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-wiOoDsWj.js +103 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-wiOoDsWj.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-C92ZOiNG.js +210 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-C92ZOiNG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-Bg4x4_4d.js +90 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-Bg4x4_4d.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-S9zrihH3.js +405 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-S9zrihH3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-B3PJONNS.js +76 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-B3PJONNS.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-B9t84T69.js +46 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-B9t84T69.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DXq22COU.js +87 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DXq22COU.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DfYdJzuN.js +61 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DfYdJzuN.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-CDPYJ3Nx.js +89 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-CDPYJ3Nx.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-oqS8ZTXB.js +57 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-oqS8ZTXB.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-DYi9-Jnq.js +84 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-DYi9-Jnq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BbvBQzNm.js +64 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BbvBQzNm.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-mIenpk8m.js +63 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-mIenpk8m.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-BhexgZef.js +37 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-BhexgZef.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-DSUsuhk4.js +33 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-DSUsuhk4.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-hpVMSdGv.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-hpVMSdGv.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-BXx6RL2R.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-BXx6RL2R.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-D_tz3WHk.js +81 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-D_tz3WHk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-C4fva-_N.js +0 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-C4fva-_N.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-BAFY0EHU.js +54 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-BAFY0EHU.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BaR-Zqz6.js +48 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BaR-Zqz6.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-CITbkswG.js +40 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-CITbkswG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-BF6EBotl.js +113 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-BF6EBotl.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-Bow-eWMK.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-Bow-eWMK.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CIU5F4e3.js +36 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CIU5F4e3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CXzXzQ_Y.js +30 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CXzXzQ_Y.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-JymRD9oa.js +74 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-JymRD9oa.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-DZiUSs7k.js +102 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-DZiUSs7k.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BsAnr8r1.js +46 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BsAnr8r1.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-C4-QxaPA.js +62 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-C4-QxaPA.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-Cd5XaLPh.js +33 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-Cd5XaLPh.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-Kc5DgTVG.js +90 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-Kc5DgTVG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-MZvZRsdd.js +84 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-MZvZRsdd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-DprbmpHC.js +51 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-DprbmpHC.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-C3NM2QDc.js +51 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-C3NM2QDc.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CfQOc2Hg.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CfQOc2Hg.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CHQT-jtG.js +83 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CHQT-jtG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CLfcYOd_.js +45 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CLfcYOd_.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-bs2wSVWp.js +49 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-bs2wSVWp.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BaD27IBT.js +52 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BaD27IBT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-ByPtgbbV.js +11 -0
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-ByPtgbbV.js.map +1 -0
- package/build/server/chunks/entries/hooks.server.js-CUvDkMdg.js +341 -0
- package/build/server/chunks/entries/hooks.server.js-CUvDkMdg.js.map +1 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-VFVgrUur.js +36 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-VFVgrUur.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-2KlTVZIU.js +34 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-2KlTVZIU.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-C0VTpXNh.js +77 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-C0VTpXNh.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BryK5mmk.js +110 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BryK5mmk.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-67-mUziE.js +149 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-67-mUziE.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-g1XnYAUr.js +37 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-g1XnYAUr.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CNZ-q5O8.js +31 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CNZ-q5O8.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-CqHv25Xm.js +122 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-CqHv25Xm.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-Dfja1kN9.js +75 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-Dfja1kN9.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-j1Houp0g.js +360 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-j1Houp0g.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-De3S3UBZ.js +245 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-De3S3UBZ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DmnSZob5.js +74 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DmnSZob5.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-DhuYUszC.js +673 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-DhuYUszC.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BWjNyPCS.js +35 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BWjNyPCS.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DGVyGmJ9.js +86 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DGVyGmJ9.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DRvfcp9q.js +617 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DRvfcp9q.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-1JlSAKHt.js +42 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-1JlSAKHt.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CUdye3Fw.js +283 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CUdye3Fw.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Dh0ROljZ.js +81 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Dh0ROljZ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CIuyPkHQ.js +1374 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CIuyPkHQ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Cy-wNdwZ.js +70 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Cy-wNdwZ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-C0Ay2UIz.js +683 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-C0Ay2UIz.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DOVqGiB5.js +63 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DOVqGiB5.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-gdOZj4_R.js +62 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-gdOZj4_R.js.map +1 -0
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-CmYB9byD.js +527 -0
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-CmYB9byD.js.map +1 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-D2elEE0D.js +90 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-D2elEE0D.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-PSj8DyR1.js +118 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-PSj8DyR1.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-DcktHor4.js +13007 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-DcktHor4.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-CeHL-CZ1.js +48 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-CeHL-CZ1.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-Gyo7AGKU.js +322 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-Gyo7AGKU.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-BAdylDf3.js +80 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-BAdylDf3.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DVpsNtL9.js +257 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DVpsNtL9.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-CG87x3DJ.js +50 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-CG87x3DJ.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C0zvat12.js +92 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C0zvat12.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-B1_EUTwd.js +3742 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-B1_EUTwd.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-1qaTrtli.js +114 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-1qaTrtli.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-BaICYcRG.js +322 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-BaICYcRG.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-gSp_ZGV6.js +28 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-gSp_ZGV6.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-D5DRpbSU.js +163 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-D5DRpbSU.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-D0hrsBD1.js +35 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-D0hrsBD1.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-dHTdk7Tg.js +42 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-dHTdk7Tg.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-B7BRdzgg.js +594 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-B7BRdzgg.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-BFRS6jpM.js +58 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-BFRS6jpM.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-D2xjucdi.js +540 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-D2xjucdi.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CFM0uzpr.js +42 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CFM0uzpr.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-9bxGRgPC.js +437 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-9bxGRgPC.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-Dn_s91O8.js +50 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-Dn_s91O8.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DdvY2mVJ.js +263 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DdvY2mVJ.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-C8595n-0.js +32 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-C8595n-0.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BDmxLRQK.js +16 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BDmxLRQK.js.map +1 -0
- package/build/server/chunks/handler--BlB7k85.js +1206 -0
- package/build/server/chunks/handler--BlB7k85.js.map +1 -0
- package/build/server/chunks/index.js-Y2A3DwqX.js +3757 -0
- package/build/server/chunks/index.js-Y2A3DwqX.js.map +1 -0
- package/build/server/chunks/manifest.js-BT_DfCIs.js +598 -0
- package/build/server/chunks/manifest.js-BT_DfCIs.js.map +1 -0
- package/build/server/chunks/nodes/0.js-ju9vn5f2.js +25 -0
- package/build/server/chunks/nodes/0.js-ju9vn5f2.js.map +1 -0
- package/build/server/chunks/nodes/1.js-DmgivMLE.js +9 -0
- package/build/server/chunks/nodes/1.js-DmgivMLE.js.map +1 -0
- package/build/server/chunks/nodes/10.js-B4gH_bmg.js +29 -0
- package/build/server/chunks/nodes/10.js-B4gH_bmg.js.map +1 -0
- package/build/server/chunks/nodes/11.js-CCNlcVch.js +36 -0
- package/build/server/chunks/nodes/11.js-CCNlcVch.js.map +1 -0
- package/build/server/chunks/nodes/12.js-B8PQq7Vu.js +26 -0
- package/build/server/chunks/nodes/12.js-B8PQq7Vu.js.map +1 -0
- package/build/server/chunks/nodes/13.js-Cno4eCy6.js +26 -0
- package/build/server/chunks/nodes/13.js-Cno4eCy6.js.map +1 -0
- package/build/server/chunks/nodes/14.js-CjBKAfPo.js +26 -0
- package/build/server/chunks/nodes/14.js-CjBKAfPo.js.map +1 -0
- package/build/server/chunks/nodes/15.js-DXUVMVJ2.js +36 -0
- package/build/server/chunks/nodes/15.js-DXUVMVJ2.js.map +1 -0
- package/build/server/chunks/nodes/16.js-Bo3fL9eT.js +31 -0
- package/build/server/chunks/nodes/16.js-Bo3fL9eT.js.map +1 -0
- package/build/server/chunks/nodes/17.js-CmQLVl_6.js +9 -0
- package/build/server/chunks/nodes/17.js-CmQLVl_6.js.map +1 -0
- package/build/server/chunks/nodes/18.js-CpYKUscr.js +30 -0
- package/build/server/chunks/nodes/18.js-CpYKUscr.js.map +1 -0
- package/build/server/chunks/nodes/19.js-DJ2Ldubk.js +29 -0
- package/build/server/chunks/nodes/19.js-DJ2Ldubk.js.map +1 -0
- package/build/server/chunks/nodes/2.js-UmIE1lxe.js +29 -0
- package/build/server/chunks/nodes/2.js-UmIE1lxe.js.map +1 -0
- package/build/server/chunks/nodes/20.js-Cx8TVYfb.js +30 -0
- package/build/server/chunks/nodes/20.js-Cx8TVYfb.js.map +1 -0
- package/build/server/chunks/nodes/21.js-De15kfIb.js +39 -0
- package/build/server/chunks/nodes/21.js-De15kfIb.js.map +1 -0
- package/build/server/chunks/nodes/22.js-BlVdz1UV.js +30 -0
- package/build/server/chunks/nodes/22.js-BlVdz1UV.js.map +1 -0
- package/build/server/chunks/nodes/24.js-B1yEpSMv.js +29 -0
- package/build/server/chunks/nodes/24.js-B1yEpSMv.js.map +1 -0
- package/build/server/chunks/nodes/25.js-C5uA9qbr.js +30 -0
- package/build/server/chunks/nodes/25.js-C5uA9qbr.js.map +1 -0
- package/build/server/chunks/nodes/26.js-C2asOdlK.js +26 -0
- package/build/server/chunks/nodes/26.js-C2asOdlK.js.map +1 -0
- package/build/server/chunks/nodes/28.js-gs0aaTSg.js +27 -0
- package/build/server/chunks/nodes/28.js-gs0aaTSg.js.map +1 -0
- package/build/server/chunks/nodes/29.js-CFU1s5I9.js +26 -0
- package/build/server/chunks/nodes/29.js-CFU1s5I9.js.map +1 -0
- package/build/server/chunks/nodes/3.js-Dyhgpr24.js +9 -0
- package/build/server/chunks/nodes/3.js-Dyhgpr24.js.map +1 -0
- package/build/server/chunks/nodes/30.js-Bql6nTeN.js +26 -0
- package/build/server/chunks/nodes/30.js-Bql6nTeN.js.map +1 -0
- package/build/server/chunks/nodes/31.js-XKGwHX85.js +26 -0
- package/build/server/chunks/nodes/31.js-XKGwHX85.js.map +1 -0
- package/build/server/chunks/nodes/32.js-CyXUNY9v.js +26 -0
- package/build/server/chunks/nodes/32.js-CyXUNY9v.js.map +1 -0
- package/build/server/chunks/nodes/33.js-nV_g5PZe.js +26 -0
- package/build/server/chunks/nodes/33.js-nV_g5PZe.js.map +1 -0
- package/build/server/chunks/nodes/5.js-BwSsY6mS.js +15 -0
- package/build/server/chunks/nodes/5.js-BwSsY6mS.js.map +1 -0
- package/build/server/chunks/nodes/6.js-BNaG5DbQ.js +26 -0
- package/build/server/chunks/nodes/6.js-BNaG5DbQ.js.map +1 -0
- package/build/server/chunks/nodes/7.js-Mp-rpjCf.js +12 -0
- package/build/server/chunks/nodes/7.js-Mp-rpjCf.js.map +1 -0
- package/build/server/chunks/nodes/8.js-B6NoLL-L.js +31 -0
- package/build/server/chunks/nodes/8.js-B6NoLL-L.js.map +1 -0
- package/build/server/chunks/nodes/9.js-RF6wjyac.js +26 -0
- package/build/server/chunks/nodes/9.js-RF6wjyac.js.map +1 -0
- package/package.json +4 -4
- package/build/client/_app/immutable/chunks/BBvmf9_82.js +0 -1
- package/build/client/_app/immutable/chunks/BBvmf9_82.js.br +0 -0
- package/build/client/_app/immutable/chunks/BBvmf9_82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bbvwm2hx.js +0 -1
- package/build/client/_app/immutable/chunks/Bbvwm2hx.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bbvwm2hx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Br13byao.js +0 -2
- package/build/client/_app/immutable/chunks/Br13byao.js.br +0 -0
- package/build/client/_app/immutable/chunks/Br13byao.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CHQXDiZY2.js +0 -1
- package/build/client/_app/immutable/chunks/CHQXDiZY2.js.br +0 -2
- package/build/client/_app/immutable/chunks/CHQXDiZY2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx1CWhD2.js +0 -3
- package/build/client/_app/immutable/chunks/Cx1CWhD2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx1CWhD2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DxkVxKHI.js +0 -1
- package/build/client/_app/immutable/chunks/DxkVxKHI.js.br +0 -0
- package/build/client/_app/immutable/chunks/DxkVxKHI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aSItWGyj2.js +0 -1
- package/build/client/_app/immutable/chunks/aSItWGyj2.js.br +0 -0
- package/build/client/_app/immutable/chunks/aSItWGyj2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uadIiW1M.js +0 -1
- package/build/client/_app/immutable/chunks/uadIiW1M.js.br +0 -1
- package/build/client/_app/immutable/chunks/uadIiW1M.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BOoy68se.js +0 -2
- package/build/client/_app/immutable/entry/app.BOoy68se.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BOoy68se.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DI64egW7.js +0 -1
- package/build/client/_app/immutable/entry/start.DI64egW7.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DI64egW7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B4XwmUrP.js +0 -1
- package/build/client/_app/immutable/nodes/1.B4XwmUrP.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B4XwmUrP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BqZ5J2H-.js +0 -3
- package/build/client/_app/immutable/nodes/11.BqZ5J2H-.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BqZ5J2H-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DUcUWsPz.js +0 -2
- package/build/client/_app/immutable/nodes/13.DUcUWsPz.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DUcUWsPz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.BR26ZHOc.js +0 -2
- package/build/client/_app/immutable/nodes/14.BR26ZHOc.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BR26ZHOc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.Dr-rVB3q.js +0 -21
- package/build/client/_app/immutable/nodes/15.Dr-rVB3q.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Dr-rVB3q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.B_8BtAw1.js +0 -6
- package/build/client/_app/immutable/nodes/16.B_8BtAw1.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.B_8BtAw1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.HcSKM39O.js +0 -2
- package/build/client/_app/immutable/nodes/17.HcSKM39O.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.HcSKM39O.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.DcOnqkpj.js +0 -7
- package/build/client/_app/immutable/nodes/19.DcOnqkpj.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DcOnqkpj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DJh5F4HW.js +0 -1
- package/build/client/_app/immutable/nodes/2.DJh5F4HW.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DJh5F4HW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.Dmsn_ofE.js +0 -2
- package/build/client/_app/immutable/nodes/20.Dmsn_ofE.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.Dmsn_ofE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.BXI4qBZJ.js +0 -5497
- package/build/client/_app/immutable/nodes/21.BXI4qBZJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.BXI4qBZJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.wKLe0Vco.js +0 -6
- package/build/client/_app/immutable/nodes/22.wKLe0Vco.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.wKLe0Vco.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.Bbk0CDGm.js +0 -16
- package/build/client/_app/immutable/nodes/24.Bbk0CDGm.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.Bbk0CDGm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.BDSuLY22.js +0 -6
- package/build/client/_app/immutable/nodes/25.BDSuLY22.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.BDSuLY22.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.DRpg6NGB.js +0 -4
- package/build/client/_app/immutable/nodes/28.DRpg6NGB.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.DRpg6NGB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.Bc9t4eSd.js +0 -4
- package/build/client/_app/immutable/nodes/29.Bc9t4eSd.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.Bc9t4eSd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Ca4RX4P8.js +0 -1
- package/build/client/_app/immutable/nodes/3.Ca4RX4P8.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Ca4RX4P8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.k30DpQxE.js +0 -2
- package/build/client/_app/immutable/nodes/30.k30DpQxE.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.k30DpQxE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.CA6ToZTb.js +0 -2
- package/build/client/_app/immutable/nodes/31.CA6ToZTb.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.CA6ToZTb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CU8u32g0.js +0 -1
- package/build/client/_app/immutable/nodes/5.CU8u32g0.js.br +0 -1
- package/build/client/_app/immutable/nodes/5.CU8u32g0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.B_9zi9Ci.js +0 -1
- package/build/client/_app/immutable/nodes/6.B_9zi9Ci.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.B_9zi9Ci.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.SvCmdWYe.js +0 -1
- package/build/client/_app/immutable/nodes/7.SvCmdWYe.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.SvCmdWYe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BKP9ee3Q.js +0 -2
- package/build/client/_app/immutable/nodes/8.BKP9ee3Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BKP9ee3Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.D5dak8K7.js +0 -1
- package/build/client/_app/immutable/nodes/9.D5dak8K7.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.D5dak8K7.js.gz +0 -0
- package/build/server/chunks/chunks/AppHeader.js-DfoBNX6A.js +0 -281
- package/build/server/chunks/chunks/AppHeader.js-DfoBNX6A.js.map +0 -1
- package/build/server/chunks/chunks/SideNav.js-B4NwmMBl.js +0 -67
- package/build/server/chunks/chunks/SideNav.js-B4NwmMBl.js.map +0 -1
- package/build/server/chunks/chunks/UserChip.js-B6xt32m8.js +0 -1163
- package/build/server/chunks/chunks/UserChip.js-B6xt32m8.js.map +0 -1
- package/build/server/chunks/chunks/access.server.js-DwqSeOi9.js +0 -470
- package/build/server/chunks/chunks/access.server.js-DwqSeOi9.js.map +0 -1
- package/build/server/chunks/chunks/access2.server.js-CY2IC3_0.js +0 -22
- package/build/server/chunks/chunks/access2.server.js-CY2IC3_0.js.map +0 -1
- package/build/server/chunks/chunks/admin-config.js-BqQmW28i.js +0 -3
- package/build/server/chunks/chunks/admin-config.js-BqQmW28i.js.map +0 -1
- package/build/server/chunks/chunks/api-errors.js-79b_3bHg.js +0 -141
- package/build/server/chunks/chunks/api-errors.js-79b_3bHg.js.map +0 -1
- package/build/server/chunks/chunks/auth-bootstrap.server.js-CoBAD-yi.js +0 -162
- package/build/server/chunks/chunks/auth-bootstrap.server.js-CoBAD-yi.js.map +0 -1
- package/build/server/chunks/chunks/auth.server.js-DWdYIi-o.js +0 -2
- package/build/server/chunks/chunks/auth.server.js-DWdYIi-o.js.map +0 -1
- package/build/server/chunks/chunks/bootHealth.server.js-BNZ15BCo.js +0 -91
- package/build/server/chunks/chunks/bootHealth.server.js-BNZ15BCo.js.map +0 -1
- package/build/server/chunks/chunks/client.js-D0nlibvP.js +0 -59
- package/build/server/chunks/chunks/client.js-D0nlibvP.js.map +0 -1
- package/build/server/chunks/chunks/computeLimits.js-Dm74PUOP.js +0 -47
- package/build/server/chunks/chunks/computeLimits.js-Dm74PUOP.js.map +0 -1
- package/build/server/chunks/chunks/engine.server.js-fezh3ucS.js +0 -580
- package/build/server/chunks/chunks/engine.server.js-fezh3ucS.js.map +0 -1
- package/build/server/chunks/chunks/forms.js-ViOxzGLN.js +0 -2
- package/build/server/chunks/chunks/forms.js-ViOxzGLN.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-CHxPbMfH.js +0 -224
- package/build/server/chunks/chunks/internal2.js-CHxPbMfH.js.map +0 -1
- package/build/server/chunks/chunks/navigation.js-ViOxzGLN.js +0 -2
- package/build/server/chunks/chunks/navigation.js-ViOxzGLN.js.map +0 -1
- package/build/server/chunks/chunks/org-members.server.js-CyeWVJtk.js +0 -35
- package/build/server/chunks/chunks/org-members.server.js-CyeWVJtk.js.map +0 -1
- package/build/server/chunks/chunks/package.js-C2zZt1Dy.js +0 -79
- package/build/server/chunks/chunks/package.js-C2zZt1Dy.js.map +0 -1
- package/build/server/chunks/chunks/paths.js-DyHCQ0Nn.js +0 -19
- package/build/server/chunks/chunks/paths.js-DyHCQ0Nn.js.map +0 -1
- package/build/server/chunks/chunks/permissions.server.js-BXJ92IdP.js +0 -15
- package/build/server/chunks/chunks/permissions.server.js-BXJ92IdP.js.map +0 -1
- package/build/server/chunks/chunks/providers.server.js-DCnhO862.js +0 -6354
- package/build/server/chunks/chunks/providers.server.js-DCnhO862.js.map +0 -1
- package/build/server/chunks/chunks/resolve.server.js-CAyChPui.js +0 -62
- package/build/server/chunks/chunks/resolve.server.js-CAyChPui.js.map +0 -1
- package/build/server/chunks/chunks/route.js-aKOAfzq_.js +0 -185
- package/build/server/chunks/chunks/route.js-aKOAfzq_.js.map +0 -1
- package/build/server/chunks/chunks/selfUpdate.server.js-DrtIhtIx.js +0 -152
- package/build/server/chunks/chunks/selfUpdate.server.js-DrtIhtIx.js.map +0 -1
- package/build/server/chunks/chunks/serverConfigWrite.js-BfjHOb52.js +0 -89
- package/build/server/chunks/chunks/serverConfigWrite.js-BfjHOb52.js.map +0 -1
- package/build/server/chunks/chunks/solve.server.js-CLEf-tM-.js +0 -308
- package/build/server/chunks/chunks/solve.server.js-CLEf-tM-.js.map +0 -1
- package/build/server/chunks/chunks/state.js-BpzOuRFU.js +0 -76
- package/build/server/chunks/chunks/state.js-BpzOuRFU.js.map +0 -1
- package/build/server/chunks/chunks/stores.js-CDeuxrKE.js +0 -35
- package/build/server/chunks/chunks/stores.js-CDeuxrKE.js.map +0 -1
- package/build/server/chunks/chunks/utils2.js-CvkyHH4A.js +0 -62
- package/build/server/chunks/chunks/utils2.js-CvkyHH4A.js.map +0 -1
- package/build/server/chunks/chunks/visibility.server.js-B_CxZBll.js +0 -110
- package/build/server/chunks/chunks/visibility.server.js-B_CxZBll.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-2Cd6r8Fz.js +0 -85
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-2Cd6r8Fz.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-DlMPQn9G.js +0 -54
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-DlMPQn9G.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BJdZk-aD.js +0 -80
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BJdZk-aD.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-K6CEHoVB.js +0 -51
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-K6CEHoVB.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-Cg8GPtDr.js +0 -72
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-Cg8GPtDr.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BPOckzCj.js +0 -75
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BPOckzCj.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-QtLxV0xj.js +0 -34
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-QtLxV0xj.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BO975WwY.js +0 -72
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BO975WwY.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-DJSJ5QAo.js +0 -103
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-DJSJ5QAo.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-7xKk2eTZ.js +0 -210
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-7xKk2eTZ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-3c_21TU5.js +0 -90
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-3c_21TU5.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-D3TBeSoL.js +0 -405
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-D3TBeSoL.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-lrvcAiwA.js +0 -76
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-lrvcAiwA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-UcWSNZ4l.js +0 -46
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-UcWSNZ4l.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-CqBR8Vtu.js +0 -87
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-CqBR8Vtu.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DYv06Efz.js +0 -61
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DYv06Efz.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-Deyiwxfu.js +0 -89
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-Deyiwxfu.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BHu7KV5M.js +0 -57
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BHu7KV5M.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-C3k0Ucra.js +0 -84
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-C3k0Ucra.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-n9QqKLq6.js +0 -64
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-n9QqKLq6.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CnHIIhBG.js +0 -63
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CnHIIhBG.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-BBLiyaN_.js +0 -37
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-BBLiyaN_.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-CpzT33rK.js +0 -33
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-CpzT33rK.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-D_tOQQQQ.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-D_tOQQQQ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-C-S-kEIG.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-C-S-kEIG.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-DGfopCQN.js +0 -81
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-DGfopCQN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-Dks-01-d.js +0 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-Dks-01-d.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-D9Fk7e-9.js +0 -54
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-D9Fk7e-9.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-Nva5Bbcx.js +0 -48
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-Nva5Bbcx.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-qxQBdDh-.js +0 -40
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-qxQBdDh-.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-RiCcaTnY.js +0 -113
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-RiCcaTnY.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-vdFaqoSY.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-vdFaqoSY.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-ChSmzpEq.js +0 -36
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-ChSmzpEq.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DCRhKgkG.js +0 -30
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DCRhKgkG.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-CUf44E9D.js +0 -74
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-CUf44E9D.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Dkb4R5Of.js +0 -102
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Dkb4R5Of.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-QN9Pj-pF.js +0 -46
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-QN9Pj-pF.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-D9gxHkGl.js +0 -62
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-D9gxHkGl.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-B2Y8Ya1N.js +0 -33
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-B2Y8Ya1N.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-DVgmA_Qi.js +0 -90
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-DVgmA_Qi.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-BDJZae2a.js +0 -84
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-BDJZae2a.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-5pscGG_Z.js +0 -51
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-5pscGG_Z.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CH-vuCdg.js +0 -51
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CH-vuCdg.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CyVWbln_.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CyVWbln_.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CPsE4YWy.js +0 -83
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CPsE4YWy.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D7QpV1mm.js +0 -45
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D7QpV1mm.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-BcrioS07.js +0 -49
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-BcrioS07.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BX-OsZB7.js +0 -52
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BX-OsZB7.js.map +0 -1
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-Dsgj5Rfx.js +0 -11
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-Dsgj5Rfx.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-DPCurAqC.js +0 -341
- package/build/server/chunks/entries/hooks.server.js-DPCurAqC.js.map +0 -1
- package/build/server/chunks/entries/pages/_error.svelte.js-BXkGl2Kn.js +0 -36
- package/build/server/chunks/entries/pages/_error.svelte.js-BXkGl2Kn.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CSan5TIl.js +0 -34
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CSan5TIl.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-xDa5HPzT.js +0 -77
- package/build/server/chunks/entries/pages/_page.svelte.js-xDa5HPzT.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-Bn6vDTCC.js +0 -110
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-Bn6vDTCC.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CpV9X8mH.js +0 -149
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CpV9X8mH.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-ePkC2CLb.js +0 -37
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-ePkC2CLb.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-Bk07O2k9.js +0 -31
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-Bk07O2k9.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-DF32VwgM.js +0 -122
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-DF32VwgM.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BAoWLaBD.js +0 -75
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BAoWLaBD.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-Wz6COXEq.js +0 -360
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-Wz6COXEq.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-6vBr1Uf4.js +0 -245
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-6vBr1Uf4.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-CdEKBJk-.js +0 -74
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-CdEKBJk-.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-Dtfl7gao.js +0 -673
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-Dtfl7gao.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-SKem_i3l.js +0 -35
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-SKem_i3l.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DnWv8MrV.js +0 -86
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DnWv8MrV.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-C5okpyMG.js +0 -617
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-C5okpyMG.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Bs47eD34.js +0 -42
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Bs47eD34.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-B-yje-t8.js +0 -283
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-B-yje-t8.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-CFh-m9qV.js +0 -81
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-CFh-m9qV.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-C8fyhfLt.js +0 -1374
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-C8fyhfLt.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-BewcKswn.js +0 -70
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-BewcKswn.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-CR-MuY4H.js +0 -683
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-CR-MuY4H.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-CtgbF36d.js +0 -63
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-CtgbF36d.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-42kO9fLy.js +0 -62
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-42kO9fLy.js.map +0 -1
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-HxF8pCzY.js +0 -527
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-HxF8pCzY.js.map +0 -1
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Bxa7iqsy.js +0 -90
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Bxa7iqsy.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-CaRCesgD.js +0 -118
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-CaRCesgD.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CJHyIlwV.js +0 -13007
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CJHyIlwV.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-C7XK5O0X.js +0 -48
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-C7XK5O0X.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.svelte.js-CgBZhU8-.js +0 -322
- package/build/server/chunks/entries/pages/library/_page.svelte.js-CgBZhU8-.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-BGfpSBjN.js +0 -80
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-BGfpSBjN.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.svelte.js-XFD_5ixB.js +0 -257
- package/build/server/chunks/entries/pages/login/_page.svelte.js-XFD_5ixB.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BIP5_qQi.js +0 -50
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BIP5_qQi.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-Cdov8n8n.js +0 -92
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-Cdov8n8n.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-DMUwhuCy.js +0 -3742
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-DMUwhuCy.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CRk4dszH.js +0 -114
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CRk4dszH.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DqHbfiFh.js +0 -322
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DqHbfiFh.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-Bus0YyWF.js +0 -28
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-Bus0YyWF.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DZWkKRb5.js +0 -163
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DZWkKRb5.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-iSGGE6mC.js +0 -35
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-iSGGE6mC.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-DTKnymcV.js +0 -42
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-DTKnymcV.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Bna-DS-G.js +0 -594
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Bna-DS-G.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DghhooLC.js +0 -58
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DghhooLC.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-CA0SireB.js +0 -540
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-CA0SireB.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-NkU3RzbG.js +0 -42
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-NkU3RzbG.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-C9jHWLUY.js +0 -437
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-C9jHWLUY.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-DX4NBZkH.js +0 -50
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-DX4NBZkH.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DVagSOpD.js +0 -263
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DVagSOpD.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-2nkO9_Hl.js +0 -32
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-2nkO9_Hl.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BO6f5HZN.js +0 -16
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BO6f5HZN.js.map +0 -1
- package/build/server/chunks/handler-B66SdVoN.js +0 -1206
- package/build/server/chunks/handler-B66SdVoN.js.map +0 -1
- package/build/server/chunks/index.js-DQOR8Bek.js +0 -3757
- package/build/server/chunks/index.js-DQOR8Bek.js.map +0 -1
- package/build/server/chunks/manifest.js-BycSxA48.js +0 -598
- package/build/server/chunks/manifest.js-BycSxA48.js.map +0 -1
- package/build/server/chunks/nodes/0.js-DcqW1hJT.js +0 -25
- package/build/server/chunks/nodes/0.js-DcqW1hJT.js.map +0 -1
- package/build/server/chunks/nodes/1.js-lEbcThl2.js +0 -9
- package/build/server/chunks/nodes/1.js-lEbcThl2.js.map +0 -1
- package/build/server/chunks/nodes/10.js-HXNaUEJ3.js +0 -29
- package/build/server/chunks/nodes/10.js-HXNaUEJ3.js.map +0 -1
- package/build/server/chunks/nodes/11.js-DgbWhh54.js +0 -36
- package/build/server/chunks/nodes/11.js-DgbWhh54.js.map +0 -1
- package/build/server/chunks/nodes/12.js-BGatHmuB.js +0 -26
- package/build/server/chunks/nodes/12.js-BGatHmuB.js.map +0 -1
- package/build/server/chunks/nodes/13.js-DZS28-OX.js +0 -26
- package/build/server/chunks/nodes/13.js-DZS28-OX.js.map +0 -1
- package/build/server/chunks/nodes/14.js-DrKZPe8J.js +0 -26
- package/build/server/chunks/nodes/14.js-DrKZPe8J.js.map +0 -1
- package/build/server/chunks/nodes/15.js-kbU6q9o-.js +0 -36
- package/build/server/chunks/nodes/15.js-kbU6q9o-.js.map +0 -1
- package/build/server/chunks/nodes/16.js-BN9D1Qot.js +0 -31
- package/build/server/chunks/nodes/16.js-BN9D1Qot.js.map +0 -1
- package/build/server/chunks/nodes/17.js-B1jn0Jg-.js +0 -9
- package/build/server/chunks/nodes/17.js-B1jn0Jg-.js.map +0 -1
- package/build/server/chunks/nodes/18.js-NcdqblMQ.js +0 -30
- package/build/server/chunks/nodes/18.js-NcdqblMQ.js.map +0 -1
- package/build/server/chunks/nodes/19.js-a5nydvd-.js +0 -29
- package/build/server/chunks/nodes/19.js-a5nydvd-.js.map +0 -1
- package/build/server/chunks/nodes/2.js-C9Us6SSm.js +0 -29
- package/build/server/chunks/nodes/2.js-C9Us6SSm.js.map +0 -1
- package/build/server/chunks/nodes/20.js-C2FDkl9i.js +0 -30
- package/build/server/chunks/nodes/20.js-C2FDkl9i.js.map +0 -1
- package/build/server/chunks/nodes/21.js-oYt6hJOR.js +0 -39
- package/build/server/chunks/nodes/21.js-oYt6hJOR.js.map +0 -1
- package/build/server/chunks/nodes/22.js-C3JpkPKe.js +0 -30
- package/build/server/chunks/nodes/22.js-C3JpkPKe.js.map +0 -1
- package/build/server/chunks/nodes/24.js-CMqwhQpW.js +0 -29
- package/build/server/chunks/nodes/24.js-CMqwhQpW.js.map +0 -1
- package/build/server/chunks/nodes/25.js-IOlz2xv7.js +0 -30
- package/build/server/chunks/nodes/25.js-IOlz2xv7.js.map +0 -1
- package/build/server/chunks/nodes/26.js-C0ZpK2hp.js +0 -26
- package/build/server/chunks/nodes/26.js-C0ZpK2hp.js.map +0 -1
- package/build/server/chunks/nodes/28.js-Bol2jFJc.js +0 -27
- package/build/server/chunks/nodes/28.js-Bol2jFJc.js.map +0 -1
- package/build/server/chunks/nodes/29.js-BuVlUY6G.js +0 -26
- package/build/server/chunks/nodes/29.js-BuVlUY6G.js.map +0 -1
- package/build/server/chunks/nodes/3.js-Bx1FFd8l.js +0 -9
- package/build/server/chunks/nodes/3.js-Bx1FFd8l.js.map +0 -1
- package/build/server/chunks/nodes/30.js-BQRYjCrt.js +0 -26
- package/build/server/chunks/nodes/30.js-BQRYjCrt.js.map +0 -1
- package/build/server/chunks/nodes/31.js-DG5QjrKX.js +0 -26
- package/build/server/chunks/nodes/31.js-DG5QjrKX.js.map +0 -1
- package/build/server/chunks/nodes/32.js-4n03evhS.js +0 -26
- package/build/server/chunks/nodes/32.js-4n03evhS.js.map +0 -1
- package/build/server/chunks/nodes/33.js-CXeAJa0n.js +0 -26
- package/build/server/chunks/nodes/33.js-CXeAJa0n.js.map +0 -1
- package/build/server/chunks/nodes/5.js-BG_TJgJY.js +0 -15
- package/build/server/chunks/nodes/5.js-BG_TJgJY.js.map +0 -1
- package/build/server/chunks/nodes/6.js-CnA30DI8.js +0 -26
- package/build/server/chunks/nodes/6.js-CnA30DI8.js.map +0 -1
- package/build/server/chunks/nodes/7.js-BluNdnCn.js +0 -12
- package/build/server/chunks/nodes/7.js-BluNdnCn.js.map +0 -1
- package/build/server/chunks/nodes/8.js-BeWhNYMg.js +0 -31
- package/build/server/chunks/nodes/8.js-BeWhNYMg.js.map +0 -1
- package/build/server/chunks/nodes/9.js-BrMDDGZY.js +0 -26
- package/build/server/chunks/nodes/9.js-BrMDDGZY.js.map +0 -1
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { S as SYSTEM_CONTEXT } from './src.js-BYv4z3-l.js';
|
|
2
|
-
import { p as providers, o as getDefinitionMeta, f as getProjectProvider, k as flag } from './providers.server.js-DCnhO862.js';
|
|
3
|
-
import { h as hashToken, l as looksLikeShareToken } from './token.server.js-UMCt7jB6.js';
|
|
4
|
-
import { error } from '@sveltejs/kit';
|
|
5
|
-
|
|
6
|
-
//#region src/lib/server/shareLinks/resolve.server.ts
|
|
7
|
-
/**
|
|
8
|
-
* Extract a candidate share-link token from the request.
|
|
9
|
-
* - `?token=share_…` query param (most embeddable)
|
|
10
|
-
* - `Authorization: Bearer share_…` header (server-to-server)
|
|
11
|
-
*
|
|
12
|
-
* Returns the raw token string, or null when none present. Does NOT validate.
|
|
13
|
-
*/
|
|
14
|
-
function readShareToken(request, url) {
|
|
15
|
-
if (!flag("ENABLE_SHARING")) return null;
|
|
16
|
-
const q = url.searchParams.get("token");
|
|
17
|
-
if (q && looksLikeShareToken(q)) return q;
|
|
18
|
-
const auth = request.headers.get("authorization");
|
|
19
|
-
if (auth?.startsWith("Bearer ")) {
|
|
20
|
-
const candidate = auth.slice(7).trim();
|
|
21
|
-
if (looksLikeShareToken(candidate)) return candidate;
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Spec §7 token-resolution path. Run before user-based auth on definition-
|
|
27
|
-
* scoped routes. Returns the resolved link + a synthetic ctx on success.
|
|
28
|
-
*
|
|
29
|
-
* Throws only when a token is *present but invalid* for the current request
|
|
30
|
-
* (wrong definition, wrong channel, expired, revoked, view-only when solve
|
|
31
|
-
* was requested) — those are deliberate 401/403/429 responses to a
|
|
32
|
-
* misbehaving consumer. When no token is present at all, returns null and
|
|
33
|
-
* the caller falls through to the user-based auth gate.
|
|
34
|
-
*/
|
|
35
|
-
async function tryResolveShareToken(request, url, requestedDefinitionId, requestedChannel, opts) {
|
|
36
|
-
const raw = readShareToken(request, url);
|
|
37
|
-
if (!raw) return null;
|
|
38
|
-
const tokenHash = hashToken(raw);
|
|
39
|
-
const link = await providers.data.shareLinks.getByTokenHash(SYSTEM_CONTEXT, tokenHash);
|
|
40
|
-
if (!link) throw error(401, "Invalid or revoked share token.");
|
|
41
|
-
if (link.expiresAt && new Date(link.expiresAt).getTime() <= Date.now()) throw error(401, "Share token has expired.");
|
|
42
|
-
if (link.definitionId !== requestedDefinitionId) throw error(403, "Share token is not valid for this definition.");
|
|
43
|
-
if (link.channel !== requestedChannel) throw error(403, `Share token is for the '${link.channel}' channel only.`);
|
|
44
|
-
if (opts.requireSolve && !link.allowSolve) throw error(403, "Share token grants view-only access.");
|
|
45
|
-
const def = await getDefinitionMeta().get(SYSTEM_CONTEXT, link.definitionId);
|
|
46
|
-
if (!def) throw error(401, "Share token target no longer exists.");
|
|
47
|
-
const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, def.projectId);
|
|
48
|
-
if (!project) throw error(401, "Share token target no longer exists.");
|
|
49
|
-
return {
|
|
50
|
-
link,
|
|
51
|
-
ctx: {
|
|
52
|
-
userId: "",
|
|
53
|
-
actingOrgId: project.orgId,
|
|
54
|
-
platformPermissions: [],
|
|
55
|
-
orgPermissions: [],
|
|
56
|
-
system: true
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { tryResolveShareToken as t };
|
|
62
|
-
//# sourceMappingURL=resolve.server.js-CAyChPui.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.server.js-CAyChPui.js","sources":["../../../../.svelte-kit/output/server/chunks/resolve.server.js"],"sourcesContent":["import { t as SYSTEM_CONTEXT } from \"./src.js\";\nimport { C as providers, _ as getProjectProvider, s as getDefinitionMeta, t as flag } from \"./providers.server.js\";\nimport { n as looksLikeShareToken, t as hashToken } from \"./token.server.js\";\nimport { error } from \"@sveltejs/kit\";\n//#region src/lib/server/shareLinks/resolve.server.ts\n/**\n* Extract a candidate share-link token from the request.\n* - `?token=share_…` query param (most embeddable)\n* - `Authorization: Bearer share_…` header (server-to-server)\n*\n* Returns the raw token string, or null when none present. Does NOT validate.\n*/\nfunction readShareToken(request, url) {\n\tif (!flag(\"ENABLE_SHARING\")) return null;\n\tconst q = url.searchParams.get(\"token\");\n\tif (q && looksLikeShareToken(q)) return q;\n\tconst auth = request.headers.get(\"authorization\");\n\tif (auth?.startsWith(\"Bearer \")) {\n\t\tconst candidate = auth.slice(7).trim();\n\t\tif (looksLikeShareToken(candidate)) return candidate;\n\t}\n\treturn null;\n}\n/**\n* Spec §7 token-resolution path. Run before user-based auth on definition-\n* scoped routes. Returns the resolved link + a synthetic ctx on success.\n*\n* Throws only when a token is *present but invalid* for the current request\n* (wrong definition, wrong channel, expired, revoked, view-only when solve\n* was requested) — those are deliberate 401/403/429 responses to a\n* misbehaving consumer. When no token is present at all, returns null and\n* the caller falls through to the user-based auth gate.\n*/\nasync function tryResolveShareToken(request, url, requestedDefinitionId, requestedChannel, opts) {\n\tconst raw = readShareToken(request, url);\n\tif (!raw) return null;\n\tconst tokenHash = hashToken(raw);\n\tconst link = await providers.data.shareLinks.getByTokenHash(SYSTEM_CONTEXT, tokenHash);\n\tif (!link) throw error(401, \"Invalid or revoked share token.\");\n\tif (link.expiresAt && new Date(link.expiresAt).getTime() <= Date.now()) throw error(401, \"Share token has expired.\");\n\tif (link.definitionId !== requestedDefinitionId) throw error(403, \"Share token is not valid for this definition.\");\n\tif (link.channel !== requestedChannel) throw error(403, `Share token is for the '${link.channel}' channel only.`);\n\tif (opts.requireSolve && !link.allowSolve) throw error(403, \"Share token grants view-only access.\");\n\tconst def = await getDefinitionMeta().get(SYSTEM_CONTEXT, link.definitionId);\n\tif (!def) throw error(401, \"Share token target no longer exists.\");\n\tconst project = await getProjectProvider().getProject(SYSTEM_CONTEXT, def.projectId);\n\tif (!project) throw error(401, \"Share token target no longer exists.\");\n\treturn {\n\t\tlink,\n\t\tctx: {\n\t\t\tuserId: \"\",\n\t\t\tactingOrgId: project.orgId,\n\t\t\tplatformPermissions: [],\n\t\t\torgPermissions: [],\n\t\t\tsystem: true\n\t\t}\n\t};\n}\n//#endregion\nexport { tryResolveShareToken as t };\n"],"names":[],"mappings":";;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE;AACtC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,IAAI;AACzC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACxC,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC1C,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAClD,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;AAClC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,EAAE,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,SAAS;AACtD,CAAC;AACD,CAAC,OAAO,IAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;AACjG,CAAC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC;AACzC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACtB,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;AACjC,CAAC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC;AAC/D,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;AACrH,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,qBAAqB,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,+CAA+C,CAAC;AACnH,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAClH,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AACpG,CAAC,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7E,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AACnE,CAAC,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC;AACrF,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC;AACvE,CAAC,OAAO;AACR,EAAE,IAAI;AACN,EAAE,GAAG,EAAE;AACP,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,WAAW,EAAE,OAAO,CAAC,KAAK;AAC7B,GAAG,mBAAmB,EAAE,EAAE;AAC1B,GAAG,cAAc,EAAE,EAAE;AACrB,GAAG,MAAM,EAAE;AACX;AACA,EAAE;AACF;;;;"}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { h as handleApiError, a as apiError, A as ApiErrorCode, t as throwZodError } from './api-errors.js-79b_3bHg.js';
|
|
2
|
-
import { json } from '@sveltejs/kit';
|
|
3
|
-
|
|
4
|
-
//#region src/lib/server/api/v1/route.ts
|
|
5
|
-
/**
|
|
6
|
-
* The shared shape of a v1 route handler.
|
|
7
|
-
*
|
|
8
|
-
* Every handler in this tree does the same four things — validate the path,
|
|
9
|
-
* parse the body, do the work, serialize — and before these helpers existed
|
|
10
|
-
* each one spelled all four out. That is 2000 lines across 27 files in which
|
|
11
|
-
* the interesting part is a few lines deep, and where the boilerplate had
|
|
12
|
-
* already drifted: path params were validated two different ways, and four
|
|
13
|
-
* list endpoints hand-rolled a pagination clamp that disagreed with the shared
|
|
14
|
-
* one they were documented as using.
|
|
15
|
-
*
|
|
16
|
-
* The rule these helpers exist to enforce: **a route handler parses, guards,
|
|
17
|
-
* delegates and serializes — nothing else.** Anything two endpoints must agree
|
|
18
|
-
* on lives here or in `@selvajs/server`, never copied into both.
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* The authenticated caller, or 401.
|
|
22
|
-
*
|
|
23
|
-
* Routes used to write `if (!locals.ctx) apiError(401, …)` and then reach for
|
|
24
|
-
* `locals.ctx!` further down — thirteen checks and eleven non-null assertions
|
|
25
|
-
* for one fact. Returning the narrowed pair means the assertion disappears: if
|
|
26
|
-
* you have the result, the context exists.
|
|
27
|
-
*
|
|
28
|
-
* Guards in `access.server.ts` do their own 401 as a side effect of checking a
|
|
29
|
-
* permission. This is for the handlers that need an identity without one — the
|
|
30
|
-
* `/me` routes, and reads whose authorization is a visibility filter.
|
|
31
|
-
*/
|
|
32
|
-
function requireCaller(locals) {
|
|
33
|
-
if (!locals.ctx || !locals.user) apiError(401, ApiErrorCode.UNAUTHORIZED, "Unauthorized");
|
|
34
|
-
return {
|
|
35
|
-
ctx: locals.ctx,
|
|
36
|
-
user: locals.user
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Read required path params, 400ing on any that is missing or blank.
|
|
41
|
-
*
|
|
42
|
-
* SvelteKit types every param as `string`, but a route can be reached with an
|
|
43
|
-
* empty segment, so the non-null assertion handlers used to write was a lie the
|
|
44
|
-
* type system endorsed. Returning a narrowed record means the caller gets real
|
|
45
|
-
* strings without asserting.
|
|
46
|
-
*
|
|
47
|
-
* This does **not** validate format — a guid-shaped param still goes through
|
|
48
|
-
* `GuidSchema` where the route cares. It replaces the `if (!id) apiError(...)`
|
|
49
|
-
* preamble, not the schema check.
|
|
50
|
-
*/
|
|
51
|
-
function requireParams(params, ...names) {
|
|
52
|
-
const out = {};
|
|
53
|
-
const missing = [];
|
|
54
|
-
for (const name of names) {
|
|
55
|
-
const value = params[name];
|
|
56
|
-
if (!value) {
|
|
57
|
-
missing.push(name);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
out[name] = value;
|
|
61
|
-
}
|
|
62
|
-
if (missing.length) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Missing path parameter${missing.length > 1 ? "s" : ""}: ${missing.join(", ")}`);
|
|
63
|
-
return out;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Read a path param through a Zod schema, 400ing on a bad value.
|
|
67
|
-
*
|
|
68
|
-
* The format-checking counterpart to `requireParams` — for guids, enum-shaped
|
|
69
|
-
* segments, and anything else where "present" is not the same as "valid".
|
|
70
|
-
*/
|
|
71
|
-
function parseParam(value, schema, name) {
|
|
72
|
-
const parsed = schema.safeParse(value);
|
|
73
|
-
if (!parsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid or missing ${name}`);
|
|
74
|
-
return parsed.data;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Parse and validate a JSON body.
|
|
78
|
-
*
|
|
79
|
-
* A malformed body becomes `null` rather than throwing, so it fails the schema
|
|
80
|
-
* and reports as a validation error — a client sending broken JSON should see
|
|
81
|
-
* a 400 naming the problem, not a 500 from `request.json()`.
|
|
82
|
-
*
|
|
83
|
-
* `missingAs` covers the endpoints whose fields are all optional: passing `{}`
|
|
84
|
-
* lets an empty request body mean "no changes" instead of a validation failure.
|
|
85
|
-
*/
|
|
86
|
-
async function parseBody(request, schema, { missingAs } = {}) {
|
|
87
|
-
const raw = await request.json().catch(() => null);
|
|
88
|
-
const parsed = schema.safeParse(raw ?? missingAs ?? null);
|
|
89
|
-
if (!parsed.success) throwZodError(parsed.error);
|
|
90
|
-
return parsed.data;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Pull a required file out of a multipart body and check its size and, where
|
|
94
|
-
* given, its extension.
|
|
95
|
-
*
|
|
96
|
-
* The extension allowlist and the size cap were written out at five call sites,
|
|
97
|
-
* each formatting the same "Max size: N MB" message — one of the places where
|
|
98
|
-
* two endpoints must agree and nothing made them. The caps themselves stay in
|
|
99
|
-
* `admin-config`; this only applies them.
|
|
100
|
-
*
|
|
101
|
-
* The size check is a second line of defence, not the first: `requireMaxBodySize`
|
|
102
|
-
* rejects an oversized request before it is buffered. This catches a file that
|
|
103
|
-
* is individually too large inside a request that is not.
|
|
104
|
-
*/
|
|
105
|
-
function requireUpload(form, field, { maxBytes, extensions, contentTypes, label = "File" }) {
|
|
106
|
-
const file = form.get(field);
|
|
107
|
-
if (!(file instanceof File) || file.size === 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, `A ${label.toLowerCase()} is required`);
|
|
108
|
-
const extension = file.name.slice(file.name.lastIndexOf(".")).toLowerCase();
|
|
109
|
-
if (extensions && !extensions.includes(extension)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `File type not allowed. Allowed: ${extensions.join(", ")}`);
|
|
110
|
-
if (contentTypes && !contentTypes.allowed.has(file.type)) apiError(400, ApiErrorCode.VALIDATION_FAILED, contentTypes.message);
|
|
111
|
-
if (file.size > maxBytes) apiError(400, ApiErrorCode.VALIDATION_FAILED, `${label} too large. Max size: ${maxBytes / 1048576} MB`);
|
|
112
|
-
return {
|
|
113
|
-
file,
|
|
114
|
-
extension
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/** A multipart text field, trimmed and length-capped. Absent stays `undefined`. */
|
|
118
|
-
function formText(form, field, { maxLength } = {}) {
|
|
119
|
-
const raw = form.get(field);
|
|
120
|
-
if (typeof raw !== "string") return void 0;
|
|
121
|
-
const trimmed = raw.trim();
|
|
122
|
-
if (!trimmed) return void 0;
|
|
123
|
-
return maxLength ? trimmed.slice(0, maxLength) : trimmed;
|
|
124
|
-
}
|
|
125
|
-
/** A paginated collection. The one envelope every v1 list endpoint returns. */
|
|
126
|
-
function collection(page) {
|
|
127
|
-
return json({
|
|
128
|
-
items: page.items,
|
|
129
|
-
nextCursor: page.nextCursor
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/** A created resource. */
|
|
133
|
-
function created(body) {
|
|
134
|
-
return json(body, { status: 201 });
|
|
135
|
-
}
|
|
136
|
-
/** A successful mutation with nothing to say. */
|
|
137
|
-
function noContent() {
|
|
138
|
-
return new Response(null, { status: 204 });
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Serialize a payload through an explicit response schema.
|
|
142
|
-
*
|
|
143
|
-
* **This is what keeps a secret from reaching a client by accident.** Several
|
|
144
|
-
* responses are store records with a credential removed — `tokenHash` on a
|
|
145
|
-
* share link or invite, `apiKey` on an org compute server — and until now the
|
|
146
|
-
* removal was a destructuring line a future edit could drop. Adding a field to
|
|
147
|
-
* the store type would then publish it, silently, with nothing failing.
|
|
148
|
-
*
|
|
149
|
-
* Parsing through a schema inverts that: the response carries what the schema
|
|
150
|
-
* names and nothing else, so a new field on the stored type is invisible until
|
|
151
|
-
* someone adds it here deliberately.
|
|
152
|
-
*/
|
|
153
|
-
function shaped(schema, payload, status = 200) {
|
|
154
|
-
return json(schema.parse(payload), { status });
|
|
155
|
-
}
|
|
156
|
-
/** `shaped`, mapped over a page of records. */
|
|
157
|
-
function shapedCollection(schema, page) {
|
|
158
|
-
return json({
|
|
159
|
-
items: page.items.map((item) => schema.parse(item)),
|
|
160
|
-
nextCursor: page.nextCursor
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Wrap a handler so an unhandled error becomes a structured API error.
|
|
165
|
-
*
|
|
166
|
-
* Every route used to end in the same `try { … } catch (err) { handleApiError(
|
|
167
|
-
* err, '…') }` — 59 of them. The wrapper hoists it, which is not only less to
|
|
168
|
-
* read: a handler that forgot the try/catch surfaced a raw 500 with a provider
|
|
169
|
-
* message in it, and nothing flagged the omission.
|
|
170
|
-
*
|
|
171
|
-
* `fallback` is the message used when the error carries none of its own; it is
|
|
172
|
-
* required because "something went wrong" tells a caller nothing.
|
|
173
|
-
*/
|
|
174
|
-
function apiRoute(fallback, handler) {
|
|
175
|
-
return async (event) => {
|
|
176
|
-
try {
|
|
177
|
-
return await handler(event);
|
|
178
|
-
} catch (err) {
|
|
179
|
-
handleApiError(err, fallback);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
export { apiRoute as a, requireUpload as b, collection as c, created as d, parseBody as e, formText as f, shaped as g, requireParams as h, noContent as n, parseParam as p, requireCaller as r, shapedCollection as s };
|
|
185
|
-
//# sourceMappingURL=route.js-aKOAfzq_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route.js-aKOAfzq_.js","sources":["../../../../.svelte-kit/output/server/chunks/route.js"],"sourcesContent":["import { i as throwZodError, n as apiError, r as handleApiError, t as ApiErrorCode } from \"./api-errors.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/lib/server/api/v1/route.ts\n/**\n* The shared shape of a v1 route handler.\n*\n* Every handler in this tree does the same four things — validate the path,\n* parse the body, do the work, serialize — and before these helpers existed\n* each one spelled all four out. That is 2000 lines across 27 files in which\n* the interesting part is a few lines deep, and where the boilerplate had\n* already drifted: path params were validated two different ways, and four\n* list endpoints hand-rolled a pagination clamp that disagreed with the shared\n* one they were documented as using.\n*\n* The rule these helpers exist to enforce: **a route handler parses, guards,\n* delegates and serializes — nothing else.** Anything two endpoints must agree\n* on lives here or in `@selvajs/server`, never copied into both.\n*/\n/**\n* The authenticated caller, or 401.\n*\n* Routes used to write `if (!locals.ctx) apiError(401, …)` and then reach for\n* `locals.ctx!` further down — thirteen checks and eleven non-null assertions\n* for one fact. Returning the narrowed pair means the assertion disappears: if\n* you have the result, the context exists.\n*\n* Guards in `access.server.ts` do their own 401 as a side effect of checking a\n* permission. This is for the handlers that need an identity without one — the\n* `/me` routes, and reads whose authorization is a visibility filter.\n*/\nfunction requireCaller(locals) {\n\tif (!locals.ctx || !locals.user) apiError(401, ApiErrorCode.UNAUTHORIZED, \"Unauthorized\");\n\treturn {\n\t\tctx: locals.ctx,\n\t\tuser: locals.user\n\t};\n}\n/**\n* Read required path params, 400ing on any that is missing or blank.\n*\n* SvelteKit types every param as `string`, but a route can be reached with an\n* empty segment, so the non-null assertion handlers used to write was a lie the\n* type system endorsed. Returning a narrowed record means the caller gets real\n* strings without asserting.\n*\n* This does **not** validate format — a guid-shaped param still goes through\n* `GuidSchema` where the route cares. It replaces the `if (!id) apiError(...)`\n* preamble, not the schema check.\n*/\nfunction requireParams(params, ...names) {\n\tconst out = {};\n\tconst missing = [];\n\tfor (const name of names) {\n\t\tconst value = params[name];\n\t\tif (!value) {\n\t\t\tmissing.push(name);\n\t\t\tcontinue;\n\t\t}\n\t\tout[name] = value;\n\t}\n\tif (missing.length) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Missing path parameter${missing.length > 1 ? \"s\" : \"\"}: ${missing.join(\", \")}`);\n\treturn out;\n}\n/**\n* Read a path param through a Zod schema, 400ing on a bad value.\n*\n* The format-checking counterpart to `requireParams` — for guids, enum-shaped\n* segments, and anything else where \"present\" is not the same as \"valid\".\n*/\nfunction parseParam(value, schema, name) {\n\tconst parsed = schema.safeParse(value);\n\tif (!parsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid or missing ${name}`);\n\treturn parsed.data;\n}\n/**\n* Parse and validate a JSON body.\n*\n* A malformed body becomes `null` rather than throwing, so it fails the schema\n* and reports as a validation error — a client sending broken JSON should see\n* a 400 naming the problem, not a 500 from `request.json()`.\n*\n* `missingAs` covers the endpoints whose fields are all optional: passing `{}`\n* lets an empty request body mean \"no changes\" instead of a validation failure.\n*/\nasync function parseBody(request, schema, { missingAs } = {}) {\n\tconst raw = await request.json().catch(() => null);\n\tconst parsed = schema.safeParse(raw ?? missingAs ?? null);\n\tif (!parsed.success) throwZodError(parsed.error);\n\treturn parsed.data;\n}\n/**\n* Pull a required file out of a multipart body and check its size and, where\n* given, its extension.\n*\n* The extension allowlist and the size cap were written out at five call sites,\n* each formatting the same \"Max size: N MB\" message — one of the places where\n* two endpoints must agree and nothing made them. The caps themselves stay in\n* `admin-config`; this only applies them.\n*\n* The size check is a second line of defence, not the first: `requireMaxBodySize`\n* rejects an oversized request before it is buffered. This catches a file that\n* is individually too large inside a request that is not.\n*/\nfunction requireUpload(form, field, { maxBytes, extensions, contentTypes, label = \"File\" }) {\n\tconst file = form.get(field);\n\tif (!(file instanceof File) || file.size === 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, `A ${label.toLowerCase()} is required`);\n\tconst extension = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n\tif (extensions && !extensions.includes(extension)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `File type not allowed. Allowed: ${extensions.join(\", \")}`);\n\tif (contentTypes && !contentTypes.allowed.has(file.type)) apiError(400, ApiErrorCode.VALIDATION_FAILED, contentTypes.message);\n\tif (file.size > maxBytes) apiError(400, ApiErrorCode.VALIDATION_FAILED, `${label} too large. Max size: ${maxBytes / 1048576} MB`);\n\treturn {\n\t\tfile,\n\t\textension\n\t};\n}\n/** A multipart text field, trimmed and length-capped. Absent stays `undefined`. */\nfunction formText(form, field, { maxLength } = {}) {\n\tconst raw = form.get(field);\n\tif (typeof raw !== \"string\") return void 0;\n\tconst trimmed = raw.trim();\n\tif (!trimmed) return void 0;\n\treturn maxLength ? trimmed.slice(0, maxLength) : trimmed;\n}\n/** A paginated collection. The one envelope every v1 list endpoint returns. */\nfunction collection(page) {\n\treturn json({\n\t\titems: page.items,\n\t\tnextCursor: page.nextCursor\n\t});\n}\n/** A created resource. */\nfunction created(body) {\n\treturn json(body, { status: 201 });\n}\n/** A successful mutation with nothing to say. */\nfunction noContent() {\n\treturn new Response(null, { status: 204 });\n}\n/**\n* Serialize a payload through an explicit response schema.\n*\n* **This is what keeps a secret from reaching a client by accident.** Several\n* responses are store records with a credential removed — `tokenHash` on a\n* share link or invite, `apiKey` on an org compute server — and until now the\n* removal was a destructuring line a future edit could drop. Adding a field to\n* the store type would then publish it, silently, with nothing failing.\n*\n* Parsing through a schema inverts that: the response carries what the schema\n* names and nothing else, so a new field on the stored type is invisible until\n* someone adds it here deliberately.\n*/\nfunction shaped(schema, payload, status = 200) {\n\treturn json(schema.parse(payload), { status });\n}\n/** `shaped`, mapped over a page of records. */\nfunction shapedCollection(schema, page) {\n\treturn json({\n\t\titems: page.items.map((item) => schema.parse(item)),\n\t\tnextCursor: page.nextCursor\n\t});\n}\n/**\n* Wrap a handler so an unhandled error becomes a structured API error.\n*\n* Every route used to end in the same `try { … } catch (err) { handleApiError(\n* err, '…') }` — 59 of them. The wrapper hoists it, which is not only less to\n* read: a handler that forgot the try/catch surfaced a raw 500 with a provider\n* message in it, and nothing flagged the omission.\n*\n* `fallback` is the message used when the error carries none of its own; it is\n* required because \"something went wrong\" tells a caller nothing.\n*/\nfunction apiRoute(fallback, handler) {\n\treturn async (event) => {\n\t\ttry {\n\t\t\treturn await handler(event);\n\t\t} catch (err) {\n\t\t\thandleApiError(err, fallback);\n\t\t}\n\t};\n}\n//#endregion\nexport { noContent as a, requireCaller as c, shaped as d, shapedCollection as f, formText as i, requireParams as l, collection as n, parseBody as o, created as r, parseParam as s, apiRoute as t, requireUpload as u };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { g as getLogger, r as renderThrown } from './providers.server.js-DCnhO862.js';
|
|
2
|
-
import { d as deriveOutcome } from './update-outcome.js-BOtdiviI.js';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { existsSync, readFileSync, rmSync } from 'node:fs';
|
|
5
|
-
|
|
6
|
-
//#region src/lib/server/selfUpdate.server.ts
|
|
7
|
-
/**
|
|
8
|
-
* Self-update observability (audit O2): durable log/state paths for the update
|
|
9
|
-
* runner, plus post-restart reconciliation of the update's outcome into the
|
|
10
|
-
* audit event log.
|
|
11
|
-
*
|
|
12
|
-
* The process that launches an update is killed mid-update (`pm2 stop
|
|
13
|
-
* selva-compute` is a step of the update itself), so only the
|
|
14
|
-
* `system.update.started` event can be emitted synchronously by the POST
|
|
15
|
-
* handler. The terminal event (`finished` / `rolled_back` / `failed`) is
|
|
16
|
-
* derived AFTER the app is back up: the POST persists a pending-update state
|
|
17
|
-
* file next to the log, and the reconciler here polls the log until the
|
|
18
|
-
* runner's `[EXIT] code=N` marker appears, classifies it via `deriveOutcome`,
|
|
19
|
-
* emits the matching event, and consumes the state file. Kicked from both the
|
|
20
|
-
* POST (covers the no-restart "already up to date" path) and the first request
|
|
21
|
-
* after boot (covers the real update path, where the emitting process is new).
|
|
22
|
-
*/
|
|
23
|
-
function isDeploymentDir(dir) {
|
|
24
|
-
return existsSync(join(dir, "node_modules", "@selvajs", "selva", "package.json"));
|
|
25
|
-
}
|
|
26
|
-
function findDeploymentDir(env) {
|
|
27
|
-
if (env.INSTALL_DIR && isDeploymentDir(env.INSTALL_DIR)) return env.INSTALL_DIR;
|
|
28
|
-
let dir = process.cwd();
|
|
29
|
-
for (let i = 0; i < 6; i++) {
|
|
30
|
-
if (isDeploymentDir(dir)) return dir;
|
|
31
|
-
const parent = join(dir, "..");
|
|
32
|
-
if (parent === dir) break;
|
|
33
|
-
dir = parent;
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Where the update runner mirrors all its output. Lives in the deployment dir
|
|
39
|
-
* so it survives reboots (it used to be `/tmp/selva-update.log`, wiped on
|
|
40
|
-
* reboot — audit O2); the `/tmp` fallback only applies outside a deployment
|
|
41
|
-
* (dev), where no update can actually run.
|
|
42
|
-
*/
|
|
43
|
-
function updateLogPath(deploymentDir) {
|
|
44
|
-
return deploymentDir ? join(deploymentDir, "selva-update.log") : "/tmp/selva-update.log";
|
|
45
|
-
}
|
|
46
|
-
/** Pending-update marker consumed by the reconciler. Sits next to the log. */
|
|
47
|
-
function updateStatePath(deploymentDir) {
|
|
48
|
-
return join(deploymentDir, "selva-update-state.json");
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* One reconciliation attempt. Reads the pending-update state file; if the log
|
|
52
|
-
* carries the runner's terminal `[EXIT] code=N` marker, classifies the outcome,
|
|
53
|
-
* emits the terminal audit event, reports rollback/failure to the error
|
|
54
|
-
* tracker, and deletes the state file (exactly-once across restarts — the
|
|
55
|
-
* state file is the emission token).
|
|
56
|
-
*/
|
|
57
|
-
async function reconcileUpdateOutcome(deps) {
|
|
58
|
-
const statePath = updateStatePath(deps.deploymentDir);
|
|
59
|
-
let state;
|
|
60
|
-
try {
|
|
61
|
-
state = JSON.parse(readFileSync(statePath, "utf8"));
|
|
62
|
-
} catch {
|
|
63
|
-
return "no_pending_update";
|
|
64
|
-
}
|
|
65
|
-
let logs = "";
|
|
66
|
-
try {
|
|
67
|
-
logs = readFileSync(updateLogPath(deps.deploymentDir), "utf8");
|
|
68
|
-
} catch {}
|
|
69
|
-
const exitMatch = /\[EXIT\] code=(\d+)/.exec(logs);
|
|
70
|
-
if (!exitMatch) return "still_running";
|
|
71
|
-
const exitCode = Number(exitMatch[1]);
|
|
72
|
-
const outcome = deriveOutcome(exitCode, logs);
|
|
73
|
-
const base = {
|
|
74
|
-
fromVersion: state.fromVersion ?? outcome.from,
|
|
75
|
-
toVersion: outcome.to,
|
|
76
|
-
actorId: state.actorId
|
|
77
|
-
};
|
|
78
|
-
let event;
|
|
79
|
-
if (outcome.severity === "critical") event = {
|
|
80
|
-
type: "system.update.failed",
|
|
81
|
-
...base,
|
|
82
|
-
detail: outcome.title
|
|
83
|
-
};
|
|
84
|
-
else if (exitCode === 5 || logs.includes("Rolled back")) event = {
|
|
85
|
-
type: "system.update.rolled_back",
|
|
86
|
-
...base,
|
|
87
|
-
detail: outcome.title
|
|
88
|
-
};
|
|
89
|
-
else if (outcome.severity === "success" || outcome.severity === "info") event = {
|
|
90
|
-
type: "system.update.finished",
|
|
91
|
-
...base
|
|
92
|
-
};
|
|
93
|
-
else event = {
|
|
94
|
-
type: "system.update.finished",
|
|
95
|
-
...base,
|
|
96
|
-
detail: outcome.title
|
|
97
|
-
};
|
|
98
|
-
await deps.emit(event);
|
|
99
|
-
if (event.type !== "system.update.finished") deps.report(/* @__PURE__ */ new Error(`[selfUpdate] ${outcome.title}`));
|
|
100
|
-
try {
|
|
101
|
-
rmSync(statePath);
|
|
102
|
-
} catch {}
|
|
103
|
-
return "reconciled";
|
|
104
|
-
}
|
|
105
|
-
var POLL_MS = 15e3;
|
|
106
|
-
var MAX_POLLS = 80;
|
|
107
|
-
var reconcilerActive = false;
|
|
108
|
-
/**
|
|
109
|
-
* Idempotently start polling for a pending update's terminal state. Safe to
|
|
110
|
-
* call on every boot and on every update POST — it exits immediately when no
|
|
111
|
-
* state file exists and never runs twice concurrently.
|
|
112
|
-
*/
|
|
113
|
-
function startUpdateOutcomeReconciler(deps) {
|
|
114
|
-
if (reconcilerActive) return;
|
|
115
|
-
if (!existsSync(updateStatePath(deps.deploymentDir))) return;
|
|
116
|
-
reconcilerActive = true;
|
|
117
|
-
let polls = 0;
|
|
118
|
-
const timer = setInterval(() => {
|
|
119
|
-
(async () => {
|
|
120
|
-
polls += 1;
|
|
121
|
-
let result;
|
|
122
|
-
try {
|
|
123
|
-
result = await reconcileUpdateOutcome(deps);
|
|
124
|
-
} catch (err) {
|
|
125
|
-
getLogger().error("Outcome reconciliation failed", {
|
|
126
|
-
component: "selfUpdate",
|
|
127
|
-
err: renderThrown(err)
|
|
128
|
-
});
|
|
129
|
-
result = "still_running";
|
|
130
|
-
}
|
|
131
|
-
if (result === "still_running" && polls < MAX_POLLS) return;
|
|
132
|
-
if (result === "still_running") try {
|
|
133
|
-
const statePath = updateStatePath(deps.deploymentDir);
|
|
134
|
-
const state = JSON.parse(readFileSync(statePath, "utf8"));
|
|
135
|
-
await deps.emit({
|
|
136
|
-
type: "system.update.failed",
|
|
137
|
-
fromVersion: state.fromVersion,
|
|
138
|
-
actorId: state.actorId,
|
|
139
|
-
detail: "No terminal marker in the update log within 20 minutes."
|
|
140
|
-
});
|
|
141
|
-
deps.report(/* @__PURE__ */ new Error("[selfUpdate] update never reached a terminal state"));
|
|
142
|
-
rmSync(statePath);
|
|
143
|
-
} catch {}
|
|
144
|
-
clearInterval(timer);
|
|
145
|
-
reconcilerActive = false;
|
|
146
|
-
})();
|
|
147
|
-
}, POLL_MS);
|
|
148
|
-
timer.unref?.();
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
export { updateStatePath as a, findDeploymentDir as f, startUpdateOutcomeReconciler as s, updateLogPath as u };
|
|
152
|
-
//# sourceMappingURL=selfUpdate.server.js-DrtIhtIx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selfUpdate.server.js-DrtIhtIx.js","sources":["../../../../.svelte-kit/output/server/chunks/selfUpdate.server.js"],"sourcesContent":["import { T as renderThrown, f as getLogger } from \"./providers.server.js\";\nimport { t as deriveOutcome } from \"./update-outcome.js\";\nimport { join } from \"node:path\";\nimport { existsSync, readFileSync, rmSync } from \"node:fs\";\n//#region src/lib/server/selfUpdate.server.ts\n/**\n* Self-update observability (audit O2): durable log/state paths for the update\n* runner, plus post-restart reconciliation of the update's outcome into the\n* audit event log.\n*\n* The process that launches an update is killed mid-update (`pm2 stop\n* selva-compute` is a step of the update itself), so only the\n* `system.update.started` event can be emitted synchronously by the POST\n* handler. The terminal event (`finished` / `rolled_back` / `failed`) is\n* derived AFTER the app is back up: the POST persists a pending-update state\n* file next to the log, and the reconciler here polls the log until the\n* runner's `[EXIT] code=N` marker appears, classifies it via `deriveOutcome`,\n* emits the matching event, and consumes the state file. Kicked from both the\n* POST (covers the no-restart \"already up to date\" path) and the first request\n* after boot (covers the real update path, where the emitting process is new).\n*/\nfunction isDeploymentDir(dir) {\n\treturn existsSync(join(dir, \"node_modules\", \"@selvajs\", \"selva\", \"package.json\"));\n}\nfunction findDeploymentDir(env) {\n\tif (env.INSTALL_DIR && isDeploymentDir(env.INSTALL_DIR)) return env.INSTALL_DIR;\n\tlet dir = process.cwd();\n\tfor (let i = 0; i < 6; i++) {\n\t\tif (isDeploymentDir(dir)) return dir;\n\t\tconst parent = join(dir, \"..\");\n\t\tif (parent === dir) break;\n\t\tdir = parent;\n\t}\n\treturn null;\n}\n/**\n* Where the update runner mirrors all its output. Lives in the deployment dir\n* so it survives reboots (it used to be `/tmp/selva-update.log`, wiped on\n* reboot — audit O2); the `/tmp` fallback only applies outside a deployment\n* (dev), where no update can actually run.\n*/\nfunction updateLogPath(deploymentDir) {\n\treturn deploymentDir ? join(deploymentDir, \"selva-update.log\") : \"/tmp/selva-update.log\";\n}\n/** Pending-update marker consumed by the reconciler. Sits next to the log. */\nfunction updateStatePath(deploymentDir) {\n\treturn join(deploymentDir, \"selva-update-state.json\");\n}\n/**\n* One reconciliation attempt. Reads the pending-update state file; if the log\n* carries the runner's terminal `[EXIT] code=N` marker, classifies the outcome,\n* emits the terminal audit event, reports rollback/failure to the error\n* tracker, and deletes the state file (exactly-once across restarts — the\n* state file is the emission token).\n*/\nasync function reconcileUpdateOutcome(deps) {\n\tconst statePath = updateStatePath(deps.deploymentDir);\n\tlet state;\n\ttry {\n\t\tstate = JSON.parse(readFileSync(statePath, \"utf8\"));\n\t} catch {\n\t\treturn \"no_pending_update\";\n\t}\n\tlet logs = \"\";\n\ttry {\n\t\tlogs = readFileSync(updateLogPath(deps.deploymentDir), \"utf8\");\n\t} catch {}\n\tconst exitMatch = /\\[EXIT\\] code=(\\d+)/.exec(logs);\n\tif (!exitMatch) return \"still_running\";\n\tconst exitCode = Number(exitMatch[1]);\n\tconst outcome = deriveOutcome(exitCode, logs);\n\tconst base = {\n\t\tfromVersion: state.fromVersion ?? outcome.from,\n\t\ttoVersion: outcome.to,\n\t\tactorId: state.actorId\n\t};\n\tlet event;\n\tif (outcome.severity === \"critical\") event = {\n\t\ttype: \"system.update.failed\",\n\t\t...base,\n\t\tdetail: outcome.title\n\t};\n\telse if (exitCode === 5 || logs.includes(\"Rolled back\")) event = {\n\t\ttype: \"system.update.rolled_back\",\n\t\t...base,\n\t\tdetail: outcome.title\n\t};\n\telse if (outcome.severity === \"success\" || outcome.severity === \"info\") event = {\n\t\ttype: \"system.update.finished\",\n\t\t...base\n\t};\n\telse event = {\n\t\ttype: \"system.update.finished\",\n\t\t...base,\n\t\tdetail: outcome.title\n\t};\n\tawait deps.emit(event);\n\tif (event.type !== \"system.update.finished\") deps.report(/* @__PURE__ */ new Error(`[selfUpdate] ${outcome.title}`));\n\ttry {\n\t\trmSync(statePath);\n\t} catch {}\n\treturn \"reconciled\";\n}\nvar POLL_MS = 15e3;\nvar MAX_POLLS = 80;\nvar reconcilerActive = false;\n/**\n* Idempotently start polling for a pending update's terminal state. Safe to\n* call on every boot and on every update POST — it exits immediately when no\n* state file exists and never runs twice concurrently.\n*/\nfunction startUpdateOutcomeReconciler(deps) {\n\tif (reconcilerActive) return;\n\tif (!existsSync(updateStatePath(deps.deploymentDir))) return;\n\treconcilerActive = true;\n\tlet polls = 0;\n\tconst timer = setInterval(() => {\n\t\t(async () => {\n\t\t\tpolls += 1;\n\t\t\tlet result;\n\t\t\ttry {\n\t\t\t\tresult = await reconcileUpdateOutcome(deps);\n\t\t\t} catch (err) {\n\t\t\t\tgetLogger().error(\"Outcome reconciliation failed\", {\n\t\t\t\t\tcomponent: \"selfUpdate\",\n\t\t\t\t\terr: renderThrown(err)\n\t\t\t\t});\n\t\t\t\tresult = \"still_running\";\n\t\t\t}\n\t\t\tif (result === \"still_running\" && polls < MAX_POLLS) return;\n\t\t\tif (result === \"still_running\") try {\n\t\t\t\tconst statePath = updateStatePath(deps.deploymentDir);\n\t\t\t\tconst state = JSON.parse(readFileSync(statePath, \"utf8\"));\n\t\t\t\tawait deps.emit({\n\t\t\t\t\ttype: \"system.update.failed\",\n\t\t\t\t\tfromVersion: state.fromVersion,\n\t\t\t\t\tactorId: state.actorId,\n\t\t\t\t\tdetail: \"No terminal marker in the update log within 20 minutes.\"\n\t\t\t\t});\n\t\t\t\tdeps.report(/* @__PURE__ */ new Error(\"[selfUpdate] update never reached a terminal state\"));\n\t\t\t\trmSync(statePath);\n\t\t\t} catch {}\n\t\t\tclearInterval(timer);\n\t\t\treconcilerActive = false;\n\t\t})();\n\t}, POLL_MS);\n\ttimer.unref?.();\n}\n//#endregion\nexport { updateStatePath as i, startUpdateOutcomeReconciler as n, updateLogPath as r, findDeploymentDir as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { a as apiError, A as ApiErrorCode } from './api-errors.js-79b_3bHg.js';
|
|
2
|
-
import { e as evictComputeClient } from './engine.server.js-fezh3ucS.js';
|
|
3
|
-
|
|
4
|
-
//#region src/lib/server/compute/evictChangedServers.ts
|
|
5
|
-
/**
|
|
6
|
-
* Compute-client cache invalidation on config write (ADR 0004 Consequences).
|
|
7
|
-
*
|
|
8
|
-
* The client cache keys on server `id`, so a rotated `serverUrl`/`apiKey` keeps
|
|
9
|
-
* the SAME key with stale connection details — it no longer ages out on its own
|
|
10
|
-
* the way the old URL-keyed cache did. The config-write path must therefore
|
|
11
|
-
* evict explicitly: this helper diffs the previous scoped server set against the
|
|
12
|
-
* next one and drops the warm client for every server whose connection details
|
|
13
|
-
* changed or that was removed. Unchanged servers keep their warm client.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Evict warm clients for servers whose connection details changed or that were
|
|
17
|
-
* removed. `prev` and `next` are the scoped server sets before/after the write.
|
|
18
|
-
*/
|
|
19
|
-
function evictChangedServers(prev, next) {
|
|
20
|
-
const nextById = new Map(next.map((s) => [s.id, s]));
|
|
21
|
-
for (const before of prev) if (!nextById.has(before.id)) evictComputeClient(before.id);
|
|
22
|
-
const prevById = new Map(prev.map((s) => [s.id, s]));
|
|
23
|
-
for (const after of next) {
|
|
24
|
-
const before = prevById.get(after.id);
|
|
25
|
-
if (before && (before.serverUrl !== after.serverUrl || before.apiKey !== after.apiKey)) evictComputeClient(after.id);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
29
|
-
//#region src/lib/server/compute/serverConfigWrite.ts
|
|
30
|
-
/**
|
|
31
|
-
* Shared write-path rules for compute server config.
|
|
32
|
-
*
|
|
33
|
-
* Two routes accept a server set: `/api/admin/compute` (platform scope,
|
|
34
|
-
* `manage_compute`) and `/api/v1/orgs/{orgId}/compute` (org scope,
|
|
35
|
-
* `manage_org_compute`). They differ in who may call them, what extra fields
|
|
36
|
-
* they carry (`sharedWith` vs `ownerOrgId`), and how they validate the default
|
|
37
|
-
* selection — but the field validation and the apiKey merge below must behave
|
|
38
|
-
* identically in both, so they live here rather than in either handler.
|
|
39
|
-
*
|
|
40
|
-
* The apiKey merge is the reason this file exists: a divergence between the two
|
|
41
|
-
* copies silently clears or leaks a stored credential, and nothing fails at
|
|
42
|
-
* build time.
|
|
43
|
-
*/
|
|
44
|
-
/**
|
|
45
|
-
* Validate the scope-independent fields of every submitted server. Throws the
|
|
46
|
-
* first failure as a 400; scope-specific fields (`sharedWith`, `ownerOrgId`)
|
|
47
|
-
* are the caller's business.
|
|
48
|
-
*/
|
|
49
|
-
function validateIncomingServers(servers) {
|
|
50
|
-
for (const s of servers) {
|
|
51
|
-
if (!s.id || typeof s.id !== "string") apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs an id");
|
|
52
|
-
if (!s.label || typeof s.label !== "string") apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a label");
|
|
53
|
-
if (!s.serverUrl || typeof s.serverUrl !== "string") apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a serverUrl");
|
|
54
|
-
try {
|
|
55
|
-
new URL(s.serverUrl);
|
|
56
|
-
} catch {
|
|
57
|
-
apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);
|
|
58
|
-
}
|
|
59
|
-
if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== "string") apiError(400, ApiErrorCode.VALIDATION_FAILED, "apiKey must be a string, null, or omitted");
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve the key to persist for one server.
|
|
64
|
-
*
|
|
65
|
-
* The UI never receives stored keys — it sends back `hasApiKey` and omits the
|
|
66
|
-
* field for servers the operator didn't touch. So "omitted" cannot mean "clear":
|
|
67
|
-
* it has to preserve, or every save through the settings form would wipe the
|
|
68
|
-
* keys of every server the operator left alone. Clearing is therefore explicit
|
|
69
|
-
* (`null`), and an empty string is treated as "not provided" because that is
|
|
70
|
-
* what an untouched password input submits.
|
|
71
|
-
*
|
|
72
|
-
* @param submitted the `apiKey` field as it arrived
|
|
73
|
-
* @param storedKey the key currently persisted for this server id, if any
|
|
74
|
-
*/
|
|
75
|
-
function resolveApiKey(submitted, storedKey) {
|
|
76
|
-
if (submitted === null) return void 0;
|
|
77
|
-
return submitted ? submitted : storedKey;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Build the id → stored-key lookup the merge reads. The caller passes only the
|
|
81
|
-
* servers in its own scope, so one scope's write can never resolve a key from
|
|
82
|
-
* another's rows.
|
|
83
|
-
*/
|
|
84
|
-
function storedKeysById(scopedServers) {
|
|
85
|
-
return new Map(scopedServers.map((s) => [s.id, s.apiKey]));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export { evictChangedServers as e, resolveApiKey as r, storedKeysById as s, validateIncomingServers as v };
|
|
89
|
-
//# sourceMappingURL=serverConfigWrite.js-BfjHOb52.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverConfigWrite.js-BfjHOb52.js","sources":["../../../../.svelte-kit/output/server/chunks/serverConfigWrite.js"],"sourcesContent":["import { n as apiError, t as ApiErrorCode } from \"./api-errors.js\";\nimport { i as evictComputeClient } from \"./engine.server.js\";\n//#region src/lib/server/compute/evictChangedServers.ts\n/**\n* Compute-client cache invalidation on config write (ADR 0004 Consequences).\n*\n* The client cache keys on server `id`, so a rotated `serverUrl`/`apiKey` keeps\n* the SAME key with stale connection details — it no longer ages out on its own\n* the way the old URL-keyed cache did. The config-write path must therefore\n* evict explicitly: this helper diffs the previous scoped server set against the\n* next one and drops the warm client for every server whose connection details\n* changed or that was removed. Unchanged servers keep their warm client.\n*/\n/**\n* Evict warm clients for servers whose connection details changed or that were\n* removed. `prev` and `next` are the scoped server sets before/after the write.\n*/\nfunction evictChangedServers(prev, next) {\n\tconst nextById = new Map(next.map((s) => [s.id, s]));\n\tfor (const before of prev) if (!nextById.has(before.id)) evictComputeClient(before.id);\n\tconst prevById = new Map(prev.map((s) => [s.id, s]));\n\tfor (const after of next) {\n\t\tconst before = prevById.get(after.id);\n\t\tif (before && (before.serverUrl !== after.serverUrl || before.apiKey !== after.apiKey)) evictComputeClient(after.id);\n\t}\n}\n//#endregion\n//#region src/lib/server/compute/serverConfigWrite.ts\n/**\n* Shared write-path rules for compute server config.\n*\n* Two routes accept a server set: `/api/admin/compute` (platform scope,\n* `manage_compute`) and `/api/v1/orgs/{orgId}/compute` (org scope,\n* `manage_org_compute`). They differ in who may call them, what extra fields\n* they carry (`sharedWith` vs `ownerOrgId`), and how they validate the default\n* selection — but the field validation and the apiKey merge below must behave\n* identically in both, so they live here rather than in either handler.\n*\n* The apiKey merge is the reason this file exists: a divergence between the two\n* copies silently clears or leaks a stored credential, and nothing fails at\n* build time.\n*/\n/**\n* Validate the scope-independent fields of every submitted server. Throws the\n* first failure as a 400; scope-specific fields (`sharedWith`, `ownerOrgId`)\n* are the caller's business.\n*/\nfunction validateIncomingServers(servers) {\n\tfor (const s of servers) {\n\t\tif (!s.id || typeof s.id !== \"string\") apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs an id\");\n\t\tif (!s.label || typeof s.label !== \"string\") apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a label\");\n\t\tif (!s.serverUrl || typeof s.serverUrl !== \"string\") apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a serverUrl\");\n\t\ttry {\n\t\t\tnew URL(s.serverUrl);\n\t\t} catch {\n\t\t\tapiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);\n\t\t}\n\t\tif (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== \"string\") apiError(400, ApiErrorCode.VALIDATION_FAILED, \"apiKey must be a string, null, or omitted\");\n\t}\n}\n/**\n* Resolve the key to persist for one server.\n*\n* The UI never receives stored keys — it sends back `hasApiKey` and omits the\n* field for servers the operator didn't touch. So \"omitted\" cannot mean \"clear\":\n* it has to preserve, or every save through the settings form would wipe the\n* keys of every server the operator left alone. Clearing is therefore explicit\n* (`null`), and an empty string is treated as \"not provided\" because that is\n* what an untouched password input submits.\n*\n* @param submitted the `apiKey` field as it arrived\n* @param storedKey the key currently persisted for this server id, if any\n*/\nfunction resolveApiKey(submitted, storedKey) {\n\tif (submitted === null) return void 0;\n\treturn submitted ? submitted : storedKey;\n}\n/**\n* Build the id → stored-key lookup the merge reads. The caller passes only the\n* servers in its own scope, so one scope's write can never resolve a key from\n* another's rows.\n*/\nfunction storedKeysById(scopedServers) {\n\treturn new Map(scopedServers.map((s) => [s.id, s.apiKey]));\n}\n//#endregion\nexport { evictChangedServers as i, storedKeysById as n, validateIncomingServers as r, resolveApiKey as t };\n"],"names":[],"mappings":"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"}
|