gemi 0.183.1 → 0.185.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 (222) hide show
  1. package/dist/ai/generate.d.ts +29 -0
  2. package/dist/ai/generate.d.ts.map +1 -1
  3. package/dist/ai/index.d.ts +3 -1
  4. package/dist/ai/index.d.ts.map +1 -1
  5. package/dist/ai/index.js +90 -90
  6. package/dist/ai/index.js.map +2 -2
  7. package/dist/ai/partialJson.d.ts +68 -0
  8. package/dist/ai/partialJson.d.ts.map +1 -0
  9. package/dist/app/index.js +1 -1
  10. package/dist/auth/AuthController.d.ts.map +1 -1
  11. package/dist/auth/oauth/GitHubOAuthProvider.d.ts +60 -0
  12. package/dist/auth/oauth/GitHubOAuthProvider.d.ts.map +1 -0
  13. package/dist/auth/oauth/GoogleOAuthProvider.d.ts +18 -3
  14. package/dist/auth/oauth/GoogleOAuthProvider.d.ts.map +1 -1
  15. package/dist/auth/oauth/InstagramOAuthProvider.d.ts +12 -1
  16. package/dist/auth/oauth/InstagramOAuthProvider.d.ts.map +1 -1
  17. package/dist/auth/oauth/OAuthProvider.d.ts +23 -0
  18. package/dist/auth/oauth/OAuthProvider.d.ts.map +1 -1
  19. package/dist/auth/oauth/XOAuthProvider.d.ts +12 -1
  20. package/dist/auth/oauth/XOAuthProvider.d.ts.map +1 -1
  21. package/dist/auth/oauth/client.d.ts +69 -0
  22. package/dist/auth/oauth/client.d.ts.map +1 -0
  23. package/dist/auth/oauth/oauthState.d.ts +7 -1
  24. package/dist/auth/oauth/oauthState.d.ts.map +1 -1
  25. package/dist/auth/oauth/providers.d.ts +3 -2
  26. package/dist/auth/oauth/providers.d.ts.map +1 -1
  27. package/dist/bun/plugin.js +1 -1
  28. package/dist/bun/preload.js +1 -1
  29. package/dist/{chunk-adsbv4rm.js → chunk-00sj67nx.js} +2 -2
  30. package/dist/{chunk-adsbv4rm.js.map → chunk-00sj67nx.js.map} +1 -1
  31. package/dist/{chunk-r1sjx2q9.js → chunk-0ahecas6.js} +2 -2
  32. package/dist/{chunk-r1sjx2q9.js.map → chunk-0ahecas6.js.map} +1 -1
  33. package/dist/{chunk-f54p1qc9.js → chunk-0rkastve.js} +5 -5
  34. package/dist/{chunk-f54p1qc9.js.map → chunk-0rkastve.js.map} +6 -6
  35. package/dist/{chunk-vm3ayd1b.js → chunk-2qac05gb.js} +3 -3
  36. package/dist/{chunk-vm3ayd1b.js.map → chunk-2qac05gb.js.map} +1 -1
  37. package/dist/{chunk-k6x35rn5.js → chunk-2rpz1p8g.js} +1 -1
  38. package/dist/{chunk-ztvewkks.js → chunk-3derdn99.js} +3 -3
  39. package/dist/{chunk-ztvewkks.js.map → chunk-3derdn99.js.map} +1 -1
  40. package/dist/{chunk-g57cg31m.js → chunk-3fm7gmp5.js} +2 -2
  41. package/dist/{chunk-g57cg31m.js.map → chunk-3fm7gmp5.js.map} +1 -1
  42. package/dist/{chunk-yrd14jjt.js → chunk-3jpj6hjh.js} +1 -1
  43. package/dist/{chunk-ynrqt4gq.js → chunk-4q505by7.js} +2 -2
  44. package/dist/{chunk-ynrqt4gq.js.map → chunk-4q505by7.js.map} +1 -1
  45. package/dist/{chunk-7g90w0t6.js → chunk-64r5cs5g.js} +1 -1
  46. package/dist/{chunk-6s7bb50m.js → chunk-6d3527qt.js} +3 -3
  47. package/dist/{chunk-6s7bb50m.js.map → chunk-6d3527qt.js.map} +1 -1
  48. package/dist/{chunk-3jnnma7m.js → chunk-6daabbfj.js} +2 -2
  49. package/dist/{chunk-3jnnma7m.js.map → chunk-6daabbfj.js.map} +1 -1
  50. package/dist/{chunk-am9gmm5a.js → chunk-6tferehw.js} +2 -2
  51. package/dist/{chunk-am9gmm5a.js.map → chunk-6tferehw.js.map} +1 -1
  52. package/dist/{chunk-q9xsgn2s.js → chunk-7b10n8m8.js} +2 -2
  53. package/dist/{chunk-q9xsgn2s.js.map → chunk-7b10n8m8.js.map} +1 -1
  54. package/dist/{chunk-rz6npg3r.js → chunk-7bz43qbt.js} +3 -3
  55. package/dist/{chunk-rz6npg3r.js.map → chunk-7bz43qbt.js.map} +1 -1
  56. package/dist/{chunk-07ttfngb.js → chunk-7dhvb6nn.js} +2 -2
  57. package/dist/{chunk-07ttfngb.js.map → chunk-7dhvb6nn.js.map} +1 -1
  58. package/dist/{chunk-ambptjfh.js → chunk-7gnspwra.js} +2 -2
  59. package/dist/{chunk-ambptjfh.js.map → chunk-7gnspwra.js.map} +1 -1
  60. package/dist/{chunk-njrnn5dw.js → chunk-7tm669mw.js} +2 -2
  61. package/dist/{chunk-njrnn5dw.js.map → chunk-7tm669mw.js.map} +1 -1
  62. package/dist/{chunk-btt706nx.js → chunk-810nrvt4.js} +2 -2
  63. package/dist/{chunk-btt706nx.js.map → chunk-810nrvt4.js.map} +1 -1
  64. package/dist/{chunk-7fzwgvyg.js → chunk-84j5b07n.js} +1 -1
  65. package/dist/{chunk-tr8s1z7k.js → chunk-87nekrjj.js} +3 -3
  66. package/dist/{chunk-tr8s1z7k.js.map → chunk-87nekrjj.js.map} +1 -1
  67. package/dist/{chunk-1kcv4dyh.js → chunk-87pn20z5.js} +2 -2
  68. package/dist/{chunk-1kcv4dyh.js.map → chunk-87pn20z5.js.map} +1 -1
  69. package/dist/{chunk-t797crcj.js → chunk-96r16t57.js} +3 -3
  70. package/dist/{chunk-t797crcj.js.map → chunk-96r16t57.js.map} +1 -1
  71. package/dist/{chunk-vfaen5tf.js → chunk-9mf6qzxy.js} +2 -2
  72. package/dist/{chunk-vfaen5tf.js.map → chunk-9mf6qzxy.js.map} +1 -1
  73. package/dist/{chunk-fzwaybhd.js → chunk-a1414jdv.js} +3 -3
  74. package/dist/{chunk-fzwaybhd.js.map → chunk-a1414jdv.js.map} +1 -1
  75. package/dist/chunk-a1r1r1z7.js +42 -0
  76. package/dist/{chunk-91vxf94n.js.map → chunk-a1r1r1z7.js.map} +5 -4
  77. package/dist/{chunk-pt159v3n.js → chunk-b55zt46z.js} +2 -2
  78. package/dist/{chunk-pt159v3n.js.map → chunk-b55zt46z.js.map} +1 -1
  79. package/dist/{chunk-1863jd18.js → chunk-beqhakdf.js} +2 -2
  80. package/dist/{chunk-1863jd18.js.map → chunk-beqhakdf.js.map} +1 -1
  81. package/dist/{chunk-s9etcqcq.js → chunk-bg2e7stx.js} +2 -2
  82. package/dist/{chunk-s9etcqcq.js.map → chunk-bg2e7stx.js.map} +1 -1
  83. package/dist/{chunk-skyt9hyg.js → chunk-bm3pyh9m.js} +2 -2
  84. package/dist/{chunk-skyt9hyg.js.map → chunk-bm3pyh9m.js.map} +1 -1
  85. package/dist/{chunk-wa7rtfkk.js → chunk-c07s6w45.js} +1 -1
  86. package/dist/{chunk-g09qz75d.js → chunk-cf5a958j.js} +2 -2
  87. package/dist/{chunk-g09qz75d.js.map → chunk-cf5a958j.js.map} +1 -1
  88. package/dist/{chunk-5d6h1znx.js → chunk-d5ftst76.js} +2 -2
  89. package/dist/{chunk-5d6h1znx.js.map → chunk-d5ftst76.js.map} +1 -1
  90. package/dist/{chunk-tvvqhwa3.js → chunk-d9pnjkxr.js} +2 -2
  91. package/dist/{chunk-tvvqhwa3.js.map → chunk-d9pnjkxr.js.map} +1 -1
  92. package/dist/{chunk-7pbwmt7j.js → chunk-dezd1fn5.js} +2 -2
  93. package/dist/{chunk-7pbwmt7j.js.map → chunk-dezd1fn5.js.map} +1 -1
  94. package/dist/{chunk-6dzm2pv7.js → chunk-dh4ax9cj.js} +2 -2
  95. package/dist/{chunk-6dzm2pv7.js.map → chunk-dh4ax9cj.js.map} +1 -1
  96. package/dist/{chunk-0hr6k996.js → chunk-e38xa29v.js} +2 -2
  97. package/dist/{chunk-0hr6k996.js.map → chunk-e38xa29v.js.map} +1 -1
  98. package/dist/{chunk-h5s56wzw.js → chunk-ecv4mtgh.js} +2 -2
  99. package/dist/{chunk-h5s56wzw.js.map → chunk-ecv4mtgh.js.map} +1 -1
  100. package/dist/chunk-f25x1sn1.js +5 -0
  101. package/dist/{chunk-y82d4w0m.js.map → chunk-f25x1sn1.js.map} +1 -1
  102. package/dist/{chunk-9beqhac6.js → chunk-f2tjtwm0.js} +2 -2
  103. package/dist/{chunk-9beqhac6.js.map → chunk-f2tjtwm0.js.map} +1 -1
  104. package/dist/{chunk-vgmmftm2.js → chunk-fdpvgeey.js} +2 -2
  105. package/dist/{chunk-vgmmftm2.js.map → chunk-fdpvgeey.js.map} +1 -1
  106. package/dist/{chunk-3m791vwf.js → chunk-g32mpf79.js} +2 -2
  107. package/dist/{chunk-3m791vwf.js.map → chunk-g32mpf79.js.map} +1 -1
  108. package/dist/{chunk-gprc53rf.js → chunk-gtdf51jz.js} +1 -1
  109. package/dist/{chunk-xnfkz18n.js → chunk-h2t135y3.js} +3 -3
  110. package/dist/{chunk-xnfkz18n.js.map → chunk-h2t135y3.js.map} +1 -1
  111. package/dist/{chunk-9brq77q6.js → chunk-hq710s2a.js} +3 -3
  112. package/dist/{chunk-9brq77q6.js.map → chunk-hq710s2a.js.map} +1 -1
  113. package/dist/{chunk-k1v0xgwe.js → chunk-kcvzs31p.js} +2 -2
  114. package/dist/{chunk-k1v0xgwe.js.map → chunk-kcvzs31p.js.map} +1 -1
  115. package/dist/{chunk-5f4k3n9x.js → chunk-krgwft9w.js} +2 -2
  116. package/dist/{chunk-5f4k3n9x.js.map → chunk-krgwft9w.js.map} +1 -1
  117. package/dist/{chunk-7rmsc511.js → chunk-kzv3v0tm.js} +3 -3
  118. package/dist/{chunk-7rmsc511.js.map → chunk-kzv3v0tm.js.map} +1 -1
  119. package/dist/{chunk-8z1z4zbq.js → chunk-m906xc76.js} +2 -2
  120. package/dist/{chunk-8z1z4zbq.js.map → chunk-m906xc76.js.map} +1 -1
  121. package/dist/{chunk-xh3qqmbk.js → chunk-mpreff3t.js} +2 -2
  122. package/dist/{chunk-xh3qqmbk.js.map → chunk-mpreff3t.js.map} +1 -1
  123. package/dist/{chunk-6bf04rk5.js → chunk-mpt1zsfv.js} +2 -2
  124. package/dist/{chunk-6bf04rk5.js.map → chunk-mpt1zsfv.js.map} +1 -1
  125. package/dist/{chunk-ry9jard2.js → chunk-nadkwh8a.js} +3 -3
  126. package/dist/{chunk-ry9jard2.js.map → chunk-nadkwh8a.js.map} +1 -1
  127. package/dist/{chunk-g0ps09h7.js → chunk-przahq2e.js} +2 -2
  128. package/dist/{chunk-g0ps09h7.js.map → chunk-przahq2e.js.map} +1 -1
  129. package/dist/{chunk-y16jhwrv.js → chunk-q19cs1qf.js} +2 -2
  130. package/dist/{chunk-y16jhwrv.js.map → chunk-q19cs1qf.js.map} +1 -1
  131. package/dist/{chunk-p9avgpzd.js → chunk-q6rse2fh.js} +2 -2
  132. package/dist/{chunk-p9avgpzd.js.map → chunk-q6rse2fh.js.map} +1 -1
  133. package/dist/{chunk-62v0y132.js → chunk-rdnxkecg.js} +2 -2
  134. package/dist/{chunk-62v0y132.js.map → chunk-rdnxkecg.js.map} +1 -1
  135. package/dist/{chunk-n6hd9swg.js → chunk-skq4g7qa.js} +2 -2
  136. package/dist/{chunk-n6hd9swg.js.map → chunk-skq4g7qa.js.map} +1 -1
  137. package/dist/{chunk-n31hppcx.js → chunk-spmxhsze.js} +2 -2
  138. package/dist/{chunk-n31hppcx.js.map → chunk-spmxhsze.js.map} +1 -1
  139. package/dist/{chunk-f3s8pz3m.js → chunk-srsmhbpt.js} +2 -2
  140. package/dist/{chunk-f3s8pz3m.js.map → chunk-srsmhbpt.js.map} +1 -1
  141. package/dist/{chunk-hbhrhspx.js → chunk-tbss13e8.js} +2 -2
  142. package/dist/{chunk-hbhrhspx.js.map → chunk-tbss13e8.js.map} +1 -1
  143. package/dist/{chunk-zscd52sv.js → chunk-tvkdqnhv.js} +3 -3
  144. package/dist/{chunk-zscd52sv.js.map → chunk-tvkdqnhv.js.map} +1 -1
  145. package/dist/{chunk-fagkv8sm.js → chunk-ty3kycy4.js} +2 -2
  146. package/dist/{chunk-fagkv8sm.js.map → chunk-ty3kycy4.js.map} +1 -1
  147. package/dist/{chunk-4b5rpya9.js → chunk-vhyabcw9.js} +2 -2
  148. package/dist/{chunk-4b5rpya9.js.map → chunk-vhyabcw9.js.map} +1 -1
  149. package/dist/{chunk-dcwsya9e.js → chunk-vv8vjjez.js} +2 -2
  150. package/dist/{chunk-dcwsya9e.js.map → chunk-vv8vjjez.js.map} +1 -1
  151. package/dist/{chunk-5467avf1.js → chunk-vvg3yxrc.js} +2 -2
  152. package/dist/{chunk-5467avf1.js.map → chunk-vvg3yxrc.js.map} +1 -1
  153. package/dist/{chunk-73svx8gr.js → chunk-wtdmwmm7.js} +3 -3
  154. package/dist/{chunk-73svx8gr.js.map → chunk-wtdmwmm7.js.map} +1 -1
  155. package/dist/{chunk-syqvk994.js → chunk-xgg9w7ep.js} +2 -2
  156. package/dist/{chunk-syqvk994.js.map → chunk-xgg9w7ep.js.map} +1 -1
  157. package/dist/{chunk-0jery7ys.js → chunk-xjb2kzkj.js} +4 -4
  158. package/dist/{chunk-0jery7ys.js.map → chunk-xjb2kzkj.js.map} +1 -1
  159. package/dist/{chunk-5sjteb6f.js → chunk-xmjzyzn6.js} +3 -3
  160. package/dist/{chunk-5sjteb6f.js.map → chunk-xmjzyzn6.js.map} +1 -1
  161. package/dist/{chunk-jc48hhha.js → chunk-yaacfbky.js} +2 -2
  162. package/dist/{chunk-jc48hhha.js.map → chunk-yaacfbky.js.map} +1 -1
  163. package/dist/{chunk-j1j0438r.js → chunk-ye72q3kx.js} +2 -2
  164. package/dist/{chunk-j1j0438r.js.map → chunk-ye72q3kx.js.map} +1 -1
  165. package/dist/{chunk-fhw4phyh.js → chunk-ykpc18d1.js} +2 -2
  166. package/dist/{chunk-fhw4phyh.js.map → chunk-ykpc18d1.js.map} +1 -1
  167. package/dist/{chunk-cxh9qe1c.js → chunk-yx03gndz.js} +2 -2
  168. package/dist/{chunk-cxh9qe1c.js.map → chunk-yx03gndz.js.map} +1 -1
  169. package/dist/{chunk-7stvx6x7.js → chunk-z2k8m02z.js} +2 -2
  170. package/dist/{chunk-7stvx6x7.js.map → chunk-z2k8m02z.js.map} +1 -1
  171. package/dist/{chunk-7n6vnmtv.js → chunk-z65e3vdy.js} +2 -2
  172. package/dist/{chunk-7n6vnmtv.js.map → chunk-z65e3vdy.js.map} +1 -1
  173. package/dist/{chunk-5nqwxjf1.js → chunk-zenfs4e2.js} +3 -3
  174. package/dist/{chunk-5nqwxjf1.js.map → chunk-zenfs4e2.js.map} +1 -1
  175. package/dist/{chunk-xwvm54dx.js → chunk-zyzhqnbm.js} +2 -2
  176. package/dist/{chunk-xwvm54dx.js.map → chunk-zyzhqnbm.js.map} +1 -1
  177. package/dist/config/index.js +1 -1
  178. package/dist/console/run.js +2 -2
  179. package/dist/console/run.js.map +1 -1
  180. package/dist/container/index.js +2 -2
  181. package/dist/container/index.js.map +1 -1
  182. package/dist/database/index.js +2 -2
  183. package/dist/database/index.js.map +1 -1
  184. package/dist/email/index.js +2 -2
  185. package/dist/email/index.js.map +1 -1
  186. package/dist/facades/index.js +2 -2
  187. package/dist/facades/index.js.map +1 -1
  188. package/dist/foundation/index.js +2 -2
  189. package/dist/foundation/index.js.map +1 -1
  190. package/dist/http/index.js +2 -2
  191. package/dist/http/index.js.map +1 -1
  192. package/dist/i18n/dictionaryRuntime.js +2 -2
  193. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  194. package/dist/i18n/index.js +2 -2
  195. package/dist/i18n/index.js.map +1 -1
  196. package/dist/kernel/index.js +2 -2
  197. package/dist/kernel/index.js.map +1 -1
  198. package/dist/orm/index.js +2 -2
  199. package/dist/orm/index.js.map +1 -1
  200. package/dist/probe/index.js +2 -2
  201. package/dist/probe/index.js.map +1 -1
  202. package/dist/server/index.js +2 -2
  203. package/dist/server/index.js.map +1 -1
  204. package/dist/services/index.d.ts +3 -0
  205. package/dist/services/index.d.ts.map +1 -1
  206. package/dist/services/index.js +13 -13
  207. package/dist/services/index.js.map +8 -6
  208. package/dist/services/queue/work.js +2 -2
  209. package/dist/services/queue/work.js.map +1 -1
  210. package/dist/stats/route-table.js +1 -1
  211. package/dist/support/index.js +2 -2
  212. package/dist/support/index.js.map +1 -1
  213. package/dist/vitest/index.js +1 -1
  214. package/package.json +1 -1
  215. package/dist/chunk-91vxf94n.js +0 -41
  216. package/dist/chunk-y82d4w0m.js +0 -5
  217. /package/dist/{chunk-k6x35rn5.js.map → chunk-2rpz1p8g.js.map} +0 -0
  218. /package/dist/{chunk-yrd14jjt.js.map → chunk-3jpj6hjh.js.map} +0 -0
  219. /package/dist/{chunk-7g90w0t6.js.map → chunk-64r5cs5g.js.map} +0 -0
  220. /package/dist/{chunk-7fzwgvyg.js.map → chunk-84j5b07n.js.map} +0 -0
  221. /package/dist/{chunk-wa7rtfkk.js.map → chunk-c07s6w45.js.map} +0 -0
  222. /package/dist/{chunk-gprc53rf.js.map → chunk-gtdf51jz.js.map} +0 -0
