@selvajs/selva 4.2.1 → 4.3.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 (254) hide show
  1. package/build/client/_app/immutable/chunks/{BU3ZilVu.js → BGuW4NBA.js} +1 -1
  2. package/build/client/_app/immutable/chunks/BGuW4NBA.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/BGuW4NBA.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{fFzkMoJP.js → BOu0_8hg.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BOu0_8hg.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BOu0_8hg.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{D2AcAR8h.js → BRVNXmK7.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BRVNXmK7.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BRVNXmK7.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{BokovJH_.js → Bsojhuor.js} +1 -1
  11. package/build/client/_app/immutable/chunks/Bsojhuor.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/Bsojhuor.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{D9QmLqfO.js → ClNtf5dE.js} +1 -1
  14. package/build/client/_app/immutable/chunks/ClNtf5dE.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/ClNtf5dE.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{oGi4fqQN.js → Dus1Wc-_.js} +1 -1
  17. package/build/client/_app/immutable/chunks/Dus1Wc-_.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/Dus1Wc-_.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{CYAAKeQs.js → VoeDk8Ji.js} +1 -1
  20. package/build/client/_app/immutable/chunks/VoeDk8Ji.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/VoeDk8Ji.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/{app.DS9bUFUM.js → app.BuFVNRIb.js} +2 -2
  23. package/build/client/_app/immutable/entry/app.BuFVNRIb.js.br +0 -0
  24. package/build/client/_app/immutable/entry/app.BuFVNRIb.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/start.BJkf9eCh.js +1 -0
  26. package/build/client/_app/immutable/entry/start.BJkf9eCh.js.br +2 -0
  27. package/build/client/_app/immutable/entry/start.BJkf9eCh.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.BUswJ4U9.js → 1.DTTqOpbo.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.DTTqOpbo.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/1.DTTqOpbo.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{11.BLpWvtX5.js → 11.Bd_TroBi.js} +1 -1
  32. package/build/client/_app/immutable/nodes/11.Bd_TroBi.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/11.Bd_TroBi.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{13.C8wKffzy.js → 13.CZPWgSyX.js} +1 -1
  35. package/build/client/_app/immutable/nodes/13.CZPWgSyX.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/13.CZPWgSyX.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{14.CH_Qv0bZ.js → 14.ErUEed70.js} +1 -1
  38. package/build/client/_app/immutable/nodes/14.ErUEed70.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/14.ErUEed70.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{16.BvAee3O_.js → 16.ZGqQw9u_.js} +1 -1
  41. package/build/client/_app/immutable/nodes/16.ZGqQw9u_.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/16.ZGqQw9u_.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{17.SyD4YOfn.js → 17.BAfTvzjf.js} +1 -1
  44. package/build/client/_app/immutable/nodes/17.BAfTvzjf.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/17.BAfTvzjf.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{19.Wb7AQfgb.js → 19.BA4Q7Ejv.js} +1 -1
  47. package/build/client/_app/immutable/nodes/19.BA4Q7Ejv.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/19.BA4Q7Ejv.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{2.CW-SavfP.js → 2.qGoF_BJR.js} +1 -1
  50. package/build/client/_app/immutable/nodes/2.qGoF_BJR.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/2.qGoF_BJR.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/20.B7pbJgV7.js +11 -0
  53. package/build/client/_app/immutable/nodes/20.B7pbJgV7.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/20.B7pbJgV7.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{21.stzAo_sf.js → 21.CQUr9a-8.js} +1 -1
  56. package/build/client/_app/immutable/nodes/21.CQUr9a-8.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/21.CQUr9a-8.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/23.B1irvd8d.js +16 -0
  59. package/build/client/_app/immutable/nodes/23.B1irvd8d.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/23.B1irvd8d.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{24.CIk_ZxQ6.js → 24.DaWQ1jI1.js} +1 -1
  62. package/build/client/_app/immutable/nodes/24.DaWQ1jI1.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/24.DaWQ1jI1.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{27.DdoM9jx8.js → 27.BVltlINS.js} +1 -1
  65. package/build/client/_app/immutable/nodes/27.BVltlINS.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/27.BVltlINS.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{28.8hQBN0f2.js → 28.CkAyrVXL.js} +1 -1
  68. package/build/client/_app/immutable/nodes/28.CkAyrVXL.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/28.CkAyrVXL.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{29.DPRAT1ND.js → 29.DuyPKFrU.js} +1 -1
  71. package/build/client/_app/immutable/nodes/29.DuyPKFrU.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/29.DuyPKFrU.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{3.qDVw2Ah5.js → 3.vtzWe8dr.js} +1 -1
  74. package/build/client/_app/immutable/nodes/3.vtzWe8dr.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/3.vtzWe8dr.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{30.CgJH6zYG.js → 30.B8jrnlRp.js} +1 -1
  77. package/build/client/_app/immutable/nodes/30.B8jrnlRp.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/30.B8jrnlRp.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{5.CSogXB3L.js → 5.Cung723A.js} +1 -1
  80. package/build/client/_app/immutable/nodes/5.Cung723A.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/5.Cung723A.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{6.CO7yl4Ep.js → 6.ChV00aii.js} +1 -1
  83. package/build/client/_app/immutable/nodes/6.ChV00aii.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/6.ChV00aii.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{7.CNGLSXsw.js → 7.CoT_11A9.js} +1 -1
  86. package/build/client/_app/immutable/nodes/7.CoT_11A9.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/7.CoT_11A9.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{8.D2q7KguY.js → 8.DVP4Zm3d.js} +1 -1
  89. package/build/client/_app/immutable/nodes/8.DVP4Zm3d.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/8.DVP4Zm3d.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{9.B77TvN23.js → 9.Cw9Pz35A.js} +1 -1
  92. package/build/client/_app/immutable/nodes/9.Cw9Pz35A.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/9.Cw9Pz35A.js.gz +0 -0
  94. package/build/client/_app/version.json +1 -1
  95. package/build/client/_app/version.json.br +0 -0
  96. package/build/client/_app/version.json.gz +0 -0
  97. package/build/server/chunks/{1-BXtOEh9J.js → 1-C2I1bO4p.js} +2 -2
  98. package/build/server/chunks/{1-BXtOEh9J.js.map → 1-C2I1bO4p.js.map} +1 -1
  99. package/build/server/chunks/{11-D_iRzPDB.js → 11-CDngEJ0B.js} +2 -2
  100. package/build/server/chunks/{11-D_iRzPDB.js.map → 11-CDngEJ0B.js.map} +1 -1
  101. package/build/server/chunks/{13-CkRRFB1g.js → 13-BPFyBgiN.js} +2 -2
  102. package/build/server/chunks/{13-CkRRFB1g.js.map → 13-BPFyBgiN.js.map} +1 -1
  103. package/build/server/chunks/{14-2FpImsxV.js → 14-Dc1K62Ey.js} +2 -2
  104. package/build/server/chunks/{14-2FpImsxV.js.map → 14-Dc1K62Ey.js.map} +1 -1
  105. package/build/server/chunks/{15-Bnbm79IS.js → 15-BNeKc8aQ.js} +2 -2
  106. package/build/server/chunks/{15-Bnbm79IS.js.map → 15-BNeKc8aQ.js.map} +1 -1
  107. package/build/server/chunks/{16-B4ywqmcZ.js → 16-C4rP4sq1.js} +2 -2
  108. package/build/server/chunks/{16-B4ywqmcZ.js.map → 16-C4rP4sq1.js.map} +1 -1
  109. package/build/server/chunks/{17-MWOOipvP.js → 17-ClRSe3-O.js} +2 -2
  110. package/build/server/chunks/{17-MWOOipvP.js.map → 17-ClRSe3-O.js.map} +1 -1
  111. package/build/server/chunks/{19-C3KsK7wX.js → 19-DCCUt_I_.js} +3 -3
  112. package/build/server/chunks/{19-C3KsK7wX.js.map → 19-DCCUt_I_.js.map} +1 -1
  113. package/build/server/chunks/{2-_fGOba4G.js → 2-CRTHDZDg.js} +3 -3
  114. package/build/server/chunks/{2-_fGOba4G.js.map → 2-CRTHDZDg.js.map} +1 -1
  115. package/build/server/chunks/{20-CSlzkUTO.js → 20-Bqn_Hog-.js} +4 -4
  116. package/build/server/chunks/{20-CSlzkUTO.js.map → 20-Bqn_Hog-.js.map} +1 -1
  117. package/build/server/chunks/{21-zUldgyAY.js → 21-tHwvS2VE.js} +2 -2
  118. package/build/server/chunks/{21-zUldgyAY.js.map → 21-tHwvS2VE.js.map} +1 -1
  119. package/build/server/chunks/{23-B7itF50C.js → 23-CjlgEkW8.js} +2 -2
  120. package/build/server/chunks/{23-B7itF50C.js.map → 23-CjlgEkW8.js.map} +1 -1
  121. package/build/server/chunks/{24-CIDIYshe.js → 24-BLJ24n1x.js} +2 -2
  122. package/build/server/chunks/{24-CIDIYshe.js.map → 24-BLJ24n1x.js.map} +1 -1
  123. package/build/server/chunks/{27-CzENJkV0.js → 27-7PPspJ4o.js} +2 -2
  124. package/build/server/chunks/{27-CzENJkV0.js.map → 27-7PPspJ4o.js.map} +1 -1
  125. package/build/server/chunks/{28-DxNI492W.js → 28-Cj4f8LeS.js} +2 -2
  126. package/build/server/chunks/{28-DxNI492W.js.map → 28-Cj4f8LeS.js.map} +1 -1
  127. package/build/server/chunks/{29-PctGzpwt.js → 29-B36SMjZF.js} +2 -2
  128. package/build/server/chunks/{29-PctGzpwt.js.map → 29-B36SMjZF.js.map} +1 -1
  129. package/build/server/chunks/{3-Cazo1Shv.js → 3-ByoVETsZ.js} +2 -2
  130. package/build/server/chunks/{3-Cazo1Shv.js.map → 3-ByoVETsZ.js.map} +1 -1
  131. package/build/server/chunks/{30-BenY_cGn.js → 30-BUZh-uxK.js} +2 -2
  132. package/build/server/chunks/{30-BenY_cGn.js.map → 30-BUZh-uxK.js.map} +1 -1
  133. package/build/server/chunks/{5-CqcXwhU8.js → 5-BItOzJDH.js} +3 -3
  134. package/build/server/chunks/{5-CqcXwhU8.js.map → 5-BItOzJDH.js.map} +1 -1
  135. package/build/server/chunks/{6-1yNOTkzc.js → 6-CA2Aephf.js} +3 -3
  136. package/build/server/chunks/{6-1yNOTkzc.js.map → 6-CA2Aephf.js.map} +1 -1
  137. package/build/server/chunks/{7-sNYS1ao8.js → 7-uBm9NdYN.js} +3 -3
  138. package/build/server/chunks/{7-sNYS1ao8.js.map → 7-uBm9NdYN.js.map} +1 -1
  139. package/build/server/chunks/{8-De6LG1ef.js → 8-K8AHqphy.js} +2 -2
  140. package/build/server/chunks/{8-De6LG1ef.js.map → 8-K8AHqphy.js.map} +1 -1
  141. package/build/server/chunks/{9-BhE9hiN-.js → 9-mW8A2Lrz.js} +3 -3
  142. package/build/server/chunks/{9-BhE9hiN-.js.map → 9-mW8A2Lrz.js.map} +1 -1
  143. package/build/server/chunks/{AppHeader-B49W1cuV.js → AppHeader-6ioAYhJf.js} +2 -2
  144. package/build/server/chunks/{AppHeader-B49W1cuV.js.map → AppHeader-6ioAYhJf.js.map} +1 -1
  145. package/build/server/chunks/{UserChip-CFEkil-Y.js → UserChip-fy4ucYa9.js} +7 -2
  146. package/build/server/chunks/UserChip-fy4ucYa9.js.map +1 -0
  147. package/build/server/chunks/{_layout.svelte-DWLc_AAt.js → _layout.svelte-BNCiY_LE.js} +3 -3
  148. package/build/server/chunks/{_layout.svelte-DWLc_AAt.js.map → _layout.svelte-BNCiY_LE.js.map} +1 -1
  149. package/build/server/chunks/{_layout.svelte-soufPD3z.js → _layout.svelte-BR1971uC.js} +3 -3
  150. package/build/server/chunks/{_layout.svelte-soufPD3z.js.map → _layout.svelte-BR1971uC.js.map} +1 -1
  151. package/build/server/chunks/{_layout.svelte-BU065NMJ.js → _layout.svelte-CHTfYN7Z.js} +3 -3
  152. package/build/server/chunks/{_layout.svelte-BU065NMJ.js.map → _layout.svelte-CHTfYN7Z.js.map} +1 -1
  153. package/build/server/chunks/{_page.svelte-Dp_jpQFu.js → _page.svelte-6m8-zq9_.js} +168 -76
  154. package/build/server/chunks/_page.svelte-6m8-zq9_.js.map +1 -0
  155. package/build/server/chunks/{_page.svelte-DCsC1jAu.js → _page.svelte-B-BjG1Bg.js} +3 -3
  156. package/build/server/chunks/{_page.svelte-DCsC1jAu.js.map → _page.svelte-B-BjG1Bg.js.map} +1 -1
  157. package/build/server/chunks/{_page.svelte-DVN9gvBu.js → _page.svelte-BqMtP8Q7.js} +5 -5
  158. package/build/server/chunks/{_page.svelte-DVN9gvBu.js.map → _page.svelte-BqMtP8Q7.js.map} +1 -1
  159. package/build/server/chunks/{_page.svelte-BmgwJB8w.js → _page.svelte-HTC9yaHJ.js} +3 -3
  160. package/build/server/chunks/{_page.svelte-BmgwJB8w.js.map → _page.svelte-HTC9yaHJ.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-kKt_-5Bs.js → _server.ts-CsWWoLDJ.js} +2 -2
  162. package/build/server/chunks/{_server.ts-kKt_-5Bs.js.map → _server.ts-CsWWoLDJ.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-DzGZ73FR.js → _server.ts-CyjVVRiT.js} +2 -2
  164. package/build/server/chunks/{_server.ts-DzGZ73FR.js.map → _server.ts-CyjVVRiT.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-AZv034fZ.js → _server.ts-DLUA6_Lf.js} +24 -4
  166. package/build/server/chunks/_server.ts-DLUA6_Lf.js.map +1 -0
  167. package/build/server/chunks/{_server.ts-CBAiDOcP.js → _server.ts-DWCKRNAG.js} +5 -2
  168. package/build/server/chunks/_server.ts-DWCKRNAG.js.map +1 -0
  169. package/build/server/chunks/_server.ts-Db9C0y4L.js +162 -0
  170. package/build/server/chunks/_server.ts-Db9C0y4L.js.map +1 -0
  171. package/build/server/chunks/{_server.ts-DHcOvm9e.js → _server.ts-DlDf2qpE.js} +2 -2
  172. package/build/server/chunks/{_server.ts-DHcOvm9e.js.map → _server.ts-DlDf2qpE.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-Ce-u_4Qp.js → _server.ts-Xpgu2-ka.js} +2 -2
  174. package/build/server/chunks/{_server.ts-Ce-u_4Qp.js.map → _server.ts-Xpgu2-ka.js.map} +1 -1
  175. package/build/server/chunks/{computeLimits-CKK96OOR.js → computeLimits-5PaWFMYq.js} +4 -3
  176. package/build/server/chunks/computeLimits-5PaWFMYq.js.map +1 -0
  177. package/build/server/index.js +1 -1
  178. package/build/server/index.js.map +1 -1
  179. package/build/server/manifest.js +31 -31
  180. package/build/server/manifest.js.map +1 -1
  181. package/package.json +9 -8
  182. package/templates/.env.example +6 -4
  183. package/build/client/_app/immutable/chunks/BU3ZilVu.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/BU3ZilVu.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/BokovJH_.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/BokovJH_.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/CYAAKeQs.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/CYAAKeQs.js.gz +0 -0
  189. package/build/client/_app/immutable/chunks/D2AcAR8h.js.br +0 -0
  190. package/build/client/_app/immutable/chunks/D2AcAR8h.js.gz +0 -0
  191. package/build/client/_app/immutable/chunks/D9QmLqfO.js.br +0 -0
  192. package/build/client/_app/immutable/chunks/D9QmLqfO.js.gz +0 -0
  193. package/build/client/_app/immutable/chunks/fFzkMoJP.js.br +0 -0
  194. package/build/client/_app/immutable/chunks/fFzkMoJP.js.gz +0 -0
  195. package/build/client/_app/immutable/chunks/oGi4fqQN.js.br +0 -0
  196. package/build/client/_app/immutable/chunks/oGi4fqQN.js.gz +0 -0
  197. package/build/client/_app/immutable/entry/app.DS9bUFUM.js.br +0 -0
  198. package/build/client/_app/immutable/entry/app.DS9bUFUM.js.gz +0 -0
  199. package/build/client/_app/immutable/entry/start.DB-BZXHU.js +0 -1
  200. package/build/client/_app/immutable/entry/start.DB-BZXHU.js.br +0 -2
  201. package/build/client/_app/immutable/entry/start.DB-BZXHU.js.gz +0 -0
  202. package/build/client/_app/immutable/nodes/1.BUswJ4U9.js.br +0 -0
  203. package/build/client/_app/immutable/nodes/1.BUswJ4U9.js.gz +0 -0
  204. package/build/client/_app/immutable/nodes/11.BLpWvtX5.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/11.BLpWvtX5.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/13.C8wKffzy.js.br +0 -0
  207. package/build/client/_app/immutable/nodes/13.C8wKffzy.js.gz +0 -0
  208. package/build/client/_app/immutable/nodes/14.CH_Qv0bZ.js.br +0 -0
  209. package/build/client/_app/immutable/nodes/14.CH_Qv0bZ.js.gz +0 -0
  210. package/build/client/_app/immutable/nodes/16.BvAee3O_.js.br +0 -0
  211. package/build/client/_app/immutable/nodes/16.BvAee3O_.js.gz +0 -0
  212. package/build/client/_app/immutable/nodes/17.SyD4YOfn.js.br +0 -0
  213. package/build/client/_app/immutable/nodes/17.SyD4YOfn.js.gz +0 -0
  214. package/build/client/_app/immutable/nodes/19.Wb7AQfgb.js.br +0 -0
  215. package/build/client/_app/immutable/nodes/19.Wb7AQfgb.js.gz +0 -0
  216. package/build/client/_app/immutable/nodes/2.CW-SavfP.js.br +0 -0
  217. package/build/client/_app/immutable/nodes/2.CW-SavfP.js.gz +0 -0
  218. package/build/client/_app/immutable/nodes/20.DB_AO-hY.js +0 -11
  219. package/build/client/_app/immutable/nodes/20.DB_AO-hY.js.br +0 -0
  220. package/build/client/_app/immutable/nodes/20.DB_AO-hY.js.gz +0 -0
  221. package/build/client/_app/immutable/nodes/21.stzAo_sf.js.br +0 -0
  222. package/build/client/_app/immutable/nodes/21.stzAo_sf.js.gz +0 -0
  223. package/build/client/_app/immutable/nodes/23.DPe1BFaB.js +0 -16
  224. package/build/client/_app/immutable/nodes/23.DPe1BFaB.js.br +0 -0
  225. package/build/client/_app/immutable/nodes/23.DPe1BFaB.js.gz +0 -0
  226. package/build/client/_app/immutable/nodes/24.CIk_ZxQ6.js.br +0 -0
  227. package/build/client/_app/immutable/nodes/24.CIk_ZxQ6.js.gz +0 -0
  228. package/build/client/_app/immutable/nodes/27.DdoM9jx8.js.br +0 -0
  229. package/build/client/_app/immutable/nodes/27.DdoM9jx8.js.gz +0 -0
  230. package/build/client/_app/immutable/nodes/28.8hQBN0f2.js.br +0 -0
  231. package/build/client/_app/immutable/nodes/28.8hQBN0f2.js.gz +0 -0
  232. package/build/client/_app/immutable/nodes/29.DPRAT1ND.js.br +0 -0
  233. package/build/client/_app/immutable/nodes/29.DPRAT1ND.js.gz +0 -0
  234. package/build/client/_app/immutable/nodes/3.qDVw2Ah5.js.br +0 -0
  235. package/build/client/_app/immutable/nodes/3.qDVw2Ah5.js.gz +0 -0
  236. package/build/client/_app/immutable/nodes/30.CgJH6zYG.js.br +0 -0
  237. package/build/client/_app/immutable/nodes/30.CgJH6zYG.js.gz +0 -0
  238. package/build/client/_app/immutable/nodes/5.CSogXB3L.js.br +0 -0
  239. package/build/client/_app/immutable/nodes/5.CSogXB3L.js.gz +0 -0
  240. package/build/client/_app/immutable/nodes/6.CO7yl4Ep.js.br +0 -0
  241. package/build/client/_app/immutable/nodes/6.CO7yl4Ep.js.gz +0 -0
  242. package/build/client/_app/immutable/nodes/7.CNGLSXsw.js.br +0 -0
  243. package/build/client/_app/immutable/nodes/7.CNGLSXsw.js.gz +0 -0
  244. package/build/client/_app/immutable/nodes/8.D2q7KguY.js.br +0 -0
  245. package/build/client/_app/immutable/nodes/8.D2q7KguY.js.gz +0 -0
  246. package/build/client/_app/immutable/nodes/9.B77TvN23.js.br +0 -0
  247. package/build/client/_app/immutable/nodes/9.B77TvN23.js.gz +0 -0
  248. package/build/server/chunks/UserChip-CFEkil-Y.js.map +0 -1
  249. package/build/server/chunks/_page.svelte-Dp_jpQFu.js.map +0 -1
  250. package/build/server/chunks/_server.ts-AZv034fZ.js.map +0 -1
  251. package/build/server/chunks/_server.ts-BvMDaAZY.js +0 -75
  252. package/build/server/chunks/_server.ts-BvMDaAZY.js.map +0 -1
  253. package/build/server/chunks/_server.ts-CBAiDOcP.js.map +0 -1
  254. package/build/server/chunks/computeLimits-CKK96OOR.js.map +0 -1
@@ -0,0 +1,162 @@
1
+ import { json } from '@sveltejs/kit';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { mkdir, writeFile, unlink } from 'node:fs/promises';
4
+ import { resolve, join } from 'node:path';
5
+ import { p as private_env } from './shared-server-C3WdcJCQ.js';
6
+ import './context-DKDYb-He.js';
7
+ import { f as findServerById } from './utils2-BsnrDRob.js';
8
+ import { t as providers, L as LocalComputeServerStore, c as getComputeServerConfigStore } from './providers.server-wGknM6CR.js';
9
+ import { z as requirePermission } from './access.server-ByXvmWyF.js';
10
+ import 'zod';
11
+ import 'node:url';
12
+ import 'node:fs';
13
+ import '@supabase/supabase-js';
14
+ import './api-errors-C0SWfJj5.js';
15
+ import '@selvajs/compute/core';
16
+
17
+ function atRestSecretsCheck(report) {
18
+ const base = { id: "at-rest-secrets", label: "Compute server secrets" };
19
+ if (report === null) {
20
+ return {
21
+ ...base,
22
+ status: "not_applicable",
23
+ summary: "The active data provider does not encrypt secrets at this layer — nothing to verify."
24
+ };
25
+ }
26
+ if (report.ok) {
27
+ return {
28
+ ...base,
29
+ status: "ok",
30
+ summary: "All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY."
31
+ };
32
+ }
33
+ const failed = report.failures.map((f) => `"${f.serverLabel}" (${f.reason}${f.cause ? `: ${f.cause}` : ""})`).join(", ");
34
+ const plaintext = report.plaintextFound;
35
+ return {
36
+ ...base,
37
+ status: "degraded",
38
+ summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,
39
+ remediation: plaintext ? "A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted." : "The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again."
40
+ };
41
+ }
42
+ const COMPUTE_PING_TIMEOUT_MS = 8e3;
43
+ async function computeReachabilityCheck(locals) {
44
+ const base = { id: "compute-reachable", label: "Default compute server" };
45
+ let config;
46
+ try {
47
+ config = await getComputeServerConfigStore().getConfig(locals.ctx);
48
+ } catch (err) {
49
+ return {
50
+ ...base,
51
+ status: "error",
52
+ summary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`
53
+ };
54
+ }
55
+ const server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;
56
+ if (!server) {
57
+ return {
58
+ ...base,
59
+ status: "not_applicable",
60
+ summary: "No default compute server is configured — nothing to reach.",
61
+ remediation: "Add a server and set it as default in /admin/compute."
62
+ };
63
+ }
64
+ const controller = new AbortController();
65
+ const timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);
66
+ try {
67
+ const headers = {};
68
+ if (server.apiKey) headers["RhinoComputeKey"] = server.apiKey;
69
+ const res = await fetch(new URL("/healthcheck", server.serverUrl).toString(), {
70
+ signal: controller.signal,
71
+ headers
72
+ });
73
+ if (res.ok) {
74
+ return { ...base, status: "ok", summary: `"${server.label}" answered /healthcheck (200).` };
75
+ }
76
+ return {
77
+ ...base,
78
+ status: "degraded",
79
+ summary: `"${server.label}" responded ${res.status} to /healthcheck.`,
80
+ remediation: res.status === 401 || res.status === 403 ? "Authentication rejected — verify the API key in /admin/compute." : "The server is reachable but unhealthy. Check the Rhino.Compute host."
81
+ };
82
+ } catch (err) {
83
+ const aborted = err instanceof Error && err.name === "AbortError";
84
+ return {
85
+ ...base,
86
+ status: "degraded",
87
+ summary: aborted ? `"${server.label}" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `"${server.label}" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,
88
+ remediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`
89
+ };
90
+ } finally {
91
+ clearTimeout(timer);
92
+ }
93
+ }
94
+ async function dataPathWritableCheck() {
95
+ const base = { id: "data-path-writable", label: "Data path writable" };
96
+ if (!(providers.data.computeServer instanceof LocalComputeServerStore)) {
97
+ return {
98
+ ...base,
99
+ status: "not_applicable",
100
+ summary: "The active data provider does not persist to a local DATA_PATH."
101
+ };
102
+ }
103
+ const dataPath = private_env.DATA_PATH;
104
+ if (!dataPath) {
105
+ return {
106
+ ...base,
107
+ status: "error",
108
+ summary: "DATA_PATH is unset but the local provider is active.",
109
+ remediation: "Set DATA_PATH in .env and restart."
110
+ };
111
+ }
112
+ const absolute = resolve(dataPath);
113
+ const probe = join(absolute, `.health-probe-${randomUUID()}`);
114
+ try {
115
+ await mkdir(absolute, { recursive: true });
116
+ await writeFile(probe, "ok");
117
+ await unlink(probe);
118
+ return { ...base, status: "ok", summary: `DATA_PATH (${dataPath}) is writable.` };
119
+ } catch (err) {
120
+ return {
121
+ ...base,
122
+ status: "degraded",
123
+ summary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,
124
+ remediation: "Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`)."
125
+ };
126
+ }
127
+ }
128
+ const GET = async ({ locals }) => {
129
+ requirePermission(locals, "instance_admin");
130
+ const checks = [];
131
+ const store = providers.data.computeServer;
132
+ if (store instanceof LocalComputeServerStore) {
133
+ try {
134
+ checks.push(atRestSecretsCheck(await store.verifySecrets()));
135
+ } catch (err) {
136
+ checks.push({
137
+ id: "at-rest-secrets",
138
+ label: "Compute server secrets",
139
+ status: "error",
140
+ summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,
141
+ remediation: "Check server logs (`pm2 logs selva-compute`) for the underlying error."
142
+ });
143
+ }
144
+ } else {
145
+ checks.push(atRestSecretsCheck(null));
146
+ }
147
+ checks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));
148
+ const rank = {
149
+ ok: 0,
150
+ not_applicable: 0,
151
+ degraded: 2,
152
+ error: 3
153
+ };
154
+ const overall = checks.reduce(
155
+ (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,
156
+ "ok"
157
+ );
158
+ return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });
159
+ };
160
+
161
+ export { GET };
162
+ //# sourceMappingURL=_server.ts-Db9C0y4L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Db9C0y4L.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/system/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, writeFile, unlink } from \"node:fs/promises\";\nimport { resolve, join } from \"node:path\";\nimport { p as private_env } from \"../../../../../../chunks/shared-server.js\";\nimport \"../../../../../../chunks/context.js\";\nimport { f as findServerById } from \"../../../../../../chunks/utils2.js\";\nimport { t as providers, L as LocalComputeServerStore, c as getComputeServerConfigStore } from \"../../../../../../chunks/providers.server.js\";\nimport { z as requirePermission } from \"../../../../../../chunks/access.server.js\";\nfunction atRestSecretsCheck(report) {\n const base = { id: \"at-rest-secrets\", label: \"Compute server secrets\" };\n if (report === null) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"The active data provider does not encrypt secrets at this layer — nothing to verify.\"\n };\n }\n if (report.ok) {\n return {\n ...base,\n status: \"ok\",\n summary: \"All stored compute server API keys decrypt under the current SELVA_AT_REST_KEY.\"\n };\n }\n const failed = report.failures.map((f) => `\"${f.serverLabel}\" (${f.reason}${f.cause ? `: ${f.cause}` : \"\"})`).join(\", \");\n const plaintext = report.plaintextFound;\n return {\n ...base,\n status: \"degraded\",\n summary: `${report.failures.length} compute server key(s) could not be loaded: ${failed}.`,\n remediation: plaintext ? \"A key is stored in plaintext on disk — re-enter it via /admin/compute so it is encrypted.\" : \"The stored ciphertext does not match the current SELVA_AT_REST_KEY (rotated key or restored backup). Re-enter the affected keys via /admin/compute, or restore the original SELVA_AT_REST_KEY, then run this check again.\"\n };\n}\nconst COMPUTE_PING_TIMEOUT_MS = 8e3;\nasync function computeReachabilityCheck(locals) {\n const base = { id: \"compute-reachable\", label: \"Default compute server\" };\n let config;\n try {\n config = await getComputeServerConfigStore().getConfig(locals.ctx);\n } catch (err) {\n return {\n ...base,\n status: \"error\",\n summary: `Could not read compute config: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n const server = config.defaultServerId ? findServerById(config, config.defaultServerId) : void 0;\n if (!server) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"No default compute server is configured — nothing to reach.\",\n remediation: \"Add a server and set it as default in /admin/compute.\"\n };\n }\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), COMPUTE_PING_TIMEOUT_MS);\n try {\n const headers = {};\n if (server.apiKey) headers[\"RhinoComputeKey\"] = server.apiKey;\n const res = await fetch(new URL(\"/healthcheck\", server.serverUrl).toString(), {\n signal: controller.signal,\n headers\n });\n if (res.ok) {\n return { ...base, status: \"ok\", summary: `\"${server.label}\" answered /healthcheck (200).` };\n }\n return {\n ...base,\n status: \"degraded\",\n summary: `\"${server.label}\" responded ${res.status} to /healthcheck.`,\n remediation: res.status === 401 || res.status === 403 ? \"Authentication rejected — verify the API key in /admin/compute.\" : \"The server is reachable but unhealthy. Check the Rhino.Compute host.\"\n };\n } catch (err) {\n const aborted = err instanceof Error && err.name === \"AbortError\";\n return {\n ...base,\n status: \"degraded\",\n summary: aborted ? `\"${server.label}\" did not respond within ${COMPUTE_PING_TIMEOUT_MS / 1e3}s.` : `\"${server.label}\" is unreachable: ${err instanceof Error ? err.message : String(err)}.`,\n remediation: `Confirm the Rhino.Compute host is running and ${server.serverUrl} is correct.`\n };\n } finally {\n clearTimeout(timer);\n }\n}\nasync function dataPathWritableCheck() {\n const base = { id: \"data-path-writable\", label: \"Data path writable\" };\n if (!(providers.data.computeServer instanceof LocalComputeServerStore)) {\n return {\n ...base,\n status: \"not_applicable\",\n summary: \"The active data provider does not persist to a local DATA_PATH.\"\n };\n }\n const dataPath = private_env.DATA_PATH;\n if (!dataPath) {\n return {\n ...base,\n status: \"error\",\n summary: \"DATA_PATH is unset but the local provider is active.\",\n remediation: \"Set DATA_PATH in .env and restart.\"\n };\n }\n const absolute = resolve(dataPath);\n const probe = join(absolute, `.health-probe-${randomUUID()}`);\n try {\n await mkdir(absolute, { recursive: true });\n await writeFile(probe, \"ok\");\n await unlink(probe);\n return { ...base, status: \"ok\", summary: `DATA_PATH (${dataPath}) is writable.` };\n } catch (err) {\n return {\n ...base,\n status: \"degraded\",\n summary: `DATA_PATH (${dataPath}) is not writable: ${err instanceof Error ? err.message : String(err)}.`,\n remediation: \"Check free disk space and that the directory is owned by the user running the app (`df -h`, `ls -la`).\"\n };\n }\n}\nconst GET = async ({ locals }) => {\n requirePermission(locals, \"instance_admin\");\n const checks = [];\n const store = providers.data.computeServer;\n if (store instanceof LocalComputeServerStore) {\n try {\n checks.push(atRestSecretsCheck(await store.verifySecrets()));\n } catch (err) {\n checks.push({\n id: \"at-rest-secrets\",\n label: \"Compute server secrets\",\n status: \"error\",\n summary: `Verification threw: ${err instanceof Error ? err.message : String(err)}`,\n remediation: \"Check server logs (`pm2 logs selva-compute`) for the underlying error.\"\n });\n }\n } else {\n checks.push(atRestSecretsCheck(null));\n }\n checks.push(...await Promise.all([computeReachabilityCheck(locals), dataPathWritableCheck()]));\n const rank = {\n ok: 0,\n not_applicable: 0,\n degraded: 2,\n error: 3\n };\n const overall = checks.reduce(\n (worst, c) => rank[c.status] > rank[worst] ? c.status : worst,\n \"ok\"\n );\n return json({ overall, checkedAt: (/* @__PURE__ */ new Date()).toISOString(), checks });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { h as getDefinitionMeta, o as getStorageProvider, d as definitionPaths }
3
3
  import { s as requireCanViewProject } from './access.server-ByXvmWyF.js';
