@selvajs/selva 4.2.0 → 4.3.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 (543) hide show
  1. package/build/client/_app/immutable/assets/0.-MS0dTYb.css +1 -0
  2. package/build/client/_app/immutable/assets/0.-MS0dTYb.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.-MS0dTYb.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/20.Bne67Vgr.css +1 -0
  5. package/build/client/_app/immutable/assets/20.Bne67Vgr.css.br +0 -0
  6. package/build/client/_app/immutable/assets/20.Bne67Vgr.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/0owY5F6O.js +2 -0
  9. package/build/client/_app/immutable/chunks/0owY5F6O.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/0owY5F6O.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{C98bdhQ5.js → 1O7Vyn3x.js} +1 -1
  12. package/build/client/_app/immutable/chunks/1O7Vyn3x.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/1O7Vyn3x.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{-UMoMsui.js → 3Ah3Y6N9.js} +1 -1
  15. package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/3Ah3Y6N9.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/6CzuHfQM.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/9DES--UJ.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/B-Kuf-9K.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/B1z9if9B.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/B21bldal.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/B6_AR4oL.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/BEFa4rcT.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/BGIAOk5X.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BHhjUaik.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/BIIXkPqf.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/BJTJCSLB.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BLZ195WY.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BM8Ok6pJ.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/BOsr6E_d.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BTm-dDt9.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BX0gN9mF.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/BaMCSMGs.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BfHBnYuG.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BiG82jCv.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/BihI7LuH.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{DNu_no60.js → BjlANOwQ.js} +1 -1
  38. package/build/client/_app/immutable/chunks/BjlANOwQ.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BjlANOwQ.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/Bma65zV8.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BnIDUuJL.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/BnZOgasr.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/BnzoF81W.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BpQqe39G.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/BsKtJj5h.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/BtugGMaj.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{B6yEy6Wb.js → Buy2icyP.js} +1 -1
  48. package/build/client/_app/immutable/chunks/Buy2icyP.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/Buy2icyP.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/Bwn5lHBl.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/BzBbrBKd.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/C33A5aSj.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/C3WxOOC9.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/C46MGZre.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/CDmA5ezP.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/CE_gxD9G.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/CGKZc1Kf.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/CIHhLSqA.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/CNC_mCsM.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/CYyqq9B1.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/CeS0GhtF.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/CnXIg_dO.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{2n-qzJg2.js → CpzrN_ad.js} +1 -1
  65. package/build/client/_app/immutable/chunks/CpzrN_ad.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/CpzrN_ad.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/Cqb2-zYs.js +1 -0
  68. package/build/client/_app/immutable/chunks/Cqb2-zYs.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/Cqb2-zYs.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/CsdWDH4Y.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/CumXBEVX.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/CvUP44VI.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/CzCTTv8Q.js +1 -0
  74. package/build/client/_app/immutable/chunks/CzCTTv8Q.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/CzCTTv8Q.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/D-3pI9hp.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/{D37hHIb0.js → D0jw87aj.js} +1 -1
  79. package/build/client/_app/immutable/chunks/D0jw87aj.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/D0jw87aj.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/{BQ0arxbK.js → D1FLuKx5.js} +1 -1
  82. package/build/client/_app/immutable/chunks/D1FLuKx5.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/D1FLuKx5.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/D1xkoVpc.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/DCBLBrrW.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/DEk358l3.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/DRNG0pfi.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/DRpLcVdK.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/DS1KfRtl.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/DYfK6Plb.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/DZM0bVcB.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/D_gPt7DB.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/DdEmEaOR.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/De-Sjn1V.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/DeMiewtM.js.gz +0 -0
  96. package/build/client/_app/immutable/chunks/DfVTcmam.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/DfbumCTS.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/Diyh8RG-.js.gz +0 -0
  99. package/build/client/_app/immutable/chunks/DkVLFJC2.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/DkpwXYYZ.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/Dl_x4ktn.js +1 -0
  102. package/build/client/_app/immutable/chunks/Dl_x4ktn.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/Dl_x4ktn.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/Dn_lJm0y.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/DqK2lhM-.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/Dr-qnmvi.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/DtFVCiwY.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/KIV0kKdR.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/Q9Y439fs.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/T-Nslbso.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/Uv0-HWHq.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/XwEuxkth.js +4108 -0
  114. package/build/client/_app/immutable/chunks/XwEuxkth.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/XwEuxkth.js.gz +0 -0
  116. package/build/client/_app/immutable/chunks/jO1WSR3P.js.gz +0 -0
  117. package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/vyYztzrZ.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/xQ1SsCxk.js.gz +0 -0
  120. package/build/client/_app/immutable/entry/app.BU1ZTica.js +2 -0
  121. package/build/client/_app/immutable/entry/app.BU1ZTica.js.br +0 -0
  122. package/build/client/_app/immutable/entry/app.BU1ZTica.js.gz +0 -0
  123. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js +1 -0
  124. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.br +2 -0
  125. package/build/client/_app/immutable/entry/start.C_5mwPOZ.js.gz +0 -0
  126. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js +9 -0
  127. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/0.Dr3zOYh5.js.gz +0 -0
  129. package/build/client/_app/immutable/nodes/{1.5JE3G8iG.js → 1.BGw1TtE-.js} +1 -1
  130. package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.br +0 -0
  131. package/build/client/_app/immutable/nodes/1.BGw1TtE-.js.gz +0 -0
  132. package/build/client/_app/immutable/nodes/{10.DpfN1qrg.js → 10.lZeHcKpq.js} +1 -1
  133. package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.br +0 -0
  134. package/build/client/_app/immutable/nodes/10.lZeHcKpq.js.gz +0 -0
  135. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js +2 -0
  136. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.br +0 -0
  137. package/build/client/_app/immutable/nodes/11.DUHLFhc8.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{13.D5OdE_HH.js → 13.DUetX8JN.js} +1 -1
  140. package/build/client/_app/immutable/nodes/13.DUetX8JN.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/13.DUetX8JN.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{14.UGx5pLUS.js → 14.BMNgebxg.js} +1 -1
  143. package/build/client/_app/immutable/nodes/14.BMNgebxg.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/14.BMNgebxg.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/{16.CqZNgdz-.js → 16.BK5X4N0B.js} +1 -1
  147. package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.br +0 -0
  148. package/build/client/_app/immutable/nodes/16.BK5X4N0B.js.gz +0 -0
  149. package/build/client/_app/immutable/nodes/{17.B1PHOW1Y.js → 17.DESUDRJ7.js} +1 -1
  150. package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/17.DESUDRJ7.js.gz +0 -0
  152. package/build/client/_app/immutable/nodes/18.Cl9SXwAF.js.gz +0 -0
  153. package/build/client/_app/immutable/nodes/{19.ClB_k0uw.js → 19.BGOmShx1.js} +1 -1
  154. package/build/client/_app/immutable/nodes/19.BGOmShx1.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/19.BGOmShx1.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/{2.uPLLf3gR.js → 2.Bil4apV-.js} +1 -1
  157. package/build/client/_app/immutable/nodes/2.Bil4apV-.js.br +0 -0
  158. package/build/client/_app/immutable/nodes/2.Bil4apV-.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js +11 -0
  160. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.br +0 -0
  161. package/build/client/_app/immutable/nodes/20.BN9CyZsk.js.gz +0 -0
  162. package/build/client/_app/immutable/nodes/{21.B1xX86Nz.js → 21.DLY2CWfL.js} +1 -1
  163. package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.br +0 -0
  164. package/build/client/_app/immutable/nodes/21.DLY2CWfL.js.gz +0 -0
  165. package/build/client/_app/immutable/nodes/{23.BWuAu45o.js → 23.DwnJEjle.js} +1 -1
  166. package/build/client/_app/immutable/nodes/23.DwnJEjle.js.br +0 -0
  167. package/build/client/_app/immutable/nodes/23.DwnJEjle.js.gz +0 -0
  168. package/build/client/_app/immutable/nodes/{24.DSWGE_q2.js → 24.C9nhiSAI.js} +1 -1
  169. package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.br +0 -0
  170. package/build/client/_app/immutable/nodes/24.C9nhiSAI.js.gz +0 -0
  171. package/build/client/_app/immutable/nodes/25.Boy7QQiW.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/26.JTwwV2O8.js.gz +0 -0
  173. package/build/client/_app/immutable/nodes/{27.CjlEhW_1.js → 27.DDMHOK1v.js} +1 -1
  174. package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.br +0 -0
  175. package/build/client/_app/immutable/nodes/27.DDMHOK1v.js.gz +0 -0
  176. package/build/client/_app/immutable/nodes/{28.U-BnDxlP.js → 28.BKxO5tXo.js} +1 -1
  177. package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/28.BKxO5tXo.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/{29.cl9udKxV.js → 29.BE9agX-A.js} +1 -1
  180. package/build/client/_app/immutable/nodes/29.BE9agX-A.js.br +0 -0
  181. package/build/client/_app/immutable/nodes/29.BE9agX-A.js.gz +0 -0
  182. package/build/client/_app/immutable/nodes/{3.UKn7Q9OQ.js → 3.Cr_OcaHZ.js} +1 -1
  183. package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/3.Cr_OcaHZ.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/{30.DPqPYAg4.js → 30.1oMiKsa_.js} +1 -1
  186. package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/30.1oMiKsa_.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/31.SiZTd523.js.gz +0 -0
  189. package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js.gz +0 -0
  190. package/build/client/_app/immutable/nodes/4.CieI7_Lb.js.gz +0 -0
  191. package/build/client/_app/immutable/nodes/{5.CbYguvwB.js → 5.R3EURuYN.js} +1 -1
  192. package/build/client/_app/immutable/nodes/5.R3EURuYN.js.br +1 -0
  193. package/build/client/_app/immutable/nodes/5.R3EURuYN.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/{6.DZgUvAex.js → 6.XEBvU5zF.js} +1 -1
  195. package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/6.XEBvU5zF.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/{7.Cv7r8DBm.js → 7.aBxKpwwY.js} +1 -1
  198. package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.br +0 -0
  199. package/build/client/_app/immutable/nodes/7.aBxKpwwY.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/{8.zr3bqaC_.js → 8.CEAXwPtw.js} +1 -1
  201. package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/8.CEAXwPtw.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js +1 -0
  204. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/9.DNoTcl-q.js.gz +0 -0
  206. package/build/client/_app/version.json +1 -1
  207. package/build/client/_app/version.json.br +0 -0
  208. package/build/client/_app/version.json.gz +0 -0
  209. package/build/client/favicon/favicon.svg.gz +0 -0
  210. package/build/client/robots.txt.gz +0 -0
  211. package/build/server/chunks/{0-v49L2HZX.js → 0-BGZb7GUr.js} +6 -6
  212. package/build/server/chunks/0-BGZb7GUr.js.map +1 -0
  213. package/build/server/chunks/{1-B8xC9fBg.js → 1-CTiyXq5H.js} +2 -2
  214. package/build/server/chunks/{1-B8xC9fBg.js.map → 1-CTiyXq5H.js.map} +1 -1
  215. package/build/server/chunks/{10-BowWygfm.js → 10-CoNR8vNf.js} +7 -7
  216. package/build/server/chunks/{10-BowWygfm.js.map → 10-CoNR8vNf.js.map} +1 -1
  217. package/build/server/chunks/{11-BLjiJpX4.js → 11-BvWfYPvY.js} +8 -7
  218. package/build/server/chunks/11-BvWfYPvY.js.map +1 -0
  219. package/build/server/chunks/{12-Dk9nDvlV.js → 12-DVPsHnBz.js} +3 -3
  220. package/build/server/chunks/12-DVPsHnBz.js.map +1 -0
  221. package/build/server/chunks/{13-CZeQX-Gk.js → 13-UcumwEMR.js} +3 -3
  222. package/build/server/chunks/{13-CZeQX-Gk.js.map → 13-UcumwEMR.js.map} +1 -1
  223. package/build/server/chunks/{14-VgzSpObZ.js → 14-DDGpNRmy.js} +3 -3
  224. package/build/server/chunks/{14-VgzSpObZ.js.map → 14-DDGpNRmy.js.map} +1 -1
  225. package/build/server/chunks/{15-CKqEgZmF.js → 15-CRsKpL17.js} +4 -4
  226. package/build/server/chunks/{15-CKqEgZmF.js.map → 15-CRsKpL17.js.map} +1 -1
  227. package/build/server/chunks/{16-9hO-6bzO.js → 16-Brrnhdb0.js} +6 -6
  228. package/build/server/chunks/{16-9hO-6bzO.js.map → 16-Brrnhdb0.js.map} +1 -1
  229. package/build/server/chunks/{17-B9Aw6HdC.js → 17-nTtqXZFS.js} +2 -2
  230. package/build/server/chunks/{17-B9Aw6HdC.js.map → 17-nTtqXZFS.js.map} +1 -1
  231. package/build/server/chunks/{18-BTSLWMQT.js → 18-CM6a70dY.js} +2 -2
  232. package/build/server/chunks/{18-BTSLWMQT.js.map → 18-CM6a70dY.js.map} +1 -1
  233. package/build/server/chunks/{19-C9FaW__N.js → 19-C6JT4QWN.js} +4 -4
  234. package/build/server/chunks/19-C6JT4QWN.js.map +1 -0
  235. package/build/server/chunks/{2-CwQhh3Hg.js → 2-Bzu1IIyQ.js} +8 -8
  236. package/build/server/chunks/2-Bzu1IIyQ.js.map +1 -0
  237. package/build/server/chunks/{20-52YCUMK3.js → 20-BuEknXxb.js} +11 -11
  238. package/build/server/chunks/{20-52YCUMK3.js.map → 20-BuEknXxb.js.map} +1 -1
  239. package/build/server/chunks/{21-Dcz_2iKy.js → 21-C8VCOVHZ.js} +3 -3
  240. package/build/server/chunks/{21-Dcz_2iKy.js.map → 21-C8VCOVHZ.js.map} +1 -1
  241. package/build/server/chunks/{23-C-gTGofY.js → 23-B2o_ghvU.js} +7 -7
  242. package/build/server/chunks/{23-C-gTGofY.js.map → 23-B2o_ghvU.js.map} +1 -1
  243. package/build/server/chunks/{24-ukwP0nYw.js → 24-Q1fbSR2o.js} +5 -4
  244. package/build/server/chunks/24-Q1fbSR2o.js.map +1 -0
  245. package/build/server/chunks/{25-Oe01GQUn.js → 25-BzYQ8Zk-.js} +2 -2
  246. package/build/server/chunks/{25-Oe01GQUn.js.map → 25-BzYQ8Zk-.js.map} +1 -1
  247. package/build/server/chunks/{27-C9kRY1qj.js → 27-5VeF0OHT.js} +4 -4
  248. package/build/server/chunks/{27-C9kRY1qj.js.map → 27-5VeF0OHT.js.map} +1 -1
  249. package/build/server/chunks/{28-X583jLPJ.js → 28-GJ_nbLXN.js} +3 -3
  250. package/build/server/chunks/{28-X583jLPJ.js.map → 28-GJ_nbLXN.js.map} +1 -1
  251. package/build/server/chunks/{29-PJhSN-Wu.js → 29-lZH9mmI0.js} +4 -4
  252. package/build/server/chunks/{29-PJhSN-Wu.js.map → 29-lZH9mmI0.js.map} +1 -1
  253. package/build/server/chunks/{3-DZiroZZA.js → 3-BlqLiQTJ.js} +2 -2
  254. package/build/server/chunks/{3-DZiroZZA.js.map → 3-BlqLiQTJ.js.map} +1 -1
  255. package/build/server/chunks/{30-DvqVphAd.js → 30-CA_ezUGl.js} +4 -4
  256. package/build/server/chunks/{30-DvqVphAd.js.map → 30-CA_ezUGl.js.map} +1 -1
  257. package/build/server/chunks/{31-BefyQf51.js → 31-CQ-8s0Lw.js} +2 -2
  258. package/build/server/chunks/{31-BefyQf51.js.map → 31-CQ-8s0Lw.js.map} +1 -1
  259. package/build/server/chunks/{32-DIdNQgym.js → 32-BmsICS9-.js} +2 -2
  260. package/build/server/chunks/{32-DIdNQgym.js.map → 32-BmsICS9-.js.map} +1 -1
  261. package/build/server/chunks/{5-QlPeCe4d.js → 5-0tLn4w9t.js} +3 -3
  262. package/build/server/chunks/5-0tLn4w9t.js.map +1 -0
  263. package/build/server/chunks/{6-3t8NszBJ.js → 6-Dk8-CNQc.js} +4 -4
  264. package/build/server/chunks/6-Dk8-CNQc.js.map +1 -0
  265. package/build/server/chunks/{7-DgFxSLWj.js → 7-g1mcBFfT.js} +3 -3
  266. package/build/server/chunks/7-g1mcBFfT.js.map +1 -0
  267. package/build/server/chunks/{8-BKivPkMd.js → 8-BXyJwXPH.js} +3 -3
  268. package/build/server/chunks/{8-BKivPkMd.js.map → 8-BXyJwXPH.js.map} +1 -1
  269. package/build/server/chunks/{9-COv3kpjW.js → 9-B3S-g_A8.js} +4 -4
  270. package/build/server/chunks/{9-COv3kpjW.js.map → 9-B3S-g_A8.js.map} +1 -1
  271. package/build/server/chunks/{AppHeader-DBNR_OCa.js → AppHeader-6ioAYhJf.js} +2 -2
  272. package/build/server/chunks/{AppHeader-DBNR_OCa.js.map → AppHeader-6ioAYhJf.js.map} +1 -1
  273. package/build/server/chunks/{DefinitionCard-BeONTmrJ.js → DefinitionCard-O1k8h5Pi.js} +2 -2
  274. package/build/server/chunks/{DefinitionCard-BeONTmrJ.js.map → DefinitionCard-O1k8h5Pi.js.map} +1 -1
  275. package/build/server/chunks/{UserChip-CCZ9yMM3.js → UserChip-fy4ucYa9.js} +461 -369
  276. package/build/server/chunks/UserChip-fy4ucYa9.js.map +1 -0
  277. package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js → _layout.svelte-BNCiY_LE.js} +9 -7
  278. package/build/server/chunks/{_layout.svelte-Cjs-r7Xa.js.map → _layout.svelte-BNCiY_LE.js.map} +1 -1
  279. package/build/server/chunks/{_layout.svelte-CgAG7l2U.js → _layout.svelte-BR1971uC.js} +9 -7
  280. package/build/server/chunks/{_layout.svelte-CgAG7l2U.js.map → _layout.svelte-BR1971uC.js.map} +1 -1
  281. package/build/server/chunks/{_layout.svelte-VEFMEljC.js → _layout.svelte-CHTfYN7Z.js} +9 -7
  282. package/build/server/chunks/{_layout.svelte-VEFMEljC.js.map → _layout.svelte-CHTfYN7Z.js.map} +1 -1
  283. package/build/server/chunks/{_layout.svelte-DU36kuy0.js → _layout.svelte-DtDfOje_.js} +5 -5
  284. package/build/server/chunks/_layout.svelte-DtDfOje_.js.map +1 -0
  285. package/build/server/chunks/{_page.svelte-DJnICJdZ.js → _page.svelte-6m8-zq9_.js} +887 -786
  286. package/build/server/chunks/_page.svelte-6m8-zq9_.js.map +1 -0
  287. package/build/server/chunks/{_page.svelte-Mwitq0vD.js → _page.svelte-B-BjG1Bg.js} +10 -8
  288. package/build/server/chunks/{_page.svelte-Mwitq0vD.js.map → _page.svelte-B-BjG1Bg.js.map} +1 -1
  289. package/build/server/chunks/{_page.svelte-1sc1cfuW.js → _page.svelte-B2tNMNfb.js} +4 -3
  290. package/build/server/chunks/{_page.svelte-1sc1cfuW.js.map → _page.svelte-B2tNMNfb.js.map} +1 -1
  291. package/build/server/chunks/{_page.svelte-CSZEgmHp.js → _page.svelte-BMk_ClLw.js} +5 -5
  292. package/build/server/chunks/_page.svelte-BMk_ClLw.js.map +1 -0
  293. package/build/server/chunks/{_page.svelte-CeKqqMje.js → _page.svelte-BX7fFjm7.js} +5 -4
  294. package/build/server/chunks/{_page.svelte-CeKqqMje.js.map → _page.svelte-BX7fFjm7.js.map} +1 -1
  295. package/build/server/chunks/{_page.svelte-DlnKE8Z9.js → _page.svelte-CR79Ws-C.js} +5 -4
  296. package/build/server/chunks/{_page.svelte-DlnKE8Z9.js.map → _page.svelte-CR79Ws-C.js.map} +1 -1
  297. package/build/server/chunks/{_page.svelte-DIeTvNzN.js → _page.svelte-HTC9yaHJ.js} +9 -7
  298. package/build/server/chunks/{_page.svelte-DIeTvNzN.js.map → _page.svelte-HTC9yaHJ.js.map} +1 -1
  299. package/build/server/chunks/{_page.svelte-DSPm244d.js → _page.svelte-W41FvlvN.js} +5 -1
  300. package/build/server/chunks/_page.svelte-W41FvlvN.js.map +1 -0
  301. package/build/server/chunks/{_page.svelte-DSYaUquf.js → _page.svelte-YVHQEj69.js} +8 -7
  302. package/build/server/chunks/_page.svelte-YVHQEj69.js.map +1 -0
  303. package/build/server/chunks/{_page.svelte-BQZ-qC72.js → _page.svelte-tQDqmoYu.js} +5 -4
  304. package/build/server/chunks/{_page.svelte-BQZ-qC72.js.map → _page.svelte-tQDqmoYu.js.map} +1 -1
  305. package/build/server/chunks/{_server.ts-t9_veBtJ.js → _server.ts-A3y5hBxw.js} +4 -4
  306. package/build/server/chunks/{_server.ts-t9_veBtJ.js.map → _server.ts-A3y5hBxw.js.map} +1 -1
  307. package/build/server/chunks/{_server.ts-C3sOwl5l.js → _server.ts-B5jlr2iF.js} +5 -5
  308. package/build/server/chunks/{_server.ts-C3sOwl5l.js.map → _server.ts-B5jlr2iF.js.map} +1 -1
  309. package/build/server/chunks/{_server.ts-DK7t4rlY.js → _server.ts-BON6qGm5.js} +5 -5
  310. package/build/server/chunks/{_server.ts-DK7t4rlY.js.map → _server.ts-BON6qGm5.js.map} +1 -1
  311. package/build/server/chunks/{_server.ts-CW_1VZGk.js → _server.ts-BO_GwwIE.js} +5 -5
  312. package/build/server/chunks/{_server.ts-CW_1VZGk.js.map → _server.ts-BO_GwwIE.js.map} +1 -1
  313. package/build/server/chunks/{_server.ts-DgTNMZbG.js → _server.ts-BUw5lGMN.js} +5 -5
  314. package/build/server/chunks/{_server.ts-DgTNMZbG.js.map → _server.ts-BUw5lGMN.js.map} +1 -1
  315. package/build/server/chunks/{_server.ts-CKvfxWeo.js → _server.ts-Bhj8Vx5l.js} +6 -6
  316. package/build/server/chunks/{_server.ts-CKvfxWeo.js.map → _server.ts-Bhj8Vx5l.js.map} +1 -1
  317. package/build/server/chunks/{_server.ts-CMKxt34Z.js → _server.ts-BqlGKKaE.js} +5 -5
  318. package/build/server/chunks/{_server.ts-CMKxt34Z.js.map → _server.ts-BqlGKKaE.js.map} +1 -1
  319. package/build/server/chunks/{_server.ts-ODEutN30.js → _server.ts-BvMDaAZY.js} +5 -5
  320. package/build/server/chunks/{_server.ts-ODEutN30.js.map → _server.ts-BvMDaAZY.js.map} +1 -1
  321. package/build/server/chunks/{_server.ts-C1wqbTiL.js → _server.ts-C-MiDKCm.js} +3 -3
  322. package/build/server/chunks/{_server.ts-C1wqbTiL.js.map → _server.ts-C-MiDKCm.js.map} +1 -1
  323. package/build/server/chunks/{_server.ts-B7X5-4kS.js → _server.ts-C05I9RVA.js} +5 -5
  324. package/build/server/chunks/{_server.ts-B7X5-4kS.js.map → _server.ts-C05I9RVA.js.map} +1 -1
  325. package/build/server/chunks/{_server.ts-DsFj_8lL.js → _server.ts-C4BZG5kA.js} +6 -6
  326. package/build/server/chunks/_server.ts-C4BZG5kA.js.map +1 -0
  327. package/build/server/chunks/{_server.ts-Du-NpBy4.js → _server.ts-CBAiDOcP.js} +5 -5
  328. package/build/server/chunks/{_server.ts-Du-NpBy4.js.map → _server.ts-CBAiDOcP.js.map} +1 -1
  329. package/build/server/chunks/{_server.ts-17aVSHOa.js → _server.ts-CEE9G3nv.js} +5 -5
  330. package/build/server/chunks/{_server.ts-17aVSHOa.js.map → _server.ts-CEE9G3nv.js.map} +1 -1
  331. package/build/server/chunks/{_server.ts-CXYPZtry.js → _server.ts-CJ37R1sx.js} +10 -6
  332. package/build/server/chunks/_server.ts-CJ37R1sx.js.map +1 -0
  333. package/build/server/chunks/{_server.ts-8ahOmk_6.js → _server.ts-CJ5P0_cD.js} +5 -5
  334. package/build/server/chunks/{_server.ts-8ahOmk_6.js.map → _server.ts-CJ5P0_cD.js.map} +1 -1
  335. package/build/server/chunks/{_server.ts-vURDyV-V.js → _server.ts-Ca-ZnaSe.js} +5 -5
  336. package/build/server/chunks/{_server.ts-vURDyV-V.js.map → _server.ts-Ca-ZnaSe.js.map} +1 -1
  337. package/build/server/chunks/{_server.ts-C-8S5O0H.js → _server.ts-CewoOx5S.js} +5 -5
  338. package/build/server/chunks/{_server.ts-C-8S5O0H.js.map → _server.ts-CewoOx5S.js.map} +1 -1
  339. package/build/server/chunks/{_server.ts-B0qq-nxh.js → _server.ts-ChhV0tlQ.js} +5 -5
  340. package/build/server/chunks/{_server.ts-B0qq-nxh.js.map → _server.ts-ChhV0tlQ.js.map} +1 -1
  341. package/build/server/chunks/{_server.ts-hg9WxMNg.js → _server.ts-Ck5KHS5f.js} +2 -2
  342. package/build/server/chunks/{_server.ts-hg9WxMNg.js.map → _server.ts-Ck5KHS5f.js.map} +1 -1
  343. package/build/server/chunks/{_server.ts-BRjl7H1o.js → _server.ts-ClymRXMH.js} +5 -5
  344. package/build/server/chunks/{_server.ts-BRjl7H1o.js.map → _server.ts-ClymRXMH.js.map} +1 -1
  345. package/build/server/chunks/{_server.ts-BL7-YPnc.js → _server.ts-CsWWoLDJ.js} +7 -7
  346. package/build/server/chunks/_server.ts-CsWWoLDJ.js.map +1 -0
  347. package/build/server/chunks/{_server.ts-DMnMoi_a.js → _server.ts-CtJaazcE.js} +5 -5
  348. package/build/server/chunks/{_server.ts-DMnMoi_a.js.map → _server.ts-CtJaazcE.js.map} +1 -1
  349. package/build/server/chunks/{_server.ts-Bq2BT6_L.js → _server.ts-CyjVVRiT.js} +9 -9
  350. package/build/server/chunks/_server.ts-CyjVVRiT.js.map +1 -0
  351. package/build/server/chunks/{_server.ts-Cbe4naEr.js → _server.ts-D0PjwFdv.js} +5 -5
  352. package/build/server/chunks/{_server.ts-Cbe4naEr.js.map → _server.ts-D0PjwFdv.js.map} +1 -1
  353. package/build/server/chunks/{_server.ts-Dukt2veu.js → _server.ts-D7tgGcoB.js} +3 -3
  354. package/build/server/chunks/{_server.ts-Dukt2veu.js.map → _server.ts-D7tgGcoB.js.map} +1 -1
  355. package/build/server/chunks/{_server.ts-bONEWPMV.js → _server.ts-DBV9dA6A.js} +5 -5
  356. package/build/server/chunks/{_server.ts-bONEWPMV.js.map → _server.ts-DBV9dA6A.js.map} +1 -1
  357. package/build/server/chunks/{_server.ts-EnuOtr_j.js → _server.ts-DLUA6_Lf.js} +29 -9
  358. package/build/server/chunks/_server.ts-DLUA6_Lf.js.map +1 -0
  359. package/build/server/chunks/{_server.ts-BqsgEogJ.js → _server.ts-DM01ishT.js} +5 -5
  360. package/build/server/chunks/{_server.ts-BqsgEogJ.js.map → _server.ts-DM01ishT.js.map} +1 -1
  361. package/build/server/chunks/{_server.ts-4eVxyBg6.js → _server.ts-DNeVKrs8.js} +6 -6
  362. package/build/server/chunks/{_server.ts-4eVxyBg6.js.map → _server.ts-DNeVKrs8.js.map} +1 -1
  363. package/build/server/chunks/{_server.ts-B_KQteIy.js → _server.ts-DlDf2qpE.js} +6 -6
  364. package/build/server/chunks/{_server.ts-B_KQteIy.js.map → _server.ts-DlDf2qpE.js.map} +1 -1
  365. package/build/server/chunks/{_server.ts-Dsoq_gsI.js → _server.ts-DmqbBNeI.js} +5 -5
  366. package/build/server/chunks/{_server.ts-Dsoq_gsI.js.map → _server.ts-DmqbBNeI.js.map} +1 -1
  367. package/build/server/chunks/{_server.ts-B7Z1RMy4.js → _server.ts-DwqLpa_k.js} +5 -5
  368. package/build/server/chunks/{_server.ts-B7Z1RMy4.js.map → _server.ts-DwqLpa_k.js.map} +1 -1
  369. package/build/server/chunks/{_server.ts-DpkIJe-d.js → _server.ts-IVIAzAUs.js} +5 -5
  370. package/build/server/chunks/{_server.ts-DpkIJe-d.js.map → _server.ts-IVIAzAUs.js.map} +1 -1
  371. package/build/server/chunks/{_server.ts-CUcFObAP.js → _server.ts-KdED3s6W.js} +5 -5
  372. package/build/server/chunks/{_server.ts-CUcFObAP.js.map → _server.ts-KdED3s6W.js.map} +1 -1
  373. package/build/server/chunks/{_server.ts-ByqZZZxB.js → _server.ts-Xl5CYncx.js} +3 -3
  374. package/build/server/chunks/{_server.ts-ByqZZZxB.js.map → _server.ts-Xl5CYncx.js.map} +1 -1
  375. package/build/server/chunks/{_server.ts-BiJbME_l.js → _server.ts-Xpgu2-ka.js} +8 -8
  376. package/build/server/chunks/_server.ts-Xpgu2-ka.js.map +1 -0
  377. package/build/server/chunks/{_server.ts-D4mOhrFH.js → _server.ts-eVLE380Q.js} +5 -5
  378. package/build/server/chunks/{_server.ts-D4mOhrFH.js.map → _server.ts-eVLE380Q.js.map} +1 -1
  379. package/build/server/chunks/{_server.ts-COWH7HN8.js → _server.ts-kighVn_d.js} +5 -5
  380. package/build/server/chunks/{_server.ts-COWH7HN8.js.map → _server.ts-kighVn_d.js.map} +1 -1
  381. package/build/server/chunks/{_server.ts-BtXdHfbr.js → _server.ts-r2RVYvYA.js} +5 -5
  382. package/build/server/chunks/{_server.ts-BtXdHfbr.js.map → _server.ts-r2RVYvYA.js.map} +1 -1
  383. package/build/server/chunks/{access.server-BBglojso.js → access.server-ByXvmWyF.js} +4 -4
  384. package/build/server/chunks/{access.server-BBglojso.js.map → access.server-ByXvmWyF.js.map} +1 -1
  385. package/build/server/chunks/{api-errors-agQVBoep.js → api-errors-C0SWfJj5.js} +3 -3
  386. package/build/server/chunks/{api-errors-agQVBoep.js.map → api-errors-C0SWfJj5.js.map} +1 -1
  387. package/build/server/chunks/{auth-bootstrap.server-CdwMOcYI.js → auth-bootstrap.server-zvPqZ6kt.js} +5 -4
  388. package/build/server/chunks/auth-bootstrap.server-zvPqZ6kt.js.map +1 -0
  389. package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js → bootHealth.server-CLLVkbZZ.js} +2 -2
  390. package/build/server/chunks/{bootHealth.server-Ca8zFRpM.js.map → bootHealth.server-CLLVkbZZ.js.map} +1 -1
  391. package/build/server/chunks/{computeLimits-CKK96OOR.js → computeLimits-5PaWFMYq.js} +4 -3
  392. package/build/server/chunks/computeLimits-5PaWFMYq.js.map +1 -0
  393. package/build/server/chunks/{dialog-description-C-wNjCmv.js → dialog-description-8UnYiAMX.js} +2 -2
  394. package/build/server/chunks/{dialog-description-C-wNjCmv.js.map → dialog-description-8UnYiAMX.js.map} +1 -1
  395. package/build/server/chunks/{upload-BY_p_jpL.js → dialog-footer-CqbKEEQ-.js} +11 -11
  396. package/build/server/chunks/dialog-footer-CqbKEEQ-.js.map +1 -0
  397. package/build/server/chunks/{footerContext.svelte-BZEf7gVw.js → footerContext.svelte-oP__zW9C.js} +10 -2
  398. package/build/server/chunks/footerContext.svelte-oP__zW9C.js.map +1 -0
  399. package/build/server/chunks/{hooks.server-D6EnLMoG.js → hooks.server-CwDixHQc.js} +4 -4
  400. package/build/server/chunks/{hooks.server-D6EnLMoG.js.map → hooks.server-CwDixHQc.js.map} +1 -1
  401. package/build/server/chunks/index-server2-BiZ3ccb0.js +18 -0
  402. package/build/server/chunks/index-server2-BiZ3ccb0.js.map +1 -0
  403. package/build/server/chunks/{index2-B9qXYHIn.js → index2-D4a590Kd.js} +11 -11
  404. package/build/server/chunks/index2-D4a590Kd.js.map +1 -0
  405. package/build/server/chunks/{index3-AGemCGcn.js → index3-0Z1R1__W.js} +12 -12
  406. package/build/server/chunks/index3-0Z1R1__W.js.map +1 -0
  407. package/build/server/chunks/{index4-DSWKKOFB.js → index4-DWNr0jIL.js} +3 -3
  408. package/build/server/chunks/{index4-DSWKKOFB.js.map → index4-DWNr0jIL.js.map} +1 -1
  409. package/build/server/chunks/{permissions.server-cNGc9ris.js → permissions.server-7AwAAkY9.js} +2 -2
  410. package/build/server/chunks/{permissions.server-cNGc9ris.js.map → permissions.server-7AwAAkY9.js.map} +1 -1
  411. package/build/server/chunks/{providers.server-MD7TK-zQ.js → providers.server-wGknM6CR.js} +52 -29
  412. package/build/server/chunks/providers.server-wGknM6CR.js.map +1 -0
  413. package/build/server/chunks/{resolve.server-BXKCfGfg.js → resolve.server-CvfANFCn.js} +2 -2
  414. package/build/server/chunks/{resolve.server-BXKCfGfg.js.map → resolve.server-CvfANFCn.js.map} +1 -1
  415. package/build/server/chunks/{scroll-lock-BVxv0Dsn.js → scroll-lock-BIz_BXmd.js} +4 -15
  416. package/build/server/chunks/scroll-lock-BIz_BXmd.js.map +1 -0
  417. package/build/server/chunks/{utils2-D38XWwRv.js → utils2-BsnrDRob.js} +2 -2
  418. package/build/server/chunks/{utils2-D38XWwRv.js.map → utils2-BsnrDRob.js.map} +1 -1
  419. package/build/server/index.js +2 -2
  420. package/build/server/index.js.map +1 -1
  421. package/build/server/manifest.js +70 -70
  422. package/build/server/manifest.js.map +1 -1
  423. package/package.json +12 -9
  424. package/templates/.env.example +6 -4
  425. package/build/client/_app/immutable/assets/0.vgCL98o5.css +0 -1
  426. package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
  427. package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
  428. package/build/client/_app/immutable/assets/20.DvtWUFNX.css +0 -1
  429. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
  430. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
  431. package/build/client/_app/immutable/chunks/-UMoMsui.js.br +0 -0
  432. package/build/client/_app/immutable/chunks/-UMoMsui.js.gz +0 -0
  433. package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
  434. package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
  435. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.br +0 -0
  436. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.gz +0 -0
  437. package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
  438. package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
  439. package/build/client/_app/immutable/chunks/BeM-GIFh.js +0 -1
  440. package/build/client/_app/immutable/chunks/BeM-GIFh.js.br +0 -0
  441. package/build/client/_app/immutable/chunks/BeM-GIFh.js.gz +0 -0
  442. package/build/client/_app/immutable/chunks/C1kpvSgW.js +0 -2
  443. package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
  444. package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
  445. package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
  446. package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
  447. package/build/client/_app/immutable/chunks/Cal8_SqL.js +0 -1
  448. package/build/client/_app/immutable/chunks/Cal8_SqL.js.br +0 -0
  449. package/build/client/_app/immutable/chunks/Cal8_SqL.js.gz +0 -0
  450. package/build/client/_app/immutable/chunks/CynIvqMH.js +0 -1
  451. package/build/client/_app/immutable/chunks/CynIvqMH.js.br +0 -0
  452. package/build/client/_app/immutable/chunks/CynIvqMH.js.gz +0 -0
  453. package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
  454. package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
  455. package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
  456. package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
  457. package/build/client/_app/immutable/entry/app.1YljYqLj.js +0 -2
  458. package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
  459. package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
  460. package/build/client/_app/immutable/entry/start.C41rnrMx.js +0 -1
  461. package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
  462. package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
  463. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js +0 -9
  464. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.br +0 -0
  465. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.gz +0 -0
  466. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
  467. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
  468. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.br +0 -0
  469. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.gz +0 -0
  470. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +0 -2
  471. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
  472. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
  473. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
  474. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
  475. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
  476. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
  477. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
  478. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
  479. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
  480. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
  481. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
  482. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
  483. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
  484. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
  485. package/build/client/_app/immutable/nodes/20.C5BF7igP.js +0 -4118
  486. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
  487. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
  488. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
  489. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
  490. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
  491. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
  492. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
  493. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
  494. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
  495. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
  496. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
  497. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
  498. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
  499. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
  500. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
  501. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
  502. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
  503. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
  504. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +0 -2
  505. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
  506. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
  507. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
  508. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
  509. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
  510. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
  511. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
  512. package/build/client/_app/immutable/nodes/9.B2PU0xej.js +0 -1
  513. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
  514. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
  515. package/build/server/chunks/0-v49L2HZX.js.map +0 -1
  516. package/build/server/chunks/11-BLjiJpX4.js.map +0 -1
  517. package/build/server/chunks/12-Dk9nDvlV.js.map +0 -1
  518. package/build/server/chunks/19-C9FaW__N.js.map +0 -1
  519. package/build/server/chunks/2-CwQhh3Hg.js.map +0 -1
  520. package/build/server/chunks/24-ukwP0nYw.js.map +0 -1
  521. package/build/server/chunks/5-QlPeCe4d.js.map +0 -1
  522. package/build/server/chunks/6-3t8NszBJ.js.map +0 -1
  523. package/build/server/chunks/7-DgFxSLWj.js.map +0 -1
  524. package/build/server/chunks/UserChip-CCZ9yMM3.js.map +0 -1
  525. package/build/server/chunks/_layout.svelte-DU36kuy0.js.map +0 -1
  526. package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +0 -1
  527. package/build/server/chunks/_page.svelte-DJnICJdZ.js.map +0 -1
  528. package/build/server/chunks/_page.svelte-DSPm244d.js.map +0 -1
  529. package/build/server/chunks/_page.svelte-DSYaUquf.js.map +0 -1
  530. package/build/server/chunks/_server.ts-BL7-YPnc.js.map +0 -1
  531. package/build/server/chunks/_server.ts-BiJbME_l.js.map +0 -1
  532. package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +0 -1
  533. package/build/server/chunks/_server.ts-CXYPZtry.js.map +0 -1
  534. package/build/server/chunks/_server.ts-DsFj_8lL.js.map +0 -1
  535. package/build/server/chunks/_server.ts-EnuOtr_j.js.map +0 -1
  536. package/build/server/chunks/auth-bootstrap.server-CdwMOcYI.js.map +0 -1
  537. package/build/server/chunks/computeLimits-CKK96OOR.js.map +0 -1
  538. package/build/server/chunks/footerContext.svelte-BZEf7gVw.js.map +0 -1
  539. package/build/server/chunks/index2-B9qXYHIn.js.map +0 -1
  540. package/build/server/chunks/index3-AGemCGcn.js.map +0 -1
  541. package/build/server/chunks/providers.server-MD7TK-zQ.js.map +0 -1
  542. package/build/server/chunks/scroll-lock-BVxv0Dsn.js.map +0 -1
  543. package/build/server/chunks/upload-BY_p_jpL.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BRjl7H1o.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { i as getDefinitionMeta, M as MAX_PAGE_LIMIT } from \"../../../../../../chunks/providers.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nimport { s as requireCanViewProject } from \"../../../../../../chunks/access.server.js\";\nimport { G as GuidSchema } from \"../../../../../../chunks/context.js\";\nconst GET = async ({ params, locals, url }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n if (!locals.ctx) throw error(401, \"Unauthorized\");\n const rawLimit = Number(url.searchParams.get(\"limit\") ?? 50);\n const limit = Number.isFinite(rawLimit) ? Math.min(Math.max(rawLimit, 1), MAX_PAGE_LIMIT) : 50;\n const cursor = url.searchParams.get(\"cursor\") ?? void 0;\n try {\n const def = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!def) throw error(404, \"Definition not found\");\n await requireCanViewProject(locals, def.projectId);\n const page = await getDefinitionMeta().listVersions(locals.ctx, guidParsed.data, {\n limit,\n cursor\n });\n return json({\n versions: page.items,\n nextCursor: page.nextCursor,\n liveVersionId: def.liveVersionId,\n draftVersionId: def.draftVersionId\n });\n } catch (err) {\n handleApiError(err, \"Failed to list versions\");\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC/C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE;AAChG,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM;AACzD,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACtD,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;AACtD,IAAI,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE;AACrF,MAAM,KAAK;AACX,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,QAAQ,EAAE,IAAI,CAAC,KAAK;AAC1B,MAAM,UAAU,EAAE,IAAI,CAAC,UAAU;AACjC,MAAM,aAAa,EAAE,GAAG,CAAC,aAAa;AACtC,MAAM,cAAc,EAAE,GAAG,CAAC;AAC1B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts-ClymRXMH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, M as MAX_PAGE_LIMIT } from \"../../../../../../chunks/providers.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nimport { s as requireCanViewProject } from \"../../../../../../chunks/access.server.js\";\nimport { G as GuidSchema } from \"../../../../../../chunks/context.js\";\nconst GET = async ({ params, locals, url }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n if (!locals.ctx) throw error(401, \"Unauthorized\");\n const rawLimit = Number(url.searchParams.get(\"limit\") ?? 50);\n const limit = Number.isFinite(rawLimit) ? Math.min(Math.max(rawLimit, 1), MAX_PAGE_LIMIT) : 50;\n const cursor = url.searchParams.get(\"cursor\") ?? void 0;\n try {\n const def = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!def) throw error(404, \"Definition not found\");\n await requireCanViewProject(locals, def.projectId);\n const page = await getDefinitionMeta().listVersions(locals.ctx, guidParsed.data, {\n limit,\n cursor\n });\n return json({\n versions: page.items,\n nextCursor: page.nextCursor,\n liveVersionId: def.liveVersionId,\n draftVersionId: def.draftVersionId\n });\n } catch (err) {\n handleApiError(err, \"Failed to list versions\");\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC/C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE;AAChG,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM;AACzD,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACtD,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;AACtD,IAAI,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE;AACrF,MAAM,KAAK;AACX,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,QAAQ,EAAE,IAAI,CAAC,KAAK;AAC1B,MAAM,UAAU,EAAE,IAAI,CAAC,UAAU;AACjC,MAAM,aAAa,EAAE,GAAG,CAAC,aAAa;AACtC,MAAM,cAAc,EAAE,GAAG,CAAC;AAC1B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { a as definitionService } from './providers.server-MD7TK-zQ.js';
