@selvajs/selva 2.0.1 → 2.0.3

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 (451) hide show
  1. package/build/client/.!34937!selva_example_0_1_0.gh +0 -0
  2. package/build/client/_app/immutable/assets/0.B0phAlf7.css.gz +0 -0
  3. package/build/client/_app/immutable/assets/20.5bKkcx-V.css +1 -0
  4. package/build/client/_app/immutable/assets/20.5bKkcx-V.css.br +0 -0
  5. package/build/client/_app/immutable/assets/20.5bKkcx-V.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
  7. package/build/client/_app/immutable/chunks/1s2jTHrf.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/2XlIPTRw.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/2_FEXmq1.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/2dX6Wjni.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/4tskcAVN.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/AEyooZaf.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/B1aRL9Hz.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/B8uG8z2c.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/B8zY50Bc.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BCse3N0b.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/BGxzXVpM.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/BM4_iXSA.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BMGykAfL.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/BNScKugQ.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/BNzEBMy8.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BU9URCkw.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{BSyJ0ZuA.js → BV1oWdGD.js} +1 -1
  24. package/build/client/_app/immutable/chunks/BV1oWdGD.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/BV1oWdGD.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/BW4xleRz.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/BZmrLQwT.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/B_Lmgh7q.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BapAUJpM.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/Bb9xebuT.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BjkQG7dw.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/Bmz9gLBz.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/Bnpwcepm.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BoR6OKl6.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/Br5bpmJC.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/BxCHY0iG.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/C1Sz0rtw.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/C1aQuqo_.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/C26nmevH.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/C8ko2SLk.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/CAMhfNhW.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/{CS49LPny.js → CCx3W8-n.js} +1 -1
  43. package/build/client/_app/immutable/chunks/CCx3W8-n.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/CCx3W8-n.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/CEnIp_6Y.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{4PBDTLFF.js → CISf22d1.js} +1 -1
  47. package/build/client/_app/immutable/chunks/CISf22d1.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CISf22d1.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/CMjc_m7Z.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/CRRzXoPz.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/CXh1ITwj.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/CZ1oTCKP.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/CcYNc8-G.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/Cdcajer6.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/Ce2MupFq.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/CfP1DoGT.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/CfhPDo21.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/CkW8YtSm.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/CoR7xVWs.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/CpGv0MSX.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/Cvr8AlQE.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/D0QMYypb.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/D40b34QZ.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/D6MI_dhi.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/D7l1JayF.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/D99uXqZb.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/{VmqnFAi3.js → DDJVj3K_.js} +1 -1
  69. package/build/client/_app/immutable/chunks/DDJVj3K_.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DDJVj3K_.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/DEBBEmC0.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/DNsLImlA.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/{BMwGnr2J.js → DPB6Jpno.js} +1 -1
  74. package/build/client/_app/immutable/chunks/DPB6Jpno.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/DPB6Jpno.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/DRDjLZb3.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/DTJeGfAL.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/DZFqETAQ.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/D_wr-JLf.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/Dl4WTuMB.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/Doks8ISn.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/E3yOQTT0.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/Gxlzmh6y.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/Ib-7xmHT.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/P4Np3c9O.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/_OLpdTiI.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/azBeeLR0.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/gMllmzma.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/hRoV10UM.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/iEBlyxZv.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/jFKgkeON.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/{smW5maEe.js → mn4wqSK3.js} +1 -1
  95. package/build/client/_app/immutable/chunks/mn4wqSK3.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/mn4wqSK3.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/ooPBmYPj.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/pRg-f8xU.js.gz +0 -0
  99. package/build/client/_app/immutable/chunks/uINs3xv3.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/wamM80bu.js.gz +0 -0
  101. package/build/client/_app/immutable/entry/{app.GElcRZPp.js → app.BRKh5QNI.js} +2 -2
  102. package/build/client/_app/immutable/entry/app.BRKh5QNI.js.br +0 -0
  103. package/build/client/_app/immutable/entry/app.BRKh5QNI.js.gz +0 -0
  104. package/build/client/_app/immutable/entry/start.DzTy4Sar.js +1 -0
  105. package/build/client/_app/immutable/entry/start.DzTy4Sar.js.br +2 -0
  106. package/build/client/_app/immutable/entry/start.DzTy4Sar.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/{0.r0PA_Sxw.js → 0.KJ-PiM1c.js} +1 -1
  108. package/build/client/_app/immutable/nodes/0.KJ-PiM1c.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/0.KJ-PiM1c.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/{1.CTfA0FAT.js → 1.CTs6oCZo.js} +1 -1
  111. package/build/client/_app/immutable/nodes/1.CTs6oCZo.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/1.CTs6oCZo.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/10.C5pTC9MT.js +3 -0
  114. package/build/client/_app/immutable/nodes/10.C5pTC9MT.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/10.C5pTC9MT.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/{11.Dk81DreT.js → 11.DemYOq3i.js} +1 -1
  117. package/build/client/_app/immutable/nodes/11.DemYOq3i.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/11.DemYOq3i.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.gz +0 -0
  120. package/build/client/_app/immutable/nodes/{13.B3m9NRrd.js → 13.DpdyenfK.js} +1 -1
  121. package/build/client/_app/immutable/nodes/13.DpdyenfK.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/13.DpdyenfK.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/{14.9MmuwEpn.js → 14.CwVi2ClP.js} +1 -1
  124. package/build/client/_app/immutable/nodes/14.CwVi2ClP.js.br +0 -0
  125. package/build/client/_app/immutable/nodes/14.CwVi2ClP.js.gz +0 -0
  126. package/build/client/_app/immutable/nodes/15.CgB8Kdm8.js +13 -0
  127. package/build/client/_app/immutable/nodes/15.CgB8Kdm8.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/15.CgB8Kdm8.js.gz +0 -0
  129. package/build/client/_app/immutable/nodes/{16.BMWgVDGJ.js → 16.DzXblhpf.js} +2 -2
  130. package/build/client/_app/immutable/nodes/16.DzXblhpf.js.br +0 -0
  131. package/build/client/_app/immutable/nodes/16.DzXblhpf.js.gz +0 -0
  132. package/build/client/_app/immutable/nodes/{17.Bch7V784.js → 17.cWP9UUvo.js} +1 -1
  133. package/build/client/_app/immutable/nodes/17.cWP9UUvo.js.br +0 -0
  134. package/build/client/_app/immutable/nodes/17.cWP9UUvo.js.gz +0 -0
  135. package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/{19.DQtOUgti.js → 19.C2JJyvh1.js} +1 -1
  137. package/build/client/_app/immutable/nodes/19.C2JJyvh1.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/19.C2JJyvh1.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{2.CyCY9Gpy.js → 2.CEtR_jy5.js} +1 -1
  140. package/build/client/_app/immutable/nodes/2.CEtR_jy5.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/2.CEtR_jy5.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{20.CT0e7phi.js → 20.CpAqrbNF.js} +6 -6
  143. package/build/client/_app/immutable/nodes/20.CpAqrbNF.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/20.CpAqrbNF.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/{21.C43xF0qL.js → 21.BW8K2thc.js} +1 -1
  146. package/build/client/_app/immutable/nodes/21.BW8K2thc.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/21.BW8K2thc.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/{23.CFT1SOUF.js → 23.BnfqaaSO.js} +1 -1
  149. package/build/client/_app/immutable/nodes/23.BnfqaaSO.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/23.BnfqaaSO.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/{24.BjGP5G3P.js → 24.XyeC_rUv.js} +1 -1
  152. package/build/client/_app/immutable/nodes/24.XyeC_rUv.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/24.XyeC_rUv.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.gz +0 -0
  155. package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/{27.BS48zWld.js → 27.CEXct3Wc.js} +1 -1
  157. package/build/client/_app/immutable/nodes/27.CEXct3Wc.js.br +0 -0
  158. package/build/client/_app/immutable/nodes/27.CEXct3Wc.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/{28.eQk5ZqHl.js → 28.B9Yr7s3f.js} +1 -1
  160. package/build/client/_app/immutable/nodes/28.B9Yr7s3f.js.br +0 -0
  161. package/build/client/_app/immutable/nodes/28.B9Yr7s3f.js.gz +0 -0
  162. package/build/client/_app/immutable/nodes/{29.-im11HaY.js → 29.9THa6mgW.js} +1 -1
  163. package/build/client/_app/immutable/nodes/29.9THa6mgW.js.br +0 -0
  164. package/build/client/_app/immutable/nodes/29.9THa6mgW.js.gz +0 -0
  165. package/build/client/_app/immutable/nodes/{3.CfPrUs70.js → 3.B8tp0KuP.js} +1 -1
  166. package/build/client/_app/immutable/nodes/3.B8tp0KuP.js.br +0 -0
  167. package/build/client/_app/immutable/nodes/3.B8tp0KuP.js.gz +0 -0
  168. package/build/client/_app/immutable/nodes/{30.DUz5JI16.js → 30.B0_ohaRg.js} +1 -1
  169. package/build/client/_app/immutable/nodes/30.B0_ohaRg.js.br +0 -0
  170. package/build/client/_app/immutable/nodes/30.B0_ohaRg.js.gz +0 -0
  171. package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.gz +0 -0
  173. package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.gz +0 -0
  174. package/build/client/_app/immutable/nodes/{5.D4jMtb1M.js → 5.CEvQHcz8.js} +1 -1
  175. package/build/client/_app/immutable/nodes/5.CEvQHcz8.js.br +0 -0
  176. package/build/client/_app/immutable/nodes/5.CEvQHcz8.js.gz +0 -0
  177. package/build/client/_app/immutable/nodes/{6.BhoBomwz.js → 6.MiARQsow.js} +1 -1
  178. package/build/client/_app/immutable/nodes/6.MiARQsow.js.br +0 -0
  179. package/build/client/_app/immutable/nodes/6.MiARQsow.js.gz +0 -0
  180. package/build/client/_app/immutable/nodes/{7.CaJkp9fo.js → 7.4E9V6GcT.js} +1 -1
  181. package/build/client/_app/immutable/nodes/7.4E9V6GcT.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/7.4E9V6GcT.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/{8.Bt2DWfca.js → 8.D8g6Vds-.js} +1 -1
  184. package/build/client/_app/immutable/nodes/8.D8g6Vds-.js.br +0 -0
  185. package/build/client/_app/immutable/nodes/8.D8g6Vds-.js.gz +0 -0
  186. package/build/client/_app/immutable/nodes/{9.C5-qch-V.js → 9.CaxIeYLY.js} +1 -1
  187. package/build/client/_app/immutable/nodes/9.CaxIeYLY.js.br +0 -0
  188. package/build/client/_app/immutable/nodes/9.CaxIeYLY.js.gz +0 -0
  189. package/build/client/_app/version.json +1 -1
  190. package/build/client/_app/version.json.br +0 -0
  191. package/build/client/_app/version.json.gz +0 -0
  192. package/build/client/favicon/favicon.svg.gz +0 -0
  193. package/build/client/robots.txt.gz +0 -0
  194. package/build/server/chunks/{0-BXYXs3Xm.js → 0-wC8vebb2.js} +4 -4
  195. package/build/server/chunks/{0-BXYXs3Xm.js.map → 0-wC8vebb2.js.map} +1 -1
  196. package/build/server/chunks/{1-V8dFtmbb.js → 1-tkiRaJm3.js} +2 -2
  197. package/build/server/chunks/{1-V8dFtmbb.js.map → 1-tkiRaJm3.js.map} +1 -1
  198. package/build/server/chunks/{10-J_ZMrbXX.js → 10-8FzClb5u.js} +6 -6
  199. package/build/server/chunks/{10-J_ZMrbXX.js.map → 10-8FzClb5u.js.map} +1 -1
  200. package/build/server/chunks/{11-C54ZyrYp.js → 11-CwBAHKO1.js} +6 -6
  201. package/build/server/chunks/{11-C54ZyrYp.js.map → 11-CwBAHKO1.js.map} +1 -1
  202. package/build/server/chunks/{12-CrOqT0Q5.js → 12-C_P4jkDv.js} +2 -2
  203. package/build/server/chunks/{12-CrOqT0Q5.js.map → 12-C_P4jkDv.js.map} +1 -1
  204. package/build/server/chunks/{13-DVoUfflf.js → 13-CEgpkJsl.js} +3 -3
  205. package/build/server/chunks/{13-DVoUfflf.js.map → 13-CEgpkJsl.js.map} +1 -1
  206. package/build/server/chunks/{14-DkBYx89e.js → 14-CuLH3sOJ.js} +3 -3
  207. package/build/server/chunks/{14-DkBYx89e.js.map → 14-CuLH3sOJ.js.map} +1 -1
  208. package/build/server/chunks/{15-CNzxJkd-.js → 15-DHGAmNDS.js} +4 -4
  209. package/build/server/chunks/{15-CNzxJkd-.js.map → 15-DHGAmNDS.js.map} +1 -1
  210. package/build/server/chunks/{16-cz9yc7Nq.js → 16-BqSmZ0au.js} +6 -6
  211. package/build/server/chunks/{16-cz9yc7Nq.js.map → 16-BqSmZ0au.js.map} +1 -1
  212. package/build/server/chunks/{17-BLqAW2P3.js → 17-BwPRBUof.js} +2 -2
  213. package/build/server/chunks/{17-BLqAW2P3.js.map → 17-BwPRBUof.js.map} +1 -1
  214. package/build/server/chunks/{18-DFxW4YE_.js → 18-DeVS-pOT.js} +2 -2
  215. package/build/server/chunks/{18-DFxW4YE_.js.map → 18-DeVS-pOT.js.map} +1 -1
  216. package/build/server/chunks/{19-BZm3F7yF.js → 19-3FI-gBIF.js} +3 -3
  217. package/build/server/chunks/{19-BZm3F7yF.js.map → 19-3FI-gBIF.js.map} +1 -1
  218. package/build/server/chunks/{2-CNp1ZQp0.js → 2-BktREpTN.js} +5 -5
  219. package/build/server/chunks/{2-CNp1ZQp0.js.map → 2-BktREpTN.js.map} +1 -1
  220. package/build/server/chunks/{20-BXy_jr30.js → 20-D8O4C_84.js} +12 -12
  221. package/build/server/chunks/{20-BXy_jr30.js.map → 20-D8O4C_84.js.map} +1 -1
  222. package/build/server/chunks/{21-DSjRU6S2.js → 21-COO7ITK8.js} +3 -3
  223. package/build/server/chunks/{21-DSjRU6S2.js.map → 21-COO7ITK8.js.map} +1 -1
  224. package/build/server/chunks/{23-CjL9FJFA.js → 23-ckQZBIac.js} +6 -6
  225. package/build/server/chunks/{23-CjL9FJFA.js.map → 23-ckQZBIac.js.map} +1 -1
  226. package/build/server/chunks/{24-D9rqHSTE.js → 24-Byj6-QiB.js} +4 -4
  227. package/build/server/chunks/{24-D9rqHSTE.js.map → 24-Byj6-QiB.js.map} +1 -1
  228. package/build/server/chunks/{25-DstWRI72.js → 25-ef6c33Ul.js} +2 -2
  229. package/build/server/chunks/{25-DstWRI72.js.map → 25-ef6c33Ul.js.map} +1 -1
  230. package/build/server/chunks/{27-nNwc75ro.js → 27-C6KaTD0c.js} +4 -4
  231. package/build/server/chunks/{27-nNwc75ro.js.map → 27-C6KaTD0c.js.map} +1 -1
  232. package/build/server/chunks/{28-CvOKckIC.js → 28-BM0TT8tW.js} +3 -3
  233. package/build/server/chunks/{28-CvOKckIC.js.map → 28-BM0TT8tW.js.map} +1 -1
  234. package/build/server/chunks/{29-omUxa3rd.js → 29-8EsvqAjE.js} +3 -3
  235. package/build/server/chunks/{29-omUxa3rd.js.map → 29-8EsvqAjE.js.map} +1 -1
  236. package/build/server/chunks/{3-D43IIYqW.js → 3-CGZK9ryR.js} +2 -2
  237. package/build/server/chunks/{3-D43IIYqW.js.map → 3-CGZK9ryR.js.map} +1 -1
  238. package/build/server/chunks/{30-BMQ7Cr8A.js → 30-CtB6i9os.js} +3 -3
  239. package/build/server/chunks/{30-BMQ7Cr8A.js.map → 30-CtB6i9os.js.map} +1 -1
  240. package/build/server/chunks/{31-Cba3pMW9.js → 31-CirH19D6.js} +2 -2
  241. package/build/server/chunks/{31-Cba3pMW9.js.map → 31-CirH19D6.js.map} +1 -1
  242. package/build/server/chunks/{32-BmfoNY4G.js → 32-CZojKYOy.js} +2 -2
  243. package/build/server/chunks/{32-BmfoNY4G.js.map → 32-CZojKYOy.js.map} +1 -1
  244. package/build/server/chunks/{5-lJnHNLmp.js → 5-BGu6jqGh.js} +2 -2
  245. package/build/server/chunks/{5-lJnHNLmp.js.map → 5-BGu6jqGh.js.map} +1 -1
  246. package/build/server/chunks/{6-BydCaB4v.js → 6-CrVzle0G.js} +3 -3
  247. package/build/server/chunks/{6-BydCaB4v.js.map → 6-CrVzle0G.js.map} +1 -1
  248. package/build/server/chunks/{7-D4q4IBnf.js → 7-CyQgvlZo.js} +2 -2
  249. package/build/server/chunks/{7-D4q4IBnf.js.map → 7-CyQgvlZo.js.map} +1 -1
  250. package/build/server/chunks/{8-1AErDsjI.js → 8-DQerDMPb.js} +3 -3
  251. package/build/server/chunks/{8-1AErDsjI.js.map → 8-DQerDMPb.js.map} +1 -1
  252. package/build/server/chunks/{9-Cr4VDcCh.js → 9-g58PTujZ.js} +4 -4
  253. package/build/server/chunks/{9-Cr4VDcCh.js.map → 9-g58PTujZ.js.map} +1 -1
  254. package/build/server/chunks/{_layout.svelte-Px4pdCxU.js → _layout.svelte-xYAKGoE5.js} +4 -4
  255. package/build/server/chunks/{_layout.svelte-Px4pdCxU.js.map → _layout.svelte-xYAKGoE5.js.map} +1 -1
  256. package/build/server/chunks/{_page.svelte-D6lEOLLp.js → _page.svelte-BR8dze-7.js} +14 -14
  257. package/build/server/chunks/_page.svelte-BR8dze-7.js.map +1 -0
  258. package/build/server/chunks/{_page.svelte-KapMJV5_.js → _page.svelte-BsU27A26.js} +3 -3
  259. package/build/server/chunks/_page.svelte-BsU27A26.js.map +1 -0
  260. package/build/server/chunks/{_page.svelte-5X2iRv32.js → _page.svelte-CaOLJFdL.js} +2 -2
  261. package/build/server/chunks/_page.svelte-CaOLJFdL.js.map +1 -0
  262. package/build/server/chunks/{_page.svelte-BcFniUOO.js → _page.svelte-DG_7CM7u.js} +5 -5
  263. package/build/server/chunks/{_page.svelte-BcFniUOO.js.map → _page.svelte-DG_7CM7u.js.map} +1 -1
  264. package/build/server/chunks/{_page.svelte-CX9DKxIH.js → _page.svelte-DS9orYLw.js} +2 -2
  265. package/build/server/chunks/_page.svelte-DS9orYLw.js.map +1 -0
  266. package/build/server/chunks/{_server.ts-CmUr8pln.js → _server.ts-1HIleN3S.js} +4 -4
  267. package/build/server/chunks/{_server.ts-CmUr8pln.js.map → _server.ts-1HIleN3S.js.map} +1 -1
  268. package/build/server/chunks/{_server.ts-C-XniPo8.js → _server.ts-1nksAmT8.js} +4 -4
  269. package/build/server/chunks/{_server.ts-C-XniPo8.js.map → _server.ts-1nksAmT8.js.map} +1 -1
  270. package/build/server/chunks/{_server.ts-7hKc3tb_.js → _server.ts-AE1drj36.js} +4 -4
  271. package/build/server/chunks/{_server.ts-7hKc3tb_.js.map → _server.ts-AE1drj36.js.map} +1 -1
  272. package/build/server/chunks/{_server.ts-DBh0rJrm.js → _server.ts-B0gZCMdj.js} +4 -4
  273. package/build/server/chunks/{_server.ts-DBh0rJrm.js.map → _server.ts-B0gZCMdj.js.map} +1 -1
  274. package/build/server/chunks/{_server.ts-_NTv7i9z.js → _server.ts-BSoy1Ljl.js} +4 -4
  275. package/build/server/chunks/{_server.ts-_NTv7i9z.js.map → _server.ts-BSoy1Ljl.js.map} +1 -1
  276. package/build/server/chunks/{_server.ts-CAcgx11J.js → _server.ts-BTi2idVf.js} +4 -4
  277. package/build/server/chunks/{_server.ts-CAcgx11J.js.map → _server.ts-BTi2idVf.js.map} +1 -1
  278. package/build/server/chunks/{_server.ts-D-QkfF2o.js → _server.ts-BYlDwqEg.js} +5 -5
  279. package/build/server/chunks/{_server.ts-D-QkfF2o.js.map → _server.ts-BYlDwqEg.js.map} +1 -1
  280. package/build/server/chunks/{_server.ts-CcQbKaET.js → _server.ts-BbzbsVfr.js} +4 -4
  281. package/build/server/chunks/{_server.ts-CcQbKaET.js.map → _server.ts-BbzbsVfr.js.map} +1 -1
  282. package/build/server/chunks/{_server.ts-BLHjzdRp.js → _server.ts-BdKZ7aOG.js} +4 -4
  283. package/build/server/chunks/{_server.ts-BLHjzdRp.js.map → _server.ts-BdKZ7aOG.js.map} +1 -1
  284. package/build/server/chunks/{_server.ts-BpkR7TzP.js → _server.ts-BgsmlYb6.js} +3 -3
  285. package/build/server/chunks/{_server.ts-BpkR7TzP.js.map → _server.ts-BgsmlYb6.js.map} +1 -1
  286. package/build/server/chunks/{_server.ts-BUc1sqlR.js → _server.ts-BnN8EQwQ.js} +4 -4
  287. package/build/server/chunks/{_server.ts-BUc1sqlR.js.map → _server.ts-BnN8EQwQ.js.map} +1 -1
  288. package/build/server/chunks/{_server.ts-pDmNGXOa.js → _server.ts-ByhZiyPJ.js} +4 -4
  289. package/build/server/chunks/{_server.ts-pDmNGXOa.js.map → _server.ts-ByhZiyPJ.js.map} +1 -1
  290. package/build/server/chunks/{_server.ts-D1AD48e8.js → _server.ts-C2YLv0RS.js} +4 -4
  291. package/build/server/chunks/{_server.ts-D1AD48e8.js.map → _server.ts-C2YLv0RS.js.map} +1 -1
  292. package/build/server/chunks/{_server.ts-Ch_RLYHQ.js → _server.ts-C3Cn_AWJ.js} +4 -4
  293. package/build/server/chunks/{_server.ts-Ch_RLYHQ.js.map → _server.ts-C3Cn_AWJ.js.map} +1 -1
  294. package/build/server/chunks/{_server.ts-Z87uowZI.js → _server.ts-C9ggXEGb.js} +4 -4
  295. package/build/server/chunks/{_server.ts-Z87uowZI.js.map → _server.ts-C9ggXEGb.js.map} +1 -1
  296. package/build/server/chunks/{_server.ts-B0wiCYbB.js → _server.ts-CKHs57oZ.js} +2 -2
  297. package/build/server/chunks/{_server.ts-B0wiCYbB.js.map → _server.ts-CKHs57oZ.js.map} +1 -1
  298. package/build/server/chunks/{_server.ts-C4WRZSco.js → _server.ts-CM4aZGc-.js} +3 -3
  299. package/build/server/chunks/{_server.ts-C4WRZSco.js.map → _server.ts-CM4aZGc-.js.map} +1 -1
  300. package/build/server/chunks/{_server.ts-la-ySldK.js → _server.ts-CN851WSH.js} +4 -4
  301. package/build/server/chunks/{_server.ts-la-ySldK.js.map → _server.ts-CN851WSH.js.map} +1 -1
  302. package/build/server/chunks/{_server.ts-Dmo73WWA.js → _server.ts-CNPmzTy6.js} +4 -4
  303. package/build/server/chunks/{_server.ts-Dmo73WWA.js.map → _server.ts-CNPmzTy6.js.map} +1 -1
  304. package/build/server/chunks/{_server.ts-C0F30GT4.js → _server.ts-CZW4ge6f.js} +4 -4
  305. package/build/server/chunks/{_server.ts-C0F30GT4.js.map → _server.ts-CZW4ge6f.js.map} +1 -1
  306. package/build/server/chunks/{_server.ts-DxKERFAd.js → _server.ts-CaERLUlr.js} +3 -3
  307. package/build/server/chunks/{_server.ts-DxKERFAd.js.map → _server.ts-CaERLUlr.js.map} +1 -1
  308. package/build/server/chunks/{_server.ts-CmGWhrdf.js → _server.ts-Cb4DODkC.js} +5 -5
  309. package/build/server/chunks/{_server.ts-CmGWhrdf.js.map → _server.ts-Cb4DODkC.js.map} +1 -1
  310. package/build/server/chunks/{_server.ts-DNPb5zS6.js → _server.ts-CbQpXSqd.js} +4 -4
  311. package/build/server/chunks/{_server.ts-DNPb5zS6.js.map → _server.ts-CbQpXSqd.js.map} +1 -1
  312. package/build/server/chunks/{_server.ts-Bb3Kpo0Y.js → _server.ts-Ch4yLIuo.js} +3 -3
  313. package/build/server/chunks/{_server.ts-Bb3Kpo0Y.js.map → _server.ts-Ch4yLIuo.js.map} +1 -1
  314. package/build/server/chunks/{_server.ts-B_MVq_5r.js → _server.ts-Cjz2LZbt.js} +4 -4
  315. package/build/server/chunks/{_server.ts-B_MVq_5r.js.map → _server.ts-Cjz2LZbt.js.map} +1 -1
  316. package/build/server/chunks/{_server.ts-BJWFkEuu.js → _server.ts-CyhcRpfW.js} +5 -5
  317. package/build/server/chunks/{_server.ts-BJWFkEuu.js.map → _server.ts-CyhcRpfW.js.map} +1 -1
  318. package/build/server/chunks/{_server.ts-BemU6FO1.js → _server.ts-CzJ60KtY.js} +5 -5
  319. package/build/server/chunks/{_server.ts-BemU6FO1.js.map → _server.ts-CzJ60KtY.js.map} +1 -1
  320. package/build/server/chunks/{_server.ts-BpAINcOs.js → _server.ts-D71yVIcY.js} +5 -15
  321. package/build/server/chunks/_server.ts-D71yVIcY.js.map +1 -0
  322. package/build/server/chunks/{_server.ts-CkXnisqg.js → _server.ts-DWL7YPsQ.js} +5 -5
  323. package/build/server/chunks/{_server.ts-CkXnisqg.js.map → _server.ts-DWL7YPsQ.js.map} +1 -1
  324. package/build/server/chunks/{_server.ts-BkKg2yyC.js → _server.ts-DnpbPKKN.js} +4 -4
  325. package/build/server/chunks/{_server.ts-BkKg2yyC.js.map → _server.ts-DnpbPKKN.js.map} +1 -1
  326. package/build/server/chunks/{_server.ts-gic0t4mu.js → _server.ts-Dnqx5-qU.js} +6 -6
  327. package/build/server/chunks/{_server.ts-gic0t4mu.js.map → _server.ts-Dnqx5-qU.js.map} +1 -1
  328. package/build/server/chunks/{_server.ts-CaHe7mo6.js → _server.ts-DrYz0SSH.js} +4 -4
  329. package/build/server/chunks/{_server.ts-CaHe7mo6.js.map → _server.ts-DrYz0SSH.js.map} +1 -1
  330. package/build/server/chunks/{_server.ts-DJUYnHrj.js → _server.ts-DraBBcmz.js} +4 -4
  331. package/build/server/chunks/{_server.ts-DJUYnHrj.js.map → _server.ts-DraBBcmz.js.map} +1 -1
  332. package/build/server/chunks/{_server.ts-MOiQ4br_.js → _server.ts-I3zLnhsz.js} +4 -4
  333. package/build/server/chunks/{_server.ts-MOiQ4br_.js.map → _server.ts-I3zLnhsz.js.map} +1 -1
  334. package/build/server/chunks/{_server.ts-DXPhlUCi.js → _server.ts-gCCprE5T.js} +4 -4
  335. package/build/server/chunks/{_server.ts-DXPhlUCi.js.map → _server.ts-gCCprE5T.js.map} +1 -1
  336. package/build/server/chunks/{_server.ts-BrZXNFlK.js → _server.ts-k0TOB-E9.js} +5 -5
  337. package/build/server/chunks/{_server.ts-BrZXNFlK.js.map → _server.ts-k0TOB-E9.js.map} +1 -1
  338. package/build/server/chunks/{_server.ts-CFIgn6q6.js → _server.ts-qFzkA4h-.js} +8 -8
  339. package/build/server/chunks/{_server.ts-CFIgn6q6.js.map → _server.ts-qFzkA4h-.js.map} +1 -1
  340. package/build/server/chunks/{_server.ts-0ncRaWJ_.js → _server.ts-v9eUA-cx.js} +4 -4
  341. package/build/server/chunks/{_server.ts-0ncRaWJ_.js.map → _server.ts-v9eUA-cx.js.map} +1 -1
  342. package/build/server/chunks/{access.server-GvriCjXN.js → access.server-DVG3xnR_.js} +3 -3
  343. package/build/server/chunks/{access.server-GvriCjXN.js.map → access.server-DVG3xnR_.js.map} +1 -1
  344. package/build/server/chunks/{api-errors-Dk5z97zb.js → api-errors-DGHmIOGJ.js} +2 -2
  345. package/build/server/chunks/{api-errors-Dk5z97zb.js.map → api-errors-DGHmIOGJ.js.map} +1 -1
  346. package/build/server/chunks/{auth-bootstrap.server-CfD5CPTj.js → auth-bootstrap.server-oox9p1sN.js} +10 -3
  347. package/build/server/chunks/auth-bootstrap.server-oox9p1sN.js.map +1 -0
  348. package/build/server/chunks/{bootHealth.server-Bn7taneH.js → bootHealth.server-DQx_qsNh.js} +2 -2
  349. package/build/server/chunks/{bootHealth.server-Bn7taneH.js.map → bootHealth.server-DQx_qsNh.js.map} +1 -1
  350. package/build/server/chunks/{hooks.server-CMWyl1Gd.js → hooks.server-aaRldGQ_.js} +4 -4
  351. package/build/server/chunks/{hooks.server-CMWyl1Gd.js.map → hooks.server-aaRldGQ_.js.map} +1 -1
  352. package/build/server/chunks/{permissions.server-Co6VKW9f.js → permissions.server-qrbshNHz.js} +2 -2
  353. package/build/server/chunks/{permissions.server-Co6VKW9f.js.map → permissions.server-qrbshNHz.js.map} +1 -1
  354. package/build/server/chunks/{providers.server-C32WKtDL.js → providers.server-Duyx-08B.js} +68 -68
  355. package/build/server/chunks/providers.server-Duyx-08B.js.map +1 -0
  356. package/build/server/chunks/{resolve.server-DYsU4jL3.js → resolve.server-BwfjDyaT.js} +3 -3
  357. package/build/server/chunks/{resolve.server-DYsU4jL3.js.map → resolve.server-BwfjDyaT.js.map} +1 -1
  358. package/build/server/chunks/{resolve.server2-Co65XNMI.js → resolve.server2-DjZg4oZg.js} +3 -3
  359. package/build/server/chunks/{resolve.server2-Co65XNMI.js.map → resolve.server2-DjZg4oZg.js.map} +1 -1
  360. package/build/server/chunks/{token.server-B8XVPI0F.js → token.server-CBtuQZt0.js} +2 -2
  361. package/build/server/chunks/token.server-CBtuQZt0.js.map +1 -0
  362. package/build/server/chunks/{utils2-Sy-_rI-0.js → utils2-QuTTpZq0.js} +2 -2
  363. package/build/server/chunks/{utils2-Sy-_rI-0.js.map → utils2-QuTTpZq0.js.map} +1 -1
  364. package/build/server/index.js +2 -2
  365. package/build/server/index.js.map +1 -1
  366. package/build/server/manifest.js +70 -70
  367. package/build/server/manifest.js.map +1 -1
  368. package/package.json +6 -7
  369. package/templates/.env.example +3 -2
  370. package/templates/ecosystem.config.cjs +7 -5
  371. package/build/client/_app/immutable/assets/20.DvtWUFNX.css +0 -1
  372. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
  373. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
  374. package/build/client/_app/immutable/chunks/4PBDTLFF.js.br +0 -0
  375. package/build/client/_app/immutable/chunks/4PBDTLFF.js.gz +0 -0
  376. package/build/client/_app/immutable/chunks/BMwGnr2J.js.br +0 -0
  377. package/build/client/_app/immutable/chunks/BMwGnr2J.js.gz +0 -0
  378. package/build/client/_app/immutable/chunks/BSyJ0ZuA.js.br +0 -0
  379. package/build/client/_app/immutable/chunks/BSyJ0ZuA.js.gz +0 -0
  380. package/build/client/_app/immutable/chunks/CS49LPny.js.br +0 -0
  381. package/build/client/_app/immutable/chunks/CS49LPny.js.gz +0 -0
  382. package/build/client/_app/immutable/chunks/VmqnFAi3.js.br +0 -0
  383. package/build/client/_app/immutable/chunks/VmqnFAi3.js.gz +0 -0
  384. package/build/client/_app/immutable/chunks/smW5maEe.js.br +0 -0
  385. package/build/client/_app/immutable/chunks/smW5maEe.js.gz +0 -0
  386. package/build/client/_app/immutable/entry/app.GElcRZPp.js.br +0 -0
  387. package/build/client/_app/immutable/entry/app.GElcRZPp.js.gz +0 -0
  388. package/build/client/_app/immutable/entry/start.D-b3nSOP.js +0 -1
  389. package/build/client/_app/immutable/entry/start.D-b3nSOP.js.br +0 -0
  390. package/build/client/_app/immutable/entry/start.D-b3nSOP.js.gz +0 -0
  391. package/build/client/_app/immutable/nodes/0.r0PA_Sxw.js.br +0 -0
  392. package/build/client/_app/immutable/nodes/0.r0PA_Sxw.js.gz +0 -0
  393. package/build/client/_app/immutable/nodes/1.CTfA0FAT.js.br +0 -0
  394. package/build/client/_app/immutable/nodes/1.CTfA0FAT.js.gz +0 -0
  395. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js +0 -3
  396. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.br +0 -0
  397. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.gz +0 -0
  398. package/build/client/_app/immutable/nodes/11.Dk81DreT.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/11.Dk81DreT.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/13.B3m9NRrd.js.br +0 -0
  401. package/build/client/_app/immutable/nodes/13.B3m9NRrd.js.gz +0 -0
  402. package/build/client/_app/immutable/nodes/14.9MmuwEpn.js.br +0 -0
  403. package/build/client/_app/immutable/nodes/14.9MmuwEpn.js.gz +0 -0
  404. package/build/client/_app/immutable/nodes/15.94-Zje0s.js +0 -13
  405. package/build/client/_app/immutable/nodes/15.94-Zje0s.js.br +0 -0
  406. package/build/client/_app/immutable/nodes/15.94-Zje0s.js.gz +0 -0
  407. package/build/client/_app/immutable/nodes/16.BMWgVDGJ.js.br +0 -0
  408. package/build/client/_app/immutable/nodes/16.BMWgVDGJ.js.gz +0 -0
  409. package/build/client/_app/immutable/nodes/17.Bch7V784.js.br +0 -0
  410. package/build/client/_app/immutable/nodes/17.Bch7V784.js.gz +0 -0
  411. package/build/client/_app/immutable/nodes/19.DQtOUgti.js.br +0 -0
  412. package/build/client/_app/immutable/nodes/19.DQtOUgti.js.gz +0 -0
  413. package/build/client/_app/immutable/nodes/2.CyCY9Gpy.js.br +0 -0
  414. package/build/client/_app/immutable/nodes/2.CyCY9Gpy.js.gz +0 -0
  415. package/build/client/_app/immutable/nodes/20.CT0e7phi.js.br +0 -0
  416. package/build/client/_app/immutable/nodes/20.CT0e7phi.js.gz +0 -0
  417. package/build/client/_app/immutable/nodes/21.C43xF0qL.js.br +0 -0
  418. package/build/client/_app/immutable/nodes/21.C43xF0qL.js.gz +0 -0
  419. package/build/client/_app/immutable/nodes/23.CFT1SOUF.js.br +0 -0
  420. package/build/client/_app/immutable/nodes/23.CFT1SOUF.js.gz +0 -0
  421. package/build/client/_app/immutable/nodes/24.BjGP5G3P.js.br +0 -0
  422. package/build/client/_app/immutable/nodes/24.BjGP5G3P.js.gz +0 -0
  423. package/build/client/_app/immutable/nodes/27.BS48zWld.js.br +0 -0
  424. package/build/client/_app/immutable/nodes/27.BS48zWld.js.gz +0 -0
  425. package/build/client/_app/immutable/nodes/28.eQk5ZqHl.js.br +0 -0
  426. package/build/client/_app/immutable/nodes/28.eQk5ZqHl.js.gz +0 -0
  427. package/build/client/_app/immutable/nodes/29.-im11HaY.js.br +0 -0
  428. package/build/client/_app/immutable/nodes/29.-im11HaY.js.gz +0 -0
  429. package/build/client/_app/immutable/nodes/3.CfPrUs70.js.br +0 -0
  430. package/build/client/_app/immutable/nodes/3.CfPrUs70.js.gz +0 -0
  431. package/build/client/_app/immutable/nodes/30.DUz5JI16.js.br +0 -0
  432. package/build/client/_app/immutable/nodes/30.DUz5JI16.js.gz +0 -0
  433. package/build/client/_app/immutable/nodes/5.D4jMtb1M.js.br +0 -0
  434. package/build/client/_app/immutable/nodes/5.D4jMtb1M.js.gz +0 -0
  435. package/build/client/_app/immutable/nodes/6.BhoBomwz.js.br +0 -0
  436. package/build/client/_app/immutable/nodes/6.BhoBomwz.js.gz +0 -0
  437. package/build/client/_app/immutable/nodes/7.CaJkp9fo.js.br +0 -0
  438. package/build/client/_app/immutable/nodes/7.CaJkp9fo.js.gz +0 -0
  439. package/build/client/_app/immutable/nodes/8.Bt2DWfca.js.br +0 -0
  440. package/build/client/_app/immutable/nodes/8.Bt2DWfca.js.gz +0 -0
  441. package/build/client/_app/immutable/nodes/9.C5-qch-V.js.br +0 -0
  442. package/build/client/_app/immutable/nodes/9.C5-qch-V.js.gz +0 -0
  443. package/build/server/chunks/_page.svelte-5X2iRv32.js.map +0 -1
  444. package/build/server/chunks/_page.svelte-CX9DKxIH.js.map +0 -1
  445. package/build/server/chunks/_page.svelte-D6lEOLLp.js.map +0 -1
  446. package/build/server/chunks/_page.svelte-KapMJV5_.js.map +0 -1
  447. package/build/server/chunks/_server.ts-BpAINcOs.js.map +0 -1
  448. package/build/server/chunks/auth-bootstrap.server-CfD5CPTj.js.map +0 -1
  449. package/build/server/chunks/providers.server-C32WKtDL.js.map +0 -1
  450. package/build/server/chunks/token.server-B8XVPI0F.js.map +0 -1
  451. package/templates/selva.config.example.js +0 -338