@@ -7,6 +7,6 @@
7
7
  "import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n"
8
8
  ],
9
9
  "mappings": "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",
10
- "debugId": "F01D5B537BB31FA264756E2164756E21",
10
+ "debugId": "F009DAE072D9C6F064756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{D as r}from"./chunk-3m791vwf.js";import{R as mc}from"./chunk-9beqhac6.js";import"./chunk-k1v0xgwe.js";import"./chunk-5d6h1znx.js";import{V as _}from"./chunk-fagkv8sm.js";import{Gl as u,Jl as O}from"./chunk-xh3qqmbk.js";import{Buffer as hc}from"buffer";import{request as Yc}from"http";function E(c){return new Promise((I,x)=>{let N=Yc({method:"GET",...c,hostname:c.hostname?.replace(/^\[(.+)\]$/,"$1")});N.on("error",(T)=>{x(Object.assign(new K.ProviderError("Unable to connect to instance metadata service"),T)),N.destroy()}),N.on("timeout",()=>{x(new K.ProviderError("TimeoutError from instance metadata service")),N.destroy()}),N.on("response",(T)=>{let{statusCode:y=400}=T;if(y<200||300<=y)x(Object.assign(new K.ProviderError("Error response received from instance metadata service"),{statusCode:y})),N.destroy();let $=[];T.on("data",(w)=>{$.push(w)}),T.on("end",()=>{I(hc.concat($)),N.destroy()})}),N.end()})}var K;var D=O(()=>{K=u(_(),1)});var G=(c)=>Boolean(c)&&typeof c==="object"&&typeof c.AccessKeyId==="string"&&typeof c.SecretAccessKey==="string"&&typeof c.Token==="string"&&typeof c.Expiration==="string",L=(c)=>({accessKeyId:c.AccessKeyId,secretAccessKey:c.SecretAccessKey,sessionToken:c.Token,expiration:new Date(c.Expiration),...c.AccountId&&{accountId:c.AccountId}});var W=()=>{};var Hc=1000,qc=0,Q=({maxRetries:c=0,timeout:I=1000})=>({maxRetries:c,timeout:I});var X=()=>{};var v=(c,I)=>{let x=c();for(let N=0;N<I;N++)x=x.catch(c);return x};var b=()=>{};import{parse as Sc}from"url";var z,H="AWS_CONTAINER_CREDENTIALS_FULL_URI",q="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",M="AWS_CONTAINER_AUTHORIZATION_TOKEN",kc=(c={})=>{let{timeout:I,maxRetries:x}=Q(c);return()=>v(async()=>{let N=await jc({logger:c.logger}),T=JSON.parse(await fc(I,N));if(!G(T))throw new z.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:c.logger});return L(T)},x)},fc=async(c,I)=>{if(process.env[M])I.headers={...I.headers,Authorization:process.env[M]};return(await E({...I,timeout:c})).toString()},uc="169.254.170.2",Ec,$c,jc=async({logger:c})=>{if(process.env[q])return{hostname:uc,path:process.env[q]};if(process.env[H]){let I=Sc(process.env[H]);if(!I.hostname||!(I.hostname in Ec))throw new z.CredentialsProviderError(`${I.hostname} is not a valid container metadata service hostname`,{tryNextLink:!1,logger:c});if(!I.protocol||!(I.protocol in $c))throw new z.CredentialsProviderError(`${I.protocol} is not a valid container metadata service protocol`,{tryNextLink:!1,logger:c});return{...I,port:I.port?parseInt(I.port,10):void 0}}throw new z.CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${q} or ${H} environment variable is set`,{tryNextLink:!1,logger:c})};var p=O(()=>{D();W();X();b();z=u(_(),1),Ec={localhost:!0,"127.0.0.1":!0},$c={"http:":!0,"https:":!0}});var C,Z;var a=O(()=>{C=u(_(),1);Z=class Z extends C.CredentialsProviderError{tryNextLink;name="InstanceMetadataV1FallbackError";constructor(c,I=!0){super(c,I);this.tryNextLink=I,Object.setPrototypeOf(this,Z.prototype)}}});var J;var B=O(()=>{(function(c){c.IPv4="http://169.254.169.254",c.IPv6="http://[fd00:ec2::254]"})(J||(J={}))});var n;var o=O(()=>{n={environmentVariableSelector:(c)=>c.AWS_EC2_METADATA_SERVICE_ENDPOINT,configFileSelector:(c)=>c.ec2_metadata_service_endpoint,default:void 0}});var f;var t=O(()=>{(function(c){c.IPv4="IPv4",c.IPv6="IPv6"})(f||(f={}))});var Ac="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",Jc="ec2_metadata_service_endpoint_mode",s;var g=O(()=>{t();s={environmentVariableSelector:(c)=>c[Ac],configFileSelector:(c)=>c[Jc],default:f.IPv4}});var U,l,F=async()=>l.parseUrl(await vc()||await zc()),vc=async()=>U.loadConfig(n)(),zc=async()=>{let c=await U.loadConfig(s)();switch(c){case f.IPv4:return J.IPv4;case f.IPv6:return J.IPv6;default:throw Error(`Unsupported endpoint mode: ${c}. Select from ${Object.values(f)}`)}};var P=O(()=>{B();o();t();g();U=u(r(),1),l=u(mc(),1)});var V=(c,I)=>{let x=300+Math.floor(Math.random()*300),N=new Date(Date.now()+x*1000);I.warn(`Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(N)}.
2
+ import{D as r}from"./chunk-g32mpf79.js";import{R as mc}from"./chunk-f2tjtwm0.js";import"./chunk-kcvzs31p.js";import"./chunk-d5ftst76.js";import{V as _}from"./chunk-ty3kycy4.js";import{Hl as u,Kl as O}from"./chunk-mpreff3t.js";import{Buffer as hc}from"buffer";import{request as Yc}from"http";function E(c){return new Promise((I,x)=>{let N=Yc({method:"GET",...c,hostname:c.hostname?.replace(/^\[(.+)\]$/,"$1")});N.on("error",(T)=>{x(Object.assign(new K.ProviderError("Unable to connect to instance metadata service"),T)),N.destroy()}),N.on("timeout",()=>{x(new K.ProviderError("TimeoutError from instance metadata service")),N.destroy()}),N.on("response",(T)=>{let{statusCode:y=400}=T;if(y<200||300<=y)x(Object.assign(new K.ProviderError("Error response received from instance metadata service"),{statusCode:y})),N.destroy();let $=[];T.on("data",(w)=>{$.push(w)}),T.on("end",()=>{I(hc.concat($)),N.destroy()})}),N.end()})}var K;var D=O(()=>{K=u(_(),1)});var G=(c)=>Boolean(c)&&typeof c==="object"&&typeof c.AccessKeyId==="string"&&typeof c.SecretAccessKey==="string"&&typeof c.Token==="string"&&typeof c.Expiration==="string",L=(c)=>({accessKeyId:c.AccessKeyId,secretAccessKey:c.SecretAccessKey,sessionToken:c.Token,expiration:new Date(c.Expiration),...c.AccountId&&{accountId:c.AccountId}});var W=()=>{};var Hc=1000,qc=0,Q=({maxRetries:c=0,timeout:I=1000})=>({maxRetries:c,timeout:I});var X=()=>{};var v=(c,I)=>{let x=c();for(let N=0;N<I;N++)x=x.catch(c);return x};var b=()=>{};import{parse as Sc}from"url";var z,H="AWS_CONTAINER_CREDENTIALS_FULL_URI",q="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",M="AWS_CONTAINER_AUTHORIZATION_TOKEN",kc=(c={})=>{let{timeout:I,maxRetries:x}=Q(c);return()=>v(async()=>{let N=await jc({logger:c.logger}),T=JSON.parse(await fc(I,N));if(!G(T))throw new z.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:c.logger});return L(T)},x)},fc=async(c,I)=>{if(process.env[M])I.headers={...I.headers,Authorization:process.env[M]};return(await E({...I,timeout:c})).toString()},uc="169.254.170.2",Ec,$c,jc=async({logger:c})=>{if(process.env[q])return{hostname:uc,path:process.env[q]};if(process.env[H]){let I=Sc(process.env[H]);if(!I.hostname||!(I.hostname in Ec))throw new z.CredentialsProviderError(`${I.hostname} is not a valid container metadata service hostname`,{tryNextLink:!1,logger:c});if(!I.protocol||!(I.protocol in $c))throw new z.CredentialsProviderError(`${I.protocol} is not a valid container metadata service protocol`,{tryNextLink:!1,logger:c});return{...I,port:I.port?parseInt(I.port,10):void 0}}throw new z.CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${q} or ${H} environment variable is set`,{tryNextLink:!1,logger:c})};var p=O(()=>{D();W();X();b();z=u(_(),1),Ec={localhost:!0,"127.0.0.1":!0},$c={"http:":!0,"https:":!0}});var C,Z;var a=O(()=>{C=u(_(),1);Z=class Z extends C.CredentialsProviderError{tryNextLink;name="InstanceMetadataV1FallbackError";constructor(c,I=!0){super(c,I);this.tryNextLink=I,Object.setPrototypeOf(this,Z.prototype)}}});var J;var B=O(()=>{(function(c){c.IPv4="http://169.254.169.254",c.IPv6="http://[fd00:ec2::254]"})(J||(J={}))});var n;var o=O(()=>{n={environmentVariableSelector:(c)=>c.AWS_EC2_METADATA_SERVICE_ENDPOINT,configFileSelector:(c)=>c.ec2_metadata_service_endpoint,default:void 0}});var f;var t=O(()=>{(function(c){c.IPv4="IPv4",c.IPv6="IPv6"})(f||(f={}))});var Ac="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",Jc="ec2_metadata_service_endpoint_mode",s;var g=O(()=>{t();s={environmentVariableSelector:(c)=>c[Ac],configFileSelector:(c)=>c[Jc],default:f.IPv4}});var U,l,F=async()=>l.parseUrl(await vc()||await zc()),vc=async()=>U.loadConfig(n)(),zc=async()=>{let c=await U.loadConfig(s)();switch(c){case f.IPv4:return J.IPv4;case f.IPv6:return J.IPv6;default:throw Error(`Unsupported endpoint mode: ${c}. Select from ${Object.values(f)}`)}};var P=O(()=>{B();o();t();g();U=u(r(),1),l=u(mc(),1)});var V=(c,I)=>{let x=300+Math.floor(Math.random()*300),N=new Date(Date.now()+x*1000);I.warn(`Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(N)}.
3
3
  For more information, please visit: https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html`);let T=c.originalExpiration??c.expiration;return{...c,...T?{originalExpiration:T}:{},expiration:N}};var d=()=>{};var e=(c,I={})=>{let x=I?.logger||console,N;return async()=>{let T;try{if(T=await c(),T.expiration&&T.expiration.getTime()<Date.now())T=V(T,x)}catch(y){if(N)x.warn("Credential renew failed: ",y),T=V(N,x);else throw y}return N=T,T}};var i=O(()=>{d()});var Nc,k,Tc="/latest/meta-data/iam/security-credentials/",Kc="/latest/api/token",R="AWS_EC2_METADATA_V1_DISABLED",cc="ec2_metadata_v1_disabled",Ic="x-aws-ec2-metadata-token",YI=(c={})=>e(_c(c),{logger:c.logger}),_c=(c={})=>{let I=!1,{logger:x,profile:N}=c,{timeout:T,maxRetries:y}=Q(c),$=async(w,j)=>{if(I||j.headers?.[Ic]==null){let h=!1,Y=!1,wc=await Nc.loadConfig({environmentVariableSelector:(S)=>{let A=S[R];if(Y=!!A&&A!=="false",A===void 0)throw new k.CredentialsProviderError(`${R} not set in env, checking config file next.`,{logger:c.logger});return Y},configFileSelector:(S)=>{let A=S[cc];return h=!!A&&A!=="false",h},default:!1},{profile:N})();if(c.ec2MetadataV1Disabled||wc){let S=[];if(c.ec2MetadataV1Disabled)S.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");if(h)S.push(`config file profile (${cc})`);if(Y)S.push(`process environment variable (${R})`);throw new Z(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${S.join(", ")}].`)}}let yc=(await v(async()=>{let h;try{h=await Gc(j)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)).trim();return v(async()=>{let h;try{h=await Lc(yc,j,c)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)};return async()=>{let w=await F();if(I)return x?.debug("AWS SDK Instance Metadata","using v1 fallback (no token fetch)"),$(y,{...w,timeout:T});else{let j;try{j=(await Dc({...w,timeout:T})).toString()}catch(m){if(m?.statusCode===400)throw Object.assign(m,{message:"EC2 Metadata token request returned error"});else if(m.message==="TimeoutError"||[403,404,405].includes(m.statusCode))I=!0;return x?.debug("AWS SDK Instance Metadata","using v1 fallback (initial)"),$(y,{...w,timeout:T})}return $(y,{...w,headers:{[Ic]:j},timeout:T})}}},Dc=async(c)=>E({...c,path:Kc,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}}),Gc=async(c)=>(await E({...c,path:Tc})).toString(),Lc=async(c,I,x)=>{let N=JSON.parse((await E({...I,path:Tc+c})).toString());if(!G(N))throw new k.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:x.logger});return L(N)};var xc=O(()=>{a();D();W();X();b();P();i();Nc=u(r(),1),k=u(_(),1)});var Oc=()=>{};var Qc=O(()=>{D();P();B();p();xc();X();Oc()});Qc();export{Q as providerConfigFromInit,E as httpRequest,F as getInstanceMetadataEndpoint,YI as fromInstanceMetadata,kc as fromContainerMetadata,J as Endpoint,q as ENV_CMDS_RELATIVE_URI,H as ENV_CMDS_FULL_URI,M as ENV_CMDS_AUTH_TOKEN,Hc as DEFAULT_TIMEOUT,qc as DEFAULT_MAX_RETRIES};