4
4
  import { C as COVER_IMAGE_CONTENT_TYPES } from './types-DxzJoaA4.js';
5
5
  import { G as GuidSchema } from './context-DKDYb-He.js';
6
- import './computeLimits-CKK96OOR.js';
6
+ import './computeLimits-5PaWFMYq.js';
7
7
  import './shared-server-C3WdcJCQ.js';
8
8
  import 'node:url';
9
9
  import 'node:path';
@@ -38,4 +38,4 @@ const GET = async ({ params, locals }) => {
38
38
  };
39
39
 
40
40
  export { GET };
41
- //# sourceMappingURL=_server.ts-DHcOvm9e.js.map
41
+ //# sourceMappingURL=_server.ts-DlDf2qpE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DHcOvm9e.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, o as getStorageProvider, d as definitionPaths } from \"../../../../../../../chunks/providers.server.js\";\nimport { s as requireCanViewProject } from \"../../../../../../../chunks/access.server.js\";\nimport { C as COVER_IMAGE_CONTENT_TYPES } from \"../../../../../../../chunks/types.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nimport \"../../../../../../../chunks/computeLimits.js\";\nconst GET = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid GUID\");\n const guid = guidParsed.data;\n const ctx = locals.ctx;\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record?.coverImage) throw error(404, \"Image not found\");\n await requireCanViewProject(locals, record.projectId);\n const storedFilename = record.coverImage.split(\"/\").pop() ?? \"cover.webp\";\n const ext = storedFilename.substring(storedFilename.lastIndexOf(\".\")).toLowerCase();\n const contentType = COVER_IMAGE_CONTENT_TYPES[ext] ?? \"image/webp\";\n const bytes = await getStorageProvider().get(definitionPaths.image(guid));\n if (!bytes) throw error(404, \"Image not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": contentType,\n \"Cache-Control\": \"public, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9D,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,YAAY;AAC3E,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;AACrF,EAAE,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,YAAY;AACpE,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AACjD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,WAAW;AACjC,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"_server.ts-DlDf2qpE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { h as getDefinitionMeta, o as getStorageProvider, d as definitionPaths } from \"../../../../../../../chunks/providers.server.js\";\nimport { s as requireCanViewProject } from \"../../../../../../../chunks/access.server.js\";\nimport { C as COVER_IMAGE_CONTENT_TYPES } from \"../../../../../../../chunks/types.js\";\nimport { G as GuidSchema } from \"../../../../../../../chunks/context.js\";\nimport \"../../../../../../../chunks/computeLimits.js\";\nconst GET = async ({ params, locals }) => {\n const guidParsed = GuidSchema.safeParse(params.guid);\n if (!guidParsed.success) throw error(400, \"Invalid GUID\");\n const guid = guidParsed.data;\n const ctx = locals.ctx;\n const record = await getDefinitionMeta().get(ctx, guid);\n if (!record?.coverImage) throw error(404, \"Image not found\");\n await requireCanViewProject(locals, record.projectId);\n const storedFilename = record.coverImage.split(\"/\").pop() ?? \"cover.webp\";\n const ext = storedFilename.substring(storedFilename.lastIndexOf(\".\")).toLowerCase();\n const contentType = COVER_IMAGE_CONTENT_TYPES[ext] ?? \"image/webp\";\n const bytes = await getStorageProvider().get(definitionPaths.image(guid));\n if (!bytes) throw error(404, \"Image not found\");\n return new Response(Buffer.from(bytes), {\n headers: {\n \"Content-Type\": contentType,\n \"Cache-Control\": \"public, max-age=3600\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAC1C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC9B,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AAC9D,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,YAAY;AAC3E,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;AACrF,EAAE,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,YAAY;AACpE,EAAE,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;AACjD,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,WAAW;AACjC,MAAM,eAAe,EAAE;AACvB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -5,7 +5,7 @@ import { r as requireCanCreateDefinition } from './access.server-ByXvmWyF.js';
5
5
  import { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from './api-errors-C0SWfJj5.js';
6
6
  import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
7
7
  import { C as CreateDefinitionInputSchema } from './context-DKDYb-He.js';
8
- import { M as MAX_GH_FILE_SIZE, a as MAX_IMAGE_FILE_SIZE } from './computeLimits-CKK96OOR.js';
8
+ import { M as MAX_GH_FILE_SIZE, b as MAX_IMAGE_FILE_SIZE } from './computeLimits-5PaWFMYq.js';
9
9
  import './shared-server-C3WdcJCQ.js';
10
10
  import 'node:url';
11
11
  import 'node:path';
@@ -98,4 +98,4 @@ const POST = async ({ request, locals }) => {
98
98
  };
99
99
 
100
100
  export { POST };
101
- //# sourceMappingURL=_server.ts-Ce-u_4Qp.js.map
101
+ //# sourceMappingURL=_server.ts-Xpgu2-ka.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Ce-u_4Qp.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, i as getDefinitionService } from \"../../../../chunks/providers.server.js\";\nimport { r as requireCanCreateDefinition } from \"../../../../chunks/access.server.js\";\nimport { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from \"../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../chunks/types.js\";\nimport { C as CreateDefinitionInputSchema } from \"../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE, a as MAX_IMAGE_FILE_SIZE } from \"../../../../chunks/computeLimits.js\";\nfunction parseTags(raw) {\n if (typeof raw !== \"string\" || !raw.trim()) return void 0;\n const tags = raw.split(\",\").map((t) => t.trim()).filter(Boolean);\n return tags.length ? tags : void 0;\n}\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) {\n throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n }\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const imageFile = formData.get(\"image\");\n if (imageFile instanceof File && imageFile.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n let projectId = formData.get(\"projectId\");\n if (typeof projectId !== \"string\" || !projectId) {\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const projectsPage = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, {\n limit: 1\n });\n const defaultProject = projectsPage.items[0];\n if (!defaultProject) throw error(500, \"No project configured\");\n projectId = defaultProject.id;\n }\n const { project } = await requireCanCreateDefinition(locals, projectId);\n const parsed = CreateDefinitionInputSchema.safeParse({\n displayName: formData.get(\"displayName\"),\n description: formData.get(\"description\") || void 0,\n category: formData.get(\"category\") || void 0,\n coverImage: formData.get(\"coverImage\") || void 0,\n tags: parseTags(formData.get(\"tags\")),\n projectId,\n computeServerId: formData.get(\"computeServerId\") || void 0\n });\n if (!parsed.success) throwZodError(parsed.error);\n const fileExt = ext.slice(1);\n const guid = randomUUID();\n try {\n const fileData = new Uint8Array(await file.arrayBuffer());\n const server = await resolveServerForOrg(ctx, project.orgId, {\n definitionPin: parsed.data.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(fileData, server);\n const { record, version } = await getDefinitionService().create(\n ctx,\n {\n guid,\n projectId: parsed.data.projectId,\n ownerId: locals.user.id,\n fileExt,\n originalFilename: file.name,\n computeServerId: parsed.data.computeServerId,\n displayName: parsed.data.displayName.trim(),\n description: parsed.data.description,\n category: parsed.data.category,\n tags: parsed.data.tags,\n coverImage: parsed.data.coverImage\n },\n fileData,\n schema\n );\n let coverImage = record.coverImage;\n if (imageFile instanceof File && imageFile.size > 0) {\n const imageData = new Uint8Array(await imageFile.arrayBuffer());\n coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);\n }\n return json({ success: true, guid, version, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to create definition\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Xpgu2-ka.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { n as getProjectProvider, i as getDefinitionService } from \"../../../../chunks/providers.server.js\";\nimport { r as requireCanCreateDefinition } from \"../../../../chunks/access.server.js\";\nimport { t as throwZodError, r as resolveServerForOrg, f as fetchSchemaFromCompute, h as handleApiError } from \"../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../chunks/types.js\";\nimport { C as CreateDefinitionInputSchema } from \"../../../../chunks/context.js\";\nimport { M as MAX_GH_FILE_SIZE, b as MAX_IMAGE_FILE_SIZE } from \"../../../../chunks/computeLimits.js\";\nfunction parseTags(raw) {\n if (typeof raw !== \"string\" || !raw.trim()) return void 0;\n const tags = raw.split(\",\").map((t) => t.trim()).filter(Boolean);\n return tags.length ? tags : void 0;\n}\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) {\n throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n }\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const imageFile = formData.get(\"image\");\n if (imageFile instanceof File && imageFile.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n let projectId = formData.get(\"projectId\");\n if (typeof projectId !== \"string\" || !projectId) {\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const projectsPage = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, {\n limit: 1\n });\n const defaultProject = projectsPage.items[0];\n if (!defaultProject) throw error(500, \"No project configured\");\n projectId = defaultProject.id;\n }\n const { project } = await requireCanCreateDefinition(locals, projectId);\n const parsed = CreateDefinitionInputSchema.safeParse({\n displayName: formData.get(\"displayName\"),\n description: formData.get(\"description\") || void 0,\n category: formData.get(\"category\") || void 0,\n coverImage: formData.get(\"coverImage\") || void 0,\n tags: parseTags(formData.get(\"tags\")),\n projectId,\n computeServerId: formData.get(\"computeServerId\") || void 0\n });\n if (!parsed.success) throwZodError(parsed.error);\n const fileExt = ext.slice(1);\n const guid = randomUUID();\n try {\n const fileData = new Uint8Array(await file.arrayBuffer());\n const server = await resolveServerForOrg(ctx, project.orgId, {\n definitionPin: parsed.data.computeServerId ?? null\n });\n const schema = await fetchSchemaFromCompute(fileData, server);\n const { record, version } = await getDefinitionService().create(\n ctx,\n {\n guid,\n projectId: parsed.data.projectId,\n ownerId: locals.user.id,\n fileExt,\n originalFilename: file.name,\n computeServerId: parsed.data.computeServerId,\n displayName: parsed.data.displayName.trim(),\n description: parsed.data.description,\n category: parsed.data.category,\n tags: parsed.data.tags,\n coverImage: parsed.data.coverImage\n },\n fileData,\n schema\n );\n let coverImage = record.coverImage;\n if (imageFile instanceof File && imageFile.size > 0) {\n const imageData = new Uint8Array(await imageFile.arrayBuffer());\n coverImage = await getDefinitionService().saveCoverImage(ctx, guid, imageData);\n }\n return json({ success: true, guid, version, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to create definition\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -14,7 +14,8 @@ const RATE_LIMIT_WINDOW_MS = readPositiveInt("COMPUTE_RATE_LIMIT_WINDOW_MS", 6e4
14
14
  const RATE_LIMIT_MAX_REQUESTS = readPositiveInt("COMPUTE_RATE_LIMIT_MAX", 120);
15
15
  const MAX_GH_FILE_SIZE = readPositiveInt("MAX_GH_FILE_SIZE_BYTES", 50 * MB);
16
16
  const MAX_IMAGE_FILE_SIZE = readPositiveInt("MAX_IMAGE_FILE_SIZE_BYTES", 10 * MB);
17
- const COMPUTE_REQUEST_MAX_BYTES = readPositiveInt("COMPUTE_REQUEST_MAX_BYTES", 5 * MB);
17
+ const COMPUTE_REQUEST_MAX_BYTES = readPositiveInt("COMPUTE_REQUEST_MAX_BYTES", 210 * MB);
18
+ const COMPUTE_RESPONSE_MAX_BYTES = readPositiveInt("COMPUTE_RESPONSE_MAX_BYTES", 300 * MB);
18
19
  const REMOTE_DEFINITION_MAX_BYTES = MAX_GH_FILE_SIZE;
19
20
  const REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(
20
21
  "REMOTE_DEFINITION_FETCH_TIMEOUT_MS",
@@ -22,5 +23,5 @@ const REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(
22
23
  );
23
24
  const DEFINITION_CACHE_TTL_MS = readPositiveInt("DEFINITION_CACHE_TTL_MS", 5 * 60 * 1e3);
24
25
 
25
- export { COMPUTE_REQUEST_MAX_BYTES as C, DEFINITION_CACHE_TTL_MS as D, MAX_GH_FILE_SIZE as M, RATE_LIMIT_MAX_REQUESTS as R, MAX_IMAGE_FILE_SIZE as a, MAX_SOLVE_DURATION_MS as b, RATE_LIMIT_WINDOW_MS as c, REMOTE_DEFINITION_FETCH_TIMEOUT_MS as d, REMOTE_DEFINITION_MAX_BYTES as e };
26
- //# sourceMappingURL=computeLimits-CKK96OOR.js.map
26
+ export { COMPUTE_REQUEST_MAX_BYTES as C, DEFINITION_CACHE_TTL_MS as D, MAX_GH_FILE_SIZE as M, RATE_LIMIT_MAX_REQUESTS as R, COMPUTE_RESPONSE_MAX_BYTES as a, MAX_IMAGE_FILE_SIZE as b, MAX_SOLVE_DURATION_MS as c, RATE_LIMIT_WINDOW_MS as d, REMOTE_DEFINITION_FETCH_TIMEOUT_MS as e, REMOTE_DEFINITION_MAX_BYTES as f };
27
+ //# sourceMappingURL=computeLimits-5PaWFMYq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeLimits-5PaWFMYq.js","sources":["../../../.svelte-kit/adapter-node/chunks/computeLimits.js"],"sourcesContent":["function readPositiveInt(name, fallback) {\n const raw = process.env[name];\n if (!raw) return fallback;\n const parsed = Number(raw);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n console.warn(`[computeLimits] Invalid ${name}=${raw}, falling back to ${fallback}`);\n return fallback;\n }\n return Math.floor(parsed);\n}\nconst MB = 1024 * 1024;\nconst MAX_SOLVE_DURATION_MS = readPositiveInt(\"MAX_SOLVE_DURATION_MS\", 6e4);\nconst RATE_LIMIT_WINDOW_MS = readPositiveInt(\"COMPUTE_RATE_LIMIT_WINDOW_MS\", 6e4);\nconst RATE_LIMIT_MAX_REQUESTS = readPositiveInt(\"COMPUTE_RATE_LIMIT_MAX\", 120);\nconst MAX_GH_FILE_SIZE = readPositiveInt(\"MAX_GH_FILE_SIZE_BYTES\", 50 * MB);\nconst MAX_IMAGE_FILE_SIZE = readPositiveInt(\"MAX_IMAGE_FILE_SIZE_BYTES\", 10 * MB);\nconst COMPUTE_REQUEST_MAX_BYTES = readPositiveInt(\"COMPUTE_REQUEST_MAX_BYTES\", 210 * MB);\nconst COMPUTE_RESPONSE_MAX_BYTES = readPositiveInt(\"COMPUTE_RESPONSE_MAX_BYTES\", 300 * MB);\nconst REMOTE_DEFINITION_MAX_BYTES = MAX_GH_FILE_SIZE;\nconst REMOTE_DEFINITION_FETCH_TIMEOUT_MS = readPositiveInt(\n \"REMOTE_DEFINITION_FETCH_TIMEOUT_MS\",\n 3e4\n);\nconst DEFINITION_CACHE_TTL_MS = readPositiveInt(\"DEFINITION_CACHE_TTL_MS\", 5 * 60 * 1e3);\nexport {\n COMPUTE_REQUEST_MAX_BYTES as C,\n DEFINITION_CACHE_TTL_MS as D,\n MAX_GH_FILE_SIZE as M,\n RATE_LIMIT_MAX_REQUESTS as R,\n COMPUTE_RESPONSE_MAX_BYTES as a,\n MAX_IMAGE_FILE_SIZE as b,\n MAX_SOLVE_DURATION_MS as c,\n RATE_LIMIT_WINDOW_MS as d,\n REMOTE_DEFINITION_FETCH_TIMEOUT_MS as e,\n REMOTE_DEFINITION_MAX_BYTES as f\n};\n"],"names":[],"mappings":"AAAA,SAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;AACzC,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,QAAQ;AAC3B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvF,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B;AACA,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;AACjB,MAAC,qBAAqB,GAAG,eAAe,CAAC,uBAAuB,EAAE,GAAG;AACrE,MAAC,oBAAoB,GAAG,eAAe,CAAC,8BAA8B,EAAE,GAAG;AAC3E,MAAC,uBAAuB,GAAG,eAAe,CAAC,wBAAwB,EAAE,GAAG;AACxE,MAAC,gBAAgB,GAAG,eAAe,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE;AACrE,MAAC,mBAAmB,GAAG,eAAe,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE;AAC3E,MAAC,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,EAAE,GAAG,GAAG,EAAE;AAClF,MAAC,0BAA0B,GAAG,eAAe,CAAC,4BAA4B,EAAE,GAAG,GAAG,EAAE;AACpF,MAAC,2BAA2B,GAAG;AAC/B,MAAC,kCAAkC,GAAG,eAAe;AAC1D,EAAE,oCAAoC;AACtC,EAAE;AACF;AACK,MAAC,uBAAuB,GAAG,eAAe,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;;;;"}
@@ -1171,7 +1171,7 @@ const options = {
1171
1171
  <div class="error">
1172
1172
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
1173
1173
  },
1174
- version_hash: "mfdpma"
1174
+ version_hash: "d4t28t"
1175
1175
  };
1176
1176
  async function get_hooks() {
1177
1177
  let handle;