gemi 0.180.0 → 0.182.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 (238) hide show
  1. package/dist/ai/Agent.d.ts +51 -0
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +76 -1
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/index.d.ts +3 -1
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +34 -34
  8. package/dist/ai/index.js.map +3 -3
  9. package/dist/ai/types.d.ts +5 -1
  10. package/dist/ai/types.d.ts.map +1 -1
  11. package/dist/ai/usageLimits.d.ts +138 -0
  12. package/dist/ai/usageLimits.d.ts.map +1 -0
  13. package/dist/app/index.js +1 -1
  14. package/dist/auth/AuthController.d.ts +4 -0
  15. package/dist/auth/AuthController.d.ts.map +1 -1
  16. package/dist/auth/config.d.ts +40 -6
  17. package/dist/auth/config.d.ts.map +1 -1
  18. package/dist/auth/oneTimeCode.d.ts +24 -1
  19. package/dist/auth/oneTimeCode.d.ts.map +1 -1
  20. package/dist/bun/plugin.js +1 -1
  21. package/dist/bun/preload.js +1 -1
  22. package/dist/{chunk-nv2ecda9.js → chunk-07ttfngb.js} +2 -2
  23. package/dist/{chunk-nv2ecda9.js.map → chunk-07ttfngb.js.map} +1 -1
  24. package/dist/{chunk-w6br58a9.js → chunk-0jery7ys.js} +4 -4
  25. package/dist/{chunk-w6br58a9.js.map → chunk-0jery7ys.js.map} +1 -1
  26. package/dist/{chunk-xzzdywf6.js → chunk-1863jd18.js} +2 -2
  27. package/dist/{chunk-pw6ssy3a.js.map → chunk-1863jd18.js.map} +1 -1
  28. package/dist/{chunk-6nrd3djs.js → chunk-1kcv4dyh.js} +2 -2
  29. package/dist/{chunk-6nrd3djs.js.map → chunk-1kcv4dyh.js.map} +1 -1
  30. package/dist/{chunk-6x3315an.js → chunk-1mz16fsz.js} +2 -2
  31. package/dist/{chunk-6x3315an.js.map → chunk-1mz16fsz.js.map} +1 -1
  32. package/dist/{chunk-wtjfjh0x.js → chunk-3jnnma7m.js} +2 -2
  33. package/dist/{chunk-wtjfjh0x.js.map → chunk-3jnnma7m.js.map} +1 -1
  34. package/dist/{chunk-b53n5696.js → chunk-3m791vwf.js} +2 -2
  35. package/dist/{chunk-b53n5696.js.map → chunk-3m791vwf.js.map} +1 -1
  36. package/dist/{chunk-mby1wdny.js → chunk-4b5rpya9.js} +2 -2
  37. package/dist/{chunk-mby1wdny.js.map → chunk-4b5rpya9.js.map} +1 -1
  38. package/dist/{chunk-najr8410.js → chunk-4e9hnb5e.js} +2 -2
  39. package/dist/{chunk-najr8410.js.map → chunk-4e9hnb5e.js.map} +1 -1
  40. package/dist/{chunk-v8qzdvpj.js → chunk-5467avf1.js} +2 -2
  41. package/dist/{chunk-v8qzdvpj.js.map → chunk-5467avf1.js.map} +1 -1
  42. package/dist/{chunk-tjmw2z5z.js → chunk-5d6h1znx.js} +2 -2
  43. package/dist/{chunk-tjmw2z5z.js.map → chunk-5d6h1znx.js.map} +1 -1
  44. package/dist/{chunk-9mcweetq.js → chunk-5f4k3n9x.js} +2 -2
  45. package/dist/{chunk-9mcweetq.js.map → chunk-5f4k3n9x.js.map} +1 -1
  46. package/dist/{chunk-gtfwk0ss.js → chunk-5nqwxjf1.js} +3 -3
  47. package/dist/{chunk-gtfwk0ss.js.map → chunk-5nqwxjf1.js.map} +1 -1
  48. package/dist/{chunk-rv0r5fde.js → chunk-5sjteb6f.js} +3 -3
  49. package/dist/{chunk-rv0r5fde.js.map → chunk-5sjteb6f.js.map} +1 -1
  50. package/dist/{chunk-4hj0q8fs.js → chunk-62v0y132.js} +2 -2
  51. package/dist/{chunk-4hj0q8fs.js.map → chunk-62v0y132.js.map} +1 -1
  52. package/dist/{chunk-sr1gv50s.js → chunk-6bf04rk5.js} +2 -2
  53. package/dist/{chunk-sr1gv50s.js.map → chunk-6bf04rk5.js.map} +1 -1
  54. package/dist/{chunk-xgmc7cp5.js → chunk-6dzm2pv7.js} +2 -2
  55. package/dist/{chunk-xgmc7cp5.js.map → chunk-6dzm2pv7.js.map} +1 -1
  56. package/dist/{chunk-7jxf0kys.js → chunk-6s7bb50m.js} +3 -3
  57. package/dist/{chunk-7jxf0kys.js.map → chunk-6s7bb50m.js.map} +1 -1
  58. package/dist/{chunk-y2rzqpgd.js → chunk-723a6j04.js} +2 -2
  59. package/dist/{chunk-y2rzqpgd.js.map → chunk-723a6j04.js.map} +1 -1
  60. package/dist/{chunk-nwg70wza.js → chunk-73svx8gr.js} +3 -3
  61. package/dist/{chunk-nwg70wza.js.map → chunk-73svx8gr.js.map} +1 -1
  62. package/dist/{chunk-jpq74abh.js → chunk-7fzwgvyg.js} +1 -1
  63. package/dist/{chunk-vv1na1vj.js → chunk-7g90w0t6.js} +1 -1
  64. package/dist/{chunk-520hnb9j.js → chunk-7n6vnmtv.js} +2 -2
  65. package/dist/{chunk-520hnb9j.js.map → chunk-7n6vnmtv.js.map} +1 -1
  66. package/dist/{chunk-gjb7cfr4.js → chunk-7pbwmt7j.js} +2 -2
  67. package/dist/{chunk-gjb7cfr4.js.map → chunk-7pbwmt7j.js.map} +1 -1
  68. package/dist/{chunk-ht0atvyc.js → chunk-7rmsc511.js} +3 -3
  69. package/dist/{chunk-ht0atvyc.js.map → chunk-7rmsc511.js.map} +1 -1
  70. package/dist/{chunk-zpshgset.js → chunk-7stvx6x7.js} +2 -2
  71. package/dist/{chunk-zpshgset.js.map → chunk-7stvx6x7.js.map} +1 -1
  72. package/dist/{chunk-zm4fdsq5.js → chunk-8z1z4zbq.js} +2 -2
  73. package/dist/{chunk-zm4fdsq5.js.map → chunk-8z1z4zbq.js.map} +1 -1
  74. package/dist/chunk-91vxf94n.js +41 -0
  75. package/dist/{chunk-zd67c5rp.js.map → chunk-91vxf94n.js.map} +5 -4
  76. package/dist/{chunk-5cf61bb5.js → chunk-9beqhac6.js} +2 -2
  77. package/dist/{chunk-5cf61bb5.js.map → chunk-9beqhac6.js.map} +1 -1
  78. package/dist/{chunk-sen7c0e6.js → chunk-9brq77q6.js} +3 -3
  79. package/dist/{chunk-sen7c0e6.js.map → chunk-9brq77q6.js.map} +1 -1
  80. package/dist/{chunk-wjkcqe8w.js → chunk-adsbv4rm.js} +2 -2
  81. package/dist/{chunk-wjkcqe8w.js.map → chunk-adsbv4rm.js.map} +1 -1
  82. package/dist/{chunk-yef8dvmg.js → chunk-am9gmm5a.js} +2 -2
  83. package/dist/{chunk-yef8dvmg.js.map → chunk-am9gmm5a.js.map} +1 -1
  84. package/dist/{chunk-6t9zjhm6.js → chunk-ambptjfh.js} +2 -2
  85. package/dist/{chunk-6t9zjhm6.js.map → chunk-ambptjfh.js.map} +1 -1
  86. package/dist/{chunk-6vdvhj14.js → chunk-btt706nx.js} +2 -2
  87. package/dist/{chunk-6vdvhj14.js.map → chunk-btt706nx.js.map} +1 -1
  88. package/dist/{chunk-dp5ha6qy.js → chunk-cxh9qe1c.js} +2 -2
  89. package/dist/{chunk-dp5ha6qy.js.map → chunk-cxh9qe1c.js.map} +1 -1
  90. package/dist/{chunk-8v95cjc5.js → chunk-dcwsya9e.js} +2 -2
  91. package/dist/{chunk-8v95cjc5.js.map → chunk-dcwsya9e.js.map} +1 -1
  92. package/dist/{chunk-6wwk0psy.js → chunk-f3s8pz3m.js} +2 -2
  93. package/dist/{chunk-6wwk0psy.js.map → chunk-f3s8pz3m.js.map} +1 -1
  94. package/dist/{chunk-yx26j5vk.js → chunk-fagkv8sm.js} +2 -2
  95. package/dist/{chunk-yx26j5vk.js.map → chunk-fagkv8sm.js.map} +1 -1
  96. package/dist/{chunk-s0m717j8.js → chunk-fzwaybhd.js} +3 -3
  97. package/dist/{chunk-s0m717j8.js.map → chunk-fzwaybhd.js.map} +1 -1
  98. package/dist/{chunk-93s13x3v.js → chunk-g09qz75d.js} +2 -2
  99. package/dist/{chunk-93s13x3v.js.map → chunk-g09qz75d.js.map} +1 -1
  100. package/dist/{chunk-bptarxbq.js → chunk-g0ps09h7.js} +2 -2
  101. package/dist/{chunk-bptarxbq.js.map → chunk-g0ps09h7.js.map} +1 -1
  102. package/dist/{chunk-xvaryyd0.js → chunk-g57cg31m.js} +2 -2
  103. package/dist/{chunk-xvaryyd0.js.map → chunk-g57cg31m.js.map} +1 -1
  104. package/dist/{chunk-5db4v8gv.js → chunk-gprc53rf.js} +1 -1
  105. package/dist/{chunk-q3g4xs1z.js → chunk-h5s56wzw.js} +2 -2
  106. package/dist/{chunk-q3g4xs1z.js.map → chunk-h5s56wzw.js.map} +1 -1
  107. package/dist/{chunk-vhk6735r.js → chunk-j1j0438r.js} +2 -2
  108. package/dist/{chunk-vhk6735r.js.map → chunk-j1j0438r.js.map} +1 -1
  109. package/dist/{chunk-hbjatkm9.js → chunk-jc48hhha.js} +2 -2
  110. package/dist/{chunk-hbjatkm9.js.map → chunk-jc48hhha.js.map} +1 -1
  111. package/dist/{chunk-zx5tp1c6.js → chunk-k1v0xgwe.js} +2 -2
  112. package/dist/{chunk-zx5tp1c6.js.map → chunk-k1v0xgwe.js.map} +1 -1
  113. package/dist/{chunk-sx6jmyaf.js → chunk-k6x35rn5.js} +1 -1
  114. package/dist/{chunk-8zwm5n7d.js → chunk-n31hppcx.js} +2 -2
  115. package/dist/{chunk-8zwm5n7d.js.map → chunk-n31hppcx.js.map} +1 -1
  116. package/dist/{chunk-e14fgtk1.js → chunk-n6hd9swg.js} +2 -2
  117. package/dist/{chunk-e14fgtk1.js.map → chunk-n6hd9swg.js.map} +1 -1
  118. package/dist/{chunk-5v07y14d.js → chunk-njrnn5dw.js} +2 -2
  119. package/dist/{chunk-5v07y14d.js.map → chunk-njrnn5dw.js.map} +1 -1
  120. package/dist/{chunk-jwvwve00.js → chunk-p9avgpzd.js} +2 -2
  121. package/dist/{chunk-jwvwve00.js.map → chunk-p9avgpzd.js.map} +1 -1
  122. package/dist/{chunk-tefb1nz7.js → chunk-pt159v3n.js} +2 -2
  123. package/dist/{chunk-tefb1nz7.js.map → chunk-pt159v3n.js.map} +1 -1
  124. package/dist/{chunk-qry4bf38.js → chunk-px7yzba8.js} +23 -23
  125. package/dist/{chunk-qry4bf38.js.map → chunk-px7yzba8.js.map} +5 -5
  126. package/dist/{chunk-pqnva7v8.js → chunk-q743rhy6.js} +2 -2
  127. package/dist/{chunk-pqnva7v8.js.map → chunk-q743rhy6.js.map} +1 -1
  128. package/dist/{chunk-me14hs9k.js → chunk-q9xsgn2s.js} +2 -2
  129. package/dist/{chunk-me14hs9k.js.map → chunk-q9xsgn2s.js.map} +1 -1
  130. package/dist/{chunk-e7hb47yy.js → chunk-r1sjx2q9.js} +2 -2
  131. package/dist/{chunk-e7hb47yy.js.map → chunk-r1sjx2q9.js.map} +1 -1
  132. package/dist/{chunk-r36kq8x1.js → chunk-ry9jard2.js} +3 -3
  133. package/dist/{chunk-r36kq8x1.js.map → chunk-ry9jard2.js.map} +1 -1
  134. package/dist/{chunk-47cjayhh.js → chunk-rz6npg3r.js} +3 -3
  135. package/dist/{chunk-47cjayhh.js.map → chunk-rz6npg3r.js.map} +1 -1
  136. package/dist/{chunk-cv496s8h.js → chunk-s9etcqcq.js} +2 -2
  137. package/dist/{chunk-cv496s8h.js.map → chunk-s9etcqcq.js.map} +1 -1
  138. package/dist/{chunk-9aj6eavs.js → chunk-skyt9hyg.js} +2 -2
  139. package/dist/{chunk-9aj6eavs.js.map → chunk-skyt9hyg.js.map} +1 -1
  140. package/dist/{chunk-tv13vbcm.js → chunk-syqvk994.js} +2 -2
  141. package/dist/{chunk-tv13vbcm.js.map → chunk-syqvk994.js.map} +1 -1
  142. package/dist/{chunk-y3pnwpvp.js → chunk-t797crcj.js} +3 -3
  143. package/dist/{chunk-y3pnwpvp.js.map → chunk-t797crcj.js.map} +1 -1
  144. package/dist/{chunk-r7j4c5t2.js → chunk-tr8s1z7k.js} +3 -3
  145. package/dist/{chunk-r7j4c5t2.js.map → chunk-tr8s1z7k.js.map} +1 -1
  146. package/dist/{chunk-ks99tx7f.js → chunk-tvvqhwa3.js} +2 -2
  147. package/dist/{chunk-ks99tx7f.js.map → chunk-tvvqhwa3.js.map} +1 -1
  148. package/dist/{chunk-czzyrw7d.js → chunk-vfaen5tf.js} +2 -2
  149. package/dist/{chunk-czzyrw7d.js.map → chunk-vfaen5tf.js.map} +1 -1
  150. package/dist/{chunk-bm2zz2j1.js → chunk-vgmmftm2.js} +2 -2
  151. package/dist/{chunk-bm2zz2j1.js.map → chunk-vgmmftm2.js.map} +1 -1
  152. package/dist/{chunk-9522w4e4.js → chunk-vm3ayd1b.js} +3 -3
  153. package/dist/{chunk-9522w4e4.js.map → chunk-vm3ayd1b.js.map} +1 -1
  154. package/dist/{chunk-mpv431ga.js → chunk-wa7rtfkk.js} +1 -1
  155. package/dist/{chunk-pw6ssy3a.js → chunk-xh3qqmbk.js} +2 -2
  156. package/dist/{chunk-xzzdywf6.js.map → chunk-xh3qqmbk.js.map} +1 -1
  157. package/dist/{chunk-zrrpab1x.js → chunk-xnfkz18n.js} +3 -3
  158. package/dist/{chunk-zrrpab1x.js.map → chunk-xnfkz18n.js.map} +1 -1
  159. package/dist/{chunk-s208599z.js → chunk-xwvm54dx.js} +2 -2
  160. package/dist/{chunk-s208599z.js.map → chunk-xwvm54dx.js.map} +1 -1
  161. package/dist/{chunk-zqptpk90.js → chunk-y16jhwrv.js} +2 -2
  162. package/dist/{chunk-zqptpk90.js.map → chunk-y16jhwrv.js.map} +1 -1
  163. package/dist/chunk-y82d4w0m.js +5 -0
  164. package/dist/{chunk-vq2a7qd8.js.map → chunk-y82d4w0m.js.map} +1 -1
  165. package/dist/{chunk-znrk326r.js → chunk-yrd14jjt.js} +1 -1
  166. package/dist/{chunk-hm1xy515.js → chunk-zscd52sv.js} +3 -3
  167. package/dist/{chunk-hm1xy515.js.map → chunk-zscd52sv.js.map} +1 -1
  168. package/dist/{chunk-z8mq4g46.js → chunk-ztvewkks.js} +3 -3
  169. package/dist/{chunk-z8mq4g46.js.map → chunk-ztvewkks.js.map} +1 -1
  170. package/dist/chunks/{RealtimeClient-CHNbqDr7.js → RealtimeClient-v3orUDdN.js} +2 -2
  171. package/dist/chunks/{RealtimeClient-CHNbqDr7.js.map → RealtimeClient-v3orUDdN.js.map} +1 -1
  172. package/dist/chunks/{ThemeProvider-Bkc6A9Nn.js → ThemeProvider-CDm5TXZC.js} +12 -5
  173. package/dist/chunks/ThemeProvider-CDm5TXZC.js.map +1 -0
  174. package/dist/chunks/{fetchFileRequest-BGEW4Wd7.js → fetchFileRequest-B6tFA-uV.js} +2 -2
  175. package/dist/chunks/{fetchFileRequest-BGEW4Wd7.js.map → fetchFileRequest-B6tFA-uV.js.map} +1 -1
  176. package/dist/chunks/{live-l4vtaqXd.js → live-JhGCkWuM.js} +3 -3
  177. package/dist/chunks/{live-l4vtaqXd.js.map → live-JhGCkWuM.js.map} +1 -1
  178. package/dist/chunks/{mutationExtras-C7UPW9XP.js → mutationExtras-BnDYKenf.js} +2 -2
  179. package/dist/chunks/{mutationExtras-C7UPW9XP.js.map → mutationExtras-BnDYKenf.js.map} +1 -1
  180. package/dist/chunks/{subscriptionStream-CULcRbx0.js → subscriptionStream-BdxPsTI_.js} +16 -4
  181. package/dist/chunks/subscriptionStream-BdxPsTI_.js.map +1 -0
  182. package/dist/client/index.js +7 -6
  183. package/dist/client/index.js.map +1 -1
  184. package/dist/client/retryPolicy.d.ts +6 -0
  185. package/dist/client/retryPolicy.d.ts.map +1 -1
  186. package/dist/client/subscriptionStream.d.ts +10 -1
  187. package/dist/client/subscriptionStream.d.ts.map +1 -1
  188. package/dist/client/useSubscription.d.ts +3 -2
  189. package/dist/client/useSubscription.d.ts.map +1 -1
  190. package/dist/config/index.js +1 -1
  191. package/dist/console/run.js +2 -2
  192. package/dist/console/run.js.map +1 -1
  193. package/dist/container/index.js +2 -2
  194. package/dist/container/index.js.map +1 -1
  195. package/dist/database/index.js +2 -2
  196. package/dist/database/index.js.map +1 -1
  197. package/dist/email/index.js +2 -2
  198. package/dist/email/index.js.map +1 -1
  199. package/dist/facades/index.js +2 -2
  200. package/dist/facades/index.js.map +1 -1
  201. package/dist/foundation/index.js +2 -2
  202. package/dist/foundation/index.js.map +1 -1
  203. package/dist/http/index.js +2 -2
  204. package/dist/http/index.js.map +1 -1
  205. package/dist/i18n/dictionaryRuntime.js +2 -2
  206. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  207. package/dist/i18n/index.js +2 -2
  208. package/dist/i18n/index.js.map +1 -1
  209. package/dist/kernel/index.js +2 -2
  210. package/dist/kernel/index.js.map +1 -1
  211. package/dist/orm/index.js +2 -2
  212. package/dist/orm/index.js.map +1 -1
  213. package/dist/probe/index.js +2 -2
  214. package/dist/probe/index.js.map +1 -1
  215. package/dist/server/index.js +2 -2
  216. package/dist/server/index.js.map +1 -1
  217. package/dist/services/index.d.ts +2 -1
  218. package/dist/services/index.d.ts.map +1 -1
  219. package/dist/services/index.js +2 -2
  220. package/dist/services/index.js.map +1 -1
  221. package/dist/services/queue/work.js +2 -2
  222. package/dist/services/queue/work.js.map +1 -1
  223. package/dist/stats/route-table.js +1 -1
  224. package/dist/support/index.js +2 -2
  225. package/dist/support/index.js.map +1 -1
  226. package/dist/testing/index.js +2 -2
  227. package/dist/vitest/index.js +1 -1
  228. package/package.json +1 -1
  229. package/dist/chunk-vq2a7qd8.js +0 -5
  230. package/dist/chunk-zd67c5rp.js +0 -41
  231. package/dist/chunks/ThemeProvider-Bkc6A9Nn.js.map +0 -1
  232. package/dist/chunks/subscriptionStream-CULcRbx0.js.map +0 -1
  233. /package/dist/{chunk-jpq74abh.js.map → chunk-7fzwgvyg.js.map} +0 -0
  234. /package/dist/{chunk-vv1na1vj.js.map → chunk-7g90w0t6.js.map} +0 -0
  235. /package/dist/{chunk-5db4v8gv.js.map → chunk-gprc53rf.js.map} +0 -0
  236. /package/dist/{chunk-sx6jmyaf.js.map → chunk-k6x35rn5.js.map} +0 -0
  237. /package/dist/{chunk-mpv431ga.js.map → chunk-wa7rtfkk.js.map} +0 -0
  238. /package/dist/{chunk-znrk326r.js.map → chunk-yrd14jjt.js.map} +0 -0
