@selvajs/selva 4.0.0 → 4.2.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 (337) hide show
  1. package/build/client/_app/immutable/assets/0.vgCL98o5.css +1 -0
  2. package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{DGr_EUx4.js → 2n-qzJg2.js} +1 -1
  5. package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DT5O4b-_.js → BQ0arxbK.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{7DlWX6a_.js → C1kpvSgW.js} +1 -1
  11. package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{C_pyGEAV.js → C98bdhQ5.js} +1 -1
  14. package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/D-Fls4-N.js +1 -0
  17. package/build/client/_app/immutable/chunks/D-Fls4-N.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{7OGPJeUM.js → D37hHIb0.js} +1 -1
  20. package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{D0kO1GS0.js → DNu_no60.js} +1 -1
  23. package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/snZK0J5H.js +1 -0
  26. package/build/client/_app/immutable/chunks/snZK0J5H.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
  28. package/build/client/_app/immutable/entry/app.1YljYqLj.js +2 -0
  29. package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
  30. package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
  31. package/build/client/_app/immutable/entry/start.C41rnrMx.js +1 -0
  32. package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
  33. package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{1.NC0eJqYH.js → 1.5JE3G8iG.js} +1 -1
  35. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +2 -0
  38. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{13.DoCSNk6B.js → 13.D5OdE_HH.js} +1 -1
  41. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{14.CGaF6W-i.js → 14.UGx5pLUS.js} +1 -1
  44. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/15.czhLtsoD.js +13 -0
  47. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{16.CK0W0845.js → 16.CqZNgdz-.js} +1 -1
  50. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{17.BLCtgsLP.js → 17.B1PHOW1Y.js} +1 -1
  53. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{19.Dx5b18Qv.js → 19.ClB_k0uw.js} +1 -1
  56. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{2.BxDq9fgp.js → 2.uPLLf3gR.js} +1 -1
  59. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{20.Q9tlws_F.js → 20.C5BF7igP.js} +1 -1
  62. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{21.Bbzr4DP5.js → 21.B1xX86Nz.js} +1 -1
  65. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/23.BWuAu45o.js +16 -0
  68. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{24.B-_Qylvh.js → 24.DSWGE_q2.js} +1 -1
  71. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{27.CKQ1fXCy.js → 27.CjlEhW_1.js} +1 -1
  74. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{28.COTXtjAd.js → 28.U-BnDxlP.js} +1 -1
  77. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{29.C1uWJrpk.js → 29.cl9udKxV.js} +1 -1
  80. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{3.D5k6nFAD.js → 3.UKn7Q9OQ.js} +1 -1
  83. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{30.iBr8WuRu.js → 30.DPqPYAg4.js} +1 -1
  86. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{5.BNy6hwdy.js → 5.CbYguvwB.js} +1 -1
  89. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +2 -0
  90. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{6.CaYtdaf2.js → 6.DZgUvAex.js} +1 -1
  92. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{7.C1W_YRKU.js → 7.Cv7r8DBm.js} +1 -1
  95. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{8.B9sIt6MS.js → 8.zr3bqaC_.js} +1 -1
  98. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/9.B2PU0xej.js +1 -0
  101. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
  103. package/build/client/_app/version.json +1 -1
  104. package/build/client/_app/version.json.br +0 -0
  105. package/build/client/_app/version.json.gz +0 -0
  106. package/build/server/chunks/{0-RraSrE7U.js → 0-v49L2HZX.js} +3 -3
  107. package/build/server/chunks/{0-RraSrE7U.js.map → 0-v49L2HZX.js.map} +1 -1
  108. package/build/server/chunks/{1-C99xqG8L.js → 1-B8xC9fBg.js} +2 -2
  109. package/build/server/chunks/{1-C99xqG8L.js.map → 1-B8xC9fBg.js.map} +1 -1
  110. package/build/server/chunks/{10-CpPov-q6.js → 10-BowWygfm.js} +4 -3
  111. package/build/server/chunks/{10-CpPov-q6.js.map → 10-BowWygfm.js.map} +1 -1
  112. package/build/server/chunks/{11-CgEVkMbf.js → 11-BLjiJpX4.js} +5 -5
  113. package/build/server/chunks/11-BLjiJpX4.js.map +1 -0
  114. package/build/server/chunks/{13-BsoV45dx.js → 13-CZeQX-Gk.js} +2 -2
  115. package/build/server/chunks/{13-BsoV45dx.js.map → 13-CZeQX-Gk.js.map} +1 -1
  116. package/build/server/chunks/{14-B3BJJIn3.js → 14-VgzSpObZ.js} +2 -2
  117. package/build/server/chunks/{14-B3BJJIn3.js.map → 14-VgzSpObZ.js.map} +1 -1
  118. package/build/server/chunks/{15-BqYjEVaA.js → 15-CKqEgZmF.js} +6 -5
  119. package/build/server/chunks/15-CKqEgZmF.js.map +1 -0
  120. package/build/server/chunks/{16-CQEqybxD.js → 16-9hO-6bzO.js} +5 -4
  121. package/build/server/chunks/{16-CQEqybxD.js.map → 16-9hO-6bzO.js.map} +1 -1
  122. package/build/server/chunks/{17-DPHGdRIj.js → 17-B9Aw6HdC.js} +2 -2
  123. package/build/server/chunks/{17-DPHGdRIj.js.map → 17-B9Aw6HdC.js.map} +1 -1
  124. package/build/server/chunks/{19-CkJN0M4_.js → 19-C9FaW__N.js} +2 -2
  125. package/build/server/chunks/{19-CkJN0M4_.js.map → 19-C9FaW__N.js.map} +1 -1
  126. package/build/server/chunks/{2-BJb8QIPX.js → 2-CwQhh3Hg.js} +5 -4
  127. package/build/server/chunks/{2-BJb8QIPX.js.map → 2-CwQhh3Hg.js.map} +1 -1
  128. package/build/server/chunks/{20-DGeV-MBL.js → 20-52YCUMK3.js} +6 -7
  129. package/build/server/chunks/20-52YCUMK3.js.map +1 -0
  130. package/build/server/chunks/{21-BQWXIChZ.js → 21-Dcz_2iKy.js} +2 -2
  131. package/build/server/chunks/{21-BQWXIChZ.js.map → 21-Dcz_2iKy.js.map} +1 -1
  132. package/build/server/chunks/{23-BmGaVmjO.js → 23-C-gTGofY.js} +5 -5
  133. package/build/server/chunks/{23-BmGaVmjO.js.map → 23-C-gTGofY.js.map} +1 -1
  134. package/build/server/chunks/{24-DC5Qi8Sm.js → 24-ukwP0nYw.js} +2 -2
  135. package/build/server/chunks/{24-DC5Qi8Sm.js.map → 24-ukwP0nYw.js.map} +1 -1
  136. package/build/server/chunks/{27-CJsZbiCR.js → 27-C9kRY1qj.js} +2 -2
  137. package/build/server/chunks/{27-CJsZbiCR.js.map → 27-C9kRY1qj.js.map} +1 -1
  138. package/build/server/chunks/{28-D6UoeYd3.js → 28-X583jLPJ.js} +2 -2
  139. package/build/server/chunks/{28-D6UoeYd3.js.map → 28-X583jLPJ.js.map} +1 -1
  140. package/build/server/chunks/{29-DZgNMmXD.js → 29-PJhSN-Wu.js} +2 -2
  141. package/build/server/chunks/{29-DZgNMmXD.js.map → 29-PJhSN-Wu.js.map} +1 -1
  142. package/build/server/chunks/{3-OhWAE0Wx.js → 3-DZiroZZA.js} +2 -2
  143. package/build/server/chunks/{3-OhWAE0Wx.js.map → 3-DZiroZZA.js.map} +1 -1
  144. package/build/server/chunks/{30-B_GStKPy.js → 30-DvqVphAd.js} +2 -2
  145. package/build/server/chunks/{30-B_GStKPy.js.map → 30-DvqVphAd.js.map} +1 -1
  146. package/build/server/chunks/{5-DLhfWemT.js → 5-QlPeCe4d.js} +2 -2
  147. package/build/server/chunks/{5-DLhfWemT.js.map → 5-QlPeCe4d.js.map} +1 -1
  148. package/build/server/chunks/{6-DnjCwAlp.js → 6-3t8NszBJ.js} +2 -2
  149. package/build/server/chunks/{6-DnjCwAlp.js.map → 6-3t8NszBJ.js.map} +1 -1
  150. package/build/server/chunks/{7-leNovc1s.js → 7-DgFxSLWj.js} +2 -2
  151. package/build/server/chunks/{7-leNovc1s.js.map → 7-DgFxSLWj.js.map} +1 -1
  152. package/build/server/chunks/{8-CAx64_UW.js → 8-BKivPkMd.js} +2 -2
  153. package/build/server/chunks/{8-CAx64_UW.js.map → 8-BKivPkMd.js.map} +1 -1
  154. package/build/server/chunks/{9-Dq-RLXVq.js → 9-COv3kpjW.js} +3 -3
  155. package/build/server/chunks/{9-Dq-RLXVq.js.map → 9-COv3kpjW.js.map} +1 -1
  156. package/build/server/chunks/{_page.svelte-DAu2h8jG.js → _page.svelte-CSZEgmHp.js} +5 -5
  157. package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +1 -0
  158. package/build/server/chunks/{_page.svelte-DFgszLSu.js → _page.svelte-DSPm244d.js} +32 -11
  159. package/build/server/chunks/_page.svelte-DSPm244d.js.map +1 -0
  160. package/build/server/chunks/{_page.svelte-BXyLutv1.js → _page.svelte-DSYaUquf.js} +4 -17
  161. package/build/server/chunks/_page.svelte-DSYaUquf.js.map +1 -0
  162. package/build/server/chunks/{_page.svelte-Dz-6_oW1.js → _page.svelte-DlnKE8Z9.js} +382 -35
  163. package/build/server/chunks/_page.svelte-DlnKE8Z9.js.map +1 -0
  164. package/build/server/chunks/{_server.ts-aUFaewu4.js → _server.ts-17aVSHOa.js} +4 -3
  165. package/build/server/chunks/{_server.ts-aUFaewu4.js.map → _server.ts-17aVSHOa.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-BLC5g2H_.js → _server.ts-4eVxyBg6.js} +4 -3
  167. package/build/server/chunks/{_server.ts-BLC5g2H_.js.map → _server.ts-4eVxyBg6.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-BeyEUs6I.js → _server.ts-8ahOmk_6.js} +4 -3
  169. package/build/server/chunks/{_server.ts-BeyEUs6I.js.map → _server.ts-8ahOmk_6.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-DXqr0BIr.js → _server.ts-B0qq-nxh.js} +3 -3
  171. package/build/server/chunks/{_server.ts-DXqr0BIr.js.map → _server.ts-B0qq-nxh.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-BTWwyruR.js → _server.ts-B7X5-4kS.js} +4 -3
  173. package/build/server/chunks/{_server.ts-BTWwyruR.js.map → _server.ts-B7X5-4kS.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-CqCIfPI0.js → _server.ts-B7Z1RMy4.js} +4 -3
  175. package/build/server/chunks/{_server.ts-CqCIfPI0.js.map → _server.ts-B7Z1RMy4.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-CnVtonm0.js → _server.ts-BL7-YPnc.js} +4 -3
  177. package/build/server/chunks/{_server.ts-CnVtonm0.js.map → _server.ts-BL7-YPnc.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-B-1avpfE.js → _server.ts-BRjl7H1o.js} +4 -3
  179. package/build/server/chunks/{_server.ts-B-1avpfE.js.map → _server.ts-BRjl7H1o.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-k9Y_t-wX.js → _server.ts-B_KQteIy.js} +4 -3
  181. package/build/server/chunks/{_server.ts-k9Y_t-wX.js.map → _server.ts-B_KQteIy.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-Bkr-33U0.js → _server.ts-BiJbME_l.js} +3 -4
  183. package/build/server/chunks/_server.ts-BiJbME_l.js.map +1 -0
  184. package/build/server/chunks/{_server.ts-Dw630Jb2.js → _server.ts-Bq2BT6_L.js} +3 -4
  185. package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +1 -0
  186. package/build/server/chunks/{_server.ts-C3CKmKpW.js → _server.ts-BqsgEogJ.js} +4 -3
  187. package/build/server/chunks/{_server.ts-C3CKmKpW.js.map → _server.ts-BqsgEogJ.js.map} +1 -1
  188. package/build/server/chunks/{_server.ts-C2A_Oiwe.js → _server.ts-BtXdHfbr.js} +4 -3
  189. package/build/server/chunks/{_server.ts-C2A_Oiwe.js.map → _server.ts-BtXdHfbr.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-EOYMi5x8.js → _server.ts-C-8S5O0H.js} +4 -3
  191. package/build/server/chunks/{_server.ts-EOYMi5x8.js.map → _server.ts-C-8S5O0H.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-BUEUSAPc.js → _server.ts-C3sOwl5l.js} +4 -3
  193. package/build/server/chunks/{_server.ts-BUEUSAPc.js.map → _server.ts-C3sOwl5l.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-BHizTPVg.js → _server.ts-CKvfxWeo.js} +4 -3
  195. package/build/server/chunks/{_server.ts-BHizTPVg.js.map → _server.ts-CKvfxWeo.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-D9iabXf8.js → _server.ts-CMKxt34Z.js} +4 -3
  197. package/build/server/chunks/{_server.ts-D9iabXf8.js.map → _server.ts-CMKxt34Z.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-C-w9ogA2.js → _server.ts-COWH7HN8.js} +4 -3
  199. package/build/server/chunks/{_server.ts-C-w9ogA2.js.map → _server.ts-COWH7HN8.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-Dp3_io85.js → _server.ts-CUcFObAP.js} +4 -3
  201. package/build/server/chunks/{_server.ts-Dp3_io85.js.map → _server.ts-CUcFObAP.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-Bm14E-bx.js → _server.ts-CW_1VZGk.js} +4 -3
  203. package/build/server/chunks/{_server.ts-Bm14E-bx.js.map → _server.ts-CW_1VZGk.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-DWAwxfXk.js → _server.ts-CXYPZtry.js} +4 -3
  205. package/build/server/chunks/{_server.ts-DWAwxfXk.js.map → _server.ts-CXYPZtry.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-C52CTPlo.js → _server.ts-Cbe4naEr.js} +4 -3
  207. package/build/server/chunks/{_server.ts-C52CTPlo.js.map → _server.ts-Cbe4naEr.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-BIQdiZfW.js → _server.ts-D4mOhrFH.js} +4 -3
  209. package/build/server/chunks/{_server.ts-BIQdiZfW.js.map → _server.ts-D4mOhrFH.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-DzG1eKRC.js → _server.ts-DK7t4rlY.js} +4 -3
  211. package/build/server/chunks/{_server.ts-DzG1eKRC.js.map → _server.ts-DK7t4rlY.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-BXJAFFdr.js → _server.ts-DMnMoi_a.js} +4 -3
  213. package/build/server/chunks/{_server.ts-BXJAFFdr.js.map → _server.ts-DMnMoi_a.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-BTSLBiLL.js → _server.ts-DgTNMZbG.js} +3 -3
  215. package/build/server/chunks/{_server.ts-BTSLBiLL.js.map → _server.ts-DgTNMZbG.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-DiJ2px88.js → _server.ts-DpkIJe-d.js} +4 -3
  217. package/build/server/chunks/{_server.ts-DiJ2px88.js.map → _server.ts-DpkIJe-d.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-CpC3cdzG.js → _server.ts-DsFj_8lL.js} +4 -3
  219. package/build/server/chunks/{_server.ts-CpC3cdzG.js.map → _server.ts-DsFj_8lL.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DcRwP_gQ.js → _server.ts-Dsoq_gsI.js} +3 -3
  221. package/build/server/chunks/{_server.ts-DcRwP_gQ.js.map → _server.ts-Dsoq_gsI.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-BKtKkHZS.js → _server.ts-Du-NpBy4.js} +11 -6
  223. package/build/server/chunks/_server.ts-Du-NpBy4.js.map +1 -0
  224. package/build/server/chunks/{_server.ts-DuC2r20u.js → _server.ts-EnuOtr_j.js} +8 -6
  225. package/build/server/chunks/_server.ts-EnuOtr_j.js.map +1 -0
  226. package/build/server/chunks/_server.ts-ODEutN30.js +75 -0
  227. package/build/server/chunks/_server.ts-ODEutN30.js.map +1 -0
  228. package/build/server/chunks/{_server.ts-BOCvzY_U.js → _server.ts-bONEWPMV.js} +4 -3
  229. package/build/server/chunks/{_server.ts-BOCvzY_U.js.map → _server.ts-bONEWPMV.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-CJ8oDVHC.js → _server.ts-t9_veBtJ.js} +3 -2
  231. package/build/server/chunks/{_server.ts-CJ8oDVHC.js.map → _server.ts-t9_veBtJ.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-DDHHklcd.js → _server.ts-vURDyV-V.js} +4 -3
  233. package/build/server/chunks/{_server.ts-DDHHklcd.js.map → _server.ts-vURDyV-V.js.map} +1 -1
  234. package/build/server/chunks/{access.server-CGwRj2TY.js → access.server-BBglojso.js} +3 -2
  235. package/build/server/chunks/{access.server-CGwRj2TY.js.map → access.server-BBglojso.js.map} +1 -1
  236. package/build/server/chunks/{api-errors-b2AR_m1A.js → api-errors-agQVBoep.js} +21 -3
  237. package/build/server/chunks/api-errors-agQVBoep.js.map +1 -0
  238. package/build/server/chunks/refresh-cw-CiiW6Kvx.js +22 -0
  239. package/build/server/chunks/refresh-cw-CiiW6Kvx.js.map +1 -0
  240. package/build/server/chunks/{resolve.server2-BXKCfGfg.js → resolve.server-BXKCfGfg.js} +1 -1
  241. package/build/server/chunks/resolve.server-BXKCfGfg.js.map +1 -0
  242. package/build/server/chunks/triangle-alert-DuaFagu6.js +20 -0
  243. package/build/server/chunks/triangle-alert-DuaFagu6.js.map +1 -0
  244. package/build/server/index.js +1 -1
  245. package/build/server/index.js.map +1 -1
  246. package/build/server/manifest.js +67 -60
  247. package/build/server/manifest.js.map +1 -1
  248. package/package.json +5 -5
  249. package/build/client/_app/immutable/assets/0.D882LCPK.css +0 -1
  250. package/build/client/_app/immutable/assets/0.D882LCPK.css.br +0 -0
  251. package/build/client/_app/immutable/assets/0.D882LCPK.css.gz +0 -0
  252. package/build/client/_app/immutable/chunks/7DlWX6a_.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/7DlWX6a_.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/7OGPJeUM.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/7OGPJeUM.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/C_pyGEAV.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/C_pyGEAV.js.gz +0 -0
  258. package/build/client/_app/immutable/chunks/D0kO1GS0.js.br +0 -0
  259. package/build/client/_app/immutable/chunks/D0kO1GS0.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/DGr_EUx4.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/DGr_EUx4.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/DT5O4b-_.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/DT5O4b-_.js.gz +0 -0
  264. package/build/client/_app/immutable/entry/app.DFWfpqb0.js +0 -2
  265. package/build/client/_app/immutable/entry/app.DFWfpqb0.js.br +0 -0
  266. package/build/client/_app/immutable/entry/app.DFWfpqb0.js.gz +0 -0
  267. package/build/client/_app/immutable/entry/start.-fCdkvY6.js +0 -1
  268. package/build/client/_app/immutable/entry/start.-fCdkvY6.js.br +0 -2
  269. package/build/client/_app/immutable/entry/start.-fCdkvY6.js.gz +0 -0
  270. package/build/client/_app/immutable/nodes/1.NC0eJqYH.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/1.NC0eJqYH.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/11.DegwSwS4.js +0 -2
  273. package/build/client/_app/immutable/nodes/11.DegwSwS4.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/11.DegwSwS4.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/13.DoCSNk6B.js.br +0 -0
  276. package/build/client/_app/immutable/nodes/13.DoCSNk6B.js.gz +0 -0
  277. package/build/client/_app/immutable/nodes/14.CGaF6W-i.js.br +0 -0
  278. package/build/client/_app/immutable/nodes/14.CGaF6W-i.js.gz +0 -0
  279. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js +0 -16
  280. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/16.CK0W0845.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/16.CK0W0845.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/17.BLCtgsLP.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/17.BLCtgsLP.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/19.Dx5b18Qv.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/19.Dx5b18Qv.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/2.BxDq9fgp.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/2.BxDq9fgp.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/20.Q9tlws_F.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/20.Q9tlws_F.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/21.Bbzr4DP5.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/21.Bbzr4DP5.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js +0 -16
  295. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js.br +0 -0
  296. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js.gz +0 -0
  297. package/build/client/_app/immutable/nodes/24.B-_Qylvh.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/24.B-_Qylvh.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/27.CKQ1fXCy.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/27.CKQ1fXCy.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/28.COTXtjAd.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/28.COTXtjAd.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/29.C1uWJrpk.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/29.C1uWJrpk.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/3.D5k6nFAD.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/3.D5k6nFAD.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/30.iBr8WuRu.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/30.iBr8WuRu.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/5.BNy6hwdy.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/5.BNy6hwdy.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/6.CaYtdaf2.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/6.CaYtdaf2.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/7.C1W_YRKU.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/7.C1W_YRKU.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/8.B9sIt6MS.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/8.B9sIt6MS.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js +0 -1
  318. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js.gz +0 -0
  320. package/build/server/chunks/11-CgEVkMbf.js.map +0 -1
  321. package/build/server/chunks/15-BqYjEVaA.js.map +0 -1
  322. package/build/server/chunks/20-DGeV-MBL.js.map +0 -1
  323. package/build/server/chunks/_page.svelte-BXyLutv1.js.map +0 -1
  324. package/build/server/chunks/_page.svelte-DAu2h8jG.js.map +0 -1
  325. package/build/server/chunks/_page.svelte-DFgszLSu.js.map +0 -1
  326. package/build/server/chunks/_page.svelte-Dz-6_oW1.js.map +0 -1
  327. package/build/server/chunks/_server.ts-BKtKkHZS.js.map +0 -1
  328. package/build/server/chunks/_server.ts-Bkr-33U0.js.map +0 -1
  329. package/build/server/chunks/_server.ts-DuC2r20u.js.map +0 -1
  330. package/build/server/chunks/_server.ts-Dw630Jb2.js.map +0 -1
  331. package/build/server/chunks/api-errors-b2AR_m1A.js.map +0 -1
  332. package/build/server/chunks/resolve.server-C5wZnxS_.js +0 -11
  333. package/build/server/chunks/resolve.server-C5wZnxS_.js.map +0 -1
  334. package/build/server/chunks/resolve.server2-BXKCfGfg.js.map +0 -1
  335. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js → 0.Y-xP5pet.js} +0 -0
  336. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js.br → 0.Y-xP5pet.js.br} +0 -0
  337. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js.gz → 0.Y-xP5pet.js.gz} +0 -0