@@ -1,7 +1,7 @@
1
1
  import { error, redirect } from '@sveltejs/kit';
2
2
  import { h as hasPermission, A as ALL_PLATFORM_PERMISSIONS } from './context-9tV9WxQ5.js';
3
- import { i as getDefinitionMeta, c as getOrganizationProvider, f as flag, h as getProjectProvider, k as getPlatformProjectGrantStore } from './providers.server-C32WKtDL.js';
4
- import { h as handleApiError } from './api-errors-Dk5z97zb.js';
3
+ import { i as getDefinitionMeta, c as getOrganizationProvider, f as flag, h as getProjectProvider, k as getPlatformProjectGrantStore } from './providers.server-Duyx-08B.js';
4
+ import { h as handleApiError } from './api-errors-DGHmIOGJ.js';
5
5
  import 'zod';
6
6
  import './shared-server-DaWdgxVh.js';
7
7
  import 'node:url';
@@ -386,4 +386,4 @@ const access_server = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
386
386
  }, Symbol.toStringTag, { value: "Module" }));
387
387
 
388
388
  export { canEdit as A, access_server as B, requireInstanceAdmin as a, requirePermission as b, requireManageInstanceUsers as c, requireCanEditDefinition as d, requireCanSolve as e, requireCanCreateDefinition as f, requireEditableDefinition as g, requireCanViewProject as h, requireManageOrgMembers as i, requireManageOrgCompute as j, requireCanCreateProject as k, requireCanManage as l, requireCanEditProjectSettings as m, canChangeVisibilityToPublic as n, requireCanManageMembers as o, requireTargetIsOrgMember as p, checkOwnerRemoval as q, requireManageCompute as r, requireCanReclaim as s, assertAnyPlatformPermission as t, assertPagePermission as u, assertManageCompute as v, withAdminBypass as w, assertManageInstanceUsers as x, canView as y, projectAccessInputFromRows as z };
