@selvajs/selva 4.16.2 → 4.17.0
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.A7AbP6h4.css +2 -0
- package/build/client/_app/immutable/assets/0.A7AbP6h4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.A7AbP6h4.css.gz +0 -0
- package/build/client/_app/immutable/chunks/8dWN0n2Q.js +1 -0
- package/build/client/_app/immutable/chunks/8dWN0n2Q.js.br +1 -0
- package/build/client/_app/immutable/chunks/8dWN0n2Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B05bP99A.js +1 -0
- package/build/client/_app/immutable/chunks/B05bP99A.js.br +0 -0
- package/build/client/_app/immutable/chunks/B05bP99A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B0amn312.js +1 -0
- package/build/client/_app/immutable/chunks/B0amn312.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0amn312.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1TakMpm.js +1 -0
- package/build/client/_app/immutable/chunks/B1TakMpm.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1TakMpm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8oH_5lZ.js +5 -0
- package/build/client/_app/immutable/chunks/B8oH_5lZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8oH_5lZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHVhsh_Z.js +1 -0
- package/build/client/_app/immutable/chunks/BHVhsh_Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHVhsh_Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BItYwz1k.js +1 -0
- package/build/client/_app/immutable/chunks/BItYwz1k.js.br +0 -0
- package/build/client/_app/immutable/chunks/BItYwz1k.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJr3_fzd.js +3 -0
- package/build/client/_app/immutable/chunks/BJr3_fzd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJr3_fzd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BK4C2Cxw.js +1 -0
- package/build/client/_app/immutable/chunks/BK4C2Cxw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BK4C2Cxw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSKvdAY9.js +1 -0
- package/build/client/_app/immutable/chunks/BSKvdAY9.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSKvdAY9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU-V_Eiq.js +1 -0
- package/build/client/_app/immutable/chunks/BU-V_Eiq.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU-V_Eiq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Be63-rfg.js +1 -0
- package/build/client/_app/immutable/chunks/Be63-rfg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Be63-rfg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfIcbyti.js +1 -0
- package/build/client/_app/immutable/chunks/BfIcbyti.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfIcbyti.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BlQiAbNW.js +1 -0
- package/build/client/_app/immutable/chunks/BlQiAbNW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BlQiAbNW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BlQxs_Ya.js +1 -0
- package/build/client/_app/immutable/chunks/BlQxs_Ya.js.br +0 -0
- package/build/client/_app/immutable/chunks/BlQxs_Ya.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BqEuA-Z7.js +1 -0
- package/build/client/_app/immutable/chunks/BqEuA-Z7.js.br +0 -0
- package/build/client/_app/immutable/chunks/BqEuA-Z7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BulN65pb.js +1 -0
- package/build/client/_app/immutable/chunks/BulN65pb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BulN65pb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwN3gAty.js +1 -0
- package/build/client/_app/immutable/chunks/BwN3gAty.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwN3gAty.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0odTvPl.js +1 -0
- package/build/client/_app/immutable/chunks/C0odTvPl.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0odTvPl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6gAy11g.js +1 -0
- package/build/client/_app/immutable/chunks/C6gAy11g.js.br +2 -0
- package/build/client/_app/immutable/chunks/C6gAy11g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6zFw7m2.js +1 -0
- package/build/client/_app/immutable/chunks/C6zFw7m2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6zFw7m2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CG9N_u6J.js +1 -0
- package/build/client/_app/immutable/chunks/CG9N_u6J.js.br +0 -0
- package/build/client/_app/immutable/chunks/CG9N_u6J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CH79OQfl.js +1 -0
- package/build/client/_app/immutable/chunks/CH79OQfl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CH79OQfl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CHirpxS9.js +1 -0
- package/build/client/_app/immutable/chunks/CHirpxS9.js.br +0 -0
- package/build/client/_app/immutable/chunks/CHirpxS9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CILbU8ip.js +1 -0
- package/build/client/_app/immutable/chunks/CILbU8ip.js.br +0 -0
- package/build/client/_app/immutable/chunks/CILbU8ip.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CIQYtnjl.js +1 -0
- package/build/client/_app/immutable/chunks/CIQYtnjl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CIQYtnjl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CIzYAJPT.js +1 -0
- package/build/client/_app/immutable/chunks/CIzYAJPT.js.br +0 -0
- package/build/client/_app/immutable/chunks/CIzYAJPT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLLMfACf.js +1 -0
- package/build/client/_app/immutable/chunks/CLLMfACf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLLMfACf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CU86KVhA.js +1 -0
- package/build/client/_app/immutable/chunks/CU86KVhA.js.br +0 -0
- package/build/client/_app/immutable/chunks/CU86KVhA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWaVisbr.js +1 -0
- package/build/client/_app/immutable/chunks/CWaVisbr.js.br +2 -0
- package/build/client/_app/immutable/chunks/CWaVisbr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cb3BsjuK.js +1 -0
- package/build/client/_app/immutable/chunks/Cb3BsjuK.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cb3BsjuK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CcVUaDbT.js +1 -0
- package/build/client/_app/immutable/chunks/CcVUaDbT.js.br +0 -0
- package/build/client/_app/immutable/chunks/CcVUaDbT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CclHk61F.js +1 -0
- package/build/client/_app/immutable/chunks/CclHk61F.js.br +0 -0
- package/build/client/_app/immutable/chunks/CclHk61F.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CeSr2XqR.js +1 -0
- package/build/client/_app/immutable/chunks/CeSr2XqR.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeSr2XqR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoKRAUpO.js +1 -0
- package/build/client/_app/immutable/chunks/CoKRAUpO.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoKRAUpO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CoyUb8nL.js +2 -0
- package/build/client/_app/immutable/chunks/CoyUb8nL.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoyUb8nL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp6loGqI.js +1 -0
- package/build/client/_app/immutable/chunks/Cp6loGqI.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp6loGqI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqFsPGvn.js +1 -0
- package/build/client/_app/immutable/chunks/CqFsPGvn.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqFsPGvn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxPNWG5P.js +1 -0
- package/build/client/_app/immutable/chunks/CxPNWG5P.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxPNWG5P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0w1E5Y-.js +9 -0
- package/build/client/_app/immutable/chunks/D0w1E5Y-.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0w1E5Y-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1C2bDXQ.js +2 -0
- package/build/client/_app/immutable/chunks/D1C2bDXQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1C2bDXQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5yRcZHa.js +1 -0
- package/build/client/_app/immutable/chunks/D5yRcZHa.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5yRcZHa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6ylQtAZ.js +1 -0
- package/build/client/_app/immutable/chunks/D6ylQtAZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6ylQtAZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DBYj-4Ic.js +1 -0
- package/build/client/_app/immutable/chunks/DBYj-4Ic.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBYj-4Ic.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DGZ1b7eN.js +1 -0
- package/build/client/_app/immutable/chunks/DGZ1b7eN.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGZ1b7eN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHwu2YYq.js +1 -0
- package/build/client/_app/immutable/chunks/DHwu2YYq.js.br +5 -0
- package/build/client/_app/immutable/chunks/DHwu2YYq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIc0lukW.js +1 -0
- package/build/client/_app/immutable/chunks/DIc0lukW.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIc0lukW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPtCf0Hk.js +1 -0
- package/build/client/_app/immutable/chunks/DPtCf0Hk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPtCf0Hk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWIijWWu.js +1 -0
- package/build/client/_app/immutable/chunks/DWIijWWu.js.br +2 -0
- package/build/client/_app/immutable/chunks/DWIijWWu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DXnurquh.js +1 -0
- package/build/client/_app/immutable/chunks/DXnurquh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DXnurquh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DbcYAZrU.js +1 -0
- package/build/client/_app/immutable/chunks/DbcYAZrU.js.br +0 -0
- package/build/client/_app/immutable/chunks/DbcYAZrU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Df7oZAPr.js +1 -0
- package/build/client/_app/immutable/chunks/Df7oZAPr.js.br +0 -0
- package/build/client/_app/immutable/chunks/Df7oZAPr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DhQevarr.js +1 -0
- package/build/client/_app/immutable/chunks/DhQevarr.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhQevarr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DhuzqlSG.js +1 -0
- package/build/client/_app/immutable/chunks/DhuzqlSG.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhuzqlSG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dl5lW7rq.js +1 -0
- package/build/client/_app/immutable/chunks/Dl5lW7rq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dl5lW7rq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlZ96M8I.js +1 -0
- package/build/client/_app/immutable/chunks/DlZ96M8I.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlZ96M8I.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DmhR0313.js +1 -0
- package/build/client/_app/immutable/chunks/DmhR0313.js.br +0 -0
- package/build/client/_app/immutable/chunks/DmhR0313.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwMfv5aD.js +1 -0
- package/build/client/_app/immutable/chunks/DwMfv5aD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwMfv5aD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DweBY5gq.js +3 -0
- package/build/client/_app/immutable/chunks/DweBY5gq.js.br +0 -0
- package/build/client/_app/immutable/chunks/DweBY5gq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DxUIq8AJ.js +1 -0
- package/build/client/_app/immutable/chunks/DxUIq8AJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DxUIq8AJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dzrd8U21.js +1 -0
- package/build/client/_app/immutable/chunks/Dzrd8U21.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dzrd8U21.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Eg7QSmtp.js +1 -0
- package/build/client/_app/immutable/chunks/Eg7QSmtp.js.br +0 -0
- package/build/client/_app/immutable/chunks/Eg7QSmtp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FBI6BLM9.js +1 -0
- package/build/client/_app/immutable/chunks/FBI6BLM9.js.br +0 -0
- package/build/client/_app/immutable/chunks/FBI6BLM9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/GnghUMa9.js +1 -0
- package/build/client/_app/immutable/chunks/GnghUMa9.js.br +0 -0
- package/build/client/_app/immutable/chunks/GnghUMa9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Kh4cWZvP.js +1 -0
- package/build/client/_app/immutable/chunks/Kh4cWZvP.js.br +3 -0
- package/build/client/_app/immutable/chunks/Kh4cWZvP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Kt9NbiMl.js +1 -0
- package/build/client/_app/immutable/chunks/Kt9NbiMl.js.br +2 -0
- package/build/client/_app/immutable/chunks/Kt9NbiMl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/LCEeY5pO.js +1 -0
- package/build/client/_app/immutable/chunks/LCEeY5pO.js.br +0 -0
- package/build/client/_app/immutable/chunks/LCEeY5pO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/TJkNkAXk.js +1 -0
- package/build/client/_app/immutable/chunks/TJkNkAXk.js.br +0 -0
- package/build/client/_app/immutable/chunks/TJkNkAXk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/TcKk9RHF.js +1 -0
- package/build/client/_app/immutable/chunks/TcKk9RHF.js.br +2 -0
- package/build/client/_app/immutable/chunks/TcKk9RHF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZLMQvCz0.js +1 -0
- package/build/client/_app/immutable/chunks/ZLMQvCz0.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZLMQvCz0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZT_LEMHt.js +1 -0
- package/build/client/_app/immutable/chunks/ZT_LEMHt.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZT_LEMHt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/iLiBnFky.js +1 -0
- package/build/client/_app/immutable/chunks/iLiBnFky.js.br +0 -0
- package/build/client/_app/immutable/chunks/iLiBnFky.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kyKuDUwH.js +1 -0
- package/build/client/_app/immutable/chunks/kyKuDUwH.js.br +2 -0
- package/build/client/_app/immutable/chunks/kyKuDUwH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oU8oAK2y.js +1 -0
- package/build/client/_app/immutable/chunks/oU8oAK2y.js.br +0 -0
- package/build/client/_app/immutable/chunks/oU8oAK2y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/uEs1TBqf.js +1 -0
- package/build/client/_app/immutable/chunks/uEs1TBqf.js.br +0 -0
- package/build/client/_app/immutable/chunks/uEs1TBqf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xXc7YQM2.js +1 -0
- package/build/client/_app/immutable/chunks/xXc7YQM2.js.br +0 -0
- package/build/client/_app/immutable/chunks/xXc7YQM2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xldpSbJ4.js +1 -0
- package/build/client/_app/immutable/chunks/xldpSbJ4.js.br +0 -0
- package/build/client/_app/immutable/chunks/xldpSbJ4.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.gbRlrYPj.js +2 -0
- package/build/client/_app/immutable/entry/app.gbRlrYPj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.gbRlrYPj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.MZeFqq0d.js +1 -0
- package/build/client/_app/immutable/entry/start.MZeFqq0d.js.br +1 -0
- package/build/client/_app/immutable/entry/start.MZeFqq0d.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DjhZscjy.js +1 -0
- package/build/client/_app/immutable/nodes/0.DjhZscjy.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DjhZscjy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Bg3SAaiR.js +1 -0
- package/build/client/_app/immutable/nodes/1.Bg3SAaiR.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Bg3SAaiR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DvZXfy_4.js +3 -0
- package/build/client/_app/immutable/nodes/10.DvZXfy_4.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DvZXfy_4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DFY28UJL.js +3 -0
- package/build/client/_app/immutable/nodes/11.DFY28UJL.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DFY28UJL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.CktOw2Ny.js +1 -0
- package/build/client/_app/immutable/nodes/12.CktOw2Ny.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.CktOw2Ny.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.Bo7QBphQ.js +2 -0
- package/build/client/_app/immutable/nodes/13.Bo7QBphQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.Bo7QBphQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.Dhg9S6ty.js +2 -0
- package/build/client/_app/immutable/nodes/14.Dhg9S6ty.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.Dhg9S6ty.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.P81tZ1xb.js +28 -0
- package/build/client/_app/immutable/nodes/15.P81tZ1xb.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.P81tZ1xb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.mLkhQAgh.js +5 -0
- package/build/client/_app/immutable/nodes/16.mLkhQAgh.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.mLkhQAgh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.C62-4V3U.js +2 -0
- package/build/client/_app/immutable/nodes/17.C62-4V3U.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.C62-4V3U.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DuQbYHuD.js +1 -0
- package/build/client/_app/immutable/nodes/18.DuQbYHuD.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DuQbYHuD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.CLtct_Ys.js +7 -0
- package/build/client/_app/immutable/nodes/19.CLtct_Ys.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.CLtct_Ys.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BGhOXg8i.js +1 -0
- package/build/client/_app/immutable/nodes/2.BGhOXg8i.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BGhOXg8i.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.i1Sp3qRa.js +2 -0
- package/build/client/_app/immutable/nodes/20.i1Sp3qRa.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.i1Sp3qRa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.D3Lp9AqE.js +5495 -0
- package/build/client/_app/immutable/nodes/21.D3Lp9AqE.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.D3Lp9AqE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.D5nqnzlG.js +6 -0
- package/build/client/_app/immutable/nodes/22.D5nqnzlG.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.D5nqnzlG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.oqBL5J12.js +16 -0
- package/build/client/_app/immutable/nodes/24.oqBL5J12.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.oqBL5J12.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.0IV8s2xX.js +6 -0
- package/build/client/_app/immutable/nodes/25.0IV8s2xX.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.0IV8s2xX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26._Asss48o.js +1 -0
- package/build/client/_app/immutable/nodes/26._Asss48o.js.br +0 -0
- package/build/client/_app/immutable/nodes/26._Asss48o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DkBLVHXl.js +3 -0
- package/build/client/_app/immutable/nodes/27.DkBLVHXl.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DkBLVHXl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.uC1Xk6WJ.js +4 -0
- package/build/client/_app/immutable/nodes/28.uC1Xk6WJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.uC1Xk6WJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.BGsApASb.js +6 -0
- package/build/client/_app/immutable/nodes/29.BGsApASb.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BGsApASb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CBEmUkKu.js +1 -0
- package/build/client/_app/immutable/nodes/3.CBEmUkKu.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CBEmUkKu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CNdRLhFz.js +2 -0
- package/build/client/_app/immutable/nodes/30.CNdRLhFz.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CNdRLhFz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.uAKGPy2Q.js +2 -0
- package/build/client/_app/immutable/nodes/31.uAKGPy2Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.uAKGPy2Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.CtKnv_zC.js +2 -0
- package/build/client/_app/immutable/nodes/32.CtKnv_zC.js.br +0 -0
- package/build/client/_app/immutable/nodes/32.CtKnv_zC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/33.DFTBdfag.js +1 -0
- package/build/client/_app/immutable/nodes/33.DFTBdfag.js.br +0 -0
- package/build/client/_app/immutable/nodes/33.DFTBdfag.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.NkznGykH.js +1 -0
- package/build/client/_app/immutable/nodes/4.NkznGykH.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.NkznGykH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.C5IUZLSG.js +1 -0
- package/build/client/_app/immutable/nodes/5.C5IUZLSG.js.br +3 -0
- package/build/client/_app/immutable/nodes/5.C5IUZLSG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.D6Lv824Z.js +1 -0
- package/build/client/_app/immutable/nodes/6.D6Lv824Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D6Lv824Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DNTCMZZo.js +1 -0
- package/build/client/_app/immutable/nodes/7.DNTCMZZo.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DNTCMZZo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.ZZfeAr6G.js +3 -0
- package/build/client/_app/immutable/nodes/8.ZZfeAr6G.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.ZZfeAr6G.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.ep7NU1In.js +1 -0
- package/build/client/_app/immutable/nodes/9.ep7NU1In.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.ep7NU1In.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 +15 -15
- package/build/index.js +15 -15
- package/build/server/chunks/chunks/AppHeader.js-C7-0gWg-.js +72 -0
- package/build/server/chunks/chunks/AppHeader.js-C7-0gWg-.js.map +1 -0
- package/build/server/chunks/chunks/Callout.js-CmzJBs1A.js +112 -0
- package/build/server/chunks/chunks/Callout.js-CmzJBs1A.js.map +1 -0
- package/build/server/chunks/chunks/ConfirmDialog.js-CGkZcXmg.js +152 -0
- package/build/server/chunks/chunks/ConfirmDialog.js-CGkZcXmg.js.map +1 -0
- package/build/server/chunks/chunks/DataTable.js-BguB-ZA9.js +27 -0
- package/build/server/chunks/chunks/DataTable.js-BguB-ZA9.js.map +1 -0
- package/build/server/chunks/chunks/DefinitionCard.js-CWEPBLo9.js +166 -0
- package/build/server/chunks/chunks/DefinitionCard.js-CWEPBLo9.js.map +1 -0
- package/build/server/chunks/chunks/EmptyState.js-DF9z4e84.js +40 -0
- package/build/server/chunks/chunks/EmptyState.js-DF9z4e84.js.map +1 -0
- package/build/server/chunks/chunks/ErrorScreen.js-BfiOntFJ.js +123 -0
- package/build/server/chunks/chunks/ErrorScreen.js-BfiOntFJ.js.map +1 -0
- package/build/server/chunks/chunks/FilterableDropdown.js-B60iF-vX.js +45 -0
- package/build/server/chunks/chunks/FilterableDropdown.js-B60iF-vX.js.map +1 -0
- package/build/server/chunks/chunks/PageContent.js-CPyKWFqb.js +12 -0
- package/build/server/chunks/chunks/PageContent.js-CPyKWFqb.js.map +1 -0
- package/build/server/chunks/chunks/SectionHeader.js-BCW8z596.js +27 -0
- package/build/server/chunks/chunks/SectionHeader.js-BCW8z596.js.map +1 -0
- package/build/server/chunks/chunks/SettingsMenu.js-BjLWMAXR.js +1363 -0
- package/build/server/chunks/chunks/SettingsMenu.js-BjLWMAXR.js.map +1 -0
- package/build/server/chunks/chunks/SideNav.js-BViz-8Rq.js +71 -0
- package/build/server/chunks/chunks/SideNav.js-BViz-8Rq.js.map +1 -0
- package/build/server/chunks/chunks/StatCard.js-CfExNRVn.js +51 -0
- package/build/server/chunks/chunks/StatCard.js-CfExNRVn.js.map +1 -0
- package/build/server/chunks/chunks/UserAvatar.js-2jIya0cD.js +14 -0
- package/build/server/chunks/chunks/UserAvatar.js-2jIya0cD.js.map +1 -0
- package/build/server/chunks/chunks/UserRowIdentity.js-DKKHxs7B.js +131 -0
- package/build/server/chunks/chunks/UserRowIdentity.js-DKKHxs7B.js.map +1 -0
- package/build/server/chunks/chunks/ViewToggle.js-CVZvGSP2.js +94 -0
- package/build/server/chunks/chunks/ViewToggle.js-CVZvGSP2.js.map +1 -0
- package/build/server/chunks/chunks/activity.js-DC56BDmC.js +15 -0
- package/build/server/chunks/chunks/activity.js-DC56BDmC.js.map +1 -0
- package/build/server/chunks/chunks/admin-auth.server.js-DK6W0AFE.js +259 -0
- package/build/server/chunks/chunks/admin-auth.server.js-DK6W0AFE.js.map +1 -0
- package/build/server/chunks/chunks/alert-description.js-CHk-QuE7.js +45 -0
- package/build/server/chunks/chunks/alert-description.js-CHk-QuE7.js.map +1 -0
- package/build/server/chunks/chunks/alert-dialog.js-B0r5x82A.js +461 -0
- package/build/server/chunks/chunks/alert-dialog.js-B0r5x82A.js.map +1 -0
- package/build/server/chunks/chunks/arrow-left.js-CIdTnp0J.js +15 -0
- package/build/server/chunks/chunks/arrow-left.js-CIdTnp0J.js.map +1 -0
- package/build/server/chunks/chunks/arrow-right.js-BjluDnP5.js +15 -0
- package/build/server/chunks/chunks/arrow-right.js-BjluDnP5.js.map +1 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-C-Z7D-S2.js +152 -0
- package/build/server/chunks/chunks/auth-bootstrap.server.js-C-Z7D-S2.js.map +1 -0
- package/build/server/chunks/chunks/badge.js-Ac_XpevV.js +35 -0
- package/build/server/chunks/chunks/badge.js-Ac_XpevV.js.map +1 -0
- package/build/server/chunks/chunks/bootHealth.server.js-Cr1OdAUI.js +90 -0
- package/build/server/chunks/chunks/bootHealth.server.js-Cr1OdAUI.js.map +1 -0
- package/build/server/chunks/chunks/building-2.js-B-0knAsp.js +21 -0
- package/build/server/chunks/chunks/building-2.js-B-0knAsp.js.map +1 -0
- package/build/server/chunks/chunks/button.js-C5BhaQrU.js +71 -0
- package/build/server/chunks/chunks/button.js-C5BhaQrU.js.map +1 -0
- package/build/server/chunks/chunks/card-content.js-BfrT5oyg.js +35 -0
- package/build/server/chunks/chunks/card-content.js-BfrT5oyg.js.map +1 -0
- package/build/server/chunks/chunks/card-description.js-4mvcl4kk.js +20 -0
- package/build/server/chunks/chunks/card-description.js-4mvcl4kk.js.map +1 -0
- package/build/server/chunks/chunks/card-title.js-poiynfH7.js +35 -0
- package/build/server/chunks/chunks/card-title.js-poiynfH7.js.map +1 -0
- package/build/server/chunks/chunks/check.js-CDUPZSbF.js +15 -0
- package/build/server/chunks/chunks/check.js-CDUPZSbF.js.map +1 -0
- package/build/server/chunks/chunks/chevron-down.js-BS_Z2JdQ.js +15 -0
- package/build/server/chunks/chunks/chevron-down.js-BS_Z2JdQ.js.map +1 -0
- package/build/server/chunks/chunks/chevron-right.js-DhWBy4ka.js +15 -0
- package/build/server/chunks/chunks/chevron-right.js-DhWBy4ka.js.map +1 -0
- package/build/server/chunks/chunks/chevron-up.js-DhkI9WCO.js +15 -0
- package/build/server/chunks/chunks/chevron-up.js-DhkI9WCO.js.map +1 -0
- package/build/server/chunks/chunks/circle-alert.js-CMSXP7Iz.js +33 -0
- package/build/server/chunks/chunks/circle-alert.js-CMSXP7Iz.js.map +1 -0
- package/build/server/chunks/chunks/circle.js-B3AR_soh.js +19 -0
- package/build/server/chunks/chunks/circle.js-B3AR_soh.js.map +1 -0
- package/build/server/chunks/chunks/client.js-DZ5yHZ_u.js +59 -0
- package/build/server/chunks/chunks/client.js-DZ5yHZ_u.js.map +1 -0
- package/build/server/chunks/chunks/computeLimits.js-CHXAIU25.js +48 -0
- package/build/server/chunks/chunks/computeLimits.js-CHXAIU25.js.map +1 -0
- package/build/server/chunks/chunks/create-id.js-DknYBIED.js +809 -0
- package/build/server/chunks/chunks/create-id.js-DknYBIED.js.map +1 -0
- package/build/server/chunks/chunks/dialog-description.js-ZYJsOFQc.js +495 -0
- package/build/server/chunks/chunks/dialog-description.js-ZYJsOFQc.js.map +1 -0
- package/build/server/chunks/chunks/dialog-footer.js-D0hrrwq2.js +59 -0
- package/build/server/chunks/chunks/dialog-footer.js-D0hrrwq2.js.map +1 -0
- package/build/server/chunks/chunks/dialog.js-pKuqe9MT.js +366 -0
- package/build/server/chunks/chunks/dialog.js-pKuqe9MT.js.map +1 -0
- package/build/server/chunks/chunks/engine.server.js-qoHdc5Q0.js +597 -0
- package/build/server/chunks/chunks/engine.server.js-qoHdc5Q0.js.map +1 -0
- package/build/server/chunks/chunks/events.js-CtC5A62m.js +133 -0
- package/build/server/chunks/chunks/events.js-CtC5A62m.js.map +1 -0
- package/build/server/chunks/chunks/exports.js-CaerHNtn.js +152 -0
- package/build/server/chunks/chunks/exports.js-CaerHNtn.js.map +1 -0
- package/build/server/chunks/chunks/external-link.js-C7jpH_m7.js +19 -0
- package/build/server/chunks/chunks/external-link.js-C7jpH_m7.js.map +1 -0
- package/build/server/chunks/chunks/folder-kanban.js-C1D0QUZ1.js +20 -0
- package/build/server/chunks/chunks/folder-kanban.js-C1D0QUZ1.js.map +1 -0
- package/build/server/chunks/chunks/folder-open.js-DTz3Nsq3.js +15 -0
- package/build/server/chunks/chunks/folder-open.js-DTz3Nsq3.js.map +1 -0
- package/build/server/chunks/chunks/folders.js-CtISKeK0.js +15 -0
- package/build/server/chunks/chunks/folders.js-CtISKeK0.js.map +1 -0
- package/build/server/chunks/chunks/footerContext.svelte.js-DN7y8ubX.js +707 -0
- package/build/server/chunks/chunks/footerContext.svelte.js-DN7y8ubX.js.map +1 -0
- package/build/server/chunks/chunks/forms.js-BxbgaPtt.js +2 -0
- package/build/server/chunks/chunks/forms.js-BxbgaPtt.js.map +1 -0
- package/build/server/chunks/chunks/gauge.js-D7zoHE2F.js +15 -0
- package/build/server/chunks/chunks/gauge.js-D7zoHE2F.js.map +1 -0
- package/build/server/chunks/chunks/handlers.js-Be7MGVko.js +1375 -0
- package/build/server/chunks/chunks/handlers.js-Be7MGVko.js.map +1 -0
- package/build/server/chunks/chunks/index-server.js-vEPkRIVP.js +147 -0
- package/build/server/chunks/chunks/index-server.js-vEPkRIVP.js.map +1 -0
- package/build/server/chunks/chunks/info.js-3iPb-bDs.js +23 -0
- package/build/server/chunks/chunks/info.js-3iPb-bDs.js.map +1 -0
- package/build/server/chunks/chunks/input.js-COB-g9QG.js +36 -0
- package/build/server/chunks/chunks/input.js-COB-g9QG.js.map +1 -0
- package/build/server/chunks/chunks/instanceAdmins.server.js-CA0u7ebl.js +23 -0
- package/build/server/chunks/chunks/instanceAdmins.server.js-CA0u7ebl.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-ClJtIfiy.js +27 -0
- package/build/server/chunks/chunks/internal.js-ClJtIfiy.js.map +1 -0
- package/build/server/chunks/chunks/internal2.js-DPy3-ScF.js +224 -0
- package/build/server/chunks/chunks/internal2.js-DPy3-ScF.js.map +1 -0
- package/build/server/chunks/chunks/label.js-CIcc8Q2k.js +108 -0
- package/build/server/chunks/chunks/label.js-CIcc8Q2k.js.map +1 -0
- package/build/server/chunks/chunks/legacy-client.js-BiuhKzSC.js +320 -0
- package/build/server/chunks/chunks/legacy-client.js-BiuhKzSC.js.map +1 -0
- package/build/server/chunks/chunks/link-2.js-Dqa3_P7i.js +24 -0
- package/build/server/chunks/chunks/link-2.js-Dqa3_P7i.js.map +1 -0
- package/build/server/chunks/chunks/mail.js-DBcv4_kB.js +21 -0
- package/build/server/chunks/chunks/mail.js-DBcv4_kB.js.map +1 -0
- package/build/server/chunks/chunks/minus.js-DLSGAa75.js +15 -0
- package/build/server/chunks/chunks/minus.js-DLSGAa75.js.map +1 -0
- package/build/server/chunks/chunks/navigation.js-BxbgaPtt.js +2 -0
- package/build/server/chunks/chunks/navigation.js-BxbgaPtt.js.map +1 -0
- package/build/server/chunks/chunks/oauthState.server.js-1v2BaCiv.js +53 -0
- package/build/server/chunks/chunks/oauthState.server.js-1v2BaCiv.js.map +1 -0
- package/build/server/chunks/chunks/package.js-VIfF3HO1.js +82 -0
- package/build/server/chunks/chunks/package.js-VIfF3HO1.js.map +1 -0
- package/build/server/chunks/chunks/paths.js-BqwpMKlA.js +19 -0
- package/build/server/chunks/chunks/paths.js-BqwpMKlA.js.map +1 -0
- package/build/server/chunks/chunks/permissions.server.js-kixnKedb.js +24 -0
- package/build/server/chunks/chunks/permissions.server.js-kixnKedb.js.map +1 -0
- package/build/server/chunks/chunks/plus.js-CRKcxobD.js +15 -0
- package/build/server/chunks/chunks/plus.js-CRKcxobD.js.map +1 -0
- package/build/server/chunks/chunks/providers.server.js-DM2FuS6c.js +5911 -0
- package/build/server/chunks/chunks/providers.server.js-DM2FuS6c.js.map +1 -0
- package/build/server/chunks/chunks/refresh-cw.js-CWMq3mJI.js +20 -0
- package/build/server/chunks/chunks/refresh-cw.js-CWMq3mJI.js.map +1 -0
- package/build/server/chunks/chunks/resolve.server.js-BolCeGXy.js +59 -0
- package/build/server/chunks/chunks/resolve.server.js-BolCeGXy.js.map +1 -0
- package/build/server/chunks/chunks/rotate-ccw.js-DWo1VF9Q.js +15 -0
- package/build/server/chunks/chunks/rotate-ccw.js-DWo1VF9Q.js.map +1 -0
- package/build/server/chunks/chunks/routing.js-B9B7X1Lv.js +265 -0
- package/build/server/chunks/chunks/routing.js-B9B7X1Lv.js.map +1 -0
- package/build/server/chunks/chunks/scroll-lock.js-DL8lUVyK.js +3443 -0
- package/build/server/chunks/chunks/scroll-lock.js-DL8lUVyK.js.map +1 -0
- package/build/server/chunks/chunks/scroll-text.js-CxSBg-pR.js +20 -0
- package/build/server/chunks/chunks/scroll-text.js-CxSBg-pR.js.map +1 -0
- package/build/server/chunks/chunks/search.js-CLqrYeIF.js +19 -0
- package/build/server/chunks/chunks/search.js-CLqrYeIF.js.map +1 -0
- package/build/server/chunks/chunks/select.js-BVZ5Aq6g.js +3633 -0
- package/build/server/chunks/chunks/select.js-BVZ5Aq6g.js.map +1 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-simekgtK.js +144 -0
- package/build/server/chunks/chunks/selfUpdate.server.js-simekgtK.js.map +1 -0
- package/build/server/chunks/chunks/server.js-CBJ8EHJf.js +4207 -0
- package/build/server/chunks/chunks/server.js-CBJ8EHJf.js.map +1 -0
- package/build/server/chunks/chunks/server2.js-DFmHm08u.js +44 -0
- package/build/server/chunks/chunks/server2.js-DFmHm08u.js.map +1 -0
- package/build/server/chunks/chunks/settings.js-niNRZGFB.js +19 -0
- package/build/server/chunks/chunks/settings.js-niNRZGFB.js.map +1 -0
- package/build/server/chunks/chunks/shared-server.js-DRWlV0So.js +22 -0
- package/build/server/chunks/chunks/shared-server.js-DRWlV0So.js.map +1 -0
- package/build/server/chunks/chunks/shared.js-NpdAEVlg.js +702 -0
- package/build/server/chunks/chunks/shared.js-NpdAEVlg.js.map +1 -0
- package/build/server/chunks/chunks/shield-check.js-DaPwIxEP.js +15 -0
- package/build/server/chunks/chunks/shield-check.js-DaPwIxEP.js.map +1 -0
- package/build/server/chunks/chunks/shield.js-DypKHw7v.js +15 -0
- package/build/server/chunks/chunks/shield.js-DypKHw7v.js.map +1 -0
- package/build/server/chunks/chunks/solve.server.js-C87D54Ty.js +312 -0
- package/build/server/chunks/chunks/solve.server.js-C87D54Ty.js.map +1 -0
- package/build/server/chunks/chunks/star.js-CEbYbiF-.js +15 -0
- package/build/server/chunks/chunks/star.js-CEbYbiF-.js.map +1 -0
- package/build/server/chunks/chunks/state.js-DMk5dEia.js +76 -0
- package/build/server/chunks/chunks/state.js-DMk5dEia.js.map +1 -0
- package/build/server/chunks/chunks/stores.js-CmsZzrkh.js +35 -0
- package/build/server/chunks/chunks/stores.js-CmsZzrkh.js.map +1 -0
- package/build/server/chunks/chunks/tabs-trigger.js-NNwHsojk.js +512 -0
- package/build/server/chunks/chunks/tabs-trigger.js-NNwHsojk.js.map +1 -0
- package/build/server/chunks/chunks/toast-state.svelte.js-C4kpWq63.js +285 -0
- package/build/server/chunks/chunks/toast-state.svelte.js-C4kpWq63.js.map +1 -0
- package/build/server/chunks/chunks/token.server.js-DnT3vof3.js +48 -0
- package/build/server/chunks/chunks/token.server.js-DnT3vof3.js.map +1 -0
- package/build/server/chunks/chunks/token2.server.js-BgPggaHQ.js +39 -0
- package/build/server/chunks/chunks/token2.server.js-BgPggaHQ.js.map +1 -0
- package/build/server/chunks/chunks/trash-2.js-CcZ0elv2.js +21 -0
- package/build/server/chunks/chunks/trash-2.js-CcZ0elv2.js.map +1 -0
- package/build/server/chunks/chunks/triangle-alert.js-DsWRg3ZC.js +19 -0
- package/build/server/chunks/chunks/triangle-alert.js-DsWRg3ZC.js.map +1 -0
- package/build/server/chunks/chunks/uneval.js-VnZcgzZr.js +488 -0
- package/build/server/chunks/chunks/uneval.js-VnZcgzZr.js.map +1 -0
- package/build/server/chunks/chunks/updateCheck.server.js-H6kvdwNc.js +205 -0
- package/build/server/chunks/chunks/updateCheck.server.js-H6kvdwNc.js.map +1 -0
- package/build/server/chunks/chunks/user-plus.js-CtHjWeyK.js +51 -0
- package/build/server/chunks/chunks/user-plus.js-CtHjWeyK.js.map +1 -0
- package/build/server/chunks/chunks/users.js-CavseTBb.js +24 -0
- package/build/server/chunks/chunks/users.js-CavseTBb.js.map +1 -0
- package/build/server/chunks/chunks/utils.js-BOQvkiv9.js +750 -0
- package/build/server/chunks/chunks/utils.js-BOQvkiv9.js.map +1 -0
- package/build/server/chunks/chunks/utils2.js-BwimZ5qo.js +95 -0
- package/build/server/chunks/chunks/utils2.js-BwimZ5qo.js.map +1 -0
- package/build/server/chunks/chunks/x.js-BPNKG-H4.js +15 -0
- package/build/server/chunks/chunks/x.js-BPNKG-H4.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CwHiigk0.js +98 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-CwHiigk0.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-BHDoi_b2.js +85 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-BHDoi_b2.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-DUi3WK1T.js +96 -0
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-DUi3WK1T.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-DAmQaBsF.js +46 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-DAmQaBsF.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-DOVKkAae.js +69 -0
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-DOVKkAae.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-DJCIb2Po.js +62 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-DJCIb2Po.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-D169BzKd.js +34 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-D169BzKd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-YKg_K62e.js +65 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-YKg_K62e.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-C-Zc2jSj.js +80 -0
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-C-Zc2jSj.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-qodXgldd.js +334 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-qodXgldd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-D7KEmuup.js +607 -0
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-D7KEmuup.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-BoWVjECi.js +58 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-BoWVjECi.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-CB8Dvi3K.js +67 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-CB8Dvi3K.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DFrcROkM.js +83 -0
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DFrcROkM.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-D7T_hcUe.js +62 -0
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-D7T_hcUe.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-BMIOp71Q.js +93 -0
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-BMIOp71Q.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-qwNu49sS.js +59 -0
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-qwNu49sS.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-D3cOQM3P.js +62 -0
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-D3cOQM3P.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-DkrgwE6P.js +84 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-DkrgwE6P.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-C7tqANOg.js +63 -0
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-C7tqANOg.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-bXZaNmzV.js +40 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-bXZaNmzV.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-DGUNa-ev.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-DGUNa-ev.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-gF3zvOmk.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-gF3zvOmk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BNuLLqCt.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BNuLLqCt.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-CTtzpVhd.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-CTtzpVhd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-BO7LPnX9.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-BO7LPnX9.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-CbRSSYEa.js +208 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-CbRSSYEa.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-rUAgK4dT.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-rUAgK4dT.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-B1gJHRAe.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-B1gJHRAe.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-Bi60Ayu3.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-Bi60Ayu3.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-8AcHVYvx.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-8AcHVYvx.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BSiBuFhF.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BSiBuFhF.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-zTVuI16z.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-zTVuI16z.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CczJwF-j.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CczJwF-j.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-BNwE7hZQ.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-BNwE7hZQ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-D9pAIdef.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-D9pAIdef.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BGnkXGyr.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BGnkXGyr.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-FMeAfcsI.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-FMeAfcsI.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-BrXHPEDL.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-BrXHPEDL.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-BVoPWjDd.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-BVoPWjDd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-BBsqU3KI.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-BBsqU3KI.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-Kc1iq91R.js +40 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-Kc1iq91R.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-DarqauaS.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-DarqauaS.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-UfoBH4i2.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-UfoBH4i2.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-D4Hr0Ahk.js +38 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-D4Hr0Ahk.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-C-WOjeB8.js +39 -0
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-C-WOjeB8.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-wzNmgRBi.js +47 -0
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-wzNmgRBi.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DRBwuD2x.js +53 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DRBwuD2x.js.map +1 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-DTFwV3B3.js +64 -0
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-DTFwV3B3.js.map +1 -0
- package/build/server/chunks/entries/hooks.server.js-lugI9ICw.js +337 -0
- package/build/server/chunks/entries/hooks.server.js-lugI9ICw.js.map +1 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-BM-nVZ0r.js +36 -0
- package/build/server/chunks/entries/pages/_error.svelte.js-BM-nVZ0r.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-D6cN69zZ.js +34 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-D6cN69zZ.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-SnJr0Zut.js +654 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-SnJr0Zut.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-CZjvvlfK.js +161 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-CZjvvlfK.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CDphlsu3.js +181 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CDphlsu3.js.map +1 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-Bn8rAcFJ.js +188 -0
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-Bn8rAcFJ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-_pIY8GZt.js +37 -0
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-_pIY8GZt.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DdEIah9W.js +31 -0
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-DdEIah9W.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-kYHWUUUk.js +124 -0
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-kYHWUUUk.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BW7lmmAh.js +76 -0
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BW7lmmAh.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-DU54dWBG.js +394 -0
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-DU54dWBG.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-rGc7EoXx.js +265 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-rGc7EoXx.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-oy_F2u4k.js +464 -0
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-oy_F2u4k.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-bJIqw7I0.js +74 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-bJIqw7I0.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-CVNUfm2w.js +873 -0
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-CVNUfm2w.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-YattVtm_.js +35 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-YattVtm_.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-ddoWGt_o.js +95 -0
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-ddoWGt_o.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CEkYGHuJ.js +86 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CEkYGHuJ.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-Cyjs-5ff.js +638 -0
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-Cyjs-5ff.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Df9L7lG6.js +42 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-Df9L7lG6.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-Bx0EZ0TV.js +283 -0
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-Bx0EZ0TV.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Bvx1HC3R.js +87 -0
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Bvx1HC3R.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Dhsls68T.js +1394 -0
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Dhsls68T.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-LAjkK8tM.js +79 -0
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-LAjkK8tM.js.map +1 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-DaABJIY5.js +643 -0
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-DaABJIY5.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BTuy0dz7.js +63 -0
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BTuy0dz7.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-Dm1G9DUR.js +62 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-Dm1G9DUR.js.map +1 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-oCeyM_23.js +15 -0
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-oCeyM_23.js.map +1 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-BopOmuh2.js +90 -0
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-BopOmuh2.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-CO1DH33y.js +120 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-CO1DH33y.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CnLgXqlI.js +13178 -0
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CnLgXqlI.js.map +1 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-xH5ciilc.js +313 -0
- package/build/server/chunks/entries/pages/library/_page.svelte.js-xH5ciilc.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-B_QLVAS3.js +101 -0
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-B_QLVAS3.js.map +1 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-O4sI9d8p.js +272 -0
- package/build/server/chunks/entries/pages/login/_page.svelte.js-O4sI9d8p.js.map +1 -0
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-4kdNraF9.js +19 -0
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-4kdNraF9.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DIH4NLjj.js +51 -0
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DIH4NLjj.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-KcLJMkEO.js +93 -0
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-KcLJMkEO.js.map +1 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-BGp4u5AC.js +3835 -0
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-BGp4u5AC.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-BSLhT2e7.js +116 -0
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-BSLhT2e7.js.map +1 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-BrqGvYjU.js +322 -0
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-BrqGvYjU.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BQVWmo7z.js +28 -0
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BQVWmo7z.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-BPaXzMHU.js +171 -0
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-BPaXzMHU.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-CWo_EKr4.js +35 -0
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-CWo_EKr4.js.map +1 -0
- package/build/server/chunks/entries/pages/team/_page.svelte.js-VNd1_7j6.js +110 -0
- package/build/server/chunks/entries/pages/team/_page.svelte.js-VNd1_7j6.js.map +1 -0
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-qOyrwg1I.js +121 -0
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-qOyrwg1I.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-D46Z7beY.js +42 -0
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-D46Z7beY.js.map +1 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-ClAfhyVc.js +626 -0
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-ClAfhyVc.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-uQ6bndxS.js +62 -0
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-uQ6bndxS.js.map +1 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BVTKeE8v.js +834 -0
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BVTKeE8v.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-Dzej_whz.js +58 -0
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-Dzej_whz.js.map +1 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-8C2RnMjF.js +423 -0
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-8C2RnMjF.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-PJxPh1_Y.js +67 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-PJxPh1_Y.js.map +1 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-CjQSU5-x.js +268 -0
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-CjQSU5-x.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-CRv8pTJm.js +34 -0
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-CRv8pTJm.js.map +1 -0
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-C8ySSgDn.js +303 -0
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-C8ySSgDn.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-VtSwBj5v.js +29 -0
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-VtSwBj5v.js.map +1 -0
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-DRjOR6nf.js +322 -0
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-DRjOR6nf.js.map +1 -0
- package/build/server/chunks/handler-DCYPzYCM.js +1206 -0
- package/build/server/chunks/handler-DCYPzYCM.js.map +1 -0
- package/build/server/chunks/index-BkACrcaG.js +44692 -0
- package/build/server/chunks/index-BkACrcaG.js.map +1 -0
- package/build/server/chunks/index.js-BlZI7QAl.js +3767 -0
- package/build/server/chunks/index.js-BlZI7QAl.js.map +1 -0
- package/build/server/chunks/manifest.js-DfDUXZZb.js +612 -0
- package/build/server/chunks/manifest.js-DfDUXZZb.js.map +1 -0
- package/build/server/chunks/nodes/0.js-MkK696y9.js +27 -0
- package/build/server/chunks/nodes/0.js-MkK696y9.js.map +1 -0
- package/build/server/chunks/nodes/1.js-0k4Q1CUa.js +9 -0
- package/build/server/chunks/nodes/1.js-0k4Q1CUa.js.map +1 -0
- package/build/server/chunks/nodes/10.js-CCKCEd1h.js +30 -0
- package/build/server/chunks/nodes/10.js-CCKCEd1h.js.map +1 -0
- package/build/server/chunks/nodes/11.js-BVMePxTN.js +36 -0
- package/build/server/chunks/nodes/11.js-BVMePxTN.js.map +1 -0
- package/build/server/chunks/nodes/12.js-BgSttbS2.js +28 -0
- package/build/server/chunks/nodes/12.js-BgSttbS2.js.map +1 -0
- package/build/server/chunks/nodes/13.js-DT3ER-mA.js +28 -0
- package/build/server/chunks/nodes/13.js-DT3ER-mA.js.map +1 -0
- package/build/server/chunks/nodes/14.js-C3mWRw82.js +28 -0
- package/build/server/chunks/nodes/14.js-C3mWRw82.js.map +1 -0
- package/build/server/chunks/nodes/15.js-ClHtLekr.js +37 -0
- package/build/server/chunks/nodes/15.js-ClHtLekr.js.map +1 -0
- package/build/server/chunks/nodes/16.js-CKmU3T7x.js +30 -0
- package/build/server/chunks/nodes/16.js-CKmU3T7x.js.map +1 -0
- package/build/server/chunks/nodes/17.js-DDXCK7zX.js +9 -0
- package/build/server/chunks/nodes/17.js-DDXCK7zX.js.map +1 -0
- package/build/server/chunks/nodes/18.js-Dyo5jzzL.js +30 -0
- package/build/server/chunks/nodes/18.js-Dyo5jzzL.js.map +1 -0
- package/build/server/chunks/nodes/19.js-B1CvDggk.js +24 -0
- package/build/server/chunks/nodes/19.js-B1CvDggk.js.map +1 -0
- package/build/server/chunks/nodes/2.js-DPOaiQc8.js +30 -0
- package/build/server/chunks/nodes/2.js-DPOaiQc8.js.map +1 -0
- package/build/server/chunks/nodes/20.js-CHfw5XxR.js +21 -0
- package/build/server/chunks/nodes/20.js-CHfw5XxR.js.map +1 -0
- package/build/server/chunks/nodes/21.js-CEhXbvED.js +40 -0
- package/build/server/chunks/nodes/21.js-CEhXbvED.js.map +1 -0
- package/build/server/chunks/nodes/22.js-CKYcnK6_.js +30 -0
- package/build/server/chunks/nodes/22.js-CKYcnK6_.js.map +1 -0
- package/build/server/chunks/nodes/23.js-a8NwH5Q6.js +27 -0
- package/build/server/chunks/nodes/23.js-a8NwH5Q6.js.map +1 -0
- package/build/server/chunks/nodes/24.js-BuUXZPiJ.js +29 -0
- package/build/server/chunks/nodes/24.js-BuUXZPiJ.js.map +1 -0
- package/build/server/chunks/nodes/25.js-Cs3OrJTb.js +30 -0
- package/build/server/chunks/nodes/25.js-Cs3OrJTb.js.map +1 -0
- package/build/server/chunks/nodes/26.js-CBTIhRYU.js +28 -0
- package/build/server/chunks/nodes/26.js-CBTIhRYU.js.map +1 -0
- package/build/server/chunks/nodes/27.js-yIA3QCOz.js +9 -0
- package/build/server/chunks/nodes/27.js-yIA3QCOz.js.map +1 -0
- package/build/server/chunks/nodes/28.js-7JQUcwBF.js +28 -0
- package/build/server/chunks/nodes/28.js-7JQUcwBF.js.map +1 -0
- package/build/server/chunks/nodes/29.js-CX6C8odg.js +28 -0
- package/build/server/chunks/nodes/29.js-CX6C8odg.js.map +1 -0
- package/build/server/chunks/nodes/3.js-D0qrG17_.js +9 -0
- package/build/server/chunks/nodes/3.js-D0qrG17_.js.map +1 -0
- package/build/server/chunks/nodes/30.js-hXqeecIA.js +29 -0
- package/build/server/chunks/nodes/30.js-hXqeecIA.js.map +1 -0
- package/build/server/chunks/nodes/31.js-fX9eHsYv.js +28 -0
- package/build/server/chunks/nodes/31.js-fX9eHsYv.js.map +1 -0
- package/build/server/chunks/nodes/32.js-3C7wd1xF.js +28 -0
- package/build/server/chunks/nodes/32.js-3C7wd1xF.js.map +1 -0
- package/build/server/chunks/nodes/33.js-CjVohrVM.js +28 -0
- package/build/server/chunks/nodes/33.js-CjVohrVM.js.map +1 -0
- package/build/server/chunks/nodes/4.js-BF60V_E_.js +9 -0
- package/build/server/chunks/nodes/4.js-BF60V_E_.js.map +1 -0
- package/build/server/chunks/nodes/5.js-vY20Hgh4.js +15 -0
- package/build/server/chunks/nodes/5.js-vY20Hgh4.js.map +1 -0
- package/build/server/chunks/nodes/6.js-BYm5Y6p2.js +28 -0
- package/build/server/chunks/nodes/6.js-BYm5Y6p2.js.map +1 -0
- package/build/server/chunks/nodes/7.js-CcyUjOk-.js +21 -0
- package/build/server/chunks/nodes/7.js-CcyUjOk-.js.map +1 -0
- package/build/server/chunks/nodes/8.js-CJUqis2e.js +32 -0
- package/build/server/chunks/nodes/8.js-CJUqis2e.js.map +1 -0
- package/build/server/chunks/nodes/9.js-C2M9uKjl.js +28 -0
- package/build/server/chunks/nodes/9.js-C2M9uKjl.js.map +1 -0
- package/package.json +17 -17
- package/build/client/_app/immutable/assets/0.CU5JquGT.css +0 -2
- package/build/client/_app/immutable/assets/0.CU5JquGT.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CU5JquGT.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1_6YbgJ9.js +0 -1
- package/build/client/_app/immutable/chunks/1_6YbgJ9.js.br +0 -0
- package/build/client/_app/immutable/chunks/1_6YbgJ9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/26Ez6ihk.js +0 -1
- package/build/client/_app/immutable/chunks/26Ez6ihk.js.br +0 -0
- package/build/client/_app/immutable/chunks/26Ez6ihk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/7JmgQIxD.js +0 -1
- package/build/client/_app/immutable/chunks/7JmgQIxD.js.br +0 -3
- package/build/client/_app/immutable/chunks/7JmgQIxD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B4-FQ3wL.js +0 -1
- package/build/client/_app/immutable/chunks/B4-FQ3wL.js.br +0 -0
- package/build/client/_app/immutable/chunks/B4-FQ3wL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B6OSVQOc.js +0 -1
- package/build/client/_app/immutable/chunks/B6OSVQOc.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6OSVQOc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B919Y2tw.js +0 -1
- package/build/client/_app/immutable/chunks/B919Y2tw.js.br +0 -0
- package/build/client/_app/immutable/chunks/B919Y2tw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BB-gQ9dm.js +0 -1
- package/build/client/_app/immutable/chunks/BB-gQ9dm.js.br +0 -0
- package/build/client/_app/immutable/chunks/BB-gQ9dm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCL171zG.js +0 -1
- package/build/client/_app/immutable/chunks/BCL171zG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BCL171zG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFXBZq1a.js +0 -1
- package/build/client/_app/immutable/chunks/BFXBZq1a.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFXBZq1a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BIn7znkK.js +0 -1
- package/build/client/_app/immutable/chunks/BIn7znkK.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIn7znkK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BL3wqTVi2.js +0 -1
- package/build/client/_app/immutable/chunks/BL3wqTVi2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BL3wqTVi2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU2DYwas.js +0 -1
- package/build/client/_app/immutable/chunks/BU2DYwas.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU2DYwas.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZl4q2M6.js +0 -1
- package/build/client/_app/immutable/chunks/BZl4q2M6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZl4q2M6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bh_ziwSg2.js +0 -1
- package/build/client/_app/immutable/chunks/Bh_ziwSg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bh_ziwSg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnGwyR0G.js +0 -1
- package/build/client/_app/immutable/chunks/BnGwyR0G.js.br +0 -3
- package/build/client/_app/immutable/chunks/BnGwyR0G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bpe-fgUO.js +0 -1
- package/build/client/_app/immutable/chunks/Bpe-fgUO.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bpe-fgUO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Br0j4due.js +0 -2
- package/build/client/_app/immutable/chunks/Br0j4due.js.br +0 -0
- package/build/client/_app/immutable/chunks/Br0j4due.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Br_jswD5.js +0 -1
- package/build/client/_app/immutable/chunks/Br_jswD5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Br_jswD5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzJIPAF1.js +0 -1
- package/build/client/_app/immutable/chunks/BzJIPAF1.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzJIPAF1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3_bpsET2.js +0 -1
- package/build/client/_app/immutable/chunks/C3_bpsET2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3_bpsET2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C41KbrhI2.js +0 -1
- package/build/client/_app/immutable/chunks/C41KbrhI2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C41KbrhI2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C9CI3gkt.js +0 -1
- package/build/client/_app/immutable/chunks/C9CI3gkt.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9CI3gkt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDkI5hqh2.js +0 -1
- package/build/client/_app/immutable/chunks/CDkI5hqh2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDkI5hqh2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEGWJfCu.js +0 -1
- package/build/client/_app/immutable/chunks/CEGWJfCu.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEGWJfCu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CNiMEtW-.js +0 -1
- package/build/client/_app/immutable/chunks/CNiMEtW-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CNiMEtW-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPg-39hE.js +0 -1
- package/build/client/_app/immutable/chunks/CPg-39hE.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPg-39hE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQr7rCfD.js +0 -5
- package/build/client/_app/immutable/chunks/CQr7rCfD.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQr7rCfD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTxVVVad.js +0 -1
- package/build/client/_app/immutable/chunks/CTxVVVad.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTxVVVad.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUE0SryQ.js +0 -1
- package/build/client/_app/immutable/chunks/CUE0SryQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUE0SryQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZPtnER4.js +0 -1
- package/build/client/_app/immutable/chunks/CZPtnER4.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZPtnER4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZoAMCdA.js +0 -1
- package/build/client/_app/immutable/chunks/CZoAMCdA.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZoAMCdA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_ZdRQti.js +0 -1
- package/build/client/_app/immutable/chunks/C_ZdRQti.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_ZdRQti.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_sPxw75.js +0 -1
- package/build/client/_app/immutable/chunks/C_sPxw75.js.br +0 -2
- package/build/client/_app/immutable/chunks/C_sPxw75.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cdax9bCF2.js +0 -1
- package/build/client/_app/immutable/chunks/Cdax9bCF2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cdax9bCF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CgGSBHQV.js +0 -1
- package/build/client/_app/immutable/chunks/CgGSBHQV.js.br +0 -0
- package/build/client/_app/immutable/chunks/CgGSBHQV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ci9Wf3Kq.js +0 -1
- package/build/client/_app/immutable/chunks/Ci9Wf3Kq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ci9Wf3Kq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjeXnG5a.js +0 -1
- package/build/client/_app/immutable/chunks/CjeXnG5a.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjeXnG5a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqueJtmI2.js +0 -1
- package/build/client/_app/immutable/chunks/CqueJtmI2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqueJtmI2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CtJUwyMF2.js +0 -1
- package/build/client/_app/immutable/chunks/CtJUwyMF2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtJUwyMF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cv7Z8Mkb.js +0 -1
- package/build/client/_app/immutable/chunks/Cv7Z8Mkb.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cv7Z8Mkb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0jLEemp.js +0 -1
- package/build/client/_app/immutable/chunks/D0jLEemp.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0jLEemp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3Y5-99i2.js +0 -1
- package/build/client/_app/immutable/chunks/D3Y5-99i2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3Y5-99i2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8XUaGYx2.js +0 -1
- package/build/client/_app/immutable/chunks/D8XUaGYx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8XUaGYx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D9Ykbmlg.js +0 -1
- package/build/client/_app/immutable/chunks/D9Ykbmlg.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9Ykbmlg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDw3J080.js +0 -1
- package/build/client/_app/immutable/chunks/DDw3J080.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDw3J080.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DFeMzyP2.js +0 -1
- package/build/client/_app/immutable/chunks/DFeMzyP2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DFeMzyP2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKjJq5vX.js +0 -1
- package/build/client/_app/immutable/chunks/DKjJq5vX.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKjJq5vX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKvrVYAg2.js +0 -1
- package/build/client/_app/immutable/chunks/DKvrVYAg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKvrVYAg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQn0IGVh.js +0 -1
- package/build/client/_app/immutable/chunks/DQn0IGVh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQn0IGVh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfUyypQ7.js +0 -1
- package/build/client/_app/immutable/chunks/DfUyypQ7.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfUyypQ7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dib_eee6.js +0 -1
- package/build/client/_app/immutable/chunks/Dib_eee6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dib_eee6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dnt8CkEF.js +0 -3
- package/build/client/_app/immutable/chunks/Dnt8CkEF.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dnt8CkEF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpyI52SI.js +0 -1
- package/build/client/_app/immutable/chunks/DpyI52SI.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpyI52SI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsGb3kQc.js +0 -1
- package/build/client/_app/immutable/chunks/DsGb3kQc.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsGb3kQc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ds_AzvNR.js +0 -1
- package/build/client/_app/immutable/chunks/Ds_AzvNR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ds_AzvNR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Du2obc7U.js +0 -1
- package/build/client/_app/immutable/chunks/Du2obc7U.js.br +0 -0
- package/build/client/_app/immutable/chunks/Du2obc7U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuivOmjL.js +0 -1
- package/build/client/_app/immutable/chunks/DuivOmjL.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuivOmjL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DxQNuZLR.js +0 -3
- package/build/client/_app/immutable/chunks/DxQNuZLR.js.br +0 -0
- package/build/client/_app/immutable/chunks/DxQNuZLR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dxg33B6W.js +0 -1
- package/build/client/_app/immutable/chunks/Dxg33B6W.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dxg33B6W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DyKWdjge2.js +0 -1
- package/build/client/_app/immutable/chunks/DyKWdjge2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DyKWdjge2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FstTCWZp.js +0 -1
- package/build/client/_app/immutable/chunks/FstTCWZp.js.br +0 -0
- package/build/client/_app/immutable/chunks/FstTCWZp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/GxfDf9t62.js +0 -1
- package/build/client/_app/immutable/chunks/GxfDf9t62.js.br +0 -0
- package/build/client/_app/immutable/chunks/GxfDf9t62.js.gz +0 -0
- package/build/client/_app/immutable/chunks/KUkyY3-V.js +0 -1
- package/build/client/_app/immutable/chunks/KUkyY3-V.js.br +0 -0
- package/build/client/_app/immutable/chunks/KUkyY3-V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NONifysg.js +0 -1
- package/build/client/_app/immutable/chunks/NONifysg.js.br +0 -0
- package/build/client/_app/immutable/chunks/NONifysg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QuphO1og.js +0 -1
- package/build/client/_app/immutable/chunks/QuphO1og.js.br +0 -1
- package/build/client/_app/immutable/chunks/QuphO1og.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SsGrVUAt.js +0 -1
- package/build/client/_app/immutable/chunks/SsGrVUAt.js.br +0 -0
- package/build/client/_app/immutable/chunks/SsGrVUAt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/WmSwTgjC2.js +0 -1
- package/build/client/_app/immutable/chunks/WmSwTgjC2.js.br +0 -0
- package/build/client/_app/immutable/chunks/WmSwTgjC2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/XvEUYu1N.js +0 -2
- package/build/client/_app/immutable/chunks/XvEUYu1N.js.br +0 -0
- package/build/client/_app/immutable/chunks/XvEUYu1N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bEuwphLD2.js +0 -1
- package/build/client/_app/immutable/chunks/bEuwphLD2.js.br +0 -2
- package/build/client/_app/immutable/chunks/bEuwphLD2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/fHoOTm8x.js +0 -1
- package/build/client/_app/immutable/chunks/fHoOTm8x.js.br +0 -0
- package/build/client/_app/immutable/chunks/fHoOTm8x.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gSSJ7g6L.js +0 -1
- package/build/client/_app/immutable/chunks/gSSJ7g6L.js.br +0 -2
- package/build/client/_app/immutable/chunks/gSSJ7g6L.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jL8UqCnw.js +0 -1
- package/build/client/_app/immutable/chunks/jL8UqCnw.js.br +0 -0
- package/build/client/_app/immutable/chunks/jL8UqCnw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ozc5D_3w.js +0 -1
- package/build/client/_app/immutable/chunks/ozc5D_3w.js.br +0 -0
- package/build/client/_app/immutable/chunks/ozc5D_3w.js.gz +0 -0
- package/build/client/_app/immutable/chunks/qJt00ru1.js +0 -1
- package/build/client/_app/immutable/chunks/qJt00ru1.js.br +0 -0
- package/build/client/_app/immutable/chunks/qJt00ru1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/sPA_C7K1.js +0 -1
- package/build/client/_app/immutable/chunks/sPA_C7K1.js.br +0 -0
- package/build/client/_app/immutable/chunks/sPA_C7K1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/t8MHTMSg2.js +0 -1
- package/build/client/_app/immutable/chunks/t8MHTMSg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/t8MHTMSg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yvU747rM.js +0 -9
- package/build/client/_app/immutable/chunks/yvU747rM.js.br +0 -0
- package/build/client/_app/immutable/chunks/yvU747rM.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CXbXh1Sr.js +0 -2
- package/build/client/_app/immutable/entry/app.CXbXh1Sr.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CXbXh1Sr.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DvQymkgZ.js +0 -1
- package/build/client/_app/immutable/entry/start.DvQymkgZ.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DvQymkgZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DcymCSVc.js +0 -1
- package/build/client/_app/immutable/nodes/0.DcymCSVc.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DcymCSVc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DMFSyDH8.js +0 -1
- package/build/client/_app/immutable/nodes/1.DMFSyDH8.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DMFSyDH8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DJioMzsK.js +0 -3
- package/build/client/_app/immutable/nodes/10.DJioMzsK.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DJioMzsK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DhbE_lWX.js +0 -3
- package/build/client/_app/immutable/nodes/11.DhbE_lWX.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DhbE_lWX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.Da0rfI2j.js +0 -1
- package/build/client/_app/immutable/nodes/12.Da0rfI2j.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.Da0rfI2j.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.BZ113t2p.js +0 -2
- package/build/client/_app/immutable/nodes/13.BZ113t2p.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BZ113t2p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.DZV6_g1N.js +0 -2
- package/build/client/_app/immutable/nodes/14.DZV6_g1N.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.DZV6_g1N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.f9fj1pvw.js +0 -28
- package/build/client/_app/immutable/nodes/15.f9fj1pvw.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.f9fj1pvw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.BeL1wNdx.js +0 -5
- package/build/client/_app/immutable/nodes/16.BeL1wNdx.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.BeL1wNdx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.Dc2yglgS.js +0 -2
- package/build/client/_app/immutable/nodes/17.Dc2yglgS.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.Dc2yglgS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.CbDQcVV7.js +0 -1
- package/build/client/_app/immutable/nodes/18.CbDQcVV7.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.CbDQcVV7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.DkoveXb5.js +0 -7
- package/build/client/_app/immutable/nodes/19.DkoveXb5.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DkoveXb5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CkRM3N7n.js +0 -1
- package/build/client/_app/immutable/nodes/2.CkRM3N7n.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CkRM3N7n.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.DiPInNOT.js +0 -2
- package/build/client/_app/immutable/nodes/20.DiPInNOT.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.DiPInNOT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.CL_2djvQ.js +0 -5495
- package/build/client/_app/immutable/nodes/21.CL_2djvQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CL_2djvQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/22.grtwX80a.js +0 -6
- package/build/client/_app/immutable/nodes/22.grtwX80a.js.br +0 -0
- package/build/client/_app/immutable/nodes/22.grtwX80a.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.CWxy09rn.js +0 -16
- package/build/client/_app/immutable/nodes/24.CWxy09rn.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.CWxy09rn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/25.BtA0xnff.js +0 -6
- package/build/client/_app/immutable/nodes/25.BtA0xnff.js.br +0 -0
- package/build/client/_app/immutable/nodes/25.BtA0xnff.js.gz +0 -0
- package/build/client/_app/immutable/nodes/26.BoWM3s5a.js +0 -1
- package/build/client/_app/immutable/nodes/26.BoWM3s5a.js.br +0 -0
- package/build/client/_app/immutable/nodes/26.BoWM3s5a.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.rqTZTva3.js +0 -3
- package/build/client/_app/immutable/nodes/27.rqTZTva3.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.rqTZTva3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.BzvpY7Iz.js +0 -4
- package/build/client/_app/immutable/nodes/28.BzvpY7Iz.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.BzvpY7Iz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.Bz2uo1rK.js +0 -6
- package/build/client/_app/immutable/nodes/29.Bz2uo1rK.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.Bz2uo1rK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.FsUbKZx5.js +0 -1
- package/build/client/_app/immutable/nodes/3.FsUbKZx5.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.FsUbKZx5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.BZ-dw5m7.js +0 -2
- package/build/client/_app/immutable/nodes/30.BZ-dw5m7.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.BZ-dw5m7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/31.CSqn84cN.js +0 -2
- package/build/client/_app/immutable/nodes/31.CSqn84cN.js.br +0 -0
- package/build/client/_app/immutable/nodes/31.CSqn84cN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/32.iVu8C3W4.js +0 -2
- package/build/client/_app/immutable/nodes/32.iVu8C3W4.js.br +0 -0
- package/build/client/_app/immutable/nodes/32.iVu8C3W4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/33.U8awGNdU.js +0 -1
- package/build/client/_app/immutable/nodes/33.U8awGNdU.js.br +0 -0
- package/build/client/_app/immutable/nodes/33.U8awGNdU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.L5hF3yCj.js +0 -1
- package/build/client/_app/immutable/nodes/4.L5hF3yCj.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.L5hF3yCj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.Btqh1tUK.js +0 -1
- package/build/client/_app/immutable/nodes/5.Btqh1tUK.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Btqh1tUK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DmU_RaVC.js +0 -1
- package/build/client/_app/immutable/nodes/6.DmU_RaVC.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DmU_RaVC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DCc83FsO.js +0 -1
- package/build/client/_app/immutable/nodes/7.DCc83FsO.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DCc83FsO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DDytzf9J.js +0 -3
- package/build/client/_app/immutable/nodes/8.DDytzf9J.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DDytzf9J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.vD-TQ8Iq.js +0 -1
- package/build/client/_app/immutable/nodes/9.vD-TQ8Iq.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.vD-TQ8Iq.js.gz +0 -0
- package/build/server/chunks/chunks/AppHeader.js-BiEGhZxl.js +0 -72
- package/build/server/chunks/chunks/AppHeader.js-BiEGhZxl.js.map +0 -1
- package/build/server/chunks/chunks/Callout.js-2vvaMCZa.js +0 -112
- package/build/server/chunks/chunks/Callout.js-2vvaMCZa.js.map +0 -1
- package/build/server/chunks/chunks/ConfirmDialog.js-DRwiZj4l.js +0 -152
- package/build/server/chunks/chunks/ConfirmDialog.js-DRwiZj4l.js.map +0 -1
- package/build/server/chunks/chunks/DataTable.js-BdLnzRo7.js +0 -27
- package/build/server/chunks/chunks/DataTable.js-BdLnzRo7.js.map +0 -1
- package/build/server/chunks/chunks/DefinitionCard.js-4gzEHiRL.js +0 -166
- package/build/server/chunks/chunks/DefinitionCard.js-4gzEHiRL.js.map +0 -1
- package/build/server/chunks/chunks/EmptyState.js-CjCy0_9x.js +0 -40
- package/build/server/chunks/chunks/EmptyState.js-CjCy0_9x.js.map +0 -1
- package/build/server/chunks/chunks/ErrorScreen.js-DhXSfajf.js +0 -123
- package/build/server/chunks/chunks/ErrorScreen.js-DhXSfajf.js.map +0 -1
- package/build/server/chunks/chunks/FilterableDropdown.js-D5qHOijP.js +0 -45
- package/build/server/chunks/chunks/FilterableDropdown.js-D5qHOijP.js.map +0 -1
- package/build/server/chunks/chunks/PageContent.js-jB_xfx6P.js +0 -12
- package/build/server/chunks/chunks/PageContent.js-jB_xfx6P.js.map +0 -1
- package/build/server/chunks/chunks/SectionHeader.js-CHWtMRIN.js +0 -27
- package/build/server/chunks/chunks/SectionHeader.js-CHWtMRIN.js.map +0 -1
- package/build/server/chunks/chunks/SettingsMenu.js-B5TBSMrK.js +0 -1363
- package/build/server/chunks/chunks/SettingsMenu.js-B5TBSMrK.js.map +0 -1
- package/build/server/chunks/chunks/SideNav.js-baLtSrLY.js +0 -71
- package/build/server/chunks/chunks/SideNav.js-baLtSrLY.js.map +0 -1
- package/build/server/chunks/chunks/StatCard.js-B52NlYxD.js +0 -51
- package/build/server/chunks/chunks/StatCard.js-B52NlYxD.js.map +0 -1
- package/build/server/chunks/chunks/UserAvatar.js-ZRWQAlFC.js +0 -14
- package/build/server/chunks/chunks/UserAvatar.js-ZRWQAlFC.js.map +0 -1
- package/build/server/chunks/chunks/UserRowIdentity.js-qAEOnbnL.js +0 -131
- package/build/server/chunks/chunks/UserRowIdentity.js-qAEOnbnL.js.map +0 -1
- package/build/server/chunks/chunks/ViewToggle.js-BV0e_r1y.js +0 -94
- package/build/server/chunks/chunks/ViewToggle.js-BV0e_r1y.js.map +0 -1
- package/build/server/chunks/chunks/activity.js-BvRbk8H2.js +0 -15
- package/build/server/chunks/chunks/activity.js-BvRbk8H2.js.map +0 -1
- package/build/server/chunks/chunks/admin-auth.server.js-FOiBiJZ9.js +0 -259
- package/build/server/chunks/chunks/admin-auth.server.js-FOiBiJZ9.js.map +0 -1
- package/build/server/chunks/chunks/alert-description.js-YCoM0g_8.js +0 -45
- package/build/server/chunks/chunks/alert-description.js-YCoM0g_8.js.map +0 -1
- package/build/server/chunks/chunks/alert-dialog.js-D4VqWclq.js +0 -461
- package/build/server/chunks/chunks/alert-dialog.js-D4VqWclq.js.map +0 -1
- package/build/server/chunks/chunks/arrow-left.js-STi78UNq.js +0 -15
- package/build/server/chunks/chunks/arrow-left.js-STi78UNq.js.map +0 -1
- package/build/server/chunks/chunks/arrow-right.js-CJ2cNjuS.js +0 -15
- package/build/server/chunks/chunks/arrow-right.js-CJ2cNjuS.js.map +0 -1
- package/build/server/chunks/chunks/auth-bootstrap.server.js-5McDnBaH.js +0 -152
- package/build/server/chunks/chunks/auth-bootstrap.server.js-5McDnBaH.js.map +0 -1
- package/build/server/chunks/chunks/badge.js-BN79hFGD.js +0 -35
- package/build/server/chunks/chunks/badge.js-BN79hFGD.js.map +0 -1
- package/build/server/chunks/chunks/bootHealth.server.js-Cn50yzJa.js +0 -90
- package/build/server/chunks/chunks/bootHealth.server.js-Cn50yzJa.js.map +0 -1
- package/build/server/chunks/chunks/building-2.js-B2qqphi2.js +0 -21
- package/build/server/chunks/chunks/building-2.js-B2qqphi2.js.map +0 -1
- package/build/server/chunks/chunks/button.js-DbB0dwmm.js +0 -71
- package/build/server/chunks/chunks/button.js-DbB0dwmm.js.map +0 -1
- package/build/server/chunks/chunks/card-content.js-DO1tWfLJ.js +0 -35
- package/build/server/chunks/chunks/card-content.js-DO1tWfLJ.js.map +0 -1
- package/build/server/chunks/chunks/card-description.js-eBi7Vr_W.js +0 -20
- package/build/server/chunks/chunks/card-description.js-eBi7Vr_W.js.map +0 -1
- package/build/server/chunks/chunks/card-title.js-D5QL4vvE.js +0 -35
- package/build/server/chunks/chunks/card-title.js-D5QL4vvE.js.map +0 -1
- package/build/server/chunks/chunks/check.js-ZBkcmA-B.js +0 -15
- package/build/server/chunks/chunks/check.js-ZBkcmA-B.js.map +0 -1
- package/build/server/chunks/chunks/chevron-down.js-BDXhP2jb.js +0 -15
- package/build/server/chunks/chunks/chevron-down.js-BDXhP2jb.js.map +0 -1
- package/build/server/chunks/chunks/chevron-right.js-DHiwRcHz.js +0 -15
- package/build/server/chunks/chunks/chevron-right.js-DHiwRcHz.js.map +0 -1
- package/build/server/chunks/chunks/chevron-up.js-lThN0eNr.js +0 -15
- package/build/server/chunks/chunks/chevron-up.js-lThN0eNr.js.map +0 -1
- package/build/server/chunks/chunks/circle-alert.js-DflREk0J.js +0 -33
- package/build/server/chunks/chunks/circle-alert.js-DflREk0J.js.map +0 -1
- package/build/server/chunks/chunks/circle.js-DN_KsZqP.js +0 -19
- package/build/server/chunks/chunks/circle.js-DN_KsZqP.js.map +0 -1
- package/build/server/chunks/chunks/client.js-D3xDFDYP.js +0 -59
- package/build/server/chunks/chunks/client.js-D3xDFDYP.js.map +0 -1
- package/build/server/chunks/chunks/computeLimits.js-GT8oPvJa.js +0 -48
- package/build/server/chunks/chunks/computeLimits.js-GT8oPvJa.js.map +0 -1
- package/build/server/chunks/chunks/create-id.js-S9AoBzd9.js +0 -809
- package/build/server/chunks/chunks/create-id.js-S9AoBzd9.js.map +0 -1
- package/build/server/chunks/chunks/dialog-description.js-huVQABpc.js +0 -494
- package/build/server/chunks/chunks/dialog-description.js-huVQABpc.js.map +0 -1
- package/build/server/chunks/chunks/dialog-footer.js-WWtvlInW.js +0 -59
- package/build/server/chunks/chunks/dialog-footer.js-WWtvlInW.js.map +0 -1
- package/build/server/chunks/chunks/dialog.js-ChaJ-n8s.js +0 -366
- package/build/server/chunks/chunks/dialog.js-ChaJ-n8s.js.map +0 -1
- package/build/server/chunks/chunks/engine.server.js-VkkOCr0A.js +0 -582
- package/build/server/chunks/chunks/engine.server.js-VkkOCr0A.js.map +0 -1
- package/build/server/chunks/chunks/events.js-DCr2n6fH.js +0 -125
- package/build/server/chunks/chunks/events.js-DCr2n6fH.js.map +0 -1
- package/build/server/chunks/chunks/exports.js-CPkIuisC.js +0 -152
- package/build/server/chunks/chunks/exports.js-CPkIuisC.js.map +0 -1
- package/build/server/chunks/chunks/external-link.js-BsFg-S1A.js +0 -19
- package/build/server/chunks/chunks/external-link.js-BsFg-S1A.js.map +0 -1
- package/build/server/chunks/chunks/folder-kanban.js-1Devz5Qh.js +0 -20
- package/build/server/chunks/chunks/folder-kanban.js-1Devz5Qh.js.map +0 -1
- package/build/server/chunks/chunks/folder-open.js-CJnc8m6o.js +0 -15
- package/build/server/chunks/chunks/folder-open.js-CJnc8m6o.js.map +0 -1
- package/build/server/chunks/chunks/folders.js-DTVFHTpC.js +0 -15
- package/build/server/chunks/chunks/folders.js-DTVFHTpC.js.map +0 -1
- package/build/server/chunks/chunks/footerContext.svelte.js-GNNlOmlv.js +0 -707
- package/build/server/chunks/chunks/footerContext.svelte.js-GNNlOmlv.js.map +0 -1
- package/build/server/chunks/chunks/forms.js-CzAd7d_S.js +0 -2
- package/build/server/chunks/chunks/forms.js-CzAd7d_S.js.map +0 -1
- package/build/server/chunks/chunks/gauge.js-CH3EaFeI.js +0 -15
- package/build/server/chunks/chunks/gauge.js-CH3EaFeI.js.map +0 -1
- package/build/server/chunks/chunks/handlers.js-BxO_5n4X.js +0 -1375
- package/build/server/chunks/chunks/handlers.js-BxO_5n4X.js.map +0 -1
- package/build/server/chunks/chunks/index-server.js-gS5cdWCH.js +0 -147
- package/build/server/chunks/chunks/index-server.js-gS5cdWCH.js.map +0 -1
- package/build/server/chunks/chunks/info.js-ByvW1nC1.js +0 -23
- package/build/server/chunks/chunks/info.js-ByvW1nC1.js.map +0 -1
- package/build/server/chunks/chunks/input.js-nXGVOn5i.js +0 -36
- package/build/server/chunks/chunks/input.js-nXGVOn5i.js.map +0 -1
- package/build/server/chunks/chunks/instanceAdmins.server.js-8HQ_BbHV.js +0 -23
- package/build/server/chunks/chunks/instanceAdmins.server.js-8HQ_BbHV.js.map +0 -1
- package/build/server/chunks/chunks/internal.js-D-PIqUmO.js +0 -27
- package/build/server/chunks/chunks/internal.js-D-PIqUmO.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-Brm_q2Rr.js +0 -224
- package/build/server/chunks/chunks/internal2.js-Brm_q2Rr.js.map +0 -1
- package/build/server/chunks/chunks/label.js-B2fFCw6p.js +0 -108
- package/build/server/chunks/chunks/label.js-B2fFCw6p.js.map +0 -1
- package/build/server/chunks/chunks/legacy-client.js-B6XuTI3b.js +0 -320
- package/build/server/chunks/chunks/legacy-client.js-B6XuTI3b.js.map +0 -1
- package/build/server/chunks/chunks/link-2.js-BZDNkm4u.js +0 -24
- package/build/server/chunks/chunks/link-2.js-BZDNkm4u.js.map +0 -1
- package/build/server/chunks/chunks/mail.js-DaoAzZX1.js +0 -21
- package/build/server/chunks/chunks/mail.js-DaoAzZX1.js.map +0 -1
- package/build/server/chunks/chunks/minus.js-C88E4hSt.js +0 -15
- package/build/server/chunks/chunks/minus.js-C88E4hSt.js.map +0 -1
- package/build/server/chunks/chunks/navigation.js-CzAd7d_S.js +0 -2
- package/build/server/chunks/chunks/navigation.js-CzAd7d_S.js.map +0 -1
- package/build/server/chunks/chunks/oauthState.server.js-DZKDvVoo.js +0 -53
- package/build/server/chunks/chunks/oauthState.server.js-DZKDvVoo.js.map +0 -1
- package/build/server/chunks/chunks/package.js-0p2MKz9Z.js +0 -82
- package/build/server/chunks/chunks/package.js-0p2MKz9Z.js.map +0 -1
- package/build/server/chunks/chunks/paths.js-BZS-NVws.js +0 -19
- package/build/server/chunks/chunks/paths.js-BZS-NVws.js.map +0 -1
- package/build/server/chunks/chunks/permissions.server.js-CsIWDCwH.js +0 -24
- package/build/server/chunks/chunks/permissions.server.js-CsIWDCwH.js.map +0 -1
- package/build/server/chunks/chunks/plus.js-CyKPA-9j.js +0 -15
- package/build/server/chunks/chunks/plus.js-CyKPA-9j.js.map +0 -1
- package/build/server/chunks/chunks/providers.server.js-CrzKLXpj.js +0 -5911
- package/build/server/chunks/chunks/providers.server.js-CrzKLXpj.js.map +0 -1
- package/build/server/chunks/chunks/refresh-cw.js-CZD-wjFn.js +0 -20
- package/build/server/chunks/chunks/refresh-cw.js-CZD-wjFn.js.map +0 -1
- package/build/server/chunks/chunks/resolve.server.js-kyGBDPG7.js +0 -59
- package/build/server/chunks/chunks/resolve.server.js-kyGBDPG7.js.map +0 -1
- package/build/server/chunks/chunks/rotate-ccw.js-DK6ze4lY.js +0 -15
- package/build/server/chunks/chunks/rotate-ccw.js-DK6ze4lY.js.map +0 -1
- package/build/server/chunks/chunks/routing.js-C2Q7p_y3.js +0 -265
- package/build/server/chunks/chunks/routing.js-C2Q7p_y3.js.map +0 -1
- package/build/server/chunks/chunks/scroll-lock.js-BxB04xoK.js +0 -3432
- package/build/server/chunks/chunks/scroll-lock.js-BxB04xoK.js.map +0 -1
- package/build/server/chunks/chunks/scroll-text.js-CC4wsu-C.js +0 -20
- package/build/server/chunks/chunks/scroll-text.js-CC4wsu-C.js.map +0 -1
- package/build/server/chunks/chunks/search.js-p8OoyQ2D.js +0 -19
- package/build/server/chunks/chunks/search.js-p8OoyQ2D.js.map +0 -1
- package/build/server/chunks/chunks/select.js-B7igBIEr.js +0 -3633
- package/build/server/chunks/chunks/select.js-B7igBIEr.js.map +0 -1
- package/build/server/chunks/chunks/selfUpdate.server.js-CBJortLo.js +0 -144
- package/build/server/chunks/chunks/selfUpdate.server.js-CBJortLo.js.map +0 -1
- package/build/server/chunks/chunks/server.js-fxznQVe4.js +0 -4190
- package/build/server/chunks/chunks/server.js-fxznQVe4.js.map +0 -1
- package/build/server/chunks/chunks/server2.js-B1Z22rWd.js +0 -44
- package/build/server/chunks/chunks/server2.js-B1Z22rWd.js.map +0 -1
- package/build/server/chunks/chunks/settings.js-ClaRhfQF.js +0 -19
- package/build/server/chunks/chunks/settings.js-ClaRhfQF.js.map +0 -1
- package/build/server/chunks/chunks/shared-server.js-BZy9KN6u.js +0 -22
- package/build/server/chunks/chunks/shared-server.js-BZy9KN6u.js.map +0 -1
- package/build/server/chunks/chunks/shared.js-JbueMana.js +0 -701
- package/build/server/chunks/chunks/shared.js-JbueMana.js.map +0 -1
- package/build/server/chunks/chunks/shield-check.js-kf9zr8e4.js +0 -15
- package/build/server/chunks/chunks/shield-check.js-kf9zr8e4.js.map +0 -1
- package/build/server/chunks/chunks/shield.js-DkHHoUTl.js +0 -15
- package/build/server/chunks/chunks/shield.js-DkHHoUTl.js.map +0 -1
- package/build/server/chunks/chunks/solve.server.js-P-lDriT2.js +0 -312
- package/build/server/chunks/chunks/solve.server.js-P-lDriT2.js.map +0 -1
- package/build/server/chunks/chunks/star.js-DiKFn7P4.js +0 -15
- package/build/server/chunks/chunks/star.js-DiKFn7P4.js.map +0 -1
- package/build/server/chunks/chunks/state.js-CzRoA3Gr.js +0 -76
- package/build/server/chunks/chunks/state.js-CzRoA3Gr.js.map +0 -1
- package/build/server/chunks/chunks/stores.js-DZGlgX6K.js +0 -35
- package/build/server/chunks/chunks/stores.js-DZGlgX6K.js.map +0 -1
- package/build/server/chunks/chunks/tabs-trigger.js-C3PICukN.js +0 -512
- package/build/server/chunks/chunks/tabs-trigger.js-C3PICukN.js.map +0 -1
- package/build/server/chunks/chunks/toast-state.svelte.js-DkqKrnCj.js +0 -285
- package/build/server/chunks/chunks/toast-state.svelte.js-DkqKrnCj.js.map +0 -1
- package/build/server/chunks/chunks/token.server.js-B_7Y_pF8.js +0 -48
- package/build/server/chunks/chunks/token.server.js-B_7Y_pF8.js.map +0 -1
- package/build/server/chunks/chunks/token2.server.js-DMWpWJUu.js +0 -39
- package/build/server/chunks/chunks/token2.server.js-DMWpWJUu.js.map +0 -1
- package/build/server/chunks/chunks/trash-2.js-ByDxap-k.js +0 -21
- package/build/server/chunks/chunks/trash-2.js-ByDxap-k.js.map +0 -1
- package/build/server/chunks/chunks/triangle-alert.js-B55Ovp_J.js +0 -19
- package/build/server/chunks/chunks/triangle-alert.js-B55Ovp_J.js.map +0 -1
- package/build/server/chunks/chunks/uneval.js-sOjdN_Ot.js +0 -481
- package/build/server/chunks/chunks/uneval.js-sOjdN_Ot.js.map +0 -1
- package/build/server/chunks/chunks/updateCheck.server.js-R6PezMDU.js +0 -205
- package/build/server/chunks/chunks/updateCheck.server.js-R6PezMDU.js.map +0 -1
- package/build/server/chunks/chunks/user-plus.js-BkFlJcz_.js +0 -51
- package/build/server/chunks/chunks/user-plus.js-BkFlJcz_.js.map +0 -1
- package/build/server/chunks/chunks/users.js-BLt400qR.js +0 -24
- package/build/server/chunks/chunks/users.js-BLt400qR.js.map +0 -1
- package/build/server/chunks/chunks/utils.js-ClXRfZyP.js +0 -750
- package/build/server/chunks/chunks/utils.js-ClXRfZyP.js.map +0 -1
- package/build/server/chunks/chunks/utils2.js-RqmNbcNh.js +0 -95
- package/build/server/chunks/chunks/utils2.js-RqmNbcNh.js.map +0 -1
- package/build/server/chunks/chunks/x.js-DsqVhvY1.js +0 -15
- package/build/server/chunks/chunks/x.js-DsqVhvY1.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DJrt33SX.js +0 -98
- package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DJrt33SX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-CBMiFDgW.js +0 -57
- package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-CBMiFDgW.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-jnTpEMQP.js +0 -96
- package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-jnTpEMQP.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-mbbQgXB4.js +0 -46
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-mbbQgXB4.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-l1MQkbXN.js +0 -69
- package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-l1MQkbXN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-DDDoBJIT.js +0 -62
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-DDDoBJIT.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DJy8jOfF.js +0 -34
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DJy8jOfF.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-DvQohmFF.js +0 -65
- package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-DvQohmFF.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BIV1Hud7.js +0 -80
- package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BIV1Hud7.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-Bq0cQ24N.js +0 -334
- package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-Bq0cQ24N.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-DlrqlBOe.js +0 -607
- package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-DlrqlBOe.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-PGCnFSdp.js +0 -58
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-PGCnFSdp.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-D2WpxmHQ.js +0 -67
- package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-D2WpxmHQ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-Do3XmTfY.js +0 -83
- package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-Do3XmTfY.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DwdSIP04.js +0 -62
- package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DwdSIP04.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-DNL8hRvw.js +0 -93
- package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-DNL8hRvw.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-Dn8Acyll.js +0 -59
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-Dn8Acyll.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-Dl1TjeCG.js +0 -62
- package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-Dl1TjeCG.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BmXpXzZG.js +0 -84
- package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BmXpXzZG.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-k68Zvw49.js +0 -63
- package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-k68Zvw49.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CSs_JVGa.js +0 -40
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-CSs_JVGa.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-FtRs0d3h.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-FtRs0d3h.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-D81HCO3p.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-D81HCO3p.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BoBkjNJ3.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-BoBkjNJ3.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-Q6iYoeWA.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-Q6iYoeWA.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-BYRQ-S4h.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-BYRQ-S4h.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-BZAb1HyM.js +0 -208
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-BZAb1HyM.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-C8huhyFd.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-C8huhyFd.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BNgAFRdn.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BNgAFRdn.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-jmoeQZil.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-jmoeQZil.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-D9Kj_1H3.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-D9Kj_1H3.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-DaEEAZQ6.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-DaEEAZQ6.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-DgiYi7er.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-DgiYi7er.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CuL_C6sX.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CuL_C6sX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-BI5WjxyI.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-BI5WjxyI.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BetTca9h.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BetTca9h.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-aUpa3swm.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-aUpa3swm.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-BcdQNE86.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-BcdQNE86.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ChRIGTda.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ChRIGTda.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-DDbfjDk2.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-DDbfjDk2.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-D7OSvmCB.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-D7OSvmCB.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CK4ff84g.js +0 -40
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CK4ff84g.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-W-SFdjeh.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-W-SFdjeh.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-D-ksljq3.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-D-ksljq3.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-BhJLOaSg.js +0 -38
- package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-BhJLOaSg.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-Dav8HrLS.js +0 -39
- package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-Dav8HrLS.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CUk36Kzj.js +0 -47
- package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CUk36Kzj.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-4UF8JZCQ.js +0 -53
- package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-4UF8JZCQ.js.map +0 -1
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-RURhy-l2.js +0 -64
- package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-RURhy-l2.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-Cnv40ZMh.js +0 -337
- package/build/server/chunks/entries/hooks.server.js-Cnv40ZMh.js.map +0 -1
- package/build/server/chunks/entries/pages/_error.svelte.js-BG726Ka5.js +0 -36
- package/build/server/chunks/entries/pages/_error.svelte.js-BG726Ka5.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.server.ts.js-C6iCGX2R.js +0 -34
- package/build/server/chunks/entries/pages/_layout.server.ts.js-C6iCGX2R.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-0_x5mnEU.js +0 -654
- package/build/server/chunks/entries/pages/_layout.svelte.js-0_x5mnEU.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-cKWyCd0g.js +0 -161
- package/build/server/chunks/entries/pages/_page.svelte.js-cKWyCd0g.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-_0P_VFAh.js +0 -181
- package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-_0P_VFAh.js.map +0 -1
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-Cy9dLzV_.js +0 -188
- package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-Cy9dLzV_.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-CWPVdMhU.js +0 -37
- package/build/server/chunks/entries/pages/admin/_error.svelte.js-CWPVdMhU.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-BbHjfG8A.js +0 -31
- package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-BbHjfG8A.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-C9hPSe68.js +0 -124
- package/build/server/chunks/entries/pages/admin/_layout.svelte.js-C9hPSe68.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-hALBd5MV.js +0 -76
- package/build/server/chunks/entries/pages/admin/_page.server.ts.js-hALBd5MV.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-BN005efX.js +0 -394
- package/build/server/chunks/entries/pages/admin/_page.svelte.js-BN005efX.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-Pz4dHllO.js +0 -265
- package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-Pz4dHllO.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-BILNw1sN.js +0 -464
- package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-BILNw1sN.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-ZN7ctP1Q.js +0 -74
- package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-ZN7ctP1Q.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-HJirdJSd.js +0 -812
- package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-HJirdJSd.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-3iUU6m0R.js +0 -35
- package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-3iUU6m0R.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-DtysOCiA.js +0 -95
- package/build/server/chunks/entries/pages/admin/organizations/_page.svelte.js-DtysOCiA.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-SFJPLmgf.js +0 -86
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-SFJPLmgf.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-CSzJ7bPi.js +0 -638
- package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-CSzJ7bPi.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-B9x6UqyU.js +0 -42
- package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-B9x6UqyU.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CN-OQU60.js +0 -283
- package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-CN-OQU60.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-DxCSm6VD.js +0 -87
- package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-DxCSm6VD.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CLv2jZxy.js +0 -1394
- package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-CLv2jZxy.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-BjfF9HDB.js +0 -79
- package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-BjfF9HDB.js.map +0 -1
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-COkOBSFq.js +0 -643
- package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-COkOBSFq.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DX_yQkpu.js +0 -63
- package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DX_yQkpu.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-B9CPuMDx.js +0 -62
- package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-B9CPuMDx.js.map +0 -1
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-DNi7iOq-.js +0 -15
- package/build/server/chunks/entries/pages/auth/email/start/_page.svelte.js-DNi7iOq-.js.map +0 -1
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-BUG2B-uf.js +0 -90
- package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-BUG2B-uf.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-BQIgjYAA.js +0 -120
- package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-BQIgjYAA.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CA2wCtYg.js +0 -12937
- package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CA2wCtYg.js.map +0 -1
- package/build/server/chunks/entries/pages/library/_page.svelte.js-is4TQ1pz.js +0 -313
- package/build/server/chunks/entries/pages/library/_page.svelte.js-is4TQ1pz.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-CbMuVtuN.js +0 -101
- package/build/server/chunks/entries/pages/login/_page.server.ts.js-CbMuVtuN.js.map +0 -1
- package/build/server/chunks/entries/pages/login/_page.svelte.js-CrZjmfSL.js +0 -272
- package/build/server/chunks/entries/pages/login/_page.svelte.js-CrZjmfSL.js.map +0 -1
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-Dq2XLsxc.js +0 -19
- package/build/server/chunks/entries/pages/logout/_page.server.ts.js-Dq2XLsxc.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DU24XwG1.js +0 -51
- package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DU24XwG1.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-G_72rqYR.js +0 -93
- package/build/server/chunks/entries/pages/projects/_page.server.ts.js-G_72rqYR.js.map +0 -1
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-BSUiiL26.js +0 -3835
- package/build/server/chunks/entries/pages/projects/_page.svelte.js-BSUiiL26.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-C9s28cPE.js +0 -116
- package/build/server/chunks/entries/pages/setup/_page.server.ts.js-C9s28cPE.js.map +0 -1
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-ual4F-0M.js +0 -322
- package/build/server/chunks/entries/pages/setup/_page.svelte.js-ual4F-0M.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-C7F3Fzk7.js +0 -28
- package/build/server/chunks/entries/pages/team/_layout.server.ts.js-C7F3Fzk7.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-BsLCO3ai.js +0 -171
- package/build/server/chunks/entries/pages/team/_layout.svelte.js-BsLCO3ai.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-CnWTQjBX.js +0 -35
- package/build/server/chunks/entries/pages/team/_page.server.ts.js-CnWTQjBX.js.map +0 -1
- package/build/server/chunks/entries/pages/team/_page.svelte.js-DrG1FOEQ.js +0 -110
- package/build/server/chunks/entries/pages/team/_page.svelte.js-DrG1FOEQ.js.map +0 -1
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-C0ZnkwkL.js +0 -121
- package/build/server/chunks/entries/pages/team/activity/_page.svelte.js-C0ZnkwkL.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CzGM0X0y.js +0 -42
- package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CzGM0X0y.js.map +0 -1
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Dy79enPd.js +0 -626
- package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Dy79enPd.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-CsMKU11G.js +0 -62
- package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-CsMKU11G.js.map +0 -1
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DtbnlLb-.js +0 -834
- package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DtbnlLb-.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DM4P6bF8.js +0 -58
- package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DM4P6bF8.js.map +0 -1
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CUS7hXuW.js +0 -423
- package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-CUS7hXuW.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-3XuPeqbz.js +0 -67
- package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-3XuPeqbz.js.map +0 -1
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-loDoHHFp.js +0 -268
- package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-loDoHHFp.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-S4bsZq7U.js +0 -34
- package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-S4bsZq7U.js.map +0 -1
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-B5kknbBn.js +0 -303
- package/build/server/chunks/entries/pages/team/settings/_page.svelte.js-B5kknbBn.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BWF1GOVa.js +0 -29
- package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BWF1GOVa.js.map +0 -1
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Co8IWnQ1.js +0 -322
- package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Co8IWnQ1.js.map +0 -1
- package/build/server/chunks/handler-BkKEPy-e.js +0 -1206
- package/build/server/chunks/handler-BkKEPy-e.js.map +0 -1
- package/build/server/chunks/index-CKzjcmUT.js +0 -44671
- package/build/server/chunks/index-CKzjcmUT.js.map +0 -1
- package/build/server/chunks/index.js-Do5H2IvU.js +0 -3767
- package/build/server/chunks/index.js-Do5H2IvU.js.map +0 -1
- package/build/server/chunks/manifest.js-pdv1RtPO.js +0 -612
- package/build/server/chunks/manifest.js-pdv1RtPO.js.map +0 -1
- package/build/server/chunks/nodes/0.js-Hprj8npI.js +0 -27
- package/build/server/chunks/nodes/0.js-Hprj8npI.js.map +0 -1
- package/build/server/chunks/nodes/1.js-DBCBtIJd.js +0 -9
- package/build/server/chunks/nodes/1.js-DBCBtIJd.js.map +0 -1
- package/build/server/chunks/nodes/10.js-CE2qhg1V.js +0 -30
- package/build/server/chunks/nodes/10.js-CE2qhg1V.js.map +0 -1
- package/build/server/chunks/nodes/11.js-DE7y1qOG.js +0 -36
- package/build/server/chunks/nodes/11.js-DE7y1qOG.js.map +0 -1
- package/build/server/chunks/nodes/12.js-2u6RyTaW.js +0 -28
- package/build/server/chunks/nodes/12.js-2u6RyTaW.js.map +0 -1
- package/build/server/chunks/nodes/13.js-yTT0kTvD.js +0 -28
- package/build/server/chunks/nodes/13.js-yTT0kTvD.js.map +0 -1
- package/build/server/chunks/nodes/14.js-f71W7rEu.js +0 -28
- package/build/server/chunks/nodes/14.js-f71W7rEu.js.map +0 -1
- package/build/server/chunks/nodes/15.js-BOIbgpnA.js +0 -37
- package/build/server/chunks/nodes/15.js-BOIbgpnA.js.map +0 -1
- package/build/server/chunks/nodes/16.js-Bk2vfFBe.js +0 -30
- package/build/server/chunks/nodes/16.js-Bk2vfFBe.js.map +0 -1
- package/build/server/chunks/nodes/17.js-BKHKqIb1.js +0 -9
- package/build/server/chunks/nodes/17.js-BKHKqIb1.js.map +0 -1
- package/build/server/chunks/nodes/18.js-aa7BpAKa.js +0 -30
- package/build/server/chunks/nodes/18.js-aa7BpAKa.js.map +0 -1
- package/build/server/chunks/nodes/19.js-DUfs7ZbX.js +0 -24
- package/build/server/chunks/nodes/19.js-DUfs7ZbX.js.map +0 -1
- package/build/server/chunks/nodes/2.js-DAkcuEZJ.js +0 -30
- package/build/server/chunks/nodes/2.js-DAkcuEZJ.js.map +0 -1
- package/build/server/chunks/nodes/20.js-C37vTNdP.js +0 -21
- package/build/server/chunks/nodes/20.js-C37vTNdP.js.map +0 -1
- package/build/server/chunks/nodes/21.js-CCY_KdtE.js +0 -40
- package/build/server/chunks/nodes/21.js-CCY_KdtE.js.map +0 -1
- package/build/server/chunks/nodes/22.js-3E-ZXhRz.js +0 -30
- package/build/server/chunks/nodes/22.js-3E-ZXhRz.js.map +0 -1
- package/build/server/chunks/nodes/23.js-ClXXp4fn.js +0 -27
- package/build/server/chunks/nodes/23.js-ClXXp4fn.js.map +0 -1
- package/build/server/chunks/nodes/24.js-BDT6SA5A.js +0 -29
- package/build/server/chunks/nodes/24.js-BDT6SA5A.js.map +0 -1
- package/build/server/chunks/nodes/25.js-BZIYGUdd.js +0 -30
- package/build/server/chunks/nodes/25.js-BZIYGUdd.js.map +0 -1
- package/build/server/chunks/nodes/26.js-BHuBlTnJ.js +0 -28
- package/build/server/chunks/nodes/26.js-BHuBlTnJ.js.map +0 -1
- package/build/server/chunks/nodes/27.js-Dzwz7iRb.js +0 -9
- package/build/server/chunks/nodes/27.js-Dzwz7iRb.js.map +0 -1
- package/build/server/chunks/nodes/28.js-Bkdz_sz9.js +0 -28
- package/build/server/chunks/nodes/28.js-Bkdz_sz9.js.map +0 -1
- package/build/server/chunks/nodes/29.js-B7sI7fzr.js +0 -28
- package/build/server/chunks/nodes/29.js-B7sI7fzr.js.map +0 -1
- package/build/server/chunks/nodes/3.js-B7q1aUjQ.js +0 -9
- package/build/server/chunks/nodes/3.js-B7q1aUjQ.js.map +0 -1
- package/build/server/chunks/nodes/30.js-BTNfBtwN.js +0 -29
- package/build/server/chunks/nodes/30.js-BTNfBtwN.js.map +0 -1
- package/build/server/chunks/nodes/31.js-DwlVmX5O.js +0 -28
- package/build/server/chunks/nodes/31.js-DwlVmX5O.js.map +0 -1
- package/build/server/chunks/nodes/32.js-W82Bhk4t.js +0 -28
- package/build/server/chunks/nodes/32.js-W82Bhk4t.js.map +0 -1
- package/build/server/chunks/nodes/33.js-DyU642Zr.js +0 -28
- package/build/server/chunks/nodes/33.js-DyU642Zr.js.map +0 -1
- package/build/server/chunks/nodes/4.js-BUGAs2Rd.js +0 -9
- package/build/server/chunks/nodes/4.js-BUGAs2Rd.js.map +0 -1
- package/build/server/chunks/nodes/5.js-BTy8007H.js +0 -15
- package/build/server/chunks/nodes/5.js-BTy8007H.js.map +0 -1
- package/build/server/chunks/nodes/6.js-BbI45Jfn.js +0 -28
- package/build/server/chunks/nodes/6.js-BbI45Jfn.js.map +0 -1
- package/build/server/chunks/nodes/7.js-uCBJLzFQ.js +0 -21
- package/build/server/chunks/nodes/7.js-uCBJLzFQ.js.map +0 -1
- package/build/server/chunks/nodes/8.js-BDGAEpFO.js +0 -32
- package/build/server/chunks/nodes/8.js-BDGAEpFO.js.map +0 -1
- package/build/server/chunks/nodes/9.js-xxma6Uh0.js +0 -28
- package/build/server/chunks/nodes/9.js-xxma6Uh0.js.map +0 -1
- /package/build/client/_app/immutable/chunks/{BCidrmpi2.js → BCidrmpi.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BCidrmpi2.js.br → BCidrmpi.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BCidrmpi2.js.gz → BCidrmpi.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BTJ8jaRT2.js → BTJ8jaRT.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BTJ8jaRT2.js.br → BTJ8jaRT.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BTJ8jaRT2.js.gz → BTJ8jaRT.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Bjy-W4x22.js → Bjy-W4x2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Bjy-W4x22.js.br → Bjy-W4x2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Bjy-W4x22.js.gz → Bjy-W4x2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BvRk9kiK2.js → BvRk9kiK.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BvRk9kiK2.js.br → BvRk9kiK.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BvRk9kiK2.js.gz → BvRk9kiK.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{ByF1UaRp2.js → ByF1UaRp.js} +0 -0
- /package/build/client/_app/immutable/chunks/{ByF1UaRp2.js.br → ByF1UaRp.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{ByF1UaRp2.js.gz → ByF1UaRp.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DqR8kuM62.js → DqR8kuM6.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DqR8kuM62.js.br → DqR8kuM6.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DqR8kuM62.js.gz → DqR8kuM6.js.gz} +0 -0
|
@@ -0,0 +1,1375 @@
|
|
|
1
|
+
import { j as toDefinitionListItem, k as CreateDefinitionInputSchema, l as GH_EXTENSIONS, m as UpdateMetadataInputSchema, G as GuidSchema, n as PublishVersionInputSchema, o as CreateShareLinkInputSchema, p as OrgAssetKindSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS, a as ALL_ORG_PERMISSIONS, h as hasPermission, v as validateProjectFlags, S as SYSTEM_CONTEXT, s as slugify } from './src.js-Cf1j97Z6.js';
|
|
2
|
+
import { k as getBranding, v as getNotificationProvider, y as getOrgAssetService, z as getDefinitionService } from './providers.server.js-DM2FuS6c.js';
|
|
3
|
+
import { l as listVisibleDefinitions, d as resolveAccessibleProjects, g as getVisibleDefinition, f as loadVisibleVersion } from './definitions.js-BNGP8Sjp.js';
|
|
4
|
+
import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from './types.js-B_zdqlv_.js';
|
|
5
|
+
import { a as isOrgServer, i as isPlatformServer, e as serversVisibleTo } from './limits.js-EChEpvu8.js';
|
|
6
|
+
import { e as isApiError, b as ApiErrorCode, A as ApiError, d as codeForStatus, h as apiError, x as requireCanCreateDefinition, f as fetchSchemaFromCompute, B as requireEditableDefinition, C as requireActingOrg, D as requireManageOrgMembers, E as requireManageOrgCompute, F as splitFlatPermissions, t as assertCanGrantPlatformPermissions, G as canActorChangeOrgRole, H as canChangeOrgRole, a as actorFrom, I as requireCanCreateProject, p as projectAccessInputFromRowsWith, c as canView, J as canSolve, m as canEdit, K as requireCanEditProjectSettings, L as withAdminBypass, M as requireCanManage, O as requireTargetIsOrgMember, P as checkOwnerRemoval, Q as requireCanReclaim, R as canChangeVisibilityToPublic } from './access.js-CoycZfKB.js';
|
|
7
|
+
import { e as depsFromConfig, m as mapCoreError, p as parseDefinitionListOptions, f as parseListOptions, g as ShareLinkResponseSchema, h as CreatedShareLinkResponseSchema, i as OrgComputeResponseSchema, O as OrgComputePatchBodySchema, I as InviteResponseSchema, d as CreateInviteBodySchema, j as CreatedInviteResponseSchema, c as UpdateOrgMemberBodySchema, a as CreateProjectBodySchema, U as UpdateProjectBodySchema, A as AddProjectMemberBodySchema, b as UpdateProjectMemberBodySchema } from './api.js-CI0M3Xtw.js';
|
|
8
|
+
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-Bkw0AC3v.js';
|
|
9
|
+
import { r as resolveServerForOrg, v as validateIncomingServers, s as storedKeysById, a as resolveApiKey } from './compute.js-DLWZsOnD.js';
|
|
10
|
+
import { e as evictChangedServers } from './evict-changed-servers.js-whgDVM5R.js';
|
|
11
|
+
import { e as evictComputeClient } from './engine.server.js-qoHdc5Q0.js';
|
|
12
|
+
import { M as MAX_IMAGE_FILE_SIZE, g as MAX_DEFINITION_FILE_SIZE } from './computeLimits.js-CHXAIU25.js';
|
|
13
|
+
import { c as createProjectWithUniqueSlug } from './projects.js-C7uLgeYM.js';
|
|
14
|
+
import { s as shareLinkCodec } from './token.server.js-DnT3vof3.js';
|
|
15
|
+
import { i as inviteCodec } from './token2.server.js-BgPggaHQ.js';
|
|
16
|
+
import { isHttpError } from '@sveltejs/kit';
|
|
17
|
+
import { randomUUID } from 'node:crypto';
|
|
18
|
+
|
|
19
|
+
//#region ../server/src/api/responses.ts
|
|
20
|
+
/** A paginated collection. The one envelope every list endpoint returns. */
|
|
21
|
+
function collection(page) {
|
|
22
|
+
return { body: {
|
|
23
|
+
items: page.items,
|
|
24
|
+
nextCursor: page.nextCursor
|
|
25
|
+
} };
|
|
26
|
+
}
|
|
27
|
+
/** A created resource. */
|
|
28
|
+
function created(body) {
|
|
29
|
+
return {
|
|
30
|
+
status: 201,
|
|
31
|
+
body
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** A successful mutation with nothing to say. */
|
|
35
|
+
function noContent() {
|
|
36
|
+
return { status: 204 };
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region ../server/src/api/shaped.ts
|
|
40
|
+
/** Serialize a payload through an explicit response schema. */
|
|
41
|
+
function shaped(schema, payload, status = 200) {
|
|
42
|
+
return {
|
|
43
|
+
status,
|
|
44
|
+
body: schema.parse(payload)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** `shaped`, mapped over a page of records. */
|
|
48
|
+
function shapedCollection(schema, page) {
|
|
49
|
+
return { body: {
|
|
50
|
+
items: page.items.map((item) => schema.parse(item)),
|
|
51
|
+
nextCursor: page.nextCursor
|
|
52
|
+
} };
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region ../server/src/api/respond.ts
|
|
56
|
+
/**
|
|
57
|
+
* Turn a handler result — or a thrown `ApiError` — into a web-standard
|
|
58
|
+
* `Response`.
|
|
59
|
+
*
|
|
60
|
+
* This is the whole serialization boundary. A host framework that speaks
|
|
61
|
+
* `Request`/`Response` (SvelteKit, Next route handlers, Hono, Remix) needs only
|
|
62
|
+
* to build an `ApiRequest` and call `runHandler`; one that does not can reuse
|
|
63
|
+
* `toErrorBody` and serialize itself.
|
|
64
|
+
*/
|
|
65
|
+
function toErrorBody(err) {
|
|
66
|
+
return err.fields ? {
|
|
67
|
+
message: err.message,
|
|
68
|
+
code: err.code,
|
|
69
|
+
fields: err.fields
|
|
70
|
+
} : {
|
|
71
|
+
message: err.message,
|
|
72
|
+
code: err.code
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function toResponse(result) {
|
|
76
|
+
if (result instanceof Response) return result;
|
|
77
|
+
const { status, body, headers } = result;
|
|
78
|
+
if (body === void 0) return new Response(null, {
|
|
79
|
+
status: status ?? 204,
|
|
80
|
+
headers
|
|
81
|
+
});
|
|
82
|
+
return new Response(JSON.stringify(body), {
|
|
83
|
+
status: status ?? 200,
|
|
84
|
+
headers: {
|
|
85
|
+
"content-type": "application/json",
|
|
86
|
+
...headers
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Run a handler and serialize whatever comes out, including failures.
|
|
92
|
+
*
|
|
93
|
+
* `mapError` lets a host fold its own domain errors into the envelope before
|
|
94
|
+
* the 500 fallback — the Selva app maps `ProviderError`, `SchemaExtractionError`
|
|
95
|
+
* and `ComputeServerUnconfiguredError` this way, none of which belong here.
|
|
96
|
+
*/
|
|
97
|
+
async function runHandler(handler, req, { fallback, mapError }) {
|
|
98
|
+
try {
|
|
99
|
+
return toResponse(await handler(req));
|
|
100
|
+
} catch (err) {
|
|
101
|
+
if (isApiError(err)) return toResponse({
|
|
102
|
+
status: err.status,
|
|
103
|
+
body: toErrorBody(err)
|
|
104
|
+
});
|
|
105
|
+
const mapped = mapError?.(err);
|
|
106
|
+
if (mapped) return toResponse({
|
|
107
|
+
status: mapped.status,
|
|
108
|
+
body: toErrorBody(mapped)
|
|
109
|
+
});
|
|
110
|
+
req.log.error(`[API] ${fallback}`, {
|
|
111
|
+
component: "api",
|
|
112
|
+
err: err instanceof Error ? err.stack ?? err.message : String(err)
|
|
113
|
+
});
|
|
114
|
+
return toResponse({
|
|
115
|
+
status: 500,
|
|
116
|
+
body: {
|
|
117
|
+
message: fallback,
|
|
118
|
+
code: ApiErrorCode.INTERNAL
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region ../notifications/src/html.ts
|
|
125
|
+
/**
|
|
126
|
+
* Escape text for interpolation into an HTML attribute or text node.
|
|
127
|
+
*
|
|
128
|
+
* One copy on purpose: per-template copies are how one of them ends up missing
|
|
129
|
+
* a case. Every value a template interpolates goes through this, including
|
|
130
|
+
* URLs — an `acceptUrl` carries a token, and a token can contain characters
|
|
131
|
+
* that would otherwise close the `href` early.
|
|
132
|
+
*/
|
|
133
|
+
function escapeHtml(s) {
|
|
134
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
135
|
+
}
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region ../notifications/src/layout.ts
|
|
138
|
+
/**
|
|
139
|
+
* The frame every Selva mail shares: card chrome, type stack, colours.
|
|
140
|
+
* Templates supply a body; this supplies the look, so mail written by
|
|
141
|
+
* different people at different times still reads as coming from one product.
|
|
142
|
+
*
|
|
143
|
+
* Deliberately plain — no images, no tracking pixel, no external stylesheet.
|
|
144
|
+
* Inline styles with a table-free layout survive the common clients, and mail
|
|
145
|
+
* clients that strip the styling still get readable, ordered content.
|
|
146
|
+
*/
|
|
147
|
+
function renderLayout({ heading, body, footer }) {
|
|
148
|
+
return `<!doctype html>
|
|
149
|
+
<html>
|
|
150
|
+
<body style="margin:0;padding:24px;background:#f6f7f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#1a1a1a;">
|
|
151
|
+
<div style="max-width:480px;margin:0 auto;background:#ffffff;border:1px solid #e4e6eb;border-radius:12px;padding:32px;">
|
|
152
|
+
<h1 style="margin:0 0 16px;font-size:20px;font-weight:600;">${escapeHtml(heading)}</h1>
|
|
153
|
+
${body}${footer ? `
|
|
154
|
+
<hr style="border:none;border-top:1px solid #e4e6eb;margin:24px 0;" />
|
|
155
|
+
<p style="margin:0;font-size:12px;line-height:1.5;color:#8a8a8a;">
|
|
156
|
+
${footer}
|
|
157
|
+
</p>` : ""}
|
|
158
|
+
</div>
|
|
159
|
+
</body>
|
|
160
|
+
</html>`;
|
|
161
|
+
}
|
|
162
|
+
/** The primary action button. One definition so every mail's call to action matches. */
|
|
163
|
+
function renderButton(href, label) {
|
|
164
|
+
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>`;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Fallback for clients that do not make the button clickable. Every mail whose
|
|
168
|
+
* point is a link needs this: a button that does not render leaves the reader
|
|
169
|
+
* with no way to continue.
|
|
170
|
+
*/
|
|
171
|
+
function renderUrlFallback(href) {
|
|
172
|
+
return `<p style="margin:24px 0 0;font-size:13px;line-height:1.5;color:#6b6b6b;">
|
|
173
|
+
Or paste this into your browser:<br />
|
|
174
|
+
<span style="word-break:break-all;color:#4a4a4a;">${escapeHtml(href)}</span>
|
|
175
|
+
</p>`;
|
|
176
|
+
}
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region ../notifications/src/templates/invite.ts
|
|
179
|
+
function formatExpiry(iso) {
|
|
180
|
+
const d = new Date(iso);
|
|
181
|
+
return Number.isNaN(d.getTime()) ? "soon" : d.toLocaleDateString("en-US", {
|
|
182
|
+
year: "numeric",
|
|
183
|
+
month: "long",
|
|
184
|
+
day: "numeric"
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* "An admin invited you to an org" — the mail carrying an invite's accept link.
|
|
189
|
+
*
|
|
190
|
+
* The text part must always carry the URL: a mail that degrades to plain text
|
|
191
|
+
* is still the only way the invitee can accept.
|
|
192
|
+
*/
|
|
193
|
+
function renderInviteEmail(input) {
|
|
194
|
+
const { to, acceptUrl, orgName, invitedBy } = input;
|
|
195
|
+
const expiry = formatExpiry(input.expiresAt);
|
|
196
|
+
const inviter = invitedBy ? `${invitedBy} invited you` : "You have been invited";
|
|
197
|
+
return {
|
|
198
|
+
kind: "org.invite",
|
|
199
|
+
to,
|
|
200
|
+
subject: `${inviter} to join ${orgName} on Selva`,
|
|
201
|
+
text: [
|
|
202
|
+
`${inviter} to join ${orgName} on Selva.`,
|
|
203
|
+
"",
|
|
204
|
+
"Open this link to accept and set up your account:",
|
|
205
|
+
acceptUrl,
|
|
206
|
+
"",
|
|
207
|
+
`The link expires on ${expiry} and can only be used once.`,
|
|
208
|
+
"",
|
|
209
|
+
"If you weren't expecting this invitation, you can ignore this email."
|
|
210
|
+
].join("\n"),
|
|
211
|
+
html: renderLayout({
|
|
212
|
+
heading: `Join ${orgName} on Selva`,
|
|
213
|
+
body: ` <p style="margin:0 0 24px;font-size:15px;line-height:1.5;color:#4a4a4a;">
|
|
214
|
+
${escapeHtml(inviter)} to join <strong>${escapeHtml(orgName)}</strong>. Open the link below to accept and set up your account.
|
|
215
|
+
</p>
|
|
216
|
+
${renderButton(acceptUrl, "Accept invitation")}
|
|
217
|
+
${renderUrlFallback(acceptUrl)}`,
|
|
218
|
+
footer: `This link expires on ${escapeHtml(expiry)} and can only be used once.
|
|
219
|
+
If you weren't expecting this invitation, you can ignore this email.`
|
|
220
|
+
})
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region ../server/src/notifications/deliver-invite.ts
|
|
225
|
+
/**
|
|
226
|
+
* Mail an invite's accept link, best-effort.
|
|
227
|
+
*
|
|
228
|
+
* Shared by the mint and resend routes so they cannot disagree about what the
|
|
229
|
+
* invitee receives. Swallows every failure: the invite row is already
|
|
230
|
+
* committed and the caller still holds `acceptUrl` to share by hand, so a dead
|
|
231
|
+
* SMTP host must not report a valid invite as a failure.
|
|
232
|
+
*/
|
|
233
|
+
async function deliverInvite(input) {
|
|
234
|
+
const { ctx, log, invite, acceptUrl, actor, orgs, notifications, fallbackOrgName } = input;
|
|
235
|
+
try {
|
|
236
|
+
const org = await orgs.getOrg(ctx, invite.orgId);
|
|
237
|
+
const { status } = await notifications.send(renderInviteEmail({
|
|
238
|
+
to: invite.email,
|
|
239
|
+
acceptUrl,
|
|
240
|
+
orgName: org?.name ?? fallbackOrgName,
|
|
241
|
+
invitedBy: actor.profile?.displayName || actor.user?.email,
|
|
242
|
+
expiresAt: invite.expiresAt
|
|
243
|
+
}), log);
|
|
244
|
+
return status;
|
|
245
|
+
} catch (err) {
|
|
246
|
+
log.warn("Invite mail could not be prepared", {
|
|
247
|
+
component: "Invites",
|
|
248
|
+
inviteId: invite.id,
|
|
249
|
+
reason: err instanceof Error ? err.message : String(err)
|
|
250
|
+
});
|
|
251
|
+
return "failed";
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region src/lib/server/api/sveltekit.ts
|
|
256
|
+
/**
|
|
257
|
+
* The SvelteKit binding for the transport-free handlers in `@selvajs/server/api`.
|
|
258
|
+
*
|
|
259
|
+
* The only file in the app that knows both worlds: it turns a `RequestEvent`
|
|
260
|
+
* into an `ApiRequest` and folds this app's domain errors into the shared
|
|
261
|
+
* envelope. A handler mounted through here names no framework, so the same
|
|
262
|
+
* handler runs under Next or Hono behind a sibling adapter roughly this size.
|
|
263
|
+
*/
|
|
264
|
+
/**
|
|
265
|
+
* This app's own errors, folded into the shared envelope.
|
|
266
|
+
*
|
|
267
|
+
* SvelteKit's `HttpError` is the only one left here — everything else the v1
|
|
268
|
+
* handlers throw ships from `@selvajs/server`, so `mapCoreError` owns those
|
|
269
|
+
* rules and a second host gets the same statuses without copying them.
|
|
270
|
+
*/
|
|
271
|
+
function mapAppError(err) {
|
|
272
|
+
if (isHttpError(err)) {
|
|
273
|
+
const body = err.body;
|
|
274
|
+
if (typeof body === "string") return new ApiError(err.status, codeForStatus(err.status), body);
|
|
275
|
+
return new ApiError(err.status, body?.code ?? codeForStatus(err.status), body?.message ?? "Request failed", body?.fields);
|
|
276
|
+
}
|
|
277
|
+
return mapCoreError(err);
|
|
278
|
+
}
|
|
279
|
+
function buildDeps(event) {
|
|
280
|
+
return depsFromConfig(event.locals.providers, {
|
|
281
|
+
definitions: getDefinitionService(),
|
|
282
|
+
orgAssets: getOrgAssetService()
|
|
283
|
+
}, {
|
|
284
|
+
tokens: {
|
|
285
|
+
shareLinks: shareLinkCodec(),
|
|
286
|
+
invites: inviteCodec()
|
|
287
|
+
},
|
|
288
|
+
uploadLimits: {
|
|
289
|
+
maxDefinitionFileSize: MAX_DEFINITION_FILE_SIZE,
|
|
290
|
+
maxImageFileSize: MAX_IMAGE_FILE_SIZE
|
|
291
|
+
},
|
|
292
|
+
evictComputeClient,
|
|
293
|
+
notifications: getNotificationProvider(),
|
|
294
|
+
instanceName: getBranding().name
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
function toApiRequest(event) {
|
|
298
|
+
return {
|
|
299
|
+
ctx: event.locals.ctx,
|
|
300
|
+
user: event.locals.user,
|
|
301
|
+
profile: event.locals.profile,
|
|
302
|
+
log: event.locals.log,
|
|
303
|
+
params: event.params,
|
|
304
|
+
url: event.url,
|
|
305
|
+
request: event.request,
|
|
306
|
+
deps: buildDeps(event)
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
/** Mount a transport-free handler as a SvelteKit `RequestHandler`. */
|
|
310
|
+
function mount(fallback, handler) {
|
|
311
|
+
return (event) => runHandler(handler, toApiRequest(event), {
|
|
312
|
+
fallback,
|
|
313
|
+
mapError: mapAppError
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region ../server/src/handlers/services.ts
|
|
318
|
+
function definitionService(deps) {
|
|
319
|
+
const service = deps.services.definitions;
|
|
320
|
+
if (!service) throw new Error("SelvaDeps.services.definitions is not wired — mount requires it.");
|
|
321
|
+
return service;
|
|
322
|
+
}
|
|
323
|
+
function orgAssetService(deps) {
|
|
324
|
+
const service = deps.services.orgAssets;
|
|
325
|
+
if (!service) throw new Error("SelvaDeps.services.orgAssets is not wired — mount requires it.");
|
|
326
|
+
return service;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* A token codec, or a named failure.
|
|
330
|
+
*
|
|
331
|
+
* Minting through an absent codec is the one failure mode worth being loud
|
|
332
|
+
* about: a handler that quietly skipped hashing would persist a row whose token
|
|
333
|
+
* can never be verified, and nothing downstream would report it.
|
|
334
|
+
*/
|
|
335
|
+
function tokenCodec(deps, family) {
|
|
336
|
+
const codec = deps.tokens[family];
|
|
337
|
+
if (!codec) throw new Error(`SelvaDeps.tokens.${family} is not wired — mount requires it.`);
|
|
338
|
+
return codec;
|
|
339
|
+
}
|
|
340
|
+
//#endregion
|
|
341
|
+
//#region ../server/src/handlers/me.ts
|
|
342
|
+
/**
|
|
343
|
+
* Whoami. The first call a non-browser client makes, and the only way a token
|
|
344
|
+
* holder can see which org their credential resolved into — `actingOrgId` is
|
|
345
|
+
* derived per request from the caller's membership, not frozen at mint time.
|
|
346
|
+
*/
|
|
347
|
+
var getMe = async (req) => {
|
|
348
|
+
const { ctx, user } = requireCaller(req);
|
|
349
|
+
return { body: {
|
|
350
|
+
userId: user.id,
|
|
351
|
+
email: user.email,
|
|
352
|
+
displayName: req.profile?.displayName,
|
|
353
|
+
actingOrgId: ctx.actingOrgId,
|
|
354
|
+
platformPermissions: ctx.platformPermissions,
|
|
355
|
+
orgPermissions: ctx.orgPermissions,
|
|
356
|
+
starredDefinitions: req.profile?.starredDefinitions ?? []
|
|
357
|
+
} };
|
|
358
|
+
};
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region ../server/src/handlers/me.starred.ts
|
|
361
|
+
/**
|
|
362
|
+
* Starring a definition for the calling user. Both directions are idempotent.
|
|
363
|
+
*
|
|
364
|
+
* No visibility check: a star is a row on the caller's own profile, keyed by
|
|
365
|
+
* guid, and reveals nothing about whether that guid exists. The read paths that
|
|
366
|
+
* expand stars into definitions filter by visibility there.
|
|
367
|
+
*/
|
|
368
|
+
var starDefinition = async (req) => {
|
|
369
|
+
const { ctx, user } = requireCaller(req);
|
|
370
|
+
const { guid } = requireParams(req.params, "guid");
|
|
371
|
+
await req.deps.userProfile.starDefinition(ctx, user.id, guid);
|
|
372
|
+
return noContent();
|
|
373
|
+
};
|
|
374
|
+
var unstarDefinition = async (req) => {
|
|
375
|
+
const { ctx, user } = requireCaller(req);
|
|
376
|
+
const { guid } = requireParams(req.params, "guid");
|
|
377
|
+
await req.deps.userProfile.unstarDefinition(ctx, user.id, guid);
|
|
378
|
+
return noContent();
|
|
379
|
+
};
|
|
380
|
+
//#endregion
|
|
381
|
+
//#region ../server/src/handlers/orgs.ts
|
|
382
|
+
/**
|
|
383
|
+
* The acting org's record and roster.
|
|
384
|
+
*
|
|
385
|
+
* `requireActingOrg` is the tenancy gate on both: the URL `orgId` must equal
|
|
386
|
+
* `ctx.actingOrgId`, so the URL alone never decides which tenant is read.
|
|
387
|
+
*/
|
|
388
|
+
/** The acting org's record — name, slug, and branding asset URLs. */
|
|
389
|
+
var getOrg = async (req) => {
|
|
390
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
391
|
+
const org = await req.deps.orgs.getOrg(ctx, orgId);
|
|
392
|
+
if (!org) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
|
|
393
|
+
return { body: org };
|
|
394
|
+
};
|
|
395
|
+
/**
|
|
396
|
+
* List the org's members. Any member of the acting org may read this — the
|
|
397
|
+
* roster is what the team page renders, and `requireActingOrg` already confines
|
|
398
|
+
* the read to the caller's own tenant.
|
|
399
|
+
*/
|
|
400
|
+
var listOrgMembers = async (req) => {
|
|
401
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
402
|
+
return collection(await req.deps.orgs.listOrgMembers(ctx, orgId, parseListOptions(req.url)));
|
|
403
|
+
};
|
|
404
|
+
//#endregion
|
|
405
|
+
//#region ../server/src/handlers/orgMembers.ts
|
|
406
|
+
/**
|
|
407
|
+
* Org member role, permissions, and removal.
|
|
408
|
+
*
|
|
409
|
+
* Two gates run on every request: `requireManageOrgMembers` (owner+admin) and
|
|
410
|
+
* `requireActingOrg` (the URL `orgId` must equal `ctx.actingOrgId`, so
|
|
411
|
+
* cross-org member mutation is blocked even for an actor with permissions in
|
|
412
|
+
* another org).
|
|
413
|
+
*
|
|
414
|
+
* The sole-owner invariant applies to demotion and removal alike — an org with
|
|
415
|
+
* no owner is unadministrable, and removing an owner ends their role exactly as
|
|
416
|
+
* demoting them does.
|
|
417
|
+
*/
|
|
418
|
+
var ROSTER_PAGE_LIMIT = 200;
|
|
419
|
+
var MAX_ROSTER_PAGES = 100;
|
|
420
|
+
/**
|
|
421
|
+
* Whether anyone other than `exceptUserId` still owns the org.
|
|
422
|
+
*
|
|
423
|
+
* Both branches below need this and both used to scan the roster themselves —
|
|
424
|
+
* the sole-owner invariant is one rule, so it reads from one place.
|
|
425
|
+
*
|
|
426
|
+
* Pages rather than reading one 200-row window: a second owner sitting past the
|
|
427
|
+
* first page read as "no other owner", so the invariant refused a demotion or
|
|
428
|
+
* removal that was in fact safe. That failed closed, but it made the org
|
|
429
|
+
* unadministrable exactly when it had grown enough to need administering.
|
|
430
|
+
* Returns on the first owner found, so the common case is still one round-trip.
|
|
431
|
+
*/
|
|
432
|
+
async function hasAnotherOwner(req, ctx, orgId, exceptUserId) {
|
|
433
|
+
let cursor;
|
|
434
|
+
for (let page = 0; page < MAX_ROSTER_PAGES; page++) {
|
|
435
|
+
const result = await req.deps.orgs.listOrgMembers(ctx, orgId, {
|
|
436
|
+
limit: ROSTER_PAGE_LIMIT,
|
|
437
|
+
cursor
|
|
438
|
+
});
|
|
439
|
+
if (result.items.some((m) => m.role === "owner" && m.userId !== exceptUserId && !m.deletedAt)) return true;
|
|
440
|
+
cursor = result.nextCursor;
|
|
441
|
+
if (!cursor) return false;
|
|
442
|
+
}
|
|
443
|
+
req.log.warn("hasAnotherOwner hit the page cap — treating as sole owner", {
|
|
444
|
+
orgId,
|
|
445
|
+
pages: MAX_ROSTER_PAGES
|
|
446
|
+
});
|
|
447
|
+
return false;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Projects in `orgId` where `userId` is the only live owner — the ones that
|
|
451
|
+
* will have no owner once `removeOrgMember` cascades their membership rows.
|
|
452
|
+
*
|
|
453
|
+
* **Report, do not block.** Blocking puts an unbounded chore in front of
|
|
454
|
+
* offboarding — the cost scales with how many projects the departing person
|
|
455
|
+
* owned, which is backwards, because the most prolific people are the ones
|
|
456
|
+
* whose departure most needs to be clean. An offboarding that fails halfway is
|
|
457
|
+
* worse than an ownerless project: the person stays in the org while someone
|
|
458
|
+
* works through the backlog. Reclaim already exists to adopt an ownerless
|
|
459
|
+
* project, so the recovery path is built; what was missing was any signal that
|
|
460
|
+
* recovery was needed. Hence the event.
|
|
461
|
+
*
|
|
462
|
+
* MUST be called before the removal — afterwards the rows it reads are gone.
|
|
463
|
+
*/
|
|
464
|
+
async function findProjectsLosingSoleOwner(req, ctx, orgId, userId) {
|
|
465
|
+
const projects = req.deps.projects;
|
|
466
|
+
const orgProjects = await projects.listProjects(ctx, orgId, { limit: ROSTER_PAGE_LIMIT });
|
|
467
|
+
return (await Promise.all(orgProjects.items.map(async (project) => {
|
|
468
|
+
const owners = (await projects.listProjectMembers(ctx, project.id, { limit: ROSTER_PAGE_LIMIT })).items.filter((m) => m.role === "owner" && !m.deletedAt);
|
|
469
|
+
return owners.length === 1 && owners[0].userId === userId ? project : null;
|
|
470
|
+
}))).filter((p) => p !== null);
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Body accepts either or both:
|
|
474
|
+
* - `{ role: OrgRole }` — change the member's role. Owner-only.
|
|
475
|
+
* - `{ permissions: OrgPermission[] }` — replace the member's grantable
|
|
476
|
+
* permissions. Owner/admin via `manage_org_members`. For `member`-role
|
|
477
|
+
* targets, only `MEMBER_ASSIGNABLE_PERMISSIONS` are accepted; promoting a
|
|
478
|
+
* member's permissions does NOT change their role.
|
|
479
|
+
*/
|
|
480
|
+
var updateOrgMember = async (req) => {
|
|
481
|
+
const { userId } = requireParams(req.params, "orgId", "userId");
|
|
482
|
+
requireManageOrgMembers(req);
|
|
483
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
484
|
+
const patch = await parseBody(req.request, UpdateOrgMemberBodySchema);
|
|
485
|
+
const orgs = req.deps.orgs;
|
|
486
|
+
const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
|
|
487
|
+
if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
|
|
488
|
+
if (!actorMember) apiError(403, ApiErrorCode.FORBIDDEN, "You are not a member of this organization.");
|
|
489
|
+
if (patch.role !== void 0 && patch.role !== target.role) {
|
|
490
|
+
if (!canChangeOrgRole({
|
|
491
|
+
actorMember,
|
|
492
|
+
role: patch.role
|
|
493
|
+
}) || !canChangeOrgRole({
|
|
494
|
+
actorMember,
|
|
495
|
+
role: target.role
|
|
496
|
+
})) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can change roles.");
|
|
497
|
+
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.");
|
|
498
|
+
await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);
|
|
499
|
+
}
|
|
500
|
+
if (patch.permissions !== void 0) {
|
|
501
|
+
const effectiveRole = patch.role ?? target.role;
|
|
502
|
+
const valid = effectiveRole === "member" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);
|
|
503
|
+
const invalid = patch.permissions.filter((p) => !valid.has(p));
|
|
504
|
+
if (invalid.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Permissions [${invalid.join(", ")}] cannot be assigned to a ${effectiveRole}.`);
|
|
505
|
+
await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);
|
|
506
|
+
}
|
|
507
|
+
return noContent();
|
|
508
|
+
};
|
|
509
|
+
/**
|
|
510
|
+
* Remove a member from the org. Owner/admin via `manage_org_members`, same
|
|
511
|
+
* tenancy check as PATCH, and the same sole-owner invariant — removing the last
|
|
512
|
+
* owner would leave the org unadministrable.
|
|
513
|
+
*/
|
|
514
|
+
var removeOrgMember = async (req) => {
|
|
515
|
+
const { userId } = requireParams(req.params, "orgId", "userId");
|
|
516
|
+
requireManageOrgMembers(req);
|
|
517
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
518
|
+
const orgs = req.deps.orgs;
|
|
519
|
+
const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
|
|
520
|
+
if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
|
|
521
|
+
if (!canChangeOrgRole({
|
|
522
|
+
actorMember,
|
|
523
|
+
role: target.role
|
|
524
|
+
})) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can remove another owner.");
|
|
525
|
+
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.");
|
|
526
|
+
const orphaned = await findProjectsLosingSoleOwner(req, ctx, orgId, userId);
|
|
527
|
+
await orgs.removeOrgMember(ctx, orgId, userId);
|
|
528
|
+
if (orphaned.length > 0) {
|
|
529
|
+
await req.deps.events.emit({
|
|
530
|
+
type: "org_member.removed_orphaning_projects",
|
|
531
|
+
orgId,
|
|
532
|
+
userId,
|
|
533
|
+
projectIds: orphaned.map((p) => p.id),
|
|
534
|
+
actorId: actorFrom(ctx)
|
|
535
|
+
});
|
|
536
|
+
req.log.warn("Org member removal left projects without an owner", {
|
|
537
|
+
orgId,
|
|
538
|
+
userId,
|
|
539
|
+
actorId: ctx.userId,
|
|
540
|
+
projectCount: orphaned.length
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
const email = (await req.deps.auth.getUser(userId))?.email;
|
|
544
|
+
if (email) try {
|
|
545
|
+
await req.deps.invites.revokePendingByEmail(ctx, orgId, email);
|
|
546
|
+
} catch (err) {
|
|
547
|
+
req.log.error("Removed org member but failed to revoke their pending invites", {
|
|
548
|
+
orgId,
|
|
549
|
+
userId,
|
|
550
|
+
error: err instanceof Error ? err.message : String(err)
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
return noContent();
|
|
554
|
+
};
|
|
555
|
+
//#endregion
|
|
556
|
+
//#region ../server/src/handlers/reclaim.ts
|
|
557
|
+
/**
|
|
558
|
+
* Org owner/admin escape hatch for a project they cannot otherwise reach.
|
|
559
|
+
*
|
|
560
|
+
* Adds the actor as a co-owner and does NOT demote the existing owner.
|
|
561
|
+
* Idempotent: reclaiming twice is a no-op, because `addProjectMember`
|
|
562
|
+
* reactivates a soft-deleted row in place.
|
|
563
|
+
*/
|
|
564
|
+
var reclaimProject = async (req) => {
|
|
565
|
+
const { id } = requireParams(req.params, "id");
|
|
566
|
+
const { user, ctx, project } = await requireCanReclaim(req, id);
|
|
567
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
568
|
+
const member = {
|
|
569
|
+
projectId: id,
|
|
570
|
+
userId: user.id,
|
|
571
|
+
role: "owner",
|
|
572
|
+
joinedAt: now,
|
|
573
|
+
updatedAt: now,
|
|
574
|
+
updatedBy: ctx.userId || user.id,
|
|
575
|
+
deletedAt: null
|
|
576
|
+
};
|
|
577
|
+
await req.deps.projects.addProjectMember(ctx, member);
|
|
578
|
+
await req.deps.events.emit({
|
|
579
|
+
type: "project.reclaimed",
|
|
580
|
+
projectId: id,
|
|
581
|
+
orgId: project.orgId,
|
|
582
|
+
actorId: actorFrom(ctx),
|
|
583
|
+
priorVisibility: project.visibility
|
|
584
|
+
});
|
|
585
|
+
return created({ member });
|
|
586
|
+
};
|
|
587
|
+
//#endregion
|
|
588
|
+
//#region ../server/src/handlers/orgAssets.ts
|
|
589
|
+
/**
|
|
590
|
+
* Org branding assets, generic over kind (`logo`, `favicon`, …). Gated on
|
|
591
|
+
* `manage_org_members` — org branding is an org-admin action.
|
|
592
|
+
*
|
|
593
|
+
* Raster images and SVG are both accepted. Every input is rasterized to WebP by
|
|
594
|
+
* the shared transcoder inside the storage provider, so SVG carries no XSS
|
|
595
|
+
* surface: no vector blob is ever stored or served. The allowlist below is the
|
|
596
|
+
* HTTP gate; the rasterization is the security control.
|
|
597
|
+
*/
|
|
598
|
+
var ALLOWED_CONTENT_TYPES = /* @__PURE__ */ new Set([
|
|
599
|
+
"image/png",
|
|
600
|
+
"image/jpeg",
|
|
601
|
+
"image/webp",
|
|
602
|
+
"image/gif",
|
|
603
|
+
"image/svg+xml"
|
|
604
|
+
]);
|
|
605
|
+
function parseKind(params) {
|
|
606
|
+
const kind = OrgAssetKindSchema.safeParse(params.kind);
|
|
607
|
+
if (!kind.success) apiError(404, ApiErrorCode.NOT_FOUND, `Unknown asset kind '${params.kind}'`);
|
|
608
|
+
return kind.data;
|
|
609
|
+
}
|
|
610
|
+
var uploadOrgAsset = async (req) => {
|
|
611
|
+
requireManageOrgMembers(req);
|
|
612
|
+
const kind = parseKind(req.params);
|
|
613
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
614
|
+
if (!await req.deps.orgs.getOrg(ctx, orgId)) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
|
|
615
|
+
const { file } = requireUpload(await req.request.formData(), "image", {
|
|
616
|
+
maxBytes: req.deps.uploadLimits.maxImageFileSize,
|
|
617
|
+
contentTypes: {
|
|
618
|
+
allowed: ALLOWED_CONTENT_TYPES,
|
|
619
|
+
message: "Unsupported image type. Allowed: PNG, JPG, WebP, GIF, SVG"
|
|
620
|
+
},
|
|
621
|
+
label: "Image"
|
|
622
|
+
});
|
|
623
|
+
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
624
|
+
return { body: {
|
|
625
|
+
kind,
|
|
626
|
+
url: await orgAssetService(req.deps).saveAsset(ctx, orgId, kind, bytes, file.type)
|
|
627
|
+
} };
|
|
628
|
+
};
|
|
629
|
+
var removeOrgAsset = async (req) => {
|
|
630
|
+
requireManageOrgMembers(req);
|
|
631
|
+
const kind = parseKind(req.params);
|
|
632
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
633
|
+
await orgAssetService(req.deps).removeAsset(ctx, orgId, kind);
|
|
634
|
+
return noContent();
|
|
635
|
+
};
|
|
636
|
+
//#endregion
|
|
637
|
+
//#region ../server/src/handlers/shareLinks.ts
|
|
638
|
+
/**
|
|
639
|
+
* Share-link administration.
|
|
640
|
+
*
|
|
641
|
+
* Minting, listing and revoking are gated by `canEditDefinition` — the same
|
|
642
|
+
* authority that uploads versions and publishes. The raw token appears in the
|
|
643
|
+
* POST response and nowhere else; everything afterwards sees `hasToken: true`.
|
|
644
|
+
*
|
|
645
|
+
* **Responses go through `shaped`/`shapedCollection`, never `{ body }`.** A
|
|
646
|
+
* `ShareLink` carries `tokenHash`, and the response schema is what drops it —
|
|
647
|
+
* returning the record directly would put a credential hash on the wire with
|
|
648
|
+
* nothing failing at build time.
|
|
649
|
+
*/
|
|
650
|
+
function assertSharingEnabled(req) {
|
|
651
|
+
if (!req.deps.flag("ENABLE_SHARING")) apiError(404, ApiErrorCode.NOT_FOUND, "Share links are disabled on this instance (ENABLE_SHARING).");
|
|
652
|
+
}
|
|
653
|
+
/** `tokenHash` is dropped by the response schema, not by this function. */
|
|
654
|
+
function forClient(link) {
|
|
655
|
+
return {
|
|
656
|
+
...link,
|
|
657
|
+
hasToken: true
|
|
658
|
+
};
|
|
659
|
+
}
|
|
660
|
+
var listShareLinks = async (req) => {
|
|
661
|
+
assertSharingEnabled(req);
|
|
662
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
663
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
664
|
+
const page = await req.deps.shareLinks.listByDefinition(ctx, guid, parseListOptions(req.url));
|
|
665
|
+
return shapedCollection(ShareLinkResponseSchema, {
|
|
666
|
+
items: page.items.map(forClient),
|
|
667
|
+
nextCursor: page.nextCursor
|
|
668
|
+
});
|
|
669
|
+
};
|
|
670
|
+
var createShareLink = async (req) => {
|
|
671
|
+
assertSharingEnabled(req);
|
|
672
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
673
|
+
const { user } = requireCaller(req);
|
|
674
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
675
|
+
const input = await parseBody(req.request, CreateShareLinkInputSchema, { missingAs: {} });
|
|
676
|
+
const codec = tokenCodec(req.deps, "shareLinks");
|
|
677
|
+
const raw = codec.mintRawToken();
|
|
678
|
+
const link = {
|
|
679
|
+
id: randomUUID(),
|
|
680
|
+
definitionId: guid,
|
|
681
|
+
channel: input.channel,
|
|
682
|
+
tokenHash: codec.hashToken(raw),
|
|
683
|
+
name: input.name,
|
|
684
|
+
createdBy: user.id,
|
|
685
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
686
|
+
expiresAt: input.expiresAt ?? null,
|
|
687
|
+
revokedAt: null,
|
|
688
|
+
allowSolve: input.allowSolve,
|
|
689
|
+
maxSolves: input.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : input.maxSolves,
|
|
690
|
+
solveCount: 0
|
|
691
|
+
};
|
|
692
|
+
await req.deps.shareLinks.create(ctx, link);
|
|
693
|
+
return shaped(CreatedShareLinkResponseSchema, {
|
|
694
|
+
link: forClient(link),
|
|
695
|
+
token: raw
|
|
696
|
+
}, 201);
|
|
697
|
+
};
|
|
698
|
+
/**
|
|
699
|
+
* Revoke a share link (soft-delete). Idempotent, gated by `canEditDefinition`.
|
|
700
|
+
*
|
|
701
|
+
* The link must belong to this definition, so one definition's editor cannot
|
|
702
|
+
* revoke another's link with a guessed or leaked linkId.
|
|
703
|
+
*/
|
|
704
|
+
var revokeShareLink = async (req) => {
|
|
705
|
+
assertSharingEnabled(req);
|
|
706
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
707
|
+
const linkId = parseParam(req.params.linkId, GuidSchema, "link ID");
|
|
708
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
709
|
+
const existing = await req.deps.shareLinks.getById(ctx, linkId);
|
|
710
|
+
if (!existing || existing.definitionId !== guid) apiError(404, ApiErrorCode.NOT_FOUND, "Share link not found.");
|
|
711
|
+
await req.deps.shareLinks.revoke(ctx, linkId);
|
|
712
|
+
return noContent();
|
|
713
|
+
};
|
|
714
|
+
//#endregion
|
|
715
|
+
//#region ../server/src/handlers/definitions.ts
|
|
716
|
+
/**
|
|
717
|
+
* Definition handlers: the collection, one definition's detail and metadata,
|
|
718
|
+
* its live schema, cover image, and the publish channel.
|
|
719
|
+
*
|
|
720
|
+
* Solve and the two compute routes stay unwrapped deliberately — they stream
|
|
721
|
+
* and mark their own metrics, which the `ApiResponse` envelope does not model.
|
|
722
|
+
*/
|
|
723
|
+
var LISTABLE_STATUSES = [
|
|
724
|
+
"draft",
|
|
725
|
+
"published",
|
|
726
|
+
"archived"
|
|
727
|
+
];
|
|
728
|
+
/**
|
|
729
|
+
* Definitions the caller can view. Visibility is resolved into the query via
|
|
730
|
+
* `projectIds`, so `limit`/`nextCursor` describe the filtered set.
|
|
731
|
+
*/
|
|
732
|
+
var listDefinitions = async (req) => {
|
|
733
|
+
const { ctx } = requireCaller(req);
|
|
734
|
+
const statusParam = req.url.searchParams.get("status");
|
|
735
|
+
if (statusParam && !LISTABLE_STATUSES.includes(statusParam)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `status must be one of: ${LISTABLE_STATUSES.join(", ")}`);
|
|
736
|
+
const page = await listVisibleDefinitions(ctx, {
|
|
737
|
+
...parseDefinitionListOptions(req.url),
|
|
738
|
+
projectId: req.url.searchParams.get("projectId") ?? void 0,
|
|
739
|
+
statuses: statusParam ? [statusParam] : void 0
|
|
740
|
+
}, req.deps);
|
|
741
|
+
return collection({
|
|
742
|
+
items: page.items.map(toDefinitionListItem),
|
|
743
|
+
nextCursor: page.nextCursor
|
|
744
|
+
});
|
|
745
|
+
};
|
|
746
|
+
function parseTags(raw) {
|
|
747
|
+
if (!raw) return void 0;
|
|
748
|
+
const tags = raw.split(",").map((t) => t.trim()).filter(Boolean);
|
|
749
|
+
return tags.length ? tags : void 0;
|
|
750
|
+
}
|
|
751
|
+
/** Create a definition — metadata and the Grasshopper file in one request. */
|
|
752
|
+
var createDefinition = async (req) => {
|
|
753
|
+
const { ctx, user } = requireCaller(req);
|
|
754
|
+
const form = await req.request.formData();
|
|
755
|
+
const { file, extension } = requireUpload(form, "file", {
|
|
756
|
+
maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
|
|
757
|
+
extensions: GH_EXTENSIONS,
|
|
758
|
+
label: "Grasshopper (.gh or .ghx) file"
|
|
759
|
+
});
|
|
760
|
+
const imageFile = form.get("image");
|
|
761
|
+
const maxImageBytes = req.deps.uploadLimits.maxImageFileSize;
|
|
762
|
+
if (imageFile instanceof File && imageFile.size > maxImageBytes) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Image too large. Max size: ${maxImageBytes / 1048576} MB`);
|
|
763
|
+
let projectId = formText(form, "projectId");
|
|
764
|
+
if (!projectId) {
|
|
765
|
+
if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
|
|
766
|
+
const { projects } = await resolveAccessibleProjects(ctx, req.deps);
|
|
767
|
+
const fallback = projects.find((p) => p.orgId === ctx.actingOrgId);
|
|
768
|
+
if (!fallback) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No accessible project — pass projectId.");
|
|
769
|
+
projectId = fallback.id;
|
|
770
|
+
}
|
|
771
|
+
const { project } = await requireCanCreateDefinition(req, projectId);
|
|
772
|
+
const parsed = CreateDefinitionInputSchema.safeParse({
|
|
773
|
+
displayName: formText(form, "displayName"),
|
|
774
|
+
description: formText(form, "description"),
|
|
775
|
+
category: formText(form, "category"),
|
|
776
|
+
coverImage: formText(form, "coverImage"),
|
|
777
|
+
tags: parseTags(formText(form, "tags")),
|
|
778
|
+
projectId,
|
|
779
|
+
computeServerId: formText(form, "computeServerId")
|
|
780
|
+
});
|
|
781
|
+
if (!parsed.success) throwZodError(parsed.error);
|
|
782
|
+
const guid = randomUUID();
|
|
783
|
+
const fileData = new Uint8Array(await file.arrayBuffer());
|
|
784
|
+
const server = await resolveServerForOrg(ctx, project.orgId, req.deps.computeServer, { definitionPin: parsed.data.computeServerId ?? null });
|
|
785
|
+
const schema = await fetchSchemaFromCompute(fileData, server);
|
|
786
|
+
const service = definitionService(req.deps);
|
|
787
|
+
const { record, version } = await service.create(ctx, {
|
|
788
|
+
guid,
|
|
789
|
+
projectId: parsed.data.projectId,
|
|
790
|
+
ownerId: user.id,
|
|
791
|
+
fileExt: extension.slice(1),
|
|
792
|
+
originalFilename: file.name,
|
|
793
|
+
computeServerId: parsed.data.computeServerId,
|
|
794
|
+
displayName: parsed.data.displayName.trim(),
|
|
795
|
+
description: parsed.data.description,
|
|
796
|
+
category: parsed.data.category,
|
|
797
|
+
tags: parsed.data.tags,
|
|
798
|
+
coverImage: parsed.data.coverImage
|
|
799
|
+
}, fileData, schema);
|
|
800
|
+
let coverImage = record.coverImage;
|
|
801
|
+
if (imageFile instanceof File && imageFile.size > 0) {
|
|
802
|
+
const imageData = new Uint8Array(await imageFile.arrayBuffer());
|
|
803
|
+
coverImage = await service.saveCoverImage(ctx, guid, imageData);
|
|
804
|
+
}
|
|
805
|
+
return created({
|
|
806
|
+
guid,
|
|
807
|
+
version,
|
|
808
|
+
coverImage
|
|
809
|
+
});
|
|
810
|
+
};
|
|
811
|
+
/** `schema` is a large blob, served on demand by `/versions/{versionId}/schema`. */
|
|
812
|
+
function versionSummary(v) {
|
|
813
|
+
return {
|
|
814
|
+
id: v.id,
|
|
815
|
+
versionNumber: v.versionNumber,
|
|
816
|
+
uploadedAt: v.uploadedAt,
|
|
817
|
+
uploadedBy: v.uploadedBy,
|
|
818
|
+
changeNote: v.changeNote
|
|
819
|
+
};
|
|
820
|
+
}
|
|
821
|
+
/** The record plus its live and draft version summaries. */
|
|
822
|
+
var getDefinition = async (req) => {
|
|
823
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
824
|
+
const { ctx } = requireCaller(req);
|
|
825
|
+
const record = await getVisibleDefinition(ctx, guid, req.deps);
|
|
826
|
+
if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
827
|
+
const meta = req.deps.definitionMeta;
|
|
828
|
+
const [liveVersion, draftVersion] = await Promise.all([record.liveVersionId ? meta.getVersion(ctx, record.liveVersionId) : null, record.draftVersionId ? meta.getVersion(ctx, record.draftVersionId) : null]);
|
|
829
|
+
return { body: {
|
|
830
|
+
...record,
|
|
831
|
+
liveVersion: liveVersion ? versionSummary(liveVersion) : null,
|
|
832
|
+
draftVersion: draftVersion ? versionSummary(draftVersion) : null
|
|
833
|
+
} };
|
|
834
|
+
};
|
|
835
|
+
/** Soft-delete the definition; versions and blobs are wiped with it. */
|
|
836
|
+
var deleteDefinition = async (req) => {
|
|
837
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
838
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
839
|
+
await definitionService(req.deps).delete(ctx, guid);
|
|
840
|
+
return noContent();
|
|
841
|
+
};
|
|
842
|
+
/** Metadata only. New versions POST to `/versions`. */
|
|
843
|
+
var updateDefinition = async (req) => {
|
|
844
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
845
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
846
|
+
const patch = await parseBody(req.request, UpdateMetadataInputSchema);
|
|
847
|
+
await definitionService(req.deps).updateMeta(ctx, guid, patch);
|
|
848
|
+
return noContent();
|
|
849
|
+
};
|
|
850
|
+
/**
|
|
851
|
+
* Convenience alias for the live version's schema — the call a client makes
|
|
852
|
+
* before solving. The canonical location is `/versions/{versionId}/schema`;
|
|
853
|
+
* this resolves the `live` pointer for you.
|
|
854
|
+
*/
|
|
855
|
+
var getDefinitionSchema = async (req) => {
|
|
856
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
857
|
+
const { ctx } = requireCaller(req);
|
|
858
|
+
const record = await getVisibleDefinition(ctx, guid, req.deps);
|
|
859
|
+
if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
860
|
+
if (!record.liveVersionId) apiError(404, ApiErrorCode.NOT_FOUND, "This definition has no published version");
|
|
861
|
+
const version = await loadVisibleVersion(ctx, guid, record.liveVersionId, req.deps);
|
|
862
|
+
if (!version?.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for the live version");
|
|
863
|
+
return { body: version.schema };
|
|
864
|
+
};
|
|
865
|
+
/**
|
|
866
|
+
* Advance the live channel. Body `{ versionId? }` targets a specific version
|
|
867
|
+
* (rollback or forward-roll); omit it to promote the current draft.
|
|
868
|
+
*/
|
|
869
|
+
var publishDefinition = async (req) => {
|
|
870
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
871
|
+
const { versionId } = await parseBody(req.request, PublishVersionInputSchema, { missingAs: {} });
|
|
872
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
873
|
+
return { body: { version: await definitionService(req.deps).publish(ctx, guid, versionId) } };
|
|
874
|
+
};
|
|
875
|
+
/** Upload a cover image. */
|
|
876
|
+
var uploadDefinitionImage = async (req) => {
|
|
877
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
878
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
879
|
+
const { file } = requireUpload(await req.request.formData(), "image", {
|
|
880
|
+
maxBytes: req.deps.uploadLimits.maxImageFileSize,
|
|
881
|
+
label: "Image"
|
|
882
|
+
});
|
|
883
|
+
const data = new Uint8Array(await file.arrayBuffer());
|
|
884
|
+
return { body: { coverImage: await definitionService(req.deps).saveCoverImage(ctx, guid, data) } };
|
|
885
|
+
};
|
|
886
|
+
//#endregion
|
|
887
|
+
//#region ../server/src/handlers/definitionVersions.ts
|
|
888
|
+
/**
|
|
889
|
+
* Version handlers: list, upload, read, delete, and a version's cached schema.
|
|
890
|
+
*
|
|
891
|
+
* Reads resolve through `getVisibleDefinition` / `loadVisibleVersion`, which
|
|
892
|
+
* return `null` rather than throwing, so an invisible definition answers 404.
|
|
893
|
+
* A 403 anywhere here would confirm a guid exists across a tenant boundary.
|
|
894
|
+
*/
|
|
895
|
+
var listVersions = async (req) => {
|
|
896
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
897
|
+
const { ctx } = requireCaller(req);
|
|
898
|
+
if (!await getVisibleDefinition(ctx, guid, req.deps)) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
|
|
899
|
+
return collection(await req.deps.definitionMeta.listVersions(ctx, guid, parseListOptions(req.url)));
|
|
900
|
+
};
|
|
901
|
+
/** Upload a new version. Advances `draft`; `live` is unchanged until publish. */
|
|
902
|
+
var uploadVersion = async (req) => {
|
|
903
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
904
|
+
const form = await req.request.formData();
|
|
905
|
+
const { file, extension } = requireUpload(form, "file", {
|
|
906
|
+
maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
|
|
907
|
+
extensions: GH_EXTENSIONS,
|
|
908
|
+
label: "Grasshopper (.gh or .ghx) file"
|
|
909
|
+
});
|
|
910
|
+
const changeNote = formText(form, "changeNote", { maxLength: 1e3 });
|
|
911
|
+
const { ctx, record, project } = await requireEditableDefinition(req, guid);
|
|
912
|
+
const data = new Uint8Array(await file.arrayBuffer());
|
|
913
|
+
const server = await resolveServerForOrg(ctx, project?.orgId ?? null, req.deps.computeServer, { definitionPin: record.computeServerId ?? null });
|
|
914
|
+
const schema = await fetchSchemaFromCompute(data, server);
|
|
915
|
+
return created({ version: await definitionService(req.deps).uploadVersion(ctx, guid, data, extension.slice(1), file.name, schema, changeNote) });
|
|
916
|
+
};
|
|
917
|
+
/**
|
|
918
|
+
* Version metadata. `schema` is excluded and served by the `/schema`
|
|
919
|
+
* sub-resource, so a version read never carries a several-hundred-KB blob.
|
|
920
|
+
*/
|
|
921
|
+
var getVersion = async (req) => {
|
|
922
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
923
|
+
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
924
|
+
const { ctx } = requireCaller(req);
|
|
925
|
+
const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
|
|
926
|
+
if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
|
|
927
|
+
const { schema: _schema, ...rest } = version;
|
|
928
|
+
return { body: rest };
|
|
929
|
+
};
|
|
930
|
+
/**
|
|
931
|
+
* Delete an old version. The store throws 409 if the version is currently
|
|
932
|
+
* referenced by `liveVersionId` or `draftVersionId` — repoint first.
|
|
933
|
+
*/
|
|
934
|
+
var deleteVersion = async (req) => {
|
|
935
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
936
|
+
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
937
|
+
const { ctx } = await requireEditableDefinition(req, guid);
|
|
938
|
+
await definitionService(req.deps).deleteVersion(ctx, guid, versionId);
|
|
939
|
+
return noContent();
|
|
940
|
+
};
|
|
941
|
+
/**
|
|
942
|
+
* The UI schema cached on this version at upload. Reads what is stored — no
|
|
943
|
+
* Rhino.Compute round-trip, unlike the pre-upload `POST /api/v1/compute/schema`.
|
|
944
|
+
*
|
|
945
|
+
* Schemas belong to a version, so this is the canonical location;
|
|
946
|
+
* `/definitions/{guid}/schema` is an alias for the live one.
|
|
947
|
+
*/
|
|
948
|
+
var getVersionSchema = async (req) => {
|
|
949
|
+
const guid = parseParam(req.params.guid, GuidSchema, "GUID");
|
|
950
|
+
const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
|
|
951
|
+
const { ctx } = requireCaller(req);
|
|
952
|
+
const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
|
|
953
|
+
if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
|
|
954
|
+
if (!version.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for this version");
|
|
955
|
+
return { body: version.schema };
|
|
956
|
+
};
|
|
957
|
+
//#endregion
|
|
958
|
+
//#region ../server/src/handlers/projects.ts
|
|
959
|
+
/**
|
|
960
|
+
* Project handlers: the collection, and a single project's detail and settings.
|
|
961
|
+
*
|
|
962
|
+
* `listProjects` was authored against `resolveAccessibleProjects`, not lifted
|
|
963
|
+
* from the pre-v1 handler: that one listed every project in the acting org with
|
|
964
|
+
* no `canView` filter and had no UI caller, so it carried no evidence of being
|
|
965
|
+
* correct. The rest are lifted, logic intact, with reads moved onto `req.deps`.
|
|
966
|
+
*/
|
|
967
|
+
var listProjects = async (req) => {
|
|
968
|
+
const { ctx } = requireCaller(req);
|
|
969
|
+
const { projects } = await resolveAccessibleProjects(ctx, req.deps);
|
|
970
|
+
const { limit, cursor } = parseListOptions(req.url);
|
|
971
|
+
const start = cursor ? Number(cursor) : 0;
|
|
972
|
+
if (!Number.isInteger(start) || start < 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid cursor");
|
|
973
|
+
const items = projects.slice(start, start + (limit ?? projects.length));
|
|
974
|
+
const nextIndex = start + items.length;
|
|
975
|
+
return collection({
|
|
976
|
+
items,
|
|
977
|
+
nextCursor: nextIndex < projects.length ? String(nextIndex) : void 0
|
|
978
|
+
});
|
|
979
|
+
};
|
|
980
|
+
var createProject = async (req) => {
|
|
981
|
+
const { ctx, user } = requireCaller(req);
|
|
982
|
+
if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
|
|
983
|
+
await requireCanCreateProject(req, ctx.actingOrgId);
|
|
984
|
+
const input = await parseBody(req.request, CreateProjectBodySchema);
|
|
985
|
+
if (input.visibility === "platform" && !hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can create a project with platform visibility.");
|
|
986
|
+
const autoJoinOnUpload = input.autoJoinOnUpload ?? false;
|
|
987
|
+
const flagIssues = validateProjectFlags({
|
|
988
|
+
visibility: input.visibility,
|
|
989
|
+
autoJoinOnUpload
|
|
990
|
+
});
|
|
991
|
+
if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
|
|
992
|
+
return created(await createProjectWithUniqueSlug(req.deps.projects, {
|
|
993
|
+
id: randomUUID(),
|
|
994
|
+
orgId: ctx.actingOrgId,
|
|
995
|
+
name: input.name,
|
|
996
|
+
description: input.description,
|
|
997
|
+
visibility: input.visibility,
|
|
998
|
+
ownerId: user.id,
|
|
999
|
+
createdBy: user.id,
|
|
1000
|
+
updatedBy: user.id,
|
|
1001
|
+
autoJoinOnUpload
|
|
1002
|
+
}, {
|
|
1003
|
+
writeCtx: ctx,
|
|
1004
|
+
fallbackSlug: "project",
|
|
1005
|
+
conflictScope: "this organization"
|
|
1006
|
+
}));
|
|
1007
|
+
};
|
|
1008
|
+
/**
|
|
1009
|
+
* Project detail plus the caller's effective capabilities on it.
|
|
1010
|
+
*
|
|
1011
|
+
* A project the caller cannot view returns 404, not 403 — `403` would confirm
|
|
1012
|
+
* the id exists to anyone probing.
|
|
1013
|
+
*/
|
|
1014
|
+
var getProject = async (req) => {
|
|
1015
|
+
const { id } = requireParams(req.params, "id");
|
|
1016
|
+
const { ctx } = requireCaller(req);
|
|
1017
|
+
const project = await req.deps.projects.getProject(SYSTEM_CONTEXT, id);
|
|
1018
|
+
if (!project) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1019
|
+
const [orgMembers, projectMembers, grants] = await Promise.all([
|
|
1020
|
+
req.deps.orgs.getOrgMembersFor(SYSTEM_CONTEXT, [project.orgId], ctx.userId),
|
|
1021
|
+
req.deps.projects.getProjectMembersFor(SYSTEM_CONTEXT, [project.id], ctx.userId),
|
|
1022
|
+
project.visibility === "platform" ? req.deps.platformProjectGrants.listByProject(SYSTEM_CONTEXT, project.id) : Promise.resolve([])
|
|
1023
|
+
]);
|
|
1024
|
+
const member = projectMembers.get(project.id) ?? null;
|
|
1025
|
+
const input = projectAccessInputFromRowsWith(req, ctx, project, {
|
|
1026
|
+
member,
|
|
1027
|
+
orgMember: orgMembers.get(project.orgId) ?? null,
|
|
1028
|
+
platformGrants: grants
|
|
1029
|
+
});
|
|
1030
|
+
if (!canView(input)) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1031
|
+
return { body: {
|
|
1032
|
+
...project,
|
|
1033
|
+
role: member?.role ?? null,
|
|
1034
|
+
canEdit: canEdit(input),
|
|
1035
|
+
canSolve: canSolve(input)
|
|
1036
|
+
} };
|
|
1037
|
+
};
|
|
1038
|
+
var updateProject = async (req) => {
|
|
1039
|
+
const { id } = requireParams(req.params, "id");
|
|
1040
|
+
const { ctx, project: existing } = await requireCanEditProjectSettings(req, id);
|
|
1041
|
+
const input = await parseBody(req.request, UpdateProjectBodySchema);
|
|
1042
|
+
if (input.visibility === "platform" && existing.visibility !== "platform") {
|
|
1043
|
+
if (!hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can give a project platform visibility.");
|
|
1044
|
+
}
|
|
1045
|
+
if (input.visibility === "public" && existing.visibility !== "public") {
|
|
1046
|
+
const orgMember = await req.deps.orgs.getOrgMember(ctx, existing.orgId, ctx.userId);
|
|
1047
|
+
if (!withAdminBypass(ctx.platformPermissions, () => canChangeVisibilityToPublic({ orgMember }))) apiError(403, ApiErrorCode.FORBIDDEN, "Only org owners or admins can make a project public.");
|
|
1048
|
+
}
|
|
1049
|
+
const flagIssues = validateProjectFlags({
|
|
1050
|
+
visibility: input.visibility ?? existing.visibility,
|
|
1051
|
+
autoJoinOnUpload: input.autoJoinOnUpload ?? existing.autoJoinOnUpload
|
|
1052
|
+
});
|
|
1053
|
+
if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
|
|
1054
|
+
const patch = {};
|
|
1055
|
+
if (input.name !== void 0) {
|
|
1056
|
+
patch.name = input.name;
|
|
1057
|
+
patch.slug = slugify(input.name);
|
|
1058
|
+
}
|
|
1059
|
+
if (input.description !== void 0) patch.description = input.description ?? void 0;
|
|
1060
|
+
if (input.visibility !== void 0) patch.visibility = input.visibility;
|
|
1061
|
+
if (input.autoJoinOnUpload !== void 0) patch.autoJoinOnUpload = input.autoJoinOnUpload;
|
|
1062
|
+
await req.deps.projects.updateProject(ctx, id, patch);
|
|
1063
|
+
return noContent();
|
|
1064
|
+
};
|
|
1065
|
+
var deleteProject = async (req) => {
|
|
1066
|
+
const { id } = requireParams(req.params, "id");
|
|
1067
|
+
const { ctx } = requireCaller(req);
|
|
1068
|
+
await requireCanManage(req, id);
|
|
1069
|
+
await req.deps.projects.deleteProject(ctx, id);
|
|
1070
|
+
return noContent();
|
|
1071
|
+
};
|
|
1072
|
+
//#endregion
|
|
1073
|
+
//#region ../server/src/handlers/projectMembers.ts
|
|
1074
|
+
/**
|
|
1075
|
+
* Project membership: list, add, change role, remove.
|
|
1076
|
+
*
|
|
1077
|
+
* Every method here gates on `requireCanManage(req, id, 'members')`. The
|
|
1078
|
+
* owner-count preconditions on PATCH and DELETE come from `checkOwnerRemoval`,
|
|
1079
|
+
* a pure rules function, so demotion and removal cannot drift apart — a sole
|
|
1080
|
+
* owner demoting themselves locks the project exactly as removing themselves
|
|
1081
|
+
* would.
|
|
1082
|
+
*/
|
|
1083
|
+
var listProjectMembers = async (req) => {
|
|
1084
|
+
const { id } = requireParams(req.params, "id");
|
|
1085
|
+
const { ctx } = requireCaller(req);
|
|
1086
|
+
await requireCanManage(req, id, "members");
|
|
1087
|
+
return collection(await req.deps.projects.listProjectMembers(ctx, id, parseListOptions(req.url)));
|
|
1088
|
+
};
|
|
1089
|
+
var addProjectMember = async (req) => {
|
|
1090
|
+
const { id } = requireParams(req.params, "id");
|
|
1091
|
+
const { ctx } = requireCaller(req);
|
|
1092
|
+
await requireCanManage(req, id, "members");
|
|
1093
|
+
const input = await parseBody(req.request, AddProjectMemberBodySchema);
|
|
1094
|
+
const project = await req.deps.projects.getProject(ctx, id);
|
|
1095
|
+
if (!project) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
|
|
1096
|
+
await requireTargetIsOrgMember(req, project.orgId, input.userId);
|
|
1097
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1098
|
+
const member = {
|
|
1099
|
+
projectId: id,
|
|
1100
|
+
userId: input.userId,
|
|
1101
|
+
role: input.role,
|
|
1102
|
+
joinedAt: now,
|
|
1103
|
+
updatedAt: now,
|
|
1104
|
+
updatedBy: ctx.userId || input.userId,
|
|
1105
|
+
deletedAt: null
|
|
1106
|
+
};
|
|
1107
|
+
await req.deps.projects.addProjectMember(ctx, member);
|
|
1108
|
+
return created(member);
|
|
1109
|
+
};
|
|
1110
|
+
/**
|
|
1111
|
+
* Guard the owner count before a demotion or removal goes through.
|
|
1112
|
+
*
|
|
1113
|
+
* `?confirm=true` is what distinguishes "I meant to do this" from a misclick;
|
|
1114
|
+
* the sole-owner case has no confirmation, because there is no state the
|
|
1115
|
+
* caller could confirm into that leaves the project manageable.
|
|
1116
|
+
*/
|
|
1117
|
+
async function assertOwnerRemovable(req, projectId, target, action) {
|
|
1118
|
+
const { ctx } = requireCaller(req);
|
|
1119
|
+
const page = await req.deps.projects.listProjectMembers(ctx, projectId, { limit: 200 });
|
|
1120
|
+
const decision = checkOwnerRemoval({
|
|
1121
|
+
target: { role: target.role },
|
|
1122
|
+
allMembers: page.items.map((m) => ({ role: m.role })),
|
|
1123
|
+
confirmed: req.url.searchParams.get("confirm") === "true"
|
|
1124
|
+
});
|
|
1125
|
+
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.`);
|
|
1126
|
+
if (decision === "needs_confirm") apiError(409, ApiErrorCode.CONFLICT, `${action === "demote" ? "Demoting" : "Removing"} another project owner requires explicit confirmation. Retry with ?confirm=true.`);
|
|
1127
|
+
}
|
|
1128
|
+
var updateProjectMemberRole = async (req) => {
|
|
1129
|
+
const { id, userId } = requireParams(req.params, "id", "userId");
|
|
1130
|
+
const { ctx } = requireCaller(req);
|
|
1131
|
+
await requireCanManage(req, id, "members");
|
|
1132
|
+
const { role } = await parseBody(req.request, UpdateProjectMemberBodySchema);
|
|
1133
|
+
if (role !== "owner") {
|
|
1134
|
+
const target = await req.deps.projects.getProjectMember(ctx, id, userId);
|
|
1135
|
+
if (target?.role === "owner") await assertOwnerRemovable(req, id, target, "demote");
|
|
1136
|
+
}
|
|
1137
|
+
await req.deps.projects.updateProjectMemberRole(ctx, id, userId, role);
|
|
1138
|
+
return noContent();
|
|
1139
|
+
};
|
|
1140
|
+
var removeProjectMember = async (req) => {
|
|
1141
|
+
const { id, userId } = requireParams(req.params, "id", "userId");
|
|
1142
|
+
const { ctx } = requireCaller(req);
|
|
1143
|
+
await requireCanManage(req, id, "members");
|
|
1144
|
+
const target = await req.deps.projects.getProjectMember(ctx, id, userId);
|
|
1145
|
+
if (!target) return noContent();
|
|
1146
|
+
if (target.role === "owner") await assertOwnerRemovable(req, id, target, "remove");
|
|
1147
|
+
await req.deps.projects.removeProjectMember(ctx, id, userId);
|
|
1148
|
+
return noContent();
|
|
1149
|
+
};
|
|
1150
|
+
//#endregion
|
|
1151
|
+
//#region ../server/src/handlers/orgCompute.ts
|
|
1152
|
+
/**
|
|
1153
|
+
* Per-org compute config: this org's own servers (`scope: 'org'`) and its
|
|
1154
|
+
* default selection (`orgDefaults[orgId]`). Platform servers and the global
|
|
1155
|
+
* default are read-only here — `manage_compute` owns those via `/api/admin/compute`.
|
|
1156
|
+
*
|
|
1157
|
+
* Authorization: org `owner`/`admin` with `manage_org_compute`, plus the acting-org
|
|
1158
|
+
* tenancy check. Gated by `ALLOW_ORG_COMPUTE_OVERRIDE`; when off, both methods 403.
|
|
1159
|
+
*
|
|
1160
|
+
* **`apiKey` merge semantics are the trap here.** Omitted preserves the stored
|
|
1161
|
+
* key, `null` clears it, a string replaces it — and `/api/admin/compute` must
|
|
1162
|
+
* agree, which is why the merge lives in `@selvajs/server/compute`, not inline.
|
|
1163
|
+
*/
|
|
1164
|
+
function requireFlag(req) {
|
|
1165
|
+
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).");
|
|
1166
|
+
}
|
|
1167
|
+
var getOrgCompute = async (req) => {
|
|
1168
|
+
requireFlag(req);
|
|
1169
|
+
requireManageOrgCompute(req);
|
|
1170
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1171
|
+
const config = await req.deps.computeServer.getConfig(ctx, { scopeToOrgId: orgId });
|
|
1172
|
+
const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => ({
|
|
1173
|
+
...s,
|
|
1174
|
+
hasApiKey: !!s.hasApiKey
|
|
1175
|
+
}));
|
|
1176
|
+
const catalog = config.servers.map((s) => ({
|
|
1177
|
+
id: s.id,
|
|
1178
|
+
label: s.label,
|
|
1179
|
+
serverUrl: s.serverUrl,
|
|
1180
|
+
scope: s.scope,
|
|
1181
|
+
source: isPlatformServer(s) ? "platform" : "org",
|
|
1182
|
+
timeoutMs: s.timeoutMs,
|
|
1183
|
+
retryCount: s.retryCount
|
|
1184
|
+
}));
|
|
1185
|
+
return shaped(OrgComputeResponseSchema, {
|
|
1186
|
+
servers: owned,
|
|
1187
|
+
defaultServerId: config.orgDefaults?.[orgId] ?? null,
|
|
1188
|
+
globalDefaultServerId: config.defaultServerId ?? null,
|
|
1189
|
+
catalog
|
|
1190
|
+
});
|
|
1191
|
+
};
|
|
1192
|
+
var updateOrgCompute = async (req) => {
|
|
1193
|
+
requireFlag(req);
|
|
1194
|
+
requireManageOrgCompute(req);
|
|
1195
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1196
|
+
const incoming = await parseBody(req.request, OrgComputePatchBodySchema);
|
|
1197
|
+
validateIncomingServers(incoming.servers);
|
|
1198
|
+
const provider = req.deps.computeServer;
|
|
1199
|
+
const existing = await provider.getConfig(ctx, { includeApiKeys: true });
|
|
1200
|
+
const storedKeys = storedKeysById(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId));
|
|
1201
|
+
const next = incoming.servers.map((s) => ({
|
|
1202
|
+
id: s.id,
|
|
1203
|
+
scope: "org",
|
|
1204
|
+
ownerOrgId: orgId,
|
|
1205
|
+
label: s.label,
|
|
1206
|
+
serverUrl: s.serverUrl,
|
|
1207
|
+
timeoutMs: s.timeoutMs,
|
|
1208
|
+
retryCount: s.retryCount,
|
|
1209
|
+
apiKey: resolveApiKey(s.apiKey, storedKeys.get(s.id))
|
|
1210
|
+
}));
|
|
1211
|
+
if (typeof incoming.defaultServerId === "string") {
|
|
1212
|
+
const projected = {
|
|
1213
|
+
servers: [...existing.servers.filter((s) => !(isOrgServer(s) && s.ownerOrgId === orgId)), ...next],
|
|
1214
|
+
defaultServerId: existing.defaultServerId,
|
|
1215
|
+
orgDefaults: existing.orgDefaults
|
|
1216
|
+
};
|
|
1217
|
+
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");
|
|
1218
|
+
}
|
|
1219
|
+
await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);
|
|
1220
|
+
evictChangedServers(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId), next, req.deps.evictComputeClient);
|
|
1221
|
+
return noContent();
|
|
1222
|
+
};
|
|
1223
|
+
//#endregion
|
|
1224
|
+
//#region ../server/src/handlers/invite-lookup.ts
|
|
1225
|
+
/**
|
|
1226
|
+
* Find an invite by id, confirming it belongs to `orgId`.
|
|
1227
|
+
*
|
|
1228
|
+
* `manage_org_members` is org-scoped, so a permitted caller must not reach an
|
|
1229
|
+
* invite in another org. Neither store scopes `revoke()` by acting org, so
|
|
1230
|
+
* every route that mutates an invite by id has to establish ownership first —
|
|
1231
|
+
* hence one shared paged scan rather than a copy per route.
|
|
1232
|
+
*/
|
|
1233
|
+
async function findPendingInviteInOrg(ctx, orgId, id, store) {
|
|
1234
|
+
let cursor;
|
|
1235
|
+
do {
|
|
1236
|
+
const page = await store.listByOrg(ctx, orgId, {
|
|
1237
|
+
limit: 200,
|
|
1238
|
+
cursor
|
|
1239
|
+
});
|
|
1240
|
+
const match = page.items.find((i) => i.id === id);
|
|
1241
|
+
if (match) return match;
|
|
1242
|
+
cursor = page.nextCursor ?? void 0;
|
|
1243
|
+
} while (cursor);
|
|
1244
|
+
return null;
|
|
1245
|
+
}
|
|
1246
|
+
//#endregion
|
|
1247
|
+
//#region ../server/src/handlers/invites.ts
|
|
1248
|
+
/**
|
|
1249
|
+
* Org invites: list, mint, revoke, resend.
|
|
1250
|
+
*
|
|
1251
|
+
* **The raw token exists only in the response.** The store sees an HMAC digest,
|
|
1252
|
+
* so a leak of the `invites` table cannot be replayed without the instance
|
|
1253
|
+
* secret — and `tokenHash` is dropped by the response schema, which is why
|
|
1254
|
+
* every response here goes through `shaped`/`shapedCollection` rather than
|
|
1255
|
+
* `{ body }`.
|
|
1256
|
+
*/
|
|
1257
|
+
var INVITE_TTL_MS = 6048e5;
|
|
1258
|
+
/**
|
|
1259
|
+
* Mail the accept link, or report why not.
|
|
1260
|
+
*
|
|
1261
|
+
* Mint and resend must send the identical message, so the deps threading lives
|
|
1262
|
+
* here rather than at each call site. `not-configured` when the host wired no
|
|
1263
|
+
* notification provider: the invite row is already committed and the caller
|
|
1264
|
+
* still holds `acceptUrl`, so an instance without mail is a working instance,
|
|
1265
|
+
* not a failed write.
|
|
1266
|
+
*/
|
|
1267
|
+
async function mailInvite(req, invite, acceptUrl) {
|
|
1268
|
+
const notifications = req.deps.notifications;
|
|
1269
|
+
if (!notifications) return "not-configured";
|
|
1270
|
+
return deliverInvite({
|
|
1271
|
+
ctx: req.ctx,
|
|
1272
|
+
log: req.log,
|
|
1273
|
+
invite,
|
|
1274
|
+
acceptUrl,
|
|
1275
|
+
actor: {
|
|
1276
|
+
profile: req.profile,
|
|
1277
|
+
user: req.user
|
|
1278
|
+
},
|
|
1279
|
+
orgs: req.deps.orgs,
|
|
1280
|
+
notifications,
|
|
1281
|
+
fallbackOrgName: req.deps.instanceName
|
|
1282
|
+
});
|
|
1283
|
+
}
|
|
1284
|
+
/** Pending and recently accepted invites for the acting org. */
|
|
1285
|
+
var listInvites = async (req) => {
|
|
1286
|
+
requireManageOrgMembers(req);
|
|
1287
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1288
|
+
return shapedCollection(InviteResponseSchema, await req.deps.invites.listByOrg(ctx, orgId, parseListOptions(req.url)));
|
|
1289
|
+
};
|
|
1290
|
+
/** Create an invite and return the accept URL. */
|
|
1291
|
+
var createInvite = async (req) => {
|
|
1292
|
+
requireManageOrgMembers(req);
|
|
1293
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1294
|
+
const { user } = requireCaller(req);
|
|
1295
|
+
const input = await parseBody(req.request, CreateInviteBodySchema);
|
|
1296
|
+
const { platform: submittedPlatformPerms, org: submittedOrgPerms } = splitFlatPermissions(input.permissions);
|
|
1297
|
+
assertCanGrantPlatformPermissions(ctx, submittedPlatformPerms);
|
|
1298
|
+
if (!await canActorChangeOrgRole(ctx, orgId, input.orgRole, req)) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can invite someone as owner or admin.");
|
|
1299
|
+
const orgPermissions = input.orgRole === "member" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[input.orgRole]];
|
|
1300
|
+
const codec = tokenCodec(req.deps, "invites");
|
|
1301
|
+
const rawToken = codec.mintRawToken();
|
|
1302
|
+
const now = /* @__PURE__ */ new Date();
|
|
1303
|
+
const invite = {
|
|
1304
|
+
id: randomUUID(),
|
|
1305
|
+
tokenHash: codec.hashToken(rawToken),
|
|
1306
|
+
email: input.email,
|
|
1307
|
+
orgId,
|
|
1308
|
+
orgRole: input.orgRole,
|
|
1309
|
+
orgPermissions,
|
|
1310
|
+
platformPermissions: submittedPlatformPerms,
|
|
1311
|
+
invitedBy: user.id,
|
|
1312
|
+
createdAt: now.toISOString(),
|
|
1313
|
+
expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
|
|
1314
|
+
};
|
|
1315
|
+
await req.deps.invites.create(ctx, invite);
|
|
1316
|
+
const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
|
|
1317
|
+
const delivery = await mailInvite(req, invite, acceptUrl);
|
|
1318
|
+
return shaped(CreatedInviteResponseSchema, {
|
|
1319
|
+
...invite,
|
|
1320
|
+
acceptUrl,
|
|
1321
|
+
delivery
|
|
1322
|
+
}, 201);
|
|
1323
|
+
};
|
|
1324
|
+
/** Revoke a pending invite. Consumed invites are preserved for audit. */
|
|
1325
|
+
var revokeInvite = async (req) => {
|
|
1326
|
+
requireManageOrgMembers(req);
|
|
1327
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1328
|
+
const { id } = requireParams(req.params, "id");
|
|
1329
|
+
if (!await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites)) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
|
|
1330
|
+
await req.deps.invites.revoke(ctx, id);
|
|
1331
|
+
return noContent();
|
|
1332
|
+
};
|
|
1333
|
+
/**
|
|
1334
|
+
* Re-send an invite: mint a replacement and revoke the original.
|
|
1335
|
+
*
|
|
1336
|
+
* A resend cannot reuse the original link. The raw token is never stored — only
|
|
1337
|
+
* its HMAC digest is — so there is nothing to re-read, and rather than weaken
|
|
1338
|
+
* that, this issues a fresh token and revokes the row it replaces. The old link
|
|
1339
|
+
* stops working the moment this returns, which is also what an admin wants
|
|
1340
|
+
* after mailing an invite to the wrong address.
|
|
1341
|
+
*
|
|
1342
|
+
* Grants are copied verbatim from the original. The role and permission gates
|
|
1343
|
+
* ran when it was minted; re-deriving them here would let a since-demoted admin
|
|
1344
|
+
* silently change what the invite carries.
|
|
1345
|
+
*/
|
|
1346
|
+
var resendInvite = async (req) => {
|
|
1347
|
+
requireManageOrgMembers(req);
|
|
1348
|
+
const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
|
|
1349
|
+
const { id } = requireParams(req.params, "id");
|
|
1350
|
+
const existing = await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites);
|
|
1351
|
+
if (!existing) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
|
|
1352
|
+
if (existing.acceptedAt) apiError(409, ApiErrorCode.CONFLICT, "This invite has already been accepted.");
|
|
1353
|
+
const codec = tokenCodec(req.deps, "invites");
|
|
1354
|
+
const rawToken = codec.mintRawToken();
|
|
1355
|
+
const now = /* @__PURE__ */ new Date();
|
|
1356
|
+
const replacement = {
|
|
1357
|
+
...existing,
|
|
1358
|
+
id: randomUUID(),
|
|
1359
|
+
tokenHash: codec.hashToken(rawToken),
|
|
1360
|
+
createdAt: now.toISOString(),
|
|
1361
|
+
expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
|
|
1362
|
+
};
|
|
1363
|
+
await req.deps.invites.create(ctx, replacement);
|
|
1364
|
+
await req.deps.invites.revoke(ctx, existing.id);
|
|
1365
|
+
const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
|
|
1366
|
+
const delivery = await mailInvite(req, replacement, acceptUrl);
|
|
1367
|
+
return shaped(CreatedInviteResponseSchema, {
|
|
1368
|
+
...replacement,
|
|
1369
|
+
acceptUrl,
|
|
1370
|
+
delivery
|
|
1371
|
+
}, 201);
|
|
1372
|
+
};
|
|
1373
|
+
|
|
1374
|
+
export { createInvite as A, revokeInvite as B, resendInvite as C, listOrgMembers as D, updateOrgMember as E, removeOrgMember as F, listProjects as G, createProject as H, getProject as I, updateProject as J, deleteProject as K, listProjectMembers as L, addProjectMember as M, updateProjectMemberRole as N, removeProjectMember as O, reclaimProject as P, uploadDefinitionImage as a, getDefinitionSchema as b, createDefinition as c, deleteDefinition as d, listShareLinks as e, createShareLink as f, getDefinition as g, listVersions as h, uploadVersion as i, getVersion as j, deleteVersion as k, listDefinitions as l, mount as m, getVersionSchema as n, getMe as o, publishDefinition as p, unstarDefinition as q, revokeShareLink 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 };
|
|
1375
|
+
//# sourceMappingURL=handlers.js-Be7MGVko.js.map
|