@@ -5,6 +5,6 @@
5
5
  "import { existsSync, readFileSync, statSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { projectRoot } from \"../support/discover\";\n\n/**\n * Browser probes (#1020): code an app runs in a headless browser's page with\n * `page.evaluate`, written as a normal module.\n *\n * `page.evaluate` sends one function's source to the browser, so it may use\n * nothing from outside itself. A probe is a module under `app/` named\n * `*.probe.ts` (or `.js`) whose default export is the function to run; it can\n * import helpers like any module. gemi bundles it into one self-contained,\n * minified IIFE for the browser and hands it to `page.evaluate` as an\n * expression that calls the default export with the given arguments.\n *\n * `gemi build` bundles every probe into `dist/server/probes.json` (name →\n * source), which `gemi start` reads. Anywhere else (dev, tests) a probe is\n * bundled on first use and kept until it, or a file it imports, changes.\n *\n * A probe is named by its path under `app/` without the suffix:\n * `app/utils/layout.probe.ts` is `\"utils/layout\"`.\n */\n\n/** The suffix that marks a file under `app` as a probe. */\nexport const PROBE_SUFFIX = \".probe\";\nconst EXTENSIONS = [\".ts\", \".js\"];\n/** Under `dist/server`. */\nexport const PROBES_MANIFEST = \"probes.json\";\n\n/** The free name the bundled IIFE hands the default export to. */\nconst DEFINE = \"__gemiProbe__\";\n/** The bundle's entry: imports the probe and hands its default export over. */\nconst ENTRY = \"/__gemi_probe_entry__.ts\";\n\n/** A name as `probe` takes it: a path under `app`, without the suffix. */\nconst NAME = /^[A-Za-z0-9_-]+(\\/[A-Za-z0-9_-]+)*$/;\n\nfunction assertName(name: string) {\n if (typeof name !== \"string\" || !NAME.test(name)) {\n throw new Error(\n `A probe is named by its path under app/ without the \".probe.ts\" suffix, e.g. \"utils/layout\". Got ${JSON.stringify(name)}.`,\n );\n }\n}\n\n/** The source file of the probe `name` under `appDir`, or `null` when there is none. */\nexport function probeFile(appDir: string, name: string): string | null {\n for (const extension of EXTENSIONS) {\n const file = join(appDir, `${name}${PROBE_SUFFIX}${extension}`);\n if (existsSync(file)) return file;\n }\n return null;\n}\n\ntype Bundled = {\n /** The IIFE: hands the probe's default export to `__gemiProbe__`. */\n source: string;\n /** Every file the bundle read, absolute, for the dev cache. */\n inputs: string[];\n};\n\n/**\n * Bundles one probe for the browser: imports inlined, minified, wrapped in an\n * IIFE that hands the default export to `__gemiProbe__`. Throws when it does\n * not bundle.\n */\nasync function bundle(file: string): Promise<Bundled> {\n const result = await Bun.build({\n entrypoints: [ENTRY],\n files: {\n [ENTRY]: `import probe from ${JSON.stringify(file)};\\n${DEFINE}(probe);\\n`,\n },\n target: \"browser\",\n format: \"iife\",\n minify: true,\n metafile: true,\n throw: false,\n });\n if (!result.success || !result.outputs[0]) {\n const logs = result.logs.map((log) => String(log)).join(\"\\n\");\n throw new Error(`The probe ${file} does not bundle.\\n${logs}`);\n }\n const inputs = Object.keys(result.metafile?.inputs ?? {})\n .map((input) => resolve(input))\n .filter((input) => input !== ENTRY && existsSync(input));\n return { source: (await result.outputs[0].text()).trim(), inputs };\n}\n\n/** One probe's bundled source (the IIFE). Throws when it does not bundle. */\nexport async function bundleProbe(file: string): Promise<string> {\n return (await bundle(file)).source;\n}\n\n/** Every probe under `appDir`, bundled: what `gemi build` writes. */\nexport async function bundleProbes(appDir: string): Promise<Record<string, string>> {\n const probes: Record<string, string> = {};\n if (!existsSync(appDir)) return probes;\n const glob = new Bun.Glob(`**/*${PROBE_SUFFIX}.{ts,js}`);\n const files = [...glob.scanSync({ cwd: appDir })].sort();\n for (const file of files) {\n if (file.split(\"/\").includes(\"node_modules\")) continue;\n const name = file.replace(/\\.probe\\.[tj]s$/, \"\");\n if (!NAME.test(name) || name in probes) continue;\n probes[name] = await bundleProbe(join(appDir, file));\n }\n return probes;\n}\n\n// `gemi start`'s manifest, read once. `undefined`: not read yet; `null`: none.\nlet built: Record<string, string> | null | undefined;\n// Bundled from source: in production once, elsewhere until an input changes.\ntype Cached = { pending: Promise<Bundled>; stamps: Map<string, number> | null };\nconst cache = new Map<string, Cached>();\n\nfunction builtProbes(): Record<string, string> | null {\n if (built === undefined) {\n const file = join(projectRoot(), \"dist\", \"server\", PROBES_MANIFEST);\n built = existsSync(file) ? JSON.parse(readFileSync(file, \"utf8\")) : null;\n }\n return built ?? null;\n}\n\nfunction mtimeOf(file: string): number {\n try {\n return statSync(file).mtimeMs;\n } catch {\n return -1;\n }\n}\n\nfunction stale(stamps: Map<string, number>): boolean {\n for (const [file, mtime] of stamps) {\n if (mtimeOf(file) !== mtime) return true;\n }\n return false;\n}\n\n/** Forgets the manifest and every bundled probe (tests). @internal */\nexport function resetProbes() {\n built = undefined;\n cache.clear();\n}\n\n/**\n * The bundled source (an IIFE) of the probe `name`.\n *\n * In production, from `dist/server/probes.json`; a name the manifest lacks\n * (or no manifest) is bundled from source once. Elsewhere it is bundled on\n * first use and again only once the probe or a file it imports has changed.\n * Throws when there is no such file or it does not bundle.\n */\nexport async function probeSource(name: string): Promise<string> {\n assertName(name);\n const production = process.env.NODE_ENV === \"production\";\n if (production) {\n const fromBuild = builtProbes()?.[name];\n if (fromBuild !== undefined) return fromBuild;\n }\n const cached = cache.get(name);\n if (cached && (cached.stamps === null || !stale(cached.stamps))) {\n return (await cached.pending).source;\n }\n const file = probeFile(join(projectRoot(), \"app\"), name);\n if (!file) {\n throw new Error(\n `The probe \"${name}\" was not found. It is a file at app/${name}${PROBE_SUFFIX}.ts (or .js).`,\n );\n }\n const startedAt = Date.now();\n const entry: Cached = { pending: bundle(file), stamps: null };\n cache.set(name, entry);\n try {\n const bundled = await entry.pending;\n if (!production) {\n // A file changed while it bundled may not be in the bundle: such a\n // stamp never matches, so the next use bundles again.\n entry.stamps = new Map(\n bundled.inputs.map((input) => {\n const mtime = mtimeOf(input);\n return [input, mtime >= startedAt ? -2 : mtime];\n }),\n );\n }\n return bundled.source;\n } catch (error) {\n if (cache.get(name) === entry) cache.delete(name);\n throw error;\n }\n}\n\n/**\n * A JavaScript expression that runs the bundled probe `source` with `args`\n * and evaluates to what it returns (a promise, for an async probe).\n */\nexport function probeExpression(source: string, args: readonly unknown[]): string {\n const json = JSON.stringify(args);\n if (json === undefined) throw new Error(\"A probe's arguments must be JSON values.\");\n // The local names start with `__gemi` so they shadow none of the page's globals the bundle may use.\n return `(() => { let __gemiProbeFn__; const ${DEFINE} = (fn) => { __gemiProbeFn__ = fn; }; ${source}; return __gemiProbeFn__(...${json}); })()`;\n}\n\n/** Anything that evaluates an expression in a page: a puppeteer or playwright `Page`. */\nexport interface ProbePage {\n evaluate(expression: string): Promise<unknown>;\n}\n\n/** The probe function, from its module's type or its own. */\ntype ProbeFunctionOf<M> = M extends { default: infer F } ? F : M;\ntype AnyFunction = (...args: any[]) => unknown;\ntype ArgsOf<F> = F extends AnyFunction ? Parameters<F> : never;\ntype ResultOf<F> = F extends AnyFunction ? Awaited<ReturnType<F>> : never;\n\nexport class Probe<M = AnyFunction> {\n constructor(readonly name: string) {\n assertName(name);\n }\n\n /** The bundled IIFE. */\n source(): Promise<string> {\n return probeSource(this.name);\n }\n\n /**\n * An expression that runs the probe with `args`, for a driver that takes a\n * script string. The arguments must be JSON values.\n */\n async expression(...args: ArgsOf<ProbeFunctionOf<M>>): Promise<string> {\n return probeExpression(await this.source(), args);\n }\n\n /** Runs the probe in `page` with `args` and returns its (awaited) result. */\n async run(page: ProbePage, ...args: ArgsOf<ProbeFunctionOf<M>>): Promise<ResultOf<ProbeFunctionOf<M>>> {\n return (await page.evaluate(await this.expression(...args))) as ResultOf<ProbeFunctionOf<M>>;\n }\n}\n\n/**\n * The probe at `app/<name>.probe.ts`, typed by its module:\n *\n * ```ts\n * const readLayout = probe<typeof import(\"@/app/utils/layout.probe\")>(\"utils/layout\");\n * const reading = await readLayout.run(page, sections);\n * ```\n */\nexport function probe<M = AnyFunction>(name: string): Probe<M> {\n return new Probe<M>(name);\n}\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "9F7F0B17A092510C64756E2164756E21",