4
4
 
5
- //# debugId=A79E203B10C9D9C564756E2164756E21
5
+ //# debugId=9D37C7C667F0C73664756E2164756E21
@@ -19,6 +19,6 @@
19
19
  "export * from \"./fromContainerMetadata\";\nexport * from \"./fromInstanceMetadata\";\nexport * from \"./remoteProvider/RemoteProviderInit\";\nexport * from \"./types\";\nexport { httpRequest } from \"./remoteProvider/httpRequest\";\nexport { getInstanceMetadataEndpoint } from \"./utils/getInstanceMetadataEndpoint\";\nexport { Endpoint } from \"./config/Endpoint\";\n"
20
20
  ],
21
21
  "mappings": ";gQACA,WAAS,UACT,YAAS,QACF,GAAS,CAAW,CAAC,EAAS,CACjC,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACpC,IAAM,EAAM,GAAQ,CAChB,OAAQ,SACL,EACH,SAAU,EAAQ,UAAU,QAAQ,aAAc,IAAI,CAC1D,CAAC,EACD,EAAI,GAAG,QAAS,CAAC,IAAQ,CACrB,EAAO,OAAO,OAAO,IAAI,gBAAc,gDAAgD,EAAG,CAAG,CAAC,EAC9F,EAAI,QAAQ,EACf,EACD,EAAI,GAAG,UAAW,IAAM,CACpB,EAAO,IAAI,gBAAc,6CAA6C,CAAC,EACvE,EAAI,QAAQ,EACf,EACD,EAAI,GAAG,WAAY,CAAC,IAAQ,CACxB,IAAQ,aAAa,KAAQ,EAC7B,GAAI,EAAa,KAAO,KAAO,EAC3B,EAAO,OAAO,OAAO,IAAI,gBAAc,wDAAwD,EAAG,CAAE,YAAW,CAAC,CAAC,EACjH,EAAI,QAAQ,EAEhB,IAAM,EAAS,CAAC,EAChB,EAAI,GAAG,OAAQ,CAAC,IAAU,CACtB,EAAO,KAAK,CAAK,EACpB,EACD,EAAI,GAAG,MAAO,IAAM,CAChB,EAAQ,GAAO,OAAO,CAAM,CAAC,EAC7B,EAAI,QAAQ,EACf,EACJ,EACD,EAAI,IAAI,EACX,MAlCL,gCCAa,EAAoB,CAAC,IAAQ,QAAQ,CAAG,GACjD,OAAO,IAAQ,UACf,OAAO,EAAI,cAAgB,UAC3B,OAAO,EAAI,kBAAoB,UAC/B,OAAO,EAAI,QAAU,UACrB,OAAO,EAAI,aAAe,SACjB,EAAsB,CAAC,KAAW,CAC3C,YAAa,EAAM,YACnB,gBAAiB,EAAM,gBACvB,aAAc,EAAM,MACpB,WAAY,IAAI,KAAK,EAAM,UAAU,KACjC,EAAM,WAAa,CAAE,UAAW,EAAM,SAAU,CACxD,oBCZa,GAAkB,KAClB,GAAsB,EACtB,EAAyB,EAAG,aADN,EACwC,UAF5C,SAE8E,CAAE,aAAY,SAAQ,oBCFtH,EAAQ,CAAC,EAAS,IAAe,CAC1C,IAAI,EAAU,EAAQ,EACtB,QAAS,EAAI,EAAG,EAAI,EAAY,IAC5B,EAAU,EAAQ,MAAM,CAAO,EAEnC,OAAO,gBCJX,gBAAS,iBADT,EAMa,EAAoB,qCACpB,EAAwB,yCACxB,EAAsB,oCACtB,GAAwB,CAAC,EAAO,CAAC,IAAM,CAChD,IAAQ,UAAS,cAAe,EAAuB,CAAI,EAC3D,MAAO,IAAM,EAAM,SAAY,CAC3B,IAAM,EAAiB,MAAM,GAAW,CAAE,OAAQ,EAAK,MAAO,CAAC,EACzD,EAAgB,KAAK,MAAM,MAAM,GAAmB,EAAS,CAAc,CAAC,EAClF,GAAI,CAAC,EAAkB,CAAa,EAChC,MAAM,IAAI,2BAAyB,4DAA6D,CAC5F,OAAQ,EAAK,MACjB,CAAC,EAEL,OAAO,EAAoB,CAAa,GACzC,CAAU,GAEX,GAAqB,MAAO,EAAS,IAAY,CACnD,GAAI,QAAQ,IAAI,GACZ,EAAQ,QAAU,IACX,EAAQ,QACX,cAAe,QAAQ,IAAI,EAC/B,EAMJ,OAJe,MAAM,EAAY,IAC1B,EACH,SACJ,CAAC,GACa,SAAS,GAErB,GAAU,gBACV,GAIA,GAIA,GAAa,OAAS,YAAa,CACrC,GAAI,QAAQ,IAAI,GACZ,MAAO,CACH,SAAU,GACV,KAAM,QAAQ,IAAI,EACtB,EAEJ,GAAI,QAAQ,IAAI,GAAoB,CAChC,IAAM,EAAS,GAAM,QAAQ,IAAI,EAAkB,EACnD,GAAI,CAAC,EAAO,UAAY,EAAE,EAAO,YAAY,IACzC,MAAM,IAAI,2BAAyB,GAAG,EAAO,8DAA+D,CACxG,YAAa,GACb,QACJ,CAAC,EAEL,GAAI,CAAC,EAAO,UAAY,EAAE,EAAO,YAAY,IACzC,MAAM,IAAI,2BAAyB,GAAG,EAAO,8DAA+D,CACxG,YAAa,GACb,QACJ,CAAC,EAEL,MAAO,IACA,EACH,KAAM,EAAO,KAAO,SAAS,EAAO,KAAM,EAAE,EAAI,MACpD,EAEJ,MAAM,IAAI,2BAAyB,wEACvB,QAA4B,gCAChB,CACpB,YAAa,GACb,QACJ,CAAC,gBAzEL,IACA,IACA,IACA,IALA,WAoCM,GAAmB,CACrB,UAAW,GACX,YAAa,EACjB,EACM,GAAuB,CACzB,QAAS,GACT,SAAU,EACd,QC3CA,EACa,eADb,WACa,EAAN,MAAM,UAAwC,0BAAyB,CAC1E,YACA,KAAO,kCACP,WAAW,CAAC,EAAS,EAAc,GAAM,CACrC,MAAM,EAAS,CAAW,EAC1B,KAAK,YAAc,EACnB,OAAO,eAAe,KAAM,EAAgC,SAAS,EAE7E,QCTW,gBACV,QAAS,CAAC,EAAU,CACjB,EAAS,KAAU,yBACnB,EAAS,KAAU,2BACpB,IAAa,EAAW,CAAC,EAAE,QCFjB,iBAA0B,CACnC,4BAA6B,CAAC,IAAQ,EAHT,kCAI7B,mBAAoB,CAAC,IAAY,EAHD,8BAIhC,QAAS,MACb,QCNW,gBACV,QAAS,CAAC,EAAc,CACrB,EAAa,KAAU,OACvB,EAAa,KAAU,SACxB,IAAiB,EAAe,CAAC,EAAE,QCHzB,GAAyB,yCACzB,GAA4B,qCAC5B,eAHb,IAGa,EAA+B,CACxC,4BAA6B,CAAC,IAAQ,EAAI,IAC1C,mBAAoB,CAAC,IAAY,EAAQ,IACzC,QAAS,EAAa,IAC1B,QCPA,EACA,EAKa,EAA8B,SAAY,WAAU,MAAM,GAAsB,GAAO,MAAM,GAA0B,CAAE,EAChI,GAAwB,SAAY,aAAW,CAAuB,EAAE,EACxE,GAA4B,SAAY,CAC1C,IAAM,EAAe,MAAM,aAAW,CAA4B,EAAE,EACpE,OAAQ,QACC,EAAa,KACd,OAAO,EAAyB,UAC/B,EAAa,KACd,OAAO,EAAyB,aAEhC,MAAU,MAAM,8BAA8B,kBAAkC,OAAO,OAAO,CAAY,GAAG,iBAdzH,IACA,IACA,IACA,IALA,WACA,kBCEa,EAAyC,CAAC,EAAa,IAAW,CAC3E,IAAM,EAJwC,IAK1C,KAAK,MAAM,KAAK,OAAO,EAJiC,GAI0B,EAChF,EAAgB,IAAI,KAAK,KAAK,IAAI,EAAI,EAAkB,IAAI,EAClE,EAAO,KAAK,qJAC+B,IAAI,KAAK,CAAa;AAAA,oHACrC,EAC5B,IAAM,EAAqB,EAAY,oBAAsB,EAAY,WACzE,MAAO,IACA,KACC,EAAqB,CAAE,oBAAmB,EAAI,CAAC,EACnD,WAAY,CAChB,oBCdS,EAA0B,CAAC,EAAU,EAAU,CAAC,IAAM,CAC/D,IAAM,EAAS,GAAS,QAAU,QAC9B,EACJ,MAAO,UAAY,CACf,IAAI,EACJ,GAAI,CAEA,GADA,EAAc,MAAM,EAAS,EACzB,EAAY,YAAc,EAAY,WAAW,QAAQ,EAAI,KAAK,IAAI,EACtE,EAAc,EAAuC,EAAa,CAAM,EAGhF,MAAO,EAAG,CACN,GAAI,EACA,EAAO,KAAK,4BAA6B,CAAC,EAC1C,EAAc,EAAuC,EAAiB,CAAM,EAG5E,WAAM,EAId,OADA,EAAkB,EACX,iBAtBf,UCAA,GACA,EAQM,GAAY,8CACZ,GAAkB,oBAClB,EAA+B,+BAC/B,GAAuC,2BACvC,GAA2B,2BACpB,GAAuB,CAAC,EAAO,CAAC,IAAM,EAAwB,GAA4B,CAAI,EAAG,CAAE,OAAQ,EAAK,MAAO,CAAC,EAC/H,GAA8B,CAAC,EAAO,CAAC,IAAM,CAC/C,IAAI,EAAoB,IAChB,SAAQ,WAAY,GACpB,UAAS,cAAe,EAAuB,CAAI,EACrD,EAAiB,MAAO,EAAY,IAAY,CAElD,GADyB,GAAqB,EAAQ,UAAU,KAA6B,KACvE,CAClB,IAAI,EAA6B,GAC7B,EAAgC,GAC9B,GAAc,MAAM,cAAW,CACjC,4BAA6B,CAAC,IAAQ,CAClC,IAAM,EAAW,EAAI,GAErB,GADA,EAAgC,CAAC,CAAC,GAAY,IAAa,QACvD,IAAa,OACb,MAAM,IAAI,2BAAyB,GAAG,+CAA2E,CAAE,OAAQ,EAAK,MAAO,CAAC,EAE5I,OAAO,GAEX,mBAAoB,CAAC,IAAY,CAC7B,IAAM,EAAe,EAAQ,IAE7B,OADA,EAA6B,CAAC,CAAC,GAAgB,IAAiB,QACzD,GAEX,QAAS,EACb,EAAG,CACC,SACJ,CAAC,EAAE,EACH,GAAI,EAAK,uBAAyB,GAAa,CAC3C,IAAM,EAAS,CAAC,EAChB,GAAI,EAAK,sBACL,EAAO,KAAK,2EAA2E,EAC3F,GAAI,EACA,EAAO,KAAK,wBAAwB,KAAuC,EAC/E,GAAI,EACA,EAAO,KAAK,iCAAiC,IAA+B,EAChF,MAAM,IAAI,EAAgC,6FAA6F,EAAO,KAAK,IAAI,KAAK,GAGpK,IAAM,IAAe,MAAM,EAAM,SAAY,CACzC,IAAI,EACJ,GAAI,CACA,EAAU,MAAM,GAAW,CAAO,EAEtC,MAAO,EAAK,CACR,GAAI,EAAI,aAAe,IACnB,EAAoB,GAExB,MAAM,EAEV,OAAO,GACR,CAAU,GAAG,KAAK,EACrB,OAAO,EAAM,SAAY,CACrB,IAAI,EACJ,GAAI,CACA,EAAQ,MAAM,GAA0B,GAAa,EAAS,CAAI,EAEtE,MAAO,EAAK,CACR,GAAI,EAAI,aAAe,IACnB,EAAoB,GAExB,MAAM,EAEV,OAAO,GACR,CAAU,GAEjB,MAAO,UAAY,CACf,IAAM,EAAW,MAAM,EAA4B,EACnD,GAAI,EAEA,OADA,GAAQ,MAAM,4BAA6B,oCAAoC,EACxE,EAAe,EAAY,IAAK,EAAU,SAAQ,CAAC,EAEzD,KACD,IAAI,EACJ,GAAI,CACA,GAAS,MAAM,GAAiB,IAAK,EAAU,SAAQ,CAAC,GAAG,SAAS,EAExE,MAAO,EAAO,CACV,GAAI,GAAO,aAAe,IACtB,MAAM,OAAO,OAAO,EAAO,CACvB,QAAS,2CACb,CAAC,EAEA,QAAI,EAAM,UAAY,gBAAkB,CAAC,IAAK,IAAK,GAAG,EAAE,SAAS,EAAM,UAAU,EAClF,EAAoB,GAGxB,OADA,GAAQ,MAAM,4BAA6B,6BAA6B,EACjE,EAAe,EAAY,IAAK,EAAU,SAAQ,CAAC,EAE9D,OAAO,EAAe,EAAY,IAC3B,EACH,QAAS,EACJ,IAA2B,CAChC,EACA,SACJ,CAAC,KAIP,GAAmB,MAAO,IAAY,EAAY,IACjD,EACH,KAAM,GACN,OAAQ,MACR,QAAS,CACL,uCAAwC,OAC5C,CACJ,CAAC,EACK,GAAa,MAAO,KAAa,MAAM,EAAY,IAAK,EAAS,KAAM,EAAU,CAAC,GAAG,SAAS,EAC9F,GAA4B,MAAO,EAAS,EAAS,IAAS,CAChE,IAAM,EAAsB,KAAK,OAAO,MAAM,EAAY,IACnD,EACH,KAAM,GAAY,CACtB,CAAC,GAAG,SAAS,CAAC,EACd,GAAI,CAAC,EAAkB,CAAmB,EACtC,MAAM,IAAI,2BAAyB,4DAA6D,CAC5F,OAAQ,EAAK,MACjB,CAAC,EAEL,OAAO,EAAoB,CAAmB,iBAlIlD,IACA,IACA,IACA,IACA,IACA,IACA,IARA,YACA,yCCGA,IACA,IACA,IANA,IACA,KACA,IACA",