3
- import { t as requireEditableDefinition } from './access.server-BBglojso.js';
4
- import { h as handleApiError } from './api-errors-agQVBoep.js';
2
+ import { i as getDefinitionService } from './providers.server-wGknM6CR.js';
3
+ import { t as requireEditableDefinition } from './access.server-ByXvmWyF.js';
4
+ import { h as handleApiError } from './api-errors-C0SWfJj5.js';
5
5
  import { G as GuidSchema } from './context-DKDYb-He.js';
6
- import { a as MAX_IMAGE_FILE_SIZE } from './computeLimits-CKK96OOR.js';
6
+ import { b as MAX_IMAGE_FILE_SIZE } from './computeLimits-5PaWFMYq.js';
7
7
  import './shared-server-C3WdcJCQ.js';
8
8
  import 'node:url';
9
9
  import 'node:path';
@@ -13,7 +13,7 @@ import 'node:fs/promises';
13
13
  import '@supabase/supabase-js';
14
14
  import 'zod';
15
15
  import '@selvajs/compute/core';
16
- import './utils2-D38XWwRv.js';
16
+ import './utils2-BsnrDRob.js';
17
17
 
18
18
  const POST = async ({ params, request, locals }) => {
19
19
  const guidParsed = GuidSchema.safeParse(params.guid);
@@ -30,7 +30,7 @@ const POST = async ({ params, request, locals }) => {
30
30
  }
31
31
  try {
32
32
  const imageData = new Uint8Array(await file.arrayBuffer());
33
- const coverImage = await definitionService.saveCoverImage(ctx, guid, imageData);
33
+ const coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);
34
34
  return json({ success: true, coverImage });
35
35
  } catch (err) {
36
36
  handleApiError(err, "Failed to upload image");
@@ -38,4 +38,4 @@ const POST = async ({ params, request, locals }) => {
38
38
  };
39
39
 
40
40
  export { POST };
41
- //# sourceMappingURL=_server.ts-BL7-YPnc.js.map
41
+ //# sourceMappingURL=_server.ts-CsWWoLDJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CsWWoLDJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService } from \"../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema } from \"../../../../../../chunks/context.js\";\nimport { b as MAX_IMAGE_FILE_SIZE } from \"../../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid GUID\");\n const guid = guidParsed.data;\n const { ctx } = await requireEditableDefinition(locals, guid);\n const formData = await request.formData();\n const file = formData.get(\"image\");\n if (!(file instanceof File) || file.size === 0) {\n throw error(400, \"Image file is required\");\n }\n if (file.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n try {\n const imageData = new Uint8Array(await file.arrayBuffer());\n const coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);\n return json({ success: true, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to upload image\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/D,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AAC3C,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,EAAE,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AAClD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAC9C,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE;AACvC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,mBAAmB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5F,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AAC9D,IAAI,MAAM,UAAU,GAAG,MAAM,oBAAoB,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC;AACxF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9C,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACjD,EAAE;AACF;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { M as MEMBER_ASSIGNABLE_PERMISSIONS, A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema } from './context-DKDYb-He.js';
4
- import { k as getOrganizationProvider } from './providers.server-MD7TK-zQ.js';
5
- import { y as requireManageOrgMembers } from './access.server-BBglojso.js';
6
- import { t as throwZodError, h as handleApiError } from './api-errors-agQVBoep.js';
4
+ import { k as getOrganizationProvider } from './providers.server-wGknM6CR.js';
5
+ import { y as requireManageOrgMembers } from './access.server-ByXvmWyF.js';
6
+ import { t as throwZodError, h as handleApiError } from './api-errors-C0SWfJj5.js';
7
7
  import './shared-server-C3WdcJCQ.js';
8
8
  import 'node:url';
9
9
  import 'node:path';
@@ -12,7 +12,7 @@ import 'node:crypto';
12
12
  import 'node:fs/promises';
13
13
  import '@supabase/supabase-js';
14
14
  import '@selvajs/compute/core';
15
- import './utils2-D38XWwRv.js';
15
+ import './utils2-BsnrDRob.js';
16
16
 
17
17
  const PERMISSIONS_SCHEMA = z.array(
18
18
  z.enum(ALL_ORG_PERMISSIONS)
@@ -80,4 +80,4 @@ const PATCH = async ({ params, request, locals }) => {
80
80
  };
81
81
 
82
82
  export { PATCH };
83
- //# sourceMappingURL=_server.ts-DMnMoi_a.js.map
83
+ //# sourceMappingURL=_server.ts-CtJaazcE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DMnMoi_a.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { k as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { y as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CtJaazcE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { k as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { y as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { a as definitionService, n as getProjectProvider } from './providers.server-MD7TK-zQ.js';
3
- import { t as requireEditableDefinition } from './access.server-BBglojso.js';
4
- import { h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError } from './api-errors-agQVBoep.js';
2
+ import { i as getDefinitionService, n as getProjectProvider } from './providers.server-wGknM6CR.js';
3
+ import { t as requireEditableDefinition } from './access.server-ByXvmWyF.js';
4
+ import { h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError } from './api-errors-C0SWfJj5.js';
5
5
  import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
6
6
  import { G as GuidSchema, U as UpdateMetadataInputSchema } from './context-DKDYb-He.js';
7
- import { M as MAX_GH_FILE_SIZE } from './computeLimits-CKK96OOR.js';
7
+ import { M as MAX_GH_FILE_SIZE } from './computeLimits-5PaWFMYq.js';
8
8
  import './shared-server-C3WdcJCQ.js';
9
9
  import 'node:url';
10
10
  import 'node:path';
@@ -14,7 +14,7 @@ import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import 'zod';
16
16
  import '@selvajs/compute/core';
17
- import './utils2-D38XWwRv.js';
17
+ import './utils2-BsnrDRob.js';
18
18
 
19
19
  const POST = async ({ params, request, locals }) => {
20
20
  const guidParsed = GuidSchema.safeParse(params.guid);
@@ -40,7 +40,7 @@ const POST = async ({ params, request, locals }) => {
40
40
  definitionPin: record.computeServerId ?? null
41
41
  });
42
42
  const schema = await fetchSchemaFromCompute(data, server);
43
- const version = await definitionService.uploadVersion(
43
+ const version = await getDefinitionService().uploadVersion(
44
44
  ctx,
45
45
  guidParsed.data,
46
46
  data,
@@ -59,7 +59,7 @@ const DELETE = async ({ params, locals }) => {
59
59
  if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
60
60
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
61
61
  try {
62
- await definitionService.delete(ctx, guidParsed.data);
62
+ await getDefinitionService().delete(ctx, guidParsed.data);
63
63
  return json({ success: true });
64
64
  } catch (err) {
65
65
  handleApiError(err, "Failed to delete definition");
@@ -73,7 +73,7 @@ const PUT = async ({ params, request, locals }) => {
73
73
  const parsed = UpdateMetadataInputSchema.safeParse(body);
74
74
  if (!parsed.success) throwZodError(parsed.error);
75
75
  try {
76
- await definitionService.updateMeta(ctx, guidParsed.data, parsed.data);
76
+ await getDefinitionService().updateMeta(ctx, guidParsed.data, parsed.data);
77
77
  return json({ success: true });
78
78
  } catch (err) {
79
79
  handleApiError(err, "Failed to update definition");
@@ -81,4 +81,4 @@ const PUT = async ({ params, request, locals }) => {
81
81
  };
82
82
 
83
83
  export { DELETE, POST, PUT };
84
- //# sourceMappingURL=_server.ts-Bq2BT6_L.js.map
84
+ //# sourceMappingURL=_server.ts-CyjVVRiT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CyjVVRiT.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService, n as getProjectProvider } from \"../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../../chunks/types.js\";\nimport { G as GuidSchema, U as UpdateMetadataInputSchema } from \"../../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE } from \"../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n const changeNoteRaw = formData.get(\"changeNote\");\n const changeNote = typeof changeNoteRaw === \"string\" ? changeNoteRaw.slice(0, 1e3) : void 0;\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const { ctx, record } = await requireEditableDefinition(locals, guidParsed.data);\n const fileExt = ext.slice(1);\n try {\n const data = new Uint8Array(await file.arrayBuffer());\n const project = await getProjectProvider().getProject(ctx, record.projectId);\n const server = await resolveServerForOrg(ctx, project?.orgId ?? null, {\n definitionPin: record.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(data, server);\n const version = await getDefinitionService().uploadVersion(\n ctx,\n guidParsed.data,\n data,\n fileExt,\n file.name,\n schema,\n changeNote\n );\n return json({ success: true, version });\n } catch (err) {\n handleApiError(err, \"Failed to upload definition version\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await getDefinitionService().delete(ctx, guidParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete definition\");\n }\n};\nconst PUT = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => null);\n const parsed = UpdateMetadataInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getDefinitionService().updateMeta(ctx, guidParsed.data, parsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update definition\");\n }\n};\nexport {\n DELETE,\n POST,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { l as getPermissionStore, c as getAuthProvider } from './providers.server-MD7TK-zQ.js';
3
- import { w as requireManageInstanceUsers } from './access.server-BBglojso.js';
2
+ import { l as getPermissionStore, a as getAuthProvider } from './providers.server-wGknM6CR.js';
3
+ import { w as requireManageInstanceUsers } from './access.server-ByXvmWyF.js';
4
4
  import './shared-server-C3WdcJCQ.js';
5
5
  import 'node:url';
6
6
  import 'node:path';
@@ -10,9 +10,9 @@ import 'zod';
10
10
  import 'node:crypto';
11
11
  import 'node:fs/promises';
12
12
  import '@supabase/supabase-js';
13
- import './api-errors-agQVBoep.js';
13
+ import './api-errors-C0SWfJj5.js';
14
14
  import '@selvajs/compute/core';
15
- import './utils2-D38XWwRv.js';
15
+ import './utils2-BsnrDRob.js';
16
16
 
17
17
  const POST = async ({ params, locals }) => {
18
18
  requireManageInstanceUsers(locals);
@@ -36,4 +36,4 @@ const POST = async ({ params, locals }) => {
36
36
  };
37
37
 
38
38
  export { POST };
39
- //# sourceMappingURL=_server.ts-Cbe4naEr.js.map
39
+ //# sourceMappingURL=_server.ts-D0PjwFdv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Cbe4naEr.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { l as getPermissionStore, c as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"_server.ts-D0PjwFdv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { l as getPermissionStore, a as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { error, redirect } from '@sveltejs/kit';
2
- import { c as getAuthProvider } from './providers.server-MD7TK-zQ.js';
3
- import { b as bootstrapUserSession } from './auth-bootstrap.server-CdwMOcYI.js';
2
+ import { a as getAuthProvider } from './providers.server-wGknM6CR.js';
3
+ import { b as bootstrapUserSession } from './auth-bootstrap.server-zvPqZ6kt.js';
4
4
  import { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from './admin-auth.server-45kKyH82.js';
5
5
  import './shared-server-C3WdcJCQ.js';
6
6
  import 'node:url';
@@ -30,4 +30,4 @@ const GET = async ({ url, cookies }) => {
30
30
  };
31
31
 
32
32
  export { GET };
33
- //# sourceMappingURL=_server.ts-Dukt2veu.js.map
33
+ //# sourceMappingURL=_server.ts-D7tgGcoB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Dukt2veu.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { c as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const code = url.searchParams.get(\"code\");\n if (!code) throw error(400, \"Missing authorization code\");\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const result = await oauth.exchangeOAuthCode(code);\n if (!result) throw error(401, \"OAuth exchange failed\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACpD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AACxD,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
1
+ {"version":3,"file":"_server.ts-D7tgGcoB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { a as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const code = url.searchParams.get(\"code\");\n if (!code) throw error(400, \"Missing authorization code\");\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const result = await oauth.exchangeOAuthCode(code);\n if (!result) throw error(401, \"OAuth exchange failed\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACpD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AACxD,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from './providers.server-MD7TK-zQ.js';
5
- import { u as requireInstanceAdmin } from './access.server-BBglojso.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-agQVBoep.js';
4
+ import { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from './providers.server-wGknM6CR.js';
5
+ import { u as requireInstanceAdmin } from './access.server-ByXvmWyF.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-C0SWfJj5.js';
7
7
  import { s as slugify } from './slug-BGuFQjqe.js';
8
8
  import { S as SYSTEM_CONTEXT } from './context-DKDYb-He.js';
9
9
  import './shared-server-C3WdcJCQ.js';
@@ -13,7 +13,7 @@ import 'node:fs';
13
13
  import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import '@selvajs/compute/core';
16
- import './utils2-D38XWwRv.js';
16
+ import './utils2-BsnrDRob.js';
17
17
 
18
18
  const MAX_SLUG_ATTEMPTS = 25;
19
19
  function isSlugConflict(err) {
@@ -102,4 +102,4 @@ const POST = async ({ request, locals }) => {
102
102
  };
103
103
 
104
104
  export { GET, POST };
105
- //# sourceMappingURL=_server.ts-bONEWPMV.js.map
105
+ //# sourceMappingURL=_server.ts-DBV9dA6A.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-bONEWPMV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from \"../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../chunks/slug.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreatePlatformProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n /**\n * Org that physically hosts the project. Storage routing and compute\n * resolution use this — but org membership in this org does NOT grant\n * access. Visibility = 'platform' overrides those defaults.\n *\n * If omitted, the platform admin's first available org is used.\n */\n orgId: z.string().uuid().optional()\n});\nconst GET = async ({ locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n try {\n const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });\n const all = [];\n for (const org of orgs.items) {\n const page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, {\n limit: 1e3\n });\n for (const p of page.items) {\n if (p.visibility === \"platform\") all.push(p);\n }\n }\n return json({ projects: all });\n } catch (err) {\n handleApiError(err, \"Failed to list platform projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const user = requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = CreatePlatformProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;\n if (!hostOrgId) {\n throw error(400, \"A host orgId is required (no active organization in context).\");\n }\n const hostOrg = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId);\n if (!hostOrg) throw error(400, `Host organization '${hostOrgId}' not found.`);\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"platform-project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: hostOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: \"platform\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(SYSTEM_CONTEXT, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in the host organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create platform project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DBV9dA6A.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from \"../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../chunks/slug.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreatePlatformProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n /**\n * Org that physically hosts the project. Storage routing and compute\n * resolution use this — but org membership in this org does NOT grant\n * access. Visibility = 'platform' overrides those defaults.\n *\n * If omitted, the platform admin's first available org is used.\n */\n orgId: z.string().uuid().optional()\n});\nconst GET = async ({ locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n try {\n const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });\n const all = [];\n for (const org of orgs.items) {\n const page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, {\n limit: 1e3\n });\n for (const p of page.items) {\n if (p.visibility === \"platform\") all.push(p);\n }\n }\n return json({ projects: all });\n } catch (err) {\n handleApiError(err, \"Failed to list platform projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const user = requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = CreatePlatformProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;\n if (!hostOrgId) {\n throw error(400, \"A host orgId is required (no active organization in context).\");\n }\n const hostOrg = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId);\n if (!hostOrg) throw error(400, `Host organization '${hostOrgId}' not found.`);\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"platform-project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: hostOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: \"platform\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(SYSTEM_CONTEXT, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in the host organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create platform project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { TreeBuilder, GrasshopperClient } from '@selvajs/compute';
2
- import { error, json, isHttpError } from '@sveltejs/kit';
3
- import { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from './api-errors-agQVBoep.js';
4
- import { b as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, d as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, e as REMOTE_DEFINITION_MAX_BYTES, c as RATE_LIMIT_WINDOW_MS, R as RATE_LIMIT_MAX_REQUESTS, C as COMPUTE_REQUEST_MAX_BYTES } from './computeLimits-CKK96OOR.js';
2
+ import { error, isHttpError } from '@sveltejs/kit';
3
+ import { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from './api-errors-C0SWfJj5.js';
4
+ import { c as MAX_SOLVE_DURATION_MS, a as COMPUTE_RESPONSE_MAX_BYTES, D as DEFINITION_CACHE_TTL_MS, e as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, f as REMOTE_DEFINITION_MAX_BYTES, d as RATE_LIMIT_WINDOW_MS, R as RATE_LIMIT_MAX_REQUESTS, C as COMPUTE_REQUEST_MAX_BYTES } from './computeLimits-5PaWFMYq.js';
5
5
  import { e as requireMaxBodySize } from './admin-auth.server-45kKyH82.js';
6
- import { o as getStorageProvider, s as providers } from './providers.server-MD7TK-zQ.js';
7
- import { k as requireCanEditDefinition, q as requireCanSolve } from './access.server-BBglojso.js';
8
- import { t as tryResolveShareToken } from './resolve.server-BXKCfGfg.js';
6
+ import { o as getStorageProvider, t as providers } from './providers.server-wGknM6CR.js';
7
+ import { k as requireCanEditDefinition, q as requireCanSolve } from './access.server-ByXvmWyF.js';
8
+ import { t as tryResolveShareToken } from './resolve.server-CvfANFCn.js';
9
9
  import './context-DKDYb-He.js';
10
10
  import 'zod';
11
11
  import '@selvajs/compute/core';
12
- import './utils2-D38XWwRv.js';
12
+ import './utils2-BsnrDRob.js';
13
13
  import './shared-server-C3WdcJCQ.js';
14
14
  import 'node:url';
15
15
  import 'node:path';
@@ -288,7 +288,27 @@ const POST = async ({ request, locals, url }) => {
288
288
  }
289
289
  throw err;
290
290
  }
291
- return json(solvedDefinition);
291
+ let serialized;
292
+ try {
293
+ serialized = JSON.stringify(solvedDefinition);
294
+ } catch (err) {
295
+ if (err instanceof RangeError) {
296
+ throw error(
297
+ 413,
298
+ "Solve result is too large to return. This usually means a file output exceeds the supported size."
299
+ );
300
+ }
301
+ throw err;
302
+ }
303
+ if (serialized.length > COMPUTE_RESPONSE_MAX_BYTES) {
304
+ throw error(
305
+ 413,
306
+ "Solve result is too large to return. This usually means a file output exceeds the supported size."
307
+ );
308
+ }
309
+ return new Response(serialized, {
310
+ headers: { "Content-Type": "application/json" }
311
+ });
292
312
  } catch (err) {
293
313
  if (isHttpError(err)) throw err;
294
314
  if (err instanceof ComputeServerUnconfiguredError) {
@@ -304,4 +324,4 @@ const POST = async ({ request, locals, url }) => {
304
324
  };
305
325
 
306
326
  export { POST };
307
- //# sourceMappingURL=_server.ts-EnuOtr_j.js.map
327
+ //# sourceMappingURL=_server.ts-DLUA6_Lf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DLUA6_Lf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { error, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from \"../../../../chunks/api-errors.js\";\nimport { d as RATE_LIMIT_WINDOW_MS, R as RATE_LIMIT_MAX_REQUESTS, c as MAX_SOLVE_DURATION_MS, a as COMPUTE_RESPONSE_MAX_BYTES, D as DEFINITION_CACHE_TTL_MS, e as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, f as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { e as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { o as getStorageProvider, t as providers } from \"../../../../chunks/providers.server.js\";\nimport { k as requireCanEditDefinition, q as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server.js\";\nfunction isSafeRemoteDefinitionUrl(raw) {\n let parsed;\n try {\n parsed = new URL(raw);\n } catch {\n return false;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return false;\n const host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host === \"0.0.0.0\" || host.endsWith(\".localhost\")) return false;\n if (host === \"::1\" || host === \"[::1]\") return false;\n if (/^127\\./.test(host)) return false;\n if (/^10\\./.test(host)) return false;\n if (/^192\\.168\\./.test(host)) return false;\n if (/^172\\.(1[6-9]|2[0-9]|3[0-1])\\./.test(host)) return false;\n if (/^169\\.254\\./.test(host)) return false;\n if (/^\\[?(fc|fd)[0-9a-f]{2}:/i.test(host)) return false;\n if (/^\\[?fe[89ab][0-9a-f]:/i.test(host)) return false;\n return true;\n}\nconst WINDOW_MS = RATE_LIMIT_WINDOW_MS;\nconst MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;\nconst buckets = /* @__PURE__ */ new Map();\nfunction checkComputeRateLimit(key) {\n const now = Date.now();\n const entry = buckets.get(key);\n if (!entry || now > entry.resetAt) {\n buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });\n return { allowed: true };\n }\n if (entry.count >= MAX_PER_WINDOW) {\n return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };\n }\n entry.count += 1;\n return { allowed: true };\n}\nconst definitionCache = /* @__PURE__ */ new Map();\nlet cachedClient = null;\nlet cachedScheduler = null;\nlet cachedClientConfig = null;\nasync function getClient(serverConfig) {\n const currentConfig = {\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey\n };\n if (cachedClient && cachedScheduler && cachedClientConfig && cachedClientConfig.serverUrl === currentConfig.serverUrl && cachedClientConfig.apiKey === currentConfig.apiKey) {\n return { client: cachedClient, scheduler: cachedScheduler };\n }\n cachedScheduler?.dispose();\n cachedClient = await GrasshopperClient.create({\n serverUrl: currentConfig.serverUrl,\n apiKey: currentConfig.apiKey\n });\n cachedScheduler = cachedClient.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 }\n });\n cachedClientConfig = currentConfig;\n return { client: cachedClient, scheduler: cachedScheduler };\n}\nasync function loadRemoteDefinition(url) {\n if (!isSafeRemoteDefinitionUrl(url)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const now = Date.now();\n const cached = definitionCache.get(url);\n if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {\n return cached.data;\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);\n let data;\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n redirect: \"error\"\n });\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n const declared = Number(response.headers.get(\"content-length\"));\n if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n data = new Uint8Array(buffer);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nfunction transformInputParameter(input, value) {\n const base = {\n description: input.description || \"\",\n name: input.nickname,\n nickname: input.nickname || null,\n id: input.id\n };\n if (input.paramType === \"number\" || input.paramType === \"integer\") {\n return {\n ...base,\n paramType: input.paramType === \"integer\" ? \"Integer\" : \"Number\",\n minimum: input.minimum,\n maximum: input.maximum,\n stepSize: input.paramType === \"integer\" ? 1 : input.stepSize,\n default: value ?? input.default\n };\n } else if (input.paramType === \"text\") {\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? input.default ?? \"\"\n };\n } else if (input.paramType === \"boolean\") {\n return {\n ...base,\n paramType: \"Boolean\",\n default: value ?? input.default ?? false\n };\n }\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? \"\"\n };\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n try {\n const body = await request.json();\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n if (!inputs || !values || !definitionUrl) {\n throw error(400, \"Missing required fields: inputs, values, or definitionUrl\");\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);\n }\n let definitionSource;\n let localVersionForBackfill = null;\n let solveOrgId = null;\n let definitionPin = null;\n const isLocal = definitionUrl.startsWith(\"local:\");\n const guid = isLocal ? definitionUrl.substring(6) : null;\n const sharedAccess = isLocal && guid ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;\n if (!sharedAccess && (!locals.ctx || !locals.user)) {\n throw error(401, \"Unauthorized\");\n }\n const solveCtx = sharedAccess?.ctx ?? locals.ctx;\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n if (!record) throw error(404, `Definition '${guid}' not found`);\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n if (!sharedAccess) {\n if (channel === \"draft\") {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n const versionId = channel === \"live\" ? record.liveVersionId : record.draftVersionId;\n if (!versionId) {\n throw error(404, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n throw error(404, `Definition '${guid}' ${channel} version is missing`);\n }\n localVersionForBackfill = { id: version.id, hasSchema: version.schema !== void 0 };\n try {\n const bytes = await storage.get(version.fileKey);\n if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);\n definitionSource = bytes;\n } catch (err) {\n console.error(`Failed to load local definition blob: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n } else {\n try {\n definitionSource = await loadRemoteDefinition(definitionUrl);\n } catch (err) {\n console.error(`Failed to fetch definition from ${definitionUrl}:`, err);\n throw error(\n 400,\n `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n const inputTree = TreeBuilder.fromInputParams(\n inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))\n );\n if (sharedAccess) {\n const next = await providers.data.shareLinks.tryIncrementSolveCount(\n solveCtx,\n sharedAccess.link.id\n );\n if (next === null) {\n throw error(429, \"Share link solve cap reached.\");\n }\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n if (localVersionForBackfill && !localVersionForBackfill.hasSchema) {\n const versionId = localVersionForBackfill.id;\n try {\n const schema = await fetchSchemaFromCompute(definitionSource, serverConfig);\n await providers.data.definitions.setVersionSchema(solveCtx, versionId, schema);\n } catch (err) {\n console.warn(`[API/Compute] Schema backfill failed for version ${versionId}:`, err);\n }\n }\n const { scheduler } = await getClient(serverConfig);\n let solvedDefinition;\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n } catch (err) {\n if (err instanceof Error && err.name === \"AbortError\") {\n if (request.signal.aborted) {\n throw error(499, \"Client closed request\");\n }\n throw error(\n 504,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n let serialized;\n try {\n serialized = JSON.stringify(solvedDefinition);\n } catch (err) {\n if (err instanceof RangeError) {\n throw error(\n 413,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n throw err;\n }\n if (serialized.length > COMPUTE_RESPONSE_MAX_BYTES) {\n throw error(\n 413,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n return new Response(serialized, {\n headers: { \"Content-Type\": \"application/json\" }\n });\n } catch (err) {\n if (isHttpError(err)) throw err;\n if (err instanceof ComputeServerUnconfiguredError) {\n throw error(503, err.message);\n }\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n throw error(503, \"Compute server is unreachable\");\n }\n throw error(500, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { n as getProjectProvider, P as ProviderError } from './providers.server-MD7TK-zQ.js';
5
- import { j as requireCanCreateProject } from './access.server-BBglojso.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-agQVBoep.js';
4
+ import { n as getProjectProvider, P as ProviderError } from './providers.server-wGknM6CR.js';
5
+ import { j as requireCanCreateProject } from './access.server-ByXvmWyF.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-C0SWfJj5.js';
7
7
  import { s as slugify } from './slug-BGuFQjqe.js';
8
8
  import { g as ProjectVisibilitySchema } from './context-DKDYb-He.js';
9
9
  import './shared-server-C3WdcJCQ.js';
@@ -13,7 +13,7 @@ import 'node:fs';
13
13
  import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import '@selvajs/compute/core';
16
- import './utils2-D38XWwRv.js';
16
+ import './utils2-BsnrDRob.js';
17
17
 
18
18
  const MAX_SLUG_ATTEMPTS = 25;
19
19
  function isSlugConflict(err) {
@@ -85,4 +85,4 @@ const POST = async ({ request, locals }) => {
85
85
  };
86
86
 
87
87
  export { GET, POST };
88
- //# sourceMappingURL=_server.ts-BqsgEogJ.js.map
88
+ //# sourceMappingURL=_server.ts-DM01ishT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BqsgEogJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { j as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n throw error(400, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in this organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DM01ishT.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { j as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n throw error(400, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in this organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
- import { l as getPermissionStore, c as getAuthProvider, h as getDataProvider, k as getOrganizationProvider } from './providers.server-MD7TK-zQ.js';
4
- import { w as requireManageInstanceUsers } from './access.server-BBglojso.js';
5
- import { t as throwZodError } from './api-errors-agQVBoep.js';
3
+ import { l as getPermissionStore, a as getAuthProvider, e as getDataProvider, k as getOrganizationProvider } from './providers.server-wGknM6CR.js';
4
+ import { w as requireManageInstanceUsers } from './access.server-ByXvmWyF.js';
5
+ import { t as throwZodError } from './api-errors-C0SWfJj5.js';
6
6
  import { S as SYSTEM_CONTEXT, j as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS, P as PlatformPermissionSchema, d as OrgPermissionSchema } from './context-DKDYb-He.js';
7
7
  import { s as splitFlatPermissions } from './permissions-compat.server-BDkKxDeZ.js';
8
- import { s as setUserPlatformPermissions } from './permissions.server-cNGc9ris.js';
8
+ import { s as setUserPlatformPermissions } from './permissions.server-7AwAAkY9.js';
9
9
  import './shared-server-C3WdcJCQ.js';
10
10
  import 'node:url';
11
11
  import 'node:path';
@@ -14,7 +14,7 @@ import 'node:crypto';
14
14
  import 'node:fs/promises';
15
15
  import '@supabase/supabase-js';
16
16
  import '@selvajs/compute/core';
17
- import './utils2-D38XWwRv.js';
17
+ import './utils2-BsnrDRob.js';
18
18
 
19
19
  const FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);
20
20
  const UpdatePermissionsBody = z.object({
@@ -93,4 +93,4 @@ const DELETE = async ({ params, locals }) => {
93
93
  };
94
94
 
95
95
  export { DELETE, PATCH };
96
- //# sourceMappingURL=_server.ts-4eVxyBg6.js.map
96
+ //# sourceMappingURL=_server.ts-DNeVKrs8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-4eVxyBg6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { l as getPermissionStore, c as getAuthProvider, h as getDataProvider, k as getOrganizationProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../chunks/access.server.js\";\nimport { t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, d as OrgPermissionSchema, S as SYSTEM_CONTEXT, j as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../../../chunks/permissions-compat.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../../chunks/permissions.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst UpdatePermissionsBody = z.object({\n permissions: z.array(FlatPermissionSchema)\n});\nconst PATCH = async ({ params, request, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const body = await request.json().catch(() => null);\n const parsed = UpdatePermissionsBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const { platform, org } = splitFlatPermissions(parsed.data.permissions);\n const existingPlatform = await getPermissionStore().getFor(locals.ctx, id);\n const platformChanged = platform.length !== existingPlatform.length || platform.some((p) => !existingPlatform.includes(p)) || existingPlatform.some((p) => !platform.includes(p));\n if (platformChanged && !hasPermission(locals.ctx, \"instance_admin\")) {\n throw error(403, \"Only a platform admin can change platform-scope permissions\");\n }\n const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);\n if (platformResult === \"not_found\") throw error(404, \"User not found\");\n if (platformResult === \"not_supported\")\n throw error(501, \"Platform permission updates not supported by this auth provider\");\n if (platformResult === \"last_admin\")\n throw error(\n 409,\n \"Cannot remove the last instance admin. Promote another user to instance admin first.\"\n );\n const orgId = locals.ctx?.actingOrgId;\n if (orgId) {\n const orgs = getOrganizationProvider();\n const existing = await orgs.getOrgMember(SYSTEM_CONTEXT, orgId, id);\n const resolvedPermissions = (role) => role === \"member\" ? org.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[role]];\n if (existing) {\n await orgs.updateOrgMemberPermissions(\n SYSTEM_CONTEXT,\n orgId,\n id,\n resolvedPermissions(existing.role)\n );\n } else {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await orgs.addOrgMember(SYSTEM_CONTEXT, {\n orgId,\n userId: id,\n role: \"member\",\n permissions: resolvedPermissions(\"member\"),\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: locals.user?.id ?? id,\n deletedAt: null\n });\n }\n }\n return json({ success: true });\n};\nconst DELETE = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot delete the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().deleteUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"User deletion not supported by this auth provider\");\n await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);\n return json({ success: true });\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DNeVKrs8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { l as getPermissionStore, a as getAuthProvider, e as getDataProvider, k as getOrganizationProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../chunks/access.server.js\";\nimport { t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, d as OrgPermissionSchema, S as SYSTEM_CONTEXT, j as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../../../chunks/permissions-compat.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../../chunks/permissions.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst UpdatePermissionsBody = z.object({\n permissions: z.array(FlatPermissionSchema)\n});\nconst PATCH = async ({ params, request, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const body = await request.json().catch(() => null);\n const parsed = UpdatePermissionsBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const { platform, org } = splitFlatPermissions(parsed.data.permissions);\n const existingPlatform = await getPermissionStore().getFor(locals.ctx, id);\n const platformChanged = platform.length !== existingPlatform.length || platform.some((p) => !existingPlatform.includes(p)) || existingPlatform.some((p) => !platform.includes(p));\n if (platformChanged && !hasPermission(locals.ctx, \"instance_admin\")) {\n throw error(403, \"Only a platform admin can change platform-scope permissions\");\n }\n const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);\n if (platformResult === \"not_found\") throw error(404, \"User not found\");\n if (platformResult === \"not_supported\")\n throw error(501, \"Platform permission updates not supported by this auth provider\");\n if (platformResult === \"last_admin\")\n throw error(\n 409,\n \"Cannot remove the last instance admin. Promote another user to instance admin first.\"\n );\n const orgId = locals.ctx?.actingOrgId;\n if (orgId) {\n const orgs = getOrganizationProvider();\n const existing = await orgs.getOrgMember(SYSTEM_CONTEXT, orgId, id);\n const resolvedPermissions = (role) => role === \"member\" ? org.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[role]];\n if (existing) {\n await orgs.updateOrgMemberPermissions(\n SYSTEM_CONTEXT,\n orgId,\n id,\n resolvedPermissions(existing.role)\n );\n } else {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await orgs.addOrgMember(SYSTEM_CONTEXT, {\n orgId,\n userId: id,\n role: \"member\",\n permissions: resolvedPermissions(\"member\"),\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: locals.user?.id ?? id,\n deletedAt: null\n });\n }\n }\n return json({ success: true });\n};\nconst DELETE = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot delete the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().deleteUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"User deletion not supported by this auth provider\");\n await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);\n return json({ success: true });\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}