@selvajs/selva 4.19.0 → 4.20.0-beta.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.
Files changed (1039) hide show
  1. package/build/client/_app/immutable/assets/0.DuuG-nTa.css +2 -0
  2. package/build/client/_app/immutable/assets/0.DuuG-nTa.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.DuuG-nTa.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/7LnJNCNt.js +2 -0
  5. package/build/client/_app/immutable/chunks/7LnJNCNt.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/7LnJNCNt.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/BBbpjMM1.js +1 -0
  8. package/build/client/_app/immutable/chunks/BBbpjMM1.js.br +3 -0
  9. package/build/client/_app/immutable/chunks/BBbpjMM1.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BLvEmOqE.js +1 -0
  11. package/build/client/_app/immutable/chunks/BLvEmOqE.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BLvEmOqE.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BW2ajjg-.js +1 -0
  14. package/build/client/_app/immutable/chunks/BW2ajjg-.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BW2ajjg-.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BhB33hF1.js +1 -0
  17. package/build/client/_app/immutable/chunks/BhB33hF1.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BhB33hF1.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/Bnz4fDD2.js +1 -0
  20. package/build/client/_app/immutable/chunks/Bnz4fDD2.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/Bnz4fDD2.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BnzCj7WN.js +1 -0
  23. package/build/client/_app/immutable/chunks/BnzCj7WN.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BnzCj7WN.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/C5ItBgwn.js +1 -0
  26. package/build/client/_app/immutable/chunks/C5ItBgwn.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/C5ItBgwn.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/CLqK_7Ir.js +1 -0
  29. package/build/client/_app/immutable/chunks/CLqK_7Ir.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/CLqK_7Ir.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/CWjdpssV.js +2 -0
  32. package/build/client/_app/immutable/chunks/CWjdpssV.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/CWjdpssV.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/CYTs9_Q9.js +1 -0
  35. package/build/client/_app/immutable/chunks/CYTs9_Q9.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/CYTs9_Q9.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/Cvw7vjVP.js +1 -0
  38. package/build/client/_app/immutable/chunks/Cvw7vjVP.js.br +2 -0
  39. package/build/client/_app/immutable/chunks/Cvw7vjVP.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/DDZMjfCT.js +55 -0
  41. package/build/client/_app/immutable/chunks/DDZMjfCT.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/DDZMjfCT.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/teEuzr1L.js +1 -0
  44. package/build/client/_app/immutable/chunks/teEuzr1L.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/teEuzr1L.js.gz +0 -0
  46. package/build/client/_app/immutable/entry/app.DmJnSgQs.js +2 -0
  47. package/build/client/_app/immutable/entry/app.DmJnSgQs.js.br +0 -0
  48. package/build/client/_app/immutable/entry/app.DmJnSgQs.js.gz +0 -0
  49. package/build/client/_app/immutable/entry/start.DV1Q42Ir.js +1 -0
  50. package/build/client/_app/immutable/entry/start.DV1Q42Ir.js.br +0 -0
  51. package/build/client/_app/immutable/entry/start.DV1Q42Ir.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/1.C8faFiZW.js +1 -0
  53. package/build/client/_app/immutable/nodes/1.C8faFiZW.js.br +1 -0
  54. package/build/client/_app/immutable/nodes/1.C8faFiZW.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/10.CMgI0MED.js +3 -0
  56. package/build/client/_app/immutable/nodes/10.CMgI0MED.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/10.CMgI0MED.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/11.D9y3E6ZI.js +3 -0
  59. package/build/client/_app/immutable/nodes/11.D9y3E6ZI.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/11.D9y3E6ZI.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/13.DgChZdsA.js +2 -0
  62. package/build/client/_app/immutable/nodes/13.DgChZdsA.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/13.DgChZdsA.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/14.CQJxwxL0.js +2 -0
  65. package/build/client/_app/immutable/nodes/14.CQJxwxL0.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/14.CQJxwxL0.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/15.B_UFnYrc.js +28 -0
  68. package/build/client/_app/immutable/nodes/15.B_UFnYrc.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/15.B_UFnYrc.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/16.llb2nfXo.js +2 -0
  71. package/build/client/_app/immutable/nodes/16.llb2nfXo.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/16.llb2nfXo.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/17.ag21Tru0.js +5 -0
  74. package/build/client/_app/immutable/nodes/17.ag21Tru0.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/17.ag21Tru0.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/18.Ct92us3Z.js +2 -0
  77. package/build/client/_app/immutable/nodes/18.Ct92us3Z.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/18.Ct92us3Z.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/2.N81Pml9Y.js +1 -0
  80. package/build/client/_app/immutable/nodes/2.N81Pml9Y.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/2.N81Pml9Y.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/20.B2aaxW5J.js +7 -0
  83. package/build/client/_app/immutable/nodes/20.B2aaxW5J.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/20.B2aaxW5J.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/21.C4fKe0xG.js +2 -0
  86. package/build/client/_app/immutable/nodes/21.C4fKe0xG.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/21.C4fKe0xG.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/22.DcP67NOC.js +5665 -0
  89. package/build/client/_app/immutable/nodes/22.DcP67NOC.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/22.DcP67NOC.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/23.CJlgeS71.js +6 -0
  92. package/build/client/_app/immutable/nodes/23.CJlgeS71.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/23.CJlgeS71.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/25.Cm52MAQP.js +16 -0
  95. package/build/client/_app/immutable/nodes/25.Cm52MAQP.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/25.Cm52MAQP.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/26.CzcY3cSg.js +6 -0
  98. package/build/client/_app/immutable/nodes/26.CzcY3cSg.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/26.CzcY3cSg.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/29.CX9sHyCY.js +4 -0
  101. package/build/client/_app/immutable/nodes/29.CX9sHyCY.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/29.CX9sHyCY.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/3.BAYdy06t.js +1 -0
  104. package/build/client/_app/immutable/nodes/3.BAYdy06t.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/3.BAYdy06t.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/30.DxmyDKFJ.js +6 -0
  107. package/build/client/_app/immutable/nodes/30.DxmyDKFJ.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/30.DxmyDKFJ.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/31.Bz-7UDBi.js +2 -0
  110. package/build/client/_app/immutable/nodes/31.Bz-7UDBi.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/31.Bz-7UDBi.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/32.93po9R0L.js +2 -0
  113. package/build/client/_app/immutable/nodes/32.93po9R0L.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/32.93po9R0L.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/34.ChBfK0Zu.js +1 -0
  116. package/build/client/_app/immutable/nodes/34.ChBfK0Zu.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/34.ChBfK0Zu.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/5.DL-eYXOR.js +1 -0
  119. package/build/client/_app/immutable/nodes/5.DL-eYXOR.js.br +1 -0
  120. package/build/client/_app/immutable/nodes/5.DL-eYXOR.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/6.DmVA5ta9.js +1 -0
  122. package/build/client/_app/immutable/nodes/6.DmVA5ta9.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/6.DmVA5ta9.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/7.B_E4n2Df.js +1 -0
  125. package/build/client/_app/immutable/nodes/7.B_E4n2Df.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/7.B_E4n2Df.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/8.CY6vXjE5.js +3 -0
  128. package/build/client/_app/immutable/nodes/8.CY6vXjE5.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/8.CY6vXjE5.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/9.CroIQp5Q.js +1 -0
  131. package/build/client/_app/immutable/nodes/9.CroIQp5Q.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/9.CroIQp5Q.js.gz +0 -0
  133. package/build/client/_app/version.json +1 -1
  134. package/build/client/_app/version.json.br +0 -0
  135. package/build/client/_app/version.json.gz +0 -0
  136. package/build/handler.js +4 -4
  137. package/build/index.js +4 -4
  138. package/build/server/chunks/chunks/AppHeader.js-B9gJtaVi.js +72 -0
  139. package/build/server/chunks/chunks/AppHeader.js-B9gJtaVi.js.map +1 -0
  140. package/build/server/chunks/chunks/SettingsMenu.js-B_6_AHkn.js +810 -0
  141. package/build/server/chunks/chunks/SettingsMenu.js-B_6_AHkn.js.map +1 -0
  142. package/build/server/chunks/chunks/SideNav.js-BNrzK-Tv.js +63 -0
  143. package/build/server/chunks/chunks/SideNav.js-BNrzK-Tv.js.map +1 -0
  144. package/build/server/chunks/chunks/UserRowIdentity.js-UJhpjOS7.js +128 -0
  145. package/build/server/chunks/chunks/UserRowIdentity.js-UJhpjOS7.js.map +1 -0
  146. package/build/server/chunks/chunks/access.js-DVAGPd2H.js +770 -0
  147. package/build/server/chunks/chunks/access.js-DVAGPd2H.js.map +1 -0
  148. package/build/server/chunks/chunks/access.server.js-CDxxHEH2.js +11 -0
  149. package/build/server/chunks/chunks/access.server.js-CDxxHEH2.js.map +1 -0
  150. package/build/server/chunks/chunks/access2.server.js-BkDOERUa.js +63 -0
  151. package/build/server/chunks/chunks/access2.server.js-BkDOERUa.js.map +1 -0
  152. package/build/server/chunks/chunks/admin-auth.server.js-BuecoIeA.js +370 -0
  153. package/build/server/chunks/chunks/admin-auth.server.js-BuecoIeA.js.map +1 -0
  154. package/build/server/chunks/chunks/api-errors.js-B3KJbNmV.js +69 -0
  155. package/build/server/chunks/chunks/api-errors.js-B3KJbNmV.js.map +1 -0
  156. package/build/server/chunks/chunks/api-token-codec.js-BEHsbOP6.js +67 -0
  157. package/build/server/chunks/chunks/api-token-codec.js-BEHsbOP6.js.map +1 -0
  158. package/build/server/chunks/chunks/api.js-Cv6E39MW.js +465 -0
  159. package/build/server/chunks/chunks/api.js-Cv6E39MW.js.map +1 -0
  160. package/build/server/chunks/chunks/auth-bootstrap.server.js-VpEomuJH.js +152 -0
  161. package/build/server/chunks/chunks/auth-bootstrap.server.js-VpEomuJH.js.map +1 -0
  162. package/build/server/chunks/chunks/bootHealth.server.js-DcXPBDtQ.js +90 -0
  163. package/build/server/chunks/chunks/bootHealth.server.js-DcXPBDtQ.js.map +1 -0
  164. package/build/server/chunks/chunks/client.js-5A8WqD9s.js +59 -0
  165. package/build/server/chunks/chunks/client.js-5A8WqD9s.js.map +1 -0
  166. package/build/server/chunks/chunks/compute.js-HEQmvD6j.js +430 -0
  167. package/build/server/chunks/chunks/compute.js-HEQmvD6j.js.map +1 -0
  168. package/build/server/chunks/chunks/computeLimits.js-CprilDAO.js +48 -0
  169. package/build/server/chunks/chunks/computeLimits.js-CprilDAO.js.map +1 -0
  170. package/build/server/chunks/chunks/copy.js-EUqXVOK1.js +22 -0
  171. package/build/server/chunks/chunks/copy.js-EUqXVOK1.js.map +1 -0
  172. package/build/server/chunks/chunks/definitions.js-BE-Zf2cL.js +508 -0
  173. package/build/server/chunks/chunks/definitions.js-BE-Zf2cL.js.map +1 -0
  174. package/build/server/chunks/chunks/engine.server.js-6pae8L27.js +600 -0
  175. package/build/server/chunks/chunks/engine.server.js-6pae8L27.js.map +1 -0
  176. package/build/server/chunks/chunks/forms.js-Bj6u8hBc.js +2 -0
  177. package/build/server/chunks/chunks/forms.js-Bj6u8hBc.js.map +1 -0
  178. package/build/server/chunks/chunks/handlers.js-BtIEnx6m.js +1513 -0
  179. package/build/server/chunks/chunks/handlers.js-BtIEnx6m.js.map +1 -0
  180. package/build/server/chunks/chunks/http.js-Df3RjCZH.js +60 -0
  181. package/build/server/chunks/chunks/http.js-Df3RjCZH.js.map +1 -0
  182. package/build/server/chunks/chunks/instanceAdmins.server.js-P1i68Wt-.js +24 -0
  183. package/build/server/chunks/chunks/instanceAdmins.server.js-P1i68Wt-.js.map +1 -0
  184. package/build/server/chunks/chunks/internal.js-DWk6_A5e.js.map +1 -1
  185. package/build/server/chunks/chunks/internal2.js-C9AuzU5W.js +224 -0
  186. package/build/server/chunks/chunks/internal2.js-C9AuzU5W.js.map +1 -0
  187. package/build/server/chunks/chunks/key-round.js-vgogOQC0.js +20 -0
  188. package/build/server/chunks/chunks/key-round.js-vgogOQC0.js.map +1 -0
  189. package/build/server/chunks/chunks/limits.js-CXt-o5p8.js +203 -0
  190. package/build/server/chunks/chunks/limits.js-CXt-o5p8.js.map +1 -0
  191. package/build/server/chunks/chunks/liveSolve.server.js-zNfYPVuT.js +70 -0
  192. package/build/server/chunks/chunks/liveSolve.server.js-zNfYPVuT.js.map +1 -0
  193. package/build/server/chunks/chunks/navigation.js-Bj6u8hBc.js +2 -0
  194. package/build/server/chunks/chunks/navigation.js-Bj6u8hBc.js.map +1 -0
  195. package/build/server/chunks/chunks/package.js-D6Oo8duV.js +83 -0
  196. package/build/server/chunks/chunks/package.js-D6Oo8duV.js.map +1 -0
  197. package/build/server/chunks/chunks/paths.js-BDnaqydJ.js +19 -0
  198. package/build/server/chunks/chunks/paths.js-BDnaqydJ.js.map +1 -0
  199. package/build/server/chunks/chunks/permissions.server.js-CeWfvYQt.js +24 -0
  200. package/build/server/chunks/chunks/permissions.server.js-CeWfvYQt.js.map +1 -0
  201. package/build/server/chunks/chunks/projects.js-CnnSUENv.js +47 -0
  202. package/build/server/chunks/chunks/projects.js-CnnSUENv.js.map +1 -0
  203. package/build/server/chunks/chunks/providers.server.js-ChZPXW9c.js +6332 -0
  204. package/build/server/chunks/chunks/providers.server.js-ChZPXW9c.js.map +1 -0
  205. package/build/server/chunks/chunks/request.js-Ddxldk4i.js +119 -0
  206. package/build/server/chunks/chunks/request.js-Ddxldk4i.js.map +1 -0
  207. package/build/server/chunks/chunks/resolve.server.js-DS-IARl-.js +59 -0
  208. package/build/server/chunks/chunks/resolve.server.js-DS-IARl-.js.map +1 -0
  209. package/build/server/chunks/chunks/selfUpdate.server.js-3G7rEAza.js +144 -0
  210. package/build/server/chunks/chunks/selfUpdate.server.js-3G7rEAza.js.map +1 -0
  211. package/build/server/chunks/chunks/solve.server.js-CWqV0aXu.js +330 -0
  212. package/build/server/chunks/chunks/solve.server.js-CWqV0aXu.js.map +1 -0
  213. package/build/server/chunks/chunks/src.js-DubgTP8X.js +509 -0
  214. package/build/server/chunks/chunks/src.js-DubgTP8X.js.map +1 -0
  215. package/build/server/chunks/chunks/state.js-Cz1r_zDs.js +76 -0
  216. package/build/server/chunks/chunks/state.js-Cz1r_zDs.js.map +1 -0
  217. package/build/server/chunks/chunks/stores.js-C94P3LDt.js +35 -0
  218. package/build/server/chunks/chunks/stores.js-C94P3LDt.js.map +1 -0
  219. package/build/server/chunks/chunks/token.server.js-BYt3vaGK.js +133 -0
  220. package/build/server/chunks/chunks/token.server.js-BYt3vaGK.js.map +1 -0
  221. package/build/server/chunks/chunks/token4.server.js-DOLrxUoz.js +18 -0
  222. package/build/server/chunks/chunks/token4.server.js-DOLrxUoz.js.map +1 -0
  223. package/build/server/chunks/chunks/user-plus.js-CZYPmLTv.js +34 -0
  224. package/build/server/chunks/chunks/user-plus.js-CZYPmLTv.js.map +1 -0
  225. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-C4zvWpTa.js +97 -0
  226. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-C4zvWpTa.js.map +1 -0
  227. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C08cucJ4.js +84 -0
  228. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C08cucJ4.js.map +1 -0
  229. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-mgDVdpsP.js +95 -0
  230. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-mgDVdpsP.js.map +1 -0
  231. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-8B8MVAeF.js +45 -0
  232. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-8B8MVAeF.js.map +1 -0
  233. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-CeK7tXWj.js +68 -0
  234. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-CeK7tXWj.js.map +1 -0
  235. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-Co7FRrhe.js +61 -0
  236. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-Co7FRrhe.js.map +1 -0
  237. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DED3r-kj.js +33 -0
  238. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DED3r-kj.js.map +1 -0
  239. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BxLUdLxN.js +64 -0
  240. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BxLUdLxN.js.map +1 -0
  241. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-vn2pHo2t.js +79 -0
  242. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-vn2pHo2t.js.map +1 -0
  243. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-wL5wrwub.js +362 -0
  244. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-wL5wrwub.js.map +1 -0
  245. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-DdYlU8JW.js +84 -0
  246. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-DdYlU8JW.js.map +1 -0
  247. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-Drck9zMK.js +606 -0
  248. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-Drck9zMK.js.map +1 -0
  249. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-ZL_Mc6bK.js +57 -0
  250. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-ZL_Mc6bK.js.map +1 -0
  251. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Dr_cKDcf.js +66 -0
  252. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Dr_cKDcf.js.map +1 -0
  253. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-ZW874zVH.js +82 -0
  254. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-ZW874zVH.js.map +1 -0
  255. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-BH0zJuYp.js +61 -0
  256. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-BH0zJuYp.js.map +1 -0
  257. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-CZyi8Lmo.js +92 -0
  258. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-CZyi8Lmo.js.map +1 -0
  259. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DPPGkl2g.js +58 -0
  260. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DPPGkl2g.js.map +1 -0
  261. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-kn8hNkDX.js +61 -0
  262. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-kn8hNkDX.js.map +1 -0
  263. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-CSBh8B5T.js +88 -0
  264. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-CSBh8B5T.js.map +1 -0
  265. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-B8coTxhK.js +67 -0
  266. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-B8coTxhK.js.map +1 -0
  267. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-PrHkeEQq.js +42 -0
  268. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-PrHkeEQq.js.map +1 -0
  269. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-ClCkTBIn.js +40 -0
  270. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-ClCkTBIn.js.map +1 -0
  271. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-Bj8z1hbn.js +40 -0
  272. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-Bj8z1hbn.js.map +1 -0
  273. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-CK44e35g.js +40 -0
  274. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-CK44e35g.js.map +1 -0
  275. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-Bhw-ZptE.js +40 -0
  276. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-Bhw-ZptE.js.map +1 -0
  277. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-6lVGag1l.js +41 -0
  278. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-6lVGag1l.js.map +1 -0
  279. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-CMVDXaTW.js +212 -0
  280. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-CMVDXaTW.js.map +1 -0
  281. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-DC57vDID.js +41 -0
  282. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-DC57vDID.js.map +1 -0
  283. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BVBNdMWP.js +41 -0
  284. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-BVBNdMWP.js.map +1 -0
  285. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BQ5eOB7P.js +40 -0
  286. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BQ5eOB7P.js.map +1 -0
  287. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-BALvZgO3.js +40 -0
  288. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-BALvZgO3.js.map +1 -0
  289. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-CZbN3AG6.js +39 -0
  290. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-CZbN3AG6.js.map +1 -0
  291. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-BrvDsJMM.js +40 -0
  292. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-BrvDsJMM.js.map +1 -0
  293. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CUjFQKRz.js +39 -0
  294. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-CUjFQKRz.js.map +1 -0
  295. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-LD823rDy.js +40 -0
  296. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-LD823rDy.js.map +1 -0
  297. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BhnkCXTg.js +40 -0
  298. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BhnkCXTg.js.map +1 -0
  299. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-COlqDmAO.js +39 -0
  300. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-COlqDmAO.js.map +1 -0
  301. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CGmT2t75.js +39 -0
  302. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CGmT2t75.js.map +1 -0
  303. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-DQpZYzOA.js +40 -0
  304. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-DQpZYzOA.js.map +1 -0
  305. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-CWQxVL9_.js +39 -0
  306. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-CWQxVL9_.js.map +1 -0
  307. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CGF6D1Si.js +40 -0
  308. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CGF6D1Si.js.map +1 -0
  309. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-D9uW2Znn.js +40 -0
  310. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_server.ts.js-D9uW2Znn.js.map +1 -0
  311. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-DoZ_agSy.js +39 -0
  312. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/tokens/_tokenId_/_server.ts.js-DoZ_agSy.js.map +1 -0
  313. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-DrtDCide.js +42 -0
  314. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-DrtDCide.js.map +1 -0
  315. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-CMv3AmJK.js +41 -0
  316. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-CMv3AmJK.js.map +1 -0
  317. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-BxrmTpJq.js +41 -0
  318. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-BxrmTpJq.js.map +1 -0
  319. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CnhNLuEe.js +40 -0
  320. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-CnhNLuEe.js.map +1 -0
  321. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CL_mZEkF.js +40 -0
  322. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CL_mZEkF.js.map +1 -0
  323. package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-Bww7Fr_A.js +28 -0
  324. package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-Bww7Fr_A.js.map +1 -0
  325. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-B4CH0Q9Q.js +89 -0
  326. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-B4CH0Q9Q.js.map +1 -0
  327. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-DydGXQPk.js +62 -0
  328. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-DydGXQPk.js.map +1 -0
  329. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D0_7wZ6c.js +49 -0
  330. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-D0_7wZ6c.js.map +1 -0
  331. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DrdqjC1E.js +55 -0
  332. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-DrdqjC1E.js.map +1 -0
  333. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BmvoAwMm.js +63 -0
  334. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-BmvoAwMm.js.map +1 -0
  335. package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-L1EgGahx.js +11 -0
  336. package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-L1EgGahx.js.map +1 -0
  337. package/build/server/chunks/entries/hooks.server.js-Bj2XPzPM.js +347 -0
  338. package/build/server/chunks/entries/hooks.server.js-Bj2XPzPM.js.map +1 -0
  339. package/build/server/chunks/entries/pages/_error.svelte.js-DzR3mOND.js +35 -0
  340. package/build/server/chunks/entries/pages/_error.svelte.js-DzR3mOND.js.map +1 -0
  341. package/build/server/chunks/entries/pages/_layout.server.ts.js-VkA6jAkB.js +34 -0
  342. package/build/server/chunks/entries/pages/_layout.server.ts.js-VkA6jAkB.js.map +1 -0
  343. package/build/server/chunks/entries/pages/_page.server.ts.js-Dn4ys9BC.js +55 -0
  344. package/build/server/chunks/entries/pages/_page.server.ts.js-Dn4ys9BC.js.map +1 -0
  345. package/build/server/chunks/entries/pages/_page.svelte.js-CnjA-gBE.js +155 -0
  346. package/build/server/chunks/entries/pages/_page.svelte.js-CnjA-gBE.js.map +1 -0
  347. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CsoFpB_L.js +181 -0
  348. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-CsoFpB_L.js.map +1 -0
  349. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CBloKhLk.js +176 -0
  350. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-CBloKhLk.js.map +1 -0
  351. package/build/server/chunks/entries/pages/admin/_error.svelte.js-kpXaWzfd.js +37 -0
  352. package/build/server/chunks/entries/pages/admin/_error.svelte.js-kpXaWzfd.js.map +1 -0
  353. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-Di14m5LV.js +31 -0
  354. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-Di14m5LV.js.map +1 -0
  355. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-XOX6cXlT.js +130 -0
  356. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-XOX6cXlT.js.map +1 -0
  357. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-i7x7O1Ct.js +76 -0
  358. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-i7x7O1Ct.js.map +1 -0
  359. package/build/server/chunks/entries/pages/admin/_page.svelte.js-CIqEVgN4.js +393 -0
  360. package/build/server/chunks/entries/pages/admin/_page.svelte.js-CIqEVgN4.js.map +1 -0
  361. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-BiZf-Pi9.js +269 -0
  362. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-BiZf-Pi9.js.map +1 -0
  363. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-CfZ6UtIO.js +455 -0
  364. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-CfZ6UtIO.js.map +1 -0
  365. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-S9FERdrj.js +74 -0
  366. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-S9FERdrj.js.map +1 -0
  367. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-Dw_qYKrQ.js +839 -0
  368. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-Dw_qYKrQ.js.map +1 -0
  369. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-Xi21Pvlg.js +35 -0
  370. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-Xi21Pvlg.js.map +1 -0
  371. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DBHWrbqL.js +86 -0
  372. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-DBHWrbqL.js.map +1 -0
  373. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-BiNjosKZ.js +636 -0
  374. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-BiNjosKZ.js.map +1 -0
  375. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CiSXRELZ.js +42 -0
  376. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CiSXRELZ.js.map +1 -0
  377. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-GneO2YkY.js +283 -0
  378. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-GneO2YkY.js.map +1 -0
  379. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Pzd3NbQi.js +87 -0
  380. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-Pzd3NbQi.js.map +1 -0
  381. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Cf3XK62H.js +1368 -0
  382. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-Cf3XK62H.js.map +1 -0
  383. package/build/server/chunks/entries/pages/admin/tokens/_page.server.ts.js-B_uReSBY.js +63 -0
  384. package/build/server/chunks/entries/pages/admin/tokens/_page.server.ts.js-B_uReSBY.js.map +1 -0
  385. package/build/server/chunks/entries/pages/admin/tokens/_page.svelte.js-sWYV8Oef.js +767 -0
  386. package/build/server/chunks/entries/pages/admin/tokens/_page.svelte.js-sWYV8Oef.js.map +1 -0
  387. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-CIcCQiGg.js +79 -0
  388. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-CIcCQiGg.js.map +1 -0
  389. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-Bmx7quuK.js +622 -0
  390. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-Bmx7quuK.js.map +1 -0
  391. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-D55x9xNN.js +63 -0
  392. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-D55x9xNN.js.map +1 -0
  393. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-DvFebSOT.js +62 -0
  394. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-DvFebSOT.js.map +1 -0
  395. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-DzJ2nhcI.js +618 -0
  396. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-DzJ2nhcI.js.map +1 -0
  397. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Duk9z0WB.js +85 -0
  398. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-Duk9z0WB.js.map +1 -0
  399. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-twar9Tm6.js +120 -0
  400. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-twar9Tm6.js.map +1 -0
  401. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CndMw4j3.js +15116 -0
  402. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-CndMw4j3.js.map +1 -0
  403. package/build/server/chunks/entries/pages/library/_page.server.ts.js-DuEfjzFo.js +50 -0
  404. package/build/server/chunks/entries/pages/library/_page.server.ts.js-DuEfjzFo.js.map +1 -0
  405. package/build/server/chunks/entries/pages/library/_page.svelte.js-BMh6TjiL.js +301 -0
  406. package/build/server/chunks/entries/pages/library/_page.svelte.js-BMh6TjiL.js.map +1 -0
  407. package/build/server/chunks/entries/pages/login/_page.server.ts.js-0B9d7iLb.js +101 -0
  408. package/build/server/chunks/entries/pages/login/_page.server.ts.js-0B9d7iLb.js.map +1 -0
  409. package/build/server/chunks/entries/pages/login/_page.svelte.js-SHbox6u1.js +256 -0
  410. package/build/server/chunks/entries/pages/login/_page.svelte.js-SHbox6u1.js.map +1 -0
  411. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-BhlAYTSN.js +19 -0
  412. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-BhlAYTSN.js.map +1 -0
  413. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-Dl13a9ZK.js +22 -0
  414. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-Dl13a9ZK.js.map +1 -0
  415. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-i8pxpmGZ.js +49 -0
  416. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-i8pxpmGZ.js.map +1 -0
  417. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-S6RCwcC0.js +93 -0
  418. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-S6RCwcC0.js.map +1 -0
  419. package/build/server/chunks/entries/pages/projects/_page.svelte.js-CgtCgjQn.js +3741 -0
  420. package/build/server/chunks/entries/pages/projects/_page.svelte.js-CgtCgjQn.js.map +1 -0
  421. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CgWywy5o.js +116 -0
  422. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CgWywy5o.js.map +1 -0
  423. package/build/server/chunks/entries/pages/setup/_page.svelte.js-BU8krPgH.js +312 -0
  424. package/build/server/chunks/entries/pages/setup/_page.svelte.js-BU8krPgH.js.map +1 -0
  425. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-ajLAMCM-.js +28 -0
  426. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-ajLAMCM-.js.map +1 -0
  427. package/build/server/chunks/entries/pages/team/_layout.svelte.js-CJg_-B3o.js +166 -0
  428. package/build/server/chunks/entries/pages/team/_layout.svelte.js-CJg_-B3o.js.map +1 -0
  429. package/build/server/chunks/entries/pages/team/_page.server.ts.js-B9nkUvbO.js +35 -0
  430. package/build/server/chunks/entries/pages/team/_page.server.ts.js-B9nkUvbO.js.map +1 -0
  431. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-eZ0rqm-Y.js +42 -0
  432. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-eZ0rqm-Y.js.map +1 -0
  433. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-C_uWX-BX.js +611 -0
  434. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-C_uWX-BX.js.map +1 -0
  435. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-C4YVi5Jx.js +62 -0
  436. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-C4YVi5Jx.js.map +1 -0
  437. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DvEf03Cj.js +805 -0
  438. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-DvEf03Cj.js.map +1 -0
  439. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CU30Q4f2.js +58 -0
  440. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CU30Q4f2.js.map +1 -0
  441. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-Bvg8_f7g.js +422 -0
  442. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-Bvg8_f7g.js.map +1 -0
  443. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CC-aq4Y8.js +67 -0
  444. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CC-aq4Y8.js.map +1 -0
  445. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-Bxnf0_1q.js +265 -0
  446. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-Bxnf0_1q.js.map +1 -0
  447. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-C7Ekqm-a.js +34 -0
  448. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-C7Ekqm-a.js.map +1 -0
  449. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DLC3ASNG.js +29 -0
  450. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DLC3ASNG.js.map +1 -0
  451. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Bozo_Z--.js +311 -0
  452. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-Bozo_Z--.js.map +1 -0
  453. package/build/server/chunks/handler-BgASRWeE.js +1206 -0
  454. package/build/server/chunks/handler-BgASRWeE.js.map +1 -0
  455. package/build/server/chunks/index.js-CpLY1Lav.js +3767 -0
  456. package/build/server/chunks/index.js-CpLY1Lav.js.map +1 -0
  457. package/build/server/chunks/manifest.js-1B01CMS6.js +655 -0
  458. package/build/server/chunks/manifest.js-1B01CMS6.js.map +1 -0
  459. package/build/server/chunks/nodes/0.js-B-PLsNjh.js +26 -0
  460. package/build/server/chunks/nodes/0.js-B-PLsNjh.js.map +1 -0
  461. package/build/server/chunks/nodes/1.js-Blzoyll4.js +9 -0
  462. package/build/server/chunks/nodes/1.js-Blzoyll4.js.map +1 -0
  463. package/build/server/chunks/nodes/10.js-B_WJj871.js +29 -0
  464. package/build/server/chunks/nodes/10.js-B_WJj871.js.map +1 -0
  465. package/build/server/chunks/nodes/11.js-DFlVRMfZ.js +35 -0
  466. package/build/server/chunks/nodes/11.js-DFlVRMfZ.js.map +1 -0
  467. package/build/server/chunks/nodes/12.js-CyMf6KT2.js +27 -0
  468. package/build/server/chunks/nodes/12.js-CyMf6KT2.js.map +1 -0
  469. package/build/server/chunks/nodes/13.js-Dz_X5XBB.js +27 -0
  470. package/build/server/chunks/nodes/13.js-Dz_X5XBB.js.map +1 -0
  471. package/build/server/chunks/nodes/14.js-RpuWETS4.js +27 -0
  472. package/build/server/chunks/nodes/14.js-RpuWETS4.js.map +1 -0
  473. package/build/server/chunks/nodes/15.js-BK0Ww3d0.js +36 -0
  474. package/build/server/chunks/nodes/15.js-BK0Ww3d0.js.map +1 -0
  475. package/build/server/chunks/nodes/16.js-FJRjujyw.js +32 -0
  476. package/build/server/chunks/nodes/16.js-FJRjujyw.js.map +1 -0
  477. package/build/server/chunks/nodes/17.js-D1R9byiZ.js +29 -0
  478. package/build/server/chunks/nodes/17.js-D1R9byiZ.js.map +1 -0
  479. package/build/server/chunks/nodes/18.js-Fy8sPXDG.js +9 -0
  480. package/build/server/chunks/nodes/18.js-Fy8sPXDG.js.map +1 -0
  481. package/build/server/chunks/nodes/19.js-DyX-LEwD.js +32 -0
  482. package/build/server/chunks/nodes/19.js-DyX-LEwD.js.map +1 -0
  483. package/build/server/chunks/nodes/2.js-CC-DSXE8.js +29 -0
  484. package/build/server/chunks/nodes/2.js-CC-DSXE8.js.map +1 -0
  485. package/build/server/chunks/nodes/20.js-CEwiznR-.js +21 -0
  486. package/build/server/chunks/nodes/20.js-CEwiznR-.js.map +1 -0
  487. package/build/server/chunks/nodes/21.js-CGr7VoHh.js +20 -0
  488. package/build/server/chunks/nodes/21.js-CGr7VoHh.js.map +1 -0
  489. package/build/server/chunks/nodes/22.js-dLxRCvnd.js +39 -0
  490. package/build/server/chunks/nodes/22.js-dLxRCvnd.js.map +1 -0
  491. package/build/server/chunks/nodes/23.js-DRSY_Cd3.js +32 -0
  492. package/build/server/chunks/nodes/23.js-DRSY_Cd3.js.map +1 -0
  493. package/build/server/chunks/nodes/24.js-MnYWci-H.js +29 -0
  494. package/build/server/chunks/nodes/24.js-MnYWci-H.js.map +1 -0
  495. package/build/server/chunks/nodes/25.js-C8K-Mg5J.js +28 -0
  496. package/build/server/chunks/nodes/25.js-C8K-Mg5J.js.map +1 -0
  497. package/build/server/chunks/nodes/26.js-C96KWHu_.js +32 -0
  498. package/build/server/chunks/nodes/26.js-C96KWHu_.js.map +1 -0
  499. package/build/server/chunks/nodes/27.js-BXqPgHWZ.js +27 -0
  500. package/build/server/chunks/nodes/27.js-BXqPgHWZ.js.map +1 -0
  501. package/build/server/chunks/nodes/28.js-C9d3TebG.js +9 -0
  502. package/build/server/chunks/nodes/28.js-C9d3TebG.js.map +1 -0
  503. package/build/server/chunks/nodes/29.js-DAf7JOZu.js +27 -0
  504. package/build/server/chunks/nodes/29.js-DAf7JOZu.js.map +1 -0
  505. package/build/server/chunks/nodes/3.js-CEoW5UEi.js +9 -0
  506. package/build/server/chunks/nodes/3.js-CEoW5UEi.js.map +1 -0
  507. package/build/server/chunks/nodes/30.js-D62Ka308.js +27 -0
  508. package/build/server/chunks/nodes/30.js-D62Ka308.js.map +1 -0
  509. package/build/server/chunks/nodes/31.js-peZ5Bn0Y.js +28 -0
  510. package/build/server/chunks/nodes/31.js-peZ5Bn0Y.js.map +1 -0
  511. package/build/server/chunks/nodes/32.js-DBiWJSl3.js +27 -0
  512. package/build/server/chunks/nodes/32.js-DBiWJSl3.js.map +1 -0
  513. package/build/server/chunks/nodes/33.js-wInRioMo.js +27 -0
  514. package/build/server/chunks/nodes/33.js-wInRioMo.js.map +1 -0
  515. package/build/server/chunks/nodes/34.js-zpGpZ8Sx.js +27 -0
  516. package/build/server/chunks/nodes/34.js-zpGpZ8Sx.js.map +1 -0
  517. package/build/server/chunks/nodes/5.js-shrQeFeP.js +15 -0
  518. package/build/server/chunks/nodes/5.js-shrQeFeP.js.map +1 -0
  519. package/build/server/chunks/nodes/6.js-DOTYJT75.js +27 -0
  520. package/build/server/chunks/nodes/6.js-DOTYJT75.js.map +1 -0
  521. package/build/server/chunks/nodes/7.js-By3IByI-.js +20 -0
  522. package/build/server/chunks/nodes/7.js-By3IByI-.js.map +1 -0
  523. package/build/server/chunks/nodes/8.js-CUvuiwbc.js +33 -0
  524. package/build/server/chunks/nodes/8.js-CUvuiwbc.js.map +1 -0
  525. package/build/server/chunks/nodes/9.js-oWxwaLHP.js +27 -0
  526. package/build/server/chunks/nodes/9.js-oWxwaLHP.js.map +1 -0
  527. package/package.json +9 -9
  528. package/templates/.env.example +16 -0
  529. package/build/client/_app/immutable/assets/0.CHORFFjr.css +0 -2
  530. package/build/client/_app/immutable/assets/0.CHORFFjr.css.br +0 -0
  531. package/build/client/_app/immutable/assets/0.CHORFFjr.css.gz +0 -0
  532. package/build/client/_app/immutable/chunks/BeUaRB0p.js +0 -1
  533. package/build/client/_app/immutable/chunks/BeUaRB0p.js.br +0 -0
  534. package/build/client/_app/immutable/chunks/BeUaRB0p.js.gz +0 -0
  535. package/build/client/_app/immutable/chunks/Bh4U2MHd.js +0 -2
  536. package/build/client/_app/immutable/chunks/Bh4U2MHd.js.br +0 -0
  537. package/build/client/_app/immutable/chunks/Bh4U2MHd.js.gz +0 -0
  538. package/build/client/_app/immutable/chunks/Bv9KnLTs.js +0 -1
  539. package/build/client/_app/immutable/chunks/Bv9KnLTs.js.br +0 -0
  540. package/build/client/_app/immutable/chunks/Bv9KnLTs.js.gz +0 -0
  541. package/build/client/_app/immutable/chunks/CKcoMXgR.js +0 -1
  542. package/build/client/_app/immutable/chunks/CKcoMXgR.js.br +0 -0
  543. package/build/client/_app/immutable/chunks/CKcoMXgR.js.gz +0 -0
  544. package/build/client/_app/immutable/chunks/CkQaATtv.js +0 -1
  545. package/build/client/_app/immutable/chunks/CkQaATtv.js.br +0 -0
  546. package/build/client/_app/immutable/chunks/CkQaATtv.js.gz +0 -0
  547. package/build/client/_app/immutable/chunks/DJukRnEy.js +0 -1
  548. package/build/client/_app/immutable/chunks/DJukRnEy.js.br +0 -0
  549. package/build/client/_app/immutable/chunks/DJukRnEy.js.gz +0 -0
  550. package/build/client/_app/immutable/chunks/DdZSYP5P.js +0 -2
  551. package/build/client/_app/immutable/chunks/DdZSYP5P.js.br +0 -0
  552. package/build/client/_app/immutable/chunks/DdZSYP5P.js.gz +0 -0
  553. package/build/client/_app/immutable/chunks/DpMC-4rK.js +0 -1
  554. package/build/client/_app/immutable/chunks/DpMC-4rK.js.br +0 -0
  555. package/build/client/_app/immutable/chunks/DpMC-4rK.js.gz +0 -0
  556. package/build/client/_app/immutable/chunks/ROovcO1i.js +0 -1
  557. package/build/client/_app/immutable/chunks/ROovcO1i.js.br +0 -2
  558. package/build/client/_app/immutable/chunks/ROovcO1i.js.gz +0 -0
  559. package/build/client/_app/immutable/chunks/XGoloJLG.js +0 -1
  560. package/build/client/_app/immutable/chunks/XGoloJLG.js.br +0 -0
  561. package/build/client/_app/immutable/chunks/XGoloJLG.js.gz +0 -0
  562. package/build/client/_app/immutable/chunks/ajFB_Ifu.js +0 -55
  563. package/build/client/_app/immutable/chunks/ajFB_Ifu.js.br +0 -0
  564. package/build/client/_app/immutable/chunks/ajFB_Ifu.js.gz +0 -0
  565. package/build/client/_app/immutable/chunks/tMkFOml0.js +0 -1
  566. package/build/client/_app/immutable/chunks/tMkFOml0.js.br +0 -0
  567. package/build/client/_app/immutable/chunks/tMkFOml0.js.gz +0 -0
  568. package/build/client/_app/immutable/entry/app.CWdrIKbS.js +0 -2
  569. package/build/client/_app/immutable/entry/app.CWdrIKbS.js.br +0 -0
  570. package/build/client/_app/immutable/entry/app.CWdrIKbS.js.gz +0 -0
  571. package/build/client/_app/immutable/entry/start.B47pNDrj.js +0 -1
  572. package/build/client/_app/immutable/entry/start.B47pNDrj.js.br +0 -0
  573. package/build/client/_app/immutable/entry/start.B47pNDrj.js.gz +0 -0
  574. package/build/client/_app/immutable/nodes/1.X2DIJ8z3.js +0 -1
  575. package/build/client/_app/immutable/nodes/1.X2DIJ8z3.js.br +0 -0
  576. package/build/client/_app/immutable/nodes/1.X2DIJ8z3.js.gz +0 -0
  577. package/build/client/_app/immutable/nodes/10.mUWXPenT.js +0 -3
  578. package/build/client/_app/immutable/nodes/10.mUWXPenT.js.br +0 -0
  579. package/build/client/_app/immutable/nodes/10.mUWXPenT.js.gz +0 -0
  580. package/build/client/_app/immutable/nodes/11.CMSV2UEj.js +0 -3
  581. package/build/client/_app/immutable/nodes/11.CMSV2UEj.js.br +0 -0
  582. package/build/client/_app/immutable/nodes/11.CMSV2UEj.js.gz +0 -0
  583. package/build/client/_app/immutable/nodes/13.BPa9azjZ.js +0 -2
  584. package/build/client/_app/immutable/nodes/13.BPa9azjZ.js.br +0 -0
  585. package/build/client/_app/immutable/nodes/13.BPa9azjZ.js.gz +0 -0
  586. package/build/client/_app/immutable/nodes/14.CugcPhHa.js +0 -2
  587. package/build/client/_app/immutable/nodes/14.CugcPhHa.js.br +0 -0
  588. package/build/client/_app/immutable/nodes/14.CugcPhHa.js.gz +0 -0
  589. package/build/client/_app/immutable/nodes/15.g8rn5ZIP.js +0 -28
  590. package/build/client/_app/immutable/nodes/15.g8rn5ZIP.js.br +0 -0
  591. package/build/client/_app/immutable/nodes/15.g8rn5ZIP.js.gz +0 -0
  592. package/build/client/_app/immutable/nodes/16.SHmT6wBs.js +0 -5
  593. package/build/client/_app/immutable/nodes/16.SHmT6wBs.js.br +0 -0
  594. package/build/client/_app/immutable/nodes/16.SHmT6wBs.js.gz +0 -0
  595. package/build/client/_app/immutable/nodes/17.BvqcTme9.js +0 -2
  596. package/build/client/_app/immutable/nodes/17.BvqcTme9.js.br +0 -0
  597. package/build/client/_app/immutable/nodes/17.BvqcTme9.js.gz +0 -0
  598. package/build/client/_app/immutable/nodes/19.B_2c-DNU.js +0 -7
  599. package/build/client/_app/immutable/nodes/19.B_2c-DNU.js.br +0 -0
  600. package/build/client/_app/immutable/nodes/19.B_2c-DNU.js.gz +0 -0
  601. package/build/client/_app/immutable/nodes/2.CAlqgVag.js +0 -1
  602. package/build/client/_app/immutable/nodes/2.CAlqgVag.js.br +0 -0
  603. package/build/client/_app/immutable/nodes/2.CAlqgVag.js.gz +0 -0
  604. package/build/client/_app/immutable/nodes/20.CLVe9vDx.js +0 -2
  605. package/build/client/_app/immutable/nodes/20.CLVe9vDx.js.br +0 -0
  606. package/build/client/_app/immutable/nodes/20.CLVe9vDx.js.gz +0 -0
  607. package/build/client/_app/immutable/nodes/21.DpwRP5vV.js +0 -5665
  608. package/build/client/_app/immutable/nodes/21.DpwRP5vV.js.br +0 -0
  609. package/build/client/_app/immutable/nodes/21.DpwRP5vV.js.gz +0 -0
  610. package/build/client/_app/immutable/nodes/22.DGZlkdsj.js +0 -6
  611. package/build/client/_app/immutable/nodes/22.DGZlkdsj.js.br +0 -0
  612. package/build/client/_app/immutable/nodes/22.DGZlkdsj.js.gz +0 -0
  613. package/build/client/_app/immutable/nodes/24.DI73rnq-.js +0 -16
  614. package/build/client/_app/immutable/nodes/24.DI73rnq-.js.br +0 -0
  615. package/build/client/_app/immutable/nodes/24.DI73rnq-.js.gz +0 -0
  616. package/build/client/_app/immutable/nodes/25.DOzKn2AC.js +0 -6
  617. package/build/client/_app/immutable/nodes/25.DOzKn2AC.js.br +0 -0
  618. package/build/client/_app/immutable/nodes/25.DOzKn2AC.js.gz +0 -0
  619. package/build/client/_app/immutable/nodes/28.BoE-qDyQ.js +0 -4
  620. package/build/client/_app/immutable/nodes/28.BoE-qDyQ.js.br +0 -0
  621. package/build/client/_app/immutable/nodes/28.BoE-qDyQ.js.gz +0 -0
  622. package/build/client/_app/immutable/nodes/29.BHDcbA8h.js +0 -6
  623. package/build/client/_app/immutable/nodes/29.BHDcbA8h.js.br +0 -0
  624. package/build/client/_app/immutable/nodes/29.BHDcbA8h.js.gz +0 -0
  625. package/build/client/_app/immutable/nodes/3.DiBmFoPG.js +0 -1
  626. package/build/client/_app/immutable/nodes/3.DiBmFoPG.js.br +0 -0
  627. package/build/client/_app/immutable/nodes/3.DiBmFoPG.js.gz +0 -0
  628. package/build/client/_app/immutable/nodes/30.DBlYOQY_.js +0 -2
  629. package/build/client/_app/immutable/nodes/30.DBlYOQY_.js.br +0 -0
  630. package/build/client/_app/immutable/nodes/30.DBlYOQY_.js.gz +0 -0
  631. package/build/client/_app/immutable/nodes/31.69ptmT5f.js +0 -2
  632. package/build/client/_app/immutable/nodes/31.69ptmT5f.js.br +0 -0
  633. package/build/client/_app/immutable/nodes/31.69ptmT5f.js.gz +0 -0
  634. package/build/client/_app/immutable/nodes/33.2jWW90Ov.js +0 -1
  635. package/build/client/_app/immutable/nodes/33.2jWW90Ov.js.br +0 -0
  636. package/build/client/_app/immutable/nodes/33.2jWW90Ov.js.gz +0 -0
  637. package/build/client/_app/immutable/nodes/5.CXgy0V4Y.js +0 -1
  638. package/build/client/_app/immutable/nodes/5.CXgy0V4Y.js.br +0 -2
  639. package/build/client/_app/immutable/nodes/5.CXgy0V4Y.js.gz +0 -0
  640. package/build/client/_app/immutable/nodes/6.De_sOukS.js +0 -1
  641. package/build/client/_app/immutable/nodes/6.De_sOukS.js.br +0 -0
  642. package/build/client/_app/immutable/nodes/6.De_sOukS.js.gz +0 -0
  643. package/build/client/_app/immutable/nodes/7.2l0RJuX8.js +0 -1
  644. package/build/client/_app/immutable/nodes/7.2l0RJuX8.js.br +0 -0
  645. package/build/client/_app/immutable/nodes/7.2l0RJuX8.js.gz +0 -0
  646. package/build/client/_app/immutable/nodes/8.BAi63EeM.js +0 -3
  647. package/build/client/_app/immutable/nodes/8.BAi63EeM.js.br +0 -0
  648. package/build/client/_app/immutable/nodes/8.BAi63EeM.js.gz +0 -0
  649. package/build/client/_app/immutable/nodes/9.DXnShtW7.js +0 -1
  650. package/build/client/_app/immutable/nodes/9.DXnShtW7.js.br +0 -0
  651. package/build/client/_app/immutable/nodes/9.DXnShtW7.js.gz +0 -0
  652. package/build/server/chunks/chunks/AppHeader.js-CGs-3ilX.js +0 -72
  653. package/build/server/chunks/chunks/AppHeader.js-CGs-3ilX.js.map +0 -1
  654. package/build/server/chunks/chunks/SettingsMenu.js-CjXYH3Q3.js +0 -810
  655. package/build/server/chunks/chunks/SettingsMenu.js-CjXYH3Q3.js.map +0 -1
  656. package/build/server/chunks/chunks/SideNav.js-_H81ZSyA.js +0 -63
  657. package/build/server/chunks/chunks/SideNav.js-_H81ZSyA.js.map +0 -1
  658. package/build/server/chunks/chunks/UserRowIdentity.js-ByqC4tFQ.js +0 -124
  659. package/build/server/chunks/chunks/UserRowIdentity.js-ByqC4tFQ.js.map +0 -1
  660. package/build/server/chunks/chunks/access.js-Cm9Px9Wy.js +0 -756
  661. package/build/server/chunks/chunks/access.js-Cm9Px9Wy.js.map +0 -1
  662. package/build/server/chunks/chunks/access.server.js-DWQ_RjAR.js +0 -11
  663. package/build/server/chunks/chunks/access.server.js-DWQ_RjAR.js.map +0 -1
  664. package/build/server/chunks/chunks/access2.server.js-CDfD0I_Z.js +0 -62
  665. package/build/server/chunks/chunks/access2.server.js-CDfD0I_Z.js.map +0 -1
  666. package/build/server/chunks/chunks/admin-auth.server.js-I3ZwmT--.js +0 -260
  667. package/build/server/chunks/chunks/admin-auth.server.js-I3ZwmT--.js.map +0 -1
  668. package/build/server/chunks/chunks/api-errors.js-PgRMArJs.js +0 -83
  669. package/build/server/chunks/chunks/api-errors.js-PgRMArJs.js.map +0 -1
  670. package/build/server/chunks/chunks/api.js-DpNtusJO.js +0 -321
  671. package/build/server/chunks/chunks/api.js-DpNtusJO.js.map +0 -1
  672. package/build/server/chunks/chunks/auth-bootstrap.server.js-b-uidXb2.js +0 -152
  673. package/build/server/chunks/chunks/auth-bootstrap.server.js-b-uidXb2.js.map +0 -1
  674. package/build/server/chunks/chunks/bootHealth.server.js-CMs5X7xV.js +0 -90
  675. package/build/server/chunks/chunks/bootHealth.server.js-CMs5X7xV.js.map +0 -1
  676. package/build/server/chunks/chunks/client.js-C5oGW5IM.js +0 -59
  677. package/build/server/chunks/chunks/client.js-C5oGW5IM.js.map +0 -1
  678. package/build/server/chunks/chunks/compute.js-Bd7EeCea.js +0 -430
  679. package/build/server/chunks/chunks/compute.js-Bd7EeCea.js.map +0 -1
  680. package/build/server/chunks/chunks/computeLimits.js-BVTwukee.js +0 -48
  681. package/build/server/chunks/chunks/computeLimits.js-BVTwukee.js.map +0 -1
  682. package/build/server/chunks/chunks/definitions.js-D-3AihSg.js +0 -508
  683. package/build/server/chunks/chunks/definitions.js-D-3AihSg.js.map +0 -1
  684. package/build/server/chunks/chunks/engine.server.js-D7Vc_BtI.js +0 -600
  685. package/build/server/chunks/chunks/engine.server.js-D7Vc_BtI.js.map +0 -1
  686. package/build/server/chunks/chunks/forms.js-BWo0YbwE.js +0 -2
  687. package/build/server/chunks/chunks/forms.js-BWo0YbwE.js.map +0 -1
  688. package/build/server/chunks/chunks/handlers.js-DkhvdAR2.js +0 -1375
  689. package/build/server/chunks/chunks/handlers.js-DkhvdAR2.js.map +0 -1
  690. package/build/server/chunks/chunks/http.js-B-rW3gBY.js +0 -59
  691. package/build/server/chunks/chunks/http.js-B-rW3gBY.js.map +0 -1
  692. package/build/server/chunks/chunks/instanceAdmins.server.js-D6rgeZv6.js +0 -23
  693. package/build/server/chunks/chunks/instanceAdmins.server.js-D6rgeZv6.js.map +0 -1
  694. package/build/server/chunks/chunks/internal2.js-DlZHzqwg.js +0 -224
  695. package/build/server/chunks/chunks/internal2.js-DlZHzqwg.js.map +0 -1
  696. package/build/server/chunks/chunks/limits.js-DLEQ53w_.js +0 -203
  697. package/build/server/chunks/chunks/limits.js-DLEQ53w_.js.map +0 -1
  698. package/build/server/chunks/chunks/liveSolve.server.js-BmHh4T5l.js +0 -70
  699. package/build/server/chunks/chunks/liveSolve.server.js-BmHh4T5l.js.map +0 -1
  700. package/build/server/chunks/chunks/navigation.js-BWo0YbwE.js +0 -2
  701. package/build/server/chunks/chunks/navigation.js-BWo0YbwE.js.map +0 -1
  702. package/build/server/chunks/chunks/package.js-CmzHMoDh.js +0 -83
  703. package/build/server/chunks/chunks/package.js-CmzHMoDh.js.map +0 -1
  704. package/build/server/chunks/chunks/paths.js-BpCH4nAD.js +0 -19
  705. package/build/server/chunks/chunks/paths.js-BpCH4nAD.js.map +0 -1
  706. package/build/server/chunks/chunks/permissions.server.js-Bfaf7eb0.js +0 -24
  707. package/build/server/chunks/chunks/permissions.server.js-Bfaf7eb0.js.map +0 -1
  708. package/build/server/chunks/chunks/projects.js-CbJXljd4.js +0 -47
  709. package/build/server/chunks/chunks/projects.js-CbJXljd4.js.map +0 -1
  710. package/build/server/chunks/chunks/providers.server.js-B7Ntio2w.js +0 -5911
  711. package/build/server/chunks/chunks/providers.server.js-B7Ntio2w.js.map +0 -1
  712. package/build/server/chunks/chunks/request.js-Bg4Iiw0b.js +0 -119
  713. package/build/server/chunks/chunks/request.js-Bg4Iiw0b.js.map +0 -1
  714. package/build/server/chunks/chunks/resolve.server.js-C2MFfMn_.js +0 -59
  715. package/build/server/chunks/chunks/resolve.server.js-C2MFfMn_.js.map +0 -1
  716. package/build/server/chunks/chunks/selfUpdate.server.js-Cp6OTEC1.js +0 -144
  717. package/build/server/chunks/chunks/selfUpdate.server.js-Cp6OTEC1.js.map +0 -1
  718. package/build/server/chunks/chunks/solve.server.js-C6KcZlOH.js +0 -325
  719. package/build/server/chunks/chunks/solve.server.js-C6KcZlOH.js.map +0 -1
  720. package/build/server/chunks/chunks/src.js-Cf1j97Z6.js +0 -386
  721. package/build/server/chunks/chunks/src.js-Cf1j97Z6.js.map +0 -1
  722. package/build/server/chunks/chunks/state.js-BPcWwLsz.js +0 -76
  723. package/build/server/chunks/chunks/state.js-BPcWwLsz.js.map +0 -1
  724. package/build/server/chunks/chunks/stores.js-9Y3_6VyJ.js +0 -35
  725. package/build/server/chunks/chunks/stores.js-9Y3_6VyJ.js.map +0 -1
  726. package/build/server/chunks/chunks/token.server.js-BPIjr3vT.js +0 -133
  727. package/build/server/chunks/chunks/token.server.js-BPIjr3vT.js.map +0 -1
  728. package/build/server/chunks/chunks/user-plus.js-ERIGolCc.js +0 -51
  729. package/build/server/chunks/chunks/user-plus.js-ERIGolCc.js.map +0 -1
  730. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-xJgVx-sT.js +0 -97
  731. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-xJgVx-sT.js.map +0 -1
  732. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-Blj-JfsU.js +0 -84
  733. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-Blj-JfsU.js.map +0 -1
  734. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BLY90ijI.js +0 -95
  735. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BLY90ijI.js.map +0 -1
  736. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Bph1l3QI.js +0 -45
  737. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-Bph1l3QI.js.map +0 -1
  738. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-DIKRAUhJ.js +0 -68
  739. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-DIKRAUhJ.js.map +0 -1
  740. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-ByYW0pG2.js +0 -61
  741. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-ByYW0pG2.js.map +0 -1
  742. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DWs_TS6m.js +0 -33
  743. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DWs_TS6m.js.map +0 -1
  744. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-DXOWa0lV.js +0 -64
  745. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-DXOWa0lV.js.map +0 -1
  746. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BU7FbHy-.js +0 -79
  747. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-BU7FbHy-.js.map +0 -1
  748. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DEVVLPNg.js +0 -333
  749. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-DEVVLPNg.js.map +0 -1
  750. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-COvESB4U.js +0 -84
  751. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-COvESB4U.js.map +0 -1
  752. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-sTBvhWOY.js +0 -606
  753. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-sTBvhWOY.js.map +0 -1
  754. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-D0eqKuwK.js +0 -57
  755. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-D0eqKuwK.js.map +0 -1
  756. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-D6YedItk.js +0 -66
  757. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-D6YedItk.js.map +0 -1
  758. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DE5yfnE2.js +0 -82
  759. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-DE5yfnE2.js.map +0 -1
  760. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-kA16tRrH.js +0 -61
  761. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-kA16tRrH.js.map +0 -1
  762. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-rrpu7r84.js +0 -92
  763. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-rrpu7r84.js.map +0 -1
  764. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-Bks9bpFV.js +0 -58
  765. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-Bks9bpFV.js.map +0 -1
  766. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-CS8CpkWM.js +0 -61
  767. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-CS8CpkWM.js.map +0 -1
  768. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-D4lG9fCK.js +0 -87
  769. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-D4lG9fCK.js.map +0 -1
  770. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-DlKvvjCu.js +0 -62
  771. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-DlKvvjCu.js.map +0 -1
  772. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-B_tQufcV.js +0 -39
  773. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-B_tQufcV.js.map +0 -1
  774. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-mv9C8neT.js +0 -37
  775. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-mv9C8neT.js.map +0 -1
  776. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-DafcYx0F.js +0 -37
  777. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-DafcYx0F.js.map +0 -1
  778. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-Utb4VkQo.js +0 -37
  779. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-Utb4VkQo.js.map +0 -1
  780. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-DLKTdRtu.js +0 -37
  781. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-DLKTdRtu.js.map +0 -1
  782. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CFAW6bAU.js +0 -38
  783. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CFAW6bAU.js.map +0 -1
  784. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DTuHI72x.js +0 -210
  785. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DTuHI72x.js.map +0 -1
  786. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-B-6bmaeJ.js +0 -38
  787. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-B-6bmaeJ.js.map +0 -1
  788. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-DWCpApmO.js +0 -38
  789. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-DWCpApmO.js.map +0 -1
  790. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BcMJM-wL.js +0 -37
  791. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BcMJM-wL.js.map +0 -1
  792. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-DR74IfpX.js +0 -38
  793. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-DR74IfpX.js.map +0 -1
  794. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-51otrvit.js +0 -37
  795. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-51otrvit.js.map +0 -1
  796. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-DrVErGkA.js +0 -38
  797. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-DrVErGkA.js.map +0 -1
  798. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-2Xwl7knE.js +0 -37
  799. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-2Xwl7knE.js.map +0 -1
  800. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-DhRgVmd4.js +0 -38
  801. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-DhRgVmd4.js.map +0 -1
  802. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-DskOO5xZ.js +0 -38
  803. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-DskOO5xZ.js.map +0 -1
  804. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-CGRP8Kf1.js +0 -37
  805. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-CGRP8Kf1.js.map +0 -1
  806. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-DBsQW53b.js +0 -37
  807. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-DBsQW53b.js.map +0 -1
  808. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ChGJSBLE.js +0 -38
  809. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-ChGJSBLE.js.map +0 -1
  810. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-B9qNDvp_.js +0 -37
  811. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-B9qNDvp_.js.map +0 -1
  812. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-fOQmJgiF.js +0 -38
  813. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-fOQmJgiF.js.map +0 -1
  814. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CXqJFo3z.js +0 -39
  815. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-CXqJFo3z.js.map +0 -1
  816. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-Bje2sXaq.js +0 -38
  817. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-Bje2sXaq.js.map +0 -1
  818. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CnANzgi_.js +0 -38
  819. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-CnANzgi_.js.map +0 -1
  820. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-2YgUu6_A.js +0 -37
  821. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-2YgUu6_A.js.map +0 -1
  822. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-C-NFupSF.js +0 -38
  823. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-C-NFupSF.js.map +0 -1
  824. package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-CE8B83nU.js +0 -26
  825. package/build/server/chunks/entries/endpoints/api/v1/solve/_solveId_/cancel/_server.ts.js-CE8B83nU.js.map +0 -1
  826. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-B8RN3lOU.js +0 -87
  827. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_server.ts.js-B8RN3lOU.js.map +0 -1
  828. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-Bx200l-K.js +0 -59
  829. package/build/server/chunks/entries/endpoints/api/v1/solve-events/_solveId_/_server.ts.js-Bx200l-K.js.map +0 -1
  830. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-TOnsY5pj.js +0 -46
  831. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-TOnsY5pj.js.map +0 -1
  832. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-50Huzcyd.js +0 -52
  833. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-50Huzcyd.js.map +0 -1
  834. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-B0dxVBhp.js +0 -63
  835. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-B0dxVBhp.js.map +0 -1
  836. package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-Ds38ZE4x.js +0 -11
  837. package/build/server/chunks/entries/endpoints/docs/api/openapi.yaml/_server.ts.js-Ds38ZE4x.js.map +0 -1
  838. package/build/server/chunks/entries/hooks.server.js-D2tKLl9o.js +0 -336
  839. package/build/server/chunks/entries/hooks.server.js-D2tKLl9o.js.map +0 -1
  840. package/build/server/chunks/entries/pages/_error.svelte.js-B7hxn22-.js +0 -36
  841. package/build/server/chunks/entries/pages/_error.svelte.js-B7hxn22-.js.map +0 -1
  842. package/build/server/chunks/entries/pages/_layout.server.ts.js-B90lG4ZE.js +0 -34
  843. package/build/server/chunks/entries/pages/_layout.server.ts.js-B90lG4ZE.js.map +0 -1
  844. package/build/server/chunks/entries/pages/_page.server.ts.js-Dkr6f2Ru.js +0 -55
  845. package/build/server/chunks/entries/pages/_page.server.ts.js-Dkr6f2Ru.js.map +0 -1
  846. package/build/server/chunks/entries/pages/_page.svelte.js-BmhcekEm.js +0 -155
  847. package/build/server/chunks/entries/pages/_page.svelte.js-BmhcekEm.js.map +0 -1
  848. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BuY1D4az.js +0 -181
  849. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BuY1D4az.js.map +0 -1
  850. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-k_426QNE.js +0 -176
  851. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-k_426QNE.js.map +0 -1
  852. package/build/server/chunks/entries/pages/admin/_error.svelte.js-Bjpej6cQ.js +0 -37
  853. package/build/server/chunks/entries/pages/admin/_error.svelte.js-Bjpej6cQ.js.map +0 -1
  854. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-E3yJ1Uva.js +0 -31
  855. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-E3yJ1Uva.js.map +0 -1
  856. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-CZU294EL.js +0 -122
  857. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-CZU294EL.js.map +0 -1
  858. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DPvM4gZV.js +0 -76
  859. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DPvM4gZV.js.map +0 -1
  860. package/build/server/chunks/entries/pages/admin/_page.svelte.js-BTQxv2Ya.js +0 -393
  861. package/build/server/chunks/entries/pages/admin/_page.svelte.js-BTQxv2Ya.js.map +0 -1
  862. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-kx5NQc77.js +0 -265
  863. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-kx5NQc77.js.map +0 -1
  864. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-DDQ3JAFT.js +0 -453
  865. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-DDQ3JAFT.js.map +0 -1
  866. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DXt6Wr4N.js +0 -74
  867. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-DXt6Wr4N.js.map +0 -1
  868. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-BoPpeOjZ.js +0 -839
  869. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-BoPpeOjZ.js.map +0 -1
  870. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-CX-yuso2.js +0 -35
  871. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-CX-yuso2.js.map +0 -1
  872. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CaWLWz1L.js +0 -86
  873. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-CaWLWz1L.js.map +0 -1
  874. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-O9Yg0W5L.js +0 -636
  875. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-O9Yg0W5L.js.map +0 -1
  876. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-W5VkNjlD.js +0 -42
  877. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-W5VkNjlD.js.map +0 -1
  878. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-BelQ2ZJr.js +0 -283
  879. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-BelQ2ZJr.js.map +0 -1
  880. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-CFYmjNVL.js +0 -87
  881. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-CFYmjNVL.js.map +0 -1
  882. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-DEYmrHdp.js +0 -1368
  883. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-DEYmrHdp.js.map +0 -1
  884. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-B8BxJVee.js +0 -79
  885. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-B8BxJVee.js.map +0 -1
  886. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-COy0Odyl.js +0 -622
  887. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-COy0Odyl.js.map +0 -1
  888. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BS4U191v.js +0 -63
  889. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-BS4U191v.js.map +0 -1
  890. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-B2jtO81k.js +0 -62
  891. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-B2jtO81k.js.map +0 -1
  892. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-Do4XTlr2.js +0 -575
  893. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-Do4XTlr2.js.map +0 -1
  894. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-_lV-D2-p.js +0 -85
  895. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-_lV-D2-p.js.map +0 -1
  896. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-D5FGh5qE.js +0 -120
  897. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-D5FGh5qE.js.map +0 -1
  898. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-ZuOsDjlS.js +0 -15116
  899. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-ZuOsDjlS.js.map +0 -1
  900. package/build/server/chunks/entries/pages/library/_page.server.ts.js-x96yuWmx.js +0 -50
  901. package/build/server/chunks/entries/pages/library/_page.server.ts.js-x96yuWmx.js.map +0 -1
  902. package/build/server/chunks/entries/pages/library/_page.svelte.js-BrAQ3KOq.js +0 -301
  903. package/build/server/chunks/entries/pages/library/_page.svelte.js-BrAQ3KOq.js.map +0 -1
  904. package/build/server/chunks/entries/pages/login/_page.server.ts.js-JrDXIWgn.js +0 -101
  905. package/build/server/chunks/entries/pages/login/_page.server.ts.js-JrDXIWgn.js.map +0 -1
  906. package/build/server/chunks/entries/pages/login/_page.svelte.js-C9f2aefs.js +0 -256
  907. package/build/server/chunks/entries/pages/login/_page.svelte.js-C9f2aefs.js.map +0 -1
  908. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-D1N_SDZp.js +0 -19
  909. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-D1N_SDZp.js.map +0 -1
  910. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CQ7Zw4PJ.js +0 -22
  911. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CQ7Zw4PJ.js.map +0 -1
  912. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-lQxHQYSy.js +0 -49
  913. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-lQxHQYSy.js.map +0 -1
  914. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BdHvUPlp.js +0 -93
  915. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BdHvUPlp.js.map +0 -1
  916. package/build/server/chunks/entries/pages/projects/_page.svelte.js-BI0t_rS6.js +0 -3740
  917. package/build/server/chunks/entries/pages/projects/_page.svelte.js-BI0t_rS6.js.map +0 -1
  918. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-D-ipeYTA.js +0 -116
  919. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-D-ipeYTA.js.map +0 -1
  920. package/build/server/chunks/entries/pages/setup/_page.svelte.js-y0in15gJ.js +0 -312
  921. package/build/server/chunks/entries/pages/setup/_page.svelte.js-y0in15gJ.js.map +0 -1
  922. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-CNZHV9QX.js +0 -28
  923. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-CNZHV9QX.js.map +0 -1
  924. package/build/server/chunks/entries/pages/team/_layout.svelte.js-VpwKRTvJ.js +0 -166
  925. package/build/server/chunks/entries/pages/team/_layout.svelte.js-VpwKRTvJ.js.map +0 -1
  926. package/build/server/chunks/entries/pages/team/_page.server.ts.js-DA5WsrNU.js +0 -35
  927. package/build/server/chunks/entries/pages/team/_page.server.ts.js-DA5WsrNU.js.map +0 -1
  928. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CSICVcva.js +0 -42
  929. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-CSICVcva.js.map +0 -1
  930. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-BNs9ZHLG.js +0 -611
  931. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-BNs9ZHLG.js.map +0 -1
  932. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-jKTN2IhB.js +0 -62
  933. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-jKTN2IhB.js.map +0 -1
  934. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-B3Myzz8X.js +0 -804
  935. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-B3Myzz8X.js.map +0 -1
  936. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-C49ex96N.js +0 -58
  937. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-C49ex96N.js.map +0 -1
  938. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-WUsEs8Pk.js +0 -422
  939. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-WUsEs8Pk.js.map +0 -1
  940. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-frmH0QkI.js +0 -67
  941. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-frmH0QkI.js.map +0 -1
  942. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-C0SjQYyU.js +0 -265
  943. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-C0SjQYyU.js.map +0 -1
  944. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DfzUOG6V.js +0 -34
  945. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-DfzUOG6V.js.map +0 -1
  946. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BdT0aClC.js +0 -29
  947. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-BdT0aClC.js.map +0 -1
  948. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-D8T-FRSk.js +0 -311
  949. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-D8T-FRSk.js.map +0 -1
  950. package/build/server/chunks/handler-BelKtFig.js +0 -1206
  951. package/build/server/chunks/handler-BelKtFig.js.map +0 -1
  952. package/build/server/chunks/index.js-MRViGE2S.js +0 -3767
  953. package/build/server/chunks/index.js-MRViGE2S.js.map +0 -1
  954. package/build/server/chunks/manifest.js-np-KZV4i.js +0 -633
  955. package/build/server/chunks/manifest.js-np-KZV4i.js.map +0 -1
  956. package/build/server/chunks/nodes/0.js-ClHCsvkG.js +0 -26
  957. package/build/server/chunks/nodes/0.js-ClHCsvkG.js.map +0 -1
  958. package/build/server/chunks/nodes/1.js-BT6jh1P0.js +0 -9
  959. package/build/server/chunks/nodes/1.js-BT6jh1P0.js.map +0 -1
  960. package/build/server/chunks/nodes/10.js-CYAS8FAY.js +0 -29
  961. package/build/server/chunks/nodes/10.js-CYAS8FAY.js.map +0 -1
  962. package/build/server/chunks/nodes/11.js-KGvvAhQB.js +0 -35
  963. package/build/server/chunks/nodes/11.js-KGvvAhQB.js.map +0 -1
  964. package/build/server/chunks/nodes/12.js-CxmEAnu1.js +0 -27
  965. package/build/server/chunks/nodes/12.js-CxmEAnu1.js.map +0 -1
  966. package/build/server/chunks/nodes/13.js-BpUdP48m.js +0 -27
  967. package/build/server/chunks/nodes/13.js-BpUdP48m.js.map +0 -1
  968. package/build/server/chunks/nodes/14.js-BaaVZPEM.js +0 -27
  969. package/build/server/chunks/nodes/14.js-BaaVZPEM.js.map +0 -1
  970. package/build/server/chunks/nodes/15.js-C1l15drv.js +0 -36
  971. package/build/server/chunks/nodes/15.js-C1l15drv.js.map +0 -1
  972. package/build/server/chunks/nodes/16.js-D184He7F.js +0 -29
  973. package/build/server/chunks/nodes/16.js-D184He7F.js.map +0 -1
  974. package/build/server/chunks/nodes/17.js-C9HlURst.js +0 -9
  975. package/build/server/chunks/nodes/17.js-C9HlURst.js.map +0 -1
  976. package/build/server/chunks/nodes/18.js-CTsZC7I-.js +0 -29
  977. package/build/server/chunks/nodes/18.js-CTsZC7I-.js.map +0 -1
  978. package/build/server/chunks/nodes/19.js-BHIqrKQA.js +0 -23
  979. package/build/server/chunks/nodes/19.js-BHIqrKQA.js.map +0 -1
  980. package/build/server/chunks/nodes/2.js-CEbNXRmr.js +0 -29
  981. package/build/server/chunks/nodes/2.js-CEbNXRmr.js.map +0 -1
  982. package/build/server/chunks/nodes/20.js-ErsFxjkI.js +0 -20
  983. package/build/server/chunks/nodes/20.js-ErsFxjkI.js.map +0 -1
  984. package/build/server/chunks/nodes/21.js-CSlWwtkb.js +0 -39
  985. package/build/server/chunks/nodes/21.js-CSlWwtkb.js.map +0 -1
  986. package/build/server/chunks/nodes/22.js-141zL4OX.js +0 -29
  987. package/build/server/chunks/nodes/22.js-141zL4OX.js.map +0 -1
  988. package/build/server/chunks/nodes/23.js-CIFJd_0n.js +0 -26
  989. package/build/server/chunks/nodes/23.js-CIFJd_0n.js.map +0 -1
  990. package/build/server/chunks/nodes/24.js-CDVavGDD.js +0 -28
  991. package/build/server/chunks/nodes/24.js-CDVavGDD.js.map +0 -1
  992. package/build/server/chunks/nodes/25.js-BacKMpgi.js +0 -29
  993. package/build/server/chunks/nodes/25.js-BacKMpgi.js.map +0 -1
  994. package/build/server/chunks/nodes/26.js-BQYtKZXd.js +0 -27
  995. package/build/server/chunks/nodes/26.js-BQYtKZXd.js.map +0 -1
  996. package/build/server/chunks/nodes/27.js-BXd7gGxV.js +0 -9
  997. package/build/server/chunks/nodes/27.js-BXd7gGxV.js.map +0 -1
  998. package/build/server/chunks/nodes/28.js-CaIud0ST.js +0 -27
  999. package/build/server/chunks/nodes/28.js-CaIud0ST.js.map +0 -1
  1000. package/build/server/chunks/nodes/29.js-CQ8tpgJd.js +0 -27
  1001. package/build/server/chunks/nodes/29.js-CQ8tpgJd.js.map +0 -1
  1002. package/build/server/chunks/nodes/3.js-CTb9h4cA.js +0 -9
  1003. package/build/server/chunks/nodes/3.js-CTb9h4cA.js.map +0 -1
  1004. package/build/server/chunks/nodes/30.js-B2hZOsfE.js +0 -28
  1005. package/build/server/chunks/nodes/30.js-B2hZOsfE.js.map +0 -1
  1006. package/build/server/chunks/nodes/31.js-BiF8fvby.js +0 -27
  1007. package/build/server/chunks/nodes/31.js-BiF8fvby.js.map +0 -1
  1008. package/build/server/chunks/nodes/32.js-C7UbKKfd.js +0 -27
  1009. package/build/server/chunks/nodes/32.js-C7UbKKfd.js.map +0 -1
  1010. package/build/server/chunks/nodes/33.js-CYbbJRW9.js +0 -27
  1011. package/build/server/chunks/nodes/33.js-CYbbJRW9.js.map +0 -1
  1012. package/build/server/chunks/nodes/5.js-DwlxdT_9.js +0 -15
  1013. package/build/server/chunks/nodes/5.js-DwlxdT_9.js.map +0 -1
  1014. package/build/server/chunks/nodes/6.js-Bm2l3EHb.js +0 -27
  1015. package/build/server/chunks/nodes/6.js-Bm2l3EHb.js.map +0 -1
  1016. package/build/server/chunks/nodes/7.js-D7NvfzJX.js +0 -20
  1017. package/build/server/chunks/nodes/7.js-D7NvfzJX.js.map +0 -1
  1018. package/build/server/chunks/nodes/8.js-BZ2gfuEP.js +0 -31
  1019. package/build/server/chunks/nodes/8.js-BZ2gfuEP.js.map +0 -1
  1020. package/build/server/chunks/nodes/9.js-wxx3thJn.js +0 -27
  1021. package/build/server/chunks/nodes/9.js-wxx3thJn.js.map +0 -1
  1022. /package/build/client/_app/immutable/assets/{21._Lx8kfnW.css → 22._Lx8kfnW.css} +0 -0
  1023. /package/build/client/_app/immutable/assets/{21._Lx8kfnW.css.br → 22._Lx8kfnW.css.br} +0 -0
  1024. /package/build/client/_app/immutable/assets/{21._Lx8kfnW.css.gz → 22._Lx8kfnW.css.gz} +0 -0
  1025. /package/build/client/_app/immutable/nodes/{0.BtPdsRZ6.js → 0.DefUESID.js} +0 -0
  1026. /package/build/client/_app/immutable/nodes/{0.BtPdsRZ6.js.br → 0.DefUESID.js.br} +0 -0
  1027. /package/build/client/_app/immutable/nodes/{0.BtPdsRZ6.js.gz → 0.DefUESID.js.gz} +0 -0
  1028. /package/build/client/_app/immutable/nodes/{18.CxvBVu6V.js → 19.CxvBVu6V.js} +0 -0
  1029. /package/build/client/_app/immutable/nodes/{18.CxvBVu6V.js.br → 19.CxvBVu6V.js.br} +0 -0
  1030. /package/build/client/_app/immutable/nodes/{18.CxvBVu6V.js.gz → 19.CxvBVu6V.js.gz} +0 -0
  1031. /package/build/client/_app/immutable/nodes/{26.Ci7KaSCs.js → 27.Ci7KaSCs.js} +0 -0
  1032. /package/build/client/_app/immutable/nodes/{26.Ci7KaSCs.js.br → 27.Ci7KaSCs.js.br} +0 -0
  1033. /package/build/client/_app/immutable/nodes/{26.Ci7KaSCs.js.gz → 27.Ci7KaSCs.js.gz} +0 -0
  1034. /package/build/client/_app/immutable/nodes/{27.BzDwn4U7.js → 28.BzDwn4U7.js} +0 -0
  1035. /package/build/client/_app/immutable/nodes/{27.BzDwn4U7.js.br → 28.BzDwn4U7.js.br} +0 -0
  1036. /package/build/client/_app/immutable/nodes/{27.BzDwn4U7.js.gz → 28.BzDwn4U7.js.gz} +0 -0
  1037. /package/build/client/_app/immutable/nodes/{32.DsgjNqd0.js → 33.DsgjNqd0.js} +0 -0
  1038. /package/build/client/_app/immutable/nodes/{32.DsgjNqd0.js.br → 33.DsgjNqd0.js.br} +0 -0
  1039. /package/build/client/_app/immutable/nodes/{32.DsgjNqd0.js.gz → 33.DsgjNqd0.js.gz} +0 -0