22
- "debugId": "A79E203B10C9D9C564756E2164756E21",
22
+ "debugId": "9D37C7C667F0C73664756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{a,b,c,d,e,f,g}from"./chunk-s9etcqcq.js";import"./chunk-j1j0438r.js";import"./chunk-fagkv8sm.js";import"./chunk-xh3qqmbk.js";export{g as fromEnv,c as ENV_SESSION,b as ENV_SECRET,a as ENV_KEY,d as ENV_EXPIRATION,e as ENV_CREDENTIAL_SCOPE,f as ENV_ACCOUNT_ID};
2
+ import{a,b,c,d,e,f,g}from"./chunk-bg2e7stx.js";import"./chunk-ye72q3kx.js";import"./chunk-ty3kycy4.js";import"./chunk-mpreff3t.js";export{g as fromEnv,c as ENV_SESSION,b as ENV_SECRET,a as ENV_KEY,d as ENV_EXPIRATION,e as ENV_CREDENTIAL_SCOPE,f as ENV_ACCOUNT_ID};
3
3
 
4
4
  //# debugId=30E142423ED216F064756E2164756E21
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{bk as n,ck as k,ek as T0}from"./chunk-dcwsya9e.js";import{fk as S0}from"./chunk-h5s56wzw.js";import{hk as N0,ik as R0,jk as Q0,lk as D,nk as q,wk as B0}from"./chunk-73svx8gr.js";import{Lk as X0}from"./chunk-ambptjfh.js";import{gl as W0,jl as m}from"./chunk-ry9jard2.js";import{sl as M0}from"./chunk-8z1z4zbq.js";class y{table;sql;dialect;connection;busyTimeout;configured;constructor(z,V={}){let Y=V.table??"gemi_locks";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(Y))throw Error(`The lock table name "${Y}" is not a plain identifier. Use letters, digits and underscores.`);this.table=Y,this.sql=z.sql,this.dialect=z.dialect,this.connection=z.name,this.busyTimeout=V.busyTimeout??1000}async createTable(){await this.configure();for(let z of v0(this.dialect,this.table))await this.sql.unsafe(z)}async acquire(z,V,Y){await this.configure();let Z=this.sql,$=this.now(Z);if(await this.seed(Z,z),this.mysql){let H=await Z`
2
+ import{ck as n,dk as k,fk as T0}from"./chunk-vv8vjjez.js";import{gk as S0}from"./chunk-ecv4mtgh.js";import{ik as N0,jk as R0,kk as Q0,mk as D,ok as q,xk as B0}from"./chunk-wtdmwmm7.js";import{Mk as X0}from"./chunk-7gnspwra.js";import{hl as W0,kl as m}from"./chunk-nadkwh8a.js";import{tl as M0}from"./chunk-m906xc76.js";class y{table;sql;dialect;connection;busyTimeout;configured;constructor(z,V={}){let Y=V.table??"gemi_locks";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(Y))throw Error(`The lock table name "${Y}" is not a plain identifier. Use letters, digits and underscores.`);this.table=Y,this.sql=z.sql,this.dialect=z.dialect,this.connection=z.name,this.busyTimeout=V.busyTimeout??1000}async createTable(){await this.configure();for(let z of v0(this.dialect,this.table))await this.sql.unsafe(z)}async acquire(z,V,Y){await this.configure();let Z=this.sql,$=this.now(Z);if(await this.seed(Z,z),this.mysql){let H=await Z`
3
3
  UPDATE ${this.name(Z)}
4
4
  SET owner = ${V}, token = token + 1, expires_at = ${$} + ${this.ms(Z,Y)},
5
5
  updated_at = ${$}
@@ -411,6 +411,6 @@ ADD COLUMN IF NOT EXISTS "progress" ${Y}`,`CREATE INDEX IF NOT EXISTS "${V}_batc
411
411
  }
412
412
  };
