@selvajs/selva 4.4.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/build/client/_app/immutable/chunks/{D7wuDTx2.js → BYBRW46Q.js} +1 -1
  2. package/build/client/_app/immutable/chunks/BYBRW46Q.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/BYBRW46Q.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{B-fj8b7K.js → BfWZCn9D.js} +2 -2
  5. package/build/client/_app/immutable/chunks/BfWZCn9D.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BfWZCn9D.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{D-jj-Uww.js → BoelBenK.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BoelBenK.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BoelBenK.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{j-UbJSFZ.js → BuvUOrz-.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BuvUOrz-.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BuvUOrz-.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{CdGNQgyw.js → CQjJB6sZ.js} +1 -1
  14. package/build/client/_app/immutable/chunks/CQjJB6sZ.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/CQjJB6sZ.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/jJihnyaB.js +3 -0
  17. package/build/client/_app/immutable/chunks/jJihnyaB.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/jJihnyaB.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.CsJrZk_i.js → app.CUlU8Xgx.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.CUlU8Xgx.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.yXH7NuOH.js +1 -0
  23. package/build/client/_app/immutable/entry/start.yXH7NuOH.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.yXH7NuOH.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.wSjQD-9E.js → 1.ntriGXw3.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.ntriGXw3.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.ntriGXw3.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/11.BBxGjNus.js +4 -0
  29. package/build/client/_app/immutable/nodes/11.BBxGjNus.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/11.BBxGjNus.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{13.CZxapN5I.js → 13.BOOSKgNQ.js} +1 -1
  32. package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/13.BOOSKgNQ.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{14.ChDvrNjp.js → 14.st6sThI5.js} +1 -1
  35. package/build/client/_app/immutable/nodes/14.st6sThI5.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/14.st6sThI5.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{16.Cewxge5m.js → 16.fAXfHZXp.js} +1 -1
  38. package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/16.fAXfHZXp.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{17.NlvAvTSP.js → 17.BL_btSTd.js} +1 -1
  41. package/build/client/_app/immutable/nodes/17.BL_btSTd.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/17.BL_btSTd.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{19.qNGlcD7l.js → 19.D4mkSjY9.js} +1 -1
  44. package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/19.D4mkSjY9.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{2.CgydK0lI.js → 2.CNkzjKpD.js} +1 -1
  47. package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/2.CNkzjKpD.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/20.93bCfNGI.js +5021 -0
  50. package/build/client/_app/immutable/nodes/20.93bCfNGI.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/20.93bCfNGI.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{21.CdZLvQ68.js → 21.ClzCdrlw.js} +1 -1
  53. package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/21.ClzCdrlw.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{23.CmSUvEas.js → 23.DJerRiZ2.js} +1 -1
  56. package/build/client/_app/immutable/nodes/23.DJerRiZ2.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/{23.CmSUvEas.js.gz → 23.DJerRiZ2.js.gz} +0 -0
  58. package/build/client/_app/immutable/nodes/{24.BLrWFvpH.js → 24.DOHyLmBO.js} +1 -1
  59. package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/24.DOHyLmBO.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{27.DF8_FNgX.js → 27.CkzNBFns.js} +1 -1
  62. package/build/client/_app/immutable/nodes/27.CkzNBFns.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/27.CkzNBFns.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{28.u-nHYDMp.js → 28.BGNl-6WV.js} +1 -1
  65. package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/28.BGNl-6WV.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{29.zcWmCBtG.js → 29.BF0JasWQ.js} +1 -1
  68. package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/29.BF0JasWQ.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{3.CGYG-fBC.js → 3.BLNJLcvR.js} +1 -1
  71. package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/3.BLNJLcvR.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{30.CFRFw3XM.js → 30.C33KvKLy.js} +1 -1
  74. package/build/client/_app/immutable/nodes/30.C33KvKLy.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/30.C33KvKLy.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{5.BIDVFrKz.js → 5.DcViAFBY.js} +1 -1
  77. package/build/client/_app/immutable/nodes/5.DcViAFBY.js.br +1 -0
  78. package/build/client/_app/immutable/nodes/5.DcViAFBY.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{6.G8VTWVfQ.js → 6.Jpw_unqM.js} +1 -1
  80. package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/6.Jpw_unqM.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{7.DaJ_YKCW.js → 7.DI4lv1qr.js} +1 -1
  83. package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/7.DI4lv1qr.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{8.c3ONIRmr.js → 8.BJeZ3Zka.js} +1 -1
  86. package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/8.BJeZ3Zka.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{9.BucDMSoZ.js → 9.BS42pKml.js} +1 -1
  89. package/build/client/_app/immutable/nodes/9.BS42pKml.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/9.BS42pKml.js.gz +0 -0
  91. package/build/client/_app/version.json +1 -1
  92. package/build/client/_app/version.json.br +0 -0
  93. package/build/client/_app/version.json.gz +0 -0
  94. package/build/server/chunks/{0-DIp1vX-0.js → 0-DhT7yxre.js} +2 -2
  95. package/build/server/chunks/{0-DIp1vX-0.js.map → 0-DhT7yxre.js.map} +1 -1
  96. package/build/server/chunks/{1-2fHcSF9r.js → 1-CCtIB9oC.js} +2 -2
  97. package/build/server/chunks/{1-2fHcSF9r.js.map → 1-CCtIB9oC.js.map} +1 -1
  98. package/build/server/chunks/{10-D4slAhbl.js → 10-Cj20BodR.js} +5 -5
  99. package/build/server/chunks/{10-D4slAhbl.js.map → 10-Cj20BodR.js.map} +1 -1
  100. package/build/server/chunks/{11-BIn4AcHz.js → 11-C-goGrGx.js} +7 -7
  101. package/build/server/chunks/{11-BIn4AcHz.js.map → 11-C-goGrGx.js.map} +1 -1
  102. package/build/server/chunks/{12-BTFEd1df.js → 12-Bra8rAOu.js} +2 -2
  103. package/build/server/chunks/{12-BTFEd1df.js.map → 12-Bra8rAOu.js.map} +1 -1
  104. package/build/server/chunks/{13-DoxggNWI.js → 13-DN-4EHom.js} +3 -3
  105. package/build/server/chunks/{13-DoxggNWI.js.map → 13-DN-4EHom.js.map} +1 -1
  106. package/build/server/chunks/{14-dn1AxT2y.js → 14-j22gtg6q.js} +3 -3
  107. package/build/server/chunks/{14-dn1AxT2y.js.map → 14-j22gtg6q.js.map} +1 -1
  108. package/build/server/chunks/{15-CwlxfscS.js → 15-CJJTHKeq.js} +3 -3
  109. package/build/server/chunks/{15-CwlxfscS.js.map → 15-CJJTHKeq.js.map} +1 -1
  110. package/build/server/chunks/{16-CYmJwOTN.js → 16-CPVRxJfK.js} +6 -6
  111. package/build/server/chunks/{16-CYmJwOTN.js.map → 16-CPVRxJfK.js.map} +1 -1
  112. package/build/server/chunks/{17-2g3z6ge8.js → 17-CEs6NSIj.js} +2 -2
  113. package/build/server/chunks/{17-2g3z6ge8.js.map → 17-CEs6NSIj.js.map} +1 -1
  114. package/build/server/chunks/{18-DS1IDuFS.js → 18-Lwe4TEuf.js} +2 -2
  115. package/build/server/chunks/{18-DS1IDuFS.js.map → 18-Lwe4TEuf.js.map} +1 -1
  116. package/build/server/chunks/{19-D7P-oKm4.js → 19-BK_uDFHq.js} +4 -4
  117. package/build/server/chunks/{19-D7P-oKm4.js.map → 19-BK_uDFHq.js.map} +1 -1
  118. package/build/server/chunks/{2-x36H91MM.js → 2-BBFUEdIk.js} +7 -7
  119. package/build/server/chunks/{2-x36H91MM.js.map → 2-BBFUEdIk.js.map} +1 -1
  120. package/build/server/chunks/{20-Cb9g4A7Q.js → 20-TgvBHCqT.js} +10 -10
  121. package/build/server/chunks/{20-Cb9g4A7Q.js.map → 20-TgvBHCqT.js.map} +1 -1
  122. package/build/server/chunks/{21-CpI2moj3.js → 21-CpVgaOZP.js} +3 -3
  123. package/build/server/chunks/{21-CpI2moj3.js.map → 21-CpVgaOZP.js.map} +1 -1
  124. package/build/server/chunks/{23-cbMfA5sY.js → 23-DpZ-VAmj.js} +6 -6
  125. package/build/server/chunks/{23-cbMfA5sY.js.map → 23-DpZ-VAmj.js.map} +1 -1
  126. package/build/server/chunks/{24-CA3DPT0t.js → 24-IG8oF3LR.js} +4 -4
  127. package/build/server/chunks/{24-CA3DPT0t.js.map → 24-IG8oF3LR.js.map} +1 -1
  128. package/build/server/chunks/{25-DludrCpg.js → 25-DL8VLuLg.js} +2 -2
  129. package/build/server/chunks/{25-DludrCpg.js.map → 25-DL8VLuLg.js.map} +1 -1
  130. package/build/server/chunks/{27-BDtKZzPl.js → 27-BNuVmBlC.js} +4 -4
  131. package/build/server/chunks/{27-BDtKZzPl.js.map → 27-BNuVmBlC.js.map} +1 -1
  132. package/build/server/chunks/{28-Dvh0YyMK.js → 28-O2gMewvR.js} +3 -3
  133. package/build/server/chunks/{28-Dvh0YyMK.js.map → 28-O2gMewvR.js.map} +1 -1
  134. package/build/server/chunks/{29-OZbtFuyd.js → 29-DeHI_lg6.js} +3 -3
  135. package/build/server/chunks/{29-OZbtFuyd.js.map → 29-DeHI_lg6.js.map} +1 -1
  136. package/build/server/chunks/{3-BFx3bdEz.js → 3-_z4ofaYa.js} +2 -2
  137. package/build/server/chunks/{3-BFx3bdEz.js.map → 3-_z4ofaYa.js.map} +1 -1
  138. package/build/server/chunks/{30-BuoO_cIR.js → 30-B8zrsGBW.js} +3 -3
  139. package/build/server/chunks/{30-BuoO_cIR.js.map → 30-B8zrsGBW.js.map} +1 -1
  140. package/build/server/chunks/{31-Dzl1y1lc.js → 31-DJIq1bRM.js} +2 -2
  141. package/build/server/chunks/{31-Dzl1y1lc.js.map → 31-DJIq1bRM.js.map} +1 -1
  142. package/build/server/chunks/{32-DEYwWtss.js → 32-fvzIyQyk.js} +2 -2
  143. package/build/server/chunks/{32-DEYwWtss.js.map → 32-fvzIyQyk.js.map} +1 -1
  144. package/build/server/chunks/{5-BNfM-tOw.js → 5-jUoewty6.js} +3 -3
  145. package/build/server/chunks/{5-BNfM-tOw.js.map → 5-jUoewty6.js.map} +1 -1
  146. package/build/server/chunks/{6-CEx1JO4m.js → 6-Da49O-RB.js} +4 -4
  147. package/build/server/chunks/{6-CEx1JO4m.js.map → 6-Da49O-RB.js.map} +1 -1
  148. package/build/server/chunks/{7-Cz-fnTMA.js → 7-C4TEFQmD.js} +3 -3
  149. package/build/server/chunks/{7-Cz-fnTMA.js.map → 7-C4TEFQmD.js.map} +1 -1
  150. package/build/server/chunks/{8-CFNvkchb.js → 8-6Lblm8Bu.js} +3 -3
  151. package/build/server/chunks/{8-CFNvkchb.js.map → 8-6Lblm8Bu.js.map} +1 -1
  152. package/build/server/chunks/{9-DrF9Yg9r.js → 9-bV3k1piX.js} +4 -4
  153. package/build/server/chunks/{9-DrF9Yg9r.js.map → 9-bV3k1piX.js.map} +1 -1
  154. package/build/server/chunks/{AppHeader-vae2Doza.js → AppHeader-C76PLheq.js} +2 -2
  155. package/build/server/chunks/{AppHeader-vae2Doza.js.map → AppHeader-C76PLheq.js.map} +1 -1
  156. package/build/server/chunks/{UserChip-BPLEgzMp.js → UserChip-i0_3jHOb.js} +8 -3
  157. package/build/server/chunks/UserChip-i0_3jHOb.js.map +1 -0
  158. package/build/server/chunks/{_layout.svelte-D5GiNGr6.js → _layout.svelte-B-tWsdy4.js} +3 -3
  159. package/build/server/chunks/{_layout.svelte-D5GiNGr6.js.map → _layout.svelte-B-tWsdy4.js.map} +1 -1
  160. package/build/server/chunks/{_layout.svelte-_enyp5QE.js → _layout.svelte-B2RbgABg.js} +3 -3
  161. package/build/server/chunks/{_layout.svelte-_enyp5QE.js.map → _layout.svelte-B2RbgABg.js.map} +1 -1
  162. package/build/server/chunks/{_layout.svelte-aflz8r6I.js → _layout.svelte-DUeER8oS.js} +3 -3
  163. package/build/server/chunks/{_layout.svelte-aflz8r6I.js.map → _layout.svelte-DUeER8oS.js.map} +1 -1
  164. package/build/server/chunks/{_page.svelte-By_vYfbZ.js → _page.svelte-0KErHswo.js} +94 -4
  165. package/build/server/chunks/_page.svelte-0KErHswo.js.map +1 -0
  166. package/build/server/chunks/{_page.svelte-ZxjqrKH8.js → _page.svelte-BSHEM3UY.js} +3 -3
  167. package/build/server/chunks/{_page.svelte-ZxjqrKH8.js.map → _page.svelte-BSHEM3UY.js.map} +1 -1
  168. package/build/server/chunks/{_page.svelte-FDFRMnmB.js → _page.svelte-CDEfhXLp.js} +3 -3
  169. package/build/server/chunks/{_page.svelte-FDFRMnmB.js.map → _page.svelte-CDEfhXLp.js.map} +1 -1
  170. package/build/server/chunks/{_page.svelte-wUV5pt7K.js → _page.svelte-DDzV91b5.js} +305 -54
  171. package/build/server/chunks/_page.svelte-DDzV91b5.js.map +1 -0
  172. package/build/server/chunks/{_server.ts-CYnQlbaG.js → _server.ts-3LBSaM7L.js} +26 -14
  173. package/build/server/chunks/_server.ts-3LBSaM7L.js.map +1 -0
  174. package/build/server/chunks/{_server.ts-C4BxZ2rC.js → _server.ts-B-un1ZTf.js} +5 -5
  175. package/build/server/chunks/{_server.ts-C4BxZ2rC.js.map → _server.ts-B-un1ZTf.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-aJ-1nqR3.js → _server.ts-B6gtWjZd.js} +9 -9
  177. package/build/server/chunks/_server.ts-B6gtWjZd.js.map +1 -0
  178. package/build/server/chunks/{_server.ts-A5TZCqa5.js → _server.ts-B9Fdut8P.js} +16 -12
  179. package/build/server/chunks/_server.ts-B9Fdut8P.js.map +1 -0
  180. package/build/server/chunks/{_server.ts-Ck8MaVCN.js → _server.ts-BJEEQ8tH.js} +17 -13
  181. package/build/server/chunks/_server.ts-BJEEQ8tH.js.map +1 -0
  182. package/build/server/chunks/{_server.ts-pUwXCS2e.js → _server.ts-BKPaoj3Y.js} +16 -11
  183. package/build/server/chunks/_server.ts-BKPaoj3Y.js.map +1 -0
  184. package/build/server/chunks/{_server.ts-CVgSO8yh.js → _server.ts-BVpHuRup.js} +10 -10
  185. package/build/server/chunks/_server.ts-BVpHuRup.js.map +1 -0
  186. package/build/server/chunks/{_server.ts-Ctmv-46q.js → _server.ts-BplW_hNF.js} +9 -9
  187. package/build/server/chunks/_server.ts-BplW_hNF.js.map +1 -0
  188. package/build/server/chunks/{_server.ts-Dsn1xqkb.js → _server.ts-Bv-G75Ze.js} +9 -9
  189. package/build/server/chunks/_server.ts-Bv-G75Ze.js.map +1 -0
  190. package/build/server/chunks/{_server.ts-DzoHhw3c.js → _server.ts-C5fD6gFa.js} +12 -12
  191. package/build/server/chunks/_server.ts-C5fD6gFa.js.map +1 -0
  192. package/build/server/chunks/{_server.ts-jICcnrLz.js → _server.ts-C6rUlJpJ.js} +14 -7
  193. package/build/server/chunks/_server.ts-C6rUlJpJ.js.map +1 -0
  194. package/build/server/chunks/_server.ts-CLku3Kgz.js +66 -0
  195. package/build/server/chunks/_server.ts-CLku3Kgz.js.map +1 -0
  196. package/build/server/chunks/{_server.ts-CmB_7_VV.js → _server.ts-CNRwBoMm.js} +5 -5
  197. package/build/server/chunks/{_server.ts-CmB_7_VV.js.map → _server.ts-CNRwBoMm.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-DOepVbAV.js → _server.ts-COuXITb8.js} +11 -11
  199. package/build/server/chunks/_server.ts-COuXITb8.js.map +1 -0
  200. package/build/server/chunks/{_server.ts-vGCP86Du.js → _server.ts-CT1KXbVK.js} +79 -26
  201. package/build/server/chunks/_server.ts-CT1KXbVK.js.map +1 -0
  202. package/build/server/chunks/{_server.ts-BBenjXRj.js → _server.ts-CTXCbdsb.js} +12 -11
  203. package/build/server/chunks/_server.ts-CTXCbdsb.js.map +1 -0
  204. package/build/server/chunks/{_server.ts-CvjBKoOG.js → _server.ts-CXEl8kvu.js} +15 -14
  205. package/build/server/chunks/_server.ts-CXEl8kvu.js.map +1 -0
  206. package/build/server/chunks/{_server.ts-DCmcZ1Gb.js → _server.ts-CZ9lwb1J.js} +7 -7
  207. package/build/server/chunks/_server.ts-CZ9lwb1J.js.map +1 -0
  208. package/build/server/chunks/{_server.ts-Drk8mhhT.js → _server.ts-CaytsdFp.js} +9 -9
  209. package/build/server/chunks/_server.ts-CaytsdFp.js.map +1 -0
  210. package/build/server/chunks/{_server.ts-C8hNi-NM.js → _server.ts-Cd6dVQ2J.js} +19 -11
  211. package/build/server/chunks/_server.ts-Cd6dVQ2J.js.map +1 -0
  212. package/build/server/chunks/{_server.ts-Bel_bV82.js → _server.ts-CgRuMyJ9.js} +10 -10
  213. package/build/server/chunks/_server.ts-CgRuMyJ9.js.map +1 -0
  214. package/build/server/chunks/{_server.ts-TGu9dCIM.js → _server.ts-CmCeYB9h.js} +28 -18
  215. package/build/server/chunks/_server.ts-CmCeYB9h.js.map +1 -0
  216. package/build/server/chunks/{_server.ts-Mywogv28.js → _server.ts-Codg_zX0.js} +10 -9
  217. package/build/server/chunks/_server.ts-Codg_zX0.js.map +1 -0
  218. package/build/server/chunks/{_server.ts-Cu7fT_h2.js → _server.ts-D-WjMJlD.js} +12 -8
  219. package/build/server/chunks/_server.ts-D-WjMJlD.js.map +1 -0
  220. package/build/server/chunks/{_server.ts-BnV_32U5.js → _server.ts-D4z7bYT1.js} +25 -12
  221. package/build/server/chunks/_server.ts-D4z7bYT1.js.map +1 -0
  222. package/build/server/chunks/{_server.ts-BDVOe9oZ.js → _server.ts-D7URpGBv.js} +15 -11
  223. package/build/server/chunks/_server.ts-D7URpGBv.js.map +1 -0
  224. package/build/server/chunks/{_server.ts-CtwHDS7C.js → _server.ts-DMwrtYEK.js} +14 -14
  225. package/build/server/chunks/_server.ts-DMwrtYEK.js.map +1 -0
  226. package/build/server/chunks/{_server.ts-DgbeoluB.js → _server.ts-DSVtVVVK.js} +18 -12
  227. package/build/server/chunks/_server.ts-DSVtVVVK.js.map +1 -0
  228. package/build/server/chunks/{_server.ts-CXvixtRW.js → _server.ts-Df72lBuz.js} +25 -16
  229. package/build/server/chunks/_server.ts-Df72lBuz.js.map +1 -0
  230. package/build/server/chunks/{_server.ts-_nasPzxH.js → _server.ts-DlN3WSBT.js} +3 -3
  231. package/build/server/chunks/{_server.ts-_nasPzxH.js.map → _server.ts-DlN3WSBT.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-BNSHTRhw.js → _server.ts-DsXq-KLm.js} +27 -18
  233. package/build/server/chunks/_server.ts-DsXq-KLm.js.map +1 -0
  234. package/build/server/chunks/{_server.ts-eAeNUEse.js → _server.ts-OQ5_sYi3.js} +32 -19
  235. package/build/server/chunks/_server.ts-OQ5_sYi3.js.map +1 -0
  236. package/build/server/chunks/{_server.ts-CoZrqfhl.js → _server.ts-UYOqhuxS.js} +13 -9
  237. package/build/server/chunks/_server.ts-UYOqhuxS.js.map +1 -0
  238. package/build/server/chunks/{_server.ts-C4lve0n9.js → _server.ts-Xt4gRfAl.js} +18 -12
  239. package/build/server/chunks/_server.ts-Xt4gRfAl.js.map +1 -0
  240. package/build/server/chunks/{_server.ts-CFmfnLGv.js → _server.ts-ZtjukIa0.js} +17 -14
  241. package/build/server/chunks/_server.ts-ZtjukIa0.js.map +1 -0
  242. package/build/server/chunks/_server.ts-bR98vjY2.js +47 -0
  243. package/build/server/chunks/_server.ts-bR98vjY2.js.map +1 -0
  244. package/build/server/chunks/{_server.ts-DgjIv5VO.js → _server.ts-deI69oUs.js} +9 -9
  245. package/build/server/chunks/_server.ts-deI69oUs.js.map +1 -0
  246. package/build/server/chunks/{_server.ts-DaL0WEpS.js → _server.ts-fxzTH5KH.js} +8 -8
  247. package/build/server/chunks/_server.ts-fxzTH5KH.js.map +1 -0
  248. package/build/server/chunks/{_server.ts-DQdxI18h.js → _server.ts-mFb6RwID.js} +8 -8
  249. package/build/server/chunks/_server.ts-mFb6RwID.js.map +1 -0
  250. package/build/server/chunks/{_server.ts-y7PjdP_H.js → _server.ts-sdl64bpd.js} +12 -9
  251. package/build/server/chunks/_server.ts-sdl64bpd.js.map +1 -0
  252. package/build/server/chunks/{access.server-BueyYEoY.js → access.server-Rd56k7vs.js} +4 -4
  253. package/build/server/chunks/{access.server-BueyYEoY.js.map → access.server-Rd56k7vs.js.map} +1 -1
  254. package/build/server/chunks/{api-errors-BckwXK7Q.js → api-errors-BrqxD-El.js} +54 -15
  255. package/build/server/chunks/api-errors-BrqxD-El.js.map +1 -0
  256. package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js → auth-bootstrap.server-DKc9-3PR.js} +2 -2
  257. package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js.map → auth-bootstrap.server-DKc9-3PR.js.map} +1 -1
  258. package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js → bootHealth.server-IPXOSqqQ.js} +2 -2
  259. package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js.map → bootHealth.server-IPXOSqqQ.js.map} +1 -1
  260. package/build/server/chunks/{computeLimits-DPO6NbLd.js → computeLimits-DnJ77wR9.js} +3 -3
  261. package/build/server/chunks/computeLimits-DnJ77wR9.js.map +1 -0
  262. package/build/server/chunks/{hooks.server-BHmZpgdz.js → hooks.server-BZKLAgww.js} +10 -9
  263. package/build/server/chunks/hooks.server-BZKLAgww.js.map +1 -0
  264. package/build/server/chunks/{package-CGdqH7nx.js → package-K5EkWw87.js} +2 -2
  265. package/build/server/chunks/{package-CGdqH7nx.js.map → package-K5EkWw87.js.map} +1 -1
  266. package/build/server/chunks/{permissions.server-D1KUdeD1.js → permissions.server-zs4XAJCp.js} +2 -2
  267. package/build/server/chunks/{permissions.server-D1KUdeD1.js.map → permissions.server-zs4XAJCp.js.map} +1 -1
  268. package/build/server/chunks/{providers.server-BYk2ehLM.js → providers.server-C3fQ7ZdV.js} +78 -21
  269. package/build/server/chunks/providers.server-C3fQ7ZdV.js.map +1 -0
  270. package/build/server/chunks/{resolve.server-D79ZavTd.js → resolve.server-t1UmqtsG.js} +2 -2
  271. package/build/server/chunks/{resolve.server-D79ZavTd.js.map → resolve.server-t1UmqtsG.js.map} +1 -1
  272. package/build/server/chunks/{utils2-UQQTHTw-.js → utils2-BqfluBM6.js} +2 -2
  273. package/build/server/chunks/{utils2-UQQTHTw-.js.map → utils2-BqfluBM6.js.map} +1 -1
  274. package/build/server/index.js +2 -2
  275. package/build/server/index.js.map +1 -1
  276. package/build/server/manifest.js +77 -70
  277. package/build/server/manifest.js.map +1 -1
  278. package/package.json +7 -7
  279. package/templates/.env.example +14 -5
  280. package/build/client/_app/immutable/chunks/B-fj8b7K.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/B-fj8b7K.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/BU70HLVx.js +0 -3
  283. package/build/client/_app/immutable/chunks/BU70HLVx.js.br +0 -0
  284. package/build/client/_app/immutable/chunks/BU70HLVx.js.gz +0 -0
  285. package/build/client/_app/immutable/chunks/CdGNQgyw.js.br +0 -0
  286. package/build/client/_app/immutable/chunks/CdGNQgyw.js.gz +0 -0
  287. package/build/client/_app/immutable/chunks/D-jj-Uww.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/D-jj-Uww.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/D7wuDTx2.js.br +0 -0
  290. package/build/client/_app/immutable/chunks/D7wuDTx2.js.gz +0 -0
  291. package/build/client/_app/immutable/chunks/j-UbJSFZ.js.br +0 -0
  292. package/build/client/_app/immutable/chunks/j-UbJSFZ.js.gz +0 -0
  293. package/build/client/_app/immutable/entry/app.CsJrZk_i.js.br +0 -0
  294. package/build/client/_app/immutable/entry/app.CsJrZk_i.js.gz +0 -0
  295. package/build/client/_app/immutable/entry/start.vCkjGHiU.js +0 -1
  296. package/build/client/_app/immutable/entry/start.vCkjGHiU.js.br +0 -2
  297. package/build/client/_app/immutable/entry/start.vCkjGHiU.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/11.cZPocN3B.js +0 -2
  301. package/build/client/_app/immutable/nodes/11.cZPocN3B.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/11.cZPocN3B.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/13.CZxapN5I.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/13.CZxapN5I.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/16.Cewxge5m.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/16.Cewxge5m.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/2.CgydK0lI.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/2.CgydK0lI.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/20.CoGCSB-X.js +0 -5021
  316. package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.br +0 -0
  317. package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.gz +0 -0
  318. package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.gz +0 -0
  320. package/build/client/_app/immutable/nodes/23.CmSUvEas.js.br +0 -0
  321. package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.br +0 -0
  324. package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.gz +0 -0
  325. package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.br +0 -0
  326. package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.gz +0 -0
  327. package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.br +0 -0
  330. package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.gz +0 -0
  331. package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.br +0 -0
  332. package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.gz +0 -0
  333. package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.br +0 -2
  334. package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.gz +0 -0
  335. package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.br +0 -0
  336. package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.gz +0 -0
  337. package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.br +0 -0
  338. package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.gz +0 -0
  339. package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.br +0 -0
  340. package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.gz +0 -0
  341. package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.br +0 -0
  342. package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.gz +0 -0
  343. package/build/server/chunks/UserChip-BPLEgzMp.js.map +0 -1
  344. package/build/server/chunks/_page.svelte-By_vYfbZ.js.map +0 -1
  345. package/build/server/chunks/_page.svelte-wUV5pt7K.js.map +0 -1
  346. package/build/server/chunks/_server.ts-A5TZCqa5.js.map +0 -1
  347. package/build/server/chunks/_server.ts-BBenjXRj.js.map +0 -1
  348. package/build/server/chunks/_server.ts-BDVOe9oZ.js.map +0 -1
  349. package/build/server/chunks/_server.ts-BNSHTRhw.js.map +0 -1
  350. package/build/server/chunks/_server.ts-Bel_bV82.js.map +0 -1
  351. package/build/server/chunks/_server.ts-BnV_32U5.js.map +0 -1
  352. package/build/server/chunks/_server.ts-C4lve0n9.js.map +0 -1
  353. package/build/server/chunks/_server.ts-C8hNi-NM.js.map +0 -1
  354. package/build/server/chunks/_server.ts-CFmfnLGv.js.map +0 -1
  355. package/build/server/chunks/_server.ts-CVgSO8yh.js.map +0 -1
  356. package/build/server/chunks/_server.ts-CXvixtRW.js.map +0 -1
  357. package/build/server/chunks/_server.ts-CYnQlbaG.js.map +0 -1
  358. package/build/server/chunks/_server.ts-Ck8MaVCN.js.map +0 -1
  359. package/build/server/chunks/_server.ts-CoZrqfhl.js.map +0 -1
  360. package/build/server/chunks/_server.ts-Ctmv-46q.js.map +0 -1
  361. package/build/server/chunks/_server.ts-CtwHDS7C.js.map +0 -1
  362. package/build/server/chunks/_server.ts-Cu7fT_h2.js.map +0 -1
  363. package/build/server/chunks/_server.ts-CvjBKoOG.js.map +0 -1
  364. package/build/server/chunks/_server.ts-DCmcZ1Gb.js.map +0 -1
  365. package/build/server/chunks/_server.ts-DOepVbAV.js.map +0 -1
  366. package/build/server/chunks/_server.ts-DQdxI18h.js.map +0 -1
  367. package/build/server/chunks/_server.ts-DaL0WEpS.js.map +0 -1
  368. package/build/server/chunks/_server.ts-DbcwlSqy.js +0 -65
  369. package/build/server/chunks/_server.ts-DbcwlSqy.js.map +0 -1
  370. package/build/server/chunks/_server.ts-DgbeoluB.js.map +0 -1
  371. package/build/server/chunks/_server.ts-DgjIv5VO.js.map +0 -1
  372. package/build/server/chunks/_server.ts-Drk8mhhT.js.map +0 -1
  373. package/build/server/chunks/_server.ts-Dsn1xqkb.js.map +0 -1
  374. package/build/server/chunks/_server.ts-DzoHhw3c.js.map +0 -1
  375. package/build/server/chunks/_server.ts-Mywogv28.js.map +0 -1
  376. package/build/server/chunks/_server.ts-TGu9dCIM.js.map +0 -1
  377. package/build/server/chunks/_server.ts-aJ-1nqR3.js.map +0 -1
  378. package/build/server/chunks/_server.ts-eAeNUEse.js.map +0 -1
  379. package/build/server/chunks/_server.ts-jICcnrLz.js.map +0 -1
  380. package/build/server/chunks/_server.ts-pUwXCS2e.js.map +0 -1
  381. package/build/server/chunks/_server.ts-vGCP86Du.js.map +0 -1
  382. package/build/server/chunks/_server.ts-y7PjdP_H.js.map +0 -1
  383. package/build/server/chunks/api-errors-BckwXK7Q.js.map +0 -1
  384. package/build/server/chunks/computeLimits-DPO6NbLd.js.map +0 -1
  385. package/build/server/chunks/hooks.server-BHmZpgdz.js.map +0 -1
  386. package/build/server/chunks/providers.server-BYk2ehLM.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Cd6dVQ2J.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { j as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n apiError(\n 409,\n ApiErrorCode.CONFLICT,\n \"A project with that name already exists in this organization.\"\n );\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n apiError(\n 409,\n ApiErrorCode.CONFLICT,\n \"Could not pick a unique project slug after several attempts.\"\n );\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,MAAM,iBAAiB,GAAG,EAAE;AAC5B,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/G;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/G;AACA,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACrE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;AAC7C,EAAE,UAAU,EAAE,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC;AACxD,EAAE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ;AACxC,CAAC,CAAC;AACG,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;AAC/F,EAAE,IAAI;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC9F,IAAI,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACzC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC;AAClD,EAAE;AACF;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC5C,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;AAC/F,EAAE,MAAM,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;AACxD,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;AAClD,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,EAAE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK;AAChE,EAAE,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC/D,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;AAChG,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,kBAAkB,EAAE;AAC3C,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;AACzD,EAAE,MAAM,GAAG,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACxD,EAAE,MAAM,SAAS,GAAG,UAAU,EAAE;AAChC,EAAE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE;AAChE,IAAI,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AACxE,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,EAAE,EAAE,SAAS;AACnB,MAAM,KAAK,EAAE,GAAG,CAAC,WAAW;AAC5B,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;AAC5B,MAAM,IAAI;AACV,MAAM,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;AAC1C,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;AACxC,MAAM,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,gBAAgB;AACtB,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,SAAS,EAAE;AACjB,KAAK;AACL,IAAI,IAAI;AACR,MAAM,MAAM,YAAY,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;AACpD,MAAM,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3C,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,QAAQ;AAChB,UAAU,GAAG;AACb,UAAU,YAAY,CAAC,QAAQ;AAC/B,UAAU;AACV,SAAS;AACT,MAAM;AACN,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,MAAM,cAAc,CAAC,GAAG,EAAE,0BAA0B,CAAC;AACrD,IAAI;AACJ,EAAE;AACF,EAAE,QAAQ;AACV,IAAI,GAAG;AACP,IAAI,YAAY,CAAC,QAAQ;AACzB,IAAI;AACJ,GAAG;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { k as getOrganizationProvider, P as ProviderError } from './providers.server-BYk2ehLM.js';
3
- import { u as requireInstanceAdmin } from './access.server-BueyYEoY.js';
4
- import { h as handleApiError, t as throwZodError } from './api-errors-BckwXK7Q.js';
1
+ import { json } from '@sveltejs/kit';
2
+ import { k as getOrganizationProvider, P as ProviderError } from './providers.server-C3fQ7ZdV.js';
3
+ import { u as requireInstanceAdmin } from './access.server-Rd56k7vs.js';
4
+ import { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
5
5
  import { i as UpdateOrgSchema } from './context-BJnJL8ES.js';
6
6
  import './shared-server-C3WdcJCQ.js';
7
7
  import 'node:url';
@@ -12,12 +12,12 @@ import 'node:fs/promises';
12
12
  import '@supabase/supabase-js';
13
13
  import 'zod';
14
14
  import '@selvajs/compute/core';
15
- import './utils2-UQQTHTw-.js';
15
+ import './utils2-BqfluBM6.js';
16
16
 
17
17
  const PATCH = async ({ params, request, locals }) => {
18
18
  requireInstanceAdmin(locals);
19
19
  const { id } = params;
20
- if (!id) throw error(400, "Missing org ID");
20
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing org ID");
21
21
  const ctx = locals.ctx;
22
22
  const body = await request.json().catch(() => null);
23
23
  const parsed = UpdateOrgSchema.safeParse(body);
@@ -28,7 +28,7 @@ const PATCH = async ({ params, request, locals }) => {
28
28
  return json(updated);
29
29
  } catch (err) {
30
30
  if (err instanceof ProviderError && err.statusCode === 409) {
31
- throw error(409, err.message);
31
+ apiError(409, ApiErrorCode.CONFLICT, err.message);
32
32
  }
33
33
  handleApiError(err, "Failed to update org");
34
34
  }
@@ -36,15 +36,15 @@ const PATCH = async ({ params, request, locals }) => {
36
36
  const DELETE = async ({ params, locals }) => {
37
37
  requireInstanceAdmin(locals);
38
38
  const { id } = params;
39
- if (!id) throw error(400, "Missing org ID");
39
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing org ID");
40
40
  const ctx = locals.ctx;
41
41
  try {
42
42
  await getOrganizationProvider().deleteOrg(ctx, id);
43
- return json({ success: true });
43
+ return new Response(null, { status: 204 });
44
44
  } catch (err) {
45
45
  handleApiError(err, "Failed to delete org");
46
46
  }
47
47
  };
48
48
 
49
49
  export { DELETE, PATCH };
50
- //# sourceMappingURL=_server.ts-Bel_bV82.js.map
50
+ //# sourceMappingURL=_server.ts-CgRuMyJ9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CgRuMyJ9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/orgs/_id_/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { k as getOrganizationProvider, P as ProviderError } from \"../../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from \"../../../../../../chunks/api-errors.js\";\nimport { i as UpdateOrgSchema } from \"../../../../../../chunks/context.js\";\nconst PATCH = async ({ params, request, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing org ID\");\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = UpdateOrgSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getOrganizationProvider().updateOrg(ctx, id, parsed.data);\n const updated = await getOrganizationProvider().getOrg(ctx, id);\n return json(updated);\n } catch (err) {\n if (err instanceof ProviderError && err.statusCode === 409) {\n apiError(409, ApiErrorCode.CONFLICT, err.message);\n }\n handleApiError(err, \"Failed to update org\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing org ID\");\n const ctx = locals.ctx;\n try {\n await getOrganizationProvider().deleteOrg(ctx, id);\n return new Response(null, { status: 204 });\n } catch (err) {\n handleApiError(err, \"Failed to delete org\");\n }\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKK,MAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACrD,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC1E,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;AAChD,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,EAAE,IAAI;AACN,IAAI,MAAM,uBAAuB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACnE,IAAI,MAAM,OAAO,GAAG,MAAM,uBAAuB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACnE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAChE,MAAM,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AACvD,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE,sBAAsB,CAAC;AAC/C,EAAE;AACF;AACK,MAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACvB,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC1E,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,IAAI;AACN,IAAI,MAAM,uBAAuB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC;AACtD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9C,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,sBAAsB,CAAC;AAC/C,EAAE;AACF;;;;"}
@@ -1,11 +1,10 @@
1
- import { error, json } from '@sveltejs/kit';
2
1
  import { z } from 'zod';
3
- import { l as getPermissionStore, a as getAuthProvider, e as getDataProvider, k as getOrganizationProvider } from './providers.server-BYk2ehLM.js';
4
- import { w as requireManageInstanceUsers } from './access.server-BueyYEoY.js';
5
- import { t as throwZodError } from './api-errors-BckwXK7Q.js';
2
+ import { l as getPermissionStore, a as getAuthProvider, e as getDataProvider, k as getOrganizationProvider } from './providers.server-C3fQ7ZdV.js';
3
+ import { w as requireManageInstanceUsers } from './access.server-Rd56k7vs.js';
4
+ import { a as apiError, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
6
5
  import { S as SYSTEM_CONTEXT, j as hasPermission, D as DEFAULT_ORG_PERMISSIONS, M as MEMBER_ASSIGNABLE_PERMISSIONS, P as PlatformPermissionSchema, d as OrgPermissionSchema } from './context-BJnJL8ES.js';
7
6
  import { s as splitFlatPermissions } from './permissions-compat.server-G174xsh6.js';
8
- import { s as setUserPlatformPermissions } from './permissions.server-D1KUdeD1.js';
7
+ import { s as setUserPlatformPermissions } from './permissions.server-zs4XAJCp.js';
9
8
  import './shared-server-C3WdcJCQ.js';
10
9
  import 'node:url';
11
10
  import 'node:path';
@@ -13,8 +12,9 @@ import 'node:fs';
13
12
  import 'node:crypto';
14
13
  import 'node:fs/promises';
15
14
  import '@supabase/supabase-js';
15
+ import '@sveltejs/kit';
16
16
  import '@selvajs/compute/core';
17
- import './utils2-UQQTHTw-.js';
17
+ import './utils2-BqfluBM6.js';
18
18
 
19
19
  const FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);
20
20
  const UpdatePermissionsBody = z.object({
@@ -23,7 +23,7 @@ const UpdatePermissionsBody = z.object({
23
23
  const PATCH = async ({ params, request, locals }) => {
24
24
  requireManageInstanceUsers(locals);
25
25
  const { id } = params;
26
- if (!id) throw error(400, "Missing user ID");
26
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing user ID");
27
27
  const body = await request.json().catch(() => null);
28
28
  const parsed = UpdatePermissionsBody.safeParse(body);
29
29
  if (!parsed.success) throwZodError(parsed.error);
@@ -31,15 +31,24 @@ const PATCH = async ({ params, request, locals }) => {
31
31
  const existingPlatform = await getPermissionStore().getFor(locals.ctx, id);
32
32
  const platformChanged = platform.length !== existingPlatform.length || platform.some((p) => !existingPlatform.includes(p)) || existingPlatform.some((p) => !platform.includes(p));
33
33
  if (platformChanged && !hasPermission(locals.ctx, "instance_admin")) {
34
- throw error(403, "Only a platform admin can change platform-scope permissions");
34
+ apiError(
35
+ 403,
36
+ ApiErrorCode.FORBIDDEN,
37
+ "Only a platform admin can change platform-scope permissions"
38
+ );
35
39
  }
36
40
  const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);
37
- if (platformResult === "not_found") throw error(404, "User not found");
41
+ if (platformResult === "not_found") apiError(404, ApiErrorCode.NOT_FOUND, "User not found");
38
42
  if (platformResult === "not_supported")
39
- throw error(501, "Platform permission updates not supported by this auth provider");
43
+ apiError(
44
+ 501,
45
+ ApiErrorCode.INTERNAL,
46
+ "Platform permission updates not supported by this auth provider"
47
+ );
40
48
  if (platformResult === "last_admin")
41
- throw error(
49
+ apiError(
42
50
  409,
51
+ ApiErrorCode.CONFLICT,
43
52
  "Cannot remove the last instance admin. Promote another user to instance admin first."
44
53
  );
45
54
  const orgId = locals.ctx?.actingOrgId;
@@ -68,29 +77,30 @@ const PATCH = async ({ params, request, locals }) => {
68
77
  });
69
78
  }
70
79
  }
71
- return json({ success: true });
80
+ return new Response(null, { status: 204 });
72
81
  };
73
82
  const DELETE = async ({ params, locals }) => {
74
83
  requireManageInstanceUsers(locals);
75
84
  const { id } = params;
76
- if (!id) throw error(400, "Missing user ID");
85
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing user ID");
77
86
  const targetPerms = await getPermissionStore().getFor(locals.ctx, id);
78
87
  if (targetPerms.includes("instance_admin")) {
79
88
  const others = await getPermissionStore().countInstanceAdminsExcluding(locals.ctx, id);
80
89
  if (others === 0) {
81
- throw error(
90
+ apiError(
82
91
  409,
92
+ ApiErrorCode.CONFLICT,
83
93
  "Cannot delete the last instance admin. Promote another user to instance admin first."
84
94
  );
85
95
  }
86
96
  }
87
97
  const result = await getAuthProvider().deleteUser(id);
88
- if (result === "not_found") throw error(404, "User not found");
98
+ if (result === "not_found") apiError(404, ApiErrorCode.NOT_FOUND, "User not found");
89
99
  if (result === "not_supported")
90
- throw error(501, "User deletion not supported by this auth provider");
100
+ apiError(501, ApiErrorCode.INTERNAL, "User deletion not supported by this auth provider");
91
101
  await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);
92
- return json({ success: true });
102
+ return new Response(null, { status: 204 });
93
103
  };
94
104
 
95
105
  export { DELETE, PATCH };
96
- //# sourceMappingURL=_server.ts-TGu9dCIM.js.map
106
+ //# sourceMappingURL=_server.ts-CmCeYB9h.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CmCeYB9h.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_id_/_server.ts.js"],"sourcesContent":["import { z } from \"zod\";\nimport { l as getPermissionStore, a as getAuthProvider, e as getDataProvider, k as getOrganizationProvider } from \"../../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../../chunks/access.server.js\";\nimport { a as apiError, t as throwZodError, A as ApiErrorCode } from \"../../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, d as OrgPermissionSchema, S as SYSTEM_CONTEXT, j 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) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"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 apiError(\n 403,\n ApiErrorCode.FORBIDDEN,\n \"Only a platform admin can change platform-scope permissions\"\n );\n }\n const platformResult = await setUserPlatformPermissions(locals.ctx, id, platform);\n if (platformResult === \"not_found\") apiError(404, ApiErrorCode.NOT_FOUND, \"User not found\");\n if (platformResult === \"not_supported\")\n apiError(\n 501,\n ApiErrorCode.INTERNAL,\n \"Platform permission updates not supported by this auth provider\"\n );\n if (platformResult === \"last_admin\")\n apiError(\n 409,\n ApiErrorCode.CONFLICT,\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 new Response(null, { status: 204 });\n};\nconst DELETE = async ({ params, locals }) => {\n requireManageInstanceUsers(locals);\n const { id } = params;\n if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"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 apiError(\n 409,\n ApiErrorCode.CONFLICT,\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\") apiError(404, ApiErrorCode.NOT_FOUND, \"User not found\");\n if (result === \"not_supported\")\n apiError(501, ApiErrorCode.INTERNAL, \"User deletion not supported by this auth provider\");\n await getDataProvider().onUserDeleted(SYSTEM_CONTEXT, id);\n return new Response(null, { status: 204 });\n};\nexport {\n DELETE,\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { i as getDefinitionService } from './providers.server-BYk2ehLM.js';
3
- import { t as requireEditableDefinition } from './access.server-BueyYEoY.js';
4
- import { h as handleApiError } from './api-errors-BckwXK7Q.js';
1
+ import { i as getDefinitionService } from './providers.server-C3fQ7ZdV.js';
2
+ import { t as requireEditableDefinition } from './access.server-Rd56k7vs.js';
3
+ import { a as apiError, h as handleApiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
5
4
  import { G as GuidSchema } from './context-BJnJL8ES.js';
6
5
  import './shared-server-C3WdcJCQ.js';
7
6
  import 'node:url';
@@ -10,23 +9,25 @@ import 'node:fs';
10
9
  import 'node:crypto';
11
10
  import 'node:fs/promises';
12
11
  import '@supabase/supabase-js';
12
+ import '@sveltejs/kit';
13
13
  import 'zod';
14
14
  import '@selvajs/compute/core';
15
- import './utils2-UQQTHTw-.js';
15
+ import './utils2-BqfluBM6.js';
16
16
 
17
17
  const DELETE = async ({ params, locals }) => {
18
18
  const guidParsed = GuidSchema.safeParse(params.guid);
19
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
19
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
20
20
  const versionParsed = GuidSchema.safeParse(params.versionId);
21
- if (!versionParsed.success) throw error(400, "Invalid or missing version ID");
21
+ if (!versionParsed.success)
22
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing version ID");
22
23
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
23
24
  try {
24
25
  await getDefinitionService().deleteVersion(ctx, guidParsed.data, versionParsed.data);
25
- return json({ success: true });
26
+ return new Response(null, { status: 204 });
26
27
  } catch (err) {
27
28
  handleApiError(err, "Failed to delete version");
28
29
  }
29
30
  };
30
31
 
31
32
  export { DELETE };
32
- //# sourceMappingURL=_server.ts-Mywogv28.js.map
33
+ //# sourceMappingURL=_server.ts-Codg_zX0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Codg_zX0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/versions/_versionId_/_server.ts.js"],"sourcesContent":["import { i as getDefinitionService } from \"../../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, A as ApiErrorCode } 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) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const versionParsed = GuidSchema.safeParse(params.versionId);\n if (!versionParsed.success)\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing version ID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await getDefinitionService().deleteVersion(ctx, guidParsed.data, versionParsed.data);\n return new Response(null, { status: 204 });\n } catch (err) {\n handleApiError(err, \"Failed to delete version\");\n }\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIK,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,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;AACnG,EAAE,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9D,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;AAC5B,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;AAClF,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1E,EAAE,IAAI;AACN,IAAI,MAAM,oBAAoB,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AACxF,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9C,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,0BAA0B,CAAC;AACnD,EAAE;AACF;;;;"}
@@ -1,13 +1,16 @@
1
- import { error, redirect } from '@sveltejs/kit';
2
- import { a as getAuthProvider } from './providers.server-BYk2ehLM.js';
3
- import { b as bootstrapUserSession } from './auth-bootstrap.server-BOTw9HkY.js';
1
+ import { redirect } from '@sveltejs/kit';
2
+ import { a as apiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
3
+ import { a as getAuthProvider } from './providers.server-C3fQ7ZdV.js';
4
+ import { b as bootstrapUserSession } from './auth-bootstrap.server-DKc9-3PR.js';
4
5
  import { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from './admin-auth.server-45kKyH82.js';
6
+ import './context-BJnJL8ES.js';
7
+ import 'zod';
8
+ import '@selvajs/compute/core';
9
+ import './utils2-BqfluBM6.js';
5
10
  import './shared-server-C3WdcJCQ.js';
6
11
  import 'node:url';
7
12
  import 'node:path';
8
13
  import 'node:fs';
9
- import './context-BJnJL8ES.js';
10
- import 'zod';
11
14
  import 'node:crypto';
12
15
  import 'node:fs/promises';
13
16
  import '@supabase/supabase-js';
@@ -16,10 +19,11 @@ import './slug-BGuFQjqe.js';
16
19
  const GET = async ({ url, cookies }) => {
17
20
  const emailLink = getAuthProvider().emailLink;
18
21
  if (!emailLink) {
19
- throw error(501, "Email sign-in is not supported by this provider.");
22
+ apiError(501, ApiErrorCode.INTERNAL, "Email sign-in is not supported by this provider.");
20
23
  }
21
24
  const result = await emailLink.verifyMagicLink(url.toString());
22
- if (!result) throw error(401, "This sign-in link is invalid or has expired.");
25
+ if (!result)
26
+ apiError(401, ApiErrorCode.UNAUTHORIZED, "This sign-in link is invalid or has expired.");
23
27
  await bootstrapUserSession(result.user);
24
28
  setSessionCookie(cookies, result.sessionToken);
25
29
  if (result.refreshToken) setRefreshCookie(cookies, result.refreshToken);
@@ -28,4 +32,4 @@ const GET = async ({ url, cookies }) => {
28
32
  };
29
33
 
30
34
  export { GET };
31
- //# sourceMappingURL=_server.ts-Cu7fT_h2.js.map
35
+ //# sourceMappingURL=_server.ts-D-WjMJlD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-D-WjMJlD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/email/callback/_server.ts.js"],"sourcesContent":["import { redirect } from \"@sveltejs/kit\";\nimport { a as apiError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { a as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nimport { b as bootstrapUserSession } from \"../../../../../chunks/auth-bootstrap.server.js\";\nimport { h as setSessionCookie, f as setRefreshCookie, s as safeRedirectTarget } from \"../../../../../chunks/admin-auth.server.js\";\nconst GET = async ({ url, cookies }) => {\n const emailLink = getAuthProvider().emailLink;\n if (!emailLink) {\n apiError(501, ApiErrorCode.INTERNAL, \"Email sign-in is not supported by this provider.\");\n }\n const result = await emailLink.verifyMagicLink(url.toString());\n if (!result)\n apiError(401, ApiErrorCode.UNAUTHORIZED, \"This sign-in link is invalid or has expired.\");\n await bootstrapUserSession(result.user);\n setSessionCookie(cookies, result.sessionToken);\n if (result.refreshToken) setRefreshCookie(cookies, result.refreshToken);\n const dest = safeRedirectTarget(url.searchParams.get(\"redirectTo\"), \"/library\");\n redirect(303, dest);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,kDAAkD,CAAC;AAC5F,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAChE,EAAE,IAAI,CAAC,MAAM;AACb,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,8CAA8C,CAAC;AAC5F,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AAChD,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;AACzE,EAAE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;AACjF,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACrB;;;;"}
@@ -1,9 +1,9 @@
1
- import { error, json } from '@sveltejs/kit';
1
+ import { json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from './providers.server-BYk2ehLM.js';
5
- import { u as requireInstanceAdmin } from './access.server-BueyYEoY.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-BckwXK7Q.js';
4
+ import { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from './providers.server-C3fQ7ZdV.js';
5
+ import { u as requireInstanceAdmin } from './access.server-Rd56k7vs.js';
6
+ import { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
7
7
  import { s as slugify } from './slug-BGuFQjqe.js';
8
8
  import { S as SYSTEM_CONTEXT } from './context-BJnJL8ES.js';
9
9
  import './shared-server-C3WdcJCQ.js';
@@ -13,7 +13,7 @@ import 'node:fs';
13
13
  import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import '@selvajs/compute/core';
16
- import './utils2-UQQTHTw-.js';
16
+ import './utils2-BqfluBM6.js';
17
17
 
18
18
  const MAX_SLUG_ATTEMPTS = 25;
19
19
  function isSlugConflict(err) {
@@ -36,7 +36,7 @@ const CreatePlatformProjectBody = z.object({
36
36
  });
37
37
  const GET = async ({ locals }) => {
38
38
  requireInstanceAdmin(locals);
39
- if (!flag("ENABLE_PLATFORM_PROJECTS")) throw error(404, "Not found");
39
+ if (!flag("ENABLE_PLATFORM_PROJECTS")) apiError(404, ApiErrorCode.NOT_FOUND, "Not found");
40
40
  try {
41
41
  const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });
42
42
  const all = [];
@@ -55,17 +55,22 @@ const GET = async ({ locals }) => {
55
55
  };
56
56
  const POST = async ({ request, locals }) => {
57
57
  const user = requireInstanceAdmin(locals);
58
- if (!flag("ENABLE_PLATFORM_PROJECTS")) throw error(404, "Not found");
58
+ if (!flag("ENABLE_PLATFORM_PROJECTS")) apiError(404, ApiErrorCode.NOT_FOUND, "Not found");
59
59
  const ctx = locals.ctx;
60
60
  const body = await request.json().catch(() => null);
61
61
  const parsed = CreatePlatformProjectBody.safeParse(body);
62
62
  if (!parsed.success) throwZodError(parsed.error);
63
63
  const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;
64
64
  if (!hostOrgId) {
65
- throw error(400, "A host orgId is required (no active organization in context).");
65
+ apiError(
66
+ 400,
67
+ ApiErrorCode.VALIDATION_FAILED,
68
+ "A host orgId is required (no active organization in context)."
69
+ );
66
70
  }
67
71
  const hostOrg = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId);
68
- if (!hostOrg) throw error(400, `Host organization '${hostOrgId}' not found.`);
72
+ if (!hostOrg)
73
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, `Host organization '${hostOrgId}' not found.`);
69
74
  const projectStore = getProjectProvider();
70
75
  const baseSlug = slugify(parsed.data.name) || "platform-project";
71
76
  const now = (/* @__PURE__ */ new Date()).toISOString();
@@ -92,14 +97,22 @@ const POST = async ({ request, locals }) => {
92
97
  return json(project, { status: 201 });
93
98
  } catch (err) {
94
99
  if (isNameConflict(err)) {
95
- throw error(409, "A project with that name already exists in the host organization.");
100
+ apiError(
101
+ 409,
102
+ ApiErrorCode.CONFLICT,
103
+ "A project with that name already exists in the host organization."
104
+ );
96
105
  }
97
106
  if (isSlugConflict(err)) continue;
98
107
  handleApiError(err, "Failed to create platform project");
99
108
  }
100
109
  }
101
- throw error(409, "Could not pick a unique project slug after several attempts.");
110
+ apiError(
111
+ 409,
112
+ ApiErrorCode.CONFLICT,
113
+ "Could not pick a unique project slug after several attempts."
114
+ );
102
115
  };
103
116
 
104
117
  export { GET, POST };
105
- //# sourceMappingURL=_server.ts-BnV_32U5.js.map
118
+ //# sourceMappingURL=_server.ts-D4z7bYT1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-D4z7bYT1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { f as flag, k as getOrganizationProvider, n as getProjectProvider, P as ProviderError } from \"../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../../chunks/slug.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreatePlatformProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n /**\n * Org that physically hosts the project. Storage routing and compute\n * resolution use this — but org membership in this org does NOT grant\n * access. Visibility = 'platform' overrides those defaults.\n *\n * If omitted, the platform admin's first available org is used.\n */\n orgId: z.string().uuid().optional()\n});\nconst GET = async ({ locals }) => {\n requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) apiError(404, ApiErrorCode.NOT_FOUND, \"Not found\");\n try {\n const orgs = await getOrganizationProvider().listOrgs(SYSTEM_CONTEXT, { limit: 1e3 });\n const all = [];\n for (const org of orgs.items) {\n const page = await getProjectProvider().listProjects(SYSTEM_CONTEXT, org.id, {\n limit: 1e3\n });\n for (const p of page.items) {\n if (p.visibility === \"platform\") all.push(p);\n }\n }\n return json({ projects: all });\n } catch (err) {\n handleApiError(err, \"Failed to list platform projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const user = requireInstanceAdmin(locals);\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) apiError(404, ApiErrorCode.NOT_FOUND, \"Not found\");\n const ctx = locals.ctx;\n const body = await request.json().catch(() => null);\n const parsed = CreatePlatformProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const hostOrgId = parsed.data.orgId ?? ctx.actingOrgId;\n if (!hostOrgId) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n \"A host orgId is required (no active organization in context).\"\n );\n }\n const hostOrg = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, hostOrgId);\n if (!hostOrg)\n apiError(400, ApiErrorCode.VALIDATION_FAILED, `Host organization '${hostOrgId}' not found.`);\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"platform-project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: hostOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: \"platform\",\n ownerId: user.id,\n createdBy: user.id,\n updatedBy: user.id,\n autoJoinOnUpload: false,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(SYSTEM_CONTEXT, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n apiError(\n 409,\n ApiErrorCode.CONFLICT,\n \"A project with that name already exists in the host organization.\"\n );\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create platform project\");\n }\n }\n apiError(\n 409,\n ApiErrorCode.CONFLICT,\n \"Could not pick a unique project slug after several attempts.\"\n );\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { i as getDefinitionService } from './providers.server-BYk2ehLM.js';
3
- import { t as requireEditableDefinition } from './access.server-BueyYEoY.js';
4
- import { h as handleApiError } from './api-errors-BckwXK7Q.js';
1
+ import { json } from '@sveltejs/kit';
2
+ import { i as getDefinitionService } from './providers.server-C3fQ7ZdV.js';
3
+ import { t as requireEditableDefinition } from './access.server-Rd56k7vs.js';
4
+ import { a as apiError, h as handleApiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
5
5
  import { G as GuidSchema } from './context-BJnJL8ES.js';
6
- import { b as MAX_IMAGE_FILE_SIZE } from './computeLimits-DPO6NbLd.js';
6
+ import { b as MAX_IMAGE_FILE_SIZE } from './computeLimits-DnJ77wR9.js';
7
7
  import './shared-server-C3WdcJCQ.js';
8
8
  import 'node:url';
9
9
  import 'node:path';
@@ -13,29 +13,33 @@ import 'node:fs/promises';
13
13
  import '@supabase/supabase-js';
14
14
  import 'zod';
15
15
  import '@selvajs/compute/core';
16
- import './utils2-UQQTHTw-.js';
16
+ import './utils2-BqfluBM6.js';
17
17
 
18
18
  const POST = async ({ params, request, locals }) => {
19
19
  const guidParsed = GuidSchema.safeParse(params.guid);
20
- if (!guidParsed.success) throw error(400, "Invalid GUID");
20
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid GUID");
21
21
  const guid = guidParsed.data;
22
22
  const { ctx } = await requireEditableDefinition(locals, guid);
23
23
  const formData = await request.formData();
24
24
  const file = formData.get("image");
25
25
  if (!(file instanceof File) || file.size === 0) {
26
- throw error(400, "Image file is required");
26
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Image file is required");
27
27
  }
28
28
  if (file.size > MAX_IMAGE_FILE_SIZE) {
29
- throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);
29
+ apiError(
30
+ 400,
31
+ ApiErrorCode.VALIDATION_FAILED,
32
+ `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`
33
+ );
30
34
  }
31
35
  try {
32
36
  const imageData = new Uint8Array(await file.arrayBuffer());
33
37
  const coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);
34
- return json({ success: true, coverImage });
38
+ return json({ coverImage });
35
39
  } catch (err) {
36
40
  handleApiError(err, "Failed to upload image");
37
41
  }
38
42
  };
39
43
 
40
44
  export { POST };
41
- //# sourceMappingURL=_server.ts-BDVOe9oZ.js.map
45
+ //# sourceMappingURL=_server.ts-D7URpGBv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-D7URpGBv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService } from \"../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, A as ApiErrorCode } from \"../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema } from \"../../../../../../chunks/context.js\";\nimport { b as MAX_IMAGE_FILE_SIZE } from \"../../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid GUID\");\n const guid = guidParsed.data;\n const { ctx } = await requireEditableDefinition(locals, guid);\n const formData = await request.formData();\n const file = formData.get(\"image\");\n if (!(file instanceof File) || file.size === 0) {\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Image file is required\");\n }\n if (file.size > MAX_IMAGE_FILE_SIZE) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`\n );\n }\n try {\n const imageData = new Uint8Array(await file.arrayBuffer());\n const coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);\n return json({ coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to upload image\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AACpD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC;AACxF,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/D,EAAE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AAC3C,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,EAAE,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AAClD,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;AAC3E,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE;AACvC,IAAI,QAAQ;AACZ,MAAM,GAAG;AACT,MAAM,YAAY,CAAC,iBAAiB;AACpC,MAAM,CAAC,2BAA2B,EAAE,mBAAmB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG;AAC3E,KAAK;AACL,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AAC9D,IAAI,MAAM,UAAU,GAAG,MAAM,oBAAoB,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC;AACxF,IAAI,OAAO,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;AAC/B,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC;AACjD,EAAE;AACF;;;;"}
@@ -1,7 +1,10 @@
1
- import { error } from '@sveltejs/kit';
2
- import { h as getDefinitionMeta, d as definitionPaths, o as getStorageProvider } from './providers.server-BYk2ehLM.js';
1
+ import { a as apiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
2
+ import { h as getDefinitionMeta, d as definitionPaths, p as getStorageProvider } from './providers.server-C3fQ7ZdV.js';
3
3
  import { G as GuidSchema } from './context-BJnJL8ES.js';
4
- import { s as requireCanViewProject } from './access.server-BueyYEoY.js';
4
+ import { s as requireCanViewProject } from './access.server-Rd56k7vs.js';
5
+ import '@sveltejs/kit';
6
+ import '@selvajs/compute/core';
7
+ import './utils2-BqfluBM6.js';
5
8
  import './shared-server-C3WdcJCQ.js';
6
9
  import 'node:url';
7
10
  import 'node:path';
@@ -10,9 +13,6 @@ import 'node:crypto';
10
13
  import 'node:fs/promises';
11
14
  import '@supabase/supabase-js';
12
15
  import 'zod';
13
- import './api-errors-BckwXK7Q.js';
14
- import '@selvajs/compute/core';
15
- import './utils2-UQQTHTw-.js';
16
16
 
17
17
  const ALLOWED_EXTENSIONS = {
18
18
  ".webp": "image/webp",
@@ -24,21 +24,21 @@ const ALLOWED_EXTENSIONS = {
24
24
  const COVER_PATH_PATTERN = /^definitions\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\/cover\.([a-z]+)$/i;
25
25
  const GET = async ({ params, locals }) => {
26
26
  const storagePath = params.path;
27
- if (!storagePath) throw error(400, "Missing path");
27
+ if (!storagePath) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing path");
28
28
  const match = COVER_PATH_PATTERN.exec(storagePath);
29
- if (!match) throw error(404, "File not found");
29
+ if (!match) apiError(404, ApiErrorCode.NOT_FOUND, "File not found");
30
30
  const [, guid, rawExt] = match;
31
31
  const ext = `.${rawExt.toLowerCase()}`;
32
- if (!ALLOWED_EXTENSIONS[ext]) throw error(404, "File not found");
32
+ if (!ALLOWED_EXTENSIONS[ext]) apiError(404, ApiErrorCode.NOT_FOUND, "File not found");
33
33
  const guidParsed = GuidSchema.safeParse(guid);
34
- if (!guidParsed.success) throw error(404, "File not found");
35
- if (!locals.ctx) throw error(401, "Unauthorized");
34
+ if (!guidParsed.success) apiError(404, ApiErrorCode.NOT_FOUND, "File not found");
35
+ if (!locals.ctx) apiError(401, ApiErrorCode.UNAUTHORIZED, "Unauthorized");
36
36
  const record = await getDefinitionMeta().get(locals.ctx, guidParsed.data);
37
- if (!record) throw error(404, "File not found");
37
+ if (!record) apiError(404, ApiErrorCode.NOT_FOUND, "File not found");
38
38
  await requireCanViewProject(locals, record.projectId);
39
39
  const canonicalPath = definitionPaths.image(guidParsed.data);
40
40
  const bytes = await getStorageProvider().get(canonicalPath);
41
- if (!bytes) throw error(404, "File not found");
41
+ if (!bytes) apiError(404, ApiErrorCode.NOT_FOUND, "File not found");
42
42
  return new Response(Buffer.from(bytes), {
43
43
  headers: {
44
44
  "Content-Type": ALLOWED_EXTENSIONS[ext],
@@ -48,4 +48,4 @@ const GET = async ({ params, locals }) => {
48
48
  };
49
49
 
50
50
  export { GET };
51
- //# sourceMappingURL=_server.ts-CtwHDS7C.js.map
51
+ //# sourceMappingURL=_server.ts-DMwrtYEK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DMwrtYEK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/files/_...path_/_server.ts.js"],"sourcesContent":["import { a as apiError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { h as getDefinitionMeta, d as definitionPaths, p as getStorageProvider } from \"../../../../../chunks/providers.server.js\";\nimport { G as GuidSchema } from \"../../../../../chunks/context.js\";\nimport { s as requireCanViewProject } from \"../../../../../chunks/access.server.js\";\nconst ALLOWED_EXTENSIONS = {\n \".webp\": \"image/webp\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".png\": \"image/png\",\n \".gif\": \"image/gif\"\n};\nconst COVER_PATH_PATTERN = /^definitions\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\/cover\\.([a-z]+)$/i;\nconst GET = async ({ params, locals }) => {\n const storagePath = params.path;\n if (!storagePath) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing path\");\n const match = COVER_PATH_PATTERN.exec(storagePath);\n if (!match) apiError(404, ApiErrorCode.NOT_FOUND, \"File not found\");\n const [, guid, rawExt] = match;\n const ext = `.${rawExt.toLowerCase()}`;\n if (!ALLOWED_EXTENSIONS[ext]) apiError(404, ApiErrorCode.NOT_FOUND, \"File not found\");\n const guidParsed = GuidSchema.safeParse(guid);\n if (!guidParsed.success) apiError(404, ApiErrorCode.NOT_FOUND, \"File not found\");\n if (!locals.ctx) apiError(401, ApiErrorCode.UNAUTHORIZED, \"Unauthorized\");\n const record = await getDefinitionMeta().get(locals.ctx, guidParsed.data);\n if (!record) apiError(404, ApiErrorCode.NOT_FOUND, \"File not found\");\n await requireCanViewProject(locals, record.projectId);\n const canonicalPath = definitionPaths.image(guidParsed.data);\n const bytes = await getStorageProvider().get(canonicalPath);\n if (!bytes) apiError(404, ApiErrorCode.NOT_FOUND, \"File not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": ALLOWED_EXTENSIONS[ext],\n \"Cache-Control\": \"private, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAM,kBAAkB,GAAG;AAC3B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE;AACV,CAAC;AACD,MAAM,kBAAkB,GAAG,iGAAiG;AACvH,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI;AACjC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACrE,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACvF,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAClF,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,cAAc,CAAC;AAC3E,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;AAC3E,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACtE,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7D,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACrE,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,kBAAkB,CAAC,GAAG,CAAC;AAC7C,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -1,9 +1,9 @@
1
- import { error, json } from '@sveltejs/kit';
1
+ import { json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { m as getPlatformProjectGrantStore, k as getOrganizationProvider, q as getUserProfileStore, f as flag, n as getProjectProvider } from './providers.server-BYk2ehLM.js';
5
- import { u as requireInstanceAdmin } from './access.server-BueyYEoY.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-BckwXK7Q.js';
4
+ import { m as getPlatformProjectGrantStore, k as getOrganizationProvider, r as getUserProfileStore, f as flag, n as getProjectProvider } from './providers.server-C3fQ7ZdV.js';
5
+ import { u as requireInstanceAdmin } from './access.server-Rd56k7vs.js';
6
+ import { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
7
7
  import { S as SYSTEM_CONTEXT } from './context-BJnJL8ES.js';
8
8
  import './shared-server-C3WdcJCQ.js';
9
9
  import 'node:url';
@@ -12,7 +12,7 @@ import 'node:fs';
12
12
  import 'node:fs/promises';
13
13
  import '@supabase/supabase-js';
14
14
  import '@selvajs/compute/core';
15
- import './utils2-UQQTHTw-.js';
15
+ import './utils2-BqfluBM6.js';
16
16
 
17
17
  const CreateGrantBody = z.object({
18
18
  granteeType: z.enum(["org", "user"]),
@@ -20,17 +20,17 @@ const CreateGrantBody = z.object({
20
20
  canSolve: z.boolean()
21
21
  });
22
22
  async function assertPlatformProject(id) {
23
- if (!flag("ENABLE_PLATFORM_PROJECTS")) throw error(404, "Not found");
23
+ if (!flag("ENABLE_PLATFORM_PROJECTS")) apiError(404, ApiErrorCode.NOT_FOUND, "Not found");
24
24
  const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);
25
25
  if (!project || project.visibility !== "platform") {
26
- throw error(404, "Platform project not found");
26
+ apiError(404, ApiErrorCode.NOT_FOUND, "Platform project not found");
27
27
  }
28
28
  return project;
29
29
  }
30
30
  const GET = async ({ params, locals }) => {
31
31
  requireInstanceAdmin(locals);
32
32
  const { id } = params;
33
- if (!id) throw error(400, "Missing project ID");
33
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing project ID");
34
34
  try {
35
35
  await assertPlatformProject(id);
36
36
  const grants = await getPlatformProjectGrantStore().listByProject(SYSTEM_CONTEXT, id);
@@ -42,7 +42,7 @@ const GET = async ({ params, locals }) => {
42
42
  const POST = async ({ params, request, locals }) => {
43
43
  const user = requireInstanceAdmin(locals);
44
44
  const { id } = params;
45
- if (!id) throw error(400, "Missing project ID");
45
+ if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Missing project ID");
46
46
  const body = await request.json().catch(() => null);
47
47
  const parsed = CreateGrantBody.safeParse(body);
48
48
  if (!parsed.success) throwZodError(parsed.error);
@@ -50,10 +50,16 @@ const POST = async ({ params, request, locals }) => {
50
50
  await assertPlatformProject(id);
51
51
  if (parsed.data.granteeType === "org") {
52
52
  const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, parsed.data.granteeId);
53
- if (!org) throw error(400, `Organization '${parsed.data.granteeId}' not found`);
53
+ if (!org)
54
+ apiError(
55
+ 400,
56
+ ApiErrorCode.VALIDATION_FAILED,
57
+ `Organization '${parsed.data.granteeId}' not found`
58
+ );
54
59
  } else {
55
60
  const profile = await getUserProfileStore().getProfile(SYSTEM_CONTEXT, parsed.data.granteeId);
56
- if (!profile) throw error(400, `User '${parsed.data.granteeId}' not found`);
61
+ if (!profile)
62
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, `User '${parsed.data.granteeId}' not found`);
57
63
  }
58
64
  const grant = {
59
65
  id: randomUUID(),
@@ -72,4 +78,4 @@ const POST = async ({ params, request, locals }) => {
72
78
  };
73
79
 
74
80
  export { GET, POST };
75
- //# sourceMappingURL=_server.ts-DgbeoluB.js.map
81
+ //# sourceMappingURL=_server.ts-DSVtVVVK.js.map