8
+ "debugId": "B37BB4F12B8EFB0664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Da as f}from"../chunk-s0z61m9j.js";import{Ea as S}from"../chunk-wtjfjh0x.js";import{ql as Q,sl as Z,tl as P,ul as y,vl as U,wl as A}from"../chunk-zm4fdsq5.js";import{Al as H}from"../chunk-4hj0q8fs.js";import"../chunk-e7hb47yy.js";import{Il as F}from"../chunk-pw6ssy3a.js";var x="/__gemi__/health",$=Symbol.for("gemi.server.health");function V(){let z=globalThis;return z[$]??={lagMs:0,consecutiveBreaches:0,degraded:!1,timer:void 0},z[$]}function W(){let z=V(),B=Q();return{healthy:!B&&!z.degraded,shuttingDown:B,lagMs:z.lagMs,consecutiveBreaches:z.consecutiveBreaches}}function E(z,B){let I=V();I.lagMs=z,I.consecutiveBreaches=z>B.maxLagMs?I.consecutiveBreaches+1:0;let J=I.consecutiveBreaches>=B.breaches;if(J&&!I.degraded)console.warn(`[gemi] Health: degraded (event-loop lag ${Math.round(z)}ms, ${I.consecutiveBreaches} samples in a row over ${B.maxLagMs}ms).`);else if(!J&&I.degraded)console.log(`[gemi] Health: recovered (event-loop lag ${Math.round(z)}ms).`);I.degraded=J}function G(z){let B=V();if(B.timer)return;let I=performance.now()+z.intervalMs;B.timer=setInterval(()=>{let J=performance.now();E(Math.max(0,J-I),z),I=J+z.intervalMs},z.intervalMs),B.timer.unref?.()}function _(z=process.env){return{paths:D(z.GEMI_HEALTH_PATH),intervalMs:O("GEMI_HEALTH_INTERVAL_MS",z.GEMI_HEALTH_INTERVAL_MS,500),maxLagMs:O("GEMI_HEALTH_MAX_LAG_MS",z.GEMI_HEALTH_MAX_LAG_MS,1000),breaches:Math.ceil(O("GEMI_HEALTH_BREACHES",z.GEMI_HEALTH_BREACHES,3))}}function D(z){if(z===void 0||z.trim()==="")return[x];if(z.trim().toLowerCase()==="off")return[];let B=z.split(",").map((J)=>J.trim()).filter(Boolean);if(B.filter((J)=>!J.startsWith("/")).length>0)throw Error(`GEMI_HEALTH_PATH: expected comma-separated paths starting with "/", or "off"; got ${JSON.stringify(z)}.`);return B}function O(z,B,I){if(B===void 0||B.trim()==="")return I;let J=Number(B);if(Number.isFinite(J)&&J>0)return J;return console.warn(`[gemi] Ignoring ${z}="${B}": expected a positive number.`),I}function j(z,B){if(B.length===0)return z;let I=new Set(B);return async(J,K)=>{if(!B.some((b)=>J.url.includes(b))||!I.has(new URL(J.url).pathname))return z(J,K);return y(R(J.method))}}function R(z){let B={"Cache-Control":"no-store","Content-Type":"text/plain; charset=utf-8"};if(z!=="GET"&&z!=="HEAD")return new Response("Method Not Allowed",{status:405,headers:{...B,Allow:"GET, HEAD"}});let{healthy:I,shuttingDown:J}=W();return new Response(z==="HEAD"?null:I?"ok":J?"shutting down":"degraded",{status:I?200:503,headers:B})}var L=Symbol.for("gemi.server.devGeneration"),X={graceMs:1e4,providerTimeoutMs:5000};class Y{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,I)=>{this.inFlight++;try{return await z(B,I)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(I){C(I)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let I=()=>{clearTimeout(J),this.waiters.delete(I),B()},J=setTimeout(I,z);this.waiters.add(I)})}wake(){for(let z of this.waiters)z()}}function N(z,B=X){let I=globalThis,J=I[L];if(I[L]=z,!J||J===z||typeof J.retire!=="function")return Promise.resolve();let K=J.retire.bind(J);return Promise.resolve().then(()=>K(B)).catch(C)}function C(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class k{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new S({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=U(z.instrumentation??((B,I)=>I(B)))}async start(){process.env.ROOT_DIR=H();let z=Bun.env.NODE_ENV==="production",B=_();if(z)G(B);let I=j(this.instrumentation,B.paths);if(z){if(this.handleSignals)A(()=>this.stop());this.settings=Z()}try{await this.app.waitForBoot()}catch(J){if(!z)this.app.shutdown({timeoutMs:X.providerTimeoutMs});throw J}if(z){let{httpProd:J}=await import("../chunk-pqnva7v8.js");this.server=await J(this.app,I)}else{f();let{httpDev:J}=await import("../chunk-y2rzqpgd.js"),K=new Y(this.app);this.server=await J(this.app,K.track(I)),N(K)}return this.server}stop(z={}){let B=this.app.sockets();return this.stopping??=P({server:this.server,closeSockets:B?()=>B.shutdown():void 0,shutdownProviders:(I)=>this.app.shutdown(I),settings:{...this.settings??Z(),...z}}),this.stopping}}export{W as liveness,Q as isShuttingDown,k as Server};
2
+ import{Da as f}from"../chunk-s0z61m9j.js";import{Ea as S}from"../chunk-3jnnma7m.js";import{sl as Q,ul as Z,vl as P,wl as y,xl as U,yl as A}from"../chunk-8z1z4zbq.js";import{Cl as H}from"../chunk-62v0y132.js";import"../chunk-r1sjx2q9.js";import{Kl as F}from"../chunk-xh3qqmbk.js";var x="/__gemi__/health",$=Symbol.for("gemi.server.health");function V(){let z=globalThis;return z[$]??={lagMs:0,consecutiveBreaches:0,degraded:!1,timer:void 0},z[$]}function W(){let z=V(),B=Q();return{healthy:!B&&!z.degraded,shuttingDown:B,lagMs:z.lagMs,consecutiveBreaches:z.consecutiveBreaches}}function E(z,B){let I=V();I.lagMs=z,I.consecutiveBreaches=z>B.maxLagMs?I.consecutiveBreaches+1:0;let J=I.consecutiveBreaches>=B.breaches;if(J&&!I.degraded)console.warn(`[gemi] Health: degraded (event-loop lag ${Math.round(z)}ms, ${I.consecutiveBreaches} samples in a row over ${B.maxLagMs}ms).`);else if(!J&&I.degraded)console.log(`[gemi] Health: recovered (event-loop lag ${Math.round(z)}ms).`);I.degraded=J}function G(z){let B=V();if(B.timer)return;let I=performance.now()+z.intervalMs;B.timer=setInterval(()=>{let J=performance.now();E(Math.max(0,J-I),z),I=J+z.intervalMs},z.intervalMs),B.timer.unref?.()}function _(z=process.env){return{paths:D(z.GEMI_HEALTH_PATH),intervalMs:O("GEMI_HEALTH_INTERVAL_MS",z.GEMI_HEALTH_INTERVAL_MS,500),maxLagMs:O("GEMI_HEALTH_MAX_LAG_MS",z.GEMI_HEALTH_MAX_LAG_MS,1000),breaches:Math.ceil(O("GEMI_HEALTH_BREACHES",z.GEMI_HEALTH_BREACHES,3))}}function D(z){if(z===void 0||z.trim()==="")return[x];if(z.trim().toLowerCase()==="off")return[];let B=z.split(",").map((J)=>J.trim()).filter(Boolean);if(B.filter((J)=>!J.startsWith("/")).length>0)throw Error(`GEMI_HEALTH_PATH: expected comma-separated paths starting with "/", or "off"; got ${JSON.stringify(z)}.`);return B}function O(z,B,I){if(B===void 0||B.trim()==="")return I;let J=Number(B);if(Number.isFinite(J)&&J>0)return J;return console.warn(`[gemi] Ignoring ${z}="${B}": expected a positive number.`),I}function j(z,B){if(B.length===0)return z;let I=new Set(B);return async(J,K)=>{if(!B.some((b)=>J.url.includes(b))||!I.has(new URL(J.url).pathname))return z(J,K);return y(R(J.method))}}function R(z){let B={"Cache-Control":"no-store","Content-Type":"text/plain; charset=utf-8"};if(z!=="GET"&&z!=="HEAD")return new Response("Method Not Allowed",{status:405,headers:{...B,Allow:"GET, HEAD"}});let{healthy:I,shuttingDown:J}=W();return new Response(z==="HEAD"?null:I?"ok":J?"shutting down":"degraded",{status:I?200:503,headers:B})}var L=Symbol.for("gemi.server.devGeneration"),X={graceMs:1e4,providerTimeoutMs:5000};class Y{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,I)=>{this.inFlight++;try{return await z(B,I)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(I){C(I)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let I=()=>{clearTimeout(J),this.waiters.delete(I),B()},J=setTimeout(I,z);this.waiters.add(I)})}wake(){for(let z of this.waiters)z()}}function N(z,B=X){let I=globalThis,J=I[L];if(I[L]=z,!J||J===z||typeof J.retire!=="function")return Promise.resolve();let K=J.retire.bind(J);return Promise.resolve().then(()=>K(B)).catch(C)}function C(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class k{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new S({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=U(z.instrumentation??((B,I)=>I(B)))}async start(){process.env.ROOT_DIR=H();let z=Bun.env.NODE_ENV==="production",B=_();if(z)G(B);let I=j(this.instrumentation,B.paths);if(z){if(this.handleSignals)A(()=>this.stop());this.settings=Z()}try{await this.app.waitForBoot()}catch(J){if(!z)this.app.shutdown({timeoutMs:X.providerTimeoutMs});throw J}if(z){let{httpProd:J}=await import("../chunk-q743rhy6.js");this.server=await J(this.app,I)}else{f();let{httpDev:J}=await import("../chunk-723a6j04.js"),K=new Y(this.app);this.server=await J(this.app,K.track(I)),N(K)}return this.server}stop(z={}){let B=this.app.sockets();return this.stopping??=P({server:this.server,closeSockets:B?()=>B.shutdown():void 0,shutdownProviders:(I)=>this.app.shutdown(I),settings:{...this.settings??Z(),...z}}),this.stopping}}export{W as liveness,Q as isShuttingDown,k as Server};
3
3
 
4
- //# debugId=AE9F4FFC8C47982C64756E2164756E21
4
+ //# debugId=C97EF7FFD4053E3164756E2164756E21
@@ -7,6 +7,6 @@
7
7
  "import { App } from \"../app\";\nimport { Kernel } from \"../kernel\";\nimport { projectRoot } from \"../support/discover\";\nimport { healthSettings, serveHealth, startLivenessSampler } from \"./health\";\nimport { DevGeneration, devRetireDefaults, replaceDevGeneration } from \"./devReload\";\nimport {\n drain,\n installShutdownSignals,\n serveForShutdown,\n shutdownSettings,\n type ShutdownSettings,\n} from \"./shutdown\";\nimport { Instrumentation } from \"./types\";\nimport { watchEnv } from \"./watchEnv\";\n\nexport class Server {\n private app: App;\n private instrumentation: Instrumentation;\n private handleSignals: boolean;\n private server: Bun.Server<unknown> | undefined;\n private stopping: Promise<number> | undefined;\n private settings: ShutdownSettings | undefined;\n\n constructor(params: {\n kernel: new () => Kernel;\n instrumentation?: Instrumentation;\n /**\n * Drain on `SIGTERM`/`SIGINT` and exit — production only. `false` leaves\n * the signals to the app, which can call `stop()` itself.\n */\n handleSignals?: boolean;\n }) {\n this.app = new App({ kernel: params.kernel });\n this.handleSignals = params.handleSignals ?? true;\n this.instrumentation = serveForShutdown(\n params.instrumentation ??\n ((req: Request, next: (req: Request) => Promise<Response>) => next(req)),\n );\n }\n\n /**\n * Boots the application and starts listening. Resolves with the `Bun.Server`\n * once it is accepting requests.\n */\n async start(): Promise<Bun.Server<unknown>> {\n // Before the boot, not after: `httpDev`/`httpProd` set this too, but they\n // are imported below — after every provider's `boot()` has run — so a\n // service that resolves a path during boot used to read `undefined`\n // (`services/logging`, #423). Same rule `httpProd` computes it with, so\n // the assignment it makes a moment later is the same value.\n //\n // It doubles as the marker for \"this process is serving\": nothing else\n // sets `ROOT_DIR`, so a console command or a migration — which boot the\n // same providers through `runConsole` — can tell that it is not one, and\n // skip work that only a server should do at boot.\n process.env.ROOT_DIR = projectRoot();\n\n // Read once, ahead of the boot, so the signal handling below and the mode\n // that starts after the boot cannot disagree: whatever a provider's\n // `boot()` does to the environment, this process is the server it was\n // started as.\n const production = process.env.NODE_ENV === \"production\";\n\n // Read before the boot, so a bad `GEMI_HEALTH_PATH` fails the deploy at\n // once. The route is served in both modes; the lag sampler runs only in\n // production, where a `bun --hot` reload or a Vite compile cannot stall\n // the loop and read as an outage.\n const health = healthSettings();\n if (production) startLivenessSampler(health);\n // The outermost layer: a probe is answered ahead of the app's\n // instrumentation and the shutdown refusal (#48).\n const instrumentation = serveHealth(this.instrumentation, health.paths);\n\n if (production) {\n // Before the boot, not just before listening: the whole start-up is a\n // window in which a signal can arrive, and the slow part of it is the\n // boot — a connection pool, the config, the dictionaries. A rolling\n // update that `SIGTERM`s a pod two seconds in finds no listener\n // installed, and the default action for both signals is to kill the\n // process on the spot: no provider's `shutdown()`, no pool closed,\n // nothing flushed. Installing here makes that a drain like any other.\n // `stop()` handles a server that does not exist yet (nothing to close,\n // requests cannot be in flight) and `Application.shutdown` calls the\n // hooks of providers that registered but never booted, swallowing\n // whatever they throw — half a boot is exactly when a hook is most\n // likely to trip over something it expected `boot()` to have made.\n if (this.handleSignals) installShutdownSignals(() => this.stop());\n // Read now, so a bad value is warned about while the operator is\n // watching the deploy, not first at the shutdown it spoils — and so a\n // signal during the boot drains on the configured budget rather than on\n // whatever `stop()` reads at the time.\n this.settings = shutdownSettings();\n }\n\n // Phase two of the boot. `new App({ kernel })` already ran every provider's\n // synchronous `register()`; this awaits their `boot()` before the first\n // request is served.\n try {\n await this.app.waitForBoot();\n } catch (error) {\n // A `bun --hot` reload whose boot threw: the previous application keeps\n // serving, and this one never will, so whatever its providers opened\n // before the throw (the feature flags' warm-up, when they are on, has\n // opened the database pool by then) is closed now rather than left open\n // for good (#652). Production exits on a failed boot, which closes\n // everything anyway.\n if (!production) void this.app.shutdown({ timeoutMs: devRetireDefaults.providerTimeoutMs });\n throw error;\n }\n\n // Dynamic import so each mode only pulls in its own code: `httpDev` drags in\n // Vite (dev-only) and `httpProd` reads the built `dist/` manifests — neither\n // should load in the other environment.\n if (production) {\n const { httpProd } = await import(\"./httpProd.js\");\n this.server = await httpProd(this.app, instrumentation);\n } else {\n // Dev only: reload `.env` into process.env on change so config edits take\n // effect without restarting the dev server (Bun reads `.env` only at\n // startup, even under `--hot`). No signal handling here: `bun --hot`\n // re-runs this on every reload, and a Ctrl+C in development should stop\n // the server now, not after a drain.\n watchEnv();\n const { httpDev } = await import(\"./httpDev.js\");\n const generation = new DevGeneration(this.app);\n this.server = await httpDev(this.app, generation.track(instrumentation));\n // Only now, with the new fetch handler live, has the application this\n // reload replaced stopped receiving requests; it is shut down once the\n // ones it is serving finish (#652). Not awaited, so the reload is not\n // held up by it.\n void replaceDevGeneration(generation);\n }\n return this.server;\n }\n\n /**\n * Stops the server gracefully and resolves with the exit code it earned: 0\n * when the in-flight requests drained and every provider shut down in time,\n * 1 otherwise. Does not exit the process — the signal handler does that.\n *\n * The order is `drain` in `./shutdown`: `isShuttingDown()` turns true, the\n * listener closes, in-flight requests finish under the grace period, then\n * every provider's `shutdown()` runs in reverse registration order.\n * Idempotent: a second call returns the first call's promise. Settings\n * default to the `GEMI_SHUTDOWN_*` environment variables.\n */\n stop(settings: Partial<ShutdownSettings> = {}): Promise<number> {\n const sockets = this.app.sockets();\n this.stopping ??= drain({\n server: this.server,\n // Once the listener is closed: `bye` to every broadcast socket, which\n // the graceful stop would otherwise wait on for good.\n closeSockets: sockets ? () => sockets.shutdown() : undefined,\n shutdownProviders: (options) => this.app.shutdown(options),\n settings: { ...(this.settings ?? shutdownSettings()), ...settings },\n });\n return this.stopping;\n }\n}\n"
8
8
  ],
9
9
  "mappings": "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",
10
- "debugId": "AE9F4FFC8C47982C64756E2164756E21",
10
+ "debugId": "C97EF7FFD4053E3164756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -161,7 +161,8 @@ export { defineCommandConfig, commandConfigDefaults, type CommandConfig, } from
161
161
  export { defineRedisConfig, redisConfigDefaults, type RedisConfig, } from "./redis/config";
162
162
  export { defineCacheConfig, cacheConfigDefaults, type CacheConfig, } from "./cache/config";
163
163
  export { defineFeaturesConfig, featuresConfigDefaults, type FeaturesConfig, } from "./features/config";
164
- export { defineAuthConfig, authConfigDefaults, type AuthConfig, type AuthenticatedArgs, type EmailCodeConfig, type EmailCodeSendArgs, type LegacySessionMigrator, type OAuthProviderEntry, type UserCreatedContext, } from "../auth/config";
164
+ export { defineAuthConfig, authConfigDefaults, type AuthConfig, type AuthenticatedArgs, type AuthHookContext, type EmailCodeConfig, type EmailCodeSendArgs, type LegacySessionMigrator, type OAuthProviderEntry, type UserCreatedContext, } from "../auth/config";
165
+ export type { AuthRateLimitKey, AuthRateLimitKeyArgs } from "../auth/oneTimeCode";
165
166
  export { defineTranslationConfig, translationConfigDefaults, type TranslationConfig, } from "../i18n/config";
166
167
  export { defineMiddlewareConfig, middlewareConfigDefaults, type MiddlewareConfig, } from "../http/middleware-config";
167
168
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{db as M9}from"../chunk-8m9kgynj.js";import{Ab as n8,Bb as i8,Cb as s8,Db as o8,Eb as a8,Fb as w4,Gb as x6,Hb as T,Ib as t8,Jb as r8,Kb as e8,Lb as W9,Mb as Z9,Nb as $9,Ob as J9,Pb as Q9,Qb as Y9,Rb as K9,Sb as z9,Tb as G9,Ub as X9,Vb as B9,Wb as j9,Xb as F9,eb as F8,fb as M8,gb as L8,hb as N8,ib as D8,jb as P4,kb as H8,lb as f4,mb as C4,nb as h1,ob as x8,pb as U8,qb as h8,ub as g8,vb as E8,wb as m8,xb as c8,yb as d8,zb as l8}from"../chunk-6x3315an.js";import{_b as q4}from"../chunk-zd67c5rp.js";import{Ad as C8,Bd as V8,Cd as T8,Dd as P8,Ed as b8,Fd as q8,Gd as v8,Hd as w8,Id as I8,Jd as y8,Kd as A8,vd as O8,wd as S8,xd as R8,yd as _8,zd as k8}from"../chunk-rv0r5fde.js";import{Ld as f8}from"../chunk-9aj6eavs.js";import{$d as B8,Md as oZ,Nd as aZ,Od as tZ,Pd as rZ,Qd as eZ,Rd as W8,Sd as Z8,Td as $8,Ud as J8,Vd as Q8,Wd as Y8,Xd as K8,Yd as z8,Zd as G8,_d as X8,ee as j8}from"../chunk-r7j4c5t2.js";import{fe as u8,ge as p8}from"../chunk-7jxf0kys.js";import"../chunk-zqptpk90.js";import{$f as fZ,Ae as N4,Af as YZ,Be as a0,Bf as KZ,Ce as D4,De as H4,Df as zZ,Dg as mZ,Ef as H6,Ff as GZ,He as L5,Hg as cZ,Ie as N5,Je as D5,Jf as XZ,Ke as H5,Kf as BZ,Le as x5,Lf as FZ,Me as U5,Mg as g1,Ne as O5,Oe as S5,Of as MZ,Pe as R5,Pf as LZ,Qe as p0,Qf as NZ,Re as _5,Rf as DZ,Se as k5,Te as f5,Tf as HZ,Ue as C5,Uf as xZ,Ve as V5,Vf as UZ,Wf as OZ,Xf as SZ,Xg as uZ,Yf as RZ,Yg as pZ,Zf as _Z,_f as kZ,ag as CZ,fg as P,gg as a,hg as VZ,if as y5,ig as TZ,jf as A5,jg as PZ,kf as h5,kg as bZ,lf as g5,lg as qZ,mf as E5,nf as m5,ng as vZ,og as wZ,pg as IZ,qe as B6,qg as yZ,re as B5,rg as AZ,se as j5,te as F5,tf as r5,uf as e5,ug as hZ,ve as M5,vf as WZ,vg as gZ,wf as ZZ,wg as EZ,xf as $Z,yf as JZ,ze as j6,zf as QZ}from"../chunk-qry4bf38.js";import"../chunk-9522w4e4.js";import"../chunk-z8mq4g46.js";import{Ei as KW,Fi as zW,Ii as v5,Ji as w5,Li as I5,Ni as w1,Qh as L4,Rh as j4,Sh as N1,di as k4,gi as W1,ii as i,mi as F4,ni as D1,oi as v1,pi as T5,qi as P5,ri as b5,si as q5}from"../chunk-gtfwk0ss.js";import"../chunk-jwvwve00.js";import{Xi as Z1}from"../chunk-8zwm5n7d.js";import{dj as i5,ej as s5,fj as b1,gj as o5,hj as g0,ij as a5,jj as t5}from"../chunk-47cjayhh.js";import{pj as d5,qj as l5,rj as n5}from"../chunk-s0m717j8.js";import"../chunk-mby1wdny.js";import{_j as jZ}from"../chunk-s208599z.js";import{ak as c5,bk as u5,ck as p5}from"../chunk-8v95cjc5.js";import"../chunk-q3g4xs1z.js";import"../chunk-nwg70wza.js";import"../chunk-6t9zjhm6.js";import"../chunk-dp5ha6qy.js";import{Uk as dZ,Vk as lZ,Wk as nZ,Xk as iZ,Zk as sZ}from"../chunk-y3pnwpvp.js";import"../chunk-93s13x3v.js";import{hl as h}from"../chunk-r36kq8x1.js";import"../chunk-9mcweetq.js";import"../chunk-zpshgset.js";import"../chunk-zm4fdsq5.js";import"../chunk-4hj0q8fs.js";import"../chunk-e7hb47yy.js";import{Il as l0}from"../chunk-pw6ssy3a.js";import{Buffer as d0}from"buffer";class n0 extends D1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-w6br58a9.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y=process.env.BUCKET_NAME;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket??Y,J=W.contentType||($ instanceof Blob||$ instanceof File?$.type:void 0);J=J||void 0;let K=$ instanceof d0?$:$ instanceof Blob||$ instanceof File?d0.from(await $.arrayBuffer()):"",{sdk:z,client:X}=await this.connect();return Z?.throwIfAborted(),await X.send(new z.PutObjectCommand({Bucket:Y,Key:Q,Body:K,ContentType:J}),{abortSignal:Z}),Q}async delete(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Z)throw Error("Object name has to be specified");let{sdk:J,client:Q}=await this.connect();try{await Q.send(new J.DeleteObjectCommand({Bucket:$,Key:Z}))}catch(Y){if(Y?.name==="NoSuchKey"||Y?.$metadata?.httpStatusCode===404)return;throw Y}}async*pages(W,{bucket:Z,signal:$}){let{sdk:J,client:Q}=await this.connect(),Y;do{$?.throwIfAborted();let K=await Q.send(new J.ListObjectsV2Command({Bucket:Z??process.env.BUCKET_NAME,Prefix:W,ContinuationToken:Y}),{abortSignal:$});yield(K.Contents??[]).map((z)=>({name:z.Key,size:z.Size??0,lastModified:z.LastModified??new Date(0)})),Y=K.IsTruncated?K.NextContinuationToken:void 0}while(Y)}async*objects(W,Z={}){for await(let $ of this.pages(W,Z))yield*$}async deletePrefix(W,Z={}){F4(W);let $=Z.bucket??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect(),Y=0;for await(let K of this.pages(W,{...Z,bucket:$})){if(K.length===0)continue;Z.signal?.throwIfAborted();let X=(await Q.send(new J.DeleteObjectsCommand({Bucket:$,Delete:{Objects:K.map((G)=>({Key:G.name})),Quiet:!0}}),{abortSignal:Z.signal}))?.Errors??[];if(X.length>0){let G=X[0];throw Error(`S3 could not delete ${X.length} object(s) under "${W}", e.g. "${G.Key}": ${G.Code??"unknown"} ${G.Message??""}`.trim())}Y+=K.length}return Y}async list(W){let{sdk:Z,client:$}=await this.connect();return await $.send(new Z.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=process.env.BUCKET_NAME,J;if(typeof W==="string")J=W;else $=W.bucket??$,J=W.name;if(!J)throw Error("Object name has to be specified");let{sdk:Q,client:Y}=await this.connect();Z?.throwIfAborted();let K=await Y.send(new Q.GetObjectCommand({Bucket:$,Key:J}),{abortSignal:Z}),z=v1(K.Body.transformToWebStream(),Z);return Z?.throwIfAborted(),new Response(z,{headers:{"Content-Type":K.ContentType,"Content-Length":K.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":K.LastModified?.toUTCString()||"",ETag:K.ETag||""}})}async read(W){let Z=typeof W==="string"?{name:W}:W,$=Z.bucket??process.env.BUCKET_NAME,{name:J,range:Q=null}=Z;if(!J)throw Error("Object name has to be specified");let{sdk:Y,client:K}=await this.connect(),z;try{z=await K.send(new Y.GetObjectCommand({Bucket:$,Key:J,Range:Q?j4(Q):void 0}))}catch(j){if(j?.name==="InvalidRange"||j?.$metadata?.httpStatusCode===416)throw new W1(await this.size({name:J,bucket:$}));if(j?.name==="NoSuchKey"||j?.$metadata?.httpStatusCode===404)throw new i(J);throw j}let X=N1(z.ContentRange),G=Boolean(X)&&z.$metadata?.httpStatusCode===206,B=X?.total??z.ContentLength??0;return{body:z.Body.transformToWebStream(),start:X?.start??0,end:X?.end??B-1,total:B,partial:G,type:z.ContentType??"application/octet-stream",etag:z.ETag||void 0,lastModified:z.LastModified,name:J}}async size(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect();try{return(await Q.send(new J.HeadObjectCommand({Bucket:$,Key:Z}))).ContentLength??0}catch(Y){if(Y?.name==="NotFound"||Y?.$metadata?.httpStatusCode===404)throw new i(Z);throw Y}}}import{Buffer as i0}from"buffer";import{Readable as BW}from"stream";function M4(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function jW(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class s0 extends D1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Z=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Z)return W.BlobServiceClient.fromConnectionString(Z);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Z){if(!W)throw Error("Object name has to be specified");let $=Z??this.config.container??process.env.BUCKET_NAME;if(!$)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient($).getBlockBlobClient(W)}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket,J=W.contentType??($ instanceof Blob||$ instanceof File?$.type:void 0);let K=$ instanceof i0?$:i0.from(await $.arrayBuffer()),z=await this.blob(Q,Y);return Z?.throwIfAborted(),await z.uploadData(K,{blobHTTPHeaders:J?{blobContentType:J}:void 0,abortSignal:Z}),Q}async*objects(W,{bucket:Z,signal:$}={}){$?.throwIfAborted();let J=Z??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");let Y=(await this.serviceClient()).getContainerClient(J);for await(let K of Y.listBlobsFlat({prefix:W}))$?.throwIfAborted(),yield{name:K.name,size:K.properties?.contentLength??0,lastModified:K.properties?.lastModified??new Date(0)}}async list(W){let Z=this.config.container??process.env.BUCKET_NAME,J=(await this.serviceClient()).getContainerClient(Z),Q=[];for await(let Y of J.listBlobsFlat({prefix:W}))Q.push(Y.name);return Q}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Z);return new Response($.body,{headers:{"Content-Type":$.type,"Content-Length":String($.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":$.lastModified?.toUTCString()??"",ETag:$.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Z){let{name:$,bucket:J,range:Q=null}=W,Y=await this.blob($,J);Z?.throwIfAborted();let K,z,X=Q?.kind==="suffix"||Q?.kind==="offset"&&Q.end===null&&Q.start===0;if(Q&&X){let U=await this.size({name:$,bucket:J}),n=L4(Q,U);if(!n)throw new W1(U);K=n.start,z=n.length}else if(Q?.kind==="offset")K=Q.start,z=Q.end===null?void 0:Q.end-Q.start+1;let G;try{G=await Y.download(K,z,Z?{abortSignal:Z}:void 0)}catch(U){if(jW(U))throw new W1(await this.size({name:$,bucket:J}));if(M4(U))throw new i($);throw U}let B=N1(G.contentRange),j=Boolean(B),N=B?.total??G.contentLength??0,S=await FW(G);if(S instanceof ReadableStream)S=v1(S,Z);return Z?.throwIfAborted(),{body:S,start:B?.start??0,end:B?.end??N-1,total:N,partial:j,type:G.contentType??"application/octet-stream",etag:G.etag||void 0,lastModified:G.lastModified,name:$}}async size(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{return(await J.getProperties()).contentLength??0}catch(Q){if(M4(Q))throw new i(Z);throw Q}}async delete(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{await J.delete()}catch(Q){if(M4(Q))return;throw Q}}}async function FW(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return BW.toWeb(W.readableStreamBody);return null}function MW(W){return W}class x4 extends Error{code="ERR_RATE_LIMITER_TIMEOUT";constructor(W){super(`RedisRateLimiter: Redis did not answer within ${W}ms.`);this.name="RedisRateLimiterTimeoutError"}}class I1 extends Error{code="ERR_RATE_LIMITER_DISCONNECTED";constructor(){super("RedisRateLimiter: the Redis client is not connected.");this.name="RedisRateLimiterDisconnectedError"}}var o0=1000,LW=60000,NW=`
2
+ import{db as M9}from"../chunk-8m9kgynj.js";import{Ab as n8,Bb as i8,Cb as s8,Db as o8,Eb as a8,Fb as w4,Gb as x6,Hb as T,Ib as t8,Jb as r8,Kb as e8,Lb as W9,Mb as Z9,Nb as $9,Ob as J9,Pb as Q9,Qb as Y9,Rb as K9,Sb as z9,Tb as G9,Ub as X9,Vb as B9,Wb as j9,Xb as F9,eb as F8,fb as M8,gb as L8,hb as N8,ib as D8,jb as P4,kb as H8,lb as f4,mb as C4,nb as h1,ob as x8,pb as U8,qb as h8,ub as g8,vb as E8,wb as m8,xb as c8,yb as d8,zb as l8}from"../chunk-1mz16fsz.js";import{_b as q4}from"../chunk-91vxf94n.js";import{Ad as _8,Bd as k8,Cd as C8,Dd as V8,Ed as T8,Fd as P8,Gd as b8,Hd as q8,Id as v8,Jd as w8,Kd as I8,Ld as y8,Md as A8,xd as O8,yd as S8,zd as R8}from"../chunk-5sjteb6f.js";import{Nd as f8}from"../chunk-skyt9hyg.js";import{$d as G8,Od as oZ,Pd as aZ,Qd as tZ,Rd as rZ,Sd as eZ,Td as W8,Ud as Z8,Vd as $8,Wd as J8,Xd as Q8,Yd as Y8,Zd as K8,_d as z8,ae as X8,be as B8,ge as j8}from"../chunk-tr8s1z7k.js";import{he as u8,ie as p8}from"../chunk-6s7bb50m.js";import"../chunk-y16jhwrv.js";import{$f as _Z,Af as JZ,Be as j6,Bf as QZ,Ce as N4,Cf as YZ,De as a0,Df as KZ,Ee as D4,Fe as H4,Ff as zZ,Fg as mZ,Gf as H6,Hf as GZ,Je as L5,Jg as cZ,Ke as N5,Le as D5,Lf as XZ,Me as H5,Mf as BZ,Ne as x5,Nf as FZ,Oe as U5,Og as g1,Pe as O5,Qe as S5,Qf as MZ,Re as R5,Rf as LZ,Se as p0,Sf as NZ,Te as _5,Tf as DZ,Ue as k5,Ve as f5,Vf as HZ,We as C5,Wf as xZ,Xe as V5,Xf as UZ,Yf as OZ,Zf as SZ,Zg as uZ,_f as RZ,_g as pZ,ag as kZ,bg as fZ,cg as CZ,hg as P,ig as a,jg as VZ,kf as y5,kg as TZ,lf as A5,lg as PZ,mf as h5,mg as bZ,nf as g5,ng as qZ,of as E5,pf as m5,pg as vZ,qg as wZ,rg as IZ,se as B6,sg as yZ,te as B5,tg as AZ,ue as j5,ve as F5,vf as r5,wf as e5,wg as hZ,xe as M5,xf as WZ,xg as gZ,yf as ZZ,yg as EZ,zf as $Z}from"../chunk-px7yzba8.js";import"../chunk-vm3ayd1b.js";import"../chunk-ztvewkks.js";import{Gi as KW,Hi as zW,Ki as v5,Li as w5,Ni as I5,Pi as w1,Sh as L4,Th as j4,Uh as N1,fi as k4,ii as W1,ki as i,oi as F4,pi as D1,qi as v1,ri as T5,si as P5,ti as b5,ui as q5}from"../chunk-5nqwxjf1.js";import"../chunk-p9avgpzd.js";import{Zi as Z1}from"../chunk-n31hppcx.js";import{fj as i5,gj as s5,hj as b1,ij as o5,jj as g0,kj as a5,lj as t5}from"../chunk-rz6npg3r.js";import{rj as d5,sj as l5,tj as n5}from"../chunk-fzwaybhd.js";import"../chunk-4b5rpya9.js";import{ak as jZ}from"../chunk-xwvm54dx.js";import{ck as c5,dk as u5,ek as p5}from"../chunk-dcwsya9e.js";import"../chunk-h5s56wzw.js";import"../chunk-73svx8gr.js";import"../chunk-ambptjfh.js";import"../chunk-cxh9qe1c.js";import{$k as sZ,Wk as dZ,Xk as lZ,Yk as nZ,Zk as iZ}from"../chunk-t797crcj.js";import"../chunk-g09qz75d.js";import{jl as h}from"../chunk-ry9jard2.js";import"../chunk-5f4k3n9x.js";import"../chunk-7stvx6x7.js";import"../chunk-8z1z4zbq.js";import"../chunk-62v0y132.js";import"../chunk-r1sjx2q9.js";import{Kl as l0}from"../chunk-xh3qqmbk.js";import{Buffer as d0}from"buffer";class n0 extends D1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-0jery7ys.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y=process.env.BUCKET_NAME;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket??Y,J=W.contentType||($ instanceof Blob||$ instanceof File?$.type:void 0);J=J||void 0;let K=$ instanceof d0?$:$ instanceof Blob||$ instanceof File?d0.from(await $.arrayBuffer()):"",{sdk:z,client:X}=await this.connect();return Z?.throwIfAborted(),await X.send(new z.PutObjectCommand({Bucket:Y,Key:Q,Body:K,ContentType:J}),{abortSignal:Z}),Q}async delete(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Z)throw Error("Object name has to be specified");let{sdk:J,client:Q}=await this.connect();try{await Q.send(new J.DeleteObjectCommand({Bucket:$,Key:Z}))}catch(Y){if(Y?.name==="NoSuchKey"||Y?.$metadata?.httpStatusCode===404)return;throw Y}}async*pages(W,{bucket:Z,signal:$}){let{sdk:J,client:Q}=await this.connect(),Y;do{$?.throwIfAborted();let K=await Q.send(new J.ListObjectsV2Command({Bucket:Z??process.env.BUCKET_NAME,Prefix:W,ContinuationToken:Y}),{abortSignal:$});yield(K.Contents??[]).map((z)=>({name:z.Key,size:z.Size??0,lastModified:z.LastModified??new Date(0)})),Y=K.IsTruncated?K.NextContinuationToken:void 0}while(Y)}async*objects(W,Z={}){for await(let $ of this.pages(W,Z))yield*$}async deletePrefix(W,Z={}){F4(W);let $=Z.bucket??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect(),Y=0;for await(let K of this.pages(W,{...Z,bucket:$})){if(K.length===0)continue;Z.signal?.throwIfAborted();let X=(await Q.send(new J.DeleteObjectsCommand({Bucket:$,Delete:{Objects:K.map((G)=>({Key:G.name})),Quiet:!0}}),{abortSignal:Z.signal}))?.Errors??[];if(X.length>0){let G=X[0];throw Error(`S3 could not delete ${X.length} object(s) under "${W}", e.g. "${G.Key}": ${G.Code??"unknown"} ${G.Message??""}`.trim())}Y+=K.length}return Y}async list(W){let{sdk:Z,client:$}=await this.connect();return await $.send(new Z.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=process.env.BUCKET_NAME,J;if(typeof W==="string")J=W;else $=W.bucket??$,J=W.name;if(!J)throw Error("Object name has to be specified");let{sdk:Q,client:Y}=await this.connect();Z?.throwIfAborted();let K=await Y.send(new Q.GetObjectCommand({Bucket:$,Key:J}),{abortSignal:Z}),z=v1(K.Body.transformToWebStream(),Z);return Z?.throwIfAborted(),new Response(z,{headers:{"Content-Type":K.ContentType,"Content-Length":K.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":K.LastModified?.toUTCString()||"",ETag:K.ETag||""}})}async read(W){let Z=typeof W==="string"?{name:W}:W,$=Z.bucket??process.env.BUCKET_NAME,{name:J,range:Q=null}=Z;if(!J)throw Error("Object name has to be specified");let{sdk:Y,client:K}=await this.connect(),z;try{z=await K.send(new Y.GetObjectCommand({Bucket:$,Key:J,Range:Q?j4(Q):void 0}))}catch(j){if(j?.name==="InvalidRange"||j?.$metadata?.httpStatusCode===416)throw new W1(await this.size({name:J,bucket:$}));if(j?.name==="NoSuchKey"||j?.$metadata?.httpStatusCode===404)throw new i(J);throw j}let X=N1(z.ContentRange),G=Boolean(X)&&z.$metadata?.httpStatusCode===206,B=X?.total??z.ContentLength??0;return{body:z.Body.transformToWebStream(),start:X?.start??0,end:X?.end??B-1,total:B,partial:G,type:z.ContentType??"application/octet-stream",etag:z.ETag||void 0,lastModified:z.LastModified,name:J}}async size(W){let Z=typeof W==="string"?W:W.name,$=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:J,client:Q}=await this.connect();try{return(await Q.send(new J.HeadObjectCommand({Bucket:$,Key:Z}))).ContentLength??0}catch(Y){if(Y?.name==="NotFound"||Y?.$metadata?.httpStatusCode===404)throw new i(Z);throw Y}}}import{Buffer as i0}from"buffer";import{Readable as BW}from"stream";function M4(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function jW(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class s0 extends D1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Z=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Z)return W.BlobServiceClient.fromConnectionString(Z);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Z){if(!W)throw Error("Object name has to be specified");let $=Z??this.config.container??process.env.BUCKET_NAME;if(!$)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient($).getBlockBlobClient(W)}async put(W,{signal:Z}={}){Z?.throwIfAborted();let $,J,Q,Y;if(W instanceof Blob)$=W,Q=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,J=W.type;else $=W.body,Q=W.name,Y=W.bucket,J=W.contentType??($ instanceof Blob||$ instanceof File?$.type:void 0);let K=$ instanceof i0?$:i0.from(await $.arrayBuffer()),z=await this.blob(Q,Y);return Z?.throwIfAborted(),await z.uploadData(K,{blobHTTPHeaders:J?{blobContentType:J}:void 0,abortSignal:Z}),Q}async*objects(W,{bucket:Z,signal:$}={}){$?.throwIfAborted();let J=Z??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");let Y=(await this.serviceClient()).getContainerClient(J);for await(let K of Y.listBlobsFlat({prefix:W}))$?.throwIfAborted(),yield{name:K.name,size:K.properties?.contentLength??0,lastModified:K.properties?.lastModified??new Date(0)}}async list(W){let Z=this.config.container??process.env.BUCKET_NAME,J=(await this.serviceClient()).getContainerClient(Z),Q=[];for await(let Y of J.listBlobsFlat({prefix:W}))Q.push(Y.name);return Q}async fetch(W,{signal:Z}={}){Z?.throwIfAborted();let $=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Z);return new Response($.body,{headers:{"Content-Type":$.type,"Content-Length":String($.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":$.lastModified?.toUTCString()??"",ETag:$.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Z){let{name:$,bucket:J,range:Q=null}=W,Y=await this.blob($,J);Z?.throwIfAborted();let K,z,X=Q?.kind==="suffix"||Q?.kind==="offset"&&Q.end===null&&Q.start===0;if(Q&&X){let U=await this.size({name:$,bucket:J}),n=L4(Q,U);if(!n)throw new W1(U);K=n.start,z=n.length}else if(Q?.kind==="offset")K=Q.start,z=Q.end===null?void 0:Q.end-Q.start+1;let G;try{G=await Y.download(K,z,Z?{abortSignal:Z}:void 0)}catch(U){if(jW(U))throw new W1(await this.size({name:$,bucket:J}));if(M4(U))throw new i($);throw U}let B=N1(G.contentRange),j=Boolean(B),N=B?.total??G.contentLength??0,S=await FW(G);if(S instanceof ReadableStream)S=v1(S,Z);return Z?.throwIfAborted(),{body:S,start:B?.start??0,end:B?.end??N-1,total:N,partial:j,type:G.contentType??"application/octet-stream",etag:G.etag||void 0,lastModified:G.lastModified,name:$}}async size(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{return(await J.getProperties()).contentLength??0}catch(Q){if(M4(Q))throw new i(Z);throw Q}}async delete(W){let Z=typeof W==="string"?W:W.name,$=typeof W==="string"?void 0:W.bucket,J=await this.blob(Z,$);try{await J.delete()}catch(Q){if(M4(Q))return;throw Q}}}async function FW(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return BW.toWeb(W.readableStreamBody);return null}function MW(W){return W}class x4 extends Error{code="ERR_RATE_LIMITER_TIMEOUT";constructor(W){super(`RedisRateLimiter: Redis did not answer within ${W}ms.`);this.name="RedisRateLimiterTimeoutError"}}class I1 extends Error{code="ERR_RATE_LIMITER_DISCONNECTED";constructor(){super("RedisRateLimiter: the Redis client is not connected.");this.name="RedisRateLimiterDisconnectedError"}}var o0=1000,LW=60000,NW=`
3
3
  local currentKey = KEYS[1]
4
4
  local previousKey = KEYS[2]
5
5
  local limit = tonumber(ARGV[1])
@@ -69,4 +69,4 @@ ${W.resolution}.`;console.warn($),console.warn("To disable this message, import
69
69
  `));return await this.put(Z.data.upload_url,$,{forceBodyMode:"raw",enableAuth:!1,headers:{"Content-Type":"text/plain"},prefix:""}),Z}async complianceJobResult(W){let Z=W;while(Z.status!=="complete"){if(Z.status==="expired"||Z.status==="failed")throw Error("Job failed to be completed.");await new Promise((J)=>setTimeout(J,3500)),Z=(await this.complianceJob(W.id)).data}return(await this.get(W.download_url,void 0,{enableAuth:!1,prefix:""})).trim().split(`
70
70
  `).filter((J)=>J).map((J)=>JSON.parse(J))}async usage(W={}){return this.get("usage/tweets",W)}community(W,Z={}){return this.get("communities/:id",Z,{params:{id:W}})}searchCommunities(W,Z={}){return this.get("communities/search",{query:W,...Z})}}class M1 extends j1{constructor(){super(...arguments);this._prefix=$1}get readOnly(){return this}}class L1 extends F1{constructor(){super(...arguments);this._prefix=c}get readOnly(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new M1(this)}hideReply(W,Z){return this.put("tweets/:id/hidden",{hidden:Z},{params:{id:W}})}like(W,Z){return this.post("users/:id/likes",{tweet_id:Z},{params:{id:W}})}unlike(W,Z){return this.delete("users/:id/likes/:tweet_id",void 0,{params:{id:W,tweet_id:Z}})}retweet(W,Z){return this.post("users/:id/retweets",{tweet_id:Z},{params:{id:W}})}unretweet(W,Z){return this.delete("users/:id/retweets/:tweet_id",void 0,{params:{id:W,tweet_id:Z}})}tweet(W,Z={}){if(typeof W==="object")Z=W;else Z={text:W,...Z};return this.post("tweets",Z)}async uploadMedia(W,Z,$=1048576){let J=Z.media_category;if(!Z.media_category){if(Z.media_type.includes("gif"))J="tweet_gif";else if(Z.media_type.includes("image"))J="tweet_image";else if(Z.media_type.includes("video"))J="tweet_video"}let Q={additional_owners:Z.additional_owners,media_type:Z.media_type,total_bytes:W.length,media_category:J},K=(await this.post("media/upload/initialize",Q)).data.id,z=Math.ceil(W.length/$),X=new Uint8Array(W);for(let B=0;B<z;B++){let j=B*$,N=Math.min(j+$,W.length),S=X.slice(j,N),U=Buffer.from(S),n={segment_index:B,media:U};await this.post(`media/upload/${K}/append`,n,{forceBodyMode:"form-data"})}if((await this.post(`media/upload/${K}/finalize`)).data.processing_info)await this.waitForMediaProcessing(K);return K}async waitForMediaProcessing(W){var Z;let J=(await this.get("media/upload",{command:"STATUS",media_id:W})).data.processing_info;if(!J)return;switch(J.state){case"succeeded":return;case"failed":throw Error(`Media processing failed: ${(Z=J.error)===null||Z===void 0?void 0:Z.message}`);case"pending":case"in_progress":{let Q=J===null||J===void 0?void 0:J.check_after_secs;if(Q&&Q>0)await new Promise((Y)=>setTimeout(Y,Q*1000)),await this.waitForMediaProcessing(W)}}}createMediaMetadata(W,Z){return this.post("media/metadata",{id:W,metadata:Z})}reply(W,Z,$={}){var J;let Q={in_reply_to_tweet_id:Z,...(J=$.reply)!==null&&J!==void 0?J:{}};return this.post("tweets",{text:W,...$,reply:Q})}quote(W,Z,$={}){return this.tweet(W,{...$,quote_tweet_id:Z})}async tweetThread(W){var Z,$;let J=[];for(let Q of W){let Y=J.length?J[J.length-1]:null,K={...typeof Q==="string"?{text:Q}:Q},z=Y?Y.data.id:(Z=K.reply)===null||Z===void 0?void 0:Z.in_reply_to_tweet_id,X=($=K.text)!==null&&$!==void 0?$:"";if(z)J.push(await this.reply(X,z,K));else J.push(await this.tweet(X,K))}return J}deleteTweet(W){return this.delete("tweets/:id",void 0,{params:{id:W}})}async bookmark(W){let Z=await this.getCurrentUserV2Object();return this.post("users/:id/bookmarks",{tweet_id:W},{params:{id:Z.data.id}})}async deleteBookmark(W){let Z=await this.getCurrentUserV2Object();return this.delete("users/:id/bookmarks/:tweet_id",void 0,{params:{id:Z.data.id,tweet_id:W}})}follow(W,Z){return this.post("users/:id/following",{target_user_id:Z},{params:{id:W}})}unfollow(W,Z){return this.delete("users/:source_user_id/following/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}block(W,Z){return this.post("users/:id/blocking",{target_user_id:Z},{params:{id:W}})}unblock(W,Z){return this.delete("users/:source_user_id/blocking/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}mute(W,Z){return this.post("users/:id/muting",{target_user_id:Z},{params:{id:W}})}unmute(W,Z){return this.delete("users/:source_user_id/muting/:target_user_id",void 0,{params:{source_user_id:W,target_user_id:Z}})}createList(W){return this.post("lists",W)}updateList(W,Z={}){return this.put("lists/:id",Z,{params:{id:W}})}removeList(W){return this.delete("lists/:id",void 0,{params:{id:W}})}addListMember(W,Z){return this.post("lists/:id/members",{user_id:Z},{params:{id:W}})}removeListMember(W,Z){return this.delete("lists/:id/members/:user_id",void 0,{params:{id:W,user_id:Z}})}subscribeToList(W,Z){return this.post("users/:id/followed_lists",{list_id:Z},{params:{id:W}})}unsubscribeOfList(W,Z){return this.delete("users/:id/followed_lists/:list_id",void 0,{params:{id:W,list_id:Z}})}pinList(W,Z){return this.post("users/:id/pinned_lists",{list_id:Z},{params:{id:W}})}unpinList(W,Z){return this.delete("users/:id/pinned_lists/:list_id",void 0,{params:{id:W,list_id:Z}})}sendDmInConversation(W,Z){return this.post("dm_conversations/:dm_conversation_id/messages",Z,{params:{dm_conversation_id:W}})}sendDmToParticipant(W,Z){return this.post("dm_conversations/with/:participant_id/messages",Z,{params:{participant_id:W}})}createDmConversation(W){return this.post("dm_conversations",W)}}class m6 extends M1{constructor(){super(...arguments);this._prefix=$1}get readWrite(){return this}}var c6=m6;class u6 extends L1{constructor(){super(...arguments);this._prefix=c}get readWrite(){return this}get labs(){if(this._labs)return this._labs;return this._labs=new c6(this)}}var p6=u6;class T1 extends d{get v1(){if(this._v1)return this._v1;return this._v1=new G1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new F1(this)}async currentUser(W=!1){return await this.getCurrentUserObject(W)}async currentUserV2(W=!1){return await this.getCurrentUserV2Object(W)}search(W,Z){return this.v2.search(W,Z)}async generateAuthLink(W="oob",{authAccessType:Z,linkMode:$="authenticate",forceLogin:J,screenName:Q}={}){let Y=await this.post("https://api.x.com/oauth/request_token",{oauth_callback:W,x_auth_access_type:Z}),K=`https://api.x.com/oauth/${$}?oauth_token=${encodeURIComponent(Y.oauth_token)}`;if(J!==void 0)K+=`&force_login=${encodeURIComponent(J)}`;if(Q!==void 0)K+=`&screen_name=${encodeURIComponent(Q)}`;if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth1RequestToken",{client:this._requestMaker,url:K,oauthResult:Y});return{url:K,...Y}}async login(W){let Z=this.getActiveTokens();if(Z.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept OAuth 1.0 login");let $=await this.post("https://api.x.com/oauth/access_token",{oauth_token:Z.accessToken,oauth_verifier:W}),J=new this.constructor({appKey:Z.appKey,appSecret:Z.appSecret,accessToken:$.oauth_token,accessSecret:$.oauth_token_secret},this._requestMaker.clientSettings);return{accessToken:$.oauth_token,accessSecret:$.oauth_token_secret,userId:$.user_id,screenName:$.screen_name,client:J}}async appLogin(){let W=this.getActiveTokens();if(W.type!=="oauth-1.0a")throw Error("You must setup TwitterApi instance with consumer keys to accept app-only login");let $=await new this.constructor({username:W.appKey,password:W.appSecret},this._requestMaker.clientSettings).post("https://api.x.com/oauth2/token",{grant_type:"client_credentials"});return new this.constructor($.access_token,this._requestMaker.clientSettings)}generateOAuth2AuthLink(W,Z={}){var $,J;if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. You can find your client ID in Twitter Developer Portal. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let Q=($=Z.state)!==null&&$!==void 0?$:e.generateRandomString(32),Y=e.getCodeVerifier(),K=e.getCodeChallengeFromVerifier(Y),z=(J=Z.scope)!==null&&J!==void 0?J:"",X=Array.isArray(z)?z.join(" "):z,G=new URL("https://x.com/i/oauth2/authorize"),B={response_type:"code",client_id:this._requestMaker.clientId,redirect_uri:W,state:Q,code_challenge:K,code_challenge_method:"s256",scope:X};f.addQueryParamsToUrl(G,B);let j={url:G.toString(),state:Q,codeVerifier:Y,codeChallenge:K};if(this._requestMaker.hasPlugins())this._requestMaker.applyPluginMethod("onOAuth2RequestToken",{client:this._requestMaker,result:j,redirectUri:W});return j}async loginWithOAuth2({code:W,codeVerifier:Z,redirectUri:$}){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let J=await this.post("https://api.x.com/2/oauth2/token",{code:W,code_verifier:Z,redirect_uri:$,grant_type:"authorization_code",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(J)}async refreshOAuth2Token(W){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");let Z=await this.post("https://api.x.com/2/oauth2/token",{refresh_token:W,grant_type:"refresh_token",client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret});return this.parseOAuth2AccessTokenResult(Z)}async revokeOAuth2Token(W,Z="access_token"){if(!this._requestMaker.clientId)throw Error("Twitter API instance is not initialized with client ID. Please build an instance with: new TwitterApi({ clientId: '<yourClientId>' })");return await this.post("https://api.x.com/2/oauth2/revoke",{client_id:this._requestMaker.clientId,client_secret:this._requestMaker.clientSecret,token:W,token_type_hint:Z})}parseOAuth2AccessTokenResult(W){let Z=new this.constructor(W.access_token,this._requestMaker.clientSettings),$=W.scope.split(" ").filter((J)=>J);return{client:Z,expiresIn:W.expires_in,accessToken:W.access_token,scope:$,refreshToken:W.refresh_token}}}class P1 extends T1{get v1(){if(this._v1)return this._v1;return this._v1=new X1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new L1(this)}get readOnly(){return this}}class $4 extends C{constructor(){super(...arguments);this._prefix=J1}}class J4 extends $4{constructor(){super(...arguments);this._prefix=J1}get readOnly(){return this}}class Q4 extends C{constructor(){super(...arguments);this._prefix=Q1}}class Y4 extends Q4{constructor(){super(...arguments);this._prefix=Q1}get readOnly(){return this}}class d6 extends Y4{constructor(){super(...arguments);this._prefix=Q1}get readWrite(){return this}}var l6=d6;class n6 extends J4{constructor(){super(...arguments);this._prefix=J1}get readWrite(){return this}get sandbox(){if(this._sandbox)return this._sandbox;return this._sandbox=new l6(this)}}var i6=n6;class y0 extends P1{get v1(){if(this._v1)return this._v1;return this._v1=new r1(this)}get v2(){if(this._v2)return this._v2;return this._v2=new p6(this)}get readWrite(){return this}get ads(){if(this._ads)return this._ads;return this._ads=new i6(this)}static getErrors(W){var Z;if(typeof W!=="object")return[];if(!("data"in W))return[];return(Z=W.data.errors)!==null&&Z!==void 0?Z:[]}static getProfileImageInSize(W,Z){let $=W.split("/").pop(),J=["normal","bigger","mini"],Q=W;for(let K of J)if($.includes(`_${K}`)){Q=W.replace(`_${K}`,"");break}if(Z==="original")return Q;let Y=Q.lastIndexOf(".");if(Y!==-1){let K=Q.slice(Y+1);return Q.slice(0,Y)+"_"+Z+"."+K}else return Q+"_"+Z}}var dW={clientId:process.env.X_CLIENT_ID,clientSecret:process.env.X_SECRET,redirectPath:"/auth/oauth/x/callback",scope:["tweet.read","users.read","offline.access"]};class s6 extends a{config;client;constructor(W={}){super();this.config={...dW,...W},this.client=new y0({clientId:this.config.clientId,clientSecret:this.config.clientSecret})}redirectUri(){return`${Z1()??""}${this.config.redirectPath}`}getRedirectUrl(W,Z){if(!Z)throw Error("XOAuthProvider needs the state and PKCE challenge gemi passes.");let $=new URL("https://x.com/i/oauth2/authorize"),J={response_type:"code",client_id:this.config.clientId,redirect_uri:this.redirectUri(),state:Z.state,code_challenge:Z.codeChallenge,code_challenge_method:Z.codeChallengeMethod,scope:this.config.scope.join(" ")};for(let[Q,Y]of Object.entries(J))$.searchParams.set(Q,Y);return $.toString()}async onCallback(W,Z){let $=W.search.get("code");if(!$)throw new P("missing_code");if(!Z?.codeVerifier)throw new P("invalid_state");let J;try{J=await this.client.loginWithOAuth2({code:$,codeVerifier:Z.codeVerifier,redirectUri:this.redirectUri()})}catch(G){throw console.error("X OAuth error: token exchange failed",G),new P("exchange_failed")}let{data:Q}=await J.client.v2.me({"user.fields":["name","username","entities"]}),{name:Y,email:K,id:z="",username:X}=Q??{};return{name:Y,email:K,username:X,providerId:z}}}var a6=["instagram_business_basic"],A={authorizeUrl:"https://www.instagram.com/oauth/authorize",tokenUrl:"https://api.instagram.com/oauth/access_token",graphUrl:"https://graph.instagram.com"};class v extends Error{status;type;code;constructor(W,Z,$,J,Q){super(W,Q);this.status=Z;this.type=$;this.code=J;this.name="InstagramApiError"}}async function K4(W){let Z=new URLSearchParams({client_id:W.clientId,client_secret:W.clientSecret,grant_type:"authorization_code",redirect_uri:W.redirectUri,code:W.code.replace(/#_$/,"")}),$=await G4(W.tokenUrl??A.tokenUrl,"code exchange",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString()}),J=Array.isArray($.data)?$.data[0]:$,Q=J?.access_token;if(typeof Q!=="string"||Q==="")throw new v("Instagram's code exchange answered without an access token.",200);let Y=J?.permissions;return{accessToken:Q,userId:A0(J?.user_id),permissions:Array.isArray(Y)?Y.map(String):typeof Y==="string"?Y.split(/[\s,]+/).filter(Boolean):null}}async function t6(W){let Z=new URL("/access_token",W.graphUrl??A.graphUrl);return Z.searchParams.set("grant_type","ig_exchange_token"),Z.searchParams.set("client_secret",W.clientSecret),Z.searchParams.set("access_token",W.accessToken),e6(await G4(Z.toString(),"long-lived token exchange",{method:"GET"}))}async function r6(W){let Z=new URL("/refresh_access_token",W.graphUrl??A.graphUrl);return Z.searchParams.set("grant_type","ig_refresh_token"),Z.searchParams.set("access_token",W.accessToken),e6(await G4(Z.toString(),"token refresh",{method:"GET"}))}async function z4(W){let Z=W.graphApiVersion?`/${W.graphApiVersion.replace(/^\/+|\/+$/g,"")}`:"",$=new URL(`${Z}/me`,W.graphUrl??A.graphUrl);$.searchParams.set("fields",(W.fields??["user_id","username","name","account_type","profile_picture_url"]).join(",")),$.searchParams.set("access_token",W.accessToken);let J=await G4($.toString(),"profile request",{method:"GET"}),Q=Array.isArray(J.data)?J.data[0]:J,Y=A0(Q?.user_id);if(!Y)throw new v("Instagram's /me answered without a user_id.",200);let K={user_id:Y},z=A0(Q?.id);if(z)K.id=z;for(let X of["username","name","account_type","profile_picture_url"]){let G=Q?.[X];if(typeof G==="string"&&G!=="")K[X]=G}return K}function e6(W){if(typeof W.access_token!=="string"||W.access_token==="")throw new v("Instagram answered without an access token.",200);let Z=Number(W.expires_in);return{accessToken:W.access_token,tokenType:typeof W.token_type==="string"?W.token_type:null,expiresIn:Number.isFinite(Z)&&Z>0?Z:null}}async function G4(W,Z,$){let J;try{J=await fetch(W,{...$,redirect:"error"})}catch(Y){throw new v(`Instagram's ${Z} failed to reach Instagram.`,void 0,void 0,void 0,{cause:Y})}let Q=h0(await J.text().catch(()=>""));if(!J.ok){let Y=Q.error??{},K=o6(Q.error_type)??o6(Y.type),z=Number(Q.code??Y.code);throw new v(`Instagram refused the ${Z} (HTTP ${J.status}${K?`, ${K}`:""}${Number.isFinite(z)?` ${z}`:""}).`,J.status,K,Number.isFinite(z)?z:void 0)}return Q}function h0(W){try{let Z=JSON.parse(W.replace(/("(?:user_id|id)"\s*:\s*)(-?\d+)(?=\s*[,}\]])/g,'$1"$2"'));return Z&&typeof Z==="object"?Z:{}}catch{return{}}}function A0(W){if(typeof W==="string"&&W!=="")return W;if(typeof W==="number"&&Number.isSafeInteger(W))return String(W);return null}function o6(W){return typeof W==="string"&&W!==""?W:void 0}class WW extends a{createUsersWithoutEmail=!0;linkByEmail=!1;config;constructor(W={}){super();this.config={clientId:process.env.INSTAGRAM_CLIENT_ID??"",clientSecret:process.env.INSTAGRAM_CLIENT_SECRET??"",scopes:a6,redirectPath:"/auth/oauth/instagram/callback",authorizationParams:{},...W}}redirectUri(){return`${Z1()??""}${this.config.redirectPath}`}getRedirectUrl(W,Z){let $=new URL(this.config.authorizeUrl??A.authorizeUrl),J={...this.config.authorizationParams,client_id:this.config.clientId,redirect_uri:this.redirectUri(),response_type:"code",scope:this.config.scopes.join(",")};if(Z)J.state=Z.state;for(let[Q,Y]of Object.entries(J))$.searchParams.set(Q,Y);return $.toString()}async onCallback(W){let Z=W.search.get("code");if(!Z)throw new P("missing_code");let $;try{let J=await K4({code:Z,clientId:this.config.clientId,clientSecret:this.config.clientSecret,redirectUri:this.redirectUri(),tokenUrl:this.config.tokenUrl});$=await z4({accessToken:J.accessToken,graphUrl:this.config.graphUrl,graphApiVersion:this.config.graphApiVersion,fields:["user_id","username","name"]})}catch(J){if(J instanceof v)throw console.error(`Instagram OAuth error: ${J.message}`),new P("exchange_failed");throw J}return{providerId:$.user_id,username:$.username,name:$.name||$.username}}}import{createHmac as lW,timingSafeEqual as nW}from"crypto";class w extends Error{reason;constructor(W,Z){super(Z);this.reason=W;this.name="MetaSignedRequestError"}}function iW(W,Z,$={}){if(!Z)throw Error("parseMetaSignedRequest needs the app secret.");if(typeof W!=="string")throw new w("malformed","No signed_request was given.");let J=W.indexOf(".");if(J<=0||J===W.length-1||W.indexOf(".",J+1)!==-1)throw new w("malformed","A signed_request is <signature>.<payload>.");let Q=W.slice(0,J),Y=W.slice(J+1);if(!/^[A-Za-z0-9_-]+={0,2}$/.test(Q)||!/^[A-Za-z0-9_-]+={0,2}$/.test(Y))throw new w("malformed","A signed_request is base64url.");let K=lW("sha256",Z).update(Y).digest(),z=Buffer.from(Q,"base64url");if(z.length!==K.length||!nW(z,K))throw new w("bad_signature","The signed_request's signature does not match the app secret.");let X;try{let N=Buffer.from(Y,"base64url").toString("utf8").replace(/("user_id"\s*:\s*)(-?\d+)(?=\s*[,}])/g,'$1"$2"');X=JSON.parse(N)}catch{throw new w("malformed","The signed_request's payload is not JSON.")}if(!X||typeof X!=="object")throw new w("malformed","The signed_request's payload is not an object.");if(String(X.algorithm??"").toUpperCase()!=="HMAC-SHA256")throw new w("unsupported_algorithm","Only HMAC-SHA256 signed_requests are accepted.");let G=Math.floor(($.now??Date.now())/1000),B=Number(X.expires);if(Number.isFinite(B)&&B>0&&B<G)throw new w("expired","The signed_request has expired.");let j=X.user_id;if((typeof j!=="string"||j==="")&&typeof j!=="number")throw new w("missing_user","The signed_request names no user.");return{...X,algorithm:String(X.algorithm),user_id:String(j)}}var sW=86400000;class B4 extends g0{instagram;constructor(W={}){let Z={authorizeUrl:W.authorizeUrl??A.authorizeUrl,tokenUrl:W.tokenUrl??A.tokenUrl,graphUrl:W.graphUrl??A.graphUrl,graphApiVersion:W.graphApiVersion};super({authorizeUrl:Z.authorizeUrl,tokenUrl:Z.tokenUrl,clientId:W.clientId??process.env.INSTAGRAM_CLIENT_ID??"",clientSecret:W.clientSecret??process.env.INSTAGRAM_CLIENT_SECRET??"",scopes:W.scopes??["instagram_business_basic","instagram_business_content_publish"],scopeSeparator:",",pkce:!1,authorizationParams:W.authorizationParams??{},redirectUri:W.redirectUri,apiBaseUrl:Z.graphUrl,refreshLeewaySeconds:W.refreshLeewaySeconds??864000,multiple:W.multiple??!1,tokenPlacement:"query",isTokenRejected:oW,refreshStrategy:async($)=>{if(Date.now()-$.issuedAt.getTime()<sW){if($.reason==="rejected")throw new b1("refresh_failed","Instagram refused the access token (OAuthException 190).",{status:401});return null}let J=await X4("refresh_failed",()=>r6({accessToken:$.accessToken,graphUrl:Z.graphUrl}));return{accessToken:J.accessToken,refreshToken:null,tokenType:J.tokenType,expiresAt:J.expiresIn===null?null:new Date(Date.now()+J.expiresIn*1000),scopes:$.scopes,providerAccountId:$.providerAccountId}}});this.instagram=Z}async exchangeCode(W){let Z=await X4("exchange_failed",()=>K4({code:W.code,clientId:this.config.clientId,clientSecret:this.config.clientSecret,redirectUri:W.redirectUri,tokenUrl:this.instagram.tokenUrl})),$=await X4("exchange_failed",()=>t6({accessToken:Z.accessToken,clientSecret:this.config.clientSecret,graphUrl:this.instagram.graphUrl})),J=await X4("exchange_failed",()=>z4({accessToken:$.accessToken,graphUrl:this.instagram.graphUrl,graphApiVersion:this.instagram.graphApiVersion}));return{accessToken:$.accessToken,refreshToken:null,tokenType:$.tokenType,expiresAt:$.expiresIn===null?null:new Date(Date.now()+$.expiresIn*1000),scopes:Z.permissions??this.config.scopes,providerAccountId:J.user_id,profile:{...J}}}refresh(){return Promise.reject(new b1("refresh_failed","Instagram connections renew the access token itself; call connection.refresh()."))}}async function oW(W){if(W.status===401)return!0;if(W.status!==400)return!1;let Z=await W.clone().json().catch(()=>null);return Number(Z?.error?.code)===190}async function X4(W,Z){try{return await Z()}catch($){if($ instanceof v)throw new b1(W,$.message,{cause:$,status:$.status===200?502:$.status});throw $}}class x extends Error{code;status;graphCode;graphSubcode;containerId;constructor(W,Z,$={}){super(Z);this.code=W;this.name="InstagramPublishError",this.status=$.status,this.graphCode=$.graphCode,this.graphSubcode=$.graphSubcode,this.containerId=$.containerId}}var k={captionLength:2200,hashtags:30,mentions:20,userTags:20,carouselMin:2,carouselMax:10},ZW="instagram_business_content_publish",aW={for(W,Z={}){return new c0(W,Z)}};class c0{connection;version;pollIntervalMs;maxPollIntervalMs;timeoutMs;constructor(W,Z={}){this.connection=W;let $=W.connectionProvider();if(!($ instanceof B4))throw TypeError(`Instagram.for() takes an Instagram connection; "${W.provider}" is not an InstagramConnectionProvider.`);let J=Z.graphApiVersion??$.instagram.graphApiVersion;this.version=J?`/${J.replace(/^\/+|\/+$/g,"")}`:"",this.pollIntervalMs=Z.pollIntervalMs??2000,this.maxPollIntervalMs=Z.maxPollIntervalMs??1e4,this.timeoutMs=Z.timeoutMs??300000}async publishImage(W,Z={}){if(q1("imageUrl",W.imageUrl),m0(W.caption),W.altText!==void 0&&typeof W.altText!=="string")R("altText must be a string.");if(W.userTags!==void 0)G5(W.userTags);let $=this.start(Z),J=await this.createContainer({image_url:W.imageUrl,caption:W.caption,alt_text:W.altText,user_tags:W.userTags?JSON.stringify(W.userTags):void 0,location_id:W.locationId},$);return this.publishContainer(J,!1,$)}async publishCarousel(W,Z={}){let $=W.items;if(!Array.isArray($)||$.length<k.carouselMin||$.length>k.carouselMax)R(`A carousel takes ${k.carouselMin} to ${k.carouselMax} items.`);$.forEach((z,X)=>YW(`items[${X}]`,z)),m0(W.caption);let J=this.start(Z),Q=[];for(let z of $)Q.push(await this.createContainer(z.videoUrl!==void 0?{media_type:"VIDEO",video_url:z.videoUrl,is_carousel_item:"true"}:{image_url:z.imageUrl,is_carousel_item:"true"},J));for(let[z,X]of $.entries())if(X.videoUrl!==void 0)await this.waitUntilFinished(Q[z],J);let Y=$.some((z)=>z.videoUrl!==void 0),K=await this.createContainer({media_type:"CAROUSEL",children:Q.join(","),caption:W.caption},J);return this.publishContainer(K,Y,J)}async publishReel(W,Z={}){if(q1("videoUrl",W.videoUrl),W.coverUrl!==void 0)q1("coverUrl",W.coverUrl);if(m0(W.caption),W.thumbOffset!==void 0&&!(Number.isInteger(W.thumbOffset)&&W.thumbOffset>=0))R("thumbOffset must be a whole number of milliseconds, 0 or more.");let $=this.start(Z),J=await this.createContainer({media_type:"REELS",video_url:W.videoUrl,caption:W.caption,cover_url:W.coverUrl,share_to_feed:W.shareToFeed===void 0?void 0:String(W.shareToFeed),thumb_offset:W.thumbOffset===void 0?void 0:String(W.thumbOffset)},$);return this.publishContainer(J,!0,$)}async publishStory(W,Z={}){YW("story",W);let $=this.start(Z),J=W.videoUrl!==void 0,Q=await this.createContainer(J?{media_type:"STORIES",video_url:W.videoUrl}:{media_type:"STORIES",image_url:W.imageUrl},$);return this.publishContainer(Q,J,$)}async publishingLimit(W={}){let Z=this.start(W),$=await this.call("publishing limit request",`/${this.accountId()}/content_publishing_limit?fields=quota_usage,config`,void 0,Z),J=Array.isArray($.data)?$.data[0]:$,Q=J?.config??{},Y=E0(J?.quota_usage,0),K=E0(Q.quota_total,100);return{quotaUsage:Y,quotaTotal:K,quotaDurationSeconds:E0(Q.quota_duration,86400),remaining:Math.max(0,K-Y)}}async containerStatus(W,Z={}){return this.readStatus(W,this.start(Z))}start(W){if(W.signal?.throwIfAborted(),!this.connection.hasScopes(ZW))throw new x("permission_denied",`The Instagram connection was not granted ${ZW}; connect it again with that scope.`);return{signal:W.signal,deadline:Date.now()+(W.timeoutMs??this.timeoutMs)}}accountId(){let W=this.connection.providerAccountId;if(!W)throw new x("invalid_input","The Instagram connection has no account id (providerAccountId).");return W}async createContainer(W,Z){let $=await this.call("media container request",`/${this.accountId()}/media`,W,Z);return JW($,"media container request")}async publishContainer(W,Z,$){try{if(Z)await this.waitUntilFinished(W,$);let J=await this.publishOnce(W,Z,$);return{mediaId:J,permalink:await this.permalink(J,$)}}catch(J){throw J instanceof x?K5(J,W):J}}async publishOnce(W,Z,$){try{return await this.mediaPublish(W,$)}catch(J){if(!(J instanceof x))throw J;if(J.code==="transient"){let{statusCode:Q}=await this.readStatus(W,$);if(Q==="PUBLISHED")throw new x("unconfirmed","Instagram's media_publish failed, but the container reads PUBLISHED: the post is probably live. Do not publish it again.",{status:J.status,graphCode:J.graphCode,graphSubcode:J.graphSubcode});if(Q!=="FINISHED")throw J;return this.mediaPublish(W,$)}if(Y5(J)&&!Z)return await this.waitUntilFinished(W,$),this.mediaPublish(W,$);throw J}}async mediaPublish(W,Z){let $=await this.call("media_publish request",`/${this.accountId()}/media_publish`,{creation_id:W},Z,{retry:!1});return JW($,"media_publish request")}async permalink(W,Z){try{let $=await this.call("permalink request",`/${W}?fields=permalink`,void 0,Z,{retry:!1});return typeof $.permalink==="string"?$.permalink:void 0}catch{return}}async readStatus(W,Z){if(!/^\d+$/.test(W))R("A container id is a string of digits.");let $=await this.call("container status request",`/${W}?fields=status_code,status`,void 0,Z),J=$.status_code;if(typeof J!=="string"||!tW.has(J))throw new x("graph_error","Instagram's container status answered without a known status_code.",{status:200,containerId:W});let Q={id:W,statusCode:J};if(typeof $.status==="string"&&$.status!=="")Q.status=GW($.status);return Q}async waitUntilFinished(W,Z){let $=this.pollIntervalMs;for(;;){let{statusCode:J,status:Q}=await this.readStatus(W,Z);if(J==="FINISHED")return;if(J==="PUBLISHED")throw new x("invalid_input","That media container has been published already.",{containerId:W});if(J==="ERROR")throw new x("invalid_media",`Instagram could not process the media${Q?` (${Q})`:""}.`,{containerId:W});if(J==="EXPIRED")throw new x("expired","The media container expired before it was published.",{containerId:W});let Y=Z.deadline-Date.now();if(Y<=0)throw new x("timeout","Instagram had not finished processing the media in time; the container is still processing.",{containerId:W});await z5(Math.min($,Y),Z.signal),$=Math.min($*1.5,this.maxPollIntervalMs)}}async call(W,Z,$,J,{retry:Q=!0}={}){try{return await this.callOnce(W,Z,$,J)}catch(Y){if(!Q||!(Y instanceof x)||Y.code!=="transient")throw Y;return this.callOnce(W,Z,$,J)}}async callOnce(W,Z,$,J){J.signal?.throwIfAborted();let Q={method:$?"POST":"GET",signal:J.signal};if($){let z=new URLSearchParams;for(let[X,G]of Object.entries($))if(G!==void 0)z.set(X,G);Q.body=z}let Y;try{Y=await this.connection.fetch(`${this.version}${Z}`,Q)}catch(z){if(J.signal?.aborted)throw J.signal.reason;if(z instanceof TypeError)throw new x("transient",`Instagram's ${W} failed to reach Instagram.`);throw z}let K=h0(await Y.text().catch(()=>""));if(Y.ok)return K;throw Q5(W,Y.status,K)}}var tW=new Set(["EXPIRED","ERROR","FINISHED","IN_PROGRESS","PUBLISHED"]),rW=new Set([4,17,32,613,80002]),eW=new Set([3,10]),W5=new Set([9004,352,36000,36001,36002,36003,36004]),Z5=new Set([2207004,2207005,2207006,2207009,2207023,2207026,2207028,2207052]),$5=new Set([102,190,463,467]),J5=new Set([2207001,2207003,2207053]),$W={code:9007,subcode:2207027};function Q5(W,Z,$){let J=$.error??{},Q=QW(J.code),Y=QW(J.error_subcode),K=typeof J.type==="string"&&J.type!==""?J.type:void 0,z=typeof J.message==="string"&&J.message!==""?`: ${GW(J.message)}`:"",X=[Q,Y].filter((j)=>j!==void 0).join("/"),G=`Instagram refused the ${W} (HTTP ${Z}${K?`, ${K}`:""}${X?` ${X}`:""})${z}`,B="graph_error";if(Y===2207042)B="quota_exceeded";else if(Y===2207010)B="invalid_input";else if(Q!==void 0&&rW.has(Q))B="rate_limited";else if(Q!==void 0&&$5.has(Q))B="reconnect_required";else if(Q!==void 0&&(eW.has(Q)||Q>=200&&Q<=299))B="permission_denied";else if(Q!==void 0&&W5.has(Q)||Y!==void 0&&Z5.has(Y))B="invalid_media";else if(J.is_transient===!0||Q===1||Q===2||Y!==void 0&&J5.has(Y)||Z>=500||Z===429)B=Z===429?"rate_limited":"transient";return new x(B,G,{status:Z,graphCode:Q,graphSubcode:Y})}function Y5(W){return W.graphCode===$W.code||W.graphSubcode===$W.subcode}function K5(W,Z){if(W.containerId)return W;return new x(W.code,W.message,{status:W.status,graphCode:W.graphCode,graphSubcode:W.graphSubcode,containerId:Z})}function GW(W){return W.replace(/access_token=[^&\s"']*/gi,"access_token=[redacted]").replace(/\b(?:IG|EAA)[A-Za-z0-9_-]{20,}/g,"[redacted]").slice(0,500)}function JW(W,Z){let $=W.id;if(typeof $==="string"&&$!=="")return $;if(typeof $==="number"&&Number.isSafeInteger($))return String($);throw new x("graph_error",`Instagram's ${Z} answered without an id.`,{status:200})}function QW(W){let Z=Number(W);return W!==void 0&&W!==null&&Number.isFinite(Z)?Z:void 0}function E0(W,Z){let $=Number(W);return W!==void 0&&W!==null&&Number.isFinite($)?$:Z}function z5(W,Z){return new Promise(($,J)=>{if(Z?.aborted)return J(Z.reason);let Q=()=>{clearTimeout(Y),J(Z?.reason)},Y=setTimeout(()=>{Z?.removeEventListener("abort",Q),$()},W);Z?.addEventListener("abort",Q,{once:!0})})}function R(W){throw new x("invalid_input",W)}function m0(W){if(W===void 0)return;if(typeof W!=="string")R("caption must be a string.");if([...W].length>k.captionLength)R(`A caption takes at most ${k.captionLength} characters.`);if((W.match(/#[\p{L}\p{N}_]+/gu)??[]).length>k.hashtags)R(`A caption takes at most ${k.hashtags} hashtags.`);if((W.match(/(?<![\p{L}\p{N}_.@])@[\p{L}\p{N}_.]+/gu)??[]).length>k.mentions)R(`A caption takes at most ${k.mentions} @mentions.`)}function G5(W){if(!Array.isArray(W)||W.length>k.userTags)R(`userTags takes at most ${k.userTags} tags.`);for(let Z of W){let $=(J)=>typeof J==="number"&&J>=0&&J<=1;if(typeof Z?.username!=="string"||Z.username===""||!$(Z.x)||!$(Z.y))R("Each user tag needs a username, and x and y between 0 and 1.")}}function YW(W,Z){let $=Z?.imageUrl!==void 0,J=Z?.videoUrl!==void 0;if($===J)R(`${W} takes exactly one of imageUrl and videoUrl.`);if($)q1(`${W}.imageUrl`,Z.imageUrl);else q1(`${W}.videoUrl`,Z.videoUrl)}function q1(W,Z){let $;try{$=new URL(Z)}catch{R(`${W} is not an absolute URL.`)}if($.protocol!=="https:")R(`${W} must be an https URL: Instagram fetches the media from it.`);let J=$.hostname.replace(/^\[|\]$/g,"").toLowerCase(),Q=KW(J);if(Q?zW(Q)!==null:!J.includes(".")||/(^|\.)(localhost|local|internal)$/.test(J))R(`${W} must be a public URL: Instagram fetches the media from it.`)}class u0{describe;rollout;when;serverOnly;salt;constructor(W={}){if(W.rollout!==void 0){let{rollout:Z}=W;if(!Number.isFinite(Z)||Z<0||Z>100)throw Error(`A feature's \`rollout\` must be a number between 0 and 100, received ${String(Z)}.`)}this.describe=W.describe,this.rollout=W.rollout,this.when=W.when,this.serverOnly=W.serverOnly??!1,this.salt=W.salt}}function X5(W={}){return new u0(W)}class XW extends p0{rows=new Map;constructor(W={}){super();for(let[Z,$]of Object.entries(W))this.rows.set(Z,{key:Z,active:$})}async load(){return[...this.rows.values()].map((W)=>({...W}))}async write(W,Z,$){return this.rows.set(W,{key:W,active:Z,updatedBy:$.actor,updatedAt:new Date}),{actorRecorded:!0}}}export{yZ as viewRouteConfigDefaults,p8 as translationConfigDefaults,j4 as toRangeHeaderValue,O5 as subjectFor,v5 as sniffContentType,V8 as scheduleConfigDefaults,L4 as resolveRange,X9 as redisConfigDefaults,K9 as rateLimiterConfigDefaults,Z8 as queueConfigDefaults,iW as parseMetaSignedRequest,N1 as parseContentRange,F5 as mintSessionToken,pZ as middlewareConfigDefaults,N8 as mcpCallOf,iZ as mailConfigDefaults,$9 as logConfigDefaults,j5 as isSessionToken,OZ as isFinalRunStatus,x6 as isBroadcastEvent,w5 as isActiveContentType,x5 as inRollout,bZ as imageConfigDefaults,b5 as filesystemConfigDefaults,i8 as featuresConfigDefaults,P8 as eventConfigDefaults,U5 as evaluateFeature,WZ as encodeCursor,hZ as documentScriptCspHash,w8 as discoverWorkflows,A8 as discoverListeners,v8 as discoverJobs,I8 as discoverCronJobs,y8 as discoverCommands,u8 as defineTranslationConfig,C8 as defineScheduleConfig,HZ as defineRunsConfig,wZ as defineRouteConfig,G9 as defineRedisConfig,Y9 as defineRateLimiterConfig,W8 as defineQueueConfig,uZ as defineMiddlewareConfig,nZ as defineMailConfig,Z9 as defineLogConfig,PZ as defineImageConfig,P5 as defineFilesystemConfig,n8 as defineFeaturesConfig,X5 as defineFeature,T8 as defineEventConfig,MW as defineEncryptionConfig,R8 as defineCommandConfig,k8 as defineCommand,r5 as defineChangeFeedConfig,y5 as defineCacheConfig,XZ as defineBroadcastConfig,L5 as defineAuthConfig,ZZ as decodeCursor,rZ as createWorkflowTableStatements,_Z as createRunsTableStatements,_8 as commandConfigDefaults,e5 as changeFeedConfigDefaults,A5 as cacheConfigDefaults,H5 as bucketOf,D5 as bucketKey,BZ as broadcastConfigDefaults,P4 as bearerToken,N5 as authConfigDefaults,F4 as assertDeletablePrefix,IZ as apiRouteConfigDefaults,s6 as XOAuthProvider,X8 as WorkflowRuntime,z8 as WorkflowCancelledError,q8 as Workflow,Y8 as WaitTimeoutError,mZ as ViewRouteDispatcher,f5 as UndeclaredFeatureError,m5 as TaggedCache,K8 as StepTimeoutError,Q8 as StepFailedError,G8 as Step,XW as StaticFeatureFlagSource,TZ as Sharp,U8 as Scheduler,d8 as ScheduleServiceProvider,EZ as STATIC_NAVIGATION_CSP_HASH,GZ as SOCKET_ID_HEADER,B5 as SESSION_TOKEN_PREFIX,n0 as S3Driver,F9 as RunsServiceProvider,kZ as RunNotFoundError,CZ as RunManager,fZ as RunFailure,j9 as RouteServiceProvider,lZ as ResendDriver,B9 as RedisServiceProvider,x4 as RedisRateLimiterTimeoutError,I1 as RedisRateLimiterDisconnectedError,t0 as RedisRateLimiter,w1 as RedisManager,g5 as RedisCacheStore,FZ as RedisBroadcastDriver,z9 as RateLimiterServiceProvider,D4 as RateLimiterDriver,M5 as RateLimiter,W1 as RangeNotSatisfiableError,h8 as QueueServiceProvider,B8 as QueueManager,t5 as ProviderConnection,N6 as PrismaMcpOAuthStore,NZ as PendingBroadcast,UZ as OPEN_RUN_STATUSES,o5 as OAuthReconnectRequiredError,a as OAuthProvider,g0 as OAuthConnectionProvider,b1 as OAuthConnectionError,P as OAuthCallbackError,Q9 as MiddlewareServiceProvider,vZ as MiddlewareRegistry,w as MetaSignedRequestError,$8 as MemoryWorkflowStore,SZ as MemoryRunStore,J8 as MemoryQueueDriver,L6 as MemoryMcpOAuthStore,aZ as MemoryLockStore,i5 as MemoryConnectionStore,JZ as MemoryChangeFeedDriver,h5 as MemoryCacheStore,jZ as MemoryBroadcastDriver,M8 as McpToolError,D8 as McpRegistry,F6 as McpOAuthServer,x8 as McpHttpServer,L8 as McpCallRefusedError,H8 as McpApiKeyResolver,o8 as MailServiceProvider,sZ as MailManager,J9 as LogServiceProvider,I5 as LogManager,p5 as LockManager,c5 as LockLostError,b8 as Listener,W9 as KernelIdServiceProvider,AZ as KernelId,j8 as Job,zZ as InvalidChannelError,c0 as InstagramPublisher,x as InstagramPublishError,WW as InstagramOAuthProvider,B4 as InstagramConnectionProvider,v as InstagramApiError,aW as Instagram,H4 as InMemoryRateLimiter,e8 as ImageServiceProvider,VZ as ImageOptimizationDriver,qZ as ImageManager,gZ as ISLAND_LOADER_CSP_HASH,k as INSTAGRAM_LIMITS,u5 as HeldLock,O6 as GoogleOAuthProvider,r8 as FilesystemServiceProvider,q5 as FilesystemManager,T5 as FileSystemDriver,D1 as FileStorageDriver,i as FileNotFoundError,s8 as FeaturesServiceProvider,k5 as FeatureSourceReadOnlyError,C5 as FeatureScope,S5 as FeatureReloadError,_5 as FeatureModelMissingError,V5 as FeatureManager,R5 as FeatureFlagStore,p0 as FeatureFlagSource,u0 as Feature,xZ as FINAL_RUN_STATUSES,t8 as EventServiceProvider,T as EventManager,u1 as Event,a8 as EncryptionServiceProvider,l5 as EncryptionKeyError,d5 as Encrypter,dZ as EmailDriver,n5 as DecryptionError,tZ as DatabaseWorkflowStore,RZ as DatabaseRunStore,eZ as DatabaseQueueDriver,oZ as DatabaseLockStore,l8 as DatabaseFeatureFlagSource,s5 as DatabaseConnectionStore,$Z as DatabaseChangeFeedDriver,F8 as DEFAULT_MCP_SCOPE,f8 as CronJob,a5 as ConnectionManager,M9 as CommandRegistry,O8 as CommandFailed,S8 as Command,KZ as ChangeFeedSubscription,m8 as ChangeFeedServiceProvider,YZ as ChangeFeedManager,QZ as ChangeFeedFullError,E8 as CacheServiceProvider,E5 as CacheManager,y1 as CONSENT_PAGE_HEADERS,g8 as BroadcastServiceProvider,DZ as BroadcastScope,MZ as BroadcastPayloadTooLargeError,LZ as BroadcastManager,U6 as BroadcastEvent,s0 as AzureBlobDriver,c8 as AuthServiceProvider,g1 as AuthManager,cZ as ApiRouteDispatcher};
71
71
 
72
- //# debugId=9C8060F18EBEB0F664756E2164756E21
72
+ //# debugId=22FEF3E8996B8E8664756E2164756E21