413
413
  `],"worker.ts"),$=URL.createObjectURL(Z);return new Worker($)}async function d0(z,V){let Y=w0();return Y.postMessage({jobName:z,args:V}),await new Promise((Z,$)=>{Y.onmessage=(X)=>{let H=X.data;if("error"in H)$(H.error);else Z(H.result)}})}var c0=new k0("gemi.queue"),l0=60000;class h{static token="queue";jobs={};config;driver;application;inFlight=new Map;state="idle";looping=!1;claiming;woken=!1;claimFailures=0;resume;unsubscribe;heartbeatTimer;releasedNames=new Set;lockManager;workflowRuntime;constructor(z={},V={}){if(this.config=S0(D0(),z),this.application=V.application,this.driver=r0(this.config.driver,this.application),this.useJobs(this.config.jobs),this.config.workflows.length>0)this.useWorkflows(this.config.workflows)}useJobs(z){this.config.jobs=z,this.jobs={};for(let V of z)this.claim(V);this.registerTickJob()}useWorkflows(z){this.config.workflows=z,this.workflows.use(z),this.registerTickJob()}get registeredWorkflows(){return[...this.config.workflows]}get workflows(){return this.workflowRuntime??=new H0(this),this.workflowRuntime}registerTickJob(){if(!this.workflowRuntime||Object.keys(this.workflowRuntime.workflows).length===0)return;let z=this.workflowRuntime.tickJob;if(this.jobs[z.name]&&this.jobs[z.name]!==z){console.error(`A queued job is named "${z.name}", which the workflow runtime uses. Workflows will not run until it is renamed.`);return}this.jobs[z.name]=z}registerJob(z){this.config.jobs=[...this.config.jobs,z],this.claim(z)}claim(z){if(this.jobs[z.name]){console.error(`Two queued jobs are named "${z.name}" \u2014 the first is registered `+"and this one is not, so dispatching either would have run one of them. A class name is the queue's key, so only one job can hold it. Rename one.");return}this.jobs[z.name]=z}get registeredJobs(){return[...this.config.jobs]}dispatchJob(z,V){if(this.jobs[z])return new this.jobs[z]().run(JSON.parse(V))}push(z,V,Y={}){let Z=this.uniqueKey(z,V);if(Z)return this.pushUnique(z,V,Z,Y);let $=this.driver.joinsTransaction?.()===!0;if(!$){let X=Bun.randomUUIDv7();if(D(()=>this.record(z,V,{id:X,reportFailure:!0,committed:!0}).then(()=>{},()=>{})))return Promise.resolve(X)}return this.record(z,V,{reportFailure:Y.reportFailure,joins:$})}pushBatch(z,V,Y={}){let Z=this.buildBatch(z,V,Y),$={id:Z.id,total:V.length},X=this.driver.joinsTransaction?.()===!0;if(!X){if(D(()=>this.recordBatch(Z,{committed:!0}).then(()=>{},()=>{})))return Promise.resolve($)}return this.recordBatch(Z,{joins:X}).then(()=>$)}buildBatch(z,V,Y={}){if(!this.driver.enqueueBatch)throw Error("This queue's driver does not support batches. The memory and database drivers do.");if(new z().worker)throw Error(`${z.name} is a worker job, and a worker job cannot be dispatched in a batch: its thread has no way to report progress or reach the batch.`);if(z.prototype.uniqueId!==S.prototype.uniqueId)throw Error(`${z.name} is unique (it defines uniqueId), and a unique job cannot be dispatched in a batch: a duplicate would resolve to a job outside the batch, and the batch would wait for it forever.`);let $={};for(let X of["then","catch","finally"]){let H=Y[X];if(H===void 0)continue;if(typeof H?.name!=="string"||!Array.isArray(H.args))throw Error(`The batch's ${X} callback is not a job call. Build it with SomeJob.with(...args).`);$[X]={name:H.name,args:H.args}}return{id:Bun.randomUUIDv7(),name:Y.name??null,job:z.name,args:V,allowFailures:Y.allowFailures===!0,callbacks:$}}recordBatch(z,V){let Y=this.driver.enqueueBatch(z);this.startIfIdle();let Z=()=>!this.driver.subscribe&&this.state==="running"&&this.wake(),$=V.joins===!0&&D(Z);return Y.then(()=>$||Z(),(X)=>{if(!V.committed)return;console.error(`[gemi] The queue driver could not record a batch of ${z.job}, which was held until its transaction committed. The transaction stays committed; the batch's jobs did not run and will not be retried.`,X)}),Y}async findBatch(z){if(!this.driver.findBatch)throw Error("This queue's driver does not support batches.");return this.driver.findBatch(z)}async cancelBatch(z){if(!this.driver.cancelBatch)throw Error("This queue's driver does not support batches.");let V=await this.driver.cancelBatch(z);if(V)this.claimSoon();return V}get locks(){return this.lockManager??=new T0(this.resolveLockStore()),this.lockManager}resolveLockStore(){let z=this.config.locks;if(z==="auto"){let V=this.driver.lockStore?.();if(V)return V;if(this.durable)console.warn('[gemi] The queue driver keeps no locks, so unique jobs, withoutOverlapping and onOneServer only hold within this process. Set the queue slice\'s `locks` to "database" or a LockStore.');return new p}if(z==="memory")return new p;if(z==="database"||typeof z==="function"){if(!this.application&&(z==="database"||z.length>0))throw Error("The queue's locks need the application they belong to, and this QueueManager was built without one. Pass { application }.");if(z==="database")return new y(this.application.make(X0));return z(this.application)}if(typeof z==="string")throw Error(`Unknown queue locks "${z}". The queue slice's locks is "auto", "memory", "database", a LockStore, or a function returning one.`);return z}uniqueKey(z,V){if(z.prototype.uniqueId===S.prototype.uniqueId)return;let Y=new z,Z=Y.uniqueId(...JSON.parse(V));if(Z===void 0||Z===null||Z==="")return;return{key:L0(z.name,Z),ttl:Math.max(1,Y.uniqueFor)}}pushUnique(z,V,Y,Z){let $=Bun.randomUUIDv7();if(D(()=>this.recordUnique(z,V,Y,$,{report:!0,committed:!0}).then(()=>{},()=>{})))return Promise.resolve($);return this.recordUnique(z,V,Y,$,{report:Z.reportFailure!==!1,committed:!1})}recordUnique(z,V,Y,Z,$){let X=this.locks.store,H=(async()=>{for(let G=0;G<5;G++){if(await X.acquire(Y.key,Z,Y.ttl)!==null)try{return await this.record(z,V,{id:Z,reportFailure:!1})}catch(B){throw await X.release(Y.key,Z).catch(()=>{}),B}let Q=await X.holder(Y.key);if(Q)return Q.owner}throw Error(`The unique key "${Y.key}" kept changing hands, so ${z.name} was not queued.`)})();return H.catch((G)=>{if(!$.report)return;console.error(`[gemi] The queue could not record the unique job ${z.name}`+($.committed?", which was held until its transaction committed. The transaction stays committed; the job did not run and will not be retried.":", so it did not run and will not be retried."),G)}),H}async releaseUnique(z,V,Y){if(z.uniqueId===S.prototype.uniqueId)return;try{let Z=z.uniqueId(...V);if(Z===void 0||Z===null||Z==="")return;await this.locks.store.release(L0(Y.name,Z),Y.id)}catch(Z){console.error(`[gemi] Could not free the unique key of ${Y.name} (${Y.id}); it frees itself after uniqueFor.`,Z)}}record(z,V,Y){let Z=this.driver.enqueue({name:z.name,args:V,...Y.id===void 0?{}:{id:Y.id}});this.startIfIdle();let $=()=>!this.driver.subscribe&&this.state==="running"&&this.wake(),X=Y.joins===!0&&D($);return Z.then(()=>X||$(),(H)=>{if(Y.reportFailure===!1)return;console.error(`[gemi] The queue driver could not record ${z.name}`+(Y.committed?", which was held until its transaction committed. The transaction stays committed; the job did not run and will not be retried.":", so it did not run and will not be retried."),H)}),Z}async retryDead(z){if(!this.driver.retryDead)throw Error("This queue's driver keeps nothing of a dead-lettered job, so there is nothing to retry. The database driver keeps them.");let V=await this.driver.retryDead(z);if(V)this.claimSoon();return V}startIfIdle(){if(this.state==="idle"&&(!this.durable||this.mayClaimHere()))this.start()}claimSoon(){if(this.startIfIdle(),!this.driver.subscribe&&this.state==="running")this.wake()}start(){if(this.state==="running")return;if(this.state="running",this.durable&&this.application&&this.mayClaimHere()&&!i0())globalThis.__gemiDevQueue=this;if(this.unsubscribe=this.driver.subscribe?.(()=>this.wake()),this.looping)return this.wake();c0.runInAsyncScope(()=>void this.loop())}async drain(z=1/0){if(this.state="stopped",globalThis.__gemiDevQueue===this)globalThis.__gemiDevQueue=void 0;this.unsubscribe?.(),this.unsubscribe=void 0,this.wake();let V,Y=new Promise(($)=>{if(z!==1/0)V=setTimeout($,z)}),Z=(async()=>{await this.claiming?.catch(()=>{}),await Promise.allSettled([...this.inFlight.values()].map(($)=>$.done))})();return await Promise.race([Z,Y]),clearTimeout(V),{unfinished:[...this.inFlight.values()].map(($)=>({...$.job}))}}stop(){return this.drain(0)}get running(){return this.inFlight.size}async loop(){this.looping=!0;try{await this.claimWhileRunning()}finally{this.looping=!1}}async claimWhileRunning(){while(this.state==="running"){let z=this.durable&&M0()?0:this.config.concurrency-this.inFlight.size;if(z>0){this.woken=!1;let V=this.driver.claim(z,{...this.lease(),registered:{names:Object.keys(this.jobs),graceMs:this.config.unknownJobGrace}});this.claiming=V;let Y=[];try{Y=await V,this.claimFailures=0}catch(Z){this.claimFailures++,console.error(`The queue could not claim jobs from its driver; it will try again in ${this.retryDelay()}ms.`,Z)}finally{this.claiming=void 0}for(let Z of Y)this.execute(Z);if(Y.length===z)continue;if(this.woken&&this.inFlight.size<this.config.concurrency)continue}await this.sleep()}}sleep(){return new Promise((z)=>{let V,Y=this.claimFailures>0?this.retryDelay():this.driver.subscribe?void 0:this.config.pollInterval;if(Y!==void 0)V=setTimeout(()=>this.wake(),Y),V.unref?.();this.resume=()=>{clearTimeout(V),z()}})}retryDelay(){let z=Math.min(Math.max(0,this.claimFailures-1),30);return Math.min(this.config.pollInterval*2**z,l0)}wake(){this.woken=!0;let z=this.resume;this.resume=void 0,z?.()}get durable(){return!(this.driver instanceof i)}mayClaimHere(){return!this.application||s0()}lease(){return{visibilityTimeoutMs:this.config.visibilityTimeout}}execute(z){let V=`${z.id}:${z.attempt}`,Y=()=>this.run(z),Z=(this.application?W0.run(this.application,Y):Y()).catch(($)=>{console.error(`The queue could not record the outcome of ${z.name}.`,$)}).finally(()=>{this.inFlight.delete(V),this.wake()});this.inFlight.set(V,{job:z,done:Z}),this.heartbeat()}heartbeat(){let z=this.driver;if(!z.heartbeat||this.heartbeatTimer)return;this.heartbeatTimer=setInterval(()=>{if(this.inFlight.size===0){clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0;return}let V=[...this.inFlight.values()].map((Y)=>Y.job);z.heartbeat(V,this.lease()).catch((Y)=>{console.error("The queue could not extend its job leases.",Y)})},Math.max(1,Math.floor(this.config.visibilityTimeout/3))),this.heartbeatTimer.unref?.()}async run(z){let V=this.jobs[z.name];if(!V){let B=Date.now()-z.createdAt;if(this.durable&&B<this.config.unknownJobGrace){if(!this.releasedNames.has(z.name))this.releasedNames.add(z.name),console.error(`Left a queued "${z.name}" for another replica: nothing is registered here under that name. It is dead-lettered if no replica has run it within unknownJobGrace (${this.config.unknownJobGrace}ms) of its dispatch.`);await this.driver.release(z,{retryInMs:Math.round(this.config.pollInterval*(1+Math.random()))});return}console.error(`Dropped a queued job: nothing is registered under the name "${z.name}". If the class exists, it was not `+"discovered \u2014 check that it is under the queue slice's jobsDir "+"(app/jobs by default), or list it in app/config/queue.ts."),await this.driver.fail(z,{error:`No job is registered under the name "${z.name}".`,retryInMs:null});return}let Y;try{Y=new V}catch(B){console.error(`Dropped a queued ${z.name}: it could not be constructed.`,B),await this.driver.fail(z,{error:`The job could not be constructed: ${String(B)}`,retryInMs:null});return}let Z;try{Z=JSON.parse(z.args)}catch(B){console.error(`Dropped a queued ${z.name}: its arguments are not JSON.`,B),await this.driver.fail(z,{error:`The arguments are not JSON: ${String(B)}`,retryInMs:null});return}if(z.attempt>Math.max(1,Y.maxAttempts)){let B=Error(`${z.name} was claimed for attempt ${z.attempt} of ${Y.maxAttempts}: an earlier attempt never finished, most likely because the process running it exited. Dead-lettered without running it again.`);$0(`${z.name}.onDeadletter`,()=>Y.onDeadletter(B,...Z)),await this.driver.fail(z,{error:B.message,retryInMs:null}),await this.releaseUnique(Y,Z,z);return}if(Y.$claimed={...z},z.batchId!==void 0){if((await this.driver.findBatch?.(z.batchId,{progress:!1}))?.cancelledAt!=null){await this.driver.fail(z,{error:"Its batch was cancelled before it ran.",retryInMs:null,cancelled:!0});return}let K=this.batchHandle(z);Y.batch=K.batch,Y.$progress=K.progress}let $=await this.admit(Y,Z,z);if(!$)return;let X,H;try{H=await(Y.worker?d0(z.name,z.args):Y.run(...Z))}catch(B){X=B}finally{await $.done()}let G=Y.$outcome;if(X===void 0&&G?.kind==="release"){await this.driver.release(z,{retryInMs:Math.max(0,G.delayMs)});return}if(X===void 0&&G?.kind==="fail")X=G.error;let Q=G?.kind==="fail"?G.retry:!0;if(X===void 0)try{Y.onSuccess(H,...Z)}catch(B){X=B}if(X!==void 0){let B=String(X?.stack??X);if($0(`${z.name}.onFail`,()=>Y.onFail(X,...Z)),!Q||z.attempt>=Y.maxAttempts)$0(`${z.name}.onDeadletter`,()=>Y.onDeadletter(X,...Z)),await this.driver.fail(z,{error:B,retryInMs:null}),await this.releaseUnique(Y,Z,z);else await this.driver.fail(z,{error:B,retryInMs:s(Y.backoff,z.attempt)});return}await this.driver.complete(z),await this.releaseUnique(Y,Z,z)}batchHandle(z){let V=z.batchId,Y=this.driver;return{batch:{id:V,cancelled:async()=>(await Y.findBatch?.(V,{progress:!1}))?.cancelledAt!=null},progress:(Z)=>Y.reportProgress?.(z,Z)??Promise.resolve()}}async admit(z,V,Y){let Z=z.concurrency(...V),$=[z.throttle(...V)??[]].flat();if(!Z&&$.length===0)return{done:async()=>{}};let X=this.locks,H;if(Z&&Z.limit>0){let Q=this.config.visibilityTimeout;for(let B=0;B<Z.limit&&!H;B++)H=await X.acquire(`gemi:concurrency:${Z.key}:${B}`,{ttl:Q,renew:!0})??void 0;if(!H){await this.driver.release(Y,{retryInMs:Math.round(this.config.pollInterval*(1+Math.random()))});return}}let G=[];for(let Q of $){let B=`gemi:throttle:${Q.key}`,K=await X.store.hit(B,Q.limit,Q.window);if(!K.allowed){await Promise.all(G.map((A)=>X.store.refund(A))),await H?.release(),await this.driver.release(Y,{retryInMs:Math.max(1,K.resetInMs)});return}G.push(B)}return{done:async()=>{await H?.release().catch((Q)=>{console.error(`[gemi] Could not free a concurrency slot of ${Y.name}.`,Q)})}}}}function L0(z,V){return`gemi:job:${z}:${String(V)}`}function $0(z,V){try{V()}catch(Y){console.error(`${z} threw; the job's claim was ended anyway.`,Y)}}function i0(){return Bun.env.NODE_ENV==="production"}function s0(){if(!p0)return!1;if(a0())return!0;return process.env.ROOT_DIR!==void 0&&!n0()}function n0(z=process.env){return(z.GEMI_QUEUE_CLAIM??"").trim().toLowerCase()==="off"}var x0=Symbol.for("gemi.queue.worker");function cz(z=!0){globalThis[x0]=z}function a0(){return globalThis[x0]===!0}function r0(z,V){if(z==="memory")return new i;if(z==="database"||typeof z==="function"){if(!V&&(z==="database"||z.length>0))throw Error("The queue driver needs the application it belongs to, and this QueueManager was built without one. Pass { application }.");if(z==="database")return new z0(V.make(X0));return z(V)}if(typeof z==="string")throw Error(`Unknown queue driver "${z}". The queue slice's driver is "memory", "database", a QueueDriver, or a function returning one.`);return z}class S{static name="unset";worker=!1;maxAttempts=3;backoff=0;uniqueId(...z){return}uniqueFor=3600000;throttle(...z){return}concurrency(...z){return}release(z=0){this.$outcome={kind:"release",delayMs:z}}fail(z,V={}){this.$outcome={kind:"fail",error:z instanceof Error?z:Error(String(z)),retry:V.retry??!0}}batch=void 0;async progress(z){let V=E(z);await this.$progress?.(V)}$progress;$claimed;$outcome;run(...z){}onFail(z,...V){}onSuccess(z,...V){}onDeadletter(z,...V){}static dispatch(...z){if(this.name==="unset")throw Error("Cannot dispatch a job with no name");return m(h).push(this,JSON.stringify(z))}static dispatchBatch(z,V={}){if(this.name==="unset")throw Error("Cannot dispatch a job with no name");return m(h).pushBatch(this,z.map((Y)=>JSON.stringify(Y)),V)}static with(...z){if(this.name==="unset")throw Error("Cannot use a job with no name as a callback");return JSON.stringify(z),{name:this.name,args:z}}static findBatch(z){return m(h).findBatch(z)}static cancelBatch(z){return m(h).cancelBatch(z)}}var r=["completed","failed","cancelled"],t0=1000;class H0{queue;registry={};storeInstance;tickClass;reportedNames=new Set;constructor(z){this.queue=z}get workflows(){return this.registry}use(z){this.registry={};for(let V of z){if(V.name==="unset"||!V.name){console.error("A workflow class has no `static name`, so it was not registered. Add one.");continue}if(this.registry[V.name]){console.error(`Two workflows are named "${V.name}" \u2014 the first is registered `+"and this one is not. A workflow's name is its key in storage. Rename one.");continue}this.registry[V.name]=V}}get tickJob(){return this.tickClass??=o0(this),this.tickClass}get store(){if(!this.storeInstance){let z=this.queue.driver.workflowStore?.();if(!z||!this.queue.driver.enqueueBatch)throw Error("This queue's driver does not support workflows. The memory and database drivers do.");this.storeInstance=z}return this.storeInstance}start(z,V){if(z.name==="unset"||!z.name)throw Error("Cannot start a workflow with no name");let Y=this.store,Z={id:Bun.randomUUIDv7(),name:z.name,args:u(V,`The arguments of ${z.name}`)??"[]"},$=()=>this.queue.claimSoon(),X=Y.joinsTransaction?.()===!0;if(!X){if(D(()=>Y.create(Z).then($,(B)=>{console.error(`[gemi] The queue could not record the workflow ${z.name}, which was held until its transaction committed. The transaction stays committed; the workflow did not start.`,B)})))return Promise.resolve(Z.id)}let H=Y.create(Z),G=X&&D($);return H.then(()=>{if(!G)$();return Z.id})}async signal(z,V,Y){if(typeof V!=="string"||V.length===0||V.length>191)throw TypeError("A signal key is a string of 1 to 191 characters.");let Z=u(Y,`The payload of signal "${V}"`),$=await this.store.update(z,{key:V},({workflow:X,step:H,now:G})=>{if(r.includes(X.status)||X.status==="cancelling")return{result:!1};if(!H)return{result:!0,step:{workflowId:z,key:V,status:"signalled",attempt:0,output:Z,error:null,batchId:null,wakeAt:null,startedAt:null,finishedAt:G,createdAt:G,updatedAt:G}};if(H.status!=="waiting")return{result:!1};return{result:!0,step:{...H,status:"signalled",output:Z,wakeAt:H.wakeAt,finishedAt:G},tick:{delayMs:0}}});if($)this.queue.claimSoon();return $===!0}async cancel(z){let V=await this.store.update(z,{allSteps:!0},({workflow:Y,steps:Z})=>{if(r.includes(Y.status)||Y.status==="cancelling")return{result:!1};return{result:!0,workflow:{status:"cancelling"},cancelBatches:Z.filter(($)=>$.status==="batching"&&$.batchId!==null).map(($)=>$.batchId),tick:{delayMs:0}}});if(V)this.queue.claimSoon();return V===!0}async find(z){let V=await this.store.find(z);if(!V)return null;let{workflow:Y,steps:Z}=V,$=[];try{$=JSON.parse(Y.args)}catch{}return{id:Y.id,name:Y.name,status:Y.status,args:$,currentStep:Y.currentStep,progress:Y.progress,result:e0(Y.result),error:Y.error,steps:await Promise.all(Z.map(async(X)=>{let H={key:X.key,status:X.status,attempt:X.attempt,error:X.error,batchId:X.batchId,wakeAt:X.wakeAt,startedAt:X.startedAt,finishedAt:X.finishedAt};if(X.batchId===null)return H;let G=await this.queue.driver.findBatch?.(X.batchId);return G?{...H,progress:G.progress}:H})),createdAt:Y.createdAt,updatedAt:Y.updatedAt}}async tick(z,V){let Y=this.store,Z=V.$claimed,$=Z?`${Z.id}:${Z.attempt}`:`${crypto.randomUUID()}:1`,X=Math.max(1,this.queue.config.visibilityTimeout),H=await Y.acquire(z,$,X);if(H.kind!=="acquired")return;let{workflow:G}=H,Q=(J={})=>Y.update(z,{owner:$},()=>({...J,result:void 0,unlock:!0})).then(()=>this.queue.claimSoon()).catch((P)=>{if(!(P instanceof R))throw P});if(r.includes(G.status))return Q();let B=this.registry[G.name];if(!B)return this.unknown(G,V,Q);let K;try{K=JSON.parse(G.args)}catch(J){return Q({workflow:{status:"failed",error:`The arguments are not JSON: ${a(J)}`}})}let A=setInterval(()=>{Y.renew(z,$,X).catch((J)=>{console.error(`[gemi] Could not extend the hold on workflow ${z}.`,J)})},Math.max(1,Math.floor(X/3)));A.unref?.();let U=G.status==="cancelling",F=new Z0({workflowId:z,owner:$,store:Y,steps:H.steps,cancelling:U,findBatch:(J)=>this.queue.driver.findBatch?.(J,{progress:!1})??Promise.resolve(null),buildBatch:(J,P,N)=>this.queue.buildBatch(J,P.map((C)=>JSON.stringify(C)),{name:N.name,allowFailures:N.allowFailures,finally:{name:I,args:[z]}}),scheduled:()=>this.queue.claimSoon(),cancelCheckMs:t0});try{let J;try{let P=new B,N=await(U?P.onCancel(F,...K):P.run(F,...K));J=F.suspension?{kind:"suspended"}:{kind:"completed",result:U?null:u(N,`The result of ${G.name}`)}}catch(P){if(J=F.suspension||P instanceof g?{kind:"suspended"}:{kind:"failed",error:a(P)},P instanceof R)F.lost=!0}if(await F.settled(),F.lost)return;if(J.kind==="completed"&&F.suspension)J={kind:"suspended"};await Y.update(z,{owner:$},({workflow:P,now:N})=>this.finish(P,J,F,U,N)),this.queue.claimSoon()}catch(J){if(J instanceof R)return;throw J}finally{clearInterval(A)}}finish(z,V,Y,Z,$){let X={result:void 0,unlock:!0};if(z.status==="cancelling"&&!Z)return{...X,tick:{delayMs:0}};if(V.kind==="completed")return{...X,workflow:Z?{status:"cancelled",currentStep:null,wakeAt:null}:{status:"completed",result:V.result,progress:1,currentStep:null,wakeAt:null,error:null}};if(V.kind==="failed")return{...X,workflow:{status:Z?"cancelled":"failed",error:V.error,wakeAt:null}};let H=Y.suspension??{status:"waiting",wakes:[]},G={...X,workflow:{status:Z?"cancelling":H.status,currentStep:Y.current??z.currentStep}};if(H.wakes.length>0){let Q=Math.min(...H.wakes);if(!(z.wakeAt!==null&&z.wakeAt>$&&z.wakeAt<=Q))G.tick={delayMs:Math.max(0,Q-$)},G.workflow.wakeAt=Q}return G}async unknown(z,V,Y){let Z=Date.now()-z.createdAt;if(this.queue.durable&&Z<this.queue.config.unknownJobGrace){if(!this.reportedNames.has(z.name))this.reportedNames.add(z.name),console.error(`Left workflow "${z.name}" for another replica: nothing is registered here under that name.`);await Y(),V.release(Math.round(this.queue.config.pollInterval*(1+Math.random())));return}console.error(`Failed workflow ${z.id}: nothing is registered under the name "${z.name}". If the class exists, it was not discovered: check that it is under the queue slice's workflowsDir (app/workflows by default), or list it in app/config/queue.ts.`),await Y({workflow:{status:"failed",error:`No workflow is registered under the name "${z.name}".`}})}tickDeadLettered(z,V){console.error(`[gemi] The tick of workflow ${z} was dead-lettered.`,V),this.store.update(z,{},({workflow:Y})=>r.includes(Y.status)?{result:void 0}:{result:void 0,workflow:{status:"failed",error:`Its tick job was dead-lettered: ${V.message}`},unlock:!0}).catch(()=>{})}}function o0(z){return class extends S{static name=I;maxAttempts=20;backoff=[1000,5000,15000,30000,60000];async run(Y){await z.tick(Y,this)}onDeadletter(Y,Z){z.tickDeadLettered(Z,Y)}}}function e0(z){try{return _(z)}catch{return z}}
414
- export{y as Od,p as Pd,o as Qd,U0 as Rd,z0 as Sd,Az as Td,D0 as Ud,V0 as Vd,i as Wd,I0 as Xd,Y0 as Yd,E0 as Zd,O0 as _d,Z0 as $d,H0 as ae,h as be,s0 as ce,n0 as de,cz as ee,a0 as fe,S as ge};
414
+ export{y as Pd,p as Qd,o as Rd,U0 as Sd,z0 as Td,Az as Ud,D0 as Vd,V0 as Wd,i as Xd,I0 as Yd,Y0 as Zd,E0 as _d,O0 as $d,Z0 as ae,H0 as be,h as ce,s0 as de,n0 as ee,cz as fe,a0 as ge,S as he};
415
415
 
416
- //# debugId=94AFBA8F6768BBC064756E2164756E21
416
+ //# debugId=68B2EAA875FE570C64756E2164756E21
@@ -18,6 +18,6 @@
18
18
  "import { deferUntilCommit } from \"../../../orm/context\";\nimport { Job } from \"../Job\";\nimport type { QueueManager } from \"../QueueManager\";\nimport {\n Step,\n WorkflowSuspended,\n decode,\n describe,\n encode,\n} from \"./Step\";\nimport type { WorkflowClass, WorkflowStatus } from \"./Workflow\";\nimport {\n WORKFLOW_TICK_JOB,\n type WorkflowChange,\n WorkflowLeaseLostError,\n type WorkflowRecord,\n type WorkflowRunStatus,\n type WorkflowStore,\n} from \"./WorkflowStore\";\n\nconst ENDED: readonly WorkflowRunStatus[] = [\"completed\", \"failed\", \"cancelled\"];\n\n/** How often a running `step.run` checks whether its workflow was cancelled. */\nconst CANCEL_CHECK_MS = 1000;\n\ntype Outcome =\n | { kind: \"completed\"; result: string | null }\n | { kind: \"failed\"; error: string }\n | { kind: \"suspended\" };\n\n/**\n * The queue's half of workflows: the registry of workflow classes, what\n * `Workflow.start`, `signal`, `find` and `cancel` do, and the tick.\n *\n * ### The tick\n *\n * A workflow advances only inside its tick job, which takes the workflow\n * from the store for a lease (the queue's `visibilityTimeout`, renewed while\n * it runs), runs one pass of `run`, and lets go with the outcome written in\n * the same step. Every write of the pass is fenced by that hold, so a tick\n * that lost it (it was too slow and another took over) changes nothing.\n *\n * A tick that finds the workflow held by another is dropped, after marking\n * the workflow so the holder enqueues a fresh tick when it lets go: a signal\n * that lands mid-pass is never lost, and two passes of one workflow never\n * overlap. A tick that failed or died holds the workflow under its job's id,\n * so its own retry takes it straight back.\n */\nexport class WorkflowRuntime {\n private registry: Record<string, WorkflowClass> = {};\n private storeInstance: WorkflowStore | undefined;\n private tickClass: (new () => Job) | undefined;\n private readonly reportedNames = new Set<string>();\n\n constructor(private readonly queue: QueueManager) {}\n\n /** The workflow classes this process can run, by `static name`. */\n get workflows(): Readonly<Record<string, WorkflowClass>> {\n return this.registry;\n }\n\n /** Replaces the registry. The first class to claim a name wins. */\n use(workflows: readonly WorkflowClass[]) {\n this.registry = {};\n for (const workflow of workflows) {\n if (workflow.name === \"unset\" || !workflow.name) {\n console.error(\n `A workflow class has no \\`static name\\`, so it was not registered. Add one.`,\n );\n continue;\n }\n if (this.registry[workflow.name]) {\n console.error(\n `Two workflows are named \"${workflow.name}\" — the first is registered ` +\n `and this one is not. A workflow's name is its key in storage. Rename one.`,\n );\n continue;\n }\n this.registry[workflow.name] = workflow;\n }\n }\n\n /** The internal job a workflow's passes run in, one class per manager. */\n get tickJob(): new () => Job {\n this.tickClass ??= tickJobFor(this);\n return this.tickClass;\n }\n\n get store(): WorkflowStore {\n if (!this.storeInstance) {\n const store = this.queue.driver.workflowStore?.();\n if (!store || !this.queue.driver.enqueueBatch) {\n throw new Error(\n `This queue's driver does not support workflows. The memory and ` +\n `database drivers do.`,\n );\n }\n this.storeInstance = store;\n }\n return this.storeInstance;\n }\n\n start(workflow: WorkflowClass, args: unknown[]): Promise<string> {\n if (workflow.name === \"unset\" || !workflow.name) {\n throw new Error(\"Cannot start a workflow with no name\");\n }\n const store = this.store;\n const record = {\n id: Bun.randomUUIDv7(),\n name: workflow.name,\n args: encode(args, `The arguments of ${workflow.name}`) ?? \"[]\",\n };\n const wake = () => this.queue.claimSoon();\n\n // As `QueueManager.push`: on the caller's transaction when the store\n // joins it, otherwise held until it commits.\n const joins = store.joinsTransaction?.() === true;\n if (!joins) {\n const held = deferUntilCommit(() =>\n store.create(record).then(wake, (error: unknown) => {\n console.error(\n `[gemi] The queue could not record the workflow ${workflow.name}, which ` +\n `was held until its transaction committed. The transaction stays ` +\n `committed; the workflow did not start.`,\n error,\n );\n }),\n );\n if (held) return Promise.resolve(record.id);\n }\n const written = store.create(record);\n const wakeAtCommit = joins && deferUntilCommit(wake);\n return written.then(() => {\n if (!wakeAtCommit) wake();\n return record.id;\n });\n }\n\n async signal(id: string, key: string, payload?: unknown): Promise<boolean> {\n if (typeof key !== \"string\" || key.length === 0 || key.length > 191) {\n throw new TypeError(`A signal key is a string of 1 to 191 characters.`);\n }\n const output = encode(payload, `The payload of signal \"${key}\"`);\n const taken = await this.store.update(id, { key }, ({ workflow, step, now }) => {\n if (ENDED.includes(workflow.status) || workflow.status === \"cancelling\") {\n return { result: false };\n }\n if (!step) {\n return {\n result: true,\n step: {\n workflowId: id,\n key,\n status: \"signalled\",\n attempt: 0,\n output,\n error: null,\n batchId: null,\n wakeAt: null,\n startedAt: null,\n finishedAt: now,\n createdAt: now,\n updatedAt: now,\n },\n };\n }\n if (step.status !== \"waiting\") return { result: false };\n return {\n result: true,\n step: { ...step, status: \"signalled\", output, wakeAt: step.wakeAt, finishedAt: now },\n tick: { delayMs: 0 },\n };\n });\n if (taken) this.queue.claimSoon();\n return taken === true;\n }\n\n async cancel(id: string): Promise<boolean> {\n const cancelled = await this.store.update(id, { allSteps: true }, ({ workflow, steps }) => {\n if (ENDED.includes(workflow.status) || workflow.status === \"cancelling\") {\n return { result: false };\n }\n return {\n result: true,\n workflow: { status: \"cancelling\" },\n cancelBatches: steps\n .filter((step) => step.status === \"batching\" && step.batchId !== null)\n .map((step) => step.batchId!),\n tick: { delayMs: 0 },\n };\n });\n if (cancelled) this.queue.claimSoon();\n return cancelled === true;\n }\n\n async find(id: string): Promise<WorkflowStatus | null> {\n const state = await this.store.find(id);\n if (!state) return null;\n const { workflow, steps } = state;\n let args: unknown[] = [];\n try {\n args = JSON.parse(workflow.args) as unknown[];\n } catch {}\n return {\n id: workflow.id,\n name: workflow.name,\n status: workflow.status,\n args,\n currentStep: workflow.currentStep,\n progress: workflow.progress,\n result: safeDecode(workflow.result),\n error: workflow.error,\n steps: await Promise.all(\n steps.map(async (step) => {\n const status = {\n key: step.key,\n status: step.status,\n attempt: step.attempt,\n error: step.error,\n batchId: step.batchId,\n wakeAt: step.wakeAt,\n startedAt: step.startedAt,\n finishedAt: step.finishedAt,\n };\n if (step.batchId === null) return status;\n const batch = await this.queue.driver.findBatch?.(step.batchId);\n return batch ? { ...status, progress: batch.progress } : status;\n }),\n ),\n createdAt: workflow.createdAt,\n updatedAt: workflow.updatedAt,\n };\n }\n\n /** One pass of the workflow `id`, run by its tick job. */\n async tick(id: string, job: Job): Promise<void> {\n const store = this.store;\n const claimed = job.$claimed;\n const owner = claimed\n ? `${claimed.id}:${claimed.attempt}`\n : `${crypto.randomUUID()}:1`;\n const lease = Math.max(1, this.queue.config.visibilityTimeout);\n const acquired = await store.acquire(id, owner, lease);\n if (acquired.kind !== \"acquired\") return;\n const { workflow } = acquired;\n\n const letGo = (change: Partial<WorkflowChange<undefined>> = {}) =>\n store\n .update(id, { owner }, () => ({ ...change, result: undefined, unlock: true }))\n .then(() => this.queue.claimSoon())\n .catch((error) => {\n if (!(error instanceof WorkflowLeaseLostError)) throw error;\n });\n\n if (ENDED.includes(workflow.status)) return letGo();\n\n const Class = this.registry[workflow.name];\n if (!Class) return this.unknown(workflow, job, letGo);\n\n let args: unknown[];\n try {\n args = JSON.parse(workflow.args) as unknown[];\n } catch (error) {\n return letGo({\n workflow: { status: \"failed\", error: `The arguments are not JSON: ${describe(error)}` },\n });\n }\n\n const renew = setInterval(\n () => {\n store.renew(id, owner, lease).catch((error) => {\n console.error(`[gemi] Could not extend the hold on workflow ${id}.`, error);\n });\n },\n Math.max(1, Math.floor(lease / 3)),\n );\n renew.unref?.();\n\n const cancelling = workflow.status === \"cancelling\";\n const step = new Step({\n workflowId: id,\n owner,\n store,\n steps: acquired.steps,\n cancelling,\n findBatch: (batchId) =>\n this.queue.driver.findBatch?.(batchId, { progress: false }) ?? Promise.resolve(null),\n buildBatch: (batchJob, tuples, options) =>\n this.queue.buildBatch(\n batchJob,\n tuples.map((tuple) => JSON.stringify(tuple)),\n {\n name: options.name,\n allowFailures: options.allowFailures,\n finally: { name: WORKFLOW_TICK_JOB, args: [id] },\n },\n ),\n scheduled: () => this.queue.claimSoon(),\n cancelCheckMs: CANCEL_CHECK_MS,\n });\n\n try {\n let outcome: Outcome;\n try {\n const instance = new Class();\n const value = await (cancelling\n ? instance.onCancel(step, ...args)\n : instance.run(step, ...args));\n outcome = step.suspension\n ? { kind: \"suspended\" }\n : {\n kind: \"completed\",\n result: cancelling ? null : encode(value, `The result of ${workflow.name}`),\n };\n } catch (error) {\n outcome =\n step.suspension || error instanceof WorkflowSuspended\n ? { kind: \"suspended\" }\n : { kind: \"failed\", error: describe(error) };\n if (error instanceof WorkflowLeaseLostError) step.lost = true;\n }\n // A step the code did not await (or one that ran beside a sleep in a\n // `Promise.all`) is still writing; it finishes inside this pass.\n await step.settled();\n if (step.lost) return;\n // One of those suspended the workflow after `run` had returned: it is\n // not done until that step is.\n if (outcome.kind === \"completed\" && step.suspension) outcome = { kind: \"suspended\" };\n\n await store.update(id, { owner }, ({ workflow: current, now }) =>\n this.finish(current, outcome, step, cancelling, now),\n );\n this.queue.claimSoon();\n } catch (error) {\n if (error instanceof WorkflowLeaseLostError) return;\n throw error;\n } finally {\n clearInterval(renew);\n }\n }\n\n /** The tick's last write: the pass's outcome, and letting go. */\n private finish(\n current: WorkflowRecord,\n outcome: Outcome,\n step: Step,\n cancelling: boolean,\n now: number,\n ): WorkflowChange<undefined> {\n const change: WorkflowChange<undefined> = { result: undefined, unlock: true };\n\n // Cancelled during this pass of `run`: `onCancel` is next, whatever the\n // pass came to.\n if (current.status === \"cancelling\" && !cancelling) {\n return { ...change, tick: { delayMs: 0 } };\n }\n\n if (outcome.kind === \"completed\") {\n return {\n ...change,\n workflow: cancelling\n ? { status: \"cancelled\", currentStep: null, wakeAt: null }\n : {\n status: \"completed\",\n result: outcome.result,\n progress: 1,\n currentStep: null,\n wakeAt: null,\n error: null,\n },\n };\n }\n if (outcome.kind === \"failed\") {\n return {\n ...change,\n workflow: { status: cancelling ? \"cancelled\" : \"failed\", error: outcome.error, wakeAt: null },\n };\n }\n\n const suspension = step.suspension ?? { status: \"waiting\" as const, wakes: [] };\n const next: WorkflowChange<undefined> = {\n ...change,\n workflow: {\n status: cancelling ? \"cancelling\" : suspension.status,\n currentStep: step.current ?? current.currentStep,\n },\n };\n if (suspension.wakes.length > 0) {\n const wakeAt = Math.min(...suspension.wakes);\n // A tick already scheduled no later than this one wakes the workflow\n // in time, and schedules this one itself; a second would only run the\n // pass twice.\n const scheduled =\n current.wakeAt !== null && current.wakeAt > now && current.wakeAt <= wakeAt;\n if (!scheduled) {\n next.tick = { delayMs: Math.max(0, wakeAt - now) };\n next.workflow!.wakeAt = wakeAt;\n }\n }\n return next;\n }\n\n /**\n * A tick for a workflow this process has no class for. During a\n * blue/green ramp that is usually one only the other release has, so on a\n * shared driver it goes back for another replica until `unknownJobGrace`\n * has passed since the workflow started; then it fails.\n */\n private async unknown(\n workflow: WorkflowRecord,\n job: Job,\n letGo: (change?: Partial<WorkflowChange<undefined>>) => Promise<void>,\n ) {\n const age = Date.now() - workflow.createdAt;\n if (this.queue.durable && age < this.queue.config.unknownJobGrace) {\n if (!this.reportedNames.has(workflow.name)) {\n this.reportedNames.add(workflow.name);\n console.error(\n `Left workflow \"${workflow.name}\" for another replica: nothing is ` +\n `registered here under that name.`,\n );\n }\n await letGo();\n job.release(Math.round(this.queue.config.pollInterval * (1 + Math.random())));\n return;\n }\n console.error(\n `Failed workflow ${workflow.id}: nothing is registered under the name ` +\n `\"${workflow.name}\". If the class exists, it was not discovered: check ` +\n `that it is under the queue slice's workflowsDir (app/workflows by ` +\n `default), or list it in app/config/queue.ts.`,\n );\n await letGo({\n workflow: {\n status: \"failed\",\n error: `No workflow is registered under the name \"${workflow.name}\".`,\n },\n });\n }\n\n /**\n * The tick job ran out of attempts, which only a store that stayed\n * unreachable causes. Fails the workflow if it still can, so it does not\n * sit in `running` with nothing left to advance it.\n */\n /** @internal */\n tickDeadLettered(id: string, error: Error) {\n console.error(`[gemi] The tick of workflow ${id} was dead-lettered.`, error);\n void this.store\n .update(id, {}, ({ workflow }) =>\n ENDED.includes(workflow.status)\n ? { result: undefined }\n : {\n result: undefined,\n workflow: {\n status: \"failed\",\n error: `Its tick job was dead-lettered: ${error.message}`,\n },\n unlock: true,\n },\n )\n .catch(() => {});\n }\n}\n\n/** The internal job a workflow's passes run in, bound to one runtime. */\nfunction tickJobFor(runtime: WorkflowRuntime): new () => Job {\n return class WorkflowTickJob extends Job {\n static name = WORKFLOW_TICK_JOB;\n // A tick fails only when the store cannot be reached (a workflow's own\n // errors are recorded, not thrown), so it keeps trying for a while rather\n // than leaving the workflow stuck.\n maxAttempts = 20;\n backoff = [1000, 5000, 15000, 30000, 60000];\n async run(id: string) {\n await runtime.tick(id, this);\n }\n onDeadletter(error: Error, id: string) {\n runtime.tickDeadLettered(id, error);\n }\n };\n}\n\nfunction safeDecode(output: string | null): unknown {\n try {\n return decode(output);\n } catch {\n return output;\n }\n}\n"
