@selvajs/selva 2.0.8 → 2.0.9

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 (340) hide show
  1. package/build/client/_app/immutable/chunks/{BldLEHH8.js → 8jxh9FTC.js} +1 -1
  2. package/build/client/_app/immutable/chunks/8jxh9FTC.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/8jxh9FTC.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{B0M-tm96.js → B1839-Qe.js} +1 -1
  5. package/build/client/_app/immutable/chunks/B1839-Qe.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/B1839-Qe.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{CyUe9WIm.js → BB7Ce_Ao.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BB7Ce_Ao.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BB7Ce_Ao.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{Ba2Ugq_t.js → BG4KYJxd.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BG4KYJxd.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BG4KYJxd.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BLObdRkl.js +3 -0
  14. package/build/client/_app/immutable/chunks/BLObdRkl.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BLObdRkl.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{BnGN4Ix-.js → Dx1NLq6A.js} +1 -1
  17. package/build/client/_app/immutable/chunks/Dx1NLq6A.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/Dx1NLq6A.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.R0cA7z-3.js → app.iSZ5n5at.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.iSZ5n5at.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.iSZ5n5at.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.DN1mprbr.js +1 -0
  23. package/build/client/_app/immutable/entry/start.DN1mprbr.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.DN1mprbr.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.iTQblN3h.js → 1.B3iyxTLe.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.B3iyxTLe.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.B3iyxTLe.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{11.D7vQOfVW.js → 11.C0bOSA5Z.js} +1 -1
  29. package/build/client/_app/immutable/nodes/11.C0bOSA5Z.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/11.C0bOSA5Z.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{13.CEGRwaw5.js → 13.BBX4st-t.js} +1 -1
  32. package/build/client/_app/immutable/nodes/13.BBX4st-t.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/13.BBX4st-t.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{14.DP0RHUIL.js → 14.S-GLVBVi.js} +1 -1
  35. package/build/client/_app/immutable/nodes/14.S-GLVBVi.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/14.S-GLVBVi.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/15.CAs53i3e.js +16 -0
  38. package/build/client/_app/immutable/nodes/15.CAs53i3e.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/15.CAs53i3e.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{16.ChhIZf_i.js → 16.ukqcuKdq.js} +1 -1
  41. package/build/client/_app/immutable/nodes/16.ukqcuKdq.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/16.ukqcuKdq.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{17.DL0oF7lP.js → 17.DsZpiT_T.js} +1 -1
  44. package/build/client/_app/immutable/nodes/17.DsZpiT_T.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/17.DsZpiT_T.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{19.CCJMnv49.js → 19.De1qTu0Z.js} +1 -1
  47. package/build/client/_app/immutable/nodes/19.De1qTu0Z.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/19.De1qTu0Z.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js +1 -0
  50. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{20.De0vu3AF.js → 20.DxsctpJH.js} +1 -1
  53. package/build/client/_app/immutable/nodes/20.DxsctpJH.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/20.DxsctpJH.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{21.DpNlPoKj.js → 21.-SL0S8PQ.js} +1 -1
  56. package/build/client/_app/immutable/nodes/21.-SL0S8PQ.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/21.-SL0S8PQ.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{23.CMmwabln.js → 23.VZ_boRL-.js} +1 -1
  59. package/build/client/_app/immutable/nodes/23.VZ_boRL-.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/23.VZ_boRL-.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{24.CuYhfWpg.js → 24.B9kY2pb5.js} +1 -1
  62. package/build/client/_app/immutable/nodes/24.B9kY2pb5.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/24.B9kY2pb5.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{27.xAPzIANf.js → 27.DZwrstUI.js} +1 -1
  65. package/build/client/_app/immutable/nodes/27.DZwrstUI.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/27.DZwrstUI.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{28.DwzOZwKl.js → 28.MnyfwNy0.js} +1 -1
  68. package/build/client/_app/immutable/nodes/28.MnyfwNy0.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/28.MnyfwNy0.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{29.8CK2Warj.js → 29.CNTJCITP.js} +1 -1
  71. package/build/client/_app/immutable/nodes/29.CNTJCITP.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/29.CNTJCITP.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{3.CRsFANhR.js → 3.KI4lh69U.js} +1 -1
  74. package/build/client/_app/immutable/nodes/3.KI4lh69U.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/3.KI4lh69U.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{30.Cj-Aax_q.js → 30.Ct1smdjS.js} +1 -1
  77. package/build/client/_app/immutable/nodes/30.Ct1smdjS.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/30.Ct1smdjS.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{5.CtPFMefZ.js → 5.BN9x0bOB.js} +1 -1
  80. package/build/client/_app/immutable/nodes/5.BN9x0bOB.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/5.BN9x0bOB.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{6.DpMqwqL2.js → 6.BU_SGWVX.js} +1 -1
  83. package/build/client/_app/immutable/nodes/6.BU_SGWVX.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/6.BU_SGWVX.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{7.B8Lrh4Sn.js → 7.9jzNcaAs.js} +1 -1
  86. package/build/client/_app/immutable/nodes/7.9jzNcaAs.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/7.9jzNcaAs.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{8.BpnmUNwu.js → 8.BvaBLt60.js} +1 -1
  89. package/build/client/_app/immutable/nodes/8.BvaBLt60.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/8.BvaBLt60.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{9.-tjBCa1C.js → 9.CzG8ag1t.js} +1 -1
  92. package/build/client/_app/immutable/nodes/9.CzG8ag1t.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/9.CzG8ag1t.js.gz +0 -0
  94. package/build/client/_app/version.json +1 -1
  95. package/build/client/_app/version.json.br +0 -0
  96. package/build/client/_app/version.json.gz +0 -0
  97. package/build/server/chunks/{0-wC8vebb2.js → 0-CybFR_P8.js} +2 -2
  98. package/build/server/chunks/{0-wC8vebb2.js.map → 0-CybFR_P8.js.map} +1 -1
  99. package/build/server/chunks/{1-CSxxdOGx.js → 1-CUP4tMEn.js} +2 -2
  100. package/build/server/chunks/{1-CSxxdOGx.js.map → 1-CUP4tMEn.js.map} +1 -1
  101. package/build/server/chunks/{10-8FzClb5u.js → 10-zdkaINz9.js} +4 -4
  102. package/build/server/chunks/{10-8FzClb5u.js.map → 10-zdkaINz9.js.map} +1 -1
  103. package/build/server/chunks/{11-DPGyzjwV.js → 11-DHKq5wgm.js} +6 -6
  104. package/build/server/chunks/{11-DPGyzjwV.js.map → 11-DHKq5wgm.js.map} +1 -1
  105. package/build/server/chunks/{12-C_P4jkDv.js → 12-XbcleGFd.js} +2 -2
  106. package/build/server/chunks/{12-C_P4jkDv.js.map → 12-XbcleGFd.js.map} +1 -1
  107. package/build/server/chunks/{13-BTAtM4vf.js → 13-D9eyZVCZ.js} +5 -4
  108. package/build/server/chunks/13-D9eyZVCZ.js.map +1 -0
  109. package/build/server/chunks/{14-x6FJT6Iw.js → 14-qYW-h0op.js} +4 -3
  110. package/build/server/chunks/14-qYW-h0op.js.map +1 -0
  111. package/build/server/chunks/{15-DGiz0g4w.js → 15-wi_onU5j.js} +6 -5
  112. package/build/server/chunks/15-wi_onU5j.js.map +1 -0
  113. package/build/server/chunks/{16-CuluBZaI.js → 16-BM4yvuKv.js} +5 -5
  114. package/build/server/chunks/{16-CuluBZaI.js.map → 16-BM4yvuKv.js.map} +1 -1
  115. package/build/server/chunks/{17-DZr92is3.js → 17-CexG3wap.js} +2 -2
  116. package/build/server/chunks/{17-DZr92is3.js.map → 17-CexG3wap.js.map} +1 -1
  117. package/build/server/chunks/{18-DeVS-pOT.js → 18-DbXlY9LE.js} +2 -2
  118. package/build/server/chunks/{18-DeVS-pOT.js.map → 18-DbXlY9LE.js.map} +1 -1
  119. package/build/server/chunks/{19-B0hG9_9r.js → 19-AX88i2oC.js} +5 -3
  120. package/build/server/chunks/19-AX88i2oC.js.map +1 -0
  121. package/build/server/chunks/{2-_zknF6gb.js → 2-BMbliYzg.js} +7 -6
  122. package/build/server/chunks/2-BMbliYzg.js.map +1 -0
  123. package/build/server/chunks/{20-Db0y8qIh.js → 20-S3QlkFoL.js} +9 -9
  124. package/build/server/chunks/{20-Db0y8qIh.js.map → 20-S3QlkFoL.js.map} +1 -1
  125. package/build/server/chunks/{21-CQ2mvrOt.js → 21-BAKPEyjQ.js} +3 -3
  126. package/build/server/chunks/{21-CQ2mvrOt.js.map → 21-BAKPEyjQ.js.map} +1 -1
  127. package/build/server/chunks/{23-CSrUCr2t.js → 23-DCiJWF0i.js} +6 -6
  128. package/build/server/chunks/{23-CSrUCr2t.js.map → 23-DCiJWF0i.js.map} +1 -1
  129. package/build/server/chunks/{24-D14nUSAR.js → 24-B3gXWNYD.js} +4 -4
  130. package/build/server/chunks/{24-D14nUSAR.js.map → 24-B3gXWNYD.js.map} +1 -1
  131. package/build/server/chunks/{25-ef6c33Ul.js → 25-9yYU1YBX.js} +2 -2
  132. package/build/server/chunks/{25-ef6c33Ul.js.map → 25-9yYU1YBX.js.map} +1 -1
  133. package/build/server/chunks/{27-PXKn2m8M.js → 27-GMsHFaaf.js} +4 -4
  134. package/build/server/chunks/{27-PXKn2m8M.js.map → 27-GMsHFaaf.js.map} +1 -1
  135. package/build/server/chunks/{28-DYuI_Cgr.js → 28-DnplSoj0.js} +3 -3
  136. package/build/server/chunks/{28-DYuI_Cgr.js.map → 28-DnplSoj0.js.map} +1 -1
  137. package/build/server/chunks/{29-CrDIu9-c.js → 29-orcjqU9J.js} +3 -3
  138. package/build/server/chunks/{29-CrDIu9-c.js.map → 29-orcjqU9J.js.map} +1 -1
  139. package/build/server/chunks/{3-Dk3O-ses.js → 3-B57IoxU7.js} +2 -2
  140. package/build/server/chunks/{3-Dk3O-ses.js.map → 3-B57IoxU7.js.map} +1 -1
  141. package/build/server/chunks/{30-ZXGKLYtR.js → 30-UoUq_V5A.js} +3 -3
  142. package/build/server/chunks/{30-ZXGKLYtR.js.map → 30-UoUq_V5A.js.map} +1 -1
  143. package/build/server/chunks/{31-CirH19D6.js → 31-BRqIoy8w.js} +2 -2
  144. package/build/server/chunks/{31-CirH19D6.js.map → 31-BRqIoy8w.js.map} +1 -1
  145. package/build/server/chunks/{32-CZojKYOy.js → 32-D1Mk43AX.js} +2 -2
  146. package/build/server/chunks/{32-CZojKYOy.js.map → 32-D1Mk43AX.js.map} +1 -1
  147. package/build/server/chunks/{5-DZF9fTQJ.js → 5-DMGFkyK4.js} +2 -2
  148. package/build/server/chunks/{5-DZF9fTQJ.js.map → 5-DMGFkyK4.js.map} +1 -1
  149. package/build/server/chunks/{6-Dv8dgI1X.js → 6-CYaPOOMj.js} +3 -3
  150. package/build/server/chunks/{6-Dv8dgI1X.js.map → 6-CYaPOOMj.js.map} +1 -1
  151. package/build/server/chunks/{7-Be6Wvhky.js → 7-Dk_VmXtf.js} +2 -2
  152. package/build/server/chunks/{7-Be6Wvhky.js.map → 7-Dk_VmXtf.js.map} +1 -1
  153. package/build/server/chunks/{8-CPaEsylT.js → 8-Ce8EjQtB.js} +3 -3
  154. package/build/server/chunks/{8-CPaEsylT.js.map → 8-Ce8EjQtB.js.map} +1 -1
  155. package/build/server/chunks/{9-DwCoeD2g.js → 9-DghkKEyM.js} +3 -3
  156. package/build/server/chunks/{9-DwCoeD2g.js.map → 9-DghkKEyM.js.map} +1 -1
  157. package/build/server/chunks/{_layout.svelte-HGSVxA0R.js → _layout.svelte-u5-cJLoF.js} +2 -2
  158. package/build/server/chunks/_layout.svelte-u5-cJLoF.js.map +1 -0
  159. package/build/server/chunks/{_page.svelte-BptS1zpT.js → _page.svelte-CRZeKEsV.js} +2 -1
  160. package/build/server/chunks/_page.svelte-CRZeKEsV.js.map +1 -0
  161. package/build/server/chunks/{_server.ts-C2YLv0RS.js → _server.ts-07x4zjP2.js} +4 -4
  162. package/build/server/chunks/{_server.ts-C2YLv0RS.js.map → _server.ts-07x4zjP2.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-B0gZCMdj.js → _server.ts-7mF4ytYC.js} +4 -4
  164. package/build/server/chunks/{_server.ts-B0gZCMdj.js.map → _server.ts-7mF4ytYC.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-Cjz2LZbt.js → _server.ts-B-LWyGZ8.js} +5 -4
  166. package/build/server/chunks/_server.ts-B-LWyGZ8.js.map +1 -0
  167. package/build/server/chunks/{_server.ts-CKHs57oZ.js → _server.ts-B2zQRDbu.js} +2 -2
  168. package/build/server/chunks/{_server.ts-CKHs57oZ.js.map → _server.ts-B2zQRDbu.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-BSoy1Ljl.js → _server.ts-B6Zmqwf5.js} +4 -4
  170. package/build/server/chunks/{_server.ts-BSoy1Ljl.js.map → _server.ts-B6Zmqwf5.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-C3Cn_AWJ.js → _server.ts-BDeXzj8U.js} +4 -4
  172. package/build/server/chunks/{_server.ts-C3Cn_AWJ.js.map → _server.ts-BDeXzj8U.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-I3zLnhsz.js → _server.ts-BEGEbcQ_.js} +4 -4
  174. package/build/server/chunks/{_server.ts-I3zLnhsz.js.map → _server.ts-BEGEbcQ_.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-CyhcRpfW.js → _server.ts-BEW1ndmL.js} +5 -5
  176. package/build/server/chunks/{_server.ts-CyhcRpfW.js.map → _server.ts-BEW1ndmL.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-1nksAmT8.js → _server.ts-BSZknGSV.js} +4 -4
  178. package/build/server/chunks/{_server.ts-1nksAmT8.js.map → _server.ts-BSZknGSV.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-BTi2idVf.js → _server.ts-BUI9hwVF.js} +4 -4
  180. package/build/server/chunks/{_server.ts-BTi2idVf.js.map → _server.ts-BUI9hwVF.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-CZW4ge6f.js → _server.ts-BX0JGorf.js} +4 -4
  182. package/build/server/chunks/{_server.ts-CZW4ge6f.js.map → _server.ts-BX0JGorf.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-BYlDwqEg.js → _server.ts-BXGCxm6J.js} +5 -5
  184. package/build/server/chunks/{_server.ts-BYlDwqEg.js.map → _server.ts-BXGCxm6J.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-ByhZiyPJ.js → _server.ts-BYTe4ViD.js} +4 -4
  186. package/build/server/chunks/{_server.ts-ByhZiyPJ.js.map → _server.ts-BYTe4ViD.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BdKZ7aOG.js → _server.ts-BaHBgmBs.js} +4 -4
  188. package/build/server/chunks/{_server.ts-BdKZ7aOG.js.map → _server.ts-BaHBgmBs.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-C9ggXEGb.js → _server.ts-BbvHHiGq.js} +4 -4
  190. package/build/server/chunks/{_server.ts-C9ggXEGb.js.map → _server.ts-BbvHHiGq.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-qFzkA4h-.js → _server.ts-C9SZ9y6W.js} +7 -7
  192. package/build/server/chunks/{_server.ts-qFzkA4h-.js.map → _server.ts-C9SZ9y6W.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-uQSc7PGB.js → _server.ts-CHvipMjS.js} +4 -4
  194. package/build/server/chunks/{_server.ts-uQSc7PGB.js.map → _server.ts-CHvipMjS.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-1HIleN3S.js → _server.ts-CIAkL4VM.js} +4 -4
  196. package/build/server/chunks/{_server.ts-1HIleN3S.js.map → _server.ts-CIAkL4VM.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-gCCprE5T.js → _server.ts-CKENL0Fr.js} +7 -5
  198. package/build/server/chunks/_server.ts-CKENL0Fr.js.map +1 -0
  199. package/build/server/chunks/{_server.ts-BbzbsVfr.js → _server.ts-CKtVrr5P.js} +4 -4
  200. package/build/server/chunks/{_server.ts-BbzbsVfr.js.map → _server.ts-CKtVrr5P.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-CN851WSH.js → _server.ts-CS_06-Es.js} +4 -4
  202. package/build/server/chunks/{_server.ts-CN851WSH.js.map → _server.ts-CS_06-Es.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-Dnqx5-qU.js → _server.ts-D5nruaeK.js} +6 -6
  204. package/build/server/chunks/{_server.ts-Dnqx5-qU.js.map → _server.ts-D5nruaeK.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-C_s5gcH-.js → _server.ts-DLHHpGFa.js} +3 -3
  206. package/build/server/chunks/{_server.ts-C_s5gcH-.js.map → _server.ts-DLHHpGFa.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-CbQpXSqd.js → _server.ts-DMSCxMRc.js} +4 -4
  208. package/build/server/chunks/{_server.ts-CbQpXSqd.js.map → _server.ts-DMSCxMRc.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-k0TOB-E9.js → _server.ts-DOstgfdy.js} +4 -4
  210. package/build/server/chunks/{_server.ts-k0TOB-E9.js.map → _server.ts-DOstgfdy.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-DChqazjy.js → _server.ts-DahXKbZg.js} +3 -3
  212. package/build/server/chunks/{_server.ts-DChqazjy.js.map → _server.ts-DahXKbZg.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-DraBBcmz.js → _server.ts-DjEulrER.js} +4 -4
  214. package/build/server/chunks/{_server.ts-DraBBcmz.js.map → _server.ts-DjEulrER.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-Cb4DODkC.js → _server.ts-DmvmgVIf.js} +5 -5
  216. package/build/server/chunks/{_server.ts-Cb4DODkC.js.map → _server.ts-DmvmgVIf.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-CNPmzTy6.js → _server.ts-Du9sjt--.js} +4 -4
  218. package/build/server/chunks/{_server.ts-CNPmzTy6.js.map → _server.ts-Du9sjt--.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-Ch4yLIuo.js → _server.ts-Dx6fUVVo.js} +3 -3
  220. package/build/server/chunks/{_server.ts-Ch4yLIuo.js.map → _server.ts-Dx6fUVVo.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-AE1drj36.js → _server.ts-MKn8v93k.js} +5 -4
  222. package/build/server/chunks/_server.ts-MKn8v93k.js.map +1 -0
  223. package/build/server/chunks/{_server.ts-CaERLUlr.js → _server.ts-MvJCHr1k.js} +3 -3
  224. package/build/server/chunks/{_server.ts-CaERLUlr.js.map → _server.ts-MvJCHr1k.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-DWL7YPsQ.js → _server.ts-Njof323z.js} +5 -5
  226. package/build/server/chunks/{_server.ts-DWL7YPsQ.js.map → _server.ts-Njof323z.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-BnN8EQwQ.js → _server.ts-VbLWxdNH.js} +4 -4
  228. package/build/server/chunks/{_server.ts-BnN8EQwQ.js.map → _server.ts-VbLWxdNH.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-DnpbPKKN.js → _server.ts-WfRBOO6r.js} +4 -4
  230. package/build/server/chunks/{_server.ts-DnpbPKKN.js.map → _server.ts-WfRBOO6r.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-DrYz0SSH.js → _server.ts-c9y4czsq.js} +4 -4
  232. package/build/server/chunks/{_server.ts-DrYz0SSH.js.map → _server.ts-c9y4czsq.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-CzJ60KtY.js → _server.ts-hNeWcDQg.js} +5 -5
  234. package/build/server/chunks/{_server.ts-CzJ60KtY.js.map → _server.ts-hNeWcDQg.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-v9eUA-cx.js → _server.ts-kUn8v9xq.js} +4 -4
  236. package/build/server/chunks/{_server.ts-v9eUA-cx.js.map → _server.ts-kUn8v9xq.js.map} +1 -1
  237. package/build/server/chunks/{access.server-DVG3xnR_.js → access.server-DGKSuoRH.js} +35 -13
  238. package/build/server/chunks/access.server-DGKSuoRH.js.map +1 -0
  239. package/build/server/chunks/{api-errors-DGHmIOGJ.js → api-errors-DSza0CJv.js} +2 -2
  240. package/build/server/chunks/{api-errors-DGHmIOGJ.js.map → api-errors-DSza0CJv.js.map} +1 -1
  241. package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js → auth-bootstrap.server-YBvyz9i1.js} +2 -2
  242. package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js.map → auth-bootstrap.server-YBvyz9i1.js.map} +1 -1
  243. package/build/server/chunks/{bootHealth.server-DQx_qsNh.js → bootHealth.server-DwPUi_JC.js} +2 -2
  244. package/build/server/chunks/{bootHealth.server-DQx_qsNh.js.map → bootHealth.server-DwPUi_JC.js.map} +1 -1
  245. package/build/server/chunks/{hooks.server-D5z2JKsD.js → hooks.server---blwhkE.js} +4 -4
  246. package/build/server/chunks/{hooks.server-D5z2JKsD.js.map → hooks.server---blwhkE.js.map} +1 -1
  247. package/build/server/chunks/{permissions.server-qrbshNHz.js → permissions.server-toUY36oB.js} +2 -2
  248. package/build/server/chunks/{permissions.server-qrbshNHz.js.map → permissions.server-toUY36oB.js.map} +1 -1
  249. package/build/server/chunks/{providers.server-Duyx-08B.js → providers.server-gJvnJT_K.js} +2 -1
  250. package/build/server/chunks/providers.server-gJvnJT_K.js.map +1 -0
  251. package/build/server/chunks/{resolve.server-BwfjDyaT.js → resolve.server-Ca9AsrIQ.js} +3 -3
  252. package/build/server/chunks/{resolve.server-BwfjDyaT.js.map → resolve.server-Ca9AsrIQ.js.map} +1 -1
  253. package/build/server/chunks/{resolve.server2-DjZg4oZg.js → resolve.server2-B0RMxSCk.js} +2 -2
  254. package/build/server/chunks/{resolve.server2-DjZg4oZg.js.map → resolve.server2-B0RMxSCk.js.map} +1 -1
  255. package/build/server/chunks/{utils2-QuTTpZq0.js → utils2-DfCIUv4X.js} +2 -2
  256. package/build/server/chunks/{utils2-QuTTpZq0.js.map → utils2-DfCIUv4X.js.map} +1 -1
  257. package/build/server/index.js +2 -2
  258. package/build/server/index.js.map +1 -1
  259. package/build/server/manifest.js +69 -69
  260. package/build/server/manifest.js.map +1 -1
  261. package/package.json +5 -5
  262. package/templates/.env.example +8 -0
  263. package/build/client/_app/immutable/chunks/B0M-tm96.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/B0M-tm96.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/Ba2Ugq_t.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/Ba2Ugq_t.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/BldLEHH8.js.br +0 -0
  268. package/build/client/_app/immutable/chunks/BldLEHH8.js.gz +0 -0
  269. package/build/client/_app/immutable/chunks/BnGN4Ix-.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/BnGN4Ix-.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/CnbBd0os.js +0 -3
  272. package/build/client/_app/immutable/chunks/CnbBd0os.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/CnbBd0os.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/CyUe9WIm.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/CyUe9WIm.js.gz +0 -0
  276. package/build/client/_app/immutable/entry/app.R0cA7z-3.js.br +0 -0
  277. package/build/client/_app/immutable/entry/app.R0cA7z-3.js.gz +0 -0
  278. package/build/client/_app/immutable/entry/start.DuuVgzCE.js +0 -1
  279. package/build/client/_app/immutable/entry/start.DuuVgzCE.js.br +0 -0
  280. package/build/client/_app/immutable/entry/start.DuuVgzCE.js.gz +0 -0
  281. package/build/client/_app/immutable/nodes/1.iTQblN3h.js.br +0 -0
  282. package/build/client/_app/immutable/nodes/1.iTQblN3h.js.gz +0 -0
  283. package/build/client/_app/immutable/nodes/11.D7vQOfVW.js.br +0 -0
  284. package/build/client/_app/immutable/nodes/11.D7vQOfVW.js.gz +0 -0
  285. package/build/client/_app/immutable/nodes/13.CEGRwaw5.js.br +0 -0
  286. package/build/client/_app/immutable/nodes/13.CEGRwaw5.js.gz +0 -0
  287. package/build/client/_app/immutable/nodes/14.DP0RHUIL.js.br +0 -0
  288. package/build/client/_app/immutable/nodes/14.DP0RHUIL.js.gz +0 -0
  289. package/build/client/_app/immutable/nodes/15.C5BZvt5A.js +0 -16
  290. package/build/client/_app/immutable/nodes/15.C5BZvt5A.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/15.C5BZvt5A.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/16.ChhIZf_i.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/16.ChhIZf_i.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/17.DL0oF7lP.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/17.DL0oF7lP.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/19.CCJMnv49.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/19.CCJMnv49.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/2.wQUgS03u.js +0 -1
  299. package/build/client/_app/immutable/nodes/2.wQUgS03u.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/2.wQUgS03u.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/20.De0vu3AF.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/20.De0vu3AF.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/21.DpNlPoKj.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/21.DpNlPoKj.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/23.CMmwabln.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/23.CMmwabln.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/24.CuYhfWpg.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/24.CuYhfWpg.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/27.xAPzIANf.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/27.xAPzIANf.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/28.DwzOZwKl.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/28.DwzOZwKl.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/29.8CK2Warj.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/29.8CK2Warj.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/3.CRsFANhR.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/3.CRsFANhR.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/30.Cj-Aax_q.js.br +0 -0
  318. package/build/client/_app/immutable/nodes/30.Cj-Aax_q.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/5.CtPFMefZ.js.br +0 -0
  320. package/build/client/_app/immutable/nodes/5.CtPFMefZ.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/6.DpMqwqL2.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/6.DpMqwqL2.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/7.B8Lrh4Sn.js.br +0 -0
  324. package/build/client/_app/immutable/nodes/7.B8Lrh4Sn.js.gz +0 -0
  325. package/build/client/_app/immutable/nodes/8.BpnmUNwu.js.br +0 -0
  326. package/build/client/_app/immutable/nodes/8.BpnmUNwu.js.gz +0 -0
  327. package/build/client/_app/immutable/nodes/9.-tjBCa1C.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/9.-tjBCa1C.js.gz +0 -0
  329. package/build/server/chunks/13-BTAtM4vf.js.map +0 -1
  330. package/build/server/chunks/14-x6FJT6Iw.js.map +0 -1
  331. package/build/server/chunks/15-DGiz0g4w.js.map +0 -1
  332. package/build/server/chunks/19-B0hG9_9r.js.map +0 -1
  333. package/build/server/chunks/2-_zknF6gb.js.map +0 -1
  334. package/build/server/chunks/_layout.svelte-HGSVxA0R.js.map +0 -1
  335. package/build/server/chunks/_page.svelte-BptS1zpT.js.map +0 -1
  336. package/build/server/chunks/_server.ts-AE1drj36.js.map +0 -1
  337. package/build/server/chunks/_server.ts-Cjz2LZbt.js.map +0 -1
  338. package/build/server/chunks/_server.ts-gCCprE5T.js.map +0 -1
  339. package/build/server/chunks/access.server-DVG3xnR_.js.map +0 -1
  340. package/build/server/chunks/providers.server-Duyx-08B.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CyhcRpfW.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { f as getPermissionStore, e as getAuthProvider, h as getDataProvider, a as getOrganizationProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { c as requireManageInstanceUsers } from \"../../../../../../chunks/access.server.js\";\nimport { t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, O as OrgPermissionSchema, S as SYSTEM_CONTEXT, h as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../../../chunks/permissions-compat.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../../chunks/permissions.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst UpdatePermissionsBody = z.object({\n permissions: z.array(FlatPermissionSchema)\n});\nconst PATCH = async ({ params, request, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const body = await request.json().catch(() => null);\n const parsed = UpdatePermissionsBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const { platform, org } = splitFlatPermissions(parsed.data.permissions);\n const existingPlatform = await getPermissionStore().getFor(locals.ctx, id);\n const platformChanged = platform.length !== existingPlatform.length || platform.some((p) => !existingPlatform.includes(p)) || existingPlatform.some((p) => !platform.includes(p));\n if (platformChanged && !hasPermission(locals.ctx, \"instance_admin\")) {\n throw error(403, \"Only a platform admin can change platform-scope permissions\");\n }\n const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);\n if (platformResult === \"not_found\") throw error(404, \"User not found\");\n if (platformResult === \"not_supported\")\n throw error(501, \"Platform permission updates not supported by this auth provider\");\n if (platformResult === \"last_admin\")\n throw error(\n 409,\n \"Cannot remove the last instance admin. Promote another user to instance admin first.\"\n );\n const orgId = locals.ctx?.actingOrgId;\n if (orgId) {\n const orgs = getOrganizationProvider();\n const existing = await orgs.getOrgMember(SYSTEM_CONTEXT, orgId, id);\n const resolvedPermissions = (role) => role === \"member\" ? org.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[role]];\n if (existing) {\n await orgs.updateOrgMemberPermissions(\n SYSTEM_CONTEXT,\n orgId,\n id,\n resolvedPermissions(existing.role)\n );\n } else {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await orgs.addOrgMember(SYSTEM_CONTEXT, {\n orgId,\n userId: id,\n role: \"member\",\n permissions: resolvedPermissions(\"member\"),\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: locals.user?.id ?? id,\n deletedAt: null\n });\n }\n }\n return json({ success: true });\n};\nconst DELETE = 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 delete the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().deleteUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"User deletion not supported by this auth provider\");\n await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);\n return json({ success: true });\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BEW1ndmL.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { h as getPermissionStore, e as getAuthProvider, i as getDataProvider, a as getOrganizationProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { c as requireManageInstanceUsers } from \"../../../../../../chunks/access.server.js\";\nimport { t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, O as OrgPermissionSchema, S as SYSTEM_CONTEXT, h as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../../../chunks/permissions-compat.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../../chunks/permissions.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst UpdatePermissionsBody = z.object({\n permissions: z.array(FlatPermissionSchema)\n});\nconst PATCH = async ({ params, request, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const body = await request.json().catch(() => null);\n const parsed = UpdatePermissionsBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const { platform, org } = splitFlatPermissions(parsed.data.permissions);\n const existingPlatform = await getPermissionStore().getFor(locals.ctx, id);\n const platformChanged = platform.length !== existingPlatform.length || platform.some((p) => !existingPlatform.includes(p)) || existingPlatform.some((p) => !platform.includes(p));\n if (platformChanged && !hasPermission(locals.ctx, \"instance_admin\")) {\n throw error(403, \"Only a platform admin can change platform-scope permissions\");\n }\n const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);\n if (platformResult === \"not_found\") throw error(404, \"User not found\");\n if (platformResult === \"not_supported\")\n throw error(501, \"Platform permission updates not supported by this auth provider\");\n if (platformResult === \"last_admin\")\n throw error(\n 409,\n \"Cannot remove the last instance admin. Promote another user to instance admin first.\"\n );\n const orgId = locals.ctx?.actingOrgId;\n if (orgId) {\n const orgs = getOrganizationProvider();\n const existing = await orgs.getOrgMember(SYSTEM_CONTEXT, orgId, id);\n const resolvedPermissions = (role) => role === \"member\" ? org.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[role]];\n if (existing) {\n await orgs.updateOrgMemberPermissions(\n SYSTEM_CONTEXT,\n orgId,\n id,\n resolvedPermissions(existing.role)\n );\n } else {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await orgs.addOrgMember(SYSTEM_CONTEXT, {\n orgId,\n userId: id,\n role: \"member\",\n permissions: resolvedPermissions(\"member\"),\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: locals.user?.id ?? id,\n deletedAt: null\n });\n }\n }\n return json({ success: true });\n};\nconst DELETE = 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 delete the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().deleteUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"User deletion not supported by this auth provider\");\n await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);\n return json({ success: true });\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { d as getInviteStore } from './providers.server-Duyx-08B.js';
3
- import { i as requireManageOrgMembers } from './access.server-DVG3xnR_.js';
4
- import { h as handleApiError } from './api-errors-DGHmIOGJ.js';
2
+ import { d as getInviteStore } from './providers.server-gJvnJT_K.js';
3
+ import { i as requireManageOrgMembers } from './access.server-DGKSuoRH.js';
4
+ import { h as handleApiError } from './api-errors-DSza0CJv.js';
5
5
  import './shared-server-DaWdgxVh.js';
6
6
  import 'node:url';
7
7
  import 'node:path';
@@ -38,4 +38,4 @@ const DELETE = async ({ params, locals }) => {
38
38
  };
39
39
 
40
40
  export { DELETE };
41
- //# sourceMappingURL=_server.ts-1nksAmT8.js.map
41
+ //# sourceMappingURL=_server.ts-BSZknGSV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-1nksAmT8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { n as getInviteStore } from \"../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../chunks/api-errors.js\";\nconst DELETE = async ({ params, locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const id = params.id;\n try {\n const store = getInviteStore();\n let cursor;\n let found = false;\n do {\n const page = await store.listByOrg(ctx, ctx.actingOrgId, { limit: 200, cursor });\n if (page.items.some((i) => i.id === id)) {\n found = true;\n break;\n }\n cursor = page.nextCursor ?? void 0;\n } while (cursor);\n if (!found) throw error(404, \"Invite not found\");\n await store.revoke(ctx, id);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke invite\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAClE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE;AACtB,EAAE,IAAI;AACN,IAAI,MAAM,KAAK,GAAG,cAAc,EAAE;AAClC,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,GAAG;AACP,MAAM,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC/C,QAAQ,KAAK,GAAG,IAAI;AACpB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;AACxC,IAAI,CAAC,QAAQ,MAAM;AACnB,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACpD,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts-BSZknGSV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_id_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { n as getInviteStore } from \"../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../chunks/access.server.js\";\nimport { h as handleApiError } from \"../../../../../chunks/api-errors.js\";\nconst DELETE = async ({ params, locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const id = params.id;\n try {\n const store = getInviteStore();\n let cursor;\n let found = false;\n do {\n const page = await store.listByOrg(ctx, ctx.actingOrgId, { limit: 200, cursor });\n if (page.items.some((i) => i.id === id)) {\n found = true;\n break;\n }\n cursor = page.nextCursor ?? void 0;\n } while (cursor);\n if (!found) throw error(404, \"Invite not found\");\n await store.revoke(ctx, id);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to revoke invite\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAClE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE;AACtB,EAAE,IAAI;AACN,IAAI,MAAM,KAAK,GAAG,cAAc,EAAE;AAClC,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,GAAG;AACP,MAAM,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC/C,QAAQ,KAAK,GAAG,IAAI;AACpB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;AACxC,IAAI,CAAC,QAAQ,MAAM;AACnB,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACpD,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { l as getPermissionStore, g as getAuthProvider } from './providers.server-Duyx-08B.js';
3
- import { c as requireManageInstanceUsers } from './access.server-DVG3xnR_.js';
2
+ import { l as getPermissionStore, g as getAuthProvider } from './providers.server-gJvnJT_K.js';
3
+ import { c as requireManageInstanceUsers } from './access.server-DGKSuoRH.js';
4
4
  import './shared-server-DaWdgxVh.js';
5
5
  import 'node:url';
6
6
  import 'node:path';
@@ -10,7 +10,7 @@ import 'zod';
10
10
  import 'node:crypto';
11
11
  import 'node:fs/promises';
12
12
  import '@supabase/supabase-js';
13
- import './api-errors-DGHmIOGJ.js';
13
+ import './api-errors-DSza0CJv.js';
14
14
 
15
15
  const POST = async ({ params, locals }) => {
16
16
  requireManageInstanceUsers(locals);
@@ -34,4 +34,4 @@ const POST = async ({ params, locals }) => {
34
34
  };
35
35
 
36
36
  export { POST };
37
- //# sourceMappingURL=_server.ts-BTi2idVf.js.map
37
+ //# sourceMappingURL=_server.ts-BUI9hwVF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BTi2idVf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { f as getPermissionStore, e as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { c as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"_server.ts-BUI9hwVF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/disable/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { h as getPermissionStore, e as getAuthProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { c as requireManageInstanceUsers } from \"../../../../../../../chunks/access.server.js\";\nconst POST = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing user ID\");\n const targetPerms = await getPermissionStore().getFor(locals.ctx, id);\n if (targetPerms.includes(\"instance_admin\")) {\n const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);\n if (others === 0) {\n throw error(\n 409,\n \"Cannot disable the last instance admin. Promote another user to instance admin first.\"\n );\n }\n }\n const result = await getAuthProvider().disableUser(id);\n if (result === \"not_found\") throw error(404, \"User not found\");\n if (result === \"not_supported\")\n throw error(501, \"Disabling users is not supported by this auth provider\");\n return json({ success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC3C,EAAE,0BAA0B,CAAC,MAAM,CAAC;AACpC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9C,EAAE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,KAAK;AACjB,QAAQ,GAAG;AACX,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,EAAE,IAAI,MAAM,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChE,EAAE,IAAI,MAAM,KAAK,eAAe;AAChC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,wDAAwD,CAAC;AAC9E,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
- import { h as getProjectProvider } from './providers.server-Duyx-08B.js';
4
- import { o as requireCanManageMembers, p as requireTargetIsOrgMember } from './access.server-DVG3xnR_.js';
5
- import { h as handleApiError, t as throwZodError } from './api-errors-DGHmIOGJ.js';
3
+ import { h as getProjectProvider } from './providers.server-gJvnJT_K.js';
4
+ import { o as requireCanManageMembers, p as requireTargetIsOrgMember } from './access.server-DGKSuoRH.js';
5
+ import { h as handleApiError, t as throwZodError } from './api-errors-DSza0CJv.js';
6
6
  import { i as ProjectRoleSchema } from './context-9tV9WxQ5.js';
7
7
  import './shared-server-DaWdgxVh.js';
8
8
  import 'node:url';
@@ -58,4 +58,4 @@ const POST = async ({ params, request, locals }) => {
58
58
  };
59
59
 
60
60
  export { GET, POST };
61
- //# sourceMappingURL=_server.ts-CZW4ge6f.js.map
61
+ //# sourceMappingURL=_server.ts-BX0JGorf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CZW4ge6f.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, p as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../chunks/context.js\";\nconst AddMemberSchema = z.object({\n userId: z.string().min(1, \"userId is required\"),\n role: ProjectRoleSchema\n});\nconst GET = async ({ params, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n try {\n const page = await getProjectProvider().listProjectMembers(ctx, id, { limit: 200 });\n return json({ members: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load members\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = AddMemberSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const project = await getProjectProvider().getProject(ctx, id);\n if (!project) throw error(404, \"Project not found\");\n await requireTargetIsOrgMember(locals, project.orgId, parsed.data.userId);\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const member = {\n projectId: id,\n userId: parsed.data.userId,\n role: parsed.data.role,\n joinedAt: now,\n updatedAt: now,\n updatedBy: ctx.userId || parsed.data.userId,\n deletedAt: null\n };\n try {\n await getProjectProvider().addProjectMember(ctx, member);\n return json(member, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to add member\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BX0JGorf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, p as requireTargetIsOrgMember } from \"../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../chunks/context.js\";\nconst AddMemberSchema = z.object({\n userId: z.string().min(1, \"userId is required\"),\n role: ProjectRoleSchema\n});\nconst GET = async ({ params, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n try {\n const page = await getProjectProvider().listProjectMembers(ctx, id, { limit: 200 });\n return json({ members: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load members\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = AddMemberSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const project = await getProjectProvider().getProject(ctx, id);\n if (!project) throw error(404, \"Project not found\");\n await requireTargetIsOrgMember(locals, project.orgId, parsed.data.userId);\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const member = {\n projectId: id,\n userId: parsed.data.userId,\n role: parsed.data.role,\n joinedAt: now,\n updatedAt: now,\n updatedBy: ctx.userId || parsed.data.userId,\n deletedAt: null\n };\n try {\n await getProjectProvider().addProjectMember(ctx, member);\n return json(member, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to add member\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
- import { g as getAuthProvider, c as getOrganizationProvider, l as getPermissionStore } from './providers.server-Duyx-08B.js';
4
- import { c as requireManageInstanceUsers } from './access.server-DVG3xnR_.js';
5
- import { s as setUserPlatformPermissions } from './permissions.server-qrbshNHz.js';
6
- import { t as throwZodError, h as handleApiError } from './api-errors-DGHmIOGJ.js';
3
+ import { g as getAuthProvider, c as getOrganizationProvider, l as getPermissionStore } from './providers.server-gJvnJT_K.js';
4
+ import { c as requireManageInstanceUsers } from './access.server-DGKSuoRH.js';
5
+ import { s as setUserPlatformPermissions } from './permissions.server-toUY36oB.js';
6
+ import { t as throwZodError, h as handleApiError } from './api-errors-DSza0CJv.js';
7
7
  import { S as SYSTEM_CONTEXT, h as hasPermission, M as MEMBER_ASSIGNABLE_PERMISSIONS, P as PlatformPermissionSchema, O as OrgPermissionSchema } from './context-9tV9WxQ5.js';
8
8
  import { f as flattenPermissions, s as splitFlatPermissions } from './permissions-compat.server-DSV7bClF.js';
9
9
  import './shared-server-DaWdgxVh.js';
@@ -103,4 +103,4 @@ const POST = async ({ request, locals }) => {
103
103
  };
104
104
 
105
105
  export { GET, POST };
106
- //# sourceMappingURL=_server.ts-BYlDwqEg.js.map
106
+ //# sourceMappingURL=_server.ts-BXGCxm6J.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BYlDwqEg.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 { e as getAuthProvider, a as getOrganizationProvider, f as getPermissionStore } from \"../../../../../chunks/providers.server.js\";\nimport { c 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, O as OrgPermissionSchema, S as SYSTEM_CONTEXT, h 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
+ {"version":3,"file":"_server.ts-BXGCxm6J.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 { e as getAuthProvider, a as getOrganizationProvider, h as getPermissionStore } from \"../../../../../chunks/providers.server.js\";\nimport { c 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, O as OrgPermissionSchema, S as SYSTEM_CONTEXT, h 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,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { z } from 'zod';
4
- import { d as getInviteStore } from './providers.server-Duyx-08B.js';
5
- import { i as requireManageOrgMembers } from './access.server-DVG3xnR_.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-DGHmIOGJ.js';
4
+ import { d as getInviteStore } from './providers.server-gJvnJT_K.js';
5
+ import { i as requireManageOrgMembers } from './access.server-DGKSuoRH.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-DSza0CJv.js';
7
7
  import { M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS, f as OrgRoleSchema, P as PlatformPermissionSchema, O as OrgPermissionSchema } from './context-9tV9WxQ5.js';
8
8
  import { s as splitFlatPermissions } from './permissions-compat.server-DSV7bClF.js';
9
9
  import { m as mintRawToken, h as hashToken } from './token.server2-D0Z99lBB.js';
@@ -67,4 +67,4 @@ const POST = async ({ request, locals, url }) => {
67
67
  };
68
68
 
69
69
  export { GET, POST };
70
- //# sourceMappingURL=_server.ts-ByhZiyPJ.js.map
70
+ //# sourceMappingURL=_server.ts-BYTe4ViD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-ByhZiyPJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { z } from \"zod\";\nimport { n as getInviteStore } from \"../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, O as OrgPermissionSchema, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS } from \"../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../chunks/permissions-compat.server.js\";\nimport { m as mintRawToken, h as hashToken } from \"../../../../chunks/token.server2.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst CreateBody = z.object({\n email: z.string().email(\"Valid email is required\").transform((s) => s.toLowerCase().trim()),\n orgRole: OrgRoleSchema.default(\"member\"),\n permissions: z.array(FlatPermissionSchema).default([])\n});\nconst INVITE_TTL_MS = 7 * 24 * 60 * 60 * 1e3;\nconst GET = async ({ locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getInviteStore().listByOrg(ctx, ctx.actingOrgId, { limit: 200 });\n const items = page.items.map(({ tokenHash: _omit, ...rest }) => rest);\n return json(items);\n } catch (err) {\n handleApiError(err, \"Failed to list invites\");\n }\n};\nconst POST = async ({ request, locals, url }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n const user = locals.user;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const body = await request.json().catch(() => null);\n const parsed = CreateBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n const { org: submittedOrgPerms } = splitFlatPermissions(parsed.data.permissions);\n const orgPermissions = parsed.data.orgRole === \"member\" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[parsed.data.orgRole]];\n const rawToken = mintRawToken();\n const now = /* @__PURE__ */ new Date();\n const invite = {\n id: randomUUID(),\n tokenHash: hashToken(rawToken),\n email: parsed.data.email,\n orgId: ctx.actingOrgId,\n orgRole: parsed.data.orgRole,\n orgPermissions,\n invitedBy: user.id,\n createdAt: now.toISOString(),\n expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()\n };\n await getInviteStore().create(ctx, invite);\n const acceptUrl = `${url.origin}/accept-invite?token=${rawToken}`;\n const { tokenHash: _omit, ...inviteForClient } = invite;\n return json({ invite: inviteForClient, acceptUrl }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create invite\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;AACrF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AAC7F,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE;AACvD,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AACvC,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAClE,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvF,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC;AACzE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACjD,EAAE;AACF;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACjD,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAClE,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACpF,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5L,IAAI,MAAM,QAAQ,GAAG,YAAY,EAAE;AACnC,IAAI,MAAM,GAAG,mBAAmB,IAAI,IAAI,EAAE;AAC1C,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,EAAE,EAAE,UAAU,EAAE;AACtB,MAAM,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;AACpC,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC9B,MAAM,KAAK,EAAE,GAAG,CAAC,WAAW;AAC5B,MAAM,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;AAClC,MAAM,cAAc;AACpB,MAAM,SAAS,EAAE,IAAI,CAAC,EAAE;AACxB,MAAM,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;AAClC,MAAM,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC,WAAW;AACpE,KAAK;AACL,IAAI,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;AAC9C,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AACrE,IAAI,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAG,MAAM;AAC3D,IAAI,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts-BYTe4ViD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/invites/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { z } from \"zod\";\nimport { n as getInviteStore } from \"../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, O as OrgPermissionSchema, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS, D as DEFAULT_ORG_PERMISSIONS } from \"../../../../chunks/context.js\";\nimport { s as splitFlatPermissions } from \"../../../../chunks/permissions-compat.server.js\";\nimport { m as mintRawToken, h as hashToken } from \"../../../../chunks/token.server2.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst CreateBody = z.object({\n email: z.string().email(\"Valid email is required\").transform((s) => s.toLowerCase().trim()),\n orgRole: OrgRoleSchema.default(\"member\"),\n permissions: z.array(FlatPermissionSchema).default([])\n});\nconst INVITE_TTL_MS = 7 * 24 * 60 * 60 * 1e3;\nconst GET = async ({ locals }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getInviteStore().listByOrg(ctx, ctx.actingOrgId, { limit: 200 });\n const items = page.items.map(({ tokenHash: _omit, ...rest }) => rest);\n return json(items);\n } catch (err) {\n handleApiError(err, \"Failed to list invites\");\n }\n};\nconst POST = async ({ request, locals, url }) => {\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n const user = locals.user;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const body = await request.json().catch(() => null);\n const parsed = CreateBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n const { org: submittedOrgPerms } = splitFlatPermissions(parsed.data.permissions);\n const orgPermissions = parsed.data.orgRole === \"member\" ? submittedOrgPerms.filter((p) => MEMBER_ASSIGNABLE_PERMISSIONS.includes(p)) : [...DEFAULT_ORG_PERMISSIONS[parsed.data.orgRole]];\n const rawToken = mintRawToken();\n const now = /* @__PURE__ */ new Date();\n const invite = {\n id: randomUUID(),\n tokenHash: hashToken(rawToken),\n email: parsed.data.email,\n orgId: ctx.actingOrgId,\n orgRole: parsed.data.orgRole,\n orgPermissions,\n invitedBy: user.id,\n createdAt: now.toISOString(),\n expiresAt: new Date(now.getTime() + INVITE_TTL_MS).toISOString()\n };\n await getInviteStore().create(ctx, invite);\n const acceptUrl = `${url.origin}/accept-invite?token=${rawToken}`;\n const { tokenHash: _omit, ...inviteForClient } = invite;\n return json({ invite: inviteForClient, acceptUrl }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create invite\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
- import { r as definitionService } from './providers.server-Duyx-08B.js';
3
- import { g as requireEditableDefinition } from './access.server-DVG3xnR_.js';
4
- import { h as handleApiError } from './api-errors-DGHmIOGJ.js';
2
+ import { r as definitionService } from './providers.server-gJvnJT_K.js';
3
+ import { g as requireEditableDefinition } from './access.server-DGKSuoRH.js';
4
+ import { h as handleApiError } from './api-errors-DSza0CJv.js';
5
5
  import { G as GuidSchema } from './context-9tV9WxQ5.js';
6
6
  import './shared-server-DaWdgxVh.js';
7
7
  import 'node:url';
@@ -27,4 +27,4 @@ const DELETE = async ({ params, locals }) => {
27
27
  };
28
28
 
29
29
  export { DELETE };
30
- //# sourceMappingURL=_server.ts-BdKZ7aOG.js.map
30
+ //# sourceMappingURL=_server.ts-BaHBgmBs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BdKZ7aOG.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { j as definitionService } from \"../../../../../../../chunks/providers.server.js\";\nimport { g 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 definitionService.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,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AACnF,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
+ {"version":3,"file":"_server.ts-BaHBgmBs.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { k as definitionService } from \"../../../../../../../chunks/providers.server.js\";\nimport { g 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 definitionService.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,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AACnF,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,8 +1,8 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
- import { h as getProjectProvider } from './providers.server-Duyx-08B.js';
4
- import { o as requireCanManageMembers, q as checkOwnerRemoval } from './access.server-DVG3xnR_.js';
5
- import { h as handleApiError, t as throwZodError } from './api-errors-DGHmIOGJ.js';
3
+ import { h as getProjectProvider } from './providers.server-gJvnJT_K.js';
4
+ import { o as requireCanManageMembers, q as checkOwnerRemoval } from './access.server-DGKSuoRH.js';
5
+ import { h as handleApiError, t as throwZodError } from './api-errors-DSza0CJv.js';
6
6
  import { i as ProjectRoleSchema } from './context-9tV9WxQ5.js';
7
7
  import './shared-server-DaWdgxVh.js';
8
8
  import 'node:url';
@@ -68,4 +68,4 @@ const DELETE = async ({ params, url, locals }) => {
68
68
  };
69
69
 
70
70
  export { DELETE, PATCH };
71
- //# sourceMappingURL=_server.ts-C9ggXEGb.js.map
71
+ //# sourceMappingURL=_server.ts-BbvHHiGq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C9ggXEGb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, q as checkOwnerRemoval } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../../chunks/context.js\";\nconst UpdateRoleSchema = z.object({ role: ProjectRoleSchema });\nconst PATCH = async ({ params, request, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = UpdateRoleSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getProjectProvider().updateProjectMemberRole(ctx, id, userId, parsed.data.role);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update role\");\n }\n};\nconst DELETE = async ({ params, url, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const confirmed = url.searchParams.get(\"confirm\") === \"true\";\n const projects = getProjectProvider();\n const target = await projects.getProjectMember(ctx, id, userId);\n if (!target) {\n return json({ success: true });\n }\n if (target.role === \"owner\") {\n const page = await projects.listProjectMembers(ctx, id, { limit: 200 });\n const decision = checkOwnerRemoval({\n target: { role: target.role },\n allMembers: page.items.map((m) => ({ role: m.role })),\n confirmed\n });\n if (decision === \"sole_owner\") {\n throw error(\n 409,\n \"Cannot remove the sole owner of a project. Assign another owner first, or use reclaim to add a co-owner.\"\n );\n }\n if (decision === \"needs_confirm\") {\n throw error(\n 409,\n \"Removing another project owner requires explicit confirmation. Retry with ?confirm=true.\"\n );\n }\n }\n try {\n await projects.removeProjectMember(ctx, id, userId);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to remove member\");\n }\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BbvHHiGq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_id_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { b as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { o as requireCanManageMembers, q as checkOwnerRemoval } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { i as ProjectRoleSchema } from \"../../../../../../../chunks/context.js\";\nconst UpdateRoleSchema = z.object({ role: ProjectRoleSchema });\nconst PATCH = async ({ params, request, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = UpdateRoleSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getProjectProvider().updateProjectMemberRole(ctx, id, userId, parsed.data.role);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to update role\");\n }\n};\nconst DELETE = async ({ params, url, locals }) => {\n const { id, userId } = params;\n if (!id || !userId) throw error(400, \"Missing project ID or user ID\");\n await requireCanManageMembers(locals, id);\n const ctx = locals.ctx;\n const confirmed = url.searchParams.get(\"confirm\") === \"true\";\n const projects = getProjectProvider();\n const target = await projects.getProjectMember(ctx, id, userId);\n if (!target) {\n return json({ success: true });\n }\n if (target.role === \"owner\") {\n const page = await projects.listProjectMembers(ctx, id, { limit: 200 });\n const decision = checkOwnerRemoval({\n target: { role: target.role },\n allMembers: page.items.map((m) => ({ role: m.role })),\n confirmed\n });\n if (decision === \"sole_owner\") {\n throw error(\n 409,\n \"Cannot remove the sole owner of a project. Assign another owner first, or use reclaim to add a co-owner.\"\n );\n }\n if (decision === \"needs_confirm\") {\n throw error(\n 409,\n \"Removing another project owner requires explicit confirmation. Retry with ?confirm=true.\"\n );\n }\n }\n try {\n await projects.removeProjectMember(ctx, id, userId);\n return json({ success: true });\n } catch (err) {\n handleApiError(err, \"Failed to remove member\");\n }\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { TreeBuilder, GrasshopperClient } from '@selvajs/compute';
2
2
  import { error, json, isHttpError } from '@sveltejs/kit';
3
- import { r as resolveServerForOrg } from './resolve.server-BwfjDyaT.js';
3
+ import { r as resolveServerForOrg } from './resolve.server-Ca9AsrIQ.js';
4
4
  import { M as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, R as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, a as REMOTE_DEFINITION_MAX_BYTES, b as RATE_LIMIT_WINDOW_MS, c as RATE_LIMIT_MAX_REQUESTS, C as COMPUTE_REQUEST_MAX_BYTES } from './computeLimits-FIJ-Mzn4.js';
5
5
  import { h as requireMaxBodySize } from './admin-auth.server-CdTfBMI5.js';
6
- import { m as getStorageProvider, p as providers } from './providers.server-Duyx-08B.js';
7
- import { d as requireCanEditDefinition, e as requireCanSolve } from './access.server-DVG3xnR_.js';
8
- import { t as tryResolveShareToken } from './resolve.server2-DjZg4oZg.js';
6
+ import { m as getStorageProvider, p as providers } from './providers.server-gJvnJT_K.js';
7
+ import { d as requireCanEditDefinition, e as requireCanSolve } from './access.server-DGKSuoRH.js';
8
+ import { t as tryResolveShareToken } from './resolve.server2-B0RMxSCk.js';
9
9
  import './context-9tV9WxQ5.js';
10
10
  import 'zod';
11
- import './utils2-QuTTpZq0.js';
11
+ import './utils2-DfCIUv4X.js';
12
12
  import './shared-server-DaWdgxVh.js';
13
13
  import 'node:url';
14
14
  import 'node:path';
@@ -16,7 +16,7 @@ import 'node:fs';
16
16
  import 'node:crypto';
17
17
  import 'node:fs/promises';
18
18
  import '@supabase/supabase-js';
19
- import './api-errors-DGHmIOGJ.js';
19
+ import './api-errors-DSza0CJv.js';
20
20
  import './token.server-CBtuQZt0.js';
21
21
 
22
22
  function isSafeRemoteDefinitionUrl(raw) {
@@ -290,4 +290,4 @@ const POST = async ({ request, locals, url }) => {
290
290
  };
291
291
 
292
292
  export { POST };
293
- //# sourceMappingURL=_server.ts-qFzkA4h-.js.map
293
+ //# sourceMappingURL=_server.ts-C9SZ9y6W.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-qFzkA4h-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { error, json, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg } from \"../../../../chunks/resolve.server.js\";\nimport { R as RATE_LIMIT_WINDOW_MS, a as RATE_LIMIT_MAX_REQUESTS, M as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, b as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, c as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { r as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { i as getStorageProvider, p as providers } from \"../../../../chunks/providers.server.js\";\nimport { d as requireCanEditDefinition, e as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server2.js\";\nfunction isSafeRemoteDefinitionUrl(raw) {\n let parsed;\n try {\n parsed = new URL(raw);\n } catch {\n return false;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return false;\n const host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host === \"0.0.0.0\" || host.endsWith(\".localhost\")) return false;\n if (host === \"::1\" || host === \"[::1]\") return false;\n if (/^127\\./.test(host)) return false;\n if (/^10\\./.test(host)) return false;\n if (/^192\\.168\\./.test(host)) return false;\n if (/^172\\.(1[6-9]|2[0-9]|3[0-1])\\./.test(host)) return false;\n if (/^169\\.254\\./.test(host)) return false;\n if (/^\\[?(fc|fd)[0-9a-f]{2}:/i.test(host)) return false;\n if (/^\\[?fe[89ab][0-9a-f]:/i.test(host)) return false;\n return true;\n}\nconst WINDOW_MS = RATE_LIMIT_WINDOW_MS;\nconst MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;\nconst buckets = /* @__PURE__ */ new Map();\nfunction checkComputeRateLimit(key) {\n const now = Date.now();\n const entry = buckets.get(key);\n if (!entry || now > entry.resetAt) {\n buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });\n return { allowed: true };\n }\n if (entry.count >= MAX_PER_WINDOW) {\n return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };\n }\n entry.count += 1;\n return { allowed: true };\n}\nconst definitionCache = /* @__PURE__ */ new Map();\nlet cachedClient = null;\nlet cachedScheduler = null;\nlet cachedClientConfig = null;\nasync function getClient(serverConfig) {\n const currentConfig = {\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey\n };\n if (cachedClient && cachedScheduler && cachedClientConfig && cachedClientConfig.serverUrl === currentConfig.serverUrl && cachedClientConfig.apiKey === currentConfig.apiKey) {\n return { client: cachedClient, scheduler: cachedScheduler };\n }\n cachedScheduler?.dispose();\n cachedClient = await GrasshopperClient.create({\n serverUrl: currentConfig.serverUrl,\n apiKey: currentConfig.apiKey\n });\n cachedScheduler = cachedClient.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 }\n });\n cachedClientConfig = currentConfig;\n return { client: cachedClient, scheduler: cachedScheduler };\n}\nasync function loadRemoteDefinition(url) {\n if (!isSafeRemoteDefinitionUrl(url)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const now = Date.now();\n const cached = definitionCache.get(url);\n if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {\n return cached.data;\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);\n let data;\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n redirect: \"error\"\n });\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n const declared = Number(response.headers.get(\"content-length\"));\n if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n data = new Uint8Array(buffer);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nfunction transformInputParameter(input, value) {\n const base = {\n description: input.description || \"\",\n name: input.nickname,\n nickname: input.nickname || null,\n id: input.id\n };\n if (input.paramType === \"number\" || input.paramType === \"integer\") {\n return {\n ...base,\n paramType: input.paramType === \"integer\" ? \"Integer\" : \"Number\",\n minimum: input.minimum,\n maximum: input.maximum,\n stepSize: input.paramType === \"integer\" ? 1 : input.stepSize,\n default: value ?? input.default\n };\n } else if (input.paramType === \"text\") {\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? input.default ?? \"\"\n };\n } else if (input.paramType === \"boolean\") {\n return {\n ...base,\n paramType: \"Boolean\",\n default: value ?? input.default ?? false\n };\n }\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? \"\"\n };\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n try {\n const body = await request.json();\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n if (!inputs || !values || !definitionUrl) {\n throw error(400, \"Missing required fields: inputs, values, or definitionUrl\");\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);\n }\n let definitionSource;\n let solveOrgId = null;\n let definitionPin = null;\n const isLocal = definitionUrl.startsWith(\"local:\");\n const guid = isLocal ? definitionUrl.substring(6) : null;\n const sharedAccess = isLocal && guid ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;\n if (!sharedAccess && (!locals.ctx || !locals.user)) {\n throw error(401, \"Unauthorized\");\n }\n const solveCtx = sharedAccess?.ctx ?? locals.ctx;\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n if (!record) throw error(404, `Definition '${guid}' not found`);\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n if (!sharedAccess) {\n if (channel === \"draft\") {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n const versionId = channel === \"live\" ? record.liveVersionId : record.draftVersionId;\n if (!versionId) {\n throw error(404, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n throw error(404, `Definition '${guid}' ${channel} version is missing`);\n }\n try {\n const bytes = await storage.get(version.fileKey);\n if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);\n definitionSource = bytes;\n } catch (err) {\n console.error(`Failed to load local definition blob: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n } else {\n try {\n definitionSource = await loadRemoteDefinition(definitionUrl);\n } catch (err) {\n console.error(`Failed to fetch definition from ${definitionUrl}:`, err);\n throw error(\n 400,\n `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n const inputTree = TreeBuilder.fromInputParams(\n inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))\n );\n if (sharedAccess) {\n const next = await providers.data.shareLinks.tryIncrementSolveCount(\n solveCtx,\n sharedAccess.link.id\n );\n if (next === null) {\n throw error(429, \"Share link solve cap reached.\");\n }\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n const { scheduler } = await getClient(serverConfig);\n let solvedDefinition;\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n } catch (err) {\n if (err instanceof Error && err.name === \"AbortError\") {\n if (request.signal.aborted) {\n throw error(499, \"Client closed request\");\n }\n throw error(\n 504,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n return json(solvedDefinition);\n } catch (err) {\n if (isHttpError(err)) throw err;\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n throw error(503, \"Compute server is unreachable\");\n }\n throw error(500, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-C9SZ9y6W.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/compute/_server.ts.js"],"sourcesContent":["import { TreeBuilder, GrasshopperClient } from \"@selvajs/compute\";\nimport { error, json, isHttpError } from \"@sveltejs/kit\";\nimport { r as resolveServerForOrg } from \"../../../../chunks/resolve.server.js\";\nimport { R as RATE_LIMIT_WINDOW_MS, a as RATE_LIMIT_MAX_REQUESTS, M as MAX_SOLVE_DURATION_MS, D as DEFINITION_CACHE_TTL_MS, b as REMOTE_DEFINITION_FETCH_TIMEOUT_MS, c as REMOTE_DEFINITION_MAX_BYTES, C as COMPUTE_REQUEST_MAX_BYTES } from \"../../../../chunks/computeLimits.js\";\nimport { r as requireMaxBodySize } from \"../../../../chunks/admin-auth.server.js\";\nimport { j as getStorageProvider, p as providers } from \"../../../../chunks/providers.server.js\";\nimport { d as requireCanEditDefinition, e as requireCanSolve } from \"../../../../chunks/access.server.js\";\nimport { t as tryResolveShareToken } from \"../../../../chunks/resolve.server2.js\";\nfunction isSafeRemoteDefinitionUrl(raw) {\n let parsed;\n try {\n parsed = new URL(raw);\n } catch {\n return false;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") return false;\n const host = parsed.hostname.toLowerCase();\n if (!host) return false;\n if (host === \"localhost\" || host === \"0.0.0.0\" || host.endsWith(\".localhost\")) return false;\n if (host === \"::1\" || host === \"[::1]\") return false;\n if (/^127\\./.test(host)) return false;\n if (/^10\\./.test(host)) return false;\n if (/^192\\.168\\./.test(host)) return false;\n if (/^172\\.(1[6-9]|2[0-9]|3[0-1])\\./.test(host)) return false;\n if (/^169\\.254\\./.test(host)) return false;\n if (/^\\[?(fc|fd)[0-9a-f]{2}:/i.test(host)) return false;\n if (/^\\[?fe[89ab][0-9a-f]:/i.test(host)) return false;\n return true;\n}\nconst WINDOW_MS = RATE_LIMIT_WINDOW_MS;\nconst MAX_PER_WINDOW = RATE_LIMIT_MAX_REQUESTS;\nconst buckets = /* @__PURE__ */ new Map();\nfunction checkComputeRateLimit(key) {\n const now = Date.now();\n const entry = buckets.get(key);\n if (!entry || now > entry.resetAt) {\n buckets.set(key, { count: 1, resetAt: now + WINDOW_MS });\n return { allowed: true };\n }\n if (entry.count >= MAX_PER_WINDOW) {\n return { allowed: false, retryAfter: Math.ceil((entry.resetAt - now) / 1e3) };\n }\n entry.count += 1;\n return { allowed: true };\n}\nconst definitionCache = /* @__PURE__ */ new Map();\nlet cachedClient = null;\nlet cachedScheduler = null;\nlet cachedClientConfig = null;\nasync function getClient(serverConfig) {\n const currentConfig = {\n serverUrl: serverConfig.serverUrl,\n apiKey: serverConfig.apiKey\n };\n if (cachedClient && cachedScheduler && cachedClientConfig && cachedClientConfig.serverUrl === currentConfig.serverUrl && cachedClientConfig.apiKey === currentConfig.apiKey) {\n return { client: cachedClient, scheduler: cachedScheduler };\n }\n cachedScheduler?.dispose();\n cachedClient = await GrasshopperClient.create({\n serverUrl: currentConfig.serverUrl,\n apiKey: currentConfig.apiKey\n });\n cachedScheduler = cachedClient.createScheduler({\n mode: \"queue\",\n timeoutMs: MAX_SOLVE_DURATION_MS,\n cache: { maxEntries: 20, ttlMs: 5 * 6e4 }\n });\n cachedClientConfig = currentConfig;\n return { client: cachedClient, scheduler: cachedScheduler };\n}\nasync function loadRemoteDefinition(url) {\n if (!isSafeRemoteDefinitionUrl(url)) {\n throw new Error(\"Remote definition URL is not allowed\");\n }\n const now = Date.now();\n const cached = definitionCache.get(url);\n if (cached && now - cached.fetchedAt < DEFINITION_CACHE_TTL_MS) {\n return cached.data;\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REMOTE_DEFINITION_FETCH_TIMEOUT_MS);\n let data;\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n redirect: \"error\"\n });\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n const declared = Number(response.headers.get(\"content-length\"));\n if (Number.isFinite(declared) && declared > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n const buffer = await response.arrayBuffer();\n if (buffer.byteLength > REMOTE_DEFINITION_MAX_BYTES) {\n throw new Error(\"Remote definition exceeds size limit\");\n }\n data = new Uint8Array(buffer);\n } finally {\n clearTimeout(timeout);\n }\n definitionCache.set(url, { data, fetchedAt: now });\n if (definitionCache.size > 50) {\n const entries = Array.from(definitionCache.entries());\n entries.sort((a, b) => a[1].fetchedAt - b[1].fetchedAt);\n for (let i = 0; i < 10; i++) {\n definitionCache.delete(entries[i][0]);\n }\n }\n return data;\n}\nfunction transformInputParameter(input, value) {\n const base = {\n description: input.description || \"\",\n name: input.nickname,\n nickname: input.nickname || null,\n id: input.id\n };\n if (input.paramType === \"number\" || input.paramType === \"integer\") {\n return {\n ...base,\n paramType: input.paramType === \"integer\" ? \"Integer\" : \"Number\",\n minimum: input.minimum,\n maximum: input.maximum,\n stepSize: input.paramType === \"integer\" ? 1 : input.stepSize,\n default: value ?? input.default\n };\n } else if (input.paramType === \"text\") {\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? input.default ?? \"\"\n };\n } else if (input.paramType === \"boolean\") {\n return {\n ...base,\n paramType: \"Boolean\",\n default: value ?? input.default ?? false\n };\n }\n return {\n ...base,\n paramType: \"Text\",\n default: value ?? \"\"\n };\n}\nconst POST = async ({ request, locals, url }) => {\n const storage = getStorageProvider();\n requireMaxBodySize(request, COMPUTE_REQUEST_MAX_BYTES);\n try {\n const body = await request.json();\n const { inputs, values } = body;\n const definitionUrl = body.definitionUrl;\n const channel = body.channel ?? \"live\";\n if (!inputs || !values || !definitionUrl) {\n throw error(400, \"Missing required fields: inputs, values, or definitionUrl\");\n }\n if (channel !== \"live\" && channel !== \"draft\") {\n throw error(400, `Invalid channel: ${channel}. Must be 'live' or 'draft'.`);\n }\n let definitionSource;\n let solveOrgId = null;\n let definitionPin = null;\n const isLocal = definitionUrl.startsWith(\"local:\");\n const guid = isLocal ? definitionUrl.substring(6) : null;\n const sharedAccess = isLocal && guid ? await tryResolveShareToken(request, url, guid, channel, { requireSolve: true }) : null;\n if (!sharedAccess && (!locals.ctx || !locals.user)) {\n throw error(401, \"Unauthorized\");\n }\n const solveCtx = sharedAccess?.ctx ?? locals.ctx;\n const rateLimitKey = sharedAccess ? `share:${sharedAccess.link.id}` : `user:${locals.user.id}`;\n const rateLimit = checkComputeRateLimit(rateLimitKey);\n if (!rateLimit.allowed) {\n const retryAfter = rateLimit.retryAfter ?? 1;\n return new Response(\n JSON.stringify({\n message: `Too many compute requests. Retry in ${retryAfter}s.`,\n retryAfter\n }),\n {\n status: 429,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Retry-After\": String(retryAfter)\n }\n }\n );\n }\n if (isLocal && guid) {\n let record;\n try {\n record = await providers.data.definitions.get(solveCtx, guid);\n } catch (err) {\n console.error(`Failed to load local definition: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n if (!record) throw error(404, `Definition '${guid}' not found`);\n const project = await providers.data.projects.getProject(solveCtx, record.projectId);\n solveOrgId = project?.orgId ?? null;\n definitionPin = record.computeServerId ?? null;\n if (!sharedAccess) {\n if (channel === \"draft\") {\n await requireCanEditDefinition(locals, record.projectId, guid);\n } else {\n await requireCanSolve(locals, record.projectId);\n }\n }\n const versionId = channel === \"live\" ? record.liveVersionId : record.draftVersionId;\n if (!versionId) {\n throw error(404, `Definition '${guid}' has no ${channel} version yet`);\n }\n const version = await providers.data.definitions.getVersion(solveCtx, versionId);\n if (!version || version.definitionId !== guid) {\n throw error(404, `Definition '${guid}' ${channel} version is missing`);\n }\n try {\n const bytes = await storage.get(version.fileKey);\n if (!bytes) throw new Error(`Version blob missing: ${version.fileKey}`);\n definitionSource = bytes;\n } catch (err) {\n console.error(`Failed to load local definition blob: ${guid}`, err);\n throw error(404, `Definition '${guid}' not found`);\n }\n } else {\n try {\n definitionSource = await loadRemoteDefinition(definitionUrl);\n } catch (err) {\n console.error(`Failed to fetch definition from ${definitionUrl}:`, err);\n throw error(\n 400,\n `Failed to load definition: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n const inputTree = TreeBuilder.fromInputParams(\n inputs.filter((input) => input.paramType).map((input) => transformInputParameter(input, values[input.id]))\n );\n if (sharedAccess) {\n const next = await providers.data.shareLinks.tryIncrementSolveCount(\n solveCtx,\n sharedAccess.link.id\n );\n if (next === null) {\n throw error(429, \"Share link solve cap reached.\");\n }\n }\n const serverConfig = await resolveServerForOrg(solveCtx, solveOrgId, { definitionPin });\n const { scheduler } = await getClient(serverConfig);\n let solvedDefinition;\n try {\n solvedDefinition = await scheduler.solve(definitionSource, inputTree, {\n signal: request.signal\n });\n } catch (err) {\n if (err instanceof Error && err.name === \"AbortError\") {\n if (request.signal.aborted) {\n throw error(499, \"Client closed request\");\n }\n throw error(\n 504,\n `Solve exceeded the ${Math.round(MAX_SOLVE_DURATION_MS / 1e3)}s deadline.`\n );\n }\n throw err;\n }\n return json(solvedDefinition);\n } catch (err) {\n if (isHttpError(err)) throw err;\n const message = err instanceof Error ? err.message : \"Unknown error\";\n console.error(\"[API/Compute] Error:\", message);\n if (err instanceof TypeError && message === \"fetch failed\") {\n throw error(503, \"Compute server is unreachable\");\n }\n throw error(500, message);\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -2,18 +2,18 @@ import { spawn } from 'child_process';
2
2
  import { join } from 'path';
3
3
  import { readFileSync, existsSync } from 'fs';
4
4
  import { b as private_env } from './shared-server-DaWdgxVh.js';
5
- import { b as requirePermission } from './access.server-DVG3xnR_.js';
5
+ import { b as requirePermission } from './access.server-DGKSuoRH.js';
6
6
  import '@sveltejs/kit';
7
7
  import './context-9tV9WxQ5.js';
8
8
  import 'zod';
9
- import './providers.server-Duyx-08B.js';
9
+ import './providers.server-gJvnJT_K.js';
10
10
  import 'node:url';
11
11
  import 'node:path';
12
12
  import 'node:fs';
13
13
  import 'node:crypto';
14
14
  import 'node:fs/promises';
15
15
  import '@supabase/supabase-js';
16
- import './api-errors-DGHmIOGJ.js';
16
+ import './api-errors-DSza0CJv.js';
17
17
 
18
18
  const UPDATE_LOG_PATH = "/tmp/selva-update.log";
19
19
  function stripAnsi(str) {
@@ -405,4 +405,4 @@ const GET = async ({ locals }) => {
405
405
  };
406
406
 
407
407
  export { GET, POST };
408
- //# sourceMappingURL=_server.ts-uQSc7PGB.js.map
408
+ //# sourceMappingURL=_server.ts-CHvipMjS.js.map