gemi 0.124.0 → 0.126.0

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 (331) hide show
  1. package/dist/ai/AgentController.d.ts +185 -3
  2. package/dist/ai/AgentController.d.ts.map +1 -1
  3. package/dist/ai/client/index.d.ts +1 -1
  4. package/dist/ai/client/index.d.ts.map +1 -1
  5. package/dist/ai/client/index.js +38 -9
  6. package/dist/ai/client/index.js.map +1 -1
  7. package/dist/ai/client/reducer.d.ts.map +1 -1
  8. package/dist/ai/index.d.ts +2 -2
  9. package/dist/ai/index.d.ts.map +1 -1
  10. package/dist/ai/index.js +31 -48
  11. package/dist/ai/index.js.map +6 -15
  12. package/dist/ai/types.d.ts +26 -0
  13. package/dist/ai/types.d.ts.map +1 -1
  14. package/dist/ai/useChat.d.ts +35 -2
  15. package/dist/ai/useChat.d.ts.map +1 -1
  16. package/dist/app/index.js +1 -1
  17. package/dist/auth/AuthController.d.ts.map +1 -1
  18. package/dist/auth/AuthManager.d.ts +11 -0
  19. package/dist/auth/AuthManager.d.ts.map +1 -1
  20. package/dist/auth/AuthServiceProvider.d.ts +2 -0
  21. package/dist/auth/AuthServiceProvider.d.ts.map +1 -1
  22. package/dist/auth/config.d.ts +71 -2
  23. package/dist/auth/config.d.ts.map +1 -1
  24. package/dist/auth/connections/ConnectionsController.d.ts.map +1 -1
  25. package/dist/auth/oauth/GoogleOAuthProvider.d.ts +1 -1
  26. package/dist/auth/oauth/GoogleOAuthProvider.d.ts.map +1 -1
  27. package/dist/auth/oauth/InstagramOAuthProvider.d.ts +1 -1
  28. package/dist/auth/oauth/InstagramOAuthProvider.d.ts.map +1 -1
  29. package/dist/auth/oauth/XOAuthProvider.d.ts.map +1 -1
  30. package/dist/auth/oauth/providers.d.ts +10 -0
  31. package/dist/auth/oauth/providers.d.ts.map +1 -0
  32. package/dist/bun/plugin.js +1 -1
  33. package/dist/bun/preload.js +1 -1
  34. package/dist/{chunk-cfdwsvtx.js → chunk-094m8mj3.js} +2 -2
  35. package/dist/{chunk-cfdwsvtx.js.map → chunk-094m8mj3.js.map} +1 -1
  36. package/dist/chunk-0arss2xy.js +5 -0
  37. package/dist/{chunk-mqtfaqx5.js.map → chunk-0arss2xy.js.map} +5 -4
  38. package/dist/{chunk-rtawbqec.js → chunk-0f0xxqhy.js} +3 -3
  39. package/dist/{chunk-rtawbqec.js.map → chunk-0f0xxqhy.js.map} +1 -1
  40. package/dist/chunk-15bmfr7f.js +5 -0
  41. package/dist/chunk-15bmfr7f.js.map +14 -0
  42. package/dist/{chunk-6bgb1nhq.js → chunk-1dzs05dc.js} +2 -2
  43. package/dist/{chunk-6bgb1nhq.js.map → chunk-1dzs05dc.js.map} +1 -1
  44. package/dist/{chunk-30xxc6r7.js → chunk-1eb4p352.js} +2 -2
  45. package/dist/{chunk-30xxc6r7.js.map → chunk-1eb4p352.js.map} +1 -1
  46. package/dist/{chunk-s5jxc63j.js → chunk-1gd1ykgj.js} +3 -3
  47. package/dist/{chunk-s5jxc63j.js.map → chunk-1gd1ykgj.js.map} +1 -1
  48. package/dist/{chunk-4drnyymm.js → chunk-1v368y9a.js} +2 -2
  49. package/dist/{chunk-4drnyymm.js.map → chunk-1v368y9a.js.map} +1 -1
  50. package/dist/{chunk-sd0c2001.js → chunk-28bby5pp.js} +2 -2
  51. package/dist/{chunk-sd0c2001.js.map → chunk-28bby5pp.js.map} +1 -1
  52. package/dist/{chunk-wbg2tza5.js → chunk-3fyhd641.js} +1 -1
  53. package/dist/{chunk-3y294mb8.js → chunk-43faxwf5.js} +2 -2
  54. package/dist/{chunk-3y294mb8.js.map → chunk-43faxwf5.js.map} +1 -1
  55. package/dist/{chunk-v2ggafz1.js → chunk-56ryda9y.js} +2 -2
  56. package/dist/{chunk-v2ggafz1.js.map → chunk-56ryda9y.js.map} +1 -1
  57. package/dist/{chunk-dxfhhw5h.js → chunk-5vvfcdpk.js} +2 -2
  58. package/dist/{chunk-dxfhhw5h.js.map → chunk-5vvfcdpk.js.map} +1 -1
  59. package/dist/{chunk-2affxmkn.js → chunk-62zn06wb.js} +2 -2
  60. package/dist/{chunk-2affxmkn.js.map → chunk-62zn06wb.js.map} +1 -1
  61. package/dist/{chunk-bt9qv2jj.js → chunk-7dzprr9b.js} +3 -3
  62. package/dist/{chunk-bt9qv2jj.js.map → chunk-7dzprr9b.js.map} +1 -1
  63. package/dist/{chunk-n1a2zj5z.js → chunk-7eerqsg2.js} +2 -2
  64. package/dist/{chunk-n1a2zj5z.js.map → chunk-7eerqsg2.js.map} +3 -3
  65. package/dist/{chunk-nnarmbjv.js → chunk-7nfprr9v.js} +2 -2
  66. package/dist/chunk-7nfprr9v.js.map +10 -0
  67. package/dist/{chunk-yzhv93b0.js → chunk-7x2n788t.js} +3 -3
  68. package/dist/{chunk-yzhv93b0.js.map → chunk-7x2n788t.js.map} +1 -1
  69. package/dist/{chunk-zsvav1dk.js → chunk-84rbdyhe.js} +2 -2
  70. package/dist/{chunk-zsvav1dk.js.map → chunk-84rbdyhe.js.map} +1 -1
  71. package/dist/chunk-87bmhng2.js +5 -0
  72. package/dist/{chunk-70nnh0y7.js.map → chunk-87bmhng2.js.map} +1 -1
  73. package/dist/{chunk-nn2jeat2.js → chunk-87jj7n9q.js} +2 -2
  74. package/dist/{chunk-17dndh5z.js.map → chunk-87jj7n9q.js.map} +1 -1
  75. package/dist/{chunk-17dndh5z.js → chunk-89swy5aq.js} +2 -2
  76. package/dist/{chunk-nn2jeat2.js.map → chunk-89swy5aq.js.map} +1 -1
  77. package/dist/{chunk-2n4490pk.js → chunk-8df7fn7f.js} +3 -3
  78. package/dist/{chunk-2n4490pk.js.map → chunk-8df7fn7f.js.map} +1 -1
  79. package/dist/{chunk-qdj8ek8z.js → chunk-99z9d0sa.js} +2 -2
  80. package/dist/{chunk-qdj8ek8z.js.map → chunk-99z9d0sa.js.map} +1 -1
  81. package/dist/{chunk-1rnh9qrp.js → chunk-9hhxy88x.js} +2 -2
  82. package/dist/{chunk-1rnh9qrp.js.map → chunk-9hhxy88x.js.map} +1 -1
  83. package/dist/{chunk-nkzmk7v3.js → chunk-9x0pgkns.js} +2 -2
  84. package/dist/{chunk-nkzmk7v3.js.map → chunk-9x0pgkns.js.map} +1 -1
  85. package/dist/{chunk-qhz0x97z.js → chunk-avfntxm1.js} +2 -2
  86. package/dist/{chunk-qhz0x97z.js.map → chunk-avfntxm1.js.map} +1 -1
  87. package/dist/{chunk-92sk56n0.js → chunk-b2pdqxj3.js} +12 -12
  88. package/dist/{chunk-92sk56n0.js.map → chunk-b2pdqxj3.js.map} +7 -8
  89. package/dist/{chunk-5e22tm7m.js → chunk-bghxdjqv.js} +1 -1
  90. package/dist/{chunk-fn2qfwgx.js → chunk-bhbxhk9e.js} +2 -2
  91. package/dist/{chunk-fn2qfwgx.js.map → chunk-bhbxhk9e.js.map} +1 -1
  92. package/dist/{chunk-65s834td.js → chunk-c48gag78.js} +1 -1
  93. package/dist/{chunk-bnt8kx6x.js → chunk-c65rh4k8.js} +2 -2
  94. package/dist/{chunk-bnt8kx6x.js.map → chunk-c65rh4k8.js.map} +1 -1
  95. package/dist/chunk-cwpezdpw.js +57 -0
  96. package/dist/{chunk-5j50q4g8.js.map → chunk-cwpezdpw.js.map} +29 -21
  97. package/dist/chunk-dm7mada7.js +15 -0
  98. package/dist/{chunk-n0r5xyk2.js.map → chunk-dm7mada7.js.map} +6 -5
  99. package/dist/{chunk-mrswc6qw.js → chunk-ebdkmzm9.js} +2 -2
  100. package/dist/{chunk-mrswc6qw.js.map → chunk-ebdkmzm9.js.map} +1 -1
  101. package/dist/{chunk-z5jydj5r.js → chunk-ecb8qggy.js} +2 -2
  102. package/dist/{chunk-z5jydj5r.js.map → chunk-ecb8qggy.js.map} +1 -1
  103. package/dist/{chunk-y434jc1c.js → chunk-etf6h5m1.js} +2 -2
  104. package/dist/{chunk-y434jc1c.js.map → chunk-etf6h5m1.js.map} +1 -1
  105. package/dist/{chunk-fvrmptd0.js → chunk-ewv1m1sv.js} +3 -3
  106. package/dist/{chunk-fvrmptd0.js.map → chunk-ewv1m1sv.js.map} +1 -1
  107. package/dist/{chunk-fw7ds23a.js → chunk-gv59djt3.js} +2 -2
  108. package/dist/{chunk-fw7ds23a.js.map → chunk-gv59djt3.js.map} +1 -1
  109. package/dist/{chunk-3hqwz48c.js → chunk-gxp48t81.js} +4 -4
  110. package/dist/{chunk-3hqwz48c.js.map → chunk-gxp48t81.js.map} +1 -1
  111. package/dist/{chunk-pmyh33v5.js → chunk-h4755p9h.js} +2 -2
  112. package/dist/{chunk-pmyh33v5.js.map → chunk-h4755p9h.js.map} +1 -1
  113. package/dist/{chunk-jys8y39p.js → chunk-hye22tpt.js} +2 -2
  114. package/dist/{chunk-jys8y39p.js.map → chunk-hye22tpt.js.map} +1 -1
  115. package/dist/{chunk-7gfdts60.js → chunk-jg3kg55f.js} +2 -2
  116. package/dist/{chunk-7gfdts60.js.map → chunk-jg3kg55f.js.map} +1 -1
  117. package/dist/{chunk-j7v7dft7.js → chunk-k6gvbvyw.js} +1 -1
  118. package/dist/{chunk-qycwjzsv.js → chunk-kzk5r6v4.js} +3 -3
  119. package/dist/{chunk-qycwjzsv.js.map → chunk-kzk5r6v4.js.map} +1 -1
  120. package/dist/{chunk-rttrpjqk.js → chunk-m63v6aze.js} +2 -2
  121. package/dist/{chunk-rttrpjqk.js.map → chunk-m63v6aze.js.map} +1 -1
  122. package/dist/{chunk-1qwhty9p.js → chunk-mj4n5mar.js} +2 -2
  123. package/dist/{chunk-1qwhty9p.js.map → chunk-mj4n5mar.js.map} +1 -1
  124. package/dist/{chunk-h3p8qzft.js → chunk-mj7h1dgh.js} +2 -2
  125. package/dist/{chunk-h3p8qzft.js.map → chunk-mj7h1dgh.js.map} +1 -1
  126. package/dist/{chunk-f4cmz31h.js → chunk-mpt5jg4e.js} +2 -2
  127. package/dist/{chunk-f4cmz31h.js.map → chunk-mpt5jg4e.js.map} +1 -1
  128. package/dist/{chunk-w61sphn5.js → chunk-n8mxsfc2.js} +3 -3
  129. package/dist/{chunk-w61sphn5.js.map → chunk-n8mxsfc2.js.map} +1 -1
  130. package/dist/{chunk-34fkx6kb.js → chunk-nrf23yan.js} +2 -2
  131. package/dist/{chunk-34fkx6kb.js.map → chunk-nrf23yan.js.map} +1 -1
  132. package/dist/{chunk-pe46a5a5.js → chunk-nv2t87c3.js} +2 -2
  133. package/dist/{chunk-pe46a5a5.js.map → chunk-nv2t87c3.js.map} +1 -1
  134. package/dist/{chunk-c4jnxmf2.js → chunk-p0ccxfkq.js} +1 -1
  135. package/dist/{chunk-019wz697.js → chunk-p7abyc0b.js} +2 -2
  136. package/dist/{chunk-019wz697.js.map → chunk-p7abyc0b.js.map} +1 -1
  137. package/dist/{chunk-8m2htvjn.js → chunk-psdyfaf1.js} +2 -2
  138. package/dist/{chunk-8m2htvjn.js.map → chunk-psdyfaf1.js.map} +1 -1
  139. package/dist/{chunk-b5afy6k9.js → chunk-q9mxjh10.js} +2 -2
  140. package/dist/{chunk-b5afy6k9.js.map → chunk-q9mxjh10.js.map} +1 -1
  141. package/dist/{chunk-kzsjyvvc.js → chunk-qmcjh6de.js} +2 -2
  142. package/dist/{chunk-kzsjyvvc.js.map → chunk-qmcjh6de.js.map} +1 -1
  143. package/dist/{chunk-w3812s34.js → chunk-qy3s6pwz.js} +2 -2
  144. package/dist/{chunk-w3812s34.js.map → chunk-qy3s6pwz.js.map} +1 -1
  145. package/dist/{chunk-ykz38t0t.js → chunk-ravssmdy.js} +2 -2
  146. package/dist/{chunk-ykz38t0t.js.map → chunk-ravssmdy.js.map} +1 -1
  147. package/dist/{chunk-v8v5qfnh.js → chunk-rtb64x14.js} +3 -3
  148. package/dist/{chunk-v8v5qfnh.js.map → chunk-rtb64x14.js.map} +1 -1
  149. package/dist/{chunk-3j6s5bmx.js → chunk-rvdsaqdv.js} +1 -1
  150. package/dist/chunk-s0kns9q1.js +22 -0
  151. package/dist/chunk-s0kns9q1.js.map +21 -0
  152. package/dist/{chunk-skf89vrv.js → chunk-s2krqtwj.js} +2 -2
  153. package/dist/{chunk-skf89vrv.js.map → chunk-s2krqtwj.js.map} +1 -1
  154. package/dist/{chunk-75ewjc4a.js → chunk-s2y2b8tz.js} +2 -2
  155. package/dist/{chunk-75ewjc4a.js.map → chunk-s2y2b8tz.js.map} +1 -1
  156. package/dist/{chunk-675kzd7z.js → chunk-t8kzaxaa.js} +2 -2
  157. package/dist/{chunk-675kzd7z.js.map → chunk-t8kzaxaa.js.map} +1 -1
  158. package/dist/{chunk-a3g7y70h.js → chunk-v1eeh7a7.js} +3 -3
  159. package/dist/{chunk-a3g7y70h.js.map → chunk-v1eeh7a7.js.map} +1 -1
  160. package/dist/{chunk-mvkz22p4.js → chunk-v7nw1g2n.js} +2 -2
  161. package/dist/{chunk-mvkz22p4.js.map → chunk-v7nw1g2n.js.map} +1 -1
  162. package/dist/{chunk-f29pktad.js → chunk-v80890xx.js} +3 -3
  163. package/dist/{chunk-f29pktad.js.map → chunk-v80890xx.js.map} +1 -1
  164. package/dist/{chunk-jctb7v53.js → chunk-w4111j5d.js} +2 -2
  165. package/dist/{chunk-jctb7v53.js.map → chunk-w4111j5d.js.map} +1 -1
  166. package/dist/{chunk-121p4g9j.js → chunk-wat33wxh.js} +2 -2
  167. package/dist/{chunk-121p4g9j.js.map → chunk-wat33wxh.js.map} +1 -1
  168. package/dist/{chunk-9tr92nwy.js → chunk-x5vpjzpp.js} +2 -2
  169. package/dist/{chunk-9tr92nwy.js.map → chunk-x5vpjzpp.js.map} +1 -1
  170. package/dist/{chunk-zsfwcdqn.js → chunk-xe2cfmyb.js} +2 -2
  171. package/dist/{chunk-zsfwcdqn.js.map → chunk-xe2cfmyb.js.map} +1 -1
  172. package/dist/{chunk-w4z6x54b.js → chunk-ych1dv5q.js} +3 -3
  173. package/dist/{chunk-w4z6x54b.js.map → chunk-ych1dv5q.js.map} +1 -1
  174. package/dist/{chunk-96a1459v.js → chunk-yffm8nxa.js} +2 -2
  175. package/dist/{chunk-96a1459v.js.map → chunk-yffm8nxa.js.map} +1 -1
  176. package/dist/{chunk-rpyczdta.js → chunk-yg8se4vs.js} +3 -3
  177. package/dist/{chunk-rpyczdta.js.map → chunk-yg8se4vs.js.map} +1 -1
  178. package/dist/chunk-zbvdkh6q.js +10 -0
  179. package/dist/chunk-zbvdkh6q.js.map +44 -0
  180. package/dist/{chunk-szn2n976.js → chunk-zy5gxk1g.js} +2 -2
  181. package/dist/{chunk-szn2n976.js.map → chunk-zy5gxk1g.js.map} +1 -1
  182. package/dist/chunks/{ThemeProvider-CbOx8IRl.js → ThemeProvider-CS2a1snV.js} +27 -1
  183. package/dist/chunks/ThemeProvider-CS2a1snV.js.map +1 -0
  184. package/dist/client/Mutation.d.ts +7 -6
  185. package/dist/client/Mutation.d.ts.map +1 -1
  186. package/dist/client/MutationError.d.ts +53 -1
  187. package/dist/client/MutationError.d.ts.map +1 -1
  188. package/dist/client/QueryResource.d.ts +9 -0
  189. package/dist/client/QueryResource.d.ts.map +1 -1
  190. package/dist/client/auth/useEmailCode.d.ts +3 -3
  191. package/dist/client/auth/useForgotPassword.d.ts +1 -1
  192. package/dist/client/auth/useResetPassword.d.ts +1 -1
  193. package/dist/client/auth/useSignIn.d.ts +1 -1
  194. package/dist/client/auth/useSignOut.d.ts +1 -1
  195. package/dist/client/auth/useSignUp.d.ts +1 -1
  196. package/dist/client/index.d.ts +4 -2
  197. package/dist/client/index.d.ts.map +1 -1
  198. package/dist/client/index.js +182 -30
  199. package/dist/client/index.js.map +1 -1
  200. package/dist/client/useMutation.d.ts +18 -8
  201. package/dist/client/useMutation.d.ts.map +1 -1
  202. package/dist/client/useQuery.d.ts +9 -0
  203. package/dist/client/useQuery.d.ts.map +1 -1
  204. package/dist/client/useSetQueryData.d.ts +69 -0
  205. package/dist/client/useSetQueryData.d.ts.map +1 -0
  206. package/dist/config/index.js +1 -1
  207. package/dist/console/run.js +2 -2
  208. package/dist/console/run.js.map +1 -1
  209. package/dist/container/index.js +2 -2
  210. package/dist/container/index.js.map +1 -1
  211. package/dist/database/index.js +2 -2
  212. package/dist/database/index.js.map +1 -1
  213. package/dist/email/index.js +2 -2
  214. package/dist/email/index.js.map +1 -1
  215. package/dist/facades/Auth.d.ts +29 -2
  216. package/dist/facades/Auth.d.ts.map +1 -1
  217. package/dist/facades/Cache.d.ts +36 -0
  218. package/dist/facades/Cache.d.ts.map +1 -0
  219. package/dist/facades/RateLimiter.d.ts +16 -1
  220. package/dist/facades/RateLimiter.d.ts.map +1 -1
  221. package/dist/facades/Url.d.ts +12 -1
  222. package/dist/facades/Url.d.ts.map +1 -1
  223. package/dist/facades/index.d.ts +1 -0
  224. package/dist/facades/index.d.ts.map +1 -1
  225. package/dist/facades/index.js +2 -2
  226. package/dist/facades/index.js.map +1 -1
  227. package/dist/foundation/index.js +2 -2
  228. package/dist/foundation/index.js.map +1 -1
  229. package/dist/http/HttpRequest.d.ts +14 -0
  230. package/dist/http/HttpRequest.d.ts.map +1 -1
  231. package/dist/http/McpRouter.d.ts +121 -2
  232. package/dist/http/McpRouter.d.ts.map +1 -1
  233. package/dist/http/Metadata.d.ts.map +1 -1
  234. package/dist/http/RateLimitExceededError.d.ts +24 -0
  235. package/dist/http/RateLimitExceededError.d.ts.map +1 -0
  236. package/dist/http/RateLimitMiddleware.d.ts +2 -5
  237. package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
  238. package/dist/http/index.d.ts +2 -1
  239. package/dist/http/index.d.ts.map +1 -1
  240. package/dist/http/index.js +2 -2
  241. package/dist/http/index.js.map +1 -1
  242. package/dist/http/refusal.d.ts +6 -1
  243. package/dist/http/refusal.d.ts.map +1 -1
  244. package/dist/http/requestContext.d.ts +3 -1
  245. package/dist/http/requestContext.d.ts.map +1 -1
  246. package/dist/http/requestState.d.ts +57 -0
  247. package/dist/http/requestState.d.ts.map +1 -0
  248. package/dist/i18n/dictionaryRuntime.js +2 -2
  249. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  250. package/dist/i18n/index.js +2 -2
  251. package/dist/i18n/index.js.map +1 -1
  252. package/dist/kernel/index.js +3 -3
  253. package/dist/kernel/index.js.map +3 -3
  254. package/dist/kernel/providers.d.ts +2 -2
  255. package/dist/kernel/providers.d.ts.map +1 -1
  256. package/dist/orm/index.js +2 -2
  257. package/dist/orm/index.js.map +1 -1
  258. package/dist/server/Server.d.ts.map +1 -1
  259. package/dist/server/health.d.ts +67 -0
  260. package/dist/server/health.d.ts.map +1 -0
  261. package/dist/server/index.d.ts +1 -0
  262. package/dist/server/index.d.ts.map +1 -1
  263. package/dist/server/index.js +2 -2
  264. package/dist/server/index.js.map +5 -4
  265. package/dist/server/shutdown.d.ts +3 -4
  266. package/dist/server/shutdown.d.ts.map +1 -1
  267. package/dist/services/cache/CacheManager.d.ts +115 -0
  268. package/dist/services/cache/CacheManager.d.ts.map +1 -0
  269. package/dist/services/cache/CacheServiceProvider.d.ts +5 -0
  270. package/dist/services/cache/CacheServiceProvider.d.ts.map +1 -0
  271. package/dist/services/cache/CacheStore.d.ts +26 -0
  272. package/dist/services/cache/CacheStore.d.ts.map +1 -0
  273. package/dist/services/cache/MemoryCacheStore.d.ts +36 -0
  274. package/dist/services/cache/MemoryCacheStore.d.ts.map +1 -0
  275. package/dist/services/cache/RedisCacheStore.d.ts +54 -0
  276. package/dist/services/cache/RedisCacheStore.d.ts.map +1 -0
  277. package/dist/services/cache/config.d.ts +35 -0
  278. package/dist/services/cache/config.d.ts.map +1 -0
  279. package/dist/services/features/gate.d.ts +11 -0
  280. package/dist/services/features/gate.d.ts.map +1 -0
  281. package/dist/services/index.d.ts +10 -4
  282. package/dist/services/index.d.ts.map +1 -1
  283. package/dist/services/index.js +9 -9
  284. package/dist/services/index.js.map +5 -5
  285. package/dist/services/logging/LogManager.d.ts +1 -0
  286. package/dist/services/logging/LogManager.d.ts.map +1 -1
  287. package/dist/services/logging/config.d.ts +23 -1
  288. package/dist/services/logging/config.d.ts.map +1 -1
  289. package/dist/services/logging/consoleSink.d.ts +25 -0
  290. package/dist/services/logging/consoleSink.d.ts.map +1 -0
  291. package/dist/services/mcp/McpRegistry.d.ts +106 -14
  292. package/dist/services/mcp/McpRegistry.d.ts.map +1 -1
  293. package/dist/services/mcp/http/McpHttpServer.d.ts +41 -2
  294. package/dist/services/mcp/http/McpHttpServer.d.ts.map +1 -1
  295. package/dist/services/mcp/toAgentTools.d.ts +21 -3
  296. package/dist/services/mcp/toAgentTools.d.ts.map +1 -1
  297. package/dist/services/queue/work.js +2 -2
  298. package/dist/services/queue/work.js.map +1 -1
  299. package/dist/services/rate-limiter/RateLimiter.d.ts +12 -0
  300. package/dist/services/rate-limiter/RateLimiter.d.ts.map +1 -1
  301. package/dist/services/router/globalMiddleware.d.ts +4 -3
  302. package/dist/services/router/globalMiddleware.d.ts.map +1 -1
  303. package/dist/stats/route-table.js +1 -1
  304. package/dist/support/index.js +2 -2
  305. package/dist/support/index.js.map +1 -1
  306. package/dist/testing/index.js +1 -1
  307. package/dist/utils/appOrigin.d.ts +19 -0
  308. package/dist/utils/appOrigin.d.ts.map +1 -0
  309. package/dist/vitest/index.js +1 -1
  310. package/package.json +1 -1
  311. package/skills/gemi-react-best-practices/SKILL.md +1 -1
  312. package/skills/gemi-react-best-practices/rules/query-mutate-over-refetch.md +14 -0
  313. package/skills/gemi-react-best-practices/rules/routing-middleware-dsl.md +2 -1
  314. package/dist/chunk-5j50q4g8.js +0 -57
  315. package/dist/chunk-70nnh0y7.js +0 -5
  316. package/dist/chunk-kc924zjz.js +0 -5
  317. package/dist/chunk-kc924zjz.js.map +0 -12
  318. package/dist/chunk-mqtfaqx5.js +0 -5
  319. package/dist/chunk-n0r5xyk2.js +0 -14
  320. package/dist/chunk-nnarmbjv.js.map +0 -10
  321. package/dist/chunk-pya4rqm2.js +0 -5
  322. package/dist/chunk-pya4rqm2.js.map +0 -12
  323. package/dist/chunk-zmf3vhex.js +0 -10
  324. package/dist/chunk-zmf3vhex.js.map +0 -43
  325. package/dist/chunks/ThemeProvider-CbOx8IRl.js.map +0 -1
  326. /package/dist/{chunk-wbg2tza5.js.map → chunk-3fyhd641.js.map} +0 -0
  327. /package/dist/{chunk-5e22tm7m.js.map → chunk-bghxdjqv.js.map} +0 -0
  328. /package/dist/{chunk-65s834td.js.map → chunk-c48gag78.js.map} +0 -0
  329. /package/dist/{chunk-j7v7dft7.js.map → chunk-k6gvbvyw.js.map} +0 -0
  330. /package/dist/{chunk-c4jnxmf2.js.map → chunk-p0ccxfkq.js.map} +0 -0
  331. /package/dist/{chunk-3j6s5bmx.js.map → chunk-rvdsaqdv.js.map} +0 -0
