gemi 0.122.0 → 0.124.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 (304) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/App.d.ts +9 -0
  4. package/dist/app/App.d.ts.map +1 -1
  5. package/dist/app/index.js +1 -1
  6. package/dist/auth/AuthController.d.ts.map +1 -1
  7. package/dist/bin/gemi.js +4 -1
  8. package/dist/bin/gemi.js.map +3 -3
  9. package/dist/bun/plugin.js +1 -1
  10. package/dist/bun/preload.js +1 -1
  11. package/dist/{chunk-7ftj43vp.js → chunk-019wz697.js} +2 -2
  12. package/dist/{chunk-7ftj43vp.js.map → chunk-019wz697.js.map} +1 -1
  13. package/dist/{chunk-s5k3yq6t.js → chunk-121p4g9j.js} +2 -2
  14. package/dist/{chunk-s5k3yq6t.js.map → chunk-121p4g9j.js.map} +1 -1
  15. package/dist/{chunk-tewhms9w.js → chunk-17dndh5z.js} +2 -2
  16. package/dist/{chunk-3gsv1vv1.js.map → chunk-17dndh5z.js.map} +1 -1
  17. package/dist/{chunk-r01aqf0q.js → chunk-1qwhty9p.js} +2 -2
  18. package/dist/{chunk-r01aqf0q.js.map → chunk-1qwhty9p.js.map} +1 -1
  19. package/dist/{chunk-471htqmz.js → chunk-1rnh9qrp.js} +2 -2
  20. package/dist/{chunk-471htqmz.js.map → chunk-1rnh9qrp.js.map} +1 -1
  21. package/dist/{chunk-dedqr5wb.js → chunk-2affxmkn.js} +2 -2
  22. package/dist/{chunk-dedqr5wb.js.map → chunk-2affxmkn.js.map} +1 -1
  23. package/dist/{chunk-19dpzp4y.js → chunk-2n4490pk.js} +3 -3
  24. package/dist/{chunk-19dpzp4y.js.map → chunk-2n4490pk.js.map} +1 -1
  25. package/dist/{chunk-9xyxbxgk.js → chunk-30xxc6r7.js} +2 -2
  26. package/dist/{chunk-9xyxbxgk.js.map → chunk-30xxc6r7.js.map} +1 -1
  27. package/dist/{chunk-vx7hvyvq.js → chunk-34fkx6kb.js} +2 -2
  28. package/dist/{chunk-vx7hvyvq.js.map → chunk-34fkx6kb.js.map} +1 -1
  29. package/dist/{chunk-5nj94s66.js → chunk-3hqwz48c.js} +4 -4
  30. package/dist/{chunk-5nj94s66.js.map → chunk-3hqwz48c.js.map} +1 -1
  31. package/dist/{chunk-dhbgrv58.js → chunk-3j6s5bmx.js} +1 -1
  32. package/dist/{chunk-cskqet01.js → chunk-3y294mb8.js} +2 -2
  33. package/dist/{chunk-cskqet01.js.map → chunk-3y294mb8.js.map} +1 -1
  34. package/dist/{chunk-qsz9241c.js → chunk-4drnyymm.js} +2 -2
  35. package/dist/{chunk-qsz9241c.js.map → chunk-4drnyymm.js.map} +1 -1
  36. package/dist/{chunk-zg6hmc48.js → chunk-5e22tm7m.js} +1 -1
  37. package/dist/chunk-5j50q4g8.js +57 -0
  38. package/dist/{chunk-3s21p9n2.js.map → chunk-5j50q4g8.js.map} +19 -9
  39. package/dist/{chunk-0k02tza1.js → chunk-65s834td.js} +1 -1
  40. package/dist/{chunk-7mmw0jr2.js → chunk-675kzd7z.js} +2 -2
  41. package/dist/{chunk-7mmw0jr2.js.map → chunk-675kzd7z.js.map} +1 -1
  42. package/dist/{chunk-gy81nd9a.js → chunk-6bgb1nhq.js} +2 -2
  43. package/dist/{chunk-gy81nd9a.js.map → chunk-6bgb1nhq.js.map} +1 -1
  44. package/dist/chunk-70nnh0y7.js +5 -0
  45. package/dist/{chunk-htgmy3x7.js.map → chunk-70nnh0y7.js.map} +1 -1
  46. package/dist/{chunk-er8acmch.js → chunk-75ewjc4a.js} +2 -2
  47. package/dist/{chunk-er8acmch.js.map → chunk-75ewjc4a.js.map} +1 -1
  48. package/dist/{chunk-2c0s0561.js → chunk-7gfdts60.js} +2 -2
  49. package/dist/{chunk-2c0s0561.js.map → chunk-7gfdts60.js.map} +1 -1
  50. package/dist/{chunk-zefs2b6h.js → chunk-8m2htvjn.js} +2 -2
  51. package/dist/{chunk-zefs2b6h.js.map → chunk-8m2htvjn.js.map} +1 -1
  52. package/dist/{chunk-dwedx1jb.js → chunk-92sk56n0.js} +3 -3
  53. package/dist/{chunk-dwedx1jb.js.map → chunk-92sk56n0.js.map} +1 -1
  54. package/dist/{chunk-yds7zwc3.js → chunk-96a1459v.js} +2 -2
  55. package/dist/{chunk-yds7zwc3.js.map → chunk-96a1459v.js.map} +1 -1
  56. package/dist/{chunk-c7qs1xp3.js → chunk-9tr92nwy.js} +2 -2
  57. package/dist/{chunk-c7qs1xp3.js.map → chunk-9tr92nwy.js.map} +1 -1
  58. package/dist/{chunk-1wnnkde0.js → chunk-a3g7y70h.js} +3 -3
  59. package/dist/{chunk-1wnnkde0.js.map → chunk-a3g7y70h.js.map} +1 -1
  60. package/dist/{chunk-zrcd9hxr.js → chunk-b5afy6k9.js} +2 -2
  61. package/dist/{chunk-zrcd9hxr.js.map → chunk-b5afy6k9.js.map} +1 -1
  62. package/dist/{chunk-c0v61fp5.js → chunk-bnt8kx6x.js} +2 -2
  63. package/dist/{chunk-c0v61fp5.js.map → chunk-bnt8kx6x.js.map} +1 -1
  64. package/dist/{chunk-5tdxbwzg.js → chunk-bt9qv2jj.js} +3 -3
  65. package/dist/{chunk-5tdxbwzg.js.map → chunk-bt9qv2jj.js.map} +1 -1
  66. package/dist/{chunk-y6wt5b6t.js → chunk-c4jnxmf2.js} +1 -1
  67. package/dist/{chunk-ep0baa9g.js → chunk-cfdwsvtx.js} +2 -2
  68. package/dist/{chunk-ep0baa9g.js.map → chunk-cfdwsvtx.js.map} +1 -1
  69. package/dist/{chunk-51w5ktv2.js → chunk-dxfhhw5h.js} +2 -2
  70. package/dist/{chunk-51w5ktv2.js.map → chunk-dxfhhw5h.js.map} +1 -1
  71. package/dist/{chunk-pn2x59ge.js → chunk-f29pktad.js} +3 -3
  72. package/dist/{chunk-pn2x59ge.js.map → chunk-f29pktad.js.map} +1 -1
  73. package/dist/chunk-f4cmz31h.js +58 -0
  74. package/dist/{chunk-3rvn9a76.js.map → chunk-f4cmz31h.js.map} +3 -3
  75. package/dist/{chunk-0ejjgzwc.js → chunk-fn2qfwgx.js} +2 -2
  76. package/dist/{chunk-0ejjgzwc.js.map → chunk-fn2qfwgx.js.map} +1 -1
  77. package/dist/{chunk-pemhmjzp.js → chunk-fvrmptd0.js} +3 -3
  78. package/dist/{chunk-pemhmjzp.js.map → chunk-fvrmptd0.js.map} +1 -1
  79. package/dist/{chunk-qy8c0gzr.js → chunk-fw7ds23a.js} +2 -2
  80. package/dist/{chunk-qy8c0gzr.js.map → chunk-fw7ds23a.js.map} +1 -1
  81. package/dist/{chunk-fenc5tpv.js → chunk-h3p8qzft.js} +2 -2
  82. package/dist/{chunk-fenc5tpv.js.map → chunk-h3p8qzft.js.map} +1 -1
  83. package/dist/{chunk-wjkh2gem.js → chunk-j7v7dft7.js} +1 -1
  84. package/dist/chunk-jctb7v53.js +4 -0
  85. package/dist/chunk-jctb7v53.js.map +10 -0
  86. package/dist/{chunk-wqe47c0j.js → chunk-jys8y39p.js} +2 -2
  87. package/dist/{chunk-wqe47c0j.js.map → chunk-jys8y39p.js.map} +1 -1
  88. package/dist/{chunk-m83zm86m.js → chunk-kc924zjz.js} +2 -2
  89. package/dist/{chunk-m83zm86m.js.map → chunk-kc924zjz.js.map} +1 -1
  90. package/dist/{chunk-32n8t8x6.js → chunk-kzsjyvvc.js} +2 -2
  91. package/dist/{chunk-32n8t8x6.js.map → chunk-kzsjyvvc.js.map} +1 -1
  92. package/dist/{chunk-meg8rtr6.js → chunk-mqtfaqx5.js} +2 -2
  93. package/dist/{chunk-meg8rtr6.js.map → chunk-mqtfaqx5.js.map} +1 -1
  94. package/dist/{chunk-7g649j8h.js → chunk-mrswc6qw.js} +2 -2
  95. package/dist/{chunk-7g649j8h.js.map → chunk-mrswc6qw.js.map} +1 -1
  96. package/dist/{chunk-gc2dz11k.js → chunk-mvkz22p4.js} +2 -2
  97. package/dist/{chunk-gc2dz11k.js.map → chunk-mvkz22p4.js.map} +1 -1
  98. package/dist/{chunk-4acpw92g.js → chunk-n0r5xyk2.js} +3 -3
  99. package/dist/{chunk-4acpw92g.js.map → chunk-n0r5xyk2.js.map} +1 -1
  100. package/dist/{chunk-cca0grq3.js → chunk-n1a2zj5z.js} +2 -2
  101. package/dist/{chunk-cca0grq3.js.map → chunk-n1a2zj5z.js.map} +1 -1
  102. package/dist/{chunk-d5f1m3d2.js → chunk-nkzmk7v3.js} +2 -2
  103. package/dist/{chunk-d5f1m3d2.js.map → chunk-nkzmk7v3.js.map} +1 -1
  104. package/dist/{chunk-3gsv1vv1.js → chunk-nn2jeat2.js} +2 -2
  105. package/dist/{chunk-tewhms9w.js.map → chunk-nn2jeat2.js.map} +1 -1
  106. package/dist/chunk-nnarmbjv.js +5 -0
  107. package/dist/chunk-nnarmbjv.js.map +10 -0
  108. package/dist/{chunk-h43jp8ws.js → chunk-pe46a5a5.js} +2 -2
  109. package/dist/{chunk-h43jp8ws.js.map → chunk-pe46a5a5.js.map} +1 -1
  110. package/dist/{chunk-6yhpprzs.js → chunk-pmyh33v5.js} +2 -2
  111. package/dist/{chunk-6yhpprzs.js.map → chunk-pmyh33v5.js.map} +1 -1
  112. package/dist/{chunk-mr94nfp1.js → chunk-pya4rqm2.js} +3 -3
  113. package/dist/{chunk-mr94nfp1.js.map → chunk-pya4rqm2.js.map} +1 -1
  114. package/dist/{chunk-jaa6xkeh.js → chunk-qdj8ek8z.js} +2 -2
  115. package/dist/{chunk-jaa6xkeh.js.map → chunk-qdj8ek8z.js.map} +1 -1
  116. package/dist/{chunk-0yj0s1pn.js → chunk-qhz0x97z.js} +2 -2
  117. package/dist/{chunk-0yj0s1pn.js.map → chunk-qhz0x97z.js.map} +1 -1
  118. package/dist/chunk-qycwjzsv.js +9 -0
  119. package/dist/chunk-qycwjzsv.js.map +10 -0
  120. package/dist/{chunk-nz8z8jr1.js → chunk-rpyczdta.js} +3 -3
  121. package/dist/{chunk-nz8z8jr1.js.map → chunk-rpyczdta.js.map} +1 -1
  122. package/dist/{chunk-9rr5h818.js → chunk-rtawbqec.js} +3 -3
  123. package/dist/{chunk-9rr5h818.js.map → chunk-rtawbqec.js.map} +1 -1
  124. package/dist/{chunk-3wnghdsx.js → chunk-rttrpjqk.js} +2 -2
  125. package/dist/{chunk-3wnghdsx.js.map → chunk-rttrpjqk.js.map} +1 -1
  126. package/dist/{chunk-m53fgf20.js → chunk-s5jxc63j.js} +3 -3
  127. package/dist/{chunk-m53fgf20.js.map → chunk-s5jxc63j.js.map} +1 -1
  128. package/dist/{chunk-48gmyaxc.js → chunk-sd0c2001.js} +2 -2
  129. package/dist/{chunk-48gmyaxc.js.map → chunk-sd0c2001.js.map} +1 -1
  130. package/dist/chunk-skf89vrv.js +5 -0
  131. package/dist/chunk-skf89vrv.js.map +10 -0
  132. package/dist/chunk-szn2n976.js +24 -0
  133. package/dist/{chunk-2yw4yezc.js.map → chunk-szn2n976.js.map} +3 -3
  134. package/dist/{chunk-gemzbw7f.js → chunk-v2ggafz1.js} +2 -2
  135. package/dist/{chunk-gemzbw7f.js.map → chunk-v2ggafz1.js.map} +1 -1
  136. package/dist/{chunk-rhek27sj.js → chunk-v8v5qfnh.js} +3 -3
  137. package/dist/{chunk-rhek27sj.js.map → chunk-v8v5qfnh.js.map} +1 -1
  138. package/dist/{chunk-d2c3947c.js → chunk-w3812s34.js} +2 -2
  139. package/dist/{chunk-d2c3947c.js.map → chunk-w3812s34.js.map} +1 -1
  140. package/dist/{chunk-tk135gmj.js → chunk-w4z6x54b.js} +3 -3
  141. package/dist/{chunk-tk135gmj.js.map → chunk-w4z6x54b.js.map} +1 -1
  142. package/dist/{chunk-65beps2q.js → chunk-w61sphn5.js} +3 -3
  143. package/dist/{chunk-65beps2q.js.map → chunk-w61sphn5.js.map} +1 -1
  144. package/dist/{chunk-cvr5624r.js → chunk-wbg2tza5.js} +1 -1
  145. package/dist/{chunk-9d2d08qm.js → chunk-y434jc1c.js} +2 -2
  146. package/dist/{chunk-9d2d08qm.js.map → chunk-y434jc1c.js.map} +1 -1
  147. package/dist/{chunk-shfe0b22.js → chunk-ykz38t0t.js} +2 -2
  148. package/dist/{chunk-shfe0b22.js.map → chunk-ykz38t0t.js.map} +1 -1
  149. package/dist/{chunk-krk7mcgm.js → chunk-yzhv93b0.js} +3 -3
  150. package/dist/{chunk-krk7mcgm.js.map → chunk-yzhv93b0.js.map} +1 -1
  151. package/dist/{chunk-rhvc1axc.js → chunk-z5jydj5r.js} +2 -2
  152. package/dist/{chunk-rhvc1axc.js.map → chunk-z5jydj5r.js.map} +1 -1
  153. package/dist/chunk-zmf3vhex.js +10 -0
  154. package/dist/{chunk-dyp0wg9e.js.map → chunk-zmf3vhex.js.map} +8 -4
  155. package/dist/{chunk-sx340k85.js → chunk-zsfwcdqn.js} +2 -2
  156. package/dist/{chunk-sx340k85.js.map → chunk-zsfwcdqn.js.map} +1 -1
  157. package/dist/{chunk-4fx8p02c.js → chunk-zsvav1dk.js} +2 -2
  158. package/dist/{chunk-4fx8p02c.js.map → chunk-zsvav1dk.js.map} +1 -1
  159. package/dist/chunks/{ThemeProvider-BLI4zpLu.js → ThemeProvider-CbOx8IRl.js} +581 -2
  160. package/dist/chunks/ThemeProvider-CbOx8IRl.js.map +1 -0
  161. package/dist/client/auth/useEmailCode.d.ts.map +1 -1
  162. package/dist/client/auth/useSignIn.d.ts.map +1 -1
  163. package/dist/client/auth/useSignOut.d.ts.map +1 -1
  164. package/dist/client/index.d.ts +5 -1
  165. package/dist/client/index.d.ts.map +1 -1
  166. package/dist/client/index.js +216 -8
  167. package/dist/client/index.js.map +1 -1
  168. package/dist/client/init.d.ts +8 -0
  169. package/dist/client/init.d.ts.map +1 -1
  170. package/dist/client/realtime/FakeSocket.d.ts +47 -0
  171. package/dist/client/realtime/FakeSocket.d.ts.map +1 -0
  172. package/dist/client/realtime/RealtimeClient.d.ts +169 -0
  173. package/dist/client/realtime/RealtimeClient.d.ts.map +1 -0
  174. package/dist/client/realtime/RealtimeContext.d.ts +8 -0
  175. package/dist/client/realtime/RealtimeContext.d.ts.map +1 -0
  176. package/dist/client/realtime/useChannelSubscription.d.ts +32 -0
  177. package/dist/client/realtime/useChannelSubscription.d.ts.map +1 -0
  178. package/dist/client/rpc.d.ts +11 -0
  179. package/dist/client/rpc.d.ts.map +1 -1
  180. package/dist/client/useChannel.d.ts +87 -0
  181. package/dist/client/useChannel.d.ts.map +1 -0
  182. package/dist/client/useMutation.d.ts.map +1 -1
  183. package/dist/client/useQuery.d.ts +13 -0
  184. package/dist/client/useQuery.d.ts.map +1 -1
  185. package/dist/config/index.js +1 -1
  186. package/dist/console/run.js +2 -2
  187. package/dist/console/run.js.map +1 -1
  188. package/dist/container/index.js +2 -2
  189. package/dist/container/index.js.map +1 -1
  190. package/dist/database/index.js +2 -2
  191. package/dist/database/index.js.map +1 -1
  192. package/dist/email/index.js +2 -2
  193. package/dist/email/index.js.map +1 -1
  194. package/dist/facades/Broadcast.d.ts +68 -0
  195. package/dist/facades/Broadcast.d.ts.map +1 -0
  196. package/dist/facades/index.d.ts +1 -0
  197. package/dist/facades/index.d.ts.map +1 -1
  198. package/dist/facades/index.js +2 -2
  199. package/dist/facades/index.js.map +1 -1
  200. package/dist/foundation/index.js +2 -2
  201. package/dist/foundation/index.js.map +1 -1
  202. package/dist/gemi.d.ts +19 -6
  203. package/dist/http/ChannelRouter.d.ts +171 -0
  204. package/dist/http/ChannelRouter.d.ts.map +1 -0
  205. package/dist/http/index.d.ts +1 -0
  206. package/dist/http/index.d.ts.map +1 -1
  207. package/dist/http/index.js +2 -2
  208. package/dist/http/index.js.map +1 -1
  209. package/dist/i18n/dictionaryRuntime.js +2 -2
  210. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  211. package/dist/i18n/index.js +2 -2
  212. package/dist/i18n/index.js.map +2 -2
  213. package/dist/kernel/Kernel.d.ts +6 -0
  214. package/dist/kernel/Kernel.d.ts.map +1 -1
  215. package/dist/kernel/index.js +3 -3
  216. package/dist/kernel/index.js.map +5 -6
  217. package/dist/kernel/providers.d.ts +2 -2
  218. package/dist/kernel/providers.d.ts.map +1 -1
  219. package/dist/orm/context.d.ts.map +1 -1
  220. package/dist/orm/index.js +2 -2
  221. package/dist/orm/index.js.map +1 -1
  222. package/dist/server/Server.d.ts.map +1 -1
  223. package/dist/server/httpDev.d.ts +1 -2
  224. package/dist/server/httpDev.d.ts.map +1 -1
  225. package/dist/server/httpProd.d.ts +1 -1
  226. package/dist/server/httpProd.d.ts.map +1 -1
  227. package/dist/server/index.js +2 -2
  228. package/dist/server/index.js.map +3 -3
  229. package/dist/server/shutdown.d.ts +9 -0
  230. package/dist/server/shutdown.d.ts.map +1 -1
  231. package/dist/services/broadcast/BroadcastDriver.d.ts +75 -0
  232. package/dist/services/broadcast/BroadcastDriver.d.ts.map +1 -0
  233. package/dist/services/broadcast/BroadcastEvent.d.ts +67 -0
  234. package/dist/services/broadcast/BroadcastEvent.d.ts.map +1 -0
  235. package/dist/services/broadcast/BroadcastManager.d.ts +148 -0
  236. package/dist/services/broadcast/BroadcastManager.d.ts.map +1 -0
  237. package/dist/services/broadcast/BroadcastServiceProvider.d.ts +26 -0
  238. package/dist/services/broadcast/BroadcastServiceProvider.d.ts.map +1 -0
  239. package/dist/services/broadcast/FakeBroadcastManager.d.ts +45 -0
  240. package/dist/services/broadcast/FakeBroadcastManager.d.ts.map +1 -0
  241. package/dist/services/broadcast/MemoryBroadcastDriver.d.ts +23 -0
  242. package/dist/services/broadcast/MemoryBroadcastDriver.d.ts.map +1 -0
  243. package/dist/services/broadcast/RedisBroadcastDriver.d.ts +155 -0
  244. package/dist/services/broadcast/RedisBroadcastDriver.d.ts.map +1 -0
  245. package/dist/services/broadcast/SocketHub.d.ts +201 -0
  246. package/dist/services/broadcast/SocketHub.d.ts.map +1 -0
  247. package/dist/services/broadcast/brand.d.ts +16 -0
  248. package/dist/services/broadcast/brand.d.ts.map +1 -0
  249. package/dist/services/broadcast/channels.d.ts +77 -0
  250. package/dist/services/broadcast/channels.d.ts.map +1 -0
  251. package/dist/services/broadcast/config.d.ts +106 -0
  252. package/dist/services/broadcast/config.d.ts.map +1 -0
  253. package/dist/services/broadcast/protocol.d.ts +123 -0
  254. package/dist/services/broadcast/protocol.d.ts.map +1 -0
  255. package/dist/services/broadcast/socketTag.d.ts +17 -0
  256. package/dist/services/broadcast/socketTag.d.ts.map +1 -0
  257. package/dist/services/broadcast/types.d.ts +27 -0
  258. package/dist/services/broadcast/types.d.ts.map +1 -0
  259. package/dist/services/broadcast/wire.d.ts +35 -0
  260. package/dist/services/broadcast/wire.d.ts.map +1 -0
  261. package/dist/services/broadcast/workerWarning.d.ts +10 -0
  262. package/dist/services/broadcast/workerWarning.d.ts.map +1 -0
  263. package/dist/services/events/EventManager.d.ts +6 -0
  264. package/dist/services/events/EventManager.d.ts.map +1 -1
  265. package/dist/services/index.d.ts +10 -0
  266. package/dist/services/index.d.ts.map +1 -1
  267. package/dist/services/index.js +9 -9
  268. package/dist/services/index.js.map +4 -3
  269. package/dist/services/queue/WorkerProcess.d.ts.map +1 -1
  270. package/dist/services/queue/work.js +2 -2
  271. package/dist/services/queue/work.js.map +5 -4
  272. package/dist/services/router/config.d.ts +7 -0
  273. package/dist/services/router/config.d.ts.map +1 -1
  274. package/dist/stats/route-table.js +1 -1
  275. package/dist/support/index.js +2 -2
  276. package/dist/support/index.js.map +1 -1
  277. package/dist/testing/Page.d.ts +8 -0
  278. package/dist/testing/Page.d.ts.map +1 -1
  279. package/dist/testing/index.d.ts +2 -0
  280. package/dist/testing/index.d.ts.map +1 -1
  281. package/dist/testing/index.js +174 -8
  282. package/dist/testing/index.js.map +1 -1
  283. package/dist/vitest/index.js +1 -1
  284. package/package.json +1 -1
  285. package/skills/gemi-react-best-practices/SKILL.md +3 -1
  286. package/skills/gemi-react-best-practices/rules/query-live-over-polling.md +56 -0
  287. package/dist/chunk-2n3pgfnb.js +0 -5
  288. package/dist/chunk-2n3pgfnb.js.map +0 -10
  289. package/dist/chunk-2yw4yezc.js +0 -24
  290. package/dist/chunk-3rvn9a76.js +0 -58
  291. package/dist/chunk-3s21p9n2.js +0 -57
  292. package/dist/chunk-dyp0wg9e.js +0 -10
  293. package/dist/chunk-htgmy3x7.js +0 -5
  294. package/dist/chunk-krtybgz1.js +0 -4
  295. package/dist/chunk-krtybgz1.js.map +0 -10
  296. package/dist/chunk-s07v65x6.js +0 -9
  297. package/dist/chunk-s07v65x6.js.map +0 -10
  298. package/dist/chunks/ThemeProvider-BLI4zpLu.js.map +0 -1
  299. /package/dist/{chunk-dhbgrv58.js.map → chunk-3j6s5bmx.js.map} +0 -0
  300. /package/dist/{chunk-zg6hmc48.js.map → chunk-5e22tm7m.js.map} +0 -0
  301. /package/dist/{chunk-0k02tza1.js.map → chunk-65s834td.js.map} +0 -0
  302. /package/dist/{chunk-y6wt5b6t.js.map → chunk-c4jnxmf2.js.map} +0 -0
  303. /package/dist/{chunk-wjkh2gem.js.map → chunk-j7v7dft7.js.map} +0 -0
  304. /package/dist/{chunk-cvr5624r.js.map → chunk-wbg2tza5.js.map} +0 -0
@@ -1,57 +0,0 @@
1
- // @bun
2
- import{cf as FF}from"./chunk-65beps2q.js";import{wf as XF}from"./chunk-m53fgf20.js";import{$f as Y8,Ag as qX,Bf as _X,Bg as nX,Cf as G5,Df as Q5,Dg as oX,Ef as b8,Ff as x8,If as S8,Jf as f8,Kf as CZ,Lf as JX,Mf as RX,Nf as dJ,Of as q,Tf as _,Uf as o8,Vf as m$,Wf as w8,Xf as b3,Zf as Z$,_f as c,ng as w3,ug as p$,xf as yZ,yg as Dz,zg as x$}from"./chunk-4acpw92g.js";import{Gg as _Z,Hg as L0,Ig as w1,Jg as B5}from"./chunk-cca0grq3.js";import{Kg as sz,Lg as D8,Mg as H}from"./chunk-m83zm86m.js";import{Pg as Gz,Sg as V3}from"./chunk-rhek27sj.js";import{Wg as s5,Zg as hX}from"./chunk-19dpzp4y.js";import{ph as P3,uh as xZ}from"./chunk-yds7zwc3.js";import{Kh as mX}from"./chunk-meg8rtr6.js";import{Lh as L8}from"./chunk-h43jp8ws.js";import{Mh as xX,Nh as T1,Oh as W$,Ph as WF,Qh as YF,Sh as bJ,Th as iX,ai as zF}from"./chunk-s07v65x6.js";import{pi as Y$}from"./chunk-gc2dz11k.js";import{ui as NX,zi as LJ}from"./chunk-cskqet01.js";import{Gi as PX,Li as l}from"./chunk-fenc5tpv.js";import{Mi as HZ,Pi as T}from"./chunk-nz8z8jr1.js";import{Xi as TJ}from"./chunk-er8acmch.js";import{Yi as aX}from"./chunk-2n3pgfnb.js";import{hj as SX}from"./chunk-rhvc1axc.js";import{mj as U8}from"./chunk-tewhms9w.js";function _3($){return typeof $==="function"&&$.prototype!==void 0}function D1($){return typeof $==="string"?[$]:$}function x3($,Z){let j=Z?"attachment":"inline",J=$.replace(/["\\]/g,"").replace(/[^\x20-\x7e]/g,"_");return`${j}; filename="${J}"; filename*=UTF-8''${encodeURIComponent($)}`}function MF($){return"total"in $&&"partial"in $&&"body"in $}function yJ(){return new Response("Not found",{status:404,headers:{"X-Content-Type-Options":"nosniff"}})}function EZ($){return new Response(null,{status:416,headers:{"Accept-Ranges":"bytes","Content-Range":f8($),"Content-Length":"0","Cache-Control":"no-store","X-Content-Type-Options":"nosniff"}})}async function LF($){if($ instanceof Blob)return{body:$,start:0,end:$.size-1,total:$.size,partial:!1,type:$.type,name:$.name,download:!1,status:200,extraHeaders:{}};if(MF($))return{body:$.body,start:$.start,end:$.end,total:$.total,partial:$.partial,type:$.type,name:$.name,download:$.download??!1,etag:$.etag,lastModified:$.lastModified,status:$.status??200,extraHeaders:$.headers??{}};let Z=$.file,j=Z instanceof Blob?Z:null,J=$.total??j?.size??-1;return{body:Z,start:$.start??0,end:$.end??J-1,total:J,partial:$.partial??!1,type:$.type??j?.type??"",name:$.name??Z?.name,download:$.download??!1,etag:$.etag,lastModified:$.lastModified,status:$.status??200,extraHeaders:$.headers??{}}}async function A8($,Z){if($ instanceof Response)return $;if(!$)return yJ();let j=await LF($),{body:J,start:W,end:Y,total:z,partial:X}=j;if(J instanceof Blob&&"exists"in J&&typeof J.exists==="function"){if(!await J.exists())return yJ()}let{range:F}=Z;if(F){if(z<=0)return EZ(Math.max(z,0));if(!X){if(J instanceof Blob){let K=x8(F,z);if(!K)return EZ(z);J=J.slice(K.start,K.end+1),W=K.start,Y=K.end,X=!0}}}let G=Boolean(F)&&X,Q=G?206:j.status,O=new Headers;if(O.set("Accept-Ranges","bytes"),O.set("Content-Type",j.type||"application/octet-stream"),O.set("X-Content-Type-Options","nosniff"),G)O.set("Content-Range",S8(W,Y,z)),O.set("Content-Length",String(Y-W+1));else if(z>=0)O.set("Content-Length",String(z));if(j.name)O.set("Content-Disposition",x3(j.name,j.download));if(j.etag)O.set("ETag",j.etag);if(j.lastModified)O.set("Last-Modified",j.lastModified.toUTCString());for(let[K,D]of Object.entries(j.extraHeaders))O.set(K,D);if((Z.method??"GET").toUpperCase()==="HEAD"){if(J&&"cancel"in J&&typeof J.cancel==="function")await J.cancel();return new Response(null,{status:Q,headers:O})}return new Response(J,{status:Q,headers:O})}class k$ extends L0{limit;constructor($){super("The request body is too large.",{status:413});this.limit=$}}var qJ={b:1,k:1024,kb:1024,m:1048576,mb:1048576,g:1073741824,gb:1073741824};function bZ($){if(typeof $==="number"){if(Number.isFinite($)&&$>=0)return Math.floor($);if($===1/0)return 1/0}else{let Z=$.trim().toLowerCase();if(Z==="none"||Z==="off")return 1/0;let j=/^(\d+(?:\.\d+)?)\s*([a-z]*)$/.exec(Z);if(j&&(j[2]===""||(j[2]in qJ)))return Math.floor(Number(j[1])*(qJ[j[2]]??1))}throw Error(`Invalid body limit ${JSON.stringify($)}. Use a byte count or a size such as "64kb", "1mb" or "none".`)}var RZ=new WeakMap;function mJ($){return RZ.has($)}function pJ($){return RZ.get($)?.limit??null}function hJ($){let Z=RZ.get($);return Z?Z.read>Z.limit:!1}function PF($){let Z=$.headers.get("Content-Length");if(Z===null||!/^\s*\d+\s*$/.test(Z))return null;return Number(Z)}function R8($,Z){let j=PF($);if(j!==null&&j>Z)throw new k$(Z)}function S3($,Z,j={}){let J=RZ.get($);if(J)J.limit=Z;else{let W={limit:Z,read:0,stream:void 0,used:!1};RZ.set($,W),HF($,W)}if(j.checkDeclared!==!1)R8($,Z)}function NF($){return Reflect.get(Object.getPrototypeOf($),"body",$)??null}function E8($,Z){if(Z.stream!==void 0)return Z.stream;let j=NF($);if(!j)return Z.stream=null;let J;return Z.stream=new ReadableStream({async pull(W){J??=j.getReader();let{done:Y,value:z}=await J.read();if(Y){W.close();return}if(Z.read+=z.byteLength,Z.read>Z.limit){let X=new k$(Z.limit);W.error(X),J.cancel(X).catch(()=>{});return}W.enqueue(z)},cancel(W){return J?J.cancel(W):j.cancel(W)}},{highWaterMark:0}),Z.stream}async function v$($,Z){if(R8($,Z.limit),Z.used||Z.stream?.locked)throw TypeError("Body already used");Z.used=!0;let j=E8($,Z);if(!j)return new Uint8Array(0);let J=j.getReader(),W=[],Y=0;for(;;){let{done:F,value:G}=await J.read();if(F)break;W.push(G),Y+=G.byteLength}let z=new Uint8Array(Y),X=0;for(let F of W)z.set(F,X),X+=F.byteLength;return z}function gJ($){return $.headers.get("Content-Type")??""}function HF($,Z){let j=(J,W)=>Object.defineProperty($,J,{configurable:!0,...W});j("body",{get:()=>E8($,Z)}),j("bodyUsed",{get:()=>Z.used||Boolean(Z.stream?.locked)||Reflect.get(Object.getPrototypeOf($),"bodyUsed",$)}),j("bytes",{value:()=>v$($,Z)}),j("arrayBuffer",{value:async()=>{let J=await v$($,Z);return J.buffer.slice(J.byteOffset,J.byteOffset+J.byteLength)}}),j("text",{value:async()=>new TextDecoder().decode(await v$($,Z))}),j("json",{value:async()=>JSON.parse(new TextDecoder().decode(await v$($,Z)))}),j("blob",{value:async()=>new Blob([await v$($,Z)],{type:gJ($)})}),j("formData",{value:async()=>new Response(await v$($,Z),{headers:{"Content-Type":gJ($)}}).formData()}),j("clone",{value:()=>{R8($,Z.limit);let J=E8($,Z),W=null;if(J){let[Y,z]=J.tee();Z.stream=Y,W=z}return new Request($.url,{method:$.method,headers:$.headers,body:W,signal:$.signal,duplex:"half"})}})}function cJ($){return _3($)}class j0{method;handler;methodName;__internal_brand="RouteHandler";middlewares=[];constructor($,Z,j){this.method=$;this.handler=Z;this.methodName=j;this.handler=Z,this.methodName=j,this.method=$}get source(){if(!cJ(this.handler)||typeof this.methodName!=="string")return;return{controller:this.handler,methodName:this.methodName}}__internal_use(){return{run:this.run.bind(this),middlewares:this.middlewares}}run($){if(cJ(this.handler)){let Z=new this.handler;return Z[this.methodName].bind(Z)()}return this.handler()}middleware($){return this.middlewares=D1($),this}}class uJ{url;headers;__internal_brand="ProxyHandler";middlewares=[];constructor($,Z){this.url=$;this.headers=Z}middleware($){return this.middlewares=D1($),this}async run(){let $=new _,Z=$.headers.toJSON();for(let j of dJ($.rawRequest))delete Z[j];try{return await fetch(this.url,{method:$.rawRequest.method,headers:{...Z,...this.headers},body:$.rawRequest.body})}catch(j){if(hJ($.rawRequest))throw new k$(pJ($.rawRequest));throw j}}}class lJ{constructor(...$){return new j0(...$)}}class iJ extends j0{__internal_brand="StreamHandler";async run($){let Z=H.getStore(),j=Z?.req?.rawRequest,J=b8(j?.headers.get("Range"));if(Z)Z.rangeRequest=J;try{let W=await super.run($);return await A8(W,{range:J,method:j?.method})}catch(W){if(W instanceof w8)return EZ(W.total);throw W}finally{if(Z)Z.rangeRequest=null}}}class sJ{constructor(...$){return new iJ(...$)}}class nJ{__internal_brand="ResourceRoutes";first;second;constructor($){this.first={get:new j0("GET",$,"list"),post:new j0("POST",$,"store")},this.second={get:new j0("GET",$,"show"),put:new j0("PUT",$,"update"),delete:new j0("DELETE",$,"delete")}}middleware($){if($.list)this.first.get.middleware($.list);if($.store)this.first.post.middleware($.store);if($.show)this.second.get.middleware($.show);if($.update)this.second.put.middleware($.update);if($.delete)this.second.delete.middleware($.delete);return this}}class A0{static __brand="ApiRouter";routes={};middlewares=[];middleware($){}get($,Z){return new j0("GET",$,Z)}post($,Z){return new j0("POST",$,Z)}put($,Z){return new j0("PUT",$,Z)}patch($,Z){return new j0("PATCH",$,Z)}delete($,Z){return new j0("DELETE",$,Z)}resource($){return new nJ($)}agent($){if($.kind!=="agent-controller")throw TypeError(`this.agent() takes an AgentController class, and got ${CF($)}.`);return _F($,this)}file($,Z){return new lJ("GET",$,Z)}stream($,Z){return new sJ("GET",$,Z)}proxy($,Z={}){return new uJ($,Z)}}function CF($){if(typeof $==="function"&&$.name)return $.name;return typeof $}function _F($,Z){let j={stream:new j0("POST",$,"stream"),attach:new j0("POST",$,"attach"),stop:new j0("POST",$,"stop"),upload:new j0("POST",$,"upload")};return class extends A0{static __internal_brand="AgentRoute";static controller=$;static handlers=j;constructor(){super();this.middlewares=[...Z?.middlewares??[]]}routes={"/":j.stream,"/attach":j.attach,"/stop":j.stop,"/files":j.upload};static middleware(W){if(W.stream)j.stream.middleware(W.stream);if(W.attach)j.attach.middleware(W.attach);if(W.stop)j.stop.middleware(W.stop);if(W.upload)j.upload.middleware(W.upload);return this}}}class v8{as;input;bind;__internal_brand="McpModelParam";constructor($,Z,j){this.as=$;this.input=Z;this.bind=j}}class k8{method;url;meta;__internal_brand="McpRoute";constructor($,Z,j){this.method=$;this.url=Z;this.meta=j}}class oJ{static __brand="McpRouter";routes={};scopes;param($){return new v8($.as,$.input,$.bind)}fromApiRoute($,Z,j){return new k8($,Z,j)}}function G0($,Z){return $.replace(/:([^/]+[*?]?)/g,(j,J)=>{let W=J.endsWith("?")||J.endsWith("*"),Y=W?J.slice(0,-1):J,z=Z[Y];if(z===void 0){if(W)return"";if(import.meta.env.DEV)throw Error(`Missing parameter: ${Y}`);console.error(`Missing parameter: ${Y} in URL: ${$}`)}return String(z)}).replace(/\/\//g,"/").replace(/\/$/,"")}class y8 extends L0{constructor($,Z=307){super("Redirect error");this.name="RedirectError",this.payload={api:{status:200,data:{},directive:{kind:"Redirect",path:$}},view:{status:Z,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:$}}}}}class U1{static to($,...Z){let[j={}]=Z,{search:J={},params:W={},permanent:Y,status:z}={params:{},status:307,permanent:!1,...j},X=new URLSearchParams(J).toString();throw new y8([G0($,W)||"/",X.toString()].filter(Boolean).join("?"),z??(Y?301:307))}static external($,Z=307){throw new y8($,Z)}}var aJ=Symbol.for("gemi.HttpResponse");class $${kind;body;status;headers;[aJ]=!0;constructor($,Z,j,J){this.kind=$;this.body=Z;this.status=j;this.headers=J}static json($,Z={}){let j=Z.status??200;return xF(j),new $$("json",$,j,new Headers(Z.headers))}static error($,Z,j={}){if(!Number.isInteger($)||$<400||$>599)throw RangeError(`HttpResponse.error: status must be an integer from 400 to 599, got ${$}.`);return $$.json({error:Z},{...j,status:$})}get ok(){return this.status>=200&&this.status<300}toResponse($,Z){let j=$,J=this.serialize(j);for(let W of Z)j.append("Set-Cookie",W);this.headers.forEach((W,Y)=>{if(Y.toLowerCase()!=="set-cookie")j.set(Y,W)});for(let W of this.headers.getSetCookie())j.append("Set-Cookie",W);if(this.status>=400&&!this.headers.has("Cache-Control"))j.set("Cache-Control","no-store");return new Response(J,{status:this.status,headers:j})}serialize($){switch(this.kind){case"json":return $.set("Content-Type","application/json"),JSON.stringify(this.body)??null}}}function xF($){if(!Number.isInteger($)||$<200||$>599)throw RangeError(`HttpResponse: status must be an integer from 200 to 599, got ${$}.`);if($===204||$===205||$===304)throw RangeError(`HttpResponse.json: a ${$} response has no body.`)}function y$($){return typeof $==="object"&&$!==null&&$[aJ]===!0}function SF($,Z,j={}){return $$.error($,Z,j)}class rJ{kind="redirect";viewPath="REDIRECT";middlewares=[];featureGates=[];handler;constructor($){if(!$)this.handler=()=>({});else if(typeof $==="function")this.handler=$;else{let[Z,j]=$;this.handler=(J)=>{return new Z()[j](J)}}}async run($,Z){let{destination:j,permanent:J=!1,status:W=307}=await this.handler($);if(!j)throw Error(`Redirect destination is required see ${Z}`);return U1.to(j,{permanent:J,status:W}),{}}middleware($){return this.middlewares=D1($),this}feature($){return this.featureGates=[...this.featureGates,$],this}}async function q8($,Z){if($ instanceof Response)return $;let j=$ instanceof Blob,J=j?$:$.file,W=j?$.name:$.name??$.file?.name,Y=(j?$.type:$.type??$.file?.type)||"",z=j?!1:$.download??!1,X=j?200:$.status??200;if(!j)for(let[F,G]of Object.entries($.headers??{}))Z.set(F,G);if(J instanceof Blob&&"exists"in J&&typeof J.exists==="function"){if(!await J.exists())return new Response("Not found",{status:404})}if(Z.set("Content-Type",Y||"application/octet-stream"),J instanceof Blob)Z.set("Content-Length",String(J.size));if(W)Z.set("Content-Disposition",x3(W,z));return new Response(J instanceof Blob?J.stream():J,{status:X,headers:Z})}class tJ{kind="file";viewPath="FILE";middlewares=[];featureGates=[];handler;constructor($){if(!$)this.handler=()=>null;else if(typeof $==="function")this.handler=$;else{let[Z,j]=$;this.handler=(J)=>{return new Z()[j](J)}}}async run($,Z){let j=await this.handler($);if(!j)throw Error(`File route handler must return a file see ${Z}`);return{FILE:j}}middleware($){return this.middlewares=D1($),this}feature($){return this.featureGates=[...this.featureGates,$],this}}function eJ($,Z){if(y$($))throw Error(`The handler of view "${Z}" returned an HttpResponse. HttpResponse is for api routes; a view handler returns its props.`);return $}class $5{viewPath;middlewares=[];featureGates=[];staticOptions=null;handler;constructor($,Z){this.viewPath=$;if(!Z)this.handler=()=>({});else if(typeof Z==="function")this.handler=Z;else{let[j,J]=Z;this.handler=(W)=>{return new j()[J](W)}}}async run($,Z){let j=eJ(await this.handler($),this.viewPath);return{[this.viewPath]:{...j,breadcrumb:{label:j?.breadcrumb??"",href:Z}}}}middleware($){return this.middlewares=D1($),this}static($={}){return this.staticOptions={...$},this}feature($){return this.featureGates=[...this.featureGates,$],this}}class Z5{viewPath;children;middlewares=[];featureGates=[];alwaysRuns=!1;handler=()=>({});constructor($,Z,j){this.viewPath=$;if(typeof Z==="function")this.handler=Z,this.children=class extends V1{routes=j??{}};else if(Array.isArray(Z)){let[J,W]=Z;this.handler=(Y)=>{return new J()[W](Y)},this.children=class extends V1{routes=j??{}}}else this.children=class extends V1{routes=Z},this.handler=()=>({})}async run($,Z){let j=eJ(await this.handler($),this.viewPath);return{[this.viewPath]:{...j,breadcrumb:{label:j?.breadcrumb??"",href:Z}}}}alwaysRun(){return this.alwaysRuns=!0,this}middleware($){return this.middlewares=D1($),this}feature($){return this.featureGates=[...this.featureGates,$],this}}class V1{middlewares=[];featureGates=[];routes={};view($,Z){return new $5($,Z)}file($){return new tJ($)}redirect($){return new rJ($)}layout($,Z,j){return new Z5($,Z,j)}}class a{req;static runsOnRefusal=!1;config={};constructor($){this.req=$}run(...$){return{}}static configure($){let Z=this;return class extends Z{config=$}}}function fF($){return $}function AF(){return{aliases:{},global:[],bodyLimit:null}}var t0="redirect";function e0($,Z="/"){if(typeof $!=="string"||!$.startsWith("/"))return Z;if(/[\u0000-\u001f\u007f\\]/.test($)||$.startsWith("//"))return Z;try{let j=new URL($,"http://gemi.invalid");if(j.origin!=="http://gemi.invalid")return Z;let J=`${j.search}${j.hash}`.replaceAll("/","%2F"),W=`${j.pathname}${J}`.replaceAll(":","%3A");return W.startsWith("//")?Z:W}catch{return Z}}function q$($){let Z=$.headers.get("x-forwarded-proto")?.split(",")[0]?.trim();return Z?Z==="https":new URL($.url).protocol==="https:"}function EF($,Z=!0){let j=new URL($.rawRequest.url),J=j.pathname.replace(/\.(json|og)$/,""),[,W,...Y]=J.split("/");if(T(l).supportedLocales.includes(W))J=`/${Y.join("/")}`;return Z?`${J}${j.search}`:J}function RF($,Z){let j=(J)=>J.replace(/\/+$/,"")||"/";return j($)===j(Z)}function f3($,Z){let j=Z||T(f).config.signInPath,J=/^[a-z][a-z\d+.-]*:/i.test(j);if(J?!/^https?:\/\//i.test(j):!j.startsWith("/"))throw Error(`\`auth.signInPath\` must be a path like "/auth/sign-in", or an http(s) URL for sign-in hosted elsewhere. Got "${j}". A route's own \`"auth:<path>"\` cannot carry a URL, because the alias parser splits it on the colon.`);let W=new URL(j,"http://gemi.invalid");if($?.kind==="view"){let Y=EF($,!J);if(J||!RF(new URL(Y,W).pathname,W.pathname))W.searchParams.set(t0,Y)}return J?W.href:`${W.pathname}${W.search}`}var b1="access_token";function wZ($){return $?.cookies?.get("access_token")||$?.headers?.get("access_token")||null}async function A3($,Z){let j=wZ(Z);if(!j)return null;return(await $.getSession(j,Z.headers.get("User-Agent")))?.user??null}class j5 extends a{async run($){let Z=H.getStore(),j=Z.req;if(Z.user)return{};let J=await A3(T(f),j);if(!J)throw new Z$({redirectTo:f3(j,$)});return Z.setUser(J),{}}}var m8="gemi_same_site",g8="private, no-cache, no-store, max-age=0, must-revalidate";class E3 extends a{run(){let $=H.getStore(),Z=$?.req;if(!Z||$.user)return{};let j=Z.rawRequest;if(Z.kind!=="view"||j.method!=="GET"&&j.method!=="HEAD")return{};let J=new URL(j.url);if(/\.(json|og)$/.test(J.pathname))return{};if(J.searchParams.has(m8))return{};if(wZ(Z))return{};let W=j.headers.get("Sec-Fetch-Site");if(W&&W!=="cross-site")return{};throw J.searchParams.set(m8,"1"),new J5(`${J.pathname}${J.search}`)}}class J5 extends L0{location;constructor($){super("Same-site bounce");this.location=$;this.name="SameSiteBounce";let Z=bF($),j={"Content-Type":"text/html; charset=utf-8","Cache-Control":g8,"Referrer-Policy":"no-referrer","X-Robots-Tag":"noindex"};this.payload={api:{status:401,data:{},headers:{"Cache-Control":g8}},viewData:{status:200,data:{},headers:{"Cache-Control":g8},directive:{kind:"Redirect",path:$}},view:{status:200,headers:j,body:`<!doctype html><html><head><meta charset="utf-8"><meta name="robots" content="noindex"><meta name="referrer" content="no-referrer"><meta http-equiv="refresh" content="0;url=${Z}"><title>Redirecting</title></head><body><p><a href="${Z}">Continue</a></p></body></html>`}}}}function bF($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}class W5 extends a{async run(...$){let[Z="public",j="864000",...J]=$,W=`${Z}, max-age=${j}${J.length>0?", ":""}${J.join(", ")}`;if($.length===0)W="public, max-age=864000, stale-while-revalidate=300, stale-if-error=600";if($.length===1&&$[0]==="public")W="public, max-age=864000, stale-while-revalidate=300, stale-if-error=600";if($.length===1&&$[0]==="private")W="private, max-age=0, stale-while-revalidate=300, stale-if-error=600";if(this.req.rawRequest.method==="GET")this.req.ctx().setHeaders("Cache-Control",W);return{}}}var Y5={"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With","Access-Control-Allow-Credentials":"true"};class z5 extends a{static runsOnRefusal=!0;config={origins:{"":{"Access-Control-Allow-Methods":"GET, HEAD, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With","Access-Control-Allow-Credentials":"true"}}};run(){let $=this.req,Z=$.rawRequest.headers.get("Origin");if(Z&&this.config.origins[Z]){$.ctx().setHeaders("Access-Control-Allow-Origin",Z);let j={...Y5,...this.config.origins[Z]};for(let[J,W]of Object.entries(j))$.ctx().setHeaders(J,W)}else if(Z&&this.config.origins["*"]){$.ctx().setHeaders("Access-Control-Allow-Origin","*");let j={...Y5,...this.config.origins["*"]};delete j["Access-Control-Allow-Credentials"];for(let[J,W]of Object.entries(j))$.ctx().setHeaders(J,W)}return{}}}class $1{config;static token="ratelimiter";constructor($){this.config=$}get driver(){return this.config.driver}async consume($,Z={}){let j=Z.limit??this.config.limit,J=Z.window??this.config.window,W=Z.cost??1;if(X5("window",J),X5("limit",j),!Number.isFinite(W)||W<0)throw Error(`Rate limiter cost must be zero or greater, got ${W}`);return await this.config.driver.consume({key:$,limit:j,window:J*1000,cost:W})}}function X5($,Z){if(!Number.isFinite(Z)||Z<=0)throw Error(`Rate limiter ${$} must be greater than zero, got ${Z}`)}class vZ extends L0{constructor($){super("Rate limit exceeded");let Z={"Content-Type":"application/json",...$?O5($):{}};this.payload={api:{status:429,data:{error:w1("rate_limit","Rate limit exceeded",429)},headers:Z},view:{error:{message:"Rate limit exceeded"},status:429,headers:Z}}}}class K5 extends a{async run($,Z){let j=wF();if(!j)return{};let J=await j.consume(this.key(),{limit:F5($)??this.config.limit,window:F5(Z)??this.config.window});if(this.config.headers!==!1){let W=this.req.ctx?.();if(W)for(let[Y,z]of Object.entries(O5(J)))W.setHeaders(Y,z)}if(!J.allowed)throw new vZ(J);return{}}key(){if(this.config.key)return this.config.key(this.req);let $=G5(this.req.rawRequest);if($)return`mcp:${$.via}:${$.id}:${this.req.routePath??"*"}`;return`${g$(this.req)}:${this.req.routePath??"*"}`}}function wF(){try{let $=T();return $.bound($1)?$.make($1):null}catch{return null}}function g$($){let Z=Q5($.rawRequest);if(Z!==void 0)return Z;let j=$.headers.get("x-forwarded-for");if(j){let[J]=j.split(",");if(J?.trim())return J.trim()}return $.headers.get("x-real-ip")?.trim()||"unknown"}function O5($){let Z={"X-RateLimit-Limit":String($.limit),"X-RateLimit-Remaining":String($.remaining),"X-RateLimit-Reset":String(Math.ceil($.resetAt/1000))};if(!$.allowed)Z["Retry-After"]=String(Math.max(1,Math.ceil($.retryAfter/1000)));return Z}function F5($){if($===void 0||$===null||$==="")return;let Z=Number($);if(!Number.isFinite(Z)||Z<=0)return;return Z}class D5 extends a{async run(){let $=this.req.cookies.get("csrf_token");if(!$)throw new p8;if(!["POST","PUT","PATCH","DELETE"].includes(this.req.rawRequest.method))return{};if(!Bun.CSRF.verify($,{secret:process.env.SECRET}))throw new p8;return{}}}class p8 extends L0{constructor(){super("Invalid CSRF token");this.name="InvalidCSRFTokenError"}payload={api:{status:403,data:{error:B5("csrf","Invalid CSRF token",403)}},view:{}}}class R3 extends a{run($){let Z=$??this.config.limit;if(Z===void 0||Z==="")throw Error('`body-limit` needs a size, as in "body-limit:64kb".');return S3(this.req.rawRequest,bZ(Z)),{}}}class U5{policiesList={};constructor(){let $=this.register();for(let Z of $){let j=new Z;this.policiesList[Z.name]=j}}register(){return[]}}class V5{all($,Z){return!0}}class h8{options;param;refuse;answers=new WeakMap;constructor($){this.options=$;this.param=$.param,this.refuse=$.refuse??"not_found"}refusal(){return this.refuse==="forbidden"?new m$:new b3}authorize($,Z){if(typeof Z==="number"&&Number.isFinite(Z))Z=String(Z);if(typeof Z!=="string"||Z==="")return Promise.reject(this.refusal());let j=this.answers.get($.rawRequest);if(!j)j=new Map,this.answers.set($.rawRequest,j);let J=j.get(Z);if(!J)J=this.decide($,Z),j.set(Z,J);return J}async allows($,Z){try{return await this.authorize($,Z),!0}catch(j){if(this.isRefusal(j))return!1;throw j}}fromRoute($=new _,Z=this.param){if(Z===void 0)throw Error('This resource policy has no `param`. Give `defineResourcePolicy` one, or name it: `fromRoute(req, "pageId")`, or `alias:pageId` on the middleware.');return this.authorize($,$.params?.[Z])}get middleware(){if(!this.middlewareClass){let $=(Z,j)=>this.fromRoute(Z,j||void 0);this.middlewareClass=class extends a{async run(j){await $(this.req,j)}}}return this.middlewareClass}middlewareClass;forAgent($){return{authorize:async(Z,{threadId:j,body:J})=>{let W;if(j!==void 0){if(W=$.thread?await $.thread(j,Z):null,W===null||W===void 0)throw this.refusal()}if(J!==void 0){let Y=await $.body(J,Z);if(await this.authorize(Z,Y),j!==void 0&&String(W)!==String(Y))throw this.refusal();return}if(j!==void 0)await this.authorize(Z,W)}}}async decide($,Z){let j=await this.options.load(Z,$);if(j===null||j===void 0||!await this.options.allow(j,$))throw this.refusal();return j}isRefusal($){return this.refuse==="forbidden"?$ instanceof m$:$ instanceof b3}}function vF($){return new h8($)}async function v3($,Z,j=!1){if(!$.body)return new Uint8Array;let[J,W]=await nF($.body),z=J.length>=2&&J[0]===31&&J[1]===139?W.pipeThrough(new DecompressionStream("gzip")):W;return sF(z,Z,j,$.url)}async function sF($,Z,j,J){let W=$.getReader(),Y=[],z=0;try{for(;;){let{done:G,value:Q}=await W.read();if(G)break;if(z+Q.byteLength>Z){if(!j)throw new w3(J,Z);Y.push(Q.subarray(0,Z-z)),z=Z;break}Y.push(Q),z+=Q.byteLength}}finally{W.cancel().catch(()=>{})}let X=new Uint8Array(z),F=0;for(let G of Y)X.set(G,F),F+=G.byteLength;return X}async function nF($){let Z=$.getReader(),j=await Z.read(),J=j.done?new Uint8Array:j.value,W=new ReadableStream({start(Y){if(j.done)Y.close();else Y.enqueue(J)},async pull(Y){let z=await Z.read();if(z.done)Y.close();else Y.enqueue(z.value)},cancel(Y){return Z.cancel(Y)}});return[J,W]}function k3($){return new TextDecoder("utf-8").decode($)}var oF={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"};function j$($){return $.replace(/[&<>"']/g,(Z)=>oF[Z])}var aF={amp:"&",lt:"<",gt:">",quot:'"',apos:"'"};function c8($){if(!$.includes("&"))return $;return $.replace(/&(#x[0-9a-fA-F]{1,6}|#[0-9]{1,7}|[a-zA-Z]{2,4});/g,(Z,j)=>{if(j[0]!=="#")return aF[j]??Z;let J=j[1]==="x"?parseInt(j.slice(2),16):parseInt(j.slice(1),10);return J>0&&J<=1114111?String.fromCodePoint(J):Z})}function d8($){let Z=$.indexOf(":");return(Z===-1?$:$.slice(Z+1)).toLowerCase()}function T5($,Z){let j=$.length,J=0;while(J<j){if(Z.stopped?.())return;let W=$.indexOf("<",J);if(W===-1){Z.text(c8($.slice(J)));return}if(W>J)Z.text(c8($.slice(J,W)));if($.startsWith("<!--",W)){let Y=$.indexOf("-->",W+4);if(Y===-1)return;J=Y+3}else if($.startsWith("<![CDATA[",W)){let Y=$.indexOf("]]>",W+9);if(Y===-1)return;Z.text($.slice(W+9,Y)),J=Y+3}else if($.startsWith("<?",W)){let Y=$.indexOf("?>",W+2);if(Y===-1)return;J=Y+2}else if($.startsWith("<!",W)){let Y=$.indexOf(">",W+2);if(Y===-1)return;let z=$.indexOf("[",W+2);if(z!==-1&&z<Y){let X=$.indexOf("]",z+1);if(X===-1)return;let F=$.indexOf(">",X+1);if(F===-1)return;J=F+1}else J=Y+1}else if($[W+1]==="/"){let Y=$.indexOf(">",W+2);if(Y===-1)return;Z.close(d8($.slice(W+2,Y).trim())),J=Y+1}else{let Y=rF($,W+1);if(Y===-1)return;let z=$.slice(W+1,Y),X=z.endsWith("/");if(X)z=z.slice(0,-1);let F=z.search(/[\s]|$/),G=d8(z.slice(0,F));if(G){if(Z.open(G,tF(z.slice(F)),X),X)Z.close(G)}J=Y+1}}}function rF($,Z){let j=null;for(let J=Z;J<$.length;J++){let W=$[J];if(j){if(W===j)j=null}else if(W==='"'||W==="'")j=W;else if(W===">")return J}return-1}function tF($){let Z={},j=/([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;for(let J of $.matchAll(j))Z[d8(J[1])]=c8(J[2]??J[3]??"");return Z}class J0 extends Error{url;status;constructor($,Z=null,j=null){super($);this.url=Z;this.status=j;this.name="SitemapError"}}var N5="http://www.sitemaps.org/schemas/sitemap/0.9",eF="http://www.w3.org/1999/xhtml",i8=`<?xml version="1.0" encoding="UTF-8"?>
3
- `,I5=`<urlset xmlns="${N5}" xmlns:xhtml="${eF}">
4
- `,M5=`</urlset>
5
- `,J$=50000,kZ=52428800,L5=2048,$G=new Set(["always","hourly","daily","weekly","monthly","yearly","never"]),ZG=/^\d{4}(-\d{2}(-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:\d{2}))?)?)?$/,jG="application/xml; charset=utf-8",P5=new TextEncoder;function s8($,Z){let j;try{j=new URL($)}catch{throw new J0(`Sitemap: ${Z} "${$}" is not an absolute URL.`)}if(j.protocol!=="http:"&&j.protocol!=="https:")throw new J0(`Sitemap: ${Z} "${$}" is not an http(s) URL.`);let J=j.href;if(J.length>L5)throw new J0(`Sitemap: ${Z} is over ${L5} characters: "${J.slice(0,80)}\u2026".`);return J}function H5($,Z){if($ instanceof Date){if(Number.isNaN($.getTime()))throw new J0(`Sitemap: lastmod of ${Z} is an invalid Date.`);return $.toISOString()}if(!ZG.test($))throw new J0(`Sitemap: lastmod "${$}" of ${Z} is not a W3C datetime (e.g. "2026-10-07" or "2026-10-07T12:00:00Z").`);return $}function JG($){let Z=s8($.loc,"loc"),j=`<url><loc>${j$(Z)}</loc>`;if($.lastmod!=null)j+=`<lastmod>${j$(H5($.lastmod,Z))}</lastmod>`;if($.changefreq!=null){if(!$G.has($.changefreq))throw new J0(`Sitemap: changefreq "${$.changefreq}" of ${Z} is not one the protocol knows.`);j+=`<changefreq>${$.changefreq}</changefreq>`}if($.priority!=null){let J=$.priority;if(!Number.isFinite(J)||J<0||J>1)throw new J0(`Sitemap: priority ${J} of ${Z} is not between 0 and 1.`);j+=`<priority>${Number(J.toFixed(4))}</priority>`}for(let J of $.alternates??[]){let W=J.hrefLang?.trim();if(!W)throw new J0(`Sitemap: an alternate of ${Z} has no hrefLang.`);let Y=s8(J.href,`alternate href of ${Z}`);j+=`<xhtml:link rel="alternate" hreflang="${j$(W)}" href="${j$(Y)}"/>`}return`${j}</url>
6
- `}function WG($){let Z=$.maxUrls??J$,j=$.maxBytes??kZ;if(!Number.isInteger(Z)||Z<1||Z>J$)throw RangeError(`Sitemap: maxUrls must be an integer from 1 to ${J$}.`);if(!Number.isInteger(j)||j<1||j>kZ)throw RangeError(`Sitemap: maxBytes must be an integer from 1 to ${kZ}.`);return{maxUrls:Z,maxBytes:j}}function C5($,Z={}){let{maxUrls:j,maxBytes:J}=WG(Z),W=P5.encode(i8+I5+M5).byteLength,Y=[],z=[],X=W,F=()=>{Y.push(i8+I5+z.join("")+M5),z=[],X=W};for(let G of $){let Q=JG(G),O=P5.encode(Q).byteLength;if(W+O>J)throw new J0(`Sitemap: the entry for ${G.loc} alone is over maxBytes (${J}).`);if(z.length===j||X+O>J)F();z.push(Q),X+=O}if(z.length>0||Y.length===0)F();return Y}function _5($){let Z="",j=0;for(let J of $){if(++j>J$)throw new J0(`Sitemap: an index can list at most ${J$} sitemaps.`);let W=s8(J.loc,"sitemap loc");if(Z+=`<sitemap><loc>${j$(W)}</loc>`,J.lastmod!=null)Z+=`<lastmod>${j$(H5(J.lastmod,W))}</lastmod>`;Z+=`</sitemap>
7
- `}return`${i8}<sitemapindex xmlns="${N5}">
8
- ${Z}</sitemapindex>
9
- `}function u8($,Z,j){let J=new Headers(j);if(!J.has("content-type"))J.set("content-type",jG);return new Response($,{status:Z,headers:J})}function YG($){if($===null||$===void 0||$==="")return null;let Z=String($);return/^[1-9]\d{0,8}$/.test(Z)?Number(Z):NaN}function zG($,Z={}){let j=C5($,Z),J=YG(Z.page);if(J!==null){let Y=j[J-1];return Y?u8(Y,200,Z.headers):new Response("Not found",{status:404,headers:{"cache-control":"no-store"}})}if(j.length===1)return u8(j[0],200,Z.headers);let W=Z.pageUrl;if(!W)throw new J0(`Sitemap: the entries need ${j.length} files, so Sitemap.response needs \`pageUrl\` to list them in an index.`);return u8(_5(j.map((Y,z)=>({loc:W(z+1)}))),200,Z.headers)}function l8($){try{let Z=new URL($.trim());return Z.protocol==="http:"||Z.protocol==="https:"?Z.href:null}catch{return null}}function x5($,Z={}){let j=Z.maxUrls??1/0,J=$.replace(/^\uFEFF/,"").trimStart();if(!J.startsWith("<")){let K=[];for(let D of J.split(/\r?\n/)){if(K.length>=j)break;let B=D.trim()?l8(D):null;if(B)K.push({loc:B})}if(K.length===0&&J.length>0)throw new J0("Sitemap: the document is neither XML nor a list of URLs.");return{kind:"urlset",urls:K}}let W=null,Y=[],z=[],X=[],F=null,G=null,Q="",O=()=>W==="index"?z.length:Y.length;if(T5(J,{stopped:()=>O()>=j,open(K,D){let B=X[X.length-1];if(X.push(K),W===null){if(K==="urlset")W="urlset";else if(K==="sitemapindex")W="index";return}if(W==="urlset"&&K==="url"&&B==="urlset"||W==="index"&&K==="sitemap"&&B==="sitemapindex")F={};else if(F&&(B==="url"||B==="sitemap")&&(K==="loc"||K==="lastmod"||K==="changefreq"||K==="priority"))G=K,Q="";else if(F&&W==="urlset"&&B==="url"&&K==="link"){let U=D.href?l8(D.href):null;if(D.rel?.toLowerCase()==="alternate"&&D.hreflang&&U)(F.alternates??=[]).push({hrefLang:D.hreflang,href:U})}},close(K){let D=X.lastIndexOf(K);if(D===-1)return;if(X.length=D,G&&K===G&&F)F[G]=Q.trim(),G=null;else if(F&&(K==="url"||K==="sitemap")){let B=F;F=null,G=null;let U=B.loc?l8(B.loc):null;if(!U)return;if(W==="index"){z.push(B.lastmod?{loc:U,lastmod:B.lastmod}:{loc:U});return}let V={loc:U};if(B.lastmod)V.lastmod=B.lastmod;if(B.changefreq)V.changefreq=B.changefreq;let I=B.priority?Number(B.priority):NaN;if(Number.isFinite(I))V.priority=I;if(B.alternates)V.alternates=B.alternates;Y.push(V)}},text(K){if(G)Q+=K}}),W===null)throw new J0("Sitemap: the document has no <urlset> or <sitemapindex>.");return W==="index"?{kind:W,sitemaps:z}:{kind:W,urls:Y}}async function*XG($,Z={}){let{maxUrls:j=J$,maxSitemaps:J=50,maxDepth:W=3,maxSize:Y=kZ,onError:z,...X}=Z,F=[{url:String($),depth:0}],G=new Set,Q=0,O=0;while(F.length>0&&O<j&&Q<J){let K=F.shift(),D=K.url.replace(/#.*$/,"");if(G.has(D))continue;G.add(D),Q++;let B;try{let U=await p$(K.url,{...X,maxSize:Y});if(!U.ok)throw U.body?.cancel().catch(()=>{}),new J0(`Sitemap: ${K.url} answered ${U.status}.`,K.url,U.status);let V=k3(await v3(U,Y));B=x5(V,{maxUrls:Math.max(j-O,J-Q)})}catch(U){if(K.depth===0||!z||X.signal?.aborted)throw U;z(U,K.url);continue}if(B.kind==="index"){if(K.depth>=W)continue;F=B.sitemaps.slice(0,J-Q).map((V)=>({url:V.loc,depth:K.depth+1})).concat(F);continue}for(let U of B.urls)if(yield{...U,sitemap:K.url},++O>=j)return}}var S5={response:zG,chunk:C5,index:_5,parse:x5,read:XG,MAX_URLS:J$,MAX_BYTES:kZ};var FG=512000,GG=new TextEncoder;function f5($){let Z=$.trim();if(Z==="*")return"*";return(/^[a-zA-Z_-]+/.exec(Z)?.[0]??"").toLowerCase()}function A5($){let Z="";for(let j=0;j<$.length;j++){let J=$[j];if(J==="%"&&/^[0-9a-fA-F]{2}$/.test($.slice(j+1,j+3)))Z+=`%${$.slice(j+1,j+3).toUpperCase()}`,j+=2;else if(J.charCodeAt(0)>126||J.charCodeAt(0)<=32){let W=$.codePointAt(j);if(W>65535)j++;for(let Y of GG.encode(String.fromCodePoint(W)))Z+=`%${Y.toString(16).toUpperCase().padStart(2,"0")}`}else Z+=J}return Z}function QG($,Z){let j=$.endsWith("$"),J=j?$.slice(0,-1):$,W=0,Y=0,z=-1,X=0;while(Y<Z.length)if(W<J.length&&J[W]!=="*"&&J[W]===Z[Y])W++,Y++;else if(W<J.length&&J[W]==="*")z=W++,X=Y;else if(W===J.length&&!j)return!0;else if(z!==-1)W=z+1,Y=++X;else return!1;while(W<J.length&&J[W]==="*")W++;return W===J.length}class h${groups;sitemaps;status;constructor($,Z,j="parsed"){this.groups=$;this.sitemaps=Z;this.status=j}groupsFor($){let Z=f5($)||"*";if(Z!=="*"){let j=this.groups.filter((J)=>J.userAgents.includes(Z));if(j.length>0)return j}return this.groups.filter((j)=>j.userAgents.includes("*"))}isAllowed($,Z="*"){let j;if($ instanceof URL||/^[a-z][a-z0-9+.-]*:/i.test($)){let W=new URL(String($));j=W.pathname+W.search}else j=$.startsWith("/")?$:`/${$}`;if(j==="/robots.txt")return!0;if(this.status==="unavailable")return!0;if(this.status==="unreachable")return!1;j=A5(j);let J=null;for(let W of this.groupsFor(Z))for(let Y of W.rules){if(!QG(Y.path,j))continue;let z=Y.path.length,X=Y.type==="allow";if(!J||z>J.length||z===J.length&&X)J={length:z,allow:X}}return J?J.allow:!0}crawlDelay($="*"){for(let Z of this.groupsFor($))if(Z.crawlDelay!==void 0)return Z.crawlDelay;return null}}var KG={"user-agent":"user-agent",useragent:"user-agent","user agent":"user-agent",allow:"allow",disallow:"disallow",dissallow:"disallow",disalow:"disallow",sitemap:"sitemap","site-map":"sitemap","crawl-delay":"crawl-delay"};function E5($,Z={}){let j=[],J=[],W=null,Y=!1;for(let z of $.replace(/^\uFEFF/,"").split(/\r\n|\r|\n/)){let X=z.indexOf("#"),F=(X===-1?z:z.slice(0,X)).trim(),G=F.indexOf(":");if(G===-1)continue;let Q=KG[F.slice(0,G).trim().toLowerCase()],O=F.slice(G+1).trim();if(!Q)continue;if(Q==="sitemap"){if(!O||/\s/.test(O))continue;try{let K=Z.url?new URL(O,Z.url):new URL(O);if(K.protocol==="http:"||K.protocol==="https:")J.push(K.href)}catch{}continue}if(Q==="user-agent"){if(!Y||!W)W={userAgents:[],rules:[]},j.push(W),Y=!0;let K=f5(O);if(K)W.userAgents.push(K);continue}if(!W)continue;if(Y=!1,Q==="crawl-delay"){let K=Number(O);if(Number.isFinite(K)&&K>=0)W.crawlDelay=K;continue}if(!O)continue;W.rules.push({type:Q,path:A5(O)})}return new h$(j,J)}async function OG($,Z={}){let{maxSize:j=FG,...J}=Z,W=new URL("/robots.txt",$),Y=await p$(W,{...J,maxSize:Number.MAX_SAFE_INTEGER}),z=Y.status;if(z===429||z>=500)return Y.body?.cancel().catch(()=>{}),new h$([],[],"unreachable");if(z>=400)return Y.body?.cancel().catch(()=>{}),new h$([],[],"unavailable");let X=await v3(Y,j,!0),F=k3(X);if(X.byteLength>=j)F=F.slice(0,Math.max(0,F.lastIndexOf(`
10
- `)));return E5(F,{url:Y.url})}function n8($){return $===void 0?[]:typeof $==="string"?[$]:$}function y3($,Z){if(/[\r\n]/.test(Z))throw TypeError(`Robots: the ${$} value ${JSON.stringify(Z)} has a line break in it.`);return`${$}: ${Z}
11
- `}function R5($){let Z=[];for(let J of $.rules??[]){let W=n8(J.userAgent);if(W.length===0)throw TypeError("Robots: a rule needs at least one userAgent.");let Y=W.map((X)=>y3("User-agent",X)).join(""),z=[...n8(J.allow).map((X)=>["Allow",X]),...n8(J.disallow).map((X)=>["Disallow",X])];for(let[X,F]of z){if(!F.startsWith("/")&&!F.startsWith("*"))throw TypeError(`Robots: ${X} "${F}" must start with "/" or "*".`);Y+=y3(X,F)}if(z.length===0)Y+=`Disallow:
12
- `;if(J.crawlDelay!==void 0){if(!Number.isFinite(J.crawlDelay)||J.crawlDelay<0)throw TypeError(`Robots: crawlDelay ${J.crawlDelay} is not a number of seconds.`);Y+=y3("Crawl-delay",String(J.crawlDelay))}Z.push(Y)}let j=($.sitemaps??[]).map((J)=>{let W;try{W=new URL(J)}catch{throw TypeError(`Robots: sitemap "${J}" is not an absolute URL.`)}return y3("Sitemap",W.href)});if(j.length>0)Z.push(j.join(""));return Z.join(`
13
- `)}function BG($,Z={}){let j=new Headers(Z.headers);if(!j.has("content-type"))j.set("content-type","text/plain; charset=utf-8");return new Response(R5($),{status:200,headers:j})}var b5={response:BG,text:R5,parse:E5,fetch:OG};import{createHmac as w5,randomBytes as DG}from"crypto";var a8="v2.";function r8($){return $.startsWith(a8)}function c$(){let $=process.env.SECRET;if(!$)throw Error("Signing in needs a secret to mint session tokens with. Set SECRET in the environment.");return $}function v5($){let Z=DG(16).toString("hex"),j=w5("sha256",c$()).update(`${$}:${Z}`).digest("hex");return`${a8}${j}`}function q3($,Z){let j=w5("sha256",c$()).update(`legacy-session:${Z}:${$}`).digest("hex");return`${a8}${j}`}import{createHash as TG,createHmac as IG,randomInt as MG,timingSafeEqual as q5}from"crypto";function k5($,Z){return Math.floor($/Z)*Z}function UG($,Z){if(Z<=0)return 0;return Math.min(1,Math.max(0,(Z-$)/Z))}function t8($,Z,j,J){return Z*UG(j,J)+$}function VG($){let{current:Z,previous:j,elapsed:J,window:W,limit:Y,cost:z}=$,X=Y-z;if(X<0)return W;let F=Math.max(0,W-J);if(j>0){let Q=W*(1-(X-Z)/j);if(Q<=W)return Math.max(0,Math.ceil(Q-J))}if(Z<=X)return F;if(Z<=0)return F;let G=W*(1-X/Z);return F+Math.max(0,Math.ceil(G))}function y5($){let{allowed:Z,current:j,previous:J,now:W,elapsed:Y,window:z,limit:X,cost:F}=$;if(Z){let Q=t8(j,J,Y,z);return{allowed:!0,limit:X,remaining:Math.max(0,Math.floor(X-Q)),resetAt:W-Y+z,retryAfter:0}}let G=VG({current:j,previous:J,elapsed:Y,window:z,limit:X,cost:F});return{allowed:!1,limit:X,remaining:0,resetAt:W+G,retryAfter:G}}class e8{}class $j extends e8{buckets=new Map;maxKeys;constructor($={}){super();this.maxKeys=Math.max(1,$.maxKeys??1e5)}consume($){let{key:Z,limit:j,window:J}=$,W=$.cost??1,Y=Date.now(),z=k5(Y,J),X=Y-z,F=this.roll(Z,J,z);F.limit=j;let Q=t8(F.current,F.previous,X,J)+W<=j;if(Q)F.current+=W;if(this.buckets.delete(Z),this.buckets.set(Z,F),this.buckets.size>this.maxKeys)this.evict(Y);return y5({allowed:Q,current:F.current,previous:F.previous,now:Y,elapsed:X,window:J,limit:j,cost:W})}clear(){this.buckets.clear()}get size(){return this.buckets.size}roll($,Z,j){let J=this.buckets.get($);if(!J||J.window!==Z)return{window:Z,limit:0,windowStart:j,current:0,previous:0};if(J.windowStart===j)return J;if(J.windowStart+Z===j)return J.previous=J.current,J.current=0,J.windowStart=j,J;return J.previous=0,J.current=0,J.windowStart=j,J}evict($){for(let[J,W]of this.buckets)if($-W.windowStart>=W.window*2)this.buckets.delete(J);let Z=this.maxKeys-Math.floor(this.maxKeys/10);if(this.buckets.size<=Z)return;let j=[...this.buckets].map(([J,W],Y)=>({key:J,order:Y,spent:W.limit>0?(W.current+W.previous)/W.limit:0}));j.sort((J,W)=>J.spent-W.spent||J.order-W.order);for(let{key:J}of j){if(this.buckets.size<=Z)break;this.buckets.delete(J)}}}var p5="h1.";function g3($,Z,j){let J=IG("sha256",c$()).update(`gemi:one-time:${$}:${Z}:${j}`).digest("hex");return`${p5}${J}`}function qZ($,Z,j,J){let W=typeof J==="string"?J:"",Y=typeof j==="string"?j:"",z=Y.startsWith(p5),X=g3($,Z,W),F=Buffer.from(z?X:W),G=Buffer.from(Y);if(F.length!==G.length||W===""||Y==="")return q5(F,F),!1;return q5(F,G)}function h5($){let Z="";for(let j=0;j<$;j++)Z+=String(MG(0,10));return Z}var c5=320;function gZ($){if(typeof $!=="string")return null;let Z=$.trim();if(Z===""||Z.length>c5)return null;return Z.toLowerCase()}function m3($){if(typeof $!=="string")return null;let Z=$.trim();if(Z.length>c5)return null;let j=Z.toLowerCase();if(j.length<3||j.length>254||!/^[^\s@]+@[^\s@]+$/.test(j))return null;return j}var g5=null;function d5(){try{let $=T();if(typeof $?.bound==="function"&&$.bound($1))return $.make($1)}catch{}return g5??=new $1({driver:new $j,limit:1000,window:60}),g5}function m5($){return $.length<=64?$:`sha256:${TG("sha256").update($).digest("hex")}`}async function d$($,Z,j,J){let W=d5(),Y=[[`auth:code-${$}:ip:${m5(g$(j))}`,J.perIp]];if(Z!==null)Y.push([`auth:code-${$}:email:${m5(Z)}`,J.perEmail]);for(let[z,X]of Y){if(!X)continue;let[F,G]=X,Q=await W.consume(z,{limit:F,window:G});if(!Q.allowed)throw new vZ(Q)}}async function u5($,Z,j,J=10){let W=Math.max(86400,Math.ceil(J*60*(j+1)));return(await d5().consume(`auth:code-attempt:${$}:${Z}`,{limit:j,window:W})).allowed}import{randomBytes as jj}from"crypto";class Zj extends _{schema={name:{string:"Invalid name",required:"Name is required","min:2":"Name must be at least 3 characters"},email:{string:"Invalid email",required:"Email is required",email:"Invalid email"},password:{"min:8":"Password must be at least 9 characters"}}}function p3($,Z,j,J=1/0){if(!Number.isInteger(Z)||Z<j||Z>J){let W=J===1/0?`an integer of at least ${j}`:`an integer from ${j} to ${J}`;throw Error(`auth.emailCode.${$} must be ${W}, got ${Z}`)}}function Jj($={}){let Z=$.length??6,j=$.expiresInMinutes??10,J=$.linkExpiresInMinutes??10080,W=$.maxAttempts??5;return p3("length",Z,4,12),p3("expiresInMinutes",j,1),p3("linkExpiresInMinutes",J,1),p3("maxAttempts",W,1),{enabled:$.enabled??!1,createUser:$.createUser??!1,length:Z,expiresInMinutes:j,linkExpiresInMinutes:J,maxAttempts:W,requestLimit:{perEmail:$.requestLimit?.perEmail??[5,900],perIp:$.requestLimit?.perIp??[20,900]},verifyLimit:{perEmail:$.verifyLimit?.perEmail??[10,900],perIp:$.verifyLimit?.perIp??[50,900]},uniformMagicLinkResponse:$.uniformMagicLinkResponse??!1,send:$.send??(({email:Y,code:z})=>{if(Bun.env.NODE_ENV!=="production")console.info(`[gemi] email code for ${Y}: ${z} (set auth.emailCode.send to deliver it)`)})}}async function LG($,Z){if(typeof Z!=="string"||Z==="")return!1;try{return await Bun.password.verify($,Z)}catch{return!1}}function HV($){return $}function l5($={}){return{basePath:"/auth",verifyEmail:!0,redirectPath:"/dashboard",signInPath:"/auth/sign-in",sessionExpiresInHours:24,sessionAbsoluteExpiresInHours:672,cookieDomain:null,migrateLegacySession:null,signUpRequest:Zj,oauthProviders:{},oauthFailurePath:null,oauthCompleteProfilePath:null,connections:{},connectionStore:null,onConnected:()=>{},verifyPassword:LG,hashPassword:async(Z)=>await Bun.password.hash(Z),generateForgotPasswordToken:async()=>jj(32).toString("hex"),generateEmailVerificationToken:()=>{if(!($.verifyEmail??!0))return"";return jj(32).toString("hex")},generateMagicLinkToken:()=>jj(32).toString("hex"),extendSession:()=>({}),onUserCreated:async()=>{},onSignUp:()=>{},onSignIn:()=>{},onSignOut:()=>{},onForgotPassword:()=>{},onResetPassword:()=>{},onMagicLinkCreated:()=>{},emailCode:Jj($.emailCode),generateCode:()=>{return},onAuthenticated:()=>{}}}function Wj($){if($&&typeof $==="object")delete $.password;return $}function PG(){return new Proxy({},{get:($,Z)=>s5(Z)})}var i5=new WeakMap;function n5($){if($&&typeof $==="object"){for(let Z of Object.values($))n5(Z);Object.freeze($)}return $}var NG={select:{id:!0,publicId:!0,email:!0,name:!0,locale:!0,globalRole:!0,accounts:{select:{id:!0,publicId:!0,organizationRole:!0,organization:!0}}}},HG=n5({token:!0,expiresAt:!0,absoluteExpiresAt:!0,updatedAt:!0,location:!0,userAgent:!0,user:NG});class Yj{models;constructor($=PG()){this.models=$}run($){return this.models.User.asSystem($)}sessionSelect(){return HG}transaction($){return this.models.User.transaction($)}withLegacySessionLock($,Z){let j=this.models.User.$connection??W$(),J=T(Y$).connection(j),W=()=>this.transaction(async()=>{if(J.dialect==="postgres"){let X=`gemi:legacy-session:${$}`;await T1()`SELECT pg_advisory_xact_lock(hashtextextended(${X}, 0))`}return Z()});if(J.dialect!=="sqlite"||T1())return W();let z=(i5.get(J)??Promise.resolve()).then(W,W);return i5.set(J,z.catch(()=>{})),z}async createUser($){let Z=await this.run(()=>this.models.User.create({data:$}));return Wj(Z)}async updateUserPassword($){let Z=await this.run(()=>this.models.User.update({where:{id:$.id},data:{password:$.password}}));return Wj(Z)}async findUserByEmailAddress($,Z){return await this.run(()=>this.models.User.findUnique({where:Z?{email:$,emailVerifiedAt:{not:null}}:{email:$}}))}async findUserByVerificationToken($){if(typeof $!=="string"||$==="")return null;return await this.run(()=>this.models.User.findFirst({where:{verificationToken:$}}))}async verifyUser($){return await this.run(()=>this.models.User.update({where:{email:$},data:{emailVerifiedAt:new Date}}))}async createSession($){return await this.run(()=>this.models.Session.create({data:$,include:{user:!0}}))}async createSessionV2($){return await this.run(()=>this.models.Session.create({data:$,select:this.sessionSelect()}))}async findSession($){if(!$.token)return null;try{return await this.run(()=>this.models.Session.findUnique({where:{token:$.token},select:this.sessionSelect()}))}catch(Z){return console.error("findSession failed:",Z),null}}async updateSession($){return await this.run(()=>this.models.Session.update({where:{token:$.token},data:{expiresAt:$.expiresAt},select:this.sessionSelect()}))}async deleteSession($){if(!$.token)return;await this.run(()=>this.models.Session.deleteMany({where:{token:$.token}}))}async claimLegacySession($){if(!$.token)return!1;let{count:Z}=await this.run(()=>this.models.Session.deleteMany({where:{token:$.token}}));return Z>0}async deleteAllUserSessions($){await this.run(()=>this.models.Session.deleteMany({where:{userId:$}}))}async createPasswordResetToken($){return await this.run(()=>this.models.PasswordResetToken.create({data:{token:$.token,user:{connect:{id:$.user.id}}}}))}async findPasswordResetToken($){if(typeof $.token!=="string"||$.token==="")return null;return await this.run(()=>this.models.PasswordResetToken.findUnique({where:{token:$.token},include:{user:!0}}))}async deletePasswordResetToken($){return await this.run(()=>this.models.PasswordResetToken.delete({where:{token:$.token}}))}async findInvitation($,Z){if(typeof $!=="string"||typeof Z!=="string")return null;return await this.run(()=>this.models.OrganizationInvitation.findFirst({where:{publicId:$,email:Z}}))}async deleteInvitationById($){await this.run(()=>this.models.OrganizationInvitation.delete({where:{publicId:$}}))}async createAccount($){return await this.run(()=>this.models.Account.create({data:{userId:$.userId,organizationId:$.organizationId,organizationRole:$.organizationRole}}))}async createMagicLinkToken($){return await this.run(()=>this.models.MagicLinkToken.create({data:{email:$.email,token:$.token,pin:$.pin}}))}async findUserMagicLinkToken($){let Z=(j)=>typeof j==="string"&&j!=="";if(!Z($.email))return null;if($.token!==void 0&&!Z($.token))return null;if($.token===void 0&&!Z($.pin))return null;return await this.run(()=>$.token?this.models.MagicLinkToken.findUnique({where:{token_email:{token:$.token,email:$.email}}}):this.models.MagicLinkToken.findUnique({where:{pin_email:{pin:$.pin,email:$.email}}}))}async findMagicLinkTokenByEmail($){return await this.run(()=>this.models.MagicLinkToken.findFirst({where:{email:$},orderBy:{id:"desc"}}))}async claimMagicLinkToken($){let{count:Z}=await this.run(()=>this.models.MagicLinkToken.deleteMany({where:{id:$}}));return Z===1}async deleteMagicLinkToken($){await this.run(()=>this.models.MagicLinkToken.deleteMany({where:{email:$}}))}async createSocialAccount($){return await this.run(()=>this.models.SocialAccount.create({data:$}))}async findUserBySocialAccount($,Z){if(!Z)return null;let j=await this.run(()=>this.models.SocialAccount.findFirst({where:{provider:$,providerId:Z},include:{user:!0}}));return j?Wj(j.user):null}async findSocialAccounts($,Z){return await this.run(()=>this.models.SocialAccount.findMany({where:{userId:$,provider:Z},orderBy:{id:"asc"}}))}async claimSocialAccount($,Z){let{count:j}=await this.run(()=>this.models.SocialAccount.updateMany({where:{id:$.id,providerId:$.providerId},data:{providerId:Z}}));return j===1}}import{randomBytes as BO}from"crypto";function E0($,Z,j,J,W){return h0(Z,QW($,Z),j,J,W)}function h0($,Z,j,J,W,Y){let z=Qj(Z,j,J);if(W&&Z!==z)throw RangeError(s9($,Z,j,J,Y));return z}function QW($,Z){let j=$[Z];if(j===void 0)throw TypeError(m2(Z));return j}function K0($){return $!==null&&/object|function/.test(typeof $)}function w0($,Z=Map){let j=new Z;return(J,...W)=>{if(j.has(J))return j.get(J);let Y=$(J,...W);return j.set(J,Y),Y}}function Ij($){return G$({name:$},1)}function G$($,Z){return l0((j)=>({value:j,configurable:1,writable:!Z}),$)}function KW($){return l0((Z)=>({get:Z,configurable:1}),$)}function j6($){return{[Symbol.toStringTag]:{value:$,configurable:1}}}function a$($,Z){let j={},J=$.length;for(let W of Z)j[$[--J]]=W;return j}function l0($,Z,j){let J={};for(let W in Z)J[W]=$(Z[W],W,j);return J}function sZ($,Z,j){let J={};for(let W=0;W<Z.length;W++){let Y=Z[W];J[Y]=$(Y,W,j)}return J}function CG($,Z,j){let J={};for(let W=0;W<$.length;W++)J[Z[W]]=j[$[W]];return J}function k0($,Z){let j={};for(let J of $)j[J]=Z[J];return j}function Mj($,Z){let j={};for(let J in Z)$.has(J)||(j[J]=Z[J]);return j}function Lj($){$={...$};let Z=Object.keys($);for(let j of Z)$[j]===void 0&&delete $[j];return $}function OW($,Z){for(let j of Z)if(!(j in $))return 0;return 1}function BW($,Z,j){for(let J of $)if(Z[J]!==j[J])return 0;return 1}function DW($,Z,j){let J={...j};for(let W=0;W<Z;W++)J[$[W]]=0;return J}function b($,...Z){return(...j)=>$(...Z,...j)}function o5($){return $[0].toUpperCase()+$.substring(1)}function nZ($){return $.slice().sort()}function s3($,Z){return String(Z).padStart($,"0")}function v1($,Z){return Math.sign($-Z)}function Qj($,Z,j){return Math.min(Math.max($,Z),j)}function M1($,Z){return[Math.floor($/Z),pZ($,Z)]}function pZ($,Z){return($%Z+Z)%Z}function q1($,Z){return[J6($,Z),Pj($,Z)]}function J6($,Z){return Math.trunc($/Z)||0}function Pj($,Z){return $%Z||0}function h3($){return Math.abs($%1)===0.5}function UW($,Z,j){let J=0,W=0;for(let X=0;X<=Z;X++){let F=$[j[X]],G=j1[X],Q=m/G,[O,K]=q1(F,Q);J+=K*G,W+=O}let[Y,z]=q1(J,m);return[W+Y,z]}function W6($,Z,j){let J={};for(let W=Z;W>=0;W--){let Y=j1[W];J[j[W]]=J6($,Y),$=Pj($,Y)}return J}function VW($){return $===w?g6:[]}function TW($){return $===w?W3:[]}function IW($){return $===w?["year","day"]:[]}function MW($){if($!==void 0)return r($)}function LW($){if($!==void 0)return i0($)}function Nj($){if($!==void 0)return oZ($)}function i0($){return HW(oZ($))}function oZ($){return NW(UQ($))}function Hj($){if($==null)throw TypeError("Cannot be null or undefined");return $}function PW($,Z){if(Z==null)throw RangeError(m2($));return Z}function P1($){if(!K0($))throw TypeError(i9);return $}function Y6($,Z,j=$){if(typeof Z!==$)throw TypeError(Z3(j,Z));return Z}function NW($,Z="number"){if(!Number.isInteger($))throw RangeError(pG(Z,$));return $||0}function HW($,Z="number"){if($<=0)throw RangeError(hG(Z,$));return $}function Cj($){if(typeof $=="symbol")throw TypeError(lG);return String($)}function n3($,Z){return K0($)?String($):r($,Z)}function z6($){if(typeof $=="string")return BigInt($);if(typeof $!="bigint")throw TypeError(uG($));return $}function CW($,Z="number"){if(typeof $=="bigint")throw TypeError(dG(Z));if($=Number($),!Number.isFinite($))throw RangeError(cG(Z,$));return $}function P0($,Z){return Math.trunc(CW($,Z))||0}function _W($,Z){return NW(CW($,Z),Z)}function a5($,Z){return HW(P0($,Z),Z)}function _j($,Z){let[j,J]=q1(Z,m),W=$+j,Y=Math.sign(W);return Y&&Y===-Math.sign(J)&&(W-=Y,J+=Y*m),[W,J]}function l$($,Z,j=1){return _j($[0]+Z[0]*j,$[1]+Z[1]*j)}function i$($,Z){return _j($[0],$[1]+Z)}function g0($,Z){return l$(Z,$,-1)}function H0($,Z){return v1($[0],Z[0])||v1($[1],Z[1])}function xW($,Z,j){return H0($,Z)===-1||H0($,j)===1}function X6($,Z=1){let j=BigInt(m/Z);return[Number($/j),Number($%j)*Z]}function s$($,Z=1){let j=m/Z,[J,W]=q1($,j);return[J,W*Z]}function SW($,Z=1){let[j,J]=$,W=Math.floor(J/Z),Y=m/Z;return BigInt(j)*BigInt(Y)+BigInt(W)}function m0($,Z=1,j){let[J,W]=$,[Y,z]=q1(W,Z);return J*(m/Z)+(Y+(j?z/Z:0))}function xj($,Z,j=M1){let[J,W]=$,[Y,z]=j(W,Z);return[J*(m/Z)+Y,z]}function Sj($,Z){let j=$.formatToParts(Z),J={};for(let W of j)J[W.type]=W.value;return J}function fj($){return E0($,"isoYear",iZ,lZ,1),$.isoYear===iZ?E0($,"isoMonth",4,12,1):$.isoYear===lZ&&E0($,"isoMonth",1,9,1),$}function k1($){return N1({...$,...u0,isoHour:12}),$}function N1($){let Z=E0($,"isoYear",iZ,lZ,1),j=Z===iZ?1:Z===lZ?-1:0;return j&&p0(N0({...$,isoDay:$.isoDay+j,isoNanosecond:$.isoNanosecond-j})),$}function p0($){if(!$||xW($,NQ,PQ))throw RangeError(v6);return $}function g1($){return UW($,5,a0)[1]}function F6($){let[Z,j]=M1($,m);return[W6(j,5,a0),Z]}function fW($){return AW($)[0]}function AW($){return xj($,d0)}function C0($){return r$($.isoYear,$.isoMonth,$.isoDay,$.isoHour,$.isoMinute,$.isoSecond,$.isoMillisecond)}function N0($){let Z=C0($);if(Z!==void 0){let[j,J]=q1(Z,b0);return[j,J*J1+($.isoMicrosecond||0)*I$+($.isoNanosecond||0)]}}function Aj($,Z){let[j,J]=F6(g1($)-Z);return p0(N0({...$,isoDay:$.isoDay+J,...j}))}function o3(...$){return r$(...$)/WY}function r$(...$){let[Z,j]=EW(...$),J=Z.valueOf();if(!isNaN(J))return J-j*b0}function EW($,Z=1,j=1,J=0,W=0,Y=0,z=0){let X=$===iZ?1:$===lZ?-1:0,F=new Date;return F.setUTCHours(J,W,Y,z),F.setUTCFullYear($,Z-1,j+X),[F,X]}function p1($,Z){let[j,J]=i$($,Z);J<0&&(J+=m,j-=1);let[W,Y]=M1(J,J1),[z,X]=M1(Y,I$);return G6(j*b0+W,z,X)}function G6($,Z=0,j=0){let J=Math.ceil(Math.max(0,Math.abs($)-LQ)/b0)*Math.sign($),W=new Date($-J*b0);return a$(p6,[W.getUTCFullYear(),W.getUTCMonth()+1,W.getUTCDate()+J,W.getUTCHours(),W.getUTCMinutes(),W.getUTCSeconds(),W.getUTCMilliseconds(),Z,j])}function RW($){return[$.isoYear,$.isoMonth,$.isoDay]}function bW(){return I1}function Ej($,Z){switch(Z){case 2:return Rj($)?29:28;case 4:case 6:case 9:case 11:return 30}return 31}function wW($){return Rj($)?366:365}function Rj($){return $%4==0&&($%100!=0||$%400==0)}function vW($){let[Z,j]=EW($.isoYear,$.isoMonth,$.isoDay);return pZ(Z.getUTCDay()-j,7)||7}function kW({isoYear:$}){return $<1?["bce",1-$]:["ce",$]}function _G($){let Z=C0($);if(Z<CQ)return kW($);let j=Sj(J4(n$),Z),{era:J,eraYear:W}=i7(j,n$);return[J,W]}function Q6($){return Q$($),K6($,1),$}function Q$($){return yW($,1),$}function r5($){return BW(o2,$,yW($))}function yW($,Z){let{isoYear:j}=$,J=E0($,"isoMonth",1,bW(),Z);return{isoYear:j,isoMonth:J,isoDay:E0($,"isoDay",1,Ej(j,J),Z)}}function K6($,Z){return a$(a0,[E0($,"isoHour",0,23,Z),E0($,"isoMinute",0,59,Z),E0($,"isoSecond",0,59,Z),E0($,"isoMillisecond",0,999,Z),E0($,"isoMicrosecond",0,999,Z),E0($,"isoNanosecond",0,999,Z)])}function k($){return $===void 0?0:PY(P1($))}function aZ($,Z=0){$=s0($);let j=NY($),J=vQ($,Z);return[PY($),J,j]}function bj($){return NY(s0($))}function qW($){return $=s0($),t2($,9,6,1)}function t$($,Z,j,J=9,W=0,Y=4){Z=s0(Z);let z=t2(Z,J,W),X=kj(Z),F=z3(Z,Y),G=Y3(Z,J,W,1);return z==null?z=Math.max(j,G):hW(z,G),X=yj(X,G,1),$&&(F=((Q)=>Q<4?(Q+2)%4:Q)(F)),[z,G,X,F]}function O6($,Z=6,j){let J=kj($=qj($,Z6)),W=z3($,7),Y=Y3($,Z);return Y=PW(Z6,Y),J=yj(J,Y,void 0,j),[Y,J,W]}function wj($){return e2(s0($))}function gW($,Z){return vj(s0($),Z)}function vj($,Z=4){let j=pW($);return[z3($,4),...mW(Y3($,Z),j)]}function mW($,Z){return $!=null?[j1[$],$<4?9-3*$:-1]:[Z===void 0?1:10**(9-Z),Z]}function kj($){let Z=$[hZ];return Z===void 0?1:P0(Z,hZ)}function yj($,Z,j,J){let W=J?m:j1[Z+1];if(W){let Y=j1[Z];if(W%(($=h0(hZ,$,1,W/Y-(J?0:1),1))*Y))throw RangeError(Z3(hZ,$))}else $=h0(hZ,$,1,j?1e9:1,1);return $}function pW($){let Z=$[Gj];if(Z!==void 0){if(typeof Z!="number"){if(Cj(Z)==="auto")return;throw RangeError(Z3(Gj,Z))}Z=h0(Gj,Math.floor(Z),0,9,1)}return Z}function s0($){return $===void 0?{}:P1($)}function qj($,Z){return typeof $=="string"?{[Z]:$}:P1($)}function W0($){if($!==void 0){if(K0($))return Object.assign(Object.create(null),$);throw TypeError(i9)}}function B6($,Z){return $&&Object.assign(Object.create(null),$,{overflow:xQ[Z]})}function gj($,Z,j=9,J=0,W){let Y=Z[$];if(Y===void 0)return W?J:void 0;if(Y=Cj(Y),Y==="auto")return W?J:null;let z=Dj[Y];if(z===void 0&&(z=IQ[Y]),z===void 0)throw RangeError(a9($,Y,Dj));return h0($,z,J,j,1,J3),z}function K$($,Z,j,J=0){let W=j[$];if(W===void 0)return J;let Y=Cj(W),z=Z[Y];if(z===void 0)throw RangeError(a9($,Y,Z));return z}function hW($,Z){if(Z>$)throw RangeError(QQ)}function O0($){return{branding:c6,epochNanoseconds:$}}function V0($,Z,j){return{branding:x1,calendar:j,timeZone:Z,epochNanoseconds:$}}function Y0($,Z=$.calendar){return{branding:L$,calendar:Z,...k0(TY,$)}}function z0($,Z=$.calendar){return{branding:M$,calendar:Z,...k0(a2,$)}}function X$($,Z=$.calendar){return{branding:zZ,calendar:Z,...k0(a2,$)}}function a3($,Z=$.calendar){return{branding:XZ,calendar:Z,...k0(a2,$)}}function n0($){return{branding:h6,...k0(VY,$)}}function i($){return{branding:d6,sign:h1($),...k0(i2,$)}}function cW($){return fW($.epochNanoseconds)}function D6($){return xj($.epochNanoseconds,J1)[0]}function dW($){return SW($.epochNanoseconds,I$)}function uW($){return SW($.epochNanoseconds)}function lW($){return $.epochNanoseconds}function D0($){return typeof $=="string"?$:r($.id)}function e$($,Z){return $===Z||D0($)===D0(Z)}function iW($,Z,j,J,W){let Y=F$(J),[z,X]=((V,I)=>{let M=I((V=qj(V,Tj))[MY]),N=wQ(V);return N=PW(Tj,N),[N,M]})(W,$);if(dZ(Math.max(z,Y),X))return t5(J,z);if(!X)throw RangeError(k6);let[F,G,Q]=L6(Z,j,X),O=F2(Q),K=P6(Q),D=G2(Q),B=K(G,F,J),U=D(G,F,B,z);return dZ(z,X)?t5(U,z):((V,I,M,N,A,x,E)=>{let S=h1(V),[P,L]=mj(N,n2(M,V),M,S,A,x,E),g=pj(I,P,L);return V[y[M]]+g*S})(U,O(B),z,G,F,O,K)}function t5($,Z){return m0(Q0($),j1[Z],1)}function mj($,Z,j,J,W,Y,z){let X=y[j],F={...Z,[X]:Z[X]+J},G=z($,W,Z),Q=z($,W,F);return[Y(G),Y(Q)]}function pj($,Z,j){let J=m0(g0(Z,j));if(!J)throw RangeError(j3);return m0(g0(Z,$))/J}function sW($,Z){let[j,J,W]=O6(Z,5,1);return O0(V6($.epochNanoseconds,j,J,W,1))}function nW($,Z,j){let{epochNanoseconds:J,timeZone:W,calendar:Y}=Z,[z,X,F]=O6(j);if(z===0&&X===1)return Z;let G=$(W);if(z===6)J=((Q,O,K,D)=>{let B=_0(K,O),[U,V]=Q(B),I=K.epochNanoseconds,M=v0(O,U),N=v0(O,V);if(xW(I,M,N))throw RangeError(j3);return J7(pj(I,M,N),D)?N:M})(Z7,G,Z,F);else{let Q=G.getOffsetNanosecondsFor(J);J=B$(G,eW(p1(J,Q),z,X,F),Q,2,0,1)}return V0(J,W,Y)}function oW($,Z){return Y0(eW($,...O6(Z)),$.calendar)}function aW($,Z){let[j,J,W]=O6(Z,5);var Y;return n0((Y=W,hj($,rZ(j,J),Y)[0]))}function rW($,Z){let j=$(Z.timeZone),J=_0(Z,j),[W,Y]=Z7(J),z=m0(g0(v0(j,W),v0(j,Y)),q6,1);if(z<=0)throw RangeError(j3);return z}function tW($,Z){let{timeZone:j,calendar:J}=Z,W=((Y,z,X)=>v0(z,Y(_0(X,z))))(j7,$(j),Z);return V0(W,j,J)}function eW($,Z,j,J){return $7($,rZ(Z,j),J)}function $7($,Z,j){let[J,W]=hj($,Z,j);return N1({...D$($,W),...J})}function hj($,Z,j){return F6(m1(g1($),Z,j))}function r3($){return m1($,y6,7)}function rZ($,Z){return j1[$]*Z}function Z7($){let Z=j7($);return[Z,D$(Z,1)]}function j7($){return MQ(6,$)}function xG($,Z,j){let J=Math.min(F$($),6);return ZZ(T6(Q0($,J),Z,j),J)}function U6($,Z,j,J,W,Y,z,X,F,G){if(J===0&&W===1)return $;let Q=dZ(J,X)?N6(X)&&J<6&&j>=6?fG:SG:AG,[O,K,D]=Q($,Z,j,J,W,Y,z,X,F,G);return D&&J!==7&&(O=((B,U,V,I,M,N,A,x)=>{let E=h1(B);for(let S=I+1;S<=V;S++){if(S===7&&V!==7)continue;let P=n2(S,B);P[y[S]]+=E;let L=m0(g0(A(x(M,N,P)),U));if(L&&Math.sign(L)!==E)break;B=P}return B})(O,K,j,Math.max(6,J),z,X,F,G)),O}function V6($,Z,j,J,W){if(Z===6){let Y=((z)=>z[0]+z[1]/m)($);return[m1(Y,j,J),0]}return T6($,rZ(Z,j),J,W)}function T6($,Z,j,J){let[W,Y]=$;J&&Y<0&&(Y+=m,W-=1);let[z,X]=M1(m1(Y,Z,j),m);return _j(W+z,X)}function m1($,Z,j){return J7($/Z,j)*Z}function J7($,Z){return qQ[Z]($)}function SG($,Z,j,J,W,Y){let z=h1($),X=Q0($),F=V6(X,J,W,Y),G=g0(X,F),Q=Math.sign(F[0]-X[0])===z,O=ZZ(F,Math.min(j,6));return[{...$,...O},l$(Z,G),Q]}function fG($,Z,j,J,W,Y,z,X,F,G){let Q=h1($),O=m0(Q0($,5)),K=rZ(J,W),D=m1(O,K,Y),[B,U]=mj(z,{...$,...s2},6,Q,X,F,G),V=D-m0(g0(B,U)),I=0;V&&Math.sign(V)!==Q?Z=i$(B,D):(I+=Q,D=m1(V,K,Y),Z=i$(U,D));let M=C6(D);return[{...$,...M,days:$.days+I},Z,Boolean(I)]}function AG($,Z,j,J,W,Y,z,X,F,G){let Q=h1($),O=y[J],K=n2(J,$);J===7&&($={...$,weeks:$.weeks+Math.trunc($.days/7)});let D=J6($[O],W)*W;K[O]=D;let[B,U]=mj(z,K,J,W*Q,X,F,G),V=D+pj(Z,B,U)*Q*W,I=m1(V,W,Y),M=Math.sign(I-V)===Q;return K[O]=I,[K,M?U:B,M]}function cj($,Z,j,J){let[W,Y,z,X]=((G)=>{let Q=vj(G=s0(G));return[G.timeZone,...Q]})(J),F=W!==void 0;return((G,Q,O,K,D,B)=>{O=T6(O,D,K,1);let U=Q.getOffsetNanosecondsFor(O);return oj(p1(O,U),B)+(G?O$(r3(U)):"Z")})(F,Z(F?$(W):P$),j.epochNanoseconds,Y,z,X)}function dj($,Z,j){let[J,W,Y,z,X,F]=((G)=>{G=s0(G);let Q=e2(G),O=pW(G),K=yQ(G),D=z3(G,4),B=Y3(G,4);return[Q,kQ(G),K,D,...mW(B,O)]})(j);return((G,Q,O,K,D,B,U,V,I,M)=>{K=T6(K,I,V,1);let N=G(O).getOffsetNanosecondsFor(K);return oj(p1(K,N),M)+O$(r3(N),U)+((A,x)=>x!==1?"["+(x===2?"!":"")+D0(A)+"]":"")(O,B)+aj(Q,D)})($,Z.calendar,Z.timeZone,Z.epochNanoseconds,J,W,Y,z,X,F)}function uj($,Z){let[j,J,W,Y]=((G)=>(G=s0(G),[e2(G),...vj(G)]))(Z);return z=$.calendar,X=j,F=Y,oj($7($,W,J),F)+aj(z,X);var z,X,F}function lj($,Z){return j=$.calendar,J=$,W=wj(Z),t3(J)+aj(j,W);var j,J,W}function ij($,Z){return W7($.calendar,Y7,$,wj(Z))}function sj($,Z){return W7($.calendar,EG,$,wj(Z))}function nj($,Z){let[j,J,W]=gW(Z);return Y=W,z7(hj($,J,j)[0],Y);var Y}function I6($,Z){let[j,J,W]=gW(Z,3);return J>1&&($={...$,...xG($,J,j)}),((Y,z)=>{let{sign:X}=Y,F=X===-1?x0(Y):Y,{hours:G,minutes:Q}=F,[O,K]=xj(Q0(F,3),d0,q1);D7(O);let D=rj(K,z),B=z>=0||!X||D;return(X<0?"-":"")+"P"+e5({Y:z$(F.years),M:z$(F.months),W:z$(F.weeks),D:z$(F.days)})+(G||Q||O||B?"T"+e5({H:z$(G),M:z$(Q),S:z$(O,B)+D}):"")})($,W)}function W7($,Z,j,J){let W=D0($),Y=J>1||J===0&&W!==w;return J===1?W===w?Z(j):t3(j):Y?t3(j)+X7(W,J===2):Z(j)}function e5($){let Z=[];for(let j in $){let J=$[j];J&&Z.push(J,j)}return Z.join("")}function oj($,Z){return t3($)+"T"+z7($,Z)}function t3($){return Y7($)+"-"+c0($.isoDay)}function Y7($){let{isoYear:Z}=$;return(Z<0||Z>9999?F7(Z)+s3(6,Math.abs(Z)):s3(4,Z))+"-"+c0($.isoMonth)}function EG($){return c0($.isoMonth)+"-"+c0($.isoDay)}function z7($,Z){let j=[c0($.isoHour),c0($.isoMinute)];return Z!==-1&&j.push(c0($.isoSecond)+((J,W,Y,z)=>rj(J*J1+W*I$+Y,z))($.isoMillisecond,$.isoMicrosecond,$.isoNanosecond,Z)),j.join(":")}function O$($,Z=0){if(Z===1)return"";let[j,J]=M1(Math.abs($),q6),[W,Y]=M1(J,y6),[z,X]=M1(Y,d0);return F7($)+c0(j)+":"+c0(W)+(z||X?":"+c0(z)+rj(X):"")}function aj($,Z){if(Z!==1){let j=D0($);if(Z>1||Z===0&&j!==w)return X7(j,Z===2)}return""}function X7($,Z){return"["+(Z?"!":"")+"u-ca="+$+"]"}function rj($,Z){let j=s3(9,$);return j=Z===void 0?j.replace(pQ,""):j.slice(0,Z),j?"."+j:""}function F7($){return $<0?"-":"+"}function z$($,Z){return $||Z?$.toLocaleString("fullwide",{useGrouping:0}):""}function RG($,Z){let{epochNanoseconds:j}=$,J=(Z.getOffsetNanosecondsFor?Z:Z($.timeZone)).getOffsetNanosecondsFor(j),W=p1(j,J);return{calendar:$.calendar,...W,offsetNanoseconds:J}}function G7($,Z){let j=_0(Z,$);return{calendar:Z.calendar,...k0(TY,j),offset:O$(j.offsetNanoseconds),timeZone:Z.timeZone}}function B$($,Z,j,J=0,W=0,Y,z){if(j!==void 0&&J===1&&(J===1||z))return Aj(Z,j);let X=$.getPossibleInstantsFor(Z);if(j!==void 0&&J!==3){let F=((G,Q,O,K)=>{let D=N0(Q);K&&(O=r3(O));for(let B of G){let U=m0(g0(B,D));if(K&&(U=r3(U)),U===O)return B}})(X,Z,j,Y);if(F!==void 0)return F;if(J===0)throw RangeError(WQ)}return z?N0(Z):v0($,Z,W,X)}function v0($,Z,j=0,J=$.getPossibleInstantsFor(Z)){if(J.length===1)return J[0];if(j===1)throw RangeError(YQ);if(J.length)return J[j===3?1:0];let W=N0(Z),Y=((X,F)=>{let G=X.getOffsetNanosecondsFor(i$(F,-m));return ej(X.getOffsetNanosecondsFor(i$(F,m))-G)})($,W),z=Y*(j===2?-1:1);return(J=$.getPossibleInstantsFor(p1(W,z)))[j===2?0:J.length-1]}function tj($){if(Math.abs($)>=m)throw RangeError(jQ);return $}function ej($){if($>m)throw RangeError(JQ);return $}function $2($,Z,j){return O0(p0(l$(Z.epochNanoseconds,((J)=>{if(U7(J))throw RangeError(FQ);return Q0(J,5)})($?x0(j):j))))}function Z2($,Z,j,J,W,Y=Object.create(null)){let z=Z(J.timeZone),X=$(J.calendar);return{...J,...z2(z,X,J,j?x0(W):W,Y)}}function j2($,Z,j,J,W=Object.create(null)){let{calendar:Y}=j;return Y0(X2($(Y),j,Z?x0(J):J,W),Y)}function J2($,Z,j,J,W){let{calendar:Y}=j;return z0(M6($(Y),j,Z?x0(J):J,W),Y)}function W2($,Z,j,J,W=Object.create(null)){let Y=j.calendar,z=$(Y),X=cZ(z,j);Z&&(J=H6(J)),J.sign<0&&(X=z.dateAdd(X,{...U0,months:1}),X=D$(X,-1));let F=z.dateAdd(X,J,W);return X$(cZ(z,F),Y)}function Y2($,Z,j){return n0(Q7(Z,$?x0(j):j)[0])}function z2($,Z,j,J,W){let Y=Q0(J,5),z=j.epochNanoseconds;if(U7(J)){let X=_0(j,$);z=l$(v0($,{...M6(Z,X,{...J,...s2},W),...k0(a0,X)}),Y)}else z=l$(z,Y),k(W);return{epochNanoseconds:p0(z)}}function X2($,Z,j,J){let[W,Y]=Q7(Z,j);return N1({...M6($,Z,{...j,...s2,days:j.days+Y},J),...W})}function M6($,Z,j,J){if(j.years||j.months||j.weeks)return $.dateAdd(Z,j,J);k(J);let W=j.days+Q0(j,5)[0];return W?k1(D$(Z,W)):Z}function cZ($,Z,j=1){return D$(Z,j-$.day(Z))}function Q7($,Z){let[j,J]=Q0(Z,5),[W,Y]=F6(g1($)+J);return[W,j+Y]}function D$($,Z){return Z?{...$,...G6(C0($)+Z*b0)}:$}function L6($,Z,j){let J=$(j.calendar);return N6(j)?[j,J,Z(j.timeZone)]:[{...j,...u0},J]}function F2($){return $?lW:N0}function P6($){return $?b(z2,$):X2}function G2($){return $?b(wG,$):vG}function N6($){return $&&$.epochNanoseconds}function dZ($,Z){return $<=6-(N6(Z)?1:0)}function Q2($,Z,j,J,W,Y,z){let X=$(s0(z).relativeTo),F=Math.max(F$(W),F$(Y));if(dZ(F,X))return i($Z(((U,V,I,M)=>{let N=l$(Q0(U),Q0(V),M?-1:1);if(!Number.isFinite(N[0]))throw RangeError(v6);return{...U0,...ZZ(N,I)}})(W,Y,F,J)));if(!X)throw RangeError(k6);J&&(Y=x0(Y));let[G,Q,O]=L6(Z,j,X),K=P6(O),D=G2(O),B=K(Q,G,W);return i(D(Q,G,K(Q,B,Y),F))}function K7($,Z,j,J,W){let Y=F$(J),[z,X,F,G,Q]=((E,S,P)=>{E=qj(E,Z6);let L=t2(E),g=P(E[MY]),d=kj(E),R1=z3(E,7),$0=Y3(E);if(L===void 0&&$0===void 0)throw RangeError(GQ);return $0==null&&($0=0),L==null&&(L=Math.max($0,S)),hW(L,$0),d=yj(d,$0,1),[L,$0,d,R1,g]})(W,Y,$),O=Math.max(Y,z);if(!N6(Q)&&O<=6)return i($Z(((E,S,P,L,g)=>{let d=V6(Q0(E),P,L,g);return{...U0,...ZZ(d,S)}})(J,z,X,F,G)));if(!Q)throw RangeError(k6);let[K,D,B]=L6(Z,j,Q),U=F2(B),V=P6(B),I=G2(B),M=V(D,K,J),N=I(D,K,M,z),A=J.sign,x=h1(N);if(A&&x&&A!==x)throw RangeError(j3);return x&&(N=U6(N,U(M),z,X,F,G,D,K,U,V)),i(N)}function O7($){return $.sign===-1?H6($):$}function H6($){return i(x0($))}function x0($){let Z={};for(let j of y)Z[j]=-1*$[j]||0;return Z}function B7($){return!$.sign}function h1($,Z=y){let j=0;for(let J of Z){let W=Math.sign($[J]);if(W){if(j&&j!==W)throw RangeError(XQ);j=W}}return j}function $Z($){for(let Z of TQ)h0(Z,$[Z],-zW,zW,1);return D7(m0(Q0($),d0)),$}function D7($){if(!Number.isSafeInteger($))throw RangeError(zQ)}function Q0($,Z=6){return UW($,Z,y)}function ZZ($,Z=6){let[j,J]=$,W=W6(J,Z,y);if(W[y[Z]]+=j*(m/j1[Z]),!Number.isFinite(W[y[Z]]))throw RangeError(v6);return W}function C6($,Z=5){return W6($,Z,y)}function U7($){return Boolean(h1($,UY))}function F$($){let Z=9;for(;Z>0&&!$[y[Z]];Z--);return Z}function bG($,Z){return[$,Z]}function $W($){let Z=Math.floor($/l3)*l3;return[Z,Z+l3]}function V7($){let Z=c1($=n3($));if(!Z)throw RangeError(R0($));let j;if(Z.m)j=0;else{if(!Z.offset)throw RangeError(R0($));j=jZ(Z.offset)}return Z.timeZone&&D2(Z.timeZone,1),O0(Aj(Q6(Z),j))}function T7($){let Z=c1(r($));if(!Z)throw RangeError(R0($));if(Z.timeZone)return x7(Z,Z.offset?jZ(Z.offset):void 0);if(Z.m)throw RangeError(R0($));return f7(Z)}function I7($,Z){let j=c1(r($));if(!j||!j.timeZone)throw RangeError(R0($));let{offset:J}=j,W=J?jZ(J):void 0,[,Y,z]=aZ(Z);return x7(j,W,Y,z)}function jZ($){let Z=D2($);if(Z===void 0)throw RangeError(R0($));return Z}function M7($){let Z=c1(r($));if(!Z||Z.m)throw RangeError(R0($));return Y0(S7(Z))}function _6($){let Z=c1(r($));if(!Z||Z.m)throw RangeError(R0($));return z0(Z.p?S7(Z):f7(Z))}function L7($,Z){let j=O2(r(Z));if(j)return K2(j),X$(fj(Q$(j)));let J=_6(Z);return X$(cZ($(J.calendar),J))}function K2($){if($.calendar!==w)throw RangeError(L1($.calendar))}function P7($,Z){let j=B2(r(Z));if(j)return K2(j),a3(Q$(j));let J=_6(Z),{calendar:W}=J,Y=$(W),[z,X,F]=Y.h(J),[G,Q]=Y.I(z,X),[O,K]=Y.N(G,Q,F);return a3(k1(Y.P(O,K,F)),W)}function N7($){let Z,j=((J)=>{let W=lQ.exec(J);return W?(x6(W[10]),R7(W)):void 0})(r($));if(!j){if(j=c1($),!j)throw RangeError(R0($));if(!j.p)throw RangeError(R0($));if(j.m)throw RangeError(L1("Z"));K2(j)}if((Z=O2($))&&r5(Z))throw RangeError(R0($));if((Z=B2($))&&r5(Z))throw RangeError(R0($));return n0(K6(j,1))}function H7($){let Z=((j)=>{let J=nQ.exec(j);return J?((W)=>{function Y(Q,O,K){let D=0,B=0;if(K&&([D,F]=M1(F,j1[K])),Q!==void 0){if(X)throw RangeError(L1(Q));B=((U)=>{let V=parseInt(U);if(!Number.isFinite(V))throw RangeError(L1(U));return V})(Q),z=1,O&&(F=U2(O)*(j1[K]/d0),X=1)}return D+B}let z=0,X=0,F=0,G={...a$(y,[Y(W[2]),Y(W[3]),Y(W[4]),Y(W[5]),Y(W[6],W[7],5),Y(W[8],W[9],4),Y(W[10],W[11],3)]),...W6(F,2,y)};if(!z)throw RangeError(n9(y));return V2(W[1])<0&&(G=x0(G)),G})(J):void 0})(r($));if(!Z)throw RangeError(R0($));return i($Z(Z))}function C7($){let Z=c1($)||O2($)||B2($);return Z?Z.calendar:$}function _7($){let Z=c1($);return Z&&(Z.timeZone||Z.m&&P$||Z.offset)||$}function x7($,Z,j=0,J=0){let W=S6($.timeZone),Y=u6(W);return V0(B$(Y,Q6($),Z,j,J,!Y.v,$.m),W,tZ($.calendar))}function S7($){return A7(N1(Q6($)))}function f7($){return A7(k1(Q$($)))}function A7($){return{...$,calendar:tZ($.calendar)}}function c1($){let Z=uQ.exec($);return Z?((j)=>{let J=j[10],W=(J||"").toUpperCase()==="Z";return{isoYear:E7(j),isoMonth:parseInt(j[4]),isoDay:parseInt(j[5]),...R7(j.slice(5)),...x6(j[16]),p:Boolean(j[6]),m:W,offset:W?void 0:J}})(Z):void 0}function O2($){let Z=cQ.exec($);return Z?((j)=>({isoYear:E7(j),isoMonth:parseInt(j[4]),isoDay:1,...x6(j[5])}))(Z):void 0}function B2($){let Z=dQ.exec($);return Z?((j)=>({isoYear:o$,isoMonth:parseInt(j[1]),isoDay:parseInt(j[2]),...x6(j[3])}))(Z):void 0}function D2($,Z){let j=iQ.exec($);return j?((J,W)=>{let Y=J[4]||J[5];if(W&&Y)throw RangeError(L1(Y));return tj((u$(J[2])*q6+u$(J[3])*y6+u$(J[4])*d0+U2(J[5]||""))*V2(J[1]))})(j,Z):void 0}function E7($){let Z=V2($[1]),j=parseInt($[2]||$[3]);if(Z<0&&!j)throw RangeError(L1(-0));return Z*j}function R7($){let Z=u$($[3]);return{...F6(U2($[4]||""))[0],isoHour:u$($[1]),isoMinute:u$($[2]),isoSecond:Z===60?59:Z}}function x6($){let Z,j,J=[];if($.replace(sQ,(W,Y,z)=>{let X=Boolean(Y),[F,G]=z.split("=").reverse();if(G){if(G==="u-ca")J.push(F),Z||(Z=X);else if(X||/[A-Z]/.test(G))throw RangeError(L1(W))}else{if(j)throw RangeError(L1(W));j=F}return""}),J.length>1&&Z)throw RangeError(L1($));return{timeZone:j,calendar:J[0]||w}}function U2($){return parseInt($.padEnd(9,"0"))}function JZ($){return new RegExp(`^${$}$`,"i")}function V2($){return $&&$!=="+"?-1:1}function u$($){return $===void 0?0:parseInt($)}function b7($){return S6(r($))}function S6($){let Z=T2($);return typeof Z=="number"?O$(Z):Z?((j)=>{if(aQ.test(j))throw RangeError(ZQ);return j.toLowerCase().split("/").map((J,W)=>(J.length<=3||/\d/.test(J))&&!/etc|yap/.test(J)?J.toUpperCase():J.replace(/baja|dumont|[a-z]+/g,(Y,z)=>Y.length<=2&&!W||Y==="in"||Y==="chat"?Y.toUpperCase():Y.length>2||!z?o5(Y).replace(/island|noronha|murdo|rivadavia|urville/,o5):Y)).join("/")})($):P$}function ZW($){let Z=T2($);return typeof Z=="number"?Z:Z?Z.resolvedOptions().timeZone:P$}function T2($){let Z=D2($=$.toUpperCase(),1);return Z!==void 0?Z:$!==P$?oQ($):void 0}function I2($,Z){return H0($.epochNanoseconds,Z.epochNanoseconds)}function M2($,Z){return H0($.epochNanoseconds,Z.epochNanoseconds)}function w7($,Z,j,J,W,Y){let z=$(s0(Y).relativeTo),X=Math.max(F$(J),F$(W));if(BW(y,J,W))return 0;if(dZ(X,z))return H0(Q0(J),Q0(W));if(!z)throw RangeError(k6);let[F,G,Q]=L6(Z,j,z),O=F2(Q),K=P6(Q);return H0(O(K(G,F,J)),O(K(G,F,W)))}function L2($,Z){return U$($,Z)||f6($,Z)}function U$($,Z){return v1(C0($),C0(Z))}function f6($,Z){return v1(g1($),g1(Z))}function v7($,Z){return!I2($,Z)}function k7($,Z){return!M2($,Z)&&!!A6($.timeZone,Z.timeZone)&&e$($.calendar,Z.calendar)}function y7($,Z){return!L2($,Z)&&e$($.calendar,Z.calendar)}function q7($,Z){return!U$($,Z)&&e$($.calendar,Z.calendar)}function g7($,Z){return!U$($,Z)&&e$($.calendar,Z.calendar)}function m7($,Z){return!U$($,Z)&&e$($.calendar,Z.calendar)}function p7($,Z){return!f6($,Z)}function A6($,Z){if($===Z)return 1;let j=D0($),J=D0(Z);if(j===J)return 1;try{return ZW(j)===ZW(J)}catch(W){}}function P2($,Z,j,J){let W=t$($,W0(J),3,5),Y=E6(Z.epochNanoseconds,j.epochNanoseconds,...W);return i($?x0(Y):Y)}function N2($,Z,j,J,W,Y){let z=b6(J.calendar,W.calendar),X=W0(Y),[F,G,Q,O]=t$(j,X,5),K=J.epochNanoseconds,D=W.epochNanoseconds,B=H0(D,K),U;if(B)if(F<6)U=E6(K,D,F,G,Q,O);else{let V=Z(((M,N)=>{if(!A6(M,N))throw RangeError($Y);return M})(J.timeZone,W.timeZone)),I=$(z);U=c7(I,V,J,W,B,F,X),U=U6(U,D,F,G,Q,O,I,J,lW,b(z2,V))}else U=U0;return i(j?x0(U):U)}function H2($,Z,j,J,W){let Y=b6(j.calendar,J.calendar),z=W0(W),[X,F,G,Q]=t$(Z,z,6),O=N0(j),K=N0(J),D=H0(K,O),B;if(D)if(X<=6)B=E6(O,K,X,F,G,Q);else{let U=$(Y);B=d7(U,j,J,D,X,z),B=U6(B,K,X,F,G,Q,U,j,N0,X2)}else B=U0;return i(Z?x0(B):B)}function C2($,Z,j,J,W){let Y=b6(j.calendar,J.calendar),z=W0(W);return h7(Z,()=>$(Y),j,J,...t$(Z,z,6,9,6),z)}function _2($,Z,j,J,W){let Y=b6(j.calendar,J.calendar),z=W0(W),X=t$(Z,z,9,9,8),F=$(Y);return h7(Z,()=>F,cZ(F,j),cZ(F,J),...X,z)}function h7($,Z,j,J,W,Y,z,X,F){let G=N0(j),Q=N0(J),O;if(H0(Q,G))if(W===6)O=E6(G,Q,W,Y,z,X);else{let K=Z();O=K.dateUntil(j,J,W,F),Y===6&&z===1||(O=U6(O,Q,W,Y,z,X,K,j,N0,M6))}else O=U0;return i($?x0(O):O)}function x2($,Z,j,J){let W=W0(J),[Y,z,X,F]=t$($,W,5,5),G=m1(S2(Z,j),rZ(z,X),F),Q={...U0,...C6(G,Y)};return i($?x0(Q):Q)}function wG($,Z,j,J,W,Y){let z=H0(J.epochNanoseconds,j.epochNanoseconds);return z?W<6?u7(j.epochNanoseconds,J.epochNanoseconds,W):c7(Z,$,j,J,z,W,Y):U0}function vG($,Z,j,J,W){let Y=N0(Z),z=N0(j),X=H0(z,Y);return X?J<=6?u7(Y,z,J):d7($,Z,j,X,J,W):U0}function c7($,Z,j,J,W,Y,z){let[X,F,G]=((K,D,B,U)=>{function V(){return S={...D$(N,x++*-U),...M},P=v0(K,S),H0(A,P)===-U}let I=_0(D,K),M=k0(a0,I),N=_0(B,K),A=B.epochNanoseconds,x=0,E=S2(I,N),S,P;if(Math.sign(E)===-U&&x++,V()&&(U===-1||V()))throw RangeError(j3);let L=m0(g0(P,A));return[I,S,L]})(Z,j,J,W);var Q,O;return{...Y===6?(Q=X,O=F,{...U0,days:l7(Q,O)}):$.dateUntil(X,F,Y,z),...C6(G)}}function d7($,Z,j,J,W,Y){let[z,X,F]=((G,Q,O)=>{let K=Q,D=S2(G,Q);return Math.sign(D)===-O&&(K=D$(Q,-O),D+=m*O),[G,K,D]})(Z,j,J);return{...$.dateUntil(z,X,W,Y),...C6(F)}}function E6($,Z,j,J,W,Y){return{...U0,...ZZ(V6(g0($,Z),J,W,Y),j)}}function u7($,Z,j){return{...U0,...ZZ(g0($,Z),j)}}function l7($,Z){return R6(C0($),C0(Z))}function R6($,Z){return Math.trunc((Z-$)/b0)}function S2($,Z){return g1(Z)-g1($)}function b6($,Z){if(!e$($,Z))throw RangeError(c2);return $}function kG($){function Z(W){return((Y,z)=>({...i7(Y,z),F:Y.month,day:parseInt(Y.day)}))(Sj(j,W),J)}let j=J4($),J=e3($);return{id:$,O:yG(Z),B:qG(Z)}}function yG($){return w0((Z)=>{let j=C0(Z);return $(j)},WeakMap)}function qG($){let Z=$(0).year-HQ;return w0((j)=>{let J,W=r$(j-Z),Y=[],z=[];do W+=400*b0;while((J=$(W)).year<=j);do W+=(1-J.day)*b0,J.year===j&&(Y.push(W),z.push(J.F)),W-=b0;while((J=$(W)).year>=j);return{k:Y.reverse(),C:JY(z.reverse())}})}function i7($,Z){let j,J,W=s7($);if($.era){let Y=OY[Z];Y!==void 0&&(j=Z==="islamic"?"ah":$.era.normalize("NFD").toLowerCase().replace(/[^a-z0-9]/g,""),j==="bc"||j==="b"?j="bce":j!=="ad"&&j!=="a"||(j="ce"),J=W,W=t7(J,Y[j]||0))}return{era:j,eraYear:J,year:W}}function s7($){return parseInt($.relatedYear||$.year)}function Kj($){let{year:Z,F:j,day:J}=this.O($),{C:W}=this.B(Z);return[Z,W[j]+1,J]}function uZ($,Z=1,j=1){return this.B($).k[Z-1]+(j-1)*b0}function c3($){let Z=JW(this,$),j=JW(this,$-1),J=Z.length;if(J>j.length){let W=e7(this);if(W<0)return-W;for(let Y=0;Y<J;Y++)if(Z[Y]!==j[Y])return Y+1}}function d3($){return R6(uZ.call(this,$),uZ.call(this,$+1))}function jW($,Z){let{k:j}=this.B($),J=Z+1,W=j;return J>j.length&&(J=1,W=this.B($+1).k),R6(j[Z-1],W[J-1])}function u3($){return this.B($).k.length}function JW($,Z){return Object.keys($.B(Z).C)}function n7($){return tZ(r($))}function tZ($){if(($=$.toLowerCase())!==w&&$!==m6&&e3($)!==e3(J4($).resolvedOptions().calendar))throw RangeError($Q($));return $}function e3($){return $==="islamicc"&&($="islamic"),$.split("-")[0]}function o7($){return this.R($)[0]}function a7($){return this.R($)[1]}function f2($){let[Z]=this.h($);return R6(this.q(Z),C0($))+1}function r7($){let Z=tQ.exec($);if(!Z)throw RangeError(tG($));return[parseInt(Z[1]),Boolean(Z[2])]}function $6($,Z,j){return $+(Z||j&&$>=j?1:0)}function Oj($,Z){return $-(Z&&$>=Z?1:0)}function t7($,Z){return(Z+$)*(Math.sign(Z)||1)||0}function Bj($){return OY[$9($)]}function e7($){return DQ[$9($)]}function $9($){return e3($.id||w)}function Z9($,Z,j,J){let W=d1(j,J,o0,[],FY);if(W.timeZone!==void 0){let Y=j.dateFromFields(W),z=V$(W),X=$(W.timeZone);return{epochNanoseconds:B$(Z(X),{...Y,...z},W.offset!==void 0?jZ(W.offset):void 0),timeZone:X}}return{...j.dateFromFields(W),...u0}}function j9($,Z,j,J,W,Y){let z=d1(j,W,o0,zY,FY),X=$(z.timeZone),[F,G,Q]=aZ(Y),O=j.dateFromFields(z,B6(Y,F)),K=V$(z,F);return V0(B$(Z(X),{...O,...K},z.offset!==void 0?jZ(z.offset):void 0,G,Q),X,J)}function J9($,Z,j){let J=d1($,Z,o0,[],_1),W=k(j);return Y0(N1({...$.dateFromFields(J,B6(j,W)),...V$(J,W)}))}function A2($,Z,j,J=[]){let W=d1($,Z,o0,J);return $.dateFromFields(W,j)}function E2($,Z,j,J){let W=d1($,Z,l2,J);return $.yearMonthFromFields(W,j)}function R2($,Z,j,J,W=[]){let Y=d1($,j,o0,W);return Z&&Y.month!==void 0&&Y.monthCode===void 0&&Y.year===void 0&&(Y.year=o$),$.monthDayFromFields(Y,J)}function W9($,Z){let j=k(Z);return n0(V$(Z1($,Uj,[],1),j))}function Y9($){let Z=Z1($,i2);return i($Z({...U0,...Z}))}function d1($,Z,j,J=[],W=[]){return Z1(Z,[...$.fields(j),...W].sort(),J)}function Z1($,Z,j,J=!j){let W={},Y,z=0;for(let X of Z){if(X===Y)throw RangeError(iG(X));if(X==="constructor"||X==="__proto__")throw RangeError(p2(X));let F=$[X];if(F!==void 0)z=1,XW[X]&&(F=XW[X](F,X)),W[X]=F;else if(j){if(j.includes(X))throw TypeError(m2(X));W[X]=KY[X]}Y=X}if(J&&!z)throw TypeError(n9(Z));return W}function V$($,Z){return K6(jK({...KY,...$}),Z)}function z9($,Z,j,J,W,Y){let z=W0(Y),{calendar:X,timeZone:F}=j;return V0(((G,Q,O,K,D)=>{let B=eZ(G,O,K,o0,XY,YY),[U,V,I]=aZ(D,2);return B$(Q,{...G.dateFromFields(B,B6(D,U)),...V$(B,U)},jZ(B.offset),V,I)})($(X),Z(F),J,W,z),F,X)}function X9($,Z,j,J,W){let Y=W0(W);return Y0(((z,X,F,G)=>{let Q=eZ(z,X,F,o0,_1),O=k(G);return N1({...z.dateFromFields(Q,B6(G,O)),...V$(Q,O)})})($(Z.calendar),j,J,Y))}function F9($,Z,j,J,W){let Y=W0(W);return((z,X,F,G)=>{let Q=eZ(z,X,F,o0);return z.dateFromFields(Q,G)})($(Z.calendar),j,J,Y)}function G9($,Z,j,J,W){let Y=W0(W);return X$(((z,X,F,G)=>{let Q=eZ(z,X,F,l2);return z.yearMonthFromFields(Q,G)})($(Z.calendar),j,J,Y))}function Q9($,Z,j,J,W){let Y=W0(W);return((z,X,F,G)=>{let Q=eZ(z,X,F,o0);return z.monthDayFromFields(Q,G)})($(Z.calendar),j,J,Y)}function K9($,Z,j){return n0(((J,W,Y)=>{let z=k(Y);return V$({...k0(Uj,J),...Z1(W,Uj)},z)})($,Z,j))}function O9($,Z){return i((j=$,J=Z,$Z({...j,...Z1(J,i2)})));var j,J}function eZ($,Z,j,J,W=[],Y=[]){let z=[...$.fields(J),...W].sort(),X=Z1(Z,z,Y),F=Z1(j,z);return X=$.mergeFields(X,F),Z1(X,z,[])}function b2($,Z){let j=d1($,Z,QY);return $.monthDayFromFields(j)}function w2($,Z,j){let J=d1($,Z,GY);return $.yearMonthFromFields(J,j)}function B9($,Z,j,J,W){Z=k0(j=$.fields(j),Z),J=Z1(J,W=$.fields(W),[]);let Y=$.mergeFields(Z,J);return Y=Z1(Y,[...j,...W].sort(),[]),$.dateFromFields(Y)}function zj($,Z){let{era:j,eraYear:J,year:W}=Z,Y=Bj($);if(j!==void 0||J!==void 0){if(j===void 0||J===void 0)throw TypeError(nG);if(!Y)throw RangeError(sG);let z=Y[j];if(z===void 0)throw RangeError(aG(j));let X=t7(J,z);if(W!==void 0&&W!==X)throw RangeError(oG);W=X}else if(W===void 0)throw TypeError(rG(Y));return W}function Xj($,Z,j,J){let{month:W,monthCode:Y}=Z;if(Y!==void 0){let z=((X,F,G,Q)=>{let O=X.U(G),[K,D]=r7(F),B=$6(K,D,O);if(D){let U=e7(X);if(U===void 0)throw RangeError(mZ);if(U>0){if(B>U)throw RangeError(mZ);if(O===void 0){if(Q===1)throw RangeError(mZ);B--}}else{if(B!==-U)throw RangeError(mZ);if(O===void 0&&Q===1)throw RangeError(mZ)}}return B})($,Y,j,J);if(W!==void 0&&W!==z)throw RangeError(t9);W=z,J=1}else if(W===void 0)throw TypeError(eG);return h0("month",W,1,$.L(j),J)}function WW($,Z,j,J,W){return E0(Z,"day",1,$.j(J,j),W)}function Fj($,Z,j,J){let W=0,Y=[];for(let z of j)Z[z]!==void 0?W=1:Y.push(z);if(Object.assign($,Z),W)for(let z of J||Y)delete $[z]}function D9($){return O0(p0(X6(z6($))))}function U9($,Z,j,J,W=w){return V0(p0(X6(z6(j))),Z(J),$(W))}function V9($,Z,j,J,W=0,Y=0,z=0,X=0,F=0,G=0,Q=w){return Y0(N1(Q6(l0(P0,a$(p6,[Z,j,J,W,Y,z,X,F,G])))),$(Q))}function T9($,Z,j,J,W=w){return z0(k1(Q$(l0(P0,{isoYear:Z,isoMonth:j,isoDay:J}))),$(W))}function I9($,Z,j,J=w,W=1){let Y=P0(Z),z=P0(j),X=$(J);return X$(fj(Q$({isoYear:Y,isoMonth:z,isoDay:P0(W)})),X)}function M9($,Z,j,J=w,W=o$){let Y=P0(Z),z=P0(j),X=$(J);return a3(k1(Q$({isoYear:P0(W),isoMonth:Y,isoDay:z})),X)}function L9($=0,Z=0,j=0,J=0,W=0,Y=0){return n0(K6(l0(P0,a$(a0,[$,Z,j,J,W,Y])),1))}function P9($=0,Z=0,j=0,J=0,W=0,Y=0,z=0,X=0,F=0,G=0){return i($Z(l0(_W,a$(y,[$,Z,j,J,W,Y,z,X,F,G]))))}function v2($,Z,j=w){return V0($.epochNanoseconds,Z,j)}function N9($){return O0($.epochNanoseconds)}function k2($,Z){return Y0(_0(Z,$))}function y2($,Z){return z0(_0(Z,$))}function H9($,Z,j){return w2($(Z.calendar),j)}function C9($,Z,j){return b2($(Z.calendar),j)}function q2($,Z){return n0(_0(Z,$))}function _9($,Z,j,J){let W=((Y,z,X,F)=>{let G=bj(F);return v0(Y(z),X,G)})($,j,Z,J);return V0(p0(W),j,Z.calendar)}function x9($,Z,j){let J=$(Z.calendar);return X$({...Z,...w2(J,j)})}function S9($,Z,j){return b2($(Z.calendar),j)}function f9($,Z,j,J,W){let Y=$(W.timeZone),z=W.plainTime,X=z!==void 0?Z(z):u0;return V0(v0(j(Y),{...J,...X}),Y,J.calendar)}function A9($,Z=u0){return Y0(N1({...$,...Z}))}function E9($,Z,j){return w2($(Z.calendar),j)}function R9($,Z,j){return b2($(Z.calendar),j)}function b9($,Z,j,J){return((W,Y,z)=>B9(W,Y,GY,P1(z),W3))($(Z.calendar),j,J)}function w9($,Z,j,J){return((W,Y,z)=>B9(W,Y,QY,P1(z),g6))($(Z.calendar),j,J)}function v9($,Z,j,J,W){let Y=P1(W),z=Z(Y.plainDate),X=$(Y.timeZone);return V0(v0(j(X),{...z,...J}),X,z.calendar)}function k9($,Z){return Y0(N1({...$,...Z}))}function y9($){return O0(p0(s$($,d0)))}function q9($){return O0(p0(s$($,J1)))}function g9($){return O0(p0(X6(z6($),I$)))}function m9($){return O0(p0(X6(z6($))))}function p9($,Z,j=u0){let J=Z.timeZone,W=$(J),Y={..._0(Z,W),...j};return V0(B$(W,Y,Y.offsetNanoseconds,2),J,Z.calendar)}function h9($,Z,j){let J=Z.timeZone,W=$(J),Y={..._0(Z,W),...j},z=l9(Z.calendar,j.calendar);return V0(B$(W,Y,Y.offsetNanoseconds,2),J,z)}function c9($,Z=u0){return Y0({...$,...Z})}function d9($,Z){return Y0({...$,...Z},l9($.calendar,Z.calendar))}function w6($,Z){return{...$,calendar:Z}}function u9($,Z){return{...$,timeZone:Z}}function l9($,Z){if($===Z)return $;let j=D0($),J=D0(Z);if(j===J||j===w)return Z;if(J===w)return $;throw RangeError(c2)}function gG($,Z){return(j)=>j===w?$:j===m6||j===n$?Object.assign(Object.create($),{id:j}):Object.assign(Object.create(Z),rQ(j))}function T$($,Z,j){let J=new Set(j);return(W)=>(((Y,z)=>{for(let X of z)if(X in Y)return 1;return 0})(W=Mj(J,W),$)||Object.assign(W,Z),j&&(W.timeZone=P$,["full","long"].includes(W.timeStyle)&&(W.timeStyle="medium")),W)}function H1($,Z=g2){let[j,,,J]=$;return(W,Y=IK,...z)=>{let X=Z(J&&J(...z),W,Y,j),F=X.resolvedOptions();return[X,...mG($,F,z)]}}function g2($,Z,j,J){if(j=J(j),$){if(j.timeZone!==void 0)throw TypeError(KQ);j.timeZone=$}return new u1(Z,j)}function mG($,Z,j){let[,J,W]=$;return j.map((Y)=>(Y.calendar&&((z,X,F)=>{if((F||z!==w)&&z!==X)throw RangeError(c2)})(D0(Y.calendar),Z.calendar,W),J(Y,Z)))}function WZ($){let Z=$3();return p1(Z,$.getOffsetNanosecondsFor(Z))}function $3(){return s$(Date.now(),J1)}function C1(){return GW||(GW=new u1().resolvedOptions().timeZone)}var pG=($,Z)=>`Non-integer ${$}: ${Z}`,hG=($,Z)=>`Non-positive ${$}: ${Z}`,cG=($,Z)=>`Non-finite ${$}: ${Z}`,dG=($)=>`Cannot convert bigint to ${$}`,uG=($)=>`Invalid bigint: ${$}`,lG="Cannot convert Symbol to string",i9="Invalid object",s9=($,Z,j,J,W)=>W?s9($,W[Z],W[j],W[J]):Z3($,Z)+`; must be between ${j}-${J}`,Z3=($,Z)=>`Invalid ${$}: ${Z}`,m2=($)=>`Missing ${$}`,p2=($)=>`Invalid field ${$}`,iG=($)=>`Duplicate field ${$}`,n9=($)=>"No valid fields: "+$.join(),o9="Invalid bag",a9=($,Z,j)=>Z3($,Z)+"; must be "+Object.keys(j).join(),r9="Cannot use valueOf",h2="Invalid calling context",sG="Forbidden era/eraYear",nG="Mismatching era/eraYear",oG="Mismatching year/eraYear",aG=($)=>`Invalid era: ${$}`,rG=($)=>"Missing year"+($?"/era/eraYear":""),tG=($)=>`Invalid monthCode: ${$}`,t9="Mismatching month/monthCode",eG="Missing month/monthCode",YW="Cannot guess year",mZ="Invalid leap month",e9="Invalid protocol",j3="Invalid protocol results",c2="Mismatching Calendars",$Q=($)=>`Invalid Calendar: ${$}`,$Y="Mismatching TimeZones",ZQ="Forbidden ICU TimeZone",jQ="Out-of-bounds offset",JQ="Out-of-bounds TimeZone gap",WQ="Invalid TimeZone offset",YQ="Ambiguous offset",v6="Out-of-bounds date",zQ="Out-of-bounds duration",XQ="Cannot mix duration signs",k6="Missing relativeTo",FQ="Cannot use large units",GQ="Required smallestUnit or largestUnit",QQ="smallestUnit > largestUnit",R0=($)=>`Cannot parse: ${$}`,L1=($)=>`Invalid substring: ${$}`,ZY=($)=>`Cannot format ${$}`,jY="Mismatching types for formatting",KQ="Cannot specify TimeZone",JY=b(sZ,($,Z)=>Z),YZ=b(sZ,($,Z,j)=>j),c0=b(s3,2),Dj={nanosecond:0,microsecond:1,millisecond:2,second:3,minute:4,hour:5,day:6,week:7,month:8,year:9},J3=Object.keys(Dj),b0=86400000,WY=1000,I$=1000,J1=1e6,d0=1e9,y6=60000000000,q6=3600000000000,m=86400000000000,j1=[1,I$,J1,d0,y6,q6,m],_1=J3.slice(0,6),Uj=nZ(_1),YY=["offset"],zY=["timeZone"],XY=_1.concat(YY),FY=XY.concat(zY),Vj=["era","eraYear"],OQ=Vj.concat(["year"]),g6=["year"],d2=["monthCode"],u2=["month"].concat(d2),W3=["day"],l2=u2.concat(g6),GY=d2.concat(g6),o0=W3.concat(l2),BQ=W3.concat(u2),QY=W3.concat(d2),KY=YZ(_1,0),w="iso8601",m6="gregory",n$="japanese",OY={[m6]:{bce:-1,ce:0},[n$]:{bce:-1,ce:0,meiji:1867,taisho:1911,showa:1925,heisei:1988,reiwa:2018},ethioaa:{era0:0},ethiopic:{era0:0,era1:5500},coptic:{era0:-1,era1:0},roc:{beforeroc:-1,minguo:0},buddhist:{be:0},islamic:{ah:0},indian:{saka:0},persian:{ap:0}},DQ={chinese:13,dangi:13,hebrew:-6},r=b(Y6,"string"),BY=b(Y6,"boolean"),UQ=b(Y6,"number"),DY=b(Y6,"function"),y=J3.map(($)=>$+"s"),i2=nZ(y),VQ=y.slice(0,6),UY=y.slice(6),TQ=UY.slice(1),IQ=JY(y),U0=YZ(y,0),s2=YZ(VQ,0),n2=b(DW,y),a0=["isoNanosecond","isoMicrosecond","isoMillisecond","isoSecond","isoMinute","isoHour"],o2=["isoDay","isoMonth","isoYear"],p6=a0.concat(o2),a2=nZ(o2),VY=nZ(a0),TY=nZ(p6),u0=YZ(VY,0),MQ=b(DW,p6),u1=Intl.DateTimeFormat,IY="en-GB",r2=1e8,LQ=r2*b0,PQ=[r2,0],NQ=[-r2,0],lZ=275760,iZ=-271821,HQ=1970,o$=1972,I1=12,CQ=r$(1868,9,8),_Q=w0(_G,WeakMap),Z6="smallestUnit",Tj="unit",hZ="roundingIncrement",Gj="fractionalSecondDigits",MY="relativeTo",LY={constrain:0,reject:1},xQ=Object.keys(LY),SQ={compatible:0,reject:1,earlier:2,later:3},fQ={reject:0,use:1,prefer:2,ignore:3},AQ={auto:0,never:1,critical:2,always:3},EQ={auto:0,never:1,critical:2},RQ={auto:0,never:1},bQ={floor:0,halfFloor:1,ceil:2,halfCeil:3,trunc:4,halfTrunc:5,expand:6,halfExpand:7,halfEven:8},Y3=b(gj,Z6),t2=b(gj,"largestUnit"),wQ=b(gj,Tj),PY=b(K$,"overflow",LY),NY=b(K$,"disambiguation",SQ),vQ=b(K$,"offset",fQ),e2=b(K$,"calendarName",AQ),kQ=b(K$,"timeZoneName",EQ),yQ=b(K$,"offset",RQ),z3=b(K$,"roundingMode",bQ),zZ="PlainYearMonth",XZ="PlainMonthDay",M$="PlainDate",L$="PlainDateTime",h6="PlainTime",x1="ZonedDateTime",c6="Instant",d6="Duration",qQ=[Math.floor,($)=>h3($)?Math.floor($):Math.round($),Math.ceil,($)=>h3($)?Math.ceil($):Math.round($),Math.trunc,($)=>h3($)?Math.trunc($)||0:Math.round($),($)=>$<0?Math.floor($):Math.ceil($),($)=>Math.sign($)*Math.round(Math.abs($))||0,($)=>h3($)?($=Math.trunc($)||0)+$%2:Math.round($)],P$="UTC",l3=5184000,gQ=o3(1847),mQ=o3(new Date().getUTCFullYear()+10),pQ=/0+$/,_0=w0(RG,WeakMap),zW=4294967295,u6=w0(($)=>{let Z=T2($);return typeof Z=="object"?new CY(Z):new HY(Z||0)});class HY{constructor($){this.v=$}getOffsetNanosecondsFor(){return this.v}getPossibleInstantsFor($){return[Aj($,this.v)]}l(){}}class CY{constructor($){this.$=((Z)=>{function j(F){let G=Qj(F,z,X),[Q,O]=$W(G),K=W(Q),D=W(O);return K===D?K:J(Y(Q,O),K,D,F)}function J(F,G,Q,O){let K,D;for(;(O===void 0||(K=O<F[0]?G:O>=F[1]?Q:void 0)===void 0)&&(D=F[1]-F[0]);){let B=F[0]+Math.floor(D/2);Z(B)===Q?F[1]=B:F[0]=B+1}return K}let W=w0(Z),Y=w0(bG),z=gQ,X=mQ;return{G(F){let G=j(F-86400),Q=j(F+86400),O=F-G,K=F-Q;if(G===Q)return[O];let D=j(O);return D===j(K)?[F-D]:G>Q?[O,K]:[]},V:j,l(F,G){let Q=Qj(F,z,X),[O,K]=$W(Q),D=l3*G,B=G<0?()=>K>z||(z=Q,0):()=>O<X||(X=Q,0);for(;B();){let U=W(O),V=W(K);if(U!==V){let I=Y(O,K);J(I,U,V);let M=I[0];if((v1(M,F)||1)===G)return M}O+=D,K+=D}}}})(((Z)=>(j)=>{let J=Sj(Z,j*WY);return o3(s7(J),parseInt(J.month),parseInt(J.day),parseInt(J.hour),parseInt(J.minute),parseInt(J.second))-j})($))}getOffsetNanosecondsFor($){return this.$.V(fW($))*d0}getPossibleInstantsFor($){let[Z,j]=[o3((J=$).isoYear,J.isoMonth,J.isoDay,J.isoHour,J.isoMinute,J.isoSecond),J.isoMillisecond*J1+J.isoMicrosecond*I$+J.isoNanosecond];var J;return this.$.G(Z).map((W)=>p0(i$(s$(W,d0),j)))}l($,Z){let[j,J]=AW($),W=this.$.l(j+(Z>0||J?1:0),Z);if(W!==void 0)return s$(W,d0)}}var $4="([+\u2212-])",i3="(?:[.,](\\d{1,9}))?",_Y=`(?:(?:${$4}(\\d{6}))|(\\d{4}))-?(\\d{2})`,Z4="(\\d{2})(?::?(\\d{2})(?::?(\\d{2})"+i3+")?)?",j4=$4+Z4,hQ=_Y+"-?(\\d{2})(?:[T ]"+Z4+"(Z|"+j4+")?)?",xY="\\[(!?)([^\\]]*)\\]",l6=`((?:${xY}){0,9})`,cQ=JZ(_Y+l6),dQ=JZ("(?:--)?(\\d{2})-?(\\d{2})"+l6),uQ=JZ(hQ+l6),lQ=JZ("T?"+Z4+"(?:"+j4+")?"+l6),iQ=JZ(j4),sQ=new RegExp(xY,"g"),nQ=JZ(`${$4}?P(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(?:T(?:(\\d+)${i3}H)?(?:(\\d+)${i3}M)?(?:(\\d+)${i3}S)?)?`),oQ=w0(($)=>new u1(IY,{timeZone:$,era:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"})),aQ=/^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/,rQ=w0(kG),J4=w0(($)=>new u1(IY,{calendar:$,timeZone:P$,era:"short",year:"numeric",month:"short",day:"numeric"})),tQ=/^M(\d{2})(L?)$/,eQ={era:n3,eraYear:P0,year:P0,month:a5,monthCode:n3,day:a5},$K=YZ(_1,P0),ZK=YZ(y,_W),XW=Object.assign({},eQ,$K,ZK,{offset:n3}),jK=b(CG,_1,a0),FW={dateAdd($,Z,j){let J=k(j),W,{years:Y,months:z,weeks:X,days:F}=Z;if(F+=Q0(Z,5)[0],Y||z)W=((G,Q,O,K,D)=>{let[B,U,V]=G.h(Q);if(O){let[I,M]=G.I(B,U);B+=O,U=$6(I,M,G.U(B)),U=h0("month",U,1,G.L(B),D)}return K&&([B,U]=G._(B,U,K)),V=h0("day",V,1,G.j(B,U),D),G.q(B,U,V)})(this,$,Y,z,J);else{if(!X&&!F)return $;W=C0($)}return W+=(7*X+F)*b0,k1(G6(W))},dateUntil($,Z,j){if(j<=7){let F=0,G=l7({...$,...u0},{...Z,...u0});return j===7&&([F,G]=q1(G,7)),{...U0,weeks:F,days:G}}let J=this.h($),W=this.h(Z),[Y,z,X]=((F,G,Q,O,K,D,B)=>{let U=K-G,V=D-Q,I=B-O;if(U||V){let M=Math.sign(U||V),N=F.j(K,D),A=0;if(Math.sign(I)===-M){let x=N;[K,D]=F._(K,D,-M),U=K-G,V=D-Q,N=F.j(K,D),A=M<0?-x:N}if(I=B-Math.min(O,N)+A,U){let[x,E]=F.I(G,Q),[S,P]=F.I(K,D);if(V=S-x||Number(P)-Number(E),Math.sign(V)===-M){let L=M<0&&-F.L(K);U=(K-=M)-G,V=D-$6(x,E,F.U(K))+(L||F.L(K))}}}return[U,V,I]})(this,...J,...W);return j===8&&(z+=this.J(Y,J[0]),Y=0),{...U0,years:Y,months:z,days:X}},dateFromFields($,Z){let j=k(Z),J=zj(this,$),W=Xj(this,$,J,j),Y=WW(this,$,W,J,j);return z0(k1(this.P(J,W,Y)),this.id||w)},yearMonthFromFields($,Z){let j=k(Z),J=zj(this,$),W=Xj(this,$,J,j);return X$(fj(this.P(J,W,1)),this.id||w)},monthDayFromFields($,Z){let j=k(Z),J=!this.id,{monthCode:W,year:Y,month:z}=$,X,F,G,Q,O;if(W!==void 0){[X,F]=r7(W),O=QW($,"day");let K=this.N(X,F,O);if(!K)throw RangeError(YW);if([G,Q]=K,z!==void 0&&z!==Q)throw RangeError(t9);J&&(Q=h0("month",Q,1,I1,1),O=h0("day",O,1,Ej(Y!==void 0?Y:G,Q),j))}else{G=Y===void 0&&J?o$:zj(this,$),Q=Xj(this,$,G,j),O=WW(this,$,Q,G,j);let K=this.U(G);F=Q===K,X=Oj(Q,K);let D=this.N(X,F,O);if(!D)throw RangeError(YW);[G,Q]=D}return a3(k1(this.P(G,Q,O)),this.id||w)},fields($){return Bj(this)&&$.includes("year")?[...$,...Vj]:$},mergeFields($,Z){let j=Object.assign(Object.create(null),$);return Fj(j,Z,u2),Bj(this)&&(Fj(j,Z,OQ),this.id===n$&&Fj(j,Z,BQ,Vj)),j},inLeapYear($){let[Z]=this.h($);return this.K(Z)},monthsInYear($){let[Z]=this.h($);return this.L(Z)},daysInMonth($){let[Z,j]=this.h($);return this.j(Z,j)},daysInYear($){let[Z]=this.h($);return this.X(Z)},dayOfYear:f2,era($){return this.ee($)[0]},eraYear($){return this.ee($)[1]},monthCode($){let[Z,j]=this.h($),[J,W]=this.I(Z,j);return((Y,z)=>"M"+c0(Y)+(z?"L":""))(J,W)},dayOfWeek:vW,daysInWeek(){return 7}},JK={dayOfYear:f2,h:RW,q:r$},WK=Object.assign({},JK,{weekOfYear:o7,yearOfWeek:a7,R($){function Z(D){return(7-D<J?7:0)-D}function j(D){let B=wW(K+D),U=D||1,V=Z(pZ(F+B*U,7));return Q=(B+(V-G)*U)/7}let J=this.id?1:4,W=vW($),Y=this.dayOfYear($),z=pZ(W-1,7),X=Y-1,F=pZ(z-X,7),G=Z(F),Q,O=Math.floor((X-G)/7)+1,K=$.isoYear;return O?O>j(0)&&(O=1,K++):(O=j(-1),K--),[O,K,Q]}}),YK={dayOfYear:f2,h:Kj,q:uZ,weekOfYear:o7,yearOfWeek:a7,R(){return[]}},FZ=gG(Object.assign({},FW,WK,{h:RW,ee($){return this.id===m6?kW($):this.id===n$?_Q($):[]},I:($,Z)=>[Z,0],N($,Z){if(!Z)return[o$,$]},K:Rj,U(){},L:bW,J:($)=>$*I1,j:Ej,X:wW,P:($,Z,j)=>({isoYear:$,isoMonth:Z,isoDay:j}),q:r$,_:($,Z,j)=>($+=J6(j,I1),(Z+=Pj(j,I1))<1?($--,Z+=I1):Z>I1&&($++,Z-=I1),[$,Z]),year($){return $.isoYear},month($){return $.isoMonth},day:($)=>$.isoDay}),Object.assign({},FW,YK,{h:Kj,ee($){let Z=this.O($);return[Z.era,Z.eraYear]},I($,Z){let j=c3.call(this,$);return[Oj(Z,j),j===Z]},N($,Z,j){let[J,W,Y]=Kj.call(this,{isoYear:o$,isoMonth:I1,isoDay:31}),z=c3.call(this,J),X=W===z;(v1($,Oj(W,z))||v1(Number(Z),Number(X))||v1(j,Y))===1&&J--;for(let F=0;F<100;F++){let G=J-F,Q=c3.call(this,G),O=$6($,Z,Q);if(Z===(O===Q)&&j<=jW.call(this,G,O))return[G,O]}},K($){let Z=d3.call(this,$);return Z>d3.call(this,$-1)&&Z>d3.call(this,$+1)},U:c3,L:u3,J($,Z){let j=Z+$,J=Math.sign($),W=J<0?-1:0,Y=0;for(let z=Z;z!==j;z+=J)Y+=u3.call(this,z+W);return Y},j:jW,X:d3,P($,Z,j){return G6(uZ.call(this,$,Z,j))},q:uZ,_($,Z,j){if(j){if(Z+=j,!Number.isSafeInteger(Z))throw RangeError(v6);if(j<0)for(;Z<1;)Z+=u3.call(this,--$);else{let J;for(;Z>(J=u3.call(this,$));)Z-=J,$++}}return[$,Z]},year($){return this.O($).year},month($){let{year:Z,F:j}=this.O($),{C:J}=this.B(Z);return J[j]+1},day($){return this.O($).day}})),y1="numeric",GZ=["timeZoneName"],SY={month:y1,day:y1},W4={year:y1,month:y1},Y4=Object.assign({},W4,{day:y1}),z4={hour:y1,minute:y1,second:y1},X4=Object.assign({},Y4,z4),zK=Object.assign({},X4,{timeZoneName:"short"}),XK=Object.keys(W4),FK=Object.keys(SY),GK=Object.keys(Y4),QK=Object.keys(z4),F4=["dateStyle"],KK=XK.concat(F4),OK=FK.concat(F4),G4=GK.concat(F4,["weekday"]),X3=QK.concat(["dayPeriod","timeStyle"]),Q4=G4.concat(X3),BK=Q4.concat(GZ),DK=GZ.concat(X3),UK=GZ.concat(G4),VK=GZ.concat(["day","weekday"],X3),TK=GZ.concat(["year","weekday"],X3),IK={},K4=[T$(Q4,X4),D6],fY=[T$(BK,zK),D6,0,($,Z)=>{let j=D0($.timeZone);if(Z&&D0(Z.timeZone)!==j)throw RangeError($Y);return j}],O4=[T$(Q4,X4,GZ),C0],B4=[T$(G4,Y4,DK),C0],D4=[T$(X3,z4,UK),($)=>g1($)/J1],U4=[T$(KK,W4,VK),C0,1],V4=[T$(OK,SY,TK),C0,1],GW;function z1($,Z,j,J,W){function Y(...F){if(!(this instanceof Y))throw TypeError(h2);bY(this,Z(...F))}function z(F,G){return Object.defineProperties(function(...Q){return F.call(this,X(this),...Q)},Ij(G))}function X(F){let G=M0(F);if(!G||G.branding!==$)throw TypeError(h2);return G}return Object.defineProperties(Y.prototype,{...KW(l0(z,j)),...G$(l0(z,J)),...j6("Temporal."+$)}),Object.defineProperties(Y,{...G$(W),...Ij($)}),[Y,(F)=>{let G=Object.create(Y.prototype);return bY(G,F),G},X]}function kY($){return $=$.concat("id").sort(),(Z)=>{if(!OW(Z,$))throw TypeError(e9);return Z}}function BZ($){if(M0($)||$.calendar!==void 0||$.timeZone!==void 0)throw TypeError(o9);return $}function i6($,Z){let j={};for(let J in $)j[J]=({o:W},Y)=>{let z=M0(Y)||{},{branding:X}=z,F=X===M$||Z.includes(X)?z:f0(Y);return W[J](F)};return j}function M4($){let Z={};for(let j in $)Z[j]=(J)=>{let{calendar:W}=J;return(Y=W,typeof Y=="string"?FZ(Y):(z=Y,Object.assign(Object.create(vK),{i:z})))[j](J);var Y,z};return Z}function o1(){throw TypeError(r9)}function G3({calendar:$}){return typeof $=="string"?new f4($):$}function AY($,Z){if(Z=W0(Z),K0($)){let J=M0($);if(J&&J.branding===XZ)return k(Z),J;let W=gY($);return R2(e6(W||w),!W,$,Z)}let j=P7(FZ,$);return k(Z),j}function yY($,Z,j){return J=Z.call($,S0(O0(j))),tj(oZ(J));var J}function s6($,Z=cY){let j=Object.keys(Z).sort(),J={};for(let W of j)J[W]=b(Z[W],$,DY($[W]));return J}function p($,Z){return typeof $=="string"?u6($):s6($,Z)}function F0($){return p($,I4)}function W1($){if(K0($)){let Z=M0($);if(Z)switch(Z.branding){case c6:return Z;case x1:return O0(Z.epochNanoseconds)}}return V7($)}function EY($,Z,j){let J=Z.l(W1(j).epochNanoseconds,$);return J?S0(O0(J)):null}function u($){return K0($)?(M0($)||{}).timeZone||pK($):((Z)=>S6(_7(r(Z))))($)}function l1($,Z){if(K0($)){let j=M0($)||{};switch(j.branding){case h6:return k(Z),j;case L$:return k(Z),n0(j);case x1:return k(Z),q2(F0,j)}return W9($,Z)}return k(Z),N7($)}function L4($){return $===void 0?void 0:l1($)}function QZ($,Z){if(Z=W0(Z),K0($)){let J=M0($);return J&&J.branding===zZ?(k(Z),J):E2(r6(Q3($)),$,Z)}let j=L7(FZ,$);return k(Z),j}function i1($,Z){if(Z=W0(Z),K0($)){let J=M0($)||{};switch(J.branding){case L$:return k(Z),J;case M$:return k(Z),Y0({...J,...u0});case x1:return k(Z),k2(F0,J)}return J9(t6(Q3($)),$,Z)}let j=M7($);return k(Z),j}function f0($,Z){if(Z=W0(Z),K0($)){let J=M0($)||{};switch(J.branding){case M$:return k(Z),J;case L$:return k(Z),z0(J);case x1:return k(Z),y2(F0,J)}return A2(t6(Q3($)),$,Z)}let j=_6($);return k(Z),j}function qY($,Z,j){return i0(Z.call($,e(z0(j,$))))}function X1($){return(Z)=>typeof Z=="string"?FZ(Z):((j,J)=>{let W=Object.keys(J).sort(),Y={};for(let z of W)Y[z]=b(J[z],j,j[z]);return Y})(Z,$)}function t($){if(K0($)){let Z=M0($);return Z&&Z.branding===d6?Z:Y9($)}return H7($)}function F3($){if($!==void 0){if(K0($)){let Z=M0($)||{};switch(Z.branding){case x1:case M$:return Z;case L$:return z0(Z)}let j=Q3($);return{...Z9(u,p,t6(j),$),calendar:j}}return T7($)}}function Q3($){return gY($)||w}function gY($){let{calendar:Z}=$;if(Z!==void 0)return I0(Z)}function I0($){return K0($)?(M0($)||{}).calendar||ZO($):((Z)=>tZ(C7(r(Z))))($)}function KZ($,Z){if(Z=W0(Z),K0($)){let j=M0($);if(j&&j.branding===x1)return aZ(Z),j;let J=Q3($);return j9(u,p,t6(J),J,$,Z)}return I7($,Z)}function RY($){return l0((Z)=>(j)=>Z(T4(j)),$)}function T4($){return _0($,F0)}function MK(){let $=u1.prototype,Z=Object.getOwnPropertyDescriptors($),j=Object.getOwnPropertyDescriptors(u1),J=function(W,Y={}){if(!(this instanceof J))return new J(W,Y);A4.set(this,((z,X={})=>{let F=new u1(z,X),G=F.resolvedOptions(),Q=G.locale,O=k0(Object.keys(X),G),K=w0(NK),D=(...B)=>{let U,V=B.map((I,M)=>{let N=M0(I),A=(N||{}).branding;if(M&&U&&U!==A)throw TypeError(jY);return U=A,N});return U?K(U)(Q,O,...V):[F,...B]};return D.u=F,D})(W,Y))};for(let W in Z){let Y=Z[W],z=W.startsWith("format")&&LK(W);typeof Y.value=="function"?Y.value=W==="constructor"?J:z||PK(W):z&&(Y.get=function(){return z.bind(this)})}return j.prototype.value=Object.create($,Z),Object.defineProperties(J,j),J}function LK($){return function(...Z){let j=A4.get(this),[J,...W]=j(...Z);return J[$](...W)}}function PK($){return function(...Z){return A4.get(this).u[$](...Z)}}function NK($){let Z=HK[$];if(!Z)throw TypeError(ZY($));return H1(Z,w0(g2))}var HK={Instant:K4,PlainDateTime:O4,PlainDate:B4,PlainTime:D4,PlainYearMonth:U4,PlainMonthDay:V4},CK=H1(K4),_K=H1(fY),xK=H1(O4),SK=H1(B4),fK=H1(D4),AK=H1(U4),EK=H1(V4),P4={era:MW,eraYear:Nj,year:oZ,month:i0,daysInMonth:i0,daysInYear:i0,inLeapYear:BY,monthsInYear:i0},o6={monthCode:r},N4={day:i0},mY={dayOfWeek:i0,dayOfYear:i0,weekOfYear:LW,yearOfWeek:Nj,daysInWeek:i0},pY=Object.assign({},P4,o6,N4,mY),n6=new WeakMap,M0=n6.get.bind(n6),bY=n6.set.bind(n6),RK={...i6(P4,[zZ]),...i6(mY,[]),...i6(o6,[zZ,XZ]),...i6(N4,[XZ])},H4=M4(pY),bK=M4({...P4,...o6}),wK=M4({...o6,...N4}),K3={calendarId:($)=>D0($.calendar)},vK=l0(($,Z)=>function(j){let{i:J}=this;return $(J[Z](e(z0(j,J))))},pY),kK=sZ(($)=>(Z)=>Z[$],y.concat("sign")),C4=sZ(($,Z)=>(j)=>j[a0[Z]],_1),hY={epochSeconds:cW,epochMilliseconds:D6,epochMicroseconds:dW,epochNanoseconds:uW},O3=b(Mj,new Set(["branding"])),[yK,OZ,qK]=z1(XZ,b(M9,I0),{...K3,...wK},{getISOFields:O3,getCalendar:G3,with($,Z,j){return OZ(Q9(tK,$,this,BZ(Z),j))},equals:($,Z)=>m7($,AY(Z)),toPlainDate($,Z){return e(w9(B3,$,this,Z))},toLocaleString($,Z,j){let[J,W]=EK(Z,j,$);return J.format(W)},toString:sj,toJSON:($)=>sj($),valueOf:o1},{from:($,Z)=>OZ(AY($,Z))}),cY={getOffsetNanosecondsFor:yY,getPossibleInstantsFor($,Z,j){let J=[...Z.call($,T0(Y0(j,w)))].map((Y)=>mK(Y).epochNanoseconds),W=J.length;return W>1&&(J.sort(H0),ej(m0(g0(J[0],J[W-1])))),J}},I4={getOffsetNanosecondsFor:yY},[gK,S0,mK]=z1(c6,D9,hY,{add:($,Z)=>S0($2(0,$,t(Z))),subtract:($,Z)=>S0($2(1,$,t(Z))),until:($,Z,j)=>h(P2(0,$,W1(Z),j)),since:($,Z,j)=>h(P2(1,$,W1(Z),j)),round:($,Z)=>S0(sW($,Z)),equals:($,Z)=>v7($,W1(Z)),toZonedDateTime($,Z){let j=P1(Z);return X0(v2($,u(j.timeZone),I0(j.calendar)))},toZonedDateTimeISO:($,Z)=>X0(v2($,u(Z))),toLocaleString($,Z,j){let[J,W]=CK(Z,j,$);return J.format(W)},toString:($,Z)=>cj(u,F0,$,Z),toJSON:($)=>cj(u,F0,$),valueOf:o1},{from:($)=>S0(W1($)),fromEpochSeconds:($)=>S0(y9($)),fromEpochMilliseconds:($)=>S0(q9($)),fromEpochMicroseconds:($)=>S0(g9($)),fromEpochNanoseconds:($)=>S0(m9($)),compare:($,Z)=>I2(W1($),W1(Z))}),[a6,bV]=z1("TimeZone",($)=>{let Z=b7($);return{branding:"TimeZone",id:Z,o:u6(Z)}},{id:($)=>$.id},{getPossibleInstantsFor:({o:$},Z)=>$.getPossibleInstantsFor(i1(Z)).map((j)=>S0(O0(j))),getOffsetNanosecondsFor:({o:$},Z)=>$.getOffsetNanosecondsFor(W1(Z).epochNanoseconds),getOffsetStringFor($,Z){let j=W1(Z).epochNanoseconds,J=s6(this,I4).getOffsetNanosecondsFor(j);return O$(J)},getPlainDateTimeFor($,Z,j=w){let J=W1(Z).epochNanoseconds,W=s6(this,I4).getOffsetNanosecondsFor(J);return T0(Y0(p1(J,W),I0(j)))},getInstantFor($,Z,j){let J=i1(Z),W=bj(j),Y=s6(this);return S0(O0(v0(Y,J,W)))},getNextTransition:({o:$},Z)=>EY(1,$,Z),getPreviousTransition:({o:$},Z)=>EY(-1,$,Z),equals($,Z){return!!A6(this,u(Z))},toString:($)=>$.id,toJSON:($)=>$.id},{from($){let Z=u($);return typeof Z=="string"?new a6(Z):Z}}),pK=kY(Object.keys(cY)),[hK,s1]=z1(h6,L9,C4,{getISOFields:O3,with($,Z,j){return s1(K9(this,BZ(Z),j))},add:($,Z)=>s1(Y2(0,$,t(Z))),subtract:($,Z)=>s1(Y2(1,$,t(Z))),until:($,Z,j)=>h(x2(0,$,l1(Z),j)),since:($,Z,j)=>h(x2(1,$,l1(Z),j)),round:($,Z)=>s1(aW($,Z)),equals:($,Z)=>p7($,l1(Z)),toZonedDateTime:($,Z)=>X0(v9(u,f0,p,$,Z)),toPlainDateTime:($,Z)=>T0(k9($,f0(Z))),toLocaleString($,Z,j){let[J,W]=fK(Z,j,$);return J.format(W)},toString:nj,toJSON:($)=>nj($),valueOf:o1},{from:($,Z)=>s1(l1($,Z)),compare:($,Z)=>f6(l1($),l1(Z))}),[cK,n1,dK]=z1(zZ,b(I9,I0),{...K3,...bK},{getISOFields:O3,getCalendar:G3,with($,Z,j){return n1(G9(rK,$,this,BZ(Z),j))},add:($,Z,j)=>n1(W2(wY,0,$,t(Z),j)),subtract:($,Z,j)=>n1(W2(wY,1,$,t(Z),j)),until:($,Z,j)=>h(_2(vY,0,$,QZ(Z),j)),since:($,Z,j)=>h(_2(vY,1,$,QZ(Z),j)),equals:($,Z)=>g7($,QZ(Z)),toPlainDate($,Z){return e(b9(B3,$,this,Z))},toLocaleString($,Z,j){let[J,W]=AK(Z,j,$);return J.format(W)},toString:ij,toJSON:($)=>ij($),valueOf:o1},{from:($,Z)=>n1(QZ($,Z)),compare:($,Z)=>U$(QZ($),QZ(Z))}),[uK,T0]=z1(L$,b(V9,I0),{...K3,...H4,...C4},{getISOFields:O3,getCalendar:G3,with($,Z,j){return T0(X9(B3,$,this,BZ(Z),j))},withCalendar:($,Z)=>T0(w6($,I0(Z))),withPlainDate:($,Z)=>T0(d9($,f0(Z))),withPlainTime:($,Z)=>T0(c9($,L4(Z))),add:($,Z,j)=>T0(j2(N$,0,$,t(Z),j)),subtract:($,Z,j)=>T0(j2(N$,1,$,t(Z),j)),until:($,Z,j)=>h(H2(Y1,0,$,i1(Z),j)),since:($,Z,j)=>h(H2(Y1,1,$,i1(Z),j)),round:($,Z)=>T0(oW($,Z)),equals:($,Z)=>y7($,i1(Z)),toZonedDateTime:($,Z,j)=>X0(_9(p,$,u(Z),j)),toPlainDate:($)=>e(z0($)),toPlainTime:($)=>s1(n0($)),toPlainYearMonth($){return n1(x9(r6,$,this))},toPlainMonthDay($){return OZ(S9(e6,$,this))},toLocaleString($,Z,j){let[J,W]=xK(Z,j,$);return J.format(W)},toString:uj,toJSON:($)=>uj($),valueOf:o1},{from:($,Z)=>T0(i1($,Z)),compare:($,Z)=>L2(i1($),i1(Z))}),[lK,e,dY]=z1(M$,b(T9,I0),{...K3,...H4},{getISOFields:O3,getCalendar:G3,with($,Z,j){return e(F9(B3,$,this,BZ(Z),j))},withCalendar:($,Z)=>e(w6($,I0(Z))),add:($,Z,j)=>e(J2(N$,0,$,t(Z),j)),subtract:($,Z,j)=>e(J2(N$,1,$,t(Z),j)),until:($,Z,j)=>h(C2(Y1,0,$,f0(Z),j)),since:($,Z,j)=>h(C2(Y1,1,$,f0(Z),j)),equals:($,Z)=>q7($,f0(Z)),toZonedDateTime($,Z){let j=!K0(Z)||Z instanceof a6?{timeZone:Z}:Z;return X0(f9(u,l1,p,$,j))},toPlainDateTime:($,Z)=>T0(A9($,L4(Z))),toPlainYearMonth($){return n1(E9(r6,$,this))},toPlainMonthDay($){return OZ(R9(e6,$,this))},toLocaleString($,Z,j){let[J,W]=SK(Z,j,$);return J.format(W)},toString:lj,toJSON:($)=>lj($),valueOf:o1},{from:($,Z)=>e(f0($,Z)),compare:($,Z)=>U$(f0($),f0(Z))}),_4={fields($,Z,j){return[...Z.call($,j)]}},uY=Object.assign({dateFromFields($,Z,j,J){return dY(Z.call($,Object.assign(Object.create(null),j),J))}},_4),lY=Object.assign({yearMonthFromFields($,Z,j,J){return dK(Z.call($,Object.assign(Object.create(null),j),J))}},_4),iY=Object.assign({monthDayFromFields($,Z,j,J){return qK(Z.call($,Object.assign(Object.create(null),j),J))}},_4),x4={mergeFields($,Z,j,J){return P1(Z.call($,Object.assign(Object.create(null),j),Object.assign(Object.create(null),J)))}},iK=Object.assign({},uY,x4),sK=Object.assign({},lY,x4),nK=Object.assign({},iY,x4),S4={dateAdd($,Z,j,J,W){return dY(Z.call($,e(z0(j,$)),h(i(J)),W))}},sY=Object.assign({},S4,{dateUntil($,Z,j,J,W,Y){return $O(Z.call($,e(z0(j,$)),e(z0(J,$)),Object.assign(Object.create(null),Y,{largestUnit:J3[W]})))}}),oK=Object.assign({},S4,{day:qY}),aK=Object.assign({},sY,{day:qY}),r6=X1(lY),t6=X1(uY),e6=X1(iY),rK=X1(sK),B3=X1(iK),tK=X1(nK),N$=X1(S4),Y1=X1(sY),wY=X1(oK),vY=X1(aK),[eK,h,$O]=z1(d6,P9,{...kK,blank:B7},{with:($,Z)=>h(O9($,Z)),negated:($)=>h(H6($)),abs:($)=>h(O7($)),add:($,Z,j)=>h(Q2(F3,Y1,p,0,$,t(Z),j)),subtract:($,Z,j)=>h(Q2(F3,Y1,p,1,$,t(Z),j)),round:($,Z)=>h(K7(F3,Y1,p,$,Z)),total:($,Z)=>iW(F3,Y1,p,$,Z),toLocaleString($,Z,j){return Intl.DurationFormat?new Intl.DurationFormat(Z,j).format(this):I6($)},toString:I6,toJSON:($)=>I6($),valueOf:o1},{from:($)=>h(t($)),compare:($,Z,j)=>w7(F3,N$,p,t($),t(Z),j)}),nY={toString:($)=>$.id,toJSON:($)=>$.id,...RK,dateAdd:({id:$,o:Z},j,J,W)=>e(z0(Z.dateAdd(f0(j),t(J),W),$)),dateUntil:({o:$},Z,j,J)=>h(i($.dateUntil(f0(Z),f0(j),qW(J)))),dateFromFields:({id:$,o:Z},j,J)=>e(A2(Z,j,J,IW($))),yearMonthFromFields:({id:$,o:Z},j,J)=>n1(E2(Z,j,J,VW($))),monthDayFromFields:({id:$,o:Z},j,J)=>OZ(R2(Z,0,j,J,TW($))),fields({o:$},Z){let j=new Set(o0),J=[];for(let W of Z){if(r(W),!j.has(W))throw RangeError(p2(W));j.delete(W),J.push(W)}return $.fields(J)},mergeFields:({o:$},Z,j)=>$.mergeFields(Lj(Hj(Z)),Lj(Hj(j)))},[f4]=z1("Calendar",($)=>{let Z=n7($);return{branding:"Calendar",id:Z,o:FZ(Z)}},{id:($)=>$.id},nY,{from($){let Z=I0($);return typeof Z=="string"?new f4(Z):Z}}),ZO=kY(Object.keys(nY).slice(4)),[jO,X0]=z1(x1,b(U9,I0,u),{...hY,...K3,...RY(H4),...RY(C4),offset:($)=>O$(T4($).offsetNanoseconds),offsetNanoseconds:($)=>T4($).offsetNanoseconds,timeZoneId:($)=>D0($.timeZone),hoursInDay:($)=>rW(p,$)},{getISOFields:($)=>G7(F0,$),getCalendar:G3,getTimeZone:({timeZone:$})=>typeof $=="string"?new a6($):$,with($,Z,j){return X0(z9(B3,p,$,this,BZ(Z),j))},withCalendar:($,Z)=>X0(w6($,I0(Z))),withTimeZone:($,Z)=>X0(u9($,u(Z))),withPlainDate:($,Z)=>X0(h9(p,$,f0(Z))),withPlainTime:($,Z)=>X0(p9(p,$,L4(Z))),add:($,Z,j)=>X0(Z2(N$,p,0,$,t(Z),j)),subtract:($,Z,j)=>X0(Z2(N$,p,1,$,t(Z),j)),until:($,Z,j)=>h(i(N2(Y1,p,0,$,KZ(Z),j))),since:($,Z,j)=>h(i(N2(Y1,p,1,$,KZ(Z),j))),round:($,Z)=>X0(nW(p,$,Z)),startOfDay:($)=>X0(tW(p,$)),equals:($,Z)=>k7($,KZ(Z)),toInstant:($)=>S0(N9($)),toPlainDateTime:($)=>T0(k2(F0,$)),toPlainDate:($)=>e(y2(F0,$)),toPlainTime:($)=>s1(q2(F0,$)),toPlainYearMonth($){return n1(H9(r6,$,this))},toPlainMonthDay($){return OZ(C9(e6,$,this))},toLocaleString($,Z,j={}){let[J,W]=_K(Z,j,$);return J.format(W)},toString:($,Z)=>dj(F0,$,Z),toJSON:($)=>dj(F0,$),valueOf:o1},{from:($,Z)=>X0(KZ($,Z)),compare:($,Z)=>M2(KZ($),KZ(Z))}),JO=Object.defineProperties({},{...j6("Temporal.Now"),...G$({timeZoneId:()=>C1(),instant:()=>S0(O0($3())),zonedDateTime:($,Z=C1())=>X0(V0($3(),u(Z),I0($))),zonedDateTimeISO:($=C1())=>X0(V0($3(),u($),w)),plainDateTime:($,Z=C1())=>T0(Y0(WZ(F0(u(Z))),I0($))),plainDateTimeISO:($=C1())=>T0(Y0(WZ(F0(u($))),w)),plainDate:($,Z=C1())=>e(z0(WZ(F0(u(Z))),I0($))),plainDateISO:($=C1())=>e(z0(WZ(F0(u($))),w)),plainTimeISO:($=C1())=>s1(n0(WZ(F0(u($)))))})}),DZ=Object.defineProperties({},{...j6("Temporal"),...G$({PlainYearMonth:cK,PlainMonthDay:yK,PlainDate:lK,PlainTime:hK,PlainDateTime:uK,ZonedDateTime:jO,Instant:gK,Calendar:f4,TimeZone:a6,Duration:eK,Now:JO})}),WO=MK(),A4=new WeakMap,YO=Object.defineProperties(Object.create(Intl),G$({DateTimeFormat:WO}));class E4 extends Error{code;constructor($,Z=`OAuth callback failed: ${$}`){super(Z);this.name="OAuthCallbackError",this.code=$}}class zO{linkByEmail=!0;createUsers=!0;createUsersWithoutEmail=!1}import{createHash as R4,createHmac as XO,randomBytes as oY,timingSafeEqual as tY}from"crypto";var U3=600,$8="gemi_oauth",FO=`__Host-${$8}`;function UZ($,Z=$8){if(Z===$8)return $?FO:$8;return $?`__Host-${Z}`:Z}function D3($){return $.toString("base64url")}function eY($){return XO("sha256",c$()).update(`gemi-oauth-state:${$}`).digest()}function aY($,Z){let j=R4("sha256").update($).digest(),J=R4("sha256").update(Z).digest();return tY(j,J)&&$.length===Z.length}function Z8($,Z=Date.now(),j={}){let J=D3(oY(32)),W=D3(oY(32)),Y=GO(W),z={provider:$,state:J,codeVerifier:W,expiresAt:Z+U3*1000,...j.subject!==void 0?{subject:j.subject}:{},...j.returnTo!==void 0?{returnTo:j.returnTo}:{}};return{state:J,codeVerifier:W,codeChallenge:Y,cookieValue:QO(z)}}function GO($){return D3(R4("sha256").update($).digest())}function QO($){let Z=D3(Buffer.from(JSON.stringify($)));return`${Z}.${D3(eY(Z))}`}function KO($){if(typeof $!=="string"||$==="")return null;let Z=$.indexOf(".");if(Z<=0||Z!==$.lastIndexOf("."))return null;let j=$.slice(0,Z),J=Buffer.from($.slice(Z+1),"base64url"),W=eY(j);if(J.length!==W.length||!tY(J,W))return null;try{let Y=JSON.parse(Buffer.from(j,"base64url").toString("utf8"));if(typeof Y?.provider!=="string"||typeof Y?.state!=="string"||typeof Y?.codeVerifier!=="string"||typeof Y?.expiresAt!=="number"||Y.subject!==void 0&&typeof Y.subject!=="string"||Y.returnTo!==void 0&&typeof Y.returnTo!=="string")return null;return Y}catch{return null}}var a1=new Map,rY=1e4;function OO($,Z,j){if(a1.size>=rY){for(let[J,W]of a1)if(W<=j)a1.delete(J);while(a1.size>=rY){let J=a1.keys().next().value;if(J===void 0)break;a1.delete(J)}}a1.set($,Z)}function j8($){let Z=$.now??Date.now();if(!$.cookieValue||!$.returnedState)return{ok:!1,reason:"missing_state"};let j=KO($.cookieValue);if(!j)return{ok:!1,reason:"invalid_state"};let J=aY(j.state,$.returnedState),W=aY(j.provider,$.provider);if(!J||!W)return{ok:!1,reason:"invalid_state"};if(j.expiresAt<=Z)return{ok:!1,reason:"expired_state"};if(a1.has(j.state))return{ok:!1,reason:"invalid_state"};return OO(j.state,j.expiresAt,Z),{ok:!0,payload:j}}var b4=new WeakMap;function DO($){let Z=b4.get($);if(!Z)Z=$(BO(32).toString("hex")),b4.set($,Z),Z.catch(()=>b4.delete($));return Z}async function w4($,Z,j){if(typeof j==="string"&&j!=="")return await $.verifyPassword(Z,j);try{await $.verifyPassword(Z,await DO($.hashPassword))}catch{}return!1}async function H$($,Z){let j=Z.user??Z.session?.user;if(!j||!$.onAuthenticated)return;let{password:J,...W}=j;await $.onAuthenticated({...Z,user:W})}class k4 extends Error{}function v4($){return typeof $==="string"&&$!==""?$:null}function $z($){return gZ($)}var UO=256;function Zz($){return typeof $==="string"&&$!==""&&$.length<=UO?$:null}var J8="intended_url";function Jz($){if($.cookies.get(J8))$.ctx().setCookie(J8,"",{maxAge:-1})}function jz($){let Z=$.cookies.get(J8);if(!Z)return null;Jz($);try{return e0(decodeURIComponent(Z),"")||null}catch{return null}}class y4 extends _{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class Wz extends _{schema={email:{required:"Email is required",email:"Invalid email"}}}class Yz extends _{schema={password:{required:"Password is required",password:"Invalid password"}}}class s extends yZ{async me(){let $=await F1.user();if(!$)throw new o8;return $}async verifyEmail($=new _){let Z=await $.input(),{userProvider:j}=T(f),J=v4(Z.get("token"));if(!J)return{email:null};let W=await j.findUserByVerificationToken(J);if(!W)return{email:null};return await j.verifyUser(W.email),{email:W.email}}async signInWithMagicLink($=new _){let Z=T(f),{userProvider:j}=Z,J=v4($.search.get("token")),W=null;try{W=gZ(decodeURIComponent($.search.get("email")??""))}catch{}if(await d$("link",null,$,{perIp:Z.config.emailCode.verifyLimit.perIp}),!W||!J||!await Z.verifyMagicLinkToken(W,J))return{error:"Invalid token"};await j.verifyUser(W);let Y=await Z.createOrUpdateSession({email:W});return $.ctx().setCookie("access_token",Y.token,T(f).accessTokenCookieOptions($,Y.expiresAt)),await Z.config.onSignIn(Y,$.search.toJSON()),await H$(Z.config,{session:Y,isNewUser:!1,method:"magic-link",req:$}),{session:Y}}async verifyPinRequest($){let Z=T(f),j=await $.input(),{email:J,pin:W}=j.toJSON(),Y=gZ(J),z=Zz(W);if(await d$("verify",Y,$,Z.config.emailCode.verifyLimit),!Y||!z)throw new q({pin:["Invalid pin"]});let X=await Z.verifyOneTimeCode(Y,z);if(X.status==="too_many_attempts")throw new q({pin:["Too many attempts"]});if(X.status!=="ok")throw new q({pin:["Invalid pin"]});return await Z.userProvider.verifyUser(Y),Y}async signInWithPinV2($=new _){let Z=T(f),j=await this.verifyPinRequest($),J=await Z.createOrUpdateSessionV2({email:j});return $.ctx().setCookie("access_token",J.token,T(f).accessTokenCookieOptions($,J.expiresAt)),await Z.config.onSignIn(J,$.search.toJSON()),await H$(Z.config,{session:J,isNewUser:!1,method:"magic-link",req:$}),J}async signInWithPin($=new _){let Z=T(f),j=await this.verifyPinRequest($),J=await Z.createOrUpdateSession({email:j});return $.ctx().setCookie("access_token",J.token,T(f).accessTokenCookieOptions($,J.expiresAt)),await Z.config.onSignIn(J,$.search.toJSON()),await H$(Z.config,{session:J,isNewUser:!1,method:"magic-link",req:$}),{session:J}}async signInV2($=new y4){let Z=await $.input(),{email:j,password:J}=Z.toJSON(),W=j.toLowerCase().trim(),Y=T(f),z=await Y.userProvider.findUserByEmailAddress(W,Y.config.verifyEmail),X=typeof J==="string"&&await w4(Y.config,J,z?.password);if(!z||!X)throw new q({invalid_credentials:["Invalid credentials"]});let F=await Y.createOrUpdateSessionV2({email:z.email,id:z.id});$.ctx().setCookie("access_token",F.token,T(f).accessTokenCookieOptions($,F.expiresAt)),await Y.config.onSignIn(z,$.search.toJSON()),await H$(Y.config,{session:F,user:z,isNewUser:!1,method:"password",req:$});let{password:G,...Q}=z;return Q}async signIn($=new y4){let Z=await $.input(),{email:j,password:J}=Z.toJSON(),W=j.toLowerCase().trim(),Y=T(f),z=await Y.userProvider.findUserByEmailAddress(W,Y.config.verifyEmail),X=typeof J==="string"&&await w4(Y.config,J,z?.password);if(!z||!X)throw new q({invalid_credentials:["Invalid credentials"]});let F=await Y.createOrUpdateSession({email:z.email,id:z.id});$.ctx().setCookie("access_token",F.token,T(f).accessTokenCookieOptions($,F.expiresAt)),await Y.config.onSignIn(z,$.search.toJSON()),await H$(Y.config,{session:F,user:z,isNewUser:!1,method:"password",req:$});let{password:G,...Q}=z;return Q}async signUp(){let $=T(f),{userProvider:Z,config:j}=$,J=new j.signUpRequest,W=await J.input(),{email:Y,password:z,name:X,invitationId:F}=W.toJSON(),G=$z(Y);if(!G)throw new q({email:["Invalid email"]});if(z!=null&&typeof z!=="string")throw new q({password:["Invalid password"]});if(F!=null&&typeof F!=="string")throw new q({invitationId:["Invalid invitation"]});if(await Z.findUserByEmailAddress(G,!1))throw new q({email:["Email address already exists"]});let O=await j.hashPassword(z),K=T(l).detectLocale(J),D;if(F)D=await Z.findInvitation(F,G);let B,U="";if(D)B=await Z.transaction(async()=>{await Z.deleteInvitationById(F);let V=await Z.createUser({email:G,name:X,password:O,emailVerifiedAt:new Date,locale:K});return await Z.createAccount({organizationId:D.organizationId,userId:V.id,organizationRole:D.role}),await j.onUserCreated(V),V});else U=await j.generateEmailVerificationToken(G),B=await Z.transaction(async()=>{let V=await Z.createUser({email:G,name:X,password:O,verificationToken:U,locale:K});return await j.onUserCreated(V),V});return await j.onSignUp(B,U,J.search.toJSON()),B}async signOut($=new _){let Z=wZ($),j=T(f),{config:J}=j,W=await j.revokeSession(Z,$.headers.get("User-Agent"));if($.ctx().setCookie("access_token","",T(f).accessTokenCookieOptions($,new Date(0))),T(f).cookieDomain($))$.ctx().setCookie("access_token","",{...T(f).accessTokenCookieOptions($,new Date(0)),domain:void 0});if(W?.user)W.user.extension=await J.extendSession(W.user),await J.onSignOut(W.user);return{}}async forgotPassword($=new Wz){let Z=await $.input(),j=$z(Z.get("email"));if(!j)return{};let{userProvider:J,config:W}=T(f),Y=await J.findUserByEmailAddress(j,W.verifyEmail);if(!Y)return{};let z=await W.generateForgotPasswordToken(Y);return await J.createPasswordResetToken({user:Y,token:z}),await W.onForgotPassword(Y,z),{}}async resetPassword($=new Yz){let{userProvider:Z,config:j}=T(f),J=await $.input(),{password:W,token:Y}=J.toJSON(),z=v4(Y),X=z?await Z.findPasswordResetToken({token:z}):null;if(!X)throw new q({token:["Invalid token"]});if(DZ.Instant.from(X.createdAt.toISOString()).add({hours:24}).until(DZ.Now.instant()).sign>=0)throw new q({token:["Token expired"]});await Z.deletePasswordResetToken({token:z});let G=await Z.findUserByEmailAddress(X.user.email,j.verifyEmail);if(!G)throw new q({email:["User not found"]});let Q=await j.hashPassword(W);return await Z.updateUserPassword({id:G.id,password:Q}),await Z.deleteAllUserSessions(G.id),await j.onResetPassword(G),{}}async changePassword($=new _){let{userProvider:Z,config:j}=T(f),J=await F1.user(),W=await $.input(),{oldPassword:Y,newPassword:z}=W.toJSON();if(typeof z!=="string")throw new q({newPassword:["Invalid password"]});let X=await Z.findUserByEmailAddress(J.email,j.verifyEmail);if(!(typeof Y==="string"&&await w4(j,Y,X?.password)))throw new q({oldPassword:["Incorrect password"]});let G=await j.hashPassword(z);return await Z.updateUserPassword({id:J.id,password:G}),await Z.deleteAllUserSessions(J.id),{}}async oauthRedirect($=new _){let{provider:Z}=$.params,j=T(f).config.oauthProviders[Z];if(!j)throw Error(`Invalid provider: ${Z}`);let J=q$($.rawRequest),W=e0($.search.get(t0),"");if(W)$.ctx().setCookie(J8,encodeURIComponent(W),{httpOnly:!0,sameSite:"Lax",secure:J,maxAge:600});else Jz($);let{state:Y,codeChallenge:z,cookieValue:X}=Z8(Z);return $.ctx().setCookie(UZ(J),X,{httpOnly:!0,sameSite:"Lax",secure:J,maxAge:U3}),{destination:await j.getRedirectUrl($,{state:Y,codeChallenge:z,codeChallengeMethod:"S256"})}}async oauthCallback($=new _){let{provider:Z}=$.params,j=T(f),{userProvider:J,config:W}=j,Y=W.oauthProviders[Z],z=q$($.rawRequest),X=UZ(z),F=$.cookies.get(X);if(F!==void 0&&F!==null)$.ctx().setCookie(X,"",{httpOnly:!0,sameSite:"Lax",secure:z,maxAge:-1});if(!Y)return this.oauthFailure($,"unknown_provider");let G=$.search.get("error");if(G)return this.oauthFailure($,/^[a-z0-9_]{1,64}$/.test(G)?G:"provider_error");let Q=j8({provider:Z,cookieValue:F,returnedState:$.search.get("state")});if("reason"in Q)return console.error(`Authentication error: OAuth callback refused (${Q.reason})`),this.oauthFailure($,Q.reason);if(!$.search.get("code"))return this.oauthFailure($,"missing_code");let O;try{O=await Y.onCallback($,{state:Q.payload.state,codeVerifier:Q.payload.codeVerifier})}catch(P){if(P instanceof E4)return this.oauthFailure($,P.code);return console.error("Authentication error: OAuth provider callback failed",P),this.oauthFailure($,"provider_error")}let{name:K,username:D,providerId:B,emailVerified:U}=O??{},V=typeof O?.email==="string"?O.email:void 0,I=V?m3(V):null,M=B?await J.findUserBySocialAccount(Z,B):null,N="signin",A=!M&&!I&&!V&&!!B&&Y.createUsersWithoutEmail===!0;if(!M&&A){if(Y.createUsers===!1)return console.error(`Authentication error: a ${Z} sign-in is not linked to a user, and ${Z} does not create users`),this.oauthFailure($,"signup_disabled");try{M=await this.createOAuthUserWithoutEmail({provider:Z,providerId:B,name:K,username:D,locale:T(l).detectLocale($)}),N="signup"}catch(P){let L=await J.findUserBySocialAccount(Z,B);if(!L)throw P;M=L}}if(!M){if(!I)return console.error("Authentication error: No usable email returned from OAuth provider callback"),this.oauthFailure($,V?"invalid_email":B?"missing_email":"no_identity");if(U===!1)return console.error("Authentication error: OAuth provider returned an unverified email"),this.oauthFailure($,"email_not_verified");let P=T(l).detectLocale($);try{let L=await this.linkOAuthAccount({provider:Z,providerId:B,email:I,rawEmail:V,name:K,username:D,locale:P,linkExisting:Y.linkByEmail!==!1,createUser:Y.createUsers!==!1});if(L==="account_exists")return console.error(`Authentication error: a ${Z} sign-in matched an existing user by email, and ${Z} does not link by email`),this.oauthFailure($,"account_exists");if(L==="signup_disabled")return console.error(`Authentication error: a ${Z} sign-in is not linked to a user, and ${Z} does not create users`),this.oauthFailure($,"signup_disabled");if(L)M=L.user,N=L.action}catch(L){let g=B?await J.findUserBySocialAccount(Z,B):null;if(!g)throw L;M=g}if(!M)return this.oauthFailure($,"account_conflict")}let x=await j.createOrUpdateSessionV2({email:M.email,id:M.id});if($.ctx().setCookie("access_token",x.token,T(f).accessTokenCookieOptions($,x.expiresAt)),N==="signup")await W.onSignUp(M,"",$.search.toJSON());else await W.onSignIn(M,$.search.toJSON());await H$(j.config,{session:x,user:M,isNewUser:N==="signup",method:"oauth",req:$});let E=jz($)??W.redirectPath,S=W.oauthCompleteProfilePath?e0(W.oauthCompleteProfilePath,""):"";if(S&&!M.email){let P=new URL(S,"http://gemi.invalid");P.searchParams.set(t0,E),E=`${P.pathname}${P.search}${P.hash}`}return{session:x,redirectTo:E}}async createOAuthUserWithoutEmail($){let{userProvider:Z,config:j}=T(f);return await Z.transaction(async()=>{let J=await Z.createUser({email:null,name:$.name??$.username??"",locale:$.locale});return await Z.createSocialAccount({provider:$.provider,providerId:$.providerId,userId:J.id,username:$.username,expiresAt:new Date,accessToken:"",refreshToken:""}),await j.onUserCreated(J),J})}oauthFailure($,Z){let j=jz($),J=T(f).config.oauthFailurePath;if(J){let W=e0(J,"");if(W){let Y=new URL(W,"http://gemi.invalid");if(Y.searchParams.set("error",Z),j)Y.searchParams.set(t0,j);U1.external(`${Y.pathname}${Y.search}${Y.hash}`)}else console.error(`auth.oauthFailurePath must be a same-origin path, got ${JSON.stringify(J)}`)}return{session:null,error:Z,redirectTo:j}}async linkOAuthAccount($){let{provider:Z,providerId:j,email:J,rawEmail:W,name:Y,username:z,locale:X}=$,{userProvider:F,config:G}=T(f),Q=(B)=>({provider:Z,userId:B,email:J,username:z,providerId:j,expiresAt:new Date,accessToken:"",refreshToken:""}),O=await F.findUserByEmailAddress(J,!1),K=W?.trim();if(!O&&K&&K!==J)O=await F.findUserByEmailAddress(K,!1);if(O){if($.linkExisting===!1)return"account_exists";if(!j)return{user:O,action:"signin"};let B=await F.findSocialAccounts(O.id,Z);if(B.some((V)=>V.providerId===j))return{user:O,action:"signin"};if(B.some((V)=>V.providerId))return console.error(`Authentication error: user ${O.id} is already linked to a different ${Z} account`),null;let U=B[0];if(U){if(!await F.claimSocialAccount(U,j))throw Error(`${Z} account link changed concurrently`)}else await F.createSocialAccount(Q(O.id));return{user:O,action:"signin"}}if($.createUser===!1)return"signup_disabled";return{user:await F.transaction(async()=>{let B=await F.createUser({email:J,name:Y,locale:X,emailVerifiedAt:new Date});if(j)await F.createSocialAccount(Q(B.id));return await G.onUserCreated(B),B}),action:"signup"}}async createMagicLinkToken($=new _){let Z=await $.input(),j=gZ(Z.get("email")),J=T(f),{uniformMagicLinkResponse:W,requestLimit:Y}=J.config.emailCode;if(await d$("request",j,$,Y),!j)return{email:null};let{user:z,pin:X,token:F}=await J.createMagicLinkToken(j);if(z)return await J.config.onMagicLinkCreated(z,{email:j,pin:X,token:F}),{email:j};return{email:W?j:null}}async requestEmailCode($=new _){let Z=T(f),j=Z.config.emailCode;if(!j.enabled)throw new L0("Not found",{status:404});let J=await $.input(),W=m3(J.get("email"));if(await d$("request",W,$,j.requestLimit),!W)throw new q({email:["Invalid email"]});let Y=await Z.userProvider.findUserByEmailAddress(W,!1);if(Y||j.createUser){let{pin:z,token:X}=await Z.issueOneTimeCode(W,j.length);await j.send({email:W,code:z,token:X,isNewUser:!Y,req:$})}return{ok:!0}}async verifyEmailCode($=new _){let Z=T(f),{userProvider:j,config:J}=Z;if(!J.emailCode.enabled)throw new L0("Not found",{status:404});let W=await $.input(),{email:Y,code:z,name:X}=W.toJSON(),F=m3(Y),G=Zz(z);if(await d$("verify",F,$,J.emailCode.verifyLimit),!F||!G)throw new q({code:["invalid_code"]});let Q=await Z.verifyOneTimeCode(F,G,{claim:!1});if(Q.status==="too_many_attempts")throw new q({code:["too_many_attempts"]});if(Q.status!=="ok")throw new q({code:["invalid_code"]});let O=Q.row,K=await j.findUserByEmailAddress(F,!1),D=!1;if(K){if(!await j.claimMagicLinkToken(O.id))throw new q({code:["invalid_code"]});await j.verifyUser(F)}else if(J.emailCode.createUser){let U=T(l).detectLocale($);try{K=await j.transaction(async()=>{if(!await j.claimMagicLinkToken(O.id))throw new k4;let V=await j.createUser({email:F,name:typeof X==="string"?X.trim():"",emailVerifiedAt:new Date,locale:U});return await J.onUserCreated(V),V}),D=!0}catch(V){if(V instanceof k4)throw new q({code:["invalid_code"]});throw V}}else throw await j.claimMagicLinkToken(O.id),new q({code:["invalid_code"]});let B=await Z.createOrUpdateSessionV2({email:F,id:K.id});return $.ctx().setCookie("access_token",B.token,T(f).accessTokenCookieOptions($,B.expiresAt)),await J.onSignIn(B,$.search.toJSON()),await H$(Z.config,{session:B,isNewUser:D,method:"email-code",req:$}),{session:B,isNewUser:D}}}var zz="gemi_oauth_connection";class W8 extends yZ{async connect($=new _){let Z=String($.params.provider??""),J=T(V3).providers[Z],W=await F1.user(),Y=e0($.search.get(t0),"");if(!J)return this.finish(Y,Z,"unknown_provider");let z=q$($.rawRequest),{state:X,codeChallenge:F,cookieValue:G}=Z8(Xz(Z),Date.now(),{subject:String(W.id),...Y?{returnTo:Y}:{}});return $.ctx().setCookie(UZ(z,zz),G,{httpOnly:!0,sameSite:"Lax",secure:z,maxAge:U3}),U1.external(J.authorizationUrl({state:X,codeChallenge:F,redirectUri:Fz($,Z,J.config.redirectUri)})),{destination:"/"}}async callback($=new _){let Z=String($.params.provider??""),j=T(V3),J=await F1.user(),W=q$($.rawRequest),Y=UZ(W,zz),z=$.cookies.get(Y);if(z!==void 0&&z!==null)$.ctx().setCookie(Y,"",{httpOnly:!0,sameSite:"Lax",secure:W,maxAge:-1});let X=j8({provider:Xz(Z),cookieValue:z,returnedState:$.search.get("state")}),F="payload"in X?X.payload.returnTo??"":"",G=j.providers[Z];if(!G)return this.finish(F,Z,"unknown_provider");let Q=$.search.get("error");if(Q)return this.finish(F,Z,/^[a-z0-9_]{1,64}$/.test(Q)?Q:"provider_error");if("reason"in X)return console.error(`OAuth connection refused (${X.reason})`),this.finish(F,Z,X.reason);if(X.payload.subject!==String(J.id))return this.finish(F,Z,"user_mismatch");let O=$.search.get("code");if(!O)return this.finish(F,Z,"missing_code");try{let K=await G.exchangeCode({code:O,codeVerifier:X.payload.codeVerifier,redirectUri:Fz($,Z,G.config.redirectUri)}),D=await j.save(J,Z,K);await T(f).config.onConnected({user:J,provider:Z,connection:D,profile:K.profile??null,req:$})}catch(K){if(K instanceof Gz)return console.error(`OAuth connection to ${Z} failed: ${K.message}`),this.finish(F,Z,K.providerError??K.code);throw K}return this.finish(F,Z)}finish($,Z,j){let J=$||e0(T(f).config.redirectPath,"/"),W=new URL(J,"http://gemi.invalid");if(W.searchParams.set("connection",Z),j)W.searchParams.set("connection_error",j);throw U1.external(`${W.pathname}${W.search}${W.hash}`),Error("unreachable: Redirect.external throws")}}function Xz($){return`connection:${$}`}function Fz($,Z,j){if(j)return j;return`${(process.env.HOST_NAME||new URL($.rawRequest.url).origin).replace(/\/$/,"")}/auth/connections/${encodeURIComponent(Z)}/callback`}class Qz extends V1{middlewares=["cache:private"];routes={"/:provider":this.view("_Redirect",[s,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[s,"oauthCallback"])}}class Kz extends V1{middlewares=["cache:private"];routes={"/:provider":this.redirect([W8,"connect"]).middleware(["auth"]),"/:provider/callback":this.redirect([W8,"callback"]).middleware([E3,"auth"])}}class q4 extends V1{middlewares=["cache:private"];routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[s,"signInWithMagicLink"]),"/oauth":Qz,"/connections":Kz}}class g4 extends A0{middlewares=["cache:private"];routes={"/sign-in":this.post(s,"signIn"),"/sign-in-v2":this.post(s,"signInV2"),"/sign-up":this.post(s,"signUp"),"/sign-out":this.post(s,"signOut"),"/forgot-password":this.post(s,"forgotPassword"),"/reset-password":this.post(s,"resetPassword"),"/change-password":this.post(s,"changePassword"),"/verify-email":this.post(s,"verifyEmail"),"/me":this.get(s,"me").middleware(["auth"]),"/magic-link":this.post(s,"createMagicLinkToken"),"/sign-in-with-pin":this.post(s,"signInWithPin"),"/sign-in-with-pin-v2":this.post(s,"signInWithPinV2"),"/email-code":this.post(s,"requestEmailCode"),"/email-code/verify":this.post(s,"verifyEmailCode")}}class m4 extends A0{middlewares=["cache:private,0,no-store"];routes={"/set-locale/:locale":this.get(async()=>{let Z=new _().params.locale;return await T(l).onLocaleChange(Z),{locale:Z}}),"/translations/:locale/:scope*":this.get(async()=>{let $=new _,Z=`/${$.params.scope??""}`,j=$.params.locale,J=T(l),W=j??J.detectLocale($),Y=J.getPageTranslations(W,Z);return $.ctx().setCookie("i18n-locale",W,{expires:new Date(Date.now()+31536000000)}),{[W]:Y}})}}class p4{}class h4 extends p4{async resize($,Z){let{height:j,width:J,quality:W,fit:Y}=Z;return await(await Y8("The Sharp image optimization driver"))($).resize(J>0?J:void 0,j>0?j:void 0,{fit:Y}).webp({quality:W>0?W:80,force:!0}).toBuffer()}}function RT($){return $}function Oz(){return{driver:new h4}}class c4 extends A0{routes={"/resize":this.file(async()=>{let $=new _,Z=new URL($.rawRequest.url),j=Z.searchParams.get("url"),J=Number(Z.searchParams.get("w")),W=Number(Z.searchParams.get("h")),Y=Z.searchParams.get("fit")??"cover",z=Number(Z.searchParams.get("q"));if(!j)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let F=`${j.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${j}`,G=await fetch(F);if(!G.ok)return new Response(JSON.stringify({error:"Image not found",info:F}),{headers:{"Content-Type":"application/json"},status:404});let Q=Buffer.from(await G.arrayBuffer()),O=await T(Bz).resize(Q,{height:W,width:J,fit:Y,quality:z});G.headers.delete("Content-Type"),G.headers.delete("Content-Length");let K=new Headers(G.headers);return K.set("Content-Type","image/webp"),K.set("Content-Length",`${O.byteLength}`),new Response(new Uint8Array(O),{headers:K})})}}class Bz{static token="image";driver;constructor($={}){this.driver=$.driver??Oz().driver}resize($,Z){return this.driver.resize($,Z)}}class d4 extends A0{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let $=Bun.file(T(Dz).currentLogFilePath);return new Response(await $.text(),{headers:{"Content-Type":"text/plain"}})})}}function VO($){let Z=new Map;for(let j of $)if(typeof j==="string"){let[J,W=""]=j.split(":");if(J.startsWith("-")){if(Z.has(J.replace("-","")))Z.delete(J.replace("-",""))}else Z.set(J,W.split(",").filter(Boolean))}else Z.set(j,[]);return Z}var TO={"body-limit":R3};class VZ{config;static token="middleware";defaultBodyLimit;constructor($){this.config=$;this.defaultBodyLimit=$.bodyLimit===null||$.bodyLimit===void 0?null:bZ($.bodyLimit)}get aliases(){return{...TO,...this.config.aliases}}applyDefaultBodyLimit($){if(this.defaultBodyLimit!==null&&!mJ($))S3($,this.defaultBodyLimit,{checkDeclared:!1})}assertGlobalMiddleware(){for(let $ of this.config.global){if(typeof $!=="string")continue;let[Z]=$.split(":");if(Z.startsWith("-"))throw Error(`Global middleware "${$}" cancels an alias, but nothing is inherited into the global list. Remove it.`);if(!this.aliases[Z])throw Error(`Global middleware "${Z}" is not a registered alias. Add it to \`aliases\` in the middleware config, or list the class itself.`)}}runGlobalMiddleware(){return this.runMiddleware(this.config.global)}runMiddleware($){let Z=new _,j=this.aliases,J=[];for(let[W,Y]of VO($).entries())if(typeof W==="string"){let z=j[W];if(z){let X=new z(Z);J.push({run:()=>X.run.call(X,...Y),runsOnRefusal:Uz(z)})}}else if(_3(W)){let z=new W(Z);J.push({run:z.run.bind(z),runsOnRefusal:Uz(W)})}else J.push({run:W,runsOnRefusal:!1});return(async()=>{let W={};for(let Y=0;Y<J.length;Y++)try{W={...W,...await J[Y].run()}}catch(z){throw await IO(J.slice(Y+1)),z}return W})()}}function Uz($){return $?.runsOnRefusal===!0}async function IO($){for(let Z of $){if(!Z.runsOnRefusal)continue;try{await Z.run()}catch(j){console.error(j)}}}function sT($){return $}function Vz(){return{onRequestStart:()=>{},onRequestEnd:()=>{},onRequestFail:()=>{}}}function Tz(){return{partialRendering:!0,localeRouting:"prefix",onRequestStart:()=>{},onRequestEnd:()=>{},onRequestFail:()=>{},onStreamComplete:()=>{}}}function MO($){return"run"in $}function LO($){return Object.hasOwn($,"get")||Object.hasOwn($,"post")||Object.hasOwn($,"put")||Object.hasOwn($,"patch")||Object.hasOwn($,"delete")}function PO($){return Object.hasOwn($,"first")&&Object.hasOwn($,"second")}function NO($){if("__brand"in $)return $.__brand==="ApiRouter";return!1}function HO($){if("__internal_brand"in $)return $.__internal_brand==="ProxyHandler";return!1}function Iz($){if("__internal_brand"in $)return $.__internal_brand==="StreamHandler";return!1}function u4($,Z="",j=[]){let J={};function W(Y,z,X,F,G){let Q=Y==="/"?"":Y,O=Z==="/"?"":Z,K=(`${O}${Q}`===""?"/":`${O}${Q}`).replaceAll("//","/");if(!J[K])J[K]={};J[K][z.toUpperCase()]={exec:X,middleware:[...j,...F],...G?{source:G}:{}},J[K].OPTIONS={exec:()=>{let B=new _().ctx().headers;return new Response(null,{headers:B,status:204})},middleware:[]}}for(let[Y,z]of Object.entries($)){if(HO(z)){let X=z;for(let F of["GET","POST","PUT","DELETE"])W(Y,F,X.run.bind(X),X.middlewares);continue}if(MO(z)){let X=z,F=X.method,G=X.middlewares,Q=X.run.bind(X);if(W(Y,F,Q,G,X.source),Iz(z))W(Y,"HEAD",Q,G,X.source)}if(LO(z))for(let[X,F]of Object.entries(z)){let G=F,Q=G.middlewares,O=G.run.bind(G);if(W(Y,X,O,Q,G.source),X==="get"&&Iz(G))W(Y,"HEAD",O,Q,G.source)}if(NO(z)){let X=new z,F=u4(X.routes,`${Z}${Y}`,X.middlewares);for(let[G,Q]of Object.entries(F))J[G.replaceAll("//","/")]=Q}if(PO(z)){let{first:X,second:F}=z;for(let[G,Q]of Object.entries(X)){let O=Q.middlewares,K=Q.run.bind(Q),[D,...B]=Y.split("/").reverse();if(!D.startsWith(":"))throw Error("Resource route must end with a dynamic segment");W(B.reverse().join("/"),G,K,O,Q.source)}for(let[G,Q]of Object.entries(F)){let O=Q.middlewares,K=Q.run.bind(Q);W(Y,G,K,O,Q.source)}}}return Object.fromEntries(Object.entries(J).sort(([Y],[z])=>{let X=Y.split("/").length+Y.split(":").length,F=z.split("/").length+z.split(":").length;return X-F}))}function z8($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function l4($,Z){if($==="/")return Z;if(Z==="/")return $;return`${$}${Z}`}function i4($){let Z=z8($);return Z.length>1?Z.replace(/\/$/,""):Z}function Mz($,Z){return Z.map((j)=>({...j,path:i4(l4($,j.path))}))}function X8($){let Z={};for(let[j,J]of Object.entries($))if("run"in J){let W=J;if("children"in W){let Y=new W.children,z=X8(Y.routes);for(let[X,{exec:F,middleware:G,segments:Q,features:O,static:K}]of Object.entries(z)){let D=l4(j,X),B=(U)=>W.run.call(W,U,j);Z[z8(D)]={exec:[B,...F],middleware:[...W.middlewares,...G],features:[...W.featureGates,...O],viewPath:W.viewPath,segments:[{path:i4(j),viewPath:W.viewPath,...W.alwaysRuns?{alwaysRun:!0}:{}},...Mz(j,Q)],...K?{static:K}:{}}}}else{let Y=(z)=>W.run.call(W,z,j);Z[z8(j)]={exec:[Y],middleware:W.middlewares,features:W.featureGates,viewPath:W.viewPath,segments:[{path:i4(j),viewPath:W.viewPath}],..."staticOptions"in W&&W.staticOptions?{static:W.staticOptions}:{}}}}else{let W=new J,Y=X8(W.routes);for(let[z,{exec:X,middleware:F,viewPath:G,segments:Q,features:O,static:K}]of Object.entries(Y)){let D=l4(j,z);Z[z8(D)]={exec:X,middleware:[...W.middlewares,...F],features:[...W.featureGates,...O],viewPath:G,segments:Mz(j,Q),...K?{static:K}:{}}}}return Object.fromEntries(Object.entries(Z).sort(([j],[J])=>{let W=j.split("/").length+j.split(":").length,Y=J.split("/").length+J.split(":").length;return W-Y}))}var CO=Object.defineProperty,C=($,Z)=>CO($,"name",{value:Z,configurable:!0}),MZ=class{type=3;name="";prefix="";value="";suffix="";modifier=3;constructor($,Z,j,J,W,Y){this.type=$,this.name=Z,this.prefix=j,this.value=J,this.suffix=W,this.modifier=Y}hasCustomName(){return this.name!==""&&typeof this.name!="number"}};C(MZ,"Part");var _O=/[$_\p{ID_Start}]/u,xO=/[$_\u200C\u200D\p{ID_Continue}]/u,n4=".*";function Lz($,Z){return(Z?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test($)}C(Lz,"isASCII");function r4($,Z=!1){let j=[],J=0;for(;J<$.length;){let W=$[J],Y=C(function(z){if(!Z)throw TypeError(z);j.push({type:"INVALID_CHAR",index:J,value:$[J++]})},"ErrorOrInvalid");if(W==="*"){j.push({type:"ASTERISK",index:J,value:$[J++]});continue}if(W==="+"||W==="?"){j.push({type:"OTHER_MODIFIER",index:J,value:$[J++]});continue}if(W==="\\"){j.push({type:"ESCAPED_CHAR",index:J++,value:$[J++]});continue}if(W==="{"){j.push({type:"OPEN",index:J,value:$[J++]});continue}if(W==="}"){j.push({type:"CLOSE",index:J,value:$[J++]});continue}if(W===":"){let z="",X=J+1;for(;X<$.length;){let F=$.substr(X,1);if(X===J+1&&_O.test(F)||X!==J+1&&xO.test(F)){z+=$[X++];continue}break}if(!z){Y(`Missing parameter name at ${J}`);continue}j.push({type:"NAME",index:J,value:z}),J=X;continue}if(W==="("){let z=1,X="",F=J+1,G=!1;if($[F]==="?"){Y(`Pattern cannot start with "?" at ${F}`);continue}for(;F<$.length;){if(!Lz($[F],!1)){Y(`Invalid character '${$[F]}' at ${F}.`),G=!0;break}if($[F]==="\\"){X+=$[F++]+$[F++];continue}if($[F]===")"){if(z--,z===0){F++;break}}else if($[F]==="("&&(z++,$[F+1]!=="?")){Y(`Capturing groups are not allowed at ${F}`),G=!0;break}X+=$[F++]}if(G)continue;if(z){Y(`Unbalanced pattern at ${J}`);continue}if(!X){Y(`Missing pattern at ${J}`);continue}j.push({type:"REGEX",index:J,value:X}),J=F;continue}j.push({type:"CHAR",index:J,value:$[J++]})}return j.push({type:"END",index:J,value:""}),j}C(r4,"lexer");function t4($,Z={}){let j=r4($);Z.delimiter??="/#?",Z.prefixes??="./";let J=`[^${y0(Z.delimiter)}]+?`,W=[],Y=0,z=0,X="",F=new Set,G=C((N)=>{if(z<j.length&&j[z].type===N)return j[z++].value},"tryConsume"),Q=C(()=>G("OTHER_MODIFIER")??G("ASTERISK"),"tryConsumeModifier"),O=C((N)=>{let A=G(N);if(A!==void 0)return A;let{type:x,index:E}=j[z];throw TypeError(`Unexpected ${x} at ${E}, expected ${N}`)},"mustConsume"),K=C(()=>{let N="",A;for(;A=G("CHAR")??G("ESCAPED_CHAR");)N+=A;return N},"consumeText"),D=C((N)=>N,"DefaultEncodePart"),B=Z.encodePart||D,U="",V=C((N)=>{U+=N},"appendToPendingFixedValue"),I=C(()=>{U.length&&(W.push(new MZ(3,"","",B(U),"",3)),U="")},"maybeAddPartFromPendingFixedValue"),M=C((N,A,x,E,S)=>{let P=3;switch(S){case"?":P=1;break;case"*":P=0;break;case"+":P=2;break}if(!A&&!x&&P===3){V(N);return}if(I(),!A&&!x){if(!N)return;W.push(new MZ(3,"","",B(N),"",P));return}let L;x?x==="*"?L=n4:L=x:L=J;let g=2;L===J?(g=1,L=""):L===n4&&(g=0,L="");let d;if(A?d=A:x&&(d=Y++),F.has(d))throw TypeError(`Duplicate name '${d}'.`);F.add(d),W.push(new MZ(g,d,B(N),L,B(E),P))},"addPart");for(;z<j.length;){let N=G("CHAR"),A=G("NAME"),x=G("REGEX");if(!A&&!x&&(x=G("ASTERISK")),A||x){let S=N??"";Z.prefixes.indexOf(S)===-1&&(V(S),S=""),I();let P=Q();M(S,A,x,"",P);continue}let E=N??G("ESCAPED_CHAR");if(E){V(E);continue}if(G("OPEN")){let S=K(),P=G("NAME"),L=G("REGEX");!P&&!L&&(L=G("ASTERISK"));let g=K();O("CLOSE");let d=Q();M(S,P,L,g,d);continue}I(),O("END")}return W}C(t4,"parse");function y0($){return $.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}C(y0,"escapeString");function o4($){return $&&$.ignoreCase?"ui":"u"}C(o4,"flags");function Pz($,Z,j){return e4(t4($,j),Z,j)}C(Pz,"stringToRegexp");function C$($){switch($){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}C(C$,"modifierToString");function e4($,Z,j={}){j.delimiter??="/#?",j.prefixes??="./",j.sensitive??=!1,j.strict??=!1,j.end??=!0,j.start??=!0,j.endsWith="";let J=j.start?"^":"";for(let X of $){if(X.type===3){X.modifier===3?J+=y0(X.value):J+=`(?:${y0(X.value)})${C$(X.modifier)}`;continue}Z&&Z.push(X.name);let F=`[^${y0(j.delimiter)}]+?`,G=X.value;if(X.type===1?G=F:X.type===0&&(G=n4),!X.prefix.length&&!X.suffix.length){X.modifier===3||X.modifier===1?J+=`(${G})${C$(X.modifier)}`:J+=`((?:${G})${C$(X.modifier)})`;continue}if(X.modifier===3||X.modifier===1){J+=`(?:${y0(X.prefix)}(${G})${y0(X.suffix)})`,J+=C$(X.modifier);continue}J+=`(?:${y0(X.prefix)}`,J+=`((?:${G})(?:`,J+=y0(X.suffix),J+=y0(X.prefix),J+=`(?:${G}))*)${y0(X.suffix)})`,X.modifier===0&&(J+="?")}let W=`[${y0(j.endsWith)}]|$`,Y=`[${y0(j.delimiter)}]`;if(j.end)return j.strict||(J+=`${Y}?`),j.endsWith.length?J+=`(?=${W})`:J+="$",new RegExp(J,o4(j));j.strict||(J+=`(?:${Y}(?=${W}))?`);let z=!1;if($.length){let X=$[$.length-1];X.type===3&&X.modifier===3&&(z=j.delimiter.indexOf(X)>-1)}return z||(J+=`(?=${Y}|${W})`),new RegExp(J,o4(j))}C(e4,"partsToRegexp");var t1={delimiter:"",prefixes:"",sensitive:!0,strict:!0},SO={delimiter:".",prefixes:"",sensitive:!0,strict:!0},fO={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function Nz($,Z){return $.length?$[0]==="/"?!0:!Z||$.length<2?!1:($[0]=="\\"||$[0]=="{")&&$[1]=="/":!1}C(Nz,"isAbsolutePathname");function $J($,Z){return $.startsWith(Z)?$.substring(Z.length,$.length):$}C($J,"maybeStripPrefix");function Hz($,Z){return $.endsWith(Z)?$.substr(0,$.length-Z.length):$}C(Hz,"maybeStripSuffix");function ZJ($){return!$||$.length<2?!1:$[0]==="["||($[0]==="\\"||$[0]==="{")&&$[1]==="["}C(ZJ,"treatAsIPv6Hostname");var Cz=["ftp","file","http","https","ws","wss"];function jJ($){if(!$)return!0;for(let Z of Cz)if($.test(Z))return!0;return!1}C(jJ,"isSpecialScheme");function _z($,Z){if($=$J($,"#"),Z||$==="")return $;let j=new URL("https://example.com");return j.hash=$,j.hash?j.hash.substring(1,j.hash.length):""}C(_z,"canonicalizeHash");function xz($,Z){if($=$J($,"?"),Z||$==="")return $;let j=new URL("https://example.com");return j.search=$,j.search?j.search.substring(1,j.search.length):""}C(xz,"canonicalizeSearch");function Sz($,Z){return Z||$===""?$:ZJ($)?YJ($):WJ($)}C(Sz,"canonicalizeHostname");function fz($,Z){if(Z||$==="")return $;let j=new URL("https://example.com");return j.password=$,j.password}C(fz,"canonicalizePassword");function Az($,Z){if(Z||$==="")return $;let j=new URL("https://example.com");return j.username=$,j.username}C(Az,"canonicalizeUsername");function Ez($,Z,j){if(j||$==="")return $;if(Z&&!Cz.includes(Z))return new URL(`${Z}:${$}`).pathname;let J=$[0]=="/";return $=new URL(J?$:"/-"+$,"https://example.com").pathname,J||($=$.substring(2,$.length)),$}C(Ez,"canonicalizePathname");function Rz($,Z,j){return JJ(Z)===$&&($=""),j||$===""?$:zJ($)}C(Rz,"canonicalizePort");function bz($,Z){return $=Hz($,":"),Z||$===""?$:F8($)}C(bz,"canonicalizeProtocol");function JJ($){switch($){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}C(JJ,"defaultPortForProtocol");function F8($){if($==="")return $;if(/^[-+.A-Za-z0-9]*$/.test($))return $.toLowerCase();throw TypeError(`Invalid protocol '${$}'.`)}C(F8,"protocolEncodeCallback");function wz($){if($==="")return $;let Z=new URL("https://example.com");return Z.username=$,Z.username}C(wz,"usernameEncodeCallback");function vz($){if($==="")return $;let Z=new URL("https://example.com");return Z.password=$,Z.password}C(vz,"passwordEncodeCallback");function WJ($){if($==="")return $;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test($))throw TypeError(`Invalid hostname '${$}'`);let Z=new URL("https://example.com");return Z.hostname=$,Z.hostname}C(WJ,"hostnameEncodeCallback");function YJ($){if($==="")return $;if(/[^0-9a-fA-F[\]:]/g.test($))throw TypeError(`Invalid IPv6 hostname '${$}'`);return $.toLowerCase()}C(YJ,"ipv6HostnameEncodeCallback");function zJ($){if($===""||/^[0-9]*$/.test($)&&parseInt($)<=65535)return $;throw TypeError(`Invalid port '${$}'.`)}C(zJ,"portEncodeCallback");function kz($){if($==="")return $;let Z=new URL("https://example.com");return Z.pathname=$[0]!=="/"?"/-"+$:$,$[0]!=="/"?Z.pathname.substring(2,Z.pathname.length):Z.pathname}C(kz,"standardURLPathnameEncodeCallback");function yz($){return $===""?$:new URL(`data:${$}`).pathname}C(yz,"pathURLPathnameEncodeCallback");function qz($){if($==="")return $;let Z=new URL("https://example.com");return Z.search=$,Z.search.substring(1,Z.search.length)}C(qz,"searchEncodeCallback");function gz($){if($==="")return $;let Z=new URL("https://example.com");return Z.hash=$,Z.hash.substring(1,Z.hash.length)}C(gz,"hashEncodeCallback");var mz=class{#Y;#J=[];#Z={};#$=0;#W=1;#G=0;#X=0;#B=0;#D=0;#U=!1;constructor($){this.#Y=$}get result(){return this.#Z}parse(){for(this.#J=r4(this.#Y,!0);this.#$<this.#J.length;this.#$+=this.#W){if(this.#W=1,this.#J[this.#$].type==="END"){if(this.#X===0){this.#M(),this.#Q()?this.#j(9,1):this.#K()?this.#j(8,1):this.#j(7,0);continue}else if(this.#X===2){this.#O(5);continue}this.#j(10,0);break}if(this.#B>0)if(this.#x())this.#B-=1;else continue;if(this.#_()){this.#B+=1;continue}switch(this.#X){case 0:this.#L()&&this.#O(1);break;case 1:if(this.#L()){this.#A();let $=7,Z=1;this.#N()?($=2,Z=3):this.#U&&($=2),this.#j($,Z)}break;case 2:this.#T()?this.#O(3):(this.#I()||this.#K()||this.#Q())&&this.#O(5);break;case 3:this.#H()?this.#j(4,1):this.#T()&&this.#j(5,1);break;case 4:this.#T()&&this.#j(5,1);break;case 5:this.#S()?this.#D+=1:this.#f()&&(this.#D-=1),this.#C()&&!this.#D?this.#j(6,1):this.#I()?this.#j(7,0):this.#K()?this.#j(8,1):this.#Q()&&this.#j(9,1);break;case 6:this.#I()?this.#j(7,0):this.#K()?this.#j(8,1):this.#Q()&&this.#j(9,1);break;case 7:this.#K()?this.#j(8,1):this.#Q()&&this.#j(9,1);break;case 8:this.#Q()&&this.#j(9,1);break;case 9:break;case 10:break}}this.#Z.hostname!==void 0&&this.#Z.port===void 0&&(this.#Z.port="")}#j($,Z){switch(this.#X){case 0:break;case 1:this.#Z.protocol=this.#F();break;case 2:break;case 3:this.#Z.username=this.#F();break;case 4:this.#Z.password=this.#F();break;case 5:this.#Z.hostname=this.#F();break;case 6:this.#Z.port=this.#F();break;case 7:this.#Z.pathname=this.#F();break;case 8:this.#Z.search=this.#F();break;case 9:this.#Z.hash=this.#F();break;case 10:break}this.#X!==0&&$!==10&&([1,2,3,4].includes(this.#X)&&[6,7,8,9].includes($)&&(this.#Z.hostname??=""),[1,2,3,4,5,6].includes(this.#X)&&[8,9].includes($)&&(this.#Z.pathname??=this.#U?"/":""),[1,2,3,4,5,6,7].includes(this.#X)&&$===9&&(this.#Z.search??="")),this.#P($,Z)}#P($,Z){this.#X=$,this.#G=this.#$+Z,this.#$+=Z,this.#W=0}#M(){this.#$=this.#G,this.#W=0}#O($){this.#M(),this.#X=$}#V($){return $<0&&($=this.#J.length-$),$<this.#J.length?this.#J[$]:this.#J[this.#J.length-1]}#z($,Z){let j=this.#V($);return j.value===Z&&(j.type==="CHAR"||j.type==="ESCAPED_CHAR"||j.type==="INVALID_CHAR")}#L(){return this.#z(this.#$,":")}#N(){return this.#z(this.#$+1,"/")&&this.#z(this.#$+2,"/")}#T(){return this.#z(this.#$,"@")}#H(){return this.#z(this.#$,":")}#C(){return this.#z(this.#$,":")}#I(){return this.#z(this.#$,"/")}#K(){if(this.#z(this.#$,"?"))return!0;if(this.#J[this.#$].value!=="?")return!1;let $=this.#V(this.#$-1);return $.type!=="NAME"&&$.type!=="REGEX"&&$.type!=="CLOSE"&&$.type!=="ASTERISK"}#Q(){return this.#z(this.#$,"#")}#_(){return this.#J[this.#$].type=="OPEN"}#x(){return this.#J[this.#$].type=="CLOSE"}#S(){return this.#z(this.#$,"[")}#f(){return this.#z(this.#$,"]")}#F(){let $=this.#J[this.#$],Z=this.#V(this.#G).index;return this.#Y.substring(Z,$.index)}#A(){let $={};Object.assign($,t1),$.encodePart=F8;let Z=Pz(this.#F(),void 0,$);this.#U=jJ(Z)}};C(mz,"Parser");var s4=["protocol","username","password","hostname","port","pathname","search","hash"],r1="*";function a4($,Z){if(typeof $!="string")throw TypeError("parameter 1 is not of type 'string'.");let j=new URL($,Z);return{protocol:j.protocol.substring(0,j.protocol.length-1),username:j.username,password:j.password,hostname:j.hostname,port:j.port,pathname:j.pathname,search:j.search!==""?j.search.substring(1,j.search.length):void 0,hash:j.hash!==""?j.hash.substring(1,j.hash.length):void 0}}C(a4,"extractValues");function G1($,Z){return Z?IZ($):$}C(G1,"processBaseURLString");function TZ($,Z,j){let J;if(typeof Z.baseURL=="string")try{J=new URL(Z.baseURL),Z.protocol===void 0&&($.protocol=G1(J.protocol.substring(0,J.protocol.length-1),j)),!j&&Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&Z.username===void 0&&($.username=G1(J.username,j)),!j&&Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&Z.username===void 0&&Z.password===void 0&&($.password=G1(J.password,j)),Z.protocol===void 0&&Z.hostname===void 0&&($.hostname=G1(J.hostname,j)),Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&($.port=G1(J.port,j)),Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&Z.pathname===void 0&&($.pathname=G1(J.pathname,j)),Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&Z.pathname===void 0&&Z.search===void 0&&($.search=G1(J.search.substring(1,J.search.length),j)),Z.protocol===void 0&&Z.hostname===void 0&&Z.port===void 0&&Z.pathname===void 0&&Z.search===void 0&&Z.hash===void 0&&($.hash=G1(J.hash.substring(1,J.hash.length),j))}catch{throw TypeError(`invalid baseURL '${Z.baseURL}'.`)}if(typeof Z.protocol=="string"&&($.protocol=bz(Z.protocol,j)),typeof Z.username=="string"&&($.username=Az(Z.username,j)),typeof Z.password=="string"&&($.password=fz(Z.password,j)),typeof Z.hostname=="string"&&($.hostname=Sz(Z.hostname,j)),typeof Z.port=="string"&&($.port=Rz(Z.port,$.protocol,j)),typeof Z.pathname=="string"){if($.pathname=Z.pathname,J&&!Nz($.pathname,j)){let W=J.pathname.lastIndexOf("/");W>=0&&($.pathname=G1(J.pathname.substring(0,W+1),j)+$.pathname)}$.pathname=Ez($.pathname,$.protocol,j)}return typeof Z.search=="string"&&($.search=xz(Z.search,j)),typeof Z.hash=="string"&&($.hash=_z(Z.hash,j)),$}C(TZ,"applyInit");function IZ($){return $.replace(/([+*?:{}()\\])/g,"\\$1")}C(IZ,"escapePatternString");function pz($){return $.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}C(pz,"escapeRegexpString");function hz($,Z){Z.delimiter??="/#?",Z.prefixes??="./",Z.sensitive??=!1,Z.strict??=!1,Z.end??=!0,Z.start??=!0,Z.endsWith="";let j=".*",J=`[^${pz(Z.delimiter)}]+?`,W=/[$_\u200C\u200D\p{ID_Continue}]/u,Y="";for(let z=0;z<$.length;++z){let X=$[z];if(X.type===3){if(X.modifier===3){Y+=IZ(X.value);continue}Y+=`{${IZ(X.value)}}${C$(X.modifier)}`;continue}let F=X.hasCustomName(),G=!!X.suffix.length||!!X.prefix.length&&(X.prefix.length!==1||!Z.prefixes.includes(X.prefix)),Q=z>0?$[z-1]:null,O=z<$.length-1?$[z+1]:null;if(!G&&F&&X.type===1&&X.modifier===3&&O&&!O.prefix.length&&!O.suffix.length)if(O.type===3){let K=O.value.length>0?O.value[0]:"";G=W.test(K)}else G=!O.hasCustomName();if(!G&&!X.prefix.length&&Q&&Q.type===3){let K=Q.value[Q.value.length-1];G=Z.prefixes.includes(K)}G&&(Y+="{"),Y+=IZ(X.prefix),F&&(Y+=`:${X.name}`),X.type===2?Y+=`(${X.value})`:X.type===1?F||(Y+=`(${J})`):X.type===0&&(!F&&(!Q||Q.type===3||Q.modifier!==3||G||X.prefix!=="")?Y+="*":Y+=`(${j})`),X.type===1&&F&&X.suffix.length&&W.test(X.suffix[0])&&(Y+="\\"),Y+=IZ(X.suffix),G&&(Y+="}"),X.modifier!==3&&(Y+=C$(X.modifier))}return Y}C(hz,"partsToPattern");var XJ=class{#Y;#J={};#Z={};#$={};#W={};#G=!1;constructor($={},Z,j){try{let J;if(typeof Z=="string"?J=Z:j=Z,typeof $=="string"){let X=new mz($);if(X.parse(),$=X.result,J===void 0&&typeof $.protocol!="string")throw TypeError("A base URL must be provided for a relative constructor string.");$.baseURL=J}else{if(!$||typeof $!="object")throw TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(J)throw TypeError("parameter 1 is not of type 'string'.")}typeof j>"u"&&(j={ignoreCase:!1});let W={ignoreCase:j.ignoreCase===!0},Y={pathname:r1,protocol:r1,username:r1,password:r1,hostname:r1,port:r1,search:r1,hash:r1};this.#Y=TZ(Y,$,!0),JJ(this.#Y.protocol)===this.#Y.port&&(this.#Y.port="");let z;for(z of s4){if(!(z in this.#Y))continue;let X={},F=this.#Y[z];switch(this.#Z[z]=[],z){case"protocol":Object.assign(X,t1),X.encodePart=F8;break;case"username":Object.assign(X,t1),X.encodePart=wz;break;case"password":Object.assign(X,t1),X.encodePart=vz;break;case"hostname":Object.assign(X,SO),ZJ(F)?X.encodePart=YJ:X.encodePart=WJ;break;case"port":Object.assign(X,t1),X.encodePart=zJ;break;case"pathname":jJ(this.#J.protocol)?(Object.assign(X,fO,W),X.encodePart=kz):(Object.assign(X,t1,W),X.encodePart=yz);break;case"search":Object.assign(X,t1,W),X.encodePart=qz;break;case"hash":Object.assign(X,t1,W),X.encodePart=gz;break}try{this.#W[z]=t4(F,X),this.#J[z]=e4(this.#W[z],this.#Z[z],X),this.#$[z]=hz(this.#W[z],X),this.#G=this.#G||this.#W[z].some((G)=>G.type===2)}catch{throw TypeError(`invalid ${z} pattern '${this.#Y[z]}'.`)}}}catch(J){throw TypeError(`Failed to construct 'URLPattern': ${J.message}`)}}get[Symbol.toStringTag](){return"URLPattern"}test($={},Z){let j={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof $!="string"&&Z)throw TypeError("parameter 1 is not of type 'string'.");if(typeof $>"u")return!1;try{typeof $=="object"?j=TZ(j,$,!1):j=TZ(j,a4($,Z),!1)}catch{return!1}let J;for(J of s4)if(!this.#J[J].exec(j[J]))return!1;return!0}exec($={},Z){let j={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof $!="string"&&Z)throw TypeError("parameter 1 is not of type 'string'.");if(typeof $>"u")return;try{typeof $=="object"?j=TZ(j,$,!1):j=TZ(j,a4($,Z),!1)}catch{return null}let J={};Z?J.inputs=[$,Z]:J.inputs=[$];let W;for(W of s4){let Y=this.#J[W].exec(j[W]);if(!Y)return null;let z={};for(let[X,F]of this.#Z[W].entries())if(typeof F=="string"||typeof F=="number"){let G=Y[X+1];z[F]=G}J[W]={input:j[W]??"",groups:z}}return J}static compareComponent($,Z,j){let J=C((X,F)=>{for(let G of["type","modifier","prefix","value","suffix"]){if(X[G]<F[G])return-1;if(X[G]===F[G])continue;return 1}return 0},"comparePart"),W=new MZ(3,"","","","",3),Y=new MZ(0,"","","","",3),z=C((X,F)=>{let G=0;for(;G<Math.min(X.length,F.length);++G){let Q=J(X[G],F[G]);if(Q)return Q}return X.length===F.length?0:J(X[G]??W,F[G]??W)},"comparePartList");return!Z.#$[$]&&!j.#$[$]?0:Z.#$[$]&&!j.#$[$]?z(Z.#W[$],[Y]):!Z.#$[$]&&j.#$[$]?z([Y],j.#W[$]):z(Z.#W[$],j.#W[$])}get protocol(){return this.#$.protocol}get username(){return this.#$.username}get password(){return this.#$.password}get hostname(){return this.#$.hostname}get port(){return this.#$.port}get pathname(){return this.#$.pathname}get search(){return this.#$.search}get hash(){return this.#$.hash}get hasRegExpGroups(){return this.#G}};C(XJ,"URLPattern");function T3($,Z){for(let[j,J]of Object.entries($)){let W=new XJ({pathname:j});if(W.test({pathname:Z}))return{routePath:j,params:W.exec({pathname:Z})?.pathname.groups??{},route:J}}return null}var _$={startIndex:0,carriedViews:[]};function cz($,Z){let j=G0($.path,Z);return j.includes("*")?null:j}function AO($,Z){if(!$)return _$;if($.search!==Z.search)return _$;let j=Math.min($.segments.length,Z.segments.length-1),J=0;while(J<j){let W=$.segments[J],Y=Z.segments[J];if(Y.alwaysRun)break;if(W.viewPath!==Y.viewPath)break;let z=cz(W,$.params),X=cz(Y,Z.params);if(z===null||X===null||z!==X)break;J++}if(J===0)return _$;return{startIndex:J,carriedViews:Z.segments.slice(0,J).map(({viewPath:W})=>W)}}function EO($,Z){let[,j,...J]=$.split("/");if(!Z.includes(j))return $;let W=`/${J.join("/")}`;return W==="/"?"/":W.replace(/\/$/,"")}function dz($){let{flatViewRoutes:Z,supportedLocales:j,from:J,origin:W,to:Y}=$;if(!J)return _$;let z;try{z=new URL(J,W)}catch{return _$}if(z.origin!==W)return _$;let X=T3(Z,EO(z.pathname,j));if(!X)return _$;return AO({segments:X.route.segments,params:X.params,search:z.search},Y)}var FJ="x-gemi-from";import{createElement as A1,Fragment as IX}from"react";function RO($){return $.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function G8($){let Z={};for(let[j,J]of Object.entries($))if("run"in J){let W=J.viewPath;if("children"in J){Z[j]=[W];let Y=new J.children,z=G8(Y.routes);for(let[X,F]of Object.entries(z)){let G=j==="/"?X:`${j}${X}`,Q=X==="/"&&j!=="/"?j:G;Z[Q]=[W,...F]}if(Z[j].length===1)delete Z[j]}else Z[j]=[W]}else{let W=new J,Y=G8(W.routes);for(let[z,X]of Object.entries(Y)){let F=j==="/"?z:`${j}${z}`,G=z==="/"&&j!=="/"?j:F;Z[G]=X}}return Object.fromEntries(Object.entries(Z).map(([j,J])=>[RO(j),J]))}function Q8($,Z){let[j,J]=Z,W=$.find(([Y])=>Y===j);if(!W){$.push([j,[...J]]);return}for(let Y of J)Q8(W[1],Y)}function K8($){let Z=[];for(let[j,J]of Object.entries($))if("run"in J){let W=J.viewPath;if(W==="__")continue;if(W==="REDIRECT")continue;if(W==="FILE")continue;if("children"in J){let Y=new J.children,z=K8(Y.routes);Q8(Z,[W,z])}else Q8(Z,[W,[]])}else{let W=new J,Y=K8(W.routes);for(let z of Y)Q8(Z,z)}return Z}function GJ($){let Z=[];for(let[j,J]of $)Z.push(j,...GJ(J).flat());return Array.from(new Set(Z))}class e1 extends c{static getFacadeAccessor(){return l}static getSupportedLocales(){return this.getFacadeRoot().supportedLocales}static getDefaultLocale(){return this.getFacadeRoot().defaultLocale}static locale(){let $=this.getFacadeRoot(),Z=H.getStore();if(Z)return Z.locale??$.detectLocale(Z.req);return $.defaultLocale}static timeZone(){return this.getFacadeRoot().detectTimeZone(H.getStore()?.req)}static formatter($={}){return this.getFacadeRoot().formatter($.locale??e1.locale(),$.timeZone??e1.timeZone())}static setLocale($=e1.locale(),Z={}){let j=this.getFacadeRoot(),J=$;if(!j.supportedLocales.includes($))J=j.defaultLocale;let W=H.getStore();if(Z.cookie!==!1)W.setCookie("i18n-locale",J,{expires:new Date(Date.now()+31536000000),secure:!1,httpOnly:!1});return W.setLocale(J),J}}class QJ{id;static token="kernel.id";constructor($=crypto.randomUUID()){this.id=$}}var bO=new Set(["script","style","textarea","title","xmp","iframe","noembed","noframes","noscript"]),wO=new Set(["svg","math"]);function uz($){return $===32||$===9||$===10||$===12||$===13}function lz($){return $>=65&&$<=90||$>=97&&$<=122}function O8($){return $>=65&&$<=90?$+32:$}function iz(){let $="data",Z="",j=!1,J="",W=0,Y=0,z=!1,X=0,F=0,G=()=>$==="data"&&X===0&&F===0,Q=()=>{if(!j&&bO.has(Z)){$="rawText",J=`</${Z}`,W=0,Z="";return}if($="data",Z==="template")if(j)X=Math.max(0,X-1);else X+=1;else if(wO.has(Z)){if(j)F=Math.max(0,F-1);else if(!z)F+=1}Z=""},O=(K)=>{switch($){case"data":if(K===60)$="tagOpen";return;case"tagOpen":if(K===33)$="bang",Y=0;else if(K===47)$="endTagOpen";else if(lz(K))$="tagName",j=!1,z=!1,Z=String.fromCharCode(O8(K));else if(K===63)$="bogus";else if(K===60)$="tagOpen";else $="data";return;case"endTagOpen":if(lz(K))$="tagName",j=!0,z=!1,Z=String.fromCharCode(O8(K));else if(K===62)$="data";else $="bogus";return;case"tagName":if(uz(K)||K===47)$="inTag",z=K===47;else if(K===62)Q();else Z+=String.fromCharCode(O8(K));return;case"inTag":if(K===62){Q();return}if(z=K===47,K===34)$="attrDouble";else if(K===39)$="attrSingle";return;case"attrDouble":if(K===34)$="inTag";z=!1;return;case"attrSingle":if(K===39)$="inTag";z=!1;return;case"bang":if(K===45){if(Y+=1,Y===2)$="comment",Y=0}else if(K===62)$="data";else $="bogus";return;case"bogus":if(K===62)$="data";return;case"comment":if(K===45)Y=Y<2?Y+1:2;else if(K===62&&Y>=2)$="data",Y=0;else Y=0;return;case"rawText":{if(W<J.length){if(O8(K)===J.charCodeAt(W))W+=1;else W=K===60?1:0;return}if(K===62)$="data",Z="";else if(uz(K)||K===47)$="inTag",Z="";else W=K===60?1:0;return}}};return{scanToInsertionPoint(K){for(let D=0;D<K.length;D++){if(G())return D;O(K[D])}return K.length},write(K){for(let D=0;D<K.length;D++)O(K[D])},isSafe:G}}function S1($){let Z=JSON.stringify($);if(Z===void 0)return"undefined";return Z.replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function vO($){return`<script>(self.__GEMI_STREAM__=self.__GEMI_STREAM__||[]).push(${S1([$.path,$.variantKey,$.data])})</script>`}function kO($){return`<script>(self.__GEMI_DICT__=self.__GEMI_DICT__||[]).push(${S1([$.id,$.locale,$.strings])})</script>`}function KJ($,Z,j={},J){let W=new TextEncoder,Y=[],z=!1,X=!1,F=()=>{if(X)return;X=!0,j.onClose?.()};Z.onSettle((B)=>{if(B.status!=="resolved")return;Y.push(vO(B))}),J?.onUse((B)=>{Y.push(kO(B))});let G=$.getReader(),Q=iz(),O=(B,U)=>{B.enqueue(U),j.onChunk?.(U)},K=(B)=>{while(Y.length>0){let U=W.encode(Y.shift());Q.write(U),O(B,U)}},D=(B,U)=>{if(Y.length===0){Q.write(U),O(B,U);return}let V=Q.scanToInsertionPoint(U);if(V>0)O(B,U.subarray(0,V));if(Q.isSafe())K(B);let I=U.subarray(V);if(I.length>0)Q.write(I),O(B,I)};return new ReadableStream({async pull(B){let U;try{U=await G.read()}catch(M){throw F(),M}let{done:V,value:I}=U;if(V){K(B),B.close(),F();return}if(!z){if(z=!0,Q.write(I),O(B,I),j.onShell?.(),Q.isSafe())K(B);return}D(B,I)},cancel(B){return F(),G.cancel(B)}})}var yO=/bot|crawler|spider|crawling|slurp|bingpreview|mediapartners|headless|lighthouse|prerender|facebookexternalhit|whatsapp|telegram|discord|twitterbot|linkedinbot/i;function B8($){if(!$)return!1;return yO.test($)}async function nz($,Z=()=>{}){let j=H.getStore(),J=j?.req??null,W=null;if(J?.rawRequest?.url)try{W=new URL(J.rawRequest.url).pathname}catch{W=null}return{user:j?.user??null,attributes:await qO($,Z),request:{path:W,routePath:J?.routePath??null,locale:j?.locale??null},anonymousId:sz(),isBot:B8(J?.rawRequest?.headers?.get("user-agent")??null),now:new Date}}function oz($){return{user:$.user??null,attributes:$.attributes??{},request:{path:null,routePath:null,locale:null},anonymousId:$.subjectId??null,isBot:!1,now:new Date}}async function qO($,Z){if(!$.context)return{};try{let j=H.getStore();return await $.context(j?.req??null)??{}}catch(j){return Z(`The \`context\` hook in app/config/features.ts threw; evaluating with no attributes. ${j instanceof Error?j.message:String(j)}`),{}}}function az($,Z){return`${$}:${Z}`}function OJ($){let Z=new Bun.CryptoHasher("sha1").update($).digest("hex"),j=Number.parseInt(Z.slice(0,8),16);return Math.floor(j/4294967296*1e4)}function rz($,Z){if(Z>=100)return!0;if(Z<=0)return!1;return $<Math.round(Z*100)}function tz($,Z,j,J){if(J.unavailable)return{value:!1,reason:"unavailable"};if(J.active!==!0)return{value:!1,reason:"inactive"};if(Z.when){let Y;try{Y=Z.when(j)}catch(z){return J.warn?.(`The \`when\` for feature "${$}" threw; treating it as off. ${z instanceof Error?z.message:String(z)}`),{value:!1,reason:"error"}}if(typeof Y==="boolean")return{value:Y,reason:"attributed"}}if(Z.rollout===void 0)return{value:!0,reason:"on"};if(j.isBot)return{value:!1,reason:"bot"};let W=mO($,Z,j,J.buckets);return rz(W,Z.rollout)?{value:!0,reason:"rollout"}:{value:!1,reason:"excluded"}}function gO($){let Z=$.user?.publicId??$.user?.id;if(Z!==void 0&&Z!==null)return String(Z);return $.anonymousId??""}function mO($,Z,j,J){let W=az(Z.salt??$,gO(j));if(!J)return OJ(W);let Y=J.get(W);if(Y!==void 0)return Y;let z=OJ(W);return J.set(W,z),z}class ez extends Error{cause;kind="FeatureReloadFailed";constructor($){super(`Could not reload feature switches after a write, so the cached switches may still predate it: ${$ instanceof Error?$.message:String($)}`);this.cause=$}}class BJ{source;declared;ttlMs;warn;snapshot=null;inflight=null;lastFailureLoggedAt=0;generation=0;lastError=null;retryAfter=0;constructor($,Z,j,J=()=>{}){this.source=$;this.declared=Z;this.ttlMs=j;this.warn=J}async get(){let $=this.snapshot;if($&&Date.now()-$.loadedAt<this.ttlMs)return $;if($){if(Date.now()>=this.retryAfter)this.refresh().catch(()=>{});return $}return await this.refresh()}refresh(){return this.inflight??=this.load().finally(()=>{this.inflight=null}),this.inflight}async invalidate(){await this.inflight?.catch(()=>{});let $=this.generation,Z=await this.refresh();if(this.generation===$)throw new ez(this.lastError);return Z}peek(){return this.snapshot}async load(){try{let $=await this.source.load(),{active:Z,audit:j}=this.readRows($);return this.snapshot={active:Z,audit:j,loadedAt:Date.now(),unavailable:!1},this.generation++,this.lastError=null,this.retryAfter=0,this.snapshot}catch($){return this.handleFailure($)}}readRows($){let Z=new Map,j=new Map;for(let J of $??[]){let W=typeof J?.key==="string"?J.key:null;if(!W){this.warn("Ignoring a feature row with no `key`.");continue}if(!(W in this.declared)){this.warn(`Feature row "${W}" is not declared in app/features, so it is ignored. Delete the row, or declare the feature.`);continue}Z.set(W,J.active===!0);let Y=pO(J);if(Y)j.set(W,Y)}return{active:Z,audit:j}}handleFailure($){let Z=$ instanceof Error?$.message:String($),j=Date.now();if(this.lastError=$,this.retryAfter=j+this.ttlMs,j-this.lastFailureLoggedAt>=this.ttlMs)this.lastFailureLoggedAt=j,this.warn(`Could not load feature switches: ${Z}`);if(this.snapshot)return this.snapshot;return this.snapshot={active:new Map,audit:new Map,loadedAt:j,unavailable:!0},this.snapshot}}function pO($){let Z={},j=$.updatedBy;if(typeof j==="string")Z.updatedBy=j;else if(j===null)Z.updatedBy=null;let J=$.updatedAt;if(J instanceof Date||typeof J==="string"||typeof J==="number"){let W=J instanceof Date?J:new Date(J);if(!Number.isNaN(W.getTime()))Z.updatedAt=W}return"updatedBy"in Z||"updatedAt"in Z?Z:null}class hO{}class cO extends Error{modelName;kind="FeatureModelMissing";constructor($){super(`No "${$}" model is registered, so every feature stays off. Add the model to prisma/schema.prisma and export it from app/models \u2014 see docs/feature-flags.md.`);this.modelName=$}}class DJ extends Error{sourceName;kind="FeatureSourceReadOnly";constructor($){super(`The feature source (${$}) is read-only, so Features.set() cannot write to it. Change the switch where that source reads from, or give the source a write() method.`);this.sourceName=$}}class $X extends Error{key;kind="UndeclaredFeature";constructor($){super(`"${$}" is not declared in app/features, so it cannot be switched. A row for it would be ignored \u2014 declare the feature first.`);this.key=$}}class ZX{manager;ctx;constructor($,Z){this.manager=$;this.ctx=Z}async enabled($){return(await this.explain($)).value}async explain($){return await this.manager.evaluateIn($,this.ctx,new Map)}async all(){return await this.manager.evaluateAllIn(this.ctx,new Map,{clientOnly:!1})}}class LZ{config;log;static token="features";store;declared;warnedAboutSize=!1;warnedAboutActor=!1;constructor($,Z=()=>{}){this.config=$;this.log=Z;this.declared=$.features??{},this.store=new BJ($.source,this.declared,Math.max(0,$.ttl)*1000,this.log)}declarations(){return this.declared}async list(){let{active:$,audit:Z,unavailable:j}=await this.switches();return{unavailable:j,features:Object.entries(this.declared).map(([J,W])=>({key:J,describe:W.describe,rollout:W.rollout,targeted:W.when!==void 0,serverOnly:W.serverOnly,salt:W.salt,active:$.get(J),...Z.get(J)}))}}async refresh(){if(!this.config.enabled)return;if(Object.keys(this.declared).length===0)return;await this.store.refresh()}async invalidate(){try{if(this.config.enabled&&Object.keys(this.declared).length>0)await this.store.invalidate()}finally{H.getStore()?.featureEvaluations?.clear()}}async set($,Z,j={}){if(typeof $!=="string"||!Object.hasOwn(this.declared,$))throw new $X(String($));if(typeof Z!=="boolean")throw TypeError(`Features.set("${$}", \u2026) takes a boolean, not ${Z===null?"null":typeof Z}.`);let J=dO(j.actor),W=this.config.source;if(typeof W.write!=="function")throw new DJ(W.constructor?.name||"an anonymous source");let{actorRecorded:Y}=await W.write($,Z,{actor:J});if(J!==null&&!Y&&!this.warnedAboutActor)this.warnedAboutActor=!0,this.log('Features.set() was given an actor, but the feature source has nowhere to record it. For the database source, add a nullable `updatedBy String?` column to the feature flag model to keep "last changed by".');await this.invalidate()}async enabled($){return(await this.explain($)).value}async explain($){let Z=await this.requestContext();return await this.evaluateIn($,Z,this.requestBuckets())}async all(){let $=await this.requestContext();return await this.evaluateAllIn($,this.requestBuckets(),{clientOnly:!1})}async forClient(){if(!this.config.enabled)return{};let $=await this.requestContext(),Z=await this.evaluateAllIn($,this.requestBuckets(),{clientOnly:!0});return this.warnIfOversized(Object.keys(Z).length),Z}for($){return new ZX(this,oz($))}async evaluateIn($,Z,j){let J=this.memoFor(Z),W=J?.get($);if(W)return W;let Y=this.declared[$];if(!Y)return{value:!1,reason:"undeclared"};let{active:z,unavailable:X}=await this.switchFor($),F=tz($,Y,Z,{active:z,unavailable:X,buckets:j,warn:this.log});return J?.set($,F),this.notify($,F,Z),F}async evaluateAllIn($,Z,j){let J={};for(let[W,Y]of Object.entries(this.declared)){if(j.clientOnly&&Y.serverOnly)continue;J[W]=(await this.evaluateIn(W,$,Z)).value}return J}async switches(){if(!this.config.enabled||Object.keys(this.declared).length===0)return{active:new Map,audit:new Map,unavailable:!1};let $=await this.store.get();return{active:$.active,audit:$.audit,unavailable:$.unavailable}}async switchFor($){if(!this.config.enabled)return{active:!1,unavailable:!1};let Z=await this.store.get();return{active:Z.active.get($),unavailable:Z.unavailable}}async requestContext(){let $=H.getStore();if($?.featureContext)return $.featureContext;let Z=await nz(this.config,this.log);if($)$.featureContext=Z;return Z}memoFor($){let Z=H.getStore();if(!Z||Z.featureContext!==$)return null;return Z.featureEvaluations??=new Map,Z.featureEvaluations}requestBuckets(){let $=H.getStore();if(!$)return new Map;return $.featureBuckets??=new Map,$.featureBuckets}notify($,Z,j){if(!this.config.onEvaluate)return;try{this.config.onEvaluate($,Z,j)}catch(J){this.log(`The \`onEvaluate\` hook in app/config/features.ts threw for "${$}". ${J instanceof Error?J.message:String(J)}`)}}warnIfOversized($){if(this.warnedAboutSize||$<=this.config.maxClientFlags)return;this.warnedAboutSize=!0,this.log(`${$} client-visible features are embedded in every document. Mark the ones only the server reads with \`serverOnly: true\` to keep them out of the payload.`)}}function dO($){if($===void 0||$===null)return null;if(typeof $==="string"){if($.length>0)return $}else if(typeof $==="object"){let{publicId:Z,id:j}=$;if(typeof Z==="string"&&Z.length>0)return Z;if(typeof j==="string"&&j.length>0||typeof j==="number")return String(j)}throw TypeError("Features.set() was given an `actor` that identifies nobody. Pass a string, or a user with a `publicId` or an `id`.")}function jX($){return Object.fromEntries(Object.entries($).filter(([,Z])=>{return Z!==null&&Z!==void 0}))}var uO=50;class PZ{fetcher;entries=new Map;settleListener=null;failListener=null;shellAt=null;settledBacklog=[];shipped=new Set;requestStartedAt=performance.now();renderStartedAt=null;discoveryHintsMuted=!1;constructor($){this.fetcher=$}elapsed(){return Math.round(performance.now()-this.requestStartedAt)}keyFor($,Z){return[$,Z].filter((j)=>j.length>0).join("?")}markRenderStart(){if(this.renderStartedAt===null)this.renderStartedAt=performance.now()}markShell(){if(this.shellAt===null)this.shellAt=this.elapsed()}summarize($){let Z=this.elapsed();return{shellAt:this.shellAt??Z,settledAt:Z,aborted:$,queries:Array.from(this.entries.values(),(j)=>({path:j.path,variantKey:j.variantKey,startedAt:j.startedAt,settledAt:j.settledAt,status:j.status,source:j.source}))}}onQueryFail($){this.failListener=$}muteDiscoveryHints(){this.discoveryHintsMuted=!0}maybeLogLateDiscovery($){if(!$.lateBy||this.discoveryHintsMuted)return;if($.status!=="resolved")return;if(Bun.env.NODE_ENV==="production")return;let Z="";try{let W=JSON.stringify($.data)?.length??0;Z=W>=1024?`${(W/1024).toFixed(1)} kB`:`${W} B`}catch{Z="an unserializable payload"}let j=($.settledAt??0)-$.startedAt,J=$.variantKey?`, { search: ${JSON.stringify(Object.fromEntries(new URLSearchParams($.variantKey)))} }`:"";console.warn(`[gemi] useQuery("${$.patternPath}") was discovered ${$.lateBy}ms into the `+`server render \u2014 under a suspended segment, so its fetch (${j}ms, resolved ${Z}) could not overlap the others. It still streamed. If the query belongs on this route, \`Query.prefetch("${$.patternPath}"${J})\` in the view `+"handler starts it at request time \u2014 but note prefetched data is also re-fetched and "+`streamed into every client-side navigation payload for the route, even when the client already holds it, so weigh that bandwidth against the ${Z}. If the data is only needed conditionally (a closed popover, a hidden tab), \`{ lazy: true }\` + \`trigger()\` avoids running it here at all. \`Query.noPrefetch()\` in the handler marks the omission intentional and silences this hint for the route.`)}read($,Z){return this.entries.get(this.keyFor($,Z))}ensure($,Z={},j="render"){let J=Z.params??{},W=new URLSearchParams(jX(Z.search??{}));W.delete("json"),W.sort();let Y=G0($,J),z=W.toString(),X=this.keyFor(Y,z),F=this.entries.get(X);if(F)return F;let G;if(j==="render"&&this.renderStartedAt!==null){let D=Math.round(performance.now()-this.renderStartedAt);if(D>uO)G=D}let Q,O=new Promise((D)=>{Q=D}),K={path:Y,patternPath:$,variantKey:z,lateBy:G,status:"pending",promise:O,source:j,startedAt:this.elapsed()};return this.entries.set(X,K),this.fetcher($,J,W).then((D)=>{K.status="resolved",K.data=D},(D)=>{K.status="rejected",K.error=D}).then(()=>{if(K.settledAt=this.elapsed(),this.maybeLogLateDiscovery(K),K.status==="rejected"&&this.failListener)this.failListener(K);if(this.settleListener)this.settleListener(K);else this.settledBacklog.push(K);Q()}),K}async allSettled(){let $=0;while($!==this.entries.size)$=this.entries.size,await Promise.all(Array.from(this.entries.values(),(Z)=>Z.promise))}snapshotResolved(){let $={};for(let[Z,j]of this.entries){if(j.status!=="resolved")continue;this.shipped.add(Z),$[j.path]??={},$[j.path][j.variantKey]=j.data}return $}onSettle($){this.settleListener=(j)=>{if(this.shipped.has(this.keyFor(j.path,j.variantKey)))return;$(j)};let Z=this.settledBacklog;this.settledBacklog=[];for(let j of Z)this.settleListener(j)}}class f1 extends Error{path;variantKey;status;body;retryAfter;constructor($,Z,j,J,W){super(typeof J?.message==="string"?J.message:`Request to /api${$} failed with status ${j}`);this.path=$;this.variantKey=Z;this.status=j;this.body=J;this.retryAfter=W;this.name="QueryError"}}function NZ(){let $=JSON.stringify({error:w1("permission","Forbidden",403)});return new Response($,{status:403,headers:{"Content-Type":"application/json","Content-Length":String(Buffer.byteLength($)),"Cache-Control":"no-store"}})}function UJ(){return{status:403,error:{message:"Forbidden"}}}function I3($){let Z=HZ.getStore();return(j,J,W)=>{let Y=new URL($.url).origin,z=[G0(j,J),W.toString()].filter((Q)=>Q.length>0).join("?"),X=new Request(`${Y}/${z}`,{headers:$.headers,signal:$.signal}),F=JX($);if(F)CZ(X,F);let G=new _(X,J);return HZ.run(Z,()=>H.run(G,async()=>{try{let Q=await T(r0).dispatchers(F).api.getRouteData(j);if(y$(Q)){if(!Q.ok)throw new f1(G0(j,J),W.toString(),Q.status,Q.body);return Q.body}if(Q instanceof Response){let O=await Q.json().catch(()=>null);if(!Q.ok)throw new f1(G0(j,J),W.toString(),Q.status,O);return O}return Q}catch(Q){if(Q instanceof f1)throw Q;let O=new f1(G0(j,J),W.toString(),500,{message:Q instanceof Error?Q.message:String(Q)});throw O.cause=Q,O}}))}}var lO=new Set(["script","style","template","title"]),iO=/\shidden([\s=/]|$)/i,sO=/"[^"]*"|'[^']*'/g;function nO($){let Z=0,j=0,J=0,W=0;while(W<$.length){let Y=$.indexOf("<",W),z=Y===-1?$.length:Y;if(z>W){let O=$.slice(W,z).replace(/\s+/g,"").length;if(J>0)j+=O;else Z+=O}if(Y===-1)break;if($.startsWith("<!--",Y)){let O=$.indexOf("-->",Y+4);W=O===-1?$.length:O+3;continue}let X=$.indexOf(">",Y);if(X===-1)break;let F=$.slice(Y+1,X);W=X+1;let G=/^\/?([a-zA-Z][a-zA-Z0-9-]*)/.exec(F)?.[1]?.toLowerCase();if(!G)continue;let Q=F.startsWith("/");if(!Q&&lO.has(G)&&!F.endsWith("/")){let O=$.indexOf(`</${G}`,W);W=O===-1?$.length:O;continue}if(G!=="div")continue;if(Q){if(J>0)J-=1}else if(J>0)J+=1;else if(iO.test(F.replace(sO,'""')))J=1}return{shellChars:Z,deferredChars:j}}var oO=1000,aO=64;function rO($){return $>=1000?`${($/1000).toFixed(1)} kB`:`${$} chars`}function tO($,Z){if(Z.deferredChars<oO)return null;if(Z.shellChars>=aO)return null;return`[gemi] GET ${$} streams ${rO(Z.deferredChars)} of its `+`content behind reveal scripts \u2014 a no-JS visitor sees ~${Z.shellChars} chars. If this is a public/content route, add "no-stream" to its middleware.`}function WX($=console.warn){let Z=new Set;return{shouldObserve(j){return!Z.has(j)},report(j,J){if(Z.has(j))return;let W=tO(j,J);if(!W)return;Z.add(j),$(W)}}}function YX(){let $=new TextDecoder,Z="";return{onChunk(j){Z+=$.decode(j,{stream:!0})},measure(){return Z+=$.decode(),nO(Z)}}}function zX($,Z,j=1e4,J){let W=new TextEncoder,Y=()=>{};return new ReadableStream({start(z){let X=!1,F=(Q)=>{if(X)return;X=!0,clearTimeout(G);try{z.close()}catch{}J?.({aborted:Q})};Y=F,z.enqueue(W.encode(`${JSON.stringify($)}
14
- `)),Z.onSettle((Q)=>{if(X||Q.status!=="resolved")return;z.enqueue(W.encode(`${JSON.stringify([Q.path,Q.variantKey,Q.data])}
15
- `))});let G=setTimeout(()=>F(!0),j);Z.allSettled().then(()=>F(!1),()=>F(!1))},cancel(){Y(!1)}})}import{Fragment as $M,createContext as eO,createElement as ZM,lazy as jM,use as JM,useContext as WM}from"react";function XX($){return{islands:[],render:$,instances:new WeakMap,count:0}}var M3="gemi-slot",FX="data-slot",GX="data-gemi-slot";var $B=Symbol.for("gemi.staticRender"),QX=globalThis[$B]??=eO(null);import{createHash as BX}from"crypto";var VJ='var r=document,i=window,a=history;i.__gemi_nav?.d();var L=new AbortController,h=(t,e,n,s)=>t.addEventListener(e,n,{signal:L.signal,...s}),q=i.__gemi_nav={d:()=>L.abort()},v=(t,e)=>{if(!t.g)t.g=1,import(e.s).then((n)=>{if(t.isConnected)t.r=n.h(t,n.m[e.e])}).catch((n)=>console.error(n))},D=(t)=>{let e=t.getElementById("gemi-islands");return e?JSON.parse(e.textContent):{i:[]}},R=(t,e)=>{for(let n of t.querySelectorAll("gemi-island")){let s=e.i[n.dataset.island];if(!s||n.o)continue;if(s.l=="eager")v(n,s);else if(s.l=="idle"||!i.IntersectionObserver||!n.children.length)(i.requestIdleCallback||setTimeout)(()=>v(n,s));else{let l=new IntersectionObserver((m)=>{if(m.some((d)=>d.isIntersecting))l.disconnect(),v(n,s)});for(let m of n.children)l.observe(m)}}},O=\'meta[name="gemi-static"]\',A="style:not([data-gemi-fonts])",T=A+",link[rel=stylesheet]",K=`head>${A},body>${A},link[rel=stylesheet]`,I=\'meta[name]:not([name=viewport]),meta[property],link[rel~=canonical],link[rel~=alternate],link[rel~=icon],link[rel=preload][as=font],style[data-gemi-fonts],script[type="application/ld+json"]\',w=(t)=>t.querySelector(O)?.content,C=(t)=>[...t.querySelectorAll(K)].map((e)=>e.outerHTML).join(),c=(t)=>t.href.split("#")[0],p=r.createElement("div");p.setAttribute("aria-live","polite");p.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap";r.body.append(p);var _=(t)=>{q.p={url:location.href,title:r.title,initial:t},r.dispatchEvent(new CustomEvent("gemi:page-load",{detail:q.p}))},f=new Map,k=(t)=>{let e=f.get(t);if(!e||Date.now()-e[0]>30000){let n=fetch(t,{headers:{accept:"text/html","x-gemi-navigate":"1"},signal:AbortSignal.timeout(1e4)}).then((s)=>{if(!s.ok||!/^text\\/html/.test(s.headers.get("content-type"))||new URL(s.url||t).origin!=location.origin)throw s;return s.text().then((l)=>[s.url||t,l])});e=[Date.now(),n],n.catch(()=>f.get(t)==e&&f.delete(t))}if(f.delete(t),f.set(t,e),f.size>10)f.delete(f.keys().next().value);return e[1]},M=(t)=>{let e=t.target.closest?.("a[href]"),n=e?.getAttribute("target");if(!e||n&&n!="_self"||e.hasAttribute("download")||/(^|\\s)external(\\s|$)/i.test(e.getAttribute("rel"))||e.closest("[data-gemi-reload]"))return;let s=new URL(e.getAttribute("href"),r.baseURI);if(s.origin==location.origin&&!(s.href.includes("#")&&c(s)==c(location)))return s},y={},U=()=>Math.random().toString(36).slice(2),E=()=>a.state?.g||a.replaceState({...a.state,g:U()},""),P=c(location),b=0,N=(t)=>{if(!t.hasAttribute("tabindex"))t.setAttribute("tabindex","-1"),t.addEventListener("blur",()=>t.removeAttribute("tabindex"),{once:!0});t.focus({preventScroll:!0})},Y=(t)=>{let e=r.body,n=t.body,s=D(t),l=r.documentElement;r.title=t.title;for(let o of["lang","dir"]){let u=t.documentElement.getAttribute(o);if(u==null)l.removeAttribute(o);else l.setAttribute(o,u)}for(let o of r.head.querySelectorAll(I))o.remove();let m=new Set([...r.querySelectorAll("link[rel=modulepreload]")].map((o)=>o.getAttribute("href")));r.head.append(...t.head.querySelectorAll(I),...[...t.head.querySelectorAll("link[rel=modulepreload]")].filter((o)=>!m.has(o.getAttribute("href"))));let d=new Map([...e.querySelectorAll("[data-gemi-persist]")].map((o)=>[o.dataset.gemiPersist,o])),g=[...n.querySelectorAll("[data-gemi-persist]")].map((o)=>[o,d.get(o.dataset.gemiPersist)]).filter((o)=>o[1]);for(let o of[...e.querySelectorAll("gemi-island")].reverse())if(o.o=1,!g.some((u)=>u[1].contains(o)))try{o.r?.unmount()}catch(u){console.error(u)}for(let[o,u]of g)o.replaceWith(u);for(let o of[...e.childNodes])if(!o.matches?.(T))o.remove();for(let o of[...n.children])if(o.matches(T))o.remove();for(let o of[...e.attributes])e.removeAttribute(o.name);for(let o of n.attributes)e.setAttribute(o.name,o.value);e.append(...n.childNodes,p),R(e,s)},H=async(t,e)=>{let n=++b,s=!e&&y[a.state?.g];a.scrollRestoration="manual";try{let[l,m]=await k(c(t));if(n!=b)return;let d=new DOMParser().parseFromString(m,"text/html");if(w(d)==null||w(d)!=w(r)||C(d)!=C(r))throw 0;if(e){let o=new URL(l);o.hash=t.hash,a.pushState({g:U()},"",o.href)}P=c(location),Y(d);let g=e&&t.hash&&r.getElementById(decodeURIComponent(t.hash.slice(1)));if(g)g.scrollIntoView({behavior:"instant"});else i.scrollTo({left:s?.[0]||0,top:s?.[1]||0,behavior:"instant"});if(e)N(g||r.querySelector("h1")||r.querySelector("main")||r.body);p.textContent=r.title,_(!1)}catch{if(n!=b)return;if(e)location.assign(t.href);else location.reload()}};h(r,"click",(t)=>{if(t.defaultPrevented||t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let e=M(t);if(e&&r.dispatchEvent(new CustomEvent("gemi:before-navigate",{cancelable:!0,detail:{url:e.href}})))t.preventDefault(),E(),y[a.state.g]=[i.scrollX,i.scrollY],H(e,1)});h(i,"popstate",()=>{if(b++,c(location)==P){let t=y[a.state?.g];if(t)i.scrollTo({left:t[0],top:t[1],behavior:"instant"})}else if(a.state?.g)H(new URL(location.href),0);else location.reload()});h(i,"hashchange",E);h(i,"scroll",()=>a.state?.g&&(y[a.state.g]=[i.scrollX,i.scrollY]),{passive:!0});var S,x=(t)=>{if(r.querySelector(O)?.dataset.prefetch=="none"||navigator.connection?.saveData)return;let e=M(t);if(e&&c(e)!=c(location))k(c(e))};h(r,"pointerover",(t)=>{clearTimeout(S),S=setTimeout(()=>x(t),65)});h(r,"pointerout",()=>clearTimeout(S));h(r,"focusin",x);h(r,"touchstart",x,{passive:!0});E();R(r,D(r));_(!0);';var ZB="gemi-islands",OM=`'sha256-${BX("sha256").update(TJ).digest("base64")}'`;function KX($,Z,j,J){if(!j)return $;let W=J?$.lastIndexOf(Z):$.indexOf(Z);return W===-1?$+j:$.slice(0,W)+j+$.slice(W)}var OX=($)=>$.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;"),BM=`'sha256-${BX("sha256").update(VJ).digest("base64")}'`,jB='await import("/refresh.js").catch(()=>{});await import("/@vite/client").catch(()=>{});',JB="gemi-static";function DX($,Z,j,J,W){let Y=new Set,z=[];if(j)z=Z.islands.map((K)=>{let D=K.module?j(K.module):void 0;if(!D)return console.error(`[gemi] island ${K.module??"(unknown module)"}: no client build entry. Declare it as island(() => import("./Component")) so gemi's Vite plugin builds it.`),null;if(K.load==="eager")for(let B of D.preload)Y.add(B);return{s:D.src,e:K.export,l:K.load}});let X=z.some((K)=>K!==null);if(!X&&!W)return $;let G=(W?`<meta name="${JB}" content="${OX(W.identity)}"${W.prefetch==="none"?' data-prefetch="none"':""}/>`:"")+[...Y].map((K)=>`<link rel="modulepreload" href="${OX(K)}"/>`).join(""),Q=W?VJ:TJ,O=(X?`<script type="application/json" id="${ZB}">${S1({i:z})}</script>`:"")+`<script type="module">${J?jB+Q:Q}</script>`;return KX(KX($,"</head>",G,!1),"</body>",O,!0)}function WB($,Z){let j=/<(\/?)template\b[^>]*>/gi;j.lastIndex=Z;let J=0;for(let W=j.exec($);W;W=j.exec($))if(J+=W[1]?-1:1,J===0)return j.lastIndex;return-1}function UX($){let Z=`<template ${GX}="`;for(let j=$.lastIndexOf(Z);j!==-1;j=$.lastIndexOf(Z)){let J=WB($,j);if(J===-1)break;let W=j+Z.length,Y=$.slice(W,$.indexOf('"',W)),z=$.indexOf(">",W)+1,X=$.slice(z,J-11);$=$.slice(0,j)+$.slice(J);let F=`<${M3} ${FX}="${Y}" style="display:contents"></${M3}>`;$=$.split(F).join(`<${M3} style="display:contents">${X}</${M3}>`)}return $}function VX($){if(!$)return{locale:!0,session:!0,csrf:!0};return{locale:!1,session:$.session===!0,csrf:$.csrf===!0}}function TX($,Z){if($.getSetCookie().length>0){if(Z.cacheControl&&Bun.env.NODE_ENV!=="production")console.warn(`[gemi] A static view with cacheControl "${Z.cacheControl}" set a cookie, so it was sent "private, no-store" instead. Static pages are cacheable only when nothing on them sets a cookie.`);$.set("Cache-Control","private, no-store");return}if(Z.cacheControl&&!$.has("Cache-Control"))$.set("Cache-Control",Z.cacheControl)}var YB=async()=>(await import("./chunk-krk7mcgm.js")).default,IJ,L3=async(...$)=>{return IJ??=import("react-dom/server.browser").catch((Z)=>{throw IJ=void 0,Z}),(await IJ).renderToReadableStream(...$)},MX=1e4,LX="no-locale",zB=`
16
- !function(){try{var d=document.documentElement,c=d.classList;
17
- c.remove('light','dark');
18
- var e=localStorage.getItem('theme');
19
- if('system'===e||(!e&&'system'===defaultTheme)){
20
- var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);
21
- if(m.media!==t||m.matches){d.style.colorScheme='dark';c.add('dark')}
22
- else{d.style.colorScheme='light';c.add('light')}
23
- }else if(e){
24
- c.add(e||'')
25
- }}catch(e){}}()
26
- `;async function XB($,Z,j){let J=`${j==="italic"?"italic,":""}wght@${j==="italic"?"1,":""}${Z}`,z=(await(await fetch(`https://fonts.googleapis.com/css2?family=${$}:${J}&display=swap`,{headers:{"User-Agent":"Mozilla/5.0 Firefox/1.0"}})).text()).match(/url\(([^)]+)\)/)?.[1];return await fetch(z).then((X)=>X.arrayBuffer())}var PJ="/assets";function FB($){return $===PJ||$.startsWith(`${PJ}/`)}function GB($){let Z=$.filter(FB);if(Z.length>0){let j=Z.length>1;throw Error(`View route path${j?"s":""} ${Z.map((J)=>`"${J}"`).join(", ")} use${j?"":"s"} the reserved "${PJ}" prefix. The client build output is served from there before the router runs, so the route would never match. Mount it somewhere else.`)}}function QB($){let Z=T(r0).resolver;return{...$.domain,root:Z.root,origin:Z.publicOrigin($.rawRequest)}}function MJ($){let{status:Z=400,error:j,body:J,...W}=$;return new Response(J??j?.message,{...W,status:Z})}function KB($){let{status:Z=400,data:j,directive:J,headers:W}=$;return new Response(JSON.stringify({data:j,directive:J}),{headers:W,status:Z})}class N3{static token="router.view";flatViewRoutes={};routeManifest={};clientRouteManifest={};componentTree=[];flatComponentTree=[];staticRoutes=[];root=null;shellReporter=WX();preloadCache=new WeakMap;hooks;partialRendering;localeRouting;constructor($){let Z=Tz();this.partialRendering=$.partialRendering??Z.partialRendering,this.localeRouting=$.localeRouting??Z.localeRouting,this.hooks={onRequestStart:$.onRequestStart??Z.onRequestStart,onRequestEnd:$.onRequestEnd??Z.onRequestEnd,onRequestFail:$.onRequestFail??Z.onRequestFail,onStreamComplete:$.onStreamComplete??Z.onStreamComplete};let j={"/":$.rootRouter,"/auth":q4};this.flatViewRoutes=X8(j),GB(Object.keys(this.flatViewRoutes)),this.routeManifest=G8(j),this.clientRouteManifest=Object.fromEntries(Object.entries(this.routeManifest).filter(([,J])=>J.at(-1)!=="FILE")),this.componentTree=K8(j),this.flatComponentTree=GJ(this.componentTree),this.staticRoutes=Object.entries(this.flatViewRoutes).filter(([,J])=>J.static).map(([J])=>J);for(let J of this.staticRoutes){let W=this.flatViewRoutes[J].static?.layout;if(W&&!this.flatComponentTree.includes(W))this.flatComponentTree.push(W)}this.root=$.root}async passesFeatureGates($){let Z=T(LZ);for(let j of $)if(!await Z.enabled(j))return!1;return!0}async onRequestEnd($,Z={}){if(Z.mintSession!==!1)D8();return await this.hooks.onRequestEnd($)}completeStream($,Z){let j=(J)=>{x$.error(J?.message??'Error in "onStreamComplete" event handler',{err:JSON.stringify(J)})};try{Promise.resolve(this.hooks.onStreamComplete($,Z)).catch(j)}catch(J){j(J)}}modulePreloadLinks($){let{clientEntry:Z,modulePreloadManifest:j,views:J,routeKey:W}=$,Y=()=>{let F=new Set(Z?.preload??[]);for(let G of J)for(let Q of j?.[G]??[])F.add(Q);return[...F].map((G)=>A1("link",{key:`modulepreload:${G}`,rel:"modulepreload",href:G}))};if(!j)return Y();let z=this.preloadCache.get(j);if(!z||z.clientEntry!==Z)z={clientEntry:Z,byRoute:new Map},this.preloadCache.set(j,z);let X=z.byRoute.get(W);if(!X)X=Y(),z.byRoute.set(W,X);return X}async renderStatic($){let{req:Z,runInRequestScope:j,staticView:J,currentViews:W,data:Y,serverQueries:z,headers:X}=$,F;if(J.layout){if(F=$.viewImportMap[J.layout],!F)throw Error(`The static layout "${J.layout}" was not found. It is a view path: a file at app/views/${J.layout}.tsx whose default export renders the document.`)}let G=await $.getStyles(W,{static:!0,layout:J.layout});z.markRenderStart();let Q=LJ(),O=new AbortController,K=setTimeout(()=>O.abort(),MX),D=(U)=>{if(Bun.env.NODE_ENV!=="production")console.error(U)},B=XX(async(U,V)=>{let I=await L3(U,{signal:O.signal,identifierPrefix:V,progressiveChunkSize:Number.MAX_SAFE_INTEGER,onError:D});return await I.allReady.catch(()=>{}),await new Response(I).text()});try{let U;if(J.navigation){let M=J.navigation===!0?{}:J.navigation,N=M.version?String(await j(()=>M.version(Z))):"";U={identity:[J.layout??"",$.buildId??"",N].join("|"),prefetch:M.prefetch==="none"?"none":"intent"}}let V=await L3(A1(QX.Provider,{value:B,children:A1(IX,{children:[...G,A1(this.root,{data:Y,viewImportMap:$.viewImportMap,viewModules:$.viewModules,serverQueries:z,dictionarySink:Q,rootLayout:F,key:"root"})]})}),{signal:O.signal,progressiveChunkSize:Number.MAX_SAFE_INTEGER,onError:D});await V.allReady.catch(()=>{});let I=UX(await new Response(V).text());return new Response(DX(I,B,$.resolveIsland,Bun.env.NODE_ENV!=="production",U),{status:200,headers:X})}finally{clearTimeout(K),j(()=>this.completeStream(Z,z.summarize(O.signal.aborted)))}}async render($){let{req:Z,runInRequestScope:j,csrfTokenHMAC:J,currentPathName:W,headers:Y,i18n:z,params:X,pathname:F,serverQueries:G,userAgent:Q,noStream:O,url:K,user:D,viewData:B,breadcrumbs:U,urlLocaleSegment:V,meta:I,isOgRequest:M,appId:N,features:A,staticView:x}=$,E=F.replace(`/${V}`,""),S={kind:"view",data:{meta:I,pageData:{[E]:B},__csrf:J.toString("base64"),prefetchedData:{},i18n:z,auth:{user:D},routeManifest:this.clientRouteManifest,breadcrumbs:U,router:{urlLocaleSegment:V,pathname:W,params:X,currentPath:F,searchParams:K.search,is404:!W?!0:!1,domain:Z.domain?QB(Z):null},appId:N,features:A,componentTree:[["404",[]],...this.componentTree],...this.staticRoutes.length>0?{staticRoutes:this.staticRoutes}:{}},head:{}},P=this.root,L=this.routeManifest[W];return async(g)=>{let{bootstrapModules:d=[],loaders:R1,getStyles:$0,viewImportMap:n,cssManifest:v,ogMap:B0,viewModules:S$,clientEntry:f$,modulePreloadManifest:fZ,assetBase:K1,resolveIsland:A$,buildId:E$}=g,o=f$?[]:d,H3=(Z0)=>[Z0,`window.loaders=${R1}`,...f$?[`import(${JSON.stringify(f$.module)}).catch(function(e){setTimeout(function(){throw e})})`]:[]].join(";");if(M){let Z0=null,b$=null;for(let w$ of L??[])if(typeof B0[w$]==="function")b$=w$,Z0=B0[w$];if(!Z0)return new Response("Not found",{status:404});let QF=Object.values(S.data.pageData)[0];try{await L3(A1(Z0,QF[b$]),{onError:()=>{}})}catch(w$){let{fonts:KF,...OF}=w$.satoriOptions,BF=await Promise.all(KF.map((C3)=>{return XB(C3.name,C3.weight,C3.style).then((IF)=>({...C3,data:IF}))})),kJ=new Headers(Y);kJ.set("Content-Type","image/png");let[DF,UF]=await Promise.all([YB(),Y8("Rendering an OG image")]),VF=await DF(w$.jsx,{...OF,fonts:BF}),TF=await UF(Buffer.from(VF)).png({compressionLevel:0,effort:10}).toBuffer();return new Response(new Uint8Array(TF),{headers:kJ})}return new Response("data")}if(x&&W)return await this.renderStatic({req:Z,runInRequestScope:j,staticView:x,currentViews:L,data:S.data,serverQueries:G,headers:Y,getStyles:$0,viewImportMap:n,viewModules:S$,resolveIsland:A$,buildId:E$});if(S.data.cssManifest=v,S.data.modulePreloadManifest=fZ??{},K1&&K1!=="/")S.data.assetBase=K1;let _8=this.modulePreloadLinks({clientEntry:f$,modulePreloadManifest:fZ,views:L??["404"],routeKey:W??"404"}),R$=await $0(L);S.data.prefetchedData=G.snapshotResolved(),G.markRenderStart();let O1=new AbortController,AZ=setTimeout(()=>O1.abort(),MX),B1=B8(Q)||O,R=Bun.env.NODE_ENV!=="production"&&!B1&&W&&this.shellReporter.shouldObserve(W)?YX():null,q0=LJ();try{let Z0=await L3(A1(IX,{children:[..._8,...R$,A1("script",{key:"theme-script",dangerouslySetInnerHTML:{__html:zB}}),A1(P,{data:S.data,viewImportMap:n,viewModules:S$,serverQueries:G,dictionarySink:q0,key:"root"})]}),{bootstrapScriptContent:H3(`window.__GEMI_DATA__ = ${S1(S.data)}`),bootstrapModules:o,signal:O1.signal,...B1?{progressiveChunkSize:Number.MAX_SAFE_INTEGER}:{},onError(b$){if(Bun.env.NODE_ENV!=="production")console.error(b$)}});if(Z0.allReady.catch(()=>{}).finally(()=>clearTimeout(AZ)),B1)await Z0.allReady.catch(()=>{});return new Response(KJ(Z0,G,{onShell:B1?void 0:()=>G.markShell(),onChunk:R?.onChunk,onClose:()=>j(()=>{if(this.completeStream(Z,G.summarize(O1.signal.aborted)),R)this.shellReporter.report(W,R.measure())})},q0),{status:!W?$.refusedStatus??404:200,headers:Y})}catch(Z0){if(clearTimeout(AZ),Bun.env.NODE_ENV==="production")throw j(()=>this.completeStream(Z,G.summarize(O1.signal.aborted))),Z0;let b$=await L3(A1("div"),{bootstrapScriptContent:H3(`window.error= ${S1(Z0.message)}; window.stack_trace=${S1(Z0.stack)};window.__GEMI_DATA__ = ${S1(S.data)}`),bootstrapModules:Bun.env.NODE_ENV==="development"?["/render-error.js",...o]:o});return new Response(KJ(b$,G,{onClose:()=>j(()=>this.completeStream(Z,G.summarize(O1.signal.aborted)))}),{status:!W?$.refusedStatus??404:200,headers:Y})}}}viewRefusalStatus($,Z,j){if(P3(Z))return 404;if(Z?.kind===_Z){let J=Z.payload?.view?.status;return J===403||J===404?J:null}if(xZ(Z)){if(!j.has(Z))this.hooks.onRequestFail($,Z);return console.error(Z),403}if(Z instanceof f1&&(Z.status===403||Z.status===404))return Z.status;return null}async handleViewRequest($,Z){let j=new URL($.url),J=j.pathname.endsWith(".json"),W=j.pathname.endsWith(".og"),Y=j.pathname.replace(".json","").replace(".og",""),[,z,...X]=Y.split("/"),F=Y,G=null,Q=null,O=T(l),K=T3(this.flatViewRoutes,Y),D=O.isLocaleAware&&this.localeRouting==="prefix"&&!K?.route.middleware.includes(LX);if(D&&O.supportedLocales.includes(z))F=`/${X.join("/")}`,G=z,Q=z;if(D&&!W&&Q===null&&!(Q===null&&K!==null)){let P=PX(z,O.supportedLocales,O.defaultLocale);if(P){let L=X.length?`/${X.join("/")}`:"";return new Response("",{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:`/${P}${L}${J?".json":""}${j.search}`}})}}if(D&&!W){let P=T(l).detectLocale(new _($,{},"view",F));if(Q===null&&P!==O.defaultLocale){let L=j.pathname==="/"?"":j.pathname;return new Response("",{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:`/${P}${L}${j.search}`}})}}F=F.replace("//","/");let U=[],V=[],I=null,M={},N=null,A=!1,x=[],E;try{let P=T3(this.flatViewRoutes,F);if(Q&&P?.route.middleware.includes(LX))P=null;if(P){if(I=P.routePath,M=P.params,U=P.route.exec,V=P.route.middleware,x=P.route.features,A=V.includes("no-stream"),E=P.route.static,J&&this.partialRendering){let L=$.headers.get(FJ),g=dz({flatViewRoutes:this.flatViewRoutes,supportedLocales:T(l).supportedLocales,from:L,origin:j.origin,to:{segments:P.route.segments,params:M,search:j.search}});if(g.startIndex>0)U=U.slice(g.startIndex),N={from:L,carriedViews:g.carriedViews}}}}catch(P){throw P}if(E&&J)return new Response("Not found",{status:404});let S=new _($,M,"view",I);return this.hooks.onRequestStart(S),await H.run(S,async()=>{let P=null,L=H.getStore(),g=HZ.getStore(),d=(v)=>HZ.run(g,()=>H.runWith(L,v));L.serverQueries=new PZ(I3($));let R1=new Set;L.serverQueries.onQueryFail((v)=>{R1.add(v.error);try{d(()=>Promise.resolve(this.hooks.onRequestFail(n,v.error)).catch(()=>{}))}catch{}});let $0=VX(E);if(Q){let v=Q.replaceAll("/","");e1.setLocale(v,{cookie:$0.locale})}else if(O.isLocaleAware&&!D)L.setLocale(O.defaultLocale);else e1.setLocale(void 0,{cookie:$0.locale});let n=L.req;if($0.session)D8();try{let v=null;try{await T(VZ).runMiddleware(V)}catch(R){if(v=this.viewRefusalStatus(n,R,R1),v===null)throw R}if(v!==null||x.length>0&&!await this.passesFeatureGates(x))I=null,U=[],n.routePath="";let B0=T(l),S$=B0.isEnabled,f$=B0.isLocaleAware,fZ=new _($,n.params),K1={defaultLocale:B0.defaultLocale,timeZone:B0.detectTimeZone(fZ)};if(f$){let R=null;if(Q)R=Q.replaceAll("/",""),L.setLocale(R);else if(!D)R=L.locale??B0.defaultLocale;else R=B0.detectLocale(fZ),L.setLocale(R);let q0=S$?B0.getPageTranslations(R,n.routePath):{};K1={...K1,supportedLocales:B0.supportedLocales,currentLocale:R,dictionary:{[R]:q0},defaultLocale:B0.defaultLocale,...D?{}:{localeRouting:"off"}}}await NX(K1.currentLocale??"");let A$;try{A$=await Promise.all(U.map((R)=>R(n)))}catch(R){if(v=this.viewRefusalStatus(n,R,R1),v===null)throw R;I=null,U=[],n.routePath="",A$=[]}let{cookies:E$,headers:o}=L;if(v!==null)o.set("Cache-Control","no-store");P={data:A$,cookies:E$,headers:o,user:L.user,prefetchedData:L.serverQueries.snapshotResolved(),currentPathName:I,params:n.params,urlLocaleSegment:G,meta:L.renderMeta(),appId:T(QJ).id,features:await T(LZ).forClient()};let{params:H3,user:_8}=P,R$={},O1={};for(let R of A$??[]){let[q0,Z0]=Object.entries(R)?.[0]??[];if(!q0||!Z0)continue;O1[`${q0}:${I}`]=Z0.breadcrumb,R$[q0]=Z0}let AZ=R$.FILE;if(AZ){for(let R of E$)o.append("Set-Cookie",R.toString());try{await this.onRequestEnd(n)}catch(R){x$.error(R?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(R)})}return await q8(AZ,o)}if(J){o.set("Content-Type","application/x-ndjson; charset=utf-8"),o.append("Vary",FJ),E$.forEach((q0)=>o.append("Set-Cookie",q0.toString())),await this.hooks.onRequestEnd(n);let R={meta:N&&!L.metadata.touched?null:P.meta,data:{[F]:R$},breadcrumbs:O1,prefetchedData:L.serverQueries.snapshotResolved(),i18n:K1,features:P.features,is404:!I,appId:P.appId,partial:N};return new Response(zX(R,L.serverQueries,void 0,({aborted:q0})=>d(()=>this.completeStream(n,L.serverQueries.summarize(q0)))),{headers:o})}if(o.set("Content-Type","text/html; charset=utf-8"),!A&&!(E&&I))o.append("Vary","User-Agent");let B1=Boolean(E&&I);if(!B1||$0.session)D8();for(let R of E$)o.append("Set-Cookie",R.toString());if(!B1||$0.csrf){let R=Bun.CSRF.generate(process.env.SECRET);o.append("Set-Cookie",`csrf_token=${R}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`)}try{await this.onRequestEnd(n,{mintSession:!B1||$0.session})}catch(R){x$.error(R?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(R)})}if(B1)TX(o,E);return await this.render({req:n,runInRequestScope:d,csrfTokenHMAC:Buffer.from(""),currentPathName:I,headers:o,i18n:K1,params:H3,pathname:j.pathname,serverQueries:L.serverQueries,userAgent:$.headers.get("user-agent"),noStream:A,url:j,user:_8,viewData:R$,breadcrumbs:O1,urlLocaleSegment:G,meta:P.meta,appId:P.appId,features:P.features,isOgRequest:W,staticView:I?E:void 0,refusedStatus:v??void 0})}catch(v){if(v.kind===_Z){let B0=J?KB(v.payload.viewData??v.payload.api):MJ(v.payload.view);for(let S$ of L.cookies)B0.headers.append("Set-Cookie",S$.toString());return B0}if(!R1.has(v))this.hooks.onRequestFail(n,v);if(xZ(v))return console.error(v),J?NZ():MJ(UJ());if(v instanceof f1&&v.status===403)return J?NZ():MJ(UJ());throw v}},Z)}}function NJ(){let $=JSON.stringify({error:w1("not_found","Not found",404)});return new Response($,{status:404,headers:{"Content-Type":"application/json","Content-Length":String(Buffer.byteLength($)),"Cache-Control":"no-store"}})}class fX extends A0{routes={"/api-routes":this.get(()=>{let $=T(V8).flatRoutes,Z=[];for(let[j,J]of Object.entries($))for(let[W,Y]of Object.entries(J)){let{exec:z,middleware:X}=Y;Z.push({path:j,method:W,middleware:X})}return Z}),"/view-routes":this.get(()=>{let $=T(N3).flatViewRoutes,Z=[];for(let[j,{middleware:J,viewPath:W}]of Object.entries($))Z.push({path:j,method:"GET",viewPath:W,middleware:J});return Z})}}var OB=new Set([b1,"cookie","content-type","content-length","transfer-encoding","connection","host","user-agent","forwarded"]),BB=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,DB=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]*$/;function UB($,Z,j,J){for(let[W,Y]of Object.entries(j.headers??{})){if(Y===void 0||Y===null)continue;let z=W.toLowerCase();if(OB.has(z)||z.startsWith("x-forwarded-"))throw Error(`dispatchAs: credentials may not set the "${W}" header. The access token stays the initiator's, and the request's framing is dispatchAs's own.`);if(J&&z==="authorization")throw Error(`dispatchAs: credentials may not set "Authorization" on a call dispatched as an identity. The caller's token is for the MCP endpoint and is never passed on.`);$.set(W,Y)}for(let[W,Y]of Object.entries(j.cookies??{})){if(Y===void 0||Y===null)continue;if(W===b1)throw Error(`dispatchAs: credentials may not set the "${b1}" cookie. The access token stays the initiator's.`);if(!BB.test(W)||!DB.test(Y))throw Error(`dispatchAs: "${W}" is not a cookie a Cookie header can carry.`);Z.push(`${W}=${Y}`)}}function VB($,Z){let j=$.body.getReader(),J=!1,W=()=>{if(J)return;J=!0;try{Z()}catch(z){console.error(z)}},Y=new ReadableStream({async pull(z){let X;try{X=await j.read()}catch(F){W(),z.error(F);return}if(X.done){W();try{z.close()}catch{}return}try{z.enqueue(X.value)}catch{}},async cancel(z){try{await j.cancel(z)}finally{W()}}},{highWaterMark:0});return new Response(Y,{status:$.status,statusText:$.statusText,headers:$.headers})}function HX($){let{status:Z=400,data:j,headers:J}=$,W=new Headers({"Content-Type":"application/json",...J});if(!W.has("Cache-Control"))W.set("Cache-Control","no-store");return new Response(JSON.stringify(j),{status:Z,headers:W})}function CX($,Z,j){let J=[];Z?.forEach((z,X)=>J.push([X,z]));let W=[...typeof Z?.getSetCookie==="function"?Z.getSetCookie():[],...Array.from(j??[])];if(J.length===0&&W.length===0)return $;let Y=(z)=>{for(let[X,F]of J){if(X.toLowerCase()==="set-cookie")continue;if(!z.has(X))z.set(X,F)}for(let X of W)z.append("Set-Cookie",X)};try{return Y($.headers),$}catch{let z=new Headers($.headers);return Y(z),new Response($.body,{status:$.status,statusText:$.statusText,headers:z})}}class V8{static token="router.api";flatRoutes={};onRequestStart;onRequestEnd;onRequestFail;constructor($){let Z=Vz();this.onRequestStart=$.onRequestStart??Z.onRequestStart,this.onRequestEnd=$.onRequestEnd??Z.onRequestEnd,this.onRequestFail=$.onRequestFail??Z.onRequestFail,this.flatRoutes=u4({"/":$.rootRouter,"/auth":g4,"/__gemi__/services/i18n":m4,"/__gemi__/services/logs":d4,"/__gemi__/services/image":c4,"/__gemi__/debug":fX})}getRouteHandlerAndParams($){let Z=new URL($.url),j=SX(Z.pathname),J={},W;for(let[Y]of Object.entries(this.flatRoutes))try{let z=new URLPattern({pathname:Y});if(z.test({pathname:j})){W=Y,J=z.exec({pathname:j})?.pathname.groups;break}}catch(z){console.error(z)}return{params:J,path:W}}async runRouteMiddleware($,Z){let J=this.flatRoutes[$][Z.rawRequest.method].middleware;try{await T(VZ).runMiddleware(J)}catch(W){if(W.kind===_Z)return HX(W.payload.api);else{if(P3(W))return NJ();if(this.onRequestFail(Z,W),console.error(W),xZ(W))return NZ();throw W}}}async getRouteData($){let Z=this.flatRoutes[$],j=H.getStore(),J=Z[j.req.rawRequest.method].exec??(()=>Promise.resolve({})),W={};try{W=await J()}catch(Y){if(Y.kind===_Z)return HX(Y.payload.api);if(P3(Y))return NJ();if(this.onRequestFail(j.req,Y),console.error(Y),xZ(Y))return NZ();throw Y}return W}isFrameworkRoute($){return $.startsWith("/__gemi__")}async endRequest($,Z,j){let J=async()=>{try{if(!this.isFrameworkRoute(j))await this.onRequestEnd(Z)}catch(W){x$.error(W?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(W)})}finally{$.destroy()}};if(!$.hasPendingWork()){await J();return}$.whenIdle().then(J).catch((W)=>{console.error(W)})}isOpenEndedBody($,Z){return $.method!=="HEAD"&&!Z.headers.has("Content-Length")&&Z.body!==null}async handleApiRequest($,Z){let{params:j,path:J}=this.getRouteHandlerAndParams($),W=this.flatRoutes[J];if(!W||!W[$.method])return new Response(JSON.stringify({error:w1("not_found","Not found",404)}),{status:404});let Y=new _($,j,"api",J);if(!this.isFrameworkRoute(J))this.onRequestStart(Y);return await H.run(Y,async()=>{let z=H.getStore(),X=!1,F=async()=>{X=!0,await this.endRequest(z,Y,J)};try{let G=T(l);if(G.isEnabled){let U=G.detectLocale(Y);z.setLocale(U)}z.setRequest(Y),T(VZ).applyDefaultBodyLimit($);let Q=await this.runRouteMiddleware(J,Y);if(Q instanceof Response){let U=CX(Q,z.headers,z.cookies);return await F(),U}let O=await this.getRouteData(J),K=z.headers,D=z.cookies;if(O instanceof Response){let U=CX(O,K,D);if(this.isOpenEndedBody($,U)){let V=VB(U,()=>this.endRequest(z,Y,J));return X=!0,V}return await F(),U}let B=(y$(O)?O:$$.json(O)).toResponse(K,D);return await F(),B}catch(G){if(!X)try{await F()}catch(Q){console.error(Q)}throw G}},Z)}async dispatchAs($,Z,j,J,W){let Y=new URL($.rawRequest.url).origin,z=new URL(`${Y}/api${j}`),X=`/api${j.split(/[?#]/)[0]}`;if(!j.startsWith("/")||z.origin!==Y||z.pathname!==X||z.hash!==""||z.pathname.startsWith("/api/__gemi__")||z.pathname==="/api/auth"||z.pathname.startsWith("/api/auth/"))throw Error(`dispatchAs: "${j}" is not an app api path. Pass the route's own path, without "/api", with every param encoded.`);let F=W?.identity;if(F!==void 0&&(typeof F!=="object"||!F?.user))throw Error("dispatchAs: identity needs the user to dispatch as.");let G=new Headers,Q=[],O=F?null:$.cookies.get(b1);if(O)Q.push(`${b1}=${O}`);if(W?.credentials)UB(G,Q,W.credentials,F!==void 0);if(Q.length>0)G.set("Cookie",Q.join("; "));let K=F?null:$.headers.get(b1);if(K)G.set(b1,K);let D=$.headers.get("User-Agent");if(D)G.set("User-Agent",D);let B;if(J instanceof FormData)B=J;else if(J!==void 0)G.set("Content-Type","application/json"),B=JSON.stringify(J);let U=new Request(z,{method:Z,headers:G,body:B,...W?.signal?{signal:W.signal}:{}});if(_X(U,g$($),F?.grant,W?.progress),$.domain)CZ(U,$.domain);let V=F?{user:F.user}:void 0;return H.exit(()=>xX.exit(()=>this.handleApiRequest(U,V)))}}import{timingSafeEqual as TB}from"crypto";var I8="",_J="*",IB=60000,MB=1e4,HJ=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,T8=16,AX=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,CJ="x-forwarded-host";function EX($){return $.startsWith(":")}function xJ($,Z){if($===null)return!1;let j=Buffer.from($,"utf8"),J=Buffer.from(Z,"utf8");return j.length===J.length&&TB(j,J)}function LB($){if(!$)return null;if($===!0)return{header:CJ,secret:null};return{header:($.hostHeader??CJ).toLowerCase(),secret:$.secret?{header:$.secret.header.toLowerCase(),value:$.secret.value}:null}}function PB($){if(!$||$===!0)return;let{hostHeader:Z,secret:j}=$;if(Z!==void 0&&(typeof Z!=="string"||!AX.test(Z)))throw Error(`\`route.domains.trustProxy.hostHeader\` must be a single header name, e.g. "x-forwarded-host". Got ${JSON.stringify(Z)}.`);if(!j)return;if(typeof j.header!=="string"||!AX.test(j.header))throw Error(`\`route.domains.trustProxy.secret.header\` must be a header name. Got "${j.header}".`);if(j.header.toLowerCase()===(Z??CJ).toLowerCase())throw Error("`route.domains.trustProxy.secret.header` names the same header as `hostHeader`; the secret needs a header of its own.");if(typeof j.value!=="string"||j.value.length<T8)throw Error(`\`route.domains.trustProxy.secret.value\` must be at least ${T8} characters. A guessable one lets any client name its own host.`)}function Q1($){if(!$)return null;try{return new URL(`http://${$.trim()}`).hostname.toLowerCase().replace(/\.$/,"")||null}catch{return null}}function NB($){try{let Z=new URL(`http://${$.trim()}`),j=Z.hostname.toLowerCase().replace(/\.$/,"");return j?Z.port?`${j}:${Z.port}`:j:null}catch{return null}}function HB($){let Z=Q1($.root),j=$.root?.trim().toLowerCase().replace(/\.$/,"");if(!Z||Z!==j||!Z.split(".").every((Y)=>HJ.test(Y)))throw Error(`\`route.domains.root\` must be a bare hostname, e.g. "example.com" \u2014 no scheme, port or path. Got "${$.root}".`);if($.custom&&($.custom.cacheTtlMs??0)<0)throw Error(`\`route.domains.custom.cacheTtlMs\` is ${$.custom.cacheTtlMs}; it cannot be negative. Use 0 to disable the cache.`);if($.ask&&$.ask.secret.length<T8)throw Error(`\`route.domains.ask.secret\` must be at least ${T8} characters. A guessable one is worse than leaving \`ask\` out.`);PB($.trustProxy);let J=new Set,W=null;for(let Y of $.groups??[]){let{subdomain:z}=Y;if(J.has(z))throw Error(`\`route.domains\` declares the subdomain "${z}" twice.`);if(J.add(z),EX(z)){if(!/^:[A-Za-z_][A-Za-z0-9_]*$/.test(z))throw Error(`"${z}" is not a valid param subdomain. It must be a single \`:name\` label.`);if(W)throw Error(`\`route.domains\` declares two param subdomains, "${W.subdomain}" and "${z}"; a host could match either.`);W=Y;continue}if(Y.exists)throw Error(`The subdomain "${z}" is fixed, so \`exists\` has no param to check. It only applies to a \`:param\` subdomain.`);if(!z.split(".").every((X)=>HJ.test(X)))throw Error(`"${z}" is not a valid subdomain.`)}if($.custom&&!J.has($.custom.group))throw Error(`\`route.domains.custom.group\` is "${$.custom.group}", but no group declares that subdomain.`);if($.ask&&W&&!W.exists)throw Error(`\`route.domains.ask\` is set, so "${W.subdomain}" needs an \`exists\` to say which tenants are real. Without one every host under the root would be approved for a certificate.`)}class SJ{root;hostTrust;fixed=new Map;param=null;custom;cacheTtlMs;cache=new Map;inFlight=new Map;askSecret;proxySecretHeader;constructor($){HB($),this.root=Q1($.root),this.hostTrust=LB($.trustProxy);for(let Z of $.groups??[])if(EX(Z.subdomain))this.param={...Z,name:Z.subdomain.slice(1)};else this.fixed.set(Z.subdomain.toLowerCase(),Z);this.custom=$.custom??null,this.cacheTtlMs=this.custom?.cacheTtlMs??IB,this.askSecret=$.ask?.secret??null,this.proxySecretHeader=this.hostTrust?.secret?.header??null}forwardedHost($){let Z=this.hostTrust;if(!Z)return null;if(Z.secret&&!xJ($.headers.get(Z.secret.header),Z.secret.value))return null;return $.headers.get(Z.header)?.split(",")[0]?.trim()||null}hostOf($){return Q1(this.forwardedHost($))??Q1(new URL($.url).host)}publicOrigin($){let Z=new URL($.url),j=$.headers.get("x-forwarded-proto")?.split(",")[0]?.trim(),J=j==="http"||j==="https"?j:Z.protocol.replace(/:$/,""),W=this.forwardedHost($),Y=W&&Q1(W)?NB(W):null;return`${J}://${Y??Z.host}`}async resolve($){let Z=this.hostOf($);if(!Z)return null;let j=await this.match(Z,$);if(j)return j;if(this.custom?.fallback&&!this.isUnderRoot(Z))return{host:Z,group:_J,params:{},custom:!0};return null}async allows($,Z){let j=Q1($);return j?await this.match(j,Z)!==null:!1}isUnderRoot($){return $===this.root||$.endsWith(`.${this.root}`)}async match($,Z){if($===this.root)return{host:$,group:I8,params:{},custom:!1};if($.endsWith(`.${this.root}`)){let J=$.slice(0,-(this.root.length+1)),W=this.fixed.get(J);if(W)return{host:$,group:W.subdomain,params:{},custom:!1};if(this.param&&HJ.test(J)){let Y={[this.param.name]:J};if(this.param.exists&&!await this.param.exists(Y,Z))return null;return{host:$,group:this.param.subdomain,params:Y,custom:!1}}return null}if(!this.custom)return null;let j=await this.resolveCustom($);return j?{host:$,group:this.custom.group,params:j,custom:!0}:null}async resolveCustom($){let Z=Date.now(),j=this.cache.get($);if(j&&j.expiresAt>Z)return this.cache.delete($),this.cache.set($,j),j.value;let J=this.inFlight.get($);if(J)return J;let W=(async()=>await this.custom.resolve($)??null)();this.inFlight.set($,W);let Y;try{Y=await W}finally{this.inFlight.delete($)}if(this.cacheTtlMs>0){if(this.cache.size>=MB)this.cache.delete(this.cache.keys().next().value);this.cache.delete($),this.cache.set($,{value:Y,expiresAt:Date.now()+this.cacheTtlMs})}return Y}forget($){if($===void 0)this.cache.clear();else{let Z=Q1($);if(Z)this.cache.delete(Z)}}}var CB="/__gemi__/domains/ask";class r0{static token="router.domains";resolver;acceptsCustomDomains;groups=new Map;constructor($,Z){this.groups.set(I8,$);let{domains:j}=Z;if(this.acceptsCustomDomains=Boolean(j?.custom),!j){this.resolver=null;return}this.resolver=new SJ(j);let J=(W)=>({api:W.api?new V8({...Z.api,...W.api}):$.api,view:W.view?new N3({...Z.view,...W.view}):$.view});for(let W of j.groups??[])this.groups.set(W.subdomain,J(W));if(j.custom?.fallback)this.groups.set(_J,J(j.custom.fallback))}async route($){if(!this.resolver)return this.dispatchers(null);if(this.resolver.proxySecretHeader)RX($,this.resolver.proxySecretHeader);let Z=await this.resolver.resolve($);if(!Z)return null;return CZ($,Z),this.dispatchers(Z)}async ask($){if(!this.resolver?.askSecret||$.method!=="GET")return null;let Z=new URL($.url);if(Z.pathname!==CB)return null;if(!xJ(Z.searchParams.get("secret"),this.resolver.askSecret))return null;let j=Z.searchParams.get("domain"),J=j?await this.resolver.allows(j,$):!1;return new Response(null,{status:J?200:404})}dispatchers($){return this.groups.get($?.group??I8)}viewDispatchers(){return Array.from(new Set(Array.from(this.groups.values(),($)=>$.view)))}viewGroups(){let $=new Set,Z=[];for(let[j,J]of this.groups){if($.has(J.view))continue;$.add(J.view),Z.push({group:j,view:J.view})}return Z}}function M8($){let Z=new Date($??0).getTime();return Number.isFinite(Z)?Z:0}var bX=600000;function wX($,Z){return[q3($,Z),q3($,Z-1)]}class f{static token="auth";config;provider;constructor($={},Z=new Yj){this.config={...L8(l5($),$),emailCode:Jj($.emailCode)},this.provider=Z}get userProvider(){return this.provider}accessTokenCookieOptions($,Z){return{expires:Z,secure:this.publicOrigin($).startsWith("https://"),httpOnly:!0,domain:this.cookieDomain($)}}publicOrigin($){let Z=T().bound(r0)?T(r0).resolver:null;return Z?Z.publicOrigin($.rawRequest):new URL($.rawRequest.url).origin}cookieDomain($){let Z=this.config.cookieDomain;if(!Z)return;let j=Z==="root"?T(r0).resolver?.root:Q1(Z);if(!j)throw Error('`auth.cookieDomain` is "root", but `route.domains` is not configured.');let J=$.domain?.host??Q1(new URL($.rawRequest.url).host);return J===j||J?.endsWith(`.${j}`)?j:void 0}async getSession($,Z){if(!$)return null;if(!r8($))return this.config.migrateLegacySession?this.convertLegacySession($,Z,this.config.migrateLegacySession):null;let j=await this.userProvider.findSession({token:$,userAgent:Z});if(!j?.user)return null;let J=Date.now(),W=M8(j.expiresAt),Y=M8(j.absoluteExpiresAt);if(W<=J||Y<=J)return await this.userProvider.deleteSession({token:$}),null;let X=await this.slideSession(j,J);return X.user.extension=await this.config.extendSession(X.user),X}async convertLegacySession($,Z,j){let J=H.getStore()?.req;if(!J)return null;let W=Date.now(),Y=Math.floor(W/bX),z=null,X=await this.userProvider.findSession({token:$,userAgent:Z});if(X?.user){if(!await j(X,{token:$,req:J,userAgent:Z}))return null;let G=q3($,Y),Q=X.user.id;if(await this.userProvider.withLegacySessionLock($,async()=>{if(!await this.userProvider.claimLegacySession({token:$}))return!1;return await this.userProvider.createSessionV2({token:G,userId:Q,userAgent:Z,...this.freshLifetime(W)}),!0}))z=G}if(!z){for(let G of wX($,Y))if((await this.userProvider.findSession({token:G,userAgent:Z}))?.user){z=G;break}}if(!z)return null;let F=await this.getSession(z,Z);if(F)J.ctx().setCookie("access_token",z,this.accessTokenCookieOptions(J,new Date(F.expiresAt)));return F}async revokeSession($,Z){if(!$)return await this.userProvider.deleteSession({token:$}),null;if(r8($)||!this.config.migrateLegacySession){let W=await this.userProvider.findSession({token:$,userAgent:Z});return await this.userProvider.deleteSession({token:$}),W}let j=Math.floor(Date.now()/bX),J=wX($,j);return this.userProvider.withLegacySessionLock($,async()=>{let W=await this.userProvider.findSession({token:$,userAgent:Z});for(let Y of J){if(W?.user)break;W=await this.userProvider.findSession({token:Y,userAgent:Z})}await this.userProvider.deleteSession({token:$});for(let Y of J)await this.userProvider.deleteSession({token:Y});return W})}requestCarryingCookie($){let Z=H.getStore()?.req;return Z?.cookies.get("access_token")===$?Z:null}async slideSession($,Z){let j=this.config.sessionExpiresInHours*3600000;if(new Date($.expiresAt).getTime()-Z>=j/2)return $;let J=new Date(Math.min(Z+j,new Date($.absoluteExpiresAt).getTime())),W=await this.userProvider.updateSession({token:$.token,expiresAt:J}),Y=this.requestCarryingCookie($.token);if(Y)Y.ctx().setCookie("access_token",$.token,this.accessTokenCookieOptions(Y,J));if(!W)return $;return{...$,expiresAt:W.expiresAt??J}}freshLifetime($){return{expiresAt:new Date($+this.config.sessionExpiresInHours*3600000),absoluteExpiresAt:new Date($+this.config.sessionAbsoluteExpiresInHours*3600000)}}async generateMagicLink($){}async upsertSession($){await this.userProvider.findSession({token:"",userAgent:""})}async authenticate($){try{let Z=await this.userProvider.findUserByEmailAddress($,!1);if(!Z)throw Error(`User not found with email: ${$}`);let j=await this.createOrUpdateSession({email:$,id:Z.id}),J=new _;if(J.ctx().setCookie("access_token",j.token,this.accessTokenCookieOptions(J,j.expiresAt)),j?.user)j.user.extension=await this.config.extendSession(j.user);return j}catch(Z){console.log(Z)}}async createOrUpdateSessionV2($){let Z=await this.createOrUpdateSession($),j=null;if(Z?.user)j=await this.config.extendSession(Z.user),Z.user.extension=j;return Z}async createOrUpdateSession($){let Z=new _,j=$.id??(await this.userProvider.findUserByEmailAddress($.email,!1))?.id;if(!j)throw new Z$;let J=Bun.env.NODE_ENV==="development"?"local":Z.headers.get("User-Agent"),W=v5(j),Y=await this.userProvider.createSessionV2({token:W,userId:j,userAgent:J,...this.freshLifetime(Date.now())}),z=await this.userProvider.findSession({token:W,userAgent:J??""});return z?.user?z:Y}async createMagicLinkToken($){let Z=await this.userProvider.findUserByEmailAddress($,!1);if(Z){let{pin:j,token:J}=await this.issueOneTimeCode($,6);return{user:Z,email:$,pin:j,token:J}}return{}}async issueOneTimeCode($,Z){await this.userProvider.deleteMagicLinkToken($);let j=await this.config.generateMagicLinkToken($),J=await this.config.generateCode($),W=typeof J==="string"&&J!==""?J:h5(Z);return await this.userProvider.createMagicLinkToken({email:$,token:g3("link",$,j),pin:g3("pin",$,W)}),{email:$,pin:W,token:j}}async verifyOneTimeCode($,Z,j={}){let{expiresInMinutes:J,maxAttempts:W}=this.config.emailCode,Y=await this.userProvider.findMagicLinkTokenByEmail($);if(!Y)return qZ("pin",$,null,Z),{status:"invalid"};let z=M8(Y.createdAt);if(z+J*60000<=Date.now())return qZ("pin",$,null,Z),{status:"expired"};if(!await u5(Y.id,z,W,J))return await this.userProvider.claimMagicLinkToken(Y.id),{status:"too_many_attempts"};if(!qZ("pin",$,Y.pin,Z))return{status:"invalid"};if(j.claim!==!1&&!await this.userProvider.claimMagicLinkToken(Y.id))return{status:"invalid"};return{status:"ok",row:Y}}async verifyMagicLinkToken($,Z){let j=await this.userProvider.findMagicLinkTokenByEmail($),J=qZ("link",$,j?.token,Z);if(!j||!J)return!1;if(M8(j.createdAt)+this.config.emailCode.linkExpiresInMinutes*60000<=Date.now())return!1;return await this.userProvider.claimMagicLinkToken(j.id)}}class F1 extends c{static getFacadeAccessor(){return f}static async user(){let $=H.getStore(),Z=$?.user;if(!Z){if(Z=await A3(this.getFacadeRoot(),$?.req),Z)$?.setUser(Z)}if(Z)return Z;throw new Z$({redirectTo:f3($?.req,this.getFacadeRoot().config.signInPath)})}static intendedUrl($){let Z=H.getStore()?.req;return e0(Z?.search.get(t0),$??this.getFacadeRoot().config.redirectPath)}static async guard($){let Z=await F1.user();if(!await $(Z))throw new m$}static async guardSafe($){let Z=await F1.user();try{return await $(Z)}catch(j){return!1}}static async authenticate($){return await this.getFacadeRoot().authenticate($)}static async createMagicLink($){return await this.getFacadeRoot().createMagicLinkToken($)}}class P8{static ensure($,Z={}){let j=H.getStore();if(j.req.kind==="api")throw Error("Query.prefetch() cannot be called from an API request");return j.serverQueries??=new PZ(I3(j.req.rawRequest)),j.serverQueries.ensure($,Z,"prefetch")}static async instant($,...Z){let j=P8.ensure($,Z[0]);if(await j.promise,j.status==="rejected")throw j.error;return j.data}static prefetch($,...Z){P8.ensure($,Z[0])}static noPrefetch(){let $=H.getStore();if($.req.kind==="api")throw Error("Query.noPrefetch() cannot be called from an API request");$.serverQueries??=new PZ(I3($.req.rawRequest)),$.serverQueries.muteDiscoveryHints()}}function vX($,Z,j="/"){let J=new URL($.origin),W=Z.host?Z.host:Z.subdomain?`${Z.subdomain}.${$.root}`:$.root,Y=new URL(j.startsWith("/")?j:`/${j}`,J),z=_B(W);if(!z)throw Error(`"${W}" is not a hostname, so there is no URL for it. Give a bare host, optionally with a port \u2014 no scheme, path or credentials.`);if(Y.hostname=z.hostname,z.port)Y.port=z.port;return Y.toString()}function _B($){try{let Z=new URL(`http://${$.trim()}`);return Z.host===$.trim().toLowerCase()&&Z.pathname==="/"?{hostname:Z.hostname,port:Z.port}:null}catch{return null}}class kX{static absolute($,...Z){return`${process.env.HOST_NAME}${G0(String($),Z[0]??{})}`}static relative($,...Z){return G0(String($),Z[0]??{})}static forDomain($,Z,...j){let J=T(r0).resolver;if(!J)throw Error("`Url.forDomain` needs `route.domains` to be configured.");let W=H.getStore()?.req?.rawRequest,Y=W?J.publicOrigin(W):process.env.HOST_NAME;if(!Y)throw Error("`Url.forDomain` outside a request needs `HOST_NAME` for the protocol.");return vX({root:J.root,origin:Y},$,G0(String(Z),j[0]??{}))}}class yX{name="Meta";static description($){H.getStore().metadata.description($)}static title($){H.getStore().metadata.title($)}static openGraph($){H.getStore().metadata.openGraph($)}static htmlAttributes($){H.getStore().metadata.htmlAttributes($)}static canonical($){H.getStore().metadata.canonical($)}static alternates($){H.getStore().metadata.alternates($)}static fonts($){H.getStore().metadata.fonts($)}}var xB={set($,Z,j){H.getStore().setCookie($,Z,j)},setIfAbsent($,Z,j){if(H.getStore().req.cookies.has($))return!1;return H.getStore().setCookie($,Z,j),!0},delete($,Z){H.getStore().deleteCookie($,Z)}};class E1 extends c{static getFacadeAccessor(){return qX}static get client(){return this.getFacadeRoot().client}static get($){return E1.client.get($)}static set($,Z){return E1.client.set($,Z)}static del(...$){return E1.client.del(...$)}static exists($){return E1.client.exists($)}static incr($){return E1.client.incr($)}static expire($,Z){return E1.client.expire($,Z)}static ttl($){return E1.client.ttl($)}}class gX extends c{static getFacadeAccessor(){return $1}static consume($,Z={}){return this.getFacadeRoot().consume($,Z)}}class pX extends c{static getFacadeAccessor(){return mX}static run($,Z,j){return this.getFacadeRoot().run($,Z,j)}static acquire($,Z={}){return this.getFacadeRoot().acquire($,Z)}}class cX extends c{static getFacadeAccessor(){return hX}static encrypt($){return this.getFacadeRoot().encrypt($)}static decrypt($){return this.getFacadeRoot().decrypt($)}static needsReencryption($){return this.getFacadeRoot().needsReencryption($)}}class dX extends c{static getFacadeAccessor(){return V3}static for($,Z,j){return this.getFacadeRoot().for($,Z,j)}static list($,Z){return this.getFacadeRoot().list($,Z)}static save($,Z,j){return this.getFacadeRoot().save($,Z,j)}static fake($={}){return this.getFacadeRoot().fake($)}static restore(){this.getFacadeRoot().restore()}}function RP($){return $}function uX(){return{driver:"memory",pollInterval:30000,maxSubscriptions:1e4,batchSize:100,keepaliveInterval:5000}}function N8($){let Z=new URLSearchParams;for(let[j,J]of $)Z.append(j,String(J));return Z.toString()}function fJ($){let Z=new Map;if(!$)return Z;let j;try{j=new URLSearchParams($)}catch{return Z}for(let[J,W]of j){let Y=Number(W);if(W!==""&&Number.isSafeInteger(Y)&&Y>=0)Z.set(J,Y)}return Z}var{SQL:SB}=globalThis.Bun;function fB(){return Bun.semver.satisfies(Bun.version,">=1.4.0")}var AB=async($)=>{let Z=new SB($,{max:1,idleTimeout:0,maxLifetime:0});return{listen:(j,J,W)=>Z.listen(j,J,W),close:()=>Z.close({timeout:1})}},EB=async($)=>{let Z;try{Z=(await import("./chunk-0k02tza1.js")).default}catch(J){throw Error("The change feed's database driver needs a Postgres client that can LISTEN: Bun 1.4 or later, or the `postgres` package (bun add postgres).",{cause:J})}let j=Z($,{max:1,idle_timeout:0,max_lifetime:null,fetch_types:!1,onnotice:()=>{}});return{listen:(J,W,Y)=>j.listen(J,W,Y),close:()=>j.end({timeout:1}).catch(()=>{})}},lX=($)=>fB()?AB($):EB($);var RB=/^[A-Za-z_][A-Za-z0-9_]*$/;class AJ{headsTable;entriesTable;notifyChannel;sql;dialect;connection;url;retain;listener;sqliteTurn=Promise.resolve();constructor($,Z={}){if($.dialect!=="postgres"&&$.dialect!=="sqlite")throw Error(`The change feed's database driver supports Postgres and SQLite, not ${$.dialect}.`);let j=Z.headsTable??"gemi_change_heads",J=Z.entriesTable??"gemi_changes",W=Z.notifyChannel??"gemi_changes";for(let z of[j,J,W])if(!RB.test(z))throw Error(`"${z}" is not a plain identifier. Use letters, digits and underscores.`);let Y=Z.retain??1000;if(!Number.isInteger(Y)||Y<1)throw Error(`The change feed's retain must be a whole number, 1 or more; got ${Y}.`);this.headsTable=j,this.entriesTable=J,this.notifyChannel=W,this.sql=$.sql,this.dialect=$.dialect,this.connection=$.name,this.url=$.url,this.retain=Y,this.listener=Z.listener??lX}async createTable(){for(let $ of bB(this.headsTable,this.entriesTable))await this.sql.unsafe($)}joinsTransaction(){return this.transaction()!==void 0}publish($,Z){let j=this.transaction();if(!j){let W=()=>this.sql.begin((z)=>this.append(z,$,Z));if(this.dialect!=="sqlite")return W();let Y=this.sqliteTurn.then(W);return this.sqliteTurn=Y.catch(()=>{}),Y}let J=this.append(j,$,Z);return iX(J),J}async append($,Z,j){let J=$.unsafe(`"${this.headsTable}"`),W=$.unsafe(`"${this.entriesTable}"`),[Y]=await $`
27
- INSERT INTO ${J} (channel, seq) VALUES (${Z}, 1)
28
- ON CONFLICT (channel) DO UPDATE SET seq = ${J}.seq + 1
29
- RETURNING seq
30
- `,z=Number(Y.seq);if(await $`
31
- INSERT INTO ${W} (channel, seq, data, created_at)
32
- VALUES (${Z}, ${z}, ${JSON.stringify(j??null)}, ${Date.now()})
33
- `,z>this.retain)await $`DELETE FROM ${W} WHERE channel = ${Z} AND seq <= ${z-this.retain}`;if(this.dialect==="postgres")await $`SELECT pg_notify(${this.notifyChannel}, ${`${z} ${Z}`})`;return z}async heads($){let Z=new Map($.map((W)=>[W,0]));if($.length===0)return Z;let j=this.sql,J=await j`
34
- SELECT channel, seq FROM ${j.unsafe(`"${this.headsTable}"`)}
35
- WHERE channel IN ${j([...$])}
36
- `;for(let W of J)Z.set(W.channel,Number(W.seq));return Z}async read($,Z,j){let J=this.sql,[W]=await J`
37
- SELECT seq FROM ${J.unsafe(`"${this.headsTable}"`)} WHERE channel = ${$}
38
- `,Y=W?Number(W.seq):0;if(Z>Y)return{entries:[],head:Y,gap:!0};if(Z===Y)return{entries:[],head:Y,gap:!1};let z=await J`
39
- SELECT seq, data FROM ${J.unsafe(`"${this.entriesTable}"`)}
40
- WHERE channel = ${$} AND seq > ${Z}
41
- ORDER BY seq
42
- LIMIT ${j}
43
- `;if(z.length===0||Number(z[0].seq)!==Z+1)return{entries:[],head:Y,gap:!0};return{entries:z.map((X)=>({seq:Number(X.seq),data:JSON.parse(X.data)})),head:Y,gap:!1}}async listen($,Z){if(this.dialect!=="postgres")return{close:async()=>{}};if(!this.url)throw Error("The change feed's database driver needs the connection's url to LISTEN. Build it from a DatabaseManager connection, which has one.");let j=await this.listener(this.url);try{await j.listen(this.notifyChannel,(J)=>{let W=J.indexOf(" "),Y=Number(J.slice(0,W));if(W>0&&Number.isInteger(Y))$(J.slice(W+1),Y)},Z)}catch(J){throw await j.close(),J}return{close:()=>j.close()}}transaction(){if(this.dialect==="sqlite"||this.connection===void 0)return;let $=T1();if($===void 0||W$()!==this.connection)return;return $}}function bB($,Z){return[`CREATE TABLE IF NOT EXISTS "${$}" (
44
- "channel" TEXT NOT NULL PRIMARY KEY,
45
- "seq" BIGINT NOT NULL
46
- )`,`CREATE TABLE IF NOT EXISTS "${Z}" (
47
- "channel" TEXT NOT NULL,
48
- "seq" BIGINT NOT NULL,
49
- "data" TEXT NOT NULL,
50
- "created_at" BIGINT NOT NULL,
51
- PRIMARY KEY ("channel", "seq")
52
- )`]}class EJ{logs=new Map;retain;constructor($={}){let Z=$.retain??1000;if(!Number.isInteger(Z)||Z<1)throw Error(`The change feed's retain must be a whole number, 1 or more; got ${Z}.`);this.retain=Z}async publish($,Z){let j=this.logs.get($);if(!j)j={head:0,entries:[]},this.logs.set($,j);let J=++j.head;if(j.entries.push({seq:J,data:Z===void 0?null:structuredClone(Z)}),j.entries.length>this.retain)j.entries.splice(0,j.entries.length-this.retain);return J}async heads($){return new Map($.map((Z)=>[Z,this.logs.get(Z)?.head??0]))}async read($,Z,j){let J=this.logs.get($),W=J?.head??0;if(Z>W)return{entries:[],head:W,gap:!0};if(!J||Z===W)return{entries:[],head:W,gap:!1};let Y=J.entries[0]?.seq??W+1;if(Y>Z+1)return{entries:[],head:W,gap:!0};let z=Z+1-Y;return{entries:J.entries.slice(z,z+j),head:W,gap:!1}}}var rX=new TextEncoder;function sX($,Z){return rX.encode(`id: ${$}
53
- data: ${JSON.stringify(Z)}
54
-
55
- `)}function tX($,Z,j,J){let W=Z instanceof Request?Z:Z.rawRequest,Y=J.cursor??W.headers.get("Last-Event-ID")??new URL(W.url).searchParams.get("cursor"),z;try{z=$.subscribe(j,{cursor:Y,signal:W.signal})}catch(K){if(!(K instanceof H8))throw K;return new Response(JSON.stringify({error:"The change feed is at capacity."}),{status:503,headers:{"Content-Type":"application/json","Retry-After":String(J.retryAfter??5)}})}let X=null,F=!1,G=!1,Q=(K)=>{if(X)clearInterval(X);if(X=null,z.close(),G)return;G=!0;try{K.close()}catch{}},O=new ReadableStream({start(K){X=setInterval(()=>{if(aX())return Q(K);try{K.enqueue(rX.encode(nX))}catch{Q(K)}},$.config.keepaliveInterval)},async pull(K){try{if(!F){if(await z.ready(),F=!0,!G)K.enqueue(sX(z.cursor,{type:"ready"}));return}let D=await z.next();if(D.done||G)return Q(K);K.enqueue(sX(z.cursor,D.value))}catch(D){if(!G)console.error("[gemi] A change feed stream failed.",D);Q(K)}},cancel(){if(G=!0,X)clearInterval(X);X=null,z.close()}});return new Response(O,{headers:oX()})}var eX=255,$F=500,wB=30000;class H8 extends Error{limit;constructor($){super(`The change feed holds its limit of ${$} subscriptions.`);this.limit=$;this.name="ChangeFeedFullError"}}class vJ{options;static token="changeFeed";driver;config;followers=new Map;all=new Set;listenState="off";listening=null;retryTimer=null;backoffMs=$F;pollTimer=null;polling=null;constructor($={},Z={}){this.options=Z;this.config=L8(uX(),$),this.driver=kB(this.config.driver,Z.application)}get subscriptions(){return this.all.size}get isListening(){return this.listenState==="listening"}async publish($,Z){wJ($);let j=Z===void 0?null:Z;if(T1()!==void 0&&!this.driver.joinsTransaction?.())return bJ(async()=>{this.wake($,await this.driver.publish($,j))}),null;let J=await this.driver.publish($,j);return bJ(()=>this.wake($,J)),J}async head($){return wJ($),(await this.driver.heads([$])).get($)??0}async cursor($){let Z=RJ($);return N8(await this.driver.heads(Z))}subscribe($,Z={}){let j=RJ($);if(this.all.size>=this.config.maxSubscriptions)throw new H8(this.config.maxSubscriptions);let J=new ZF(this,j,vB(Z.cursor),this.config,Z.signal);this.all.add(J);for(let W of j){let Y=this.followers.get(W);if(!Y)this.followers.set(W,Y=new Set);Y.add(J)}return this.startListening(),this.startPolling(),J}stream($,Z,j={}){return tX(this,$,RJ(Z),j)}async close(){if(this.listenState="closed",this.retryTimer)clearTimeout(this.retryTimer);this.retryTimer=null,this.stopPolling();for(let Z of this.all)Z.close();let $=this.listening;this.listening=null,await $?.close(),await this.driver.close?.()}forget($){if(!this.all.delete($))return;for(let Z of $.channels){let j=this.followers.get(Z);if(j?.delete($),j?.size===0)this.followers.delete(Z)}if(this.all.size===0)this.stopPolling()}poll(){return this.polling??=(async()=>{try{let $=[...this.followers.keys()];for(let Z=0;Z<$.length;Z+=500){let j=await this.driver.heads($.slice(Z,Z+500));for(let[J,W]of j)this.wake(J,W)}}catch($){console.error("[gemi] The change feed could not read its channels' heads.",$)}finally{this.polling=null}})(),this.polling}startPolling(){if(this.pollTimer)return;this.pollTimer=setInterval(()=>void this.poll(),this.config.pollInterval),this.pollTimer.unref?.()}stopPolling(){if(this.pollTimer)clearInterval(this.pollTimer);this.pollTimer=null}wake($,Z){for(let j of this.followers.get($)??[])j.moved($,Z)}resync(){this.poll()}startListening(){if(this.listenState!=="off"||!this.driver.listen)return;this.connect()}async connect(){this.listenState="connecting",this.retryTimer=null;try{let $=await this.driver.listen((Z,j)=>this.wake(Z,j),()=>this.resync());if(this.listenState!=="connecting"){await $.close();return}this.listening=$,this.listenState="listening",this.backoffMs=$F,this.resync()}catch($){if(this.listenState!=="connecting")return;console.error(`[gemi] The change feed could not listen for other instances' changes; retrying in ${this.backoffMs}ms.`,$),this.listenState="retrying",this.retryTimer=setTimeout(()=>void this.connect(),this.backoffMs),this.retryTimer.unref?.(),this.backoffMs=Math.min(this.backoffMs*2,wB)}}}class ZF{manager;config;signal;channels;positions=new Map;readTo=new Map;dirty=new Set;pending=[];started=null;wakeUp=null;closed=!1;onAbort=()=>this.close();constructor($,Z,j,J,W){this.manager=$;this.config=J;this.signal=W;this.channels=Z;for(let Y of Z){let z=j.get(Y);if(z!==void 0)this.positions.set(Y,z),this.readTo.set(Y,z),this.dirty.add(Y)}if(W?.aborted)this.close();else W?.addEventListener("abort",this.onAbort,{once:!0})}get cursor(){return N8(this.positions)}get isClosed(){return this.closed}ready(){return this.started??=(async()=>{let $=this.channels.filter((j)=>!this.positions.has(j));if($.length===0)return;let Z=await this.manager.driver.heads($);for(let j of $){let J=Z.get(j)??0;this.positions.set(j,J),this.readTo.set(j,J)}})(),this.started}async next(){await this.ready();for(;;){if(this.closed)return{done:!0,value:void 0};let $=this.pending.shift();if($)return this.positions.set($.channel,$.seq),{done:!1,value:$};let Z=this.dirty.values().next().value;if(Z!==void 0){await this.read(Z);continue}await this.idle()}}async return(){return this.close(),{done:!0,value:void 0}}[Symbol.asyncIterator](){return this}close(){if(this.closed)return;this.closed=!0,this.pending.length=0,this.signal?.removeEventListener("abort",this.onAbort),this.manager.forget(this),this.wake()}moved($,Z){let j=this.readTo.get($);if(j!==void 0&&Z===j)return;this.dirty.add($),this.wake()}async read($){let Z=this.readTo.get($)??0;this.dirty.delete($);let{batchSize:j}=this.config,{entries:J,head:W,gap:Y}=await this.manager.driver.read($,Z,j);if(this.closed)return;if(Y){this.readTo.set($,W),this.pending.push({type:"reset",channel:$,seq:W});return}for(let z of J)this.readTo.set($,z.seq),this.pending.push({type:"change",channel:$,seq:z.seq,data:z.data});if(J.length===j)this.dirty.add($)}idle(){return new Promise(($)=>{this.wakeUp=$})}wake(){let $=this.wakeUp;this.wakeUp=null,$?.()}}function wJ($){if(typeof $!=="string"||$===""||$.length>eX)throw Error(`A change feed channel is a string of 1 to ${eX} characters; got ${JSON.stringify($)}.`)}function RJ($){let Z=[...new Set(typeof $==="string"?[$]:$)];if(Z.length===0)throw Error("A change feed subscription needs at least one channel.");for(let j of Z)wJ(j);return Z}function vB($){if($===void 0||$===null)return new Map;if(typeof $==="string")return fJ($);let Z=$ instanceof Map?[...$]:Object.entries($);return fJ(N8(new Map(Z)))}function kB($,Z){if($==="memory")return new EJ;if($==="database"||typeof $==="function"){if(!Z&&($==="database"||$.length>0))throw Error("The change feed driver needs the application it belongs to, and this ChangeFeedManager was built without one. Pass { application }.");if($==="database")return new AJ(Z.make(Y$));return $(Z)}if(typeof $==="string")throw Error(`Unknown change feed driver "${$}". The changeFeed slice's driver is "memory", "database", a ChangeFeedDriver, or a function returning one.`);return $}class jF extends c{static getFacadeAccessor(){return vJ}static publish($,Z){return this.getFacadeRoot().publish($,Z)}static head($){return this.getFacadeRoot().head($)}static cursor($){return this.getFacadeRoot().cursor($)}static subscribe($,Z){return this.getFacadeRoot().subscribe($,Z)}static stream($,Z,j){return this.getFacadeRoot().stream($,Z,j)}}class JF extends c{static getFacadeAccessor(){return LZ}static enabled($){return this.getFacadeRoot().enabled($)}static all(){return this.getFacadeRoot().forClient()}static explain($){return this.getFacadeRoot().explain($)}static for($){return this.getFacadeRoot().for($)}static list(){return this.getFacadeRoot().list()}static set($,Z,j){return this.getFacadeRoot().set($,Z,j)}static refresh(){return this.getFacadeRoot().refresh()}static invalidate(){return this.getFacadeRoot().invalidate()}}class C8{bound;constructor($){this.bound=$}get name(){return this.bound??W$()}get sql(){return this.connection().sql}get dialect(){return this.connection().dialect}async query($){return await this.run($,"query")}async execute($){let Z=await this.run($,"execute");return Number(Z?.count??0)}async transaction($){let Z=this.name,j=this.connection(Z);return zF(j.sql,(J)=>WF(Z,()=>$(J)),{slowTransactionThreshold:j.config.slowTransactionThreshold,connection:Z})}async schema(){let $=this.connection(),{introspect:Z}=await import("./chunk-y6wt5b6t.js");return Z(this.handle()??$.sql,$.dialect)}run($,Z){let j=this.connection(),{text:J,values:W}=FF($,XF(j.dialect),Z);return(this.handle()??j.sql).unsafe(J,W)}handle(){let $=T1();if($===void 0)return;return W$()===this.name?$:void 0}connection($=this.name){return YF($),T(Y$).connection($)}}var SZ=new C8;class GF extends c{static getFacadeAccessor(){return Y$}static connection($){return new C8($)}static get sql(){return SZ.sql}static get dialect(){return SZ.dialect}static query($){return SZ.query($)}static execute($){return SZ.execute($)}static transaction($){return SZ.transaction($)}static schema(){return SZ.schema()}static close(){return this.getFacadeRoot().close()}}export{D1 as Uc,EZ as Vc,A8 as Wc,k$ as Xc,bZ as Yc,A0 as Zc,v8 as _c,k8 as $c,oJ as ad,U1 as bd,$$ as cd,SF as dd,q8 as ed,V1 as fd,a as gd,fF as hd,AF as id,a8 as jd,r8 as kd,v5 as ld,$1 as md,vZ as nd,K5 as od,g$ as pd,k5 as qd,y5 as rd,e8 as sd,$j as td,g3 as ud,qZ as vd,HV as wd,l5 as xd,HG as yd,Yj as zd,A3 as Ad,m8 as Bd,E3 as Cd,F1 as Dd,e1 as Ed,P8 as Fd,kX as Gd,yX as Hd,xB as Id,E1 as Jd,gX as Kd,pX as Ld,cX as Md,dX as Nd,RP as Od,uX as Pd,N8 as Qd,fJ as Rd,AJ as Sd,EJ as Td,H8 as Ud,vJ as Vd,ZF as Wd,jF as Xd,az as Yd,OJ as Zd,rz as _d,tz as $d,gO as ae,ez as be,BJ as ce,hO as de,cO as ee,DJ as fe,$X as ge,ZX as he,LZ as ie,JF as je,C8 as ke,GF as le,E4 as me,zO as ne,p4 as oe,h4 as pe,RT as qe,Oz as re,Bz as se,R3 as te,VZ as ue,sT as ve,Vz as we,Tz as xe,QJ as ye,NZ as ze,UJ as Ae,OM as Be,BM as Ce,PJ as De,FB as Ee,MJ as Fe,KB as Ge,N3 as He,NJ as Ie,HX as Je,CX as Ke,V8 as Le,r0 as Me,f as Ne,j5 as Oe,W5 as Pe,z5 as Qe,D5 as Re,U5 as Se,V5 as Te,h8 as Ue,vF as Ve,J0 as We,S5 as Xe,h$ as Ye,b5 as Ze};
56
-
57
- //# debugId=158233CC8CED424764756E2164756E21