gemi 0.86.1 → 0.88.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 (233) hide show
  1. package/dist/ai/Agent.d.ts +44 -2
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +5 -0
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/Schema.d.ts +102 -0
  6. package/dist/ai/Schema.d.ts.map +1 -1
  7. package/dist/ai/index.d.ts +3 -3
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js +12 -12
  10. package/dist/ai/index.js.map +5 -5
  11. package/dist/ai/signing.d.ts +34 -1
  12. package/dist/ai/signing.d.ts.map +1 -1
  13. package/dist/app/index.js +1 -1
  14. package/dist/auth/AuthController.d.ts +45 -3
  15. package/dist/auth/AuthController.d.ts.map +1 -1
  16. package/dist/auth/AuthManager.d.ts +42 -1
  17. package/dist/auth/AuthManager.d.ts.map +1 -1
  18. package/dist/auth/UserProvider.d.ts +18 -1
  19. package/dist/auth/UserProvider.d.ts.map +1 -1
  20. package/dist/auth/config.d.ts +109 -0
  21. package/dist/auth/config.d.ts.map +1 -1
  22. package/dist/auth/oneTimeCode.d.ts +99 -0
  23. package/dist/auth/oneTimeCode.d.ts.map +1 -0
  24. package/dist/auth/routes.d.ts +13 -0
  25. package/dist/auth/routes.d.ts.map +1 -1
  26. package/dist/auth/types.d.ts +8 -0
  27. package/dist/auth/types.d.ts.map +1 -1
  28. package/dist/bin/gemi.js +198 -39
  29. package/dist/bin/gemi.js.map +5 -4
  30. package/dist/bun/plugin.js +1 -1
  31. package/dist/bun/preload.js +1 -1
  32. package/dist/{chunk-swhyp0yw.js → chunk-0808z3mq.js} +2 -2
  33. package/dist/{chunk-swhyp0yw.js.map → chunk-0808z3mq.js.map} +1 -1
  34. package/dist/{chunk-d3jkypc7.js → chunk-0efykzjy.js} +3 -3
  35. package/dist/{chunk-d3jkypc7.js.map → chunk-0efykzjy.js.map} +1 -1
  36. package/dist/{chunk-zs90w6ke.js → chunk-16mnpn6c.js} +2 -2
  37. package/dist/{chunk-zs90w6ke.js.map → chunk-16mnpn6c.js.map} +1 -1
  38. package/dist/{chunk-1jcp8m8h.js → chunk-17nh5gfm.js} +2 -2
  39. package/dist/{chunk-1jcp8m8h.js.map → chunk-17nh5gfm.js.map} +1 -1
  40. package/dist/{chunk-mszy6cfw.js → chunk-3ph0aj0x.js} +2 -2
  41. package/dist/{chunk-mszy6cfw.js.map → chunk-3ph0aj0x.js.map} +1 -1
  42. package/dist/{chunk-qje4kdff.js → chunk-3rb5ht8v.js} +3 -3
  43. package/dist/{chunk-qje4kdff.js.map → chunk-3rb5ht8v.js.map} +1 -1
  44. package/dist/chunk-3w65ra1s.js +5 -0
  45. package/dist/{chunk-1yzdxv2a.js.map → chunk-3w65ra1s.js.map} +1 -1
  46. package/dist/{chunk-v8nf45gt.js → chunk-443dm19c.js} +2 -2
  47. package/dist/{chunk-v8nf45gt.js.map → chunk-443dm19c.js.map} +1 -1
  48. package/dist/{chunk-4ysar3ev.js → chunk-49v5xq8q.js} +2 -2
  49. package/dist/{chunk-4ysar3ev.js.map → chunk-49v5xq8q.js.map} +1 -1
  50. package/dist/chunk-4v4v5wkh.js +7 -0
  51. package/dist/chunk-4v4v5wkh.js.map +11 -0
  52. package/dist/{chunk-2yw23zhn.js → chunk-523t3bcz.js} +4 -4
  53. package/dist/{chunk-2yw23zhn.js.map → chunk-523t3bcz.js.map} +1 -1
  54. package/dist/{chunk-1yq1e6sb.js → chunk-56p9a7nx.js} +3 -3
  55. package/dist/{chunk-1yq1e6sb.js.map → chunk-56p9a7nx.js.map} +1 -1
  56. package/dist/{chunk-fbwe0agk.js → chunk-61rs7kxf.js} +2 -2
  57. package/dist/{chunk-fbwe0agk.js.map → chunk-61rs7kxf.js.map} +1 -1
  58. package/dist/{chunk-cbycz5z3.js → chunk-64z2zt41.js} +2 -2
  59. package/dist/{chunk-cbycz5z3.js.map → chunk-64z2zt41.js.map} +1 -1
  60. package/dist/{chunk-saqfc6vp.js → chunk-6dyt8w27.js} +4 -4
  61. package/dist/{chunk-saqfc6vp.js.map → chunk-6dyt8w27.js.map} +1 -1
  62. package/dist/{chunk-ha705bcz.js → chunk-6rc6yec4.js} +3 -3
  63. package/dist/{chunk-ha705bcz.js.map → chunk-6rc6yec4.js.map} +1 -1
  64. package/dist/{chunk-09sr33ff.js → chunk-6s6fj97j.js} +2 -2
  65. package/dist/{chunk-09sr33ff.js.map → chunk-6s6fj97j.js.map} +1 -1
  66. package/dist/{chunk-7nj2t2gm.js → chunk-6tt3ynm7.js} +2 -2
  67. package/dist/{chunk-7nj2t2gm.js.map → chunk-6tt3ynm7.js.map} +1 -1
  68. package/dist/{chunk-trdwxm5x.js → chunk-6y62ccam.js} +3 -3
  69. package/dist/{chunk-trdwxm5x.js.map → chunk-6y62ccam.js.map} +1 -1
  70. package/dist/{chunk-81v4c4b1.js → chunk-713fezaz.js} +2 -2
  71. package/dist/{chunk-81v4c4b1.js.map → chunk-713fezaz.js.map} +1 -1
  72. package/dist/{chunk-xckeyg3v.js → chunk-78gs7xvn.js} +2 -2
  73. package/dist/{chunk-xckeyg3v.js.map → chunk-78gs7xvn.js.map} +1 -1
  74. package/dist/{chunk-ndat0nf0.js → chunk-7r78cdyd.js} +2 -2
  75. package/dist/{chunk-ndat0nf0.js.map → chunk-7r78cdyd.js.map} +1 -1
  76. package/dist/chunk-86p57tjw.js +5 -0
  77. package/dist/{chunk-hmh79ezn.js.map → chunk-86p57tjw.js.map} +3 -6
  78. package/dist/{chunk-ct7wxm98.js → chunk-8dpnghvk.js} +2 -2
  79. package/dist/{chunk-ct7wxm98.js.map → chunk-8dpnghvk.js.map} +1 -1
  80. package/dist/{chunk-zf4r4kat.js → chunk-8pesk2wm.js} +2 -2
  81. package/dist/{chunk-zf4r4kat.js.map → chunk-8pesk2wm.js.map} +1 -1
  82. package/dist/{chunk-8gexb1gt.js → chunk-8r7xhy1g.js} +2 -2
  83. package/dist/{chunk-8gexb1gt.js.map → chunk-8r7xhy1g.js.map} +1 -1
  84. package/dist/{chunk-gx0x772p.js → chunk-8y08amzz.js} +2 -2
  85. package/dist/{chunk-gx0x772p.js.map → chunk-8y08amzz.js.map} +1 -1
  86. package/dist/{chunk-y7qnx8vm.js → chunk-9c1zx81w.js} +2 -2
  87. package/dist/{chunk-y7qnx8vm.js.map → chunk-9c1zx81w.js.map} +1 -1
  88. package/dist/{chunk-7c33ngqs.js → chunk-ak3yy4za.js} +2 -2
  89. package/dist/{chunk-7c33ngqs.js.map → chunk-ak3yy4za.js.map} +1 -1
  90. package/dist/{chunk-z6cgama8.js → chunk-aqtf14yz.js} +2 -2
  91. package/dist/{chunk-z6cgama8.js.map → chunk-aqtf14yz.js.map} +1 -1
  92. package/dist/{chunk-z4k18gnp.js → chunk-bsbn7qtd.js} +2 -2
  93. package/dist/{chunk-z4k18gnp.js.map → chunk-bsbn7qtd.js.map} +1 -1
  94. package/dist/{chunk-2gdhcswa.js → chunk-d1r618e8.js} +1 -1
  95. package/dist/{chunk-v4ngf77f.js → chunk-d5h5v4rj.js} +2 -2
  96. package/dist/{chunk-v4ngf77f.js.map → chunk-d5h5v4rj.js.map} +1 -1
  97. package/dist/{chunk-7n5775qx.js → chunk-e3fnjj0h.js} +2 -2
  98. package/dist/{chunk-7n5775qx.js.map → chunk-e3fnjj0h.js.map} +1 -1
  99. package/dist/chunk-efzvxta5.js +24 -0
  100. package/dist/{chunk-gs8x0k68.js.map → chunk-efzvxta5.js.map} +6 -5
  101. package/dist/{chunk-sjckrbr2.js → chunk-fkt43zw1.js} +2 -2
  102. package/dist/{chunk-sjckrbr2.js.map → chunk-fkt43zw1.js.map} +1 -1
  103. package/dist/{chunk-p7r3ecpk.js → chunk-g2bsmw1m.js} +2 -2
  104. package/dist/{chunk-9tsw1bmt.js.map → chunk-g2bsmw1m.js.map} +1 -1
  105. package/dist/{chunk-1w5a11cd.js → chunk-gzfat1x1.js} +2 -2
  106. package/dist/{chunk-1w5a11cd.js.map → chunk-gzfat1x1.js.map} +1 -1
  107. package/dist/{chunk-wwzg4dmy.js → chunk-hnbj9jx2.js} +3 -3
  108. package/dist/{chunk-wwzg4dmy.js.map → chunk-hnbj9jx2.js.map} +1 -1
  109. package/dist/{chunk-dadygfkf.js → chunk-j0fgc58k.js} +2 -2
  110. package/dist/{chunk-dadygfkf.js.map → chunk-j0fgc58k.js.map} +1 -1
  111. package/dist/{chunk-6nnq3rjj.js → chunk-j3y6pdqp.js} +2 -2
  112. package/dist/{chunk-6nnq3rjj.js.map → chunk-j3y6pdqp.js.map} +1 -1
  113. package/dist/{chunk-v2hvnxsf.js → chunk-jfgjscq6.js} +2 -2
  114. package/dist/{chunk-v2hvnxsf.js.map → chunk-jfgjscq6.js.map} +1 -1
  115. package/dist/{chunk-k5j65f2c.js → chunk-ngq4n2b3.js} +2 -2
  116. package/dist/{chunk-k5j65f2c.js.map → chunk-ngq4n2b3.js.map} +1 -1
  117. package/dist/{chunk-kmsrzbx1.js → chunk-pqydkns8.js} +2 -2
  118. package/dist/{chunk-kmsrzbx1.js.map → chunk-pqydkns8.js.map} +1 -1
  119. package/dist/{chunk-pzwyg474.js → chunk-pw95y0fx.js} +2 -2
  120. package/dist/{chunk-pzwyg474.js.map → chunk-pw95y0fx.js.map} +1 -1
  121. package/dist/{chunk-9tv5j3b2.js → chunk-pwaftx6n.js} +3 -3
  122. package/dist/{chunk-9tv5j3b2.js.map → chunk-pwaftx6n.js.map} +1 -1
  123. package/dist/{chunk-p0m3qgs5.js → chunk-q6ydpt33.js} +2 -2
  124. package/dist/{chunk-p0m3qgs5.js.map → chunk-q6ydpt33.js.map} +1 -1
  125. package/dist/{chunk-81k26w39.js → chunk-r1sj312m.js} +2 -2
  126. package/dist/{chunk-81k26w39.js.map → chunk-r1sj312m.js.map} +1 -1
  127. package/dist/{chunk-55x9kkdt.js → chunk-r78aqvne.js} +2 -2
  128. package/dist/{chunk-55x9kkdt.js.map → chunk-r78aqvne.js.map} +1 -1
  129. package/dist/{chunk-1b5s4w5f.js → chunk-r9qzgvpx.js} +2 -2
  130. package/dist/{chunk-1b5s4w5f.js.map → chunk-r9qzgvpx.js.map} +1 -1
  131. package/dist/{chunk-174jkg6d.js → chunk-rhe7s1fm.js} +3 -3
  132. package/dist/{chunk-174jkg6d.js.map → chunk-rhe7s1fm.js.map} +1 -1
  133. package/dist/{chunk-vwp1g8wh.js → chunk-rp0reqjn.js} +2 -2
  134. package/dist/{chunk-vwp1g8wh.js.map → chunk-rp0reqjn.js.map} +1 -1
  135. package/dist/{chunk-cfykfnqx.js → chunk-rw0t90pf.js} +2 -2
  136. package/dist/{chunk-cfykfnqx.js.map → chunk-rw0t90pf.js.map} +1 -1
  137. package/dist/{chunk-mk8m3ffx.js → chunk-s72y1w84.js} +2 -2
  138. package/dist/{chunk-mk8m3ffx.js.map → chunk-s72y1w84.js.map} +1 -1
  139. package/dist/{chunk-9tsw1bmt.js → chunk-t93t317r.js} +2 -2
  140. package/dist/{chunk-p7r3ecpk.js.map → chunk-t93t317r.js.map} +1 -1
  141. package/dist/{chunk-dwqh79e5.js → chunk-ttckhvew.js} +2 -2
  142. package/dist/{chunk-dwqh79e5.js.map → chunk-ttckhvew.js.map} +1 -1
  143. package/dist/{chunk-rdnm6rem.js → chunk-whjhrz97.js} +2 -2
  144. package/dist/{chunk-rdnm6rem.js.map → chunk-whjhrz97.js.map} +1 -1
  145. package/dist/{chunk-sejnmn1q.js → chunk-x85x83pa.js} +1 -1
  146. package/dist/{chunk-s046a984.js → chunk-xc90ycw2.js} +2 -2
  147. package/dist/{chunk-s046a984.js.map → chunk-xc90ycw2.js.map} +1 -1
  148. package/dist/{chunk-jhe0t7yj.js → chunk-xqyx8kzr.js} +2 -2
  149. package/dist/{chunk-jhe0t7yj.js.map → chunk-xqyx8kzr.js.map} +2 -2
  150. package/dist/{chunk-c3gzpjba.js → chunk-yafxbmy3.js} +1 -1
  151. package/dist/{chunk-pmmrhak1.js → chunk-yc3n6zhr.js} +3 -3
  152. package/dist/{chunk-pmmrhak1.js.map → chunk-yc3n6zhr.js.map} +1 -1
  153. package/dist/chunk-ymgehegb.js +17 -0
  154. package/dist/{chunk-tag4fdmj.js.map → chunk-ymgehegb.js.map} +12 -8
  155. package/dist/{chunk-m7y8d3k7.js → chunk-zf8bgrnj.js} +2 -2
  156. package/dist/{chunk-m7y8d3k7.js.map → chunk-zf8bgrnj.js.map} +1 -1
  157. package/dist/{chunk-fc2je244.js → chunk-zn5bqe6m.js} +3 -3
  158. package/dist/{chunk-fc2je244.js.map → chunk-zn5bqe6m.js.map} +1 -1
  159. package/dist/{chunk-4zj05vry.js → chunk-ztzd90gp.js} +2 -2
  160. package/dist/{chunk-4zj05vry.js.map → chunk-ztzd90gp.js.map} +1 -1
  161. package/dist/chunks/{ThemeProvider-D1kDfCwY.js → ThemeProvider-z_MW40tl.js} +126 -6
  162. package/dist/chunks/ThemeProvider-z_MW40tl.js.map +1 -0
  163. package/dist/client/ClientRouter.d.ts.map +1 -1
  164. package/dist/client/ClientRouterContext.d.ts.map +1 -1
  165. package/dist/client/ComponentContext.d.ts +8 -1
  166. package/dist/client/ComponentContext.d.ts.map +1 -1
  167. package/dist/client/MutationError.d.ts +4 -4
  168. package/dist/client/auth/useEmailCode.d.ts +36 -0
  169. package/dist/client/auth/useEmailCode.d.ts.map +1 -0
  170. package/dist/client/chunkLoadRecovery.d.ts +96 -0
  171. package/dist/client/chunkLoadRecovery.d.ts.map +1 -0
  172. package/dist/client/index.d.ts +4 -0
  173. package/dist/client/index.d.ts.map +1 -1
  174. package/dist/client/index.js +53 -4
  175. package/dist/client/index.js.map +1 -1
  176. package/dist/client/init.d.ts +9 -0
  177. package/dist/client/init.d.ts.map +1 -1
  178. package/dist/config/index.d.ts +12 -0
  179. package/dist/config/index.d.ts.map +1 -1
  180. package/dist/config/index.js +1 -1
  181. package/dist/config/index.js.map +2 -2
  182. package/dist/console/run.js +2 -2
  183. package/dist/console/run.js.map +1 -1
  184. package/dist/container/index.js +2 -2
  185. package/dist/container/index.js.map +1 -1
  186. package/dist/database/index.js +2 -2
  187. package/dist/database/index.js.map +1 -1
  188. package/dist/email/index.js +2 -2
  189. package/dist/email/index.js.map +1 -1
  190. package/dist/facades/index.js +2 -2
  191. package/dist/facades/index.js.map +1 -1
  192. package/dist/foundation/index.js +2 -2
  193. package/dist/foundation/index.js.map +1 -1
  194. package/dist/http/Error.d.ts +2 -2
  195. package/dist/http/index.js +2 -2
  196. package/dist/http/index.js.map +1 -1
  197. package/dist/i18n/dictionaryRuntime.js +2 -2
  198. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  199. package/dist/i18n/index.js +2 -2
  200. package/dist/i18n/index.js.map +1 -1
  201. package/dist/kernel/index.d.ts +2 -0
  202. package/dist/kernel/index.d.ts.map +1 -1
  203. package/dist/kernel/index.js +3 -3
  204. package/dist/kernel/index.js.map +2 -2
  205. package/dist/orm/index.js +3 -3
  206. package/dist/orm/index.js.map +1 -1
  207. package/dist/server/forwardedFor.d.ts +1 -1
  208. package/dist/server/index.js +2 -2
  209. package/dist/server/index.js.map +1 -1
  210. package/dist/server/staticAssetMiss.d.ts +7 -0
  211. package/dist/server/staticAssetMiss.d.ts.map +1 -1
  212. package/dist/services/index.d.ts +1 -1
  213. package/dist/services/index.d.ts.map +1 -1
  214. package/dist/services/index.js +3 -3
  215. package/dist/services/index.js.map +1 -1
  216. package/dist/services/queue/work.js +2 -2
  217. package/dist/services/queue/work.js.map +1 -1
  218. package/dist/services/rate-limiter/drivers/InMemoryRateLimiterDriver.d.ts +10 -1
  219. package/dist/services/rate-limiter/drivers/InMemoryRateLimiterDriver.d.ts.map +1 -1
  220. package/dist/support/index.js +2 -2
  221. package/dist/support/index.js.map +1 -1
  222. package/dist/testing/index.js +1 -1
  223. package/package.json +1 -1
  224. package/dist/chunk-1yzdxv2a.js +0 -5
  225. package/dist/chunk-gs8x0k68.js +0 -24
  226. package/dist/chunk-hmh79ezn.js +0 -5
  227. package/dist/chunk-tag4fdmj.js +0 -17
  228. package/dist/chunk-w312e9nx.js +0 -5
  229. package/dist/chunk-w312e9nx.js.map +0 -11
  230. package/dist/chunks/ThemeProvider-D1kDfCwY.js.map +0 -1
  231. /package/dist/{chunk-2gdhcswa.js.map → chunk-d1r618e8.js.map} +0 -0
  232. /package/dist/{chunk-sejnmn1q.js.map → chunk-x85x83pa.js.map} +0 -0
  233. /package/dist/{chunk-c3gzpjba.js.map → chunk-yafxbmy3.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../client/ClientRouter.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAqB,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAK/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C,OAAO,EAA6C,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;KACrC;CACF;AA8FD,eAAO,MAAM,IAAI,8CACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,6CA0CrF,CAAC;AAkOF,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxD,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,iEAAiE;IACjE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,4CA6CA,CAAC"}
1
+ {"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../client/ClientRouter.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAqB,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAK/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C,OAAO,EAA6C,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;KACrC;CACF;AA8FD,eAAO,MAAM,IAAI,8CACP;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,6CA0CrF,CAAC;AAsOF,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxD,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,iEAAiE;IACjE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,4CA6CA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientRouterContext.d.ts","sourceRoot":"","sources":["../../client/ClientRouterContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientRouterContext.d.ts","sourceRoot":"","sources":["../../client/ClientRouterContext.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import { lazy, type PropsWithChildren } from "react";
2
- export declare function loadViewModule(name: string): Promise<any>;
2
+ /**
3
+ * Why a view chunk is being loaded. A `prefetch` that fails is left alone —
4
+ * nobody is waiting on it, and reloading the page under a hovered link would
5
+ * be the worst way to find out. The `navigation` or `hydration` that needs the
6
+ * same chunk fails the same way a moment later and recovers then.
7
+ */
8
+ export type ViewModulePurpose = "navigation" | "hydration" | "prefetch";
9
+ export declare function loadViewModule(name: string, purpose?: ViewModulePurpose): Promise<any>;
3
10
  export declare function subscribeViewModules(listener: () => void): () => void;
4
11
  export declare function getViewModule(name: string): Record<string, any>;
5
12
  declare let viewImportMap: Record<string, ReturnType<typeof lazy>> | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentContext.d.ts","sourceRoot":"","sources":["../../client/ComponentContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAW,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AA8B7E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAuCzD;AAcD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,cAKxD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,uBAEzC;AAED,QAAA,IAAI,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAW,CAAC;AAqBzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,OAAO,CAY9B,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,iBAAiB,CAAC;IACvB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC/C,CAAC,4CAiBH,CAAC"}
1
+ {"version":3,"file":"ComponentContext.d.ts","sourceRoot":"","sources":["../../client/ComponentContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAW,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AA+B7E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAExE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAgC,GACxC,OAAO,CAAC,GAAG,CAAC,CAmDd;AAcD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,cAKxD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,uBAEzC;AAED,QAAA,IAAI,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAW,CAAC;AAqBzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,OAAO,CAY9B,CAAC;AAaxB,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,iBAAiB,CAAC;IACvB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC/C,CAAC,4CAiBH,CAAC"}
@@ -11,7 +11,7 @@ import { type RefusalKind } from "../http/refusal";
11
11
  * member by member, read off the server's error payloads and the client's
12
12
  * fetch code (issue #626).
13
13
  *
14
- * Since 0.85 every refusal is an object with a `kind`, its `message` and the
14
+ * Since 0.88 every refusal is an object with a `kind`, its `message` and the
15
15
  * `status` it came with (issue #673). Most refusals were a bare string before,
16
16
  * which carried no status, so a refusal thrown with a message of its own could
17
17
  * not be told apart from any other string. A server older than 0.85 still sends
@@ -58,7 +58,7 @@ export interface MutationRefusal<K extends MutationRefusalKind = MutationRefusal
58
58
  }
59
59
  /**
60
60
  * @deprecated A `{ message }` body is wrapped into a `MutationRefusal` or
61
- * `MutationFormError` since 0.85, and `MutationError` no longer includes this.
61
+ * `MutationFormError` since 0.88, and `MutationError` no longer includes this.
62
62
  */
63
63
  export interface MutationMessageError {
64
64
  kind?: undefined;
@@ -75,7 +75,7 @@ export interface MutationMessageError {
75
75
  * JSON (a proxy's HTML error page, say). A throw from an `onSuccess` of
76
76
  * yours is reported through `onError` as well, as whatever it threw.
77
77
  *
78
- * Never a string since 0.85. A cancelled request is not an error: `onCanceled`
78
+ * Never a string since 0.88. A cancelled request is not an error: `onCanceled`
79
79
  * runs and `error` stays `null`. A route that answers an error body of its own
80
80
  * shape is outside this type: a body with an `error` field
81
81
  * (`HttpResponse.json({ error }, { status: 409 })`) hands over that field, as
@@ -95,7 +95,7 @@ export type MutationErrorKind = "validation" | "form" | "authentication" | "perm
95
95
  * whole. A body with no content (`null`) becomes a refusal naming the status.
96
96
  *
97
97
  * What is handed over carries `status`, and a `kind` when it has a `message`:
98
- * a bare string, which servers before 0.85 sent for most refusals, becomes
98
+ * a bare string, which servers before 0.88 sent for most refusals, becomes
99
99
  * `{ kind, message, status }`, and so does a `{ message }` without a kind.
100
100
  *
101
101
  * @internal
@@ -0,0 +1,36 @@
1
+ interface UseEmailCodeArgs {
2
+ /** After `verify` signs in. `isNewUser` is true when the account was just created. */
3
+ onSuccess?: (result: {
4
+ session: any;
5
+ isNewUser: boolean;
6
+ }) => void;
7
+ }
8
+ /**
9
+ * Passwordless sign-up-or-sign-in with a one-time email code, in place — no
10
+ * redirect, so it fits a dialog (#708). Needs `auth.emailCode.enabled`.
11
+ *
12
+ * ```tsx
13
+ * const { request, verify, isPending, error } = useEmailCode();
14
+ * await request(email); // always { ok: true }
15
+ * const r = await verify(email, code); // { session, isNewUser } or undefined
16
+ * ```
17
+ *
18
+ * `error` is the last refusal: a `validation_error` on `email` or `code`
19
+ * (`invalid_code`, `too_many_attempts`), or a 429 `rate_limit`. A successful
20
+ * `verify` refreshes `useUser()`.
21
+ */
22
+ export declare function useEmailCode(args?: UseEmailCodeArgs): {
23
+ request: (email: string) => Promise<{
24
+ ok: true;
25
+ }>;
26
+ verify: (email: string, code: string, extra?: {
27
+ name?: string;
28
+ }) => Promise<{
29
+ session: import("../../auth/types").SessionWithUser;
30
+ isNewUser: boolean;
31
+ }>;
32
+ isPending: boolean;
33
+ error: import("gemi/client").MutationError;
34
+ };
35
+ export {};
36
+ //# sourceMappingURL=useEmailCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEmailCode.d.ts","sourceRoot":"","sources":["../../../client/auth/useEmailCode.ts"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,sFAAsF;IACtF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,gBAAqB;qBAoBnC,MAAM;;;oBACP,MAAM,QAAQ,MAAM,UAAS;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;EAKjE"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Recovery from a chunk that will not load — almost always a document from an
3
+ * earlier release asking for a chunk the server it reached no longer has
4
+ * (#548). The page cannot continue with the module it wanted, and a full load
5
+ * of the URL it was heading to gets it the current release's document.
6
+ *
7
+ * One reload, guarded: a reload that lands on the same failure (a chunk that is
8
+ * genuinely missing, a proxy that keeps refusing it) must not become a loop. A
9
+ * `sessionStorage` marker with a timestamp survives the reload it guards, so a
10
+ * second failure inside the cooldown is left to the route's error boundary.
11
+ *
12
+ * No DOM or React import at module scope: the server's reload stub
13
+ * (`server/staticAssetMiss.ts`) embeds the same guard as a script.
14
+ */
15
+ /** The `sessionStorage` key the guard lives under, shared with the reload stub. */
16
+ export declare const CHUNK_RELOAD_MARKER = "gemi:chunk-reload";
17
+ /** How long after one recovery reload another is refused. */
18
+ export declare const DEFAULT_CHUNK_RELOAD_COOLDOWN_MS = 30000;
19
+ /**
20
+ * Where the failure surfaced: a route's view chunk during a client-side
21
+ * navigation or hydration, a `vite:preloadError` (a lazy `import()` in app
22
+ * code, through Vite's preload helper), or an app calling
23
+ * `recoverFromChunkLoadError` from its own error boundary.
24
+ */
25
+ export type ChunkLoadErrorSource = "navigation" | "hydration" | "preload" | "app";
26
+ /**
27
+ * Why gemi will not reload, or `null` when it will:
28
+ * - `cooldown`: it already reloaded for a chunk failure within `cooldownMs`.
29
+ * - `offline`: `navigator.onLine` is false — a reload would only fail harder.
30
+ * - `storage`: `sessionStorage` cannot be read or written, so the guard cannot
31
+ * survive the reload and the loop it prevents could not be ruled out.
32
+ */
33
+ export type ChunkReloadBlock = "cooldown" | "offline" | "storage" | null;
34
+ export interface ChunkLoadErrorContext {
35
+ error: unknown;
36
+ /** The URL the reload goes to: the page being navigated to. */
37
+ url: string;
38
+ source: ChunkLoadErrorSource;
39
+ /** Why gemi will not reload, or `null` when it is about to. */
40
+ blocked: ChunkReloadBlock;
41
+ }
42
+ export interface ChunkLoadRecoveryOptions {
43
+ /** Default 30 000 ms. */
44
+ cooldownMs?: number;
45
+ /**
46
+ * Called for every chunk load failure gemi sees, before it reloads — the
47
+ * place to report it, or to veto the reload (unsaved input, a page that
48
+ * would rather show its own "a new version is available" prompt). Return
49
+ * `false` to skip the reload; anything else lets gemi proceed. It is called
50
+ * when the reload is blocked too, with `blocked` saying why.
51
+ */
52
+ onChunkLoadError?: (context: ChunkLoadErrorContext) => boolean | void;
53
+ }
54
+ /**
55
+ * Sets how gemi recovers from a failed chunk. `false` turns recovery off: the
56
+ * failure goes to the route's error boundary as it did before. `init` calls
57
+ * this with its `chunkLoadRecovery` option.
58
+ */
59
+ export declare function configureChunkLoadRecovery(next: ChunkLoadRecoveryOptions | false | undefined): void;
60
+ /** For tests: back to the defaults, with no reload in flight. */
61
+ export declare function __resetChunkLoadRecovery(): void;
62
+ /**
63
+ * Whether `error` is a module that failed to load rather than one that loaded
64
+ * and threw. Each engine words it differently:
65
+ *
66
+ * - Chromium: `Failed to fetch dynamically imported module: <url>`
67
+ * - Firefox: `error loading dynamically imported module: <url>`
68
+ * - Safari: `Importing a module script failed.`, and on iOS 16
69
+ * `Importing module '<specifier>' is not found.` (folio#2117)
70
+ * - Vite's preload helper: `Unable to preload CSS for <url>`
71
+ *
72
+ * A view that throws while evaluating is not one of these, and reloading
73
+ * would only hide it.
74
+ */
75
+ export declare function isChunkLoadError(error: unknown): boolean;
76
+ /**
77
+ * Reloads the page onto `url` once for a chunk that failed to load, unless the
78
+ * guard or the app's `onChunkLoadError` says not to. Returns whether a reload
79
+ * was started.
80
+ *
81
+ * Errors that are not chunk failures are ignored (`false`), so an app's error
82
+ * boundary can pass everything it catches here.
83
+ */
84
+ export declare function recoverFromChunkLoadError(error: unknown, { source, url }?: {
85
+ source?: ChunkLoadErrorSource;
86
+ url?: string;
87
+ }): boolean;
88
+ /**
89
+ * The same guard as a classic script body, for the module the server sends in
90
+ * place of a chunk it does not have. It reloads once per cooldown; inside the
91
+ * cooldown (or with no storage) it throws an error `isChunkLoadError`
92
+ * recognises, so the importing page's own recovery and error boundary see the
93
+ * failure instead of a module that silently has no exports.
94
+ */
95
+ export declare function chunkReloadStubScript(pathname: string, cooldownMs?: number): string;
96
+ //# sourceMappingURL=chunkLoadRecovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkLoadRecovery.d.ts","sourceRoot":"","sources":["../../client/chunkLoadRecovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,6DAA6D;AAC7D,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,+DAA+D;IAC/D,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,GAAG,IAAI,CAAC;CACvE;AAMD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,KAAK,GAAG,SAAS,QAG5F;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,SAIvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYxD;AAWD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,EAAE,MAAc,EAAE,GAAG,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5E,OAAO,CA0BT;AA2CD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAyC,GACpD,MAAM,CAUR"}
@@ -30,6 +30,9 @@ export { Link } from "./Link";
30
30
  export type { ExternalLinkProps, LinkProps, PrefetchStrategy } from "./Link";
31
31
  export { Redirect } from "./Redirect";
32
32
  export { init, create } from "./init";
33
+ export type { InitOptions } from "./init";
34
+ export { isChunkLoadError, recoverFromChunkLoadError, CHUNK_RELOAD_MARKER, } from "./chunkLoadRecovery";
35
+ export type { ChunkLoadErrorContext, ChunkLoadErrorSource, ChunkLoadRecoveryOptions, ChunkReloadBlock, } from "./chunkLoadRecovery";
33
36
  export { createRoot } from "./createRoot";
34
37
  export type { RPC, ViewRPC, I18nDictionary, Features, FeatureKey, ClientFeatureKey, } from "./rpc";
35
38
  export type { ViewProps, LayoutProps, ViewPaths } from "./types";
@@ -43,6 +46,7 @@ export { useSignOut } from "./auth/useSignOut";
43
46
  export { useResetPassword } from "./auth/useResetPassword";
44
47
  export { useUser } from "./auth/useUser";
45
48
  export { useIntendedUrl } from "./auth/useIntendedUrl";
49
+ export { useEmailCode } from "./auth/useEmailCode";
46
50
  export { useFeature, useFeatures } from "./useFeature";
47
51
  export { useTranslator } from "./useTranslator";
48
52
  export { useDictionary } from "./useDictionary";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { A as Action, B as isRetryableQueryError, C as I18nProvider, D as domainUrl, E as useLocation, F as QueryManagerContext, H as shouldRetryQuery, I as QueryManagerProvider, L as USER_QUERY_CONFIG_KEYS, M as toVariantKey, N as applyParams$1, O as isAbsoluteUrl, P as QueryConfigContext, R as pickDefined, S as I18nContext, T as ServerDataProvider, U as QueryError, V as retryDelayFor, W as Subject, _ as readRoutePayload, a as useRouteTransition, b as useSearchParams, c as ComponentsContext, d as loadViewModule, f as subscribeViewModules, g as setActiveLocale, h as registerDictionary, i as RouteTransitionProvider, l as ComponentsProvider, m as loadDictionaryForRender, n as useTheme, o as ClientRouterContext, p as loadDictionary, r as m, s as ClientRouterProvider, t as ThemeProvider, u as initialViewModulesReady, v as routeDataUrl, w as ServerDataContext, x as useNavigate, y as useRoute, z as DEFAULT_STALE_TIME } from "../chunks/ThemeProvider-D1kDfCwY.js";
1
+ import { A as useLocation, B as QueryManagerProvider, C as useRoute, D as I18nProvider, E as I18nContext, G as retryDelayFor, H as pickDefined, I as toVariantKey, J as Subject, K as shouldRetryQuery, L as applyParams$1, M as isAbsoluteUrl, O as ServerDataContext, P as Action, R as QueryConfigContext, S as routeDataUrl, T as useNavigate, U as DEFAULT_STALE_TIME, V as USER_QUERY_CONFIG_KEYS, W as isRetryableQueryError, _ as loadDictionary, a as useRouteTransition, b as setActiveLocale, c as ComponentsContext, d as loadViewModule, f as subscribeViewModules, g as recoverFromChunkLoadError, h as isChunkLoadError, i as RouteTransitionProvider, j as domainUrl, k as ServerDataProvider, l as ComponentsProvider, m as configureChunkLoadRecovery, n as useTheme, o as ClientRouterContext, p as CHUNK_RELOAD_MARKER, q as QueryError, r as m, s as ClientRouterProvider, t as ThemeProvider, u as initialViewModulesReady, v as loadDictionaryForRender, w as useSearchParams, x as readRoutePayload, y as registerDictionary, z as QueryManagerContext } from "../chunks/ThemeProvider-z_MW40tl.js";
2
2
  import { n as RouteStateContext, r as RouteStateProvider, t as useParams } from "../chunks/useParams-BN3XXfmG.js";
3
3
  import { Fragment, StrictMode, Suspense, createContext, createElement, isValidElement, memo, use, useCallback, useContext, useDeferredValue, useEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
4
4
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -538,7 +538,7 @@ function legacyKind(message, status) {
538
538
  * whole. A body with no content (`null`) becomes a refusal naming the status.
539
539
  *
540
540
  * What is handed over carries `status`, and a `kind` when it has a `message`:
541
- * a bare string, which servers before 0.85 sent for most refusals, becomes
541
+ * a bare string, which servers before 0.88 sent for most refusals, becomes
542
542
  * `{ kind, message, status }`, and so does a `{ message }` without a kind.
543
543
  *
544
544
  * @internal
@@ -1769,7 +1769,7 @@ var Routes = (props) => {
1769
1769
  setIsFetching(true);
1770
1770
  fetchRouteCSS(routerState.routePath).catch((e) => console.error(e));
1771
1771
  preloadRouteModules(routerState.routePath);
1772
- for (const component of views) loadViewModule(component);
1772
+ for (const component of views) loadViewModule(component).catch(() => {});
1773
1773
  const payload = await loadRoutePayload({
1774
1774
  url,
1775
1775
  from,
@@ -1878,6 +1878,18 @@ var ClientRouter = (props) => {
1878
1878
  };
1879
1879
  //#endregion
1880
1880
  //#region client/init.tsx
1881
+ /**
1882
+ * Vite's preload helper fires `vite:preloadError` on `window` when a lazy
1883
+ * `import()` in app code — a `lazy(() => import("./Chart"))` inside a view —
1884
+ * cannot load a dependency. `preventDefault()` stops the helper rethrowing,
1885
+ * which is only right when a reload is actually under way.
1886
+ */
1887
+ function installPreloadErrorRecovery() {
1888
+ window.addEventListener("vite:preloadError", (event) => {
1889
+ const error = event.payload;
1890
+ if (recoverFromChunkLoadError(error, { source: "preload" })) event.preventDefault();
1891
+ });
1892
+ }
1881
1893
  var StackTrace = () => {
1882
1894
  useEffect(() => {
1883
1895
  window.addEventListener("load", () => {
@@ -1895,6 +1907,8 @@ var StackTrace = () => {
1895
1907
  return /* @__PURE__ */ jsx("div", { id: "overlay" });
1896
1908
  };
1897
1909
  function init(RootLayout, options = {}) {
1910
+ configureChunkLoadRecovery(options.chunkLoadRecovery);
1911
+ if (typeof window !== "undefined" && options.chunkLoadRecovery !== false) installPreloadErrorRecovery();
1898
1912
  if (typeof window !== "undefined" && window.render_error) createRoot$1(document.body).render(/* @__PURE__ */ jsx(StackTrace, {}));
1899
1913
  else initialViewModulesReady.then(() => hydrate(RootLayout, options)).catch((e) => {
1900
1914
  setTimeout(() => {
@@ -2086,6 +2100,41 @@ function useIntendedUrl(fallback = "/") {
2086
2100
  return safeRedirectPath(useSearchParams().get(INTENDED_URL_PARAM), fallback);
2087
2101
  }
2088
2102
  //#endregion
2103
+ //#region client/auth/useEmailCode.ts
2104
+ /**
2105
+ * Passwordless sign-up-or-sign-in with a one-time email code, in place — no
2106
+ * redirect, so it fits a dialog (#708). Needs `auth.emailCode.enabled`.
2107
+ *
2108
+ * ```tsx
2109
+ * const { request, verify, isPending, error } = useEmailCode();
2110
+ * await request(email); // always { ok: true }
2111
+ * const r = await verify(email, code); // { session, isNewUser } or undefined
2112
+ * ```
2113
+ *
2114
+ * `error` is the last refusal: a `validation_error` on `email` or `code`
2115
+ * (`invalid_code`, `too_many_attempts`), or a 429 `rate_limit`. A successful
2116
+ * `verify` refreshes `useUser()`.
2117
+ */
2118
+ function useEmailCode(args = {}) {
2119
+ const { mutate } = useFrameworkQuery("/auth/me", {}, { lazy: true });
2120
+ const requestMutation = usePost("/auth/email-code");
2121
+ const verifyMutation = usePost("/auth/email-code/verify", {}, { onSuccess: (result) => {
2122
+ if (result?.session?.user) mutate(result.session.user);
2123
+ args.onSuccess?.(result);
2124
+ } });
2125
+ const error = verifyMutation.error ?? requestMutation.error;
2126
+ return {
2127
+ request: (email) => requestMutation.trigger({ email }),
2128
+ verify: (email, code, extra = {}) => verifyMutation.trigger({
2129
+ email,
2130
+ code,
2131
+ ...extra
2132
+ }),
2133
+ isPending: requestMutation.loading || verifyMutation.loading,
2134
+ error
2135
+ };
2136
+ }
2137
+ //#endregion
2089
2138
  //#region client/useFeature.ts
2090
2139
  /**
2091
2140
  * Reads a feature evaluated by the server for this request.
@@ -2447,6 +2496,6 @@ function useAppIdMissmatch() {
2447
2496
  return current !== next;
2448
2497
  }
2449
2498
  //#endregion
2450
- export { Form, FormError, FormFieldContainer, Head, Image, Link, OpenGraphImage, QueryError, QueryManagerProvider, Redirect, ValidationErrors, create, createRoot, defineDictionary, init, isAuthenticationError, isCsrfError, isFormError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isRetryableQueryError, isServerError, isValidationError, mutationErrorKind, useAppIdMissmatch, useBreadcrumbs, useDelete, useDictionary, useDomain, useFeature, useFeatures, useForgotPassword, useFormData, useFormStatus, useInfiniteQuery, useIntendedUrl, useIsNavigationPending, useLocale, useLocation, useMutate, useMutation, useMutationStatus, useNavigate, useNavigationProgress, useParams, usePatch, usePost, usePrefetch, usePut, useQuery, useResetPassword, useRoute, useRouteTransition, useSearchParams, useSignIn, useSignOut, useSignUp, useTheme, useTranslator, useUpload, useUser };
2499
+ export { CHUNK_RELOAD_MARKER, Form, FormError, FormFieldContainer, Head, Image, Link, OpenGraphImage, QueryError, QueryManagerProvider, Redirect, ValidationErrors, create, createRoot, defineDictionary, init, isAuthenticationError, isChunkLoadError, isCsrfError, isFormError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isRetryableQueryError, isServerError, isValidationError, mutationErrorKind, recoverFromChunkLoadError, useAppIdMissmatch, useBreadcrumbs, useDelete, useDictionary, useDomain, useEmailCode, useFeature, useFeatures, useForgotPassword, useFormData, useFormStatus, useInfiniteQuery, useIntendedUrl, useIsNavigationPending, useLocale, useLocation, useMutate, useMutation, useMutationStatus, useNavigate, useNavigationProgress, useParams, usePatch, usePost, usePrefetch, usePut, useQuery, useResetPassword, useRoute, useRouteTransition, useSearchParams, useSignIn, useSignOut, useSignUp, useTheme, useTranslator, useUpload, useUser };
2451
2500
 
2452
2501
  //# sourceMappingURL=index.js.map