@selvajs/selva 4.20.0-beta.4 → 4.20.0-beta.6
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.C45HIGfG.css +2 -0
- package/build/client/_app/immutable/assets/0.C45HIGfG.css.br +0 -0
- package/build/client/_app/immutable/assets/0.C45HIGfG.css.gz +0 -0
- package/build/client/_app/immutable/assets/21.BvJ6F1Yi.css +1 -0
- package/build/client/_app/immutable/assets/21.BvJ6F1Yi.css.br +0 -0
- package/build/client/_app/immutable/assets/21.BvJ6F1Yi.css.gz +0 -0
- package/build/client/_app/immutable/chunks/-LlQaA9l.js +1 -0
- package/build/client/_app/immutable/chunks/-LlQaA9l.js.br +0 -0
- package/build/client/_app/immutable/chunks/-LlQaA9l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/12KgHQ-N.js +1 -0
- package/build/client/_app/immutable/chunks/12KgHQ-N.js.br +0 -0
- package/build/client/_app/immutable/chunks/12KgHQ-N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/93-5ZO1b.js +1 -0
- package/build/client/_app/immutable/chunks/93-5ZO1b.js.br +0 -0
- package/build/client/_app/immutable/chunks/93-5ZO1b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/9DPe2X5v.js +1 -0
- package/build/client/_app/immutable/chunks/9DPe2X5v.js.br +0 -0
- package/build/client/_app/immutable/chunks/9DPe2X5v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B0gNBqOo.js +1 -0
- package/build/client/_app/immutable/chunks/B0gNBqOo.js.br +2 -0
- package/build/client/_app/immutable/chunks/B0gNBqOo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFOafC8Z.js +1 -0
- package/build/client/_app/immutable/chunks/BFOafC8Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFOafC8Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJfoDzh4.js +1 -0
- package/build/client/_app/immutable/chunks/BJfoDzh4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJfoDzh4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLjNO7p9.js +1 -0
- package/build/client/_app/immutable/chunks/BLjNO7p9.js.br +2 -0
- package/build/client/_app/immutable/chunks/BLjNO7p9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQGLdNQc.js +1 -0
- package/build/client/_app/immutable/chunks/BQGLdNQc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQGLdNQc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BX2h-lwA.js +1 -0
- package/build/client/_app/immutable/chunks/BX2h-lwA.js.br +0 -0
- package/build/client/_app/immutable/chunks/BX2h-lwA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbytKvGN.js +9 -0
- package/build/client/_app/immutable/chunks/BbytKvGN.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbytKvGN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bd9cDnq2.js +1 -0
- package/build/client/_app/immutable/chunks/Bd9cDnq2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bd9cDnq2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiaTZdJI.js +1 -0
- package/build/client/_app/immutable/chunks/BiaTZdJI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiaTZdJI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BkYohAEu.js +1 -0
- package/build/client/_app/immutable/chunks/BkYohAEu.js.br +0 -0
- package/build/client/_app/immutable/chunks/BkYohAEu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnSo4tOg.js +1 -0
- package/build/client/_app/immutable/chunks/BnSo4tOg.js.br +0 -0
- package/build/client/_app/immutable/chunks/BnSo4tOg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BqFRxsld.js +1 -0
- package/build/client/_app/immutable/chunks/BqFRxsld.js.br +0 -0
- package/build/client/_app/immutable/chunks/BqFRxsld.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BqyDEcoE.js +1 -0
- package/build/client/_app/immutable/chunks/BqyDEcoE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BqyDEcoE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuZDaHFE.js +5 -0
- package/build/client/_app/immutable/chunks/BuZDaHFE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuZDaHFE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwOnG-jN.js +1 -0
- package/build/client/_app/immutable/chunks/BwOnG-jN.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwOnG-jN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwWC_0JS.js +1 -0
- package/build/client/_app/immutable/chunks/BwWC_0JS.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwWC_0JS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxfCoAVg.js +1 -0
- package/build/client/_app/immutable/chunks/BxfCoAVg.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxfCoAVg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByAYgnMk.js +1 -0
- package/build/client/_app/immutable/chunks/ByAYgnMk.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByAYgnMk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzkzWIQE.js +1 -0
- package/build/client/_app/immutable/chunks/BzkzWIQE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzkzWIQE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bzm-NajU.js +1 -0
- package/build/client/_app/immutable/chunks/Bzm-NajU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bzm-NajU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C-QSlIyH.js +1 -0
- package/build/client/_app/immutable/chunks/C-QSlIyH.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-QSlIyH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5v7HFhg.js +1 -0
- package/build/client/_app/immutable/chunks/C5v7HFhg.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5v7HFhg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CAkGQPoQ.js +1 -0
- package/build/client/_app/immutable/chunks/CAkGQPoQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CAkGQPoQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMtjqk_n.js +1 -0
- package/build/client/_app/immutable/chunks/CMtjqk_n.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMtjqk_n.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMuh1bUY.js +1 -0
- package/build/client/_app/immutable/chunks/CMuh1bUY.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMuh1bUY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPD08dHO.js +1 -0
- package/build/client/_app/immutable/chunks/CPD08dHO.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPD08dHO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CSau7mRW.js +1 -0
- package/build/client/_app/immutable/chunks/CSau7mRW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSau7mRW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CV8qD3yb.js +1 -0
- package/build/client/_app/immutable/chunks/CV8qD3yb.js.br +0 -0
- package/build/client/_app/immutable/chunks/CV8qD3yb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWjb2VHq.js +1 -0
- package/build/client/_app/immutable/chunks/CWjb2VHq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWjb2VHq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdAjfGbN.js +1 -0
- package/build/client/_app/immutable/chunks/CdAjfGbN.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdAjfGbN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CextWRXK.js +1 -0
- package/build/client/_app/immutable/chunks/CextWRXK.js.br +0 -0
- package/build/client/_app/immutable/chunks/CextWRXK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cgw7kcUe.js +1 -0
- package/build/client/_app/immutable/chunks/Cgw7kcUe.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cgw7kcUe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ChY0nXqJ.js +1 -0
- package/build/client/_app/immutable/chunks/ChY0nXqJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChY0nXqJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnHYnLI5.js +1 -0
- package/build/client/_app/immutable/chunks/CnHYnLI5.js.br +0 -0
- package/build/client/_app/immutable/chunks/CnHYnLI5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CodYp_yU.js +1 -0
- package/build/client/_app/immutable/chunks/CodYp_yU.js.br +0 -0
- package/build/client/_app/immutable/chunks/CodYp_yU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CprtiLWQ.js +3 -0
- package/build/client/_app/immutable/chunks/CprtiLWQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CprtiLWQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CrLYICVb.js +55 -0
- package/build/client/_app/immutable/chunks/CrLYICVb.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrLYICVb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Crj7HRo5.js +1 -0
- package/build/client/_app/immutable/chunks/Crj7HRo5.js.br +1 -0
- package/build/client/_app/immutable/chunks/Crj7HRo5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cum1Qt0M.js +1 -0
- package/build/client/_app/immutable/chunks/Cum1Qt0M.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cum1Qt0M.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CvxIm1I-.js +2 -0
- package/build/client/_app/immutable/chunks/CvxIm1I-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CvxIm1I-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3Htjr0Z.js +1 -0
- package/build/client/_app/immutable/chunks/D3Htjr0Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3Htjr0Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3cCFEni.js +1 -0
- package/build/client/_app/immutable/chunks/D3cCFEni.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3cCFEni.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3dwhLzR.js +1 -0
- package/build/client/_app/immutable/chunks/D3dwhLzR.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3dwhLzR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5lvbBML.js +2 -0
- package/build/client/_app/immutable/chunks/D5lvbBML.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5lvbBML.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DFd9S4xF.js +1 -0
- package/build/client/_app/immutable/chunks/DFd9S4xF.js.br +1 -0
- package/build/client/_app/immutable/chunks/DFd9S4xF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DH-vvh8e.js +1 -0
- package/build/client/_app/immutable/chunks/DH-vvh8e.js.br +0 -0
- package/build/client/_app/immutable/chunks/DH-vvh8e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHV38Tqi.js +1 -0
- package/build/client/_app/immutable/chunks/DHV38Tqi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHV38Tqi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DP5EsO0R.js +1 -0
- package/build/client/_app/immutable/chunks/DP5EsO0R.js.br +0 -0
- package/build/client/_app/immutable/chunks/DP5EsO0R.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPNF_JgD.js +1 -0
- package/build/client/_app/immutable/chunks/DPNF_JgD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPNF_JgD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQAWVf63.js +1 -0
- package/build/client/_app/immutable/chunks/DQAWVf63.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQAWVf63.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUGyLxAG.js +1 -0
- package/build/client/_app/immutable/chunks/DUGyLxAG.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUGyLxAG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dfz8HdUD.js +1 -0
- package/build/client/_app/immutable/chunks/Dfz8HdUD.js.br +1 -0
- package/build/client/_app/immutable/chunks/Dfz8HdUD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DivW3yY7.js +1 -0
- package/build/client/_app/immutable/chunks/DivW3yY7.js.br +0 -0
- package/build/client/_app/immutable/chunks/DivW3yY7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlFPOpXR.js +1 -0
- package/build/client/_app/immutable/chunks/DlFPOpXR.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlFPOpXR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvWTLogT.js +1 -0
- package/build/client/_app/immutable/chunks/DvWTLogT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvWTLogT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dx233TCr.js +1 -0
- package/build/client/_app/immutable/chunks/Dx233TCr.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dx233TCr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DxdwbPho.js +1 -0
- package/build/client/_app/immutable/chunks/DxdwbPho.js.br +0 -0
- package/build/client/_app/immutable/chunks/DxdwbPho.js.gz +0 -0
- package/build/client/_app/immutable/chunks/LRDT3NtD.js +1 -0
- package/build/client/_app/immutable/chunks/LRDT3NtD.js.br +0 -0
- package/build/client/_app/immutable/chunks/LRDT3NtD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Mex8webO.js +1 -0
- package/build/client/_app/immutable/chunks/Mex8webO.js.br +0 -0
- package/build/client/_app/immutable/chunks/Mex8webO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OCIeJXbx.js +1 -0
- package/build/client/_app/immutable/chunks/OCIeJXbx.js.br +0 -0
- package/build/client/_app/immutable/chunks/OCIeJXbx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OfqhmRxN.js +1 -0
- package/build/client/_app/immutable/chunks/OfqhmRxN.js.br +0 -0
- package/build/client/_app/immutable/chunks/OfqhmRxN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QxB142Nb.js +1 -0
- package/build/client/_app/immutable/chunks/QxB142Nb.js.br +0 -0
- package/build/client/_app/immutable/chunks/QxB142Nb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SNcOlcwn.js +1 -0
- package/build/client/_app/immutable/chunks/SNcOlcwn.js.br +0 -0
- package/build/client/_app/immutable/chunks/SNcOlcwn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Tw_nVBUQ.js +1 -0
- package/build/client/_app/immutable/chunks/Tw_nVBUQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Tw_nVBUQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_q4DOGx1.js +1 -0
- package/build/client/_app/immutable/chunks/_q4DOGx1.js.br +3 -0
- package/build/client/_app/immutable/chunks/_q4DOGx1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_qlIFSOj.js +1 -0
- package/build/client/_app/immutable/chunks/_qlIFSOj.js.br +0 -0
- package/build/client/_app/immutable/chunks/_qlIFSOj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bxaIPEfs.js +1 -0
- package/build/client/_app/immutable/chunks/bxaIPEfs.js.br +0 -0
- package/build/client/_app/immutable/chunks/bxaIPEfs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/g7Vw9Gl4.js +1 -0
- package/build/client/_app/immutable/chunks/g7Vw9Gl4.js.br +1 -0
- package/build/client/_app/immutable/chunks/g7Vw9Gl4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hg3wt1u2.js +1 -0
- package/build/client/_app/immutable/chunks/hg3wt1u2.js.br +0 -0
- package/build/client/_app/immutable/chunks/hg3wt1u2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/j8xS3LO3.js +1 -0
- package/build/client/_app/immutable/chunks/j8xS3LO3.js.br +0 -0
- package/build/client/_app/immutable/chunks/j8xS3LO3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/j9StfPPx.js +1 -0
- package/build/client/_app/immutable/chunks/j9StfPPx.js.br +0 -0
- package/build/client/_app/immutable/chunks/j9StfPPx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/mzYuMtQB.js +1 -0
- package/build/client/_app/immutable/chunks/mzYuMtQB.js.br +1 -0
- package/build/client/_app/immutable/chunks/mzYuMtQB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oCmhAuOs.js +1 -0
- package/build/client/_app/immutable/chunks/oCmhAuOs.js.br +0 -0
- package/build/client/_app/immutable/chunks/oCmhAuOs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oaWIFO26.js +1 -0
- package/build/client/_app/immutable/chunks/oaWIFO26.js.br +0 -0
- package/build/client/_app/immutable/chunks/oaWIFO26.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ti_Xa3gE.js +1 -0
- package/build/client/_app/immutable/chunks/ti_Xa3gE.js.br +0 -0
- package/build/client/_app/immutable/chunks/ti_Xa3gE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/x9FSe0T2.js +1 -0
- package/build/client/_app/immutable/chunks/x9FSe0T2.js.br +0 -0
- package/build/client/_app/immutable/chunks/x9FSe0T2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xqQpZkFs.js +1 -0
- package/build/client/_app/immutable/chunks/xqQpZkFs.js.br +0 -0
- package/build/client/_app/immutable/chunks/xqQpZkFs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yuhWCUoc.js +1 -0
- package/build/client/_app/immutable/chunks/yuhWCUoc.js.br +0 -0
- package/build/client/_app/immutable/chunks/yuhWCUoc.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BR0Zu0pc.js +2 -0
- package/build/client/_app/immutable/entry/app.BR0Zu0pc.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BR0Zu0pc.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.4emnx9kh.js +1 -0
- package/build/client/_app/immutable/entry/start.4emnx9kh.js.br +0 -0
- package/build/client/_app/immutable/entry/start.4emnx9kh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BGAll8Ak.js +1 -0
- package/build/client/_app/immutable/nodes/0.BGAll8Ak.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BGAll8Ak.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DbfOLlM0.js +1 -0
- package/build/client/_app/immutable/nodes/1.DbfOLlM0.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DbfOLlM0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BPYPQ7LO.js +3 -0
- package/build/client/_app/immutable/nodes/10.BPYPQ7LO.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BPYPQ7LO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CmvL2YOB.js +3 -0
- package/build/client/_app/immutable/nodes/11.CmvL2YOB.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CmvL2YOB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.CIIeQW19.js +1 -0
- package/build/client/_app/immutable/nodes/12.CIIeQW19.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.CIIeQW19.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CR29XAFA.js +2 -0
- package/build/client/_app/immutable/nodes/13.CR29XAFA.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CR29XAFA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.DVDXF60c.js +2 -0
- package/build/client/_app/immutable/nodes/14.DVDXF60c.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DVDXF60c.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.ZC4gI--q.js +28 -0
- package/build/client/_app/immutable/nodes/15.ZC4gI--q.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.ZC4gI--q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.Cji_Lwjj.js +5 -0
- package/build/client/_app/immutable/nodes/16.Cji_Lwjj.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.Cji_Lwjj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.Bg2efS8L.js +2 -0
- package/build/client/_app/immutable/nodes/17.Bg2efS8L.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.Bg2efS8L.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.lC9vydNr.js +1 -0
- package/build/client/_app/immutable/nodes/18.lC9vydNr.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.lC9vydNr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.CpLNyGqk.js +7 -0
- package/build/client/_app/immutable/nodes/19.CpLNyGqk.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.CpLNyGqk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.ozLfvL6P.js +1 -0
- package/build/client/_app/immutable/nodes/2.ozLfvL6P.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.ozLfvL6P.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.DIBS3If7.js +2 -0
- package/build/client/_app/immutable/nodes/20.DIBS3If7.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.DIBS3If7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.BJsP1DMq.js +5669 -0
- package/build/client/_app/immutable/nodes/21.BJsP1DMq.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.BJsP1DMq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.pRNA28EZ.js +6 -0
- package/build/client/_app/immutable/nodes/22.pRNA28EZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.pRNA28EZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.B_qouUW4.js +3 -0
- package/build/client/_app/immutable/nodes/24.B_qouUW4.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.B_qouUW4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.BcsxMWnp.js +16 -0
- package/build/client/_app/immutable/nodes/25.BcsxMWnp.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.BcsxMWnp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.BXlikXJ0.js +6 -0
- package/build/client/_app/immutable/nodes/26.BXlikXJ0.js.br +0 -0
- package/build/client/_app/immutable/nodes/26.BXlikXJ0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.CYWp4PIv.js +1 -0
- package/build/client/_app/immutable/nodes/27.CYWp4PIv.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CYWp4PIv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.Bf4iRCdp.js +3 -0
- package/build/client/_app/immutable/nodes/28.Bf4iRCdp.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.Bf4iRCdp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.BvoD-1hZ.js +4 -0
- package/build/client/_app/immutable/nodes/29.BvoD-1hZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BvoD-1hZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CWtKIPok.js +1 -0
- package/build/client/_app/immutable/nodes/3.CWtKIPok.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CWtKIPok.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CxD3stw1.js +6 -0
- package/build/client/_app/immutable/nodes/30.CxD3stw1.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CxD3stw1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.BupDfVkd.js +2 -0
- package/build/client/_app/immutable/nodes/31.BupDfVkd.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.BupDfVkd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.L5ZhtyCL.js +2 -0
- package/build/client/_app/immutable/nodes/32.L5ZhtyCL.js.br +0 -0
- package/build/client/_app/immutable/nodes/32.L5ZhtyCL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/33.DyBztWwU.js +2 -0
- package/build/client/_app/immutable/nodes/33.DyBztWwU.js.br +0 -0
- package/build/client/_app/immutable/nodes/33.DyBztWwU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/34.w9MqoQKg.js +1 -0
- package/build/client/_app/immutable/nodes/34.w9MqoQKg.js.br +0 -0
- package/build/client/_app/immutable/nodes/34.w9MqoQKg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/35.W-cgQEWE.js +2 -0
- package/build/client/_app/immutable/nodes/35.W-cgQEWE.js.br +0 -0
- package/build/client/_app/immutable/nodes/35.W-cgQEWE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BqhggvNV.js +1 -0
- package/build/client/_app/immutable/nodes/4.BqhggvNV.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BqhggvNV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.oh5oZCvz.js +1 -0
- package/build/client/_app/immutable/nodes/5.oh5oZCvz.js.br +2 -0
- package/build/client/_app/immutable/nodes/5.oh5oZCvz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.F9B0VtLJ.js +1 -0
- package/build/client/_app/immutable/nodes/6.F9B0VtLJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.F9B0VtLJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BU3rMr36.js +1 -0
- package/build/client/_app/immutable/nodes/7.BU3rMr36.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BU3rMr36.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.X9Mh2P1v.js +3 -0
- package/build/client/_app/immutable/nodes/8.X9Mh2P1v.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.X9Mh2P1v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CI9goSrA.js +1 -0
- package/build/client/_app/immutable/nodes/9.CI9goSrA.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CI9goSrA.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 +11 -11
- package/build/index.js +11 -11
- package/build/server/chunks/chunks/AppHeader.js-cFj8rmeJ.js +73 -0
- package/build/server/chunks/chunks/AppHeader.js-cFj8rmeJ.js.map +1 -0
- package/build/server/chunks/chunks/Callout.js-_5j40j01.js +57 -0
- package/build/server/chunks/chunks/Callout.js-_5j40j01.js.map +1 -0
- package/build/server/chunks/chunks/ConfirmDialog.js-Olp-usIm.js +151 -0
- package/build/server/chunks/chunks/ConfirmDialog.js-Olp-usIm.js.map +1 -0
- package/build/server/chunks/chunks/DataTable.js-kjk81hZJ.js +27 -0
- package/build/server/chunks/chunks/DataTable.js-kjk81hZJ.js.map +1 -0
- package/build/server/chunks/chunks/DefinitionCard.js-cWBb-1ZJ.js +143 -0
- package/build/server/chunks/chunks/DefinitionCard.js-cWBb-1ZJ.js.map +1 -0
- package/build/server/chunks/chunks/EmptyState.js-BdUreCXm.js +36 -0
- package/build/server/chunks/chunks/EmptyState.js-BdUreCXm.js.map +1 -0
- package/build/server/chunks/chunks/ErrorScreen.js-BHAR3VXp.js +112 -0
- package/build/server/chunks/chunks/ErrorScreen.js-BHAR3VXp.js.map +1 -0
- package/build/server/chunks/chunks/FilterableDropdown.js-C19NKLOc.js +2725 -0
- package/build/server/chunks/chunks/FilterableDropdown.js-C19NKLOc.js.map +1 -0
- package/build/server/chunks/chunks/PageContent.js-DM5pKN5_.js +12 -0
- package/build/server/chunks/chunks/PageContent.js-DM5pKN5_.js.map +1 -0
- package/build/server/chunks/chunks/SectionHeader.js-DiptCbfZ.js +22 -0
- package/build/server/chunks/chunks/SectionHeader.js-DiptCbfZ.js.map +1 -0
- package/build/server/chunks/chunks/SettingsMenu.js-BIcj32M_.js +822 -0
- package/build/server/chunks/chunks/SettingsMenu.js-BIcj32M_.js.map +1 -0
- package/build/server/chunks/chunks/SideNav.js-BO7V8Wv2.js +63 -0
- package/build/server/chunks/chunks/SideNav.js-BO7V8Wv2.js.map +1 -0
- package/build/server/chunks/chunks/StatCard.js-BqejKQGG.js +52 -0
- package/build/server/chunks/chunks/StatCard.js-BqejKQGG.js.map +1 -0
- package/build/server/chunks/chunks/UserAvatar.js-DDPSjRDb.js +14 -0
- package/build/server/chunks/chunks/UserAvatar.js-DDPSjRDb.js.map +1 -0
- package/build/server/chunks/chunks/UserRowIdentity.js-7ro0fsLU.js +114 -0
- package/build/server/chunks/chunks/UserRowIdentity.js-7ro0fsLU.js.map +1 -0
- package/build/server/chunks/chunks/ViewToggle.js-D2cAfuwW.js +534 -0
- package/build/server/chunks/chunks/ViewToggle.js-D2cAfuwW.js.map +1 -0
- package/build/server/chunks/chunks/access.js-rwe-SmJo.js +571 -0
- package/build/server/chunks/chunks/access.js-rwe-SmJo.js.map +1 -0
- package/build/server/chunks/chunks/access.server.js-DduBxbaS.js +14 -0
- package/build/server/chunks/chunks/access.server.js-DduBxbaS.js.map +1 -0
- package/build/server/chunks/chunks/access2.server.js-D_-WyKfR.js +64 -0
- package/build/server/chunks/chunks/access2.server.js-D_-WyKfR.js.map +1 -0
- package/build/server/chunks/chunks/activity.js-TZSC8dNG.js +15 -0
- package/build/server/chunks/chunks/activity.js-TZSC8dNG.js.map +1 -0
- package/build/server/chunks/chunks/admin-auth.server.js-B-uOGq_D.js +342 -0
- package/build/server/chunks/chunks/admin-auth.server.js-B-uOGq_D.js.map +1 -0
- package/build/server/chunks/chunks/alert-dialog.js-D8oxuqMa.js +464 -0
- package/build/server/chunks/chunks/alert-dialog.js-D8oxuqMa.js.map +1 -0
- package/build/server/chunks/chunks/api-errors.js-DvjYE91z.js +57 -0
- package/build/server/chunks/chunks/api-errors.js-DvjYE91z.js.map +1 -0
- package/build/server/chunks/chunks/api-token-codec.js-DtGv_8ta.js +67 -0
- package/build/server/chunks/chunks/api-token-codec.js-DtGv_8ta.js.map +1 -0
- package/build/server/chunks/chunks/api.js-DqrNwzDz.js +1031 -0
- package/build/server/chunks/chunks/api.js-DqrNwzDz.js.map +1 -0
- package/build/server/chunks/chunks/arrow-left.js-CL-SopHe.js +15 -0
- package/build/server/chunks/chunks/arrow-left.js-CL-SopHe.js.map +1 -0
- package/build/server/chunks/chunks/arrow-right.js-7VB0HIju.js +15 -0
- package/build/server/chunks/chunks/arrow-right.js-7VB0HIju.js.map +1 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-B92MMtI9.js +152 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-B92MMtI9.js.map +1 -0
- package/build/server/chunks/chunks/badge.js-DmLU0rWH.js +35 -0
- package/build/server/chunks/chunks/badge.js-DmLU0rWH.js.map +1 -0
- package/build/server/chunks/chunks/bootHealth.server.js-DZNwtkkU.js +90 -0
- package/build/server/chunks/chunks/bootHealth.server.js-DZNwtkkU.js.map +1 -0
- package/build/server/chunks/chunks/building-complex.js-GAE4qB9n.js +22 -0
- package/build/server/chunks/chunks/building-complex.js-GAE4qB9n.js.map +1 -0
- package/build/server/chunks/chunks/button.js-ChtD7zPv.js +70 -0
- package/build/server/chunks/chunks/button.js-ChtD7zPv.js.map +1 -0
- package/build/server/chunks/chunks/card-content.js-BItQEy5c.js +20 -0
- package/build/server/chunks/chunks/card-content.js-BItQEy5c.js.map +1 -0
- package/build/server/chunks/chunks/card-description.js-BvGvaVHV.js +20 -0
- package/build/server/chunks/chunks/card-description.js-BvGvaVHV.js.map +1 -0
- package/build/server/chunks/chunks/card-header.js-yxWuco8y.js +20 -0
- package/build/server/chunks/chunks/card-header.js-yxWuco8y.js.map +1 -0
- package/build/server/chunks/chunks/card-title.js-4v87LW-r.js +20 -0
- package/build/server/chunks/chunks/card-title.js-4v87LW-r.js.map +1 -0
- package/build/server/chunks/chunks/card.js-BLZrhHia.js +29 -0
- package/build/server/chunks/chunks/card.js-BLZrhHia.js.map +1 -0
- package/build/server/chunks/chunks/chevron-down.js-BQGW7Xoh.js +15 -0
- package/build/server/chunks/chunks/chevron-down.js-BQGW7Xoh.js.map +1 -0
- package/build/server/chunks/chunks/chevron-left.js-BfOBQ2rm.js +15 -0
- package/build/server/chunks/chunks/chevron-left.js-BfOBQ2rm.js.map +1 -0
- package/build/server/chunks/chunks/chevron-right.js-Dc-Qr__I.js +15 -0
- package/build/server/chunks/chunks/chevron-right.js-Dc-Qr__I.js.map +1 -0
- package/build/server/chunks/chunks/chevron-up.js-By9F0-4h.js +15 -0
- package/build/server/chunks/chunks/chevron-up.js-By9F0-4h.js.map +1 -0
- package/build/server/chunks/chunks/circle.js-BrJNPJrA.js +19 -0
- package/build/server/chunks/chunks/circle.js-BrJNPJrA.js.map +1 -0
- package/build/server/chunks/chunks/client.js-BQ-CNV1V.js +59 -0
- package/build/server/chunks/chunks/client.js-BQ-CNV1V.js.map +1 -0
- package/build/server/chunks/chunks/compute.js-DFQkWcR7.js +506 -0
- package/build/server/chunks/chunks/compute.js-DFQkWcR7.js.map +1 -0
- package/build/server/chunks/chunks/computeLimits.js-wcGqW2Zr.js +44 -0
- package/build/server/chunks/chunks/computeLimits.js-wcGqW2Zr.js.map +1 -0
- package/build/server/chunks/chunks/computeRateLimit.server.js-BNVtMBOL.js +30 -0
- package/build/server/chunks/chunks/computeRateLimit.server.js-BNVtMBOL.js.map +1 -0
- package/build/server/chunks/chunks/copy.js-EUqXVOK1.js +22 -0
- package/build/server/chunks/chunks/copy.js-EUqXVOK1.js.map +1 -0
- package/build/server/chunks/chunks/create-id.js-DByR97E7.js +809 -0
- package/build/server/chunks/chunks/create-id.js-DByR97E7.js.map +1 -0
- package/build/server/chunks/chunks/definitions.js-C7Ocu80W.js +493 -0
- package/build/server/chunks/chunks/definitions.js-C7Ocu80W.js.map +1 -0
- package/build/server/chunks/chunks/dialog-description.js-D5m47Ni2.js +492 -0
- package/build/server/chunks/chunks/dialog-description.js-D5m47Ni2.js.map +1 -0
- package/build/server/chunks/chunks/dialog.js-CoG4gbfH.js +366 -0
- package/build/server/chunks/chunks/dialog.js-CoG4gbfH.js.map +1 -0
- package/build/server/chunks/chunks/engine.server.js-tTbCjBey.js +600 -0
- package/build/server/chunks/chunks/engine.server.js-tTbCjBey.js.map +1 -0
- package/build/server/chunks/chunks/errors.js-BNBva9oZ.js +237 -0
- package/build/server/chunks/chunks/errors.js-BNBva9oZ.js.map +1 -0
- package/build/server/chunks/chunks/events.js-Dn4NgQ5T.js +136 -0
- package/build/server/chunks/chunks/events.js-Dn4NgQ5T.js.map +1 -0
- package/build/server/chunks/chunks/external-link.js-Dx2RQ_a4.js +19 -0
- package/build/server/chunks/chunks/external-link.js-Dx2RQ_a4.js.map +1 -0
- package/build/server/chunks/chunks/folder-kanban.js-syhW1cs-.js +20 -0
- package/build/server/chunks/chunks/folder-kanban.js-syhW1cs-.js.map +1 -0
- package/build/server/chunks/chunks/folder-open.js-D2PK4iBK.js +15 -0
- package/build/server/chunks/chunks/folder-open.js-D2PK4iBK.js.map +1 -0
- package/build/server/chunks/chunks/folders.js-C5935TLi.js +15 -0
- package/build/server/chunks/chunks/folders.js-C5935TLi.js.map +1 -0
- package/build/server/chunks/chunks/footerContext.svelte.js-D7wOrPs7.js +703 -0
- package/build/server/chunks/chunks/footerContext.svelte.js-D7wOrPs7.js.map +1 -0
- package/build/server/chunks/chunks/forms.js-QT8acyDA.js +2 -0
- package/build/server/chunks/chunks/forms.js-QT8acyDA.js.map +1 -0
- package/build/server/chunks/chunks/gauge.js-C-24eOlp.js +15 -0
- package/build/server/chunks/chunks/gauge.js-C-24eOlp.js.map +1 -0
- package/build/server/chunks/chunks/handlers.js-CJIh8p1S.js +1487 -0
- package/build/server/chunks/chunks/handlers.js-CJIh8p1S.js.map +1 -0
- package/build/server/chunks/chunks/http.js-C7JwlR4X.js +60 -0
- package/build/server/chunks/chunks/http.js-C7JwlR4X.js.map +1 -0
- package/build/server/chunks/chunks/index-server.js-B4lHrS_U.js +158 -0
- package/build/server/chunks/chunks/index-server.js-B4lHrS_U.js.map +1 -0
- package/build/server/chunks/chunks/input-group.js-Bzvvs_7L.js +66 -0
- package/build/server/chunks/chunks/input-group.js-Bzvvs_7L.js.map +1 -0
- package/build/server/chunks/chunks/input.js-Daze9Zi5.js +31 -0
- package/build/server/chunks/chunks/input.js-Daze9Zi5.js.map +1 -0
- package/build/server/chunks/chunks/instanceAdmins.server.js-CNU0Knmf.js +24 -0
- package/build/server/chunks/chunks/instanceAdmins.server.js-CNU0Knmf.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-DWk6_A5e.js.map +1 -1
- package/build/server/chunks/chunks/internal2.js-XyX0195x.js +224 -0
- package/build/server/chunks/chunks/internal2.js-XyX0195x.js.map +1 -0
- package/build/server/chunks/chunks/key-round.js-vgogOQC0.js +20 -0
- package/build/server/chunks/chunks/key-round.js-vgogOQC0.js.map +1 -0
- package/build/server/chunks/chunks/label.js-CH-88bjp.js +107 -0
- package/build/server/chunks/chunks/label.js-CH-88bjp.js.map +1 -0
- package/build/server/chunks/chunks/legacy-client.js-CnRScLY2.js +765 -0
- package/build/server/chunks/chunks/legacy-client.js-CnRScLY2.js.map +1 -0
- package/build/server/chunks/chunks/link-2.js-vAJaWEoc.js +24 -0
- package/build/server/chunks/chunks/link-2.js-vAJaWEoc.js.map +1 -0
- package/build/server/chunks/chunks/liveSolve.server.js-BJeXozEG.js +70 -0
- package/build/server/chunks/chunks/liveSolve.server.js-BJeXozEG.js.map +1 -0
- package/build/server/chunks/chunks/mail.js-BmnfY0At.js +21 -0
- package/build/server/chunks/chunks/mail.js-BmnfY0At.js.map +1 -0
- package/build/server/chunks/chunks/minus.js-BkIEK85L.js +15 -0
- package/build/server/chunks/chunks/minus.js-BkIEK85L.js.map +1 -0
- package/build/server/chunks/chunks/navigation.js-QT8acyDA.js +2 -0
- package/build/server/chunks/chunks/navigation.js-QT8acyDA.js.map +1 -0
- package/build/server/chunks/chunks/openapi.js-2LANh_Yy.js +61 -0
- package/build/server/chunks/chunks/openapi.js-2LANh_Yy.js.map +1 -0
- package/build/server/chunks/chunks/package.js-AtMi1eUX.js +85 -0
- package/build/server/chunks/chunks/package.js-AtMi1eUX.js.map +1 -0
- package/build/server/chunks/chunks/paths.js-Dn_CDUA3.js +19 -0
- package/build/server/chunks/chunks/paths.js-Dn_CDUA3.js.map +1 -0
- package/build/server/chunks/chunks/permissions.server.js-DZ5iZm7s.js +24 -0
- package/build/server/chunks/chunks/permissions.server.js-DZ5iZm7s.js.map +1 -0
- package/build/server/chunks/chunks/plus.js-DKWgh4AF.js +15 -0
- package/build/server/chunks/chunks/plus.js-DKWgh4AF.js.map +1 -0
- package/build/server/chunks/chunks/popper-layer-force-mount.js-C36FvZrx.js +1937 -0
- package/build/server/chunks/chunks/popper-layer-force-mount.js-C36FvZrx.js.map +1 -0
- package/build/server/chunks/chunks/projects.js-BuOcPeE2.js +47 -0
- package/build/server/chunks/chunks/projects.js-BuOcPeE2.js.map +1 -0
- package/build/server/chunks/chunks/providers.server.js-CqUutXkw.js +6359 -0
- package/build/server/chunks/chunks/providers.server.js-CqUutXkw.js.map +1 -0
- package/build/server/chunks/chunks/refresh-cw.js-KV2b89U7.js +20 -0
- package/build/server/chunks/chunks/refresh-cw.js-KV2b89U7.js.map +1 -0
- package/build/server/chunks/chunks/registry.js-BZT8y1Cr.js +636 -0
- package/build/server/chunks/chunks/registry.js-BZT8y1Cr.js.map +1 -0
- package/build/server/chunks/chunks/request.js-bLOak8ZP.js +119 -0
- package/build/server/chunks/chunks/request.js-bLOak8ZP.js.map +1 -0
- package/build/server/chunks/chunks/resolve.server.js-DoxIQHGn.js +59 -0
- package/build/server/chunks/chunks/resolve.server.js-DoxIQHGn.js.map +1 -0
- package/build/server/chunks/chunks/rotate-ccw.js-BHV7uexu.js +15 -0
- package/build/server/chunks/chunks/rotate-ccw.js-BHV7uexu.js.map +1 -0
- package/build/server/chunks/chunks/roving-focus-group.js-BT0BbbTq.js +134 -0
- package/build/server/chunks/chunks/roving-focus-group.js-BT0BbbTq.js.map +1 -0
- package/build/server/chunks/chunks/schema-extraction.js-BYMAfcf8.js +146 -0
- package/build/server/chunks/chunks/schema-extraction.js-BYMAfcf8.js.map +1 -0
- package/build/server/chunks/chunks/schema.js-CCefMgzX.js +2643 -0
- package/build/server/chunks/chunks/schema.js-CCefMgzX.js.map +1 -0
- package/build/server/chunks/chunks/scroll-lock.js-Ds68nQMm.js +1902 -0
- package/build/server/chunks/chunks/scroll-lock.js-Ds68nQMm.js.map +1 -0
- package/build/server/chunks/chunks/scroll-text.js-BX6SWtlE.js +20 -0
- package/build/server/chunks/chunks/scroll-text.js-BX6SWtlE.js.map +1 -0
- package/build/server/chunks/chunks/search.js-BRrgF31e.js +19 -0
- package/build/server/chunks/chunks/search.js-BRrgF31e.js.map +1 -0
- package/build/server/chunks/chunks/select.js-yrFNJ1jn.js +1917 -0
- package/build/server/chunks/chunks/select.js-yrFNJ1jn.js.map +1 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-DsmBsQQE.js +144 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-DsmBsQQE.js.map +1 -0
- package/build/server/chunks/chunks/separator.js-BDuy7amm.js +159 -0
- package/build/server/chunks/chunks/separator.js-BDuy7amm.js.map +1 -0
- package/build/server/chunks/chunks/server.js-eNE8c09e.js +3938 -0
- package/build/server/chunks/chunks/server.js-eNE8c09e.js.map +1 -0
- package/build/server/chunks/chunks/server2.js-Bdqv2L-J.js +444 -0
- package/build/server/chunks/chunks/server2.js-Bdqv2L-J.js.map +1 -0
- package/build/server/chunks/chunks/server3.js-B1GO74gx.js +20688 -0
- package/build/server/chunks/chunks/server3.js-B1GO74gx.js.map +1 -0
- package/build/server/chunks/chunks/server4.js-ClXdyAvx.js +44 -0
- package/build/server/chunks/chunks/server4.js-ClXdyAvx.js.map +1 -0
- package/build/server/chunks/chunks/settings.js-ZajE6fHc.js +19 -0
- package/build/server/chunks/chunks/settings.js-ZajE6fHc.js.map +1 -0
- package/build/server/chunks/chunks/severity.js-D9BMFvsP.js +112 -0
- package/build/server/chunks/chunks/severity.js-D9BMFvsP.js.map +1 -0
- package/build/server/chunks/chunks/shared2.js-BhyhBrAO.js +88 -0
- package/build/server/chunks/chunks/shared2.js-BhyhBrAO.js.map +1 -0
- package/build/server/chunks/chunks/shield-check.js-DA20Dq3r.js +15 -0
- package/build/server/chunks/chunks/shield-check.js-DA20Dq3r.js.map +1 -0
- package/build/server/chunks/chunks/shield.js--OZ6yfQ6.js +15 -0
- package/build/server/chunks/chunks/shield.js--OZ6yfQ6.js.map +1 -0
- package/build/server/chunks/chunks/solve.server.js-DRSlotav.js +317 -0
- package/build/server/chunks/chunks/solve.server.js-DRSlotav.js.map +1 -0
- package/build/server/chunks/chunks/src.js-CkL6l768.js +509 -0
- package/build/server/chunks/chunks/src.js-CkL6l768.js.map +1 -0
- package/build/server/chunks/chunks/star.js-DxgEyXvf.js +15 -0
- package/build/server/chunks/chunks/star.js-DxgEyXvf.js.map +1 -0
- package/build/server/chunks/chunks/state.js-BqObXRO8.js +76 -0
- package/build/server/chunks/chunks/state.js-BqObXRO8.js.map +1 -0
- package/build/server/chunks/chunks/stores.js-GBI086iD.js +35 -0
- package/build/server/chunks/chunks/stores.js-GBI086iD.js.map +1 -0
- package/build/server/chunks/chunks/sveltekit.js-C_0fqXW5.js +102 -0
- package/build/server/chunks/chunks/sveltekit.js-C_0fqXW5.js.map +1 -0
- package/build/server/chunks/chunks/tabs-trigger.js-Bww36OIZ.js +528 -0
- package/build/server/chunks/chunks/tabs-trigger.js-Bww36OIZ.js.map +1 -0
- package/build/server/chunks/chunks/toast-state.svelte.js-CZ8ABWnl.js +285 -0
- package/build/server/chunks/chunks/toast-state.svelte.js-CZ8ABWnl.js.map +1 -0
- package/build/server/chunks/chunks/token2.server.js-B8_2nZWx.js +49 -0
- package/build/server/chunks/chunks/token2.server.js-B8_2nZWx.js.map +1 -0
- package/build/server/chunks/chunks/token3.server.js-qISZc_kY.js +40 -0
- package/build/server/chunks/chunks/token3.server.js-qISZc_kY.js.map +1 -0
- package/build/server/chunks/chunks/token4.server.js-C6YbrwLv.js +23 -0
- package/build/server/chunks/chunks/token4.server.js-C6YbrwLv.js.map +1 -0
- package/build/server/chunks/chunks/tokens.js-D1NC-zri.js +10 -0
- package/build/server/chunks/chunks/tokens.js-D1NC-zri.js.map +1 -0
- package/build/server/chunks/chunks/trash.js-DnM7ek4W.js +22 -0
- package/build/server/chunks/chunks/trash.js-DnM7ek4W.js.map +1 -0
- package/build/server/chunks/chunks/user-plus.js-CZYPmLTv.js +34 -0
- package/build/server/chunks/chunks/user-plus.js-CZYPmLTv.js.map +1 -0
- package/build/server/chunks/chunks/users.js-ByB4SxDK.js +24 -0
- package/build/server/chunks/chunks/users.js-ByB4SxDK.js.map +1 -0
- package/build/server/chunks/chunks/utils2.js-C1oP9gJ9.js +180 -0
- package/build/server/chunks/chunks/utils2.js-C1oP9gJ9.js.map +1 -0
- package/build/server/chunks/chunks/x.js-BulvqqL2.js +15 -0
- package/build/server/chunks/chunks/x.js-BulvqqL2.js.map +1 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-authorization-server/_server.ts.js-BXfk1_rx.js +17 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-authorization-server/_server.ts.js-BXfk1_rx.js.map +1 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-protected-resource/_server.ts.js-DnouNlBN.js +17 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-protected-resource/_server.ts.js-DnouNlBN.js.map +1 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-protected-resource/mcp/_server.ts.js-H9MSTDdl.js +17 -0
- package/build/server/chunks/entries/endpoints/.well-known/oauth-protected-resource/mcp/_server.ts.js-H9MSTDdl.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CEukz1QE.js +99 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CEukz1QE.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-VWb7wIwk.js +87 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-VWb7wIwk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-CZzAot0S.js +98 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-CZzAot0S.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Cnk_CpOq.js +48 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Cnk_CpOq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-BQZ5gVrX.js +71 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-BQZ5gVrX.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BTAqvmDm.js +64 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-BTAqvmDm.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-CByKa4la.js +36 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-CByKa4la.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-CueJN6Ry.js +67 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-CueJN6Ry.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-DxmMKlU5.js +82 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-DxmMKlU5.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DXMk50Xf.js +367 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DXMk50Xf.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-BuRSDvdn.js +87 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-BuRSDvdn.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-BQehFhxd.js +611 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-BQehFhxd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-Dw7rYzsn.js +60 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-Dw7rYzsn.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-B4h90Mcu.js +75 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-B4h90Mcu.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-BFVDLAEO.js +85 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-BFVDLAEO.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DgW1v2iP.js +64 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DgW1v2iP.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-D4SydF8q.js +95 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-D4SydF8q.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-CVrVu2YL.js +62 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-CVrVu2YL.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-BEEPPiOK.js +65 -0
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-BEEPPiOK.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-CcigHCT1.js +92 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-CcigHCT1.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BHGn_7yj.js +77 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BHGn_7yj.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-DFSzF_Uc.js +47 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-DFSzF_Uc.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-DTweGfaX.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-DTweGfaX.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-CjpOyrBG.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-CjpOyrBG.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BnyLamox.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BnyLamox.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-CN-0sb24.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-CN-0sb24.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-Sz0_vhb0.js +49 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-Sz0_vhb0.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DCfV5nCH.js +98 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DCfV5nCH.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-B9Sdpe-7.js +49 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-B9Sdpe-7.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-Cgfxi2lB.js +46 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-Cgfxi2lB.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-C_zwGSdo.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-C_zwGSdo.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-Cd7rQ4Q7.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-Cd7rQ4Q7.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BR2510PH.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BR2510PH.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-BdcYnbcY.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-BdcYnbcY.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/openapi.json/_server.ts.js-DH0CdZY8.js +47 -0
- package/build/server/chunks/entries/endpoints/api/v1/openapi.json/_server.ts.js-DH0CdZY8.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DeCZziei.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DeCZziei.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-oWAg0fy-.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-oWAg0fy-.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Duodb8QL.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Duodb8QL.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-ClWY9kWz.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-ClWY9kWz.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CguyeI98.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CguyeI98.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ButFDfvX.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ButFDfvX.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-DD_oLdKC.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-DD_oLdKC.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-Be8N4Rrz.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-Be8N4Rrz.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-6VGFG9Qr.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-6VGFG9Qr.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-aDQk0mqo.js +44 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-aDQk0mqo.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CfncAGdx.js +47 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CfncAGdx.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-C5X6rlKk.js +46 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-C5X6rlKk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-BlhyaDs3.js +46 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-BlhyaDs3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-C9iqn1WI.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-C9iqn1WI.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-mgY33WC6.js +45 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-mgY33WC6.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-CqjDcKKF.js +49 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-CqjDcKKF.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-D1VQjNvF.js +110 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-D1VQjNvF.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-BjZ-MKWn.js +66 -0
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-BjZ-MKWn.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D0vZ4IxS.js +53 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D0vZ4IxS.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DKSWeOAC.js +59 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DKSWeOAC.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-4Gh4oogs.js +66 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-4Gh4oogs.js.map +1 -0
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-BwAFRbLO.js +11 -0
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-BwAFRbLO.js.map +1 -0
- package/build/server/chunks/entries/endpoints/mcp/_server.ts.js-DNv8fBW0.js +26 -0
- package/build/server/chunks/entries/endpoints/mcp/_server.ts.js-DNv8fBW0.js.map +1 -0
- package/build/server/chunks/entries/endpoints/oauth/register/_server.ts.js-CPz6kb34.js +28 -0
- package/build/server/chunks/entries/endpoints/oauth/register/_server.ts.js-CPz6kb34.js.map +1 -0
- package/build/server/chunks/entries/endpoints/oauth/token/_server.ts.js-D8wfP6wq.js +31 -0
- package/build/server/chunks/entries/endpoints/oauth/token/_server.ts.js-D8wfP6wq.js.map +1 -0
- package/build/server/chunks/entries/hooks.server.js-OgrRnKEt.js +373 -0
- package/build/server/chunks/entries/hooks.server.js-OgrRnKEt.js.map +1 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-CVcXrBS7.js +37 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-CVcXrBS7.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-B9PBszkg.js +36 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-B9PBszkg.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-D3tKCqi7.js +639 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-D3tKCqi7.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.server.ts.js--FtXd0nR.js +55 -0
- package/build/server/chunks/entries/pages/_page.server.ts.js--FtXd0nR.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-DMDwDeNB.js +153 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-DMDwDeNB.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CjPvhNiE.js +181 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CjPvhNiE.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-cK9f1Q16.js +135 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-cK9f1Q16.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-tWyS1HNK.js +39 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-tWyS1HNK.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DFK1U_bY.js +31 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DFK1U_bY.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-r4hTQn9o.js +120 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-r4hTQn9o.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-CTw1UFBf.js +76 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-CTw1UFBf.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-Bh_yuCWH.js +395 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-Bh_yuCWH.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-ZD0Ygleo.js +269 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-ZD0Ygleo.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-Cj1hcNpF.js +457 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-Cj1hcNpF.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-BJvlEqq4.js +74 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-BJvlEqq4.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-D0NNIdsL.js +840 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-D0NNIdsL.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BSOWIj-H.js +35 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BSOWIj-H.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-BPQGmCi7.js +97 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-BPQGmCi7.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-D_lXhBE6.js +86 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-D_lXhBE6.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DNhxy_GR.js +638 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-DNhxy_GR.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-C79-bzDB.js +42 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-C79-bzDB.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-BmDtOfxl.js +284 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-BmDtOfxl.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BdPcy6Ky.js +87 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BdPcy6Ky.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-DgPcxj87.js +1389 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-DgPcxj87.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Bw6ksO7q.js +79 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Bw6ksO7q.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-B4pzsvic.js +624 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-B4pzsvic.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-CU66qyfj.js +46 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-CU66qyfj.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-6Pj7JeV_.js +62 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-6Pj7JeV_.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-CsJZuYTE.js +15 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-CsJZuYTE.js.map +1 -0
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-BFjRkVKd.js +63 -0
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-BFjRkVKd.js.map +1 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-sUqK8Ebd.js +85 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-sUqK8Ebd.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-DLwvcewO.js +120 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-DLwvcewO.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-BLrMcWpp.js +15794 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-BLrMcWpp.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-CA0dHnyw.js +50 -0
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-CA0dHnyw.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-CfyZtJUz.js +300 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-CfyZtJUz.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-SxbSwDpY.js +101 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-SxbSwDpY.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DypFfjnf.js +214 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DypFfjnf.js.map +1 -0
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-zmkjgbVK.js +19 -0
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-zmkjgbVK.js.map +1 -0
- package/build/server/chunks/entries/pages/oauth/authorize/_page.server.ts.js-Cp-69dx9.js +95 -0
- package/build/server/chunks/entries/pages/oauth/authorize/_page.server.ts.js-Cp-69dx9.js.map +1 -0
- package/build/server/chunks/entries/pages/oauth/authorize/_page.svelte.js-H14UwPdp.js +87 -0
- package/build/server/chunks/entries/pages/oauth/authorize/_page.svelte.js-H14UwPdp.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-DBg0BqOD.js +22 -0
- package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-DBg0BqOD.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BLo3HcYg.js +47 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-BLo3HcYg.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BQoQhdIc.js +93 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BQoQhdIc.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-Bnr-GEy8.js +3644 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-Bnr-GEy8.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-dGuxBruW.js +116 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-dGuxBruW.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DmCLAP5I.js +249 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-DmCLAP5I.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DRBzxjUV.js +28 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DRBzxjUV.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-vG7a51GE.js +172 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-vG7a51GE.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-B7sopA3H.js +35 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-B7sopA3H.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.svelte.js-C7f1aafD.js +112 -0
- package/build/server/chunks/entries/pages/team/_page.svelte.js-C7f1aafD.js.map +1 -0
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-CIfgoavi.js +124 -0
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-CIfgoavi.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-BDCATSFX.js +42 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-BDCATSFX.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-BXC7aueZ.js +616 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-BXC7aueZ.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DyPAvVPT.js +62 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DyPAvVPT.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DL7zxlPt.js +808 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DL7zxlPt.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DeS3AhN2.js +58 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DeS3AhN2.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-9D2wxOTi.js +423 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-9D2wxOTi.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-t4FNIbmE.js +67 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-t4FNIbmE.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DxwUj2Lu.js +266 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-DxwUj2Lu.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DpER1TQf.js +34 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DpER1TQf.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-BZBSqlas.js +306 -0
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-BZBSqlas.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BOsZoibQ.js +29 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BOsZoibQ.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-CcIMfY6D.js +312 -0
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-CcIMfY6D.js.map +1 -0
- package/build/server/chunks/entries/pages/team/tokens/_page.server.ts.js-CF7e04Z5.js +62 -0
- package/build/server/chunks/entries/pages/team/tokens/_page.server.ts.js-CF7e04Z5.js.map +1 -0
- package/build/server/chunks/entries/pages/team/tokens/_page.svelte.js-CS8XmSfL.js +759 -0
- package/build/server/chunks/entries/pages/team/tokens/_page.svelte.js-CS8XmSfL.js.map +1 -0
- package/build/server/chunks/handler-D1WA_4lb.js +1206 -0
- package/build/server/chunks/handler-D1WA_4lb.js.map +1 -0
- package/build/server/chunks/index.js-BSJg-qdB.js +3767 -0
- package/build/server/chunks/index.js-BSJg-qdB.js.map +1 -0
- package/build/server/chunks/manifest.js-VbXNR0no.js +712 -0
- package/build/server/chunks/manifest.js-VbXNR0no.js.map +1 -0
- package/build/server/chunks/nodes/0.js-DZKDS111.js +31 -0
- package/build/server/chunks/nodes/0.js-DZKDS111.js.map +1 -0
- package/build/server/chunks/nodes/1.js-BCuywL0j.js +9 -0
- package/build/server/chunks/nodes/1.js-BCuywL0j.js.map +1 -0
- package/build/server/chunks/nodes/10.js-CyKYNMPl.js +34 -0
- package/build/server/chunks/nodes/10.js-CyKYNMPl.js.map +1 -0
- package/build/server/chunks/nodes/11.js-DLKsbEYc.js +38 -0
- package/build/server/chunks/nodes/11.js-DLKsbEYc.js.map +1 -0
- package/build/server/chunks/nodes/12.js-CJmpmISN.js +31 -0
- package/build/server/chunks/nodes/12.js-CJmpmISN.js.map +1 -0
- package/build/server/chunks/nodes/13.js-nTLUzXVM.js +31 -0
- package/build/server/chunks/nodes/13.js-nTLUzXVM.js.map +1 -0
- package/build/server/chunks/nodes/14.js-C3A5jGiS.js +31 -0
- package/build/server/chunks/nodes/14.js-C3A5jGiS.js.map +1 -0
- package/build/server/chunks/nodes/15.js-BS9Cn_oF.js +39 -0
- package/build/server/chunks/nodes/15.js-BS9Cn_oF.js.map +1 -0
- package/build/server/chunks/nodes/16.js-CVNRyl2q.js +34 -0
- package/build/server/chunks/nodes/16.js-CVNRyl2q.js.map +1 -0
- package/build/server/chunks/nodes/17.js-BAHe3Llk.js +9 -0
- package/build/server/chunks/nodes/17.js-BAHe3Llk.js.map +1 -0
- package/build/server/chunks/nodes/18.js-Bv68luHO.js +38 -0
- package/build/server/chunks/nodes/18.js-Bv68luHO.js.map +1 -0
- package/build/server/chunks/nodes/19.js-B1hlWvz1.js +25 -0
- package/build/server/chunks/nodes/19.js-B1hlWvz1.js.map +1 -0
- package/build/server/chunks/nodes/2.js-DtAyZuWe.js +34 -0
- package/build/server/chunks/nodes/2.js-DtAyZuWe.js.map +1 -0
- package/build/server/chunks/nodes/20.js-CmvAs8pe.js +23 -0
- package/build/server/chunks/nodes/20.js-CmvAs8pe.js.map +1 -0
- package/build/server/chunks/nodes/21.js-B9PI-x-2.js +41 -0
- package/build/server/chunks/nodes/21.js-B9PI-x-2.js.map +1 -0
- package/build/server/chunks/nodes/22.js-Wm2zwToT.js +38 -0
- package/build/server/chunks/nodes/22.js-Wm2zwToT.js.map +1 -0
- package/build/server/chunks/nodes/23.js-Dt8pndzF.js +35 -0
- package/build/server/chunks/nodes/23.js-Dt8pndzF.js.map +1 -0
- package/build/server/chunks/nodes/24.js-CQ__p0rY.js +34 -0
- package/build/server/chunks/nodes/24.js-CQ__p0rY.js.map +1 -0
- package/build/server/chunks/nodes/25.js-DrKl3JDN.js +33 -0
- package/build/server/chunks/nodes/25.js-DrKl3JDN.js.map +1 -0
- package/build/server/chunks/nodes/26.js-CcWTeSP2.js +38 -0
- package/build/server/chunks/nodes/26.js-CcWTeSP2.js.map +1 -0
- package/build/server/chunks/nodes/27.js-BhxClPxk.js +31 -0
- package/build/server/chunks/nodes/27.js-BhxClPxk.js.map +1 -0
- package/build/server/chunks/nodes/28.js-4W5ahnfU.js +9 -0
- package/build/server/chunks/nodes/28.js-4W5ahnfU.js.map +1 -0
- package/build/server/chunks/nodes/29.js-ChDRvbui.js +31 -0
- package/build/server/chunks/nodes/29.js-ChDRvbui.js.map +1 -0
- package/build/server/chunks/nodes/3.js-BN_4v5GR.js +9 -0
- package/build/server/chunks/nodes/3.js-BN_4v5GR.js.map +1 -0
- package/build/server/chunks/nodes/30.js-Ba_wKPjE.js +31 -0
- package/build/server/chunks/nodes/30.js-Ba_wKPjE.js.map +1 -0
- package/build/server/chunks/nodes/31.js-47SMEqoF.js +33 -0
- package/build/server/chunks/nodes/31.js-47SMEqoF.js.map +1 -0
- package/build/server/chunks/nodes/32.js-J3nj-kq3.js +31 -0
- package/build/server/chunks/nodes/32.js-J3nj-kq3.js.map +1 -0
- package/build/server/chunks/nodes/33.js-CUxO5dcb.js +31 -0
- package/build/server/chunks/nodes/33.js-CUxO5dcb.js.map +1 -0
- package/build/server/chunks/nodes/34.js-CBxQKmOG.js +31 -0
- package/build/server/chunks/nodes/34.js-CBxQKmOG.js.map +1 -0
- package/build/server/chunks/nodes/35.js-By9r_vPT.js +43 -0
- package/build/server/chunks/nodes/35.js-By9r_vPT.js.map +1 -0
- package/build/server/chunks/nodes/4.js-9acN_Qx7.js +9 -0
- package/build/server/chunks/nodes/4.js-9acN_Qx7.js.map +1 -0
- package/build/server/chunks/nodes/5.js-xrJkz_SV.js +15 -0
- package/build/server/chunks/nodes/5.js-xrJkz_SV.js.map +1 -0
- package/build/server/chunks/nodes/6.js-dG83BARa.js +31 -0
- package/build/server/chunks/nodes/6.js-dG83BARa.js.map +1 -0
- package/build/server/chunks/nodes/7.js-CpWsUEhq.js +23 -0
- package/build/server/chunks/nodes/7.js-CpWsUEhq.js.map +1 -0
- package/build/server/chunks/nodes/8.js-DLwzXU1a.js +39 -0
- package/build/server/chunks/nodes/8.js-DLwzXU1a.js.map +1 -0
- package/build/server/chunks/nodes/9.js-gk1iyg50.js +31 -0
- package/build/server/chunks/nodes/9.js-gk1iyg50.js.map +1 -0
- package/package.json +12 -11
- package/templates/.env.example +10 -3
- package/build/client/_app/immutable/assets/0.BiYkMrhO.css +0 -2
- package/build/client/_app/immutable/assets/0.BiYkMrhO.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BiYkMrhO.css.gz +0 -0
- package/build/client/_app/immutable/assets/22.Bk7676kF.css +0 -1
- package/build/client/_app/immutable/assets/22.Bk7676kF.css.br +0 -0
- package/build/client/_app/immutable/assets/22.Bk7676kF.css.gz +0 -0
- package/build/client/_app/immutable/chunks/4sjzLHyR.js +0 -1
- package/build/client/_app/immutable/chunks/4sjzLHyR.js.br +0 -0
- package/build/client/_app/immutable/chunks/4sjzLHyR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/53eKZav_.js +0 -1
- package/build/client/_app/immutable/chunks/53eKZav_.js.br +0 -0
- package/build/client/_app/immutable/chunks/53eKZav_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B-WDR2g5.js +0 -1
- package/build/client/_app/immutable/chunks/B-WDR2g5.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-WDR2g5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5FLgZIe.js +0 -1
- package/build/client/_app/immutable/chunks/B5FLgZIe.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5FLgZIe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8xjdQIo.js +0 -1
- package/build/client/_app/immutable/chunks/B8xjdQIo.js.br +0 -2
- package/build/client/_app/immutable/chunks/B8xjdQIo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHiuYxPq.js +0 -1
- package/build/client/_app/immutable/chunks/BHiuYxPq.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHiuYxPq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNnPIW0Y.js +0 -1
- package/build/client/_app/immutable/chunks/BNnPIW0Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNnPIW0Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPHoiG8C.js +0 -1
- package/build/client/_app/immutable/chunks/BPHoiG8C.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPHoiG8C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ_7ux-H.js +0 -1
- package/build/client/_app/immutable/chunks/BQ_7ux-H.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQ_7ux-H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_CQ0eM3.js +0 -1
- package/build/client/_app/immutable/chunks/B_CQ0eM3.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_CQ0eM3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbrKjKQJ.js +0 -1
- package/build/client/_app/immutable/chunks/BbrKjKQJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbrKjKQJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BbraiAy6.js +0 -1
- package/build/client/_app/immutable/chunks/BbraiAy6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BbraiAy6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfPs8fDX.js +0 -1
- package/build/client/_app/immutable/chunks/BfPs8fDX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfPs8fDX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfdlJDJX.js +0 -1
- package/build/client/_app/immutable/chunks/BfdlJDJX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfdlJDJX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bk7k8KKB.js +0 -1
- package/build/client/_app/immutable/chunks/Bk7k8KKB.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bk7k8KKB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwVfgv4q.js +0 -1
- package/build/client/_app/immutable/chunks/BwVfgv4q.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwVfgv4q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxCooxoU.js +0 -1
- package/build/client/_app/immutable/chunks/BxCooxoU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxCooxoU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1X8ukXb.js +0 -1
- package/build/client/_app/immutable/chunks/C1X8ukXb.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1X8ukXb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4F5ZmC3.js +0 -1
- package/build/client/_app/immutable/chunks/C4F5ZmC3.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4F5ZmC3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5qFYQ35.js +0 -1
- package/build/client/_app/immutable/chunks/C5qFYQ35.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5qFYQ35.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8xy8qkI.js +0 -1
- package/build/client/_app/immutable/chunks/C8xy8qkI.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8xy8qkI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CBn2H4-n.js +0 -1
- package/build/client/_app/immutable/chunks/CBn2H4-n.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBn2H4-n.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDPWmZ9v.js +0 -1
- package/build/client/_app/immutable/chunks/CDPWmZ9v.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDPWmZ9v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CExFGJb3.js +0 -1
- package/build/client/_app/immutable/chunks/CExFGJb3.js.br +0 -0
- package/build/client/_app/immutable/chunks/CExFGJb3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGenT5e3.js +0 -1
- package/build/client/_app/immutable/chunks/CGenT5e3.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGenT5e3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGlbqI-M.js +0 -1
- package/build/client/_app/immutable/chunks/CGlbqI-M.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGlbqI-M.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJkZJGlz.js +0 -1
- package/build/client/_app/immutable/chunks/CJkZJGlz.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJkZJGlz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZDta1Kg.js +0 -1
- package/build/client/_app/immutable/chunks/CZDta1Kg.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZDta1Kg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdX_W7zl.js +0 -1
- package/build/client/_app/immutable/chunks/CdX_W7zl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdX_W7zl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CfZU2nXD.js +0 -1
- package/build/client/_app/immutable/chunks/CfZU2nXD.js.br +0 -0
- package/build/client/_app/immutable/chunks/CfZU2nXD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CiFt0J-0.js +0 -1
- package/build/client/_app/immutable/chunks/CiFt0J-0.js.br +0 -0
- package/build/client/_app/immutable/chunks/CiFt0J-0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cmpqvysg.js +0 -1
- package/build/client/_app/immutable/chunks/Cmpqvysg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cmpqvysg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnYXXAFB.js +0 -1
- package/build/client/_app/immutable/chunks/CnYXXAFB.js.br +0 -0
- package/build/client/_app/immutable/chunks/CnYXXAFB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cnr5Tcl_.js +0 -1
- package/build/client/_app/immutable/chunks/Cnr5Tcl_.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cnr5Tcl_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoNyGxfk.js +0 -1
- package/build/client/_app/immutable/chunks/CoNyGxfk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoNyGxfk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoQ6boN7.js +0 -1
- package/build/client/_app/immutable/chunks/CoQ6boN7.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoQ6boN7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cq1l30_l.js +0 -1
- package/build/client/_app/immutable/chunks/Cq1l30_l.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cq1l30_l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CrtuOwwv.js +0 -1
- package/build/client/_app/immutable/chunks/CrtuOwwv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrtuOwwv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwtrXAgw.js +0 -1
- package/build/client/_app/immutable/chunks/CwtrXAgw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CwtrXAgw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxyxAKzH.js +0 -1
- package/build/client/_app/immutable/chunks/CxyxAKzH.js.br +0 -3
- package/build/client/_app/immutable/chunks/CxyxAKzH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyphFgxY.js +0 -1
- package/build/client/_app/immutable/chunks/CyphFgxY.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyphFgxY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1c9mn2y.js +0 -1
- package/build/client/_app/immutable/chunks/D1c9mn2y.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1c9mn2y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1cavb8_.js +0 -1
- package/build/client/_app/immutable/chunks/D1cavb8_.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1cavb8_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4Um8kRB.js +0 -1
- package/build/client/_app/immutable/chunks/D4Um8kRB.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4Um8kRB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8PpfMAc.js +0 -1
- package/build/client/_app/immutable/chunks/D8PpfMAc.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8PpfMAc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDZMjfCT.js +0 -55
- package/build/client/_app/immutable/chunks/DDZMjfCT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDZMjfCT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DEoKE_rQ.js +0 -1
- package/build/client/_app/immutable/chunks/DEoKE_rQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DEoKE_rQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DEu3EvBF.js +0 -2
- package/build/client/_app/immutable/chunks/DEu3EvBF.js.br +0 -0
- package/build/client/_app/immutable/chunks/DEu3EvBF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DII5wm3W.js +0 -1
- package/build/client/_app/immutable/chunks/DII5wm3W.js.br +0 -0
- package/build/client/_app/immutable/chunks/DII5wm3W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIzKzxzX.js +0 -1
- package/build/client/_app/immutable/chunks/DIzKzxzX.js.br +0 -1
- package/build/client/_app/immutable/chunks/DIzKzxzX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DLgl5sev.js +0 -1
- package/build/client/_app/immutable/chunks/DLgl5sev.js.br +0 -0
- package/build/client/_app/immutable/chunks/DLgl5sev.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPvhG5Io.js +0 -1
- package/build/client/_app/immutable/chunks/DPvhG5Io.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPvhG5Io.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWod1sbw.js +0 -1
- package/build/client/_app/immutable/chunks/DWod1sbw.js.br +0 -0
- package/build/client/_app/immutable/chunks/DWod1sbw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DXS-ZYfE.js +0 -5
- package/build/client/_app/immutable/chunks/DXS-ZYfE.js.br +0 -0
- package/build/client/_app/immutable/chunks/DXS-ZYfE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DZYn2E7P.js +0 -1
- package/build/client/_app/immutable/chunks/DZYn2E7P.js.br +0 -0
- package/build/client/_app/immutable/chunks/DZYn2E7P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaImTJ43.js +0 -1
- package/build/client/_app/immutable/chunks/DaImTJ43.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaImTJ43.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ddki_-ia.js +0 -1
- package/build/client/_app/immutable/chunks/Ddki_-ia.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ddki_-ia.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DeWr77fw.js +0 -1
- package/build/client/_app/immutable/chunks/DeWr77fw.js.br +0 -0
- package/build/client/_app/immutable/chunks/DeWr77fw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnxyHFzC.js +0 -1
- package/build/client/_app/immutable/chunks/DnxyHFzC.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnxyHFzC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpmeVJIT.js +0 -1
- package/build/client/_app/immutable/chunks/DpmeVJIT.js.br +0 -2
- package/build/client/_app/immutable/chunks/DpmeVJIT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsF3c4Z6.js +0 -1
- package/build/client/_app/immutable/chunks/DsF3c4Z6.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsF3c4Z6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtzUfqCm.js +0 -1
- package/build/client/_app/immutable/chunks/DtzUfqCm.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtzUfqCm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvHP_8Af.js +0 -1
- package/build/client/_app/immutable/chunks/DvHP_8Af.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvHP_8Af.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvIEUf7d.js +0 -1
- package/build/client/_app/immutable/chunks/DvIEUf7d.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvIEUf7d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DynoIYFT.js +0 -1
- package/build/client/_app/immutable/chunks/DynoIYFT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DynoIYFT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FLC40_TL.js +0 -1
- package/build/client/_app/immutable/chunks/FLC40_TL.js.br +0 -0
- package/build/client/_app/immutable/chunks/FLC40_TL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/JjeDUALY.js +0 -1
- package/build/client/_app/immutable/chunks/JjeDUALY.js.br +0 -0
- package/build/client/_app/immutable/chunks/JjeDUALY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/MsLVAp93.js +0 -3
- package/build/client/_app/immutable/chunks/MsLVAp93.js.br +0 -0
- package/build/client/_app/immutable/chunks/MsLVAp93.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NNY1ZIJl.js +0 -1
- package/build/client/_app/immutable/chunks/NNY1ZIJl.js.br +0 -0
- package/build/client/_app/immutable/chunks/NNY1ZIJl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/PMaqgn95.js +0 -1
- package/build/client/_app/immutable/chunks/PMaqgn95.js.br +0 -0
- package/build/client/_app/immutable/chunks/PMaqgn95.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Wzq5e0lV.js +0 -9
- package/build/client/_app/immutable/chunks/Wzq5e0lV.js.br +0 -0
- package/build/client/_app/immutable/chunks/Wzq5e0lV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/YTleKLN7.js +0 -1
- package/build/client/_app/immutable/chunks/YTleKLN7.js.br +0 -0
- package/build/client/_app/immutable/chunks/YTleKLN7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aUjf_CoV.js +0 -2
- package/build/client/_app/immutable/chunks/aUjf_CoV.js.br +0 -0
- package/build/client/_app/immutable/chunks/aUjf_CoV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/biIvgKWB.js +0 -1
- package/build/client/_app/immutable/chunks/biIvgKWB.js.br +0 -0
- package/build/client/_app/immutable/chunks/biIvgKWB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/dSp_IvTZ.js +0 -1
- package/build/client/_app/immutable/chunks/dSp_IvTZ.js.br +0 -2
- package/build/client/_app/immutable/chunks/dSp_IvTZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/d_IyxphS.js +0 -1
- package/build/client/_app/immutable/chunks/d_IyxphS.js.br +0 -2
- package/build/client/_app/immutable/chunks/d_IyxphS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/fsb31rCP.js +0 -1
- package/build/client/_app/immutable/chunks/fsb31rCP.js.br +0 -0
- package/build/client/_app/immutable/chunks/fsb31rCP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/nvUmylhf.js +0 -1
- package/build/client/_app/immutable/chunks/nvUmylhf.js.br +0 -0
- package/build/client/_app/immutable/chunks/nvUmylhf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/qITGnqs6.js +0 -1
- package/build/client/_app/immutable/chunks/qITGnqs6.js.br +0 -0
- package/build/client/_app/immutable/chunks/qITGnqs6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vbJ1MU4Y.js +0 -1
- package/build/client/_app/immutable/chunks/vbJ1MU4Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/vbJ1MU4Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/we0_-3Mo.js +0 -1
- package/build/client/_app/immutable/chunks/we0_-3Mo.js.br +0 -2
- package/build/client/_app/immutable/chunks/we0_-3Mo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/y8ddAe7p.js +0 -1
- package/build/client/_app/immutable/chunks/y8ddAe7p.js.br +0 -2
- package/build/client/_app/immutable/chunks/y8ddAe7p.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BsZeqsS7.js +0 -2
- package/build/client/_app/immutable/entry/app.BsZeqsS7.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BsZeqsS7.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CcPW2YsW.js +0 -1
- package/build/client/_app/immutable/entry/start.CcPW2YsW.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CcPW2YsW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DwrvqV45.js +0 -1
- package/build/client/_app/immutable/nodes/0.DwrvqV45.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DwrvqV45.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.D6zY6OFs.js +0 -1
- package/build/client/_app/immutable/nodes/1.D6zY6OFs.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.D6zY6OFs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.CV9CoQdh.js +0 -3
- package/build/client/_app/immutable/nodes/10.CV9CoQdh.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.CV9CoQdh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BiAmHrqV.js +0 -3
- package/build/client/_app/immutable/nodes/11.BiAmHrqV.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BiAmHrqV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.ZB6lvVgz.js +0 -1
- package/build/client/_app/immutable/nodes/12.ZB6lvVgz.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.ZB6lvVgz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.Db1e0El0.js +0 -2
- package/build/client/_app/immutable/nodes/13.Db1e0El0.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.Db1e0El0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.CNECq0L7.js +0 -2
- package/build/client/_app/immutable/nodes/14.CNECq0L7.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.CNECq0L7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.DuUk-zC1.js +0 -28
- package/build/client/_app/immutable/nodes/15.DuUk-zC1.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.DuUk-zC1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.CVmV0BDN.js +0 -2
- package/build/client/_app/immutable/nodes/16.CVmV0BDN.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.CVmV0BDN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.CLZckapb.js +0 -5
- package/build/client/_app/immutable/nodes/17.CLZckapb.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CLZckapb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.BvI5btyW.js +0 -2
- package/build/client/_app/immutable/nodes/18.BvI5btyW.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.BvI5btyW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.CxvBVu6V.js +0 -1
- package/build/client/_app/immutable/nodes/19.CxvBVu6V.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.CxvBVu6V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C4vYr4NI.js +0 -1
- package/build/client/_app/immutable/nodes/2.C4vYr4NI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C4vYr4NI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.cJrkADxz.js +0 -7
- package/build/client/_app/immutable/nodes/20.cJrkADxz.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.cJrkADxz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.OTvJFOZ9.js +0 -2
- package/build/client/_app/immutable/nodes/21.OTvJFOZ9.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.OTvJFOZ9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.290V-bl8.js +0 -5663
- package/build/client/_app/immutable/nodes/22.290V-bl8.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.290V-bl8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.Cq-wyHlO.js +0 -6
- package/build/client/_app/immutable/nodes/23.Cq-wyHlO.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.Cq-wyHlO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.aa7ctW0l.js +0 -16
- package/build/client/_app/immutable/nodes/25.aa7ctW0l.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.aa7ctW0l.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.mOyH5OuZ.js +0 -6
- package/build/client/_app/immutable/nodes/26.mOyH5OuZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/26.mOyH5OuZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.CRWepebT.js +0 -1
- package/build/client/_app/immutable/nodes/27.CRWepebT.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.CRWepebT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.BcqqYGfy.js +0 -3
- package/build/client/_app/immutable/nodes/28.BcqqYGfy.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BcqqYGfy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.BWf_ETvS.js +0 -4
- package/build/client/_app/immutable/nodes/29.BWf_ETvS.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BWf_ETvS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.C1-jfQ00.js +0 -1
- package/build/client/_app/immutable/nodes/3.C1-jfQ00.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C1-jfQ00.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.2qwaIC8W.js +0 -6
- package/build/client/_app/immutable/nodes/30.2qwaIC8W.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.2qwaIC8W.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.CnfBxI4a.js +0 -2
- package/build/client/_app/immutable/nodes/31.CnfBxI4a.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.CnfBxI4a.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.CUkzRkjE.js +0 -2
- package/build/client/_app/immutable/nodes/32.CUkzRkjE.js.br +0 -0
- package/build/client/_app/immutable/nodes/32.CUkzRkjE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/33.CeNhs3-D.js +0 -2
- package/build/client/_app/immutable/nodes/33.CeNhs3-D.js.br +0 -0
- package/build/client/_app/immutable/nodes/33.CeNhs3-D.js.gz +0 -0
- package/build/client/_app/immutable/nodes/34.BHyEeALk.js +0 -1
- package/build/client/_app/immutable/nodes/34.BHyEeALk.js.br +0 -0
- package/build/client/_app/immutable/nodes/34.BHyEeALk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CkaKFOHO.js +0 -1
- package/build/client/_app/immutable/nodes/4.CkaKFOHO.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CkaKFOHO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.Cpohqg3u.js +0 -1
- package/build/client/_app/immutable/nodes/5.Cpohqg3u.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Cpohqg3u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.D-uRy6ev.js +0 -1
- package/build/client/_app/immutable/nodes/6.D-uRy6ev.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D-uRy6ev.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BesciFaD.js +0 -1
- package/build/client/_app/immutable/nodes/7.BesciFaD.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BesciFaD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BwVy15py.js +0 -3
- package/build/client/_app/immutable/nodes/8.BwVy15py.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BwVy15py.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Cwc__YRO.js +0 -1
- package/build/client/_app/immutable/nodes/9.Cwc__YRO.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Cwc__YRO.js.gz +0 -0
- package/build/server/chunks/chunks/AppHeader.js-DkaVktdE.js +0 -72
- package/build/server/chunks/chunks/AppHeader.js-DkaVktdE.js.map +0 -1
- package/build/server/chunks/chunks/Callout.js-B3KU0Z4J.js +0 -57
- package/build/server/chunks/chunks/Callout.js-B3KU0Z4J.js.map +0 -1
- package/build/server/chunks/chunks/ConfirmDialog.js-CsUeqORi.js +0 -151
- package/build/server/chunks/chunks/ConfirmDialog.js-CsUeqORi.js.map +0 -1
- package/build/server/chunks/chunks/DataTable.js-B0l7qDez.js +0 -27
- package/build/server/chunks/chunks/DataTable.js-B0l7qDez.js.map +0 -1
- package/build/server/chunks/chunks/DefinitionCard.js-1Aey62Y8.js +0 -143
- package/build/server/chunks/chunks/DefinitionCard.js-1Aey62Y8.js.map +0 -1
- package/build/server/chunks/chunks/EmptyState.js-BQvkpmts.js +0 -36
- package/build/server/chunks/chunks/EmptyState.js-BQvkpmts.js.map +0 -1
- package/build/server/chunks/chunks/ErrorScreen.js-CGOUXCRc.js +0 -112
- package/build/server/chunks/chunks/ErrorScreen.js-CGOUXCRc.js.map +0 -1
- package/build/server/chunks/chunks/FilterableDropdown.js-iBibdrEN.js +0 -2725
- package/build/server/chunks/chunks/FilterableDropdown.js-iBibdrEN.js.map +0 -1
- package/build/server/chunks/chunks/PageContent.js-DMLX6vv4.js +0 -12
- package/build/server/chunks/chunks/PageContent.js-DMLX6vv4.js.map +0 -1
- package/build/server/chunks/chunks/SectionHeader.js-5e_z_QFZ.js +0 -22
- package/build/server/chunks/chunks/SectionHeader.js-5e_z_QFZ.js.map +0 -1
- package/build/server/chunks/chunks/SettingsMenu.js-BpeS9aX7.js +0 -821
- package/build/server/chunks/chunks/SettingsMenu.js-BpeS9aX7.js.map +0 -1
- package/build/server/chunks/chunks/SideNav.js-BQIBjX8u.js +0 -63
- package/build/server/chunks/chunks/SideNav.js-BQIBjX8u.js.map +0 -1
- package/build/server/chunks/chunks/StatCard.js-DyweJVRU.js +0 -52
- package/build/server/chunks/chunks/StatCard.js-DyweJVRU.js.map +0 -1
- package/build/server/chunks/chunks/UserAvatar.js-DRB7dnsd.js +0 -14
- package/build/server/chunks/chunks/UserAvatar.js-DRB7dnsd.js.map +0 -1
- package/build/server/chunks/chunks/UserRowIdentity.js-Cpv1bX7f.js +0 -116
- package/build/server/chunks/chunks/UserRowIdentity.js-Cpv1bX7f.js.map +0 -1
- package/build/server/chunks/chunks/ViewToggle.js-C21OzfXe.js +0 -534
- package/build/server/chunks/chunks/ViewToggle.js-C21OzfXe.js.map +0 -1
- package/build/server/chunks/chunks/access.js-BIDQ4aL-.js +0 -570
- package/build/server/chunks/chunks/access.js-BIDQ4aL-.js.map +0 -1
- package/build/server/chunks/chunks/access.server.js-Dj4ENw4m.js +0 -13
- package/build/server/chunks/chunks/access.server.js-Dj4ENw4m.js.map +0 -1
- package/build/server/chunks/chunks/access2.server.js-Vdj8D5oQ.js +0 -64
- package/build/server/chunks/chunks/access2.server.js-Vdj8D5oQ.js.map +0 -1
- package/build/server/chunks/chunks/activity.js-CS4jIfyj.js +0 -15
- package/build/server/chunks/chunks/activity.js-CS4jIfyj.js.map +0 -1
- package/build/server/chunks/chunks/admin-auth.server.js-DcKEJNwn.js +0 -307
- package/build/server/chunks/chunks/admin-auth.server.js-DcKEJNwn.js.map +0 -1
- package/build/server/chunks/chunks/alert-dialog.js-BYevGVoo.js +0 -464
- package/build/server/chunks/chunks/alert-dialog.js-BYevGVoo.js.map +0 -1
- package/build/server/chunks/chunks/api-errors.js-DAYH9H49.js +0 -56
- package/build/server/chunks/chunks/api-errors.js-DAYH9H49.js.map +0 -1
- package/build/server/chunks/chunks/api-token-codec.js-BEHsbOP6.js +0 -67
- package/build/server/chunks/chunks/api-token-codec.js-BEHsbOP6.js.map +0 -1
- package/build/server/chunks/chunks/api.js-DGA_Gpu6.js +0 -1045
- package/build/server/chunks/chunks/api.js-DGA_Gpu6.js.map +0 -1
- package/build/server/chunks/chunks/arrow-left.js-D5x1YRxq.js +0 -15
- package/build/server/chunks/chunks/arrow-left.js-D5x1YRxq.js.map +0 -1
- package/build/server/chunks/chunks/arrow-right.js-Bqqil3Zv.js +0 -15
- package/build/server/chunks/chunks/arrow-right.js-Bqqil3Zv.js.map +0 -1
- package/build/server/chunks/chunks/auth-bootstrap.server.js-DQg5ZNJN.js +0 -152
- package/build/server/chunks/chunks/auth-bootstrap.server.js-DQg5ZNJN.js.map +0 -1
- package/build/server/chunks/chunks/badge.js-CuNSro6W.js +0 -35
- package/build/server/chunks/chunks/badge.js-CuNSro6W.js.map +0 -1
- package/build/server/chunks/chunks/bootHealth.server.js-DPJBdVim.js +0 -90
- package/build/server/chunks/chunks/bootHealth.server.js-DPJBdVim.js.map +0 -1
- package/build/server/chunks/chunks/building-complex.js-DZDcgrq1.js +0 -22
- package/build/server/chunks/chunks/building-complex.js-DZDcgrq1.js.map +0 -1
- package/build/server/chunks/chunks/button.js-CRtuv-eQ.js +0 -70
- package/build/server/chunks/chunks/button.js-CRtuv-eQ.js.map +0 -1
- package/build/server/chunks/chunks/card-content.js-BD81wyvq.js +0 -20
- package/build/server/chunks/chunks/card-content.js-BD81wyvq.js.map +0 -1
- package/build/server/chunks/chunks/card-description.js-DC4tg8K_.js +0 -20
- package/build/server/chunks/chunks/card-description.js-DC4tg8K_.js.map +0 -1
- package/build/server/chunks/chunks/card-header.js-OVZMze6e.js +0 -20
- package/build/server/chunks/chunks/card-header.js-OVZMze6e.js.map +0 -1
- package/build/server/chunks/chunks/card-title.js-BlOlXRF4.js +0 -20
- package/build/server/chunks/chunks/card-title.js-BlOlXRF4.js.map +0 -1
- package/build/server/chunks/chunks/card.js-Bl5RdI5W.js +0 -29
- package/build/server/chunks/chunks/card.js-Bl5RdI5W.js.map +0 -1
- package/build/server/chunks/chunks/chevron-down.js-CM9gDh6R.js +0 -15
- package/build/server/chunks/chunks/chevron-down.js-CM9gDh6R.js.map +0 -1
- package/build/server/chunks/chunks/chevron-left.js-s4JiO_z2.js +0 -15
- package/build/server/chunks/chunks/chevron-left.js-s4JiO_z2.js.map +0 -1
- package/build/server/chunks/chunks/chevron-right.js-Cfx9ZZkd.js +0 -15
- package/build/server/chunks/chunks/chevron-right.js-Cfx9ZZkd.js.map +0 -1
- package/build/server/chunks/chunks/chevron-up.js-DTLDC15s.js +0 -15
- package/build/server/chunks/chunks/chevron-up.js-DTLDC15s.js.map +0 -1
- package/build/server/chunks/chunks/circle.js-D1csIQgb.js +0 -19
- package/build/server/chunks/chunks/circle.js-D1csIQgb.js.map +0 -1
- package/build/server/chunks/chunks/client.js-BwRu_P83.js +0 -59
- package/build/server/chunks/chunks/client.js-BwRu_P83.js.map +0 -1
- package/build/server/chunks/chunks/compute.js-DtVZD_ty.js +0 -429
- package/build/server/chunks/chunks/compute.js-DtVZD_ty.js.map +0 -1
- package/build/server/chunks/chunks/computeLimits.js-CB-cq0QL.js +0 -45
- package/build/server/chunks/chunks/computeLimits.js-CB-cq0QL.js.map +0 -1
- package/build/server/chunks/chunks/computeRateLimit.server.js-clQF-Iff.js +0 -31
- package/build/server/chunks/chunks/computeRateLimit.server.js-clQF-Iff.js.map +0 -1
- package/build/server/chunks/chunks/copy.js-DafZMECL.js +0 -22
- package/build/server/chunks/chunks/copy.js-DafZMECL.js.map +0 -1
- package/build/server/chunks/chunks/create-id.js-CVwIPAvl.js +0 -809
- package/build/server/chunks/chunks/create-id.js-CVwIPAvl.js.map +0 -1
- package/build/server/chunks/chunks/definitions.js-sU8j2oCu.js +0 -492
- package/build/server/chunks/chunks/definitions.js-sU8j2oCu.js.map +0 -1
- package/build/server/chunks/chunks/dialog-description.js-Cyy3ORaZ.js +0 -492
- package/build/server/chunks/chunks/dialog-description.js-Cyy3ORaZ.js.map +0 -1
- package/build/server/chunks/chunks/dialog.js-DurFXanp.js +0 -366
- package/build/server/chunks/chunks/dialog.js-DurFXanp.js.map +0 -1
- package/build/server/chunks/chunks/engine.server.js-O_nHODMt.js +0 -600
- package/build/server/chunks/chunks/engine.server.js-O_nHODMt.js.map +0 -1
- package/build/server/chunks/chunks/events.js-Bht3PYMJ.js +0 -136
- package/build/server/chunks/chunks/events.js-Bht3PYMJ.js.map +0 -1
- package/build/server/chunks/chunks/external-link.js-D2hDIabf.js +0 -19
- package/build/server/chunks/chunks/external-link.js-D2hDIabf.js.map +0 -1
- package/build/server/chunks/chunks/folder-kanban.js-BmviZv5n.js +0 -20
- package/build/server/chunks/chunks/folder-kanban.js-BmviZv5n.js.map +0 -1
- package/build/server/chunks/chunks/folder-open.js-BSh3dCAD.js +0 -15
- package/build/server/chunks/chunks/folder-open.js-BSh3dCAD.js.map +0 -1
- package/build/server/chunks/chunks/folders.js-Cg3BW4qT.js +0 -15
- package/build/server/chunks/chunks/folders.js-Cg3BW4qT.js.map +0 -1
- package/build/server/chunks/chunks/footerContext.svelte.js-B1a16Jyc.js +0 -703
- package/build/server/chunks/chunks/footerContext.svelte.js-B1a16Jyc.js.map +0 -1
- package/build/server/chunks/chunks/forms.js-kDyEYCOz.js +0 -2
- package/build/server/chunks/chunks/forms.js-kDyEYCOz.js.map +0 -1
- package/build/server/chunks/chunks/gauge.js-C6v5yl9_.js +0 -15
- package/build/server/chunks/chunks/gauge.js-C6v5yl9_.js.map +0 -1
- package/build/server/chunks/chunks/handlers.js-CdVGaQgp.js +0 -1474
- package/build/server/chunks/chunks/handlers.js-CdVGaQgp.js.map +0 -1
- package/build/server/chunks/chunks/http.js-Bg9NQgYu.js +0 -60
- package/build/server/chunks/chunks/http.js-Bg9NQgYu.js.map +0 -1
- package/build/server/chunks/chunks/index-server.js-CMohmRjd.js +0 -146
- package/build/server/chunks/chunks/index-server.js-CMohmRjd.js.map +0 -1
- package/build/server/chunks/chunks/input-group.js-CNirv-2z.js +0 -66
- package/build/server/chunks/chunks/input-group.js-CNirv-2z.js.map +0 -1
- package/build/server/chunks/chunks/input.js-BzxF-3I2.js +0 -31
- package/build/server/chunks/chunks/input.js-BzxF-3I2.js.map +0 -1
- package/build/server/chunks/chunks/instanceAdmins.server.js-D5yDdUVK.js +0 -24
- package/build/server/chunks/chunks/instanceAdmins.server.js-D5yDdUVK.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-CnbcJNuO.js +0 -224
- package/build/server/chunks/chunks/internal2.js-CnbcJNuO.js.map +0 -1
- package/build/server/chunks/chunks/key-round.js-CMjKSasf.js +0 -20
- package/build/server/chunks/chunks/key-round.js-CMjKSasf.js.map +0 -1
- package/build/server/chunks/chunks/label.js-CWRdvIbu.js +0 -107
- package/build/server/chunks/chunks/label.js-CWRdvIbu.js.map +0 -1
- package/build/server/chunks/chunks/legacy-client.js-Neicmjgj.js +0 -765
- package/build/server/chunks/chunks/legacy-client.js-Neicmjgj.js.map +0 -1
- package/build/server/chunks/chunks/link-2.js-udpclMx7.js +0 -24
- package/build/server/chunks/chunks/link-2.js-udpclMx7.js.map +0 -1
- package/build/server/chunks/chunks/liveSolve.server.js-zNfYPVuT.js +0 -70
- package/build/server/chunks/chunks/liveSolve.server.js-zNfYPVuT.js.map +0 -1
- package/build/server/chunks/chunks/mail.js-DOOvo6Tl.js +0 -21
- package/build/server/chunks/chunks/mail.js-DOOvo6Tl.js.map +0 -1
- package/build/server/chunks/chunks/minus.js-DyDd_vtY.js +0 -15
- package/build/server/chunks/chunks/minus.js-DyDd_vtY.js.map +0 -1
- package/build/server/chunks/chunks/navigation.js-kDyEYCOz.js +0 -2
- package/build/server/chunks/chunks/navigation.js-kDyEYCOz.js.map +0 -1
- package/build/server/chunks/chunks/openapi.js-DLGp7B-k.js +0 -61
- package/build/server/chunks/chunks/openapi.js-DLGp7B-k.js.map +0 -1
- package/build/server/chunks/chunks/package.js-Bs5KsJo5.js +0 -84
- package/build/server/chunks/chunks/package.js-Bs5KsJo5.js.map +0 -1
- package/build/server/chunks/chunks/paths.js-4eZQ9mTK.js +0 -19
- package/build/server/chunks/chunks/paths.js-4eZQ9mTK.js.map +0 -1
- package/build/server/chunks/chunks/permissions.server.js-BO2cpVWm.js +0 -24
- package/build/server/chunks/chunks/permissions.server.js-BO2cpVWm.js.map +0 -1
- package/build/server/chunks/chunks/plus.js-ziqIW7eV.js +0 -15
- package/build/server/chunks/chunks/plus.js-ziqIW7eV.js.map +0 -1
- package/build/server/chunks/chunks/popper-layer-force-mount.js-i0LF1ZoB.js +0 -1937
- package/build/server/chunks/chunks/popper-layer-force-mount.js-i0LF1ZoB.js.map +0 -1
- package/build/server/chunks/chunks/projects.js-CsA1nWwa.js +0 -47
- package/build/server/chunks/chunks/projects.js-CsA1nWwa.js.map +0 -1
- package/build/server/chunks/chunks/providers.server.js-CpbKkjkR.js +0 -6337
- package/build/server/chunks/chunks/providers.server.js-CpbKkjkR.js.map +0 -1
- package/build/server/chunks/chunks/refresh-cw.js-CBb3me5j.js +0 -20
- package/build/server/chunks/chunks/refresh-cw.js-CBb3me5j.js.map +0 -1
- package/build/server/chunks/chunks/registry.js-DQr0gDWN.js +0 -636
- package/build/server/chunks/chunks/registry.js-DQr0gDWN.js.map +0 -1
- package/build/server/chunks/chunks/request.js-BBBMO7VG.js +0 -119
- package/build/server/chunks/chunks/request.js-BBBMO7VG.js.map +0 -1
- package/build/server/chunks/chunks/resolve.server.js-CVTjBIM7.js +0 -59
- package/build/server/chunks/chunks/resolve.server.js-CVTjBIM7.js.map +0 -1
- package/build/server/chunks/chunks/rolldown-runtime.js-gLLCT7Mu.js +0 -43
- package/build/server/chunks/chunks/rolldown-runtime.js-gLLCT7Mu.js.map +0 -1
- package/build/server/chunks/chunks/rotate-ccw.js-BPGRTlNw.js +0 -15
- package/build/server/chunks/chunks/rotate-ccw.js-BPGRTlNw.js.map +0 -1
- package/build/server/chunks/chunks/roving-focus-group.js-D_qEEAlj.js +0 -134
- package/build/server/chunks/chunks/roving-focus-group.js-D_qEEAlj.js.map +0 -1
- package/build/server/chunks/chunks/schema-extraction.js-B-qWNPpJ.js +0 -358
- package/build/server/chunks/chunks/schema-extraction.js-B-qWNPpJ.js.map +0 -1
- package/build/server/chunks/chunks/schema.js-6Jx4Hhzv.js +0 -2640
- package/build/server/chunks/chunks/schema.js-6Jx4Hhzv.js.map +0 -1
- package/build/server/chunks/chunks/scroll-lock.js-CP7_g1Yv.js +0 -1902
- package/build/server/chunks/chunks/scroll-lock.js-CP7_g1Yv.js.map +0 -1
- package/build/server/chunks/chunks/scroll-text.js-BiPs7aDy.js +0 -20
- package/build/server/chunks/chunks/scroll-text.js-BiPs7aDy.js.map +0 -1
- package/build/server/chunks/chunks/search.js-DWIiretq.js +0 -19
- package/build/server/chunks/chunks/search.js-DWIiretq.js.map +0 -1
- package/build/server/chunks/chunks/select.js-BRUXj_-r.js +0 -1917
- package/build/server/chunks/chunks/select.js-BRUXj_-r.js.map +0 -1
- package/build/server/chunks/chunks/selfUpdate.server.js-nyAgur09.js +0 -144
- package/build/server/chunks/chunks/selfUpdate.server.js-nyAgur09.js.map +0 -1
- package/build/server/chunks/chunks/separator.js-htuY1h1d.js +0 -159
- package/build/server/chunks/chunks/separator.js-htuY1h1d.js.map +0 -1
- package/build/server/chunks/chunks/server.js-CUv4onuj.js +0 -3938
- package/build/server/chunks/chunks/server.js-CUv4onuj.js.map +0 -1
- package/build/server/chunks/chunks/server2.js-DpxZaKrV.js +0 -11828
- package/build/server/chunks/chunks/server2.js-DpxZaKrV.js.map +0 -1
- package/build/server/chunks/chunks/server3.js-DTJ089Ay.js +0 -44
- package/build/server/chunks/chunks/server3.js-DTJ089Ay.js.map +0 -1
- package/build/server/chunks/chunks/settings.js-Cwlz8_IJ.js +0 -19
- package/build/server/chunks/chunks/settings.js-Cwlz8_IJ.js.map +0 -1
- package/build/server/chunks/chunks/severity.js-FcDw7pyo.js +0 -112
- package/build/server/chunks/chunks/severity.js-FcDw7pyo.js.map +0 -1
- package/build/server/chunks/chunks/shared2.js-Cy95o45d.js +0 -88
- package/build/server/chunks/chunks/shared2.js-Cy95o45d.js.map +0 -1
- package/build/server/chunks/chunks/shield-check.js-BK_dPf81.js +0 -15
- package/build/server/chunks/chunks/shield-check.js-BK_dPf81.js.map +0 -1
- package/build/server/chunks/chunks/shield.js-5w4MMMWE.js +0 -15
- package/build/server/chunks/chunks/shield.js-5w4MMMWE.js.map +0 -1
- package/build/server/chunks/chunks/solve.server.js-Bs93td4T.js +0 -316
- package/build/server/chunks/chunks/solve.server.js-Bs93td4T.js.map +0 -1
- package/build/server/chunks/chunks/src.js-bYgw0r8C.js +0 -518
- package/build/server/chunks/chunks/src.js-bYgw0r8C.js.map +0 -1
- package/build/server/chunks/chunks/star.js-BUhkGvYT.js +0 -15
- package/build/server/chunks/chunks/star.js-BUhkGvYT.js.map +0 -1
- package/build/server/chunks/chunks/state.js-D5tsxdFw.js +0 -76
- package/build/server/chunks/chunks/state.js-D5tsxdFw.js.map +0 -1
- package/build/server/chunks/chunks/stores.js-CA_7j61D.js +0 -35
- package/build/server/chunks/chunks/stores.js-CA_7j61D.js.map +0 -1
- package/build/server/chunks/chunks/sveltekit.js-CwpBKCor.js +0 -84
- package/build/server/chunks/chunks/sveltekit.js-CwpBKCor.js.map +0 -1
- package/build/server/chunks/chunks/tabs-trigger.js-BroN2EBK.js +0 -528
- package/build/server/chunks/chunks/tabs-trigger.js-BroN2EBK.js.map +0 -1
- package/build/server/chunks/chunks/toast-state.svelte.js-Dj2T-zNc.js +0 -285
- package/build/server/chunks/chunks/toast-state.svelte.js-Dj2T-zNc.js.map +0 -1
- package/build/server/chunks/chunks/token2.server.js-dXKS8zg3.js +0 -48
- package/build/server/chunks/chunks/token2.server.js-dXKS8zg3.js.map +0 -1
- package/build/server/chunks/chunks/token3.server.js-D3PjQp9U.js +0 -39
- package/build/server/chunks/chunks/token3.server.js-D3PjQp9U.js.map +0 -1
- package/build/server/chunks/chunks/token4.server.js-DOLrxUoz.js +0 -18
- package/build/server/chunks/chunks/token4.server.js-DOLrxUoz.js.map +0 -1
- package/build/server/chunks/chunks/trash.js-Cxm6_UTR.js +0 -22
- package/build/server/chunks/chunks/trash.js-Cxm6_UTR.js.map +0 -1
- package/build/server/chunks/chunks/user-plus.js-BoaCtzm4.js +0 -34
- package/build/server/chunks/chunks/user-plus.js-BoaCtzm4.js.map +0 -1
- package/build/server/chunks/chunks/users.js-BtOXjDt9.js +0 -24
- package/build/server/chunks/chunks/users.js-BtOXjDt9.js.map +0 -1
- package/build/server/chunks/chunks/utils2.js-C9XYOWak.js +0 -81
- package/build/server/chunks/chunks/utils2.js-C9XYOWak.js.map +0 -1
- package/build/server/chunks/chunks/utils3.js-D4hQ3EdJ.js +0 -180
- package/build/server/chunks/chunks/utils3.js-D4hQ3EdJ.js.map +0 -1
- package/build/server/chunks/chunks/x.js-Gk6aU4uI.js +0 -15
- package/build/server/chunks/chunks/x.js-Gk6aU4uI.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-Cc1PcGqU.js +0 -99
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-Cc1PcGqU.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C-rltkXg.js +0 -86
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C-rltkXg.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-0sgX40Ec.js +0 -97
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-0sgX40Ec.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Dck71_yh.js +0 -47
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Dck71_yh.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-BKLUQbis.js +0 -70
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-BKLUQbis.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-sbp0wVnw.js +0 -63
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-sbp0wVnw.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-TcHNZ6Ua.js +0 -35
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-TcHNZ6Ua.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-Cy6nvnOU.js +0 -66
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-Cy6nvnOU.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BS9H2y_Y.js +0 -81
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BS9H2y_Y.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DIPbPfVe.js +0 -364
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DIPbPfVe.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-BQgSzqmd.js +0 -86
- package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-BQgSzqmd.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-CJa-zBk8.js +0 -608
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-CJa-zBk8.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-CIZDl2RA.js +0 -59
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-CIZDl2RA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Cupdr6Bt.js +0 -74
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Cupdr6Bt.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-CcZxIq4p.js +0 -84
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-CcZxIq4p.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-BwhprL3F.js +0 -63
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-BwhprL3F.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-DQXbjRlg.js +0 -94
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-DQXbjRlg.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DxgQsuDq.js +0 -59
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DxgQsuDq.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-DuGNZFhO.js +0 -62
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-DuGNZFhO.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-qVNYszdo.js +0 -91
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-qVNYszdo.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BboruROh.js +0 -69
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BboruROh.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CxEn29AS.js +0 -46
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CxEn29AS.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-Qh0O56SX.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-Qh0O56SX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-B1ml89SX.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-B1ml89SX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BLSI3deq.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BLSI3deq.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-eBBiopZB.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-eBBiopZB.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-mZQqeype.js +0 -48
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-mZQqeype.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-B5oN_DFz.js +0 -97
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-B5oN_DFz.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-DdWcgEbV.js +0 -48
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-DdWcgEbV.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BDbdTvgH.js +0 -45
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BDbdTvgH.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-CLgqxSeA.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-CLgqxSeA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-B8iZRB6C.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-B8iZRB6C.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-Clt_q-60.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-Clt_q-60.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CB1hXVkM.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CB1hXVkM.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/openapi.json/_server.ts.js-BjGLmMN4.js +0 -46
- package/build/server/chunks/entries/endpoints/api/v1/openapi.json/_server.ts.js-BjGLmMN4.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-BgJGh6yF.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-BgJGh6yF.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-IGQtj4Tj.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-IGQtj4Tj.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Bl7eGz6e.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-Bl7eGz6e.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-CdVIVGgh.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-CdVIVGgh.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CrXRptYj.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CrXRptYj.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-MA9kYXE6.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-MA9kYXE6.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-BZduRNTC.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-BZduRNTC.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CzfqCtOo.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CzfqCtOo.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-B3VrAfZX.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-B3VrAfZX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-Dt5i_0_1.js +0 -43
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-Dt5i_0_1.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CnX8RIzQ.js +0 -46
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CnX8RIzQ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-oMRY50H9.js +0 -45
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-oMRY50H9.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CmiXOVAJ.js +0 -45
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CmiXOVAJ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-DOARzF54.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-DOARzF54.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CLgpB-Ek.js +0 -44
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CLgpB-Ek.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-DLCaz7ZB.js +0 -30
- package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-DLCaz7ZB.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-BFEUo5p6.js +0 -91
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-BFEUo5p6.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-n_LFrzri.js +0 -64
- package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-n_LFrzri.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-DD_LT2Ay.js +0 -51
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-DD_LT2Ay.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-30t3QCjN.js +0 -57
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-30t3QCjN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BTjWYZHs.js +0 -65
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BTjWYZHs.js.map +0 -1
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-BDQvWWCf.js +0 -11
- package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-BDQvWWCf.js.map +0 -1
- package/build/server/chunks/entries/endpoints/mcp/_server.ts.js-BLYxewNr.js +0 -20
- package/build/server/chunks/entries/endpoints/mcp/_server.ts.js-BLYxewNr.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-D3iK7j5J.js +0 -362
- package/build/server/chunks/entries/hooks.server.js-D3iK7j5J.js.map +0 -1
- package/build/server/chunks/entries/pages/_error.svelte.js-C9yVIJLU.js +0 -38
- package/build/server/chunks/entries/pages/_error.svelte.js-C9yVIJLU.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.server.ts.js-BTdjT_WA.js +0 -34
- package/build/server/chunks/entries/pages/_layout.server.ts.js-BTdjT_WA.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-DaruIRZd.js +0 -639
- package/build/server/chunks/entries/pages/_layout.svelte.js-DaruIRZd.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.server.ts.js-CAdsq3pI.js +0 -56
- package/build/server/chunks/entries/pages/_page.server.ts.js-CAdsq3pI.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-Cyph0Zy6.js +0 -154
- package/build/server/chunks/entries/pages/_page.svelte.js-Cyph0Zy6.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-ZhnXkDgT.js +0 -181
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-ZhnXkDgT.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-C9qDg8u4.js +0 -136
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-C9qDg8u4.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-Igy8fGe_.js +0 -40
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-Igy8fGe_.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DQ2HGXB0.js +0 -31
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DQ2HGXB0.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-BhOeZHZ0.js +0 -129
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-BhOeZHZ0.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BNdizmJ0.js +0 -76
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BNdizmJ0.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-CinwxxLc.js +0 -396
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-CinwxxLc.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-B0XvmT02.js +0 -269
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-B0XvmT02.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-DgIzLUTj.js +0 -458
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-DgIzLUTj.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-smFt_l4J.js +0 -74
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-smFt_l4J.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-hp_hp5Ue.js +0 -841
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-hp_hp5Ue.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-HEts-n0e.js +0 -35
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-HEts-n0e.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-DKoECGT4.js +0 -97
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-DKoECGT4.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-B1OnUnDo.js +0 -86
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-B1OnUnDo.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-BD4NmIDU.js +0 -639
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-BD4NmIDU.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Ce_D4dRp.js +0 -42
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Ce_D4dRp.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-X0Nna6K7.js +0 -285
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-X0Nna6K7.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-C3fG43s-.js +0 -87
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-C3fG43s-.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-D09gz9oN.js +0 -1390
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-D09gz9oN.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/tokens/_page.server.ts.js-_hikH_TL.js +0 -63
- package/build/server/chunks/entries/pages/admin/tokens/_page.server.ts.js-_hikH_TL.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/tokens/_page.svelte.js-DkEynhnv.js +0 -770
- package/build/server/chunks/entries/pages/admin/tokens/_page.svelte.js-DkEynhnv.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-DYXQSjMD.js +0 -79
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-DYXQSjMD.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-zTFLA5s2.js +0 -625
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-zTFLA5s2.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BC1zsYQO.js +0 -47
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BC1zsYQO.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CVCUjPYq.js +0 -62
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CVCUjPYq.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-B_Dq-_e1.js +0 -15
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-B_Dq-_e1.js.map +0 -1
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-Co4RYtWw.js +0 -63
- package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-Co4RYtWw.js.map +0 -1
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Chcvs48v.js +0 -85
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Chcvs48v.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-DyeEqhxa.js +0 -120
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-DyeEqhxa.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-IvYPPcOQ.js +0 -15626
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-IvYPPcOQ.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-DvPHj7a-.js +0 -51
- package/build/server/chunks/entries/pages/library/_page.server.ts.js-DvPHj7a-.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.svelte.js-s1qbEZvK.js +0 -301
- package/build/server/chunks/entries/pages/library/_page.svelte.js-s1qbEZvK.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-DiGxa5cr.js +0 -101
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-DiGxa5cr.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DBu0YAw8.js +0 -215
- package/build/server/chunks/entries/pages/login/_page.svelte.js-DBu0YAw8.js.map +0 -1
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-CKNyaw5D.js +0 -19
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-CKNyaw5D.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-DJSpg2qp.js +0 -22
- package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-DJSpg2qp.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-bv7jPQg0.js +0 -48
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-bv7jPQg0.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C-7J4XmE.js +0 -94
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-C-7J4XmE.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-B47Izi6u.js +0 -3645
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-B47Izi6u.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-zdR6bp9q.js +0 -116
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-zdR6bp9q.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-TbkVKb3r.js +0 -250
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-TbkVKb3r.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BzAJ1zHf.js +0 -28
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BzAJ1zHf.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DG2Y72qE.js +0 -165
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-DG2Y72qE.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-Cu8ivqtg.js +0 -35
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-Cu8ivqtg.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.svelte.js-BWkNSz1f.js +0 -112
- package/build/server/chunks/entries/pages/team/_page.svelte.js-BWkNSz1f.js.map +0 -1
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-qSRad6QC.js +0 -124
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-qSRad6QC.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-G9oxFRyU.js +0 -42
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-G9oxFRyU.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-CNJhmcJ5.js +0 -617
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-CNJhmcJ5.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-B0dIQhEr.js +0 -62
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-B0dIQhEr.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DKW4Lhdo.js +0 -809
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DKW4Lhdo.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CdW3Wm27.js +0 -59
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CdW3Wm27.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CEcNnnby.js +0 -424
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CEcNnnby.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CB70Ino1.js +0 -67
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CB70Ino1.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-n8g00fh_.js +0 -267
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-n8g00fh_.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-BsuNJydd.js +0 -34
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-BsuNJydd.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-BBgCo1Ca.js +0 -306
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-BBgCo1Ca.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-CuQxSH8Q.js +0 -29
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-CuQxSH8Q.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Bf69sOlS.js +0 -313
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Bf69sOlS.js.map +0 -1
- package/build/server/chunks/handler-BMHpo4cs.js +0 -1206
- package/build/server/chunks/handler-BMHpo4cs.js.map +0 -1
- package/build/server/chunks/index.js-1F24ZSxG.js +0 -3767
- package/build/server/chunks/index.js-1F24ZSxG.js.map +0 -1
- package/build/server/chunks/manifest.js-B_3-xLe-.js +0 -669
- package/build/server/chunks/manifest.js-B_3-xLe-.js.map +0 -1
- package/build/server/chunks/nodes/0.js-Bwi3nypj.js +0 -27
- package/build/server/chunks/nodes/0.js-Bwi3nypj.js.map +0 -1
- package/build/server/chunks/nodes/1.js-B1ovC0Ko.js +0 -9
- package/build/server/chunks/nodes/1.js-B1ovC0Ko.js.map +0 -1
- package/build/server/chunks/nodes/10.js-C-638gqk.js +0 -31
- package/build/server/chunks/nodes/10.js-C-638gqk.js.map +0 -1
- package/build/server/chunks/nodes/11.js-BePxrNlw.js +0 -37
- package/build/server/chunks/nodes/11.js-BePxrNlw.js.map +0 -1
- package/build/server/chunks/nodes/12.js-idVEkWxG.js +0 -28
- package/build/server/chunks/nodes/12.js-idVEkWxG.js.map +0 -1
- package/build/server/chunks/nodes/13.js-CHoYB8zl.js +0 -28
- package/build/server/chunks/nodes/13.js-CHoYB8zl.js.map +0 -1
- package/build/server/chunks/nodes/14.js-D7uNpOH5.js +0 -28
- package/build/server/chunks/nodes/14.js-D7uNpOH5.js.map +0 -1
- package/build/server/chunks/nodes/15.js-e2pZiMYr.js +0 -38
- package/build/server/chunks/nodes/15.js-e2pZiMYr.js.map +0 -1
- package/build/server/chunks/nodes/16.js-TgcfwHlV.js +0 -34
- package/build/server/chunks/nodes/16.js-TgcfwHlV.js.map +0 -1
- package/build/server/chunks/nodes/17.js-WtdCXxmK.js +0 -31
- package/build/server/chunks/nodes/17.js-WtdCXxmK.js.map +0 -1
- package/build/server/chunks/nodes/18.js-DPpRykeE.js +0 -9
- package/build/server/chunks/nodes/18.js-DPpRykeE.js.map +0 -1
- package/build/server/chunks/nodes/19.js-l2deNnvR.js +0 -34
- package/build/server/chunks/nodes/19.js-l2deNnvR.js.map +0 -1
- package/build/server/chunks/nodes/2.js-BxkzhqNC.js +0 -31
- package/build/server/chunks/nodes/2.js-BxkzhqNC.js.map +0 -1
- package/build/server/chunks/nodes/20.js-DypVW52C.js +0 -24
- package/build/server/chunks/nodes/20.js-DypVW52C.js.map +0 -1
- package/build/server/chunks/nodes/21.js-B148JW5V.js +0 -22
- package/build/server/chunks/nodes/21.js-B148JW5V.js.map +0 -1
- package/build/server/chunks/nodes/22.js-DUMB4idh.js +0 -41
- package/build/server/chunks/nodes/22.js-DUMB4idh.js.map +0 -1
- package/build/server/chunks/nodes/23.js-oaVXjI1W.js +0 -34
- package/build/server/chunks/nodes/23.js-oaVXjI1W.js.map +0 -1
- package/build/server/chunks/nodes/24.js-Btk_9Dxm.js +0 -31
- package/build/server/chunks/nodes/24.js-Btk_9Dxm.js.map +0 -1
- package/build/server/chunks/nodes/25.js-CZqP_J_g.js +0 -30
- package/build/server/chunks/nodes/25.js-CZqP_J_g.js.map +0 -1
- package/build/server/chunks/nodes/26.js-BFQAi2t0.js +0 -34
- package/build/server/chunks/nodes/26.js-BFQAi2t0.js.map +0 -1
- package/build/server/chunks/nodes/27.js-CJQmzyD3.js +0 -28
- package/build/server/chunks/nodes/27.js-CJQmzyD3.js.map +0 -1
- package/build/server/chunks/nodes/28.js-BuBY8LmX.js +0 -9
- package/build/server/chunks/nodes/28.js-BuBY8LmX.js.map +0 -1
- package/build/server/chunks/nodes/29.js-Dx3JRdKz.js +0 -28
- package/build/server/chunks/nodes/29.js-Dx3JRdKz.js.map +0 -1
- package/build/server/chunks/nodes/3.js-vlEocNkT.js +0 -9
- package/build/server/chunks/nodes/3.js-vlEocNkT.js.map +0 -1
- package/build/server/chunks/nodes/30.js-C29RsEY1.js +0 -28
- package/build/server/chunks/nodes/30.js-C29RsEY1.js.map +0 -1
- package/build/server/chunks/nodes/31.js-DaA3T-HE.js +0 -30
- package/build/server/chunks/nodes/31.js-DaA3T-HE.js.map +0 -1
- package/build/server/chunks/nodes/32.js-D_gepY_A.js +0 -28
- package/build/server/chunks/nodes/32.js-D_gepY_A.js.map +0 -1
- package/build/server/chunks/nodes/33.js-CY75fkpE.js +0 -28
- package/build/server/chunks/nodes/33.js-CY75fkpE.js.map +0 -1
- package/build/server/chunks/nodes/34.js-cKHhaatg.js +0 -28
- package/build/server/chunks/nodes/34.js-cKHhaatg.js.map +0 -1
- package/build/server/chunks/nodes/4.js-CHrjBctx.js +0 -9
- package/build/server/chunks/nodes/4.js-CHrjBctx.js.map +0 -1
- package/build/server/chunks/nodes/5.js-BuNyZ58Q.js +0 -15
- package/build/server/chunks/nodes/5.js-BuNyZ58Q.js.map +0 -1
- package/build/server/chunks/nodes/6.js-C9yrlols.js +0 -28
- package/build/server/chunks/nodes/6.js-C9yrlols.js.map +0 -1
- package/build/server/chunks/nodes/7.js-CqRO8MB-.js +0 -22
- package/build/server/chunks/nodes/7.js-CqRO8MB-.js.map +0 -1
- package/build/server/chunks/nodes/8.js-Cp8IDLn-.js +0 -35
- package/build/server/chunks/nodes/8.js-Cp8IDLn-.js.map +0 -1
- package/build/server/chunks/nodes/9.js-hRggG_x2.js +0 -28
- package/build/server/chunks/nodes/9.js-hRggG_x2.js.map +0 -1
|
@@ -1,1474 +0,0 @@
|
|
|
1
|
-
import { m as toDefinitionListItem, p as CreateDefinitionInputSchema, G as GH_EXTENSIONS, q as UpdateMetadataInputSchema, r as GuidSchema, u as PublishVersionInputSchema, v as CreateShareLinkInputSchema, w as OrgAssetKindSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS, a as ALL_ORG_PERMISSIONS, x as parseApiScope, y as describeApiScope, h as hasPermission, z as validateProjectFlags, S as SYSTEM_CONTEXT, o as outsideTokenOrg, k as slugify } from './src.js-bYgw0r8C.js';
|
|
2
|
-
import './providers.server.js-CpbKkjkR.js';
|
|
3
|
-
import { l as listVisibleDefinitions, d as resolveAccessibleProjects, g as getVisibleDefinition, e as loadVisibleVersion } from './definitions.js-sU8j2oCu.js';
|
|
4
|
-
import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from './types.js-B_zdqlv_.js';
|
|
5
|
-
import { a as isOrgServer, i as isPlatformServer, b as serversVisibleTo } from './utils2.js-C9XYOWak.js';
|
|
6
|
-
import { k as requireCanCreateDefinition, l as requireEditableDefinition, m as requireActingOrg, n as requireManageOrgMembers, o as requireManageOrgCompute, q as splitFlatPermissions, j as assertCanGrantPlatformPermissions, t as canActorChangeOrgRole, u as canChangeOrgRole, b as requirePermission, v as requireCanViewProject, w as requireCanCreateProject, p as projectAccessInputFromRowsWith, c as canView, x as canSolve, f as canEdit, y as requireCanEditProjectSettings, z as withAdminBypass, A as requireCanManage, B as requireTargetIsOrgMember, C as checkOwnerRemoval, D as requireCanReclaim, E as canChangeVisibilityToPublic } from './access.js-BIDQ4aL-.js';
|
|
7
|
-
import { a as apiError, A as ApiErrorCode, f as fetchSchemaFromCompute, c as actorOf, e as isApiError } from './schema-extraction.js-B-qWNPpJ.js';
|
|
8
|
-
import { p as parseDefinitionListOptions, g as parseListOptions, h as ShareLinkResponseSchema, i as CreatedShareLinkResponseSchema, j as OrgComputeResponseSchema, O as OrgComputePatchBodySchema, I as InviteResponseSchema, c as CreateInviteBodySchema, k as CreatedInviteResponseSchema, b as UpdateOrgMemberBodySchema, l as ApiTokenResponseSchema, d as CreateApiTokenBodySchema, m as CreatedApiTokenResponseSchema, s as scopeRefusalsToday, C as CreateProjectBodySchema, U as UpdateProjectBodySchema, A as AddProjectMemberBodySchema, a as UpdateProjectMemberBodySchema } from './api.js-DGA_Gpu6.js';
|
|
9
|
-
import { a as requireCaller, b as requireUpload, f as formText, t as throwZodError, c as parseParam, p as parseBody, r as requireParams } from './request.js-BBBMO7VG.js';
|
|
10
|
-
import { r as resolveServerForOrg, v as validateIncomingServers, s as storedKeysById, a as resolveApiKey } from './compute.js-DtVZD_ty.js';
|
|
11
|
-
import { e as evictChangedServers } from './evict-changed-servers.js-whgDVM5R.js';
|
|
12
|
-
import { c as createProjectWithUniqueSlug } from './projects.js-CsA1nWwa.js';
|
|
13
|
-
import { randomUUID } from 'node:crypto';
|
|
14
|
-
|
|
15
|
-
//#region ../server/src/api/responses.ts
|
|
16
|
-
/** A paginated collection. The one envelope every list endpoint returns. */
|
|
17
|
-
function collection(page) {
|
|
18
|
-
return { body: {
|
|
19
|
-
items: page.items,
|
|
20
|
-
nextCursor: page.nextCursor
|
|
21
|
-
} };
|
|
22
|
-
}
|
|
23
|
-
/** A created resource. */
|
|
24
|
-
function created(body) {
|
|
25
|
-
return {
|
|
26
|
-
status: 201,
|
|
27
|
-
body
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/** A successful mutation with nothing to say. */
|
|
31
|
-
function noContent() {
|
|
32
|
-
return { status: 204 };
|
|
33
|
-
}
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region ../server/src/api/shaped.ts
|
|
36
|
-
/** Serialize a payload through an explicit response schema. */
|
|
37
|
-
function shaped(schema, payload, status = 200) {
|
|
38
|
-
return {
|
|
39
|
-
status,
|
|
40
|
-
body: schema.parse(payload)
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
/** `shaped`, mapped over a page of records. */
|
|
44
|
-
function shapedCollection(schema, page) {
|
|
45
|
-
return { body: {
|
|
46
|
-
items: page.items.map((item) => schema.parse(item)),
|
|
47
|
-
nextCursor: page.nextCursor
|
|
48
|
-
} };
|
|
49
|
-
}
|
|
50
|
-
//#endregion
|
|
51
|
-
//#region ../notifications/src/html.ts
|
|
52
|
-
/**
|
|
53
|
-
* Escape text for interpolation into an HTML attribute or text node.
|
|
54
|
-
*
|
|
55
|
-
* One copy on purpose: per-template copies are how one of them ends up missing
|
|
56
|
-
* a case. Every value a template interpolates goes through this, including
|
|
57
|
-
* URLs — an `acceptUrl` carries a token, and a token can contain characters
|
|
58
|
-
* that would otherwise close the `href` early.
|
|
59
|
-
*/
|
|
60
|
-
function escapeHtml(s) {
|
|
61
|
-
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
62
|
-
}
|
|
63
|
-
//#endregion
|
|
64
|
-
//#region ../notifications/src/layout.ts
|
|
65
|
-
/**
|
|
66
|
-
* The frame every Selva mail shares: card chrome, type stack, colours.
|
|
67
|
-
* Templates supply a body; this supplies the look, so mail written by
|
|
68
|
-
* different people at different times still reads as coming from one product.
|
|
69
|
-
*
|
|
70
|
-
* Deliberately plain — no images, no tracking pixel, no external stylesheet.
|
|
71
|
-
* Inline styles with a table-free layout survive the common clients, and mail
|
|
72
|
-
* clients that strip the styling still get readable, ordered content.
|
|
73
|
-
*/
|
|
74
|
-
function renderLayout({ heading, body, footer }) {
|
|
75
|
-
return `<!doctype html>
|
|
76
|
-
<html>
|
|
77
|
-
<body style="margin:0;padding:24px;background:#f6f7f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#1a1a1a;">
|
|
78
|
-
<div style="max-width:480px;margin:0 auto;background:#ffffff;border:1px solid #e4e6eb;border-radius:12px;padding:32px;">
|
|
79
|
-
<h1 style="margin:0 0 16px;font-size:20px;font-weight:600;">${escapeHtml(heading)}</h1>
|
|
80
|
-
${body}${footer ? `
|
|
81
|
-
<hr style="border:none;border-top:1px solid #e4e6eb;margin:24px 0;" />
|
|
82
|
-
<p style="margin:0;font-size:12px;line-height:1.5;color:#8a8a8a;">
|
|
83
|
-
${footer}
|
|
84
|
-
</p>` : ""}
|
|
85
|
-
</div>
|
|
86
|
-
</body>
|
|
87
|
-
</html>`;
|
|
88
|
-
}
|
|
89
|
-
/** The primary action button. One definition so every mail's call to action matches. */
|
|
90
|
-
function renderButton(href, label) {
|
|
91
|
-
return `<a href="${escapeHtml(href)}" style="display:inline-block;padding:11px 20px;background:#1a1a1a;color:#ffffff;text-decoration:none;border-radius:8px;font-size:15px;font-weight:500;">${escapeHtml(label)}</a>`;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Fallback for clients that do not make the button clickable. Every mail whose
|
|
95
|
-
* point is a link needs this: a button that does not render leaves the reader
|
|
96
|
-
* with no way to continue.
|
|
97
|
-
*/
|
|
98
|
-
function renderUrlFallback(href) {
|
|
99
|
-
return `<p style="margin:24px 0 0;font-size:13px;line-height:1.5;color:#6b6b6b;">
|
|
100
|
-
Or paste this into your browser:<br />
|
|
101
|
-
<span style="word-break:break-all;color:#4a4a4a;">${escapeHtml(href)}</span>
|
|
102
|
-
</p>`;
|
|
103
|
-
}
|
|
104
|
-
//#endregion
|
|
105
|
-
//#region ../notifications/src/templates/invite.ts
|
|
106
|
-
function formatExpiry(iso) {
|
|
107
|
-
const d = new Date(iso);
|
|
108
|
-
return Number.isNaN(d.getTime()) ? "soon" : d.toLocaleDateString("en-US", {
|
|
109
|
-
year: "numeric",
|
|
110
|
-
month: "long",
|
|
111
|
-
day: "numeric"
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* "An admin invited you to an org" — the mail carrying an invite's accept link.
|
|
116
|
-
*
|
|
117
|
-
* The text part must always carry the URL: a mail that degrades to plain text
|
|
118
|
-
* is still the only way the invitee can accept.
|
|
119
|
-
*/
|
|
120
|
-
function renderInviteEmail(input) {
|
|
121
|
-
const { to, acceptUrl, orgName, invitedBy } = input;
|
|
122
|
-
const expiry = formatExpiry(input.expiresAt);
|
|
123
|
-
const inviter = invitedBy ? `${invitedBy} invited you` : "You have been invited";
|
|
124
|
-
return {
|
|
125
|
-
kind: "org.invite",
|
|
126
|
-
to,
|
|
127
|
-
subject: `${inviter} to join ${orgName} on Selva`,
|
|
128
|
-
text: [
|
|
129
|
-
`${inviter} to join ${orgName} on Selva.`,
|
|
130
|
-
"",
|
|
131
|
-
"Open this link to accept and set up your account:",
|
|
132
|
-
acceptUrl,
|
|
133
|
-
"",
|
|
134
|
-
`The link expires on ${expiry} and can only be used once.`,
|
|
135
|
-
"",
|
|
136
|
-
"If you weren't expecting this invitation, you can ignore this email."
|
|
137
|
-
].join("\n"),
|
|
138
|
-
html: renderLayout({
|
|
139
|
-
heading: `Join ${orgName} on Selva`,
|
|
140
|
-
body: ` <p style="margin:0 0 24px;font-size:15px;line-height:1.5;color:#4a4a4a;">
|
|
141
|
-
${escapeHtml(inviter)} to join <strong>${escapeHtml(orgName)}</strong>. Open the link below to accept and set up your account.
|
|
142
|
-
</p>
|
|
143
|
-
${renderButton(acceptUrl, "Accept invitation")}
|
|
144
|
-
${renderUrlFallback(acceptUrl)}`,
|
|
145
|
-
footer: `This link expires on ${escapeHtml(expiry)} and can only be used once.
|
|
146
|
-
If you weren't expecting this invitation, you can ignore this email.`
|
|
147
|
-
})
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
//#endregion
|
|
151
|
-
//#region ../notifications/src/templates/api-token.ts
|
|
152
|
-
function formatDate(iso) {
|
|
153
|
-
const d = new Date(iso);
|
|
154
|
-
return Number.isNaN(d.getTime()) ? iso : d.toLocaleDateString("en-US", {
|
|
155
|
-
year: "numeric",
|
|
156
|
-
month: "long",
|
|
157
|
-
day: "numeric"
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* "A new API token was created on your account". The point is the case where
|
|
162
|
-
* the owner didn't create it, so the revoke link leads.
|
|
163
|
-
*/
|
|
164
|
-
function renderApiTokenCreatedEmail(input) {
|
|
165
|
-
const { to, tokenName, orgName, scopes, manageUrl } = input;
|
|
166
|
-
const expiry = formatDate(input.expiresAt);
|
|
167
|
-
return {
|
|
168
|
-
kind: "api_token.created",
|
|
169
|
-
to,
|
|
170
|
-
subject: `New API token "${tokenName}" in ${orgName}`,
|
|
171
|
-
text: [
|
|
172
|
-
`A new API token named "${tokenName}" was created on your Selva account in ${orgName}.`,
|
|
173
|
-
"",
|
|
174
|
-
"It can:",
|
|
175
|
-
...scopes.map((s) => `- ${s}`),
|
|
176
|
-
"",
|
|
177
|
-
`It expires on ${expiry}.`,
|
|
178
|
-
"",
|
|
179
|
-
"If you didn't create it, revoke it now:",
|
|
180
|
-
manageUrl
|
|
181
|
-
].join("\n"),
|
|
182
|
-
html: renderLayout({
|
|
183
|
-
heading: "New API token",
|
|
184
|
-
body: ` <p style="margin:0 0 16px;font-size:15px;line-height:1.5;color:#4a4a4a;">
|
|
185
|
-
A new API token named <strong>${escapeHtml(tokenName)}</strong> was created on your account in <strong>${escapeHtml(orgName)}</strong>. It can:
|
|
186
|
-
</p>
|
|
187
|
-
<ul style="margin:0 0 24px;padding-left:20px;font-size:15px;line-height:1.5;color:#4a4a4a;">
|
|
188
|
-
${scopes.map((s) => `<li>${escapeHtml(s)}</li>`).join("")}
|
|
189
|
-
</ul>
|
|
190
|
-
${renderButton(manageUrl, "Review your tokens")}
|
|
191
|
-
${renderUrlFallback(manageUrl)}`,
|
|
192
|
-
footer: `It expires on ${escapeHtml(expiry)}. If you didn't create it, revoke it from the page above.`
|
|
193
|
-
})
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
//#endregion
|
|
197
|
-
//#region ../server/src/notifications/deliver-invite.ts
|
|
198
|
-
/**
|
|
199
|
-
* Mail an invite's accept link, best-effort.
|
|
200
|
-
*
|
|
201
|
-
* Shared by the mint and resend routes so they cannot disagree about what the
|
|
202
|
-
* invitee receives. Swallows every failure: the invite row is already
|
|
203
|
-
* committed and the caller still holds `acceptUrl` to share by hand, so a dead
|
|
204
|
-
* SMTP host must not report a valid invite as a failure.
|
|
205
|
-
*/
|
|
206
|
-
async function deliverInvite(input) {
|
|
207
|
-
const { ctx, log, invite, acceptUrl, actor, orgs, notifications, fallbackOrgName } = input;
|
|
208
|
-
try {
|
|
209
|
-
const org = await orgs.getOrg(ctx, invite.orgId);
|
|
210
|
-
const { status } = await notifications.send(renderInviteEmail({
|
|
211
|
-
to: invite.email,
|
|
212
|
-
acceptUrl,
|
|
213
|
-
orgName: org?.name ?? fallbackOrgName,
|
|
214
|
-
invitedBy: actor.profile?.displayName || actor.user?.email,
|
|
215
|
-
expiresAt: invite.expiresAt
|
|
216
|
-
}), log);
|
|
217
|
-
return status;
|
|
218
|
-
} catch (err) {
|
|
219
|
-
log.warn("Invite mail could not be prepared", {
|
|
220
|
-
component: "Invites",
|
|
221
|
-
inviteId: invite.id,
|
|
222
|
-
reason: err instanceof Error ? err.message : String(err)
|
|
223
|
-
});
|
|
224
|
-
return "failed";
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
//#endregion
|
|
228
|
-
//#region ../server/src/handlers/services.ts
|
|
229
|
-
function definitionService(deps) {
|
|
230
|
-
const service = deps.services.definitions;
|
|
231
|
-
if (!service) throw new Error("SelvaDeps.services.definitions is not wired — mount requires it.");
|
|
232
|
-
return service;
|
|
233
|
-
}
|
|
234
|
-
function orgAssetService(deps) {
|
|
235
|
-
const service = deps.services.orgAssets;
|
|
236
|
-
if (!service) throw new Error("SelvaDeps.services.orgAssets is not wired — mount requires it.");
|
|
237
|
-
return service;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* A token codec, or a named failure.
|
|
241
|
-
*
|
|
242
|
-
* Minting through an absent codec is the one failure mode worth being loud
|
|
243
|
-
* about: a handler that quietly skipped hashing would persist a row whose token
|
|
244
|
-
* can never be verified, and nothing downstream would report it.
|
|
245
|
-
*/
|
|
246
|
-
function tokenCodec(deps, family) {
|
|
247
|
-
const codec = deps.tokens[family];
|
|
248
|
-
if (!codec) throw new Error(`SelvaDeps.tokens.${family} is not wired — mount requires it.`);
|
|
249
|
-
return codec;
|
|
250
|
-
}
|
|
251
|
-
//#endregion
|
|
252
|
-
//#region ../server/src/handlers/me.ts
|
|
253
|
-
/**
|
|
254
|
-
* Whoami. The first call a non-browser client makes, and the only way a token
|
|
255
|
-
* holder can see which org their credential resolved into — `actingOrgId` is
|
|
256
|
-
* derived per request from the caller's membership, not frozen at mint time.
|
|
257
|
-
*/
|
|
258
|
-
var getMe = async (req) => {
|
|
259
|
-
const { ctx, user } = requireCaller(req);
|
|
260
|
-
return { body: {
|
|
261
|
-
userId: user.id,
|
|
262
|
-
email: user.email,
|
|
263
|
-
displayName: req.profile?.displayName,
|
|
264
|
-
actingOrgId: ctx.actingOrgId,
|
|
265
|
-
platformPermissions: ctx.platformPermissions,
|
|
266
|
-
orgPermissions: ctx.orgPermissions,
|
|
267
|
-
starredDefinitions: req.profile?.starredDefinitions ?? []
|
|
268
|
-
} };
|
|
269
|
-
};
|
|
270
|
-
//#endregion
|
|
271
|
-
//#region ../server/src/handlers/me.starred.ts
|
|
272
|
-
/**
|
|
273
|
-
* Starring a definition for the calling user. Both directions are idempotent.
|
|
274
|
-
*
|
|
275
|
-
* No visibility check: a star is a row on the caller's own profile, keyed by
|
|
276
|
-
* guid, and reveals nothing about whether that guid exists. The read paths that
|
|
277
|
-
* expand stars into definitions filter by visibility there.
|
|
278
|
-
*/
|
|
279
|
-
var starDefinition = async (req) => {
|
|
280
|
-
const { ctx, user } = requireCaller(req);
|
|
281
|
-
const { guid } = requireParams(req.params, "guid");
|
|
282
|
-
await req.deps.userProfile.starDefinition(ctx, user.id, guid);
|
|
283
|
-
return noContent();
|
|
284
|
-
};
|
|
285
|
-
var unstarDefinition = async (req) => {
|
|
286
|
-
const { ctx, user } = requireCaller(req);
|
|
287
|
-
const { guid } = requireParams(req.params, "guid");
|
|
288
|
-
await req.deps.userProfile.unstarDefinition(ctx, user.id, guid);
|
|
289
|
-
return noContent();
|
|
290
|
-
};
|
|
291
|
-
//#endregion
|
|
292
|
-
//#region ../server/src/handlers/orgs.ts
|
|
293
|
-
/**
|
|
294
|
-
* The acting org's record and roster.
|
|
295
|
-
*
|
|
296
|
-
* `requireActingOrg` is the tenancy gate on both: the URL `orgId` must equal
|
|
297
|
-
* `ctx.actingOrgId`, so the URL alone never decides which tenant is read.
|
|
298
|
-
*/
|
|
299
|
-
/** The acting org's record — name, slug, and branding asset URLs. */
|
|
300
|
-
var getOrg = async (req) => {
|
|
301
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
302
|
-
const org = await req.deps.orgs.getOrg(ctx, orgId);
|
|
303
|
-
if (!org) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
|
|
304
|
-
return { body: org };
|
|
305
|
-
};
|
|
306
|
-
/**
|
|
307
|
-
* List the org's members. Any member of the acting org may read this — the
|
|
308
|
-
* roster is what the team page renders, and `requireActingOrg` already confines
|
|
309
|
-
* the read to the caller's own tenant.
|
|
310
|
-
*/
|
|
311
|
-
var listOrgMembers = async (req) => {
|
|
312
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
313
|
-
return collection(await req.deps.orgs.listOrgMembers(ctx, orgId, parseListOptions(req.url)));
|
|
314
|
-
};
|
|
315
|
-
//#endregion
|
|
316
|
-
//#region ../server/src/handlers/apiTokens.ts
|
|
317
|
-
/**
|
|
318
|
-
* API tokens: mint, list, revoke.
|
|
319
|
-
*
|
|
320
|
-
* **Session-only.** A key can't manage keys, so a leaked one can't mint more or
|
|
321
|
-
* revoke the owner's others to cover its tracks.
|
|
322
|
-
*
|
|
323
|
-
* **The raw key exists only in the mint response.** The store holds its HMAC,
|
|
324
|
-
* and every response goes through a schema that has no `tokenHash`.
|
|
325
|
-
*/
|
|
326
|
-
var DAY_MS = 864e5;
|
|
327
|
-
function requireSessionInOrg(req) {
|
|
328
|
-
if (req.ctx?.apiScope) apiError(403, ApiErrorCode.FORBIDDEN, "API tokens can’t manage API tokens. Sign in to the web app to do this.");
|
|
329
|
-
return requireActingOrg(req, req.params.orgId);
|
|
330
|
-
}
|
|
331
|
-
function requireMayHoldApiTokens(req, ctx) {
|
|
332
|
-
const policy = req.deps.tokens.mayHoldApiTokens;
|
|
333
|
-
if (!policy) {
|
|
334
|
-
requirePermission(req, "manage_api_tokens");
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
if (!policy(ctx)) apiError(403, ApiErrorCode.FORBIDDEN, "You can’t create API tokens in this org.");
|
|
338
|
-
}
|
|
339
|
-
function unavailable() {
|
|
340
|
-
apiError(503, ApiErrorCode.API_TOKENS_UNAVAILABLE, "API tokens are not available on this server.");
|
|
341
|
-
}
|
|
342
|
-
function storeOf(req) {
|
|
343
|
-
return req.deps.data.apiTokens ?? unavailable();
|
|
344
|
-
}
|
|
345
|
-
function codecOf(req) {
|
|
346
|
-
return req.deps.tokens.apiTokens ?? unavailable();
|
|
347
|
-
}
|
|
348
|
-
function toResponse(token) {
|
|
349
|
-
return {
|
|
350
|
-
...token,
|
|
351
|
-
refusedToday: scopeRefusalsToday(token.id)
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Refuse scopes naming something outside this org or out of the creator's
|
|
356
|
-
* sight. Not the security boundary: a key never exceeds its owner's live rights
|
|
357
|
-
* anyway. This stops someone minting a key that can only ever be refused.
|
|
358
|
-
*/
|
|
359
|
-
async function assertScopesReachable(req, orgId, scopes) {
|
|
360
|
-
const refuse = (message) => apiError(400, ApiErrorCode.VALIDATION_FAILED, message, { scopes: message });
|
|
361
|
-
for (const value of scopes) {
|
|
362
|
-
const { resource } = parseApiScope(value) ?? refuse(`Unknown scope: ${value}`);
|
|
363
|
-
if (resource.kind === "all") continue;
|
|
364
|
-
if (resource.kind === "org") {
|
|
365
|
-
if (resource.id !== orgId) refuse("An org scope must name this org.");
|
|
366
|
-
continue;
|
|
367
|
-
}
|
|
368
|
-
let projectId = resource.id;
|
|
369
|
-
if (resource.kind === "definition") projectId = (await req.deps.definitionMeta.get(req.ctx, resource.id) ?? refuse(`No definition ${resource.id}.`)).projectId;
|
|
370
|
-
const project = await req.deps.projects.getProject(req.ctx, projectId);
|
|
371
|
-
if (!project || project.orgId !== orgId) refuse(`No ${resource.kind} ${resource.id} in this org.`);
|
|
372
|
-
try {
|
|
373
|
-
await requireCanViewProject(req, projectId);
|
|
374
|
-
} catch (err) {
|
|
375
|
-
if (isApiError(err)) refuse(`You can’t access ${resource.kind} ${resource.id}.`);
|
|
376
|
-
throw err;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Tell the owner a key now exists on their account, best-effort. The case that
|
|
382
|
-
* matters is the one where they didn't make it.
|
|
383
|
-
*/
|
|
384
|
-
async function mailTokenCreated(req, token) {
|
|
385
|
-
const notifications = req.deps.notifications;
|
|
386
|
-
const to = req.user?.email;
|
|
387
|
-
if (!notifications || !to) return;
|
|
388
|
-
try {
|
|
389
|
-
const org = await req.deps.orgs.getOrg(req.ctx, token.orgId);
|
|
390
|
-
await notifications.send(renderApiTokenCreatedEmail({
|
|
391
|
-
to,
|
|
392
|
-
tokenName: token.name,
|
|
393
|
-
orgName: org?.name ?? req.deps.instanceName,
|
|
394
|
-
scopes: token.scopes.map(describeApiScope),
|
|
395
|
-
expiresAt: token.expiresAt,
|
|
396
|
-
manageUrl: `${req.url.origin}${req.deps.apiTokenSettingsPath}`
|
|
397
|
-
}), req.log);
|
|
398
|
-
} catch (err) {
|
|
399
|
-
req.log.warn("API token mail could not be sent", {
|
|
400
|
-
component: "ApiTokens",
|
|
401
|
-
tokenId: token.id,
|
|
402
|
-
reason: err instanceof Error ? err.message : String(err)
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* The caller's own tokens in this org, newest first, including revoked and
|
|
408
|
-
* expired ones. `?all=true` returns everyone's and needs `manage_org_members`.
|
|
409
|
-
*/
|
|
410
|
-
var listApiTokens = async (req) => {
|
|
411
|
-
const { ctx, orgId } = requireSessionInOrg(req);
|
|
412
|
-
const all = req.url.searchParams.get("all") === "true";
|
|
413
|
-
if (all) requireManageOrgMembers(req);
|
|
414
|
-
const page = await storeOf(req).listByOrg(ctx, orgId, {
|
|
415
|
-
...parseListOptions(req.url),
|
|
416
|
-
userId: all ? void 0 : ctx.userId
|
|
417
|
-
});
|
|
418
|
-
return shapedCollection(ApiTokenResponseSchema, {
|
|
419
|
-
...page,
|
|
420
|
-
items: page.items.map(toResponse)
|
|
421
|
-
});
|
|
422
|
-
};
|
|
423
|
-
/** Mint a token acting as the caller. The raw key is in this response and nowhere else. */
|
|
424
|
-
var createApiToken = async (req) => {
|
|
425
|
-
const { ctx, orgId } = requireSessionInOrg(req);
|
|
426
|
-
requireMayHoldApiTokens(req, ctx);
|
|
427
|
-
const { user } = requireCaller(req);
|
|
428
|
-
const store = storeOf(req);
|
|
429
|
-
const codec = codecOf(req);
|
|
430
|
-
const delegated = req.deps.auth.delegatedSession;
|
|
431
|
-
if (delegated && !(await delegated.status()).ok) unavailable();
|
|
432
|
-
const input = await parseBody(req.request, CreateApiTokenBodySchema);
|
|
433
|
-
await assertScopesReachable(req, orgId, input.scopes);
|
|
434
|
-
const raw = codec.mintRawToken();
|
|
435
|
-
const now = /* @__PURE__ */ new Date();
|
|
436
|
-
const token = {
|
|
437
|
-
id: randomUUID(),
|
|
438
|
-
userId: user.id,
|
|
439
|
-
createdBy: user.id,
|
|
440
|
-
orgId,
|
|
441
|
-
name: input.name,
|
|
442
|
-
tokenHash: codec.hashToken(raw),
|
|
443
|
-
scopes: [...new Set(input.scopes)],
|
|
444
|
-
createdAt: now.toISOString(),
|
|
445
|
-
expiresAt: new Date(now.getTime() + input.expiresInDays * DAY_MS).toISOString(),
|
|
446
|
-
lastUsedAt: null,
|
|
447
|
-
revokedAt: null
|
|
448
|
-
};
|
|
449
|
-
await store.create(ctx, token);
|
|
450
|
-
await mailTokenCreated(req, token);
|
|
451
|
-
const { tokenHash: _hash, ...summary } = token;
|
|
452
|
-
return {
|
|
453
|
-
status: 201,
|
|
454
|
-
headers: { "Cache-Control": "no-store" },
|
|
455
|
-
body: CreatedApiTokenResponseSchema.parse({
|
|
456
|
-
token: toResponse(summary),
|
|
457
|
-
secret: raw
|
|
458
|
-
})
|
|
459
|
-
};
|
|
460
|
-
};
|
|
461
|
-
/**
|
|
462
|
-
* Revoke a token: the owner's own, or anyone's in the org for
|
|
463
|
-
* `manage_org_members`. Someone else's token reads as missing, not forbidden.
|
|
464
|
-
*/
|
|
465
|
-
var revokeApiToken = async (req) => {
|
|
466
|
-
const { ctx, orgId } = requireSessionInOrg(req);
|
|
467
|
-
const { tokenId } = requireParams(req.params, "tokenId");
|
|
468
|
-
const store = storeOf(req);
|
|
469
|
-
const token = await store.get(ctx, tokenId);
|
|
470
|
-
const own = token?.userId === ctx.userId;
|
|
471
|
-
if (!token || token.orgId !== orgId || !own && !hasPermission(ctx, "manage_org_members")) apiError(404, ApiErrorCode.NOT_FOUND, "API token not found");
|
|
472
|
-
await store.revoke(ctx, tokenId, own ? "owner" : "admin");
|
|
473
|
-
return noContent();
|
|
474
|
-
};
|
|
475
|
-
/**
|
|
476
|
-
* Revoke every live key `userId` holds, in one org or (no `orgId`) all of
|
|
477
|
-
* them. Call it when someone leaves an org or is disabled: the resolver already
|
|
478
|
-
* refuses those keys, but without this they would work again the moment the
|
|
479
|
-
* person is re-added or re-enabled.
|
|
480
|
-
*
|
|
481
|
-
* Best effort. The removal or disable has already committed, so a failure is
|
|
482
|
-
* logged rather than thrown.
|
|
483
|
-
*/
|
|
484
|
-
async function revokeUserApiTokens(store, ctx, userId, opts, log) {
|
|
485
|
-
if (!store) return;
|
|
486
|
-
try {
|
|
487
|
-
await store.revokeAllForUser(ctx, userId, opts);
|
|
488
|
-
} catch (err) {
|
|
489
|
-
log.error("Failed to revoke API tokens", {
|
|
490
|
-
component: "ApiTokens",
|
|
491
|
-
userId,
|
|
492
|
-
orgId: opts.orgId,
|
|
493
|
-
reason: opts.reason,
|
|
494
|
-
err: err instanceof Error ? err.message : String(err)
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
//#endregion
|
|
499
|
-
//#region ../server/src/handlers/orgMembers.ts
|
|
500
|
-
/**
|
|
501
|
-
* Org member role, permissions, and removal.
|
|
502
|
-
*
|
|
503
|
-
* Two gates run on every request: `requireManageOrgMembers` (owner+admin) and
|
|
504
|
-
* `requireActingOrg` (the URL `orgId` must equal `ctx.actingOrgId`, so
|
|
505
|
-
* cross-org member mutation is blocked even for an actor with permissions in
|
|
506
|
-
* another org).
|
|
507
|
-
*
|
|
508
|
-
* The sole-owner invariant applies to demotion and removal alike — an org with
|
|
509
|
-
* no owner is unadministrable, and removing an owner ends their role exactly as
|
|
510
|
-
* demoting them does.
|
|
511
|
-
*/
|
|
512
|
-
var ROSTER_PAGE_LIMIT = 200;
|
|
513
|
-
var MAX_ROSTER_PAGES = 100;
|
|
514
|
-
/**
|
|
515
|
-
* Whether anyone other than `exceptUserId` still owns the org.
|
|
516
|
-
*
|
|
517
|
-
* Both branches below need this and both used to scan the roster themselves —
|
|
518
|
-
* the sole-owner invariant is one rule, so it reads from one place.
|
|
519
|
-
*
|
|
520
|
-
* Pages rather than reading one 200-row window: a second owner sitting past the
|
|
521
|
-
* first page read as "no other owner", so the invariant refused a demotion or
|
|
522
|
-
* removal that was in fact safe. That failed closed, but it made the org
|
|
523
|
-
* unadministrable exactly when it had grown enough to need administering.
|
|
524
|
-
* Returns on the first owner found, so the common case is still one round-trip.
|
|
525
|
-
*/
|
|
526
|
-
async function hasAnotherOwner(req, ctx, orgId, exceptUserId) {
|
|
527
|
-
let cursor;
|
|
528
|
-
for (let page = 0; page < MAX_ROSTER_PAGES; page++) {
|
|
529
|
-
const result = await req.deps.orgs.listOrgMembers(ctx, orgId, {
|
|
530
|
-
limit: ROSTER_PAGE_LIMIT,
|
|
531
|
-
cursor
|
|
532
|
-
});
|
|
533
|
-
if (result.items.some((m) => m.role === "owner" && m.userId !== exceptUserId && !m.deletedAt)) return true;
|
|
534
|
-
cursor = result.nextCursor;
|
|
535
|
-
if (!cursor) return false;
|
|
536
|
-
}
|
|
537
|
-
req.log.warn("hasAnotherOwner hit the page cap — treating as sole owner", {
|
|
538
|
-
orgId,
|
|
539
|
-
pages: MAX_ROSTER_PAGES
|
|
540
|
-
});
|
|
541
|
-
return false;
|
|
542
|
-
}
|
|
543
|
-
/**
|
|
544
|
-
* Projects in `orgId` where `userId` is the only live owner — the ones that
|
|
545
|
-
* will have no owner once `removeOrgMember` cascades their membership rows.
|
|
546
|
-
*
|
|
547
|
-
* **Report, do not block.** Blocking puts an unbounded chore in front of
|
|
548
|
-
* offboarding — the cost scales with how many projects the departing person
|
|
549
|
-
* owned, which is backwards, because the most prolific people are the ones
|
|
550
|
-
* whose departure most needs to be clean. An offboarding that fails halfway is
|
|
551
|
-
* worse than an ownerless project: the person stays in the org while someone
|
|
552
|
-
* works through the backlog. Reclaim already exists to adopt an ownerless
|
|
553
|
-
* project, so the recovery path is built; what was missing was any signal that
|
|
554
|
-
* recovery was needed. Hence the event.
|
|
555
|
-
*
|
|
556
|
-
* MUST be called before the removal — afterwards the rows it reads are gone.
|
|
557
|
-
*/
|
|
558
|
-
async function findProjectsLosingSoleOwner(req, ctx, orgId, userId) {
|
|
559
|
-
const projects = req.deps.projects;
|
|
560
|
-
const orgProjects = await projects.listProjects(ctx, orgId, { limit: ROSTER_PAGE_LIMIT });
|
|
561
|
-
return (await Promise.all(orgProjects.items.map(async (project) => {
|
|
562
|
-
const owners = (await projects.listProjectMembers(ctx, project.id, { limit: ROSTER_PAGE_LIMIT })).items.filter((m) => m.role === "owner" && !m.deletedAt);
|
|
563
|
-
return owners.length === 1 && owners[0].userId === userId ? project : null;
|
|
564
|
-
}))).filter((p) => p !== null);
|
|
565
|
-
}
|
|
566
|
-
/**
|
|
567
|
-
* Body accepts either or both:
|
|
568
|
-
* - `{ role: OrgRole }` — change the member's role. Owner-only.
|
|
569
|
-
* - `{ permissions: OrgPermission[] }` — replace the member's grantable
|
|
570
|
-
* permissions. Owner/admin via `manage_org_members`. For `member`-role
|
|
571
|
-
* targets, only `MEMBER_ASSIGNABLE_PERMISSIONS` are accepted; promoting a
|
|
572
|
-
* member's permissions does NOT change their role.
|
|
573
|
-
*/
|
|
574
|
-
var updateOrgMember = async (req) => {
|
|
575
|
-
const { userId } = requireParams(req.params, "orgId", "userId");
|
|
576
|
-
requireManageOrgMembers(req);
|
|
577
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
578
|
-
const patch = await parseBody(req.request, UpdateOrgMemberBodySchema);
|
|
579
|
-
const orgs = req.deps.orgs;
|
|
580
|
-
const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
|
|
581
|
-
if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
|
|
582
|
-
if (!actorMember) apiError(403, ApiErrorCode.FORBIDDEN, "You are not a member of this organization.");
|
|
583
|
-
if (patch.role !== void 0 && patch.role !== target.role) {
|
|
584
|
-
if (!canChangeOrgRole({
|
|
585
|
-
actorMember,
|
|
586
|
-
role: patch.role
|
|
587
|
-
}) || !canChangeOrgRole({
|
|
588
|
-
actorMember,
|
|
589
|
-
role: target.role
|
|
590
|
-
})) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can change roles.");
|
|
591
|
-
if (target.role === "owner" && patch.role !== "owner" && !await hasAnotherOwner(req, ctx, orgId, target.userId)) apiError(409, ApiErrorCode.CONFLICT, "Cannot demote the sole owner of this organization. Promote another member to owner first.");
|
|
592
|
-
await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);
|
|
593
|
-
}
|
|
594
|
-
if (patch.permissions !== void 0) {
|
|
595
|
-
const effectiveRole = patch.role ?? target.role;
|
|
596
|
-
const valid = effectiveRole === "member" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);
|
|
597
|
-
const invalid = patch.permissions.filter((p) => !valid.has(p));
|
|
598
|
-
if (invalid.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Permissions [${invalid.join(", ")}] cannot be assigned to a ${effectiveRole}.`);
|
|
599
|
-
await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);
|
|
600
|
-
}
|
|
601
|
-
return noContent();
|
|
602
|
-
};
|
|
603
|
-
/**
|
|
604
|
-
* Remove a member from the org. Owner/admin via `manage_org_members`, same
|
|
605
|
-
* tenancy check as PATCH, and the same sole-owner invariant — removing the last
|
|
606
|
-
* owner would leave the org unadministrable.
|
|
607
|
-
*/
|
|
608
|
-
var removeOrgMember = async (req) => {
|
|
609
|
-
const { userId } = requireParams(req.params, "orgId", "userId");
|
|
610
|
-
requireManageOrgMembers(req);
|
|
611
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
612
|
-
const orgs = req.deps.orgs;
|
|
613
|
-
const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
|
|
614
|
-
if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
|
|
615
|
-
if (!canChangeOrgRole({
|
|
616
|
-
actorMember,
|
|
617
|
-
role: target.role
|
|
618
|
-
})) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can remove another owner.");
|
|
619
|
-
if (target.role === "owner" && !await hasAnotherOwner(req, ctx, orgId, target.userId)) apiError(409, ApiErrorCode.CONFLICT, "Cannot remove the sole owner of this organization. Promote another member to owner first.");
|
|
620
|
-
const orphaned = await findProjectsLosingSoleOwner(req, ctx, orgId, userId);
|
|
621
|
-
await orgs.removeOrgMember(ctx, orgId, userId);
|
|
622
|
-
if (orphaned.length > 0) {
|
|
623
|
-
await req.deps.events.emit({
|
|
624
|
-
type: "org_member.removed_orphaning_projects",
|
|
625
|
-
orgId,
|
|
626
|
-
userId,
|
|
627
|
-
projectIds: orphaned.map((p) => p.id),
|
|
628
|
-
...actorOf(ctx)
|
|
629
|
-
});
|
|
630
|
-
req.log.warn("Org member removal left projects without an owner", {
|
|
631
|
-
orgId,
|
|
632
|
-
userId,
|
|
633
|
-
actorId: ctx.userId,
|
|
634
|
-
projectCount: orphaned.length
|
|
635
|
-
});
|
|
636
|
-
}
|
|
637
|
-
const email = (await req.deps.auth.getUser(userId))?.email;
|
|
638
|
-
if (email) try {
|
|
639
|
-
await req.deps.invites.revokePendingByEmail(ctx, orgId, email);
|
|
640
|
-
} catch (err) {
|
|
641
|
-
req.log.error("Removed org member but failed to revoke their pending invites", {
|
|
642
|
-
orgId,
|
|
643
|
-
userId,
|
|
644
|
-
error: err instanceof Error ? err.message : String(err)
|
|
645
|
-
});
|
|
646
|
-
}
|
|
647
|
-
await revokeUserApiTokens(req.deps.data.apiTokens, ctx, userId, {
|
|
648
|
-
orgId,
|
|
649
|
-
reason: "member_removed"
|
|
650
|
-
}, req.log);
|
|
651
|
-
return noContent();
|
|
652
|
-
};
|
|
653
|
-
//#endregion
|
|
654
|
-
//#region ../server/src/handlers/reclaim.ts
|
|
655
|
-
/**
|
|
656
|
-
* Org owner/admin escape hatch for a project they cannot otherwise reach.
|
|
657
|
-
*
|
|
658
|
-
* Adds the actor as a co-owner and does NOT demote the existing owner.
|
|
659
|
-
* Idempotent: reclaiming twice is a no-op, because `addProjectMember`
|
|
660
|
-
* reactivates a soft-deleted row in place.
|
|
661
|
-
*/
|
|
662
|
-
var reclaimProject = async (req) => {
|
|
663
|
-
const { id } = requireParams(req.params, "id");
|
|
664
|
-
const { user, ctx, project } = await requireCanReclaim(req, id);
|
|
665
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
666
|
-
const member = {
|
|
667
|
-
projectId: id,
|
|
668
|
-
userId: user.id,
|
|
669
|
-
role: "owner",
|
|
670
|
-
joinedAt: now,
|
|
671
|
-
updatedAt: now,
|
|
672
|
-
updatedBy: ctx.userId || user.id,
|
|
673
|
-
deletedAt: null
|
|
674
|
-
};
|
|
675
|
-
await req.deps.projects.addProjectMember(ctx, member);
|
|
676
|
-
await req.deps.events.emit({
|
|
677
|
-
type: "project.reclaimed",
|
|
678
|
-
projectId: id,
|
|
679
|
-
orgId: project.orgId,
|
|
680
|
-
...actorOf(ctx),
|
|
681
|
-
priorVisibility: project.visibility
|
|
682
|
-
});
|
|
683
|
-
return created({ member });
|
|
684
|
-
};
|
|
685
|
-
//#endregion
|
|
686
|
-
//#region ../server/src/handlers/orgAssets.ts
|
|
687
|
-
/**
|
|
688
|
-
* Org branding assets, generic over kind (`logo`, `favicon`, …). Gated on
|
|
689
|
-
* `manage_org_members` — org branding is an org-admin action.
|
|
690
|
-
*
|
|
691
|
-
* Raster images and SVG are both accepted. Every input is rasterized to WebP by
|
|
692
|
-
* the shared transcoder inside the storage provider, so SVG carries no XSS
|
|
693
|
-
* surface: no vector blob is ever stored or served. The allowlist below is the
|
|
694
|
-
* HTTP gate; the rasterization is the security control.
|
|
695
|
-
*/
|
|
696
|
-
var ALLOWED_CONTENT_TYPES = /* @__PURE__ */ new Set([
|
|
697
|
-
"image/png",
|
|
698
|
-
"image/jpeg",
|
|
699
|
-
"image/webp",
|
|
700
|
-
"image/gif",
|
|
701
|
-
"image/svg+xml"
|
|
702
|
-
]);
|
|
703
|
-
function parseKind(params) {
|
|
704
|
-
const kind = OrgAssetKindSchema.safeParse(params.kind);
|
|
705
|
-
if (!kind.success) apiError(404, ApiErrorCode.NOT_FOUND, `Unknown asset kind '${params.kind}'`);
|
|
706
|
-
return kind.data;
|
|
707
|
-
}
|
|
708
|
-
var uploadOrgAsset = async (req) => {
|
|
709
|
-
requireManageOrgMembers(req);
|
|
710
|
-
const kind = parseKind(req.params);
|
|
711
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
712
|
-
if (!await req.deps.orgs.getOrg(ctx, orgId)) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
|
|
713
|
-
const { file } = requireUpload(await req.request.formData(), "image", {
|
|
714
|
-
maxBytes: req.deps.uploadLimits.maxImageFileSize,
|
|
715
|
-
contentTypes: {
|
|
716
|
-
allowed: ALLOWED_CONTENT_TYPES,
|
|
717
|
-
message: "Unsupported image type. Allowed: PNG, JPG, WebP, GIF, SVG"
|
|
718
|
-
},
|
|
719
|
-
label: "Image"
|
|
720
|
-
});
|
|
721
|
-
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
722
|
-
return { body: {
|
|
723
|
-
kind,
|
|
724
|
-
url: await orgAssetService(req.deps).saveAsset(ctx, orgId, kind, bytes, file.type)
|
|
725
|
-
} };
|
|
726
|
-
};
|
|
727
|
-
var removeOrgAsset = async (req) => {
|
|
728
|
-
requireManageOrgMembers(req);
|
|
729
|
-
const kind = parseKind(req.params);
|
|
730
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
731
|
-
await orgAssetService(req.deps).removeAsset(ctx, orgId, kind);
|
|
732
|
-
return noContent();
|
|
733
|
-
};
|
|
734
|
-
//#endregion
|
|
735
|
-
//#region ../server/src/handlers/shareLinks.ts
|
|
736
|
-
/**
|
|
737
|
-
* Share-link administration.
|
|
738
|
-
*
|
|
739
|
-
* Minting, listing and revoking are gated by `canEditDefinition` — the same
|
|
740
|
-
* authority that uploads versions and publishes. The raw token appears in the
|
|
741
|
-
* POST response and nowhere else; everything afterwards sees `hasToken: true`.
|
|
742
|
-
*
|
|
743
|
-
* **Responses go through `shaped`/`shapedCollection`, never `{ body }`.** A
|
|
744
|
-
* `ShareLink` carries `tokenHash`, and the response schema is what drops it —
|
|
745
|
-
* returning the record directly would put a credential hash on the wire with
|
|
746
|
-
* nothing failing at build time.
|
|
747
|
-
*/
|
|
748
|
-
function assertSharingEnabled(req) {
|
|
749
|
-
if (!req.deps.flag("ENABLE_SHARING")) apiError(404, ApiErrorCode.NOT_FOUND, "Share links are disabled on this instance (ENABLE_SHARING).");
|
|
750
|
-
}
|
|
751
|
-
/** `tokenHash` is dropped by the response schema, not by this function. */
|
|
752
|
-
function forClient(link) {
|
|
753
|
-
return {
|
|
754
|
-
...link,
|
|
755
|
-
hasToken: true
|
|
756
|
-
};
|
|
757
|
-
}
|
|
758
|
-
var listShareLinks = async (req) => {
|
|
759
|
-
assertSharingEnabled(req);
|
|
760
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
761
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
762
|
-
const page = await req.deps.shareLinks.listByDefinition(ctx, guid, parseListOptions(req.url));
|
|
763
|
-
return shapedCollection(ShareLinkResponseSchema, {
|
|
764
|
-
items: page.items.map(forClient),
|
|
765
|
-
nextCursor: page.nextCursor
|
|
766
|
-
});
|
|
767
|
-
};
|
|
768
|
-
var createShareLink = async (req) => {
|
|
769
|
-
assertSharingEnabled(req);
|
|
770
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
771
|
-
const { user } = requireCaller(req);
|
|
772
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
773
|
-
const input = await parseBody(req.request, CreateShareLinkInputSchema, { missingAs: {} });
|
|
774
|
-
const codec = tokenCodec(req.deps, "shareLinks");
|
|
775
|
-
const raw = codec.mintRawToken();
|
|
776
|
-
const link = {
|
|
777
|
-
id: randomUUID(),
|
|
778
|
-
definitionId: guid,
|
|
779
|
-
channel: input.channel,
|
|
780
|
-
tokenHash: codec.hashToken(raw),
|
|
781
|
-
name: input.name,
|
|
782
|
-
createdBy: user.id,
|
|
783
|
-
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
784
|
-
expiresAt: input.expiresAt ?? null,
|
|
785
|
-
revokedAt: null,
|
|
786
|
-
allowSolve: input.allowSolve,
|
|
787
|
-
maxSolves: input.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : input.maxSolves,
|
|
788
|
-
solveCount: 0
|
|
789
|
-
};
|
|
790
|
-
await req.deps.shareLinks.create(ctx, link);
|
|
791
|
-
return shaped(CreatedShareLinkResponseSchema, {
|
|
792
|
-
link: forClient(link),
|
|
793
|
-
token: raw
|
|
794
|
-
}, 201);
|
|
795
|
-
};
|
|
796
|
-
/**
|
|
797
|
-
* Revoke a share link (soft-delete). Idempotent, gated by `canEditDefinition`.
|
|
798
|
-
*
|
|
799
|
-
* The link must belong to this definition, so one definition's editor cannot
|
|
800
|
-
* revoke another's link with a guessed or leaked linkId.
|
|
801
|
-
*/
|
|
802
|
-
var revokeShareLink = async (req) => {
|
|
803
|
-
assertSharingEnabled(req);
|
|
804
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
805
|
-
const linkId = parseParam(req.params.linkId, GuidSchema, "link ID");
|
|
806
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
807
|
-
const existing = await req.deps.shareLinks.getById(ctx, linkId);
|
|
808
|
-
if (!existing || existing.definitionId !== guid) apiError(404, ApiErrorCode.NOT_FOUND, "Share link not found.");
|
|
809
|
-
await req.deps.shareLinks.revoke(ctx, linkId);
|
|
810
|
-
return noContent();
|
|
811
|
-
};
|
|
812
|
-
//#endregion
|
|
813
|
-
//#region ../server/src/handlers/definitions.ts
|
|
814
|
-
/**
|
|
815
|
-
* Definition handlers: the collection, one definition's detail and metadata,
|
|
816
|
-
* its live schema, cover image, and the publish channel.
|
|
817
|
-
*
|
|
818
|
-
* Solve and the two compute routes stay unwrapped deliberately — they stream
|
|
819
|
-
* and mark their own metrics, which the `ApiResponse` envelope does not model.
|
|
820
|
-
*/
|
|
821
|
-
var LISTABLE_STATUSES = [
|
|
822
|
-
"draft",
|
|
823
|
-
"published",
|
|
824
|
-
"archived"
|
|
825
|
-
];
|
|
826
|
-
/**
|
|
827
|
-
* Definitions the caller can view. Visibility is resolved into the query via
|
|
828
|
-
* `projectIds`, so `limit`/`nextCursor` describe the filtered set.
|
|
829
|
-
*/
|
|
830
|
-
var listDefinitions = async (req) => {
|
|
831
|
-
const { ctx } = requireCaller(req);
|
|
832
|
-
const statusParam = req.url.searchParams.get("status");
|
|
833
|
-
if (statusParam && !LISTABLE_STATUSES.includes(statusParam)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `status must be one of: ${LISTABLE_STATUSES.join(", ")}`);
|
|
834
|
-
const page = await listVisibleDefinitions(ctx, {
|
|
835
|
-
...parseDefinitionListOptions(req.url),
|
|
836
|
-
projectId: req.url.searchParams.get("projectId") ?? void 0,
|
|
837
|
-
statuses: statusParam ? [statusParam] : void 0
|
|
838
|
-
}, req.deps);
|
|
839
|
-
return collection({
|
|
840
|
-
items: page.items.map(toDefinitionListItem),
|
|
841
|
-
nextCursor: page.nextCursor
|
|
842
|
-
});
|
|
843
|
-
};
|
|
844
|
-
function parseTags(raw) {
|
|
845
|
-
if (!raw) return void 0;
|
|
846
|
-
const tags = raw.split(",").map((t) => t.trim()).filter(Boolean);
|
|
847
|
-
return tags.length ? tags : void 0;
|
|
848
|
-
}
|
|
849
|
-
/** Create a definition — metadata and the Grasshopper file in one request. */
|
|
850
|
-
var createDefinition = async (req) => {
|
|
851
|
-
const { ctx, user } = requireCaller(req);
|
|
852
|
-
const form = await req.request.formData();
|
|
853
|
-
const { file, extension } = requireUpload(form, "file", {
|
|
854
|
-
maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
|
|
855
|
-
extensions: GH_EXTENSIONS,
|
|
856
|
-
label: "Grasshopper (.gh or .ghx) file"
|
|
857
|
-
});
|
|
858
|
-
const imageFile = form.get("image");
|
|
859
|
-
const maxImageBytes = req.deps.uploadLimits.maxImageFileSize;
|
|
860
|
-
if (imageFile instanceof File && imageFile.size > maxImageBytes) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Image too large. Max size: ${maxImageBytes / 1048576} MB`);
|
|
861
|
-
let projectId = formText(form, "projectId");
|
|
862
|
-
if (!projectId) {
|
|
863
|
-
if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
|
|
864
|
-
const { projects } = await resolveAccessibleProjects(ctx, req.deps);
|
|
865
|
-
const fallback = projects.find((p) => p.orgId === ctx.actingOrgId);
|
|
866
|
-
if (!fallback) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No accessible project — pass projectId.");
|
|
867
|
-
projectId = fallback.id;
|
|
868
|
-
}
|
|
869
|
-
const { project } = await requireCanCreateDefinition(req, projectId);
|
|
870
|
-
const parsed = CreateDefinitionInputSchema.safeParse({
|
|
871
|
-
displayName: formText(form, "displayName"),
|
|
872
|
-
description: formText(form, "description"),
|
|
873
|
-
category: formText(form, "category"),
|
|
874
|
-
coverImage: formText(form, "coverImage"),
|
|
875
|
-
tags: parseTags(formText(form, "tags")),
|
|
876
|
-
projectId,
|
|
877
|
-
computeServerId: formText(form, "computeServerId")
|
|
878
|
-
});
|
|
879
|
-
if (!parsed.success) throwZodError(parsed.error);
|
|
880
|
-
const guid = randomUUID();
|
|
881
|
-
const fileData = new Uint8Array(await file.arrayBuffer());
|
|
882
|
-
const server = await resolveServerForOrg(ctx, project.orgId, req.deps.computeServer, { definitionPin: parsed.data.computeServerId ?? null });
|
|
883
|
-
const schema = await fetchSchemaFromCompute(fileData, server);
|
|
884
|
-
const service = definitionService(req.deps);
|
|
885
|
-
const { record, version } = await service.create(ctx, {
|
|
886
|
-
guid,
|
|
887
|
-
projectId: parsed.data.projectId,
|
|
888
|
-
ownerId: user.id,
|
|
889
|
-
fileExt: extension.slice(1),
|
|
890
|
-
originalFilename: file.name,
|
|
891
|
-
computeServerId: parsed.data.computeServerId,
|
|
892
|
-
displayName: parsed.data.displayName.trim(),
|
|
893
|
-
description: parsed.data.description,
|
|
894
|
-
category: parsed.data.category,
|
|
895
|
-
tags: parsed.data.tags,
|
|
896
|
-
coverImage: parsed.data.coverImage
|
|
897
|
-
}, fileData, schema);
|
|
898
|
-
let coverImage = record.coverImage;
|
|
899
|
-
if (imageFile instanceof File && imageFile.size > 0) {
|
|
900
|
-
const imageData = new Uint8Array(await imageFile.arrayBuffer());
|
|
901
|
-
coverImage = await service.saveCoverImage(ctx, guid, imageData);
|
|
902
|
-
}
|
|
903
|
-
return created({
|
|
904
|
-
guid,
|
|
905
|
-
version,
|
|
906
|
-
coverImage
|
|
907
|
-
});
|
|
908
|
-
};
|
|
909
|
-
/** `schema` is a large blob, served on demand by `/versions/{versionId}/schema`. */
|
|
910
|
-
function versionSummary(v) {
|
|
911
|
-
return {
|
|
912
|
-
id: v.id,
|
|
913
|
-
versionNumber: v.versionNumber,
|
|
914
|
-
uploadedAt: v.uploadedAt,
|
|
915
|
-
uploadedBy: v.uploadedBy,
|
|
916
|
-
changeNote: v.changeNote
|
|
917
|
-
};
|
|
918
|
-
}
|
|
919
|
-
/** The record plus its live and draft version summaries. */
|
|
920
|
-
var getDefinition = async (req) => {
|
|
921
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
922
|
-
const { ctx } = requireCaller(req);
|
|
923
|
-
const record = await getVisibleDefinition(ctx, guid, req.deps);
|
|
924
|
-
if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
925
|
-
const meta = req.deps.definitionMeta;
|
|
926
|
-
const [liveVersion, draftVersion] = await Promise.all([record.liveVersionId ? meta.getVersion(ctx, record.liveVersionId) : null, record.draftVersionId ? meta.getVersion(ctx, record.draftVersionId) : null]);
|
|
927
|
-
return { body: {
|
|
928
|
-
...record,
|
|
929
|
-
liveVersion: liveVersion ? versionSummary(liveVersion) : null,
|
|
930
|
-
draftVersion: draftVersion ? versionSummary(draftVersion) : null
|
|
931
|
-
} };
|
|
932
|
-
};
|
|
933
|
-
/** Soft-delete the definition; versions and blobs are wiped with it. */
|
|
934
|
-
var deleteDefinition = async (req) => {
|
|
935
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
936
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
937
|
-
await definitionService(req.deps).delete(ctx, guid);
|
|
938
|
-
return noContent();
|
|
939
|
-
};
|
|
940
|
-
/** Metadata only. New versions POST to `/versions`. */
|
|
941
|
-
var updateDefinition = async (req) => {
|
|
942
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
943
|
-
const { ctx, record } = await requireEditableDefinition(req, guid);
|
|
944
|
-
const patch = await parseBody(req.request, UpdateMetadataInputSchema);
|
|
945
|
-
if (patch.projectId && patch.projectId !== record.projectId) await requireCanCreateDefinition(req, patch.projectId);
|
|
946
|
-
await definitionService(req.deps).updateMeta(ctx, guid, patch);
|
|
947
|
-
return noContent();
|
|
948
|
-
};
|
|
949
|
-
/**
|
|
950
|
-
* Convenience alias for the live version's schema — the call a client makes
|
|
951
|
-
* before solving. The canonical location is `/versions/{versionId}/schema`;
|
|
952
|
-
* this resolves the `live` pointer for you.
|
|
953
|
-
*/
|
|
954
|
-
var getDefinitionSchema = async (req) => {
|
|
955
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
956
|
-
const { ctx } = requireCaller(req);
|
|
957
|
-
const record = await getVisibleDefinition(ctx, guid, req.deps);
|
|
958
|
-
if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
959
|
-
if (!record.liveVersionId) apiError(404, ApiErrorCode.NOT_FOUND, "This definition has no published version");
|
|
960
|
-
const version = await loadVisibleVersion(ctx, guid, record.liveVersionId, req.deps);
|
|
961
|
-
if (!version?.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for the live version");
|
|
962
|
-
return { body: version.schema };
|
|
963
|
-
};
|
|
964
|
-
/**
|
|
965
|
-
* Advance the live channel. Body `{ versionId? }` targets a specific version
|
|
966
|
-
* (rollback or forward-roll); omit it to promote the current draft.
|
|
967
|
-
*/
|
|
968
|
-
var publishDefinition = async (req) => {
|
|
969
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
970
|
-
const { versionId } = await parseBody(req.request, PublishVersionInputSchema, { missingAs: {} });
|
|
971
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
972
|
-
return { body: { version: await definitionService(req.deps).publish(ctx, guid, versionId) } };
|
|
973
|
-
};
|
|
974
|
-
/** Upload a cover image. */
|
|
975
|
-
var uploadDefinitionImage = async (req) => {
|
|
976
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
977
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
978
|
-
const { file } = requireUpload(await req.request.formData(), "image", {
|
|
979
|
-
maxBytes: req.deps.uploadLimits.maxImageFileSize,
|
|
980
|
-
label: "Image"
|
|
981
|
-
});
|
|
982
|
-
const data = new Uint8Array(await file.arrayBuffer());
|
|
983
|
-
return { body: { coverImage: await definitionService(req.deps).saveCoverImage(ctx, guid, data) } };
|
|
984
|
-
};
|
|
985
|
-
//#endregion
|
|
986
|
-
//#region ../server/src/handlers/definitionVersions.ts
|
|
987
|
-
/**
|
|
988
|
-
* Version handlers: list, upload, read, delete, and a version's cached schema.
|
|
989
|
-
*
|
|
990
|
-
* Reads resolve through `getVisibleDefinition` / `loadVisibleVersion`, which
|
|
991
|
-
* return `null` rather than throwing, so an invisible definition answers 404.
|
|
992
|
-
* A 403 anywhere here would confirm a guid exists across a tenant boundary.
|
|
993
|
-
*/
|
|
994
|
-
var listVersions = async (req) => {
|
|
995
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
996
|
-
const { ctx } = requireCaller(req);
|
|
997
|
-
if (!await getVisibleDefinition(ctx, guid, req.deps)) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
998
|
-
return collection(await req.deps.definitionMeta.listVersions(ctx, guid, parseListOptions(req.url)));
|
|
999
|
-
};
|
|
1000
|
-
/** Upload a new version. Advances `draft`; `live` is unchanged until publish. */
|
|
1001
|
-
var uploadVersion = async (req) => {
|
|
1002
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
1003
|
-
const form = await req.request.formData();
|
|
1004
|
-
const { file, extension } = requireUpload(form, "file", {
|
|
1005
|
-
maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
|
|
1006
|
-
extensions: GH_EXTENSIONS,
|
|
1007
|
-
label: "Grasshopper (.gh or .ghx) file"
|
|
1008
|
-
});
|
|
1009
|
-
const changeNote = formText(form, "changeNote", { maxLength: 1e3 });
|
|
1010
|
-
const { ctx, record, project } = await requireEditableDefinition(req, guid);
|
|
1011
|
-
const data = new Uint8Array(await file.arrayBuffer());
|
|
1012
|
-
const server = await resolveServerForOrg(ctx, project?.orgId ?? null, req.deps.computeServer, { definitionPin: record.computeServerId ?? null });
|
|
1013
|
-
const schema = await fetchSchemaFromCompute(data, server);
|
|
1014
|
-
return created({ version: await definitionService(req.deps).uploadVersion(ctx, guid, data, extension.slice(1), file.name, schema, changeNote) });
|
|
1015
|
-
};
|
|
1016
|
-
/**
|
|
1017
|
-
* Version metadata. `schema` is excluded and served by the `/schema`
|
|
1018
|
-
* sub-resource, so a version read never carries a several-hundred-KB blob.
|
|
1019
|
-
*/
|
|
1020
|
-
var getVersion = async (req) => {
|
|
1021
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
1022
|
-
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
1023
|
-
const { ctx } = requireCaller(req);
|
|
1024
|
-
const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
|
|
1025
|
-
if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
|
|
1026
|
-
const { schema: _schema, ...rest } = version;
|
|
1027
|
-
return { body: rest };
|
|
1028
|
-
};
|
|
1029
|
-
/**
|
|
1030
|
-
* Delete an old version. The store throws 409 if the version is currently
|
|
1031
|
-
* referenced by `liveVersionId` or `draftVersionId` — repoint first.
|
|
1032
|
-
*/
|
|
1033
|
-
var deleteVersion = async (req) => {
|
|
1034
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
1035
|
-
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
1036
|
-
const { ctx } = await requireEditableDefinition(req, guid);
|
|
1037
|
-
await definitionService(req.deps).deleteVersion(ctx, guid, versionId);
|
|
1038
|
-
return noContent();
|
|
1039
|
-
};
|
|
1040
|
-
/**
|
|
1041
|
-
* The UI schema cached on this version at upload. Reads what is stored — no
|
|
1042
|
-
* Rhino.Compute round-trip, unlike the pre-upload `POST /api/v1/compute/schema`.
|
|
1043
|
-
*
|
|
1044
|
-
* Schemas belong to a version, so this is the canonical location;
|
|
1045
|
-
* `/definitions/{guid}/schema` is an alias for the live one.
|
|
1046
|
-
*/
|
|
1047
|
-
var getVersionSchema = async (req) => {
|
|
1048
|
-
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
1049
|
-
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
1050
|
-
const { ctx } = requireCaller(req);
|
|
1051
|
-
const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
|
|
1052
|
-
if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
|
|
1053
|
-
if (!version.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for this version");
|
|
1054
|
-
return { body: version.schema };
|
|
1055
|
-
};
|
|
1056
|
-
//#endregion
|
|
1057
|
-
//#region ../server/src/handlers/projects.ts
|
|
1058
|
-
/**
|
|
1059
|
-
* Project handlers: the collection, and a single project's detail and settings.
|
|
1060
|
-
*
|
|
1061
|
-
* `listProjects` was authored against `resolveAccessibleProjects`, not lifted
|
|
1062
|
-
* from the pre-v1 handler: that one listed every project in the acting org with
|
|
1063
|
-
* no `canView` filter and had no UI caller, so it carried no evidence of being
|
|
1064
|
-
* correct. The rest are lifted, logic intact, with reads moved onto `req.deps`.
|
|
1065
|
-
*/
|
|
1066
|
-
var listProjects = async (req) => {
|
|
1067
|
-
const { ctx } = requireCaller(req);
|
|
1068
|
-
const { projects } = await resolveAccessibleProjects(ctx, req.deps);
|
|
1069
|
-
const { limit, cursor } = parseListOptions(req.url);
|
|
1070
|
-
const start = cursor ? Number(cursor) : 0;
|
|
1071
|
-
if (!Number.isInteger(start) || start < 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid cursor");
|
|
1072
|
-
const items = projects.slice(start, start + (limit ?? projects.length));
|
|
1073
|
-
const nextIndex = start + items.length;
|
|
1074
|
-
return collection({
|
|
1075
|
-
items,
|
|
1076
|
-
nextCursor: nextIndex < projects.length ? String(nextIndex) : void 0
|
|
1077
|
-
});
|
|
1078
|
-
};
|
|
1079
|
-
var createProject = async (req) => {
|
|
1080
|
-
const { ctx, user } = requireCaller(req);
|
|
1081
|
-
if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
|
|
1082
|
-
await requireCanCreateProject(req, ctx.actingOrgId);
|
|
1083
|
-
const input = await parseBody(req.request, CreateProjectBodySchema);
|
|
1084
|
-
if (input.visibility === "platform" && !hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can create a project with platform visibility.");
|
|
1085
|
-
const autoJoinOnUpload = input.autoJoinOnUpload ?? false;
|
|
1086
|
-
const flagIssues = validateProjectFlags({
|
|
1087
|
-
visibility: input.visibility,
|
|
1088
|
-
autoJoinOnUpload
|
|
1089
|
-
});
|
|
1090
|
-
if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
|
|
1091
|
-
return created(await createProjectWithUniqueSlug(req.deps.projects, {
|
|
1092
|
-
id: randomUUID(),
|
|
1093
|
-
orgId: ctx.actingOrgId,
|
|
1094
|
-
name: input.name,
|
|
1095
|
-
description: input.description,
|
|
1096
|
-
visibility: input.visibility,
|
|
1097
|
-
ownerId: user.id,
|
|
1098
|
-
createdBy: user.id,
|
|
1099
|
-
updatedBy: user.id,
|
|
1100
|
-
autoJoinOnUpload
|
|
1101
|
-
}, {
|
|
1102
|
-
writeCtx: ctx,
|
|
1103
|
-
fallbackSlug: "project",
|
|
1104
|
-
conflictScope: "this organization"
|
|
1105
|
-
}));
|
|
1106
|
-
};
|
|
1107
|
-
/**
|
|
1108
|
-
* Project detail plus the caller's effective capabilities on it.
|
|
1109
|
-
*
|
|
1110
|
-
* A project the caller cannot view returns 404, not 403 — `403` would confirm
|
|
1111
|
-
* the id exists to anyone probing.
|
|
1112
|
-
*/
|
|
1113
|
-
var getProject = async (req) => {
|
|
1114
|
-
const { id } = requireParams(req.params, "id");
|
|
1115
|
-
const { ctx } = requireCaller(req);
|
|
1116
|
-
const project = await req.deps.projects.getProject(SYSTEM_CONTEXT, id);
|
|
1117
|
-
if (!project || outsideTokenOrg(ctx, project.orgId)) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1118
|
-
const [orgMembers, projectMembers, grants] = await Promise.all([
|
|
1119
|
-
req.deps.orgs.getOrgMembersFor(SYSTEM_CONTEXT, [project.orgId], ctx.userId),
|
|
1120
|
-
req.deps.projects.getProjectMembersFor(SYSTEM_CONTEXT, [project.id], ctx.userId),
|
|
1121
|
-
project.visibility === "platform" ? req.deps.platformProjectGrants.listByProject(SYSTEM_CONTEXT, project.id) : Promise.resolve([])
|
|
1122
|
-
]);
|
|
1123
|
-
const member = projectMembers.get(project.id) ?? null;
|
|
1124
|
-
const input = projectAccessInputFromRowsWith(req, ctx, project, {
|
|
1125
|
-
member,
|
|
1126
|
-
orgMember: orgMembers.get(project.orgId) ?? null,
|
|
1127
|
-
platformGrants: grants
|
|
1128
|
-
});
|
|
1129
|
-
if (!canView(input)) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1130
|
-
return { body: {
|
|
1131
|
-
...project,
|
|
1132
|
-
role: member?.role ?? null,
|
|
1133
|
-
canEdit: canEdit(input),
|
|
1134
|
-
canSolve: canSolve(input)
|
|
1135
|
-
} };
|
|
1136
|
-
};
|
|
1137
|
-
var updateProject = async (req) => {
|
|
1138
|
-
const { id } = requireParams(req.params, "id");
|
|
1139
|
-
const { ctx, project: existing } = await requireCanEditProjectSettings(req, id);
|
|
1140
|
-
const input = await parseBody(req.request, UpdateProjectBodySchema);
|
|
1141
|
-
if (input.visibility === "platform" && existing.visibility !== "platform") {
|
|
1142
|
-
if (!hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can give a project platform visibility.");
|
|
1143
|
-
}
|
|
1144
|
-
if (input.visibility === "public" && existing.visibility !== "public") {
|
|
1145
|
-
const orgMember = await req.deps.orgs.getOrgMember(ctx, existing.orgId, ctx.userId);
|
|
1146
|
-
if (!withAdminBypass(ctx.platformPermissions, () => canChangeVisibilityToPublic({ orgMember }))) apiError(403, ApiErrorCode.FORBIDDEN, "Only org owners or admins can make a project public.");
|
|
1147
|
-
}
|
|
1148
|
-
const flagIssues = validateProjectFlags({
|
|
1149
|
-
visibility: input.visibility ?? existing.visibility,
|
|
1150
|
-
autoJoinOnUpload: input.autoJoinOnUpload ?? existing.autoJoinOnUpload
|
|
1151
|
-
});
|
|
1152
|
-
if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
|
|
1153
|
-
const patch = {};
|
|
1154
|
-
if (input.name !== void 0) {
|
|
1155
|
-
patch.name = input.name;
|
|
1156
|
-
patch.slug = slugify(input.name);
|
|
1157
|
-
}
|
|
1158
|
-
if (input.description !== void 0) patch.description = input.description ?? void 0;
|
|
1159
|
-
if (input.visibility !== void 0) patch.visibility = input.visibility;
|
|
1160
|
-
if (input.autoJoinOnUpload !== void 0) patch.autoJoinOnUpload = input.autoJoinOnUpload;
|
|
1161
|
-
await req.deps.projects.updateProject(ctx, id, patch);
|
|
1162
|
-
return noContent();
|
|
1163
|
-
};
|
|
1164
|
-
var deleteProject = async (req) => {
|
|
1165
|
-
const { id } = requireParams(req.params, "id");
|
|
1166
|
-
const { ctx } = requireCaller(req);
|
|
1167
|
-
await requireCanManage(req, id);
|
|
1168
|
-
await req.deps.projects.deleteProject(ctx, id);
|
|
1169
|
-
return noContent();
|
|
1170
|
-
};
|
|
1171
|
-
//#endregion
|
|
1172
|
-
//#region ../server/src/handlers/projectMembers.ts
|
|
1173
|
-
/**
|
|
1174
|
-
* Project membership: list, add, change role, remove.
|
|
1175
|
-
*
|
|
1176
|
-
* Every method here gates on `requireCanManage(req, id, 'members')`. The
|
|
1177
|
-
* owner-count preconditions on PATCH and DELETE come from `checkOwnerRemoval`,
|
|
1178
|
-
* a pure rules function, so demotion and removal cannot drift apart — a sole
|
|
1179
|
-
* owner demoting themselves locks the project exactly as removing themselves
|
|
1180
|
-
* would.
|
|
1181
|
-
*/
|
|
1182
|
-
var listProjectMembers = async (req) => {
|
|
1183
|
-
const { id } = requireParams(req.params, "id");
|
|
1184
|
-
const { ctx } = requireCaller(req);
|
|
1185
|
-
await requireCanManage(req, id, "members");
|
|
1186
|
-
return collection(await req.deps.projects.listProjectMembers(ctx, id, parseListOptions(req.url)));
|
|
1187
|
-
};
|
|
1188
|
-
var addProjectMember = async (req) => {
|
|
1189
|
-
const { id } = requireParams(req.params, "id");
|
|
1190
|
-
const { ctx } = requireCaller(req);
|
|
1191
|
-
await requireCanManage(req, id, "members");
|
|
1192
|
-
const input = await parseBody(req.request, AddProjectMemberBodySchema);
|
|
1193
|
-
const project = await req.deps.projects.getProject(ctx, id);
|
|
1194
|
-
if (!project) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1195
|
-
await requireTargetIsOrgMember(req, project.orgId, input.userId);
|
|
1196
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1197
|
-
const member = {
|
|
1198
|
-
projectId: id,
|
|
1199
|
-
userId: input.userId,
|
|
1200
|
-
role: input.role,
|
|
1201
|
-
joinedAt: now,
|
|
1202
|
-
updatedAt: now,
|
|
1203
|
-
updatedBy: ctx.userId || input.userId,
|
|
1204
|
-
deletedAt: null
|
|
1205
|
-
};
|
|
1206
|
-
await req.deps.projects.addProjectMember(ctx, member);
|
|
1207
|
-
return created(member);
|
|
1208
|
-
};
|
|
1209
|
-
/**
|
|
1210
|
-
* Guard the owner count before a demotion or removal goes through.
|
|
1211
|
-
*
|
|
1212
|
-
* `?confirm=true` is what distinguishes "I meant to do this" from a misclick;
|
|
1213
|
-
* the sole-owner case has no confirmation, because there is no state the
|
|
1214
|
-
* caller could confirm into that leaves the project manageable.
|
|
1215
|
-
*/
|
|
1216
|
-
async function assertOwnerRemovable(req, projectId, target, action) {
|
|
1217
|
-
const { ctx } = requireCaller(req);
|
|
1218
|
-
const page = await req.deps.projects.listProjectMembers(ctx, projectId, { limit: 200 });
|
|
1219
|
-
const decision = checkOwnerRemoval({
|
|
1220
|
-
target: { role: target.role },
|
|
1221
|
-
allMembers: page.items.map((m) => ({ role: m.role })),
|
|
1222
|
-
confirmed: req.url.searchParams.get("confirm") === "true"
|
|
1223
|
-
});
|
|
1224
|
-
if (decision === "sole_owner") apiError(409, ApiErrorCode.CONFLICT, `Cannot ${action} the sole owner of a project. Assign another owner first, or use reclaim to add a co-owner.`);
|
|
1225
|
-
if (decision === "needs_confirm") apiError(409, ApiErrorCode.CONFLICT, `${action === "demote" ? "Demoting" : "Removing"} another project owner requires explicit confirmation. Retry with ?confirm=true.`);
|
|
1226
|
-
}
|
|
1227
|
-
var updateProjectMemberRole = async (req) => {
|
|
1228
|
-
const { id, userId } = requireParams(req.params, "id", "userId");
|
|
1229
|
-
const { ctx } = requireCaller(req);
|
|
1230
|
-
await requireCanManage(req, id, "members");
|
|
1231
|
-
const { role } = await parseBody(req.request, UpdateProjectMemberBodySchema);
|
|
1232
|
-
if (role !== "owner") {
|
|
1233
|
-
const target = await req.deps.projects.getProjectMember(ctx, id, userId);
|
|
1234
|
-
if (target?.role === "owner") await assertOwnerRemovable(req, id, target, "demote");
|
|
1235
|
-
}
|
|
1236
|
-
await req.deps.projects.updateProjectMemberRole(ctx, id, userId, role);
|
|
1237
|
-
return noContent();
|
|
1238
|
-
};
|
|
1239
|
-
var removeProjectMember = async (req) => {
|
|
1240
|
-
const { id, userId } = requireParams(req.params, "id", "userId");
|
|
1241
|
-
const { ctx } = requireCaller(req);
|
|
1242
|
-
await requireCanManage(req, id, "members");
|
|
1243
|
-
const target = await req.deps.projects.getProjectMember(ctx, id, userId);
|
|
1244
|
-
if (!target) return noContent();
|
|
1245
|
-
if (target.role === "owner") await assertOwnerRemovable(req, id, target, "remove");
|
|
1246
|
-
await req.deps.projects.removeProjectMember(ctx, id, userId);
|
|
1247
|
-
return noContent();
|
|
1248
|
-
};
|
|
1249
|
-
//#endregion
|
|
1250
|
-
//#region ../server/src/handlers/orgCompute.ts
|
|
1251
|
-
/**
|
|
1252
|
-
* Per-org compute config: this org's own servers (`scope: 'org'`) and its
|
|
1253
|
-
* default selection (`orgDefaults[orgId]`). Platform servers and the global
|
|
1254
|
-
* default are read-only here — `manage_compute` owns those via `/api/admin/compute`.
|
|
1255
|
-
*
|
|
1256
|
-
* Authorization: org `owner`/`admin` with `manage_org_compute`, plus the acting-org
|
|
1257
|
-
* tenancy check. Gated by `ALLOW_ORG_COMPUTE_OVERRIDE`; when off, both methods 403.
|
|
1258
|
-
*
|
|
1259
|
-
* **`apiKey` merge semantics are the trap here.** Omitted preserves the stored
|
|
1260
|
-
* key, `null` clears it, a string replaces it — and `/api/admin/compute` must
|
|
1261
|
-
* agree, which is why the merge lives in `@selvajs/server/compute`, not inline.
|
|
1262
|
-
*/
|
|
1263
|
-
function requireFlag(req) {
|
|
1264
|
-
if (!req.deps.flag("ALLOW_ORG_COMPUTE_OVERRIDE")) apiError(403, ApiErrorCode.FORBIDDEN, "Per-org compute override is disabled on this instance (ALLOW_ORG_COMPUTE_OVERRIDE).");
|
|
1265
|
-
}
|
|
1266
|
-
var getOrgCompute = async (req) => {
|
|
1267
|
-
requireFlag(req);
|
|
1268
|
-
requireManageOrgCompute(req);
|
|
1269
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1270
|
-
const config = await req.deps.computeServer.getConfig(ctx, { scopeToOrgId: orgId });
|
|
1271
|
-
const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => ({
|
|
1272
|
-
...s,
|
|
1273
|
-
hasApiKey: !!s.hasApiKey
|
|
1274
|
-
}));
|
|
1275
|
-
const catalog = config.servers.map((s) => ({
|
|
1276
|
-
id: s.id,
|
|
1277
|
-
label: s.label,
|
|
1278
|
-
serverUrl: s.serverUrl,
|
|
1279
|
-
scope: s.scope,
|
|
1280
|
-
source: isPlatformServer(s) ? "platform" : "org",
|
|
1281
|
-
timeoutMs: s.timeoutMs,
|
|
1282
|
-
retryCount: s.retryCount
|
|
1283
|
-
}));
|
|
1284
|
-
return shaped(OrgComputeResponseSchema, {
|
|
1285
|
-
servers: owned,
|
|
1286
|
-
defaultServerId: config.orgDefaults?.[orgId] ?? null,
|
|
1287
|
-
globalDefaultServerId: config.defaultServerId ?? null,
|
|
1288
|
-
catalog
|
|
1289
|
-
});
|
|
1290
|
-
};
|
|
1291
|
-
var updateOrgCompute = async (req) => {
|
|
1292
|
-
requireFlag(req);
|
|
1293
|
-
requireManageOrgCompute(req);
|
|
1294
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1295
|
-
const incoming = await parseBody(req.request, OrgComputePatchBodySchema);
|
|
1296
|
-
validateIncomingServers(incoming.servers);
|
|
1297
|
-
const provider = req.deps.computeServer;
|
|
1298
|
-
const existing = await provider.getConfig(ctx, { includeApiKeys: true });
|
|
1299
|
-
const storedKeys = storedKeysById(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId));
|
|
1300
|
-
const next = incoming.servers.map((s) => ({
|
|
1301
|
-
id: s.id,
|
|
1302
|
-
scope: "org",
|
|
1303
|
-
ownerOrgId: orgId,
|
|
1304
|
-
label: s.label,
|
|
1305
|
-
serverUrl: s.serverUrl,
|
|
1306
|
-
timeoutMs: s.timeoutMs,
|
|
1307
|
-
retryCount: s.retryCount,
|
|
1308
|
-
apiKey: resolveApiKey(s.apiKey, storedKeys.get(s.id))
|
|
1309
|
-
}));
|
|
1310
|
-
if (typeof incoming.defaultServerId === "string") {
|
|
1311
|
-
const projected = {
|
|
1312
|
-
servers: [...existing.servers.filter((s) => !(isOrgServer(s) && s.ownerOrgId === orgId)), ...next],
|
|
1313
|
-
defaultServerId: existing.defaultServerId,
|
|
1314
|
-
orgDefaults: existing.orgDefaults
|
|
1315
|
-
};
|
|
1316
|
-
if (!new Set(serversVisibleTo(projected, orgId).map((s) => s.id)).has(incoming.defaultServerId)) apiError(400, ApiErrorCode.VALIDATION_FAILED, "defaultServerId must reference a server visible to this organization");
|
|
1317
|
-
}
|
|
1318
|
-
await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);
|
|
1319
|
-
evictChangedServers(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId), next, req.deps.evictComputeClient);
|
|
1320
|
-
return noContent();
|
|
1321
|
-
};
|
|
1322
|
-
//#endregion
|
|
1323
|
-
//#region ../server/src/handlers/invite-lookup.ts
|
|
1324
|
-
/**
|
|
1325
|
-
* Find an invite by id, confirming it belongs to `orgId`.
|
|
1326
|
-
*
|
|
1327
|
-
* `manage_org_members` is org-scoped, so a permitted caller must not reach an
|
|
1328
|
-
* invite in another org. Neither store scopes `revoke()` by acting org, so
|
|
1329
|
-
* every route that mutates an invite by id has to establish ownership first —
|
|
1330
|
-
* hence one shared paged scan rather than a copy per route.
|
|
1331
|
-
*/
|
|
1332
|
-
async function findPendingInviteInOrg(ctx, orgId, id, store) {
|
|
1333
|
-
let cursor;
|
|
1334
|
-
do {
|
|
1335
|
-
const page = await store.listByOrg(ctx, orgId, {
|
|
1336
|
-
limit: 200,
|
|
1337
|
-
cursor
|
|
1338
|
-
});
|
|
1339
|
-
const match = page.items.find((i) => i.id === id);
|
|
1340
|
-
if (match) return match;
|
|
1341
|
-
cursor = page.nextCursor ?? void 0;
|
|
1342
|
-
} while (cursor);
|
|
1343
|
-
return null;
|
|
1344
|
-
}
|
|
1345
|
-
//#endregion
|
|
1346
|
-
//#region ../server/src/handlers/invites.ts
|
|
1347
|
-
/**
|
|
1348
|
-
* Org invites: list, mint, revoke, resend.
|
|
1349
|
-
*
|
|
1350
|
-
* **The raw token exists only in the response.** The store sees an HMAC digest,
|
|
1351
|
-
* so a leak of the `invites` table cannot be replayed without the instance
|
|
1352
|
-
* secret — and `tokenHash` is dropped by the response schema, which is why
|
|
1353
|
-
* every response here goes through `shaped`/`shapedCollection` rather than
|
|
1354
|
-
* `{ body }`.
|
|
1355
|
-
*/
|
|
1356
|
-
var INVITE_TTL_MS = 6048e5;
|
|
1357
|
-
/**
|
|
1358
|
-
* Mail the accept link, or report why not.
|
|
1359
|
-
*
|
|
1360
|
-
* Mint and resend must send the identical message, so the deps threading lives
|
|
1361
|
-
* here rather than at each call site. `not-configured` when the host wired no
|
|
1362
|
-
* notification provider: the invite row is already committed and the caller
|
|
1363
|
-
* still holds `acceptUrl`, so an instance without mail is a working instance,
|
|
1364
|
-
* not a failed write.
|
|
1365
|
-
*/
|
|
1366
|
-
async function mailInvite(req, invite, acceptUrl) {
|
|
1367
|
-
const notifications = req.deps.notifications;
|
|
1368
|
-
if (!notifications) return "not-configured";
|
|
1369
|
-
return deliverInvite({
|
|
1370
|
-
ctx: req.ctx,
|
|
1371
|
-
log: req.log,
|
|
1372
|
-
invite,
|
|
1373
|
-
acceptUrl,
|
|
1374
|
-
actor: {
|
|
1375
|
-
profile: req.profile,
|
|
1376
|
-
user: req.user
|
|
1377
|
-
},
|
|
1378
|
-
orgs: req.deps.orgs,
|
|
1379
|
-
notifications,
|
|
1380
|
-
fallbackOrgName: req.deps.instanceName
|
|
1381
|
-
});
|
|
1382
|
-
}
|
|
1383
|
-
/** Pending and recently accepted invites for the acting org. */
|
|
1384
|
-
var listInvites = async (req) => {
|
|
1385
|
-
requireManageOrgMembers(req);
|
|
1386
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1387
|
-
return shapedCollection(InviteResponseSchema, await req.deps.invites.listByOrg(ctx, orgId, parseListOptions(req.url)));
|
|
1388
|
-
};
|
|
1389
|
-
/** Create an invite and return the accept URL. */
|
|
1390
|
-
var createInvite = async (req) => {
|
|
1391
|
-
requireManageOrgMembers(req);
|
|
1392
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1393
|
-
const { user } = requireCaller(req);
|
|
1394
|
-
const input = await parseBody(req.request, CreateInviteBodySchema);
|
|
1395
|
-
const { platform: submittedPlatformPerms, org: submittedOrgPerms } = splitFlatPermissions(input.permissions);
|
|
1396
|
-
assertCanGrantPlatformPermissions(ctx, submittedPlatformPerms);
|
|
1397
|
-
if (!await canActorChangeOrgRole(ctx, orgId, input.orgRole, req)) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can invite someone as owner or admin.");
|
|
1398
|
-
const orgPermissions = input.orgRole === "member" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[input.orgRole]];
|
|
1399
|
-
const codec = tokenCodec(req.deps, "invites");
|
|
1400
|
-
const rawToken = codec.mintRawToken();
|
|
1401
|
-
const now = /* @__PURE__ */ new Date();
|
|
1402
|
-
const invite = {
|
|
1403
|
-
id: randomUUID(),
|
|
1404
|
-
tokenHash: codec.hashToken(rawToken),
|
|
1405
|
-
email: input.email,
|
|
1406
|
-
orgId,
|
|
1407
|
-
orgRole: input.orgRole,
|
|
1408
|
-
orgPermissions,
|
|
1409
|
-
platformPermissions: submittedPlatformPerms,
|
|
1410
|
-
invitedBy: user.id,
|
|
1411
|
-
createdAt: now.toISOString(),
|
|
1412
|
-
expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
|
|
1413
|
-
};
|
|
1414
|
-
await req.deps.invites.create(ctx, invite);
|
|
1415
|
-
const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
|
|
1416
|
-
const delivery = await mailInvite(req, invite, acceptUrl);
|
|
1417
|
-
return shaped(CreatedInviteResponseSchema, {
|
|
1418
|
-
...invite,
|
|
1419
|
-
acceptUrl,
|
|
1420
|
-
delivery
|
|
1421
|
-
}, 201);
|
|
1422
|
-
};
|
|
1423
|
-
/** Revoke a pending invite. Consumed invites are preserved for audit. */
|
|
1424
|
-
var revokeInvite = async (req) => {
|
|
1425
|
-
requireManageOrgMembers(req);
|
|
1426
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1427
|
-
const { id } = requireParams(req.params, "id");
|
|
1428
|
-
if (!await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites)) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
|
|
1429
|
-
await req.deps.invites.revoke(ctx, id);
|
|
1430
|
-
return noContent();
|
|
1431
|
-
};
|
|
1432
|
-
/**
|
|
1433
|
-
* Re-send an invite: mint a replacement and revoke the original.
|
|
1434
|
-
*
|
|
1435
|
-
* A resend cannot reuse the original link. The raw token is never stored — only
|
|
1436
|
-
* its HMAC digest is — so there is nothing to re-read, and rather than weaken
|
|
1437
|
-
* that, this issues a fresh token and revokes the row it replaces. The old link
|
|
1438
|
-
* stops working the moment this returns, which is also what an admin wants
|
|
1439
|
-
* after mailing an invite to the wrong address.
|
|
1440
|
-
*
|
|
1441
|
-
* Grants are copied verbatim from the original. The role and permission gates
|
|
1442
|
-
* ran when it was minted; re-deriving them here would let a since-demoted admin
|
|
1443
|
-
* silently change what the invite carries.
|
|
1444
|
-
*/
|
|
1445
|
-
var resendInvite = async (req) => {
|
|
1446
|
-
requireManageOrgMembers(req);
|
|
1447
|
-
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1448
|
-
const { id } = requireParams(req.params, "id");
|
|
1449
|
-
const existing = await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites);
|
|
1450
|
-
if (!existing) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
|
|
1451
|
-
if (existing.acceptedAt) apiError(409, ApiErrorCode.CONFLICT, "This invite has already been accepted.");
|
|
1452
|
-
const codec = tokenCodec(req.deps, "invites");
|
|
1453
|
-
const rawToken = codec.mintRawToken();
|
|
1454
|
-
const now = /* @__PURE__ */ new Date();
|
|
1455
|
-
const replacement = {
|
|
1456
|
-
...existing,
|
|
1457
|
-
id: randomUUID(),
|
|
1458
|
-
tokenHash: codec.hashToken(rawToken),
|
|
1459
|
-
createdAt: now.toISOString(),
|
|
1460
|
-
expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
|
|
1461
|
-
};
|
|
1462
|
-
await req.deps.invites.create(ctx, replacement);
|
|
1463
|
-
await req.deps.invites.revoke(ctx, existing.id);
|
|
1464
|
-
const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
|
|
1465
|
-
const delivery = await mailInvite(req, replacement, acceptUrl);
|
|
1466
|
-
return shaped(CreatedInviteResponseSchema, {
|
|
1467
|
-
...replacement,
|
|
1468
|
-
acceptUrl,
|
|
1469
|
-
delivery
|
|
1470
|
-
}, 201);
|
|
1471
|
-
};
|
|
1472
|
-
|
|
1473
|
-
export { createInvite as A, revokeInvite as B, resendInvite as C, listOrgMembers as D, updateOrgMember as E, removeOrgMember as F, listApiTokens as G, createApiToken as H, revokeApiToken as I, listProjects as J, createProject as K, getProject as L, updateProject as M, deleteProject as N, listProjectMembers as O, addProjectMember as P, updateProjectMemberRole as Q, removeProjectMember as R, reclaimProject as S, uploadDefinitionImage as a, getDefinitionSchema as b, createDefinition as c, deleteDefinition as d, listShareLinks as e, createShareLink as f, getDefinition as g, revokeShareLink as h, listVersions as i, uploadVersion as j, getVersion as k, listDefinitions as l, deleteVersion as m, getVersionSchema as n, getMe as o, publishDefinition as p, unstarDefinition as q, revokeUserApiTokens as r, starDefinition as s, getOrg as t, updateDefinition as u, uploadOrgAsset as v, removeOrgAsset as w, getOrgCompute as x, updateOrgCompute as y, listInvites as z };
|
|
1474
|
-
//# sourceMappingURL=handlers.js-CdVGaQgp.js.map
|