@selvajs/selva 4.5.0 → 4.5.1

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 (357) hide show
  1. package/build/client/_app/immutable/chunks/{DuHtWI31.js → BYBRW46Q.js} +1 -1
  2. package/build/client/_app/immutable/chunks/BYBRW46Q.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/BYBRW46Q.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{DsuMOTav.js → BfWZCn9D.js} +2 -2
  5. package/build/client/_app/immutable/chunks/BfWZCn9D.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BfWZCn9D.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DnURu9OT.js → BoelBenK.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BoelBenK.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BoelBenK.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{D_C_YIH8.js → BuvUOrz-.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BuvUOrz-.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BuvUOrz-.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{Dtx1M6QG.js → CQjJB6sZ.js} +1 -1
  14. package/build/client/_app/immutable/chunks/CQjJB6sZ.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/CQjJB6sZ.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{U_alzAUv.js → jJihnyaB.js} +1 -1
  17. package/build/client/_app/immutable/chunks/jJihnyaB.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/jJihnyaB.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.DXOixdTQ.js → app.CUlU8Xgx.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.yXH7NuOH.js +1 -0
  23. package/build/client/_app/immutable/entry/start.yXH7NuOH.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.yXH7NuOH.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.Cgpx1yHy.js → 1.ntriGXw3.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.ntriGXw3.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.ntriGXw3.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/11.BBxGjNus.js +4 -0
  29. package/build/client/_app/immutable/nodes/11.BBxGjNus.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/11.BBxGjNus.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{13.ByWkldPP.js → 13.BOOSKgNQ.js} +1 -1
  32. package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{14.87fRSA-Y.js → 14.st6sThI5.js} +1 -1
  35. package/build/client/_app/immutable/nodes/14.st6sThI5.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/14.st6sThI5.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{16.DWG3CLUv.js → 16.fAXfHZXp.js} +1 -1
  38. package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{17.CgiETa37.js → 17.BL_btSTd.js} +1 -1
  41. package/build/client/_app/immutable/nodes/17.BL_btSTd.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/17.BL_btSTd.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{19.DO2ja5iW.js → 19.D4mkSjY9.js} +1 -1
  44. package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{2.DIAYMP4_.js → 2.CNkzjKpD.js} +1 -1
  47. package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{20.DYgQYcr-.js → 20.93bCfNGI.js} +188 -188
  50. package/build/client/_app/immutable/nodes/20.93bCfNGI.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/20.93bCfNGI.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{21.CTwryTPC.js → 21.ClzCdrlw.js} +1 -1
  53. package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{23.uUN6jlSq.js → 23.DJerRiZ2.js} +1 -1
  56. package/build/client/_app/immutable/nodes/23.DJerRiZ2.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/23.DJerRiZ2.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{24.cDDvPQLh.js → 24.DOHyLmBO.js} +1 -1
  59. package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{27.lHQ_8tDM.js → 27.CkzNBFns.js} +1 -1
  62. package/build/client/_app/immutable/nodes/27.CkzNBFns.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/27.CkzNBFns.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{28.DZO_WZjq.js → 28.BGNl-6WV.js} +1 -1
  65. package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{29.BBkvtbbm.js → 29.BF0JasWQ.js} +1 -1
  68. package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{3.Clu5JbAY.js → 3.BLNJLcvR.js} +1 -1
  71. package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{30.CunrYTKW.js → 30.C33KvKLy.js} +1 -1
  74. package/build/client/_app/immutable/nodes/30.C33KvKLy.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/30.C33KvKLy.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{5.CwEyn2eq.js → 5.DcViAFBY.js} +1 -1
  77. package/build/client/_app/immutable/nodes/5.DcViAFBY.js.br +1 -0
  78. package/build/client/_app/immutable/nodes/5.DcViAFBY.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{6.Cybg-4zL.js → 6.Jpw_unqM.js} +1 -1
  80. package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{7.U-nwvAMy.js → 7.DI4lv1qr.js} +1 -1
  83. package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{8.Ds78IC3h.js → 8.BJeZ3Zka.js} +1 -1
  86. package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{9.B4Dh5-cJ.js → 9.BS42pKml.js} +1 -1
  89. package/build/client/_app/immutable/nodes/9.BS42pKml.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/9.BS42pKml.js.gz +0 -0
  91. package/build/client/_app/version.json +1 -1
  92. package/build/client/_app/version.json.br +0 -0
  93. package/build/client/_app/version.json.gz +0 -0
  94. package/build/server/chunks/{1-B3qAsEuf.js → 1-CCtIB9oC.js} +2 -2
  95. package/build/server/chunks/{1-B3qAsEuf.js.map → 1-CCtIB9oC.js.map} +1 -1
  96. package/build/server/chunks/{10-YMBFU3cy.js → 10-Cj20BodR.js} +3 -3
  97. package/build/server/chunks/{10-YMBFU3cy.js.map → 10-Cj20BodR.js.map} +1 -1
  98. package/build/server/chunks/{11-DEH3nbKm.js → 11-C-goGrGx.js} +5 -5
  99. package/build/server/chunks/{11-DEH3nbKm.js.map → 11-C-goGrGx.js.map} +1 -1
  100. package/build/server/chunks/{13-D_djeolg.js → 13-DN-4EHom.js} +2 -2
  101. package/build/server/chunks/{13-D_djeolg.js.map → 13-DN-4EHom.js.map} +1 -1
  102. package/build/server/chunks/{14-B1A-3AIw.js → 14-j22gtg6q.js} +2 -2
  103. package/build/server/chunks/{14-B1A-3AIw.js.map → 14-j22gtg6q.js.map} +1 -1
  104. package/build/server/chunks/{15-KF7YQWQR.js → 15-CJJTHKeq.js} +2 -2
  105. package/build/server/chunks/{15-KF7YQWQR.js.map → 15-CJJTHKeq.js.map} +1 -1
  106. package/build/server/chunks/{16-27Ug2Gl4.js → 16-CPVRxJfK.js} +4 -4
  107. package/build/server/chunks/{16-27Ug2Gl4.js.map → 16-CPVRxJfK.js.map} +1 -1
  108. package/build/server/chunks/{17-B9EWzdfY.js → 17-CEs6NSIj.js} +2 -2
  109. package/build/server/chunks/{17-B9EWzdfY.js.map → 17-CEs6NSIj.js.map} +1 -1
  110. package/build/server/chunks/{19-DFpWVk9Q.js → 19-BK_uDFHq.js} +3 -3
  111. package/build/server/chunks/{19-DFpWVk9Q.js.map → 19-BK_uDFHq.js.map} +1 -1
  112. package/build/server/chunks/{2-psSdZh8h.js → 2-BBFUEdIk.js} +5 -5
  113. package/build/server/chunks/{2-psSdZh8h.js.map → 2-BBFUEdIk.js.map} +1 -1
  114. package/build/server/chunks/{20-B3RVyzHq.js → 20-TgvBHCqT.js} +7 -7
  115. package/build/server/chunks/{20-B3RVyzHq.js.map → 20-TgvBHCqT.js.map} +1 -1
  116. package/build/server/chunks/{21-DjJlF-s8.js → 21-CpVgaOZP.js} +2 -2
  117. package/build/server/chunks/{21-DjJlF-s8.js.map → 21-CpVgaOZP.js.map} +1 -1
  118. package/build/server/chunks/{23-Cv-iXsup.js → 23-DpZ-VAmj.js} +4 -4
  119. package/build/server/chunks/{23-Cv-iXsup.js.map → 23-DpZ-VAmj.js.map} +1 -1
  120. package/build/server/chunks/{24-C9N_eRrr.js → 24-IG8oF3LR.js} +2 -2
  121. package/build/server/chunks/{24-C9N_eRrr.js.map → 24-IG8oF3LR.js.map} +1 -1
  122. package/build/server/chunks/{27-HUwDEbMb.js → 27-BNuVmBlC.js} +2 -2
  123. package/build/server/chunks/{27-HUwDEbMb.js.map → 27-BNuVmBlC.js.map} +1 -1
  124. package/build/server/chunks/{28-l4BuMkhA.js → 28-O2gMewvR.js} +2 -2
  125. package/build/server/chunks/{28-l4BuMkhA.js.map → 28-O2gMewvR.js.map} +1 -1
  126. package/build/server/chunks/{29-DefkuWIf.js → 29-DeHI_lg6.js} +2 -2
  127. package/build/server/chunks/{29-DefkuWIf.js.map → 29-DeHI_lg6.js.map} +1 -1
  128. package/build/server/chunks/{3-FhxHeIS3.js → 3-_z4ofaYa.js} +2 -2
  129. package/build/server/chunks/{3-FhxHeIS3.js.map → 3-_z4ofaYa.js.map} +1 -1
  130. package/build/server/chunks/{30-BC7V7mS7.js → 30-B8zrsGBW.js} +2 -2
  131. package/build/server/chunks/{30-BC7V7mS7.js.map → 30-B8zrsGBW.js.map} +1 -1
  132. package/build/server/chunks/{5-BSabZ7B0.js → 5-jUoewty6.js} +3 -3
  133. package/build/server/chunks/{5-BSabZ7B0.js.map → 5-jUoewty6.js.map} +1 -1
  134. package/build/server/chunks/{6-BDAMjeLc.js → 6-Da49O-RB.js} +3 -3
  135. package/build/server/chunks/{6-BDAMjeLc.js.map → 6-Da49O-RB.js.map} +1 -1
  136. package/build/server/chunks/{7-C5uuYI8Y.js → 7-C4TEFQmD.js} +3 -3
  137. package/build/server/chunks/{7-C5uuYI8Y.js.map → 7-C4TEFQmD.js.map} +1 -1
  138. package/build/server/chunks/{8-Yg3bHJY8.js → 8-6Lblm8Bu.js} +2 -2
  139. package/build/server/chunks/{8-Yg3bHJY8.js.map → 8-6Lblm8Bu.js.map} +1 -1
  140. package/build/server/chunks/{9-BOWShy6C.js → 9-bV3k1piX.js} +3 -3
  141. package/build/server/chunks/{9-BOWShy6C.js.map → 9-bV3k1piX.js.map} +1 -1
  142. package/build/server/chunks/{AppHeader-vae2Doza.js → AppHeader-C76PLheq.js} +2 -2
  143. package/build/server/chunks/{AppHeader-vae2Doza.js.map → AppHeader-C76PLheq.js.map} +1 -1
  144. package/build/server/chunks/{UserChip-BPLEgzMp.js → UserChip-i0_3jHOb.js} +8 -3
  145. package/build/server/chunks/UserChip-i0_3jHOb.js.map +1 -0
  146. package/build/server/chunks/{_layout.svelte-D5GiNGr6.js → _layout.svelte-B-tWsdy4.js} +3 -3
  147. package/build/server/chunks/{_layout.svelte-D5GiNGr6.js.map → _layout.svelte-B-tWsdy4.js.map} +1 -1
  148. package/build/server/chunks/{_layout.svelte-_enyp5QE.js → _layout.svelte-B2RbgABg.js} +3 -3
  149. package/build/server/chunks/{_layout.svelte-_enyp5QE.js.map → _layout.svelte-B2RbgABg.js.map} +1 -1
  150. package/build/server/chunks/{_layout.svelte-aflz8r6I.js → _layout.svelte-DUeER8oS.js} +3 -3
  151. package/build/server/chunks/{_layout.svelte-aflz8r6I.js.map → _layout.svelte-DUeER8oS.js.map} +1 -1
  152. package/build/server/chunks/{_page.svelte-By_vYfbZ.js → _page.svelte-0KErHswo.js} +94 -4
  153. package/build/server/chunks/_page.svelte-0KErHswo.js.map +1 -0
  154. package/build/server/chunks/{_page.svelte-ZxjqrKH8.js → _page.svelte-BSHEM3UY.js} +3 -3
  155. package/build/server/chunks/{_page.svelte-ZxjqrKH8.js.map → _page.svelte-BSHEM3UY.js.map} +1 -1
  156. package/build/server/chunks/{_page.svelte-FDFRMnmB.js → _page.svelte-CDEfhXLp.js} +3 -3
  157. package/build/server/chunks/{_page.svelte-FDFRMnmB.js.map → _page.svelte-CDEfhXLp.js.map} +1 -1
  158. package/build/server/chunks/{_page.svelte-BDLD6pXj.js → _page.svelte-DDzV91b5.js} +124 -12
  159. package/build/server/chunks/{_page.svelte-BDLD6pXj.js.map → _page.svelte-DDzV91b5.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-DamGRKop.js → _server.ts-3LBSaM7L.js} +24 -12
  161. package/build/server/chunks/_server.ts-3LBSaM7L.js.map +1 -0
  162. package/build/server/chunks/{_server.ts-DRlwVsIx.js → _server.ts-B-un1ZTf.js} +3 -3
  163. package/build/server/chunks/{_server.ts-DRlwVsIx.js.map → _server.ts-B-un1ZTf.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-CF65FKS6.js → _server.ts-B6gtWjZd.js} +7 -7
  165. package/build/server/chunks/_server.ts-B6gtWjZd.js.map +1 -0
  166. package/build/server/chunks/{_server.ts-CMHRHdCD.js → _server.ts-B9Fdut8P.js} +14 -10
  167. package/build/server/chunks/_server.ts-B9Fdut8P.js.map +1 -0
  168. package/build/server/chunks/{_server.ts-kTCuqLDl.js → _server.ts-BJEEQ8tH.js} +15 -11
  169. package/build/server/chunks/_server.ts-BJEEQ8tH.js.map +1 -0
  170. package/build/server/chunks/{_server.ts-Ca_OJJFC.js → _server.ts-BKPaoj3Y.js} +14 -9
  171. package/build/server/chunks/_server.ts-BKPaoj3Y.js.map +1 -0
  172. package/build/server/chunks/{_server.ts-kbr9HYg5.js → _server.ts-BVpHuRup.js} +8 -8
  173. package/build/server/chunks/_server.ts-BVpHuRup.js.map +1 -0
  174. package/build/server/chunks/{_server.ts-DzA4EZf_.js → _server.ts-BplW_hNF.js} +7 -7
  175. package/build/server/chunks/_server.ts-BplW_hNF.js.map +1 -0
  176. package/build/server/chunks/{_server.ts-d6YTPmkY.js → _server.ts-Bv-G75Ze.js} +7 -7
  177. package/build/server/chunks/_server.ts-Bv-G75Ze.js.map +1 -0
  178. package/build/server/chunks/{_server.ts-DethCmgs.js → _server.ts-C5fD6gFa.js} +10 -10
  179. package/build/server/chunks/_server.ts-C5fD6gFa.js.map +1 -0
  180. package/build/server/chunks/{_server.ts-Cg6LtEov.js → _server.ts-C6rUlJpJ.js} +13 -6
  181. package/build/server/chunks/_server.ts-C6rUlJpJ.js.map +1 -0
  182. package/build/server/chunks/_server.ts-CLku3Kgz.js +66 -0
  183. package/build/server/chunks/_server.ts-CLku3Kgz.js.map +1 -0
  184. package/build/server/chunks/{_server.ts-AtxnIvMI.js → _server.ts-CNRwBoMm.js} +3 -3
  185. package/build/server/chunks/{_server.ts-AtxnIvMI.js.map → _server.ts-CNRwBoMm.js.map} +1 -1
  186. package/build/server/chunks/{_server.ts-BgVWq0qd.js → _server.ts-COuXITb8.js} +10 -10
  187. package/build/server/chunks/_server.ts-COuXITb8.js.map +1 -0
  188. package/build/server/chunks/{_server.ts-BZH3tqYX.js → _server.ts-CT1KXbVK.js} +34 -22
  189. package/build/server/chunks/_server.ts-CT1KXbVK.js.map +1 -0
  190. package/build/server/chunks/{_server.ts-Dz4bsmph.js → _server.ts-CTXCbdsb.js} +10 -9
  191. package/build/server/chunks/_server.ts-CTXCbdsb.js.map +1 -0
  192. package/build/server/chunks/{_server.ts-BQetLy9N.js → _server.ts-CXEl8kvu.js} +14 -13
  193. package/build/server/chunks/_server.ts-CXEl8kvu.js.map +1 -0
  194. package/build/server/chunks/{_server.ts-BmjNVAmP.js → _server.ts-CZ9lwb1J.js} +5 -5
  195. package/build/server/chunks/_server.ts-CZ9lwb1J.js.map +1 -0
  196. package/build/server/chunks/{_server.ts-Oi8Qzh0h.js → _server.ts-CaytsdFp.js} +7 -7
  197. package/build/server/chunks/_server.ts-CaytsdFp.js.map +1 -0
  198. package/build/server/chunks/{_server.ts-6F3Ly0cY.js → _server.ts-Cd6dVQ2J.js} +17 -9
  199. package/build/server/chunks/_server.ts-Cd6dVQ2J.js.map +1 -0
  200. package/build/server/chunks/{_server.ts-cHSphefi.js → _server.ts-CgRuMyJ9.js} +8 -8
  201. package/build/server/chunks/_server.ts-CgRuMyJ9.js.map +1 -0
  202. package/build/server/chunks/{_server.ts-PKbOblCf.js → _server.ts-CmCeYB9h.js} +25 -15
  203. package/build/server/chunks/_server.ts-CmCeYB9h.js.map +1 -0
  204. package/build/server/chunks/{_server.ts-13_Xvown.js → _server.ts-Codg_zX0.js} +8 -7
  205. package/build/server/chunks/_server.ts-Codg_zX0.js.map +1 -0
  206. package/build/server/chunks/{_server.ts-DW-Oh4l9.js → _server.ts-D-WjMJlD.js} +10 -6
  207. package/build/server/chunks/_server.ts-D-WjMJlD.js.map +1 -0
  208. package/build/server/chunks/{_server.ts-Bke_K04J.js → _server.ts-D4z7bYT1.js} +23 -10
  209. package/build/server/chunks/_server.ts-D4z7bYT1.js.map +1 -0
  210. package/build/server/chunks/{_server.ts-L9PpKy16.js → _server.ts-D7URpGBv.js} +13 -9
  211. package/build/server/chunks/_server.ts-D7URpGBv.js.map +1 -0
  212. package/build/server/chunks/{_server.ts-D2Qb9pui.js → _server.ts-DMwrtYEK.js} +13 -13
  213. package/build/server/chunks/_server.ts-DMwrtYEK.js.map +1 -0
  214. package/build/server/chunks/{_server.ts-B9uegfmw.js → _server.ts-DSVtVVVK.js} +16 -10
  215. package/build/server/chunks/_server.ts-DSVtVVVK.js.map +1 -0
  216. package/build/server/chunks/{_server.ts-Be15h83H.js → _server.ts-Df72lBuz.js} +23 -14
  217. package/build/server/chunks/_server.ts-Df72lBuz.js.map +1 -0
  218. package/build/server/chunks/{_server.ts-BlVwuKrl.js → _server.ts-DsXq-KLm.js} +25 -16
  219. package/build/server/chunks/_server.ts-DsXq-KLm.js.map +1 -0
  220. package/build/server/chunks/{_server.ts-DEBzt_W2.js → _server.ts-OQ5_sYi3.js} +30 -17
  221. package/build/server/chunks/_server.ts-OQ5_sYi3.js.map +1 -0
  222. package/build/server/chunks/{_server.ts-XAkApigL.js → _server.ts-UYOqhuxS.js} +11 -7
  223. package/build/server/chunks/_server.ts-UYOqhuxS.js.map +1 -0
  224. package/build/server/chunks/{_server.ts-DVOhTvBf.js → _server.ts-Xt4gRfAl.js} +15 -9
  225. package/build/server/chunks/_server.ts-Xt4gRfAl.js.map +1 -0
  226. package/build/server/chunks/{_server.ts-CpsGzKQC.js → _server.ts-ZtjukIa0.js} +15 -12
  227. package/build/server/chunks/_server.ts-ZtjukIa0.js.map +1 -0
  228. package/build/server/chunks/_server.ts-bR98vjY2.js +47 -0
  229. package/build/server/chunks/_server.ts-bR98vjY2.js.map +1 -0
  230. package/build/server/chunks/{_server.ts-Cg1WgIQn.js → _server.ts-deI69oUs.js} +7 -7
  231. package/build/server/chunks/_server.ts-deI69oUs.js.map +1 -0
  232. package/build/server/chunks/{_server.ts-bhjqtBoy.js → _server.ts-fxzTH5KH.js} +6 -6
  233. package/build/server/chunks/_server.ts-fxzTH5KH.js.map +1 -0
  234. package/build/server/chunks/{_server.ts-DvBucq0r.js → _server.ts-mFb6RwID.js} +6 -6
  235. package/build/server/chunks/_server.ts-mFb6RwID.js.map +1 -0
  236. package/build/server/chunks/{_server.ts-Cc-srcRk.js → _server.ts-sdl64bpd.js} +10 -7
  237. package/build/server/chunks/_server.ts-sdl64bpd.js.map +1 -0
  238. package/build/server/chunks/{access.server-CAPd1-c2.js → access.server-Rd56k7vs.js} +2 -2
  239. package/build/server/chunks/{access.server-CAPd1-c2.js.map → access.server-Rd56k7vs.js.map} +1 -1
  240. package/build/server/chunks/{api-errors-BhVEeWTV.js → api-errors-BrqxD-El.js} +52 -13
  241. package/build/server/chunks/api-errors-BrqxD-El.js.map +1 -0
  242. package/build/server/chunks/{computeLimits-DPO6NbLd.js → computeLimits-DnJ77wR9.js} +3 -3
  243. package/build/server/chunks/computeLimits-DnJ77wR9.js.map +1 -0
  244. package/build/server/chunks/{hooks.server-BEbVZKxO.js → hooks.server-BZKLAgww.js} +7 -6
  245. package/build/server/chunks/hooks.server-BZKLAgww.js.map +1 -0
  246. package/build/server/chunks/{package-MTlbeZ-4.js → package-K5EkWw87.js} +2 -2
  247. package/build/server/chunks/{package-MTlbeZ-4.js.map → package-K5EkWw87.js.map} +1 -1
  248. package/build/server/index.js +2 -2
  249. package/build/server/index.js.map +1 -1
  250. package/build/server/manifest.js +70 -63
  251. package/build/server/manifest.js.map +1 -1
  252. package/package.json +7 -7
  253. package/templates/.env.example +14 -5
  254. package/build/client/_app/immutable/chunks/D_C_YIH8.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/D_C_YIH8.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/DnURu9OT.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/DnURu9OT.js.gz +0 -0
  258. package/build/client/_app/immutable/chunks/DsuMOTav.js.br +0 -0
  259. package/build/client/_app/immutable/chunks/DsuMOTav.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/Dtx1M6QG.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/Dtx1M6QG.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/DuHtWI31.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/DuHtWI31.js.gz +0 -0
  264. package/build/client/_app/immutable/chunks/U_alzAUv.js.br +0 -0
  265. package/build/client/_app/immutable/chunks/U_alzAUv.js.gz +0 -0
  266. package/build/client/_app/immutable/entry/app.DXOixdTQ.js.br +0 -0
  267. package/build/client/_app/immutable/entry/app.DXOixdTQ.js.gz +0 -0
  268. package/build/client/_app/immutable/entry/start.lHsRDqJ_.js +0 -1
  269. package/build/client/_app/immutable/entry/start.lHsRDqJ_.js.br +0 -2
  270. package/build/client/_app/immutable/entry/start.lHsRDqJ_.js.gz +0 -0
  271. package/build/client/_app/immutable/nodes/1.Cgpx1yHy.js.br +0 -0
  272. package/build/client/_app/immutable/nodes/1.Cgpx1yHy.js.gz +0 -0
  273. package/build/client/_app/immutable/nodes/11.BIaqG9xz.js +0 -2
  274. package/build/client/_app/immutable/nodes/11.BIaqG9xz.js.br +0 -0
  275. package/build/client/_app/immutable/nodes/11.BIaqG9xz.js.gz +0 -0
  276. package/build/client/_app/immutable/nodes/13.ByWkldPP.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/13.ByWkldPP.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/14.87fRSA-Y.js.br +0 -0
  279. package/build/client/_app/immutable/nodes/14.87fRSA-Y.js.gz +0 -0
  280. package/build/client/_app/immutable/nodes/16.DWG3CLUv.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/16.DWG3CLUv.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/17.CgiETa37.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/17.CgiETa37.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/19.DO2ja5iW.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/19.DO2ja5iW.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/2.DIAYMP4_.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/2.DIAYMP4_.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/20.DYgQYcr-.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/20.DYgQYcr-.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/21.CTwryTPC.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/21.CTwryTPC.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/23.uUN6jlSq.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/23.uUN6jlSq.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/24.cDDvPQLh.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/24.cDDvPQLh.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/27.lHQ_8tDM.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/27.lHQ_8tDM.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/28.DZO_WZjq.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/28.DZO_WZjq.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/29.BBkvtbbm.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/29.BBkvtbbm.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/3.Clu5JbAY.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/3.Clu5JbAY.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/30.CunrYTKW.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/30.CunrYTKW.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/5.CwEyn2eq.js.br +0 -1
  307. package/build/client/_app/immutable/nodes/5.CwEyn2eq.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/6.Cybg-4zL.js.br +0 -0
  309. package/build/client/_app/immutable/nodes/6.Cybg-4zL.js.gz +0 -0
  310. package/build/client/_app/immutable/nodes/7.U-nwvAMy.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/7.U-nwvAMy.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/8.Ds78IC3h.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/8.Ds78IC3h.js.gz +0 -0
  314. package/build/client/_app/immutable/nodes/9.B4Dh5-cJ.js.br +0 -0
  315. package/build/client/_app/immutable/nodes/9.B4Dh5-cJ.js.gz +0 -0
  316. package/build/server/chunks/UserChip-BPLEgzMp.js.map +0 -1
  317. package/build/server/chunks/_page.svelte-By_vYfbZ.js.map +0 -1
  318. package/build/server/chunks/_server.ts-13_Xvown.js.map +0 -1
  319. package/build/server/chunks/_server.ts-6F3Ly0cY.js.map +0 -1
  320. package/build/server/chunks/_server.ts-B9uegfmw.js.map +0 -1
  321. package/build/server/chunks/_server.ts-BQetLy9N.js.map +0 -1
  322. package/build/server/chunks/_server.ts-BZH3tqYX.js.map +0 -1
  323. package/build/server/chunks/_server.ts-Be15h83H.js.map +0 -1
  324. package/build/server/chunks/_server.ts-BgVWq0qd.js.map +0 -1
  325. package/build/server/chunks/_server.ts-Bke_K04J.js.map +0 -1
  326. package/build/server/chunks/_server.ts-BlVwuKrl.js.map +0 -1
  327. package/build/server/chunks/_server.ts-BmjNVAmP.js.map +0 -1
  328. package/build/server/chunks/_server.ts-BwMyXo0z.js +0 -65
  329. package/build/server/chunks/_server.ts-BwMyXo0z.js.map +0 -1
  330. package/build/server/chunks/_server.ts-CF65FKS6.js.map +0 -1
  331. package/build/server/chunks/_server.ts-CMHRHdCD.js.map +0 -1
  332. package/build/server/chunks/_server.ts-Ca_OJJFC.js.map +0 -1
  333. package/build/server/chunks/_server.ts-Cc-srcRk.js.map +0 -1
  334. package/build/server/chunks/_server.ts-Cg1WgIQn.js.map +0 -1
  335. package/build/server/chunks/_server.ts-Cg6LtEov.js.map +0 -1
  336. package/build/server/chunks/_server.ts-CpsGzKQC.js.map +0 -1
  337. package/build/server/chunks/_server.ts-D2Qb9pui.js.map +0 -1
  338. package/build/server/chunks/_server.ts-DEBzt_W2.js.map +0 -1
  339. package/build/server/chunks/_server.ts-DVOhTvBf.js.map +0 -1
  340. package/build/server/chunks/_server.ts-DW-Oh4l9.js.map +0 -1
  341. package/build/server/chunks/_server.ts-DamGRKop.js.map +0 -1
  342. package/build/server/chunks/_server.ts-DethCmgs.js.map +0 -1
  343. package/build/server/chunks/_server.ts-DvBucq0r.js.map +0 -1
  344. package/build/server/chunks/_server.ts-Dz4bsmph.js.map +0 -1
  345. package/build/server/chunks/_server.ts-DzA4EZf_.js.map +0 -1
  346. package/build/server/chunks/_server.ts-L9PpKy16.js.map +0 -1
  347. package/build/server/chunks/_server.ts-Oi8Qzh0h.js.map +0 -1
  348. package/build/server/chunks/_server.ts-PKbOblCf.js.map +0 -1
  349. package/build/server/chunks/_server.ts-XAkApigL.js.map +0 -1
  350. package/build/server/chunks/_server.ts-bhjqtBoy.js.map +0 -1
  351. package/build/server/chunks/_server.ts-cHSphefi.js.map +0 -1
  352. package/build/server/chunks/_server.ts-d6YTPmkY.js.map +0 -1
  353. package/build/server/chunks/_server.ts-kTCuqLDl.js.map +0 -1
  354. package/build/server/chunks/_server.ts-kbr9HYg5.js.map +0 -1
  355. package/build/server/chunks/api-errors-BhVEeWTV.js.map +0 -1
  356. package/build/server/chunks/computeLimits-DPO6NbLd.js.map +0 -1
  357. package/build/server/chunks/hooks.server-BEbVZKxO.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-By_vYfbZ.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/compute/_page.svelte.js"],"sourcesContent":["import { T as head, G as ensure_array_like, k as attr_class, am as stringify, I as escape_html, j as attr } from \"../../../../chunks/renderer.js\";\nimport \"clsx\";\nimport { i as invalidateAll } from \"../../../../chunks/client.js\";\nimport { a as SvelteSet } from \"../../../../chunks/index-server.js\";\nimport { o as onDestroy } from \"../../../../chunks/index-server2.js\";\nimport { S as SectionHeader } from \"../../../../chunks/SectionHeader.js\";\nimport { C as Card, a as Card_content } from \"../../../../chunks/card-content.js\";\nimport { E as EmptyState } from \"../../../../chunks/EmptyState.js\";\nimport { P as Plus } from \"../../../../chunks/plus.js\";\nimport { I as Input } from \"../../../../chunks/input.js\";\nimport { S as Star } from \"../../../../chunks/star.js\";\nimport { C as Circle } from \"../../../../chunks/circle.js\";\nimport { B as Button } from \"../../../../chunks/button.js\";\nimport { R as Refresh_cw } from \"../../../../chunks/refresh-cw.js\";\nimport { T as Trash_2 } from \"../../../../chunks/trash-2.js\";\nimport { C as Chevron_up } from \"../../../../chunks/chevron-up.js\";\nimport { C as Chevron_down } from \"../../../../chunks/chevron-down.js\";\nimport { t as toast } from \"../../../../chunks/toast-state.svelte.js\";\nimport { S as Server } from \"../../../../chunks/server.js\";\nimport { r as randomId } from \"../../../../chunks/randomId.js\";\nfunction useServerHealth(serverId) {\n let state = {\n state: \"idle\",\n reachable: false,\n rhinoVersion: null,\n computeVersion: null,\n selvaInstalled: false,\n selvaVersion: null,\n plugins: {}\n };\n function check() {\n return;\n }\n function stop() {\n }\n return {\n get state() {\n return state;\n },\n check,\n stop\n };\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const API_KEY_CLEAR = \"__clear__\";\n let { data } = $$props;\n const statusConfig = {\n idle: { label: \"Not checked\", color: \"text-muted-foreground\" },\n ok: { label: \"Online\", color: \"text-green-600 dark:text-green-400\" },\n warning: {\n label: \"Warning\",\n color: \"text-yellow-600 dark:text-yellow-400\"\n },\n error: { label: \"Offline\", color: \"text-red-600 dark:text-red-400\" },\n checking: {\n label: \"Checking…\",\n color: \"text-blue-600 dark:text-blue-400\"\n }\n };\n let servers = [];\n let defaultServerId = \"\";\n let saving = false;\n const dirtyIds = new SvelteSet();\n let expandedPlugins = {};\n let expandedSharing = {};\n function markDirty(id) {\n dirtyIds.add(id);\n }\n function discardChanges(id) {\n dirtyIds.delete(id);\n const original = data.servers.find((s) => s.id === id);\n const idx = servers.findIndex((s) => s.id === id);\n if (idx < 0) return;\n if (!original) {\n healthMap[id]?.stop();\n const { [id]: _, ...rest } = healthMap;\n healthMap = rest;\n servers = servers.filter((s) => s.id !== id);\n return;\n }\n servers[idx] = {\n id: original.id,\n label: original.label,\n serverUrl: original.serverUrl,\n sharedWith: original.sharedWith === \"all\" ? \"all\" : [...original.sharedWith],\n timeoutMs: original.timeoutMs ?? 3e4,\n retryCount: original.retryCount ?? 0,\n apiKey: \"\",\n hasApiKey: original.hasApiKey\n };\n defaultServerId = data.defaultServerId;\n }\n let healthMap = {};\n function ensureHealth(id) {\n if (!healthMap[id]) {\n healthMap[id] = useServerHealth();\n }\n return healthMap[id];\n }\n onDestroy(() => {\n for (const h of Object.values(healthMap)) h.stop();\n });\n function addServer() {\n const id = randomId();\n if (servers.length === 0) defaultServerId = id;\n servers = [\n ...servers,\n {\n id,\n label: \"new-server\",\n serverUrl: \"http://localhost:5000\",\n sharedWith: \"all\",\n apiKey: \"\",\n hasApiKey: false,\n timeoutMs: 3e4,\n retryCount: 0\n }\n ];\n ensureHealth(id);\n markDirty(id);\n }\n function removeServer(index) {\n const removed = servers[index];\n healthMap[removed.id]?.stop();\n const { [removed.id]: _, ...rest } = healthMap;\n healthMap = rest;\n servers = servers.filter((_2, i) => i !== index);\n if (defaultServerId === removed.id && servers[0]) {\n defaultServerId = servers[0].id;\n }\n for (const s of servers) markDirty(s.id);\n }\n async function save() {\n saving = true;\n try {\n const payload = {\n defaultServerId,\n servers: servers.map(({ apiKey, hasApiKey: _, retryCount, timeoutMs, ...s }) => ({\n ...s,\n timeoutMs: Math.min(3e5, Math.max(1e3, Number(timeoutMs) || 3e4)),\n ...apiKey === API_KEY_CLEAR ? { apiKey: null } : apiKey ? { apiKey } : {},\n ...Number(retryCount) ? { retryCount: Math.min(5, Math.max(0, Number(retryCount))) } : {}\n }))\n };\n const res = await fetch(\"/admin/api/compute\", {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload)\n });\n if (res.ok) {\n toast.success(\"Compute config saved\");\n await invalidateAll();\n dirtyIds.clear();\n for (const h of Object.values(healthMap)) h.stop();\n healthMap = {};\n for (const s of servers) ensureHealth(s.id);\n } else {\n const err = await res.json().catch(() => ({ error: \"Unknown error\" }));\n toast.error(err.message || err.error || `Failed to save (${res.status})`);\n }\n } catch {\n toast.error(\"Failed to save compute config\");\n } finally {\n saving = false;\n }\n }\n function sharingControl($$renderer3, server) {\n const isAll = server.sharedWith === \"all\";\n const orgIds = isAll ? /* @__PURE__ */ new Set() : new Set(server.sharedWith);\n const isDefault = server.id === defaultServerId;\n $$renderer3.push(`<div class=\"space-y-2\"><div class=\"flex items-center gap-3\"><p class=\"text-muted-foreground text-xs\">Available to</p> <div class=\"bg-muted inline-flex rounded-md p-0.5\"><button${attr_class(`rounded px-2 py-0.5 text-xs ${stringify(isAll ? \"bg-background shadow-sm\" : \"text-muted-foreground hover:text-foreground\")}`)}>All orgs</button> <button${attr_class(`rounded px-2 py-0.5 text-xs ${stringify(!isAll ? \"bg-background shadow-sm\" : \"text-muted-foreground hover:text-foreground\")}`)}>Specific orgs</button></div> `);\n if (!isAll && data.orgs.length > 0) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button class=\"text-muted-foreground hover:text-foreground ml-auto flex items-center gap-1 text-xs\">${escape_html(orgIds.size)}/${escape_html(data.orgs.length)} selected `);\n if (expandedSharing[server.id]) {\n $$renderer3.push(\"<!--[0-->\");\n Chevron_up($$renderer3, { class: \"h-3 w-3\" });\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n Chevron_down($$renderer3, { class: \"h-3 w-3\" });\n }\n $$renderer3.push(`<!--]--></button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div> `);\n if (!isAll && expandedSharing[server.id]) {\n $$renderer3.push(\"<!--[0-->\");\n if (data.orgs.length === 0) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<p class=\"text-muted-foreground text-xs\">No organizations exist yet.</p>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<div class=\"grid gap-1 sm:grid-cols-2\"><!--[-->`);\n const each_array = ensure_array_like(data.orgs);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let org = each_array[$$index];\n $$renderer3.push(`<label class=\"hover:bg-muted/40 flex items-center gap-2 rounded px-2 py-1 text-xs\"><input type=\"checkbox\"${attr(\"checked\", orgIds.has(org.id), true)} class=\"h-3.5 w-3.5\"/> <span class=\"truncate\">${escape_html(org.name)}</span> <span class=\"text-muted-foreground ml-auto font-mono text-[10px]\">${escape_html(org.slug)}</span></label>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]-->`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (!isAll && isDefault) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<p class=\"text-muted-foreground text-xs\">This server is the global default — it stays visible to every org regardless of the\n\t\t\t\tallowlist.</p>`);\n } else if (!isAll && orgIds.size === 0) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<p class=\"text-muted-foreground text-xs\">No orgs selected — this server is dormant (admin-only).</p>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n function serverCard($$renderer3, server, i) {\n const health = healthMap[server.id]?.state;\n const sc = statusConfig[health?.state ?? \"idle\"];\n const isChecking = health?.state === \"checking\";\n const pluginEntries = Object.entries(health?.plugins ?? {});\n const isDirty = dirtyIds.has(server.id);\n $$renderer3.push(`<div${attr_class(`space-y-3 rounded-lg border p-4 transition-colors ${stringify(isDirty ? \"border-amber-400/60 bg-amber-50/30 dark:border-amber-500/40 dark:bg-amber-950/10\" : \"bg-muted/30\")}`)}><div class=\"flex items-center justify-between\"><div class=\"flex items-center gap-2\">`);\n Input($$renderer3, {\n placeholder: \"label\",\n value: server.label,\n oninput: (e) => {\n const input = e.target;\n server.label = input.value.toLowerCase().replace(/[^a-z0-9_-]/g, \"\");\n input.value = server.label;\n markDirty(server.id);\n },\n class: \"h-7 w-32 font-mono text-xs\"\n });\n $$renderer3.push(`<!----> `);\n if (server.id === defaultServerId) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<span class=\"flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-400\">`);\n Star($$renderer3, { class: \"h-3 w-3\" });\n $$renderer3.push(`<!----> default</span>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<button class=\"text-muted-foreground hover:text-foreground text-xs underline-offset-2 hover:underline\">set as default</button>`);\n }\n $$renderer3.push(`<!--]--></div> <div class=\"flex items-center gap-3\"><div class=\"flex items-center gap-1.5\">`);\n Circle($$renderer3, {\n class: `h-2.5 w-2.5 shrink-0 fill-current ${stringify(sc.color)}`\n });\n $$renderer3.push(`<!----> <span${attr_class(`text-xs font-medium ${stringify(sc.color)}`)}>${escape_html(sc.label)}</span></div> `);\n Button($$renderer3, {\n variant: \"outline\",\n size: \"sm\",\n onclick: () => healthMap[server.id]?.check(),\n disabled: isChecking,\n class: \"h-7\",\n title: \"Probe this server's availability (retries for up to 1 min)\",\n children: ($$renderer4) => {\n Refresh_cw($$renderer4, {\n class: `mr-1.5 h-3.5 w-3.5 ${stringify(isChecking ? \"animate-spin\" : \"\")}`\n });\n $$renderer4.push(`<!----> ${escape_html(isChecking ? \"Checking…\" : \"Check\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n if (isDirty) {\n $$renderer3.push(\"<!--[0-->\");\n Button($$renderer3, {\n variant: \"ghost\",\n size: \"sm\",\n onclick: () => discardChanges(server.id),\n disabled: saving,\n class: \"text-muted-foreground hover:text-foreground h-7\",\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->Discard`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n size: \"sm\",\n onclick: save,\n disabled: saving,\n class: \"h-7\",\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->${escape_html(saving ? \"Saving…\" : \"Save changes\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!---->`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n Button($$renderer3, {\n variant: \"ghost\",\n size: \"sm\",\n onclick: () => removeServer(i),\n disabled: server.id === defaultServerId,\n title: server.id === defaultServerId ? \"Set another server as default before deleting\" : void 0,\n class: \"text-destructive hover:text-destructive h-7 w-7 p-0\",\n children: ($$renderer4) => {\n Trash_2($$renderer4, { class: \"h-3.5 w-3.5\" });\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div></div> `);\n if (health?.reachable) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"grid grid-cols-3 gap-2\"><div class=\"bg-muted/40 rounded-md px-3 py-2\"><p class=\"text-muted-foreground text-xs\">Rhino</p> <p class=\"mt-0.5 text-xs font-medium\">${escape_html(health.rhinoVersion ?? \"-\")}</p></div> <div class=\"bg-muted/40 rounded-md px-3 py-2\"><p class=\"text-muted-foreground text-xs\">Compute</p> <p class=\"mt-0.5 text-xs font-medium\">${escape_html(health.computeVersion ?? \"-\")}</p></div> <div class=\"bg-muted/40 rounded-md px-3 py-2\"><p class=\"text-muted-foreground text-xs\">Selva Plugin</p> <p class=\"mt-0.5 text-xs font-medium\">`);\n if (health.selvaInstalled) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`${escape_html(health.selvaVersion)}`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n $$renderer3.push(`<span class=\"text-red-600 dark:text-red-400\">Not installed</span>`);\n }\n $$renderer3.push(`<!--]--></p></div></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <div class=\"grid gap-2 sm:grid-cols-2\"><div class=\"space-y-1\"><p class=\"text-muted-foreground text-xs\">Server URL</p> `);\n Input($$renderer3, {\n placeholder: \"http://localhost:5000\",\n oninput: () => markDirty(server.id),\n class: \"font-mono text-xs\",\n get value() {\n return server.serverUrl;\n },\n set value($$value) {\n server.serverUrl = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----></div> <div class=\"space-y-1\"><p class=\"text-muted-foreground text-xs\">API Key (optional)</p> <div class=\"flex gap-1.5\">`);\n Input($$renderer3, {\n type: \"password\",\n placeholder: server.hasApiKey && server.apiKey !== API_KEY_CLEAR && !server.apiKey ? \"Key set - enter new value to replace\" : server.apiKey === API_KEY_CLEAR ? \"Key will be cleared on save\" : \"\",\n value: server.apiKey === API_KEY_CLEAR ? \"\" : server.apiKey,\n disabled: server.apiKey === API_KEY_CLEAR,\n oninput: (e) => {\n server.apiKey = e.target.value;\n markDirty(server.id);\n },\n class: \"font-mono text-xs\"\n });\n $$renderer3.push(`<!----> `);\n if (server.hasApiKey && server.apiKey !== API_KEY_CLEAR && !server.apiKey) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<button class=\"text-muted-foreground hover:text-destructive shrink-0 text-xs underline-offset-2 hover:underline\">Clear</button>`);\n } else if (server.apiKey === API_KEY_CLEAR) {\n $$renderer3.push(\"<!--[1-->\");\n $$renderer3.push(`<button class=\"text-muted-foreground hover:text-foreground shrink-0 text-xs underline-offset-2 hover:underline\">Undo</button>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div></div> <div class=\"space-y-1\"><p class=\"text-muted-foreground text-xs\">Timeout (ms)</p> `);\n Input($$renderer3, {\n type: \"number\",\n placeholder: \"30000\",\n oninput: () => markDirty(server.id),\n onblur: () => {\n server.timeoutMs = Math.min(3e5, Math.max(1e3, Number(server.timeoutMs) || 3e4));\n },\n class: \"text-xs\",\n get value() {\n return server.timeoutMs;\n },\n set value($$value) {\n server.timeoutMs = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----></div> <div class=\"space-y-1\"><p class=\"text-muted-foreground text-xs\">Retries</p> `);\n Input($$renderer3, {\n type: \"number\",\n placeholder: \"0\",\n oninput: () => markDirty(server.id),\n onblur: () => {\n server.retryCount = Math.min(5, Math.max(0, Number(server.retryCount) || 0));\n },\n class: \"text-xs\",\n get value() {\n return server.retryCount;\n },\n set value($$value) {\n server.retryCount = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----></div></div> `);\n if (data.tenancy !== \"single\") {\n $$renderer3.push(\"<!--[0-->\");\n sharingControl($$renderer3, server);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (health?.reachable && pluginEntries.length > 0) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div><button class=\"text-muted-foreground hover:text-foreground flex items-center gap-1 text-xs\">`);\n if (expandedPlugins[server.id]) {\n $$renderer3.push(\"<!--[0-->\");\n Chevron_up($$renderer3, { class: \"h-3 w-3\" });\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n Chevron_down($$renderer3, { class: \"h-3 w-3\" });\n }\n $$renderer3.push(`<!--]--> ${escape_html(pluginEntries.length)} Grasshopper plugin${escape_html(pluginEntries.length === 1 ? \"\" : \"s\")}</button> `);\n if (expandedPlugins[server.id]) {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"mt-2 grid gap-1.5 sm:grid-cols-2 lg:grid-cols-3\"><!--[-->`);\n const each_array_1 = ensure_array_like(pluginEntries);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let [name, version] = each_array_1[$$index_1];\n $$renderer3.push(`<div class=\"bg-muted/40 flex items-center justify-between rounded-md px-3 py-1.5\"><span class=\"text-xs font-medium\">${escape_html(name)}</span> <span class=\"text-muted-foreground text-xs\">${escape_html(version)}</span></div>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1h8e46q\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Admin · Compute</title>`);\n });\n });\n $$renderer3.push(`<div class=\"space-y-6\">`);\n SectionHeader($$renderer3, {\n eyebrow: \"Admin\",\n title: \"Compute\",\n description: \"Manage compute servers. Share servers with specific orgs to expose them in pickers. When ALLOW_ORG_COMPUTE_OVERRIDE is on, org owners can configure their own servers.\"\n });\n $$renderer3.push(`<!----> `);\n if (Card) {\n $$renderer3.push(\"<!--[-->\");\n Card($$renderer3, {\n children: ($$renderer4) => {\n if (Card_content) {\n $$renderer4.push(\"<!--[-->\");\n Card_content($$renderer4, {\n class: \"space-y-3 pt-6\",\n children: ($$renderer5) => {\n if (servers.length === 0) {\n $$renderer5.push(\"<!--[0-->\");\n {\n let actions = function($$renderer6) {\n Button($$renderer6, {\n variant: \"outline\",\n size: \"sm\",\n onclick: addServer,\n children: ($$renderer7) => {\n Plus($$renderer7, { class: \"mr-1.5 h-3.5 w-3.5\" });\n $$renderer7.push(`<!----> Add server`);\n },\n $$slots: { default: true }\n });\n };\n EmptyState($$renderer5, {\n icon: Server,\n title: \"No servers configured\",\n actions\n });\n }\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n $$renderer5.push(`<!--[-->`);\n const each_array_2 = ensure_array_like(servers);\n for (let i = 0, $$length = each_array_2.length; i < $$length; i++) {\n let server = each_array_2[i];\n serverCard($$renderer5, server, i);\n }\n $$renderer5.push(`<!--]--> <button type=\"button\" class=\"border-muted-foreground/30 text-muted-foreground hover:border-foreground/50 hover:text-foreground hover:bg-muted/30 flex w-full items-center justify-center gap-2 rounded-lg border border-dashed py-4 text-sm font-medium transition-colors\">`);\n Plus($$renderer5, { class: \"h-4 w-4\" });\n $$renderer5.push(`<!----> Add another server</button>`);\n }\n $$renderer5.push(`<!--]-->`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(`</div>`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-13_Xvown.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService } from \"../../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nconst DELETE = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const versionParsed = GuidSchema.safeParse(params.versionId);\n if (!versionParsed.success) throw error(400, \"Invalid or missing version ID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await getDefinitionService().deleteVersion(ctx, guidParsed.data, versionParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete version\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9D,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AAC/E,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,IAAI;AACN,IAAI,MAAM,oBAAoB,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AACxF,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,0BAA0B,CAAC;AACnD,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-6F3Ly0cY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { j as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n throw error(400, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in this organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-B9uegfmw.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { m as getPlatformProjectGrantStore, k as getOrganizationProvider, r as getUserProfileStore, f as flag, n as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../chunks/context.js\";\nconst CreateGrantBody = z.object({\n granteeType: z.enum([\"org\", \"user\"]),\n granteeId: z.string().min(1),\n canSolve: z.boolean()\n});\nasync function assertPlatformProject(id) {\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);\n if (!project || project.visibility !== \"platform\") {\n throw error(404, \"Platform project not found\");\n }\n return project;\n}\nconst GET = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n try {\n await assertPlatformProject(id);\n const grants = await getPlatformProjectGrantStore().listByProject(SYSTEM_CONTEXT, id);\n return json({ grants });\n } catch (err) {\n handleApiError(err, \"Failed to list grants\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const user = requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n const body = await request.json().catch(() => null);\n const parsed = CreateGrantBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await assertPlatformProject(id);\n if (parsed.data.granteeType === \"org\") {\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!org) throw error(400, `Organization '${parsed.data.granteeId}' not found`);\n } else {\n const profile = await getUserProfileStore().getProfile(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!profile) throw error(400, `User '${parsed.data.granteeId}' not found`);\n }\n const grant = {\n id: randomUUID(),\n projectId: id,\n granteeType: parsed.data.granteeType,\n granteeId: parsed.data.granteeId,\n canSolve: parsed.data.canSolve,\n createdBy: user.id,\n createdAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n await getPlatformProjectGrantStore().create(SYSTEM_CONTEXT, grant);\n return json(grant, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create grant\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BQetLy9N.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { l as getPermissionStore, a as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BZH3tqYX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { enableDebugLogging, TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { p as private_env } from \"../../../../chunks/shared-server.js\";\nimport { error, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg, f as fetchSchemaFromCompute, C as ComputeServerUnconfiguredError } from \"../../../../chunks/api-errors.js\";\nimport { lookup } from \"node:dns/promises\";\nimport { isIP } from \"node:net\";\nimport { d as RATE_LIMIT_WINDOW_MS, R as RATE_LIMIT_MAX_REQUESTS, c as MAX_SOLVE_DURATION_MS, a as COMPUTE_RESPONSE_MAX_BYTES, D as DEFINITION_CACHE_TTL_MS, e as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, f as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { e as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { p as getStorageProvider, o as getSolveMetricSink, u as providers } from \"../../../../chunks/providers.server.js\";\nimport { k as requireCanEditDefinition, q as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server.js\";\nfunction isBlockedIp(ip) {\n let addr = ip.toLowerCase();\n const mappedDotted = /^::ffff:(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})$/.exec(addr);\n if (mappedDotted) {\n addr = mappedDotted[1];\n } else {\n const mappedHex = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(addr);\n if (mappedHex) {\n const hi = parseInt(mappedHex[1], 16);\n const lo = parseInt(mappedHex[2], 16);\n addr = [hi >> 8 & 255, hi & 255, lo >> 8 & 255, lo & 255].join(\".\");\n }\n }\n if (isIP(addr) === 4) {\n const octets = addr.split(\".\").map(Number);\n if (octets.length !== 4 || octets.some((o) => o > 255)) return true;\n const [a, b] = octets;\n if (a === 0) return true;\n if (a === 127) return true;\n if (a === 10) return true;\n if (a === 192 && b === 168) return true;\n if (a === 172 && b >= 16 && b <= 31) return true;\n if (a === 169 && b === 254) return true;\n return false;\n }\n if (addr === \"::1\" || addr === \"::\") return true;\n if (/^(fc|fd)[0-9a-f]{0,2}:/.test(addr)) return true;\n if (/^fe[89ab][0-9a-f]:/.test(addr)) return true;\n return false;\n}\nfunction canonicalizeNumericIpv4(host) {\n if (isIP(host) === 4) return host;\n const rawParts = host.split(\".\");\n if (rawParts.length === 0 || rawParts.length > 4) return null;\n const parseUInt = (s) => {\n if (s === \"\") return null;\n let n;\n if (/^0x[0-9a-f]+$/i.test(s)) n = parseInt(s, 16);\n else if (/^0[0-7]+$/.test(s)) n = parseInt(s, 8);\n else if (/^[0-9]+$/.test(s)) n = parseInt(s, 10);\n else return null;\n return Number.isFinite(n) ? n : null;\n };\n const nums = rawParts.map(parseUInt);\n if (nums.some((n) => n === null)) return null;\n const parts = nums;\n let value;\n switch (parts.length) {\n case 1:\n value = parts[0];\n break;\n case 2:\n if (parts[0] > 255 || parts[1] > 16777215) return null;\n value = parts[0] << 24 | parts[1];\n break;\n case 3:\n if (parts[0] > 255 || parts[1] > 255 || parts[2] > 65535) return null;\n value = parts[0] << 24 | parts[1] << 16 | parts[2];\n break;\n default:\n if (parts.some((p) => p > 255)) return null;\n value = parts[0] << 24 | parts[1] << 16 | parts[2] << 8 | parts[3];\n }\n value = value >>> 0;\n if (value > 4294967295) return null;\n return [value >>> 24 & 255, value >>> 16 & 255, value >>> 8 & 255, value & 255].join(\n \".\"\n );\n}\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 let host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host.endsWith(\".localhost\")) return false;\n const isBracketed = host.startsWith(\"[\") && host.endsWith(\"]\");\n if (isBracketed) host = host.slice(1, -1);\n if (isIP(host) === 6) return !isBlockedIp(host);\n const canonical = canonicalizeNumericIpv4(host);\n if (canonical) return !isBlockedIp(canonical);\n return true;\n}\nasync function assertSafeRemoteDefinitionUrl(raw) {\n if (!isSafeRemoteDefinitionUrl(raw)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const host = new URL(raw).hostname.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n if (isIP(host) !== 0 || canonicalizeNumericIpv4(host)) return raw;\n let resolved;\n try {\n resolved = await lookup(host, { all: true });\n } catch {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n if (resolved.length === 0 || resolved.some((r) => isBlockedIp(r.address))) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n return raw;\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 COMPUTE_DEBUG = [\"true\", \"1\", \"yes\"].includes(\n (private_env.SELVA_FLAG_COMPUTE_DEBUG ?? \"\").toLowerCase()\n);\nif (COMPUTE_DEBUG) enableDebugLogging();\nconst definitionCache = /* @__PURE__ */ new Map();\nconst MAX_CACHED_CLIENTS = 16;\nconst clientCache = /* @__PURE__ */ new Map();\nfunction clientCacheKey(serverConfig) {\n return `${serverConfig.serverUrl}\\0${serverConfig.apiKey ?? \"\"}`;\n}\nasync function getClient(serverConfig) {\n const key = clientCacheKey(serverConfig);\n const existing = clientCache.get(key);\n if (existing) {\n clientCache.delete(key);\n clientCache.set(key, existing);\n return existing;\n }\n const client = await GrasshopperClient.create({\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey,\n debug: COMPUTE_DEBUG\n });\n const scheduler = client.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 },\n // VektorNode fork returns empty 200 on stale pointer; disable until it errors.\n reuseServerDefinitionCache: false\n });\n const entry = { client, scheduler };\n if (clientCache.size >= MAX_CACHED_CLIENTS) {\n const oldestKey = clientCache.keys().next().value;\n if (oldestKey !== void 0) {\n clientCache.get(oldestKey)?.scheduler.dispose();\n clientCache.delete(oldestKey);\n }\n }\n clientCache.set(key, entry);\n return entry;\n}\nasync function readBodyWithCap(response, maxBytes, controller) {\n if (!response.body) {\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > maxBytes) throw new Error(\"Remote definition exceeds size limit\");\n return new Uint8Array(buffer);\n }\n const reader = response.body.getReader();\n const chunks = [];\n let total = 0;\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n total += value.byteLength;\n if (total > maxBytes) {\n controller.abort();\n throw new Error(\"Remote definition exceeds size limit\");\n }\n chunks.push(value);\n }\n const out = new Uint8Array(total);\n let offset = 0;\n for (const chunk of chunks) {\n out.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return out;\n}\nasync function loadRemoteDefinition(url) {\n await assertSafeRemoteDefinitionUrl(url);\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 data = await readBodyWithCap(response, REMOTE_DEFINITION_MAX_BYTES, controller);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nfunction transformInputParameter(input, value) {\n const base = {\n description: input.description || \"\",\n name: input.nickname,\n nickname: input.nickname || null,\n id: input.id\n };\n if (input.paramType === \"number\" || input.paramType === \"integer\") {\n return {\n ...base,\n paramType: input.paramType === \"integer\" ? \"Integer\" : \"Number\",\n minimum: input.minimum,\n maximum: input.maximum,\n stepSize: input.paramType === \"integer\" ? 1 : input.stepSize,\n default: value ?? input.default\n };\n } else if (input.paramType === \"text\") {\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? input.default ?? \"\"\n };\n } else if (input.paramType === \"boolean\") {\n return {\n ...base,\n paramType: \"Boolean\",\n default: value ?? input.default ?? false\n };\n }\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? \"\"\n };\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n try {\n const body = await request.json();\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n if (!inputs || !values || !definitionUrl) {\n throw error(400, \"Missing required fields: inputs, values, or definitionUrl\");\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);\n }\n let definitionSource;\n let localVersionForBackfill = null;\n let solveOrgId = null;\n let definitionPin = null;\n let metricDefinitionId = null;\n let metricVersionId = 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 recordMetric = (failureKind, extra = {}) => {\n void getSolveMetricSink().record(solveCtx, {\n definitionUrl,\n definitionId: metricDefinitionId,\n versionId: metricVersionId,\n channel,\n orgId: solveOrgId,\n durationMs: extra.durationMs ?? 0,\n ok: failureKind === \"ok\",\n failureKind,\n errorCount: extra.errorCount ?? 0,\n warningCount: extra.warningCount ?? 0\n });\n };\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n recordMetric(\"rate_limited\");\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n if (!record) throw error(404, `Definition '${guid}' not found`);\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n if (!sharedAccess) {\n if (channel === \"draft\") {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n const versionId = channel === \"live\" ? record.liveVersionId : record.draftVersionId;\n if (!versionId) {\n throw error(404, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n throw error(404, `Definition '${guid}' ${channel} version is missing`);\n }\n localVersionForBackfill = { id: version.id, hasSchema: version.schema !== void 0 };\n metricDefinitionId = guid;\n metricVersionId = version.id;\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 recordMetric(\"share_cap\");\n throw error(429, \"Share link solve cap reached.\");\n }\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n if (localVersionForBackfill && !localVersionForBackfill.hasSchema) {\n const versionId = localVersionForBackfill.id;\n try {\n const schema = await fetchSchemaFromCompute(definitionSource, serverConfig);\n await providers.data.definitions.setVersionSchema(solveCtx, versionId, schema);\n } catch (err) {\n console.warn(`[API/Compute] Schema backfill failed for version ${versionId}:`, err);\n }\n }\n const { scheduler } = await getClient(serverConfig);\n let solvedDefinition;\n const solveStart = performance.now();\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n recordMetric(\"ok\", {\n durationMs: performance.now() - solveStart,\n errorCount: solvedDefinition.errors?.length ?? 0,\n warningCount: solvedDefinition.warnings?.length ?? 0\n });\n if (metricDefinitionId) {\n providers.data.definitions.incrementSolveCount(solveCtx, metricDefinitionId).catch(\n (err) => console.warn(\n `[API/Compute] solveCount increment failed for ${metricDefinitionId}:`,\n err\n )\n );\n }\n } catch (err) {\n const isAbort = err instanceof Error && err.name === \"AbortError\";\n const timedOut = isAbort && !request.signal.aborted;\n recordMetric(timedOut ? \"timeout\" : isAbort ? \"client_abort\" : \"compute_error\", {\n durationMs: performance.now() - solveStart\n });\n if (isAbort) {\n if (request.signal.aborted) {\n throw error(499, \"Client closed request\");\n }\n throw error(\n 504,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n let serialized;\n try {\n serialized = JSON.stringify(solvedDefinition);\n } catch (err) {\n if (err instanceof RangeError) {\n recordMetric(\"too_large\");\n throw error(\n 413,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n throw err;\n }\n if (serialized.length > COMPUTE_RESPONSE_MAX_BYTES) {\n recordMetric(\"too_large\");\n throw error(\n 413,\n \"Solve result is too large to return. This usually means a file output exceeds the supported size.\"\n );\n }\n return new Response(serialized, {\n headers: { \"Content-Type\": \"application/json\" }\n });\n } catch (err) {\n if (isHttpError(err)) throw err;\n if (err instanceof ComputeServerUnconfiguredError) {\n throw error(503, err.message);\n }\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n throw error(503, \"Compute server is unreachable\");\n }\n throw error(500, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Be15h83H.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService, n as getProjectProvider } from \"../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../../chunks/types.js\";\nimport { G as GuidSchema, U as UpdateMetadataInputSchema } from \"../../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE } from \"../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n const changeNoteRaw = formData.get(\"changeNote\");\n const changeNote = typeof changeNoteRaw === \"string\" ? changeNoteRaw.slice(0, 1e3) : void 0;\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const { ctx, record } = await requireEditableDefinition(locals, guidParsed.data);\n const fileExt = ext.slice(1);\n try {\n const data = new Uint8Array(await file.arrayBuffer());\n const project = await getProjectProvider().getProject(ctx, record.projectId);\n const server = await resolveServerForOrg(ctx, project?.orgId ?? null, {\n definitionPin: record.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(data, server);\n const version = await getDefinitionService().uploadVersion(\n ctx,\n guidParsed.data,\n data,\n fileExt,\n file.name,\n schema,\n changeNote\n );\n return json({ success: true, version });\n } catch (err) {\n handleApiError(err, \"Failed to upload definition version\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await getDefinitionService().delete(ctx, guidParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete definition\");\n }\n};\nconst PUT = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => null);\n const parsed = UpdateMetadataInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getDefinitionService().updateMeta(ctx, guidParsed.data, parsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update definition\");\n }\n};\nexport {\n DELETE,\n POST,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BgVWq0qd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, p as getStorageProvider, d as definitionPaths } from \"../../../../../../../chunks/providers.server.js\";\nimport { s as requireCanViewProject } from \"../../../../../../../chunks/access.server.js\";\nimport { C as COVER_IMAGE_CONTENT_TYPES } from \"../../../../../../../chunks/types.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nimport \"../../../../../../../chunks/computeLimits.js\";\nconst GET = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid GUID\");\n const guid = guidParsed.data;\n const ctx = locals.ctx;\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record?.coverImage) throw error(404, \"Image not found\");\n await requireCanViewProject(locals, record.projectId);\n const storedFilename = record.coverImage.split(\"/\").pop() ?? \"cover.webp\";\n const ext = storedFilename.substring(storedFilename.lastIndexOf(\".\")).toLowerCase();\n const contentType = COVER_IMAGE_CONTENT_TYPES[ext] ?? \"image/webp\";\n const bytes = await getStorageProvider().get(definitionPaths.image(guid));\n if (!bytes) throw error(404, \"Image not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": contentType,\n \"Cache-Control\": \"public, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9D,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,YAAY;AAC3E,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;AACrF,EAAE,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,YAAY;AACpE,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AACjD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,WAAW;AACjC,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Bke_K04J.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from \"../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../chunks/slug.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreatePlatformProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n /**\n * Org that physically hosts the project. Storage routing and compute\n * resolution use this — but org membership in this org does NOT grant\n * access. Visibility = 'platform' overrides those defaults.\n *\n * If omitted, the platform admin's first available org is used.\n */\n orgId: z.string().uuid().optional()\n});\nconst GET = async ({ locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n try {\n const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });\n const all = [];\n for (const org of orgs.items) {\n const page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, {\n limit: 1e3\n });\n for (const p of page.items) {\n if (p.visibility === \"platform\") all.push(p);\n }\n }\n return json({ projects: all });\n } catch (err) {\n handleApiError(err, \"Failed to list platform projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const user = requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = CreatePlatformProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;\n if (!hostOrgId) {\n throw error(400, \"A host orgId is required (no active organization in context).\");\n }\n const hostOrg = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId);\n if (!hostOrg) throw error(400, `Host organization '${hostOrgId}' not found.`);\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"platform-project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: hostOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: \"platform\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(SYSTEM_CONTEXT, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in the host organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create platform project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BlVwuKrl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/org/compute/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { c as getComputeServerConfigStore, s as isOrgServer, t as isPlatformServer, f as flag } from \"../../../../../chunks/providers.server.js\";\nimport { x as requireManageOrgCompute } from \"../../../../../chunks/access.server.js\";\nimport \"../../../../../chunks/context.js\";\nimport { s as serversVisibleTo } from \"../../../../../chunks/utils2.js\";\nfunction requireFlag() {\n if (!flag(\"ALLOW_ORG_COMPUTE_OVERRIDE\")) {\n throw error(\n 403,\n \"Per-org compute override is disabled on this instance (ALLOW_ORG_COMPUTE_OVERRIDE).\"\n );\n }\n}\nconst GET = async ({ locals }) => {\n requireFlag();\n requireManageOrgCompute(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const config = await getComputeServerConfigStore().getConfig(ctx);\n const orgId = ctx.actingOrgId;\n const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => {\n const orgServer = s;\n const { apiKey, ...rest } = orgServer;\n return { ...rest, hasApiKey: !!apiKey };\n });\n const visible = serversVisibleTo(config, orgId);\n const catalog = visible.map((s) => ({\n id: s.id,\n label: s.label,\n serverUrl: s.serverUrl,\n scope: s.scope,\n source: isPlatformServer(s) ? \"platform\" : \"org\",\n timeoutMs: s.timeoutMs,\n retryCount: s.retryCount\n }));\n return json({\n servers: owned,\n defaultServerId: config.orgDefaults?.[orgId] ?? null,\n globalDefaultServerId: config.defaultServerId ?? null,\n catalog\n });\n};\nconst PUT = async ({ request, locals }) => {\n requireFlag();\n requireManageOrgCompute(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const orgId = ctx.actingOrgId;\n const body = await request.json().catch(() => null);\n if (!body || typeof body !== \"object\") throw error(400, \"Invalid request body\");\n const incoming = body;\n if (!Array.isArray(incoming.servers)) throw error(400, \"servers must be an array\");\n for (const s of incoming.servers) {\n if (!s.id || typeof s.id !== \"string\") throw error(400, \"Each server needs an id\");\n if (!s.label || typeof s.label !== \"string\") throw error(400, \"Each server needs a label\");\n if (!s.serverUrl || typeof s.serverUrl !== \"string\")\n throw error(400, \"Each server needs a serverUrl\");\n try {\n new URL(s.serverUrl);\n } catch {\n throw error(400, `Invalid serverUrl: ${s.serverUrl}`);\n }\n if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== \"string\")\n throw error(400, \"apiKey must be a string, null, or omitted\");\n }\n const provider = getComputeServerConfigStore();\n const existing = await provider.getConfig(ctx);\n const storedKeyById = new Map(\n existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => [s.id, s.apiKey])\n );\n const next = incoming.servers.map((s) => ({\n id: s.id,\n scope: \"org\",\n ownerOrgId: orgId,\n label: s.label,\n serverUrl: s.serverUrl,\n timeoutMs: s.timeoutMs,\n retryCount: s.retryCount,\n apiKey: s.apiKey === null ? void 0 : s.apiKey ? s.apiKey : storedKeyById.get(s.id)\n }));\n if (typeof incoming.defaultServerId === \"string\") {\n const projected = {\n servers: [\n ...existing.servers.filter((s) => !(isOrgServer(s) && s.ownerOrgId === orgId)),\n ...next\n ],\n defaultServerId: existing.defaultServerId,\n orgDefaults: existing.orgDefaults\n };\n const visibleIds = new Set(serversVisibleTo(projected, orgId).map((s) => s.id));\n if (!visibleIds.has(incoming.defaultServerId)) {\n throw error(400, \"defaultServerId must reference a server visible to this organization\");\n }\n }\n await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);\n return new Response(null, { status: 204 });\n};\nexport {\n GET,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BmjNVAmP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/orgs/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { k as getOrganizationProvider, P as ProviderError, M as MAX_PAGE_LIMIT } from \"../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { b as CreateOrgSchema } from \"../../../../../chunks/context.js\";\nconst GET = async ({ locals, url }) => {\n requireInstanceAdmin(locals);\n const ctx = locals.ctx;\n const rawLimit = Number(url.searchParams.get(\"limit\") ?? 200);\n const limit = Number.isFinite(rawLimit) ? Math.min(Math.max(rawLimit, 1), MAX_PAGE_LIMIT) : 200;\n const cursor = url.searchParams.get(\"cursor\") ?? void 0;\n try {\n const page = await getOrganizationProvider().listOrgs(ctx, { limit, cursor });\n return json({ orgs: page.items, nextCursor: page.nextCursor });\n } catch (err) {\n handleApiError(err, \"Failed to list orgs\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const user = requireInstanceAdmin(locals);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = CreateOrgSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const org = {\n id: randomUUID(),\n name: parsed.data.name,\n slug: parsed.data.slug,\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await getOrganizationProvider().createOrg(ctx, org);\n return json(org, { status: 201 });\n } catch (err) {\n if (err instanceof ProviderError && err.statusCode === 409) {\n throw error(409, err.message);\n }\n handleApiError(err, \"Failed to create org\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACvC,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;AAC/D,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,GAAG;AACjG,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM;AACzD,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,uBAAuB,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjF,IAAI,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAClE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,qBAAqB,CAAC;AAC9C,EAAE;AACF;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,EAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAC3C,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;AAChD,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,EAAE,MAAM,GAAG,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACxD,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,EAAE,EAAE,UAAU,EAAE;AACpB,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;AAC1B,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;AAC1B,IAAI,OAAO,EAAE,IAAI,CAAC,EAAE;AACpB,IAAI,SAAS,EAAE,IAAI,CAAC,EAAE;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,EAAE;AACtB,IAAI,SAAS,EAAE,GAAG;AAClB,IAAI,SAAS,EAAE,GAAG;AAClB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,uBAAuB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;AACvD,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAChE,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;AACnC,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE,sBAAsB,CAAC;AAC/C,EAAE;AACF;;;;"}