389
- //# sourceMappingURL=access.server-GvriCjXN.js.map
389
+ //# sourceMappingURL=access.server-DVG3xnR_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.server-GvriCjXN.js","sources":["../../../.svelte-kit/adapter-node/chunks/access.server.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { h as hasPermission, f as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { k as getDefinitionMeta, a as getOrganizationProvider, m as flag, b as getProjectProvider, c 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, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\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, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\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, platformPermissions } = input;\n if (project?.visibility === \"platform\")\n return isInstanceAdmin(platformPermissions);\n return member?.role === \"owner\" || member?.role === \"editor\";\n}\nfunction canManage(input) {\n if (input.project?.visibility === \"platform\")\n return isInstanceAdmin(input.platformPermissions);\n return input.member?.role === \"owner\";\n}\nfunction canEditProjectSettings(input) {\n if (input.project?.visibility === \"platform\")\n return isInstanceAdmin(input.platformPermissions);\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 } = input;\n if (!project || !definition)\n return false;\n if (project.visibility === \"platform\") {\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 let member = null;\n let orgMember = null;\n let platformGrants = [];\n if (project.visibility === \"platform\") {\n platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);\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 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 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 });\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 });\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 canEdit as A,\n access_server as B,\n requireInstanceAdmin as a,\n requirePermission as b,\n requireManageInstanceUsers as c,\n requireCanEditDefinition as d,\n requireCanSolve as e,\n requireCanCreateDefinition as f,\n requireEditableDefinition as g,\n requireCanViewProject as h,\n requireManageOrgMembers as i,\n requireManageOrgCompute as j,\n requireCanCreateProject as k,\n requireCanManage as l,\n requireCanEditProjectSettings as m,\n canChangeVisibilityToPublic as n,\n requireCanManageMembers as o,\n requireTargetIsOrgMember as p,\n checkOwnerRemoval as q,\n requireManageCompute as r,\n requireCanReclaim as s,\n assertAnyPlatformPermission as t,\n assertPagePermission as u,\n assertManageCompute as v,\n withAdminBypass as w,\n assertManageInstanceUsers as x,\n canView as y,\n projectAccessInputFromRows as z\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA,SAAS,eAAe,CAAC,mBAAmB,EAAE;AAC9C,EAAE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACvD;AACA,SAAS,eAAe,CAAC,mBAAmB,EAAE,IAAI,EAAE;AACpD,EAAE,IAAI,eAAe,CAAC,mBAAmB,CAAC;AAC1C,IAAI,OAAO,IAAI;AACf,EAAE,OAAO,IAAI,EAAE;AACf;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK;AAC7H,EAAE,IAAI,CAAC,OAAO;AACd,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AACzC,IAAI,IAAI,eAAe,CAAC,mBAAmB,CAAC;AAC5C,MAAM,OAAO,IAAI;AACjB,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC;AACnJ,EAAE;AACF,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;AACtC,IAAI,OAAO,MAAM,KAAK,IAAI;AAC1B,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK;AAClC,IAAI,OAAO,SAAS,KAAK,IAAI;AAC7B,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ;AACrC,IAAI,OAAO,mBAAmB,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI;AAC1D,EAAE,OAAO,KAAK;AACd;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK;AACrF,EAAE,IAAI,CAAC,OAAO;AACd,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AACzC,IAAI,IAAI,eAAe,CAAC,mBAAmB,CAAC;AAC5C,MAAM,OAAO,IAAI;AACjB,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;AACnK,EAAE;AACF,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,KAAK;AACxD,EAAE,IAAI,OAAO,EAAE,UAAU,KAAK,UAAU;AACxC,IAAI,OAAO,eAAe,CAAC,mBAAmB,CAAC;AAC/C,EAAE,OAAO,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ;AAC9D;AACA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,KAAK,UAAU;AAC9C,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACrD,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO;AACvC;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,KAAK,UAAU;AAC9C,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACrD,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO;AACvC;AACA,SAAS,2BAA2B,CAAC,KAAK,EAAE;AAC5C,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI;AACpC,EAAE,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;AAC7C;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK;AAC5E,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;AAC7B,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AACzC,IAAI,OAAO,eAAe,CAAC,mBAAmB,CAAC;AAC/C,EAAE;AACF,EAAE,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ;AAC3D,IAAI,OAAO,IAAI;AACf,EAAE,IAAI,OAAO,CAAC,gBAAgB,IAAI,MAAM,KAAK,UAAU,CAAC,OAAO;AAC/D,IAAI,OAAO,IAAI;AACf,EAAE,OAAO,KAAK;AACd;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK;AACnD,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;AACvC,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,WAAW,KAAK,OAAO,CAAC,KAAK;AACnC,IAAI,OAAO,KAAK;AAChB,EAAE,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI;AAC9B,EAAE,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;AAC7C;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK;AACvE,EAAE,IAAI,WAAW,KAAK,WAAW;AACjC,IAAI,OAAO,KAAK;AAChB,EAAE,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI;AAC9B,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;AAC1C,IAAI,OAAO,IAAI;AACf,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AACrE,IAAI,OAAO,IAAI;AACf,EAAE,OAAO,KAAK;AACd;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;AACnC,IAAI,OAAO,IAAI;AACf,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM;AAC9E,EAAE,IAAI,UAAU,IAAI,CAAC;AACrB,IAAI,OAAO,YAAY;AACvB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;AACtB,IAAI,OAAO,eAAe;AAC1B,EAAE,OAAO,IAAI;AACb;AACA,MAAM,kBAAkB,GAAG,cAAc;AACzC,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM;AAC9B,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACrD,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACtB;AACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC/C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AACvC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,qCAAqC,CAAC,CAAC;AAC7D,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE;AAClD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AACvC,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3B,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACK,MAAC,0BAA0B,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,uBAAuB;AAC3F,MAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,gBAAgB;AAC9E,MAAC,uBAAuB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,oBAAoB;AACrF,MAAC,uBAAuB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,oBAAoB;AAC1F,MAAM,wBAAwB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,CAAC;AAC5F,MAAM,qBAAqB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACjF,MAAC,yBAAyB,GAAG,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE,uBAAuB;AAC7F,MAAC,mBAAmB,GAAG,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE,gBAAgB;AACrF,MAAM,uBAAuB,GAAG,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC;AAC9F,MAAM,oBAAoB,GAAG,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACnF,MAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,gBAAgB;AACnF,SAAS,4BAA4B,CAAC,MAAM,EAAE;AAC9C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7E,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,qCAAqC,CAAC,CAAC;AACzE,EAAE,OAAO,IAAI;AACb;AACA,SAAS,2BAA2B,CAAC,MAAM,EAAE;AAC7C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7E,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;AACzC,EAAE,OAAO,IAAI;AACb;AACA,eAAe,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE;AACjD,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,OAAO,IAAI;AACvD,EAAE,OAAO,MAAM,KAAK,EAAE;AACtB;AACA,eAAe,YAAY,CAAC,KAAK,EAAE;AACnC,EAAE,OAAO,MAAM,KAAK,EAAE;AACtB;AACA,eAAe,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE;AAChD,EAAE,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;AACvE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,OAAO,OAAO;AAChB;AACA,eAAe,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE;AACrE,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC;AAC5D,EAAE,IAAI,MAAM,GAAG,IAAI;AACnB,EAAE,IAAI,SAAS,GAAG,IAAI;AACtB,EAAE,IAAI,cAAc,GAAG,EAAE;AACzB,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AACzC,IAAI,cAAc,GAAG,MAAM,4BAA4B,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AACxF,EAAE,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/C,IAAI,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC;AACrF,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,mBAAmB;AAChF,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC5C,MAAM,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC;AACxE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM;AACnH,KAAK,CAAC;AACN,EAAE;AACF,EAAE,OAAO;AACT,IAAI,cAAc,EAAE,GAAG,CAAC,cAAc;AACtC,IAAI,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;AAChD,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAClB,IAAI,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;AACxC,IAAI,MAAM,EAAE,GAAG,CAAC,MAAM;AACtB,IAAI,GAAG;AACP,GAAG;AACH;AACA,SAAS,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AACxD,EAAE,OAAO;AACT,IAAI,cAAc,EAAE,GAAG,CAAC,cAAc;AACtC,IAAI,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;AAChD,IAAI,OAAO;AACX,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;AAC/B,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;AACrC,IAAI,mBAAmB,EAAE,IAAI,CAAC,wBAAwB,CAAC;AACvD,IAAI,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE;AAC7C,IAAI,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;AACxC,IAAI,MAAM,EAAE,GAAG,CAAC;AAChB,GAAG;AACH;AACA,eAAe,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;AACjD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY;AACjD,IAAI,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAC1D,IAAI,OAAO,OAAO,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/D,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kDAAkD,CAAC;AACpF,EAAE,OAAO,IAAI;AACb;AACA,eAAe,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7D,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AACxD,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY;AACjD,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,OAAO,IAAI;AAC7C,IAAI,OAAO,OAAO,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/D,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,mEAAmE,CAAC;AACzF,EAAE;AACF,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/B;AACA,eAAe,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE;AACrE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AACvC,EAAE,MAAM,MAAM,GAAG,MAAM,uBAAuB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC;AACvF,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,sEAAsE,CAAC;AAC5F,EAAE;AACF;AACA,eAAe,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE;AACpD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AACxD,EAAE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,YAAY;AAC/D,IAAI,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;AAClG,IAAI,OAAO,UAAU,CAAC;AACtB,MAAM,OAAO;AACb,MAAM,SAAS;AACf,MAAM,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI;AACtC,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,iEAAiE,CAAC;AACvF,EAAE;AACF,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/B;AACA,eAAe,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE;AAC5D,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,YAAY;AAC/D,IAAI,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC;AAChG,IAAI,OAAO,gBAAgB,CAAC;AAC5B,MAAM,cAAc,EAAE,GAAG,CAAC,cAAc;AACxC,MAAM,SAAS;AACf,MAAM,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;AAC1C,MAAM;AACN,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4DAA4D,CAAC;AAC9F,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACtB;AACA,eAAe,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE;AACnD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,YAAY;AAC/D,IAAI,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAC1D,IAAI,OAAO,SAAS,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjE,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,8CAA8C,CAAC;AAChF,EAAE,OAAO,IAAI;AACb;AACA,eAAe,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AAC1D,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,YAAY;AAC/D,IAAI,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAC1D,IAAI,OAAO,SAAS,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjE,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yCAAyC,CAAC;AAC3E,EAAE,OAAO,IAAI;AACb;AACA,eAAe,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE;AAChE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AACxD,EAAE,MAAM,OAAO,GAAG,MAAM,qBAAqB;AAC7C,IAAI,GAAG;AACP,IAAI,YAAY,sBAAsB,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC;AAClF,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gDAAgD,CAAC;AAClF,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/B;AACA,eAAe,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE;AACxD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY;AACjD,IAAI,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAC1D,IAAI,OAAO,OAAO,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/D,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yCAAyC,CAAC;AAC3E,EAAE,OAAO,IAAI;AACb;AACA,eAAe,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;AAClD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AACxD,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY;AACpC,IAAI,YAAY,QAAQ,CAAC,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC;AACpE,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yCAAyC,CAAC;AAC3E,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/B;AACA,eAAe,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE;AACvD,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AACvC,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACvD,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY;AACjD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChD,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;AAC5D,MAAM,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM;AAC7E,KAAK,CAAC;AACN,IAAI,OAAO,iBAAiB,CAAC;AAC7B,MAAM,OAAO;AACb,MAAM,UAAU,EAAE,MAAM;AACxB,MAAM,MAAM;AACZ,MAAM,MAAM,EAAE,GAAG,CAAC,MAAM;AACxB,MAAM,mBAAmB,EAAE,GAAG,CAAC;AAC/B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,qDAAqD,CAAC;AACvF,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;AACxB;AACA,eAAe,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE;AAC3E,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY;AACjD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC5D,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;AACrD,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC;AAClD,MAAM,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM;AACtE,KAAK,CAAC;AACN,IAAI,OAAO,iBAAiB,CAAC;AAC7B,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,MAAM;AACZ,MAAM,MAAM,EAAE,GAAG,CAAC,MAAM;AACxB,MAAM,mBAAmB,EAAE,GAAG,CAAC;AAC/B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,qDAAqD,CAAC;AACvF,EAAE,OAAO,IAAI;AACb;AACK,MAAC,aAAa,mBAAmB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,cAAc,CAAC;AAC1F,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,2BAA2B;AAC7B,EAAE,mBAAmB;AACrB,EAAE,uBAAuB;AACzB,EAAE,yBAAyB;AAC3B,EAAE,oBAAoB;AACtB,EAAE,oBAAoB;AACtB,EAAE,0BAA0B;AAC5B,EAAE,4BAA4B;AAC9B,EAAE,0BAA0B;AAC5B,EAAE,uBAAuB;AACzB,EAAE,cAAc;AAChB,EAAE,wBAAwB;AAC1B,EAAE,6BAA6B;AAC/B,EAAE,gBAAgB;AAClB,EAAE,uBAAuB;AACzB,EAAE,iBAAiB;AACnB,EAAE,eAAe;AACjB,EAAE,qBAAqB;AACvB,EAAE,yBAAyB;AAC3B,EAAE,oBAAoB;AACtB,EAAE,oBAAoB;AACtB,EAAE,wBAAwB;AAC1B,EAAE,0BAA0B;AAC5B,EAAE,uBAAuB;AACzB,EAAE,uBAAuB;AACzB,EAAE,qBAAqB;AACvB,EAAE,iBAAiB;AACnB,EAAE,wBAAwB;AAC1B,EAAE;AACF,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;;;;"}
1
+ {"version":3,"file":"access.server-DVG3xnR_.js","sources":["../../../.svelte-kit/adapter-node/chunks/access.server.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { h as hasPermission, f as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { k as getDefinitionMeta, a as getOrganizationProvider, m as flag, b as getProjectProvider, c 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, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\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, platformPermissions, platformGrants, actingOrgId, userId } = input;\n if (!project)\n return false;\n if (project.visibility === \"platform\") {\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, platformPermissions } = input;\n if (project?.visibility === \"platform\")\n return isInstanceAdmin(platformPermissions);\n return member?.role === \"owner\" || member?.role === \"editor\";\n}\nfunction canManage(input) {\n if (input.project?.visibility === \"platform\")\n return isInstanceAdmin(input.platformPermissions);\n return input.member?.role === \"owner\";\n}\nfunction canEditProjectSettings(input) {\n if (input.project?.visibility === \"platform\")\n return isInstanceAdmin(input.platformPermissions);\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 } = input;\n if (!project || !definition)\n return false;\n if (project.visibility === \"platform\") {\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 let member = null;\n let orgMember = null;\n let platformGrants = [];\n if (project.visibility === \"platform\") {\n platformGrants = await getPlatformProjectGrantStore().listByProject(ctx, project.id);\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 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 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 });\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 });\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 canEdit as A,\n access_server as B,\n requireInstanceAdmin as a,\n requirePermission as b,\n requireManageInstanceUsers as c,\n requireCanEditDefinition as d,\n requireCanSolve as e,\n requireCanCreateDefinition as f,\n requireEditableDefinition as g,\n requireCanViewProject as h,\n requireManageOrgMembers as i,\n requireManageOrgCompute as j,\n requireCanCreateProject as k,\n requireCanManage as l,\n requireCanEditProjectSettings as m,\n canChangeVisibilityToPublic as n,\n requireCanManageMembers as o,\n requireTargetIsOrgMember as p,\n checkOwnerRemoval as q,\n requireManageCompute as r,\n requireCanReclaim as s,\n assertAnyPlatformPermission as t,\n assertPagePermission as u,\n assertManageCompute as v,\n withAdminBypass as w,\n assertManageInstanceUsers as x,\n canView as y,\n projectAccessInputFromRows as z\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { error } from '@sveltejs/kit';
2
2
  import './context-9tV9WxQ5.js';
3
- import { P as ProviderError } from './providers.server-C32WKtDL.js';
3
+ import { P as ProviderError } from './providers.server-Duyx-08B.js';
4
4
 
5
5
  function isSvelteKitError(err) {
6
6
  return !!err && typeof err === "object" && "status" in err && "body" in err;
@@ -33,4 +33,4 @@ function throwZodError(err) {
33
33
  }
34
34
 
35
35
  export { handleApiError as h, throwZodError as t };
36
- //# sourceMappingURL=api-errors-Dk5z97zb.js.map
36
+ //# sourceMappingURL=api-errors-DGHmIOGJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-errors-Dk5z97zb.js","sources":["../../../.svelte-kit/adapter-node/chunks/api-errors.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport \"./context.js\";\nimport { P as ProviderError } from \"./providers.server.js\";\nfunction isSvelteKitError(err) {\n return !!err && typeof err === \"object\" && \"status\" in err && \"body\" in err;\n}\nconst UNIQUE_CONSTRAINT_MESSAGES = {\n projects_org_name_unique: \"A project with that name already exists in this organization.\",\n projects_org_id_slug_key: \"A project with that name already exists in this organization.\",\n orgs_slug_key: \"An organization with that slug already exists.\",\n definitions_pkey: \"A definition with that ID already exists.\"\n};\nfunction friendlyConstraintMessage(raw) {\n for (const [name, msg] of Object.entries(UNIQUE_CONSTRAINT_MESSAGES)) {\n if (raw.includes(name)) return msg;\n }\n return null;\n}\nfunction handleApiError(err, fallback) {\n if (isSvelteKitError(err)) throw err;\n if (err instanceof ProviderError) {\n const friendly = friendlyConstraintMessage(err.message);\n throw error(err.statusCode, friendly ?? err.message);\n }\n console.error(`[API] ${fallback}:`, err);\n throw error(500, fallback);\n}\nfunction throwZodError(err) {\n const issue = err.issues[0];\n const path = issue.path.length ? `${issue.path.join(\".\")}: ` : \"\";\n throw error(400, `${path}${issue.message}`);\n}\nexport {\n handleApiError as h,\n throwZodError as t\n};\n"],"names":[],"mappings":";;;;AAGA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;AAC7E;AACA,MAAM,0BAA0B,GAAG;AACnC,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,aAAa,EAAE,gDAAgD;AACjE,EAAE,gBAAgB,EAAE;AACpB,CAAC;AACD,SAAS,yBAAyB,CAAC,GAAG,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE;AACxE,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG;AACtC,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AACvC,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;AACtC,EAAE,IAAI,GAAG,YAAY,aAAa,EAAE;AACpC,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3D,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACxD,EAAE;AACF,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1C,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC5B;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;AACnE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C;;;;"}
1
+ {"version":3,"file":"api-errors-DGHmIOGJ.js","sources":["../../../.svelte-kit/adapter-node/chunks/api-errors.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport \"./context.js\";\nimport { P as ProviderError } from \"./providers.server.js\";\nfunction isSvelteKitError(err) {\n return !!err && typeof err === \"object\" && \"status\" in err && \"body\" in err;\n}\nconst UNIQUE_CONSTRAINT_MESSAGES = {\n projects_org_name_unique: \"A project with that name already exists in this organization.\",\n projects_org_id_slug_key: \"A project with that name already exists in this organization.\",\n orgs_slug_key: \"An organization with that slug already exists.\",\n definitions_pkey: \"A definition with that ID already exists.\"\n};\nfunction friendlyConstraintMessage(raw) {\n for (const [name, msg] of Object.entries(UNIQUE_CONSTRAINT_MESSAGES)) {\n if (raw.includes(name)) return msg;\n }\n return null;\n}\nfunction handleApiError(err, fallback) {\n if (isSvelteKitError(err)) throw err;\n if (err instanceof ProviderError) {\n const friendly = friendlyConstraintMessage(err.message);\n throw error(err.statusCode, friendly ?? err.message);\n }\n console.error(`[API] ${fallback}:`, err);\n throw error(500, fallback);\n}\nfunction throwZodError(err) {\n const issue = err.issues[0];\n const path = issue.path.length ? `${issue.path.join(\".\")}: ` : \"\";\n throw error(400, `${path}${issue.message}`);\n}\nexport {\n handleApiError as h,\n throwZodError as t\n};\n"],"names":[],"mappings":";;;;AAGA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;AAC7E;AACA,MAAM,0BAA0B,GAAG;AACnC,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,wBAAwB,EAAE,+DAA+D;AAC3F,EAAE,aAAa,EAAE,gDAAgD;AACjE,EAAE,gBAAgB,EAAE;AACpB,CAAC;AACD,SAAS,yBAAyB,CAAC,GAAG,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE;AACxE,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG;AACtC,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AACvC,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;AACtC,EAAE,IAAI,GAAG,YAAY,aAAa,EAAE;AACpC,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3D,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACxD,EAAE;AACF,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1C,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC5B;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;AACnE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { b as private_env } from './shared-server-DaWdgxVh.js';
2
2
  import { S as SYSTEM_CONTEXT, A as ALL_PLATFORM_PERMISSIONS } from './context-9tV9WxQ5.js';
3
- import { g as getAuthProvider, l as getPermissionStore, n as getDataProvider, t as tenancy } from './providers.server-C32WKtDL.js';
3
+ import { g as getAuthProvider, l as getPermissionStore, n as getDataProvider, t as tenancy } from './providers.server-Duyx-08B.js';
4
4
 
5
5
  async function bootstrapUserSession(user) {
6
6
  await getDataProvider().ensureUser(SYSTEM_CONTEXT, user.id);
@@ -26,7 +26,14 @@ function shouldBootstrapUpn(upn, email, configuredEmail, mode) {
26
26
  }
27
27
  function wireHeaderAuthBootstrap() {
28
28
  const auth = getAuthProvider();
29
- if (typeof auth.setBootstrapAllowlistPolicy !== "function") return;
29
+ if (typeof auth.setBootstrapAllowlistPolicy !== "function") {
30
+ if (private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL?.trim()) {
31
+ console.warn(
32
+ "[selva] BOOTSTRAP_INSTANCE_ADMIN_EMAIL is set but the installed @selvajs/header-auth-provider does not expose setBootstrapAllowlistPolicy. Upgrade the provider, or hand-seed header-allowlist.json."
33
+ );
34
+ }
35
+ return;
36
+ }
30
37
  auth.setBootstrapAllowlistPolicy(async ({ upn, email }) => {
31
38
  const hasAdmin = await getPermissionStore().hasInstanceAdmin(SYSTEM_CONTEXT);
32
39
  if (hasAdmin) return false;
@@ -35,4 +42,4 @@ function wireHeaderAuthBootstrap() {
35
42
  }
36
43
 
37
44
  export { bootstrapUserSession as b, wireHeaderAuthBootstrap as w };
38
- //# sourceMappingURL=auth-bootstrap.server-CfD5CPTj.js.map
45
+ //# sourceMappingURL=auth-bootstrap.server-oox9p1sN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-bootstrap.server-oox9p1sN.js","sources":["../../../.svelte-kit/adapter-node/chunks/auth-bootstrap.server.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { S as SYSTEM_CONTEXT, f as ALL_PLATFORM_PERMISSIONS } from \"./context.js\";\nimport { h as getDataProvider, f as getPermissionStore, e as getAuthProvider, t as tenancy } from \"./providers.server.js\";\nasync function bootstrapUserSession(user) {\n await getDataProvider().ensureUser(SYSTEM_CONTEXT, user.id);\n const perms = getPermissionStore();\n const hasAdmin = await perms.hasInstanceAdmin(SYSTEM_CONTEXT);\n if (hasAdmin) return;\n if (!shouldBootstrapAdmin(user, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, tenancy)) return;\n await perms.set(SYSTEM_CONTEXT, user.id, [...ALL_PLATFORM_PERMISSIONS]);\n}\nfunction shouldBootstrapAdmin(user, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const actual = user.email?.trim().toLowerCase();\n return !!actual && actual === expected;\n}\nfunction shouldBootstrapUpn(upn, email, configuredEmail, mode) {\n const expected = configuredEmail?.trim().toLowerCase();\n if (mode === \"multi\" && !expected) return false;\n if (!expected) return true;\n const candidate = (email ?? upn).trim().toLowerCase();\n return !!candidate && candidate === expected;\n}\nfunction wireHeaderAuthBootstrap() {\n const auth = getAuthProvider();\n if (typeof auth.setBootstrapAllowlistPolicy !== \"function\") {\n if (private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL?.trim()) {\n console.warn(\n \"[selva] BOOTSTRAP_INSTANCE_ADMIN_EMAIL is set but the installed @selvajs/header-auth-provider does not expose setBootstrapAllowlistPolicy. Upgrade the provider, or hand-seed header-allowlist.json.\"\n );\n }\n return;\n }\n auth.setBootstrapAllowlistPolicy(async ({ upn, email }) => {\n const hasAdmin = await getPermissionStore().hasInstanceAdmin(SYSTEM_CONTEXT);\n if (hasAdmin) return false;\n return shouldBootstrapUpn(upn, email, private_env.BOOTSTRAP_INSTANCE_ADMIN_EMAIL, tenancy);\n });\n}\nexport {\n bootstrapUserSession as b,\n wireHeaderAuthBootstrap as w\n};\n"],"names":[],"mappings":";;;;AAGA,eAAe,oBAAoB,CAAC,IAAI,EAAE;AAC1C,EAAE,MAAM,eAAe,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AAC7D,EAAE,MAAM,KAAK,GAAG,kBAAkB,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAC/D,EAAE,IAAI,QAAQ,EAAE;AAChB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,8BAA8B,EAAE,OAAO,CAAC,EAAE;AACxF,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,wBAAwB,CAAC,CAAC;AACzE;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;AAC3D,EAAE,MAAM,QAAQ,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AACxD,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,KAAK;AACjD,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC5B,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AACjD,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ;AACxC;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;AAC/D,EAAE,MAAM,QAAQ,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AACxD,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,KAAK;AACjD,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC5B,EAAE,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AACvD,EAAE,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ;AAC9C;AACA,SAAS,uBAAuB,GAAG;AACnC,EAAE,MAAM,IAAI,GAAG,eAAe,EAAE;AAChC,EAAE,IAAI,OAAO,IAAI,CAAC,2BAA2B,KAAK,UAAU,EAAE;AAC9D,IAAI,IAAI,WAAW,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE;AAC5D,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;AAC7D,IAAI,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAChF,IAAI,IAAI,QAAQ,EAAE,OAAO,KAAK;AAC9B,IAAI,OAAO,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,8BAA8B,EAAE,OAAO,CAAC;AAC9F,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import './context-9tV9WxQ5.js';
2
- import { p as providers, L as LocalComputeServerStore } from './providers.server-C32WKtDL.js';
2
+ import { p as providers, L as LocalComputeServerStore } from './providers.server-Duyx-08B.js';
3
3
 
4
4
  let cached = null;
5
5
  let inflight = null;
@@ -55,4 +55,4 @@ function isDegraded(report) {
55
55
  }
56
56
 
57
57
  export { getBootHealth as g, isDegraded as i };
58
- //# sourceMappingURL=bootHealth.server-Bn7taneH.js.map
58
+ //# sourceMappingURL=bootHealth.server-DQx_qsNh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootHealth.server-Bn7taneH.js","sources":["../../../.svelte-kit/adapter-node/chunks/bootHealth.server.js"],"sourcesContent":["import \"./context.js\";\nimport { p as providers, L as LocalComputeServerStore } from \"./providers.server.js\";\nlet cached = null;\nlet inflight = null;\nasync function run() {\n let atRestSecrets = null;\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n atRestSecrets = await store.verifySecrets();\n } catch (err) {\n console.error(\"[selva][boot] verifySecrets threw — treating as failure\", err);\n atRestSecrets = {\n ok: false,\n plaintextFound: false,\n failures: [\n {\n serverId: \"(unknown)\",\n serverLabel: \"(unknown)\",\n reason: \"key_mismatch\",\n cause: err instanceof Error ? err.message : String(err)\n }\n ]\n };\n }\n }\n if (atRestSecrets && !atRestSecrets.ok) {\n for (const f of atRestSecrets.failures) {\n console.error(\n `[selva][boot] compute server \"${f.serverLabel}\" (${f.serverId}): ${f.reason}${f.cause ? ` — ${f.cause}` : \"\"}`\n );\n }\n console.error(\n \"[selva][boot] At-rest secret verification failed. /api/health will return 503. Recover by re-entering the affected apiKeys via /admin/compute, or by restoring the original SELVA_AT_REST_KEY. See docs/Troubleshooting.md.\"\n );\n }\n return {\n checkedAt: (/* @__PURE__ */ new Date()).toISOString(),\n atRestSecrets\n };\n}\nfunction getBootHealth() {\n if (cached) return Promise.resolve(cached);\n if (inflight) return inflight;\n inflight = run().then((result) => {\n cached = result;\n inflight = null;\n return result;\n });\n return inflight;\n}\nfunction isDegraded(report) {\n return report.atRestSecrets !== null && !report.atRestSecrets.ok;\n}\nexport {\n getBootHealth as g,\n isDegraded as i\n};\n"],"names":[],"mappings":";;;AAEA,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,QAAQ,GAAG,IAAI;AACnB,eAAe,GAAG,GAAG;AACrB,EAAE,IAAI,aAAa,GAAG,IAAI;AAC1B,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa;AAC5C,EAAE,IAAI,KAAK,YAAY,uBAAuB,EAAE;AAChD,IAAI,IAAI;AACR,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;AACjD,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC;AACnF,MAAM,aAAa,GAAG;AACtB,QAAQ,EAAE,EAAE,KAAK;AACjB,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,QAAQ,EAAE;AAClB,UAAU;AACV,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,MAAM,EAAE,cAAc;AAClC,YAAY,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AAClE;AACA;AACA,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;AAC1C,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5C,MAAM,OAAO,CAAC,KAAK;AACnB,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AACtH,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM;AACN,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI;AACJ,GAAG;AACH;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5C,EAAE,IAAI,QAAQ,EAAE,OAAO,QAAQ;AAC/B,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACpC,IAAI,MAAM,GAAG,MAAM;AACnB,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AAClE;;;;"}
1
+ {"version":3,"file":"bootHealth.server-DQx_qsNh.js","sources":["../../../.svelte-kit/adapter-node/chunks/bootHealth.server.js"],"sourcesContent":["import \"./context.js\";\nimport { p as providers, L as LocalComputeServerStore } from \"./providers.server.js\";\nlet cached = null;\nlet inflight = null;\nasync function run() {\n let atRestSecrets = null;\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n atRestSecrets = await store.verifySecrets();\n } catch (err) {\n console.error(\"[selva][boot] verifySecrets threw — treating as failure\", err);\n atRestSecrets = {\n ok: false,\n plaintextFound: false,\n failures: [\n {\n serverId: \"(unknown)\",\n serverLabel: \"(unknown)\",\n reason: \"key_mismatch\",\n cause: err instanceof Error ? err.message : String(err)\n }\n ]\n };\n }\n }\n if (atRestSecrets && !atRestSecrets.ok) {\n for (const f of atRestSecrets.failures) {\n console.error(\n `[selva][boot] compute server \"${f.serverLabel}\" (${f.serverId}): ${f.reason}${f.cause ? ` — ${f.cause}` : \"\"}`\n );\n }\n console.error(\n \"[selva][boot] At-rest secret verification failed. /api/health will return 503. Recover by re-entering the affected apiKeys via /admin/compute, or by restoring the original SELVA_AT_REST_KEY. See docs/Troubleshooting.md.\"\n );\n }\n return {\n checkedAt: (/* @__PURE__ */ new Date()).toISOString(),\n atRestSecrets\n };\n}\nfunction getBootHealth() {\n if (cached) return Promise.resolve(cached);\n if (inflight) return inflight;\n inflight = run().then((result) => {\n cached = result;\n inflight = null;\n return result;\n });\n return inflight;\n}\nfunction isDegraded(report) {\n return report.atRestSecrets !== null && !report.atRestSecrets.ok;\n}\nexport {\n getBootHealth as g,\n isDegraded as i\n};\n"],"names":[],"mappings":";;;AAEA,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,QAAQ,GAAG,IAAI;AACnB,eAAe,GAAG,GAAG;AACrB,EAAE,IAAI,aAAa,GAAG,IAAI;AAC1B,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa;AAC5C,EAAE,IAAI,KAAK,YAAY,uBAAuB,EAAE;AAChD,IAAI,IAAI;AACR,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;AACjD,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC;AACnF,MAAM,aAAa,GAAG;AACtB,QAAQ,EAAE,EAAE,KAAK;AACjB,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,QAAQ,EAAE;AAClB,UAAU;AACV,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,MAAM,EAAE,cAAc;AAClC,YAAY,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AAClE;AACA;AACA,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;AAC1C,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5C,MAAM,OAAO,CAAC,KAAK;AACnB,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AACtH,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM;AACN,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI;AACJ,GAAG;AACH;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5C,EAAE,IAAI,QAAQ,EAAE,OAAO,QAAQ;AAC/B,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACpC,IAAI,MAAM,GAAG,MAAM;AACnB,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AAClE;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { redirect, isHttpError } from '@sveltejs/kit';
2
2
  import { S as SYSTEM_CONTEXT } from './context-9tV9WxQ5.js';
3
- import { p as providers } from './providers.server-C32WKtDL.js';
4
- import { g as getBootHealth } from './bootHealth.server-Bn7taneH.js';
5
- import { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from './auth-bootstrap.server-CfD5CPTj.js';
3
+ import { p as providers } from './providers.server-Duyx-08B.js';
4
+ import { g as getBootHealth } from './bootHealth.server-DQx_qsNh.js';
5
+ import { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from './auth-bootstrap.server-oox9p1sN.js';
6
6
  import { g as getRefreshToken, s as setSessionCookie, a as setRefreshCookie, c as clearRefreshCookie } from './admin-auth.server-CdTfBMI5.js';
7
7
  import 'zod';
8
8
  import './shared-server-DaWdgxVh.js';
@@ -194,4 +194,4 @@ const handleError = ({
194
194
  };
195
195
 
196
196
  export { handle, handleError, isPublicRoute, isStaticAsset };
197
- //# sourceMappingURL=hooks.server-CMWyl1Gd.js.map
197
+ //# sourceMappingURL=hooks.server-aaRldGQ_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.server-CMWyl1Gd.js","sources":["../../../.svelte-kit/adapter-node/entries/hooks.server.js"],"sourcesContent":["import { redirect, isHttpError } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"../chunks/context.js\";\nimport { p as providers } from \"../chunks/providers.server.js\";\nimport { g as getBootHealth } from \"../chunks/bootHealth.server.js\";\nimport { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from \"../chunks/auth-bootstrap.server.js\";\nimport { g as getRefreshToken, s as setSessionCookie, a as setRefreshCookie, h as clearRefreshCookie } from \"../chunks/admin-auth.server.js\";\nfunction emptyProfile(userId) {\n return { userId, starredDefinitions: [], recentRuns: [] };\n}\nlet headerAuthBootstrapWired = false;\nvoid getBootHealth();\nlet firstRunResolved = false;\nasync function isFirstRun() {\n if (firstRunResolved) return false;\n const usersPage = await providers.auth.listUsers({ limit: 1 });\n if (usersPage === null) {\n firstRunResolved = true;\n return false;\n }\n if (usersPage.items.length === 0) return true;\n firstRunResolved = true;\n return false;\n}\nasync function buildContext(user, sessionToken) {\n let actingOrgId;\n let orgPermissions = [];\n const platformPermissions = await providers.data.permissions.getFor(SYSTEM_CONTEXT, user.id);\n const membership = await providers.data.orgs.findUserMembership(SYSTEM_CONTEXT, user.id);\n if (membership) {\n actingOrgId = membership.org.id;\n orgPermissions = membership.member.permissions;\n }\n if (!actingOrgId && platformPermissions.includes(\"instance_admin\")) {\n const firstOrgPage = await providers.data.orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n const firstOrg = firstOrgPage.items[0];\n if (firstOrg) actingOrgId = firstOrg.id;\n }\n return {\n userId: user.id,\n actingOrgId,\n platformPermissions,\n orgPermissions,\n adapterContext: sessionToken ? { sessionToken } : void 0\n };\n}\nconst PUBLIC_PAGE_ROUTES = /* @__PURE__ */ new Set([\n \"/\",\n // landing — guests see it; authed users get redirected by +page.server.ts\n \"/login\",\n \"/setup\",\n \"/accept-invite\"\n]);\nconst PUBLIC_PATH_PREFIXES = [\"/auth/\", \"/logout\"];\nconst PUBLIC_API_ROUTES = /* @__PURE__ */ new Set([\"/api/health\"]);\nconst STATIC_ASSET_PREFIXES = [\"/_app/\", \"/favicon/\"];\nconst STATIC_ASSET_PATHS = /* @__PURE__ */ new Set([\"/favicon.svg\", \"/robots.txt\"]);\nfunction isStaticAsset(pathname) {\n if (STATIC_ASSET_PATHS.has(pathname)) return true;\n return STATIC_ASSET_PREFIXES.some((p) => pathname.startsWith(p));\n}\nfunction isPublicRoute(pathname) {\n if (PUBLIC_PAGE_ROUTES.has(pathname)) return true;\n if (PUBLIC_API_ROUTES.has(pathname)) return true;\n return PUBLIC_PATH_PREFIXES.some((p) => pathname.startsWith(p));\n}\nconst handle = async ({ event, resolve }) => {\n event.locals.providers = providers;\n if (!headerAuthBootstrapWired) {\n wireHeaderAuthBootstrap();\n headerAuthBootstrapWired = true;\n }\n const { pathname } = event.url;\n if (isStaticAsset(pathname)) {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n if (pathname === \"/api/health\") {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n const publicRoute = isPublicRoute(pathname);\n const isJsonApiRoute = pathname.startsWith(\"/api/\") || pathname.startsWith(\"/admin/api/\");\n if (!publicRoute) {\n if (await isFirstRun()) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ error: \"Setup required\" }), {\n status: 503,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, \"/setup\");\n }\n }\n const needsAuth = !publicRoute;\n if (needsAuth) {\n let token = event.cookies.get(\"admin_session\") ?? \"\";\n let user = await providers.auth.verifyToken(token);\n if (!user) {\n const refreshToken = getRefreshToken(event.cookies);\n const oauth = providers.auth.oauth;\n if (refreshToken && oauth) {\n const refreshed = await oauth.refreshSession(refreshToken);\n if (refreshed) {\n setSessionCookie(event.cookies, refreshed.sessionToken);\n setRefreshCookie(event.cookies, refreshed.refreshToken);\n token = refreshed.sessionToken;\n user = await providers.auth.verifyToken(token);\n } else {\n clearRefreshCookie(event.cookies);\n }\n }\n }\n if (!user && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n if (user) await bootstrapUserSession(user);\n }\n if (!user) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ error: \"Unauthorized\" }), {\n status: 401,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, `/login?redirectTo=${encodeURIComponent(pathname)}`);\n }\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n } else {\n const isPublicPage = PUBLIC_PAGE_ROUTES.has(pathname);\n const token = isPublicPage ? event.cookies.get(\"admin_session\") ?? \"\" : \"\";\n let user = token ? await providers.auth.verifyToken(token) : null;\n if (!user && isPublicPage && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n }\n if (user) {\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n }\n }\n return applySecurityHeaders(await resolve(event), pathname);\n};\nfunction applySecurityHeaders(response, pathname) {\n response.headers.set(\"X-Content-Type-Options\", \"nosniff\");\n response.headers.set(\"Referrer-Policy\", \"strict-origin-when-cross-origin\");\n response.headers.set(\n \"Permissions-Policy\",\n \"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()\"\n );\n if (process.env.NODE_ENV === \"production\") {\n response.headers.set(\"Strict-Transport-Security\", \"max-age=31536000; includeSubDomains\");\n }\n if (pathname.startsWith(\"/_app/\")) {\n response.headers.set(\"Cache-Control\", \"public, max-age=31536000, immutable\");\n } else if (pathname.startsWith(\"/favicon/\") || pathname === \"/favicon.svg\" || pathname === \"/robots.txt\") {\n response.headers.set(\"Cache-Control\", \"public, max-age=604800\");\n }\n return response;\n}\nconst handleError = ({\n error,\n status,\n event\n}) => {\n if (isHttpError(error)) {\n return { message: error.body.message };\n }\n if (status === 404) {\n return { message: \"Page not found.\" };\n }\n const cause = error instanceof Error && error.cause ? `\n caused by: ${error.cause}` : \"\";\n console.error(\n `[Unhandled error] ${event.request.method} ${event.url.pathname}\n ${error}${cause}`\n );\n return { message: \"An unexpected error occurred.\" };\n};\nexport {\n handle,\n handleError,\n isPublicRoute,\n isStaticAsset\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.server-aaRldGQ_.js","sources":["../../../.svelte-kit/adapter-node/entries/hooks.server.js"],"sourcesContent":["import { redirect, isHttpError } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"../chunks/context.js\";\nimport { p as providers } from \"../chunks/providers.server.js\";\nimport { g as getBootHealth } from \"../chunks/bootHealth.server.js\";\nimport { w as wireHeaderAuthBootstrap, b as bootstrapUserSession } from \"../chunks/auth-bootstrap.server.js\";\nimport { g as getRefreshToken, s as setSessionCookie, a as setRefreshCookie, h as clearRefreshCookie } from \"../chunks/admin-auth.server.js\";\nfunction emptyProfile(userId) {\n return { userId, starredDefinitions: [], recentRuns: [] };\n}\nlet headerAuthBootstrapWired = false;\nvoid getBootHealth();\nlet firstRunResolved = false;\nasync function isFirstRun() {\n if (firstRunResolved) return false;\n const usersPage = await providers.auth.listUsers({ limit: 1 });\n if (usersPage === null) {\n firstRunResolved = true;\n return false;\n }\n if (usersPage.items.length === 0) return true;\n firstRunResolved = true;\n return false;\n}\nasync function buildContext(user, sessionToken) {\n let actingOrgId;\n let orgPermissions = [];\n const platformPermissions = await providers.data.permissions.getFor(SYSTEM_CONTEXT, user.id);\n const membership = await providers.data.orgs.findUserMembership(SYSTEM_CONTEXT, user.id);\n if (membership) {\n actingOrgId = membership.org.id;\n orgPermissions = membership.member.permissions;\n }\n if (!actingOrgId && platformPermissions.includes(\"instance_admin\")) {\n const firstOrgPage = await providers.data.orgs.listOrgs(SYSTEM_CONTEXT, { limit: 1 });\n const firstOrg = firstOrgPage.items[0];\n if (firstOrg) actingOrgId = firstOrg.id;\n }\n return {\n userId: user.id,\n actingOrgId,\n platformPermissions,\n orgPermissions,\n adapterContext: sessionToken ? { sessionToken } : void 0\n };\n}\nconst PUBLIC_PAGE_ROUTES = /* @__PURE__ */ new Set([\n \"/\",\n // landing — guests see it; authed users get redirected by +page.server.ts\n \"/login\",\n \"/setup\",\n \"/accept-invite\"\n]);\nconst PUBLIC_PATH_PREFIXES = [\"/auth/\", \"/logout\"];\nconst PUBLIC_API_ROUTES = /* @__PURE__ */ new Set([\"/api/health\"]);\nconst STATIC_ASSET_PREFIXES = [\"/_app/\", \"/favicon/\"];\nconst STATIC_ASSET_PATHS = /* @__PURE__ */ new Set([\"/favicon.svg\", \"/robots.txt\"]);\nfunction isStaticAsset(pathname) {\n if (STATIC_ASSET_PATHS.has(pathname)) return true;\n return STATIC_ASSET_PREFIXES.some((p) => pathname.startsWith(p));\n}\nfunction isPublicRoute(pathname) {\n if (PUBLIC_PAGE_ROUTES.has(pathname)) return true;\n if (PUBLIC_API_ROUTES.has(pathname)) return true;\n return PUBLIC_PATH_PREFIXES.some((p) => pathname.startsWith(p));\n}\nconst handle = async ({ event, resolve }) => {\n event.locals.providers = providers;\n if (!headerAuthBootstrapWired) {\n wireHeaderAuthBootstrap();\n headerAuthBootstrapWired = true;\n }\n const { pathname } = event.url;\n if (isStaticAsset(pathname)) {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n if (pathname === \"/api/health\") {\n return applySecurityHeaders(await resolve(event), pathname);\n }\n const publicRoute = isPublicRoute(pathname);\n const isJsonApiRoute = pathname.startsWith(\"/api/\") || pathname.startsWith(\"/admin/api/\");\n if (!publicRoute) {\n if (await isFirstRun()) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ error: \"Setup required\" }), {\n status: 503,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, \"/setup\");\n }\n }\n const needsAuth = !publicRoute;\n if (needsAuth) {\n let token = event.cookies.get(\"admin_session\") ?? \"\";\n let user = await providers.auth.verifyToken(token);\n if (!user) {\n const refreshToken = getRefreshToken(event.cookies);\n const oauth = providers.auth.oauth;\n if (refreshToken && oauth) {\n const refreshed = await oauth.refreshSession(refreshToken);\n if (refreshed) {\n setSessionCookie(event.cookies, refreshed.sessionToken);\n setRefreshCookie(event.cookies, refreshed.refreshToken);\n token = refreshed.sessionToken;\n user = await providers.auth.verifyToken(token);\n } else {\n clearRefreshCookie(event.cookies);\n }\n }\n }\n if (!user && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n if (user) await bootstrapUserSession(user);\n }\n if (!user) {\n if (isJsonApiRoute) {\n return applySecurityHeaders(\n new Response(JSON.stringify({ error: \"Unauthorized\" }), {\n status: 401,\n headers: { \"Content-Type\": \"application/json\" }\n }),\n pathname\n );\n }\n redirect(303, `/login?redirectTo=${encodeURIComponent(pathname)}`);\n }\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n } else {\n const isPublicPage = PUBLIC_PAGE_ROUTES.has(pathname);\n const token = isPublicPage ? event.cookies.get(\"admin_session\") ?? \"\" : \"\";\n let user = token ? await providers.auth.verifyToken(token) : null;\n if (!user && isPublicPage && providers.auth.proxyAuth) {\n user = await providers.auth.proxyAuth.identifyFromHeaders(event.request.headers);\n }\n if (user) {\n await providers.data.ensureUser(SYSTEM_CONTEXT, user.id);\n event.locals.user = user;\n event.locals.profile = await providers.data.userProfile.getProfile(SYSTEM_CONTEXT, user.id) ?? emptyProfile(user.id);\n event.locals.ctx = await buildContext(user, token);\n }\n }\n return applySecurityHeaders(await resolve(event), pathname);\n};\nfunction applySecurityHeaders(response, pathname) {\n response.headers.set(\"X-Content-Type-Options\", \"nosniff\");\n response.headers.set(\"Referrer-Policy\", \"strict-origin-when-cross-origin\");\n response.headers.set(\n \"Permissions-Policy\",\n \"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()\"\n );\n if (process.env.NODE_ENV === \"production\") {\n response.headers.set(\"Strict-Transport-Security\", \"max-age=31536000; includeSubDomains\");\n }\n if (pathname.startsWith(\"/_app/\")) {\n response.headers.set(\"Cache-Control\", \"public, max-age=31536000, immutable\");\n } else if (pathname.startsWith(\"/favicon/\") || pathname === \"/favicon.svg\" || pathname === \"/robots.txt\") {\n response.headers.set(\"Cache-Control\", \"public, max-age=604800\");\n }\n return response;\n}\nconst handleError = ({\n error,\n status,\n event\n}) => {\n if (isHttpError(error)) {\n return { message: error.body.message };\n }\n if (status === 404) {\n return { message: \"Page not found.\" };\n }\n const cause = error instanceof Error && error.cause ? `\n caused by: ${error.cause}` : \"\";\n console.error(\n `[Unhandled error] ${event.request.method} ${event.url.pathname}\n ${error}${cause}`\n );\n return { message: \"An unexpected error occurred.\" };\n};\nexport {\n handle,\n handleError,\n isPublicRoute,\n isStaticAsset\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;AAC3D;AACA,IAAI,wBAAwB,GAAG,KAAK;AACpC,KAAK,aAAa,EAAE;AACpB,IAAI,gBAAgB,GAAG,KAAK;AAC5B,eAAe,UAAU,GAAG;AAC5B,EAAE,IAAI,gBAAgB,EAAE,OAAO,KAAK;AACpC,EAAE,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAChE,EAAE,IAAI,SAAS,KAAK,IAAI,EAAE;AAC1B,IAAI,gBAAgB,GAAG,IAAI;AAC3B,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AAC/C,EAAE,gBAAgB,GAAG,IAAI;AACzB,EAAE,OAAO,KAAK;AACd;AACA,eAAe,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE;AAChD,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,cAAc,GAAG,EAAE;AACzB,EAAE,MAAM,mBAAmB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AAC9F,EAAE,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1F,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,IAAI,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW;AAClD,EAAE;AACF,EAAE,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AACtE,IAAI,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACzF,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,QAAQ,EAAE,WAAW,GAAG,QAAQ,CAAC,EAAE;AAC3C,EAAE;AACF,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,IAAI,CAAC,EAAE;AACnB,IAAI,WAAW;AACf,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAClB,IAAI,cAAc,EAAE,YAAY,GAAG,EAAE,YAAY,EAAE,GAAG;AACtD,GAAG;AACH;AACA,MAAM,kBAAkB,mBAAmB,IAAI,GAAG,CAAC;AACnD,EAAE,GAAG;AACL;AACA,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE;AACF,CAAC,CAAC;AACF,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;AAClD,MAAM,iBAAiB,mBAAmB,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAClE,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AACrD,MAAM,kBAAkB,mBAAmB,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AACnF,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI;AACnD,EAAE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI;AACnD,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI;AAClD,EAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjE;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AAC7C,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS;AACpC,EAAE,IAAI,CAAC,wBAAwB,EAAE;AACjC,IAAI,uBAAuB,EAAE;AAC7B,IAAI,wBAAwB,GAAG,IAAI;AACnC,EAAE;AACF,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,GAAG;AAChC,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;AAC/B,IAAI,OAAO,oBAAoB,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;AAC/D,EAAE;AACF,EAAE,IAAI,QAAQ,KAAK,aAAa,EAAE;AAClC,IAAI,OAAO,oBAAoB,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;AAC/D,EAAE;AACF,EAAE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;AAC7C,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAC3F,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,MAAM,UAAU,EAAE,EAAE;AAC5B,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,OAAO,oBAAoB;AACnC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE;AACpE,YAAY,MAAM,EAAE,GAAG;AACvB,YAAY,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB;AACzD,WAAW,CAAC;AACZ,UAAU;AACV,SAAS;AACT,MAAM;AACN,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC7B,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,CAAC,WAAW;AAChC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;AACxD,IAAI,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACtD,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;AACzD,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK;AACxC,MAAM,IAAI,YAAY,IAAI,KAAK,EAAE;AACjC,QAAQ,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;AAClE,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC;AACjE,UAAU,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC;AACjE,UAAU,KAAK,GAAG,SAAS,CAAC,YAAY;AACxC,UAAU,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACxD,QAAQ,CAAC,MAAM;AACf,UAAU,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3C,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AACtF,MAAM,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC,IAAI,CAAC;AAChD,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,OAAO,oBAAoB;AACnC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE;AAClE,YAAY,MAAM,EAAE,GAAG;AACvB,YAAY,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB;AACzD,WAAW,CAAC;AACZ,UAAU;AACV,SAAS;AACT,MAAM;AACN,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI;AAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AACxH,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AACtD,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzD,IAAI,MAAM,KAAK,GAAG,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE;AAC9E,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI;AACrE,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AACtF,IAAI;AACJ,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AAC9D,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI;AAC9B,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1H,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AACxD,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,oBAAoB,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;AAC7D;AACA,SAAS,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAClD,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC;AAC3D,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;AAC5E,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG;AACtB,IAAI,oBAAoB;AACxB,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC7C,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,qCAAqC,CAAC;AAC5F,EAAE;AACF,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACrC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,qCAAqC,CAAC;AAChF,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,KAAK,cAAc,IAAI,QAAQ,KAAK,aAAa,EAAE;AAC5G,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,wBAAwB,CAAC;AACnE,EAAE;AACF,EAAE,OAAO,QAAQ;AACjB;AACK,MAAC,WAAW,GAAG,CAAC;AACrB,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE;AACF,CAAC,KAAK;AACN,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AAC1B,IAAI,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAC1C,EAAE;AACF,EAAE,IAAI,MAAM,KAAK,GAAG,EAAE;AACtB,IAAI,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACzC,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG;AACxD,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACjC,EAAE,OAAO,CAAC,KAAK;AACf,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;AACnE,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE;AACrD;;;;"}
@@ -1,8 +1,8 @@
1
- import { l as getPermissionStore } from './providers.server-C32WKtDL.js';
1
+ import { l as getPermissionStore } from './providers.server-Duyx-08B.js';
2
2
 
3
3
  async function setUserPlatformPermissions(ctx, userId, permissions) {
4
4
  return getPermissionStore().set(ctx, userId, permissions);
5
5
  }
6
6
 
7
7
  export { setUserPlatformPermissions as s };
8
- //# sourceMappingURL=permissions.server-Co6VKW9f.js.map
8
+ //# sourceMappingURL=permissions.server-qrbshNHz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.server-Co6VKW9f.js","sources":["../../../.svelte-kit/adapter-node/chunks/permissions.server.js"],"sourcesContent":["import { f as getPermissionStore } from \"./providers.server.js\";\nasync function setUserPlatformPermissions(ctx, userId, permissions) {\n return getPermissionStore().set(ctx, userId, permissions);\n}\nexport {\n setUserPlatformPermissions as s\n};\n"],"names":[],"mappings":";;AACA,eAAe,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE;AACpE,EAAE,OAAO,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;AAC3D;;;;"}
1
+ {"version":3,"file":"permissions.server-qrbshNHz.js","sources":["../../../.svelte-kit/adapter-node/chunks/permissions.server.js"],"sourcesContent":["import { f as getPermissionStore } from \"./providers.server.js\";\nasync function setUserPlatformPermissions(ctx, userId, permissions) {\n return getPermissionStore().set(ctx, userId, permissions);\n}\nexport {\n setUserPlatformPermissions as s\n};\n"],"names":[],"mappings":";;AACA,eAAe,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE;AACpE,EAAE,OAAO,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;AAC3D;;;;"}
@@ -4221,72 +4221,6 @@ class HeaderAuthProvider {
4221
4221
  await this.users.touchLastLogin(id);
4222
4222
  }
4223
4223
  }
4224
- function envBool(env, key) {
4225
- const v = env[key]?.toLowerCase();
4226
- return v === "true" || v === "1" || v === "yes";
4227
- }
4228
- function pickAuth(env) {
4229
- const choice = (env.SELVA_AUTH_PROVIDER ?? "local").toLowerCase();
4230
- switch (choice) {
4231
- case "local":
4232
- return LocalAuthProvider.fromEnv(env);
4233
- case "supabase":
4234
- return SupabaseAuthProvider.fromEnv(env);
4235
- case "header":
4236
- return HeaderAuthProvider.fromEnv(env);
4237
- default:
4238
- throw new Error(
4239
- `Unknown SELVA_AUTH_PROVIDER="${choice}". Expected: local | supabase | header.`
4240
- );
4241
- }
4242
- }
4243
- function pickData(env) {
4244
- const choice = (env.SELVA_DATA_PROVIDER ?? "local").toLowerCase();
4245
- switch (choice) {
4246
- case "local":
4247
- return LocalDataProvider.fromEnv(env);
4248
- case "supabase":
4249
- return SupabaseDataProvider.fromEnv(env);
4250
- default:
4251
- throw new Error(`Unknown SELVA_DATA_PROVIDER="${choice}". Expected: local | supabase.`);
4252
- }
4253
- }
4254
- function pickStorage(env) {
4255
- const choice = (env.SELVA_STORAGE_PROVIDER ?? "local").toLowerCase();
4256
- switch (choice) {
4257
- case "local":
4258
- return LocalStorageProvider.fromEnv(env);
4259
- case "supabase":
4260
- return SupabaseStorageProvider.fromEnv(env);
4261
- default:
4262
- throw new Error(`Unknown SELVA_STORAGE_PROVIDER="${choice}". Expected: local | supabase.`);
4263
- }
4264
- }
4265
- function pickTenancy(env) {
4266
- const choice = (env.SELVA_TENANCY ?? "single").toLowerCase();
4267
- if (choice !== "single" && choice !== "multi") {
4268
- throw new Error(`Unknown SELVA_TENANCY="${choice}". Expected: single | multi.`);
4269
- }
4270
- return choice;
4271
- }
4272
- const bundledConfig = defineConfig((env) => ({
4273
- tenancy: pickTenancy(env),
4274
- flags: {
4275
- ALLOW_CROSS_ORG_PUBLIC: envBool(env, "SELVA_FLAG_ALLOW_CROSS_ORG_PUBLIC"),
4276
- ALLOW_ORG_COMPUTE_OVERRIDE: envBool(env, "SELVA_FLAG_ALLOW_ORG_COMPUTE_OVERRIDE"),
4277
- ALLOW_ORG_CREATION: envBool(env, "SELVA_FLAG_ALLOW_ORG_CREATION"),
4278
- ENABLE_SHARING: envBool(env, "SELVA_FLAG_ENABLE_SHARING")
4279
- },
4280
- branding: {
4281
- name: env.SELVA_BRAND_NAME,
4282
- copyrightName: env.SELVA_BRAND_COPYRIGHT_NAME,
4283
- tagline: env.SELVA_BRAND_TAGLINE,
4284
- description: env.SELVA_BRAND_DESCRIPTION
4285
- },
4286
- auth: pickAuth(env),
4287
- data: pickData(env),
4288
- storage: pickStorage(env)
4289
- }));
4290
4224
  class DefinitionService {
4291
4225
  constructor(data, storage) {
4292
4226
  this.data = data;
@@ -4411,10 +4345,76 @@ class DefinitionService {
4411
4345
  await this.storage.deletePrefix(definitionPaths.prefix(guid));
4412
4346
  }
4413
4347
  }
4348
+ function envBool(e, key) {
4349
+ const v = e[key]?.toLowerCase();
4350
+ return v === "true" || v === "1" || v === "yes";
4351
+ }
4352
+ function pickAuth(e) {
4353
+ const choice = (e.SELVA_AUTH_PROVIDER ?? "local").toLowerCase();
4354
+ switch (choice) {
4355
+ case "local":
4356
+ return LocalAuthProvider.fromEnv(e);
4357
+ case "supabase":
4358
+ return SupabaseAuthProvider.fromEnv(e);
4359
+ case "header":
4360
+ return HeaderAuthProvider.fromEnv(e);
4361
+ default:
4362
+ throw new Error(
4363
+ `Unknown SELVA_AUTH_PROVIDER="${choice}". Expected: local | supabase | header.`
4364
+ );
4365
+ }
4366
+ }
4367
+ function pickData(e) {
4368
+ const choice = (e.SELVA_DATA_PROVIDER ?? "local").toLowerCase();
4369
+ switch (choice) {
4370
+ case "local":
4371
+ return LocalDataProvider.fromEnv(e);
4372
+ case "supabase":
4373
+ return SupabaseDataProvider.fromEnv(e);
4374
+ default:
4375
+ throw new Error(`Unknown SELVA_DATA_PROVIDER="${choice}". Expected: local | supabase.`);
4376
+ }
4377
+ }
4378
+ function pickStorage(e) {
4379
+ const choice = (e.SELVA_STORAGE_PROVIDER ?? "local").toLowerCase();
4380
+ switch (choice) {
4381
+ case "local":
4382
+ return LocalStorageProvider.fromEnv(e);
4383
+ case "supabase":
4384
+ return SupabaseStorageProvider.fromEnv(e);
4385
+ default:
4386
+ throw new Error(`Unknown SELVA_STORAGE_PROVIDER="${choice}". Expected: local | supabase.`);
4387
+ }
4388
+ }
4389
+ function pickTenancy(e) {
4390
+ const choice = (e.SELVA_TENANCY ?? "single").toLowerCase();
4391
+ if (choice !== "single" && choice !== "multi") {
4392
+ throw new Error(`Unknown SELVA_TENANCY="${choice}". Expected: single | multi.`);
4393
+ }
4394
+ return choice;
4395
+ }
4396
+ const defaultConfig = defineConfig((e) => ({
4397
+ tenancy: pickTenancy(e),
4398
+ flags: {
4399
+ ALLOW_CROSS_ORG_PUBLIC: envBool(e, "SELVA_FLAG_ALLOW_CROSS_ORG_PUBLIC"),
4400
+ ALLOW_ORG_COMPUTE_OVERRIDE: envBool(e, "SELVA_FLAG_ALLOW_ORG_COMPUTE_OVERRIDE"),
4401
+ ALLOW_ORG_CREATION: envBool(e, "SELVA_FLAG_ALLOW_ORG_CREATION"),
4402
+ ENABLE_SHARING: envBool(e, "SELVA_FLAG_ENABLE_SHARING")
4403
+ },
4404
+ branding: {
4405
+ name: e.SELVA_BRAND_NAME,
4406
+ copyrightName: e.SELVA_BRAND_COPYRIGHT_NAME,
4407
+ tagline: e.SELVA_BRAND_TAGLINE,
4408
+ description: e.SELVA_BRAND_DESCRIPTION
4409
+ },
4410
+ auth: pickAuth(e),
4411
+ data: pickData(e),
4412
+ storage: pickStorage(e)
4413
+ }));
4414
4414
  async function loadRawConfig() {
4415
4415
  const override = private_env.SELVA_CONFIG_PATH;
4416
4416
  if (!override) {
4417
- return bundledConfig;
4417
+ return defaultConfig;
4418
4418
  }
4419
4419
  const abs = resolve(process.cwd(), override);
4420
4420
  if (!existsSync(abs)) {
@@ -4483,4 +4483,4 @@ function getAuditQuery() {
4483
4483
  }
4484
4484
 
4485
4485
  export { LocalComputeServerStore as L, MAX_PAGE_LIMIT as M, ProviderError as P, getAuditQuery as a, branding as b, getOrganizationProvider as c, getInviteStore as d, getUserProfileStore as e, flag as f, getAuthProvider as g, getProjectProvider as h, getDefinitionMeta as i, getComputeServerConfigStore as j, getPlatformProjectGrantStore as k, getPermissionStore as l, getStorageProvider as m, getDataProvider as n, isOrgServer as o, providers as p, isPlatformServer as q, definitionService as r, definitionPaths as s, tenancy as t };
4486
- //# sourceMappingURL=providers.server-C32WKtDL.js.map
4486
+ //# sourceMappingURL=providers.server-Duyx-08B.js.map