@selvajs/selva 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (769) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/build/client/_app/immutable/assets/0.B0phAlf7.css +1 -0
  4. package/build/client/_app/immutable/assets/0.B0phAlf7.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.B0phAlf7.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/20.DzF5JyuX.css +1 -0
  7. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.br +0 -0
  8. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/index.CV-KWLNP.css +1 -0
  10. package/build/client/_app/immutable/assets/index.CV-KWLNP.css.br +1 -0
  11. package/build/client/_app/immutable/assets/index.CV-KWLNP.css.gz +0 -0
  12. package/build/client/_app/immutable/chunks/1s2jTHrf.js +1 -0
  13. package/build/client/_app/immutable/chunks/1s2jTHrf.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/1s2jTHrf.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/2XlIPTRw.js +1 -0
  16. package/build/client/_app/immutable/chunks/2XlIPTRw.js.br +1 -0
  17. package/build/client/_app/immutable/chunks/2XlIPTRw.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/2_FEXmq1.js +9 -0
  19. package/build/client/_app/immutable/chunks/2_FEXmq1.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/2_FEXmq1.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/2dX6Wjni.js +1 -0
  22. package/build/client/_app/immutable/chunks/2dX6Wjni.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/2dX6Wjni.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/4tskcAVN.js +1 -0
  25. package/build/client/_app/immutable/chunks/4tskcAVN.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/4tskcAVN.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/4y4xLOS_.js +1 -0
  28. package/build/client/_app/immutable/chunks/4y4xLOS_.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/4y4xLOS_.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/AEyooZaf.js +1 -0
  31. package/build/client/_app/immutable/chunks/AEyooZaf.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/AEyooZaf.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/B1aRL9Hz.js +1 -0
  34. package/build/client/_app/immutable/chunks/B1aRL9Hz.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/B1aRL9Hz.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/B8uG8z2c.js +1 -0
  37. package/build/client/_app/immutable/chunks/B8uG8z2c.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/B8uG8z2c.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/B8zY50Bc.js +1 -0
  40. package/build/client/_app/immutable/chunks/B8zY50Bc.js.br +5 -0
  41. package/build/client/_app/immutable/chunks/B8zY50Bc.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/BCse3N0b.js +1 -0
  43. package/build/client/_app/immutable/chunks/BCse3N0b.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/BCse3N0b.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/BFXFuY-o.js +3 -0
  46. package/build/client/_app/immutable/chunks/BFXFuY-o.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/BFXFuY-o.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/BGxzXVpM.js +1 -0
  49. package/build/client/_app/immutable/chunks/BGxzXVpM.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/BGxzXVpM.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/BM4_iXSA.js +1 -0
  52. package/build/client/_app/immutable/chunks/BM4_iXSA.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/BM4_iXSA.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/BMGykAfL.js +2 -0
  55. package/build/client/_app/immutable/chunks/BMGykAfL.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/BMGykAfL.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/BNScKugQ.js +1 -0
  58. package/build/client/_app/immutable/chunks/BNScKugQ.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/BNScKugQ.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/BNzEBMy8.js +1 -0
  61. package/build/client/_app/immutable/chunks/BNzEBMy8.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/BNzEBMy8.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/BU9URCkw.js +1 -0
  64. package/build/client/_app/immutable/chunks/BU9URCkw.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/BU9URCkw.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/BW4xleRz.js +1 -0
  67. package/build/client/_app/immutable/chunks/BW4xleRz.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/BW4xleRz.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/BZmrLQwT.js +1 -0
  70. package/build/client/_app/immutable/chunks/BZmrLQwT.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/BZmrLQwT.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/B_Lmgh7q.js +1 -0
  73. package/build/client/_app/immutable/chunks/B_Lmgh7q.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/B_Lmgh7q.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/BapAUJpM.js +1 -0
  76. package/build/client/_app/immutable/chunks/BapAUJpM.js.br +0 -0
  77. package/build/client/_app/immutable/chunks/BapAUJpM.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/Bb9xebuT.js +1 -0
  79. package/build/client/_app/immutable/chunks/Bb9xebuT.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/Bb9xebuT.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/BjkQG7dw.js +1 -0
  82. package/build/client/_app/immutable/chunks/BjkQG7dw.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/BjkQG7dw.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/Bmz9gLBz.js +1 -0
  85. package/build/client/_app/immutable/chunks/Bmz9gLBz.js.br +0 -0
  86. package/build/client/_app/immutable/chunks/Bmz9gLBz.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/Bnpwcepm.js +1 -0
  88. package/build/client/_app/immutable/chunks/Bnpwcepm.js.br +0 -0
  89. package/build/client/_app/immutable/chunks/Bnpwcepm.js.gz +0 -0
  90. package/build/client/_app/immutable/chunks/BoR6OKl6.js +1 -0
  91. package/build/client/_app/immutable/chunks/BoR6OKl6.js.br +0 -0
  92. package/build/client/_app/immutable/chunks/BoR6OKl6.js.gz +0 -0
  93. package/build/client/_app/immutable/chunks/Br5bpmJC.js +1 -0
  94. package/build/client/_app/immutable/chunks/Br5bpmJC.js.br +0 -0
  95. package/build/client/_app/immutable/chunks/Br5bpmJC.js.gz +0 -0
  96. package/build/client/_app/immutable/chunks/BxCHY0iG.js +1 -0
  97. package/build/client/_app/immutable/chunks/BxCHY0iG.js.br +0 -0
  98. package/build/client/_app/immutable/chunks/BxCHY0iG.js.gz +0 -0
  99. package/build/client/_app/immutable/chunks/C1Sz0rtw.js +1 -0
  100. package/build/client/_app/immutable/chunks/C1Sz0rtw.js.br +0 -0
  101. package/build/client/_app/immutable/chunks/C1Sz0rtw.js.gz +0 -0
  102. package/build/client/_app/immutable/chunks/C1aQuqo_.js +2 -0
  103. package/build/client/_app/immutable/chunks/C1aQuqo_.js.br +0 -0
  104. package/build/client/_app/immutable/chunks/C1aQuqo_.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/C26nmevH.js +1 -0
  106. package/build/client/_app/immutable/chunks/C26nmevH.js.br +0 -0
  107. package/build/client/_app/immutable/chunks/C26nmevH.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/C8ko2SLk.js +1 -0
  109. package/build/client/_app/immutable/chunks/C8ko2SLk.js.br +0 -0
  110. package/build/client/_app/immutable/chunks/C8ko2SLk.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/CAMhfNhW.js +1 -0
  112. package/build/client/_app/immutable/chunks/CAMhfNhW.js.br +0 -0
  113. package/build/client/_app/immutable/chunks/CAMhfNhW.js.gz +0 -0
  114. package/build/client/_app/immutable/chunks/CEnIp_6Y.js +1 -0
  115. package/build/client/_app/immutable/chunks/CEnIp_6Y.js.br +3 -0
  116. package/build/client/_app/immutable/chunks/CEnIp_6Y.js.gz +0 -0
  117. package/build/client/_app/immutable/chunks/CMjc_m7Z.js +1 -0
  118. package/build/client/_app/immutable/chunks/CMjc_m7Z.js.br +0 -0
  119. package/build/client/_app/immutable/chunks/CMjc_m7Z.js.gz +0 -0
  120. package/build/client/_app/immutable/chunks/CRRzXoPz.js +5 -0
  121. package/build/client/_app/immutable/chunks/CRRzXoPz.js.br +0 -0
  122. package/build/client/_app/immutable/chunks/CRRzXoPz.js.gz +0 -0
  123. package/build/client/_app/immutable/chunks/CXh1ITwj.js +1 -0
  124. package/build/client/_app/immutable/chunks/CXh1ITwj.js.br +0 -0
  125. package/build/client/_app/immutable/chunks/CXh1ITwj.js.gz +0 -0
  126. package/build/client/_app/immutable/chunks/CZ1oTCKP.js +1 -0
  127. package/build/client/_app/immutable/chunks/CZ1oTCKP.js.br +0 -0
  128. package/build/client/_app/immutable/chunks/CZ1oTCKP.js.gz +0 -0
  129. package/build/client/_app/immutable/chunks/Cbu9Tg11.js +1 -0
  130. package/build/client/_app/immutable/chunks/Cbu9Tg11.js.br +0 -0
  131. package/build/client/_app/immutable/chunks/Cbu9Tg11.js.gz +0 -0
  132. package/build/client/_app/immutable/chunks/CcYNc8-G.js +1 -0
  133. package/build/client/_app/immutable/chunks/CcYNc8-G.js.br +0 -0
  134. package/build/client/_app/immutable/chunks/CcYNc8-G.js.gz +0 -0
  135. package/build/client/_app/immutable/chunks/Cdcajer6.js +1 -0
  136. package/build/client/_app/immutable/chunks/Cdcajer6.js.br +0 -0
  137. package/build/client/_app/immutable/chunks/Cdcajer6.js.gz +0 -0
  138. package/build/client/_app/immutable/chunks/Ce2MupFq.js +1 -0
  139. package/build/client/_app/immutable/chunks/Ce2MupFq.js.br +0 -0
  140. package/build/client/_app/immutable/chunks/Ce2MupFq.js.gz +0 -0
  141. package/build/client/_app/immutable/chunks/CfP1DoGT.js +1 -0
  142. package/build/client/_app/immutable/chunks/CfP1DoGT.js.br +0 -0
  143. package/build/client/_app/immutable/chunks/CfP1DoGT.js.gz +0 -0
  144. package/build/client/_app/immutable/chunks/CfhPDo21.js +1 -0
  145. package/build/client/_app/immutable/chunks/CfhPDo21.js.br +1 -0
  146. package/build/client/_app/immutable/chunks/CfhPDo21.js.gz +0 -0
  147. package/build/client/_app/immutable/chunks/ChSMnQMB.js +2 -0
  148. package/build/client/_app/immutable/chunks/ChSMnQMB.js.br +0 -0
  149. package/build/client/_app/immutable/chunks/ChSMnQMB.js.gz +0 -0
  150. package/build/client/_app/immutable/chunks/CkW8YtSm.js +1 -0
  151. package/build/client/_app/immutable/chunks/CkW8YtSm.js.br +0 -0
  152. package/build/client/_app/immutable/chunks/CkW8YtSm.js.gz +0 -0
  153. package/build/client/_app/immutable/chunks/CoR7xVWs.js +1 -0
  154. package/build/client/_app/immutable/chunks/CoR7xVWs.js.br +0 -0
  155. package/build/client/_app/immutable/chunks/CoR7xVWs.js.gz +0 -0
  156. package/build/client/_app/immutable/chunks/CpGv0MSX.js +1 -0
  157. package/build/client/_app/immutable/chunks/CpGv0MSX.js.br +0 -0
  158. package/build/client/_app/immutable/chunks/CpGv0MSX.js.gz +0 -0
  159. package/build/client/_app/immutable/chunks/Cvr8AlQE.js +1 -0
  160. package/build/client/_app/immutable/chunks/Cvr8AlQE.js.br +0 -0
  161. package/build/client/_app/immutable/chunks/Cvr8AlQE.js.gz +0 -0
  162. package/build/client/_app/immutable/chunks/D0QMYypb.js +1 -0
  163. package/build/client/_app/immutable/chunks/D0QMYypb.js.br +0 -0
  164. package/build/client/_app/immutable/chunks/D0QMYypb.js.gz +0 -0
  165. package/build/client/_app/immutable/chunks/D40b34QZ.js +1 -0
  166. package/build/client/_app/immutable/chunks/D40b34QZ.js.br +0 -0
  167. package/build/client/_app/immutable/chunks/D40b34QZ.js.gz +0 -0
  168. package/build/client/_app/immutable/chunks/D6MI_dhi.js +1 -0
  169. package/build/client/_app/immutable/chunks/D6MI_dhi.js.br +0 -0
  170. package/build/client/_app/immutable/chunks/D6MI_dhi.js.gz +0 -0
  171. package/build/client/_app/immutable/chunks/D7PHp8xb.js +1 -0
  172. package/build/client/_app/immutable/chunks/D7PHp8xb.js.br +0 -0
  173. package/build/client/_app/immutable/chunks/D7PHp8xb.js.gz +0 -0
  174. package/build/client/_app/immutable/chunks/D7l1JayF.js +1 -0
  175. package/build/client/_app/immutable/chunks/D7l1JayF.js.br +0 -0
  176. package/build/client/_app/immutable/chunks/D7l1JayF.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/D99uXqZb.js +1 -0
  178. package/build/client/_app/immutable/chunks/D99uXqZb.js.br +0 -0
  179. package/build/client/_app/immutable/chunks/D99uXqZb.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/DEBBEmC0.js +1 -0
  181. package/build/client/_app/immutable/chunks/DEBBEmC0.js.br +0 -0
  182. package/build/client/_app/immutable/chunks/DEBBEmC0.js.gz +0 -0
  183. package/build/client/_app/immutable/chunks/DHWrMZkd.js +1 -0
  184. package/build/client/_app/immutable/chunks/DHWrMZkd.js.br +0 -0
  185. package/build/client/_app/immutable/chunks/DHWrMZkd.js.gz +0 -0
  186. package/build/client/_app/immutable/chunks/DNsLImlA.js +64 -0
  187. package/build/client/_app/immutable/chunks/DNsLImlA.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/DNsLImlA.js.gz +0 -0
  189. package/build/client/_app/immutable/chunks/DRDjLZb3.js +1 -0
  190. package/build/client/_app/immutable/chunks/DRDjLZb3.js.br +3 -0
  191. package/build/client/_app/immutable/chunks/DRDjLZb3.js.gz +0 -0
  192. package/build/client/_app/immutable/chunks/DTJeGfAL.js +1 -0
  193. package/build/client/_app/immutable/chunks/DTJeGfAL.js.br +0 -0
  194. package/build/client/_app/immutable/chunks/DTJeGfAL.js.gz +0 -0
  195. package/build/client/_app/immutable/chunks/DZFqETAQ.js +1 -0
  196. package/build/client/_app/immutable/chunks/DZFqETAQ.js.br +0 -0
  197. package/build/client/_app/immutable/chunks/DZFqETAQ.js.gz +0 -0
  198. package/build/client/_app/immutable/chunks/D_wr-JLf.js +1 -0
  199. package/build/client/_app/immutable/chunks/D_wr-JLf.js.br +0 -0
  200. package/build/client/_app/immutable/chunks/D_wr-JLf.js.gz +0 -0
  201. package/build/client/_app/immutable/chunks/DdaJZmuM.js +1 -0
  202. package/build/client/_app/immutable/chunks/DdaJZmuM.js.br +0 -0
  203. package/build/client/_app/immutable/chunks/DdaJZmuM.js.gz +0 -0
  204. package/build/client/_app/immutable/chunks/Dl4WTuMB.js +1 -0
  205. package/build/client/_app/immutable/chunks/Dl4WTuMB.js.br +0 -0
  206. package/build/client/_app/immutable/chunks/Dl4WTuMB.js.gz +0 -0
  207. package/build/client/_app/immutable/chunks/Doks8ISn.js +1 -0
  208. package/build/client/_app/immutable/chunks/Doks8ISn.js.br +0 -0
  209. package/build/client/_app/immutable/chunks/Doks8ISn.js.gz +0 -0
  210. package/build/client/_app/immutable/chunks/DsnmJJEf.js +1 -0
  211. package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +2 -0
  212. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  213. package/build/client/_app/immutable/chunks/E3yOQTT0.js +1 -0
  214. package/build/client/_app/immutable/chunks/E3yOQTT0.js.br +0 -0
  215. package/build/client/_app/immutable/chunks/E3yOQTT0.js.gz +0 -0
  216. package/build/client/_app/immutable/chunks/Gxlzmh6y.js +1 -0
  217. package/build/client/_app/immutable/chunks/Gxlzmh6y.js.br +0 -0
  218. package/build/client/_app/immutable/chunks/Gxlzmh6y.js.gz +0 -0
  219. package/build/client/_app/immutable/chunks/Ib-7xmHT.js +1 -0
  220. package/build/client/_app/immutable/chunks/Ib-7xmHT.js.br +0 -0
  221. package/build/client/_app/immutable/chunks/Ib-7xmHT.js.gz +0 -0
  222. package/build/client/_app/immutable/chunks/P4Np3c9O.js +1 -0
  223. package/build/client/_app/immutable/chunks/P4Np3c9O.js.br +0 -0
  224. package/build/client/_app/immutable/chunks/P4Np3c9O.js.gz +0 -0
  225. package/build/client/_app/immutable/chunks/Zf7VV5ZB.js +1 -0
  226. package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.br +0 -0
  227. package/build/client/_app/immutable/chunks/Zf7VV5ZB.js.gz +0 -0
  228. package/build/client/_app/immutable/chunks/_OLpdTiI.js +1 -0
  229. package/build/client/_app/immutable/chunks/_OLpdTiI.js.br +0 -0
  230. package/build/client/_app/immutable/chunks/_OLpdTiI.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/azBeeLR0.js +1 -0
  232. package/build/client/_app/immutable/chunks/azBeeLR0.js.br +0 -0
  233. package/build/client/_app/immutable/chunks/azBeeLR0.js.gz +0 -0
  234. package/build/client/_app/immutable/chunks/gMllmzma.js +1 -0
  235. package/build/client/_app/immutable/chunks/gMllmzma.js.br +0 -0
  236. package/build/client/_app/immutable/chunks/gMllmzma.js.gz +0 -0
  237. package/build/client/_app/immutable/chunks/hRoV10UM.js +1 -0
  238. package/build/client/_app/immutable/chunks/hRoV10UM.js.br +0 -0
  239. package/build/client/_app/immutable/chunks/hRoV10UM.js.gz +0 -0
  240. package/build/client/_app/immutable/chunks/iEBlyxZv.js +1 -0
  241. package/build/client/_app/immutable/chunks/iEBlyxZv.js.br +0 -0
  242. package/build/client/_app/immutable/chunks/iEBlyxZv.js.gz +0 -0
  243. package/build/client/_app/immutable/chunks/jFKgkeON.js +1 -0
  244. package/build/client/_app/immutable/chunks/jFKgkeON.js.br +0 -0
  245. package/build/client/_app/immutable/chunks/jFKgkeON.js.gz +0 -0
  246. package/build/client/_app/immutable/chunks/ooPBmYPj.js +1 -0
  247. package/build/client/_app/immutable/chunks/ooPBmYPj.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/ooPBmYPj.js.gz +0 -0
  249. package/build/client/_app/immutable/chunks/pRg-f8xU.js +1 -0
  250. package/build/client/_app/immutable/chunks/pRg-f8xU.js.br +0 -0
  251. package/build/client/_app/immutable/chunks/pRg-f8xU.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/uINs3xv3.js +1 -0
  253. package/build/client/_app/immutable/chunks/uINs3xv3.js.br +0 -0
  254. package/build/client/_app/immutable/chunks/uINs3xv3.js.gz +0 -0
  255. package/build/client/_app/immutable/chunks/wamM80bu.js +1 -0
  256. package/build/client/_app/immutable/chunks/wamM80bu.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/wamM80bu.js.gz +0 -0
  258. package/build/client/_app/immutable/entry/app.CY1cyDxx.js +2 -0
  259. package/build/client/_app/immutable/entry/app.CY1cyDxx.js.br +0 -0
  260. package/build/client/_app/immutable/entry/app.CY1cyDxx.js.gz +0 -0
  261. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js +1 -0
  262. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.br +2 -0
  263. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.gz +0 -0
  264. package/build/client/_app/immutable/nodes/0.CQbbSrko.js +1 -0
  265. package/build/client/_app/immutable/nodes/0.CQbbSrko.js.br +0 -0
  266. package/build/client/_app/immutable/nodes/0.CQbbSrko.js.gz +0 -0
  267. package/build/client/_app/immutable/nodes/1.WcE6FOcF.js +1 -0
  268. package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.br +0 -0
  269. package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.gz +0 -0
  270. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js +3 -0
  271. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.br +0 -0
  272. package/build/client/_app/immutable/nodes/10.Bl4yPogx.js.gz +0 -0
  273. package/build/client/_app/immutable/nodes/11.kVvSmSNV.js +2 -0
  274. package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.br +0 -0
  275. package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.gz +0 -0
  276. package/build/client/_app/immutable/nodes/12.BoPfAFdi.js +1 -0
  277. package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.br +0 -0
  278. package/build/client/_app/immutable/nodes/12.BoPfAFdi.js.gz +0 -0
  279. package/build/client/_app/immutable/nodes/13.JyGUEsdb.js +2 -0
  280. package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/14.BbJglRXt.js +2 -0
  283. package/build/client/_app/immutable/nodes/14.BbJglRXt.js.br +0 -0
  284. package/build/client/_app/immutable/nodes/14.BbJglRXt.js.gz +0 -0
  285. package/build/client/_app/immutable/nodes/15.94-Zje0s.js +13 -0
  286. package/build/client/_app/immutable/nodes/15.94-Zje0s.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/15.94-Zje0s.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/16.DRADdurD.js +6 -0
  289. package/build/client/_app/immutable/nodes/16.DRADdurD.js.br +0 -0
  290. package/build/client/_app/immutable/nodes/16.DRADdurD.js.gz +0 -0
  291. package/build/client/_app/immutable/nodes/17.DOsqdwdd.js +2 -0
  292. package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/18.BpVlwZ30.js +1 -0
  295. package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.br +0 -0
  296. package/build/client/_app/immutable/nodes/18.BpVlwZ30.js.gz +0 -0
  297. package/build/client/_app/immutable/nodes/19.S2J54AdY.js +2 -0
  298. package/build/client/_app/immutable/nodes/19.S2J54AdY.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/19.S2J54AdY.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js +1 -0
  301. package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/20.BCasu2g4.js +4116 -0
  304. package/build/client/_app/immutable/nodes/20.BCasu2g4.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/20.BCasu2g4.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/21.C1aTaoAB.js +3 -0
  307. package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/23.DP5Be3HR.js +16 -0
  310. package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/24.BB6fXxnh.js +6 -0
  313. package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/25.oeBaWIUn.js +1 -0
  316. package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.br +0 -0
  317. package/build/client/_app/immutable/nodes/25.oeBaWIUn.js.gz +0 -0
  318. package/build/client/_app/immutable/nodes/26.lPx5SjN1.js +3 -0
  319. package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.br +0 -0
  320. package/build/client/_app/immutable/nodes/26.lPx5SjN1.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/27.DB7PVQXo.js +4 -0
  322. package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.br +0 -0
  323. package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.gz +0 -0
  324. package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js +4 -0
  325. package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.br +0 -0
  326. package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.gz +0 -0
  327. package/build/client/_app/immutable/nodes/29.CyJS5sye.js +2 -0
  328. package/build/client/_app/immutable/nodes/29.CyJS5sye.js.br +0 -0
  329. package/build/client/_app/immutable/nodes/29.CyJS5sye.js.gz +0 -0
  330. package/build/client/_app/immutable/nodes/3.DWyky0UV.js +1 -0
  331. package/build/client/_app/immutable/nodes/3.DWyky0UV.js.br +0 -0
  332. package/build/client/_app/immutable/nodes/3.DWyky0UV.js.gz +0 -0
  333. package/build/client/_app/immutable/nodes/30.BFpYKBJh.js +2 -0
  334. package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.br +0 -0
  335. package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.gz +0 -0
  336. package/build/client/_app/immutable/nodes/31.DKnO7o1W.js +2 -0
  337. package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.br +0 -0
  338. package/build/client/_app/immutable/nodes/31.DKnO7o1W.js.gz +0 -0
  339. package/build/client/_app/immutable/nodes/32.D4xYDWvG.js +3 -0
  340. package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.br +0 -0
  341. package/build/client/_app/immutable/nodes/32.D4xYDWvG.js.gz +0 -0
  342. package/build/client/_app/immutable/nodes/4.0a-qdY5B.js +1 -0
  343. package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.br +0 -0
  344. package/build/client/_app/immutable/nodes/4.0a-qdY5B.js.gz +0 -0
  345. package/build/client/_app/immutable/nodes/5.BzQBSRbS.js +1 -0
  346. package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.br +0 -0
  347. package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.gz +0 -0
  348. package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js +1 -0
  349. package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.br +0 -0
  350. package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.gz +0 -0
  351. package/build/client/_app/immutable/nodes/7.tBTDolnc.js +1 -0
  352. package/build/client/_app/immutable/nodes/7.tBTDolnc.js.br +0 -0
  353. package/build/client/_app/immutable/nodes/7.tBTDolnc.js.gz +0 -0
  354. package/build/client/_app/immutable/nodes/8.BJK9n85D.js +2 -0
  355. package/build/client/_app/immutable/nodes/8.BJK9n85D.js.br +0 -0
  356. package/build/client/_app/immutable/nodes/8.BJK9n85D.js.gz +0 -0
  357. package/build/client/_app/immutable/nodes/9.un0j6nRP.js +1 -0
  358. package/build/client/_app/immutable/nodes/9.un0j6nRP.js.br +0 -0
  359. package/build/client/_app/immutable/nodes/9.un0j6nRP.js.gz +0 -0
  360. package/build/client/_app/version.json +1 -0
  361. package/build/client/_app/version.json.br +1 -0
  362. package/build/client/_app/version.json.gz +0 -0
  363. package/build/client/baseHDR.hdr +0 -0
  364. package/build/client/favicon/apple-touch-icon.png +0 -0
  365. package/build/client/favicon/favicon-96x96.png +0 -0
  366. package/build/client/favicon/favicon.ico +0 -0
  367. package/build/client/favicon/favicon.svg +1 -0
  368. package/build/client/favicon/favicon.svg.br +0 -0
  369. package/build/client/favicon/favicon.svg.gz +0 -0
  370. package/build/client/favicon/site.webmanifest +21 -0
  371. package/build/client/favicon/web-app-manifest-192x192.png +0 -0
  372. package/build/client/favicon/web-app-manifest-512x512.png +0 -0
  373. package/build/client/robots.txt +3 -0
  374. package/build/client/robots.txt.br +0 -0
  375. package/build/client/robots.txt.gz +0 -0
  376. package/build/env.js +94 -0
  377. package/build/handler.js +1494 -0
  378. package/build/index.js +345 -0
  379. package/build/server/chunks/0-BRU03dEw.js +55 -0
  380. package/build/server/chunks/0-BRU03dEw.js.map +1 -0
  381. package/build/server/chunks/1-m_oCIIXD.js +9 -0
  382. package/build/server/chunks/1-m_oCIIXD.js.map +1 -0
  383. package/build/server/chunks/10-J_ZMrbXX.js +220 -0
  384. package/build/server/chunks/10-J_ZMrbXX.js.map +1 -0
  385. package/build/server/chunks/11-Dz77N9MO.js +57 -0
  386. package/build/server/chunks/11-Dz77N9MO.js.map +1 -0
  387. package/build/server/chunks/12-CrOqT0Q5.js +52 -0
  388. package/build/server/chunks/12-CrOqT0Q5.js.map +1 -0
  389. package/build/server/chunks/13-DQGOyx8W.js +56 -0
  390. package/build/server/chunks/13-DQGOyx8W.js.map +1 -0
  391. package/build/server/chunks/14-Dl5jyPyO.js +99 -0
  392. package/build/server/chunks/14-Dl5jyPyO.js.map +1 -0
  393. package/build/server/chunks/15-CNzxJkd-.js +38 -0
  394. package/build/server/chunks/15-CNzxJkd-.js.map +1 -0
  395. package/build/server/chunks/16-5ZcnQNjK.js +83 -0
  396. package/build/server/chunks/16-5ZcnQNjK.js.map +1 -0
  397. package/build/server/chunks/17-C4Zpziyd.js +9 -0
  398. package/build/server/chunks/17-C4Zpziyd.js.map +1 -0
  399. package/build/server/chunks/18-DFxW4YE_.js +74 -0
  400. package/build/server/chunks/18-DFxW4YE_.js.map +1 -0
  401. package/build/server/chunks/19-C8RtlFzY.js +92 -0
  402. package/build/server/chunks/19-C8RtlFzY.js.map +1 -0
  403. package/build/server/chunks/2-tPIqsVg3.js +40 -0
  404. package/build/server/chunks/2-tPIqsVg3.js.map +1 -0
  405. package/build/server/chunks/20-DLtIYsB6.js +172 -0
  406. package/build/server/chunks/20-DLtIYsB6.js.map +1 -0
  407. package/build/server/chunks/21-Bs7WlXoO.js +74 -0
  408. package/build/server/chunks/21-Bs7WlXoO.js.map +1 -0
  409. package/build/server/chunks/22-Bweil5nd.js +23 -0
  410. package/build/server/chunks/22-Bweil5nd.js.map +1 -0
  411. package/build/server/chunks/23-dTtOINB8.js +136 -0
  412. package/build/server/chunks/23-dTtOINB8.js.map +1 -0
  413. package/build/server/chunks/24-DFoVUKXD.js +144 -0
  414. package/build/server/chunks/24-DFoVUKXD.js.map +1 -0
  415. package/build/server/chunks/25-DstWRI72.js +51 -0
  416. package/build/server/chunks/25-DstWRI72.js.map +1 -0
  417. package/build/server/chunks/26-CI8uo3hW.js +9 -0
  418. package/build/server/chunks/26-CI8uo3hW.js.map +1 -0
  419. package/build/server/chunks/27-CpQEotb7.js +57 -0
  420. package/build/server/chunks/27-CpQEotb7.js.map +1 -0
  421. package/build/server/chunks/28-B-G5uvxa.js +68 -0
  422. package/build/server/chunks/28-B-G5uvxa.js.map +1 -0
  423. package/build/server/chunks/29-BFo4HkLa.js +55 -0
  424. package/build/server/chunks/29-BFo4HkLa.js.map +1 -0
  425. package/build/server/chunks/3-BU-Ucrf8.js +9 -0
  426. package/build/server/chunks/3-BU-Ucrf8.js.map +1 -0
  427. package/build/server/chunks/30-zdVVQ-al.js +57 -0
  428. package/build/server/chunks/30-zdVVQ-al.js.map +1 -0
  429. package/build/server/chunks/31-Cba3pMW9.js +42 -0
  430. package/build/server/chunks/31-Cba3pMW9.js.map +1 -0
  431. package/build/server/chunks/32-BmfoNY4G.js +34 -0
  432. package/build/server/chunks/32-BmfoNY4G.js.map +1 -0
  433. package/build/server/chunks/4-rU40n2rV.js +9 -0
  434. package/build/server/chunks/4-rU40n2rV.js.map +1 -0
  435. package/build/server/chunks/5-CsoWfpGS.js +32 -0
  436. package/build/server/chunks/5-CsoWfpGS.js.map +1 -0
  437. package/build/server/chunks/6-D7wR-syA.js +40 -0
  438. package/build/server/chunks/6-D7wR-syA.js.map +1 -0
  439. package/build/server/chunks/7-uEz6AFkY.js +19 -0
  440. package/build/server/chunks/7-uEz6AFkY.js.map +1 -0
  441. package/build/server/chunks/8-BF-aCqND.js +130 -0
  442. package/build/server/chunks/8-BF-aCqND.js.map +1 -0
  443. package/build/server/chunks/9-BSxBuZbd.js +46 -0
  444. package/build/server/chunks/9-BSxBuZbd.js.map +1 -0
  445. package/build/server/chunks/AppHeader-BGs-cVxu.js +270 -0
  446. package/build/server/chunks/AppHeader-BGs-cVxu.js.map +1 -0
  447. package/build/server/chunks/DataTable-Calmth3f.js +26 -0
  448. package/build/server/chunks/DataTable-Calmth3f.js.map +1 -0
  449. package/build/server/chunks/DefinitionCard-p4VxRESg.js +257 -0
  450. package/build/server/chunks/DefinitionCard-p4VxRESg.js.map +1 -0
  451. package/build/server/chunks/EmptyState-Vs823elu.js +53 -0
  452. package/build/server/chunks/EmptyState-Vs823elu.js.map +1 -0
  453. package/build/server/chunks/ErrorScreen-Btv-WHiu.js +131 -0
  454. package/build/server/chunks/ErrorScreen-Btv-WHiu.js.map +1 -0
  455. package/build/server/chunks/FilterableDropdown-B2_HPO_D.js +61 -0
  456. package/build/server/chunks/FilterableDropdown-B2_HPO_D.js.map +1 -0
  457. package/build/server/chunks/SectionHeader-C1XxBz32.js +32 -0
  458. package/build/server/chunks/SectionHeader-C1XxBz32.js.map +1 -0
  459. package/build/server/chunks/SideNav-B8LeM-P_.js +87 -0
  460. package/build/server/chunks/SideNav-B8LeM-P_.js.map +1 -0
  461. package/build/server/chunks/StatCard--Plm6nsA.js +50 -0
  462. package/build/server/chunks/StatCard--Plm6nsA.js.map +1 -0
  463. package/build/server/chunks/UserAvatar-CaOe1AcR.js +13 -0
  464. package/build/server/chunks/UserAvatar-CaOe1AcR.js.map +1 -0
  465. package/build/server/chunks/UserChip-vdJXrk99.js +1113 -0
  466. package/build/server/chunks/UserChip-vdJXrk99.js.map +1 -0
  467. package/build/server/chunks/_error.svelte-Bifw6LEZ.js +27 -0
  468. package/build/server/chunks/_error.svelte-Bifw6LEZ.js.map +1 -0
  469. package/build/server/chunks/_error.svelte-C2KGldTD.js +29 -0
  470. package/build/server/chunks/_error.svelte-C2KGldTD.js.map +1 -0
  471. package/build/server/chunks/_layout.svelte-1of9r1N3.js +42 -0
  472. package/build/server/chunks/_layout.svelte-1of9r1N3.js.map +1 -0
  473. package/build/server/chunks/_layout.svelte-CGIvkx7D.js +152 -0
  474. package/build/server/chunks/_layout.svelte-CGIvkx7D.js.map +1 -0
  475. package/build/server/chunks/_layout.svelte-CyAPRqZR.js +10 -0
  476. package/build/server/chunks/_layout.svelte-CyAPRqZR.js.map +1 -0
  477. package/build/server/chunks/_layout.svelte-Czx3WsTK.js +795 -0
  478. package/build/server/chunks/_layout.svelte-Czx3WsTK.js.map +1 -0
  479. package/build/server/chunks/_layout.svelte-HGSVxA0R.js +105 -0
  480. package/build/server/chunks/_layout.svelte-HGSVxA0R.js.map +1 -0
  481. package/build/server/chunks/_page.svelte-4090fhI5.js +83 -0
  482. package/build/server/chunks/_page.svelte-4090fhI5.js.map +1 -0
  483. package/build/server/chunks/_page.svelte-5X2iRv32.js +711 -0
  484. package/build/server/chunks/_page.svelte-5X2iRv32.js.map +1 -0
  485. package/build/server/chunks/_page.svelte-BO2coOCw.js +10510 -0
  486. package/build/server/chunks/_page.svelte-BO2coOCw.js.map +1 -0
  487. package/build/server/chunks/_page.svelte-BfQQ6DpG.js +276 -0
  488. package/build/server/chunks/_page.svelte-BfQQ6DpG.js.map +1 -0
  489. package/build/server/chunks/_page.svelte-Br3YjZJA.js +595 -0
  490. package/build/server/chunks/_page.svelte-Br3YjZJA.js.map +1 -0
  491. package/build/server/chunks/_page.svelte-BvG__sle.js +119 -0
  492. package/build/server/chunks/_page.svelte-BvG__sle.js.map +1 -0
  493. package/build/server/chunks/_page.svelte-C2Pa9XCr.js +119 -0
  494. package/build/server/chunks/_page.svelte-C2Pa9XCr.js.map +1 -0
  495. package/build/server/chunks/_page.svelte-C48Yzxtt.js +330 -0
  496. package/build/server/chunks/_page.svelte-C48Yzxtt.js.map +1 -0
  497. package/build/server/chunks/_page.svelte-C4V_xDVU.js +329 -0
  498. package/build/server/chunks/_page.svelte-C4V_xDVU.js.map +1 -0
  499. package/build/server/chunks/_page.svelte-CFbpEr-L.js +249 -0
  500. package/build/server/chunks/_page.svelte-CFbpEr-L.js.map +1 -0
  501. package/build/server/chunks/_page.svelte-CGuEBnqj.js +168 -0
  502. package/build/server/chunks/_page.svelte-CGuEBnqj.js.map +1 -0
  503. package/build/server/chunks/_page.svelte-CWJ99QbZ.js +500 -0
  504. package/build/server/chunks/_page.svelte-CWJ99QbZ.js.map +1 -0
  505. package/build/server/chunks/_page.svelte-CX9DKxIH.js +520 -0
  506. package/build/server/chunks/_page.svelte-CX9DKxIH.js.map +1 -0
  507. package/build/server/chunks/_page.svelte-Cn6-gBTd.js +56 -0
  508. package/build/server/chunks/_page.svelte-Cn6-gBTd.js.map +1 -0
  509. package/build/server/chunks/_page.svelte-D2rnbrpK.js +423 -0
  510. package/build/server/chunks/_page.svelte-D2rnbrpK.js.map +1 -0
  511. package/build/server/chunks/_page.svelte-DIgP7KVt.js +549 -0
  512. package/build/server/chunks/_page.svelte-DIgP7KVt.js.map +1 -0
  513. package/build/server/chunks/_page.svelte-DMn46_VU.js +301 -0
  514. package/build/server/chunks/_page.svelte-DMn46_VU.js.map +1 -0
  515. package/build/server/chunks/_page.svelte-DQeDu6UN.js +146 -0
  516. package/build/server/chunks/_page.svelte-DQeDu6UN.js.map +1 -0
  517. package/build/server/chunks/_page.svelte-DSpONoJg.js +252 -0
  518. package/build/server/chunks/_page.svelte-DSpONoJg.js.map +1 -0
  519. package/build/server/chunks/_page.svelte-DciqGYJp.js +609 -0
  520. package/build/server/chunks/_page.svelte-DciqGYJp.js.map +1 -0
  521. package/build/server/chunks/_page.svelte-DfCFSzaO.js +3847 -0
  522. package/build/server/chunks/_page.svelte-DfCFSzaO.js.map +1 -0
  523. package/build/server/chunks/_page.svelte-DtUlWJaB.js +113 -0
  524. package/build/server/chunks/_page.svelte-DtUlWJaB.js.map +1 -0
  525. package/build/server/chunks/_page.svelte-KapMJV5_.js +452 -0
  526. package/build/server/chunks/_page.svelte-KapMJV5_.js.map +1 -0
  527. package/build/server/chunks/_page.svelte-wsvtYRRE.js +69 -0
  528. package/build/server/chunks/_page.svelte-wsvtYRRE.js.map +1 -0
  529. package/build/server/chunks/_page.svelte-zL7ihDzp.js +13 -0
  530. package/build/server/chunks/_page.svelte-zL7ihDzp.js.map +1 -0
  531. package/build/server/chunks/_server.ts-0ncRaWJ_.js +39 -0
  532. package/build/server/chunks/_server.ts-0ncRaWJ_.js.map +1 -0
  533. package/build/server/chunks/_server.ts-7hKc3tb_.js +28 -0
  534. package/build/server/chunks/_server.ts-7hKc3tb_.js.map +1 -0
  535. package/build/server/chunks/_server.ts-B0wiCYbB.js +36 -0
  536. package/build/server/chunks/_server.ts-B0wiCYbB.js.map +1 -0
  537. package/build/server/chunks/_server.ts-BJWFkEuu.js +94 -0
  538. package/build/server/chunks/_server.ts-BJWFkEuu.js.map +1 -0
  539. package/build/server/chunks/_server.ts-BLHjzdRp.js +30 -0
  540. package/build/server/chunks/_server.ts-BLHjzdRp.js.map +1 -0
  541. package/build/server/chunks/_server.ts-BUc1sqlR.js +58 -0
  542. package/build/server/chunks/_server.ts-BUc1sqlR.js.map +1 -0
  543. package/build/server/chunks/_server.ts-B_MVq_5r.js +72 -0
  544. package/build/server/chunks/_server.ts-B_MVq_5r.js.map +1 -0
  545. package/build/server/chunks/_server.ts-Bb3Kpo0Y.js +38 -0
  546. package/build/server/chunks/_server.ts-Bb3Kpo0Y.js.map +1 -0
  547. package/build/server/chunks/_server.ts-BemU6FO1.js +64 -0
  548. package/build/server/chunks/_server.ts-BemU6FO1.js.map +1 -0
  549. package/build/server/chunks/_server.ts-BkKg2yyC.js +75 -0
  550. package/build/server/chunks/_server.ts-BkKg2yyC.js.map +1 -0
  551. package/build/server/chunks/_server.ts-BpAINcOs.js +276 -0
  552. package/build/server/chunks/_server.ts-BpAINcOs.js.map +1 -0
  553. package/build/server/chunks/_server.ts-BpkR7TzP.js +30 -0
  554. package/build/server/chunks/_server.ts-BpkR7TzP.js.map +1 -0
  555. package/build/server/chunks/_server.ts-BrZXNFlK.js +78 -0
  556. package/build/server/chunks/_server.ts-BrZXNFlK.js.map +1 -0
  557. package/build/server/chunks/_server.ts-C-XniPo8.js +41 -0
  558. package/build/server/chunks/_server.ts-C-XniPo8.js.map +1 -0
  559. package/build/server/chunks/_server.ts-C0F30GT4.js +61 -0
  560. package/build/server/chunks/_server.ts-C0F30GT4.js.map +1 -0
  561. package/build/server/chunks/_server.ts-C4WRZSco.js +32 -0
  562. package/build/server/chunks/_server.ts-C4WRZSco.js.map +1 -0
  563. package/build/server/chunks/_server.ts-CAcgx11J.js +37 -0
  564. package/build/server/chunks/_server.ts-CAcgx11J.js.map +1 -0
  565. package/build/server/chunks/_server.ts-CFIgn6q6.js +293 -0
  566. package/build/server/chunks/_server.ts-CFIgn6q6.js.map +1 -0
  567. package/build/server/chunks/_server.ts-CaHe7mo6.js +81 -0
  568. package/build/server/chunks/_server.ts-CaHe7mo6.js.map +1 -0
  569. package/build/server/chunks/_server.ts-CcQbKaET.js +38 -0
  570. package/build/server/chunks/_server.ts-CcQbKaET.js.map +1 -0
  571. package/build/server/chunks/_server.ts-Ch_RLYHQ.js +48 -0
  572. package/build/server/chunks/_server.ts-Ch_RLYHQ.js.map +1 -0
  573. package/build/server/chunks/_server.ts-CkXnisqg.js +85 -0
  574. package/build/server/chunks/_server.ts-CkXnisqg.js.map +1 -0
  575. package/build/server/chunks/_server.ts-CmGWhrdf.js +110 -0
  576. package/build/server/chunks/_server.ts-CmGWhrdf.js.map +1 -0
  577. package/build/server/chunks/_server.ts-CmUr8pln.js +37 -0
  578. package/build/server/chunks/_server.ts-CmUr8pln.js.map +1 -0
  579. package/build/server/chunks/_server.ts-D-QkfF2o.js +106 -0
  580. package/build/server/chunks/_server.ts-D-QkfF2o.js.map +1 -0
  581. package/build/server/chunks/_server.ts-D1AD48e8.js +81 -0
  582. package/build/server/chunks/_server.ts-D1AD48e8.js.map +1 -0
  583. package/build/server/chunks/_server.ts-DBh0rJrm.js +86 -0
  584. package/build/server/chunks/_server.ts-DBh0rJrm.js.map +1 -0
  585. package/build/server/chunks/_server.ts-DJUYnHrj.js +49 -0
  586. package/build/server/chunks/_server.ts-DJUYnHrj.js.map +1 -0
  587. package/build/server/chunks/_server.ts-DNPb5zS6.js +76 -0
  588. package/build/server/chunks/_server.ts-DNPb5zS6.js.map +1 -0
  589. package/build/server/chunks/_server.ts-DXPhlUCi.js +101 -0
  590. package/build/server/chunks/_server.ts-DXPhlUCi.js.map +1 -0
  591. package/build/server/chunks/_server.ts-Dmo73WWA.js +42 -0
  592. package/build/server/chunks/_server.ts-Dmo73WWA.js.map +1 -0
  593. package/build/server/chunks/_server.ts-DxKERFAd.js +35 -0
  594. package/build/server/chunks/_server.ts-DxKERFAd.js.map +1 -0
  595. package/build/server/chunks/_server.ts-MOiQ4br_.js +31 -0
  596. package/build/server/chunks/_server.ts-MOiQ4br_.js.map +1 -0
  597. package/build/server/chunks/_server.ts-Z87uowZI.js +71 -0
  598. package/build/server/chunks/_server.ts-Z87uowZI.js.map +1 -0
  599. package/build/server/chunks/_server.ts-_NTv7i9z.js +94 -0
  600. package/build/server/chunks/_server.ts-_NTv7i9z.js.map +1 -0
  601. package/build/server/chunks/_server.ts-gic0t4mu.js +52 -0
  602. package/build/server/chunks/_server.ts-gic0t4mu.js.map +1 -0
  603. package/build/server/chunks/_server.ts-la-ySldK.js +39 -0
  604. package/build/server/chunks/_server.ts-la-ySldK.js.map +1 -0
  605. package/build/server/chunks/_server.ts-pDmNGXOa.js +70 -0
  606. package/build/server/chunks/_server.ts-pDmNGXOa.js.map +1 -0
  607. package/build/server/chunks/access.server-GvriCjXN.js +389 -0
  608. package/build/server/chunks/access.server-GvriCjXN.js.map +1 -0
  609. package/build/server/chunks/activity-5BrQjmZv.js +18 -0
  610. package/build/server/chunks/activity-5BrQjmZv.js.map +1 -0
  611. package/build/server/chunks/admin-auth.server-CdTfBMI5.js +78 -0
  612. package/build/server/chunks/admin-auth.server-CdTfBMI5.js.map +1 -0
  613. package/build/server/chunks/alert-description-CJHDA62x.js +59 -0
  614. package/build/server/chunks/alert-description-CJHDA62x.js.map +1 -0
  615. package/build/server/chunks/api-errors-Dk5z97zb.js +36 -0
  616. package/build/server/chunks/api-errors-Dk5z97zb.js.map +1 -0
  617. package/build/server/chunks/arrow-left-Bg-KTjhY.js +14 -0
  618. package/build/server/chunks/arrow-left-Bg-KTjhY.js.map +1 -0
  619. package/build/server/chunks/arrow-right-BvyjMBhI.js +14 -0
  620. package/build/server/chunks/arrow-right-BvyjMBhI.js.map +1 -0
  621. package/build/server/chunks/auth-bootstrap.server-CfD5CPTj.js +38 -0
  622. package/build/server/chunks/auth-bootstrap.server-CfD5CPTj.js.map +1 -0
  623. package/build/server/chunks/badge-DP8t-wkc.js +50 -0
  624. package/build/server/chunks/badge-DP8t-wkc.js.map +1 -0
  625. package/build/server/chunks/bootHealth.server-Bn7taneH.js +58 -0
  626. package/build/server/chunks/bootHealth.server-Bn7taneH.js.map +1 -0
  627. package/build/server/chunks/building-2-DzHZbdjX.js +22 -0
  628. package/build/server/chunks/building-2-DzHZbdjX.js.map +1 -0
  629. package/build/server/chunks/button-5YNnSoty.js +73 -0
  630. package/build/server/chunks/button-5YNnSoty.js.map +1 -0
  631. package/build/server/chunks/card-content-PfaaTs7O.js +46 -0
  632. package/build/server/chunks/card-content-PfaaTs7O.js.map +1 -0
  633. package/build/server/chunks/card-description-BfE_PWv4.js +26 -0
  634. package/build/server/chunks/card-description-BfE_PWv4.js.map +1 -0
  635. package/build/server/chunks/card-title-CV7CjSMp.js +46 -0
  636. package/build/server/chunks/card-title-CV7CjSMp.js.map +1 -0
  637. package/build/server/chunks/check-6xLpsphW.js +11 -0
  638. package/build/server/chunks/check-6xLpsphW.js.map +1 -0
  639. package/build/server/chunks/chevron-down-DdRkfYjQ.js +11 -0
  640. package/build/server/chunks/chevron-down-DdRkfYjQ.js.map +1 -0
  641. package/build/server/chunks/chevron-right-yB_oBTHp.js +11 -0
  642. package/build/server/chunks/chevron-right-yB_oBTHp.js.map +1 -0
  643. package/build/server/chunks/chevron-up-CskoDtlM.js +11 -0
  644. package/build/server/chunks/chevron-up-CskoDtlM.js.map +1 -0
  645. package/build/server/chunks/circle-CcD9wKGy.js +11 -0
  646. package/build/server/chunks/circle-CcD9wKGy.js.map +1 -0
  647. package/build/server/chunks/circle-alert-DKo6GQWU.js +18 -0
  648. package/build/server/chunks/circle-alert-DKo6GQWU.js.map +1 -0
  649. package/build/server/chunks/client-CUfa2kzY.js +39 -0
  650. package/build/server/chunks/client-CUfa2kzY.js.map +1 -0
  651. package/build/server/chunks/computeLimits-FIJ-Mzn4.js +26 -0
  652. package/build/server/chunks/computeLimits-FIJ-Mzn4.js.map +1 -0
  653. package/build/server/chunks/context-9tV9WxQ5.js +134 -0
  654. package/build/server/chunks/context-9tV9WxQ5.js.map +1 -0
  655. package/build/server/chunks/copy-B82RxBlo.js +29 -0
  656. package/build/server/chunks/copy-B82RxBlo.js.map +1 -0
  657. package/build/server/chunks/create-id-BYuAt6fp.js +653 -0
  658. package/build/server/chunks/create-id-BYuAt6fp.js.map +1 -0
  659. package/build/server/chunks/dialog-description-Cp1dB1if.js +523 -0
  660. package/build/server/chunks/dialog-description-Cp1dB1if.js.map +1 -0
  661. package/build/server/chunks/events-Dh5zddQQ.js +119 -0
  662. package/build/server/chunks/events-Dh5zddQQ.js.map +1 -0
  663. package/build/server/chunks/folder-kanban-srfqpNh0.js +21 -0
  664. package/build/server/chunks/folder-kanban-srfqpNh0.js.map +1 -0
  665. package/build/server/chunks/folder-open-LjMDYW2a.js +18 -0
  666. package/build/server/chunks/folder-open-LjMDYW2a.js.map +1 -0
  667. package/build/server/chunks/folders-BMeWz5-X.js +24 -0
  668. package/build/server/chunks/folders-BMeWz5-X.js.map +1 -0
  669. package/build/server/chunks/footerContext.svelte-QTotPOm_.js +523 -0
  670. package/build/server/chunks/footerContext.svelte-QTotPOm_.js.map +1 -0
  671. package/build/server/chunks/hooks.server-CMWyl1Gd.js +197 -0
  672. package/build/server/chunks/hooks.server-CMWyl1Gd.js.map +1 -0
  673. package/build/server/chunks/html-FW6Ia4bL.js +8 -0
  674. package/build/server/chunks/html-FW6Ia4bL.js.map +1 -0
  675. package/build/server/chunks/index-DwB9DMAB.js +28 -0
  676. package/build/server/chunks/index-DwB9DMAB.js.map +1 -0
  677. package/build/server/chunks/index-server-DMc-UvjC.js +19 -0
  678. package/build/server/chunks/index-server-DMc-UvjC.js.map +1 -0
  679. package/build/server/chunks/index2-olcdaqbX.js +4379 -0
  680. package/build/server/chunks/index2-olcdaqbX.js.map +1 -0
  681. package/build/server/chunks/index3-Ye-aF_FM.js +541 -0
  682. package/build/server/chunks/index3-Ye-aF_FM.js.map +1 -0
  683. package/build/server/chunks/input-BIyn3mzZ.js +53 -0
  684. package/build/server/chunks/input-BIyn3mzZ.js.map +1 -0
  685. package/build/server/chunks/label-CTvvOsnE.js +112 -0
  686. package/build/server/chunks/label-CTvvOsnE.js.map +1 -0
  687. package/build/server/chunks/link-2-DyFf_-Tu.js +15 -0
  688. package/build/server/chunks/link-2-DyFf_-Tu.js.map +1 -0
  689. package/build/server/chunks/mail-DS_q8hHt.js +17 -0
  690. package/build/server/chunks/mail-DS_q8hHt.js.map +1 -0
  691. package/build/server/chunks/noop-CzO8kTeB.js +138 -0
  692. package/build/server/chunks/noop-CzO8kTeB.js.map +1 -0
  693. package/build/server/chunks/permissions-compat.server-DSV7bClF.js +19 -0
  694. package/build/server/chunks/permissions-compat.server-DSV7bClF.js.map +1 -0
  695. package/build/server/chunks/permissions.server-Co6VKW9f.js +8 -0
  696. package/build/server/chunks/permissions.server-Co6VKW9f.js.map +1 -0
  697. package/build/server/chunks/plus-kUAGz2vQ.js +11 -0
  698. package/build/server/chunks/plus-kUAGz2vQ.js.map +1 -0
  699. package/build/server/chunks/providers.server-C32WKtDL.js +4486 -0
  700. package/build/server/chunks/providers.server-C32WKtDL.js.map +1 -0
  701. package/build/server/chunks/randomId-8gj3Lbuq.js +25 -0
  702. package/build/server/chunks/randomId-8gj3Lbuq.js.map +1 -0
  703. package/build/server/chunks/renderer-BFEBS3DQ.js +3757 -0
  704. package/build/server/chunks/renderer-BFEBS3DQ.js.map +1 -0
  705. package/build/server/chunks/resolve.server-DYsU4jL3.js +11 -0
  706. package/build/server/chunks/resolve.server-DYsU4jL3.js.map +1 -0
  707. package/build/server/chunks/resolve.server2-Co65XNMI.js +50 -0
  708. package/build/server/chunks/resolve.server2-Co65XNMI.js.map +1 -0
  709. package/build/server/chunks/root-DfWNVuNE.js +1134 -0
  710. package/build/server/chunks/root-DfWNVuNE.js.map +1 -0
  711. package/build/server/chunks/rotate-ccw-BhVSWSeP.js +17 -0
  712. package/build/server/chunks/rotate-ccw-BhVSWSeP.js.map +1 -0
  713. package/build/server/chunks/scroll-lock-BNv9iOMl.js +1558 -0
  714. package/build/server/chunks/scroll-lock-BNv9iOMl.js.map +1 -0
  715. package/build/server/chunks/scroll-text-DqHQWAWm.js +21 -0
  716. package/build/server/chunks/scroll-text-DqHQWAWm.js.map +1 -0
  717. package/build/server/chunks/server-CtTftue_.js +36 -0
  718. package/build/server/chunks/server-CtTftue_.js.map +1 -0
  719. package/build/server/chunks/settings-DUGFWkVU.js +19 -0
  720. package/build/server/chunks/settings-DUGFWkVU.js.map +1 -0
  721. package/build/server/chunks/shared-server-DaWdgxVh.js +11 -0
  722. package/build/server/chunks/shared-server-DaWdgxVh.js.map +1 -0
  723. package/build/server/chunks/shield-DcFe9IEC.js +18 -0
  724. package/build/server/chunks/shield-DcFe9IEC.js.map +1 -0
  725. package/build/server/chunks/shield-check-BpiYOxKK.js +19 -0
  726. package/build/server/chunks/shield-check-BpiYOxKK.js.map +1 -0
  727. package/build/server/chunks/slug-BGuFQjqe.js +6 -0
  728. package/build/server/chunks/slug-BGuFQjqe.js.map +1 -0
  729. package/build/server/chunks/star-CyFkn9su.js +18 -0
  730. package/build/server/chunks/star-CyFkn9su.js.map +1 -0
  731. package/build/server/chunks/stores-r9x46ujW.js +31 -0
  732. package/build/server/chunks/stores-r9x46ujW.js.map +1 -0
  733. package/build/server/chunks/textarea-BCZD0juO.js +685 -0
  734. package/build/server/chunks/textarea-BCZD0juO.js.map +1 -0
  735. package/build/server/chunks/toast-state.svelte-CW-nObZ9.js +185 -0
  736. package/build/server/chunks/toast-state.svelte-CW-nObZ9.js.map +1 -0
  737. package/build/server/chunks/token.server-B8XVPI0F.js +25 -0
  738. package/build/server/chunks/token.server-B8XVPI0F.js.map +1 -0
  739. package/build/server/chunks/token.server2-D0Z99lBB.js +22 -0
  740. package/build/server/chunks/token.server2-D0Z99lBB.js.map +1 -0
  741. package/build/server/chunks/trash-2-DWN_oRG7.js +17 -0
  742. package/build/server/chunks/trash-2-DWN_oRG7.js.map +1 -0
  743. package/build/server/chunks/triangle-alert-DYYSX_Mf.js +444 -0
  744. package/build/server/chunks/triangle-alert-DYYSX_Mf.js.map +1 -0
  745. package/build/server/chunks/types-DxzJoaA4.js +11 -0
  746. package/build/server/chunks/types-DxzJoaA4.js.map +1 -0
  747. package/build/server/chunks/types2-DdHhYSMF.js +4 -0
  748. package/build/server/chunks/types2-DdHhYSMF.js.map +1 -0
  749. package/build/server/chunks/upload-DREoObmA.js +62 -0
  750. package/build/server/chunks/upload-DREoObmA.js.map +1 -0
  751. package/build/server/chunks/user-plus-Nb35DNnT.js +16 -0
  752. package/build/server/chunks/user-plus-Nb35DNnT.js.map +1 -0
  753. package/build/server/chunks/users-DMh0XDYp.js +16 -0
  754. package/build/server/chunks/users-DMh0XDYp.js.map +1 -0
  755. package/build/server/chunks/utils2-Sy-_rI-0.js +56 -0
  756. package/build/server/chunks/utils2-Sy-_rI-0.js.map +1 -0
  757. package/build/server/chunks/utils3-AZ8FPfBW.js +80 -0
  758. package/build/server/chunks/utils3-AZ8FPfBW.js.map +1 -0
  759. package/build/server/chunks/x-wRP5erhc.js +14 -0
  760. package/build/server/chunks/x-wRP5erhc.js.map +1 -0
  761. package/build/server/index.js +5380 -0
  762. package/build/server/index.js.map +1 -0
  763. package/build/server/manifest.js +517 -0
  764. package/build/server/manifest.js.map +1 -0
  765. package/build/shims.js +32 -0
  766. package/package.json +57 -0
  767. package/templates/.env.example +339 -0
  768. package/templates/ecosystem.config.cjs +52 -0
  769. package/templates/selva.config.example.js +338 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BrZXNFlK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { p as providers, m as flag } from \"../../../../../../chunks/providers.server.js\";\nimport { g as requireEditableDefinition } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema, d as CreateShareLinkInputSchema } from \"../../../../../../chunks/context.js\";\nimport { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from \"../../../../../../chunks/types2.js\";\nimport { m as mintRawToken, h as hashToken } from \"../../../../../../chunks/token.server.js\";\nfunction assertSharingEnabled() {\n if (!flag(\"ENABLE_SHARING\")) {\n throw error(404, \"Share links are disabled on this instance (ENABLE_SHARING).\");\n }\n}\nfunction strip(link) {\n const { tokenHash: _omit, ...rest } = link;\n return { ...rest, hasToken: true };\n}\nconst GET = async ({ params, locals }) => {\n assertSharingEnabled();\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n const page = await providers.data.shareLinks.listByDefinition(ctx, guidParsed.data, {\n limit: 200\n });\n return json({\n links: page.items.map(strip),\n nextCursor: page.nextCursor\n });\n } catch (err) {\n handleApiError(err, \"Failed to list share links\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n assertSharingEnabled();\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => ({}));\n const parsed = CreateShareLinkInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const raw = mintRawToken();\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const link = {\n id: randomUUID(),\n definitionId: guidParsed.data,\n channel: parsed.data.channel,\n tokenHash: hashToken(raw),\n name: parsed.data.name,\n createdBy: locals.user.id,\n createdAt: now,\n expiresAt: parsed.data.expiresAt ?? null,\n revokedAt: null,\n allowSolve: parsed.data.allowSolve,\n // Default applied only when the field is absent. `null` is a deliberate\n // \"uncap\" choice and is preserved.\n maxSolves: parsed.data.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : parsed.data.maxSolves,\n solveCount: 0\n };\n try {\n await providers.data.shareLinks.create(ctx, link);\n return json({ link: strip(link), token: raw }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create share link\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { error, json } from '@sveltejs/kit';