19
19
  ],
20
20
  "mappings": "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",
21
- "debugId": "94AFBA8F6768BBC064756E2164756E21",
21
+ "debugId": "68B2EAA875FE570C64756E2164756E21",
22
22
  "names": []
23
23
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Hl as t,Kl as A}from"./chunk-xh3qqmbk.js";var o=t((b)=>{var i=(r)=>typeof ArrayBuffer==="function"&&r instanceof ArrayBuffer||Object.prototype.toString.call(r)==="[object ArrayBuffer]";b.isArrayBuffer=i});var y=t((g)=>{var m=o(),f=A("buffer"),B=(r,e=0,u=r.byteLength-e)=>{if(!m.isArrayBuffer(r))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof r} (${r})`);return f.Buffer.from(r,e,u)},a=(r,e)=>{if(typeof r!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return e?f.Buffer.from(r,e):f.Buffer.from(r)};g.fromArrayBuffer=B;g.fromString=a});var x=t((w)=>{var n=y(),s=(r)=>{let e=n.fromString(r,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},h=(r)=>{if(typeof r==="string")return s(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)},p=(r)=>{if(typeof r==="string")return r;if(typeof r!=="object"||typeof r.byteOffset!=="number"||typeof r.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return n.fromArrayBuffer(r.buffer,r.byteOffset,r.byteLength).toString("utf8")};w.fromUtf8=s;w.toUint8Array=h;w.toUtf8=p});
2
+ import{Il as t,Ll as A}from"./chunk-mpreff3t.js";var o=t((b)=>{var i=(r)=>typeof ArrayBuffer==="function"&&r instanceof ArrayBuffer||Object.prototype.toString.call(r)==="[object ArrayBuffer]";b.isArrayBuffer=i});var y=t((g)=>{var m=o(),f=A("buffer"),B=(r,e=0,u=r.byteLength-e)=>{if(!m.isArrayBuffer(r))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof r} (${r})`);return f.Buffer.from(r,e,u)},a=(r,e)=>{if(typeof r!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return e?f.Buffer.from(r,e):f.Buffer.from(r)};g.fromArrayBuffer=B;g.fromString=a});var x=t((w)=>{var n=y(),s=(r)=>{let e=n.fromString(r,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},h=(r)=>{if(typeof r==="string")return s(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)},p=(r)=>{if(typeof r==="string")return r;if(typeof r!=="object"||typeof r.byteOffset!=="number"||typeof r.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return n.fromArrayBuffer(r.buffer,r.byteOffset,r.byteLength).toString("utf8")};w.fromUtf8=s;w.toUint8Array=h;w.toUtf8=p});
3
3
  export{o as $,y as aa,x as ba};
4
4
 
5
- //# debugId=7FA1C3E8945169AF64756E2164756E21
5
+ //# debugId=958C934BB90AC11564756E2164756E21
@@ -7,6 +7,6 @@
7
7
  "'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\n\nconst fromUtf8 = (input) => {\n const buf = utilBufferFrom.fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n\nconst toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return utilBufferFrom.fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n\nexports.fromUtf8 = fromUtf8;\nexports.toUint8Array = toUint8Array;\nexports.toUtf8 = toUtf8;\n"
8
8
  ],
9
9
  "mappings": ";+DAEA,IAAM,EAAgB,CAAC,IAAS,OAAO,cAAgB,YAAc,aAAe,aAChF,OAAO,UAAU,SAAS,KAAK,CAAG,IAAM,uBAEpC,gBAAgB,kBCHxB,IAAI,MACA,cAEE,EAAkB,CAAC,EAAO,EAAS,EAAG,EAAS,EAAM,WAAa,IAAW,CAC/E,GAAI,CAAC,EAAc,cAAc,CAAK,EAClC,MAAU,UAAU,2DAA2D,OAAO,MAAU,IAAQ,EAE5G,OAAO,EAAO,OAAO,KAAK,EAAO,EAAQ,CAAM,GAE7C,EAAa,CAAC,EAAO,IAAa,CACpC,GAAI,OAAO,IAAU,SACjB,MAAU,UAAU,8DAA8D,OAAO,MAAU,IAAQ,EAE/G,OAAO,EAAW,EAAO,OAAO,KAAK,EAAO,CAAQ,EAAI,EAAO,OAAO,KAAK,CAAK,GAG5E,kBAAkB,EAClB,aAAa,kBCjBrB,IAAI,MAEE,EAAW,CAAC,IAAU,CACxB,IAAM,EAAM,EAAe,WAAW,EAAO,MAAM,EACnD,OAAO,IAAI,WAAW,EAAI,OAAQ,EAAI,WAAY,EAAI,WAAa,WAAW,iBAAiB,GAG7F,EAAe,CAAC,IAAS,CAC3B,GAAI,OAAO,IAAS,SAChB,OAAO,EAAS,CAAI,EAExB,GAAI,YAAY,OAAO,CAAI,EACvB,OAAO,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAEtG,OAAO,IAAI,WAAW,CAAI,GAGxB,EAAS,CAAC,IAAU,CACtB,GAAI,OAAO,IAAU,SACjB,OAAO,EAEX,GAAI,OAAO,IAAU,UAAY,OAAO,EAAM,aAAe,UAAY,OAAO,EAAM,aAAe,SACjG,MAAU,MAAM,8EAA8E,EAElG,OAAO,EAAe,gBAAgB,EAAM,OAAQ,EAAM,WAAY,EAAM,UAAU,EAAE,SAAS,MAAM,GAGnG,WAAW,EACX,eAAe,EACf,SAAS",
10
- "debugId": "7FA1C3E8945169AF64756E2164756E21",
10
+ "debugId": "958C934BB90AC11564756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Kl as P}from"./chunk-xh3qqmbk.js";class F{provider="custom";supportsIdempotencyKey=!1;async deliver(j){let x=await this.send(j);return{ok:Boolean(x),id:null}}}class G extends F{apiKey;provider="resend";supportsIdempotencyKey=!0;constructor(j=process.env.RESEND_API_KEY){super();this.apiKey=j}async send(j){return(await this.deliver(j)).ok}async deliver(j){let{Resend:x}=await import("./chunk-syqvk994.js"),A=new x(this.apiKey),{idempotencyKey:z,...N}=j,{data:H,error:B}=await A.emails.send(N,z?{idempotencyKey:z}:void 0);if(B)return console.error(B),{ok:!1,id:null,error:B};if(H)return{ok:!0,id:H.id??null};return{ok:!1,id:null}}}function Z(j){return j}function J(){return{driver:new G,headers:{},filterRecipients:(j)=>j}}function Q(j){for(let x=j;x;x=Object.getPrototypeOf(x)){let A=Object.prototype.hasOwnProperty.call(x,"deliver"),z=Object.prototype.hasOwnProperty.call(x,"send");if(A)return!1;if(z)return!0}return!0}async function M(j,x){if(typeof j.deliver==="function"&&!Q(j))return j.deliver(x);return{ok:Boolean(await j.send(x)),id:null}}class U{static token="mail";driver;headers;recipientFilter;constructor(j={}){let x=J();this.driver=j.driver??x.driver,this.headers=j.headers??x.headers,this.recipientFilter=j.filterRecipients??x.filterRecipients}filterRecipients(j){return this.recipientFilter(j)}send(j){return this.driver.send(j)}async deliver(j){return M(this.driver,j)}}
3
- export{F as Wk,G as Xk,Z as Yk,J as Zk,M as _k,U as $k};
2
+ import{Ll as P}from"./chunk-mpreff3t.js";class F{provider="custom";supportsIdempotencyKey=!1;async deliver(j){let x=await this.send(j);return{ok:Boolean(x),id:null}}}class G extends F{apiKey;provider="resend";supportsIdempotencyKey=!0;constructor(j=process.env.RESEND_API_KEY){super();this.apiKey=j}async send(j){return(await this.deliver(j)).ok}async deliver(j){let{Resend:x}=await import("./chunk-xgg9w7ep.js"),A=new x(this.apiKey),{idempotencyKey:z,...N}=j,{data:H,error:B}=await A.emails.send(N,z?{idempotencyKey:z}:void 0);if(B)return console.error(B),{ok:!1,id:null,error:B};if(H)return{ok:!0,id:H.id??null};return{ok:!1,id:null}}}function Z(j){return j}function J(){return{driver:new G,headers:{},filterRecipients:(j)=>j}}function Q(j){for(let x=j;x;x=Object.getPrototypeOf(x)){let A=Object.prototype.hasOwnProperty.call(x,"deliver"),z=Object.prototype.hasOwnProperty.call(x,"send");if(A)return!1;if(z)return!0}return!0}async function M(j,x){if(typeof j.deliver==="function"&&!Q(j))return j.deliver(x);return{ok:Boolean(await j.send(x)),id:null}}class U{static token="mail";driver;headers;recipientFilter;constructor(j={}){let x=J();this.driver=j.driver??x.driver,this.headers=j.headers??x.headers,this.recipientFilter=j.filterRecipients??x.filterRecipients}filterRecipients(j){return this.recipientFilter(j)}send(j){return this.driver.send(j)}async deliver(j){return M(this.driver,j)}}
3
+ export{F as Xk,G as Yk,Z as Zk,J as _k,M as $k,U as al};
4
4
 
5
- //# debugId=770F7010FFD3AE1D64756E2164756E21
5
+ //# debugId=80EB63AC9065B1DB64756E2164756E21
@@ -9,6 +9,6 @@
9
9
  "import { mailConfigDefaults, type MailConfig } from \"./config\";\nimport { deliverThrough } from \"./deliver\";\nimport type { EmailDriver } from \"./drivers/EmailDriver\";\nimport type { EmailDeliveryResult, SendEmailParams } from \"./drivers/types\";\n\nexport class MailManager {\n static token = \"mail\";\n\n readonly driver: EmailDriver;\n readonly headers: Record<string, string>;\n\n private readonly recipientFilter: NonNullable<MailConfig[\"filterRecipients\"]>;\n\n constructor(config: MailConfig = {}) {\n const defaults = mailConfigDefaults();\n\n this.driver = config.driver ?? defaults.driver;\n this.headers = config.headers ?? defaults.headers;\n this.recipientFilter = config.filterRecipients ?? defaults.filterRecipients;\n }\n\n filterRecipients(emails: string[]): Promise<Array<string>> | Array<string> {\n return this.recipientFilter(emails);\n }\n\n send(params: SendEmailParams) {\n return this.driver.send(params);\n }\n\n /** Like `send`, but reports the outcome and the provider's message id. */\n async deliver(params: SendEmailParams): Promise<EmailDeliveryResult> {\n // A driver that doesn't extend `EmailDriver`, or a subclass that only\n // overrides `send`, is called through `send`.\n return deliverThrough(this.driver, params);\n }\n}\n"
10
10
  ],
