@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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@selvajs/selva",
3
- "version": "2.0.1",
4
- "description": "Selva — self-contained Grasshopper-driven web app. Install + point at a selva.config.js to deploy.",
3
+ "version": "2.0.3",
4
+ "description": "Selva — self-contained Grasshopper-driven web app. Install, configure via .env, deploy.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -32,16 +32,15 @@
32
32
  "devDependencies": {
33
33
  "@sveltejs/adapter-node": "^5.5.4",
34
34
  "@types/three": "^0.184.0",
35
- "esbuild": "^0.25.0",
36
35
  "tw-animate-css": "^1.4.0",
37
36
  "vitest": "^3.2.4",
38
37
  "@selvajs/config": "0.0.0",
39
- "@selvajs/supabase-provider": "0.10.0",
40
- "@selvajs/local-provider": "0.10.0",
38
+ "@selvajs/schemas": "2.0.3",
41
39
  "@selvajs/platform": "0.10.0",
42
40
  "@selvajs/header-auth-provider": "0.11.0",
43
- "@selvajs/schemas": "2.0.1",
44
- "@selvajs/ui": "2.0.1"
41
+ "@selvajs/ui": "2.0.3",
42
+ "@selvajs/supabase-provider": "0.10.0",
43
+ "@selvajs/local-provider": "0.10.0"
45
44
  },
