@selvajs/selva 4.7.1 → 4.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.C_NYyhEq.css +2 -0
- package/build/client/_app/immutable/assets/0.C_NYyhEq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.C_NYyhEq.css.gz +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.c7Dt22ey.wasm +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.c7Dt22ey.wasm.br +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.c7Dt22ey.wasm.gz +0 -0
- package/build/client/_app/immutable/chunks/BFoE6XI72.js +7 -0
- package/build/client/_app/immutable/chunks/BFoE6XI72.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFoE6XI72.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BH_AsplL.js +2 -0
- package/build/client/_app/immutable/chunks/BH_AsplL.js.br +0 -0
- package/build/client/_app/immutable/chunks/BH_AsplL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BY-g58bE.js +1 -0
- package/build/client/_app/immutable/chunks/BY-g58bE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BY-g58bE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbD3QanV2.js +1 -0
- package/build/client/_app/immutable/chunks/BbD3QanV2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbD3QanV2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bq18tj_a2.js +1 -0
- package/build/client/_app/immutable/chunks/Bq18tj_a2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bq18tj_a2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5qitKDD2.js +1 -0
- package/build/client/_app/immutable/chunks/C5qitKDD2.js.br +2 -0
- package/build/client/_app/immutable/chunks/C5qitKDD2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQAfTXcm.js +1 -0
- package/build/client/_app/immutable/chunks/CQAfTXcm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQAfTXcm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVGG5cou.js +2 -0
- package/build/client/_app/immutable/chunks/CVGG5cou.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVGG5cou.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DexxF51_.js +1 -0
- package/build/client/_app/immutable/chunks/DexxF51_.js.br +3 -0
- package/build/client/_app/immutable/chunks/DexxF51_.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D-RJkHIt.js +2 -0
- package/build/client/_app/immutable/entry/app.D-RJkHIt.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D-RJkHIt.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.I2pqBGf4.js +1 -0
- package/build/client/_app/immutable/entry/start.I2pqBGf4.js.br +0 -0
- package/build/client/_app/immutable/entry/start.I2pqBGf4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DVyoAMuu.js +1 -0
- package/build/client/_app/immutable/nodes/1.DVyoAMuu.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DVyoAMuu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CQbreiqk.js +2 -0
- package/build/client/_app/immutable/nodes/11.CQbreiqk.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CQbreiqk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.C4vZxwnQ.js +2 -0
- package/build/client/_app/immutable/nodes/13.C4vZxwnQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.C4vZxwnQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.DASy3nb-.js +2 -0
- package/build/client/_app/immutable/nodes/14.DASy3nb-.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DASy3nb-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.BC1C3cKb.js +21 -0
- package/build/client/_app/immutable/nodes/15.BC1C3cKb.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.BC1C3cKb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.ndEU45yq.js +6 -0
- package/build/client/_app/immutable/nodes/16.ndEU45yq.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.ndEU45yq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.LLtsCwzz.js +2 -0
- package/build/client/_app/immutable/nodes/17.LLtsCwzz.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.LLtsCwzz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.CD3DqCqe.js +2 -0
- package/build/client/_app/immutable/nodes/19.CD3DqCqe.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.CD3DqCqe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BlsyZJiA.js +1 -0
- package/build/client/_app/immutable/nodes/2.BlsyZJiA.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BlsyZJiA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.BFohqiKN.js +12 -0
- package/build/client/_app/immutable/nodes/20.BFohqiKN.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.BFohqiKN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.DZiGzC7Z.js +6 -0
- package/build/client/_app/immutable/nodes/21.DZiGzC7Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.DZiGzC7Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.C46hjmtc.js +16 -0
- package/build/client/_app/immutable/nodes/23.C46hjmtc.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.C46hjmtc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.DCmyEKJz.js +6 -0
- package/build/client/_app/immutable/nodes/24.DCmyEKJz.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.DCmyEKJz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DyMg91My.js +4 -0
- package/build/client/_app/immutable/nodes/27.DyMg91My.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DyMg91My.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.CPR6YRXC.js +4 -0
- package/build/client/_app/immutable/nodes/28.CPR6YRXC.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.CPR6YRXC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.Coy1qPJ_.js +2 -0
- package/build/client/_app/immutable/nodes/29.Coy1qPJ_.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.Coy1qPJ_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CZJ4gpKN.js +1 -0
- package/build/client/_app/immutable/nodes/3.CZJ4gpKN.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CZJ4gpKN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CzJyrCok.js +2 -0
- package/build/client/_app/immutable/nodes/30.CzJyrCok.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CzJyrCok.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DNdojkB1.js +1 -0
- package/build/client/_app/immutable/nodes/5.DNdojkB1.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DNdojkB1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.4pxciwO2.js +1 -0
- package/build/client/_app/immutable/nodes/6.4pxciwO2.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.4pxciwO2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DvXhnRZv.js +1 -0
- package/build/client/_app/immutable/nodes/7.DvXhnRZv.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DvXhnRZv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DVVhiAKi.js +2 -0
- package/build/client/_app/immutable/nodes/8.DVVhiAKi.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DVVhiAKi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Brd0DUUz.js +1 -0
- package/build/client/_app/immutable/nodes/9.Brd0DUUz.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Brd0DUUz.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-CNlN8xDO.js +281 -0
- package/build/server/chunks/chunks/AppHeader.js-CNlN8xDO.js.map +1 -0
- package/build/server/chunks/chunks/SideNav.js-CU5TFjXQ.js +67 -0
- package/build/server/chunks/chunks/SideNav.js-CU5TFjXQ.js.map +1 -0
- package/build/server/chunks/chunks/UserChip.js-DwXHanLA.js +1163 -0
- package/build/server/chunks/chunks/UserChip.js-DwXHanLA.js.map +1 -0
- package/build/server/chunks/chunks/access.server.js-CzBCyDoD.js +453 -0
- package/build/server/chunks/chunks/access.server.js-CzBCyDoD.js.map +1 -0
- package/build/server/chunks/chunks/access2.server.js-BONknTul.js +20 -0
- package/build/server/chunks/chunks/access2.server.js-BONknTul.js.map +1 -0
- package/build/server/chunks/chunks/admin-config.js-BXnSbuRl.js +3 -0
- package/build/server/chunks/chunks/admin-config.js-BXnSbuRl.js.map +1 -0
- package/build/server/chunks/chunks/api-errors.js-BLGSIpxK.js +141 -0
- package/build/server/chunks/chunks/api-errors.js-BLGSIpxK.js.map +1 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-2xuTUNHO.js +162 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-2xuTUNHO.js.map +1 -0
- package/build/server/chunks/chunks/auth.server.js-CnOciBEi.js +2 -0
- package/build/server/chunks/chunks/auth.server.js-CnOciBEi.js.map +1 -0
- package/build/server/chunks/chunks/bootHealth.server.js-MXd4euZW.js +91 -0
- package/build/server/chunks/chunks/bootHealth.server.js-MXd4euZW.js.map +1 -0
- package/build/server/chunks/chunks/client.js-D-cqOdzj.js +58 -0
- package/build/server/chunks/chunks/client.js-D-cqOdzj.js.map +1 -0
- package/build/server/chunks/chunks/clientCache.server.js-DB1NkYeo.js +195 -0
- package/build/server/chunks/chunks/clientCache.server.js-DB1NkYeo.js.map +1 -0
- package/build/server/chunks/chunks/computeLimits.js-B_SlcTdp.js +48 -0
- package/build/server/chunks/chunks/computeLimits.js-B_SlcTdp.js.map +1 -0
- package/build/server/chunks/chunks/evictChangedServers.js-G5on-4-K.js +29 -0
- package/build/server/chunks/chunks/evictChangedServers.js-G5on-4-K.js.map +1 -0
- package/build/server/chunks/chunks/forms.js-DT1udT9D.js +2 -0
- package/build/server/chunks/chunks/forms.js-DT1udT9D.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-WBVEU67X.js.map +1 -1
- package/build/server/chunks/chunks/internal2.js-CWvNgH57.js +224 -0
- package/build/server/chunks/chunks/internal2.js-CWvNgH57.js.map +1 -0
- package/build/server/chunks/chunks/navigation.js-DT1udT9D.js +2 -0
- package/build/server/chunks/chunks/navigation.js-DT1udT9D.js.map +1 -0
- package/build/server/chunks/chunks/org-members.server.js-CWd6Guql.js +35 -0
- package/build/server/chunks/chunks/org-members.server.js-CWd6Guql.js.map +1 -0
- package/build/server/chunks/chunks/package.js-fCdNMx2E.js +76 -0
- package/build/server/chunks/chunks/package.js-fCdNMx2E.js.map +1 -0
- package/build/server/chunks/chunks/permissions.server.js-CTvpP-8K.js +15 -0
- package/build/server/chunks/chunks/permissions.server.js-CTvpP-8K.js.map +1 -0
- package/build/server/chunks/chunks/providers.server.js-Wjp7cRza.js +6312 -0
- package/build/server/chunks/chunks/providers.server.js-Wjp7cRza.js.map +1 -0
- package/build/server/chunks/chunks/resolve.server.js-sJadSbGv.js +62 -0
- package/build/server/chunks/chunks/resolve.server.js-sJadSbGv.js.map +1 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-CUzx8d4Z.js +152 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-CUzx8d4Z.js.map +1 -0
- package/build/server/chunks/chunks/state.js-0D9l5k29.js +64 -0
- package/build/server/chunks/chunks/state.js-0D9l5k29.js.map +1 -0
- package/build/server/chunks/chunks/stores.js-ByO7j12C.js +35 -0
- package/build/server/chunks/chunks/stores.js-ByO7j12C.js.map +1 -0
- package/build/server/chunks/chunks/utils2.js-DzUQOoCX.js +62 -0
- package/build/server/chunks/chunks/utils2.js-DzUQOoCX.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/_server.ts.js-CSSjL1aU.js +93 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/_server.ts.js-CSSjL1aU.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/_server.ts.js-CMq4u8W0.js +53 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/_server.ts.js-CMq4u8W0.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/_server.ts.js-fdh4b1g6.js +79 -0
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/_server.ts.js-fdh4b1g6.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/_server.ts.js-BpJ3JwCW.js +50 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/_server.ts.js-BpJ3JwCW.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-C7N8_NaN.js +86 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-C7N8_NaN.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_server.ts.js-NEuAvShS.js +72 -0
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_server.ts.js-NEuAvShS.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/_server.ts.js-D97Zcsl3.js +74 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/_server.ts.js-D97Zcsl3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js-B6TojUBT.js +34 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js-B6TojUBT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js-CQfCYMlk.js +71 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js-CQfCYMlk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_server.ts.js-Gyjialsx.js +103 -0
- package/build/server/chunks/entries/endpoints/admin/api/projects/_server.ts.js-Gyjialsx.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-DSpJSpmq.js +208 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-DSpJSpmq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/_server.ts.js-BjnIUQv7.js +90 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/_server.ts.js-BjnIUQv7.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-CXE4GneZ.js +403 -0
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-CXE4GneZ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/_server.ts.js-Bk8THYuD.js +76 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/_server.ts.js-Bk8THYuD.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js-B4doN1wn.js +46 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js-B4doN1wn.js.map +1 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_server.ts.js-C4oeSdME.js +86 -0
- package/build/server/chunks/entries/endpoints/admin/api/users/_server.ts.js-C4oeSdME.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-DEYsMeB-.js +0 -0
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-DEYsMeB-.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/compute/schema/_server.ts.js-DFfzNLtj.js +68 -0
- package/build/server/chunks/entries/endpoints/api/compute/schema/_server.ts.js-DFfzNLtj.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-DcdyTQq_.js +75 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-DcdyTQq_.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-BvxZZthH.js +46 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-BvxZZthH.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_server.ts.js-CO3TnH5n.js +44 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_server.ts.js-CO3TnH5n.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/_server.ts.js-CQLfmHeQ.js +40 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/_server.ts.js-CQLfmHeQ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js-CmX16JIT.js +46 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js-CmX16JIT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-Xi54QgJT.js +84 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-Xi54QgJT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js-DArge1B-.js +47 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js-DArge1B-.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js-CA5kyuF4.js +40 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js-CA5kyuF4.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-D8V5knOs.js +94 -0
- package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-D8V5knOs.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-8fiP1Kvb.js +59 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-8fiP1Kvb.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-D00SGxLm.js +89 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-D00SGxLm.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-2iVLHYFq.js +56 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-2iVLHYFq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/invites/_id_/_server.ts.js-BAC7u5_k.js +49 -0
- package/build/server/chunks/entries/endpoints/api/invites/_id_/_server.ts.js-BAC7u5_k.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/invites/_server.ts.js-BsGsD_EG.js +77 -0
- package/build/server/chunks/entries/endpoints/api/invites/_server.ts.js-BsGsD_EG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/_server.ts.js-Bg1VMXkr.js +45 -0
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/_server.ts.js-Bg1VMXkr.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-BgM1YoUT.js +110 -0
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-BgM1YoUT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js-DTBgdsQ-.js +79 -0
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js-DTBgdsQ-.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/_server.ts.js-CkxHsZUH.js +71 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/_server.ts.js-CkxHsZUH.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_server.ts.js-Gw2Y_4NQ.js +65 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_server.ts.js-Gw2Y_4NQ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js-UbN3QXPq.js +64 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js-UbN3QXPq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/_server.ts.js-CPI5Lgo_.js +48 -0
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/_server.ts.js-CPI5Lgo_.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/projects/_server.ts.js-B8r1kMW3.js +85 -0
- package/build/server/chunks/entries/endpoints/api/projects/_server.ts.js-B8r1kMW3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-Bb915SbG.js +48 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-Bb915SbG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-5SMFLI8g.js +52 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-5SMFLI8g.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-lGwb9U-4.js +51 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-lGwb9U-4.js.map +1 -0
- package/build/server/chunks/entries/hooks.server.js-DePwqtK0.js +341 -0
- package/build/server/chunks/entries/hooks.server.js-DePwqtK0.js.map +1 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-CWCmCecR.js +35 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-CWCmCecR.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-B6KYjzmH.js +34 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-B6KYjzmH.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-CI8uwVff.js +76 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-CI8uwVff.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-DSfBzMqL.js +109 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-DSfBzMqL.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CQQAFwl1.js +148 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CQQAFwl1.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-C96JJBHE.js +36 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-C96JJBHE.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CXC4E9hR.js +31 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CXC4E9hR.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-VKAqu-dr.js +121 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-VKAqu-dr.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DCjhQohV.js +75 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DCjhQohV.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-CaRZ22CF.js +359 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-CaRZ22CF.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-DXv7dWhK.js +245 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-DXv7dWhK.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DTScln2J.js +45 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DTScln2J.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-BheaUvpz.js +612 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-BheaUvpz.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-Cmg3zFs-.js +35 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-Cmg3zFs-.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CpVVJpVi.js +86 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CpVVJpVi.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DMOvTFjN.js +616 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DMOvTFjN.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-d_rFu7ap.js +42 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-d_rFu7ap.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-DvO9y2XD.js +282 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-DvO9y2XD.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BOGl22j9.js +79 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BOGl22j9.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CovWU5Af.js +1363 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CovWU5Af.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-jrtfuXDZ.js +70 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-jrtfuXDZ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-2mav2es6.js +681 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-2mav2es6.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-TqjhNJn4.js +62 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-TqjhNJn4.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CsEVG4Qi.js +62 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CsEVG4Qi.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-D4BsGogS.js +124 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-D4BsGogS.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-02voe6h3.js +12096 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-02voe6h3.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-DoZYMSFL.js +73 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-DoZYMSFL.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-kQg7prrI.js +328 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-kQg7prrI.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-crSVM6nE.js +76 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-crSVM6nE.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DFc8B7zz.js +256 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DFc8B7zz.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-C0WQJqig.js +49 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-C0WQJqig.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-DF1WeYyF.js +101 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-DF1WeYyF.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-UA4Ub5QH.js +3770 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-UA4Ub5QH.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-DH6_gIb7.js +113 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-DH6_gIb7.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DdjWjdMZ.js +321 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DdjWjdMZ.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DLa2-7lS.js +28 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DLa2-7lS.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DcS_pi8Q.js +162 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DcS_pi8Q.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-DGAiQdZI.js +35 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-DGAiQdZI.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CYiX10yQ.js +42 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CYiX10yQ.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-x-kNR95q.js +593 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-x-kNR95q.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-C2oNd-tt.js +58 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-C2oNd-tt.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BnZELsgA.js +539 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BnZELsgA.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DbK6fG9x.js +42 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DbK6fG9x.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CNvUx0-V.js +436 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CNvUx0-V.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-Covcwasu.js +50 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-Covcwasu.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-BI6Y_-xD.js +262 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-BI6Y_-xD.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-Cts7JADL.js +32 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-Cts7JADL.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DrDde3K0.js +16 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DrDde3K0.js.map +1 -0
- package/build/server/chunks/handler-ZE5xWjCD.js +1206 -0
- package/build/server/chunks/handler-ZE5xWjCD.js.map +1 -0
- package/build/server/chunks/index.js-B6xuXumZ.js +3747 -0
- package/build/server/chunks/index.js-B6xuXumZ.js.map +1 -0
- package/build/server/chunks/manifest.js-BwdukJwC.js +548 -0
- package/build/server/chunks/manifest.js-BwdukJwC.js.map +1 -0
- package/build/server/chunks/nodes/0.js-DKuQ3PA2.js +25 -0
- package/build/server/chunks/nodes/0.js-DKuQ3PA2.js.map +1 -0
- package/build/server/chunks/nodes/1.js-mHFYMGF2.js +9 -0
- package/build/server/chunks/nodes/1.js-mHFYMGF2.js.map +1 -0
- package/build/server/chunks/nodes/10.js-BN9OT7So.js +27 -0
- package/build/server/chunks/nodes/10.js-BN9OT7So.js.map +1 -0
- package/build/server/chunks/nodes/11.js-DM3Hz345.js +28 -0
- package/build/server/chunks/nodes/11.js-DM3Hz345.js.map +1 -0
- package/build/server/chunks/nodes/12.js-D0tJacZx.js +26 -0
- package/build/server/chunks/nodes/12.js-D0tJacZx.js.map +1 -0
- package/build/server/chunks/nodes/13.js-BqvfcLwo.js +26 -0
- package/build/server/chunks/nodes/13.js-BqvfcLwo.js.map +1 -0
- package/build/server/chunks/nodes/14.js-CngfosqV.js +26 -0
- package/build/server/chunks/nodes/14.js-CngfosqV.js.map +1 -0
- package/build/server/chunks/nodes/15.js-DwNNUCsj.js +38 -0
- package/build/server/chunks/nodes/15.js-DwNNUCsj.js.map +1 -0
- package/build/server/chunks/nodes/16.js-D_LnVEKm.js +29 -0
- package/build/server/chunks/nodes/16.js-D_LnVEKm.js.map +1 -0
- package/build/server/chunks/nodes/17.js-Cae_zNwu.js +9 -0
- package/build/server/chunks/nodes/17.js-Cae_zNwu.js.map +1 -0
- package/build/server/chunks/nodes/18.js-BiSh_xo0.js +34 -0
- package/build/server/chunks/nodes/18.js-BiSh_xo0.js.map +1 -0
- package/build/server/chunks/nodes/19.js-Di2BtNSf.js +27 -0
- package/build/server/chunks/nodes/19.js-Di2BtNSf.js.map +1 -0
- package/build/server/chunks/nodes/2.js-DIKJP0o1.js +27 -0
- package/build/server/chunks/nodes/2.js-DIKJP0o1.js.map +1 -0
- package/build/server/chunks/nodes/20.js-Drhlsfzl.js +40 -0
- package/build/server/chunks/nodes/20.js-Drhlsfzl.js.map +1 -0
- package/build/server/chunks/nodes/21.js-CWGLNePo.js +34 -0
- package/build/server/chunks/nodes/21.js-CWGLNePo.js.map +1 -0
- package/build/server/chunks/nodes/23.js-Brf-hDaf.js +28 -0
- package/build/server/chunks/nodes/23.js-Brf-hDaf.js.map +1 -0
- package/build/server/chunks/nodes/24.js-B99rorTq.js +34 -0
- package/build/server/chunks/nodes/24.js-B99rorTq.js.map +1 -0
- package/build/server/chunks/nodes/25.js-D9rFPXHZ.js +26 -0
- package/build/server/chunks/nodes/25.js-D9rFPXHZ.js.map +1 -0
- package/build/server/chunks/nodes/27.js-C7PvXWdZ.js +27 -0
- package/build/server/chunks/nodes/27.js-C7PvXWdZ.js.map +1 -0
- package/build/server/chunks/nodes/28.js-DJNPfQkg.js +26 -0
- package/build/server/chunks/nodes/28.js-DJNPfQkg.js.map +1 -0
- package/build/server/chunks/nodes/29.js-C_MjxADb.js +26 -0
- package/build/server/chunks/nodes/29.js-C_MjxADb.js.map +1 -0
- package/build/server/chunks/nodes/3.js-DjlKd1FC.js +9 -0
- package/build/server/chunks/nodes/3.js-DjlKd1FC.js.map +1 -0
- package/build/server/chunks/nodes/30.js-BHRjlMrP.js +26 -0
- package/build/server/chunks/nodes/30.js-BHRjlMrP.js.map +1 -0
- package/build/server/chunks/nodes/31.js-C7qEcMAp.js +26 -0
- package/build/server/chunks/nodes/31.js-C7qEcMAp.js.map +1 -0
- package/build/server/chunks/nodes/32.js-z0efXLLV.js +26 -0
- package/build/server/chunks/nodes/32.js-z0efXLLV.js.map +1 -0
- package/build/server/chunks/nodes/5.js-CFhg0Xbu.js +15 -0
- package/build/server/chunks/nodes/5.js-CFhg0Xbu.js.map +1 -0
- package/build/server/chunks/nodes/6.js-D_hWn87f.js +26 -0
- package/build/server/chunks/nodes/6.js-D_hWn87f.js.map +1 -0
- package/build/server/chunks/nodes/7.js-D5_GW-qV.js +12 -0
- package/build/server/chunks/nodes/7.js-D5_GW-qV.js.map +1 -0
- package/build/server/chunks/nodes/8.js-C-l5tKPg.js +35 -0
- package/build/server/chunks/nodes/8.js-C-l5tKPg.js.map +1 -0
- package/build/server/chunks/nodes/9.js-CxwOKm_Y.js +26 -0
- package/build/server/chunks/nodes/9.js-CxwOKm_Y.js.map +1 -0
- package/package.json +6 -6
- package/build/client/_app/immutable/assets/0.CHkzgE-e.css +0 -2
- package/build/client/_app/immutable/assets/0.CHkzgE-e.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CHkzgE-e.css.gz +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.BI8ESrUA.wasm +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.BI8ESrUA.wasm.br +0 -0
- package/build/client/_app/immutable/assets/rhino3dm.BI8ESrUA.wasm.gz +0 -0
- package/build/client/_app/immutable/chunks/BGbIB54K2.js +0 -35
- package/build/client/_app/immutable/chunks/BGbIB54K2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGbIB54K2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPBitdYF2.js +0 -1
- package/build/client/_app/immutable/chunks/BPBitdYF2.js.br +0 -2
- package/build/client/_app/immutable/chunks/BPBitdYF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFZAGLaG.js +0 -1
- package/build/client/_app/immutable/chunks/CFZAGLaG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFZAGLaG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdMrdjcg.js +0 -2
- package/build/client/_app/immutable/chunks/DdMrdjcg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DdMrdjcg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dsn1fz8W2.js +0 -1
- package/build/client/_app/immutable/chunks/Dsn1fz8W2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dsn1fz8W2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/fTSQz1Kg2.js +0 -1
- package/build/client/_app/immutable/chunks/fTSQz1Kg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/fTSQz1Kg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i3ciDDDG.js +0 -2
- package/build/client/_app/immutable/chunks/i3ciDDDG.js.br +0 -0
- package/build/client/_app/immutable/chunks/i3ciDDDG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/trjcEs8l.js +0 -1
- package/build/client/_app/immutable/chunks/trjcEs8l.js.br +0 -0
- package/build/client/_app/immutable/chunks/trjcEs8l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wdAk4dta.js +0 -1
- package/build/client/_app/immutable/chunks/wdAk4dta.js.br +0 -2
- package/build/client/_app/immutable/chunks/wdAk4dta.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CrSndv5b.js +0 -2
- package/build/client/_app/immutable/entry/app.CrSndv5b.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CrSndv5b.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CCPDJ6Xw.js +0 -1
- package/build/client/_app/immutable/entry/start.CCPDJ6Xw.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CCPDJ6Xw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BTI-41f5.js +0 -1
- package/build/client/_app/immutable/nodes/1.BTI-41f5.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BTI-41f5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BbJzwklN.js +0 -2
- package/build/client/_app/immutable/nodes/11.BbJzwklN.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BbJzwklN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.Rsrqnc4K.js +0 -2
- package/build/client/_app/immutable/nodes/13.Rsrqnc4K.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.Rsrqnc4K.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.C5UlQUj6.js +0 -2
- package/build/client/_app/immutable/nodes/14.C5UlQUj6.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.C5UlQUj6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.BGjzK93z.js +0 -21
- package/build/client/_app/immutable/nodes/15.BGjzK93z.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.BGjzK93z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.BSVt8WLC.js +0 -6
- package/build/client/_app/immutable/nodes/16.BSVt8WLC.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.BSVt8WLC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CPH7i8QF.js +0 -2
- package/build/client/_app/immutable/nodes/17.CPH7i8QF.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CPH7i8QF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.DhzUTVYU.js +0 -2
- package/build/client/_app/immutable/nodes/19.DhzUTVYU.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DhzUTVYU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BWA5iacm.js +0 -1
- package/build/client/_app/immutable/nodes/2.BWA5iacm.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BWA5iacm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.CbLCGp2k.js +0 -12
- package/build/client/_app/immutable/nodes/20.CbLCGp2k.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CbLCGp2k.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.I56kfXdG.js +0 -6
- package/build/client/_app/immutable/nodes/21.I56kfXdG.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.I56kfXdG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.DbD-Ow3X.js +0 -16
- package/build/client/_app/immutable/nodes/23.DbD-Ow3X.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.DbD-Ow3X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.l6_jybsu.js +0 -6
- package/build/client/_app/immutable/nodes/24.l6_jybsu.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.l6_jybsu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.BTeDYfZi.js +0 -4
- package/build/client/_app/immutable/nodes/27.BTeDYfZi.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.BTeDYfZi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.KhJITPgY.js +0 -4
- package/build/client/_app/immutable/nodes/28.KhJITPgY.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.KhJITPgY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.BHUCwxdA.js +0 -2
- package/build/client/_app/immutable/nodes/29.BHUCwxdA.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BHUCwxdA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Dt5PzLy0.js +0 -1
- package/build/client/_app/immutable/nodes/3.Dt5PzLy0.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Dt5PzLy0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.M54wXOIa.js +0 -2
- package/build/client/_app/immutable/nodes/30.M54wXOIa.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.M54wXOIa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.42Fl41jf.js +0 -1
- package/build/client/_app/immutable/nodes/5.42Fl41jf.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.42Fl41jf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BmJHgXTt.js +0 -1
- package/build/client/_app/immutable/nodes/6.BmJHgXTt.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BmJHgXTt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BZqdw6YN.js +0 -1
- package/build/client/_app/immutable/nodes/7.BZqdw6YN.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BZqdw6YN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.B1LKmT7t.js +0 -2
- package/build/client/_app/immutable/nodes/8.B1LKmT7t.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B1LKmT7t.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.B7dJ-0op.js +0 -1
- package/build/client/_app/immutable/nodes/9.B7dJ-0op.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B7dJ-0op.js.gz +0 -0
- package/build/server/chunks/chunks/AppHeader.js-7cJ1EcsG.js +0 -281
- package/build/server/chunks/chunks/AppHeader.js-7cJ1EcsG.js.map +0 -1
- package/build/server/chunks/chunks/SideNav.js-B1QWUE8U.js +0 -67
- package/build/server/chunks/chunks/SideNav.js-B1QWUE8U.js.map +0 -1
- package/build/server/chunks/chunks/UserChip.js-DCZWyxAb.js +0 -1163
- package/build/server/chunks/chunks/UserChip.js-DCZWyxAb.js.map +0 -1
- package/build/server/chunks/chunks/access.server.js-aJ141RPV.js +0 -453
- package/build/server/chunks/chunks/access.server.js-aJ141RPV.js.map +0 -1
- package/build/server/chunks/chunks/access2.server.js-BFemUtMV.js +0 -20
- package/build/server/chunks/chunks/access2.server.js-BFemUtMV.js.map +0 -1
- package/build/server/chunks/chunks/admin-config.js-DZLX-QS4.js +0 -3
- package/build/server/chunks/chunks/admin-config.js-DZLX-QS4.js.map +0 -1
- package/build/server/chunks/chunks/api-errors.js-DrpuLm84.js +0 -141
- package/build/server/chunks/chunks/api-errors.js-DrpuLm84.js.map +0 -1
- package/build/server/chunks/chunks/auth-bootstrap.server.js-tG8Ad_6I.js +0 -162
- package/build/server/chunks/chunks/auth-bootstrap.server.js-tG8Ad_6I.js.map +0 -1
- package/build/server/chunks/chunks/auth.server.js-CXqdXZCz.js +0 -2
- package/build/server/chunks/chunks/auth.server.js-CXqdXZCz.js.map +0 -1
- package/build/server/chunks/chunks/bootHealth.server.js-DPLyorD9.js +0 -91
- package/build/server/chunks/chunks/bootHealth.server.js-DPLyorD9.js.map +0 -1
- package/build/server/chunks/chunks/client.js-DlB2VO4L.js +0 -58
- package/build/server/chunks/chunks/client.js-DlB2VO4L.js.map +0 -1
- package/build/server/chunks/chunks/clientCache.server.js-BCaSztNc.js +0 -195
- package/build/server/chunks/chunks/clientCache.server.js-BCaSztNc.js.map +0 -1
- package/build/server/chunks/chunks/computeLimits.js-CdZ4dOBZ.js +0 -48
- package/build/server/chunks/chunks/computeLimits.js-CdZ4dOBZ.js.map +0 -1
- package/build/server/chunks/chunks/evictChangedServers.js-BVKGKc-5.js +0 -29
- package/build/server/chunks/chunks/evictChangedServers.js-BVKGKc-5.js.map +0 -1
- package/build/server/chunks/chunks/forms.js-CTlpUb2-.js +0 -2
- package/build/server/chunks/chunks/forms.js-CTlpUb2-.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-IhS7qvGk.js +0 -224
- package/build/server/chunks/chunks/internal2.js-IhS7qvGk.js.map +0 -1
- package/build/server/chunks/chunks/navigation.js-CTlpUb2-.js +0 -2
- package/build/server/chunks/chunks/navigation.js-CTlpUb2-.js.map +0 -1
- package/build/server/chunks/chunks/org-members.server.js-DV1B4uCO.js +0 -35
- package/build/server/chunks/chunks/org-members.server.js-DV1B4uCO.js.map +0 -1
- package/build/server/chunks/chunks/package.js-KFdbi84h.js +0 -76
- package/build/server/chunks/chunks/package.js-KFdbi84h.js.map +0 -1
- package/build/server/chunks/chunks/permissions.server.js-BmpNuzGS.js +0 -15
- package/build/server/chunks/chunks/permissions.server.js-BmpNuzGS.js.map +0 -1
- package/build/server/chunks/chunks/providers.server.js-B9uTkfN5.js +0 -6276
- package/build/server/chunks/chunks/providers.server.js-B9uTkfN5.js.map +0 -1
- package/build/server/chunks/chunks/resolve.server.js-BfNTMkGf.js +0 -62
- package/build/server/chunks/chunks/resolve.server.js-BfNTMkGf.js.map +0 -1
- package/build/server/chunks/chunks/selfUpdate.server.js-CChpRyO3.js +0 -152
- package/build/server/chunks/chunks/selfUpdate.server.js-CChpRyO3.js.map +0 -1
- package/build/server/chunks/chunks/state.js-BUZy-3FS.js +0 -64
- package/build/server/chunks/chunks/state.js-BUZy-3FS.js.map +0 -1
- package/build/server/chunks/chunks/stores.js-B610FZTl.js +0 -35
- package/build/server/chunks/chunks/stores.js-B610FZTl.js.map +0 -1
- package/build/server/chunks/chunks/utils2.js-Bk5D4lDi.js +0 -62
- package/build/server/chunks/chunks/utils2.js-Bk5D4lDi.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/_server.ts.js-BmEPQS7Y.js +0 -93
- package/build/server/chunks/entries/endpoints/admin/api/compute/_server.ts.js-BmEPQS7Y.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/_server.ts.js-De6gpwX9.js +0 -53
- package/build/server/chunks/entries/endpoints/admin/api/compute/actions/_server.ts.js-De6gpwX9.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/_server.ts.js-DyIZ7oJt.js +0 -79
- package/build/server/chunks/entries/endpoints/admin/api/compute/status/_server.ts.js-DyIZ7oJt.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/_server.ts.js-BueV-tW0.js +0 -50
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/_server.ts.js-BueV-tW0.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-Wi305-P7.js +0 -86
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-Wi305-P7.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_server.ts.js-CoHuB2wQ.js +0 -72
- package/build/server/chunks/entries/endpoints/admin/api/orgs/_server.ts.js-CoHuB2wQ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/_server.ts.js-BBiHXAF1.js +0 -74
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/_server.ts.js-BBiHXAF1.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js-Bm667NPs.js +0 -34
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js-Bm667NPs.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js-Dvt2_wgx.js +0 -71
- package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js-Dvt2_wgx.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/projects/_server.ts.js-XZczgdAW.js +0 -103
- package/build/server/chunks/entries/endpoints/admin/api/projects/_server.ts.js-XZczgdAW.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-ByAfhYeA.js +0 -208
- package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-ByAfhYeA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/_server.ts.js-C1QilQab.js +0 -90
- package/build/server/chunks/entries/endpoints/admin/api/system/throughput/_server.ts.js-C1QilQab.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-LnUmt2ka.js +0 -403
- package/build/server/chunks/entries/endpoints/admin/api/system/update/_server.ts.js-LnUmt2ka.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/_server.ts.js-Cdiun4_I.js +0 -76
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/_server.ts.js-Cdiun4_I.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js-QltSlN1s.js +0 -46
- package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js-QltSlN1s.js.map +0 -1
- package/build/server/chunks/entries/endpoints/admin/api/users/_server.ts.js-ItnKq2QL.js +0 -86
- package/build/server/chunks/entries/endpoints/admin/api/users/_server.ts.js-ItnKq2QL.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-CS4Ovf4U.js +0 -0
- package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-CS4Ovf4U.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/compute/schema/_server.ts.js-D90y8bZz.js +0 -68
- package/build/server/chunks/entries/endpoints/api/compute/schema/_server.ts.js-D90y8bZz.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-DV-JfeEq.js +0 -75
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-DV-JfeEq.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-sMVj9K_i.js +0 -46
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-sMVj9K_i.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_server.ts.js-BZqJxlxW.js +0 -44
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_server.ts.js-BZqJxlxW.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/_server.ts.js-WoVRLQmM.js +0 -40
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/_server.ts.js-WoVRLQmM.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js-BzySkZdC.js +0 -46
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js-BzySkZdC.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-znLimiQZ.js +0 -84
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-znLimiQZ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js-BttAoZm4.js +0 -47
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js-BttAoZm4.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js-CdWQjiwT.js +0 -40
- package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js-CdWQjiwT.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-CUgUSYEu.js +0 -94
- package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-CUgUSYEu.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-D5Kx1cCg.js +0 -59
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-D5Kx1cCg.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-9LkaVSqF.js +0 -89
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-9LkaVSqF.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-N8a8PWhB.js +0 -56
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-N8a8PWhB.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/invites/_id_/_server.ts.js-D_W44WZA.js +0 -49
- package/build/server/chunks/entries/endpoints/api/invites/_id_/_server.ts.js-D_W44WZA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/invites/_server.ts.js-CzNZgze9.js +0 -77
- package/build/server/chunks/entries/endpoints/api/invites/_server.ts.js-CzNZgze9.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/_server.ts.js-CH_v-8sa.js +0 -45
- package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/_server.ts.js-CH_v-8sa.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-DTPaKHZf.js +0 -110
- package/build/server/chunks/entries/endpoints/api/org/compute/_server.ts.js-DTPaKHZf.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js-DpVCj03G.js +0 -79
- package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js-DpVCj03G.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/_server.ts.js-IZvT4yhz.js +0 -71
- package/build/server/chunks/entries/endpoints/api/projects/_id_/_server.ts.js-IZvT4yhz.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_server.ts.js-BNGgQ7gp.js +0 -65
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_server.ts.js-BNGgQ7gp.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js-BPPGOAMn.js +0 -64
- package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js-BPPGOAMn.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/_server.ts.js-DUYIzgX_.js +0 -48
- package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/_server.ts.js-DUYIzgX_.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/projects/_server.ts.js-C4uoBZGm.js +0 -85
- package/build/server/chunks/entries/endpoints/api/projects/_server.ts.js-C4uoBZGm.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-C_-mlKGX.js +0 -48
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-C_-mlKGX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DuqbRQGb.js +0 -52
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DuqbRQGb.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-foOT1YAN.js +0 -51
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-foOT1YAN.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-BE9yIan3.js +0 -341
- package/build/server/chunks/entries/hooks.server.js-BE9yIan3.js.map +0 -1
- package/build/server/chunks/entries/pages/_error.svelte.js-BAJeJA54.js +0 -35
- package/build/server/chunks/entries/pages/_error.svelte.js-BAJeJA54.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CZiupOzL.js +0 -34
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CZiupOzL.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-DnR6EGLz.js +0 -76
- package/build/server/chunks/entries/pages/_page.svelte.js-DnR6EGLz.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-NBjHbL8Y.js +0 -109
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-NBjHbL8Y.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-BNU1_4nl.js +0 -148
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-BNU1_4nl.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-BEBRBnkg.js +0 -36
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-BEBRBnkg.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-BwgT9SNW.js +0 -31
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-BwgT9SNW.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-t0p0at-s.js +0 -121
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-t0p0at-s.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-AWUyBYXt.js +0 -75
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-AWUyBYXt.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-BawoeBdK.js +0 -359
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-BawoeBdK.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-B_eYKzr5.js +0 -245
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-B_eYKzr5.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-BJqvnw-C.js +0 -45
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-BJqvnw-C.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-vzjoJjoa.js +0 -612
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-vzjoJjoa.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-D0HI-NV5.js +0 -35
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-D0HI-NV5.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-sdsbPfC4.js +0 -86
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-sdsbPfC4.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-Cn-FViRy.js +0 -616
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-Cn-FViRy.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-K-GJHT8B.js +0 -42
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-K-GJHT8B.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CTfkrvkc.js +0 -282
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CTfkrvkc.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-DdUylygZ.js +0 -79
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-DdUylygZ.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Diy2c28_.js +0 -1363
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Diy2c28_.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-dkecZ1Y9.js +0 -70
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-dkecZ1Y9.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-B97rHqOd.js +0 -681
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-B97rHqOd.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BuIB8DpJ.js +0 -62
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BuIB8DpJ.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-TLKtiPZl.js +0 -62
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-TLKtiPZl.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-8oTR34J0.js +0 -124
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-8oTR34J0.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-Ck-YsYyt.js +0 -12096
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-Ck-YsYyt.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-B-dT9Dwt.js +0 -73
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-B-dT9Dwt.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.svelte.js-ztaLQH9d.js +0 -328
- package/build/server/chunks/entries/pages/library/_page.svelte.js-ztaLQH9d.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-Brx7sbD0.js +0 -76
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-Brx7sbD0.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.svelte.js-CZ2b2C6w.js +0 -256
- package/build/server/chunks/entries/pages/login/_page.svelte.js-CZ2b2C6w.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BFtB32qP.js +0 -49
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BFtB32qP.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C-eE67hd.js +0 -101
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C-eE67hd.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-JW-fq8WI.js +0 -3745
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-JW-fq8WI.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-MKhzFKxc.js +0 -113
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-MKhzFKxc.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-KCdx7RYq.js +0 -321
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-KCdx7RYq.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-C9u4jIPQ.js +0 -28
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-C9u4jIPQ.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-GHr9IuDg.js +0 -162
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-GHr9IuDg.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-Djl8c3xz.js +0 -35
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-Djl8c3xz.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-Dj-C-q5m.js +0 -42
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-Dj-C-q5m.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-DlLlWIvr.js +0 -593
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-DlLlWIvr.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-Du6NQnzd.js +0 -58
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-Du6NQnzd.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-Donx0t4M.js +0 -539
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-Donx0t4M.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CPWNduiA.js +0 -42
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CPWNduiA.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-LE8f8DO6.js +0 -436
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-LE8f8DO6.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-BQxyn9ah.js +0 -50
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-BQxyn9ah.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-BKrBWval.js +0 -262
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-BKrBWval.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DZzJ_aku.js +0 -32
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DZzJ_aku.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-xo0D6ywc.js +0 -16
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-xo0D6ywc.js.map +0 -1
- package/build/server/chunks/handler-gLIfR_iV.js +0 -1206
- package/build/server/chunks/handler-gLIfR_iV.js.map +0 -1
- package/build/server/chunks/index.js-DESRGQp_.js +0 -3747
- package/build/server/chunks/index.js-DESRGQp_.js.map +0 -1
- package/build/server/chunks/manifest.js-Cp9zLwNV.js +0 -548
- package/build/server/chunks/manifest.js-Cp9zLwNV.js.map +0 -1
- package/build/server/chunks/nodes/0.js-ykmNBBYN.js +0 -25
- package/build/server/chunks/nodes/0.js-ykmNBBYN.js.map +0 -1
- package/build/server/chunks/nodes/1.js-C9HOFYIS.js +0 -9
- package/build/server/chunks/nodes/1.js-C9HOFYIS.js.map +0 -1
- package/build/server/chunks/nodes/10.js-f4umvKo6.js +0 -27
- package/build/server/chunks/nodes/10.js-f4umvKo6.js.map +0 -1
- package/build/server/chunks/nodes/11.js-H_Tl1-mC.js +0 -28
- package/build/server/chunks/nodes/11.js-H_Tl1-mC.js.map +0 -1
- package/build/server/chunks/nodes/12.js-BsVM2edF.js +0 -26
- package/build/server/chunks/nodes/12.js-BsVM2edF.js.map +0 -1
- package/build/server/chunks/nodes/13.js-vwkpTyfG.js +0 -26
- package/build/server/chunks/nodes/13.js-vwkpTyfG.js.map +0 -1
- package/build/server/chunks/nodes/14.js-C0ioY7mQ.js +0 -26
- package/build/server/chunks/nodes/14.js-C0ioY7mQ.js.map +0 -1
- package/build/server/chunks/nodes/15.js-BAldYNBs.js +0 -38
- package/build/server/chunks/nodes/15.js-BAldYNBs.js.map +0 -1
- package/build/server/chunks/nodes/16.js-Dq9S7DUP.js +0 -29
- package/build/server/chunks/nodes/16.js-Dq9S7DUP.js.map +0 -1
- package/build/server/chunks/nodes/17.js-C_6YUex5.js +0 -9
- package/build/server/chunks/nodes/17.js-C_6YUex5.js.map +0 -1
- package/build/server/chunks/nodes/18.js-CZUJZUJo.js +0 -34
- package/build/server/chunks/nodes/18.js-CZUJZUJo.js.map +0 -1
- package/build/server/chunks/nodes/19.js-BB7uBbXp.js +0 -27
- package/build/server/chunks/nodes/19.js-BB7uBbXp.js.map +0 -1
- package/build/server/chunks/nodes/2.js-DwKKDDJy.js +0 -27
- package/build/server/chunks/nodes/2.js-DwKKDDJy.js.map +0 -1
- package/build/server/chunks/nodes/20.js-C_PE3QvJ.js +0 -40
- package/build/server/chunks/nodes/20.js-C_PE3QvJ.js.map +0 -1
- package/build/server/chunks/nodes/21.js-2BEnVufL.js +0 -34
- package/build/server/chunks/nodes/21.js-2BEnVufL.js.map +0 -1
- package/build/server/chunks/nodes/23.js-MiYUZw7L.js +0 -28
- package/build/server/chunks/nodes/23.js-MiYUZw7L.js.map +0 -1
- package/build/server/chunks/nodes/24.js-BNJbAlny.js +0 -34
- package/build/server/chunks/nodes/24.js-BNJbAlny.js.map +0 -1
- package/build/server/chunks/nodes/25.js-DRnoAV3W.js +0 -26
- package/build/server/chunks/nodes/25.js-DRnoAV3W.js.map +0 -1
- package/build/server/chunks/nodes/27.js-NJNjlxYv.js +0 -27
- package/build/server/chunks/nodes/27.js-NJNjlxYv.js.map +0 -1
- package/build/server/chunks/nodes/28.js-nRy4JBLG.js +0 -26
- package/build/server/chunks/nodes/28.js-nRy4JBLG.js.map +0 -1
- package/build/server/chunks/nodes/29.js-DOAV9pJR.js +0 -26
- package/build/server/chunks/nodes/29.js-DOAV9pJR.js.map +0 -1
- package/build/server/chunks/nodes/3.js-DyBoMKKy.js +0 -9
- package/build/server/chunks/nodes/3.js-DyBoMKKy.js.map +0 -1
- package/build/server/chunks/nodes/30.js-Dw66AxAw.js +0 -26
- package/build/server/chunks/nodes/30.js-Dw66AxAw.js.map +0 -1
- package/build/server/chunks/nodes/31.js-D3fANEyT.js +0 -26
- package/build/server/chunks/nodes/31.js-D3fANEyT.js.map +0 -1
- package/build/server/chunks/nodes/32.js-C9JPIJPq.js +0 -26
- package/build/server/chunks/nodes/32.js-C9JPIJPq.js.map +0 -1
- package/build/server/chunks/nodes/5.js-DEuxktAm.js +0 -15
- package/build/server/chunks/nodes/5.js-DEuxktAm.js.map +0 -1
- package/build/server/chunks/nodes/6.js-DL0Ke2YB.js +0 -26
- package/build/server/chunks/nodes/6.js-DL0Ke2YB.js.map +0 -1
- package/build/server/chunks/nodes/7.js-uEkKcL-_.js +0 -12
- package/build/server/chunks/nodes/7.js-uEkKcL-_.js.map +0 -1
- package/build/server/chunks/nodes/8.js-DO7MdX6m.js +0 -35
- package/build/server/chunks/nodes/8.js-DO7MdX6m.js.map +0 -1
- package/build/server/chunks/nodes/9.js-DYdpHFfb.js +0 -26
- package/build/server/chunks/nodes/9.js-DYdpHFfb.js.map +0 -1
- /package/build/client/_app/immutable/nodes/{0.D7urdCm3.js → 0.Bn31RLpu.js} +0 -0
- /package/build/client/_app/immutable/nodes/{0.D7urdCm3.js.br → 0.Bn31RLpu.js.br} +0 -0
- /package/build/client/_app/immutable/nodes/{0.D7urdCm3.js.gz → 0.Bn31RLpu.js.gz} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { S as SYSTEM_CONTEXT, s as slugify } from '../../../../../chunks/src.js-C5mUn1eC.js';
|
|
2
|
+
import { k as flag, e as getOrganizationProvider, f as getProjectProvider, P as ProviderError } from '../../../../../chunks/providers.server.js-Wjp7cRza.js';
|
|
3
|
+
import { i as requireInstanceAdmin } from '../../../../../chunks/access.server.js-CzBCyDoD.js';
|
|
4
|
+
import { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from '../../../../../chunks/api-errors.js-BLGSIpxK.js';
|
|
5
|
+
import { json } from '@sveltejs/kit';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import '../../../../../chunks/shared-server.js-DA4m8f1m.js';
|
|
9
|
+
import '../../../../../chunks/limits.js-BniDP5VZ.js';
|
|
10
|
+
import '../../../../../chunks/chunk-Y3M7P3BW.js-qwxSY5dh.js';
|
|
11
|
+
import '../../../../../chunks/schema.js-BhmknPcU.js';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:path';
|
|
14
|
+
import 'node:fs';
|
|
15
|
+
import 'node:fs/promises';
|
|
16
|
+
import '@supabase/supabase-js';
|
|
17
|
+
import '../../../../../chunks/utils2.js-DzUQOoCX.js';
|
|
18
|
+
|
|
19
|
+
//#region src/routes/admin/api/projects/+server.ts
|
|
20
|
+
var MAX_SLUG_ATTEMPTS = 25;
|
|
21
|
+
function isSlugConflict(err) {
|
|
22
|
+
return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);
|
|
23
|
+
}
|
|
24
|
+
function isNameConflict(err) {
|
|
25
|
+
return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);
|
|
26
|
+
}
|
|
27
|
+
var CreatePlatformProjectBody = z.object({
|
|
28
|
+
name: z.string().min(1, "Project name is required").max(128).trim(),
|
|
29
|
+
description: z.string().max(2e3).optional(),
|
|
30
|
+
/**
|
|
31
|
+
* Org that physically hosts the project. Storage routing and compute
|
|
32
|
+
* resolution use this — but org membership in this org does NOT grant
|
|
33
|
+
* access. Visibility = 'platform' overrides those defaults.
|
|
34
|
+
*
|
|
35
|
+
* If omitted, the platform admin's first available org is used.
|
|
36
|
+
*/
|
|
37
|
+
orgId: z.string().uuid().optional()
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* §4a — list every platform-visibility project on the instance. Uses
|
|
41
|
+
* `SYSTEM_CONTEXT` because admin reads cross every org boundary; the route is
|
|
42
|
+
* gated on `instance_admin`.
|
|
43
|
+
*/
|
|
44
|
+
var GET = async ({ locals }) => {
|
|
45
|
+
requireInstanceAdmin(locals);
|
|
46
|
+
if (!flag("ENABLE_PLATFORM_PROJECTS")) apiError(404, ApiErrorCode.NOT_FOUND, "Not found");
|
|
47
|
+
try {
|
|
48
|
+
const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });
|
|
49
|
+
const all = [];
|
|
50
|
+
for (const org of orgs.items) {
|
|
51
|
+
const page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, { limit: 1e3 });
|
|
52
|
+
for (const p of page.items) if (p.visibility === "platform") all.push(p);
|
|
53
|
+
}
|
|
54
|
+
return json({ projects: all });
|
|
55
|
+
} catch (err) {
|
|
56
|
+
handleApiError(err, "Failed to list platform projects");
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var POST = async ({ request, locals }) => {
|
|
60
|
+
const user = requireInstanceAdmin(locals);
|
|
61
|
+
if (!flag("ENABLE_PLATFORM_PROJECTS")) apiError(404, ApiErrorCode.NOT_FOUND, "Not found");
|
|
62
|
+
const ctx = locals.ctx;
|
|
63
|
+
const body = await request.json().catch(() => null);
|
|
64
|
+
const parsed = CreatePlatformProjectBody.safeParse(body);
|
|
65
|
+
if (!parsed.success) throwZodError(parsed.error);
|
|
66
|
+
const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;
|
|
67
|
+
if (!hostOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "A host orgId is required (no active organization in context).");
|
|
68
|
+
if (!await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Host organization '${hostOrgId}' not found.`);
|
|
69
|
+
const projectStore = getProjectProvider();
|
|
70
|
+
const baseSlug = slugify(parsed.data.name) || "platform-project";
|
|
71
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
72
|
+
const projectId = randomUUID();
|
|
73
|
+
for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {
|
|
74
|
+
const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;
|
|
75
|
+
const project = {
|
|
76
|
+
id: projectId,
|
|
77
|
+
orgId: hostOrgId,
|
|
78
|
+
name: parsed.data.name,
|
|
79
|
+
slug,
|
|
80
|
+
description: parsed.data.description,
|
|
81
|
+
visibility: "platform",
|
|
82
|
+
ownerId: user.id,
|
|
83
|
+
createdBy: user.id,
|
|
84
|
+
updatedBy: user.id,
|
|
85
|
+
autoJoinOnUpload: false,
|
|
86
|
+
createdAt: now,
|
|
87
|
+
updatedAt: now,
|
|
88
|
+
deletedAt: null
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
await projectStore.createProject(SYSTEM_CONTEXT, project);
|
|
92
|
+
return json(project, { status: 201 });
|
|
93
|
+
} catch (err) {
|
|
94
|
+
if (isNameConflict(err)) apiError(409, ApiErrorCode.CONFLICT, "A project with that name already exists in the host organization.");
|
|
95
|
+
if (isSlugConflict(err)) continue;
|
|
96
|
+
handleApiError(err, "Failed to create platform project");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
apiError(409, ApiErrorCode.CONFLICT, "Could not pick a unique project slug after several attempts.");
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export { GET, POST };
|
|
103
|
+
//# sourceMappingURL=_server.ts.js-Gyjialsx.js.map
|
package/build/server/chunks/entries/endpoints/admin/api/projects/_server.ts.js-Gyjialsx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts.js-Gyjialsx.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/admin/api/projects/_server.ts.js"],"sourcesContent":["import { t as SYSTEM_CONTEXT, w as slugify } from \"../../../../../chunks/src.js\";\nimport { M as ProviderError, _ as getProjectProvider, m as getOrganizationProvider, t as flag } from \"../../../../../chunks/providers.server.js\";\nimport { _ as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { i as throwZodError, n as apiError, r as handleApiError, t as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\n//#region src/routes/admin/api/projects/+server.ts\nvar MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n\treturn err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n\treturn err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nvar CreatePlatformProjectBody = z.object({\n\tname: z.string().min(1, \"Project name is required\").max(128).trim(),\n\tdescription: z.string().max(2e3).optional(),\n\t/**\n\t* Org that physically hosts the project. Storage routing and compute\n\t* resolution use this — but org membership in this org does NOT grant\n\t* access. Visibility = 'platform' overrides those defaults.\n\t*\n\t* If omitted, the platform admin's first available org is used.\n\t*/\n\torgId: z.string().uuid().optional()\n});\n/**\n* §4a — list every platform-visibility project on the instance. Uses\n* `SYSTEM_CONTEXT` because admin reads cross every org boundary; the route is\n* gated on `instance_admin`.\n*/\nvar GET = async ({ locals }) => {\n\trequireInstanceAdmin(locals);\n\tif (!flag(\"ENABLE_PLATFORM_PROJECTS\")) apiError(404, ApiErrorCode.NOT_FOUND, \"Not found\");\n\ttry {\n\t\tconst orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });\n\t\tconst all = [];\n\t\tfor (const org of orgs.items) {\n\t\t\tconst page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, { limit: 1e3 });\n\t\t\tfor (const p of page.items) if (p.visibility === \"platform\") all.push(p);\n\t\t}\n\t\treturn json({ projects: all });\n\t} catch (err) {\n\t\thandleApiError(err, \"Failed to list platform projects\");\n\t}\n};\nvar POST = async ({ request, locals }) => {\n\tconst user = requireInstanceAdmin(locals);\n\tif (!flag(\"ENABLE_PLATFORM_PROJECTS\")) apiError(404, ApiErrorCode.NOT_FOUND, \"Not found\");\n\tconst ctx = locals.ctx;\n\tconst body = await request.json().catch(() => null);\n\tconst parsed = CreatePlatformProjectBody.safeParse(body);\n\tif (!parsed.success) throwZodError(parsed.error);\n\tconst hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;\n\tif (!hostOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"A host orgId is required (no active organization in context).\");\n\tif (!await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Host organization '${hostOrgId}' not found.`);\n\tconst projectStore = getProjectProvider();\n\tconst baseSlug = slugify(parsed.data.name) || \"platform-project\";\n\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\tconst projectId = randomUUID();\n\tfor (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n\t\tconst slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n\t\tconst project = {\n\t\t\tid: projectId,\n\t\t\torgId: hostOrgId,\n\t\t\tname: parsed.data.name,\n\t\t\tslug,\n\t\t\tdescription: parsed.data.description,\n\t\t\tvisibility: \"platform\",\n\t\t\townerId: user.id,\n\t\t\tcreatedBy: user.id,\n\t\t\tupdatedBy: user.id,\n\t\t\tautoJoinOnUpload: false,\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t\tdeletedAt: null\n\t\t};\n\t\ttry {\n\t\t\tawait projectStore.createProject(SYSTEM_CONTEXT, project);\n\t\t\treturn json(project, { status: 201 });\n\t\t} catch (err) {\n\t\t\tif (isNameConflict(err)) apiError(409, ApiErrorCode.CONFLICT, \"A project with that name already exists in the host organization.\");\n\t\t\tif (isSlugConflict(err)) continue;\n\t\t\thandleApiError(err, \"Failed to create platform project\");\n\t\t}\n\t}\n\tapiError(409, ApiErrorCode.CONFLICT, \"Could not pick a unique project slug after several attempts.\");\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
|
package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-DSpJSpmq.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { b as private_env } from '../../../../../../chunks/shared-server.js-DA4m8f1m.js';
|
|
2
|
+
import '../../../../../../chunks/src.js-C5mUn1eC.js';
|
|
3
|
+
import { p as providers, n as getComputeServerConfigStore, L as LocalComputeServerStore } from '../../../../../../chunks/providers.server.js-Wjp7cRza.js';
|
|
4
|
+
import { f as findServerById } from '../../../../../../chunks/utils2.js-DzUQOoCX.js';
|
|
5
|
+
import { r as requirePermission } from '../../../../../../chunks/access.server.js-CzBCyDoD.js';
|
|
6
|
+
import { json } from '@sveltejs/kit';
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import { resolve, join } from 'node:path';
|
|
9
|
+
import { mkdir, writeFile, unlink } from 'node:fs/promises';
|
|
10
|
+
import 'zod';
|
|
11
|
+
import '../../../../../../chunks/limits.js-BniDP5VZ.js';
|
|
12
|
+
import '../../../../../../chunks/chunk-Y3M7P3BW.js-qwxSY5dh.js';
|
|
13
|
+
import '../../../../../../chunks/schema.js-BhmknPcU.js';
|
|
14
|
+
import 'node:url';
|
|
15
|
+
import 'node:fs';
|
|
16
|
+
import '@supabase/supabase-js';
|
|
17
|
+
|
|
18
|
+
//#region src/routes/admin/api/system/health/+server.ts
|
|
19
|
+
function atRestSecretsCheck(report) {
|
|
20
|
+
const base = {
|
|
21
|
+
id: "at-rest-secrets",
|
|
22
|
+
label: "Compute server secrets"
|
|
23
|
+
};
|
|
24
|
+
if (report === null) return {
|
|
25
|
+
...base,
|
|
26
|
+
status: "not_applicable",
|
|
27
|
+
summary: "The active data provider does not encrypt secrets at this layer — nothing to verify."
|
|
28
|
+
};
|
|
29
|
+
if (report.ok) return {
|
|
30
|
+
...base,
|
|
31
|
+
status: "ok",
|
|
32
|
+
summary: "All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY."
|
|
33
|
+
};
|
|
34
|
+
const failed = report.failures.map((f) => `"${f.serverLabel}" (${f.reason}${f.cause ? `: ${f.cause}` : ""})`).join(", ");
|
|
35
|
+
const plaintext = report.plaintextFound;
|
|
36
|
+
return {
|
|
37
|
+
...base,
|
|
38
|
+
status: "degraded",
|
|
39
|
+
summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,
|
|
40
|
+
remediation: plaintext ? "A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted." : "The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again."
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function schemaVersionCheck(report) {
|
|
44
|
+
const base = {
|
|
45
|
+
id: "schema-version",
|
|
46
|
+
label: "Database schema"
|
|
47
|
+
};
|
|
48
|
+
if (report === null) return {
|
|
49
|
+
...base,
|
|
50
|
+
status: "not_applicable",
|
|
51
|
+
summary: "The active data provider migrates with the app — there is no separate schema to verify."
|
|
52
|
+
};
|
|
53
|
+
if (report.ok) return {
|
|
54
|
+
...base,
|
|
55
|
+
status: "ok",
|
|
56
|
+
summary: `Database migration head ${report.actual} satisfies the app's expected ${report.expected}.`
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
...base,
|
|
60
|
+
status: "degraded",
|
|
61
|
+
summary: report.message ?? `Database migration head ${report.actual ?? "unavailable"} is behind the app's expected ${report.expected}.`,
|
|
62
|
+
remediation: "Sync the provider migrations into your Supabase project and run `npx supabase db push`, then restart the app. `selva doctor` runs the same check from the CLI."
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
var COMPUTE_PING_TIMEOUT_MS = 8e3;
|
|
66
|
+
/**
|
|
67
|
+
* Ping the global default compute server's `/healthcheck`. We probe the
|
|
68
|
+
* default specifically because that's the server every solve falls back to;
|
|
69
|
+
* a degraded default breaks the baseline for all orgs. Org-private and
|
|
70
|
+
* non-default platform servers are out of scope here — they have their own
|
|
71
|
+
* per-server status probe at /admin/api/compute/status.
|
|
72
|
+
*/
|
|
73
|
+
async function computeReachabilityCheck(locals) {
|
|
74
|
+
const base = {
|
|
75
|
+
id: "compute-reachable",
|
|
76
|
+
label: "Default compute server"
|
|
77
|
+
};
|
|
78
|
+
let config;
|
|
79
|
+
try {
|
|
80
|
+
config = await getComputeServerConfigStore().getConfig(locals.ctx);
|
|
81
|
+
} catch (err) {
|
|
82
|
+
return {
|
|
83
|
+
...base,
|
|
84
|
+
status: "error",
|
|
85
|
+
summary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;
|
|
89
|
+
if (!server) return {
|
|
90
|
+
...base,
|
|
91
|
+
status: "not_applicable",
|
|
92
|
+
summary: "No default compute server is configured — nothing to reach.",
|
|
93
|
+
remediation: "Add a server and set it as default in /admin/compute."
|
|
94
|
+
};
|
|
95
|
+
const controller = new AbortController();
|
|
96
|
+
const timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);
|
|
97
|
+
try {
|
|
98
|
+
const headers = {};
|
|
99
|
+
if (server.hasApiKey) {
|
|
100
|
+
const apiKey = await getComputeServerConfigStore().getServerApiKey(locals.ctx, server.id);
|
|
101
|
+
if (apiKey) headers["RhinoComputeKey"] = apiKey;
|
|
102
|
+
}
|
|
103
|
+
const res = await fetch(new URL("/healthcheck", server.serverUrl).toString(), {
|
|
104
|
+
signal: controller.signal,
|
|
105
|
+
headers
|
|
106
|
+
});
|
|
107
|
+
if (res.ok) return {
|
|
108
|
+
...base,
|
|
109
|
+
status: "ok",
|
|
110
|
+
summary: `"${server.label}" answered /healthcheck (200).`
|
|
111
|
+
};
|
|
112
|
+
return {
|
|
113
|
+
...base,
|
|
114
|
+
status: "degraded",
|
|
115
|
+
summary: `"${server.label}" responded ${res.status} to /healthcheck.`,
|
|
116
|
+
remediation: res.status === 401 || res.status === 403 ? "Authentication rejected — verify the API key in /admin/compute." : "The server is reachable but unhealthy. Check the Rhino.Compute host."
|
|
117
|
+
};
|
|
118
|
+
} catch (err) {
|
|
119
|
+
const aborted = err instanceof Error && err.name === "AbortError";
|
|
120
|
+
return {
|
|
121
|
+
...base,
|
|
122
|
+
status: "degraded",
|
|
123
|
+
summary: aborted ? `"${server.label}" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `"${server.label}" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,
|
|
124
|
+
remediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`
|
|
125
|
+
};
|
|
126
|
+
} finally {
|
|
127
|
+
clearTimeout(timer);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Write + delete a temp file under DATA_PATH to prove the local provider can
|
|
132
|
+
* still persist. The JSON stores read-modify-write without a fallback, so a
|
|
133
|
+
* full disk or a permission change (e.g. ownership drift after a restore)
|
|
134
|
+
* corrupts data on the next write — catch it here while it's still just a
|
|
135
|
+
* failed health check.
|
|
136
|
+
*/
|
|
137
|
+
async function dataPathWritableCheck() {
|
|
138
|
+
const base = {
|
|
139
|
+
id: "data-path-writable",
|
|
140
|
+
label: "Data path writable"
|
|
141
|
+
};
|
|
142
|
+
if (!(providers.data.computeServer instanceof LocalComputeServerStore)) return {
|
|
143
|
+
...base,
|
|
144
|
+
status: "not_applicable",
|
|
145
|
+
summary: "The active data provider does not persist to a local DATA_PATH."
|
|
146
|
+
};
|
|
147
|
+
const dataPath = private_env.DATA_PATH;
|
|
148
|
+
if (!dataPath) return {
|
|
149
|
+
...base,
|
|
150
|
+
status: "error",
|
|
151
|
+
summary: "DATA_PATH is unset but the local provider is active.",
|
|
152
|
+
remediation: "Set DATA_PATH in .env and restart."
|
|
153
|
+
};
|
|
154
|
+
const absolute = resolve(dataPath);
|
|
155
|
+
const probe = join(absolute, `.health-probe-${randomUUID()}`);
|
|
156
|
+
try {
|
|
157
|
+
await mkdir(absolute, { recursive: true });
|
|
158
|
+
await writeFile(probe, "ok");
|
|
159
|
+
await unlink(probe);
|
|
160
|
+
return {
|
|
161
|
+
...base,
|
|
162
|
+
status: "ok",
|
|
163
|
+
summary: `DATA_PATH (${dataPath}) is writable.`
|
|
164
|
+
};
|
|
165
|
+
} catch (err) {
|
|
166
|
+
return {
|
|
167
|
+
...base,
|
|
168
|
+
status: "degraded",
|
|
169
|
+
summary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,
|
|
170
|
+
remediation: "Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`)."
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
var GET = async ({ locals }) => {
|
|
175
|
+
requirePermission(locals, "instance_admin");
|
|
176
|
+
const checks = [];
|
|
177
|
+
const store = providers.data.computeServer;
|
|
178
|
+
if (typeof store.verifySecrets === "function") try {
|
|
179
|
+
checks.push(atRestSecretsCheck(await store.verifySecrets()));
|
|
180
|
+
} catch (err) {
|
|
181
|
+
checks.push({
|
|
182
|
+
id: "at-rest-secrets",
|
|
183
|
+
label: "Compute server secrets",
|
|
184
|
+
status: "error",
|
|
185
|
+
summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,
|
|
186
|
+
remediation: "Check server logs (`pm2 logs selva-compute`) for the underlying error."
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
else checks.push(atRestSecretsCheck(null));
|
|
190
|
+
const data = providers.data;
|
|
191
|
+
if (typeof data.verifySchemaVersion === "function") checks.push(schemaVersionCheck(await data.verifySchemaVersion()));
|
|
192
|
+
else checks.push(schemaVersionCheck(null));
|
|
193
|
+
checks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));
|
|
194
|
+
const rank = {
|
|
195
|
+
ok: 0,
|
|
196
|
+
not_applicable: 0,
|
|
197
|
+
degraded: 2,
|
|
198
|
+
error: 3
|
|
199
|
+
};
|
|
200
|
+
return json({
|
|
201
|
+
overall: checks.reduce((worst, c) => rank[c.status] > rank[worst] ? c.status : worst, "ok"),
|
|
202
|
+
checkedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
203
|
+
checks
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
export { GET };
|
|
208
|
+
//# sourceMappingURL=_server.ts.js-DSpJSpmq.js.map
|
package/build/server/chunks/entries/endpoints/admin/api/system/health/_server.ts.js-DSpJSpmq.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts.js-DSpJSpmq.js","sources":["../../../../../../../../../.svelte-kit/output/server/entries/endpoints/admin/api/system/health/_server.ts.js"],"sourcesContent":["import { t as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport \"../../../../../../chunks/src.js\";\nimport { C as providers, D as LocalComputeServerStore, a as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport { n as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { S as requirePermission } from \"../../../../../../chunks/access.server.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { join, resolve } from \"node:path\";\nimport { mkdir, unlink, writeFile } from \"node:fs/promises\";\n//#region src/routes/admin/api/system/health/+server.ts\nfunction atRestSecretsCheck(report) {\n\tconst base = {\n\t\tid: \"at-rest-secrets\",\n\t\tlabel: \"Compute server secrets\"\n\t};\n\tif (report === null) return {\n\t\t...base,\n\t\tstatus: \"not_applicable\",\n\t\tsummary: \"The active data provider does not encrypt secrets at this layer — nothing to verify.\"\n\t};\n\tif (report.ok) return {\n\t\t...base,\n\t\tstatus: \"ok\",\n\t\tsummary: \"All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY.\"\n\t};\n\tconst failed = report.failures.map((f) => `\"${f.serverLabel}\" (${f.reason}${f.cause ? `: ${f.cause}` : \"\"})`).join(\", \");\n\tconst plaintext = report.plaintextFound;\n\treturn {\n\t\t...base,\n\t\tstatus: \"degraded\",\n\t\tsummary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,\n\t\tremediation: plaintext ? \"A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted.\" : \"The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again.\"\n\t};\n}\nfunction schemaVersionCheck(report) {\n\tconst base = {\n\t\tid: \"schema-version\",\n\t\tlabel: \"Database schema\"\n\t};\n\tif (report === null) return {\n\t\t...base,\n\t\tstatus: \"not_applicable\",\n\t\tsummary: \"The active data provider migrates with the app — there is no separate schema to verify.\"\n\t};\n\tif (report.ok) return {\n\t\t...base,\n\t\tstatus: \"ok\",\n\t\tsummary: `Database migration head ${report.actual} satisfies the app's expected ${report.expected}.`\n\t};\n\treturn {\n\t\t...base,\n\t\tstatus: \"degraded\",\n\t\tsummary: report.message ?? `Database migration head ${report.actual ?? \"unavailable\"} is behind the app's expected ${report.expected}.`,\n\t\tremediation: \"Sync the provider migrations into your Supabase project and run `npx supabase db push`, then restart the app. `selva doctor` runs the same check from the CLI.\"\n\t};\n}\nvar COMPUTE_PING_TIMEOUT_MS = 8e3;\n/**\n* Ping the global default compute server's `/healthcheck`. We probe the\n* default specifically because that's the server every solve falls back to;\n* a degraded default breaks the baseline for all orgs. Org-private and\n* non-default platform servers are out of scope here — they have their own\n* per-server status probe at /admin/api/compute/status.\n*/\nasync function computeReachabilityCheck(locals) {\n\tconst base = {\n\t\tid: \"compute-reachable\",\n\t\tlabel: \"Default compute server\"\n\t};\n\tlet config;\n\ttry {\n\t\tconfig = await getComputeServerConfigStore().getConfig(locals.ctx);\n\t} catch (err) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"error\",\n\t\t\tsummary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n\tconst server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;\n\tif (!server) return {\n\t\t...base,\n\t\tstatus: \"not_applicable\",\n\t\tsummary: \"No default compute server is configured — nothing to reach.\",\n\t\tremediation: \"Add a server and set it as default in /admin/compute.\"\n\t};\n\tconst controller = new AbortController();\n\tconst timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);\n\ttry {\n\t\tconst headers = {};\n\t\tif (server.hasApiKey) {\n\t\t\tconst apiKey = await getComputeServerConfigStore().getServerApiKey(locals.ctx, server.id);\n\t\t\tif (apiKey) headers[\"RhinoComputeKey\"] = apiKey;\n\t\t}\n\t\tconst res = await fetch(new URL(\"/healthcheck\", server.serverUrl).toString(), {\n\t\t\tsignal: controller.signal,\n\t\t\theaders\n\t\t});\n\t\tif (res.ok) return {\n\t\t\t...base,\n\t\t\tstatus: \"ok\",\n\t\t\tsummary: `\"${server.label}\" answered /healthcheck (200).`\n\t\t};\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"degraded\",\n\t\t\tsummary: `\"${server.label}\" responded ${res.status} to /healthcheck.`,\n\t\t\tremediation: res.status === 401 || res.status === 403 ? \"Authentication rejected — verify the API key in /admin/compute.\" : \"The server is reachable but unhealthy. Check the Rhino.Compute host.\"\n\t\t};\n\t} catch (err) {\n\t\tconst aborted = err instanceof Error && err.name === \"AbortError\";\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"degraded\",\n\t\t\tsummary: aborted ? `\"${server.label}\" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `\"${server.label}\" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,\n\t\t\tremediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`\n\t\t};\n\t} finally {\n\t\tclearTimeout(timer);\n\t}\n}\n/**\n* Write + delete a temp file under DATA_PATH to prove the local provider can\n* still persist. The JSON stores read-modify-write without a fallback, so a\n* full disk or a permission change (e.g. ownership drift after a restore)\n* corrupts data on the next write — catch it here while it's still just a\n* failed health check.\n*/\nasync function dataPathWritableCheck() {\n\tconst base = {\n\t\tid: \"data-path-writable\",\n\t\tlabel: \"Data path writable\"\n\t};\n\tif (!(providers.data.computeServer instanceof LocalComputeServerStore)) return {\n\t\t...base,\n\t\tstatus: \"not_applicable\",\n\t\tsummary: \"The active data provider does not persist to a local DATA_PATH.\"\n\t};\n\tconst dataPath = private_env.DATA_PATH;\n\tif (!dataPath) return {\n\t\t...base,\n\t\tstatus: \"error\",\n\t\tsummary: \"DATA_PATH is unset but the local provider is active.\",\n\t\tremediation: \"Set DATA_PATH in .env and restart.\"\n\t};\n\tconst absolute = resolve(dataPath);\n\tconst probe = join(absolute, `.health-probe-${randomUUID()}`);\n\ttry {\n\t\tawait mkdir(absolute, { recursive: true });\n\t\tawait writeFile(probe, \"ok\");\n\t\tawait unlink(probe);\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"ok\",\n\t\t\tsummary: `DATA_PATH (${dataPath}) is writable.`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"degraded\",\n\t\t\tsummary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,\n\t\t\tremediation: \"Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`).\"\n\t\t};\n\t}\n}\nvar GET = async ({ locals }) => {\n\trequirePermission(locals, \"instance_admin\");\n\tconst checks = [];\n\tconst store = providers.data.computeServer;\n\tif (typeof store.verifySecrets === \"function\") try {\n\t\tchecks.push(atRestSecretsCheck(await store.verifySecrets()));\n\t} catch (err) {\n\t\tchecks.push({\n\t\t\tid: \"at-rest-secrets\",\n\t\t\tlabel: \"Compute server secrets\",\n\t\t\tstatus: \"error\",\n\t\t\tsummary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,\n\t\t\tremediation: \"Check server logs (`pm2 logs selva-compute`) for the underlying error.\"\n\t\t});\n\t}\n\telse checks.push(atRestSecretsCheck(null));\n\tconst data = providers.data;\n\tif (typeof data.verifySchemaVersion === \"function\") checks.push(schemaVersionCheck(await data.verifySchemaVersion()));\n\telse checks.push(schemaVersionCheck(null));\n\tchecks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));\n\tconst rank = {\n\t\tok: 0,\n\t\tnot_applicable: 0,\n\t\tdegraded: 2,\n\t\terror: 3\n\t};\n\treturn json({\n\t\toverall: checks.reduce((worst, c) => rank[c.status] > rank[worst] ? c.status : worst, \"ok\"),\n\t\tcheckedAt: (/* @__PURE__ */ new Date()).toISOString(),\n\t\tchecks\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
package/build/server/chunks/entries/endpoints/admin/api/system/throughput/_server.ts.js-BjnIUQv7.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { r as requirePermission } from '../../../../../../chunks/access.server.js-CzBCyDoD.js';
|
|
2
|
+
import { a as apiError, A as ApiErrorCode } from '../../../../../../chunks/api-errors.js-BLGSIpxK.js';
|
|
3
|
+
import { json } from '@sveltejs/kit';
|
|
4
|
+
import { randomFillSync } from 'node:crypto';
|
|
5
|
+
import '../../../../../../chunks/src.js-C5mUn1eC.js';
|
|
6
|
+
import 'zod';
|
|
7
|
+
import '../../../../../../chunks/providers.server.js-Wjp7cRza.js';
|
|
8
|
+
import '../../../../../../chunks/shared-server.js-DA4m8f1m.js';
|
|
9
|
+
import '../../../../../../chunks/limits.js-BniDP5VZ.js';
|
|
10
|
+
import '../../../../../../chunks/chunk-Y3M7P3BW.js-qwxSY5dh.js';
|
|
11
|
+
import '../../../../../../chunks/schema.js-BhmknPcU.js';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:path';
|
|
14
|
+
import 'node:fs';
|
|
15
|
+
import 'node:fs/promises';
|
|
16
|
+
import '@supabase/supabase-js';
|
|
17
|
+
import '../../../../../../chunks/utils2.js-DzUQOoCX.js';
|
|
18
|
+
|
|
19
|
+
//#region src/routes/admin/api/system/throughput/+server.ts
|
|
20
|
+
/**
|
|
21
|
+
* Network throughput probe for the /admin/system page. Measures the transport
|
|
22
|
+
* path between the operator's browser and this server — through whatever
|
|
23
|
+
* proxies/tunnels sit in between (reverse proxy, SSO relays such as Azure App
|
|
24
|
+
* Proxy) — with zero compute involvement:
|
|
25
|
+
*
|
|
26
|
+
* GET ?mb=N → streams N MB of random bytes (download direction)
|
|
27
|
+
* POST → consumes and discards the request body, returns the
|
|
28
|
+
* server-side receive duration (upload direction)
|
|
29
|
+
*
|
|
30
|
+
* Random bytes are deliberately incompressible so proxy compression can't fake
|
|
31
|
+
* a fast transfer. `instance_admin` only — a bandwidth probe is an operator
|
|
32
|
+
* tool, and the download side is a data faucet.
|
|
33
|
+
*
|
|
34
|
+
* A curl-friendly, env-flag-gated sibling exists at /api/diag/throughput for
|
|
35
|
+
* shell-based testing (documented in docs/deployment/app-proxy-migration.md);
|
|
36
|
+
* this endpoint is the browser/UI counterpart that also works behind SSO
|
|
37
|
+
* proxies where curl can't authenticate.
|
|
38
|
+
*/
|
|
39
|
+
var CHUNK_BYTES = 1024 * 1024;
|
|
40
|
+
var DOWNLOAD_DEFAULT_MB = 20;
|
|
41
|
+
var DOWNLOAD_MAX_MB = 256;
|
|
42
|
+
var UPLOAD_MAX_BYTES = 256 * 1024 * 1024;
|
|
43
|
+
var GET = async ({ locals, url }) => {
|
|
44
|
+
requirePermission(locals, "instance_admin");
|
|
45
|
+
const requested = Number(url.searchParams.get("mb"));
|
|
46
|
+
const mb = Math.min(DOWNLOAD_MAX_MB, Math.max(1, Number.isFinite(requested) ? requested : DOWNLOAD_DEFAULT_MB));
|
|
47
|
+
let sentChunks = 0;
|
|
48
|
+
const stream = new ReadableStream({ pull(controller) {
|
|
49
|
+
if (sentChunks >= mb) {
|
|
50
|
+
controller.close();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const chunk = new Uint8Array(CHUNK_BYTES);
|
|
54
|
+
randomFillSync(chunk);
|
|
55
|
+
controller.enqueue(chunk);
|
|
56
|
+
sentChunks++;
|
|
57
|
+
} });
|
|
58
|
+
return new Response(stream, { headers: {
|
|
59
|
+
"Content-Type": "application/octet-stream",
|
|
60
|
+
"Content-Length": String(mb * CHUNK_BYTES),
|
|
61
|
+
"Cache-Control": "no-store"
|
|
62
|
+
} });
|
|
63
|
+
};
|
|
64
|
+
var POST = async ({ locals, request }) => {
|
|
65
|
+
requirePermission(locals, "instance_admin");
|
|
66
|
+
const declared = Number(request.headers.get("content-length"));
|
|
67
|
+
if (Number.isFinite(declared) && declared > UPLOAD_MAX_BYTES) apiError(413, ApiErrorCode.VALIDATION_FAILED, "Upload exceeds the 256 MB probe limit");
|
|
68
|
+
if (!request.body) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing request body");
|
|
69
|
+
const start = performance.now();
|
|
70
|
+
const reader = request.body.getReader();
|
|
71
|
+
let bytes = 0;
|
|
72
|
+
while (true) {
|
|
73
|
+
const { done, value } = await reader.read();
|
|
74
|
+
if (done) break;
|
|
75
|
+
bytes += value.byteLength;
|
|
76
|
+
if (bytes > UPLOAD_MAX_BYTES) {
|
|
77
|
+
await reader.cancel();
|
|
78
|
+
apiError(413, ApiErrorCode.VALIDATION_FAILED, "Upload exceeds the 256 MB probe limit");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const ms = performance.now() - start;
|
|
82
|
+
return json({
|
|
83
|
+
bytes,
|
|
84
|
+
ms: Math.round(ms),
|
|
85
|
+
mbps: ms > 0 ? Number((bytes / (1024 * 1024) / (ms / 1e3)).toFixed(2)) : null
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export { GET, POST };
|
|
90
|
+
//# sourceMappingURL=_server.ts.js-BjnIUQv7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts.js-BjnIUQv7.js","sources":["../../../../../../../../../.svelte-kit/output/server/entries/endpoints/admin/api/system/throughput/_server.ts.js"],"sourcesContent":["import { S as requirePermission } from \"../../../../../../chunks/access.server.js\";\nimport { n as apiError, t as ApiErrorCode } from \"../../../../../../chunks/api-errors.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { randomFillSync } from \"node:crypto\";\n//#region src/routes/admin/api/system/throughput/+server.ts\n/**\n* Network throughput probe for the /admin/system page. Measures the transport\n* path between the operator's browser and this server — through whatever\n* proxies/tunnels sit in between (reverse proxy, SSO relays such as Azure App\n* Proxy) — with zero compute involvement:\n*\n* GET ?mb=N → streams N MB of random bytes (download direction)\n* POST → consumes and discards the request body, returns the\n* server-side receive duration (upload direction)\n*\n* Random bytes are deliberately incompressible so proxy compression can't fake\n* a fast transfer. `instance_admin` only — a bandwidth probe is an operator\n* tool, and the download side is a data faucet.\n*\n* A curl-friendly, env-flag-gated sibling exists at /api/diag/throughput for\n* shell-based testing (documented in docs/deployment/app-proxy-migration.md);\n* this endpoint is the browser/UI counterpart that also works behind SSO\n* proxies where curl can't authenticate.\n*/\nvar CHUNK_BYTES = 1024 * 1024;\nvar DOWNLOAD_DEFAULT_MB = 20;\nvar DOWNLOAD_MAX_MB = 256;\nvar UPLOAD_MAX_BYTES = 256 * 1024 * 1024;\nvar GET = async ({ locals, url }) => {\n\trequirePermission(locals, \"instance_admin\");\n\tconst requested = Number(url.searchParams.get(\"mb\"));\n\tconst mb = Math.min(DOWNLOAD_MAX_MB, Math.max(1, Number.isFinite(requested) ? requested : DOWNLOAD_DEFAULT_MB));\n\tlet sentChunks = 0;\n\tconst stream = new ReadableStream({ pull(controller) {\n\t\tif (sentChunks >= mb) {\n\t\t\tcontroller.close();\n\t\t\treturn;\n\t\t}\n\t\tconst chunk = new Uint8Array(CHUNK_BYTES);\n\t\trandomFillSync(chunk);\n\t\tcontroller.enqueue(chunk);\n\t\tsentChunks++;\n\t} });\n\treturn new Response(stream, { headers: {\n\t\t\"Content-Type\": \"application/octet-stream\",\n\t\t\"Content-Length\": String(mb * CHUNK_BYTES),\n\t\t\"Cache-Control\": \"no-store\"\n\t} });\n};\nvar POST = async ({ locals, request }) => {\n\trequirePermission(locals, \"instance_admin\");\n\tconst declared = Number(request.headers.get(\"content-length\"));\n\tif (Number.isFinite(declared) && declared > UPLOAD_MAX_BYTES) apiError(413, ApiErrorCode.VALIDATION_FAILED, \"Upload exceeds the 256 MB probe limit\");\n\tif (!request.body) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing request body\");\n\tconst start = performance.now();\n\tconst reader = request.body.getReader();\n\tlet bytes = 0;\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\tbytes += value.byteLength;\n\t\tif (bytes > UPLOAD_MAX_BYTES) {\n\t\t\tawait reader.cancel();\n\t\t\tapiError(413, ApiErrorCode.VALIDATION_FAILED, \"Upload exceeds the 256 MB probe limit\");\n\t\t}\n\t}\n\tconst ms = performance.now() - start;\n\treturn json({\n\t\tbytes,\n\t\tms: Math.round(ms),\n\t\tmbps: ms > 0 ? Number((bytes / (1024 * 1024) / (ms / 1e3)).toFixed(2)) : null\n\t});\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
|