@@ -0,0 +1,1513 @@
1
+ import { o as toDefinitionListItem, p as CreateDefinitionInputSchema, q as GH_EXTENSIONS, r as UpdateMetadataInputSchema, G as GuidSchema, u as PublishVersionInputSchema, v as CreateShareLinkInputSchema, w as OrgAssetKindSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS, a as ALL_ORG_PERMISSIONS, x as parseApiScope, y as describeApiScope, h as hasPermission, z as validateProjectFlags, S as SYSTEM_CONTEXT, k as slugify } from './src.js-DubgTP8X.js';
2
+ import { k as getBranding, v as getNotificationProvider, y as getOrgAssetService, z as getDefinitionService } from './providers.server.js-ChZPXW9c.js';
3
+ import { l as listVisibleDefinitions, d as resolveAccessibleProjects, g as getVisibleDefinition, f as loadVisibleVersion } from './definitions.js-BE-Zf2cL.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-CXt-o5p8.js';
6
+ import { e as ApiError, g as codeForStatus, b as apiError, A as ApiErrorCode, y as requireCanCreateDefinition, f as fetchSchemaFromCompute, C as requireEditableDefinition, D as requireActingOrg, E as requireManageOrgMembers, F as requireManageOrgCompute, G as splitFlatPermissions, u as assertCanGrantPlatformPermissions, H as canActorChangeOrgRole, I as canChangeOrgRole, a as actorOf, k as requirePermission, v as requireCanViewProject, d as isApiError, J as requireCanCreateProject, p as projectAccessInputFromRowsWith, c as canView, K as canSolve, n as canEdit, L as requireCanEditProjectSettings, M as withAdminBypass, O as requireCanManage, P as requireTargetIsOrgMember, Q as checkOwnerRemoval, R as requireCanReclaim, T as canChangeVisibilityToPublic } from './access.js-DVAGPd2H.js';
7
+ import { r as runHandler, g as depsFromConfig, m as mapCoreError, p as parseDefinitionListOptions, h as parseListOptions, i as ShareLinkResponseSchema, j as CreatedShareLinkResponseSchema, k as OrgComputeResponseSchema, O as OrgComputePatchBodySchema, I as InviteResponseSchema, d as CreateInviteBodySchema, l as CreatedInviteResponseSchema, c as UpdateOrgMemberBodySchema, n as ApiTokenResponseSchema, e as CreateApiTokenBodySchema, o as CreatedApiTokenResponseSchema, s as scopeRefusalsToday, a as CreateProjectBodySchema, U as UpdateProjectBodySchema, A as AddProjectMemberBodySchema, b as UpdateProjectMemberBodySchema } from './api.js-Cv6E39MW.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-Ddxldk4i.js';
9
+ import { r as resolveServerForOrg, v as validateIncomingServers, s as storedKeysById, a as resolveApiKey } from './compute.js-HEQmvD6j.js';
10
+ import { e as evictChangedServers } from './evict-changed-servers.js-whgDVM5R.js';
11
+ import { e as evictComputeClient } from './engine.server.js-6pae8L27.js';
12
+ import { M as MAX_IMAGE_FILE_SIZE, g as MAX_DEFINITION_FILE_SIZE } from './computeLimits.js-CprilDAO.js';
13
+ import { c as createProjectWithUniqueSlug } from './projects.js-CnnSUENv.js';
14
+ import { s as shareLinkCodec } from './token2.server.js-dXKS8zg3.js';
15
+ import { i as inviteCodec } from './token3.server.js-D3PjQp9U.js';
16
+ import { a as apiTokenCodec } from './token4.server.js-DOLrxUoz.js';
17
+ import { isHttpError } from '@sveltejs/kit';
18
+ import { randomUUID } from 'node:crypto';
19
+
20
+ //#region ../server/src/api/responses.ts
21
+ /** A paginated collection. The one envelope every list endpoint returns. */
22
+ function collection(page) {
23
+ return { body: {
24
+ items: page.items,
25
+ nextCursor: page.nextCursor
26
+ } };
27
+ }
28
+ /** A created resource. */
29
+ function created(body) {
30
+ return {
31
+ status: 201,
32
+ body
33
+ };
34
+ }
35
+ /** A successful mutation with nothing to say. */
36
+ function noContent() {
37
+ return { status: 204 };
38
+ }
39
+ //#endregion
40
+ //#region ../server/src/api/shaped.ts
41
+ /** Serialize a payload through an explicit response schema. */
42
+ function shaped(schema, payload, status = 200) {
43
+ return {
44
+ status,
45
+ body: schema.parse(payload)
46
+ };
47
+ }
48
+ /** `shaped`, mapped over a page of records. */
49
+ function shapedCollection(schema, page) {
50
+ return { body: {
51
+ items: page.items.map((item) => schema.parse(item)),
52
+ nextCursor: page.nextCursor
53
+ } };
54
+ }
55
+ //#endregion
56
+ //#region ../notifications/src/html.ts
57
+ /**
58
+ * Escape text for interpolation into an HTML attribute or text node.
59
+ *
60
+ * One copy on purpose: per-template copies are how one of them ends up missing
61
+ * a case. Every value a template interpolates goes through this, including
62
+ * URLs — an `acceptUrl` carries a token, and a token can contain characters
63
+ * that would otherwise close the `href` early.
64
+ */
65
+ function escapeHtml(s) {
66
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
67
+ }
68
+ //#endregion
69
+ //#region ../notifications/src/layout.ts
70
+ /**
71
+ * The frame every Selva mail shares: card chrome, type stack, colours.
72
+ * Templates supply a body; this supplies the look, so mail written by
73
+ * different people at different times still reads as coming from one product.
74
+ *
75
+ * Deliberately plain — no images, no tracking pixel, no external stylesheet.
76
+ * Inline styles with a table-free layout survive the common clients, and mail
77
+ * clients that strip the styling still get readable, ordered content.
78
+ */
79
+ function renderLayout({ heading, body, footer }) {
80
+ return `<!doctype html>
81
+ <html>
82
+ <body style="margin:0;padding:24px;background:#f6f7f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#1a1a1a;">
83
+ <div style="max-width:480px;margin:0 auto;background:#ffffff;border:1px solid #e4e6eb;border-radius:12px;padding:32px;">
84
+ <h1 style="margin:0 0 16px;font-size:20px;font-weight:600;">${escapeHtml(heading)}</h1>
85
+ ${body}${footer ? `
86
+ <hr style="border:none;border-top:1px solid #e4e6eb;margin:24px 0;" />
87
+ <p style="margin:0;font-size:12px;line-height:1.5;color:#8a8a8a;">
88
+ ${footer}
89
+ </p>` : ""}
90
+ </div>
91
+ </body>
92
+ </html>`;
93
+ }
94
+ /** The primary action button. One definition so every mail's call to action matches. */
95
+ function renderButton(href, label) {
96
+ 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>`;
97
+ }
98
+ /**
99
+ * Fallback for clients that do not make the button clickable. Every mail whose
100
+ * point is a link needs this: a button that does not render leaves the reader
101
+ * with no way to continue.
102
+ */
103
+ function renderUrlFallback(href) {
104
+ return `<p style="margin:24px 0 0;font-size:13px;line-height:1.5;color:#6b6b6b;">
105
+ Or paste this into your browser:<br />
106
+ <span style="word-break:break-all;color:#4a4a4a;">${escapeHtml(href)}</span>
107
+ </p>`;
108
+ }
109
+ //#endregion
110
+ //#region ../notifications/src/templates/invite.ts
111
+ function formatExpiry(iso) {
112
+ const d = new Date(iso);
113
+ return Number.isNaN(d.getTime()) ? "soon" : d.toLocaleDateString("en-US", {
114
+ year: "numeric",
115
+ month: "long",
116
+ day: "numeric"
117
+ });
118
+ }
119
+ /**
120
+ * "An admin invited you to an org" — the mail carrying an invite's accept link.
121
+ *
122
+ * The text part must always carry the URL: a mail that degrades to plain text
123
+ * is still the only way the invitee can accept.
124
+ */
125
+ function renderInviteEmail(input) {
126
+ const { to, acceptUrl, orgName, invitedBy } = input;
127
+ const expiry = formatExpiry(input.expiresAt);
128
+ const inviter = invitedBy ? `${invitedBy} invited you` : "You have been invited";
129
+ return {
130
+ kind: "org.invite",
131
+ to,
132
+ subject: `${inviter} to join ${orgName} on Selva`,
133
+ text: [
134
+ `${inviter} to join ${orgName} on Selva.`,
135
+ "",
136
+ "Open this link to accept and set up your account:",
137
+ acceptUrl,
138
+ "",
139
+ `The link expires on ${expiry} and can only be used once.`,
140
+ "",
141
+ "If you weren't expecting this invitation, you can ignore this email."
142
+ ].join("\n"),
143
+ html: renderLayout({
144
+ heading: `Join ${orgName} on Selva`,
145
+ body: ` <p style="margin:0 0 24px;font-size:15px;line-height:1.5;color:#4a4a4a;">
146
+ ${escapeHtml(inviter)} to join <strong>${escapeHtml(orgName)}</strong>. Open the link below to accept and set up your account.
147
+ </p>
148
+ ${renderButton(acceptUrl, "Accept invitation")}
149
+ ${renderUrlFallback(acceptUrl)}`,
150
+ footer: `This link expires on ${escapeHtml(expiry)} and can only be used once.
151
+ If you weren't expecting this invitation, you can ignore this email.`
152
+ })
153
+ };
154
+ }
155
+ //#endregion
156
+ //#region ../notifications/src/templates/api-token.ts
157
+ function formatDate(iso) {
158
+ const d = new Date(iso);
159
+ return Number.isNaN(d.getTime()) ? iso : d.toLocaleDateString("en-US", {
160
+ year: "numeric",
161
+ month: "long",
162
+ day: "numeric"
163
+ });
164
+ }
165
+ /**
166
+ * "A new API token was created on your account". The point is the case where
167
+ * the owner didn't create it, so the revoke link leads.
168
+ */
169
+ function renderApiTokenCreatedEmail(input) {
170
+ const { to, tokenName, orgName, scopes, manageUrl } = input;
171
+ const expiry = formatDate(input.expiresAt);
172
+ return {
173
+ kind: "api_token.created",
174
+ to,
175
+ subject: `New API token "${tokenName}" in ${orgName}`,
176
+ text: [
177
+ `A new API token named "${tokenName}" was created on your Selva account in ${orgName}.`,
178
+ "",
179
+ "It can:",
180
+ ...scopes.map((s) => `- ${s}`),
181
+ "",
182
+ `It expires on ${expiry}.`,
183
+ "",
184
+ "If you didn't create it, revoke it now:",
185
+ manageUrl
186
+ ].join("\n"),
187
+ html: renderLayout({
188
+ heading: "New API token",
189
+ body: ` <p style="margin:0 0 16px;font-size:15px;line-height:1.5;color:#4a4a4a;">
190
+ A new API token named <strong>${escapeHtml(tokenName)}</strong> was created on your account in <strong>${escapeHtml(orgName)}</strong>. It can:
191
+ </p>
192
+ <ul style="margin:0 0 24px;padding-left:20px;font-size:15px;line-height:1.5;color:#4a4a4a;">
193
+ ${scopes.map((s) => `<li>${escapeHtml(s)}</li>`).join("")}
194
+ </ul>
195
+ ${renderButton(manageUrl, "Review your tokens")}
196
+ ${renderUrlFallback(manageUrl)}`,
197
+ footer: `It expires on ${escapeHtml(expiry)}. If you didn't create it, revoke it from the page above.`
198
+ })
199
+ };
200
+ }
201
+ //#endregion
202
+ //#region ../server/src/notifications/deliver-invite.ts
203
+ /**
204
+ * Mail an invite's accept link, best-effort.
205
+ *
206
+ * Shared by the mint and resend routes so they cannot disagree about what the
207
+ * invitee receives. Swallows every failure: the invite row is already
208
+ * committed and the caller still holds `acceptUrl` to share by hand, so a dead
209
+ * SMTP host must not report a valid invite as a failure.
210
+ */
211
+ async function deliverInvite(input) {
212
+ const { ctx, log, invite, acceptUrl, actor, orgs, notifications, fallbackOrgName } = input;
213
+ try {
214
+ const org = await orgs.getOrg(ctx, invite.orgId);
215
+ const { status } = await notifications.send(renderInviteEmail({
216
+ to: invite.email,
217
+ acceptUrl,
218
+ orgName: org?.name ?? fallbackOrgName,
219
+ invitedBy: actor.profile?.displayName || actor.user?.email,
220
+ expiresAt: invite.expiresAt
221
+ }), log);
222
+ return status;
223
+ } catch (err) {
224
+ log.warn("Invite mail could not be prepared", {
225
+ component: "Invites",
226
+ inviteId: invite.id,
227
+ reason: err instanceof Error ? err.message : String(err)
228
+ });
229
+ return "failed";
230
+ }
231
+ }
232
+ //#endregion
233
+ //#region src/lib/server/api/sveltekit.ts
234
+ /**
235
+ * The SvelteKit binding for the transport-free handlers in `@selvajs/server/api`.
236
+ *
237
+ * The only file in the app that knows both worlds: it turns a `RequestEvent`
238
+ * into an `ApiRequest` and folds this app's domain errors into the shared
239
+ * envelope. A handler mounted through here names no framework, so the same
240
+ * handler runs under Next or Hono behind a sibling adapter roughly this size.
241
+ */
242
+ /**
243
+ * This app's own errors, folded into the shared envelope.
244
+ *
245
+ * SvelteKit's `HttpError` is the only one left here — everything else the v1
246
+ * handlers throw ships from `@selvajs/server`, so `mapCoreError` owns those
247
+ * rules and a second host gets the same statuses without copying them.
248
+ */
249
+ function mapAppError(err) {
250
+ if (isHttpError(err)) {
251
+ const body = err.body;
252
+ if (typeof body === "string") return new ApiError(err.status, codeForStatus(err.status), body);
253
+ return new ApiError(err.status, body?.code ?? codeForStatus(err.status), body?.message ?? "Request failed", body?.fields, body?.details);
254
+ }
255
+ return mapCoreError(err);
256
+ }
257
+ function buildDeps(event) {
258
+ return depsFromConfig(event.locals.providers, {
259
+ definitions: getDefinitionService(),
260
+ orgAssets: getOrgAssetService()
261
+ }, {
262
+ tokens: {
263
+ shareLinks: shareLinkCodec(),
264
+ invites: inviteCodec(),
265
+ apiTokens: apiTokenCodec()
266
+ },
267
+ uploadLimits: {
268
+ maxDefinitionFileSize: MAX_DEFINITION_FILE_SIZE,
269
+ maxImageFileSize: MAX_IMAGE_FILE_SIZE
270
+ },
271
+ evictComputeClient,
272
+ notifications: getNotificationProvider(),
273
+ instanceName: getBranding().name
274
+ });
275
+ }
276
+ function toApiRequest(event) {
277
+ return {
278
+ ctx: event.locals.ctx,
279
+ user: event.locals.user,
280
+ profile: event.locals.profile,
281
+ log: event.locals.log,
282
+ params: event.params,
283
+ url: event.url,
284
+ request: event.request,
285
+ deps: buildDeps(event)
286
+ };
287
+ }
288
+ /**
289
+ * Mount a transport-free handler as a SvelteKit `RequestHandler`.
290
+ *
291
+ * Routes addressed by a project or definition pass `scopeTarget`, so a key
292
+ * scoped to that project or definition can reach them; solve routes pass
293
+ * `action: 'solve'`.
294
+ */
295
+ function mount(fallback, handler, opts = {}) {
296
+ return (event) => runHandler(handler, toApiRequest(event), {
297
+ fallback,
298
+ mapError: mapAppError,
299
+ ...opts
300
+ });
301
+ }
302
+ //#endregion
303
+ //#region ../server/src/handlers/services.ts
304
+ function definitionService(deps) {
305
+ const service = deps.services.definitions;
306
+ if (!service) throw new Error("SelvaDeps.services.definitions is not wired — mount requires it.");
307
+ return service;
308
+ }
309
+ function orgAssetService(deps) {
310
+ const service = deps.services.orgAssets;
311
+ if (!service) throw new Error("SelvaDeps.services.orgAssets is not wired — mount requires it.");
312
+ return service;
313
+ }
314
+ /**
315
+ * A token codec, or a named failure.
316
+ *
317
+ * Minting through an absent codec is the one failure mode worth being loud
318
+ * about: a handler that quietly skipped hashing would persist a row whose token
319
+ * can never be verified, and nothing downstream would report it.
320
+ */
321
+ function tokenCodec(deps, family) {
322
+ const codec = deps.tokens[family];
323
+ if (!codec) throw new Error(`SelvaDeps.tokens.${family} is not wired — mount requires it.`);
324
+ return codec;
325
+ }
326
+ //#endregion
327
+ //#region ../server/src/handlers/me.ts
328
+ /**
329
+ * Whoami. The first call a non-browser client makes, and the only way a token
330
+ * holder can see which org their credential resolved into — `actingOrgId` is
331
+ * derived per request from the caller's membership, not frozen at mint time.
332
+ */
333
+ var getMe = async (req) => {
334
+ const { ctx, user } = requireCaller(req);
335
+ return { body: {
336
+ userId: user.id,
337
+ email: user.email,
338
+ displayName: req.profile?.displayName,
339
+ actingOrgId: ctx.actingOrgId,
340
+ platformPermissions: ctx.platformPermissions,
341
+ orgPermissions: ctx.orgPermissions,
342
+ starredDefinitions: req.profile?.starredDefinitions ?? []
343
+ } };
344
+ };
345
+ //#endregion
346
+ //#region ../server/src/handlers/me.starred.ts
347
+ /**
348
+ * Starring a definition for the calling user. Both directions are idempotent.
349
+ *
350
+ * No visibility check: a star is a row on the caller's own profile, keyed by
351
+ * guid, and reveals nothing about whether that guid exists. The read paths that
352
+ * expand stars into definitions filter by visibility there.
353
+ */
354
+ var starDefinition = async (req) => {
355
+ const { ctx, user } = requireCaller(req);
356
+ const { guid } = requireParams(req.params, "guid");
357
+ await req.deps.userProfile.starDefinition(ctx, user.id, guid);
358
+ return noContent();
359
+ };
360
+ var unstarDefinition = async (req) => {
361
+ const { ctx, user } = requireCaller(req);
362
+ const { guid } = requireParams(req.params, "guid");
363
+ await req.deps.userProfile.unstarDefinition(ctx, user.id, guid);
364
+ return noContent();
365
+ };
366
+ //#endregion
367
+ //#region ../server/src/handlers/orgs.ts
368
+ /**
369
+ * The acting org's record and roster.
370
+ *
371
+ * `requireActingOrg` is the tenancy gate on both: the URL `orgId` must equal
372
+ * `ctx.actingOrgId`, so the URL alone never decides which tenant is read.
373
+ */
374
+ /** The acting org's record — name, slug, and branding asset URLs. */
375
+ var getOrg = async (req) => {
376
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
377
+ const org = await req.deps.orgs.getOrg(ctx, orgId);
378
+ if (!org) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
379
+ return { body: org };
380
+ };
381
+ /**
382
+ * List the org's members. Any member of the acting org may read this — the
383
+ * roster is what the team page renders, and `requireActingOrg` already confines
384
+ * the read to the caller's own tenant.
385
+ */
386
+ var listOrgMembers = async (req) => {
387
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
388
+ return collection(await req.deps.orgs.listOrgMembers(ctx, orgId, parseListOptions(req.url)));
389
+ };
390
+ //#endregion
391
+ //#region ../server/src/handlers/orgMembers.ts
392
+ /**
393
+ * Org member role, permissions, and removal.
394
+ *
395
+ * Two gates run on every request: `requireManageOrgMembers` (owner+admin) and
396
+ * `requireActingOrg` (the URL `orgId` must equal `ctx.actingOrgId`, so
397
+ * cross-org member mutation is blocked even for an actor with permissions in
398
+ * another org).
399
+ *
400
+ * The sole-owner invariant applies to demotion and removal alike — an org with
401
+ * no owner is unadministrable, and removing an owner ends their role exactly as
402
+ * demoting them does.
403
+ */
404
+ var ROSTER_PAGE_LIMIT = 200;
405
+ var MAX_ROSTER_PAGES = 100;
406
+ /**
407
+ * Whether anyone other than `exceptUserId` still owns the org.
408
+ *
409
+ * Both branches below need this and both used to scan the roster themselves —
410
+ * the sole-owner invariant is one rule, so it reads from one place.
411
+ *
412
+ * Pages rather than reading one 200-row window: a second owner sitting past the
413
+ * first page read as "no other owner", so the invariant refused a demotion or
414
+ * removal that was in fact safe. That failed closed, but it made the org
415
+ * unadministrable exactly when it had grown enough to need administering.
416
+ * Returns on the first owner found, so the common case is still one round-trip.
417
+ */
418
+ async function hasAnotherOwner(req, ctx, orgId, exceptUserId) {
419
+ let cursor;
420
+ for (let page = 0; page < MAX_ROSTER_PAGES; page++) {
421
+ const result = await req.deps.orgs.listOrgMembers(ctx, orgId, {
422
+ limit: ROSTER_PAGE_LIMIT,
423
+ cursor
424
+ });
425
+ if (result.items.some((m) => m.role === "owner" && m.userId !== exceptUserId && !m.deletedAt)) return true;
426
+ cursor = result.nextCursor;
427
+ if (!cursor) return false;
428
+ }
429
+ req.log.warn("hasAnotherOwner hit the page cap — treating as sole owner", {
430
+ orgId,
431
+ pages: MAX_ROSTER_PAGES
432
+ });
433
+ return false;
434
+ }
435
+ /**
436
+ * Projects in `orgId` where `userId` is the only live owner — the ones that
437
+ * will have no owner once `removeOrgMember` cascades their membership rows.
438
+ *
439
+ * **Report, do not block.** Blocking puts an unbounded chore in front of
440
+ * offboarding — the cost scales with how many projects the departing person
441
+ * owned, which is backwards, because the most prolific people are the ones
442
+ * whose departure most needs to be clean. An offboarding that fails halfway is
443
+ * worse than an ownerless project: the person stays in the org while someone
444
+ * works through the backlog. Reclaim already exists to adopt an ownerless
445
+ * project, so the recovery path is built; what was missing was any signal that
446
+ * recovery was needed. Hence the event.
447
+ *
448
+ * MUST be called before the removal — afterwards the rows it reads are gone.
449
+ */
450
+ async function findProjectsLosingSoleOwner(req, ctx, orgId, userId) {
451
+ const projects = req.deps.projects;
452
+ const orgProjects = await projects.listProjects(ctx, orgId, { limit: ROSTER_PAGE_LIMIT });
453
+ return (await Promise.all(orgProjects.items.map(async (project) => {
454
+ const owners = (await projects.listProjectMembers(ctx, project.id, { limit: ROSTER_PAGE_LIMIT })).items.filter((m) => m.role === "owner" && !m.deletedAt);
455
+ return owners.length === 1 && owners[0].userId === userId ? project : null;
456
+ }))).filter((p) => p !== null);
457
+ }
458
+ /**
459
+ * Body accepts either or both:
460
+ * - `{ role: OrgRole }` — change the member's role. Owner-only.
461
+ * - `{ permissions: OrgPermission[] }` — replace the member's grantable
462
+ * permissions. Owner/admin via `manage_org_members`. For `member`-role
463
+ * targets, only `MEMBER_ASSIGNABLE_PERMISSIONS` are accepted; promoting a
464
+ * member's permissions does NOT change their role.
465
+ */
466
+ var updateOrgMember = async (req) => {
467
+ const { userId } = requireParams(req.params, "orgId", "userId");
468
+ requireManageOrgMembers(req);
469
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
470
+ const patch = await parseBody(req.request, UpdateOrgMemberBodySchema);
471
+ const orgs = req.deps.orgs;
472
+ const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
473
+ if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
474
+ if (!actorMember) apiError(403, ApiErrorCode.FORBIDDEN, "You are not a member of this organization.");
475
+ if (patch.role !== void 0 && patch.role !== target.role) {
476
+ if (!canChangeOrgRole({
477
+ actorMember,
478
+ role: patch.role
479
+ }) || !canChangeOrgRole({
480
+ actorMember,
481
+ role: target.role
482
+ })) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can change roles.");
483
+ 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.");
484
+ await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);
485
+ }
486
+ if (patch.permissions !== void 0) {
487
+ const effectiveRole = patch.role ?? target.role;
488
+ const valid = effectiveRole === "member" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);
489
+ const invalid = patch.permissions.filter((p) => !valid.has(p));
490
+ if (invalid.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Permissions [${invalid.join(", ")}] cannot be assigned to a ${effectiveRole}.`);
491
+ await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);
492
+ }
493
+ return noContent();
494
+ };
495
+ /**
496
+ * Remove a member from the org. Owner/admin via `manage_org_members`, same
497
+ * tenancy check as PATCH, and the same sole-owner invariant — removing the last
498
+ * owner would leave the org unadministrable.
499
+ */
500
+ var removeOrgMember = async (req) => {
501
+ const { userId } = requireParams(req.params, "orgId", "userId");
502
+ requireManageOrgMembers(req);
503
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
504
+ const orgs = req.deps.orgs;
505
+ const [actorMember, target] = await Promise.all([orgs.getOrgMember(ctx, orgId, ctx.userId), orgs.getOrgMember(ctx, orgId, userId)]);
506
+ if (!target) apiError(404, ApiErrorCode.NOT_FOUND, "Member not found in this organization.");
507
+ if (!canChangeOrgRole({
508
+ actorMember,
509
+ role: target.role
510
+ })) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can remove another owner.");
511
+ 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.");
512
+ const orphaned = await findProjectsLosingSoleOwner(req, ctx, orgId, userId);
513
+ await orgs.removeOrgMember(ctx, orgId, userId);
514
+ if (orphaned.length > 0) {
515
+ await req.deps.events.emit({
516
+ type: "org_member.removed_orphaning_projects",
517
+ orgId,
518
+ userId,
519
+ projectIds: orphaned.map((p) => p.id),
520
+ ...actorOf(ctx)
521
+ });
522
+ req.log.warn("Org member removal left projects without an owner", {
523
+ orgId,
524
+ userId,
525
+ actorId: ctx.userId,
526
+ projectCount: orphaned.length
527
+ });
528
+ }
529
+ const email = (await req.deps.auth.getUser(userId))?.email;
530
+ if (email) try {
531
+ await req.deps.invites.revokePendingByEmail(ctx, orgId, email);
532
+ } catch (err) {
533
+ req.log.error("Removed org member but failed to revoke their pending invites", {
534
+ orgId,
535
+ userId,
536
+ error: err instanceof Error ? err.message : String(err)
537
+ });
538
+ }
539
+ return noContent();
540
+ };
541
+ //#endregion
542
+ //#region ../server/src/handlers/reclaim.ts
543
+ /**
544
+ * Org owner/admin escape hatch for a project they cannot otherwise reach.
545
+ *
546
+ * Adds the actor as a co-owner and does NOT demote the existing owner.
547
+ * Idempotent: reclaiming twice is a no-op, because `addProjectMember`
548
+ * reactivates a soft-deleted row in place.
549
+ */
550
+ var reclaimProject = async (req) => {
551
+ const { id } = requireParams(req.params, "id");
552
+ const { user, ctx, project } = await requireCanReclaim(req, id);
553
+ const now = (/* @__PURE__ */ new Date()).toISOString();
554
+ const member = {
555
+ projectId: id,
556
+ userId: user.id,
557
+ role: "owner",
558
+ joinedAt: now,
559
+ updatedAt: now,
560
+ updatedBy: ctx.userId || user.id,
561
+ deletedAt: null
562
+ };
563
+ await req.deps.projects.addProjectMember(ctx, member);
564
+ await req.deps.events.emit({
565
+ type: "project.reclaimed",
566
+ projectId: id,
567
+ orgId: project.orgId,
568
+ ...actorOf(ctx),
569
+ priorVisibility: project.visibility
570
+ });
571
+ return created({ member });
572
+ };
573
+ //#endregion
574
+ //#region ../server/src/handlers/orgAssets.ts
575
+ /**
576
+ * Org branding assets, generic over kind (`logo`, `favicon`, …). Gated on
577
+ * `manage_org_members` — org branding is an org-admin action.
578
+ *
579
+ * Raster images and SVG are both accepted. Every input is rasterized to WebP by
580
+ * the shared transcoder inside the storage provider, so SVG carries no XSS
581
+ * surface: no vector blob is ever stored or served. The allowlist below is the
582
+ * HTTP gate; the rasterization is the security control.
583
+ */
584
+ var ALLOWED_CONTENT_TYPES = /* @__PURE__ */ new Set([
585
+ "image/png",
586
+ "image/jpeg",
587
+ "image/webp",
588
+ "image/gif",
589
+ "image/svg+xml"
590
+ ]);
591
+ function parseKind(params) {
592
+ const kind = OrgAssetKindSchema.safeParse(params.kind);
593
+ if (!kind.success) apiError(404, ApiErrorCode.NOT_FOUND, `Unknown asset kind '${params.kind}'`);
594
+ return kind.data;
595
+ }
596
+ var uploadOrgAsset = async (req) => {
597
+ requireManageOrgMembers(req);
598
+ const kind = parseKind(req.params);
599
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
600
+ if (!await req.deps.orgs.getOrg(ctx, orgId)) apiError(404, ApiErrorCode.NOT_FOUND, "Organization not found");
601
+ const { file } = requireUpload(await req.request.formData(), "image", {
602
+ maxBytes: req.deps.uploadLimits.maxImageFileSize,
603
+ contentTypes: {
604
+ allowed: ALLOWED_CONTENT_TYPES,
605
+ message: "Unsupported image type. Allowed: PNG, JPG, WebP, GIF, SVG"
606
+ },
607
+ label: "Image"
608
+ });
609
+ const bytes = new Uint8Array(await file.arrayBuffer());
610
+ return { body: {
611
+ kind,
612
+ url: await orgAssetService(req.deps).saveAsset(ctx, orgId, kind, bytes, file.type)
613
+ } };
614
+ };
615
+ var removeOrgAsset = async (req) => {
616
+ requireManageOrgMembers(req);
617
+ const kind = parseKind(req.params);
618
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
619
+ await orgAssetService(req.deps).removeAsset(ctx, orgId, kind);
620
+ return noContent();
621
+ };
622
+ //#endregion
623
+ //#region ../server/src/handlers/shareLinks.ts
624
+ /**
625
+ * Share-link administration.
626
+ *
627
+ * Minting, listing and revoking are gated by `canEditDefinition` — the same
628
+ * authority that uploads versions and publishes. The raw token appears in the
629
+ * POST response and nowhere else; everything afterwards sees `hasToken: true`.
630
+ *
631
+ * **Responses go through `shaped`/`shapedCollection`, never `{ body }`.** A
632
+ * `ShareLink` carries `tokenHash`, and the response schema is what drops it —
633
+ * returning the record directly would put a credential hash on the wire with
634
+ * nothing failing at build time.
635
+ */
636
+ function assertSharingEnabled(req) {
637
+ if (!req.deps.flag("ENABLE_SHARING")) apiError(404, ApiErrorCode.NOT_FOUND, "Share links are disabled on this instance (ENABLE_SHARING).");
638
+ }
639
+ /** `tokenHash` is dropped by the response schema, not by this function. */
640
+ function forClient(link) {
641
+ return {
642
+ ...link,
643
+ hasToken: true
644
+ };
645
+ }
646
+ var listShareLinks = async (req) => {
647
+ assertSharingEnabled(req);
648
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
649
+ const { ctx } = await requireEditableDefinition(req, guid);
650
+ const page = await req.deps.shareLinks.listByDefinition(ctx, guid, parseListOptions(req.url));
651
+ return shapedCollection(ShareLinkResponseSchema, {
652
+ items: page.items.map(forClient),
653
+ nextCursor: page.nextCursor
654
+ });
655
+ };
656
+ var createShareLink = async (req) => {
657
+ assertSharingEnabled(req);
658
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
659
+ const { user } = requireCaller(req);
660
+ const { ctx } = await requireEditableDefinition(req, guid);
661
+ const input = await parseBody(req.request, CreateShareLinkInputSchema, { missingAs: {} });
662
+ const codec = tokenCodec(req.deps, "shareLinks");
663
+ const raw = codec.mintRawToken();
664
+ const link = {
665
+ id: randomUUID(),
666
+ definitionId: guid,
667
+ channel: input.channel,
668
+ tokenHash: codec.hashToken(raw),
669
+ name: input.name,
670
+ createdBy: user.id,
671
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
672
+ expiresAt: input.expiresAt ?? null,
673
+ revokedAt: null,
674
+ allowSolve: input.allowSolve,
675
+ maxSolves: input.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : input.maxSolves,
676
+ solveCount: 0
677
+ };
678
+ await req.deps.shareLinks.create(ctx, link);
679
+ return shaped(CreatedShareLinkResponseSchema, {
680
+ link: forClient(link),
681
+ token: raw
682
+ }, 201);
683
+ };
684
+ /**
685
+ * Revoke a share link (soft-delete). Idempotent, gated by `canEditDefinition`.
686
+ *
687
+ * The link must belong to this definition, so one definition's editor cannot
688
+ * revoke another's link with a guessed or leaked linkId.
689
+ */
690
+ var revokeShareLink = async (req) => {
691
+ assertSharingEnabled(req);
692
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
693
+ const linkId = parseParam(req.params.linkId, GuidSchema, "link ID");
694
+ const { ctx } = await requireEditableDefinition(req, guid);
695
+ const existing = await req.deps.shareLinks.getById(ctx, linkId);
696
+ if (!existing || existing.definitionId !== guid) apiError(404, ApiErrorCode.NOT_FOUND, "Share link not found.");
697
+ await req.deps.shareLinks.revoke(ctx, linkId);
698
+ return noContent();
699
+ };
700
+ //#endregion
701
+ //#region ../server/src/handlers/definitions.ts
702
+ /**
703
+ * Definition handlers: the collection, one definition's detail and metadata,
704
+ * its live schema, cover image, and the publish channel.
705
+ *
706
+ * Solve and the two compute routes stay unwrapped deliberately — they stream
707
+ * and mark their own metrics, which the `ApiResponse` envelope does not model.
708
+ */
709
+ var LISTABLE_STATUSES = [
710
+ "draft",
711
+ "published",
712
+ "archived"
713
+ ];
714
+ /**
715
+ * Definitions the caller can view. Visibility is resolved into the query via
716
+ * `projectIds`, so `limit`/`nextCursor` describe the filtered set.
717
+ */
718
+ var listDefinitions = async (req) => {
719
+ const { ctx } = requireCaller(req);
720
+ const statusParam = req.url.searchParams.get("status");
721
+ if (statusParam && !LISTABLE_STATUSES.includes(statusParam)) apiError(400, ApiErrorCode.VALIDATION_FAILED, `status must be one of: ${LISTABLE_STATUSES.join(", ")}`);
722
+ const page = await listVisibleDefinitions(ctx, {
723
+ ...parseDefinitionListOptions(req.url),
724
+ projectId: req.url.searchParams.get("projectId") ?? void 0,
725
+ statuses: statusParam ? [statusParam] : void 0
726
+ }, req.deps);
727
+ return collection({
728
+ items: page.items.map(toDefinitionListItem),
729
+ nextCursor: page.nextCursor
730
+ });
731
+ };
732
+ function parseTags(raw) {
733
+ if (!raw) return void 0;
734
+ const tags = raw.split(",").map((t) => t.trim()).filter(Boolean);
735
+ return tags.length ? tags : void 0;
736
+ }
737
+ /** Create a definition — metadata and the Grasshopper file in one request. */
738
+ var createDefinition = async (req) => {
739
+ const { ctx, user } = requireCaller(req);
740
+ const form = await req.request.formData();
741
+ const { file, extension } = requireUpload(form, "file", {
742
+ maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
743
+ extensions: GH_EXTENSIONS,
744
+ label: "Grasshopper (.gh or .ghx) file"
745
+ });
746
+ const imageFile = form.get("image");
747
+ const maxImageBytes = req.deps.uploadLimits.maxImageFileSize;
748
+ if (imageFile instanceof File && imageFile.size > maxImageBytes) apiError(400, ApiErrorCode.VALIDATION_FAILED, `Image too large. Max size: ${maxImageBytes / 1048576} MB`);
749
+ let projectId = formText(form, "projectId");
750
+ if (!projectId) {
751
+ if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
752
+ const { projects } = await resolveAccessibleProjects(ctx, req.deps);
753
+ const fallback = projects.find((p) => p.orgId === ctx.actingOrgId);
754
+ if (!fallback) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No accessible project — pass projectId.");
755
+ projectId = fallback.id;
756
+ }
757
+ const { project } = await requireCanCreateDefinition(req, projectId);
758
+ const parsed = CreateDefinitionInputSchema.safeParse({
759
+ displayName: formText(form, "displayName"),
760
+ description: formText(form, "description"),
761
+ category: formText(form, "category"),
762
+ coverImage: formText(form, "coverImage"),
763
+ tags: parseTags(formText(form, "tags")),
764
+ projectId,
765
+ computeServerId: formText(form, "computeServerId")
766
+ });
767
+ if (!parsed.success) throwZodError(parsed.error);
768
+ const guid = randomUUID();
769
+ const fileData = new Uint8Array(await file.arrayBuffer());
770
+ const server = await resolveServerForOrg(ctx, project.orgId, req.deps.computeServer, { definitionPin: parsed.data.computeServerId ?? null });
771
+ const schema = await fetchSchemaFromCompute(fileData, server);
772
+ const service = definitionService(req.deps);
773
+ const { record, version } = await service.create(ctx, {
774
+ guid,
775
+ projectId: parsed.data.projectId,
776
+ ownerId: user.id,
777
+ fileExt: extension.slice(1),
778
+ originalFilename: file.name,
779
+ computeServerId: parsed.data.computeServerId,
780
+ displayName: parsed.data.displayName.trim(),
781
+ description: parsed.data.description,
782
+ category: parsed.data.category,
783
+ tags: parsed.data.tags,
784
+ coverImage: parsed.data.coverImage
785
+ }, fileData, schema);
786
+ let coverImage = record.coverImage;
787
+ if (imageFile instanceof File && imageFile.size > 0) {
788
+ const imageData = new Uint8Array(await imageFile.arrayBuffer());
789
+ coverImage = await service.saveCoverImage(ctx, guid, imageData);
790
+ }
791
+ return created({
792
+ guid,
793
+ version,
794
+ coverImage
795
+ });
796
+ };
797
+ /** `schema` is a large blob, served on demand by `/versions/{versionId}/schema`. */
798
+ function versionSummary(v) {
799
+ return {
800
+ id: v.id,
801
+ versionNumber: v.versionNumber,
802
+ uploadedAt: v.uploadedAt,
803
+ uploadedBy: v.uploadedBy,
804
+ changeNote: v.changeNote
805
+ };
806
+ }
807
+ /** The record plus its live and draft version summaries. */
808
+ var getDefinition = async (req) => {
809
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
810
+ const { ctx } = requireCaller(req);
811
+ const record = await getVisibleDefinition(ctx, guid, req.deps);
812
+ if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
813
+ const meta = req.deps.definitionMeta;
814
+ const [liveVersion, draftVersion] = await Promise.all([record.liveVersionId ? meta.getVersion(ctx, record.liveVersionId) : null, record.draftVersionId ? meta.getVersion(ctx, record.draftVersionId) : null]);
815
+ return { body: {
816
+ ...record,
817
+ liveVersion: liveVersion ? versionSummary(liveVersion) : null,
818
+ draftVersion: draftVersion ? versionSummary(draftVersion) : null
819
+ } };
820
+ };
821
+ /** Soft-delete the definition; versions and blobs are wiped with it. */
822
+ var deleteDefinition = async (req) => {
823
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
824
+ const { ctx } = await requireEditableDefinition(req, guid);
825
+ await definitionService(req.deps).delete(ctx, guid);
826
+ return noContent();
827
+ };
828
+ /** Metadata only. New versions POST to `/versions`. */
829
+ var updateDefinition = async (req) => {
830
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
831
+ const { ctx } = await requireEditableDefinition(req, guid);
832
+ const patch = await parseBody(req.request, UpdateMetadataInputSchema);
833
+ await definitionService(req.deps).updateMeta(ctx, guid, patch);
834
+ return noContent();
835
+ };
836
+ /**
837
+ * Convenience alias for the live version's schema — the call a client makes
838
+ * before solving. The canonical location is `/versions/{versionId}/schema`;
839
+ * this resolves the `live` pointer for you.
840
+ */
841
+ var getDefinitionSchema = async (req) => {
842
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
843
+ const { ctx } = requireCaller(req);
844
+ const record = await getVisibleDefinition(ctx, guid, req.deps);
845
+ if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
846
+ if (!record.liveVersionId) apiError(404, ApiErrorCode.NOT_FOUND, "This definition has no published version");
847
+ const version = await loadVisibleVersion(ctx, guid, record.liveVersionId, req.deps);
848
+ if (!version?.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for the live version");
849
+ return { body: version.schema };
850
+ };
851
+ /**
852
+ * Advance the live channel. Body `{ versionId? }` targets a specific version
853
+ * (rollback or forward-roll); omit it to promote the current draft.
854
+ */
855
+ var publishDefinition = async (req) => {
856
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
857
+ const { versionId } = await parseBody(req.request, PublishVersionInputSchema, { missingAs: {} });
858
+ const { ctx } = await requireEditableDefinition(req, guid);
859
+ return { body: { version: await definitionService(req.deps).publish(ctx, guid, versionId) } };
860
+ };
861
+ /** Upload a cover image. */
862
+ var uploadDefinitionImage = async (req) => {
863
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
864
+ const { ctx } = await requireEditableDefinition(req, guid);
865
+ const { file } = requireUpload(await req.request.formData(), "image", {
866
+ maxBytes: req.deps.uploadLimits.maxImageFileSize,
867
+ label: "Image"
868
+ });
869
+ const data = new Uint8Array(await file.arrayBuffer());
870
+ return { body: { coverImage: await definitionService(req.deps).saveCoverImage(ctx, guid, data) } };
871
+ };
872
+ //#endregion
873
+ //#region ../server/src/handlers/definitionVersions.ts
874
+ /**
875
+ * Version handlers: list, upload, read, delete, and a version's cached schema.
876
+ *
877
+ * Reads resolve through `getVisibleDefinition` / `loadVisibleVersion`, which
878
+ * return `null` rather than throwing, so an invisible definition answers 404.
879
+ * A 403 anywhere here would confirm a guid exists across a tenant boundary.
880
+ */
881
+ var listVersions = async (req) => {
882
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
883
+ const { ctx } = requireCaller(req);
884
+ if (!await getVisibleDefinition(ctx, guid, req.deps)) apiError(404, ApiErrorCode.NOT_FOUND, "Definition not found");
885
+ return collection(await req.deps.definitionMeta.listVersions(ctx, guid, parseListOptions(req.url)));
886
+ };
887
+ /** Upload a new version. Advances `draft`; `live` is unchanged until publish. */
888
+ var uploadVersion = async (req) => {
889
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
890
+ const form = await req.request.formData();
891
+ const { file, extension } = requireUpload(form, "file", {
892
+ maxBytes: req.deps.uploadLimits.maxDefinitionFileSize,
893
+ extensions: GH_EXTENSIONS,
894
+ label: "Grasshopper (.gh or .ghx) file"
895
+ });
896
+ const changeNote = formText(form, "changeNote", { maxLength: 1e3 });
897
+ const { ctx, record, project } = await requireEditableDefinition(req, guid);
898
+ const data = new Uint8Array(await file.arrayBuffer());
899
+ const server = await resolveServerForOrg(ctx, project?.orgId ?? null, req.deps.computeServer, { definitionPin: record.computeServerId ?? null });
900
+ const schema = await fetchSchemaFromCompute(data, server);
901
+ return created({ version: await definitionService(req.deps).uploadVersion(ctx, guid, data, extension.slice(1), file.name, schema, changeNote) });
902
+ };
903
+ /**
904
+ * Version metadata. `schema` is excluded and served by the `/schema`
905
+ * sub-resource, so a version read never carries a several-hundred-KB blob.
906
+ */
907
+ var getVersion = async (req) => {
908
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
909
+ const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
910
+ const { ctx } = requireCaller(req);
911
+ const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
912
+ if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
913
+ const { schema: _schema, ...rest } = version;
914
+ return { body: rest };
915
+ };
916
+ /**
917
+ * Delete an old version. The store throws 409 if the version is currently
918
+ * referenced by `liveVersionId` or `draftVersionId` — repoint first.
919
+ */
920
+ var deleteVersion = async (req) => {
921
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
922
+ const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
923
+ const { ctx } = await requireEditableDefinition(req, guid);
924
+ await definitionService(req.deps).deleteVersion(ctx, guid, versionId);
925
+ return noContent();
926
+ };
927
+ /**
928
+ * The UI schema cached on this version at upload. Reads what is stored — no
929
+ * Rhino.Compute round-trip, unlike the pre-upload `POST /api/v1/compute/schema`.
930
+ *
931
+ * Schemas belong to a version, so this is the canonical location;
932
+ * `/definitions/{guid}/schema` is an alias for the live one.
933
+ */
934
+ var getVersionSchema = async (req) => {
935
+ const guid = parseParam(req.params.guid, GuidSchema, "GUID");
936
+ const versionId = parseParam(req.params.versionId, GuidSchema, "version ID");
937
+ const { ctx } = requireCaller(req);
938
+ const version = await loadVisibleVersion(ctx, guid, versionId, req.deps);
939
+ if (!version) apiError(404, ApiErrorCode.NOT_FOUND, "Version not found");
940
+ if (!version.schema) apiError(404, ApiErrorCode.NOT_FOUND, "No schema cached for this version");
941
+ return { body: version.schema };
942
+ };
943
+ //#endregion
944
+ //#region ../server/src/handlers/projects.ts
945
+ /**
946
+ * Project handlers: the collection, and a single project's detail and settings.
947
+ *
948
+ * `listProjects` was authored against `resolveAccessibleProjects`, not lifted
949
+ * from the pre-v1 handler: that one listed every project in the acting org with
950
+ * no `canView` filter and had no UI caller, so it carried no evidence of being
951
+ * correct. The rest are lifted, logic intact, with reads moved onto `req.deps`.
952
+ */
953
+ var listProjects = async (req) => {
954
+ const { ctx } = requireCaller(req);
955
+ const { projects } = await resolveAccessibleProjects(ctx, req.deps);
956
+ const { limit, cursor } = parseListOptions(req.url);
957
+ const start = cursor ? Number(cursor) : 0;
958
+ if (!Number.isInteger(start) || start < 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid cursor");
959
+ const items = projects.slice(start, start + (limit ?? projects.length));
960
+ const nextIndex = start + items.length;
961
+ return collection({
962
+ items,
963
+ nextCursor: nextIndex < projects.length ? String(nextIndex) : void 0
964
+ });
965
+ };
966
+ var createProject = async (req) => {
967
+ const { ctx, user } = requireCaller(req);
968
+ if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
969
+ await requireCanCreateProject(req, ctx.actingOrgId);
970
+ const input = await parseBody(req.request, CreateProjectBodySchema);
971
+ if (input.visibility === "platform" && !hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can create a project with platform visibility.");
972
+ const autoJoinOnUpload = input.autoJoinOnUpload ?? false;
973
+ const flagIssues = validateProjectFlags({
974
+ visibility: input.visibility,
975
+ autoJoinOnUpload
976
+ });
977
+ if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
978
+ return created(await createProjectWithUniqueSlug(req.deps.projects, {
979
+ id: randomUUID(),
980
+ orgId: ctx.actingOrgId,
981
+ name: input.name,
982
+ description: input.description,
983
+ visibility: input.visibility,
984
+ ownerId: user.id,
985
+ createdBy: user.id,
986
+ updatedBy: user.id,
987
+ autoJoinOnUpload
988
+ }, {
989
+ writeCtx: ctx,
990
+ fallbackSlug: "project",
991
+ conflictScope: "this organization"
992
+ }));
993
+ };
994
+ /**
995
+ * Project detail plus the caller's effective capabilities on it.
996
+ *
997
+ * A project the caller cannot view returns 404, not 403 — `403` would confirm
998
+ * the id exists to anyone probing.
999
+ */
1000
+ var getProject = async (req) => {
1001
+ const { id } = requireParams(req.params, "id");
1002
+ const { ctx } = requireCaller(req);
1003
+ const project = await req.deps.projects.getProject(SYSTEM_CONTEXT, id);
1004
+ if (!project) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
1005
+ const [orgMembers, projectMembers, grants] = await Promise.all([
1006
+ req.deps.orgs.getOrgMembersFor(SYSTEM_CONTEXT, [project.orgId], ctx.userId),
1007
+ req.deps.projects.getProjectMembersFor(SYSTEM_CONTEXT, [project.id], ctx.userId),
1008
+ project.visibility === "platform" ? req.deps.platformProjectGrants.listByProject(SYSTEM_CONTEXT, project.id) : Promise.resolve([])
1009
+ ]);
1010
+ const member = projectMembers.get(project.id) ?? null;
1011
+ const input = projectAccessInputFromRowsWith(req, ctx, project, {
1012
+ member,
1013
+ orgMember: orgMembers.get(project.orgId) ?? null,
1014
+ platformGrants: grants
1015
+ });
1016
+ if (!canView(input)) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
1017
+ return { body: {
1018
+ ...project,
1019
+ role: member?.role ?? null,
1020
+ canEdit: canEdit(input),
1021
+ canSolve: canSolve(input)
1022
+ } };
1023
+ };
1024
+ var updateProject = async (req) => {
1025
+ const { id } = requireParams(req.params, "id");
1026
+ const { ctx, project: existing } = await requireCanEditProjectSettings(req, id);
1027
+ const input = await parseBody(req.request, UpdateProjectBodySchema);
1028
+ if (input.visibility === "platform" && existing.visibility !== "platform") {
1029
+ if (!hasPermission(ctx, "instance_admin")) apiError(403, ApiErrorCode.FORBIDDEN, "Only a platform admin can give a project platform visibility.");
1030
+ }
1031
+ if (input.visibility === "public" && existing.visibility !== "public") {
1032
+ const orgMember = await req.deps.orgs.getOrgMember(ctx, existing.orgId, ctx.userId);
1033
+ if (!withAdminBypass(ctx.platformPermissions, () => canChangeVisibilityToPublic({ orgMember }))) apiError(403, ApiErrorCode.FORBIDDEN, "Only org owners or admins can make a project public.");
1034
+ }
1035
+ const flagIssues = validateProjectFlags({
1036
+ visibility: input.visibility ?? existing.visibility,
1037
+ autoJoinOnUpload: input.autoJoinOnUpload ?? existing.autoJoinOnUpload
1038
+ });
1039
+ if (flagIssues.length > 0) apiError(400, ApiErrorCode.VALIDATION_FAILED, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
1040
+ const patch = {};
1041
+ if (input.name !== void 0) {
1042
+ patch.name = input.name;
1043
+ patch.slug = slugify(input.name);
1044
+ }
1045
+ if (input.description !== void 0) patch.description = input.description ?? void 0;
1046
+ if (input.visibility !== void 0) patch.visibility = input.visibility;
1047
+ if (input.autoJoinOnUpload !== void 0) patch.autoJoinOnUpload = input.autoJoinOnUpload;
1048
+ await req.deps.projects.updateProject(ctx, id, patch);
1049
+ return noContent();
1050
+ };
1051
+ var deleteProject = async (req) => {
1052
+ const { id } = requireParams(req.params, "id");
1053
+ const { ctx } = requireCaller(req);
1054
+ await requireCanManage(req, id);
1055
+ await req.deps.projects.deleteProject(ctx, id);
1056
+ return noContent();
1057
+ };
1058
+ //#endregion
1059
+ //#region ../server/src/handlers/projectMembers.ts
1060
+ /**
1061
+ * Project membership: list, add, change role, remove.
1062
+ *
1063
+ * Every method here gates on `requireCanManage(req, id, 'members')`. The
1064
+ * owner-count preconditions on PATCH and DELETE come from `checkOwnerRemoval`,
1065
+ * a pure rules function, so demotion and removal cannot drift apart — a sole
1066
+ * owner demoting themselves locks the project exactly as removing themselves
1067
+ * would.
1068
+ */
1069
+ var listProjectMembers = async (req) => {
1070
+ const { id } = requireParams(req.params, "id");
1071
+ const { ctx } = requireCaller(req);
1072
+ await requireCanManage(req, id, "members");
1073
+ return collection(await req.deps.projects.listProjectMembers(ctx, id, parseListOptions(req.url)));
1074
+ };
1075
+ var addProjectMember = async (req) => {
1076
+ const { id } = requireParams(req.params, "id");
1077
+ const { ctx } = requireCaller(req);
1078
+ await requireCanManage(req, id, "members");
1079
+ const input = await parseBody(req.request, AddProjectMemberBodySchema);
1080
+ const project = await req.deps.projects.getProject(ctx, id);
1081
+ if (!project) apiError(404, ApiErrorCode.NOT_FOUND, "Project not found");
1082
+ await requireTargetIsOrgMember(req, project.orgId, input.userId);
1083
+ const now = (/* @__PURE__ */ new Date()).toISOString();
1084
+ const member = {
1085
+ projectId: id,
1086
+ userId: input.userId,
1087
+ role: input.role,
1088
+ joinedAt: now,
1089
+ updatedAt: now,
1090
+ updatedBy: ctx.userId || input.userId,
1091
+ deletedAt: null
1092
+ };
1093
+ await req.deps.projects.addProjectMember(ctx, member);
1094
+ return created(member);
1095
+ };
1096
+ /**
1097
+ * Guard the owner count before a demotion or removal goes through.
1098
+ *
1099
+ * `?confirm=true` is what distinguishes "I meant to do this" from a misclick;
1100
+ * the sole-owner case has no confirmation, because there is no state the
1101
+ * caller could confirm into that leaves the project manageable.
1102
+ */
1103
+ async function assertOwnerRemovable(req, projectId, target, action) {
1104
+ const { ctx } = requireCaller(req);
1105
+ const page = await req.deps.projects.listProjectMembers(ctx, projectId, { limit: 200 });
1106
+ const decision = checkOwnerRemoval({
1107
+ target: { role: target.role },
1108
+ allMembers: page.items.map((m) => ({ role: m.role })),
1109
+ confirmed: req.url.searchParams.get("confirm") === "true"
1110
+ });
1111
+ 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.`);
1112
+ if (decision === "needs_confirm") apiError(409, ApiErrorCode.CONFLICT, `${action === "demote" ? "Demoting" : "Removing"} another project owner requires explicit confirmation. Retry with ?confirm=true.`);
1113
+ }
1114
+ var updateProjectMemberRole = async (req) => {
1115
+ const { id, userId } = requireParams(req.params, "id", "userId");
1116
+ const { ctx } = requireCaller(req);
1117
+ await requireCanManage(req, id, "members");
1118
+ const { role } = await parseBody(req.request, UpdateProjectMemberBodySchema);
1119
+ if (role !== "owner") {
1120
+ const target = await req.deps.projects.getProjectMember(ctx, id, userId);
1121
+ if (target?.role === "owner") await assertOwnerRemovable(req, id, target, "demote");
1122
+ }
1123
+ await req.deps.projects.updateProjectMemberRole(ctx, id, userId, role);
1124
+ return noContent();
1125
+ };
1126
+ var removeProjectMember = async (req) => {
1127
+ const { id, userId } = requireParams(req.params, "id", "userId");
1128
+ const { ctx } = requireCaller(req);
1129
+ await requireCanManage(req, id, "members");
1130
+ const target = await req.deps.projects.getProjectMember(ctx, id, userId);
1131
+ if (!target) return noContent();
1132
+ if (target.role === "owner") await assertOwnerRemovable(req, id, target, "remove");
1133
+ await req.deps.projects.removeProjectMember(ctx, id, userId);
1134
+ return noContent();
1135
+ };
1136
+ //#endregion
1137
+ //#region ../server/src/handlers/orgCompute.ts
1138
+ /**
1139
+ * Per-org compute config: this org's own servers (`scope: 'org'`) and its
1140
+ * default selection (`orgDefaults[orgId]`). Platform servers and the global
1141
+ * default are read-only here — `manage_compute` owns those via `/api/admin/compute`.
1142
+ *
1143
+ * Authorization: org `owner`/`admin` with `manage_org_compute`, plus the acting-org
1144
+ * tenancy check. Gated by `ALLOW_ORG_COMPUTE_OVERRIDE`; when off, both methods 403.
1145
+ *
1146
+ * **`apiKey` merge semantics are the trap here.** Omitted preserves the stored
1147
+ * key, `null` clears it, a string replaces it — and `/api/admin/compute` must
1148
+ * agree, which is why the merge lives in `@selvajs/server/compute`, not inline.
1149
+ */
1150
+ function requireFlag(req) {
1151
+ 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).");
1152
+ }
1153
+ var getOrgCompute = async (req) => {
1154
+ requireFlag(req);
1155
+ requireManageOrgCompute(req);
1156
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1157
+ const config = await req.deps.computeServer.getConfig(ctx, { scopeToOrgId: orgId });
1158
+ const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => ({
1159
+ ...s,
1160
+ hasApiKey: !!s.hasApiKey
1161
+ }));
1162
+ const catalog = config.servers.map((s) => ({
1163
+ id: s.id,
1164
+ label: s.label,
1165
+ serverUrl: s.serverUrl,
1166
+ scope: s.scope,
1167
+ source: isPlatformServer(s) ? "platform" : "org",
1168
+ timeoutMs: s.timeoutMs,
1169
+ retryCount: s.retryCount
1170
+ }));
1171
+ return shaped(OrgComputeResponseSchema, {
1172
+ servers: owned,
1173
+ defaultServerId: config.orgDefaults?.[orgId] ?? null,
1174
+ globalDefaultServerId: config.defaultServerId ?? null,
1175
+ catalog
1176
+ });
1177
+ };
1178
+ var updateOrgCompute = async (req) => {
1179
+ requireFlag(req);
1180
+ requireManageOrgCompute(req);
1181
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1182
+ const incoming = await parseBody(req.request, OrgComputePatchBodySchema);
1183
+ validateIncomingServers(incoming.servers);
1184
+ const provider = req.deps.computeServer;
1185
+ const existing = await provider.getConfig(ctx, { includeApiKeys: true });
1186
+ const storedKeys = storedKeysById(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId));
1187
+ const next = incoming.servers.map((s) => ({
1188
+ id: s.id,
1189
+ scope: "org",
1190
+ ownerOrgId: orgId,
1191
+ label: s.label,
1192
+ serverUrl: s.serverUrl,
1193
+ timeoutMs: s.timeoutMs,
1194
+ retryCount: s.retryCount,
1195
+ apiKey: resolveApiKey(s.apiKey, storedKeys.get(s.id))
1196
+ }));
1197
+ if (typeof incoming.defaultServerId === "string") {
1198
+ const projected = {
1199
+ servers: [...existing.servers.filter((s) => !(isOrgServer(s) && s.ownerOrgId === orgId)), ...next],
1200
+ defaultServerId: existing.defaultServerId,
1201
+ orgDefaults: existing.orgDefaults
1202
+ };
1203
+ 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");
1204
+ }
1205
+ await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);
1206
+ evictChangedServers(existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId), next, req.deps.evictComputeClient);
1207
+ return noContent();
1208
+ };
1209
+ //#endregion
1210
+ //#region ../server/src/handlers/invite-lookup.ts
1211
+ /**
1212
+ * Find an invite by id, confirming it belongs to `orgId`.
1213
+ *
1214
+ * `manage_org_members` is org-scoped, so a permitted caller must not reach an
1215
+ * invite in another org. Neither store scopes `revoke()` by acting org, so
1216
+ * every route that mutates an invite by id has to establish ownership first —
1217
+ * hence one shared paged scan rather than a copy per route.
1218
+ */
1219
+ async function findPendingInviteInOrg(ctx, orgId, id, store) {
1220
+ let cursor;
1221
+ do {
1222
+ const page = await store.listByOrg(ctx, orgId, {
1223
+ limit: 200,
1224
+ cursor
1225
+ });
1226
+ const match = page.items.find((i) => i.id === id);
1227
+ if (match) return match;
1228
+ cursor = page.nextCursor ?? void 0;
1229
+ } while (cursor);
1230
+ return null;
1231
+ }
1232
+ //#endregion
1233
+ //#region ../server/src/handlers/invites.ts
1234
+ /**
1235
+ * Org invites: list, mint, revoke, resend.
1236
+ *
1237
+ * **The raw token exists only in the response.** The store sees an HMAC digest,
1238
+ * so a leak of the `invites` table cannot be replayed without the instance
1239
+ * secret — and `tokenHash` is dropped by the response schema, which is why
1240
+ * every response here goes through `shaped`/`shapedCollection` rather than
1241
+ * `{ body }`.
1242
+ */
1243
+ var INVITE_TTL_MS = 6048e5;
1244
+ /**
1245
+ * Mail the accept link, or report why not.
1246
+ *
1247
+ * Mint and resend must send the identical message, so the deps threading lives
1248
+ * here rather than at each call site. `not-configured` when the host wired no
1249
+ * notification provider: the invite row is already committed and the caller
1250
+ * still holds `acceptUrl`, so an instance without mail is a working instance,
1251
+ * not a failed write.
1252
+ */
1253
+ async function mailInvite(req, invite, acceptUrl) {
1254
+ const notifications = req.deps.notifications;
1255
+ if (!notifications) return "not-configured";
1256
+ return deliverInvite({
1257
+ ctx: req.ctx,
1258
+ log: req.log,
1259
+ invite,
1260
+ acceptUrl,
1261
+ actor: {
1262
+ profile: req.profile,
1263
+ user: req.user
1264
+ },
1265
+ orgs: req.deps.orgs,
1266
+ notifications,
1267
+ fallbackOrgName: req.deps.instanceName
1268
+ });
1269
+ }
1270
+ /** Pending and recently accepted invites for the acting org. */
1271
+ var listInvites = async (req) => {
1272
+ requireManageOrgMembers(req);
1273
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1274
+ return shapedCollection(InviteResponseSchema, await req.deps.invites.listByOrg(ctx, orgId, parseListOptions(req.url)));
1275
+ };
1276
+ /** Create an invite and return the accept URL. */
1277
+ var createInvite = async (req) => {
1278
+ requireManageOrgMembers(req);
1279
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1280
+ const { user } = requireCaller(req);
1281
+ const input = await parseBody(req.request, CreateInviteBodySchema);
1282
+ const { platform: submittedPlatformPerms, org: submittedOrgPerms } = splitFlatPermissions(input.permissions);
1283
+ assertCanGrantPlatformPermissions(ctx, submittedPlatformPerms);
1284
+ if (!await canActorChangeOrgRole(ctx, orgId, input.orgRole, req)) apiError(403, ApiErrorCode.FORBIDDEN, "Only the org owner can invite someone as owner or admin.");
1285
+ const orgPermissions = input.orgRole === "member" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[input.orgRole]];
1286
+ const codec = tokenCodec(req.deps, "invites");
1287
+ const rawToken = codec.mintRawToken();
1288
+ const now = /* @__PURE__ */ new Date();
1289
+ const invite = {
1290
+ id: randomUUID(),
1291
+ tokenHash: codec.hashToken(rawToken),
1292
+ email: input.email,
1293
+ orgId,
1294
+ orgRole: input.orgRole,
1295
+ orgPermissions,
1296
+ platformPermissions: submittedPlatformPerms,
1297
+ invitedBy: user.id,
1298
+ createdAt: now.toISOString(),
1299
+ expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
1300
+ };
1301
+ await req.deps.invites.create(ctx, invite);
1302
+ const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
1303
+ const delivery = await mailInvite(req, invite, acceptUrl);
1304
+ return shaped(CreatedInviteResponseSchema, {
1305
+ ...invite,
1306
+ acceptUrl,
1307
+ delivery
1308
+ }, 201);
1309
+ };
1310
+ /** Revoke a pending invite. Consumed invites are preserved for audit. */
1311
+ var revokeInvite = async (req) => {
1312
+ requireManageOrgMembers(req);
1313
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1314
+ const { id } = requireParams(req.params, "id");
1315
+ if (!await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites)) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
1316
+ await req.deps.invites.revoke(ctx, id);
1317
+ return noContent();
1318
+ };
1319
+ /**
1320
+ * Re-send an invite: mint a replacement and revoke the original.
1321
+ *
1322
+ * A resend cannot reuse the original link. The raw token is never stored — only
1323
+ * its HMAC digest is — so there is nothing to re-read, and rather than weaken
1324
+ * that, this issues a fresh token and revokes the row it replaces. The old link
1325
+ * stops working the moment this returns, which is also what an admin wants
1326
+ * after mailing an invite to the wrong address.
1327
+ *
1328
+ * Grants are copied verbatim from the original. The role and permission gates
1329
+ * ran when it was minted; re-deriving them here would let a since-demoted admin
1330
+ * silently change what the invite carries.
1331
+ */
1332
+ var resendInvite = async (req) => {
1333
+ requireManageOrgMembers(req);
1334
+ const { ctx, orgId } = requireActingOrg(req, req.params.orgId);
1335
+ const { id } = requireParams(req.params, "id");
1336
+ const existing = await findPendingInviteInOrg(ctx, orgId, id, req.deps.invites);
1337
+ if (!existing) apiError(404, ApiErrorCode.NOT_FOUND, "Invite not found");
1338
+ if (existing.acceptedAt) apiError(409, ApiErrorCode.CONFLICT, "This invite has already been accepted.");
1339
+ const codec = tokenCodec(req.deps, "invites");
1340
+ const rawToken = codec.mintRawToken();
1341
+ const now = /* @__PURE__ */ new Date();
1342
+ const replacement = {
1343
+ ...existing,
1344
+ id: randomUUID(),
1345
+ tokenHash: codec.hashToken(rawToken),
1346
+ createdAt: now.toISOString(),
1347
+ expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()
1348
+ };
1349
+ await req.deps.invites.create(ctx, replacement);
1350
+ await req.deps.invites.revoke(ctx, existing.id);
1351
+ const acceptUrl = `${req.url.origin}/accept-invite?token=${rawToken}`;
1352
+ const delivery = await mailInvite(req, replacement, acceptUrl);
1353
+ return shaped(CreatedInviteResponseSchema, {
1354
+ ...replacement,
1355
+ acceptUrl,
1356
+ delivery
1357
+ }, 201);
1358
+ };
1359
+ //#endregion
1360
+ //#region ../server/src/handlers/apiTokens.ts
1361
+ /**
1362
+ * API tokens: mint, list, revoke.
1363
+ *
1364
+ * **Session-only.** A key can't manage keys, so a leaked one can't mint more or
1365
+ * revoke the owner's others to cover its tracks.
1366
+ *
1367
+ * **The raw key exists only in the mint response.** The store holds its HMAC,
1368
+ * and every response goes through a schema that has no `tokenHash`.
1369
+ */
1370
+ var DAY_MS = 864e5;
1371
+ function requireSessionInOrg(req) {
1372
+ if (req.ctx?.apiScope) apiError(403, ApiErrorCode.FORBIDDEN, "API tokens can’t manage API tokens. Sign in to the web app to do this.");
1373
+ return requireActingOrg(req, req.params.orgId);
1374
+ }
1375
+ function unavailable() {
1376
+ apiError(503, ApiErrorCode.API_TOKENS_UNAVAILABLE, "API tokens are not available on this server.");
1377
+ }
1378
+ function storeOf(req) {
1379
+ return req.deps.data.apiTokens ?? unavailable();
1380
+ }
1381
+ function codecOf(req) {
1382
+ return req.deps.tokens.apiTokens ?? unavailable();
1383
+ }
1384
+ function toResponse(token) {
1385
+ return {
1386
+ ...token,
1387
+ refusedToday: scopeRefusalsToday(token.id)
1388
+ };
1389
+ }
1390
+ /**
1391
+ * Refuse scopes naming something outside this org or out of the creator's
1392
+ * sight. Not the security boundary: a key never exceeds its owner's live rights
1393
+ * anyway. This stops someone minting a key that can only ever be refused.
1394
+ */
1395
+ async function assertScopesReachable(req, orgId, scopes) {
1396
+ const refuse = (message) => apiError(400, ApiErrorCode.VALIDATION_FAILED, message, { scopes: message });
1397
+ for (const value of scopes) {
1398
+ const { resource } = parseApiScope(value) ?? refuse(`Unknown scope: ${value}`);
1399
+ if (resource.kind === "all") continue;
1400
+ if (resource.kind === "org") {
1401
+ if (resource.id !== orgId) refuse("An org scope must name this org.");
1402
+ continue;
1403
+ }
1404
+ let projectId = resource.id;
1405
+ if (resource.kind === "definition") projectId = (await req.deps.definitionMeta.get(req.ctx, resource.id) ?? refuse(`No definition ${resource.id}.`)).projectId;
1406
+ const project = await req.deps.projects.getProject(req.ctx, projectId);
1407
+ if (!project || project.orgId !== orgId) refuse(`No ${resource.kind} ${resource.id} in this org.`);
1408
+ try {
1409
+ await requireCanViewProject(req, projectId);
1410
+ } catch (err) {
1411
+ if (isApiError(err)) refuse(`You can’t access ${resource.kind} ${resource.id}.`);
1412
+ throw err;
1413
+ }
1414
+ }
1415
+ }
1416
+ /**
1417
+ * Tell the owner a key now exists on their account, best-effort. The case that
1418
+ * matters is the one where they didn't make it.
1419
+ */
1420
+ async function mailTokenCreated(req, token) {
1421
+ const notifications = req.deps.notifications;
1422
+ const to = req.user?.email;
1423
+ if (!notifications || !to) return;
1424
+ try {
1425
+ const org = await req.deps.orgs.getOrg(req.ctx, token.orgId);
1426
+ await notifications.send(renderApiTokenCreatedEmail({
1427
+ to,
1428
+ tokenName: token.name,
1429
+ orgName: org?.name ?? req.deps.instanceName,
1430
+ scopes: token.scopes.map(describeApiScope),
1431
+ expiresAt: token.expiresAt,
1432
+ manageUrl: `${req.url.origin}/admin/tokens`
1433
+ }), req.log);
1434
+ } catch (err) {
1435
+ req.log.warn("API token mail could not be sent", {
1436
+ component: "ApiTokens",
1437
+ tokenId: token.id,
1438
+ reason: err instanceof Error ? err.message : String(err)
1439
+ });
1440
+ }
1441
+ }
1442
+ /**
1443
+ * The caller's own tokens in this org, newest first, including revoked and
1444
+ * expired ones. `?all=true` returns everyone's and needs `manage_org_members`.
1445
+ */
1446
+ var listApiTokens = async (req) => {
1447
+ const { ctx, orgId } = requireSessionInOrg(req);
1448
+ const all = req.url.searchParams.get("all") === "true";
1449
+ if (all) requireManageOrgMembers(req);
1450
+ const page = await storeOf(req).listByOrg(ctx, orgId, {
1451
+ ...parseListOptions(req.url),
1452
+ userId: all ? void 0 : ctx.userId
1453
+ });
1454
+ return shapedCollection(ApiTokenResponseSchema, {
1455
+ ...page,
1456
+ items: page.items.map(toResponse)
1457
+ });
1458
+ };
1459
+ /** Mint a token acting as the caller. The raw key is in this response and nowhere else. */
1460
+ var createApiToken = async (req) => {
1461
+ const { ctx, orgId } = requireSessionInOrg(req);
1462
+ requirePermission(req, "manage_api_tokens");
1463
+ const { user } = requireCaller(req);
1464
+ const store = storeOf(req);
1465
+ const codec = codecOf(req);
1466
+ const delegated = req.deps.auth.delegatedSession;
1467
+ if (delegated && !(await delegated.status()).ok) unavailable();
1468
+ const input = await parseBody(req.request, CreateApiTokenBodySchema);
1469
+ await assertScopesReachable(req, orgId, input.scopes);
1470
+ const raw = codec.mintRawToken();
1471
+ const now = /* @__PURE__ */ new Date();
1472
+ const token = {
1473
+ id: randomUUID(),
1474
+ userId: user.id,
1475
+ createdBy: user.id,
1476
+ orgId,
1477
+ name: input.name,
1478
+ tokenHash: codec.hashToken(raw),
1479
+ scopes: [...new Set(input.scopes)],
1480
+ createdAt: now.toISOString(),
1481
+ expiresAt: new Date(now.getTime() + input.expiresInDays * DAY_MS).toISOString(),
1482
+ lastUsedAt: null,
1483
+ revokedAt: null
1484
+ };
1485
+ await store.create(ctx, token);
1486
+ await mailTokenCreated(req, token);
1487
+ const { tokenHash: _hash, ...summary } = token;
1488
+ return {
1489
+ status: 201,
1490
+ headers: { "Cache-Control": "no-store" },
1491
+ body: CreatedApiTokenResponseSchema.parse({
1492
+ token: toResponse(summary),
1493
+ secret: raw
1494
+ })
1495
+ };
1496
+ };
1497
+ /**
1498
+ * Revoke a token: the owner's own, or anyone's in the org for
1499
+ * `manage_org_members`. Someone else's token reads as missing, not forbidden.
1500
+ */
1501
+ var revokeApiToken = async (req) => {
1502
+ const { ctx, orgId } = requireSessionInOrg(req);
1503
+ const { tokenId } = requireParams(req.params, "tokenId");
1504
+ const store = storeOf(req);
1505
+ const token = await store.get(ctx, tokenId);
1506
+ const own = token?.userId === ctx.userId;
1507
+ if (!token || token.orgId !== orgId || !own && !hasPermission(ctx, "manage_org_members")) apiError(404, ApiErrorCode.NOT_FOUND, "API token not found");
1508
+ await store.revoke(ctx, tokenId, own ? "owner" : "admin");
1509
+ return noContent();
1510
+ };
1511
+
1512
+ export { createInvite as A, revokeInvite as B, resendInvite as C, listOrgMembers as D, updateOrgMember as E, removeOrgMember as F, listApiTokens as G, createApiToken as H, revokeApiToken as I, listProjects as J, createProject as K, getProject as L, updateProject as M, deleteProject as N, listProjectMembers as O, addProjectMember as P, updateProjectMemberRole as Q, removeProjectMember as R, reclaimProject as S, uploadDefinitionImage as a, getDefinitionSchema as b, createDefinition as c, deleteDefinition as d, listShareLinks as e, createShareLink as f, getDefinition as g, 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 };
1513
+ //# sourceMappingURL=handlers.js-BtIEnx6m.js.map