46
45
  "scripts": {
47
46
  "dev": "vite dev",
@@ -16,8 +16,9 @@
16
16
  # Vars labeled "[local]" further down are only read by the local provider;
17
17
  # "[supabase]" only by the Supabase provider.
18
18
  #
19
- # Wiring a custom provider (e.g. your own SSO, an internal data store) means
20
- # editing selva.config.ts. The defaults below cover the shipped stacks.
19
+ # For a custom provider not shipped in the box, point SELVA_CONFIG_PATH at a
20
+ # .js file exporting a defineConfig() result. The defaults below cover the
21
+ # three bundled stacks.
21
22
  #
22
23
  # SELVA_AUTH_PROVIDER local | supabase | header (default: local)
23
24
  # SELVA_DATA_PROVIDER local | supabase (default: local)
@@ -1,13 +1,16 @@
1
1
  // PM2 process file — runtime template shipped with @selvajs/selva.
2
2
  //
3
- // Drop this into a deployment directory alongside selva.config.js and .env,
4
- // then `pm2 start ecosystem.config.cjs`.
3
+ // Drop this into a deployment directory alongside .env, then
4
+ // `pm2 start ecosystem.config.cjs`.
5
5
  //
6
6
  // Runtime config is loaded from .env via Node's --env-file flag (Node >= 20.6).
7
7
  // PM2's own env_file option is silently ignored by `pm2 start` (only works
8
8
  // under pm2-runtime) — using --env-file via node_args avoids that footgun.
9
9
  //
10
- // SELVA_CONFIG_PATH points the runtime at the operator's compiled config.
10
+ // Providers are picked from SELVA_AUTH_PROVIDER / SELVA_DATA_PROVIDER /
11
+ // SELVA_STORAGE_PROVIDER in .env. For custom providers not shipped in the box,
12
+ // set SELVA_CONFIG_PATH to a .js file exporting a defineConfig() result.
13
+ //
11
14
  // Rhino.Compute server URL + API key are configured in /admin/compute.
12
15
  module.exports = {
13
16
  apps: [
@@ -44,8 +47,7 @@ module.exports = {
44
47
  merge_logs: true,
45
48
 
46
49
  env: {
47
- NODE_ENV: 'production',
48
- SELVA_CONFIG_PATH: './selva.config.js'
50
+ NODE_ENV: 'production'
49
51
  }
50
52
  }
51
53
  ]
@@ -1 +0,0 @@
1
- [data-scroll-area-viewport]{scrollbar-width:none!important;-ms-overflow-style:none!important;-webkit-overflow-scrolling:touch!important}[data-scroll-area-viewport]::-webkit-scrollbar{display:none!important}:where([data-scroll-area-viewport]){display:flex;flex-direction:column;align-items:stretch}:where([data-scroll-area-content]){flex-grow:1}div.svelte-1b4l54a::-webkit-scrollbar{width:4px}div.svelte-1b4l54a::-webkit-scrollbar-track{background:transparent}div.svelte-1b4l54a::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground) / .15);border-radius:2px}[data-viewer-fullscreen] [data-slot=dialog-content],[data-viewer-fullscreen] [data-slot=dialog-overlay]{z-index:10001}.fullscreen-viewer.svelte-qgylmx{position:fixed;inset:0;z-index:10000;border-radius:0!important}.blur-overlay.svelte-qgylmx{pointer-events:none}.blur-overlay-active.svelte-qgylmx{animation:svelte-qgylmx-blur-in .35s cubic-bezier(.32,.72,0,1) forwards}.blur-overlay-inactive.svelte-qgylmx{animation:svelte-qgylmx-blur-out .35s cubic-bezier(.32,.72,0,1) forwards}@keyframes svelte-qgylmx-blur-in{0%{-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}@keyframes svelte-qgylmx-blur-out{0%{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}to{-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}@keyframes svelte-qgylmx-selva-viewer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes svelte-16o83r0-selva-slideInLeft{0%{transform:translate(-110%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes svelte-16o83r0-selva-sweep{0%{width:0%;margin-left:0%}50%{width:60%;margin-left:20%}to{width:0%;margin-left:100%}}.content-wrapper.svelte-rxs5ka{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}.content-wrapper.collapsed.svelte-rxs5ka{grid-template-rows:0fr}.content-inner.svelte-rxs5ka{min-height:0}.schema-grid.svelte-rxs5ka{grid-template-columns:repeat(var(--schema-cols),minmax(0,1fr))}.col-divider.svelte-rxs5ka{border-left:1px solid var(--border);padding-left:12px;margin-left:-12px}@container (max-width: 320px){.col-divider.svelte-rxs5ka{border-left:0;padding-left:0;margin-left:0}}.tab-content-container.svelte-m8oqhb{container-type:inline-size}@container (max-width: 320px){.schema-grid{grid-template-columns:1fr}}@container (min-width: 321px) and (max-width: 560px){.schema-grid{grid-template-columns:repeat(min(2,var(--schema-cols)),minmax(0,1fr))}}@supports not (container-type: inline-size){@media(max-width:639px){.schema-grid{grid-template-columns:1fr}}@media(min-width:640px)and (max-width:1023px){.schema-grid{grid-template-columns:repeat(min(2,var(--schema-cols)),minmax(0,1fr))}}}div.svelte-lgldvj{min-width:0}@media(min-width:1024px){div.svelte-lgldvj{width:var(--collapsed-w)}}.fullscreen-layout.svelte-1x5dn9j{position:fixed;inset:0;z-index:9999;padding:0!important}[data-pane-resizer][data-collapsed=true]{cursor:pointer!important}.panel-content-wrapper.svelte-1x5dn9j{display:flex;flex-direction:column;height:100%;min-height:0}.panel-footer.svelte-1x5dn9j{flex-shrink:0;padding-top:1.5rem;padding-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.drawer-container.svelte-1x5dn9j{position:absolute;bottom:0;left:0;right:0;z-index:100;display:flex;flex-direction:column;border-radius:1rem 1rem 0 0;background:var(--background);border-top:1px solid var(--border);box-shadow:0 -4px 24px #0000001f;transition:height .35s cubic-bezier(.32,.72,0,1);overflow:hidden}.drawer-closed.svelte-1x5dn9j{height:60px}.drawer-open.svelte-1x5dn9j{height:60svh}.drawer-handle-bar.svelte-1x5dn9j{position:relative;height:60px;padding:20px 1rem 0;display:flex;align-items:center;gap:.5rem;cursor:pointer;background:transparent;border:none;width:100%;flex-shrink:0;-webkit-tap-highlight-color:transparent}.drawer-handle-bar.svelte-1x5dn9j:active{background:var(--muted)}.drawer-pill.svelte-1x5dn9j{position:absolute;top:8px;left:50%;transform:translate(-50%);width:2.5rem;height:4px;border-radius:9999px;background:var(--muted-foreground);opacity:.4}.drawer-content.svelte-1x5dn9j{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.drawer-footer.svelte-1x5dn9j{flex-shrink:0;padding:0rem 1rem;border-top:1px solid var(--border)}
@@ -1 +0,0 @@
1
- import{l as o,d as r}from"../chunks/4PBDTLFF.js";export{o as load_css,r as start};
@@ -1,3 +0,0 @@
1
- import"../chunks/DsnmJJEf.js";import{p as Jt,e as Yt,h as At,a as qt,i as Ft,c as o,$ as Gt,s,r as a,f as g,b as y,t as L,g as n,j as Kt,u as $t}from"../chunks/ooPBmYPj.js";import{d as Qt,s as S,a as Xt}from"../chunks/BMGykAfL.js";import{a as t,f as v,c as lt,t as T}from"../chunks/_OLpdTiI.js";import{i as w}from"../chunks/C8ko2SLk.js";import{e as jt,r as zt,s as Mt,a as Wt}from"../chunks/C1aQuqo_.js";import{c as x}from"../chunks/CcYNc8-G.js";import{h as Zt}from"../chunks/BM4_iXSA.js";import{S as te}from"../chunks/BZmrLQwT.js";import{C as Pt,a as It}from"../chunks/wamM80bu.js";import{S as ee}from"../chunks/BCse3N0b.js";import{L as ft}from"../chunks/B8uG8z2c.js";import{R as re,S as ae,a as oe,b as Lt}from"../chunks/BGxzXVpM.js";import{I as St}from"../chunks/jFKgkeON.js";import{B as kt}from"../chunks/azBeeLR0.js";import{X as se}from"../chunks/CEnIp_6Y.js";import{C as de,a as ne}from"../chunks/uINs3xv3.js";import{S as le}from"../chunks/2dX6Wjni.js";import{B as Tt}from"../chunks/B8zY50Bc.js";import{C as ie}from"../chunks/BU9URCkw.js";import{C as ce}from"../chunks/hRoV10UM.js";var ve=v(`<div class="bg-muted/30 flex items-start gap-4 rounded-lg border p-5"><div class="bg-accent text-accent-foreground rounded-md p-2.5"><!></div> <div class="min-w-0 flex-1"><p class="text-sm font-medium">Audit log not available on this deployment</p> <p class="text-muted-foreground mt-1 text-sm">This provider doesn't support audit queries. To enable audit logs, configure a
2
- provider with <code class="bg-muted rounded px-1 py-0.5 font-mono text-xs">auditQuery</code> in your <code class="bg-muted rounded px-1 py-0.5 font-mono text-xs">selva.config.ts</code>.</p></div></div>`),ue=v('<span class="truncate"> </span>'),me=v("<!> <!>",1),fe=v("<!> <!>",1),_e=v('<input type="hidden" name="type"/>'),pe=v("<!> Reset",1),ge=v('<form method="get" class="grid gap-4 md:grid-cols-[1fr_1fr_auto_auto_auto]"><div class="flex flex-col gap-1.5"><!> <!> <!></div> <div class="flex flex-col gap-1.5"><!> <!></div> <div class="flex flex-col gap-1.5"><!> <!></div> <div class="flex flex-col gap-1.5"><!> <!></div> <div class="flex items-end gap-2"><!> <!></div></form>'),he=v('Events <span class="text-muted-foreground ml-2 font-normal"> </span>',1),xe=v('<div class="text-muted-foreground flex flex-col items-center gap-2 py-12 text-sm"><!> <p>No events match these filters.</p></div>'),be=v('<span> </span> <span class="text-muted-foreground ml-1 font-mono text-xs"> </span>',1),ye=v('<span class="text-muted-foreground italic">Deleted user</span> <span class="text-muted-foreground ml-1 font-mono text-xs"> </span>',1),$e=v('<tr class="bg-muted/20 border-b"><td></td><td colspan="4" class="py-2 pr-4"><pre class="text-muted-foreground max-w-full overflow-x-auto text-xs"> </pre></td></tr>'),Pe=v('<tr class="hover:bg-muted/30 border-b"><td class="py-2"><button type="button" class="text-muted-foreground hover:text-foreground"><!></button></td><td class="py-2 pr-4 font-mono text-xs whitespace-nowrap"> </td><td class="py-2 pr-4"><!></td><td class="py-2 pr-4"><!></td><td class="py-2 pr-4"> </td></tr> <!>',1),Ie=v('<div class="overflow-x-auto"><table class="w-full text-sm"><thead class="text-muted-foreground border-b text-left text-xs uppercase"><tr><th class="w-8 py-2"></th><th class="py-2 pr-4">Time</th><th class="py-2 pr-4">Type</th><th class="py-2 pr-4">Actor</th><th class="py-2 pr-4">Target</th></tr></thead><tbody></tbody></table></div>'),Se=v('<div class="mt-4 flex justify-center"><!></div>'),ke=v("<!> <!>",1),Ce=v("<!> <!>",1),Ae=v("<!> <!>",1),je=v('<div class="space-y-6"><!> <!></div>');function Me(Dt,l){Jt(l,!0);const _t={"org.created":"Org · created","org.deleted":"Org · deleted","org_member.added":"Org member · added","org_member.removed":"Org member · removed","org_member.role_changed":"Org member · role changed","org_member.permissions_changed":"Org member · permissions changed","project.created":"Project · created","project.deleted":"Project · deleted","project_member.added":"Project member · added","project_member.removed":"Project member · removed","project_member.role_changed":"Project member · role changed","definition.created":"Definition · created","definition.deleted":"Definition · deleted","definition.published":"Definition · published","definition_version.created":"Version · created","definition_version.deleted":"Version · deleted","share_link.minted":"Share link · minted","share_link.revoked":"Share link · revoked","invite.created":"Invite · created","invite.accepted":"Invite · accepted","invite.revoked":"Invite · revoked"},Et={org:"Org",project:"Project",definition:"Definition",definition_version:"Version",share_link:"Share link",invite:"Invite",user:"User"};function it(e){if(!e)return"";const u=e.match(/^(\d{4}-\d{2}-\d{2})/);return u?u[1]:""}const Q="__all__";let D=Yt(At(l.data.filters.types[0]??Q));const X=At({});function Ot(e){X[e]=!X[e]}const Vt=$t(()=>{if(!l.data.nextCursor)return"";const e=[],u=(k,z)=>e.push(`${encodeURIComponent(k)}=${encodeURIComponent(z)}`);for(const k of l.data.filters.types)u("type",k);return l.data.filters.actorId&&u("actor",l.data.filters.actorId),l.data.filters.sinceIso&&u("since",it(l.data.filters.sinceIso)),l.data.filters.untilIso&&u("until",it(l.data.filters.untilIso)),u("cursor",JSON.stringify(l.data.nextCursor)),`?${e.join("&")}`});function Bt(e){try{return new Date(e).toLocaleString()}catch{return e}}function pt(e){return e.length<=8?e:e.slice(0,8)+"…"}function Rt(e){if(!e.target)return"—";const u=Et[e.target.kind]??e.target.kind;return e.target.name?`${u}: ${e.target.name}`:`${u}: ${pt(e.target.id)} (deleted)`}var gt=je();Zt("5hb2v4",e=>{Ft(()=>{Gt.title="Admin · Audit log"})});var Ct=o(gt);te(Ct,{eyebrow:"Admin",title:"Audit log",description:"Every domain event recorded on this instance — actor, type, target, timestamp."});var Ut=s(Ct,2);{var wt=e=>{var u=lt(),k=g(u);x(k,()=>It,(z,M)=>{M(z,{children:(W,ct)=>{var vt=lt(),E=g(vt);x(E,()=>Pt,(N,Z)=>{Z(N,{class:"pt-6",children:(O,H)=>{var C=ve(),A=o(C),$=o(A);ee($,{class:"h-4 w-4"}),a(A),y(2),a(C),t(O,C)},$$slots:{default:!0}})}),t(W,vt)},$$slots:{default:!0}})}),t(e,u)},Nt=e=>{var u=Ae(),k=g(u);x(k,()=>It,(M,W)=>{W(M,{children:(ct,vt)=>{var E=lt(),N=g(E);x(N,()=>Pt,(Z,O)=>{O(Z,{class:"pt-6",children:(H,C)=>{var A=ge(),$=o(A),V=o($);ft(V,{for:"audit-type",children:(d,h)=>{y();var c=T("Event type");t(d,c)},$$slots:{default:!0}});var J=s(V,2);x(J,()=>re,(d,h)=>{h(d,{type:"single",get value(){return n(D)},onValueChange:c=>Kt(D,c??Q,!0),children:(c,ut)=>{var G=fe(),mt=g(G);x(mt,()=>ae,(st,dt)=>{dt(st,{id:"audit-type",class:"h-9 text-sm",children:(nt,xt)=>{var I=ue(),K=o(I,!0);a(I),L(()=>S(K,n(D)===Q?"All event types":_t[n(D)]??n(D))),t(nt,I)},$$slots:{default:!0}})});var ot=s(mt,2);x(ot,()=>oe,(st,dt)=>{dt(st,{children:(nt,xt)=>{var I=me(),K=g(I);x(K,()=>Lt,(U,r)=>{r(U,{value:Q,label:"All event types"})});var bt=s(K,2);jt(bt,16,()=>l.data.knownTypes,U=>U,(U,r)=>{var m=lt(),p=g(m);x(p,()=>Lt,(P,j)=>{j(P,{get value(){return r},get label(){return _t[r]}})}),t(U,m)}),t(nt,I)},$$slots:{default:!0}})}),t(c,G)},$$slots:{default:!0}})});var tt=s(J,2);{var et=d=>{var h=_e();zt(h),L(()=>Mt(h,n(D))),t(d,h)};w(tt,d=>{n(D)!==Q&&d(et)})}a($);var Y=s($,2),f=o(Y);ft(f,{for:"audit-actor",children:(d,h)=>{y();var c=T("Actor user ID");t(d,c)},$$slots:{default:!0}});var _=s(f,2);St(_,{id:"audit-actor",name:"actor",placeholder:"User ID, or 'system'",get defaultValue(){return l.data.filters.actorId},class:"h-9 text-sm"}),a(Y);var b=s(Y,2),B=o(b);ft(B,{for:"audit-since",children:(d,h)=>{y();var c=T("From");t(d,c)},$$slots:{default:!0}});var q=s(B,2);{let d=$t(()=>it(l.data.filters.sinceIso));St(q,{id:"audit-since",name:"since",type:"date",get defaultValue(){return n(d)},class:"h-9 text-sm"})}a(b);var i=s(b,2),rt=o(i);ft(rt,{for:"audit-until",children:(d,h)=>{y();var c=T("To");t(d,c)},$$slots:{default:!0}});var at=s(rt,2);{let d=$t(()=>it(l.data.filters.untilIso));St(at,{id:"audit-until",name:"until",type:"date",get defaultValue(){return n(d)},class:"h-9 text-sm"})}a(i);var F=s(i,2),R=o(F);kt(R,{type:"submit",class:"h-9",children:(d,h)=>{y();var c=T("Apply");t(d,c)},$$slots:{default:!0}});var ht=s(R,2);kt(ht,{type:"button",variant:"ghost",href:"/admin/audit",class:"h-9",children:(d,h)=>{var c=pe(),ut=g(c);se(ut,{class:"h-4 w-4"}),y(),t(d,c)},$$slots:{default:!0}}),a(F),a(A),t(H,A)},$$slots:{default:!0}})}),t(ct,E)},$$slots:{default:!0}})});var z=s(k,2);x(z,()=>It,(M,W)=>{W(M,{children:(ct,vt)=>{var E=Ce(),N=g(E);x(N,()=>de,(O,H)=>{H(O,{children:(C,A)=>{var $=lt(),V=g($);x(V,()=>ne,(J,tt)=>{tt(J,{class:"text-sm font-medium",children:(et,Y)=>{y();var f=he(),_=s(g(f)),b=o(_);a(_),L(()=>S(b,`${l.data.rows.length??""}
3
- ${l.data.rows.length===1?"event":"events"}`)),t(et,f)},$$slots:{default:!0}})}),t(C,$)},$$slots:{default:!0}})});var Z=s(N,2);x(Z,()=>Pt,(O,H)=>{H(O,{children:(C,A)=>{var $=ke(),V=g($);{var J=f=>{var _=xe(),b=o(_);le(b,{class:"h-8 w-8 opacity-40"}),y(2),a(_),t(f,_)},tt=f=>{var _=Ie(),b=o(_),B=s(o(b));jt(B,21,()=>l.data.rows,q=>q.id,(q,i)=>{var rt=Pe(),at=g(rt),F=o(at),R=o(F),ht=o(R);{var d=r=>{ie(r,{class:"h-4 w-4"})},h=r=>{ce(r,{class:"h-4 w-4"})};w(ht,r=>{X[n(i).id]?r(d):r(h,-1)})}a(R),a(F);var c=s(F),ut=o(c,!0);a(c);var G=s(c),mt=o(G);Tt(mt,{variant:"outline",class:"font-mono text-[10px]",children:(r,m)=>{y();var p=T();L(()=>S(p,_t[n(i).type]??n(i).type)),t(r,p)},$$slots:{default:!0}}),a(G);var ot=s(G),st=o(ot);{var dt=r=>{Tt(r,{variant:"secondary",children:(m,p)=>{y();var P=T("System");t(m,P)},$$slots:{default:!0}})},nt=r=>{var m=be(),p=g(m),P=o(p,!0);a(p);var j=s(p,2),yt=o(j,!0);a(j),L(Ht=>{S(P,n(i).actor.name),S(yt,Ht)},[()=>pt(n(i).actor.id)]),t(r,m)},xt=r=>{var m=ye(),p=s(g(m),2),P=o(p,!0);a(p),L(j=>S(P,j),[()=>pt(n(i).actor.id)]),t(r,m)};w(st,r=>{n(i).actor.isSystem?r(dt):n(i).actor.name?r(nt,1):r(xt,-1)})}a(ot);var I=s(ot),K=o(I,!0);a(I),a(at);var bt=s(at,2);{var U=r=>{var m=$e(),p=s(o(m)),P=o(p),j=o(P,!0);a(P),a(p),a(m),L(yt=>S(j,yt),[()=>JSON.stringify(n(i).data,null,2)]),t(r,m)};w(bt,r=>{X[n(i).id]&&r(U)})}L((r,m)=>{Wt(R,"aria-label",X[n(i).id]?"Collapse details":"Expand details"),S(ut,r),S(K,m)},[()=>Bt(n(i).occurredAt),()=>Rt(n(i))]),Xt("click",R,()=>Ot(n(i).id)),t(q,rt)}),a(B),a(b),a(_),t(f,_)};w(V,f=>{l.data.rows.length===0?f(J):f(tt,-1)})}var et=s(V,2);{var Y=f=>{var _=Se(),b=o(_);kt(b,{variant:"outline",get href(){return n(Vt)},class:"h-9",children:(B,q)=>{y();var i=T("Load older");t(B,i)},$$slots:{default:!0}}),a(_),t(f,_)};w(et,f=>{l.data.nextCursor&&f(Y)})}t(C,$)},$$slots:{default:!0}})}),t(ct,E)},$$slots:{default:!0}})}),t(e,u)};w(Ut,e=>{l.data.available?e(Nt,-1):e(wt)})}a(gt),t(Dt,gt),qt()}Qt(["click"]);export{Me as component};
@@ -1,13 +0,0 @@
1
- import"../chunks/DsnmJJEf.js";import{p as ne,k as me,g as a,f as U,b as H,s as v,t as K,c as W,r as T,j as e,a as ie,e as F,u as se,i as _e,$ as ge,a8 as he}from"../chunks/ooPBmYPj.js";import{s as D}from"../chunks/BMGykAfL.js";import{t as N,a as r,c as $e,f as $}from"../chunks/_OLpdTiI.js";import{i as Q}from"../chunks/C8ko2SLk.js";import{c as le,e as xe}from"../chunks/C1aQuqo_.js";import{s as we,r as be,p as te,c as d,b as ye}from"../chunks/CcYNc8-G.js";import{h as Re}from"../chunks/BM4_iXSA.js";import{C as de,a as ce}from"../chunks/uINs3xv3.js";import{C as ue}from"../chunks/D7l1JayF.js";import{C as fe,a as pe}from"../chunks/wamM80bu.js";import{B as Pe}from"../chunks/azBeeLR0.js";import{I as Ce}from"../chunks/Bnpwcepm.js";import{A as Ae,a as ke,b as Oe,c as Le,d as Ee,e as Ue,f as Te,R as Me}from"../chunks/Ib-7xmHT.js";import{S as Se}from"../chunks/BZmrLQwT.js";function oe(q,L){let B=be(L,["$$slots","$$events","$$legacy"]);const c=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"}],["path",{d:"M8 16H3v5"}]];Ce(q,we({name:"refresh-cw"},()=>B,{get iconNode(){return c}}))}var We=$("<!> <!>",1),He=$("<!> ",1),Ie=$('<div class="border-border bg-muted/50 text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm"><!> <span>PM2 is restarting the app — waiting for the new process to come online…</span></div>'),je=$("<p> </p>"),Ne=$('<div class="space-y-2"><h4 class="text-sm font-medium">Update Logs</h4> <pre class="bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs"> </pre> <!></div>'),Be=$("<!> <!> <!>",1),Ge=$("<!> <!>",1),De=$("<!> <!>",1),Fe=$("<!> <!>",1),qe=$("<!> <!>",1),ze=$("<!> <!>",1);function Je(q,L){ne(L,!0);let B=te(L,"isRunning",3,!1),c=te(L,"isRestarting",3,!1),o=te(L,"logs",3,""),m=te(L,"exitCode",3,null),P=F(void 0),G=F(!1);me(()=>{o()&&a(P)&&(a(P).scrollTop=a(P).scrollHeight)});function z(){return c()?"Restarting & verifying…":B()?"Running…":"Run Update"}function X(){return m()===null?null:m()===0?{text:"✓ Update completed successfully",tone:"success"}:m()===-2?{text:"⚠ App did not respond within 90s after restart — check PM2 logs",tone:"destructive"}:{text:`Update failed (exit code ${m()})`,tone:"destructive"}}function J(){e(G,!0)}function Y(){e(G,!1),L.onRun?.()}var V=ze(),Z=U(V);d(Z,()=>pe,(u,E)=>{E(u,{children:(i,M)=>{var x=Ge(),C=U(x);d(C,()=>de,(A,k)=>{k(A,{children:(S,j)=>{var l=We(),f=U(l);d(f,()=>ce,(_,g)=>{g(_,{children:(b,s)=>{H();var t=N("Application Update");r(b,t)},$$slots:{default:!0}})});var n=v(f,2);d(n,()=>ue,(_,g)=>{g(_,{children:(b,s)=>{H();var t=N("Run the update script to pull latest changes and restart");r(b,t)},$$slots:{default:!0}})}),r(S,l)},$$slots:{default:!0}})});var I=v(C,2);d(I,()=>fe,(A,k)=>{k(A,{class:"space-y-4",children:(S,j)=>{var l=Be(),f=U(l);Pe(f,{onclick:J,get disabled(){return B()},variant:"destructive",children:(s,t)=>{var p=He(),y=U(p);{var R=w=>{oe(w,{class:"mr-2 h-4 w-4 animate-spin"})};Q(y,w=>{c()&&w(R)})}var O=v(y);K(w=>D(O,` ${w??""}`),[()=>z()]),r(s,p)},$$slots:{default:!0}});var n=v(f,2);{var _=s=>{var t=Ie(),p=W(t);oe(p,{class:"h-4 w-4 animate-spin"}),H(2),T(t),r(s,t)};Q(n,s=>{c()&&m()===null&&s(_)})}var g=v(n,2);{var b=s=>{var t=Ne(),p=v(W(t),2),y=W(p,!0);T(p),ye(p,h=>e(P,h),()=>a(P));var R=v(p,2);{var O=h=>{const ae=se(X);var ee=je(),ve=W(ee,!0);T(ee),K(()=>{le(ee,1,`text-sm font-medium ${a(ae).tone==="success"?"text-success":a(ae).tone==="destructive"?"text-destructive":"text-muted-foreground"}`),D(ve,a(ae).text)}),r(h,ee)},w=se(()=>X());Q(R,h=>{a(w)&&h(O)})}T(t),K(()=>D(y,o())),r(s,t)};Q(g,s=>{o()&&s(b)})}r(S,l)},$$slots:{default:!0}})}),r(i,x)},$$slots:{default:!0}})});var re=v(Z,2);d(re,()=>Me,(u,E)=>{E(u,{get open(){return a(G)},onOpenChange:i=>e(G,i,!0),children:(i,M)=>{var x=$e(),C=U(x);d(C,()=>Ae,(I,A)=>{A(I,{children:(k,S)=>{var j=qe(),l=U(j);d(l,()=>ke,(n,_)=>{_(n,{children:(g,b)=>{var s=De(),t=U(s);d(t,()=>Oe,(y,R)=>{R(y,{children:(O,w)=>{H();var h=N("Run Update?");r(O,h)},$$slots:{default:!0}})});var p=v(t,2);d(p,()=>Le,(y,R)=>{R(y,{children:(O,w)=>{H();var h=N(`This will pull the latest changes and restart the application. The service will be
2
- temporarily unavailable.`);r(O,h)},$$slots:{default:!0}})}),r(g,s)},$$slots:{default:!0}})});var f=v(l,2);d(f,()=>Ee,(n,_)=>{_(n,{children:(g,b)=>{var s=Fe(),t=U(s);d(t,()=>Ue,(y,R)=>{R(y,{children:(O,w)=>{H();var h=N("Cancel");r(O,h)},$$slots:{default:!0}})});var p=v(t,2);d(p,()=>Te,(y,R)=>{R(y,{onclick:Y,get disabled(){return B()},children:(O,w)=>{H();var h=N();K(()=>D(h,c()?"Restarting…":"Continue")),r(O,h)},$$slots:{default:!0}})}),r(g,s)},$$slots:{default:!0}})}),r(k,j)},$$slots:{default:!0}})}),r(i,x)},$$slots:{default:!0}})}),r(q,V),ie()}var Ve=$("<!> <!>",1),Ke=$('<div class="flex items-start justify-between gap-4 px-4 py-3"><div class="min-w-0 flex-1"><code class="text-foreground font-mono text-xs"> </code> <p class="text-muted-foreground mt-1 text-xs"> </p></div> <span> </span></div>'),Qe=$('<div class="divide-y rounded-lg border"></div>'),Xe=$("<!> <!>",1),Ye=$('<div class="space-y-6"><!> <!> <!></div>');function vt(q,L){ne(L,!0);const B={ALLOW_CROSS_ORG_PUBLIC:"When on, projects can be made visible to every authenticated user on the instance, not just their own org.",ALLOW_ORG_COMPUTE_OVERRIDE:"When on, individual orgs can configure their own Rhino.Compute server instead of the instance pool.",ALLOW_ORG_CREATION:'When on, signed-in users see a "Create organization" action. Off by default in self-hosted instances.',ENABLE_SHARING:"When on, editors can mint per-definition share links that grant anonymous external access. When off, the mint/list/revoke routes return 404 and any previously-minted tokens stop resolving."};let c=F(!1),o=F(""),m=F(null),P=F(!1);async function G(){try{const u=await fetch("/api/health",{cache:"no-store"});return u.ok?await u.json():null}catch{return null}}async function z(u){e(o,a(o)+`
3
- Waiting for app to come back online…
4
- `),await new Promise(M=>setTimeout(M,2e3));const E=45;let i=0;for(let M=0;M<E;M++){const x=await G();if(x){if(u&&x.commit){if(x.commit!==u){e(o,a(o)+`✓ App is back online on new commit ${x.commit.slice(0,7)}
5
- `),e(m,0),e(c,!1),e(P,!1);return}i=0}else if(i+=1,i>=2){e(o,a(o)+`✓ App is back online!
6
- `),e(m,0),e(c,!1),e(P,!1);return}}else i=0;await new Promise(C=>setTimeout(C,2e3))}e(o,a(o)+`⚠ App did not come back within 90s — check PM2 logs.
7
- `),e(m,-2),e(c,!1),e(P,!1)}async function X(){e(c,!0),e(P,!1),e(o,""),e(m,null);const E=(await G())?.commit??null;try{const i=await fetch("/admin/api/system/update",{method:"POST"});if(!i.ok){e(o,"Failed to start update process"),e(m,i.status,!0),e(c,!1);return}const M=i.body?.getReader(),x=new TextDecoder;if(!M){e(o,"Failed to read response"),e(m,-1),e(c,!1);return}let C="",I=!1,A=!1,k=null;for(;;){const{done:S,value:j}=await M.read();if(S)break;C+=x.decode(j,{stream:!0});const l=C.split(`
8
-
9
- `);C=l.pop();for(const f of l)if(f.startsWith("data: "))try{const n=JSON.parse(f.slice(6));n.type==="log"?e(o,a(o)+(n.data+`
10
- `)):n.type==="restarting"?(e(o,a(o)+(n.data+`
11
- `)),e(P,!0),I=!0):n.type==="exit"&&(A=!0,k=n.code)}catch{}}I?await z(E):A&&k===0?(e(m,0),e(c,!1)):A?(e(m,k??-1,!0),e(c,!1)):await z(E)}catch(i){a(P)?await z(E):(e(o,a(o)+(`
12
- Error: `+(i instanceof Error?i.message:"Unknown error"))),e(m,-1),e(c,!1))}}var J=Ye();Re("1uq49ma",u=>{_e(()=>{ge.title="Admin · System"})});var Y=W(J);Se(Y,{eyebrow:"Admin",title:"System settings",description:"Instance-wide configuration, platform flags, and the update runner. To change platform flags, edit your selva.config.ts configuration and restart the app."});var V=v(Y,2);d(V,()=>pe,(u,E)=>{E(u,{children:(i,M)=>{var x=Xe(),C=U(x);d(C,()=>de,(A,k)=>{k(A,{children:(S,j)=>{var l=Ve(),f=U(l);d(f,()=>ce,(_,g)=>{g(_,{class:"text-sm font-medium",children:(b,s)=>{H();var t=N("Platform flags");r(b,t)},$$slots:{default:!0}})});var n=v(f,2);d(n,()=>ue,(_,g)=>{g(_,{children:(b,s)=>{H();var t=N(`Resolved state of the env-driven flags that control instance behavior. To change a flag,
13
- edit your environment configuration and restart the app.`);r(b,t)},$$slots:{default:!0}})}),r(S,l)},$$slots:{default:!0}})});var I=v(C,2);d(I,()=>fe,(A,k)=>{k(A,{children:(S,j)=>{var l=Qe();xe(l,21,()=>Object.entries(L.data.flags),([f,n])=>f,(f,n)=>{var _=se(()=>he(a(n),2));let g=()=>a(_)[0],b=()=>a(_)[1];var s=Ke(),t=W(s),p=W(t),y=W(p,!0);T(p);var R=v(p,2),O=W(R,!0);T(R),T(t);var w=v(t,2),h=W(w,!0);T(w),T(s),K(()=>{D(y,g()),D(O,B[g()]),le(w,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${b()?"border-success/40 bg-success/10 text-success":"border-border text-muted-foreground"}`),D(h,b()?"On":"Off")}),r(f,s)}),T(l),r(S,l)},$$slots:{default:!0}})}),r(i,x)},$$slots:{default:!0}})});var Z=v(V,2);{var re=u=>{Je(u,{get isRunning(){return a(c)},get isRestarting(){return a(P)},get logs(){return a(o)},get exitCode(){return a(m)},onRun:X})};Q(Z,u=>{L.data.canManageUpdates&&u(re)})}T(J),r(q,J),ie()}export{vt as component};
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-5X2iRv32.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/users/_page.svelte.js"],"sourcesContent":["import { a6 as attr_class, a4 as attr, ad as escape_html, a8 as ensure_array_like, a2 as derived, a5 as head, ae as stringify } from \"../../../../chunks/renderer.js\";\nimport { i as invalidateAll } from \"../../../../chunks/client.js\";\nimport { f as ALL_PLATFORM_PERMISSIONS, A as ALL_ORG_PERMISSIONS, j as OWNER_ADMIN_ONLY_PERMISSIONS } from \"../../../../chunks/context.js\";\nimport { U as UserAvatar } from \"../../../../chunks/UserAvatar.js\";\nimport { C as Chevron_down } from \"../../../../chunks/chevron-down.js\";\nimport { C as Chevron_right } from \"../../../../chunks/chevron-right.js\";\nimport { B as Button } from \"../../../../chunks/button.js\";\nimport { T as Trash_2 } from \"../../../../chunks/trash-2.js\";\nimport { S as SectionHeader } from \"../../../../chunks/SectionHeader.js\";\nimport { C as Card, a as Card_content } from \"../../../../chunks/card-content.js\";\nimport { E as EmptyState } from \"../../../../chunks/EmptyState.js\";\nimport { S as Shield_check } from \"../../../../chunks/shield-check.js\";\nimport { C as Card_header, a as Card_title } from \"../../../../chunks/card-title.js\";\nimport { C as Card_description } from \"../../../../chunks/card-description.js\";\nimport { M as Mail } from \"../../../../chunks/mail.js\";\nimport { P as Plus } from \"../../../../chunks/plus.js\";\nimport { I as Input } from \"../../../../chunks/input.js\";\nimport { a as toast } from \"../../../../chunks/toast-state.svelte.js\";\nimport { C as Copy } from \"../../../../chunks/copy.js\";\nimport { X } from \"../../../../chunks/x.js\";\nfunction UserListItem($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n user,\n expanded,\n isPlatformAdmin,\n soleInstanceAdmin,\n updating,\n deleting,\n onDelete\n } = $$props;\n const PERM_LABEL = {\n instance_admin: \"Instance admin\",\n manage_instance_users: \"Manage instance users\",\n manage_compute: \"Manage compute\",\n manage_updates: \"Manage updates\",\n manage_org_members: \"Manage members\",\n manage_org_compute: \"Manage org compute\",\n manage_definitions: \"Manage definitions\",\n manage_projects: \"Manage projects\"\n };\n const PERM_DESC = {\n instance_admin: \"Full access to every action on the instance.\",\n manage_instance_users: \"Create, disable, and delete any user on the instance.\",\n manage_compute: \"Configure the instance Rhino.Compute pool.\",\n manage_updates: \"Run the application update script.\",\n manage_org_members: \"Invite, remove, and change roles of org members.\",\n manage_org_compute: \"Configure this org's BYO compute server.\",\n manage_definitions: \"Upload, edit, and delete any definition in the org.\",\n manage_projects: \"Create, edit, and delete any project in the org.\"\n };\n const ROLE_TONE = {\n owner: \"border-amber-500/40 text-amber-600 dark:text-amber-400 bg-amber-500/5\",\n admin: \"border-blue-500/40 text-blue-600 dark:text-blue-400 bg-blue-500/5\",\n member: \"border-border text-muted-foreground\"\n };\n const displayLine = derived(() => user.displayName ? `${user.displayName} · ${user.email ?? user.id}` : user.email ?? user.id);\n const isOwnerOrAdmin = derived(() => user.orgRole === \"owner\" || user.orgRole === \"admin\");\n const summaryPerms = derived(() => user.permissions.filter((p) => {\n if (ALL_PLATFORM_PERMISSIONS.includes(p)) return true;\n if (isOwnerOrAdmin()) return false;\n return true;\n }));\n function isPlatformPerm(p) {\n return ALL_PLATFORM_PERMISSIONS.includes(p);\n }\n function isOwnerAdminOnly(p) {\n return OWNER_ADMIN_ONLY_PERMISSIONS.includes(p);\n }\n function checkboxState(perm) {\n const checked = user.permissions.includes(perm);\n const platformLocked = isPlatformPerm(perm) && !isPlatformAdmin;\n const soleAdminLock = perm === \"instance_admin\" && soleInstanceAdmin;\n const memberExcluded = !isPlatformPerm(perm) && isOwnerAdminOnly(perm) && user.orgRole === \"member\";\n const locked = platformLocked || soleAdminLock || memberExcluded;\n return {\n checked,\n locked,\n soleAdminLock,\n platformLocked,\n memberExcluded\n };\n }\n $$renderer2.push(`<div${attr_class(`px-4 py-3 ${expanded ? \"bg-accent/20\" : \"\"}`)}><div class=\"flex items-center gap-3\"><button type=\"button\" class=\"text-muted-foreground hover:text-foreground shrink-0 rounded-sm p-0.5\"${attr(\"aria-label\", expanded ? \"Collapse permissions\" : \"Expand permissions\")}>`);\n if (expanded) {\n $$renderer2.push(\"<!--[0-->\");\n Chevron_down($$renderer2, { class: \"h-4 w-4\" });\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n Chevron_right($$renderer2, { class: \"h-4 w-4\" });\n }\n $$renderer2.push(`<!--]--></button> `);\n UserAvatar($$renderer2, { name: user.displayName ?? user.email ?? user.id });\n $$renderer2.push(`<!----> <div class=\"min-w-0 flex-1\"><div class=\"flex items-center gap-2\"><p class=\"truncate text-sm font-medium\">${escape_html(displayLine())}</p> `);\n if (user.orgRole) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span${attr_class(`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${ROLE_TONE[user.orgRole]}`)}>${escape_html(user.orgRole)}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (user.disabled) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"border-border bg-muted text-muted-foreground rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase\">disabled</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> <p class=\"text-muted-foreground truncate font-mono text-xs\">${escape_html(user.id)}</p> `);\n if (!expanded && summaryPerms().length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-1.5 flex flex-wrap gap-1\"><!--[-->`);\n const each_array = ensure_array_like(summaryPerms());\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let p = each_array[$$index];\n $$renderer2.push(`<span${attr_class(`rounded-full px-2 py-0.5 font-mono text-[10px] ${isPlatformPerm(p) ? \"bg-amber-500/10 text-amber-700 dark:text-amber-400\" : \"bg-muted text-muted-foreground\"}`)}>${escape_html(PERM_LABEL[p])}</span>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div> `);\n Button($$renderer2, {\n size: \"sm\",\n variant: \"ghost\",\n disabled: deleting || soleInstanceAdmin,\n onclick: onDelete,\n title: soleInstanceAdmin ? \"Cannot delete the only instance admin. Promote another user first.\" : \"Delete user\",\n class: \"text-destructive hover:text-destructive h-8 w-8 shrink-0 p-0\",\n children: ($$renderer3) => {\n Trash_2($$renderer3, { class: \"h-4 w-4\" });\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div> `);\n if (expanded) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"mt-4 ml-10 space-y-4\"><section><h4 class=\"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase\">Platform</h4> <div class=\"grid gap-2 sm:grid-cols-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(ALL_PLATFORM_PERMISSIONS);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let p = each_array_1[$$index_1];\n const state = checkboxState(p);\n $$renderer2.push(`<label${attr_class(`flex items-start gap-2 rounded-md border p-2.5 ${state.locked ? \"border-border cursor-not-allowed opacity-60\" : \"border-border hover:bg-accent/40 cursor-pointer\"}`)}${attr(\"title\", state.soleAdminLock ? \"Cannot remove the only instance admin.\" : void 0)}><input type=\"checkbox\" class=\"mt-0.5 shrink-0\"${attr(\"checked\", state.checked, true)}${attr(\"disabled\", updating || state.locked, true)}/> <div class=\"min-w-0\"><p class=\"text-sm leading-tight font-medium\">${escape_html(PERM_LABEL[p])}</p> <p class=\"text-muted-foreground mt-0.5 text-xs\">${escape_html(PERM_DESC[p])}</p></div></label>`);\n }\n $$renderer2.push(`<!--]--></div></section> <section><h4 class=\"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase\">Organization</h4> `);\n if (isOwnerOrAdmin()) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<p class=\"text-muted-foreground text-sm\"><strong class=\"text-foreground capitalize\">${escape_html(user.orgRole)}s</strong> automatically\n\t\t\t\t\t\treceive all organization permissions. To grant a custom subset, change the role to <span class=\"font-mono\">member</span>.</p>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div class=\"grid gap-2 sm:grid-cols-2\"><!--[-->`);\n const each_array_2 = ensure_array_like(ALL_ORG_PERMISSIONS);\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let p = each_array_2[$$index_2];\n const state = checkboxState(p);\n $$renderer2.push(`<label${attr_class(`flex items-start gap-2 rounded-md border p-2.5 ${state.locked ? \"border-border cursor-not-allowed opacity-60\" : \"border-border hover:bg-accent/40 cursor-pointer\"}`)}${attr(\"title\", state.memberExcluded ? \"Only owners and admins can hold this permission.\" : void 0)}><input type=\"checkbox\" class=\"mt-0.5 shrink-0\"${attr(\"checked\", state.checked, true)}${attr(\"disabled\", updating || state.locked, true)}/> <div class=\"min-w-0\"><p class=\"text-sm leading-tight font-medium\">${escape_html(PERM_LABEL[p])}</p> <p class=\"text-muted-foreground mt-0.5 text-xs\">${escape_html(PERM_DESC[p])}</p></div></label>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]--></section></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const ALL_FLAT_PERMISSIONS = [...ALL_PLATFORM_PERMISSIONS, ...ALL_ORG_PERMISSIONS];\n let { data } = $$props;\n const assignablePermissions = derived(() => data.isPlatformAdmin ? ALL_FLAT_PERMISSIONS : [...ALL_ORG_PERMISSIONS]);\n const PERMISSION_LABELS = {\n instance_admin: \"Instance Admin (all)\",\n manage_instance_users: \"Manage Instance Users\",\n manage_compute: \"Manage Compute (instance)\",\n manage_updates: \"Manage Updates\",\n manage_org_members: \"Manage Org Members\",\n manage_org_compute: \"Manage Org Compute\",\n manage_definitions: \"Manage Definitions\",\n manage_projects: \"Manage Projects\"\n };\n const ORG_ROLES = [\"owner\", \"admin\", \"member\"];\n let showAddForm = false;\n let newEmail = \"\";\n let newPassword = \"\";\n let newPermissions = [];\n let adding = false;\n let showInviteForm = false;\n let inviteEmail = \"\";\n let inviteRole = \"member\";\n let invitePermissions = [];\n let creatingInvite = false;\n let lastInviteLink = null;\n let revokingId = null;\n const invitePermissionOptions = derived(() => inviteRole === \"member\" ? ALL_ORG_PERMISSIONS.filter((p) => !OWNER_ADMIN_ONLY_PERMISSIONS.includes(p)) : [...ALL_ORG_PERMISSIONS]);\n let deletingId = null;\n let updatingId = null;\n let expandedUserId = null;\n const enabledInstanceAdminCount = derived(() => (data.users ?? []).filter((u) => !u.disabled && u.platformPermissions.includes(\"instance_admin\")).length);\n const isSoleInstanceAdmin = (user) => enabledInstanceAdminCount() === 1 && !user.disabled && user.platformPermissions.includes(\"instance_admin\");\n async function addUser() {\n adding = true;\n try {\n const res = await fetch(\"/admin/api/users\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n email: newEmail,\n ...data.provider.userCreation === \"email-password\" && { password: newPassword },\n permissions: newPermissions\n })\n });\n if (res.ok) {\n toast.success(`User \"${newEmail}\" created`);\n newEmail = \"\";\n newPassword = \"\";\n newPermissions = [];\n showAddForm = false;\n await invalidateAll();\n } else {\n const err = await res.json().catch(() => ({ error: \"Unknown error\" }));\n toast.error(err.message || err.error || \"Failed to create user\");\n }\n } catch {\n toast.error(\"Failed to create user\");\n } finally {\n adding = false;\n }\n }\n async function createInvite() {\n creatingInvite = true;\n try {\n const res = await fetch(\"/api/invites\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n email: inviteEmail,\n orgRole: inviteRole,\n permissions: invitePermissions\n })\n });\n if (res.ok) {\n const { acceptUrl } = await res.json();\n lastInviteLink = acceptUrl;\n toast.success(`Invite created for ${inviteEmail}`);\n inviteEmail = \"\";\n inviteRole = \"member\";\n invitePermissions = [];\n showInviteForm = false;\n await invalidateAll();\n } else {\n const err = await res.json().catch(() => ({ error: \"Unknown error\" }));\n toast.error(err.message || err.error || \"Failed to create invite\");\n }\n } catch {\n toast.error(\"Failed to create invite\");\n } finally {\n creatingInvite = false;\n }\n }\n async function revokeInvite(id, email) {\n if (!confirm(`Revoke invite for \"${email}\"?`)) return;\n revokingId = id;\n try {\n const res = await fetch(`/api/invites/${id}`, { method: \"DELETE\" });\n if (res.ok) {\n toast.success(\"Invite revoked\");\n await invalidateAll();\n } else {\n toast.error(\"Failed to revoke invite\");\n }\n } catch {\n toast.error(\"Failed to revoke invite\");\n } finally {\n revokingId = null;\n }\n }\n async function deleteUser(id, email) {\n if (!confirm(`Delete user \"${email}\"? This cannot be undone.`)) return;\n deletingId = id;\n try {\n const res = await fetch(`/admin/api/users/${id}`, { method: \"DELETE\" });\n if (res.ok) {\n toast.success(`User \"${email}\" deleted`);\n await invalidateAll();\n } else {\n const err = await res.json().catch(() => ({}));\n toast.error(err.message || err.error || \"Failed to delete user\");\n }\n } catch {\n toast.error(\"Failed to delete user\");\n } finally {\n deletingId = null;\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1p497kv\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Admin · Users</title>`);\n });\n });\n $$renderer3.push(`<div class=\"space-y-6\">`);\n {\n let actions = function($$renderer4) {\n if (data.users !== null && data.provider.userCreation !== \"none\") {\n $$renderer4.push(\"<!--[0-->\");\n if (data.provider.userCreation === \"email-password\") {\n $$renderer4.push(\"<!--[0-->\");\n Button($$renderer4, {\n onclick: () => {\n showInviteForm = !showInviteForm;\n if (showInviteForm) showAddForm = false;\n },\n variant: showInviteForm ? \"outline\" : \"default\",\n children: ($$renderer5) => {\n Mail($$renderer5, { class: \"mr-2 h-4 w-4\" });\n $$renderer5.push(`<!----> Invite user`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n Button($$renderer4, {\n onclick: () => {\n showAddForm = !showAddForm;\n if (showAddForm) showInviteForm = false;\n },\n variant: showAddForm ? \"outline\" : \"secondary\",\n children: ($$renderer5) => {\n Plus($$renderer5, { class: \"mr-2 h-4 w-4\" });\n $$renderer5.push(`<!----> ${escape_html(data.provider.userCreation === \"email-only\" ? \"Allowlist user\" : \"Add user\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!---->`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n };\n SectionHeader($$renderer3, {\n eyebrow: \"Admin\",\n title: \"Users\",\n description: data.users === null ? \"The current auth provider does not expose a user store. Configure DATA_PATH (local provider) or check your provider wiring.\" : `${data.users.length} user${data.users.length === 1 ? \"\" : \"s\"} on this instance.`,\n actions\n });\n }\n $$renderer3.push(`<!----> `);\n if (Card) {\n $$renderer3.push(\"<!--[-->\");\n Card($$renderer3, {\n children: ($$renderer4) => {\n if (Card_content) {\n $$renderer4.push(\"<!--[-->\");\n Card_content($$renderer4, {\n class: \"space-y-4 pt-6\",\n children: ($$renderer5) => {\n if (showInviteForm) {\n $$renderer5.push(\"<!--[0-->\");\n $$renderer5.push(`<div class=\"bg-muted/40 space-y-3 rounded-lg border p-4\"><p class=\"text-sm font-medium\">Invite user</p> <p class=\"text-muted-foreground text-xs\">The invitee sets their own password when they open the link. No password leaves your\n\t\t\t\t\t\tmachine.</p> <div class=\"grid gap-3 sm:grid-cols-2\">`);\n Input($$renderer5, {\n type: \"email\",\n placeholder: \"Email\",\n get value() {\n return inviteEmail;\n },\n set value($$value) {\n inviteEmail = $$value;\n $$settled = false;\n }\n });\n $$renderer5.push(`<!----> `);\n $$renderer5.select(\n {\n value: inviteRole,\n class: \"border-input bg-background h-9 rounded-md border px-3 text-sm\"\n },\n ($$renderer6) => {\n $$renderer6.push(`<!--[-->`);\n const each_array = ensure_array_like(ORG_ROLES);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let role = each_array[$$index];\n $$renderer6.option({ value: role }, ($$renderer7) => {\n $$renderer7.push(`${escape_html(role)}`);\n });\n }\n $$renderer6.push(`<!--]-->`);\n }\n );\n $$renderer5.push(`</div> <div><p class=\"mb-2 text-xs font-medium\">Organization permissions</p> `);\n if (inviteRole !== \"member\") {\n $$renderer5.push(\"<!--[0-->\");\n $$renderer5.push(`<p class=\"text-muted-foreground mb-2 text-xs\">${escape_html(inviteRole === \"owner\" ? \"Owners\" : \"Admins\")} automatically receive all organization\n\t\t\t\t\t\t\t\tpermissions. Pick <span class=\"font-mono\">member</span> to grant a custom subset.</p>`);\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> <div class=\"flex flex-wrap gap-3\"><!--[-->`);\n const each_array_1 = ensure_array_like(invitePermissionOptions());\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let p = each_array_1[$$index_1];\n const roleLocked = inviteRole !== \"member\";\n $$renderer5.push(`<label${attr_class(`flex items-center gap-1.5 text-xs ${stringify(roleLocked ? \"cursor-not-allowed opacity-60\" : \"cursor-pointer\")}`)}><input type=\"checkbox\"${attr(\"checked\", roleLocked || invitePermissions.includes(p), true)}${attr(\"disabled\", roleLocked, true)}/> ${escape_html(PERMISSION_LABELS[p])}</label>`);\n }\n $$renderer5.push(`<!--]--></div></div> <div class=\"flex gap-2\">`);\n Button($$renderer5, {\n onclick: createInvite,\n disabled: creatingInvite || !inviteEmail,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->${escape_html(creatingInvite ? \"Creating…\" : \"Create invite\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> `);\n Button($$renderer5, {\n variant: \"outline\",\n onclick: () => showInviteForm = false,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----></div></div>`);\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> `);\n if (lastInviteLink) {\n $$renderer5.push(\"<!--[0-->\");\n $$renderer5.push(`<div class=\"flex items-start gap-3 rounded-lg border border-green-500/30 bg-green-500/5 p-4\"><div class=\"min-w-0 flex-1\"><p class=\"text-sm font-medium\">Invite ready — copy the link and share it</p> <p class=\"text-muted-foreground mt-1 truncate font-mono text-xs\">${escape_html(lastInviteLink)}</p></div> `);\n Button($$renderer5, {\n size: \"sm\",\n variant: \"outline\",\n onclick: async () => {\n try {\n await navigator.clipboard.writeText(lastInviteLink);\n toast.success(\"Invite link copied\");\n } catch {\n toast.error(\"Could not copy to clipboard\");\n }\n },\n children: ($$renderer6) => {\n Copy($$renderer6, { class: \"mr-1.5 h-3.5 w-3.5\" });\n $$renderer6.push(`<!----> Copy`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> `);\n Button($$renderer5, {\n size: \"sm\",\n variant: \"ghost\",\n onclick: () => lastInviteLink = null,\n children: ($$renderer6) => {\n X($$renderer6, { class: \"h-4 w-4\" });\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----></div>`);\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> `);\n if (showAddForm) {\n $$renderer5.push(\"<!--[0-->\");\n $$renderer5.push(`<div class=\"bg-muted/40 space-y-3 rounded-lg border p-4\"><p class=\"text-sm font-medium\">New User</p> <div class=\"grid gap-3 sm:grid-cols-2\">`);\n Input($$renderer5, {\n type: \"email\",\n placeholder: \"Email\",\n get value() {\n return newEmail;\n },\n set value($$value) {\n newEmail = $$value;\n $$settled = false;\n }\n });\n $$renderer5.push(`<!----> `);\n if (data.provider.userCreation === \"email-password\") {\n $$renderer5.push(\"<!--[0-->\");\n Input($$renderer5, {\n type: \"password\",\n placeholder: \"Password (min 8 chars)\",\n get value() {\n return newPassword;\n },\n set value($$value) {\n newPassword = $$value;\n $$settled = false;\n }\n });\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--></div> `);\n if (data.provider.userCreation === \"email-only\") {\n $$renderer5.push(\"<!--[0-->\");\n $$renderer5.push(`<p class=\"text-muted-foreground text-xs\">This user will authenticate via ${escape_html(data.provider.name)}. No password is stored.</p>`);\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> <div><p class=\"mb-2 text-xs font-medium\">Permissions</p> <p class=\"text-muted-foreground mb-2 text-xs\">New users are added as <span class=\"font-mono\">member</span>. Promote them to owner or\n\t\t\t\t\t\t\tadmin from the user list to grant full organization access.</p> <div class=\"flex flex-wrap gap-3\"><!--[-->`);\n const each_array_2 = ensure_array_like(assignablePermissions());\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let p = each_array_2[$$index_2];\n const isOwnerAdminOnly = OWNER_ADMIN_ONLY_PERMISSIONS.includes(p);\n const isPlatformScope = ALL_PLATFORM_PERMISSIONS.includes(p);\n const memberExcluded = isOwnerAdminOnly && !isPlatformScope;\n $$renderer5.push(`<label${attr_class(`flex items-center gap-1.5 text-xs ${stringify(memberExcluded ? \"cursor-not-allowed opacity-60\" : \"cursor-pointer\")}`)}${attr(\"title\", memberExcluded ? \"Only owners and admins can hold this permission\" : void 0)}><input type=\"checkbox\"${attr(\"checked\", !memberExcluded && newPermissions.includes(p), true)}${attr(\"disabled\", memberExcluded, true)}/> ${escape_html(PERMISSION_LABELS[p])}</label>`);\n }\n $$renderer5.push(`<!--]--></div></div> <div class=\"flex gap-2\">`);\n Button($$renderer5, {\n onclick: addUser,\n disabled: adding || !newEmail || data.provider.userCreation === \"email-password\" && !newPassword,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->${escape_html(adding ? \"Creating…\" : \"Create User\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> `);\n Button($$renderer5, {\n variant: \"outline\",\n onclick: () => showAddForm = false,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----></div></div>`);\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> `);\n if (data.users === null) {\n $$renderer5.push(\"<!--[0-->\");\n {\n let body = function($$renderer6) {\n $$renderer6.push(`<!---->Set <code class=\"text-xs\">DATA_PATH</code> (local provider) or check your provider\n\t\t\t\t\t\twiring in <code class=\"text-xs\">selva.config.ts</code>.`);\n };\n EmptyState($$renderer5, {\n icon: Shield_check,\n title: \"User store unavailable\",\n body\n });\n }\n } else if (data.users.length === 0) {\n $$renderer5.push(\"<!--[1-->\");\n EmptyState($$renderer5, {\n title: \"No users yet\",\n description: \"Add your first user above.\"\n });\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n $$renderer5.push(`<div class=\"divide-y rounded-lg border\"><!--[-->`);\n const each_array_3 = ensure_array_like(data.users);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let user = each_array_3[$$index_3];\n UserListItem($$renderer5, {\n user,\n expanded: expandedUserId === user.id,\n isPlatformAdmin: data.isPlatformAdmin,\n soleInstanceAdmin: isSoleInstanceAdmin(user),\n updating: updatingId === user.id,\n deleting: deletingId === user.id,\n onDelete: () => deleteUser(user.id, user.email ?? user.id)\n });\n }\n $$renderer5.push(`<!--]--></div>`);\n }\n $$renderer5.push(`<!--]-->`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (data.invites.length > 0) {\n $$renderer3.push(\"<!--[0-->\");\n if (Card) {\n $$renderer3.push(\"<!--[-->\");\n Card($$renderer3, {\n children: ($$renderer4) => {\n if (Card_header) {\n $$renderer4.push(\"<!--[-->\");\n Card_header($$renderer4, {\n children: ($$renderer5) => {\n if (Card_title) {\n $$renderer5.push(\"<!--[-->\");\n Card_title($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Invites`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n $$renderer5.push(` `);\n if (Card_description) {\n $$renderer5.push(\"<!--[-->\");\n Card_description($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->${escape_html(data.invites.filter((i) => !i.acceptedAt).length)} pending, ${escape_html(data.invites.filter((i) => i.acceptedAt).length)} accepted`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Card_content) {\n $$renderer4.push(\"<!--[-->\");\n Card_content($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<div class=\"divide-y rounded-lg border\"><!--[-->`);\n const each_array_4 = ensure_array_like(data.invites);\n for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) {\n let invite = each_array_4[$$index_4];\n const expired = Date.parse(invite.expiresAt) <= Date.now();\n const status = invite.acceptedAt ? \"Accepted\" : expired ? \"Expired\" : \"Pending\";\n $$renderer5.push(`<div class=\"flex items-center justify-between gap-4 px-4 py-3\"><div class=\"min-w-0 flex-1\"><p class=\"truncate text-sm font-medium\">${escape_html(invite.email)}</p> <p class=\"text-muted-foreground text-xs\">${escape_html(status)} · ${escape_html(invite.orgRole)} · expires ${escape_html(new Date(invite.expiresAt).toLocaleDateString())}</p></div> `);\n if (!invite.acceptedAt && !expired) {\n $$renderer5.push(\"<!--[0-->\");\n Button($$renderer5, {\n size: \"sm\",\n variant: \"ghost\",\n disabled: revokingId === invite.id,\n onclick: () => revokeInvite(invite.id, invite.email),\n class: \"text-destructive hover:text-destructive\",\n children: ($$renderer6) => {\n Trash_2($$renderer6, { class: \"h-4 w-4\" });\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--></div>`);\n }\n $$renderer5.push(`<!--]--></div>`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}