@@ -1,10 +1,9 @@
1
- import { r as resolveServerForOrg } from './resolve.server-C5wZnxS_.js';
2
- import { r as requireCanCreateDefinition } from './access.server-CGwRj2TY.js';
1
+ import { r as resolveServerForOrg, C as ComputeServerUnconfiguredError } from './api-errors-agQVBoep.js';
2
+ import { r as requireCanCreateDefinition } from './access.server-BBglojso.js';
3
3
  import { error } from '@sveltejs/kit';
4
4
  import { camelcaseKeys } from '@selvajs/compute/core';
5
5
  import './context-DKDYb-He.js';
6
6
  import 'zod';
7
- import './utils2-D38XWwRv.js';
8
7
  import './providers.server-MD7TK-zQ.js';
9
8
  import './shared-server-C3WdcJCQ.js';
10
9
  import 'node:url';
@@ -13,7 +12,7 @@ import 'node:fs';
13
12
  import 'node:crypto';
14
13
  import 'node:fs/promises';
15
14
  import '@supabase/supabase-js';
16
- import './api-errors-b2AR_m1A.js';
15
+ import './utils2-D38XWwRv.js';
17
16
 
18
17
  const POST = async ({ request, locals, url }) => {
19
18
  const projectId = url.searchParams.get("projectId");
@@ -21,7 +20,13 @@ const POST = async ({ request, locals, url }) => {
21
20
  throw error(400, "projectId query parameter is required");
22
21
  }
23
22
  const { project } = await requireCanCreateDefinition(locals, projectId);
24
- const server = await resolveServerForOrg(locals.ctx, project.orgId);
23
+ let server;
24
+ try {
25
+ server = await resolveServerForOrg(locals.ctx, project.orgId);
26
+ } catch (err) {
27
+ if (err instanceof ComputeServerUnconfiguredError) throw error(503, err.message);
28
+ throw err;
29
+ }
25
30
  const formData = await request.formData();
26
31
  const schemaUrl = new URL("/grasshopper/schema", server.serverUrl).toString();
27
32
  const headers = {};
@@ -49,4 +54,4 @@ const POST = async ({ request, locals, url }) => {
49
54
  };
50
55
 
51
56
  export { POST };
52
- //# sourceMappingURL=_server.ts-BKtKkHZS.js.map
57
+ //# sourceMappingURL=_server.ts-Du-NpBy4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Du-NpBy4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/schema/_server.ts.js"],"sourcesContent":["import { r as resolveServerForOrg, C as ComputeServerUnconfiguredError } from \"../../../../../chunks/api-errors.js\";\nimport { r as requireCanCreateDefinition } from \"../../../../../chunks/access.server.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { camelcaseKeys } from \"@selvajs/compute/core\";\nconst POST = async ({ request, locals, url }) => {\n const projectId = url.searchParams.get(\"projectId\");\n if (!projectId) {\n throw error(400, \"projectId query parameter is required\");\n }\n const { project } = await requireCanCreateDefinition(locals, projectId);\n let server;\n try {\n server = await resolveServerForOrg(locals.ctx, project.orgId);\n } catch (err) {\n if (err instanceof ComputeServerUnconfiguredError) throw error(503, err.message);\n throw err;\n }\n const formData = await request.formData();\n const schemaUrl = new URL(\"/grasshopper/schema\", server.serverUrl).toString();\n const headers = {};\n if (server.apiKey) {\n headers[\"RhinoComputeKey\"] = server.apiKey;\n }\n let response;\n try {\n response = await fetch(schemaUrl, { method: \"POST\", headers, body: formData });\n } catch {\n throw error(503, \"Compute server is unreachable\");\n }\n if (!response.ok) {\n throw error(response.status, \"Compute server error\");\n }\n const raw = await response.json();\n const results = camelcaseKeys(Array.isArray(raw) ? raw : [raw]);\n const schemas = results.flatMap((r) => r.schemas ?? []);\n if (schemas.length === 0) {\n throw error(422, \"No schemas found in definition\");\n }\n return new Response(JSON.stringify(schemas), {\n headers: { \"Content-Type\": \"application/json\" }\n });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACjD,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;AACrD,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,uCAAuC,CAAC;AAC7D,EAAE;AACF,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,SAAS,CAAC;AACzE,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AACjE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,YAAY,8BAA8B,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;AACpF,IAAI,MAAM,GAAG;AACb,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AAC3C,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;AAC/E,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,IAAI,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM;AAC9C,EAAE;AACF,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI;AACN,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClF,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AACrD,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;AACxD,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjE,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;AACzD,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,gCAAgC,CAAC;AACtD,EAAE;AACF,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC/C,IAAI,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB;AACjD,GAAG,CAAC;AACJ;;;;"}
@@ -1,14 +1,14 @@
1
1
  import { TreeBuilder, GrasshopperClient } from '@selvajs/compute';
2
2
  import { error, json, isHttpError } from '@sveltejs/kit';
3
- import { r as resolveServerForOrg } from './resolve.server-C5wZnxS_.js';
3
+ import { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from './api-errors-agQVBoep.js';
4
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';
5
5
  import { e as requireMaxBodySize } from './admin-auth.server-45kKyH82.js';
6
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-CGwRj2TY.js';
8
- import { t as tryResolveShareToken } from './resolve.server2-BXKCfGfg.js';
9
- import { f as fetchSchemaFromCompute } from './api-errors-b2AR_m1A.js';
7
+ import { k as requireCanEditDefinition, q as requireCanSolve } from './access.server-BBglojso.js';
8
+ import { t as tryResolveShareToken } from './resolve.server-BXKCfGfg.js';
10
9
  import './context-DKDYb-He.js';
11
10
  import 'zod';
11
+ import '@selvajs/compute/core';
12
12
  import './utils2-D38XWwRv.js';
13
13
  import './shared-server-C3WdcJCQ.js';
14
14
  import 'node:url';
@@ -17,7 +17,6 @@ import 'node:fs';
17
17
  import 'node:crypto';
18
18
  import 'node:fs/promises';
19
19
  import '@supabase/supabase-js';
20
- import '@selvajs/compute/core';
21
20
  import './token.server-BGL9vwYS.js';
22
21
 
23
22
  function isSafeRemoteDefinitionUrl(raw) {
@@ -292,6 +291,9 @@ const POST = async ({ request, locals, url }) => {
292
291
  return json(solvedDefinition);
293
292
  } catch (err) {
294
293
  if (isHttpError(err)) throw err;
294
+ if (err instanceof ComputeServerUnconfiguredError) {
295
+ throw error(503, err.message);
296
+ }
295
297
  const message = err instanceof Error ? err.message : "Unknown error";
296
298
  console.error("[API/Compute] Error:", message);
297
299
  if (err instanceof TypeError && message === "fetch failed") {
@@ -302,4 +304,4 @@ const POST = async ({ request, locals, url }) => {
302
304
  };
303
305
 
304
306
  export { POST };
305
- //# sourceMappingURL=_server.ts-DuC2r20u.js.map
307
+ //# sourceMappingURL=_server.ts-EnuOtr_j.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-EnuOtr_j.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { error, json, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from \"../../../../chunks/api-errors.js\";\nimport { c as RATE_LIMIT_WINDOW_MS, R as RATE_LIMIT_MAX_REQUESTS, 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 COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { e as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { o as getStorageProvider, s 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 return json(solvedDefinition);\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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"}
@@ -0,0 +1,75 @@
1
+ import { json } from '@sveltejs/kit';
2
+ import './context-DKDYb-He.js';
3
+ import { s as providers, L as LocalComputeServerStore } from './providers.server-MD7TK-zQ.js';
4
+ import { z as requirePermission } from './access.server-BBglojso.js';
5
+ import 'zod';
6
+ import './shared-server-C3WdcJCQ.js';
7
+ import 'node:url';
8
+ import 'node:path';
9
+ import 'node:fs';
10
+ import 'node:crypto';
11
+ import 'node:fs/promises';
12
+ import '@supabase/supabase-js';
13
+ import './api-errors-agQVBoep.js';
14
+ import '@selvajs/compute/core';
15
+ import './utils2-D38XWwRv.js';
16
+
17
+ function atRestSecretsCheck(report) {
18
+ const base = { id: "at-rest-secrets", label: "Compute server secrets" };
19
+ if (report === null) {
20
+ return {
21
+ ...base,
22
+ status: "not_applicable",
23
+ summary: "The active data provider does not encrypt secrets at this layer — nothing to verify."
24
+ };
25
+ }
26
+ if (report.ok) {
27
+ return {
28
+ ...base,
29
+ status: "ok",
30
+ summary: "All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY."
31
+ };
32
+ }
33
+ const failed = report.failures.map((f) => `"${f.serverLabel}" (${f.reason}${f.cause ? `: ${f.cause}` : ""})`).join(", ");
34
+ const plaintext = report.plaintextFound;
35
+ return {
36
+ ...base,
37
+ status: "degraded",
38
+ summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,
39
+ remediation: plaintext ? "A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted." : "The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again."
40
+ };
41
+ }
42
+ const GET = async ({ locals }) => {
43
+ requirePermission(locals, "instance_admin");
44
+ const checks = [];
45
+ const store = providers.data.computeServer;
46
+ if (store instanceof LocalComputeServerStore) {
47
+ try {
48
+ checks.push(atRestSecretsCheck(await store.verifySecrets()));
49
+ } catch (err) {
50
+ checks.push({
51
+ id: "at-rest-secrets",
52
+ label: "Compute server secrets",
53
+ status: "error",
54
+ summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,
55
+ remediation: "Check server logs (`pm2 logs selva-compute`) for the underlying error."
56
+ });
57
+ }
58
+ } else {
59
+ checks.push(atRestSecretsCheck(null));
60
+ }
61
+ const rank = {
62
+ ok: 0,
63
+ not_applicable: 0,
64
+ degraded: 2,
65
+ error: 3
66
+ };
67
+ const overall = checks.reduce(
68
+ (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,
69
+ "ok"
70
+ );
71
+ return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });
72
+ };
73
+
74
+ export { GET };
75
+ //# sourceMappingURL=_server.ts-ODEutN30.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-ODEutN30.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport \"../../../../../../chunks/context.js\";\nimport { s as providers, L as LocalComputeServerStore } from \"../../../../../../chunks/providers.server.js\";\nimport { z as requirePermission } from \"../../../../../../chunks/access.server.js\";\nfunction atRestSecretsCheck(report) {\n const base = { id: \"at-rest-secrets\", label: \"Compute server secrets\" };\n if (report === null) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"The active data provider does not encrypt secrets at this layer — nothing to verify.\"\n };\n }\n if (report.ok) {\n return {\n ...base,\n status: \"ok\",\n summary: \"All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY.\"\n };\n }\n const failed = report.failures.map((f) => `\"${f.serverLabel}\" (${f.reason}${f.cause ? `: ${f.cause}` : \"\"})`).join(\", \");\n const plaintext = report.plaintextFound;\n return {\n ...base,\n status: \"degraded\",\n summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,\n remediation: plaintext ? \"A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted.\" : \"The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again.\"\n };\n}\nconst GET = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const checks = [];\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n checks.push(atRestSecretsCheck(await store.verifySecrets()));\n } catch (err) {\n checks.push({\n id: \"at-rest-secrets\",\n label: \"Compute server secrets\",\n status: \"error\",\n summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,\n remediation: \"Check server logs (`pm2 logs selva-compute`) for the underlying error.\"\n });\n }\n } else {\n checks.push(atRestSecretsCheck(null));\n }\n const rank = {\n ok: 0,\n not_applicable: 0,\n degraded: 2,\n error: 3\n };\n const overall = checks.reduce(\n (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,\n \"ok\"\n );\n return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
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-CGwRj2TY.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-b2AR_m1A.js';
5
+ import { u as requireInstanceAdmin } from './access.server-BBglojso.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-agQVBoep.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,6 +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
17
 
17
18
  const MAX_SLUG_ATTEMPTS = 25;
18
19
  function isSlugConflict(err) {
@@ -101,4 +102,4 @@ const POST = async ({ request, locals }) => {
101
102
  };
102
103
 
103
104
  export { GET, POST };
104
- //# sourceMappingURL=_server.ts-BOCvzY_U.js.map
105
+ //# sourceMappingURL=_server.ts-bONEWPMV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BOCvzY_U.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-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,6 +1,6 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { p as getUserProfileStore } from './providers.server-MD7TK-zQ.js';
3
- import { h as handleApiError } from './api-errors-b2AR_m1A.js';
3
+ import { h as handleApiError } from './api-errors-agQVBoep.js';
4
4
  import './shared-server-C3WdcJCQ.js';
5
5
  import 'node:url';
6
6
  import 'node:path';
@@ -11,6 +11,7 @@ import 'node:crypto';
11
11
  import 'node:fs/promises';
12
12
  import '@supabase/supabase-js';
13
13
  import '@selvajs/compute/core';
14
+ import './utils2-D38XWwRv.js';
14
15
 
15
16
  const POST = async ({ params, locals }) => {
16
17
  if (!locals.user || !locals.ctx) throw error(401, "Unauthorized");
@@ -36,4 +37,4 @@ const DELETE = async ({ params, locals }) => {
36
37
  };
37
38
 
38
39
  export { DELETE, POST };
39
- //# sourceMappingURL=_server.ts-CJ8oDVHC.js.map
40
+ //# sourceMappingURL=_server.ts-t9_veBtJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CJ8oDVHC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/me/starred/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { p as getUserProfileStore } from \"../../../../../../chunks/providers.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nconst POST = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().starDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: true });\n } catch (err) {\n handleApiError(err, \"Failed to star definition\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().unstarDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: false });\n } catch (err) {\n handleApiError(err, \"Failed to unstar definition\");\n }\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,2BAA2B,CAAC;AACpD,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts-t9_veBtJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/me/starred/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { p as getUserProfileStore } from \"../../../../../../chunks/providers.server.js\";\nimport { h as handleApiError } from \"../../../../../../chunks/api-errors.js\";\nconst POST = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().starDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: true });\n } catch (err) {\n handleApiError(err, \"Failed to star definition\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n if (!locals.user || !locals.ctx) throw error(401, \"Unauthorized\");\n const guid = params.guid;\n if (!guid) throw error(400, \"Missing definition guid\");\n try {\n await getUserProfileStore().unstarDefinition(locals.ctx, locals.user.id, guid);\n return json({ starred: false });\n } catch (err) {\n handleApiError(err, \"Failed to unstar definition\");\n }\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,2BAA2B,CAAC;AACpD,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACxD,EAAE,IAAI;AACN,IAAI,MAAM,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { error } from '@sveltejs/kit';
2
2
  import { i as getDefinitionMeta, d as definitionPaths, o as getStorageProvider } from './providers.server-MD7TK-zQ.js';
3
3
  import { G as GuidSchema } from './context-DKDYb-He.js';
4
- import { s as requireCanViewProject } from './access.server-CGwRj2TY.js';
4
+ import { s as requireCanViewProject } from './access.server-BBglojso.js';
5
5
  import './shared-server-C3WdcJCQ.js';
6
6
  import 'node:url';
7
7
  import 'node:path';
@@ -10,8 +10,9 @@ import 'node:crypto';
10
10
  import 'node:fs/promises';
11
11
  import '@supabase/supabase-js';
12
12
  import 'zod';
13
- import './api-errors-b2AR_m1A.js';
13
+ import './api-errors-agQVBoep.js';
14
14
  import '@selvajs/compute/core';
15
+ import './utils2-D38XWwRv.js';
15
16
 
16
17
  const ALLOWED_EXTENSIONS = {
17
18
  ".webp": "image/webp",
@@ -47,4 +48,4 @@ const GET = async ({ params, locals }) => {
47
48
  };
48
49
 
49
50
  export { GET };
50
- //# sourceMappingURL=_server.ts-DDHHklcd.js.map
51
+ //# sourceMappingURL=_server.ts-vURDyV-V.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DDHHklcd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/files/_...path_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { i as getDefinitionMeta, d as definitionPaths, o as getStorageProvider } from \"../../../../../chunks/providers.server.js\";\nimport { G as GuidSchema } from \"../../../../../chunks/context.js\";\nimport { s as requireCanViewProject } from \"../../../../../chunks/access.server.js\";\nconst ALLOWED_EXTENSIONS = {\n \".webp\": \"image/webp\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".png\": \"image/png\",\n \".gif\": \"image/gif\"\n};\nconst COVER_PATH_PATTERN = /^definitions\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\/cover\\.([a-z]+)$/i;\nconst GET = async ({ params, locals }) => {\n const storagePath = params.path;\n if (!storagePath) throw error(400, \"Missing path\");\n const match = COVER_PATH_PATTERN.exec(storagePath);\n if (!match) throw error(404, \"File not found\");\n const [, guid, rawExt] = match;\n const ext = `.${rawExt.toLowerCase()}`;\n if (!ALLOWED_EXTENSIONS[ext]) throw error(404, \"File not found\");\n const guidParsed = GuidSchema.safeParse(guid);\n if (!guidParsed.success) throw error(404, \"File not found\");\n if (!locals.ctx) throw error(401, \"Unauthorized\");\n const record = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!record) throw error(404, \"File not found\");\n await requireCanViewProject(locals, record.projectId);\n const canonicalPath = definitionPaths.image(guidParsed.data);\n const bytes = await getStorageProvider().get(canonicalPath);\n if (!bytes) throw error(404, \"File not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": ALLOWED_EXTENSIONS[ext],\n \"Cache-Control\": \"private, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,MAAM,kBAAkB,GAAG;AAC3B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE;AACV,CAAC;AACD,MAAM,kBAAkB,GAAG,iGAAiG;AACvH,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI;AACjC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACpD,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAClE,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC7D,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC3E,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjD,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7D,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,kBAAkB,CAAC,GAAG,CAAC;AAC7C,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"_server.ts-vURDyV-V.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/files/_...path_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { i as getDefinitionMeta, d as definitionPaths, o as getStorageProvider } from \"../../../../../chunks/providers.server.js\";\nimport { G as GuidSchema } from \"../../../../../chunks/context.js\";\nimport { s as requireCanViewProject } from \"../../../../../chunks/access.server.js\";\nconst ALLOWED_EXTENSIONS = {\n \".webp\": \"image/webp\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".png\": \"image/png\",\n \".gif\": \"image/gif\"\n};\nconst COVER_PATH_PATTERN = /^definitions\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\/cover\\.([a-z]+)$/i;\nconst GET = async ({ params, locals }) => {\n const storagePath = params.path;\n if (!storagePath) throw error(400, \"Missing path\");\n const match = COVER_PATH_PATTERN.exec(storagePath);\n if (!match) throw error(404, \"File not found\");\n const [, guid, rawExt] = match;\n const ext = `.${rawExt.toLowerCase()}`;\n if (!ALLOWED_EXTENSIONS[ext]) throw error(404, \"File not found\");\n const guidParsed = GuidSchema.safeParse(guid);\n if (!guidParsed.success) throw error(404, \"File not found\");\n if (!locals.ctx) throw error(401, \"Unauthorized\");\n const record = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!record) throw error(404, \"File not found\");\n await requireCanViewProject(locals, record.projectId);\n const canonicalPath = definitionPaths.image(guidParsed.data);\n const bytes = await getStorageProvider().get(canonicalPath);\n if (!bytes) throw error(404, \"File not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": ALLOWED_EXTENSIONS[ext],\n \"Cache-Control\": \"private, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAM,kBAAkB,GAAG;AAC3B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE;AACV,CAAC;AACD,MAAM,kBAAkB,GAAG,iGAAiG;AACvH,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI;AACjC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACpD,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAClE,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC7D,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC3E,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjD,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7D,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,kBAAkB,CAAC,GAAG,CAAC;AAC7C,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { error, redirect } from '@sveltejs/kit';
2
2
  import { j as hasPermission, a as ALL_PLATFORM_PERMISSIONS } from './context-DKDYb-He.js';
3
3
  import { i as getDefinitionMeta, k as getOrganizationProvider, f as flag, n as getProjectProvider, m as getPlatformProjectGrantStore } from './providers.server-MD7TK-zQ.js';
4
- import { h as handleApiError } from './api-errors-b2AR_m1A.js';
4
+ import { h as handleApiError } from './api-errors-agQVBoep.js';
5
5
  import 'zod';
6
6
  import './shared-server-C3WdcJCQ.js';
7
7
  import 'node:url';
@@ -11,6 +11,7 @@ import 'node:crypto';
11
11
  import 'node:fs/promises';
12
12
  import '@supabase/supabase-js';
13
13
  import '@selvajs/compute/core';
14
+ import './utils2-D38XWwRv.js';
14
15
 
15
16
  function isInstanceAdmin(platformPermissions) {
16
17
  return platformPermissions.includes("instance_admin");
@@ -409,4 +410,4 @@ const access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
409
410
  }, Symbol.toStringTag, { value: "Module" }));
410
411
 
411
412
  export { requireTargetIsOrgMember as A, withAdminBypass as B, access_server as a, assertAnyPlatformPermission as b, assertManageCompute as c, assertManageInstanceUsers as d, assertPagePermission as e, canChangeVisibilityToPublic as f, canEdit as g, canView as h, checkOwnerRemoval as i, requireCanCreateProject as j, requireCanEditDefinition as k, requireCanEditProjectSettings as l, requireCanManage as m, requireCanManageMembers as n, requireCanReclaim as o, projectAccessInputFromRows as p, requireCanSolve as q, requireCanCreateDefinition as r, requireCanViewProject as s, requireEditableDefinition as t, requireInstanceAdmin as u, requireManageCompute as v, requireManageInstanceUsers as w, requireManageOrgCompute as x, requireManageOrgMembers as y, requirePermission as z };
412
- //# sourceMappingURL=access.server-CGwRj2TY.js.map
413
+ //# sourceMappingURL=access.server-BBglojso.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.server-CGwRj2TY.js","sources":["../../../.svelte-kit/adapter-node/chunks/access.server.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { j as hasPermission, a as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { i as getDefinitionMeta, k as getOrganizationProvider, f as flag, n as getProjectProvider, m as getPlatformProjectGrantStore } from \"./providers.server.js\";\nimport { h as handleApiError } from \"./api-errors.js\";\nfunction isInstanceAdmin(platformPermissions) {\n return platformPermissions.includes(\"instance_admin\");\n}\nfunction withAdminBypass(platformPermissions, rule) {\n if (isInstanceAdmin(platformPermissions))\n return true;\n return rule();\n}\nfunction canView(input) {\n const { project, member, orgMember, allowCrossOrgPublic, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId);\n }\n if (project.visibility === \"private\")\n return member !== null;\n if (project.visibility === \"org\")\n return orgMember !== null;\n if (project.visibility === \"public\")\n return allowCrossOrgPublic ? true : orgMember !== null;\n return false;\n}\nfunction canSolve(input) {\n const { project, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.canSolve && (g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId));\n }\n return canView(input);\n}\nfunction canEdit(input) {\n const { member, project, enablePlatformProjects, platformPermissions } = input;\n if (project?.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n return member?.role === \"owner\" || member?.role === \"editor\";\n}\nfunction canManage(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canEditProjectSettings(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canChangeVisibilityToPublic(input) {\n const role = input.orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canEditDefinition(input) {\n const { project, definition, member, userId, platformPermissions, enablePlatformProjects } = input;\n if (!project || !definition)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n if (member?.role === \"owner\" || member?.role === \"editor\")\n return true;\n if (project.autoJoinOnUpload && userId === definition.ownerId)\n return true;\n return false;\n}\nfunction canReclaim(input) {\n const { project, orgMember, actingOrgId } = input;\n if (!project || !actingOrgId)\n return false;\n if (project.visibility === \"platform\")\n return false;\n if (actingOrgId !== project.orgId)\n return false;\n const role = orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canCreateProject(input) {\n const { orgMember, orgPermissions, actingOrgId, targetOrgId } = input;\n if (actingOrgId !== targetOrgId)\n return false;\n const role = orgMember?.role;\n if (role === \"owner\" || role === \"admin\")\n return true;\n if (role === \"member\" && orgPermissions.includes(\"manage_projects\"))\n return true;\n return false;\n}\nfunction checkOwnerRemoval(input) {\n if (input.target.role !== \"owner\")\n return \"ok\";\n const ownerCount = input.allMembers.filter((m) => m.role === \"owner\").length;\n if (ownerCount <= 1)\n return \"sole_owner\";\n if (!input.confirmed)\n return \"needs_confirm\";\n return \"ok\";\n}\nconst throwProviderError = handleApiError;\nfunction requireAuthed(locals) {\n const { user, ctx } = locals;\n if (!user || !ctx) throw error(401, \"Unauthorized\");\n return { user, ctx };\n}\nfunction requirePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n throw error(403, `You don't have permission to do this.`);\n }\n return user;\n}\nfunction assertPagePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n redirect(303, \"/admin\");\n }\n return user;\n}\nconst requireManageInstanceUsers = (locals) => requirePermission(locals, \"manage_instance_users\");\nconst requireManageCompute = (locals) => requirePermission(locals, \"manage_compute\");\nconst requireManageOrgMembers = (locals) => requirePermission(locals, \"manage_org_members\");\nconst requireManageOrgCompute = (locals) => requirePermission(locals, \"manage_org_compute\");\nconst requireManageDefinitions = (locals) => requirePermission(locals, \"manage_definitions\");\nconst requireManageProjects = (locals) => requirePermission(locals, \"manage_projects\");\nconst assertManageInstanceUsers = (locals) => assertPagePermission(locals, \"manage_instance_users\");\nconst assertManageCompute = (locals) => assertPagePermission(locals, \"manage_compute\");\nconst assertManageDefinitions = (locals) => assertPagePermission(locals, \"manage_definitions\");\nconst assertManageProjects = (locals) => assertPagePermission(locals, \"manage_projects\");\nconst requireInstanceAdmin = (locals) => requirePermission(locals, \"instance_admin\");\nfunction requireAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) throw error(403, `You don't have permission to do this.`);\n return user;\n}\nfunction assertAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) redirect(303, \"/library\");\n return user;\n}\nasync function managementBypassOrRun(ctx, check) {\n if (hasPermission(ctx, \"instance_admin\")) return true;\n return await check();\n}\nasync function contentCheck(check) {\n return await check();\n}\nasync function loadProjectOr404(ctx, projectId) {\n const project = await getProjectProvider().getProject(ctx, projectId);\n if (!project) throw error(404, \"Project not found\");\n return project;\n}\nasync function buildProjectAccessInput(ctx, project, overrides = {}) {\n const allowCrossOrgPublic = flag(\"ALLOW_CROSS_ORG_PUBLIC\");\n const enablePlatformProjects = flag(\"ENABLE_PLATFORM_PROJECTS\");\n let member = null;\n let orgMember = null;\n let platformGrants = [];\n if (project.visibility === \"platform\") {\n if (enablePlatformProjects) {\n platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);\n }\n } else if (project.visibility === \"private\") {\n member = await getProjectProvider().getProjectMember(ctx, project.id, ctx.userId);\n } else {\n const skipOrgMember = project.visibility === \"public\" && allowCrossOrgPublic;\n [member, orgMember] = await Promise.all([\n getProjectProvider().getProjectMember(ctx, project.id, ctx.userId),\n skipOrgMember ? Promise.resolve(null) : getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId)\n ]);\n }\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member,\n orgMember,\n allowCrossOrgPublic,\n enablePlatformProjects,\n platformGrants,\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId,\n ...overrides\n };\n}\nfunction projectAccessInputFromRows(ctx, project, rows) {\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member: rows.member ?? null,\n orgMember: rows.orgMember ?? null,\n allowCrossOrgPublic: flag(\"ALLOW_CROSS_ORG_PUBLIC\"),\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\"),\n platformGrants: rows.platformGrants ?? [],\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId\n };\n}\nasync function requireCanEdit(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this project.\");\n return user;\n}\nasync function requireCanCreateDefinition(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(async () => {\n if (project.autoJoinOnUpload) return true;\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) {\n throw error(403, \"You do not have permission to upload definitions to this project.\");\n }\n return { user, ctx, project };\n}\nasync function requireTargetIsOrgMember(locals, orgId, targetUserId) {\n const { ctx } = requireAuthed(locals);\n const member = await getOrganizationProvider().getOrgMember(ctx, orgId, targetUserId);\n if (!member) {\n throw error(400, \"User must be a member of this organization to be added to a project.\");\n }\n}\nasync function requireCanReclaim(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId);\n return canReclaim({\n project,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null\n });\n });\n if (!allowed) {\n throw error(403, \"Only org owners or admins of this project’s org can reclaim it.\");\n }\n return { user, ctx, project };\n}\nasync function requireCanCreateProject(locals, targetOrgId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, targetOrgId, ctx.userId);\n return canCreateProject({\n orgPermissions: ctx.orgPermissions,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null,\n targetOrgId\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to create projects in this org.\");\n return { user, ctx };\n}\nasync function requireCanManage(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage this project.\");\n return user;\n}\nasync function requireCanManageMembers(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage members.\");\n return user;\n}\nasync function requireCanEditProjectSettings(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(\n ctx,\n async () => canEditProjectSettings(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"Only project owners can edit project settings.\");\n return { user, ctx, project };\n}\nasync function requireCanViewProject(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canView(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return user;\n}\nasync function requireCanSolve(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(\n async () => canSolve(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return { user, ctx, project };\n}\nasync function requireEditableDefinition(locals, guid) {\n const { ctx } = requireAuthed(locals);\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record) throw error(404, \"Definition not found\");\n const allowed = await contentCheck(async () => {\n const [project, member] = await Promise.all([\n getProjectProvider().getProject(ctx, record.projectId),\n getProjectProvider().getProjectMember(ctx, record.projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition: record,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return { record, ctx };\n}\nasync function requireCanEditDefinition(locals, projectId, definitionGuid) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const [project, definition, member] = await Promise.all([\n getProjectProvider().getProject(ctx, projectId),\n getDefinitionMeta().get(ctx, definitionGuid),\n getProjectProvider().getProjectMember(ctx, projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return user;\n}\nconst access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n assertAnyPlatformPermission,\n assertManageCompute,\n assertManageDefinitions,\n assertManageInstanceUsers,\n assertManageProjects,\n assertPagePermission,\n projectAccessInputFromRows,\n requireAnyPlatformPermission,\n requireCanCreateDefinition,\n requireCanCreateProject,\n requireCanEdit,\n requireCanEditDefinition,\n requireCanEditProjectSettings,\n requireCanManage,\n requireCanManageMembers,\n requireCanReclaim,\n requireCanSolve,\n requireCanViewProject,\n requireEditableDefinition,\n requireInstanceAdmin,\n requireManageCompute,\n requireManageDefinitions,\n requireManageInstanceUsers,\n requireManageOrgCompute,\n requireManageOrgMembers,\n requireManageProjects,\n requirePermission,\n requireTargetIsOrgMember,\n throwProviderError\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n requireTargetIsOrgMember as A,\n withAdminBypass as B,\n access_server as a,\n assertAnyPlatformPermission as b,\n assertManageCompute as c,\n assertManageInstanceUsers as d,\n assertPagePermission as e,\n canChangeVisibilityToPublic as f,\n canEdit as g,\n canView as h,\n checkOwnerRemoval as i,\n requireCanCreateProject as j,\n requireCanEditDefinition as k,\n requireCanEditProjectSettings as l,\n requireCanManage as m,\n requireCanManageMembers as n,\n requireCanReclaim as o,\n projectAccessInputFromRows as p,\n requireCanSolve as q,\n requireCanCreateDefinition as r,\n requireCanViewProject as s,\n requireEditableDefinition as t,\n requireInstanceAdmin as u,\n requireManageCompute as v,\n requireManageInstanceUsers as w,\n requireManageOrgCompute as x,\n requireManageOrgMembers as y,\n requirePermission as z\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access.server-BBglojso.js","sources":["../../../.svelte-kit/adapter-node/chunks/access.server.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { j as hasPermission, a as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { i as getDefinitionMeta, k as getOrganizationProvider, f as flag, n as getProjectProvider, m as getPlatformProjectGrantStore } from \"./providers.server.js\";\nimport { h as handleApiError } from \"./api-errors.js\";\nfunction isInstanceAdmin(platformPermissions) {\n return platformPermissions.includes(\"instance_admin\");\n}\nfunction withAdminBypass(platformPermissions, rule) {\n if (isInstanceAdmin(platformPermissions))\n return true;\n return rule();\n}\nfunction canView(input) {\n const { project, member, orgMember, allowCrossOrgPublic, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId);\n }\n if (project.visibility === \"private\")\n return member !== null;\n if (project.visibility === \"org\")\n return orgMember !== null;\n if (project.visibility === \"public\")\n return allowCrossOrgPublic ? true : orgMember !== null;\n return false;\n}\nfunction canSolve(input) {\n const { project, enablePlatformProjects, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n if (isInstanceAdmin(platformPermissions))\n return true;\n return platformGrants.some((g) => g.canSolve && (g.granteeType === \"user\" && g.granteeId === userId || g.granteeType === \"org\" && g.granteeId === actingOrgId));\n }\n return canView(input);\n}\nfunction canEdit(input) {\n const { member, project, enablePlatformProjects, platformPermissions } = input;\n if (project?.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n return member?.role === \"owner\" || member?.role === \"editor\";\n}\nfunction canManage(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canEditProjectSettings(input) {\n if (input.project?.visibility === \"platform\") {\n if (!input.enablePlatformProjects)\n return false;\n return isInstanceAdmin(input.platformPermissions);\n }\n return input.member?.role === \"owner\";\n}\nfunction canChangeVisibilityToPublic(input) {\n const role = input.orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canEditDefinition(input) {\n const { project, definition, member, userId, platformPermissions, enablePlatformProjects } = input;\n if (!project || !definition)\n return false;\n if (project.visibility === \"platform\") {\n if (!enablePlatformProjects)\n return false;\n return isInstanceAdmin(platformPermissions);\n }\n if (member?.role === \"owner\" || member?.role === \"editor\")\n return true;\n if (project.autoJoinOnUpload && userId === definition.ownerId)\n return true;\n return false;\n}\nfunction canReclaim(input) {\n const { project, orgMember, actingOrgId } = input;\n if (!project || !actingOrgId)\n return false;\n if (project.visibility === \"platform\")\n return false;\n if (actingOrgId !== project.orgId)\n return false;\n const role = orgMember?.role;\n return role === \"owner\" || role === \"admin\";\n}\nfunction canCreateProject(input) {\n const { orgMember, orgPermissions, actingOrgId, targetOrgId } = input;\n if (actingOrgId !== targetOrgId)\n return false;\n const role = orgMember?.role;\n if (role === \"owner\" || role === \"admin\")\n return true;\n if (role === \"member\" && orgPermissions.includes(\"manage_projects\"))\n return true;\n return false;\n}\nfunction checkOwnerRemoval(input) {\n if (input.target.role !== \"owner\")\n return \"ok\";\n const ownerCount = input.allMembers.filter((m) => m.role === \"owner\").length;\n if (ownerCount <= 1)\n return \"sole_owner\";\n if (!input.confirmed)\n return \"needs_confirm\";\n return \"ok\";\n}\nconst throwProviderError = handleApiError;\nfunction requireAuthed(locals) {\n const { user, ctx } = locals;\n if (!user || !ctx) throw error(401, \"Unauthorized\");\n return { user, ctx };\n}\nfunction requirePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n throw error(403, `You don't have permission to do this.`);\n }\n return user;\n}\nfunction assertPagePermission(locals, permission) {\n const { user, ctx } = requireAuthed(locals);\n if (!hasPermission(ctx, permission)) {\n redirect(303, \"/admin\");\n }\n return user;\n}\nconst requireManageInstanceUsers = (locals) => requirePermission(locals, \"manage_instance_users\");\nconst requireManageCompute = (locals) => requirePermission(locals, \"manage_compute\");\nconst requireManageOrgMembers = (locals) => requirePermission(locals, \"manage_org_members\");\nconst requireManageOrgCompute = (locals) => requirePermission(locals, \"manage_org_compute\");\nconst requireManageDefinitions = (locals) => requirePermission(locals, \"manage_definitions\");\nconst requireManageProjects = (locals) => requirePermission(locals, \"manage_projects\");\nconst assertManageInstanceUsers = (locals) => assertPagePermission(locals, \"manage_instance_users\");\nconst assertManageCompute = (locals) => assertPagePermission(locals, \"manage_compute\");\nconst assertManageDefinitions = (locals) => assertPagePermission(locals, \"manage_definitions\");\nconst assertManageProjects = (locals) => assertPagePermission(locals, \"manage_projects\");\nconst requireInstanceAdmin = (locals) => requirePermission(locals, \"instance_admin\");\nfunction requireAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) throw error(403, `You don't have permission to do this.`);\n return user;\n}\nfunction assertAnyPlatformPermission(locals) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = ALL_PLATFORM_PERMISSIONS.some((p) => hasPermission(ctx, p));\n if (!allowed) redirect(303, \"/library\");\n return user;\n}\nasync function managementBypassOrRun(ctx, check) {\n if (hasPermission(ctx, \"instance_admin\")) return true;\n return await check();\n}\nasync function contentCheck(check) {\n return await check();\n}\nasync function loadProjectOr404(ctx, projectId) {\n const project = await getProjectProvider().getProject(ctx, projectId);\n if (!project) throw error(404, \"Project not found\");\n return project;\n}\nasync function buildProjectAccessInput(ctx, project, overrides = {}) {\n const allowCrossOrgPublic = flag(\"ALLOW_CROSS_ORG_PUBLIC\");\n const enablePlatformProjects = flag(\"ENABLE_PLATFORM_PROJECTS\");\n let member = null;\n let orgMember = null;\n let platformGrants = [];\n if (project.visibility === \"platform\") {\n if (enablePlatformProjects) {\n platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);\n }\n } else if (project.visibility === \"private\") {\n member = await getProjectProvider().getProjectMember(ctx, project.id, ctx.userId);\n } else {\n const skipOrgMember = project.visibility === \"public\" && allowCrossOrgPublic;\n [member, orgMember] = await Promise.all([\n getProjectProvider().getProjectMember(ctx, project.id, ctx.userId),\n skipOrgMember ? Promise.resolve(null) : getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId)\n ]);\n }\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member,\n orgMember,\n allowCrossOrgPublic,\n enablePlatformProjects,\n platformGrants,\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId,\n ...overrides\n };\n}\nfunction projectAccessInputFromRows(ctx, project, rows) {\n return {\n orgPermissions: ctx.orgPermissions,\n platformPermissions: ctx.platformPermissions,\n project,\n member: rows.member ?? null,\n orgMember: rows.orgMember ?? null,\n allowCrossOrgPublic: flag(\"ALLOW_CROSS_ORG_PUBLIC\"),\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\"),\n platformGrants: rows.platformGrants ?? [],\n actingOrgId: ctx.actingOrgId ?? null,\n userId: ctx.userId\n };\n}\nasync function requireCanEdit(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this project.\");\n return user;\n}\nasync function requireCanCreateDefinition(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(async () => {\n if (project.autoJoinOnUpload) return true;\n return canEdit(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) {\n throw error(403, \"You do not have permission to upload definitions to this project.\");\n }\n return { user, ctx, project };\n}\nasync function requireTargetIsOrgMember(locals, orgId, targetUserId) {\n const { ctx } = requireAuthed(locals);\n const member = await getOrganizationProvider().getOrgMember(ctx, orgId, targetUserId);\n if (!member) {\n throw error(400, \"User must be a member of this organization to be added to a project.\");\n }\n}\nasync function requireCanReclaim(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, project.orgId, ctx.userId);\n return canReclaim({\n project,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null\n });\n });\n if (!allowed) {\n throw error(403, \"Only org owners or admins of this project’s org can reclaim it.\");\n }\n return { user, ctx, project };\n}\nasync function requireCanCreateProject(locals, targetOrgId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, targetOrgId, ctx.userId);\n return canCreateProject({\n orgPermissions: ctx.orgPermissions,\n orgMember,\n actingOrgId: ctx.actingOrgId ?? null,\n targetOrgId\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to create projects in this org.\");\n return { user, ctx };\n}\nasync function requireCanManage(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage this project.\");\n return user;\n}\nasync function requireCanManageMembers(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await managementBypassOrRun(ctx, async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canManage(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"Only project owners can manage members.\");\n return user;\n}\nasync function requireCanEditProjectSettings(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await managementBypassOrRun(\n ctx,\n async () => canEditProjectSettings(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"Only project owners can edit project settings.\");\n return { user, ctx, project };\n}\nasync function requireCanViewProject(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const project = await loadProjectOr404(ctx, projectId);\n return canView(await buildProjectAccessInput(ctx, project));\n });\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return user;\n}\nasync function requireCanSolve(locals, projectId) {\n const { user, ctx } = requireAuthed(locals);\n const project = await loadProjectOr404(ctx, projectId);\n const allowed = await contentCheck(\n async () => canSolve(await buildProjectAccessInput(ctx, project))\n );\n if (!allowed) throw error(403, \"You do not have access to this project.\");\n return { user, ctx, project };\n}\nasync function requireEditableDefinition(locals, guid) {\n const { ctx } = requireAuthed(locals);\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record) throw error(404, \"Definition not found\");\n const allowed = await contentCheck(async () => {\n const [project, member] = await Promise.all([\n getProjectProvider().getProject(ctx, record.projectId),\n getProjectProvider().getProjectMember(ctx, record.projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition: record,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return { record, ctx };\n}\nasync function requireCanEditDefinition(locals, projectId, definitionGuid) {\n const { user, ctx } = requireAuthed(locals);\n const allowed = await contentCheck(async () => {\n const [project, definition, member] = await Promise.all([\n getProjectProvider().getProject(ctx, projectId),\n getDefinitionMeta().get(ctx, definitionGuid),\n getProjectProvider().getProjectMember(ctx, projectId, ctx.userId)\n ]);\n return canEditDefinition({\n project,\n definition,\n member,\n userId: ctx.userId,\n platformPermissions: ctx.platformPermissions,\n enablePlatformProjects: flag(\"ENABLE_PLATFORM_PROJECTS\")\n });\n });\n if (!allowed) throw error(403, \"You do not have permission to edit this definition.\");\n return user;\n}\nconst access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n assertAnyPlatformPermission,\n assertManageCompute,\n assertManageDefinitions,\n assertManageInstanceUsers,\n assertManageProjects,\n assertPagePermission,\n projectAccessInputFromRows,\n requireAnyPlatformPermission,\n requireCanCreateDefinition,\n requireCanCreateProject,\n requireCanEdit,\n requireCanEditDefinition,\n requireCanEditProjectSettings,\n requireCanManage,\n requireCanManageMembers,\n requireCanReclaim,\n requireCanSolve,\n requireCanViewProject,\n requireEditableDefinition,\n requireInstanceAdmin,\n requireManageCompute,\n requireManageDefinitions,\n requireManageInstanceUsers,\n requireManageOrgCompute,\n requireManageOrgMembers,\n requireManageProjects,\n requirePermission,\n requireTargetIsOrgMember,\n throwProviderError\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n requireTargetIsOrgMember as A,\n withAdminBypass as B,\n access_server as a,\n assertAnyPlatformPermission as b,\n assertManageCompute as c,\n assertManageInstanceUsers as d,\n assertPagePermission as e,\n canChangeVisibilityToPublic as f,\n canEdit as g,\n canView as h,\n checkOwnerRemoval as i,\n requireCanCreateProject as j,\n requireCanEditDefinition as k,\n requireCanEditProjectSettings as l,\n requireCanManage as m,\n requireCanManageMembers as n,\n requireCanReclaim as o,\n projectAccessInputFromRows as p,\n requireCanSolve as q,\n requireCanCreateDefinition as r,\n requireCanViewProject as s,\n requireEditableDefinition as t,\n requireInstanceAdmin as u,\n requireManageCompute as v,\n requireManageInstanceUsers as w,\n requireManageOrgCompute as x,\n requireManageOrgMembers as y,\n requirePermission as z\n};\n"],"names":[],"mappings":"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"}