@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-DSVtVVVK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { m as getPlatformProjectGrantStore, k as getOrganizationProvider, r as getUserProfileStore, f as flag, n as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { u as requireInstanceAdmin } from \"../../../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from \"../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../chunks/context.js\";\nconst CreateGrantBody = z.object({\n granteeType: z.enum([\"org\", \"user\"]),\n granteeId: z.string().min(1),\n canSolve: z.boolean()\n});\nasync function assertPlatformProject(id) {\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) apiError(404, ApiErrorCode.NOT_FOUND, \"Not found\");\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);\n if (!project || project.visibility !== \"platform\") {\n apiError(404, ApiErrorCode.NOT_FOUND, \"Platform project not found\");\n }\n return project;\n}\nconst GET = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing project ID\");\n try {\n await assertPlatformProject(id);\n const grants = await getPlatformProjectGrantStore().listByProject(SYSTEM_CONTEXT, id);\n return json({ grants });\n } catch (err) {\n handleApiError(err, \"Failed to list grants\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const user = requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Missing project ID\");\n const body = await request.json().catch(() => null);\n const parsed = CreateGrantBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await assertPlatformProject(id);\n if (parsed.data.granteeType === \"org\") {\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!org)\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `Organization '${parsed.data.granteeId}' not found`\n );\n } else {\n const profile = await getUserProfileStore().getProfile(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!profile)\n apiError(400, ApiErrorCode.VALIDATION_FAILED, `User '${parsed.data.granteeId}' not found`);\n }\n const grant = {\n id: randomUUID(),\n projectId: id,\n granteeType: parsed.data.granteeType,\n granteeId: parsed.data.granteeId,\n canSolve: parsed.data.canSolve,\n createdBy: user.id,\n createdAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n await getPlatformProjectGrantStore().create(SYSTEM_CONTEXT, grant);\n return json(grant, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create grant\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { i as getDefinitionService, n as getProjectProvider } from './providers.server-BYk2ehLM.js';
3
- import { t as requireEditableDefinition } from './access.server-BueyYEoY.js';
4
- import { h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError } from './api-errors-BckwXK7Q.js';
1
+ import { json } from '@sveltejs/kit';
2
+ import { i as getDefinitionService, n as getProjectProvider } from './providers.server-C3fQ7ZdV.js';
3
+ import { t as requireEditableDefinition } from './access.server-Rd56k7vs.js';
4
+ import { a as apiError, h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
5
5
  import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
6
6
  import { G as GuidSchema, U as UpdateMetadataInputSchema } from './context-BJnJL8ES.js';
7
- import { M as MAX_GH_FILE_SIZE } from './computeLimits-DPO6NbLd.js';
7
+ import { M as MAX_GH_FILE_SIZE } from './computeLimits-DnJ77wR9.js';
8
8
  import './shared-server-C3WdcJCQ.js';
9
9
  import 'node:url';
10
10
  import 'node:path';
@@ -14,22 +14,31 @@ import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import 'zod';
16
16
  import '@selvajs/compute/core';
17
- import './utils2-UQQTHTw-.js';
17
+ import './utils2-BqfluBM6.js';
18
18
 
19
19
  const POST = async ({ params, request, locals }) => {
20
20
  const guidParsed = GuidSchema.safeParse(params.guid);
21
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
21
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
22
22
  const formData = await request.formData();
23
23
  const file = formData.get("file");
24
- if (!(file instanceof File)) throw error(400, "A Grasshopper (.gh or .ghx) file is required");
24
+ if (!(file instanceof File))
25
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "A Grasshopper (.gh or .ghx) file is required");
25
26
  const changeNoteRaw = formData.get("changeNote");
26
27
  const changeNote = typeof changeNoteRaw === "string" ? changeNoteRaw.slice(0, 1e3) : void 0;
27
28
  const ext = file.name.slice(file.name.lastIndexOf(".")).toLowerCase();
28
29
  if (!GH_EXTENSIONS.includes(ext)) {
29
- throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(", ")}`);
30
+ apiError(
31
+ 400,
32
+ ApiErrorCode.VALIDATION_FAILED,
33
+ `File type not allowed. Allowed: ${GH_EXTENSIONS.join(", ")}`
34
+ );
30
35
  }
31
36
  if (file.size > MAX_GH_FILE_SIZE) {
32
- throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);
37
+ apiError(
38
+ 400,
39
+ ApiErrorCode.VALIDATION_FAILED,
40
+ `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`
41
+ );
33
42
  }
34
43
  const { ctx, record } = await requireEditableDefinition(locals, guidParsed.data);
35
44
  const fileExt = ext.slice(1);
@@ -49,36 +58,36 @@ const POST = async ({ params, request, locals }) => {
49
58
  schema,
50
59
  changeNote
51
60
  );
52
- return json({ success: true, version });
61
+ return json({ version }, { status: 201 });
53
62
  } catch (err) {
54
63
  handleApiError(err, "Failed to upload definition version");
55
64
  }
56
65
  };
57
66
  const DELETE = async ({ params, locals }) => {
58
67
  const guidParsed = GuidSchema.safeParse(params.guid);
59
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
68
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
60
69
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
61
70
  try {
62
71
  await getDefinitionService().delete(ctx, guidParsed.data);
63
- return json({ success: true });
72
+ return new Response(null, { status: 204 });
64
73
  } catch (err) {
65
74
  handleApiError(err, "Failed to delete definition");
66
75
  }
67
76
  };
68
77
  const PUT = async ({ params, request, locals }) => {
69
78
  const guidParsed = GuidSchema.safeParse(params.guid);
70
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
79
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
71
80
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
72
81
  const body = await request.json().catch(() => null);
73
82
  const parsed = UpdateMetadataInputSchema.safeParse(body);
74
83
  if (!parsed.success) throwZodError(parsed.error);
75
84
  try {
76
85
  await getDefinitionService().updateMeta(ctx, guidParsed.data, parsed.data);
77
- return json({ success: true });
86
+ return new Response(null, { status: 204 });
78
87
  } catch (err) {
79
88
  handleApiError(err, "Failed to update definition");
80
89
  }
81
90
  };
82
91
 
83
92
  export { DELETE, POST, PUT };
84
- //# sourceMappingURL=_server.ts-CXvixtRW.js.map
93
+ //# sourceMappingURL=_server.ts-Df72lBuz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Df72lBuz.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { i as getDefinitionService, n as getProjectProvider } from \"../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, r as resolveServerForOrg, f as fetchSchemaFromCompute, t as throwZodError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../../chunks/types.js\";\nimport { G as GuidSchema, U as UpdateMetadataInputSchema } from \"../../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE } from \"../../../../../chunks/computeLimits.js\";\nconst POST = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File))\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"A Grasshopper (.gh or .ghx) file is required\");\n const changeNoteRaw = formData.get(\"changeNote\");\n const changeNote = typeof changeNoteRaw === \"string\" ? changeNoteRaw.slice(0, 1e3) : void 0;\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`\n );\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`\n );\n }\n const { ctx, record } = await requireEditableDefinition(locals, guidParsed.data);\n const fileExt = ext.slice(1);\n try {\n const data = new Uint8Array(await file.arrayBuffer());\n const project = await getProjectProvider().getProject(ctx, record.projectId);\n const server = await resolveServerForOrg(ctx, project?.orgId ?? null, {\n definitionPin: record.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(data, server);\n const version = await getDefinitionService().uploadVersion(\n ctx,\n guidParsed.data,\n data,\n fileExt,\n file.name,\n schema,\n changeNote\n );\n return json({ version }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to upload definition version\");\n }\n};\nconst DELETE = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n await getDefinitionService().delete(ctx, guidParsed.data);\n return new Response(null, { status: 204 });\n } catch (err) {\n handleApiError(err, \"Failed to delete definition\");\n }\n};\nconst PUT = async ({ params, request, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => null);\n const parsed = UpdateMetadataInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await getDefinitionService().updateMeta(ctx, guidParsed.data, parsed.data);\n return new Response(null, { status: 204 });\n } catch (err) {\n handleApiError(err, \"Failed to update definition\");\n }\n};\nexport {\n DELETE,\n POST,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { json } from '@sveltejs/kit';
2
2
  import { randomUUID } from 'crypto';
3
3
  import { createRequire } from 'module';
4
- import { g as getBootHealth, i as isDegraded } from './bootHealth.server-BwEi-Qp8.js';
4
+ import { g as getBootHealth, i as isDegraded } from './bootHealth.server-IPXOSqqQ.js';
5
5
  import './context-BJnJL8ES.js';
6
6
  import 'zod';
7
- import './providers.server-BYk2ehLM.js';
7
+ import './providers.server-C3fQ7ZdV.js';
8
8
  import './shared-server-C3WdcJCQ.js';
9
9
  import 'node:url';
10
10
  import 'node:path';
@@ -36,4 +36,4 @@ const GET = async () => {
36
36
  };
37
37
 
38
38
  export { GET };
39
- //# sourceMappingURL=_server.ts-_nasPzxH.js.map
39
+ //# sourceMappingURL=_server.ts-DlN3WSBT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-_nasPzxH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"crypto\";\nimport { createRequire } from \"module\";\nimport { g as getBootHealth, i as isDegraded } from \"../../../../chunks/bootHealth.server.js\";\nconst INSTANCE_ID = randomUUID();\nconst RUNTIME_VERSION = (() => {\n try {\n const require2 = createRequire(import.meta.url);\n return require2(\"@selvajs/selva/package.json\").version;\n } catch {\n return null;\n }\n})();\nconst GET = async () => {\n const boot = await getBootHealth();\n const degraded = isDegraded(boot);\n const body = {\n status: degraded ? \"degraded\" : \"ok\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n instanceId: INSTANCE_ID,\n version: RUNTIME_VERSION,\n boot\n };\n return json(body, { status: degraded ? 503 : 200 });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,MAAM,WAAW,GAAG,UAAU,EAAE;AAChC,MAAM,eAAe,GAAG,CAAC,MAAM;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,IAAI,OAAO,QAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO;AAC1D,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF,CAAC,GAAG;AACC,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;AACxC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrD;;;;"}
1
+ {"version":3,"file":"_server.ts-DlN3WSBT.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"crypto\";\nimport { createRequire } from \"module\";\nimport { g as getBootHealth, i as isDegraded } from \"../../../../chunks/bootHealth.server.js\";\nconst INSTANCE_ID = randomUUID();\nconst RUNTIME_VERSION = (() => {\n try {\n const require2 = createRequire(import.meta.url);\n return require2(\"@selvajs/selva/package.json\").version;\n } catch {\n return null;\n }\n})();\nconst GET = async () => {\n const boot = await getBootHealth();\n const degraded = isDegraded(boot);\n const body = {\n status: degraded ? \"degraded\" : \"ok\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n instanceId: INSTANCE_ID,\n version: RUNTIME_VERSION,\n boot\n };\n return json(body, { status: degraded ? 503 : 200 });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,MAAM,WAAW,GAAG,UAAU,EAAE;AAChC,MAAM,eAAe,GAAG,CAAC,MAAM;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,IAAI,OAAO,QAAQ,CAAC,6BAA6B,CAAC,CAAC,OAAO;AAC1D,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF,CAAC,GAAG;AACC,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;AACxC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzD,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACrD;;;;"}
@@ -1,8 +1,10 @@
1
- import { error, json } from '@sveltejs/kit';
2
- import { c as getComputeServerConfigStore, r as isOrgServer, s as isPlatformServer, f as flag } from './providers.server-BYk2ehLM.js';
3
- import { x as requireManageOrgCompute } from './access.server-BueyYEoY.js';
1
+ import { json } from '@sveltejs/kit';
2
+ import { a as apiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
3
+ import { c as getComputeServerConfigStore, s as isOrgServer, t as isPlatformServer, f as flag } from './providers.server-C3fQ7ZdV.js';
4
+ import { x as requireManageOrgCompute } from './access.server-Rd56k7vs.js';
4
5
  import './context-BJnJL8ES.js';
5
- import { s as serversVisibleTo } from './utils2-UQQTHTw-.js';
6
+ import { s as serversVisibleTo } from './utils2-BqfluBM6.js';
7
+ import '@selvajs/compute/core';
6
8
  import './shared-server-C3WdcJCQ.js';
7
9
  import 'node:url';
8
10
  import 'node:path';
@@ -10,14 +12,13 @@ import 'node:fs';
10
12
  import 'node:crypto';
11
13
  import 'node:fs/promises';
12
14
  import '@supabase/supabase-js';
13
- import './api-errors-BckwXK7Q.js';
14
- import '@selvajs/compute/core';
15
15
  import 'zod';
16
16
 
17
17
  function requireFlag() {
18
18
  if (!flag("ALLOW_ORG_COMPUTE_OVERRIDE")) {
19
- throw error(
19
+ apiError(
20
20
  403,
21
+ ApiErrorCode.FORBIDDEN,
21
22
  "Per-org compute override is disabled on this instance (ALLOW_ORG_COMPUTE_OVERRIDE)."
22
23
  );
23
24
  }
@@ -26,7 +27,7 @@ const GET = async ({ locals }) => {
26
27
  requireFlag();
27
28
  requireManageOrgCompute(locals);
28
29
  const ctx = locals.ctx;
29
- if (!ctx.actingOrgId) throw error(400, "No active organization");
30
+ if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
30
31
  const config = await getComputeServerConfigStore().getConfig(ctx);
31
32
  const orgId = ctx.actingOrgId;
32
33
  const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => {
@@ -55,24 +56,28 @@ const PUT = async ({ request, locals }) => {
55
56
  requireFlag();
56
57
  requireManageOrgCompute(locals);
57
58
  const ctx = locals.ctx;
58
- if (!ctx.actingOrgId) throw error(400, "No active organization");
59
+ if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, "No active organization");
59
60
  const orgId = ctx.actingOrgId;
60
61
  const body = await request.json().catch(() => null);
61
- if (!body || typeof body !== "object") throw error(400, "Invalid request body");
62
+ if (!body || typeof body !== "object")
63
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid request body");
62
64
  const incoming = body;
63
- if (!Array.isArray(incoming.servers)) throw error(400, "servers must be an array");
65
+ if (!Array.isArray(incoming.servers))
66
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "servers must be an array");
64
67
  for (const s of incoming.servers) {
65
- if (!s.id || typeof s.id !== "string") throw error(400, "Each server needs an id");
66
- if (!s.label || typeof s.label !== "string") throw error(400, "Each server needs a label");
68
+ if (!s.id || typeof s.id !== "string")
69
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs an id");
70
+ if (!s.label || typeof s.label !== "string")
71
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a label");
67
72
  if (!s.serverUrl || typeof s.serverUrl !== "string")
68
- throw error(400, "Each server needs a serverUrl");
73
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a serverUrl");
69
74
  try {
70
75
  new URL(s.serverUrl);
71
76
  } catch {
72
- throw error(400, `Invalid serverUrl: ${s.serverUrl}`);
77
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);
73
78
  }
74
79
  if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== "string")
75
- throw error(400, "apiKey must be a string, null, or omitted");
80
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "apiKey must be a string, null, or omitted");
76
81
  }
77
82
  const provider = getComputeServerConfigStore();
78
83
  const existing = await provider.getConfig(ctx);
@@ -100,7 +105,11 @@ const PUT = async ({ request, locals }) => {
100
105
  };
101
106
  const visibleIds = new Set(serversVisibleTo(projected, orgId).map((s) => s.id));
102
107
  if (!visibleIds.has(incoming.defaultServerId)) {
103
- throw error(400, "defaultServerId must reference a server visible to this organization");
108
+ apiError(
109
+ 400,
110
+ ApiErrorCode.VALIDATION_FAILED,
111
+ "defaultServerId must reference a server visible to this organization"
112
+ );
104
113
  }
105
114
  }
106
115
  await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);
@@ -108,4 +117,4 @@ const PUT = async ({ request, locals }) => {
108
117
  };
109
118
 
110
119
  export { GET, PUT };
111
- //# sourceMappingURL=_server.ts-BNSHTRhw.js.map
120
+ //# sourceMappingURL=_server.ts-DsXq-KLm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DsXq-KLm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/org/compute/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { a as apiError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { c as getComputeServerConfigStore, s as isOrgServer, t as isPlatformServer, f as flag } from \"../../../../../chunks/providers.server.js\";\nimport { x as requireManageOrgCompute } from \"../../../../../chunks/access.server.js\";\nimport \"../../../../../chunks/context.js\";\nimport { s as serversVisibleTo } from \"../../../../../chunks/utils2.js\";\nfunction requireFlag() {\n if (!flag(\"ALLOW_ORG_COMPUTE_OVERRIDE\")) {\n apiError(\n 403,\n ApiErrorCode.FORBIDDEN,\n \"Per-org compute override is disabled on this instance (ALLOW_ORG_COMPUTE_OVERRIDE).\"\n );\n }\n}\nconst GET = async ({ locals }) => {\n requireFlag();\n requireManageOrgCompute(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"No active organization\");\n const config = await getComputeServerConfigStore().getConfig(ctx);\n const orgId = ctx.actingOrgId;\n const owned = config.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => {\n const orgServer = s;\n const { apiKey, ...rest } = orgServer;\n return { ...rest, hasApiKey: !!apiKey };\n });\n const visible = serversVisibleTo(config, orgId);\n const catalog = visible.map((s) => ({\n id: s.id,\n label: s.label,\n serverUrl: s.serverUrl,\n scope: s.scope,\n source: isPlatformServer(s) ? \"platform\" : \"org\",\n timeoutMs: s.timeoutMs,\n retryCount: s.retryCount\n }));\n return json({\n servers: owned,\n defaultServerId: config.orgDefaults?.[orgId] ?? null,\n globalDefaultServerId: config.defaultServerId ?? null,\n catalog\n });\n};\nconst PUT = async ({ request, locals }) => {\n requireFlag();\n requireManageOrgCompute(locals);\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"No active organization\");\n const orgId = ctx.actingOrgId;\n const body = await request.json().catch(() => null);\n if (!body || typeof body !== \"object\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid request body\");\n const incoming = body;\n if (!Array.isArray(incoming.servers))\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"servers must be an array\");\n for (const s of incoming.servers) {\n if (!s.id || typeof s.id !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs an id\");\n if (!s.label || typeof s.label !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a label\");\n if (!s.serverUrl || typeof s.serverUrl !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a serverUrl\");\n try {\n new URL(s.serverUrl);\n } catch {\n apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);\n }\n if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"apiKey must be a string, null, or omitted\");\n }\n const provider = getComputeServerConfigStore();\n const existing = await provider.getConfig(ctx);\n const storedKeyById = new Map(\n existing.servers.filter((s) => isOrgServer(s) && s.ownerOrgId === orgId).map((s) => [s.id, s.apiKey])\n );\n const next = incoming.servers.map((s) => ({\n id: s.id,\n scope: \"org\",\n ownerOrgId: orgId,\n label: s.label,\n serverUrl: s.serverUrl,\n timeoutMs: s.timeoutMs,\n retryCount: s.retryCount,\n apiKey: s.apiKey === null ? void 0 : s.apiKey ? s.apiKey : storedKeyById.get(s.id)\n }));\n if (typeof incoming.defaultServerId === \"string\") {\n const projected = {\n servers: [\n ...existing.servers.filter((s) => !(isOrgServer(s) && s.ownerOrgId === orgId)),\n ...next\n ],\n defaultServerId: existing.defaultServerId,\n orgDefaults: existing.orgDefaults\n };\n const visibleIds = new Set(serversVisibleTo(projected, orgId).map((s) => s.id));\n if (!visibleIds.has(incoming.defaultServerId)) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n \"defaultServerId must reference a server visible to this organization\"\n );\n }\n }\n await provider.saveOrgServers(ctx, orgId, next, incoming.defaultServerId);\n return new Response(null, { status: 204 });\n};\nexport {\n GET,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { json, error } from '@sveltejs/kit';
2
- import { c as getComputeServerConfigStore } from './providers.server-BYk2ehLM.js';
3
- import { v as requireManageCompute } from './access.server-BueyYEoY.js';
1
+ import { json } from '@sveltejs/kit';
2
+ import { a as apiError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
3
+ import { c as getComputeServerConfigStore } from './providers.server-C3fQ7ZdV.js';
4
+ import { v as requireManageCompute } from './access.server-Rd56k7vs.js';
4
5
  import './context-BJnJL8ES.js';
5
- import { p as platformServers } from './utils2-UQQTHTw-.js';
6
+ import { p as platformServers } from './utils2-BqfluBM6.js';
7
+ import '@selvajs/compute/core';
6
8
  import './shared-server-C3WdcJCQ.js';
7
9
  import 'node:url';
8
10
  import 'node:path';
@@ -10,8 +12,6 @@ import 'node:fs';
10
12
  import 'node:crypto';
11
13
  import 'node:fs/promises';
12
14
  import '@supabase/supabase-js';
13
- import './api-errors-BckwXK7Q.js';
14
- import '@selvajs/compute/core';
15
15
  import 'zod';
16
16
 
17
17
  const GET = async ({ locals }) => {
@@ -30,37 +30,50 @@ const GET = async ({ locals }) => {
30
30
  });
31
31
  } catch (err) {
32
32
  console.error("[Compute GET] Failed:", err);
33
- throw error(500, "Failed to load compute config");
33
+ apiError(500, ApiErrorCode.INTERNAL, "Failed to load compute config");
34
34
  }
35
35
  };
36
36
  const PUT = async ({ request, locals }) => {
37
37
  requireManageCompute(locals);
38
38
  const body = await request.json().catch(() => null);
39
- if (!body || typeof body !== "object") throw error(400, "Invalid request body");
39
+ if (!body || typeof body !== "object")
40
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid request body");
40
41
  const incoming = body;
41
- if (!Array.isArray(incoming.servers)) throw error(400, "servers must be an array");
42
+ if (!Array.isArray(incoming.servers))
43
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "servers must be an array");
42
44
  for (const s of incoming.servers) {
43
- if (!s.id || typeof s.id !== "string") throw error(400, "Each server needs an id");
44
- if (!s.label || typeof s.label !== "string") throw error(400, "Each server needs a label");
45
+ if (!s.id || typeof s.id !== "string")
46
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs an id");
47
+ if (!s.label || typeof s.label !== "string")
48
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a label");
45
49
  if (!s.serverUrl || typeof s.serverUrl !== "string")
46
- throw error(400, "Each server needs a serverUrl");
50
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "Each server needs a serverUrl");
47
51
  try {
48
52
  new URL(s.serverUrl);
49
53
  } catch {
50
- throw error(400, `Invalid serverUrl: ${s.serverUrl}`);
54
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);
51
55
  }
52
56
  if (s.sharedWith !== "all" && !Array.isArray(s.sharedWith)) {
53
- throw error(400, 'sharedWith must be "all" or an array of org ids');
57
+ apiError(
58
+ 400,
59
+ ApiErrorCode.VALIDATION_FAILED,
60
+ 'sharedWith must be "all" or an array of org ids'
61
+ );
54
62
  }
55
63
  if (Array.isArray(s.sharedWith) && s.sharedWith.some((x) => typeof x !== "string")) {
56
- throw error(400, "sharedWith array must contain strings");
64
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "sharedWith array must contain strings");
57
65
  }
58
66
  if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== "string")
59
- throw error(400, "apiKey must be a string, null, or omitted");
67
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, "apiKey must be a string, null, or omitted");
60
68
  }
61
69
  if (incoming.defaultServerId) {
62
70
  const found = incoming.servers.find((s) => s.id === incoming.defaultServerId);
63
- if (!found) throw error(400, "defaultServerId must reference one of the submitted servers");
71
+ if (!found)
72
+ apiError(
73
+ 400,
74
+ ApiErrorCode.VALIDATION_FAILED,
75
+ "defaultServerId must reference one of the submitted servers"
76
+ );
64
77
  }
65
78
  try {
66
79
  const provider = getComputeServerConfigStore();
@@ -78,9 +91,9 @@ const PUT = async ({ request, locals }) => {
78
91
  return new Response(null, { status: 204 });
79
92
  } catch (err) {
80
93
  console.error("[Compute PUT] Failed:", err);
81
- throw error(500, "Failed to save compute config");
94
+ apiError(500, ApiErrorCode.INTERNAL, "Failed to save compute config");
82
95
  }
83
96
  };
84
97
 
85
98
  export { GET, PUT };
86
- //# sourceMappingURL=_server.ts-eAeNUEse.js.map
99
+ //# sourceMappingURL=_server.ts-OQ5_sYi3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-OQ5_sYi3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/compute/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { a as apiError, A as ApiErrorCode } from \"../../../../../chunks/api-errors.js\";\nimport { c as getComputeServerConfigStore } from \"../../../../../chunks/providers.server.js\";\nimport { v as requireManageCompute } from \"../../../../../chunks/access.server.js\";\nimport \"../../../../../chunks/context.js\";\nimport { p as platformServers } from \"../../../../../chunks/utils2.js\";\nconst GET = async ({ locals }) => {\n requireManageCompute(locals);\n try {\n const config = await getComputeServerConfigStore().getConfig(locals.ctx);\n const servers = platformServers(config).map(\n ({ apiKey, ...rest }) => ({\n ...rest,\n hasApiKey: !!apiKey\n })\n );\n return json({\n servers,\n defaultServerId: config.defaultServerId\n });\n } catch (err) {\n console.error(\"[Compute GET] Failed:\", err);\n apiError(500, ApiErrorCode.INTERNAL, \"Failed to load compute config\");\n }\n};\nconst PUT = async ({ request, locals }) => {\n requireManageCompute(locals);\n const body = await request.json().catch(() => null);\n if (!body || typeof body !== \"object\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid request body\");\n const incoming = body;\n if (!Array.isArray(incoming.servers))\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"servers must be an array\");\n for (const s of incoming.servers) {\n if (!s.id || typeof s.id !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs an id\");\n if (!s.label || typeof s.label !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a label\");\n if (!s.serverUrl || typeof s.serverUrl !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Each server needs a serverUrl\");\n try {\n new URL(s.serverUrl);\n } catch {\n apiError(400, ApiErrorCode.VALIDATION_FAILED, `Invalid serverUrl: ${s.serverUrl}`);\n }\n if (s.sharedWith !== \"all\" && !Array.isArray(s.sharedWith)) {\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n 'sharedWith must be \"all\" or an array of org ids'\n );\n }\n if (Array.isArray(s.sharedWith) && s.sharedWith.some((x) => typeof x !== \"string\")) {\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"sharedWith array must contain strings\");\n }\n if (s.apiKey !== void 0 && s.apiKey !== null && typeof s.apiKey !== \"string\")\n apiError(400, ApiErrorCode.VALIDATION_FAILED, \"apiKey must be a string, null, or omitted\");\n }\n if (incoming.defaultServerId) {\n const found = incoming.servers.find((s) => s.id === incoming.defaultServerId);\n if (!found)\n apiError(\n 400,\n ApiErrorCode.VALIDATION_FAILED,\n \"defaultServerId must reference one of the submitted servers\"\n );\n }\n try {\n const provider = getComputeServerConfigStore();\n const existing = await provider.getConfig(locals.ctx);\n const storedKeyById = new Map(platformServers(existing).map((s) => [s.id, s.apiKey]));\n const next = incoming.servers.map(\n ({ apiKey, sharedWith, ...rest }) => ({\n ...rest,\n scope: \"platform\",\n sharedWith: sharedWith === \"all\" ? \"all\" : [...sharedWith],\n apiKey: apiKey === null ? void 0 : apiKey ? apiKey : storedKeyById.get(rest.id)\n })\n );\n await provider.savePlatformServers(locals.ctx, next, incoming.defaultServerId);\n return new Response(null, { status: 204 });\n } catch (err) {\n console.error(\"[Compute PUT] Failed:\", err);\n apiError(500, ApiErrorCode.INTERNAL, \"Failed to save compute config\");\n }\n};\nexport {\n GET,\n PUT\n};\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { error, json } from '@sveltejs/kit';
1
+ import { json } from '@sveltejs/kit';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { t as providers, f as flag } from './providers.server-BYk2ehLM.js';
4
- import { t as requireEditableDefinition } from './access.server-BueyYEoY.js';
5
- import { h as handleApiError, t as throwZodError } from './api-errors-BckwXK7Q.js';
3
+ import { u as providers, f as flag } from './providers.server-C3fQ7ZdV.js';
4
+ import { t as requireEditableDefinition } from './access.server-Rd56k7vs.js';
5
+ import { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from './api-errors-BrqxD-El.js';
6
6
  import { G as GuidSchema, c as CreateShareLinkInputSchema } from './context-BJnJL8ES.js';
7
7
  import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from './types2-DdHhYSMF.js';
8
8
  import { m as mintRawToken, h as hashToken } from './token.server-BGL9vwYS.js';
@@ -14,11 +14,15 @@ import 'node:fs/promises';
14
14
  import '@supabase/supabase-js';
15
15
  import 'zod';
16
16
  import '@selvajs/compute/core';
17
- import './utils2-UQQTHTw-.js';
17
+ import './utils2-BqfluBM6.js';
18
18
 
19
19
  function assertSharingEnabled() {
20
20
  if (!flag("ENABLE_SHARING")) {
21
- throw error(404, "Share links are disabled on this instance (ENABLE_SHARING).");
21
+ apiError(
22
+ 404,
23
+ ApiErrorCode.NOT_FOUND,
24
+ "Share links are disabled on this instance (ENABLE_SHARING)."
25
+ );
22
26
  }
23
27
  }
24
28
  function strip(link) {
@@ -28,7 +32,7 @@ function strip(link) {
28
32
  const GET = async ({ params, locals }) => {
29
33
  assertSharingEnabled();
30
34
  const guidParsed = GuidSchema.safeParse(params.guid);
31
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
35
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
32
36
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
33
37
  try {
34
38
  const page = await providers.data.shareLinks.listByDefinition(ctx, guidParsed.data, {
@@ -45,7 +49,7 @@ const GET = async ({ params, locals }) => {
45
49
  const POST = async ({ params, request, locals }) => {
46
50
  assertSharingEnabled();
47
51
  const guidParsed = GuidSchema.safeParse(params.guid);
48
- if (!guidParsed.success) throw error(400, "Invalid or missing GUID");
52
+ if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Invalid or missing GUID");
49
53
  const { ctx } = await requireEditableDefinition(locals, guidParsed.data);
50
54
  const body = await request.json().catch(() => ({}));
51
55
  const parsed = CreateShareLinkInputSchema.safeParse(body);
@@ -77,4 +81,4 @@ const POST = async ({ params, request, locals }) => {
77
81
  };
78
82
 
79
83
  export { GET, POST };
80
- //# sourceMappingURL=_server.ts-CoZrqfhl.js.map
84
+ //# sourceMappingURL=_server.ts-UYOqhuxS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-UYOqhuxS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { u as providers, f as flag } from \"../../../../../../chunks/providers.server.js\";\nimport { t as requireEditableDefinition } from \"../../../../../../chunks/access.server.js\";\nimport { a as apiError, h as handleApiError, t as throwZodError, A as ApiErrorCode } from \"../../../../../../chunks/api-errors.js\";\nimport { G as GuidSchema, c as CreateShareLinkInputSchema } from \"../../../../../../chunks/context.js\";\nimport { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from \"../../../../../../chunks/types2.js\";\nimport { m as mintRawToken, h as hashToken } from \"../../../../../../chunks/token.server.js\";\nfunction assertSharingEnabled() {\n if (!flag(\"ENABLE_SHARING\")) {\n apiError(\n 404,\n ApiErrorCode.NOT_FOUND,\n \"Share links are disabled on this instance (ENABLE_SHARING).\"\n );\n }\n}\nfunction strip(link) {\n const { tokenHash: _omit, ...rest } = link;\n return { ...rest, hasToken: true };\n}\nconst GET = async ({ params, locals }) => {\n assertSharingEnabled();\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n try {\n const page = await providers.data.shareLinks.listByDefinition(ctx, guidParsed.data, {\n limit: 200\n });\n return json({\n links: page.items.map(strip),\n nextCursor: page.nextCursor\n });\n } catch (err) {\n handleApiError(err, \"Failed to list share links\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n assertSharingEnabled();\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"Invalid or missing GUID\");\n const { ctx } = await requireEditableDefinition(locals, guidParsed.data);\n const body = await request.json().catch(() => ({}));\n const parsed = CreateShareLinkInputSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const raw = mintRawToken();\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const link = {\n id: randomUUID(),\n definitionId: guidParsed.data,\n channel: parsed.data.channel,\n tokenHash: hashToken(raw),\n name: parsed.data.name,\n createdBy: locals.user.id,\n createdAt: now,\n expiresAt: parsed.data.expiresAt ?? null,\n revokedAt: null,\n allowSolve: parsed.data.allowSolve,\n // Default applied only when the field is absent. `null` is a deliberate\n // \"uncap\" choice and is preserved.\n maxSolves: parsed.data.maxSolves === void 0 ? DEFAULT_SHARE_LINK_MAX_SOLVES : parsed.data.maxSolves,\n solveCount: 0\n };\n try {\n await providers.data.shareLinks.create(ctx, link);\n return json({ link: strip(link), token: raw }, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create share link\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { error, json } from '@sveltejs/kit';
1
+ import { json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
- import { a as getAuthProvider, k as getOrganizationProvider, l as getPermissionStore } from './providers.server-BYk2ehLM.js';
4
- import { w as requireManageInstanceUsers } from './access.server-BueyYEoY.js';
5
- import { s as setUserPlatformPermissions } from './permissions.server-D1KUdeD1.js';
6
- import { t as throwZodError, h as handleApiError } from './api-errors-BckwXK7Q.js';
3
+ import { a as getAuthProvider, k as getOrganizationProvider, l as getPermissionStore } from './providers.server-C3fQ7ZdV.js';
4
+ import { w as requireManageInstanceUsers } from './access.server-Rd56k7vs.js';
5
+ import { s as setUserPlatformPermissions } from './permissions.server-zs4XAJCp.js';
6
+ import { a as apiError, t as throwZodError, A as ApiErrorCode, h as handleApiError } from './api-errors-BrqxD-El.js';
7
7
  import { S as SYSTEM_CONTEXT, j as hasPermission, M as MEMBER_ASSIGNABLE_PERMISSIONS, P as PlatformPermissionSchema, d as OrgPermissionSchema } from './context-BJnJL8ES.js';
8
8
  import { f as flattenPermissions, s as splitFlatPermissions } from './permissions-compat.server-G174xsh6.js';
9
9
  import './shared-server-C3WdcJCQ.js';
@@ -14,7 +14,7 @@ import 'node:crypto';
14
14
  import 'node:fs/promises';
15
15
  import '@supabase/supabase-js';
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 BaseUserBody = z.object({
@@ -28,8 +28,9 @@ const GET = async ({ locals }) => {
28
28
  requireManageInstanceUsers(locals);
29
29
  const page = await getAuthProvider().listUsers({ limit: 200 });
30
30
  if (page === null) {
31
- throw error(
31
+ apiError(
32
32
  501,
33
+ ApiErrorCode.INTERNAL,
33
34
  "User management is not supported by the current auth provider. Configure DATA_PATH (local provider) or check your provider wiring."
34
35
  );
35
36
  }
@@ -55,7 +56,7 @@ const GET = async ({ locals }) => {
55
56
  };
56
57
  })
57
58
  );
58
- return json(flattened);
59
+ return json({ users: flattened });
59
60
  };
60
61
  const POST = async ({ request, locals }) => {
61
62
  requireManageInstanceUsers(locals);
@@ -66,18 +67,23 @@ const POST = async ({ request, locals }) => {
66
67
  const { email, password, permissions } = parsed.data;
67
68
  const { platform, org } = splitFlatPermissions(permissions);
68
69
  if (platform.length > 0 && !hasPermission(locals.ctx, "instance_admin")) {
69
- throw error(403, "Only a platform admin can grant platform-scope permissions");
70
+ apiError(
71
+ 403,
72
+ ApiErrorCode.FORBIDDEN,
73
+ "Only a platform admin can grant platform-scope permissions"
74
+ );
70
75
  }
71
76
  try {
72
77
  let user;
73
78
  if (auth.passwordAuth) {
74
- if (!password) throw error(400, "Password is required");
79
+ if (!password) apiError(400, ApiErrorCode.VALIDATION_FAILED, "Password is required");
75
80
  user = await auth.passwordAuth.createUserWithPassword(email, password);
76
81
  } else if (auth.createUser) {
77
82
  user = await auth.createUser(email);
78
83
  } else {
79
- throw error(
84
+ apiError(
80
85
  501,
86
+ ApiErrorCode.INTERNAL,
81
87
  `User creation is not supported by ${auth.name}. Users are managed externally.`
82
88
  );
83
89
  }
@@ -105,4 +111,4 @@ const POST = async ({ request, locals }) => {
105
111
  };
106
112
 
107
113
  export { GET, POST };
108
- //# sourceMappingURL=_server.ts-C4lve0n9.js.map
114
+ //# sourceMappingURL=_server.ts-Xt4gRfAl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Xt4gRfAl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/users/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { a as getAuthProvider, k as getOrganizationProvider, l as getPermissionStore } from \"../../../../../chunks/providers.server.js\";\nimport { w as requireManageInstanceUsers } from \"../../../../../chunks/access.server.js\";\nimport { s as setUserPlatformPermissions } from \"../../../../../chunks/permissions.server.js\";\nimport { a as apiError, t as throwZodError, A as ApiErrorCode, h as handleApiError } from \"../../../../../chunks/api-errors.js\";\nimport { P as PlatformPermissionSchema, d as OrgPermissionSchema, S as SYSTEM_CONTEXT, j as hasPermission, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../chunks/context.js\";\nimport { f as flattenPermissions, s as splitFlatPermissions } from \"../../../../../chunks/permissions-compat.server.js\";\nconst FlatPermissionSchema = z.union([PlatformPermissionSchema, OrgPermissionSchema]);\nconst BaseUserBody = z.object({\n email: z.string().email(\"Valid email is required\"),\n permissions: z.array(FlatPermissionSchema)\n});\nconst PasswordUserBody = BaseUserBody.extend({\n password: z.string().min(8, \"Password must be at least 8 characters\").optional()\n});\nconst GET = async ({ locals }) => {\n requireManageInstanceUsers(locals);\n const page = await getAuthProvider().listUsers({ limit: 200 });\n if (page === null) {\n apiError(\n 501,\n ApiErrorCode.INTERNAL,\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({ users: 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 apiError(\n 403,\n ApiErrorCode.FORBIDDEN,\n \"Only a platform admin can grant platform-scope permissions\"\n );\n }\n try {\n let user;\n if (auth.passwordAuth) {\n if (!password) apiError(400, ApiErrorCode.VALIDATION_FAILED, \"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 apiError(\n 501,\n ApiErrorCode.INTERNAL,\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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"}