11
11
  "mappings": ";yCAEO,MAAe,CAAY,CAKvB,SAAmB,SAMnB,uBAAkC,QASrC,QAAO,CAAC,EAAuD,CACnE,IAAM,EAAK,MAAM,KAAK,KAAK,CAAM,EACjC,MAAO,CAAE,GAAI,QAAQ,CAAE,EAAG,GAAI,IAAK,EAEvC,CCvBO,MAAM,UAAqB,CAAY,CAIxB,OAHF,SAAW,SACX,uBAAyB,GAE3C,WAAW,CAAS,EAAS,QAAQ,IAAI,eAAgB,CACvD,MAAM,EADY,mBAId,KAAI,CAAC,EAAyB,CAClC,OAAQ,MAAM,KAAK,QAAQ,CAAM,GAAG,QAGvB,QAAO,CAAC,EAAuD,CAO5E,IAAQ,UAAW,KAAa,+BAC1B,EAAS,IAAI,EAAO,KAAK,MAAM,GAG7B,oBAAmB,GAAY,GAC/B,OAAM,SAAU,MAAM,EAAO,OAAO,KAC1C,EACA,EAAiB,CAAE,gBAAe,EAAI,MACxC,EAEA,GAAI,EAEF,OADA,QAAQ,MAAM,CAAK,EACZ,CAAE,GAAI,GAAO,GAAI,KAAM,OAAM,EAGtC,GAAI,EACF,MAAO,CAAE,GAAI,GAAM,GAAI,EAAK,IAAM,IAAK,EAGzC,MAAO,CAAE,GAAI,GAAO,GAAI,IAAK,EAEjC,CC7BO,SAAS,CAAgB,CAAC,EAAgC,CAC/D,OAAO,EAGF,SAAS,CAAkB,EAAyB,CACzD,MAAO,CACL,OAAQ,IAAI,EACZ,QAAS,CAAC,EACV,iBAAkB,CAAC,IAAW,CAChC,ECVF,SAAS,CAAgB,CAAC,EAAgB,CACxC,QAAS,EAAQ,EAAQ,EAAO,EAAQ,OAAO,eAAe,CAAK,EAAG,CACpE,IAAM,EAAa,OAAO,UAAU,eAAe,KAAK,EAAO,SAAS,EAClE,EAAU,OAAO,UAAU,eAAe,KAAK,EAAO,MAAM,EAClE,GAAI,EAAY,MAAO,GACvB,GAAI,EAAS,MAAO,GAEtB,MAAO,GAOT,eAAsB,CAAc,CAClC,EACA,EAC8B,CAC9B,GAAI,OAAO,EAAO,UAAY,YAAc,CAAC,EAAiB,CAAM,EAClE,OAAO,EAAO,QAAQ,CAAM,EAE9B,MAAO,CAAE,GAAI,QAAQ,MAAM,EAAO,KAAK,CAAM,CAAC,EAAG,GAAI,IAAK,EC7BrD,MAAM,CAAY,OAChB,OAAQ,OAEN,OACA,QAEQ,gBAEjB,WAAW,CAAC,EAAqB,CAAC,EAAG,CACnC,IAAM,EAAW,EAAmB,EAEpC,KAAK,OAAS,EAAO,QAAU,EAAS,OACxC,KAAK,QAAU,EAAO,SAAW,EAAS,QAC1C,KAAK,gBAAkB,EAAO,kBAAoB,EAAS,iBAG7D,gBAAgB,CAAC,EAA0D,CACzE,OAAO,KAAK,gBAAgB,CAAM,EAGpC,IAAI,CAAC,EAAyB,CAC5B,OAAO,KAAK,OAAO,KAAK,CAAM,OAI1B,QAAO,CAAC,EAAuD,CAGnE,OAAO,EAAe,KAAK,OAAQ,CAAM,EAE7C",
12
- "debugId": "770F7010FFD3AE1D64756E2164756E21",
12
+ "debugId": "80EB63AC9065B1DB64756E2164756E21",
13
13
  "names": []
14
14
  }