@@ -1,65 +0,0 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { c as getComputeServerConfigStore } from './providers.server-C3fQ7ZdV.js';
3
- import './context-BJnJL8ES.js';
4
- import { f as findServerById } from './utils2-BqfluBM6.js';
5
- import { v as requireManageCompute } from './access.server-CAPd1-c2.js';
6
- import './shared-server-C3WdcJCQ.js';
7
- import 'node:url';
8
- import 'node:path';
9
- import 'node:fs';
10
- import 'node:crypto';
11
- import 'node:fs/promises';
12
- import '@supabase/supabase-js';
13
- import 'zod';
14
- import './api-errors-BhVEeWTV.js';
15
- import '@selvajs/compute/core';
16
-
17
- const TIMEOUT_MS = 8e3;
18
- function fetchFromServer(serverUrl, apiKey, path) {
19
- const controller = new AbortController();
20
- const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
21
- const headers = {};
22
- if (apiKey) headers["RhinoComputeKey"] = apiKey;
23
- return fetch(new URL(path, serverUrl).toString(), { signal: controller.signal, headers }).finally(
24
- () => clearTimeout(timer)
25
- );
26
- }
27
- const GET = async ({ url, locals }) => {
28
- requireManageCompute(locals);
29
- const serverId = url.searchParams.get("serverId");
30
- if (!serverId) throw error(400, "serverId required");
31
- const config = await getComputeServerConfigStore().getConfig(locals.ctx);
32
- const server = findServerById(config, serverId);
33
- if (!server) throw error(404, "Server not found");
34
- try {
35
- const [healthRes, versionRes, pluginsRes] = await Promise.all([
36
- fetchFromServer(server.serverUrl, server.apiKey, "/healthcheck"),
37
- fetchFromServer(server.serverUrl, server.apiKey, "/version"),
38
- fetchFromServer(server.serverUrl, server.apiKey, "/plugins/gh/installed")
39
- ]);
40
- const reachable = healthRes.ok;
41
- const version = versionRes.ok ? await versionRes.json() : null;
42
- const plugins = pluginsRes.ok ? await pluginsRes.json() : {};
43
- const selvaVersion = plugins["Selva"] ?? null;
44
- return json({
45
- reachable,
46
- rhinoVersion: version?.rhino ?? null,
47
- computeVersion: version?.compute ?? null,
48
- selvaInstalled: selvaVersion !== null,
49
- selvaVersion,
50
- plugins
51
- });
52
- } catch {
53
- return json({
54
- reachable: false,
55
- rhinoVersion: null,
56
- computeVersion: null,
57
- selvaInstalled: false,
58
- selvaVersion: null,
59
- plugins: {}
60
- });
61
- }
62
- };
63
-
64
- export { GET };
65
- //# sourceMappingURL=_server.ts-BwMyXo0z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BwMyXo0z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/compute/status/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { c as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport \"../../../../../../chunks/context.js\";\nimport { f as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { v as requireManageCompute } from \"../../../../../../chunks/access.server.js\";\nconst TIMEOUT_MS = 8e3;\nfunction fetchFromServer(serverUrl, apiKey, path) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);\n const headers = {};\n if (apiKey) headers[\"RhinoComputeKey\"] = apiKey;\n return fetch(new URL(path, serverUrl).toString(), { signal: controller.signal, headers }).finally(\n () => clearTimeout(timer)\n );\n}\nconst GET = async ({ url, locals }) => {\n requireManageCompute(locals);\n const serverId = url.searchParams.get(\"serverId\");\n if (!serverId) throw error(400, \"serverId required\");\n const config = await getComputeServerConfigStore().getConfig(locals.ctx);\n const server = findServerById(config, serverId);\n if (!server) throw error(404, \"Server not found\");\n try {\n const [healthRes, versionRes, pluginsRes] = await Promise.all([\n fetchFromServer(server.serverUrl, server.apiKey, \"/healthcheck\"),\n fetchFromServer(server.serverUrl, server.apiKey, \"/version\"),\n fetchFromServer(server.serverUrl, server.apiKey, \"/plugins/gh/installed\")\n ]);\n const reachable = healthRes.ok;\n const version = versionRes.ok ? await versionRes.json() : null;\n const plugins = pluginsRes.ok ? await pluginsRes.json() : {};\n const selvaVersion = plugins[\"Selva\"] ?? null;\n return json({\n reachable,\n rhinoVersion: version?.rhino ?? null,\n computeVersion: version?.compute ?? null,\n selvaInstalled: selvaVersion !== null,\n selvaVersion,\n plugins\n });\n } catch {\n return json({\n reachable: false,\n rhinoVersion: null,\n computeVersion: null,\n selvaInstalled: false,\n selvaVersion: null,\n plugins: {}\n });\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,MAAM,UAAU,GAAG,GAAG;AACtB,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;AAClD,EAAE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC1C,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;AAChE,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM;AACjD,EAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACnG,IAAI,MAAM,YAAY,CAAC,KAAK;AAC5B,GAAG;AACH;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK;AACvC,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACnD,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACtD,EAAE,MAAM,MAAM,GAAG,MAAM,2BAA2B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1E,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACjD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACnD,EAAE,IAAI;AACN,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAClE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;AACtE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AAClE,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB;AAC9E,KAAK,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE;AAClC,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI;AAClE,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;AACjD,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,SAAS;AACf,MAAM,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;AAC1C,MAAM,cAAc,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;AAC9C,MAAM,cAAc,EAAE,YAAY,KAAK,IAAI;AAC3C,MAAM,YAAY;AAClB,MAAM;AACN,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,SAAS,EAAE,KAAK;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,cAAc,EAAE,IAAI;AAC1B,MAAM,cAAc,EAAE,KAAK;AAC3B,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,OAAO,EAAE;AACf,KAAK,CAAC;AACN,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CF65FKS6.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 { n as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { n as requireCanManageMembers, A as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { f 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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CMHRHdCD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { n as getProjectProvider, k as getOrganizationProvider } from \"../../../../../chunks/providers.server.js\";\nimport { m as requireCanManage, l as requireCanEditProjectSettings, B as withAdminBypass, f as canChangeVisibilityToPublic } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema, v as validateProjectFlags } from \"../../../../../chunks/context.js\";\nconst UpdateProjectBody = z.object({\n name: z.string().min(1).max(128).trim(),\n description: z.string().max(2e3).nullish(),\n visibility: ProjectVisibilitySchema,\n autoJoinOnUpload: z.boolean()\n}).partial();\nconst PATCH = async ({ params, request, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n const { ctx, project: existing } = await requireCanEditProjectSettings(locals, id);\n const body = await request.json().catch(() => null);\n const parsed = UpdateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n if (parsed.data.visibility !== void 0 && parsed.data.visibility === \"public\" && existing.visibility !== \"public\") {\n const orgMember = await getOrganizationProvider().getOrgMember(ctx, existing.orgId, ctx.userId);\n const passes = withAdminBypass(\n ctx.platformPermissions,\n () => canChangeVisibilityToPublic({ orgMember })\n );\n if (!passes) {\n throw error(403, \"Only org owners or admins can make a project public.\");\n }\n }\n const mergedVisibility = parsed.data.visibility ?? existing.visibility;\n const mergedAutoJoin = parsed.data.autoJoinOnUpload ?? existing.autoJoinOnUpload;\n const flagIssues = validateProjectFlags({\n visibility: mergedVisibility,\n autoJoinOnUpload: mergedAutoJoin\n });\n if (flagIssues.length > 0) {\n throw error(400, flagIssues.map((i) => `${i.path}: ${i.message}`).join(\"; \"));\n }\n const patch = {};\n if (parsed.data.name !== void 0) {\n patch.name = parsed.data.name;\n patch.slug = slugify(parsed.data.name);\n }\n if (parsed.data.description !== void 0) {\n patch.description = parsed.data.description ?? void 0;\n }\n if (parsed.data.visibility !== void 0) patch.visibility = parsed.data.visibility;\n if (parsed.data.autoJoinOnUpload !== void 0) {\n patch.autoJoinOnUpload = parsed.data.autoJoinOnUpload;\n }\n try {\n await getProjectProvider().updateProject(ctx, id, patch);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update project\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManage(locals, id);\n const ctx = locals.ctx;\n try {\n await getProjectProvider().deleteProject(ctx, id);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to delete project\");\n }\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Ca_OJJFC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as flag, u as providers } from \"../../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nconst DELETE = async ({ params, locals }) => {\n if (!flag(\"ENABLE_SHARING\")) {\n throw error(404, \"Share links are disabled on this instance (ENABLE_SHARING).\");\n }\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid or missing GUID\");\n const linkParsed = GuidSchema.safeParse(params.linkId);\n if (!linkParsed.success) throw error(400, \"Invalid or missing link ID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n const existing = await providers.data.shareLinks.getById(ctx, linkParsed.data);\n if (!existing || existing.definitionId !== guidParsed.data) {\n throw error(404, \"Share link not found.\");\n }\n await providers.data.shareLinks.revoke(ctx, linkParsed.data);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke share link\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,6DAA6D,CAAC;AACnF,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtE,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACxD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AACzE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAClF,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,UAAU,CAAC,IAAI,EAAE;AAChE,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAChE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACtD,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Cc-srcRk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { a as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const code = url.searchParams.get(\"code\");\n if (!code) throw error(400, \"Missing authorization code\");\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const result = await oauth.exchangeOAuthCode(code);\n if (!result) throw error(401, \"OAuth exchange failed\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACpD,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC;AACxD,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Cg1WgIQn.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as flag, m as getPlatformProjectGrantStore } from \"../../../../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../../chunks/context.js\";\nconst DELETE = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const { grantId } = params;\n if (!grantId) throw error(400, \"Missing grant ID\");\n try {\n await getPlatformProjectGrantStore().delete(SYSTEM_CONTEXT, grantId);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke grant\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;AACtE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAC5B,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACpD,EAAE,IAAI;AACN,IAAI,MAAM,4BAA4B,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC;AACxE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACjD,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Cg6LtEov.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/start/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { a as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nconst ALLOWED_PROVIDERS = [\"google\", \"github\", \"azure\", \"gitlab\"];\nfunction isAllowedProvider(value) {\n return value !== null && ALLOWED_PROVIDERS.includes(value);\n}\nconst GET = async ({ url }) => {\n const provider = url.searchParams.get(\"provider\");\n if (!isAllowedProvider(provider)) {\n throw error(400, `Invalid provider. Allowed: ${ALLOWED_PROVIDERS.join(\", \")}`);\n }\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const redirectTo = url.searchParams.get(\"redirectTo\") ?? \"/library\";\n const callbackUrl = new URL(\"/auth/supabase/callback\", url.origin);\n if (redirectTo.startsWith(\"/\")) {\n callbackUrl.searchParams.set(\"redirectTo\", redirectTo);\n }\n const authorizationUrl = await oauth.getOAuthAuthorizationUrl(provider, callbackUrl.toString());\n redirect(303, authorizationUrl);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjE,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,OAAO,KAAK,KAAK,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5D;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACnD,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AACpC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE;AACF,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,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU;AACrE,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC;AACpE,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;AACjG,EAAE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CpsGzKQC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { k as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { y as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-D2Qb9pui.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/files/_...path_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, d as definitionPaths, p as getStorageProvider } from \"../../../../../chunks/providers.server.js\";\nimport { G as GuidSchema } from \"../../../../../chunks/context.js\";\nimport { s as requireCanViewProject } from \"../../../../../chunks/access.server.js\";\nconst ALLOWED_EXTENSIONS = {\n \".webp\": \"image/webp\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".png\": \"image/png\",\n \".gif\": \"image/gif\"\n};\nconst COVER_PATH_PATTERN = /^definitions\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\/cover\\.([a-z]+)$/i;\nconst GET = async ({ params, locals }) => {\n const storagePath = params.path;\n if (!storagePath) throw error(400, \"Missing path\");\n const match = COVER_PATH_PATTERN.exec(storagePath);\n if (!match) throw error(404, \"File not found\");\n const [, guid, rawExt] = match;\n const ext = `.${rawExt.toLowerCase()}`;\n if (!ALLOWED_EXTENSIONS[ext]) throw error(404, \"File not found\");\n const guidParsed = GuidSchema.safeParse(guid);\n if (!guidParsed.success) throw error(404, \"File not found\");\n if (!locals.ctx) throw error(401, \"Unauthorized\");\n const record = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!record) throw error(404, \"File not found\");\n await requireCanViewProject(locals, record.projectId);\n const canonicalPath = definitionPaths.image(guidParsed.data);\n const bytes = await getStorageProvider().get(canonicalPath);\n if (!bytes) throw error(404, \"File not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": ALLOWED_EXTENSIONS[ext],\n \"Cache-Control\": \"private, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAM,kBAAkB,GAAG;AAC3B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE;AACV,CAAC;AACD,MAAM,kBAAkB,GAAG,iGAAiG;AACvH,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI;AACjC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACpD,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAClE,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC7D,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC3E,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjD,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7D,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,kBAAkB,CAAC,GAAG,CAAC;AAC7C,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DEBzt_W2.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/compute/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { c as getComputeServerConfigStore } from \"../../../../../chunks/providers.server.js\";\nimport { v as requireManageCompute } from \"../../../../../chunks/access.server.js\";\nimport \"../../../../../chunks/context.js\";\nimport { p as platformServers } from \"../../../../../chunks/utils2.js\";\nconst GET = async ({ locals }) => {\n requireManageCompute(locals);\n try {\n const config = await getComputeServerConfigStore().getConfig(locals.ctx);\n const servers = platformServers(config).map(\n ({ apiKey, ...rest }) => ({\n ...rest,\n hasApiKey: !!apiKey\n })\n );\n return json({\n servers,\n defaultServerId: config.defaultServerId\n });\n } catch (err) {\n console.error(\"[Compute GET] Failed:\", err);\n throw error(500, \"Failed to load compute config\");\n }\n};\nconst PUT = async ({ request, locals }) => {\n requireManageCompute(locals);\n const body = await request.json().catch(() => null);\n if (!body || typeof body !== \"object\") throw error(400, \"Invalid request body\");\n const incoming = body;\n if (!Array.isArray(incoming.servers)) throw error(400, \"servers must be an array\");\n for (const s of incoming.servers) {\n if (!s.id || typeof s.id !== \"string\") throw error(400, \"Each server needs an id\");\n if (!s.label || typeof s.label !== \"string\") throw error(400, \"Each server needs a label\");\n if (!s.serverUrl || typeof s.serverUrl !== \"string\")\n throw error(400, \"Each server needs a serverUrl\");\n try {\n new URL(s.serverUrl);\n } catch {\n throw error(400, `Invalid serverUrl: ${s.serverUrl}`);\n }\n if (s.sharedWith !== \"all\" && !Array.isArray(s.sharedWith)) {\n throw error(400, 'sharedWith must be \"all\" or an array of org ids');\n }\n if (Array.isArray(s.sharedWith) && s.sharedWith.some((x) => typeof x !== \"string\")) {\n throw error(400, \"sharedWith array must contain strings\");\n }\n if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== \"string\")\n throw error(400, \"apiKey must be a string, null, or omitted\");\n }\n if (incoming.defaultServerId) {\n const found = incoming.servers.find((s) => s.id === incoming.defaultServerId);\n if (!found) throw error(400, \"defaultServerId must reference one of the submitted servers\");\n }\n try {\n const provider = getComputeServerConfigStore();\n const existing = await provider.getConfig(locals.ctx);\n const storedKeyById = new Map(platformServers(existing).map((s) => [s.id, s.apiKey]));\n const next = incoming.servers.map(\n ({ apiKey, sharedWith, ...rest }) => ({\n ...rest,\n scope: \"platform\",\n sharedWith: sharedWith === \"all\" ? \"all\" : [...sharedWith],\n apiKey: apiKey === null ? void 0 : apiKey ? apiKey : storedKeyById.get(rest.id)\n })\n );\n await provider.savePlatformServers(locals.ctx, next, incoming.defaultServerId);\n return new Response(null, { status: 204 });\n } catch (err) {\n console.error(\"[Compute PUT] Failed:\", err);\n throw error(500, \"Failed to save compute config\");\n }\n};\nexport {\n GET,\n PUT\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,2BAA2B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAC5E,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG;AAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM;AAChC,QAAQ,GAAG,IAAI;AACf,QAAQ,SAAS,EAAE,CAAC,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,OAAO;AACb,MAAM,eAAe,EAAE,MAAM,CAAC;AAC9B,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC;AAC/C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AACrD,EAAE;AACF;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACjF,EAAE,MAAM,QAAQ,GAAG,IAAI;AACvB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC;AACpF,EAAE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC;AACtF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,2BAA2B,CAAC;AAC9F,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;AACvD,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AACvD,IAAI,IAAI;AACR,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1B,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;AAChE,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,iDAAiD,CAAC;AACzE,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE;AACxF,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,uCAAuC,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;AAChF,MAAM,MAAM,KAAK,CAAC,GAAG,EAAE,2CAA2C,CAAC;AACnE,EAAE;AACF,EAAE,IAAI,QAAQ,CAAC,eAAe,EAAE;AAChC,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,eAAe,CAAC;AACjF,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,6DAA6D,CAAC;AAC/F,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,2BAA2B,EAAE;AAClD,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AACzD,IAAI,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACzF,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG;AACrC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,MAAM;AAC5C,QAAQ,GAAG,IAAI;AACf,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC;AAClE,QAAQ,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtF,OAAO;AACP,KAAK;AACL,IAAI,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC;AAClF,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9C,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC;AAC/C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC;AACrD,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DVOhTvBf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { a as getAuthProvider, k as getOrganizationProvider, l as getPermissionStore } from \"../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../chunks/access.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../chunks/permissions.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, d as OrgPermissionSchema, S as SYSTEM_CONTEXT, j as hasPermission, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../chunks/context.js\";\nimport { f as flattenPermissions, s as splitFlatPermissions } from \"../../../../../chunks/permissions-compat.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst BaseUserBody = z.object({\n email: z.string().email(\"Valid email is required\"),\n permissions: z.array(FlatPermissionSchema)\n});\nconst PasswordUserBody = BaseUserBody.extend({\n password: z.string().min(8, \"Password must be at least 8 characters\").optional()\n});\nconst GET = async ({ locals }) => {\n requireManageInstanceUsers(locals);\n const page = await getAuthProvider().listUsers({ limit: 200 });\n if (page === null) {\n throw error(\n 501,\n \"User management is not supported by the current auth provider. Configure DATA_PATH (local provider) or check your provider wiring.\"\n );\n }\n const orgId = locals.ctx?.actingOrgId;\n const orgs = getOrganizationProvider();\n const userIds = page.items.map((u) => u.id);\n const platformByUser = await getPermissionStore().getForBatch(locals.ctx, userIds);\n const flattened = await Promise.all(\n page.items.map(async (u) => {\n let orgPerms = [];\n if (orgId) {\n const member = await orgs.getOrgMember(SYSTEM_CONTEXT, orgId, u.id);\n orgPerms = member?.permissions ?? [];\n }\n const platformPerms = platformByUser.get(u.id) ?? [];\n return {\n ...u,\n platformPermissions: platformPerms,\n permissions: flattenPermissions(\n platformPerms,\n orgPerms\n )\n };\n })\n );\n return json(flattened);\n};\nconst POST = async ({ request, locals }) => {\n requireManageInstanceUsers(locals);\n const auth = getAuthProvider();\n const body = await request.json().catch(() => null);\n const parsed = PasswordUserBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const { email, password, permissions } = parsed.data;\n const { platform, org } = splitFlatPermissions(permissions);\n if (platform.length > 0 && !hasPermission(locals.ctx, \"instance_admin\")) {\n throw error(403, \"Only a platform admin can grant platform-scope permissions\");\n }\n try {\n let user;\n if (auth.passwordAuth) {\n if (!password) throw error(400, \"Password is required\");\n user = await auth.passwordAuth.createUserWithPassword(email, password);\n } else if (auth.createUser) {\n user = await auth.createUser(email);\n } else {\n throw error(\n 501,\n `User creation is not supported by ${auth.name}. Users are managed externally.`\n );\n }\n if (platform.length > 0) {\n await setUserPlatformPermissions(locals.ctx, user.id, platform);\n }\n const orgId = locals.ctx?.actingOrgId;\n if (orgId) {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await getOrganizationProvider().addOrgMember(SYSTEM_CONTEXT, {\n orgId,\n userId: user.id,\n role: \"member\",\n permissions: org.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)),\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: locals.user?.id ?? user.id,\n deletedAt: null\n });\n }\n return json(user, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create user\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DW-Oh4l9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/email/callback/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { a as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const emailLink = getAuthProvider().emailLink;\n if (!emailLink) {\n throw error(501, \"Email sign-in is not supported by this provider.\");\n }\n const result = await emailLink.verifyMagicLink(url.toString());\n if (!result) throw error(401, \"This sign-in link is invalid or has expired.\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n if (result.refreshToken) 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,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,kDAAkD,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAChE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,8CAA8C,CAAC;AAC/E,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AACzE,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;;;;"}