2
+ import { d as getInviteStore } from './providers.server-C32WKtDL.js';
3
+ import { i as requireManageOrgMembers } from './access.server-GvriCjXN.js';
4
+ import { h as handleApiError } from './api-errors-Dk5z97zb.js';
5
+ import './shared-server-DaWdgxVh.js';
6
+ import 'node:url';
7
+ import 'node:path';
8
+ import 'node:fs';
9
+ import './context-9tV9WxQ5.js';
10
+ import 'zod';
11
+ import 'node:crypto';
12
+ import 'node:fs/promises';
13
+ import '@supabase/supabase-js';
14
+
15
+ const DELETE = async ({ params, locals }) => {
16
+ requireManageOrgMembers(locals);
17
+ const ctx = locals.ctx;
18
+ if (!ctx.actingOrgId) throw error(400, "No active organization");
19
+ const id = params.id;
20
+ try {
21
+ const store = getInviteStore();
22
+ let cursor;
23
+ let found = false;
24
+ do {
25
+ const page = await store.listByOrg(ctx, ctx.actingOrgId, { limit: 200, cursor });
26
+ if (page.items.some((i) => i.id === id)) {
27
+ found = true;
28
+ break;
29
+ }
30
+ cursor = page.nextCursor ?? void 0;
31
+ } while (cursor);
32
+ if (!found) throw error(404, "Invite not found");
33
+ await store.revoke(ctx, id);
34
+ return json({ success: true });
35
+ } catch (err) {
36
+ handleApiError(err, "Failed to revoke invite");
37
+ }
38
+ };
39
+
40
+ export { DELETE };
41
+ //# sourceMappingURL=_server.ts-C-XniPo8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-C-XniPo8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { n as getInviteStore } from \"../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../chunks/api-errors.js\";\nconst DELETE = async ({ params, locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const id = params.id;\n try {\n const store = getInviteStore();\n let cursor;\n let found = false;\n do {\n const page = await store.listByOrg(ctx, ctx.actingOrgId, { limit: 200, cursor });\n if (page.items.some((i) => i.id === id)) {\n found = true;\n break;\n }\n cursor = page.nextCursor ?? void 0;\n } while (cursor);\n if (!found) throw error(404, \"Invite not found\");\n await store.revoke(ctx, id);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke invite\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAClE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE;AACtB,EAAE,IAAI;AACN,IAAI,MAAM,KAAK,GAAG,cAAc,EAAE;AAClC,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,GAAG;AACP,MAAM,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC/C,QAAQ,KAAK,GAAG,IAAI;AACpB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;AACxC,IAAI,CAAC,QAAQ,MAAM;AACnB,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACpD,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
@@ -0,0 +1,61 @@
1
+ import { error, json } from '@sveltejs/kit';
2
+ import { z } from 'zod';
3
+ import { h as getProjectProvider } from './providers.server-C32WKtDL.js';
4
+ import { o as requireCanManageMembers, p as requireTargetIsOrgMember } from './access.server-GvriCjXN.js';
5
+ import { h as handleApiError, t as throwZodError } from './api-errors-Dk5z97zb.js';
6
+ import { i as ProjectRoleSchema } from './context-9tV9WxQ5.js';
7
+ import './shared-server-DaWdgxVh.js';
8
+ import 'node:url';
9
+ import 'node:path';
10
+ import 'node:fs';
11
+ import 'node:crypto';
12
+ import 'node:fs/promises';
13
+ import '@supabase/supabase-js';
14
+
15
+ const AddMemberSchema = z.object({
16
+ userId: z.string().min(1, "userId is required"),
17
+ role: ProjectRoleSchema
18
+ });
19
+ const GET = async ({ params, locals }) => {
20
+ const { id } = params;
21
+ if (!id) throw error(400, "Missing project ID");
22
+ await requireCanManageMembers(locals, id);
23
+ const ctx = locals.ctx;
24
+ try {
25
+ const page = await getProjectProvider().listProjectMembers(ctx, id, { limit: 200 });
26
+ return json({ members: page.items });
27
+ } catch (err) {
28
+ handleApiError(err, "Failed to load members");
29
+ }
30
+ };
31
+ const POST = async ({ params, request, locals }) => {
32
+ const { id } = params;
33
+ if (!id) throw error(400, "Missing project ID");
34
+ await requireCanManageMembers(locals, id);
35
+ const ctx = locals.ctx;
36
+ const body = await request.json().catch(() => null);
37
+ const parsed = AddMemberSchema.safeParse(body);
38
+ if (!parsed.success) throwZodError(parsed.error);
39
+ const project = await getProjectProvider().getProject(ctx, id);
40
+ if (!project) throw error(404, "Project not found");
41
+ await requireTargetIsOrgMember(locals, project.orgId, parsed.data.userId);
42
+ const now = (/* @__PURE__ */ new Date()).toISOString();
43
+ const member = {
44
+ projectId: id,
45
+ userId: parsed.data.userId,
46
+ role: parsed.data.role,
47
+ joinedAt: now,
48
+ updatedAt: now,
49
+ updatedBy: ctx.userId || parsed.data.userId,
50
+ deletedAt: null
51
+ };
52
+ try {
53
+ await getProjectProvider().addProjectMember(ctx, member);
54
+ return json(member, { status: 201 });
55
+ } catch (err) {
56
+ handleApiError(err, "Failed to add member");
57
+ }
58
+ };
59
+
60
+ export { GET, POST };
61
+ //# sourceMappingURL=_server.ts-C0F30GT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-C0F30GT4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, p as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../chunks/context.js\";\nconst AddMemberSchema = z.object({\n userId: z.string().min(1, \"userId is required\"),\n role: ProjectRoleSchema\n});\nconst GET = async ({ params, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n try {\n const page = await getProjectProvider().listProjectMembers(ctx, id, { limit: 200 });\n return json({ members: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load members\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = AddMemberSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const project = await getProjectProvider().getProject(ctx, id);\n if (!project) throw error(404, \"Project not found\");\n await requireTargetIsOrgMember(locals, project.orgId, parsed.data.userId);\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const member = {\n projectId: id,\n userId: parsed.data.userId,\n role: parsed.data.role,\n joinedAt: now,\n updatedAt: now,\n updatedBy: ctx.userId || parsed.data.userId,\n deletedAt: null\n };\n try {\n await getProjectProvider().addProjectMember(ctx, member);\n return json(member, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to add member\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { error, redirect } from '@sveltejs/kit';
2
+ import { g as getAuthProvider } from './providers.server-C32WKtDL.js';
3
+ import { b as bootstrapUserSession } from './auth-bootstrap.server-CfD5CPTj.js';
4
+ import { s as setSessionCookie, a as setRefreshCookie, d as safeRedirectTarget } from './admin-auth.server-CdTfBMI5.js';
5
+ import './shared-server-DaWdgxVh.js';
6
+ import 'node:url';
7
+ import 'node:path';
8
+ import 'node:fs';
9
+ import './context-9tV9WxQ5.js';
10
+ import 'zod';
11
+ import 'node:crypto';
12
+ import 'node:fs/promises';
13
+ import '@supabase/supabase-js';
14
+
15
+ const GET = async ({ url, cookies }) => {
16
+ const code = url.searchParams.get("code");
17
+ if (!code) throw error(400, "Missing authorization code");
18
+ const oauth = getAuthProvider().oauth;
19
+ if (!oauth) {
20
+ throw error(501, "OAuth is not supported by the configured auth provider.");
21
+ }
22
+ const result = await oauth.exchangeOAuthCode(code);
23
+ if (!result) throw error(401, "OAuth exchange failed");
24
+ await bootstrapUserSession(result.user);
25
+ setSessionCookie(cookies, result.sessionToken);
26
+ setRefreshCookie(cookies, result.refreshToken);
27
+ const dest = safeRedirectTarget(url.searchParams.get("redirectTo"), "/library");
28
+ redirect(303, dest);
29
+ };
30
+
31
+ export { GET };
32
+ //# sourceMappingURL=_server.ts-C4WRZSco.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-C4WRZSco.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { e as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { s as setSessionCookie, a as setRefreshCookie, b as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const code = url.searchParams.get(\"code\");\n if (!code) throw error(400, \"Missing authorization code\");\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const result = await oauth.exchangeOAuthCode(code);\n if (!result) throw error(401, \"OAuth exchange failed\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACpD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AACxD,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
@@ -0,0 +1,37 @@
1
+ import { error, json } from '@sveltejs/kit';
2
+ import { l as getPermissionStore, g as getAuthProvider } from './providers.server-C32WKtDL.js';
3
+ import { c as requireManageInstanceUsers } from './access.server-GvriCjXN.js';
4
+ import './shared-server-DaWdgxVh.js';
5
+ import 'node:url';
6
+ import 'node:path';
7
+ import 'node:fs';
8
+ import './context-9tV9WxQ5.js';
9
+ import 'zod';
10
+ import 'node:crypto';
11
+ import 'node:fs/promises';
12
+ import '@supabase/supabase-js';
13
+ import './api-errors-Dk5z97zb.js';
14
+
15
+ const POST = async ({ params, locals }) => {
16
+ requireManageInstanceUsers(locals);
17
+ const { id } = params;
18
+ if (!id) throw error(400, "Missing user ID");
19
+ const targetPerms = await getPermissionStore().getFor(locals.ctx, id);
20
+ if (targetPerms.includes("instance_admin")) {
21
+ const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);
22
+ if (others === 0) {
23
+ throw error(
24
+ 409,
25
+ "Cannot disable the last instance admin. Promote another user to instance admin first."
26
+ );
27
+ }
28
+ }
29
+ const result = await getAuthProvider().disableUser(id);
30
+ if (result === "not_found") throw error(404, "User not found");
31
+ if (result === "not_supported")
32
+ throw error(501, "Disabling users is not supported by this auth provider");
33
+ return json({ success: true });
34
+ };
35
+
36
+ export { POST };
37
+ //# sourceMappingURL=_server.ts-CAcgx11J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CAcgx11J.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as getPermissionStore, e as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { c as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -0,0 +1,293 @@
1
+ import { TreeBuilder, GrasshopperClient } from '@selvajs/compute';
2
+ import { error, json, isHttpError } from '@sveltejs/kit';
3
+ import { r as resolveServerForOrg } from './resolve.server-DYsU4jL3.js';
4
+ import { M as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, R as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, a as REMOTE_DEFINITION_MAX_BYTES, b as RATE_LIMIT_WINDOW_MS, c as RATE_LIMIT_MAX_REQUESTS, C as COMPUTE_REQUEST_MAX_BYTES } from './computeLimits-FIJ-Mzn4.js';
5
+ import { h as requireMaxBodySize } from './admin-auth.server-CdTfBMI5.js';
6
+ import { m as getStorageProvider, p as providers } from './providers.server-C32WKtDL.js';
7
+ import { d as requireCanEditDefinition, e as requireCanSolve } from './access.server-GvriCjXN.js';
8
+ import { t as tryResolveShareToken } from './resolve.server2-Co65XNMI.js';
9
+ import './context-9tV9WxQ5.js';
10
+ import 'zod';
11
+ import './utils2-Sy-_rI-0.js';
12
+ import './shared-server-DaWdgxVh.js';
13
+ import 'node:url';
14
+ import 'node:path';
15
+ import 'node:fs';
16
+ import 'node:crypto';
17
+ import 'node:fs/promises';
18
+ import '@supabase/supabase-js';
19
+ import './api-errors-Dk5z97zb.js';
20
+ import './token.server-B8XVPI0F.js';
21
+
22
+ function isSafeRemoteDefinitionUrl(raw) {
23
+ let parsed;
24
+ try {
25
+ parsed = new URL(raw);
26
+ } catch {
27
+ return false;
28
+ }
29
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return false;
30
+ const host = parsed.hostname.toLowerCase();
31
+ if (!host) return false;
32
+ if (host === "localhost" || host === "0.0.0.0" || host.endsWith(".localhost")) return false;
33
+ if (host === "::1" || host === "[::1]") return false;
34
+ if (/^127\./.test(host)) return false;
35
+ if (/^10\./.test(host)) return false;
36
+ if (/^192\.168\./.test(host)) return false;
37
+ if (/^172\.(1[6-9]|2[0-9]|3[0-1])\./.test(host)) return false;
38
+ if (/^169\.254\./.test(host)) return false;
39
+ if (/^\[?(fc|fd)[0-9a-f]{2}:/i.test(host)) return false;
40
+ if (/^\[?fe[89ab][0-9a-f]:/i.test(host)) return false;
41
+ return true;
42
+ }
43
+ const WINDOW_MS = RATE_LIMIT_WINDOW_MS;
44
+ const MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;
45
+ const buckets = /* @__PURE__ */ new Map();
46
+ function checkComputeRateLimit(key) {
47
+ const now = Date.now();
48
+ const entry = buckets.get(key);
49
+ if (!entry || now > entry.resetAt) {
50
+ buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });
51
+ return { allowed: true };
52
+ }
53
+ if (entry.count >= MAX_PER_WINDOW) {
54
+ return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };
55
+ }
56
+ entry.count += 1;
57
+ return { allowed: true };
58
+ }
59
+ const definitionCache = /* @__PURE__ */ new Map();
60
+ let cachedClient = null;
61
+ let cachedScheduler = null;
62
+ let cachedClientConfig = null;
63
+ async function getClient(serverConfig) {
64
+ const currentConfig = {
65
+ serverUrl: serverConfig.serverUrl,
66
+ apiKey: serverConfig.apiKey
67
+ };
68
+ if (cachedClient && cachedScheduler && cachedClientConfig && cachedClientConfig.serverUrl === currentConfig.serverUrl && cachedClientConfig.apiKey === currentConfig.apiKey) {
69
+ return { client: cachedClient, scheduler: cachedScheduler };
70
+ }
71
+ cachedScheduler?.dispose();
72
+ cachedClient = await GrasshopperClient.create({
73
+ serverUrl: currentConfig.serverUrl,
74
+ apiKey: currentConfig.apiKey
75
+ });
76
+ cachedScheduler = cachedClient.createScheduler({
77
+ mode: "queue",
78
+ timeoutMs: MAX_SOLVE_DURATION_MS,
79
+ cache: { maxEntries: 20, ttlMs: 5 * 6e4 }
80
+ });
81
+ cachedClientConfig = currentConfig;
82
+ return { client: cachedClient, scheduler: cachedScheduler };
83
+ }
84
+ async function loadRemoteDefinition(url) {
85
+ if (!isSafeRemoteDefinitionUrl(url)) {
86
+ throw new Error("Remote definition URL is not allowed");
87
+ }
88
+ const now = Date.now();
89
+ const cached = definitionCache.get(url);
90
+ if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {
91
+ return cached.data;
92
+ }
93
+ const controller = new AbortController();
94
+ const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);
95
+ let data;
96
+ try {
97
+ const response = await fetch(url, {
98
+ signal: controller.signal,
99
+ redirect: "error"
100
+ });
101
+ if (!response.ok) {
102
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
103
+ }
104
+ const declared = Number(response.headers.get("content-length"));
105
+ if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {
106
+ throw new Error("Remote definition exceeds size limit");
107
+ }
108
+ const buffer = await response.arrayBuffer();
109
+ if (buffer.byteLength > REMOTE_DEFINITION_MAX_BYTES) {
110
+ throw new Error("Remote definition exceeds size limit");
111
+ }
112
+ data = new Uint8Array(buffer);
113
+ } finally {
114
+ clearTimeout(timeout);
115
+ }
116
+ definitionCache.set(url, { data, fetchedAt: now });
117
+ if (definitionCache.size > 50) {
118
+ const entries = Array.from(definitionCache.entries());
119
+ entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);
120
+ for (let i = 0; i < 10; i++) {
121
+ definitionCache.delete(entries[i][0]);
122
+ }
123
+ }
124
+ return data;
125
+ }
126
+ function transformInputParameter(input, value) {
127
+ const base = {
128
+ description: input.description || "",
129
+ name: input.nickname,
130
+ nickname: input.nickname || null,
131
+ id: input.id
132
+ };
133
+ if (input.paramType === "number" || input.paramType === "integer") {
134
+ return {
135
+ ...base,
136
+ paramType: input.paramType === "integer" ? "Integer" : "Number",
137
+ minimum: input.minimum,
138
+ maximum: input.maximum,
139
+ stepSize: input.paramType === "integer" ? 1 : input.stepSize,
140
+ default: value ?? input.default
141
+ };
142
+ } else if (input.paramType === "text") {
143
+ return {
144
+ ...base,
145
+ paramType: "Text",
146
+ default: value ?? input.default ?? ""
147
+ };
148
+ } else if (input.paramType === "boolean") {
149
+ return {
150
+ ...base,
151
+ paramType: "Boolean",
152
+ default: value ?? input.default ?? false
153
+ };
154
+ }
155
+ return {
156
+ ...base,
157
+ paramType: "Text",
158
+ default: value ?? ""
159
+ };
160
+ }
161
+ const POST = async ({ request, locals, url }) => {
162
+ const storage = getStorageProvider();
163
+ requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);
164
+ try {
165
+ const body = await request.json();
166
+ const { inputs, values } = body;
167
+ const definitionUrl = body.definitionUrl;
168
+ const channel = body.channel ?? "live";
169
+ if (!inputs || !values || !definitionUrl) {
170
+ throw error(400, "Missing required fields: inputs, values, or definitionUrl");
171
+ }
172
+ if (channel !== "live" && channel !== "draft") {
173
+ throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);
174
+ }
175
+ let definitionSource;
176
+ let solveOrgId = null;
177
+ let definitionPin = null;
178
+ const isLocal = definitionUrl.startsWith("local:");
179
+ const guid = isLocal ? definitionUrl.substring(6) : null;
180
+ const sharedAccess = isLocal && guid ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;
181
+ if (!sharedAccess && (!locals.ctx || !locals.user)) {
182
+ throw error(401, "Unauthorized");
183
+ }
184
+ const solveCtx = sharedAccess?.ctx ?? locals.ctx;
185
+ const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;
186
+ const rateLimit = checkComputeRateLimit(rateLimitKey);
187
+ if (!rateLimit.allowed) {
188
+ const retryAfter = rateLimit.retryAfter ?? 1;
189
+ return new Response(
190
+ JSON.stringify({
191
+ message: `Too many compute requests. Retry in ${retryAfter}s.`,
192
+ retryAfter
193
+ }),
194
+ {
195
+ status: 429,
196
+ headers: {
197
+ "Content-Type": "application/json",
198
+ "Retry-After": String(retryAfter)
199
+ }
200
+ }
201
+ );
202
+ }
203
+ if (isLocal && guid) {
204
+ let record;
205
+ try {
206
+ record = await providers.data.definitions.get(solveCtx, guid);
207
+ } catch (err) {
208
+ console.error(`Failed to load local definition: ${guid}`, err);
209
+ throw error(404, `Definition '${guid}' not found`);
210
+ }
211
+ if (!record) throw error(404, `Definition '${guid}' not found`);
212
+ const project = await providers.data.projects.getProject(solveCtx, record.projectId);
213
+ solveOrgId = project?.orgId ?? null;
214
+ definitionPin = record.computeServerId ?? null;
215
+ if (!sharedAccess) {
216
+ if (channel === "draft") {
217
+ await requireCanEditDefinition(locals, record.projectId, guid);
218
+ } else {
219
+ await requireCanSolve(locals, record.projectId);
220
+ }
221
+ }
222
+ const versionId = channel === "live" ? record.liveVersionId : record.draftVersionId;
223
+ if (!versionId) {
224
+ throw error(404, `Definition '${guid}' has no ${channel} version yet`);
225
+ }
226
+ const version = await providers.data.definitions.getVersion(solveCtx, versionId);
227
+ if (!version || version.definitionId !== guid) {
228
+ throw error(404, `Definition '${guid}' ${channel} version is missing`);
229
+ }
230
+ try {
231
+ const bytes = await storage.get(version.fileKey);
232
+ if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);
233
+ definitionSource = bytes;
234
+ } catch (err) {
235
+ console.error(`Failed to load local definition blob: ${guid}`, err);
236
+ throw error(404, `Definition '${guid}' not found`);
237
+ }
238
+ } else {
239
+ try {
240
+ definitionSource = await loadRemoteDefinition(definitionUrl);
241
+ } catch (err) {
242
+ console.error(`Failed to fetch definition from ${definitionUrl}:`, err);
243
+ throw error(
244
+ 400,
245
+ `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`
246
+ );
247
+ }
248
+ }
249
+ const inputTree = TreeBuilder.fromInputParams(
250
+ inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))
251
+ );
252
+ if (sharedAccess) {
253
+ const next = await providers.data.shareLinks.tryIncrementSolveCount(
254
+ solveCtx,
255
+ sharedAccess.link.id
256
+ );
257
+ if (next === null) {
258
+ throw error(429, "Share link solve cap reached.");
259
+ }
260
+ }
261
+ const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });
262
+ const { scheduler } = await getClient(serverConfig);
263
+ let solvedDefinition;
264
+ try {
265
+ solvedDefinition = await scheduler.solve(definitionSource, inputTree, {
266
+ signal: request.signal
267
+ });
268
+ } catch (err) {
269
+ if (err instanceof Error && err.name === "AbortError") {
270
+ if (request.signal.aborted) {
271
+ throw error(499, "Client closed request");
272
+ }
273
+ throw error(
274
+ 504,
275
+ `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`
276
+ );
277
+ }
278
+ throw err;
279
+ }
280
+ return json(solvedDefinition);
281
+ } catch (err) {
282
+ if (isHttpError(err)) throw err;
283
+ const message = err instanceof Error ? err.message : "Unknown error";
284
+ console.error("[API/Compute] Error:", message);
285
+ if (err instanceof TypeError && message === "fetch failed") {
286
+ throw error(503, "Compute server is unreachable");
287
+ }
288
+ throw error(500, message);
289
+ }
290
+ };
291
+
292
+ export { POST };
293
+ //# sourceMappingURL=_server.ts-CFIgn6q6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CFIgn6q6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { error, json, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg } from \"../../../../chunks/resolve.server.js\";\nimport { R as RATE_LIMIT_WINDOW_MS, a as RATE_LIMIT_MAX_REQUESTS, M as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, b as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, c as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { r as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { i as getStorageProvider, p as providers } from \"../../../../chunks/providers.server.js\";\nimport { d as requireCanEditDefinition, e as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server2.js\";\nfunction isSafeRemoteDefinitionUrl(raw) {\n let parsed;\n try {\n parsed = new URL(raw);\n } catch {\n return false;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return false;\n const host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host === \"0.0.0.0\" || host.endsWith(\".localhost\")) return false;\n if (host === \"::1\" || host === \"[::1]\") return false;\n if (/^127\\./.test(host)) return false;\n if (/^10\\./.test(host)) return false;\n if (/^192\\.168\\./.test(host)) return false;\n if (/^172\\.(1[6-9]|2[0-9]|3[0-1])\\./.test(host)) return false;\n if (/^169\\.254\\./.test(host)) return false;\n if (/^\\[?(fc|fd)[0-9a-f]{2}:/i.test(host)) return false;\n if (/^\\[?fe[89ab][0-9a-f]:/i.test(host)) return false;\n return true;\n}\nconst WINDOW_MS = RATE_LIMIT_WINDOW_MS;\nconst MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;\nconst buckets = /* @__PURE__ */ new Map();\nfunction checkComputeRateLimit(key) {\n const now = Date.now();\n const entry = buckets.get(key);\n if (!entry || now > entry.resetAt) {\n buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });\n return { allowed: true };\n }\n if (entry.count >= MAX_PER_WINDOW) {\n return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };\n }\n entry.count += 1;\n return { allowed: true };\n}\nconst definitionCache = /* @__PURE__ */ new Map();\nlet cachedClient = null;\nlet cachedScheduler = null;\nlet cachedClientConfig = null;\nasync function getClient(serverConfig) {\n const currentConfig = {\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey\n };\n if (cachedClient && cachedScheduler && cachedClientConfig && cachedClientConfig.serverUrl === currentConfig.serverUrl && cachedClientConfig.apiKey === currentConfig.apiKey) {\n return { client: cachedClient, scheduler: cachedScheduler };\n }\n cachedScheduler?.dispose();\n cachedClient = await GrasshopperClient.create({\n serverUrl: currentConfig.serverUrl,\n apiKey: currentConfig.apiKey\n });\n cachedScheduler = cachedClient.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 }\n });\n cachedClientConfig = currentConfig;\n return { client: cachedClient, scheduler: cachedScheduler };\n}\nasync function loadRemoteDefinition(url) {\n if (!isSafeRemoteDefinitionUrl(url)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const now = Date.now();\n const cached = definitionCache.get(url);\n if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {\n return cached.data;\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);\n let data;\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n redirect: \"error\"\n });\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n const declared = Number(response.headers.get(\"content-length\"));\n if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n data = new Uint8Array(buffer);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nfunction transformInputParameter(input, value) {\n const base = {\n description: input.description || \"\",\n name: input.nickname,\n nickname: input.nickname || null,\n id: input.id\n };\n if (input.paramType === \"number\" || input.paramType === \"integer\") {\n return {\n ...base,\n paramType: input.paramType === \"integer\" ? \"Integer\" : \"Number\",\n minimum: input.minimum,\n maximum: input.maximum,\n stepSize: input.paramType === \"integer\" ? 1 : input.stepSize,\n default: value ?? input.default\n };\n } else if (input.paramType === \"text\") {\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? input.default ?? \"\"\n };\n } else if (input.paramType === \"boolean\") {\n return {\n ...base,\n paramType: \"Boolean\",\n default: value ?? input.default ?? false\n };\n }\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? \"\"\n };\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n try {\n const body = await request.json();\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n if (!inputs || !values || !definitionUrl) {\n throw error(400, \"Missing required fields: inputs, values, or definitionUrl\");\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);\n }\n let definitionSource;\n let solveOrgId = null;\n let definitionPin = null;\n const isLocal = definitionUrl.startsWith(\"local:\");\n const guid = isLocal ? definitionUrl.substring(6) : null;\n const sharedAccess = isLocal && guid ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;\n if (!sharedAccess && (!locals.ctx || !locals.user)) {\n throw error(401, \"Unauthorized\");\n }\n const solveCtx = sharedAccess?.ctx ?? locals.ctx;\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n if (!record) throw error(404, `Definition '${guid}' not found`);\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n if (!sharedAccess) {\n if (channel === \"draft\") {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n const versionId = channel === \"live\" ? record.liveVersionId : record.draftVersionId;\n if (!versionId) {\n throw error(404, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n throw error(404, `Definition '${guid}' ${channel} version is missing`);\n }\n try {\n const bytes = await storage.get(version.fileKey);\n if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);\n definitionSource = bytes;\n } catch (err) {\n console.error(`Failed to load local definition blob: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n } else {\n try {\n definitionSource = await loadRemoteDefinition(definitionUrl);\n } catch (err) {\n console.error(`Failed to fetch definition from ${definitionUrl}:`, err);\n throw error(\n 400,\n `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n const inputTree = TreeBuilder.fromInputParams(\n inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))\n );\n if (sharedAccess) {\n const next = await providers.data.shareLinks.tryIncrementSolveCount(\n solveCtx,\n sharedAccess.link.id\n );\n if (next === null) {\n throw error(429, \"Share link solve cap reached.\");\n }\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n const { scheduler } = await getClient(serverConfig);\n let solvedDefinition;\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n } catch (err) {\n if (err instanceof Error && err.name === \"AbortError\") {\n if (request.signal.aborted) {\n throw error(499, \"Client closed request\");\n }\n throw error(\n 504,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n return json(solvedDefinition);\n } catch (err) {\n if (isHttpError(err)) throw err;\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n throw error(503, \"Compute server is unreachable\");\n }\n throw error(500, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { error, json } from '@sveltejs/kit';
2
+ import { z } from 'zod';
3
+ import { h as getProjectProvider, c as getOrganizationProvider } from './providers.server-C32WKtDL.js';
4
+ import { l as requireCanManage, m as requireCanEditProjectSettings, w as withAdminBypass, n as canChangeVisibilityToPublic } from './access.server-GvriCjXN.js';
5
+ import { h as handleApiError, t as throwZodError } from './api-errors-Dk5z97zb.js';
6
+ import { s as slugify } from './slug-BGuFQjqe.js';
7
+ import { g as ProjectVisibilitySchema, v as validateProjectFlags } from './context-9tV9WxQ5.js';
8
+ import './shared-server-DaWdgxVh.js';
9
+ import 'node:url';
10
+ import 'node:path';
11
+ import 'node:fs';
12
+ import 'node:crypto';
13
+ import 'node:fs/promises';
14
+ import '@supabase/supabase-js';
15
+
16
+ const UpdateProjectBody = z.object({
17
+ name: z.string().min(1).max(128).trim(),
18
+ description: z.string().max(2e3).nullish(),
19
+ visibility: ProjectVisibilitySchema,
20
+ autoJoinOnUpload: z.boolean()
21
+ }).partial();
22
+ const PATCH = async ({ params, request, locals }) => {
23
+ const { id } = params;
24
+ if (!id) throw error(400, "Missing project ID");
25
+ const { ctx, project: existing } = await requireCanEditProjectSettings(locals, id);
26
+ const body = await request.json().catch(() => null);
27
+ const parsed = UpdateProjectBody.safeParse(body);
28
+ if (!parsed.success) throwZodError(parsed.error);
29
+ if (parsed.data.visibility !== void 0 && parsed.data.visibility === "public" && existing.visibility !== "public") {
30
+ const orgMember = await getOrganizationProvider().getOrgMember(ctx, existing.orgId, ctx.userId);
31
+ const passes = withAdminBypass(
32
+ ctx.platformPermissions,
33
+ () => canChangeVisibilityToPublic({ orgMember })
34
+ );
35
+ if (!passes) {
36
+ throw error(403, "Only org owners or admins can make a project public.");
37
+ }
38
+ }
39
+ const mergedVisibility = parsed.data.visibility ?? existing.visibility;
40
+ const mergedAutoJoin = parsed.data.autoJoinOnUpload ?? existing.autoJoinOnUpload;
41
+ const flagIssues = validateProjectFlags({
42
+ visibility: mergedVisibility,
43
+ autoJoinOnUpload: mergedAutoJoin
44
+ });
45
+ if (flagIssues.length > 0) {
46
+ throw error(400, flagIssues.map((i) => `${i.path}: ${i.message}`).join("; "));
47
+ }
48
+ const patch = {};
49
+ if (parsed.data.name !== void 0) {
50
+ patch.name = parsed.data.name;
51
+ patch.slug = slugify(parsed.data.name);
52
+ }
53
+ if (parsed.data.description !== void 0) {
54
+ patch.description = parsed.data.description ?? void 0;
55
+ }
56
+ if (parsed.data.visibility !== void 0) patch.visibility = parsed.data.visibility;
57
+ if (parsed.data.autoJoinOnUpload !== void 0) {
58
+ patch.autoJoinOnUpload = parsed.data.autoJoinOnUpload;
59
+ }
60
+ try {
61
+ await getProjectProvider().updateProject(ctx, id, patch);
62
+ return json({ success: true });
63
+ } catch (err) {
64
+ handleApiError(err, "Failed to update project");
65
+ }
66
+ };
67
+ const DELETE = async ({ params, locals }) => {
68
+ const { id } = params;
69
+ if (!id) throw error(400, "Missing project ID");
70
+ await requireCanManage(locals, id);
71
+ const ctx = locals.ctx;
72
+ try {
73
+ await getProjectProvider().deleteProject(ctx, id);
74
+ return json({ success: true });
75
+ } catch (err) {
76
+ handleApiError(err, "Failed to delete project");
77
+ }
78
+ };
79
+
80
+ export { DELETE, PATCH };
81
+ //# sourceMappingURL=_server.ts-CaHe7mo6.js.map