@@ -2,7 +2,8 @@ import type { RPC } from "./rpc";
2
2
  import type { ApiRouterHandler } from "../http/ApiRouter";
3
3
  import type { UnwrapPromise } from "../utils/type";
4
4
  import type { UrlParser } from "./types";
5
- import { type MutationError } from "./MutationError";
5
+ import { type MutationError, type WithMutationErrorHelpers } from "./MutationError";
6
+ import { type QueryUpdate } from "./useSetQueryData";
6
7
  type Methods = {
7
8
  POST: {
8
9
  [K in keyof RPC as K extends `POST:${infer P}` ? P : never]: RPC[K];
@@ -37,12 +38,21 @@ type Config<T, E = never> = {
37
38
  * A `MutationError`, or one of the route's typed errors (`E`): the bodies
38
39
  * its handler answers with `HttpResponse.error` / `httpError`.
39
40
  *
41
+ * It carries `error.list()` and `error.field(name)`.
42
+ *
40
43
  * Method syntax, so a handler written as `(error: MutationError) => …`
41
44
  * before the route had typed errors still compiles.
42
45
  */
43
- onError(error: MutationError | E): void;
46
+ onError(error: WithMutationErrorHelpers<MutationError | E>): void;
44
47
  onCanceled?: () => void;
45
48
  concurrency?: MutationConcurrency;
49
+ /**
50
+ * Queries the answer is written into on success, before `onSuccess`, with
51
+ * no refetch: `{ path, params?, search?, data? }`. Without `data` the
52
+ * answer is written as is; `data(answer, current)` builds the next value
53
+ * from it and what is cached (#897).
54
+ */
55
+ updates?: ReadonlyArray<QueryUpdate<T>>;
46
56
  };
47
57
  /**
48
58
  * Callbacks for one `trigger` call. They run after the hook's own, and only
@@ -50,7 +60,7 @@ type Config<T, E = never> = {
50
60
  */
51
61
  export type MutationCallConfig<T, E = never> = {
52
62
  onSuccess?: (data: T) => void;
53
- onError?(error: MutationError | E): void;
63
+ onError?(error: WithMutationErrorHelpers<MutationError | E>): void;
54
64
  };
55
65
  type Data<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<any, infer T, any> ? UnwrapPromise<T> : never;
56
66
  type Body<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<infer T, any, any> ? T : never;
@@ -68,7 +78,7 @@ export declare function useMutation<M extends keyof Methods, K extends keyof Met
68
78
  config?: Partial<Config<T, E>>
69
79
  ]): {
70
80
  data: T;
71
- error: MutationError | E;
81
+ error: WithMutationErrorHelpers<MutationError | E>;
72
82
  loading: boolean;
73
83
  pending: number;
74
84
  formData: FormData;
@@ -85,7 +95,7 @@ export declare function usePost<K extends keyof Methods["POST"], T = Data<"POST"
85
95
  config?: Partial<Config<T, E>>
86
96
  ]): {
87
97
  data: Data<"POST", K>;
88
- error: MutationError | ErrorOf<"POST", K>;
98
+ error: WithMutationErrorHelpers<MutationError | ErrorOf<"POST", K>>;
89
99
  loading: boolean;
90
100
  pending: number;
91
101
  formData: FormData;
@@ -102,7 +112,7 @@ export declare function usePut<K extends keyof Methods["PUT"], T = Data<"PUT", K
102
112
  config?: Partial<Config<T, E>>
103
113
  ]): {
104
114
  data: Data<"PUT", K>;
105
- error: MutationError | ErrorOf<"PUT", K>;
115
+ error: WithMutationErrorHelpers<MutationError | ErrorOf<"PUT", K>>;
106
116
  loading: boolean;
107
117
  pending: number;
108
118
  formData: FormData;
@@ -119,7 +129,7 @@ export declare function usePatch<K extends keyof Methods["PATCH"], T = Data<"PAT
119
129
  config?: Partial<Config<T, E>>
120
130
  ]): {
121
131
  data: Data<"PATCH", K>;
122
- error: MutationError | ErrorOf<"PATCH", K>;
132
+ error: WithMutationErrorHelpers<MutationError | ErrorOf<"PATCH", K>>;
123
133
  loading: boolean;
124
134
  pending: number;
125
135
  formData: FormData;
@@ -136,7 +146,7 @@ export declare function useDelete<K extends keyof Methods["DELETE"], T = Data<"D
136
146
  config?: Partial<Config<T, E>>
137
147
  ]): {
138
148
  data: Data<"DELETE", K>;
139
- error: MutationError | ErrorOf<"DELETE", K>;
149
+ error: WithMutationErrorHelpers<MutationError | ErrorOf<"DELETE", K>>;
140
150
  loading: boolean;
141
151
  pending: number;
142
152
  formData: FormData;
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,15 @@ export interface Config<T> {
65
65
  * `suspense: false`.
66
66
  */
67
67
  suspense?: boolean;
68
+ /**
69
+ * Polls while it returns a delay in ms: after data lands, the query refetches
70
+ * that long later; `0` stops. `duration` is the delay it returned last (`0`
71
+ * at first), for backoff. It is read from the current render after every
72
+ * commit, so it can depend on props and state too
73
+ * (`(d) => (d.active || building ? 2000 : 0)`): a stopped poll restarts as
74
+ * soon as it returns a delay again, and a pending one is cancelled when it
75
+ * returns `0`. Keep it pure and cheap.
76
+ */
68
77
  refetchUntil?: (data: T, duration: number) => number;
69
78
  /**
70
79
  * A broadcast channel that keeps this query fresh: its events and resyncs
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { ApiRouterHandler } from "../http/ApiRouter";
2
+ import type { NestedPrettify, UnwrapPromise } from "../utils/type";
3
+ import type { RPC } from "./rpc";
4
+ import type { UrlParser } from "./types";
5
+ import type { QueryResource } from "./QueryResource";
6
+ type GetRPC = {
7
+ [K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
8
+ };
9
+ /** The data a `useQuery` of this path reads. */
10
+ type QueryData<P extends keyof GetRPC> = NestedPrettify<GetRPC[P] extends ApiRouterHandler<any, infer Data, any> ? UnwrapPromise<Data> : never>;
11
+ /**
12
+ * The cached query a write lands in: the `useMutate` target. `search` is one
13
+ * variant (the one a `useQuery` with that `search` reads), or a predicate
14
+ * over every variant the cache holds for the path. `params` are merged over
15
+ * the current route's, as `useQuery` merges them.
16
+ */
17
+ export type QueryTarget<P extends keyof GetRPC> = {
18
+ path: P;
19
+ params?: Partial<UrlParser<`${P & string}`>>;
20
+ search?: Record<string, any> | ((search: URLSearchParams) => boolean);
21
+ };
22
+ /**
23
+ * One entry of a mutation's `updates`: a query its answer (`T`) is written
24
+ * into, with no refetch. Without `data` the answer is written as is, which
25
+ * only type-checks when it is the path's data. `data` builds the next value
26
+ * from the answer and what is cached, and is skipped for a variant with
27
+ * nothing cached.
28
+ */
29
+ export type QueryUpdate<T> = {
30
+ [P in keyof GetRPC]: QueryTarget<P> & ([T] extends [QueryData<P>] ? {
31
+ data?: (answer: T, current: QueryData<P>) => QueryData<P>;
32
+ } : {
33
+ data: (answer: T, current: QueryData<P>) => QueryData<P>;
34
+ });
35
+ }[keyof GetRPC];
36
+ type Resolve = (key: string) => QueryResource;
37
+ /**
38
+ * Write into every variant `target` names. `next` is the value to write, or
39
+ * a function of the cached value; a function skips a variant with nothing
40
+ * cached. A value seeds a single variant that is not cached yet; a predicate
41
+ * only ever reaches variants that are.
42
+ */
43
+ export declare function writeQueryData(getResource: Resolve, routeParams: Record<string, any>, target: QueryTarget<any>, next: {
44
+ value: unknown;
45
+ } | {
46
+ update: (current: any) => unknown;
47
+ }): void;
48
+ /**
49
+ * Write a mutation's `updates` with its answer.
50
+ */
51
+ export declare function applyQueryUpdates(getResource: Resolve, routeParams: Record<string, any>, updates: ReadonlyArray<QueryUpdate<any>> | undefined, answer: unknown): void;
52
+ /**
53
+ * Returns a function that writes into any query's cache by path, with no
54
+ * refetch: for data the server already answered with. `useMutate` is the
55
+ * optimistic counterpart, which refetches to reconcile.
56
+ *
57
+ * ```ts
58
+ * const setQueryData = useSetQueryData();
59
+ * setQueryData({ path: "/pages/:pageId/assets", params: { pageId } }, assets);
60
+ * setQueryData({ path: "/todos", search: () => true }, (todos) => todos.slice(1));
61
+ * ```
62
+ *
63
+ * A value replaces the variant's data, and seeds it when nothing is cached
64
+ * yet. A function updates what is cached and skips a variant with nothing
65
+ * cached. A predicate `search` reaches every cached variant it accepts.
66
+ */
67
+ export declare function useSetQueryData(): <P extends keyof GetRPC>(target: QueryTarget<P>, next: QueryData<P> | ((current: QueryData<P>) => QueryData<P>)) => void;
68
+ export {};
69
+ //# sourceMappingURL=useSetQueryData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSetQueryData.d.ts","sourceRoot":"","sources":["../../client/useSetQueryData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,gDAAgD;AAChD,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI,cAAc,CACrD,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CACvF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI;IAChD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC;CACvE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GACjC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GACvB;QAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,GAC7D;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;CACpE,CAAC,MAAM,MAAM,CAAC,CAAC;AAEhB,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAA;CAAE,QAsBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EACpD,MAAM,EAAE,OAAO,QAWhB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,KAIL,CAAC,SAAS,MAAM,MAAM,UAClC,WAAW,CAAC,CAAC,CAAC,QAChB,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAanE"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import"../chunk-17dndh5z.js";function k(b){return b}function q(b){if((process.env.GEMI_REACT_COMPILER??"auto").toLowerCase()==="off")return!1;return b??!0}export{q as reactCompiler,k as defineConfig};
2
+ import"../chunk-89swy5aq.js";function k(b){return b}function q(b){if((process.env.GEMI_REACT_COMPILER??"auto").toLowerCase()==="off")return!1;return b??!0}export{q as reactCompiler,k as defineConfig};
3
3
 
4
4
  //# debugId=2F7F86887FCF6F1A64756E2164756E21
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{ba as c}from"../chunk-1qwhty9p.js";import{bb as f,cb as o}from"../chunk-fcqx2t0p.js";import{kc as A,nc as n,oc as u,yc as r}from"../chunk-rtawbqec.js";import"../chunk-675kzd7z.js";import"../chunk-92sk56n0.js";import{mh as g,qh as v}from"../chunk-v8v5qfnh.js";import{Bh as h}from"../chunk-2n4490pk.js";import"../chunk-96a1459v.js";import"../chunk-mqtfaqx5.js";import{ki as t}from"../chunk-pe46a5a5.js";import"../chunk-qycwjzsv.js";import"../chunk-mvkz22p4.js";import{oj as k}from"../chunk-rpyczdta.js";import"../chunk-zsvav1dk.js";import"../chunk-nnarmbjv.js";import{Ej as a}from"../chunk-nkzmk7v3.js";import"../chunk-17dndh5z.js";function E(){let z=Promise.resolve(),J=Promise.resolve(),Y=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=Y(process.stdout,Q)},stderr:(Q)=>{J=Y(process.stderr,Q)},flush:async()=>{await Promise.all([z,J])}}}function x(z){let J=z.writers??E();return{args:z.args,options:z.options,argv:z.argv,line:(Y="")=>J.stdout(`${Y}
2
+ import{ba as c}from"../chunk-mj4n5mar.js";import{bb as f,cb as o}from"../chunk-fcqx2t0p.js";import{_c as A,bd as n,cd as u,md as r}from"../chunk-0f0xxqhy.js";import"../chunk-t8kzaxaa.js";import"../chunk-b2pdqxj3.js";import{pi as g,ti as v}from"../chunk-rtb64x14.js";import{Ei as h}from"../chunk-8df7fn7f.js";import"../chunk-yffm8nxa.js";import"../chunk-0arss2xy.js";import{oj as t}from"../chunk-nv2t87c3.js";import"../chunk-kzk5r6v4.js";import"../chunk-v7nw1g2n.js";import{sk as k}from"../chunk-yg8se4vs.js";import"../chunk-84rbdyhe.js";import"../chunk-7nfprr9v.js";import{Jk as a}from"../chunk-9x0pgkns.js";import"../chunk-89swy5aq.js";function E(){let z=Promise.resolve(),J=Promise.resolve(),Y=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=Y(process.stdout,Q)},stderr:(Q)=>{J=Y(process.stderr,Q)},flush:async()=>{await Promise.all([z,J])}}}function x(z){let J=z.writers??E();return{args:z.args,options:z.options,argv:z.argv,line:(Y="")=>J.stdout(`${Y}
3
3
  `),error:(Y)=>J.stderr(`${Y}
4
4
  `),fail:(Y,Q=1)=>{throw new A(Y,Q)}}}import b from"path";var Gz=u("encryption:rotate").describe("Re-encrypt encrypted columns that are still under an older key").arg("model",{description:"The model to rotate. Omit to rotate every model with encrypted columns"}).option("batchSize",{type:"number",default:500,description:"Rows read and rewritten per batch"}).option("dryRun",{type:"boolean",description:"Count what would be re-encrypted, and write nothing"}).option("encryptPlaintext",{type:"boolean",description:"Also encrypt values that are not encrypted yet (a column just marked @gemi.encrypted)"}).handle(async({args:z,options:J,line:Y,fail:Q})=>{let G=z.model?[z.model]:[...new Set(h().map((B)=>B.split(".")[0]))],$=z.model?null:Jz();if(G.length===0&&!$){Y("No model has encrypted columns.");return}if($){let B=await $.rotateEncryption({dryRun:J.dryRun});Y(`OAuth connections: ${B.scanned} rows, ${B.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`)}let _=0;for(let B of G){let V=await c(B,{batchSize:J.batchSize,dryRun:J.dryRun,encryptPlaintext:J.encryptPlaintext});_+=V.plaintext,Y(`${V.model} (${V.fields.join(", ")}): ${V.scanned} rows, ${V.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`+(V.skipped>0?`, ${V.skipped} changed meanwhile (already current)`:"")+(V.plaintext>0?`, ${V.plaintext} not encrypted yet`:""))}if(_>0)Q(`${_} value${_===1?" is":"s are"} not encrypted. If the column was just marked @gemi.encrypted, run again with --encrypt-plaintext.`)});function Jz(){let z=k();if(!z.bound(v))return null;let J=z.make(v);if(Object.keys(J.providers).length===0)return null;let Y=J.store;return Y instanceof g?Y:null}var m=[Gz];function R(z){return z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}function Qz(z){let J=new Map,Y=new Map;for(let Q of z){J.set(R(Q.name),Q),J.set(Q.name,Q);let G="alias"in Q?Q.alias:void 0;if(G)Y.set(G,Q)}return{byName:J,byAlias:Y}}function l(z){if(z==="--")return!0;if(!z.startsWith("-"))return!1;if(z==="-")return!1;if(/^-(\d|\.\d)/.test(z))return!1;return!0}function p(z,J){let{byName:Y,byAlias:Q}=Qz(z.options),G=[],$=[],_=new Map,B=!Y.has("help"),V=!Q.has("h"),F=!1,N=!1,W=(X)=>G.push(`Unknown option ${X} for command "${z.commandName}".`),T=(X,Z)=>{if(Z==="--help"||Z==="-h")N=!0;G.push(Z===void 0?`Option ${X} needs a value.`:`Option ${X} needs a value, but the next token is ${JSON.stringify(Z)}, which is another option. If that really is the value, write ${X}=${Z}.`)},j=0;while(j<J.length){let X=J[j];if(X==="--"){$.push(...J.slice(j+1));break}if(X.startsWith("--")){let Z=X.slice(2),K=Z.indexOf("="),M=K===-1?Z:Z.slice(0,K),O=K===-1?void 0:Z.slice(K+1),P=Y.get(M),D=!1;if(!P&&M.startsWith("no-")){let S=Y.get(M.slice(3));if(S&&S.type==="boolean")P=S,D=!0}if(!P&&M==="help"&&B){F=!0,j+=1;continue}if(!P){W(`--${M}`),j+=1;continue}if(P.type==="boolean"){if(O!==void 0&&O!=="true"&&O!=="false")G.push(`Option --${R(P.name)} is a flag and takes no value, but got ${JSON.stringify(O)}.`);else{let S=O===void 0?!0:O==="true";_.set(P.name,D?!S:S)}j+=1;continue}if(O!==void 0){_.set(P.name,O),j+=1;continue}let L=J[j+1];if(L===void 0||l(L)){T(`--${R(P.name)}`,L),j+=1;continue}_.set(P.name,L),j+=2;continue}if(X.startsWith("-")&&X.length>1){let Z=X.slice(1),K=!1;for(let M=0;M<Z.length;M+=1){let O=Q.get(Z[M]);if(!O){if(Z[M]==="h"&&V){F=!0;continue}W(`-${Z[M]}`);break}if(O.type==="boolean"){_.set(O.name,!0);continue}let P=Z.slice(M+1),D=P.startsWith("=")?P.slice(1):P;if(D!==""){_.set(O.name,D);break}let L=J[j+1];if(L===void 0||l(L)){T(`-${O.alias}`,L);break}_.set(O.name,L),K=!0;break}j+=K?2:1;continue}$.push(X),j+=1}let H={},I=0;for(let X of z.args){if(X.variadic){let K=$.slice(I);if(I=$.length,H[X.name]=K,X.required&&K.length===0)G.push(`Missing required argument <${X.name}...>. Command "${z.commandName}" needs at least one.`);continue}let Z=$[I];if(I+=1,Z!==void 0){H[X.name]=Z;continue}if(X.default!==void 0){H[X.name]=X.default;continue}if(X.required)G.push(`Missing required argument <${X.name}>.`);H[X.name]=void 0}if(I<$.length){let X=$.slice(I);G.push(`Unexpected argument${X.length===1?"":"s"} ${X.map((Z)=>JSON.stringify(Z)).join(", ")}. Command "${z.commandName}" takes ${z.args.length} argument${z.args.length===1?"":"s"}.`)}let U={};for(let X of z.options){let Z=_.get(X.name);if(X.type==="boolean"){U[X.name]=Z===void 0?X.default??!1:Boolean(Z);continue}if(Z===void 0){if(X.default!==void 0)U[X.name]=X.default;else if(X.required)G.push(`Missing required option --${R(X.name)}.`),U[X.name]=void 0;else U[X.name]=void 0;continue}let K=String(Z);if(X.type==="number"){let M=Number(K);if(K.trim()===""||!Number.isFinite(M))G.push(`Option --${R(X.name)} expects a number, but got ${JSON.stringify(K)}.`),U[X.name]=void 0;else U[X.name]=M;continue}U[X.name]=K}let q=F&&!N;if(G.length>0)return{ok:!1,help:q,errors:G};return{ok:!0,help:q,args:H,options:U}}function C(z,J=" "){let Y=z.reduce((Q,[G])=>Math.max(Q,G.length),0);return z.map(([Q,G])=>G===""?`${J}${Q}`:`${J}${Q.padEnd(Y)} ${G}`)}function d(z){let J=z.variadic?`${z.name}...`:z.name;return z.required?`<${J}>`:`[${J}]`}function Xz(z){let J=(G)=>z.options.some(G),Y=J((G)=>G.name==="help"||R(G.name)==="help"),Q=J((G)=>("alias"in G)&&G.alias==="h");if(Y&&Q)return[];if(Y)return[["-h","Show this message"]];return[[`${Q?"":"-h, "}--help`,"Show this message"]]}function w(z){let J=[],Y=z.args.map(d).join(" "),Q=["gemi run",z.commandName,z.options.length>0?"[options]":"",Y].filter(Boolean).join(" ");if(J.push(`Usage: ${Q}`),z.description)J.push("",z.description);if(z.args.length>0)J.push("","Arguments:"),J.push(...C(z.args.map((G)=>{let $=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:""].filter(Boolean).join(" ");return[d(G),$]})));return J.push("","Options:"),J.push(...C([...z.options.map((G)=>{let $="alias"in G&&G.alias?`-${G.alias}, `:"",_=G.type==="boolean"?"":` <${G.type}>`,B=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:"","required"in G&&G.required?"(required)":""].filter(Boolean).join(" ");return[`${$}--${R(G.name)}${_}`,B]}),...Xz(z)])),J.join(`
5
5
  `)}function i(z){return["Provided by gemi:","",...C(z.map((J)=>[J.commandName,J.description]))].join(`
@@ -15,4 +15,4 @@ ${i(j)}`);return 0}let H=W.get(z.name)??j.find((Z)=>Z.commandName===z.name);if($
15
15
  ${Q.message}
16
16
  \`gemi run\` boots your application the way the server does, so it needs the Kernel. Run it from the root of a gemi project.`,{cause:Q})}if(typeof Y.default!=="function")throw new f(`${J} has no default export. gemi expects the Kernel subclass to be the default export of that file.`);return new Y.default}function s(z,J,Y,Q="returned"){if(z===void 0||z===null)return 0;if(typeof z==="number"&&Number.isInteger(z)&&z>=0&&z<=255)return z;let G=J?`Command "${J.commandName}"`:"The command";return Y(`${G} ${Q} ${JSON.stringify(z)}, which is not an exit `+"code \u2014 an exit code is an integer from 0 to 255. Treating this as a "+"failure."),1}var[Zz,..._z]=process.argv.slice(2),zz=E();e({rootDir:process.cwd(),name:Zz,argv:_z,writers:zz}).then(async(z)=>{await zz.flush(),process.exit(z)});
17
17
 
18
- //# debugId=95F2D888774BDDA964756E2164756E21
18
+ //# debugId=77C0D0EB1F1AE35064756E2164756E21
@@ -10,6 +10,6 @@
10
10
  "/**\n * The entry point `gemi run` spawns.\n *\n * Exposed through the exports map as `gemi/console/run` and resolved by the CLI\n * out of the *application's* `node_modules`, the same way `dev` and `start`\n * resolve `gemi/bun/preload`. That indirection is the point: the runner has to\n * be the application's copy of gemi, not the one bundled into `dist/bin/gemi.js`\n * — see the note at the top of `runner.ts`.\n *\n * Nothing but argv handling lives here, so that everything worth testing lives\n * in `runConsole`, which returns an exit code instead of taking one.\n */\nimport { processWriters } from \"./context\";\nimport { runConsole } from \"./runner\";\n\n// The tail is forwarded exactly as commander handed it over, `--` and all.\n// commander passes a `--` through as a literal operand (verified: `gemi run x --\n// --weird` arrives as `[\"--\", \"--weird\"]`), and `parse.ts` already treats a `--`\n// as \"everything after this is positional\". Stripping it here — which an earlier\n// draft did — consumed the escape hatch before the only thing that reads it,\n// leaving `-- --weird` reported as an unknown option and `-- --` the only way to\n// pass a flag-shaped value.\nconst [name, ...argv] = process.argv.slice(2);\n\nconst writers = processWriters();\n\n// `.then` rather than a top-level `await`, so this file typechecks under the\n// package's inherited `module: NodeNext` — the same TS1309 that keeps `bun/` out\n// of tsconfig.json's `include`. Bun runs it as ESM either way; this just avoids\n// buying a nested tsconfig for two lines.\nrunConsole({ rootDir: process.cwd(), name, argv, writers }).then(\n async (code) => {\n // Everything written has to reach the OS before the exit below discards it —\n // see `processWriters` for what that costs when it is skipped.\n await writers.flush();\n\n // Explicit, and not belt-and-braces. `kernel.destroy()` stops the scheduler,\n // but an open database pool, a Redis client or an unref'd timer will happily\n // hold the loop open after the work is done — a command that finishes and then\n // sits there, which is the failure `kernel/exit.test.ts` exists for and the\n // one `orm/context.test.ts` names by example.\n process.exit(code);\n },\n);\n"
11
11
  ],
12
12
  "mappings": "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",
13
- "debugId": "95F2D888774BDDA964756E2164756E21",
13
+ "debugId": "77C0D0EB1F1AE35064756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{pj as e,qj as o}from"../chunk-zsvav1dk.js";import"../chunk-17dndh5z.js";export{o as Container,e as BindingResolutionError};
2
+ import{tk as e,uk as o}from"../chunk-84rbdyhe.js";import"../chunk-89swy5aq.js";export{o as Container,e as BindingResolutionError};
3
3
 
4
- //# debugId=13DE2D2D6B5617AC64756E2164756E21
4
+ //# debugId=643E85B80D61BCE564756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "13DE2D2D6B5617AC64756E2164756E21",
7
+ "debugId": "643E85B80D61BCE564756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ea as N}from"../chunk-dxfhhw5h.js";import"../chunk-30xxc6r7.js";import"../chunk-s5jxc63j.js";import"../chunk-96a1459v.js";import"../chunk-pe46a5a5.js";import{Ci as j,Di as k,Fi as w,Gi as x,Hi as z,Ii as A,Ji as E,Ki as F,Li as G,Mi as H,Ni as I,Oi as J,Pi as K,Qi as L}from"../chunk-mvkz22p4.js";import"../chunk-17dndh5z.js";export{A as isSqlite,E as isMysqlFamily,z as inferDialect,j as defineDatabaseConfig,k as databaseConfigDefaults,w as UnknownDatabaseUrlError,H as UnknownConnectionError,I as ReservedConnectionNameError,x as MissingDatabaseUrlError,N as DatabaseServiceProvider,L as DatabaseManager,G as DEFAULT_CONNECTION,J as CrossConnectionTransactionError,K as Connection,F as AmbiguousSqlitePathError};
2
+ import{Ea as N}from"../chunk-5vvfcdpk.js";import"../chunk-1eb4p352.js";import"../chunk-1gd1ykgj.js";import"../chunk-yffm8nxa.js";import"../chunk-nv2t87c3.js";import{Gj as j,Hj as k,Jj as w,Kj as x,Lj as z,Mj as A,Nj as E,Oj as F,Pj as G,Qj as H,Rj as I,Sj as J,Tj as K,Uj as L}from"../chunk-v7nw1g2n.js";import"../chunk-89swy5aq.js";export{A as isSqlite,E as isMysqlFamily,z as inferDialect,j as defineDatabaseConfig,k as databaseConfigDefaults,w as UnknownDatabaseUrlError,H as UnknownConnectionError,I as ReservedConnectionNameError,x as MissingDatabaseUrlError,N as DatabaseServiceProvider,L as DatabaseManager,G as DEFAULT_CONNECTION,J as CrossConnectionTransactionError,K as Connection,F as AmbiguousSqlitePathError};
3
3
 
4
- //# debugId=F381755F8A5E082064756E2164756E21
4
+ //# debugId=109F82829CB9C03264756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "F381755F8A5E082064756E2164756E21",
7
+ "debugId": "109F82829CB9C03264756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import{dj as qS,ej as JS}from"../chunk-a3g7y70h.js";import{kj as $S}from"../chunk-h3p8qzft.js";import{oj as P}from"../chunk-rpyczdta.js";import"../chunk-zsvav1dk.js";import"../chunk-17dndh5z.js";import{render as s}from"jsx-email";import B from"process";import{Buffer as n}from"buffer";import r from"path";import{fileURLToPath as PS}from"url";import{promisify as yS}from"util";import o from"child_process";import wS,{constants as fS}from"fs/promises";import h from"process";import l,{constants as zS}from"fs/promises";import g from"process";import NS from"os";import W from"fs";import RS from"fs";import b from"fs";var F;function HS(){try{return b.statSync("/.dockerenv"),!0}catch{return!1}}function XS(){try{return b.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(F===void 0)F=HS()||XS();return F}var O,US=()=>{try{return RS.statSync("/run/.containerenv"),!0}catch{return!1}};function R(){if(O===void 0)O=US()||L();return O}var u=()=>{if(g.platform!=="linux")return!1;if(NS.release().toLowerCase().includes("microsoft")){if(R())return!1;return!0}try{if(W.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!R()}catch{}if(W.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||W.existsSync("/run/WSL"))return!R();return!1},H=g.env.__IS_WSL_TEST__?u:u();var ES=(()=>{let S;return async function(){if(S)return S;let q="/etc/wsl.conf",J=!1;try{await l.access(q,zS.F_OK),J=!0}catch{}if(!J)return"/mnt/";let K=await l.readFile(q,{encoding:"utf8"}),Q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(K);if(!Q)return"/mnt/";return S=Q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),MS=async()=>{return`${await ES()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},v=async()=>{if(H)return MS();return`${h.env.SYSTEMROOT||h.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function X($,S,q){let J=(K)=>Object.defineProperty($,S,{value:K,enumerable:!0,writable:!0});return Object.defineProperty($,S,{configurable:!0,enumerable:!0,get(){let K=q();return J(K),K},set(K){J(K)}}),$}import{promisify as jS}from"util";import j from"process";import{execFile as xS}from"child_process";import{promisify as _S}from"util";import kS from"process";import{execFile as DS}from"child_process";var FS=_S(DS);async function T(){if(kS.platform!=="darwin")throw Error("macOS only");let{stdout:$}=await FS("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),q=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec($)?.groups.id??"com.apple.Safari";if(q==="com.apple.safari")return"com.apple.Safari";return q}import LS from"process";import{promisify as OS}from"util";import{execFile as WS,execFileSync as H0}from"child_process";var vS=OS(WS);async function m($,{humanReadableOutput:S=!0,signal:q}={}){if(LS.platform!=="darwin")throw Error("macOS only");let J=S?[]:["-ss"],K={};if(q)K.signal=q;let{stdout:Q}=await vS("osascript",["-e",$,J],K);return Q.trim()}async function C($){return m(`tell application "Finder" to set app_path to application file id "${$}" as string
2
+ import{hk as qS,ik as JS}from"../chunk-v1eeh7a7.js";import{ok as $S}from"../chunk-mj7h1dgh.js";import{sk as P}from"../chunk-yg8se4vs.js";import"../chunk-84rbdyhe.js";import"../chunk-89swy5aq.js";import{render as s}from"jsx-email";import B from"process";import{Buffer as n}from"buffer";import r from"path";import{fileURLToPath as PS}from"url";import{promisify as yS}from"util";import o from"child_process";import wS,{constants as fS}from"fs/promises";import h from"process";import l,{constants as zS}from"fs/promises";import g from"process";import NS from"os";import W from"fs";import RS from"fs";import b from"fs";var F;function HS(){try{return b.statSync("/.dockerenv"),!0}catch{return!1}}function XS(){try{return b.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(F===void 0)F=HS()||XS();return F}var O,US=()=>{try{return RS.statSync("/run/.containerenv"),!0}catch{return!1}};function R(){if(O===void 0)O=US()||L();return O}var u=()=>{if(g.platform!=="linux")return!1;if(NS.release().toLowerCase().includes("microsoft")){if(R())return!1;return!0}try{if(W.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!R()}catch{}if(W.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||W.existsSync("/run/WSL"))return!R();return!1},H=g.env.__IS_WSL_TEST__?u:u();var ES=(()=>{let S;return async function(){if(S)return S;let q="/etc/wsl.conf",J=!1;try{await l.access(q,zS.F_OK),J=!0}catch{}if(!J)return"/mnt/";let K=await l.readFile(q,{encoding:"utf8"}),Q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(K);if(!Q)return"/mnt/";return S=Q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),MS=async()=>{return`${await ES()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},v=async()=>{if(H)return MS();return`${h.env.SYSTEMROOT||h.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function X($,S,q){let J=(K)=>Object.defineProperty($,S,{value:K,enumerable:!0,writable:!0});return Object.defineProperty($,S,{configurable:!0,enumerable:!0,get(){let K=q();return J(K),K},set(K){J(K)}}),$}import{promisify as jS}from"util";import j from"process";import{execFile as xS}from"child_process";import{promisify as _S}from"util";import kS from"process";import{execFile as DS}from"child_process";var FS=_S(DS);async function T(){if(kS.platform!=="darwin")throw Error("macOS only");let{stdout:$}=await FS("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),q=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec($)?.groups.id??"com.apple.Safari";if(q==="com.apple.safari")return"com.apple.Safari";return q}import LS from"process";import{promisify as OS}from"util";import{execFile as WS,execFileSync as H0}from"child_process";var vS=OS(WS);async function m($,{humanReadableOutput:S=!0,signal:q}={}){if(LS.platform!=="darwin")throw Error("macOS only");let J=S?[]:["-ss"],K={};if(q)K.signal=q;let{stdout:Q}=await vS("osascript",["-e",$,J],K);return Q.trim()}async function C($){return m(`tell application "Finder" to set app_path to application file id "${$}" as string
3
3
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as TS}from"util";import{execFile as CS}from"child_process";var IS=TS(CS),_={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},E0=new Map(Object.entries(_));class c extends Error{}async function I($=IS){let{stdout:S}=await $("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),q=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(S);if(!q)throw new c(`Cannot find Windows browser in stdout: ${JSON.stringify(S)}`);let{id:J}=q.groups,K=J.lastIndexOf("."),Q=J.lastIndexOf("-"),Z=K===-1?void 0:J.slice(0,K),V=Q===-1?void 0:J.slice(0,Q);return _[J]??_[Z]??_[V]??{name:J,id:J}}var BS=jS(xS),AS=($)=>$.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,(S)=>S.toUpperCase());async function x(){if(j.platform==="darwin"){let $=await T();return{name:await C($),id:$}}if(j.platform==="linux"){let{stdout:$}=await BS("xdg-mime",["query","default","x-scheme-handler/http"]),S=$.trim();return{name:AS(S.replace(/.desktop$/,"").replace("-"," ")),id:S}}if(j.platform==="win32")return I();throw Error("Only macOS, Linux, and Windows are supported")}var bS=yS(o.execFile),A=r.dirname(PS(import.meta.url)),d=r.join(A,"xdg-open"),{platform:N,arch:p}=B;async function uS(){let $=await v(),S=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,q=n.from(S,"utf16le").toString("base64"),{stdout:J}=await bS($,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",q],{encoding:"utf8"}),K=J.trim(),Q={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return Q[K]?{id:Q[K]}:{}}var t=async($,S)=>{let q;for(let J of $)try{return await S(J)}catch(K){q=K}throw q},k=async($)=>{if($={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...$},Array.isArray($.app))return t($.app,(V)=>k({...$,app:V}));let{name:S,arguments:q=[]}=$.app??{};if(q=[...q],Array.isArray(S))return t(S,(V)=>k({...$,app:{name:V,arguments:q}}));if(S==="browser"||S==="browserPrivate"){let V={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},Y={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},G=H?await uS():await x();if(G.id in V){let z=V[G.id];if(S==="browserPrivate")q.push(Y[z]);return k({...$,app:{name:U[z],arguments:q}})}throw Error(`${G.name} is not supported as a default browser`)}let J,K=[],Q={};if(N==="darwin"){if(J="open",$.wait)K.push("--wait-apps");if($.background)K.push("--background");if($.newInstance)K.push("--new");if(S)K.push("-a",S)}else if(N==="win32"||H&&!R()&&!S){if(J=await v(),K.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),!H)Q.windowsVerbatimArguments=!0;let V=["Start"];if($.wait)V.push("-Wait");if(S){if(V.push(`"\`"${S}\`""`),$.target)q.push($.target)}else if($.target)V.push(`"${$.target}"`);if(q.length>0)q=q.map((Y)=>`"\`"${Y}\`""`),V.push("-ArgumentList",q.join(","));$.target=n.from(V.join(" "),"utf16le").toString("base64")}else{if(S)J=S;else{let V=!A||A==="/",Y=!1;try{await wS.access(d,fS.X_OK),Y=!0}catch{}J=B.versions.electron??(N==="android"||V||!Y)?"xdg-open":d}if(q.length>0)K.push(...q);if(!$.wait)Q.stdio="ignore",Q.detached=!0}if(N==="darwin"&&q.length>0)K.push("--args",...q);if($.target)K.push($.target);let Z=o.spawn(J,K,Q);if($.wait)return new Promise((V,Y)=>{Z.once("error",Y),Z.once("close",(G)=>{if(!$.allowNonzeroExitCode&&G>0){Y(Error(`Exited with code ${G}`));return}V(Z)})});return Z.unref(),Z},gS=($,S)=>{if(typeof $!=="string")throw TypeError("Expected a `target`");return k({...S,target:$})};function i($){if(typeof $==="string"||Array.isArray($))return $;let{[p]:S}=$;if(!S)throw Error(`${p} is not supported`);return S}function D({[N]:$},{wsl:S}){if(S&&H)return i(S);if(!$)throw Error(`${N} is not supported`);return i($)}var U={};X(U,"chrome",()=>D({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));X(U,"brave",()=>D({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));X(U,"firefox",()=>D({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));X(U,"edge",()=>D({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));X(U,"browser",()=>"browser");X(U,"browserPrivate",()=>"browserPrivate");var a=gS;function hS($){return Array.from($,(S)=>{let q=S.charCodeAt(0);return S==="/"||S==="\\"||q<32||q===127?"_":S}).join("")}async function e($,S,q={}){let J=`${$}/${new Date().toISOString()}${hS(S.subject)}`,K={to:S.to,cc:S.cc,bcc:S.bcc,from:S.from,subject:S.subject,headers:S.headers??{},attachments:S.attachments.map((Q)=>({filename:Q.filename,bytes:Buffer.byteLength(Q.content)})),scheduledAt:S.scheduledAt??null,idempotencyKey:S.idempotencyKey??null,locale:q.locale??null,text:S.text??null};return await Bun.write(`${J}.json`,`${JSON.stringify(K,null,2)}
4
4
  `),await Bun.write(`${J}.html`,S.html),`${J}.html`}import{jsx as SS}from"react/jsx-runtime";class KS{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send($){let S=new this,q=P($S).defaultLocale,J=P(JS),{to:K=S.to,from:Q=S.from,subject:Z=typeof S.subject==="string"?S.subject:S.subject[$.locale||q],cc:V=S.cc,bcc:Y=S.bcc,attachments:G=S.attachments,data:z,headers:QS={}}=$,VS={...J.headers??{},...S.headers??{},...QS??{}},y=process.env.EMAIL_DEBUG==="true",E=y?"debug":J.driver?.provider??"custom",w=await J.filterRecipients(K);if(!w.length)return{id:null,provider:E,status:"skipped"};let[YS,ZS]=await Promise.all([S.render({...z,locale:$.locale}),S.renderText({...z,locale:$.locale})]),f={bcc:Y,cc:V,from:Q,subject:Z,to:w,attachments:G,html:YS,headers:VS,text:ZS,scheduledAt:$.scheduledAt,idempotencyKey:$.idempotencyKey};if(y){let GS=await e(`${process.env.ROOT_DIR}/.debug/emails`,f,{locale:$.locale});if(process.env.CI!=="true")await a(GS);return{id:`debug_${crypto.randomUUID()}`,provider:E,status:"debug"}}let M=await qS(J,f);return M.ok?{id:M.id,provider:E,status:"sent"}:{id:M.id,provider:E,status:"failed",error:M.error}}static async preview($){return await new this().render({...$.data,locale:$.locale})}async render($){let S=this.template;return await s(SS(S,{...$}))}async renderText($){let S=this.template;return await s(SS(S,{...$}),{plainText:!0})}}export{KS as Email};
5
5
 
6
- //# debugId=D7ABAB36802A7E3D64756E2164756E21
6
+ //# debugId=8BAE20E63D6C954F64756E2164756E21
@@ -17,6 +17,6 @@
17
17
  "import type { SendEmailParams } from \"../services/email/drivers/types\";\n\n/**\n * What `EMAIL_DEBUG=true` records about a send, next to the rendered HTML.\n *\n * The HTML alone can't say who a mail went to: plenty of templates render\n * nothing per recipient, so a test asserting \"this action mailed this user\"\n * could match another send with the same subject. The sidecar holds the\n * envelope the driver would have been handed, with `to` already filtered.\n */\nexport interface DebugEmailRecord {\n to: string[];\n cc: string[];\n bcc: string[];\n from: string;\n subject: string;\n headers: Record<string, string>;\n // Attachment bodies are left out: name and size are enough to assert on.\n attachments: Array<{ filename: string; bytes: number }>;\n scheduledAt: string | null;\n idempotencyKey: string | null;\n locale: string | null;\n text: string | null;\n}\n\n/**\n * A subject as a filename fragment. Path separators would write into a\n * subdirectory (or fail), and control characters aren't valid on every\n * filesystem. Everything else is kept, so a reader matching on the subject\n * substring keeps working.\n */\nexport function debugEmailFileSubject(subject: string) {\n return Array.from(subject, (char) => {\n const code = char.charCodeAt(0);\n return char === \"/\" || char === \"\\\\\" || code < 0x20 || code === 0x7f ? \"_\" : char;\n }).join(\"\");\n}\n\n/**\n * Writes `<dir>/<iso><subject>.json` and then `<dir>/<iso><subject>.html`, and\n * returns the HTML path. The sidecar goes first so a reader that sees the HTML\n * can rely on its envelope being there.\n */\nexport async function writeDebugEmail(\n dir: string,\n params: SendEmailParams,\n options: { locale?: string } = {},\n) {\n const base = `${dir}/${new Date().toISOString()}${debugEmailFileSubject(params.subject)}`;\n\n const record: DebugEmailRecord = {\n to: params.to,\n cc: params.cc,\n bcc: params.bcc,\n from: params.from,\n subject: params.subject,\n headers: params.headers ?? {},\n attachments: params.attachments.map((attachment) => ({\n filename: attachment.filename,\n bytes: Buffer.byteLength(attachment.content),\n })),\n scheduledAt: params.scheduledAt ?? null,\n idempotencyKey: params.idempotencyKey ?? null,\n locale: options.locale ?? null,\n text: params.text ?? null,\n };\n\n await Bun.write(`${base}.json`, `${JSON.stringify(record, null, 2)}\\n`);\n await Bun.write(`${base}.html`, params.html);\n\n return `${base}.html`;\n}\n"
18
18
  ],
19
19
  "mappings": "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",
20
- "debugId": "D7ABAB36802A7E3D64756E2164756E21",
20
+ "debugId": "8BAE20E63D6C954F64756E2164756E21",
21
21
  "names": []
22
22
  }
@@ -4,8 +4,10 @@ import { Facade } from "./Facade";
4
4
  export declare class Auth extends Facade {
5
5
  static getFacadeAccessor(): typeof AuthManager;
6
6
  /**
7
- * The signed-in user, or an `AuthenticationError` — a 401, and a redirect to
8
- * sign-in for a view.
7
+ * The signed-in user. **Never resolves to `null`:** with no user it throws
8
+ * `AuthenticationError` — a 401, and a redirect to sign-in for a view — which
9
+ * the framework answers for you. On a route that also serves signed-out
10
+ * visitors, use `Auth.userOrNull()` instead of catching it.
9
11
  *
10
12
  * Agrees with the `auth` middleware on who that is, so a route with it and a
11
13
  * route without it see the same user:
@@ -18,6 +20,20 @@ export declare class Auth extends Facade {
18
20
  * context for the rest of the request.
19
21
  */
20
22
  static user(): Promise<User>;
23
+ /**
24
+ * The signed-in user, or `null` for a signed-out visitor — the same lookup
25
+ * as `Auth.user()`, for a route that serves both:
26
+ *
27
+ * ```ts
28
+ * const user = await Auth.userOrNull();
29
+ * if (user) Redirect.to("/dashboard");
30
+ * ```
31
+ *
32
+ * Only "nobody is signed in" becomes `null`. An error from the lookup itself,
33
+ * such as the database being down, still throws, so an outage is not served
34
+ * as a signed-out page.
35
+ */
36
+ static userOrNull(): Promise<User | null>;
21
37
  /**
22
38
  * Where to send a user who has just signed in: the page they were turned
23
39
  * away from, which `AuthenticationMiddleware` put on the sign-in URL as
@@ -36,6 +52,17 @@ export declare class Auth extends Facade {
36
52
  static guard(fn: (user: User) => Promise<boolean> | boolean): Promise<void>;
37
53
  static guardSafe(fn: (user: User) => Promise<boolean> | boolean): Promise<boolean>;
38
54
  static authenticate(email: string): Promise<import("../auth/types").SessionWithUser>;
55
+ /**
56
+ * The OAuth sign-in providers that are on for this request, by name, in the
57
+ * order `auth.oauthProviders` declares them — what a sign-in page renders
58
+ * its "Continue with …" buttons from. A provider behind a `feature` that is
59
+ * off for this request is left out (#885).
60
+ *
61
+ * ```ts
62
+ * return { signInProviders: await Auth.oauthProviders() }; // ["google", "instagram"]
63
+ * ```
64
+ */
65
+ static oauthProviders(): Promise<string[]>;
39
66
  static createMagicLink(email: string): Promise<{
40
67
  user: User;
41
68
  email: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../facades/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,IAAK,SAAQ,MAAM;IAC9B,MAAM,CAAC,iBAAiB;IAIxB;;;;;;;;;;;;;OAaG;WACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;WAQhC,KAAK,CAChB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAC7C,OAAO,CAAC,IAAI,CAAC;WAcH,SAAS,CACpB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAC7C,OAAO,CAAC,OAAO,CAAC;WAYN,YAAY,CAAC,KAAK,EAAE,MAAM;WAK1B,eAAe,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;CAI3C"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../facades/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,IAAK,SAAQ,MAAM;IAC9B,MAAM,CAAC,iBAAiB;IAIxB;;;;;;;;;;;;;;;OAeG;WACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC;;;;;;;;;;;;OAYG;WACU,UAAU,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAc/C;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;WAQhC,KAAK,CAChB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAC7C,OAAO,CAAC,IAAI,CAAC;WAcH,SAAS,CACpB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAC7C,OAAO,CAAC,OAAO,CAAC;WAYN,YAAY,CAAC,KAAK,EAAE,MAAM;IAKvC;;;;;;;;;OASG;WACU,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAInC,eAAe,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;CAI3C"}
@@ -0,0 +1,36 @@
1
+ import { CacheManager, type CacheTtl, type TaggedCache } from "../services/cache/CacheManager";
2
+ import { Facade } from "./Facade";
3
+ /**
4
+ * The application's cache, configured by `app/config/cache.ts`: in this
5
+ * process's memory by default, in Redis with `store: "redis"`.
6
+ *
7
+ * ```ts
8
+ * const plan = await Cache.remember(`plan:${hash}`, "24h", () => planner.plan(input));
9
+ *
10
+ * await Cache.tags(`user:${user.id}`).set(`billing:${user.id}`, billing, "5m");
11
+ * await Cache.tags(`user:${user.id}`).flush();
12
+ * ```
13
+ *
14
+ * Values are JSON-encoded on every store. See `docs/cache.md`.
15
+ */
16
+ export declare class Cache extends Facade {
17
+ static getFacadeAccessor(): typeof CacheManager;
18
+ /** The value under `key`, or `undefined` on a miss. */
19
+ static get<T = unknown>(key: string): Promise<T | undefined>;
20
+ /** Whether a value is stored under `key`. */
21
+ static has(key: string): Promise<boolean>;
22
+ /** Stores `value` under `key` for `ttl` (the configured `ttl` when omitted; `null` for no expiry). */
23
+ static set(key: string, value: unknown, ttl?: CacheTtl): Promise<void>;
24
+ /** Removes `key`; resolves to whether there was a value under it. */
25
+ static delete(key: string): Promise<boolean>;
26
+ /** The value under `key`, removed from the cache. */
27
+ static pull<T = unknown>(key: string): Promise<T | undefined>;
28
+ /** The value under `key`, or else what `compute` resolves to, stored for `ttl`. */
29
+ static remember<T>(key: string, compute: () => T | Promise<T>): Promise<T>;
30
+ static remember<T>(key: string, ttl: CacheTtl | undefined, compute: () => T | Promise<T>): Promise<T>;
31
+ /** The cache scoped to `tags`, whose `flush()` drops every value written under them. */
32
+ static tags(...tags: (string | string[])[]): TaggedCache;
33
+ /** Removes everything in the store. */
34
+ static flush(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=Cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../facades/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,MAAM,CAAC,iBAAiB;IAIxB,uDAAuD;IACvD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI5D,6CAA6C;IAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzC,sGAAsG;IACtG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,qEAAqE;IACrE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,qDAAqD;IACrD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI7D,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,QAAQ,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC;IAYb,wFAAwF;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,WAAW;IAIxD,uCAAuC;IACvC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,4 +1,4 @@
1
- import { type ConsumeOptions, RateLimiter as RateLimiterManager } from "../services/rate-limiter/RateLimiter";
1
+ import { type ConsumeOptions, type RateLimitMessage, RateLimiter as RateLimiterManager } from "../services/rate-limiter/RateLimiter";
2
2
  import type { RateLimitResult } from "../services/rate-limiter/types";
3
3
  import { Facade } from "./Facade";
4
4
  /**
@@ -16,10 +16,25 @@ import { Facade } from "./Facade";
16
16
  * return { error: `Try again in ${Math.ceil(result.retryAfter / 1000)}s` };
17
17
  * }
18
18
  * ```
19
+ *
20
+ * To refuse the request instead, `enforce` throws the middleware's 429:
21
+ *
22
+ * ```ts
23
+ * await RateLimiter.enforce(`publish:${user.id}`, { limit: 10, window: 3600 },
24
+ * "You can publish 10 times an hour.");
25
+ * ```
19
26
  */
20
27
  export declare class RateLimiter extends Facade {
21
28
  static getFacadeAccessor(): typeof RateLimiterManager;
22
29
  /** Records one hit against `key` and reports whether it fits the budget. */
23
30
  static consume(key: string, options?: ConsumeOptions): Promise<RateLimitResult>;
31
+ /**
32
+ * Records one hit against `key`; over budget it throws
33
+ * `RateLimitExceededError`, a 429 with `Retry-After` that `isRateLimitError`
34
+ * recognises on the client, carrying `message` (default "Rate limit
35
+ * exceeded"). `message` may be a function of the result, whose `retryAfter`
36
+ * is in milliseconds. Within budget it returns the result.
37
+ */
38
+ static enforce(key: string, options?: ConsumeOptions, message?: RateLimitMessage): Promise<RateLimitResult>;
24
39
  }
25
40
  //# sourceMappingURL=RateLimiter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../facades/RateLimiter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,IAAI,kBAAkB,EAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,MAAM,CAAC,iBAAiB;IAIxB,4EAA4E;IAC5E,MAAM,CAAC,OAAO,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC;CAG5B"}
1
+ {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../facades/RateLimiter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,WAAW,IAAI,kBAAkB,EAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,MAAM,CAAC,iBAAiB;IAIxB,4EAA4E;IAC5E,MAAM,CAAC,OAAO,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC;IAI3B;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;CAG5B"}
@@ -1,13 +1,24 @@
1
1
  import type { UrlParser, ViewPaths } from "../client/types";
2
2
  import { type DomainTarget } from "../utils/domainUrl";
3
3
  export declare class Url {
4
+ /**
5
+ * The app's public origin, e.g. `https://example.com`: `HOST_NAME`, else
6
+ * `APP_URL`, trimmed and without a trailing `/`. For links that leave the
7
+ * app (emails, payment return URLs, webhooks you register):
8
+ * `${Url.origin()}/billing`.
9
+ *
10
+ * Read on every call, so `vi.stubEnv("HOST_NAME", ...)` applies at once.
11
+ * Throws when neither variable is set and no `fallback` is given, or when
12
+ * the value is not an absolute http(s) URL.
13
+ */
14
+ static origin(fallback?: string): string;
4
15
  static absolute<T extends ViewPaths>(key: T, ...args: UrlParser<T> extends Record<string, never> ? [] : [params: UrlParser<T>]): string;
5
16
  static relative<T extends ViewPaths>(key: T, ...args: UrlParser<T> extends Record<string, never> ? [] : [params: UrlParser<T>]): string;
6
17
  /**
7
18
  * An absolute URL on another `route.domains` host:
8
19
  * `Url.forDomain({ subdomain: "acme" }, "/projects/:id", { id })`. Inside a
9
20
  * request the protocol and port are the request's own; outside one — a job,
10
- * an email — they come from `HOST_NAME`.
21
+ * an email — they come from `Url.origin()` (`HOST_NAME`, else `APP_URL`).
11
22
  */
12
23
  static forDomain<T extends ViewPaths>(target: DomainTarget, key: T, ...args: UrlParser<T> extends Record<string, never> ? [] : [params: UrlParser<T>]): import("../utils/domainUrl").AbsoluteUrl;
13
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../facades/Url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5D,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElE,qBAAa,GAAG;IACd,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAK5B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAK5B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,SAAS,EAClC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAiB7B"}
1
+ {"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../facades/Url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5D,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElE,qBAAa,GAAG;IACd;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIxC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAK5B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAK5B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,SAAS,EAClC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC/C,EAAE,GACF,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAiB7B"}