watch-tail 0.8.0 → 0.10.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 (399) hide show
  1. package/README.md +107 -9
  2. package/build/client/_app/immutable/assets/0.B5hI3s8c.css +2 -0
  3. package/build/client/_app/immutable/assets/0.B5hI3s8c.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.B5hI3s8c.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/2.Cn4w1JYv.css +1 -0
  6. package/build/client/_app/immutable/assets/2.Cn4w1JYv.css.br +0 -0
  7. package/build/client/_app/immutable/assets/2.Cn4w1JYv.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{EventScatter.CCk6ByS3.css → EventScatter.0BkgJO-l.css} +1 -1
  9. package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.br +0 -0
  10. package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/B2En4t_E.js +3 -0
  12. package/build/client/_app/immutable/chunks/B2En4t_E.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/B2En4t_E.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/BJ7fEbY9.js +1 -0
  15. package/build/client/_app/immutable/chunks/BJ7fEbY9.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BJ7fEbY9.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{BF1MBUT7.js → BX0v2q9h.js} +1 -1
  18. package/build/client/_app/immutable/chunks/BX0v2q9h.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/BX0v2q9h.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{9z7cmAWt.js → B_AZHMkI.js} +1 -1
  21. package/build/client/_app/immutable/chunks/B_AZHMkI.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/B_AZHMkI.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{BKpbhYu9.js → Bb9UOIo-.js} +1 -1
  24. package/build/client/_app/immutable/chunks/Bb9UOIo-.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/Bb9UOIo-.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{BzFqst10.js → BdV_pkVs.js} +1 -1
  27. package/build/client/_app/immutable/chunks/BdV_pkVs.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/BdV_pkVs.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{CBzF0p8K.js → BsrUsB47.js} +1 -1
  30. package/build/client/_app/immutable/chunks/BsrUsB47.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/BsrUsB47.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{Cr-NovV3.js → CBZpkDc1.js} +1 -1
  33. package/build/client/_app/immutable/chunks/CBZpkDc1.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/CBZpkDc1.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{X7CLxGgV.js → CHnbfiIG.js} +1 -1
  36. package/build/client/_app/immutable/chunks/CHnbfiIG.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/CHnbfiIG.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/{BVlqiKgb.js → CNomy7CF.js} +1 -1
  39. package/build/client/_app/immutable/chunks/CNomy7CF.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/CNomy7CF.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/CPbNf3ya.js +1 -0
  42. package/build/client/_app/immutable/chunks/CPbNf3ya.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/CPbNf3ya.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/CZ2PC-zH.js +1 -0
  45. package/build/client/_app/immutable/chunks/CZ2PC-zH.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/CZ2PC-zH.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/CljxK204.js +1 -0
  48. package/build/client/_app/immutable/chunks/CljxK204.js.br +1 -0
  49. package/build/client/_app/immutable/chunks/CljxK204.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/CzU0cUz4.js +1 -0
  51. package/build/client/_app/immutable/chunks/CzU0cUz4.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CzU0cUz4.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/{cK-f5ch_.js → D6vIi1r5.js} +1 -1
  54. package/build/client/_app/immutable/chunks/D6vIi1r5.js.br +3 -0
  55. package/build/client/_app/immutable/chunks/D6vIi1r5.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/DAxERhtN.js +1 -0
  57. package/build/client/_app/immutable/chunks/DAxERhtN.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/DAxERhtN.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/DIzgJaYS.js +1 -0
  60. package/build/client/_app/immutable/chunks/DIzgJaYS.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/DIzgJaYS.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/DSHrbzz3.js +1 -0
  63. package/build/client/_app/immutable/chunks/DSHrbzz3.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DSHrbzz3.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/{DBcd9YbV.js → DSvLImpl.js} +1 -1
  66. package/build/client/_app/immutable/chunks/DSvLImpl.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/DSvLImpl.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/{vB0ff9Sn.js → DWBod19x.js} +1 -1
  69. package/build/client/_app/immutable/chunks/DWBod19x.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DWBod19x.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/{BWGaSL1l.js → Dicxo5h-.js} +1 -1
  72. package/build/client/_app/immutable/chunks/Dicxo5h-.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/Dicxo5h-.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/DjjHmSG3.js +1 -0
  75. package/build/client/_app/immutable/chunks/DjjHmSG3.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/DjjHmSG3.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/DlDLXtam.js +1 -0
  78. package/build/client/_app/immutable/chunks/DlDLXtam.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/DlDLXtam.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/EZJqWoh3.js +1 -0
  81. package/build/client/_app/immutable/chunks/EZJqWoh3.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/EZJqWoh3.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/Fg8W5tkO.js +15 -0
  84. package/build/client/_app/immutable/chunks/Fg8W5tkO.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/Fg8W5tkO.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/LGzrUxfF.js +1 -0
  87. package/build/client/_app/immutable/chunks/LGzrUxfF.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/LGzrUxfF.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/McME9wI6.js +10 -0
  90. package/build/client/_app/immutable/chunks/McME9wI6.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/McME9wI6.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/N78Fm5Ux.js +1 -0
  93. package/build/client/_app/immutable/chunks/N78Fm5Ux.js.br +0 -0
  94. package/build/client/_app/immutable/chunks/N78Fm5Ux.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/{B_Z4tBMl.js → XrAcf7YH.js} +1 -1
  96. package/build/client/_app/immutable/chunks/XrAcf7YH.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/XrAcf7YH.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/{CM9QBz5w.js → _PJhUOmT.js} +1 -1
  99. package/build/client/_app/immutable/chunks/_PJhUOmT.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/_PJhUOmT.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/gXyWwJbW.js +1 -0
  102. package/build/client/_app/immutable/chunks/gXyWwJbW.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/gXyWwJbW.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/{B5kJ4QGS.js → vMHl7jRw.js} +1 -1
  105. package/build/client/_app/immutable/chunks/vMHl7jRw.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/vMHl7jRw.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/xJTjOoUQ.js +2 -0
  108. package/build/client/_app/immutable/chunks/xJTjOoUQ.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/xJTjOoUQ.js.gz +0 -0
  110. package/build/client/_app/immutable/entry/app.ycJtqzGh.js +2 -0
  111. package/build/client/_app/immutable/entry/app.ycJtqzGh.js.br +0 -0
  112. package/build/client/_app/immutable/entry/app.ycJtqzGh.js.gz +0 -0
  113. package/build/client/_app/immutable/entry/start.DOq0-PiA.js +1 -0
  114. package/build/client/_app/immutable/entry/start.DOq0-PiA.js.br +0 -0
  115. package/build/client/_app/immutable/entry/start.DOq0-PiA.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js +1 -0
  117. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/1.B63I-h1v.js +1 -0
  120. package/build/client/_app/immutable/nodes/1.B63I-h1v.js.br +0 -0
  121. package/build/client/_app/immutable/nodes/1.B63I-h1v.js.gz +0 -0
  122. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js +5 -0
  123. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js.gz +0 -0
  125. package/build/client/_app/version.json +1 -1
  126. package/build/client/_app/version.json.br +0 -0
  127. package/build/client/_app/version.json.gz +0 -0
  128. package/build/handler.js +7 -7
  129. package/build/index.js +7 -7
  130. package/build/server/chunks/chunks/{Arc.canvas.js-D6g58nSp.js → Arc.canvas.js-DqfSjlnB.js} +8 -8
  131. package/build/server/chunks/chunks/Arc.canvas.js-DqfSjlnB.js.map +1 -0
  132. package/build/server/chunks/chunks/{Arc.js-D78Cf_4M.js → Arc.js-DNywwEq7.js} +10 -10
  133. package/build/server/chunks/chunks/Arc.js-DNywwEq7.js.map +1 -0
  134. package/build/server/chunks/chunks/{Bar.js-Cv73T8_D.js → Bar.js-BHJrwOa1.js} +14 -14
  135. package/build/server/chunks/chunks/Bar.js-BHJrwOa1.js.map +1 -0
  136. package/build/server/chunks/chunks/{ChartAnnotations.js-Ci22VB_6.js → ChartAnnotations.js-DXt38zkt.js} +18 -18
  137. package/build/server/chunks/chunks/ChartAnnotations.js-DXt38zkt.js.map +1 -0
  138. package/build/server/chunks/chunks/{Circle.html.js-BjwyNRG3.js → Circle.html.js-KngSXZUe.js} +5 -5
  139. package/build/server/chunks/chunks/Circle.html.js-KngSXZUe.js.map +1 -0
  140. package/build/server/chunks/chunks/{ClipPath.canvas.js-CFTBDWVU.js → ClipPath.canvas.js-BsGsfzQK.js} +4 -4
  141. package/build/server/chunks/chunks/ClipPath.canvas.js-BsGsfzQK.js.map +1 -0
  142. package/build/server/chunks/chunks/{DefaultTooltip.js-0r5rbE-1.js → DefaultTooltip.js-CbyljZUi.js} +8 -8
  143. package/build/server/chunks/chunks/DefaultTooltip.js-CbyljZUi.js.map +1 -0
  144. package/build/server/chunks/chunks/{EventScatter.js-CG0RcOU6.js → EventScatter.js-DHlLEn_7.js} +39 -38
  145. package/build/server/chunks/chunks/EventScatter.js-DHlLEn_7.js.map +1 -0
  146. package/build/server/chunks/chunks/{Labels.js-DpagpV6d.js → Labels.js-DhpbhJmV.js} +18 -18
  147. package/build/server/chunks/chunks/Labels.js-DhpbhJmV.js.map +1 -0
  148. package/build/server/chunks/chunks/{Legend.js-BOpwpe5s.js → Legend.js-D25j2DRt.js} +6 -6
  149. package/build/server/chunks/chunks/Legend.js-D25j2DRt.js.map +1 -0
  150. package/build/server/chunks/chunks/{Line.html.js-BM5tR11G.js → Line.html.js-CKb2T7JC.js} +6 -6
  151. package/build/server/chunks/chunks/Line.html.js-CKb2T7JC.js.map +1 -0
  152. package/build/server/chunks/chunks/{Link.canvas.js-P8ySzEAw.js → Link.canvas.js-c0r05107.js} +9 -9
  153. package/build/server/chunks/chunks/Link.canvas.js-c0r05107.js.map +1 -0
  154. package/build/server/chunks/chunks/{Path.canvas.js-DNAtnEBt.js → Path.canvas.js-opfoYzQB.js} +5 -5
  155. package/build/server/chunks/chunks/Path.canvas.js-opfoYzQB.js.map +1 -0
  156. package/build/server/chunks/chunks/{Points.html.js-CLbHD6OP.js → Points.html.js-CJ75UtkE.js} +7 -7
  157. package/build/server/chunks/chunks/Points.html.js-CJ75UtkE.js.map +1 -0
  158. package/build/server/chunks/chunks/Points.js-Bx_vB0po.js +14 -0
  159. package/build/server/chunks/chunks/Points.js-Bx_vB0po.js.map +1 -0
  160. package/build/server/chunks/chunks/{Points2.js-BMGdkzTE.js → Points2.js-Br2MMKbn.js} +4 -4
  161. package/build/server/chunks/chunks/Points2.js-Br2MMKbn.js.map +1 -0
  162. package/build/server/chunks/chunks/{Rect.html.js-Q3UvRwNn.js → Rect.html.js-D_-JSZ22.js} +6 -6
  163. package/build/server/chunks/chunks/Rect.html.js-D_-JSZ22.js.map +1 -0
  164. package/build/server/chunks/chunks/{Spline.js-BuZPz2PJ.js → Spline.js-DpD4175j.js} +12 -12
  165. package/build/server/chunks/chunks/Spline.js-DpD4175j.js.map +1 -0
  166. package/build/server/chunks/chunks/{Text.html.js-C8xO5Nz6.js → Text.html.js-Clxo39Ky.js} +6 -6
  167. package/build/server/chunks/chunks/Text.html.js-Clxo39Ky.js.map +1 -0
  168. package/build/server/chunks/chunks/{TooltipItem.js-T0cKLjLu.js → TooltipItem.js-CgYSF3I3.js} +6 -6
  169. package/build/server/chunks/chunks/{TooltipItem.js-T0cKLjLu.js.map → TooltipItem.js-CgYSF3I3.js.map} +1 -1
  170. package/build/server/chunks/chunks/{Voronoi.js-DevTsXQE.js → Voronoi.js-CX8bqc1A.js} +7 -7
  171. package/build/server/chunks/chunks/Voronoi.js-CX8bqc1A.js.map +1 -0
  172. package/build/server/chunks/chunks/{archive.js-D2jtMmDo.js → archive.js-BRlkdj2X.js} +331 -30
  173. package/build/server/chunks/chunks/archive.js-BRlkdj2X.js.map +1 -0
  174. package/build/server/chunks/chunks/{attributes.js-BVWo7wbg.js → attributes.js-ECgqVV_7.js} +2 -2
  175. package/build/server/chunks/chunks/{attributes.js-BVWo7wbg.js.map → attributes.js-ECgqVV_7.js.map} +1 -1
  176. package/build/server/chunks/chunks/{band.js-C7izXphE.js → band.js-BcI84M0Z.js} +3 -3
  177. package/build/server/chunks/chunks/{band.js-C7izXphE.js.map → band.js-BcI84M0Z.js.map} +1 -1
  178. package/build/server/chunks/chunks/{common.js-BWQB8Die.js → common.js-DeZxUyRN.js} +2 -2
  179. package/build/server/chunks/chunks/{common.js-BWQB8Die.js.map → common.js-DeZxUyRN.js.map} +1 -1
  180. package/build/server/chunks/chunks/events.js-oxLu7lhH.js +95 -0
  181. package/build/server/chunks/chunks/events.js-oxLu7lhH.js.map +1 -0
  182. package/build/server/chunks/chunks/{group.js-DBFzWAox.js → group.js-C8H9Tpr6.js} +2 -2
  183. package/build/server/chunks/chunks/{group.js-DBFzWAox.js.map → group.js-C8H9Tpr6.js.map} +1 -1
  184. package/build/server/chunks/chunks/{server.js-CAEBuMIH.js → index-server.js-Dsi44azJ.js} +245 -4
  185. package/build/server/chunks/chunks/index-server.js-Dsi44azJ.js.map +1 -0
  186. package/build/server/chunks/chunks/{internal2.js-BMcEVxqN.js → internal2.js-Dm0TlpeP.js} +5 -5
  187. package/build/server/chunks/chunks/internal2.js-Dm0TlpeP.js.map +1 -0
  188. package/build/server/chunks/chunks/{key.svelte.js-CWIvXc6L.js → key.svelte.js-C9G4pBhE.js} +4 -4
  189. package/build/server/chunks/chunks/key.svelte.js-C9G4pBhE.js.map +1 -0
  190. package/build/server/chunks/chunks/{legacy-client.js-DJmDw3Zx.js → legacy-client.js-C8Upo6IB.js} +3 -3
  191. package/build/server/chunks/chunks/legacy-client.js-C8Upo6IB.js.map +1 -0
  192. package/build/server/chunks/chunks/{level-filter.js-D9MNrew3.js → level-filter.js-H0nc-2BG.js} +2 -2
  193. package/build/server/chunks/chunks/{level-filter.js-D9MNrew3.js.map → level-filter.js-H0nc-2BG.js.map} +1 -1
  194. package/build/server/chunks/chunks/{lineRadial.js-Dm0GMqo3.js → lineRadial.js-B0m9ujVX.js} +2 -2
  195. package/build/server/chunks/chunks/{lineRadial.js-Dm0GMqo3.js.map → lineRadial.js-B0m9ujVX.js.map} +1 -1
  196. package/build/server/chunks/chunks/{linear.js-CTOKrHn9.js → linear.js-CJ07spu6.js} +2 -2
  197. package/build/server/chunks/chunks/{linear.js-CTOKrHn9.js.map → linear.js-CJ07spu6.js.map} +1 -1
  198. package/build/server/chunks/chunks/{motion.svelte.js-DCHSFMu-.js → motion.svelte.js-DB7vkWmD.js} +3 -3
  199. package/build/server/chunks/chunks/motion.svelte.js-DB7vkWmD.js.map +1 -0
  200. package/build/server/chunks/chunks/{occlusion.js-DJ-AdK9u.js → occlusion.js-DtcqoJjc.js} +2 -2
  201. package/build/server/chunks/chunks/{occlusion.js-DJ-AdK9u.js.map → occlusion.js-DtcqoJjc.js.map} +1 -1
  202. package/build/server/chunks/chunks/{path2.js-pquT2Kg6.js → path2.js-B3tNByoS.js} +2 -2
  203. package/build/server/chunks/chunks/{path2.js-pquT2Kg6.js.map → path2.js-B3tNByoS.js.map} +1 -1
  204. package/build/server/chunks/chunks/{rect.svelte.js-zeS7FWjB.js → rect.svelte.js-C6R1SgCx.js} +4 -4
  205. package/build/server/chunks/chunks/rect.svelte.js-C6R1SgCx.js.map +1 -0
  206. package/build/server/chunks/chunks/{scales.svelte.js-D_1popPi.js → scales.svelte.js-C4lRvUAb.js} +4 -4
  207. package/build/server/chunks/chunks/scales.svelte.js-C4lRvUAb.js.map +1 -0
  208. package/build/server/chunks/chunks/{series-buckets.js-DFGWkob5.js → series-buckets.js-C-vMEJT2.js} +6 -6
  209. package/build/server/chunks/chunks/series-buckets.js-C-vMEJT2.js.map +1 -0
  210. package/build/server/chunks/chunks/{state.js-vZj9lo1I.js → state.js-qsHzjuJU.js} +3 -4
  211. package/build/server/chunks/chunks/state.js-qsHzjuJU.js.map +1 -0
  212. package/build/server/chunks/chunks/text-size.svelte.js-CqGaHRr3.js +310 -0
  213. package/build/server/chunks/chunks/text-size.svelte.js-CqGaHRr3.js.map +1 -0
  214. package/build/server/chunks/chunks/{time-range.js-BLMT8aU3.js → time-range.js-__87ZPq6.js} +10 -5
  215. package/build/server/chunks/chunks/time-range.js-__87ZPq6.js.map +1 -0
  216. package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-C4hWyXuu.js → _server.ts.js-C6WY-ljy.js} +2 -2
  217. package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-C4hWyXuu.js.map → _server.ts.js-C6WY-ljy.js.map} +1 -1
  218. package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D4y43Vwe.js → _server.ts.js-DTcVSbpV.js} +2 -2
  219. package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D4y43Vwe.js.map → _server.ts.js-DTcVSbpV.js.map} +1 -1
  220. package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DibT3Hjc.js → _server.ts.js-CzJ_bXh8.js} +4 -4
  221. package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DibT3Hjc.js.map → _server.ts.js-CzJ_bXh8.js.map} +1 -1
  222. package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-BxXw5K0R.js → _server.ts.js-U2naV16N.js} +211 -48
  223. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-U2naV16N.js.map +1 -0
  224. package/build/server/chunks/entries/fallbacks/{error.svelte.js-bokc4skC.js → error.svelte.js-ClTGKP0-.js} +6 -6
  225. package/build/server/chunks/entries/fallbacks/error.svelte.js-ClTGKP0-.js.map +1 -0
  226. package/build/server/chunks/entries/pages/_layout.svelte.js-DNuWb03K.js +622 -0
  227. package/build/server/chunks/entries/pages/_layout.svelte.js-DNuWb03K.js.map +1 -0
  228. package/build/server/chunks/entries/pages/{_page.svelte.js-DRoSEPVH.js → _page.svelte.js-CVlL2UsO.js} +341 -175
  229. package/build/server/chunks/entries/pages/_page.svelte.js-CVlL2UsO.js.map +1 -0
  230. package/build/server/chunks/{handler-BkYErjbr.js → handler-CrpvMheE.js} +3 -3
  231. package/build/server/chunks/{handler-BkYErjbr.js.map → handler-CrpvMheE.js.map} +1 -1
  232. package/build/server/chunks/{index.js-5mkIDcpy.js → index.js-9Dk7Q13E.js} +3 -4
  233. package/build/server/chunks/index.js-9Dk7Q13E.js.map +1 -0
  234. package/build/server/chunks/{manifest.js-BGoS-vRx.js → manifest.js-DIaODzKX.js} +9 -9
  235. package/build/server/chunks/{manifest.js-BGoS-vRx.js.map → manifest.js-DIaODzKX.js.map} +1 -1
  236. package/build/server/chunks/nodes/0.js-CQ960AOW.js +9 -0
  237. package/build/server/chunks/nodes/0.js-CQ960AOW.js.map +1 -0
  238. package/build/server/chunks/nodes/1.js-CtTei4sV.js +9 -0
  239. package/build/server/chunks/nodes/{1.js-BQibx33b.js.map → 1.js-CtTei4sV.js.map} +1 -1
  240. package/build/server/chunks/nodes/2.js-BbKDb_M6.js +9 -0
  241. package/build/server/chunks/nodes/2.js-BbKDb_M6.js.map +1 -0
  242. package/dist/cli/completions.js +24 -0
  243. package/dist/cli/index.js +144 -3
  244. package/dist/cli/mcp/agents.js +344 -0
  245. package/dist/cli/mcp/backend.js +235 -0
  246. package/dist/cli/mcp/run.js +245 -0
  247. package/dist/cli/mcp/stdio.js +103 -0
  248. package/dist/cli/mcp/tools.js +245 -0
  249. package/dist/cli/options.js +138 -25
  250. package/dist/cli/server.js +28 -0
  251. package/dist/cli/ui.js +20 -1
  252. package/dist/lib/time-range.js +14 -3
  253. package/package.json +8 -2
  254. package/build/client/_app/immutable/assets/0.zDk3x0WE.css +0 -2
  255. package/build/client/_app/immutable/assets/0.zDk3x0WE.css.br +0 -0
  256. package/build/client/_app/immutable/assets/0.zDk3x0WE.css.gz +0 -0
  257. package/build/client/_app/immutable/assets/EventScatter.CCk6ByS3.css.br +0 -0
  258. package/build/client/_app/immutable/assets/EventScatter.CCk6ByS3.css.gz +0 -0
  259. package/build/client/_app/immutable/chunks/9z7cmAWt.js.br +0 -0
  260. package/build/client/_app/immutable/chunks/9z7cmAWt.js.gz +0 -0
  261. package/build/client/_app/immutable/chunks/B26Z2DQX.js +0 -1
  262. package/build/client/_app/immutable/chunks/B26Z2DQX.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/B26Z2DQX.js.gz +0 -0
  264. package/build/client/_app/immutable/chunks/B5kJ4QGS.js.br +0 -0
  265. package/build/client/_app/immutable/chunks/B5kJ4QGS.js.gz +0 -0
  266. package/build/client/_app/immutable/chunks/BF1MBUT7.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/BF1MBUT7.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/BJEa1AAY.js +0 -10
  269. package/build/client/_app/immutable/chunks/BJEa1AAY.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/BJEa1AAY.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/BKpbhYu9.js.br +0 -0
  272. package/build/client/_app/immutable/chunks/BKpbhYu9.js.gz +0 -0
  273. package/build/client/_app/immutable/chunks/BVlqiKgb.js.br +0 -0
  274. package/build/client/_app/immutable/chunks/BVlqiKgb.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/BWGaSL1l.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/BWGaSL1l.js.gz +0 -0
  277. package/build/client/_app/immutable/chunks/B_Z4tBMl.js.br +0 -0
  278. package/build/client/_app/immutable/chunks/B_Z4tBMl.js.gz +0 -0
  279. package/build/client/_app/immutable/chunks/Bo46v6NJ.js +0 -1
  280. package/build/client/_app/immutable/chunks/Bo46v6NJ.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/Bo46v6NJ.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/BpDPh_kG.js +0 -1
  283. package/build/client/_app/immutable/chunks/BpDPh_kG.js.br +0 -0
  284. package/build/client/_app/immutable/chunks/BpDPh_kG.js.gz +0 -0
  285. package/build/client/_app/immutable/chunks/BzFqst10.js.br +0 -0
  286. package/build/client/_app/immutable/chunks/BzFqst10.js.gz +0 -0
  287. package/build/client/_app/immutable/chunks/C3JYac4u.js +0 -1
  288. package/build/client/_app/immutable/chunks/C3JYac4u.js.br +0 -0
  289. package/build/client/_app/immutable/chunks/C3JYac4u.js.gz +0 -0
  290. package/build/client/_app/immutable/chunks/CBzF0p8K.js.br +0 -0
  291. package/build/client/_app/immutable/chunks/CBzF0p8K.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/CM9QBz5w.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/CM9QBz5w.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/CZqQKfBo.js +0 -15
  295. package/build/client/_app/immutable/chunks/CZqQKfBo.js.br +0 -0
  296. package/build/client/_app/immutable/chunks/CZqQKfBo.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/Cr-NovV3.js.br +0 -0
  298. package/build/client/_app/immutable/chunks/Cr-NovV3.js.gz +0 -0
  299. package/build/client/_app/immutable/chunks/Cz6pnyFa.js +0 -1
  300. package/build/client/_app/immutable/chunks/Cz6pnyFa.js.br +0 -0
  301. package/build/client/_app/immutable/chunks/Cz6pnyFa.js.gz +0 -0
  302. package/build/client/_app/immutable/chunks/D2fsDTN5.js +0 -1
  303. package/build/client/_app/immutable/chunks/D2fsDTN5.js.br +0 -0
  304. package/build/client/_app/immutable/chunks/D2fsDTN5.js.gz +0 -0
  305. package/build/client/_app/immutable/chunks/DBcd9YbV.js.br +0 -0
  306. package/build/client/_app/immutable/chunks/DBcd9YbV.js.gz +0 -0
  307. package/build/client/_app/immutable/chunks/DC_milOQ.js +0 -1
  308. package/build/client/_app/immutable/chunks/DC_milOQ.js.br +0 -0
  309. package/build/client/_app/immutable/chunks/DC_milOQ.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/DNiEIfDZ.js +0 -1
  311. package/build/client/_app/immutable/chunks/DNiEIfDZ.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/DNiEIfDZ.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/DWdskt_Y.js +0 -2
  314. package/build/client/_app/immutable/chunks/DWdskt_Y.js.br +0 -0
  315. package/build/client/_app/immutable/chunks/DWdskt_Y.js.gz +0 -0
  316. package/build/client/_app/immutable/chunks/DsMQ6HVM.js +0 -1
  317. package/build/client/_app/immutable/chunks/DsMQ6HVM.js.br +0 -0
  318. package/build/client/_app/immutable/chunks/DsMQ6HVM.js.gz +0 -0
  319. package/build/client/_app/immutable/chunks/Dxeyu30B.js +0 -1
  320. package/build/client/_app/immutable/chunks/Dxeyu30B.js.br +0 -1
  321. package/build/client/_app/immutable/chunks/Dxeyu30B.js.gz +0 -0
  322. package/build/client/_app/immutable/chunks/H4Anb6kP.js +0 -1
  323. package/build/client/_app/immutable/chunks/H4Anb6kP.js.br +0 -0
  324. package/build/client/_app/immutable/chunks/H4Anb6kP.js.gz +0 -0
  325. package/build/client/_app/immutable/chunks/MDK8mPOo.js +0 -1
  326. package/build/client/_app/immutable/chunks/MDK8mPOo.js.br +0 -0
  327. package/build/client/_app/immutable/chunks/MDK8mPOo.js.gz +0 -0
  328. package/build/client/_app/immutable/chunks/X7CLxGgV.js.br +0 -0
  329. package/build/client/_app/immutable/chunks/X7CLxGgV.js.gz +0 -0
  330. package/build/client/_app/immutable/chunks/cK-f5ch_.js.br +0 -2
  331. package/build/client/_app/immutable/chunks/cK-f5ch_.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/mhYP0ygJ.js +0 -1
  333. package/build/client/_app/immutable/chunks/mhYP0ygJ.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/mhYP0ygJ.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/pqiPC7Y8.js +0 -3
  336. package/build/client/_app/immutable/chunks/pqiPC7Y8.js.br +0 -0
  337. package/build/client/_app/immutable/chunks/pqiPC7Y8.js.gz +0 -0
  338. package/build/client/_app/immutable/chunks/vB0ff9Sn.js.br +0 -0
  339. package/build/client/_app/immutable/chunks/vB0ff9Sn.js.gz +0 -0
  340. package/build/client/_app/immutable/entry/app.CinEZGkq.js +0 -2
  341. package/build/client/_app/immutable/entry/app.CinEZGkq.js.br +0 -0
  342. package/build/client/_app/immutable/entry/app.CinEZGkq.js.gz +0 -0
  343. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js +0 -1
  344. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js.br +0 -1
  345. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js.gz +0 -0
  346. package/build/client/_app/immutable/nodes/0.CFO0Fthy.js +0 -1
  347. package/build/client/_app/immutable/nodes/0.CFO0Fthy.js.br +0 -0
  348. package/build/client/_app/immutable/nodes/0.CFO0Fthy.js.gz +0 -0
  349. package/build/client/_app/immutable/nodes/1.kGO9dV9J.js +0 -1
  350. package/build/client/_app/immutable/nodes/1.kGO9dV9J.js.br +0 -0
  351. package/build/client/_app/immutable/nodes/1.kGO9dV9J.js.gz +0 -0
  352. package/build/client/_app/immutable/nodes/2.eGSziRQX.js +0 -5
  353. package/build/client/_app/immutable/nodes/2.eGSziRQX.js.br +0 -0
  354. package/build/client/_app/immutable/nodes/2.eGSziRQX.js.gz +0 -0
  355. package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js.map +0 -1
  356. package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js.map +0 -1
  357. package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js.map +0 -1
  358. package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js.map +0 -1
  359. package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js.map +0 -1
  360. package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js.map +0 -1
  361. package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js.map +0 -1
  362. package/build/server/chunks/chunks/EventScatter.js-CG0RcOU6.js.map +0 -1
  363. package/build/server/chunks/chunks/Labels.js-DpagpV6d.js.map +0 -1
  364. package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js.map +0 -1
  365. package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js.map +0 -1
  366. package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js.map +0 -1
  367. package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js.map +0 -1
  368. package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js.map +0 -1
  369. package/build/server/chunks/chunks/Points.js-e6g0Re6H.js +0 -14
  370. package/build/server/chunks/chunks/Points.js-e6g0Re6H.js.map +0 -1
  371. package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js.map +0 -1
  372. package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js.map +0 -1
  373. package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js.map +0 -1
  374. package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js.map +0 -1
  375. package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js.map +0 -1
  376. package/build/server/chunks/chunks/archive.js-D2jtMmDo.js.map +0 -1
  377. package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js +0 -248
  378. package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js.map +0 -1
  379. package/build/server/chunks/chunks/internal2.js-BMcEVxqN.js.map +0 -1
  380. package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js.map +0 -1
  381. package/build/server/chunks/chunks/legacy-client.js-DJmDw3Zx.js.map +0 -1
  382. package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js.map +0 -1
  383. package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js.map +0 -1
  384. package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js.map +0 -1
  385. package/build/server/chunks/chunks/series-buckets.js-DFGWkob5.js.map +0 -1
  386. package/build/server/chunks/chunks/server.js-CAEBuMIH.js.map +0 -1
  387. package/build/server/chunks/chunks/state.js-vZj9lo1I.js.map +0 -1
  388. package/build/server/chunks/chunks/time-range.js-BLMT8aU3.js.map +0 -1
  389. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BxXw5K0R.js.map +0 -1
  390. package/build/server/chunks/entries/fallbacks/error.svelte.js-bokc4skC.js.map +0 -1
  391. package/build/server/chunks/entries/pages/_layout.svelte.js-8U7ZeKYO.js +0 -22
  392. package/build/server/chunks/entries/pages/_layout.svelte.js-8U7ZeKYO.js.map +0 -1
  393. package/build/server/chunks/entries/pages/_page.svelte.js-DRoSEPVH.js.map +0 -1
  394. package/build/server/chunks/index.js-5mkIDcpy.js.map +0 -1
  395. package/build/server/chunks/nodes/0.js-BIj6k30n.js +0 -9
  396. package/build/server/chunks/nodes/0.js-BIj6k30n.js.map +0 -1
  397. package/build/server/chunks/nodes/1.js-BQibx33b.js +0 -9
  398. package/build/server/chunks/nodes/2.js-CczDSPv9.js +0 -9
  399. package/build/server/chunks/nodes/2.js-CczDSPv9.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { a as apiError, p as parseRegionParam, b as readEnv, r as resolveAwsConfig, d as createLogsClient, f as describeAwsError, e as resolveEffectiveRegion, R as REGION_PARAM_HINT } from '../../../../chunks/env2.js-C5BgBJDY.js';
2
- import { g as getArchive } from '../../../../chunks/archive.js-D2jtMmDo.js';
1
+ import { a as apiError, p as parseRegionParam, b as readEnv, r as resolveAwsConfig, f as describeAwsError, d as createLogsClient, e as resolveEffectiveRegion, R as REGION_PARAM_HINT } from '../../../../chunks/env2.js-C5BgBJDY.js';
2
+ import { g as getArchive, i as intersectCoverage, s as subtractCoverage, a as settleCoverage, m as mergeCoverage } from '../../../../chunks/archive.js-BRlkdj2X.js';
3
3
  import { p as parseSourceParam, S as SOURCE_PARAM_HINT } from '../../../../chunks/source.js-DZEVvuho.js';
4
- import { p as parseGroupParams, a as parseLevelParam, r as resolveWindow, c as clampPollMs, w as withDetections, L as LEVEL_PARAM_HINT } from '../../../../chunks/level-filter.js-D9MNrew3.js';
4
+ import { p as parseGroupParams, a as parseLevelParam, r as resolveWindow, c as clampPollMs, w as withDetections, L as LEVEL_PARAM_HINT } from '../../../../chunks/level-filter.js-H0nc-2BG.js';
5
5
  import '../../../../chunks/utils.js-BIlHjgGW.js';
6
6
  import { FilterLogEventsCommand } from '@aws-sdk/client-cloudwatch-logs';
7
7
  import '../../../../chunks/shared-server.js-Dn5XheXH.js';
@@ -13,7 +13,7 @@ import '../../../../chunks/log-buffer.js-A9FA-Qv8.js';
13
13
  import 'node:os';
14
14
  import 'node:crypto';
15
15
  import 'node:timers/promises';
16
- import '../../../../chunks/time-range.js-BLMT8aU3.js';
16
+ import '../../../../chunks/time-range.js-__87ZPq6.js';
17
17
  import '../../../../chunks/shared.js-CgjUIvRK.js';
18
18
  import '../../../../chunks/uneval.js-DaakSYFQ.js';
19
19
 
@@ -72,8 +72,8 @@ function archiveUnavailableMessage(archive) {
72
72
  /**
73
73
  * Yields archived events for one window, oldest first.
74
74
  *
75
- * An unavailable archive produces a single `error` batch instead of throwing, so
76
- * the browser shows a normal stream error. An aborted signal ends the generator
75
+ * An unavailable archive, or a page that cannot be read, produces a single
76
+ * `error` batch instead of throwing, so the browser shows a normal stream error. An aborted signal ends the generator
77
77
  * without yielding an `end` batch, which is what the route treats as a
78
78
  * client disconnect.
79
79
  */
@@ -106,6 +106,14 @@ async function* tailArchivedEvents(options) {
106
106
  after: cursor,
107
107
  limit: pageSize
108
108
  });
109
+ if (page.error !== void 0) {
110
+ yield {
111
+ type: "error",
112
+ message: `The local archive could not be read: ${page.error}`,
113
+ code: "archive-read-failed"
114
+ };
115
+ return;
116
+ }
109
117
  if (page.events.length === 0) {
110
118
  yield {
111
119
  type: "end",
@@ -116,7 +124,8 @@ async function* tailArchivedEvents(options) {
116
124
  emitted += page.events.length;
117
125
  yield {
118
126
  type: "events",
119
- events: page.events
127
+ events: page.events,
128
+ origin: "archive"
120
129
  };
121
130
  cursor = page.last;
122
131
  if (cursor === null || page.events.length < pageSize) {
@@ -326,14 +335,16 @@ function nextCursor(previous, events) {
326
335
  *
327
336
  * `startTime` is inclusive upstream, so the cursor advances to the newest
328
337
  * timestamp seen and repeated events are removed by {@link SeenEventIds}.
329
- * Nothing is new in a poll => sleep `pollIntervalMs`. Errors are yielded as
338
+ * A `nextToken` is followed straight away, so a sweep reads its whole range
339
+ * before the next one starts. Nothing is new in a sweep => sleep
340
+ * `pollIntervalMs`. Errors are yielded as
330
341
  * `error` batches and retried with exponential backoff
331
342
  * (`pollIntervalMs * 2^consecutiveErrors`, capped at 15000 ms) until
332
343
  * `maxConsecutiveErrors` (default 8) failures in a row, then the generator
333
344
  * returns. An aborted signal ends the generator without throwing.
334
345
  */
335
346
  async function* tailLogEvents(options) {
336
- const { client, logGroupName, startTime, pollIntervalMs = DEFAULT_POLL_MS, limit = DEFAULT_LIMIT, filterPattern, signal, sleep = defaultSleep, maxConsecutiveErrors = DEFAULT_MAX_CONSECUTIVE_ERRORS, logStreamNamePrefix, endTime = null, idlePolls = DEFAULT_IDLE_POLLS, maxEvents = DEFAULT_MAX_EVENTS } = options;
347
+ const { client, logGroupName, startTime, pollIntervalMs = DEFAULT_POLL_MS, limit = DEFAULT_LIMIT, filterPattern, signal, sleep = defaultSleep, maxConsecutiveErrors = DEFAULT_MAX_CONSECUTIVE_ERRORS, logStreamNamePrefix, endTime = null, idlePolls = DEFAULT_IDLE_POLLS, maxEvents = DEFAULT_MAX_EVENTS, reportCoverage = false, now = Date.now } = options;
337
348
  const historic = typeof endTime === "number" && Number.isFinite(endTime);
338
349
  const windowEnd = historic ? endTime : null;
339
350
  const idlePollsAllowed = Number.isFinite(idlePolls) && idlePolls > 0 ? Math.floor(idlePolls) : DEFAULT_IDLE_POLLS;
@@ -362,18 +373,29 @@ async function* tailLogEvents(options) {
362
373
  let consecutiveErrors = 0;
363
374
  let emitted = 0;
364
375
  let emptyPolls = 0;
376
+ let sweepStart = cursor;
377
+ let sweepSentAt = 0;
378
+ let sweepHadEvents = false;
379
+ let nextToken;
365
380
  for (;;) {
366
381
  if (isAborted()) return;
367
382
  try {
383
+ if (nextToken === void 0) {
384
+ sweepStart = cursor;
385
+ sweepSentAt = now();
386
+ sweepHadEvents = false;
387
+ }
368
388
  const input = {
369
389
  ...baseInput,
370
- startTime: cursor
390
+ startTime: sweepStart
371
391
  };
392
+ if (nextToken !== void 0) input.nextToken = nextToken;
372
393
  const response = await client.send(new FilterLogEventsCommand(input), { abortSignal: signal });
373
394
  consecutiveErrors = 0;
395
+ nextToken = typeof response.nextToken === "string" && response.nextToken.length > 0 ? response.nextToken : void 0;
374
396
  const events = selectNewEvents(response.events, seen);
375
397
  if (events.length > 0) {
376
- emptyPolls = 0;
398
+ sweepHadEvents = true;
377
399
  cursor = nextCursor(cursor, events);
378
400
  emitted += events.length;
379
401
  yield {
@@ -387,6 +409,19 @@ async function* tailLogEvents(options) {
387
409
  };
388
410
  return;
389
411
  }
412
+ }
413
+ if (nextToken !== void 0) continue;
414
+ if (reportCoverage) {
415
+ const end = windowEnd === null ? sweepSentAt : Math.min(windowEnd, sweepSentAt);
416
+ if (end >= sweepStart) yield {
417
+ type: "coverage",
418
+ start: sweepStart,
419
+ end,
420
+ readAt: sweepSentAt
421
+ };
422
+ }
423
+ if (sweepHadEvents) {
424
+ emptyPolls = 0;
390
425
  if (windowEnd !== null && cursor >= windowEnd) {
391
426
  yield {
392
427
  type: "end",
@@ -451,13 +486,21 @@ var SSE_HEADERS = {
451
486
  "x-accel-buffering": "no"
452
487
  };
453
488
  /**
454
- * Tags every event of one tail with its log group.
489
+ * Tags every event of one tail with its log group and where it came from.
455
490
  *
456
491
  * A merged multi-group stream has to say which group each line came from, both
457
- * for the archive and for the group column in the viewer.
492
+ * for the archive and for the group column in the viewer. `origin` is what keeps
493
+ * a mixed archive/CloudWatch view from writing archived rows back.
458
494
  */
459
- async function* taggedEvents(source, group) {
495
+ async function* taggedEvents(source, group, origin) {
460
496
  for await (const batch of source) {
497
+ if (batch.type === "coverage") {
498
+ yield {
499
+ ...batch,
500
+ group
501
+ };
502
+ continue;
503
+ }
461
504
  if (batch.type !== "events") {
462
505
  yield batch;
463
506
  continue;
@@ -469,7 +512,8 @@ async function* taggedEvents(source, group) {
469
512
  });
470
513
  yield {
471
514
  type: "events",
472
- events
515
+ events,
516
+ origin
473
517
  };
474
518
  }
475
519
  }
@@ -478,7 +522,8 @@ async function* taggedEvents(source, group) {
478
522
  *
479
523
  * A merged multi-group stream tags every event with its own group, so a batch
480
524
  * that mixes groups is split; a single-group stream falls back to the group the
481
- * request named.
525
+ * request named. Answers `false` when any row was not stored, which is what
526
+ * stops the stream from recording coverage it cannot back up.
482
527
  */
483
528
  async function recordBatch(archive, region, groupNames, events) {
484
529
  const fallback = groupNames[0] ?? "";
@@ -489,9 +534,35 @@ async function recordBatch(archive, region, groupNames, events) {
489
534
  if (bucket === void 0) byGroup.set(group, [event]);
490
535
  else bucket.push(event);
491
536
  }
492
- for (const [group, groupEvents] of byGroup) await archive.record(region, group, groupEvents);
537
+ let stored = true;
538
+ for (const [group, groupEvents] of byGroup) if (await archive.record(region, group, groupEvents) !== groupEvents.length) stored = false;
539
+ return stored;
493
540
  }
494
541
  /**
542
+ * Collects the ranges a stream read from CloudWatch, per log group.
543
+ *
544
+ * Each range arrives after the events it produced, and the pump has archived
545
+ * those by then, so a range seen here is backed by stored rows. Only the part
546
+ * that had settled when it was read is kept, and ranges are merged as they
547
+ * arrive so a long live tail holds a handful of intervals, not one per poll.
548
+ */
549
+ var CoverageCollector = class {
550
+ #byGroup = /* @__PURE__ */ new Map();
551
+ add(group, range) {
552
+ const settled = settleCoverage(range, range.readAt);
553
+ if (settled === null) return;
554
+ this.#byGroup.set(group, mergeCoverage([...this.#byGroup.get(group) ?? [], settled]));
555
+ }
556
+ entries() {
557
+ const entries = [];
558
+ for (const [logGroup, intervals] of this.#byGroup) for (const interval of intervals) entries.push({
559
+ logGroup,
560
+ ...interval
561
+ });
562
+ return entries;
563
+ }
564
+ };
565
+ /**
495
566
  * Parses a positive integer parameter within `limits`.
496
567
  *
497
568
  * Returns `null` for a missing value (meaning "use the default") and for an
@@ -507,6 +578,32 @@ function parseBoundedInt(value, limits) {
507
578
  return Math.min(Math.max(Math.round(parsed), limits.min), limits.max);
508
579
  }
509
580
  /**
581
+ * Creates the CloudWatch Logs client and resolves the region it reads.
582
+ *
583
+ * Returns an `apiError` response the route can send unchanged when either step
584
+ * fails (a missing region is the common case), so both the plain and the hybrid
585
+ * feed build the client the same way.
586
+ */
587
+ async function openCloudWatch(config) {
588
+ let client;
589
+ try {
590
+ client = createLogsClient(config);
591
+ } catch (error) {
592
+ const described = describeAwsError(error);
593
+ return apiError(502, described.message, described.code);
594
+ }
595
+ try {
596
+ return {
597
+ client,
598
+ region: await resolveEffectiveRegion(client, config)
599
+ };
600
+ } catch (error) {
601
+ client.destroy();
602
+ const described = describeAwsError(error);
603
+ return apiError(502, described.message, described.code);
604
+ }
605
+ }
606
+ /**
510
607
  * Builds the feed for a request.
511
608
  *
512
609
  * The archive path never creates a CloudWatch client, so browsing history works
@@ -540,35 +637,83 @@ async function resolveFeed(request) {
540
637
  release: () => void 0
541
638
  };
542
639
  }
543
- let client;
544
- try {
545
- client = createLogsClient(config);
546
- } catch (error) {
547
- const described = describeAwsError(error);
548
- return apiError(502, described.message, described.code);
549
- }
550
- let region;
551
- try {
552
- region = await resolveEffectiveRegion(client, config);
553
- } catch (error) {
554
- client.destroy();
555
- const described = describeAwsError(error);
556
- return apiError(502, described.message, described.code);
640
+ const opened = await openCloudWatch(config);
641
+ if (opened instanceof Response) return opened;
642
+ const { client, region } = opened;
643
+ const reportCoverage = (request.filterPattern ?? "").length === 0;
644
+ return {
645
+ region,
646
+ groupNames,
647
+ generator: mergeTails(groupNames.map((group) => taggedEvents(tailLogEvents({
648
+ client,
649
+ logGroupName: group,
650
+ startTime,
651
+ endTime,
652
+ pollIntervalMs: request.pollIntervalMs,
653
+ filterPattern: request.filterPattern,
654
+ signal,
655
+ maxConsecutiveErrors: MAX_CONSECUTIVE_ERRORS,
656
+ reportCoverage,
657
+ ...request.maxEvents === null ? {} : { maxEvents: request.maxEvents }
658
+ }), group, "cloudwatch"))),
659
+ release: () => client.destroy()
660
+ };
661
+ }
662
+ /**
663
+ * Builds a historic CloudWatch view that reads the archive wherever it can.
664
+ *
665
+ * For each group the window is split against the archive's coverage: ranges the
666
+ * archive already holds are replayed locally, and only the gaps are fetched from
667
+ * CloudWatch. That is what makes re-searching a window that was streamed before
668
+ * fast and offline-first, without ever dropping events the archive never saw -
669
+ * the gaps are always filled from AWS.
670
+ *
671
+ * Each gap is recorded as coverage once CloudWatch has been read over it and
672
+ * its events are stored, so the next view of the same window is answered from
673
+ * the archive (all but its last few minutes, which may still be arriving).
674
+ */
675
+ async function resolveHybridFeed(request) {
676
+ const { config, env, groupNames, startTime, filterPattern, pollIntervalMs, signal } = request;
677
+ const { maxEvents, pageSize } = request;
678
+ const end = request.endTime ?? Date.now();
679
+ const opened = await openCloudWatch(config);
680
+ if (opened instanceof Response) return opened;
681
+ const { client, region } = opened;
682
+ const archive = await getArchive(env, {
683
+ region,
684
+ readOnly: true
685
+ });
686
+ const coverage = await archive.coverage(region, groupNames, startTime, end);
687
+ const generators = [];
688
+ for (const group of groupNames) {
689
+ const intervals = coverage.get(group) ?? [];
690
+ for (const covered of intersectCoverage(startTime, end, intervals)) generators.push(taggedEvents(tailArchivedEvents({
691
+ archive,
692
+ region,
693
+ logGroups: [group],
694
+ startTime: covered.start,
695
+ endTime: covered.end,
696
+ ...pageSize === null ? {} : { pageSize },
697
+ ...maxEvents === null ? {} : { maxEvents },
698
+ signal
699
+ }), group, "archive"));
700
+ for (const gap of subtractCoverage(startTime, end, intervals)) generators.push(taggedEvents(tailLogEvents({
701
+ client,
702
+ logGroupName: group,
703
+ startTime: gap.start,
704
+ endTime: gap.end,
705
+ pollIntervalMs,
706
+ filterPattern,
707
+ signal,
708
+ maxConsecutiveErrors: MAX_CONSECUTIVE_ERRORS,
709
+ reportCoverage: true,
710
+ ...maxEvents === null ? {} : { maxEvents }
711
+ }), group, "cloudwatch"));
557
712
  }
558
- const tails = groupNames.map((group) => taggedEvents(tailLogEvents({
559
- client,
560
- logGroupName: group,
561
- startTime,
562
- endTime,
563
- pollIntervalMs: request.pollIntervalMs,
564
- filterPattern: request.filterPattern,
565
- signal,
566
- maxConsecutiveErrors: MAX_CONSECUTIVE_ERRORS
567
- }), group));
568
713
  return {
569
714
  region,
570
715
  groupNames,
571
- generator: mergeTails(tails),
716
+ generator: mergeTails(generators),
572
717
  release: () => client.destroy()
573
718
  };
574
719
  }
@@ -610,7 +755,8 @@ var GET = async ({ url, request }) => {
610
755
  if (!streamWindow.ok) return apiError(400, streamWindow.message, streamWindow.code);
611
756
  if (source === "archive" && streamWindow.mode === "live") return apiError(400, "The local archive only serves historic windows: use mode=historic, or source=cloudwatch to tail live", "invalid-mode");
612
757
  const bodyAbort = new AbortController();
613
- const feed = await resolveFeed({
758
+ const hybrid = source === "cloudwatch" && streamWindow.mode === "historic" && (filterPattern ?? "").length === 0;
759
+ const feedRequest = {
614
760
  source,
615
761
  config,
616
762
  env,
@@ -624,7 +770,8 @@ var GET = async ({ url, request }) => {
624
770
  maxEvents: parseBoundedInt(url.searchParams.get("max"), ARCHIVE_MAX_LIMITS),
625
771
  pollIntervalMs: clampPollMs(url.searchParams.get("poll")),
626
772
  signal: bodyAbort.signal
627
- });
773
+ };
774
+ const feed = hybrid ? await resolveHybridFeed(feedRequest) : await resolveFeed(feedRequest);
628
775
  if (feed instanceof Response) return feed;
629
776
  const archive = source === "cloudwatch" ? await getArchive(env, { region: feed.region }) : null;
630
777
  const encoder = new TextEncoder();
@@ -687,19 +834,33 @@ var GET = async ({ url, request }) => {
687
834
  request.signal.removeEventListener("abort", onAbort);
688
835
  feed.release();
689
836
  };
837
+ const eventCap = source === "cloudwatch" && streamWindow.mode === "historic" ? feedRequest.maxEvents : null;
690
838
  const pump = async () => {
691
839
  let consecutiveErrors = 0;
692
840
  let reason = "completed";
841
+ let sent = 0;
842
+ const coverage = new CoverageCollector();
843
+ let archiveComplete = true;
693
844
  try {
694
845
  for await (const batch of feed.generator) {
695
846
  if (closed || bodyAbort.signal.aborted) break;
696
847
  if (batch.type === "events") {
697
848
  const events = withDetections(batch.events);
698
- const payload = { events };
849
+ const remaining = eventCap === null ? events.length : eventCap - sent;
850
+ const shown = remaining < events.length ? events.slice(0, remaining) : events;
851
+ const payload = { events: shown };
699
852
  consecutiveErrors = 0;
853
+ sent += shown.length;
700
854
  enqueue(sseFrame("log", payload));
701
- if (archive !== null) await recordBatch(archive, feed.region, feed.groupNames, events);
702
- } else if (batch.type === "end") {
855
+ if (archive !== null && batch.origin !== "archive") {
856
+ if (!await recordBatch(archive, feed.region, feed.groupNames, events)) archiveComplete = false;
857
+ }
858
+ if (eventCap !== null && sent >= eventCap) {
859
+ reason = "event-limit";
860
+ break;
861
+ }
862
+ } else if (batch.type === "coverage") coverage.add(batch.group ?? feed.groupNames[0] ?? "", batch);
863
+ else if (batch.type === "end") {
703
864
  reason = batch.reason;
704
865
  break;
705
866
  } else {
@@ -713,6 +874,8 @@ var GET = async ({ url, request }) => {
713
874
  if (bodyAbort.signal.aborted) reason = "client-disconnected";
714
875
  else if (consecutiveErrors >= MAX_CONSECUTIVE_ERRORS) reason = "repeated-errors";
715
876
  }
877
+ const covered = coverage.entries();
878
+ if (archive !== null && archiveComplete && covered.length > 0) await archive.recordCoverage(feed.region, covered);
716
879
  } catch (error) {
717
880
  const described = describeAwsError(error);
718
881
  const payload = { message: described.message };
@@ -756,4 +919,4 @@ var GET = async ({ url, request }) => {
756
919
  };
757
920
 
758
921
  export { GET };
759
- //# sourceMappingURL=_server.ts.js-BxXw5K0R.js.map
922
+ //# sourceMappingURL=_server.ts.js-U2naV16N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-U2naV16N.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/stream/_server.ts.js"],"sourcesContent":["import { c as resolveAwsConfig, i as createLogsClient, l as resolveEffectiveRegion, o as describeAwsError, r as REGION_PARAM_HINT, s as parseRegionParam, t as readEnv, u as apiError } from \"../../../../chunks/env2.js\";\nimport { a as subtractCoverage, i as settleCoverage, n as intersectCoverage, r as mergeCoverage, t as getArchive } from \"../../../../chunks/archive.js\";\nimport { n as parseSourceParam, t as SOURCE_PARAM_HINT } from \"../../../../chunks/source.js\";\nimport { a as clampPollMs, i as parseGroupParams, n as parseLevelParam, r as withDetections, s as resolveWindow, t as LEVEL_PARAM_HINT } from \"../../../../chunks/level-filter.js\";\nimport \"@sveltejs/kit\";\nimport { FilterLogEventsCommand } from \"@aws-sdk/client-cloudwatch-logs\";\n//#region src/lib/server/live-streams.ts\nvar shared = globalThis;\nvar registry = shared.watchTailLiveStreams ??= {\n\tclosers: /* @__PURE__ */ new Set(),\n\tlistening: false\n};\nvar { closers } = registry;\n/** Clean up streams without swallowing Node's default signal termination. */\nfunction onSignal(signal) {\n\tcloseLiveStreams();\n\tif (process.listenerCount(signal) === 0) process.kill(process.pid, signal);\n}\n/** Ends every open stream, and reports how many were open. */\nfunction closeLiveStreams() {\n\tconst count = closers.size;\n\tfor (const close of closers) try {\n\t\tclose();\n\t} catch {}\n\tclosers.clear();\n\treturn count;\n}\n/**\n* Registers an open stream, and returns the function that unregisters it.\n*\n* The signal handlers are installed with the first stream and remain until\n* shutdown, even when all streams have already disconnected.\n*/\nfunction registerLiveStream(close) {\n\tif (!registry.listening) {\n\t\tregistry.listening = true;\n\t\tprocess.prependOnceListener(\"SIGINT\", onSignal);\n\t\tprocess.prependOnceListener(\"SIGTERM\", onSignal);\n\t}\n\tclosers.add(close);\n\treturn () => {\n\t\tclosers.delete(close);\n\t};\n}\n//#endregion\n//#region src/lib/server/archive-tail.ts\n/** Page size used when the caller does not ask for one. */\nvar DEFAULT_ARCHIVE_PAGE_SIZE = 1e3;\n/** Upper bound on one page, so a huge window cannot exhaust memory. */\nvar MAX_ARCHIVE_PAGE_SIZE = 5e3;\n/** Events one archive request may return before it stops (matches the tailer). */\nvar DEFAULT_ARCHIVE_MAX_EVENTS = 1e4;\n/** Message shown when DuckDB is missing or the file cannot be opened. */\nfunction archiveUnavailableMessage(archive) {\n\tconst reason = archive.error;\n\tconst base = \"The local archive is not available on this machine\";\n\treturn reason === null || reason.length === 0 ? base : `${base}: ${reason}`;\n}\n/**\n* Yields archived events for one window, oldest first.\n*\n* An unavailable archive, or a page that cannot be read, produces a single\n* `error` batch instead of throwing, so the browser shows a normal stream error. An aborted signal ends the generator\n* without yielding an `end` batch, which is what the route treats as a\n* client disconnect.\n*/\nasync function* tailArchivedEvents(options) {\n\tconst { archive, region, logGroups, startTime, endTime, search = null, streamPrefix = null, levels = null, signal } = options;\n\tif (!archive.available) {\n\t\tyield {\n\t\t\ttype: \"error\",\n\t\t\tmessage: archiveUnavailableMessage(archive),\n\t\t\tcode: \"archive-unavailable\"\n\t\t};\n\t\treturn;\n\t}\n\tconst requestedPageSize = options.pageSize ?? 1e3;\n\tconst pageSize = Math.min(Math.max(Number.isFinite(requestedPageSize) ? Math.round(requestedPageSize) : DEFAULT_ARCHIVE_PAGE_SIZE, 1), MAX_ARCHIVE_PAGE_SIZE);\n\tconst requestedMax = options.maxEvents ?? 1e4;\n\tconst maxEvents = Number.isFinite(requestedMax) && requestedMax > 0 ? Math.floor(requestedMax) : DEFAULT_ARCHIVE_MAX_EVENTS;\n\tlet cursor = null;\n\tlet emitted = 0;\n\tfor (;;) {\n\t\tif (signal?.aborted === true) return;\n\t\tconst page = await archive.page({\n\t\t\tregion,\n\t\t\tlogGroups,\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tsearch,\n\t\t\tstreamPrefix,\n\t\t\tlevels,\n\t\t\tafter: cursor,\n\t\t\tlimit: pageSize\n\t\t});\n\t\tif (page.error !== void 0) {\n\t\t\tyield {\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `The local archive could not be read: ${page.error}`,\n\t\t\t\tcode: \"archive-read-failed\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tif (page.events.length === 0) {\n\t\t\tyield {\n\t\t\t\ttype: \"end\",\n\t\t\t\treason: \"window-complete\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\temitted += page.events.length;\n\t\tyield {\n\t\t\ttype: \"events\",\n\t\t\tevents: page.events,\n\t\t\torigin: \"archive\"\n\t\t};\n\t\tcursor = page.last;\n\t\tif (cursor === null || page.events.length < pageSize) {\n\t\t\tyield {\n\t\t\t\ttype: \"end\",\n\t\t\t\treason: \"window-complete\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tif (emitted >= maxEvents) {\n\t\t\tyield {\n\t\t\t\ttype: \"end\",\n\t\t\t\treason: \"event-limit\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t}\n}\n//#endregion\n//#region src/lib/server/multi-tail.ts\n/** Events-payload batch reasons, worst first. */\nvar END_PRECEDENCE = [\n\t\"repeated-errors\",\n\t\"event-limit\",\n\t\"window-complete\"\n];\n/** Picks the most serious end reason from the sources. */\nfunction mergeEndReason(reasons) {\n\tfor (const candidate of END_PRECEDENCE) if (reasons.includes(candidate)) return candidate;\n\treturn \"window-complete\";\n}\n/**\n* Yields every batch of every source, then one `end`.\n*\n* A failing source yields its own `error` batch; it never cancels the others, so\n* one unreadable group does not silence the rest of the view.\n*/\nasync function* mergeTails(sources) {\n\tif (sources.length === 0) return;\n\tif (sources.length === 1) {\n\t\tyield* sources[0];\n\t\treturn;\n\t}\n\tconst queue = [];\n\tlet waiting = null;\n\t/** Sources whose end marker has been consumed, so their batches are all out. */\n\tlet completed = 0;\n\tconst endReasons = [];\n\tconst push = (item) => {\n\t\tqueue.push(item);\n\t\tconst wake = waiting;\n\t\twaiting = null;\n\t\twake?.();\n\t};\n\tfor (const source of sources) (async () => {\n\t\tlet endReason = null;\n\t\ttry {\n\t\t\tfor await (const batch of source) if (batch.type === \"end\") endReason = batch.reason;\n\t\t\telse push({ batch });\n\t\t} catch {} finally {\n\t\t\tif (endReason !== null) endReasons.push(endReason);\n\t\t\tpush({ done: true });\n\t\t}\n\t})();\n\tfor (;;) {\n\t\tif (queue.length === 0) {\n\t\t\tif (completed >= sources.length) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"end\",\n\t\t\t\t\treason: mergeEndReason(endReasons)\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait new Promise((resolve) => {\n\t\t\t\twaiting = resolve;\n\t\t\t\tif (queue.length > 0 || completed >= sources.length) {\n\t\t\t\t\twaiting = null;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst item = queue.shift();\n\t\tif (\"batch\" in item) yield item.batch;\n\t\telse completed += 1;\n\t}\n}\n//#endregion\n//#region src/lib/server/sse.ts\nvar NEWLINE_PATTERN = /\\r?\\n/g;\n/**\n* Encodes a single server-sent event frame.\n*\n* The JSON payload is always kept on one line, so the frame is\n* `event: <name>\\ndata: <json>\\n\\n`.\n*/\nfunction sseFrame(event, data) {\n\treturn `event: ${event.replace(NEWLINE_PATTERN, \" \").trim()}\\ndata: ${(JSON.stringify(data) ?? \"null\").replace(NEWLINE_PATTERN, \" \")}\\n\\n`;\n}\n//#endregion\n//#region src/lib/server/tail.ts\nvar DEFAULT_SEEN_CAPACITY = 5e3;\nvar DEFAULT_POLL_MS = 1e3;\nvar DEFAULT_LIMIT = 1e3;\nvar DEFAULT_MAX_CONSECUTIVE_ERRORS = 8;\nvar MAX_BACKOFF_MS = 15e3;\n/** Empty polls that end a historic window: CloudWatch can lag behind ingestion. */\nvar DEFAULT_IDLE_POLLS = 2;\n/** Upper bound on events yielded for one historic window. */\nvar DEFAULT_MAX_EVENTS = 1e4;\n/** Returns true when the value is an abort error raised by the fetch/SDK layer. */\nfunction isAbortError(error) {\n\tif (error instanceof Error) return error.name === \"AbortError\" || error.code === \"ABORT_ERR\";\n\treturn false;\n}\n/**\n* Abort-aware sleep used by default.\n*\n* Resolves after `ms`, resolves immediately when the signal aborts and always\n* clears its timer. An injected sleep may instead reject on abort, which\n* {@link tailLogEvents} handles by re-checking the signal.\n*/\nvar defaultSleep = (ms, signal) => new Promise((resolve) => {\n\tif (signal?.aborted === true || !Number.isFinite(ms) || ms <= 0) {\n\t\tresolve();\n\t\treturn;\n\t}\n\tconst onAbort = () => {\n\t\tclearTimeout(timer);\n\t\tresolve();\n\t};\n\tconst timer = setTimeout(() => {\n\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\tresolve();\n\t}, ms);\n\ttimer.unref?.();\n\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n});\n/**\n* Bounded first-in-first-out set of event ids.\n*\n* Keeps at most `capacity` ids (default 5000) so memory stays flat on long\n* streams. The oldest id is evicted first.\n*/\nvar SeenEventIds = class {\n\tids = /* @__PURE__ */ new Set();\n\tcapacity;\n\tconstructor(capacity = DEFAULT_SEEN_CAPACITY) {\n\t\tconst parsed = Number.isFinite(capacity) ? Math.floor(capacity) : DEFAULT_SEEN_CAPACITY;\n\t\tthis.capacity = parsed > 0 ? parsed : DEFAULT_SEEN_CAPACITY;\n\t}\n\t/** True when the id was recorded before. Null and empty ids are never recorded. */\n\thas(id) {\n\t\treturn id !== null && id.length > 0 && this.ids.has(id);\n\t}\n\t/** Records an id, evicting the oldest entry when the capacity is reached. */\n\tadd(id) {\n\t\tif (id === null || id.length === 0 || this.ids.has(id)) return;\n\t\tif (this.ids.size >= this.capacity) {\n\t\t\tconst oldest = this.ids.values().next();\n\t\t\tif (!oldest.done) this.ids.delete(oldest.value);\n\t\t}\n\t\tthis.ids.add(id);\n\t}\n\t/** Number of ids currently remembered. */\n\tget size() {\n\t\treturn this.ids.size;\n\t}\n};\n/**\n* Converts a poll result into the events worth sending downstream.\n*\n* Drops ids seen in earlier polls and duplicates inside the same batch, then\n* records the ids of the accepted events. Events without an id are always kept\n* and never recorded.\n*/\nfunction selectNewEvents(events, seen) {\n\tconst selected = [];\n\tif (events === void 0 || events.length === 0) return selected;\n\tconst freshIds = /* @__PURE__ */ new Set();\n\tfor (const event of events) {\n\t\tconst id = event.eventId !== void 0 && event.eventId.length > 0 ? event.eventId : null;\n\t\tif (id !== null) {\n\t\t\tif (seen.has(id) || freshIds.has(id)) continue;\n\t\t\tfreshIds.add(id);\n\t\t}\n\t\tconst dto = {\n\t\t\tid,\n\t\t\ttimestamp: typeof event.timestamp === \"number\" ? event.timestamp : 0,\n\t\t\tmessage: event.message ?? \"\"\n\t\t};\n\t\tif (event.logStreamName !== void 0) dto.streamName = event.logStreamName;\n\t\tif (typeof event.ingestionTime === \"number\") dto.ingestionTime = event.ingestionTime;\n\t\tselected.push(dto);\n\t}\n\tfor (const id of freshIds) seen.add(id);\n\treturn selected;\n}\n/** Highest timestamp in `events`, never lower than `previous`. */\nfunction nextCursor(previous, events) {\n\tlet cursor = Number.isFinite(previous) ? previous : 0;\n\tfor (const event of events) if (Number.isFinite(event.timestamp) && event.timestamp > cursor) cursor = event.timestamp;\n\treturn cursor;\n}\n/**\n* Polls `FilterLogEvents` and yields batches as they arrive.\n*\n* `startTime` is inclusive upstream, so the cursor advances to the newest\n* timestamp seen and repeated events are removed by {@link SeenEventIds}.\n* A `nextToken` is followed straight away, so a sweep reads its whole range\n* before the next one starts. Nothing is new in a sweep => sleep\n* `pollIntervalMs`. Errors are yielded as\n* `error` batches and retried with exponential backoff\n* (`pollIntervalMs * 2^consecutiveErrors`, capped at 15000 ms) until\n* `maxConsecutiveErrors` (default 8) failures in a row, then the generator\n* returns. An aborted signal ends the generator without throwing.\n*/\nasync function* tailLogEvents(options) {\n\tconst { client, logGroupName, startTime, pollIntervalMs = DEFAULT_POLL_MS, limit = DEFAULT_LIMIT, filterPattern, signal, sleep = defaultSleep, maxConsecutiveErrors = DEFAULT_MAX_CONSECUTIVE_ERRORS, logStreamNamePrefix, endTime = null, idlePolls = DEFAULT_IDLE_POLLS, maxEvents = DEFAULT_MAX_EVENTS, reportCoverage = false, now = Date.now } = options;\n\tconst historic = typeof endTime === \"number\" && Number.isFinite(endTime);\n\tconst windowEnd = historic ? endTime : null;\n\tconst idlePollsAllowed = Number.isFinite(idlePolls) && idlePolls > 0 ? Math.floor(idlePolls) : DEFAULT_IDLE_POLLS;\n\tconst eventCap = Number.isFinite(maxEvents) && maxEvents > 0 ? Math.floor(maxEvents) : DEFAULT_MAX_EVENTS;\n\tconst pollMs = Number.isFinite(pollIntervalMs) && pollIntervalMs > 0 ? Math.min(Math.round(pollIntervalMs), MAX_BACKOFF_MS) : DEFAULT_POLL_MS;\n\tconst pageLimit = Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : DEFAULT_LIMIT;\n\tconst maxErrors = Number.isFinite(maxConsecutiveErrors) && maxConsecutiveErrors > 0 ? Math.floor(maxConsecutiveErrors) : DEFAULT_MAX_CONSECUTIVE_ERRORS;\n\tconst baseInput = {\n\t\tlogGroupName,\n\t\tstartTime,\n\t\tlimit: pageLimit\n\t};\n\tif (windowEnd !== null) baseInput.endTime = windowEnd;\n\tif (filterPattern !== void 0 && filterPattern.length > 0) baseInput.filterPattern = filterPattern;\n\tif (logStreamNamePrefix !== void 0 && logStreamNamePrefix.length > 0) baseInput.logStreamNamePrefix = logStreamNamePrefix;\n\tconst isAborted = () => signal?.aborted === true;\n\tconst wait = async (ms) => {\n\t\tif (isAborted()) return true;\n\t\ttry {\n\t\t\tawait sleep(ms, signal);\n\t\t} catch {}\n\t\treturn isAborted();\n\t};\n\tconst seen = new SeenEventIds();\n\tlet cursor = Number.isFinite(startTime) ? startTime : 0;\n\tlet consecutiveErrors = 0;\n\tlet emitted = 0;\n\tlet emptyPolls = 0;\n\tlet sweepStart = cursor;\n\tlet sweepSentAt = 0;\n\tlet sweepHadEvents = false;\n\tlet nextToken;\n\tfor (;;) {\n\t\tif (isAborted()) return;\n\t\ttry {\n\t\t\tif (nextToken === void 0) {\n\t\t\t\tsweepStart = cursor;\n\t\t\t\tsweepSentAt = now();\n\t\t\t\tsweepHadEvents = false;\n\t\t\t}\n\t\t\tconst input = {\n\t\t\t\t...baseInput,\n\t\t\t\tstartTime: sweepStart\n\t\t\t};\n\t\t\tif (nextToken !== void 0) input.nextToken = nextToken;\n\t\t\tconst response = await client.send(new FilterLogEventsCommand(input), { abortSignal: signal });\n\t\t\tconsecutiveErrors = 0;\n\t\t\tnextToken = typeof response.nextToken === \"string\" && response.nextToken.length > 0 ? response.nextToken : void 0;\n\t\t\tconst events = selectNewEvents(response.events, seen);\n\t\t\tif (events.length > 0) {\n\t\t\t\tsweepHadEvents = true;\n\t\t\t\tcursor = nextCursor(cursor, events);\n\t\t\t\temitted += events.length;\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"events\",\n\t\t\t\t\tevents\n\t\t\t\t};\n\t\t\t\tif (historic && emitted >= eventCap) {\n\t\t\t\t\tyield {\n\t\t\t\t\t\ttype: \"end\",\n\t\t\t\t\t\treason: \"event-limit\"\n\t\t\t\t\t};\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (nextToken !== void 0) continue;\n\t\t\tif (reportCoverage) {\n\t\t\t\tconst end = windowEnd === null ? sweepSentAt : Math.min(windowEnd, sweepSentAt);\n\t\t\t\tif (end >= sweepStart) yield {\n\t\t\t\t\ttype: \"coverage\",\n\t\t\t\t\tstart: sweepStart,\n\t\t\t\t\tend,\n\t\t\t\t\treadAt: sweepSentAt\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (sweepHadEvents) {\n\t\t\t\temptyPolls = 0;\n\t\t\t\tif (windowEnd !== null && cursor >= windowEnd) {\n\t\t\t\t\tyield {\n\t\t\t\t\t\ttype: \"end\",\n\t\t\t\t\t\treason: \"window-complete\"\n\t\t\t\t\t};\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (historic) {\n\t\t\t\temptyPolls += 1;\n\t\t\t\tif (emptyPolls >= idlePollsAllowed) {\n\t\t\t\t\tyield {\n\t\t\t\t\t\ttype: \"end\",\n\t\t\t\t\t\treason: \"window-complete\"\n\t\t\t\t\t};\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (isAborted() || isAbortError(error)) return;\n\t\t\tconsecutiveErrors += 1;\n\t\t\tconst described = describeAwsError(error);\n\t\t\tyield {\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: described.message,\n\t\t\t\tcode: described.code\n\t\t\t};\n\t\t\tif (consecutiveErrors >= maxErrors) {\n\t\t\t\tif (historic) yield {\n\t\t\t\t\ttype: \"end\",\n\t\t\t\t\treason: \"repeated-errors\"\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (await wait(Math.min(pollMs * 2 ** consecutiveErrors, MAX_BACKOFF_MS))) return;\n\t\t\tcontinue;\n\t\t}\n\t\tif (await wait(pollMs)) return;\n\t}\n}\n//#endregion\n//#region src/routes/api/stream/+server.ts\n/** Send a `ping` after this much silence. */\nvar PING_INTERVAL_MS = 15e3;\n/** Stop the stream after this many consecutive failed polls. */\nvar MAX_CONSECUTIVE_ERRORS = 8;\n/** Bounds for the archive `pageSize` parameter. */\nvar ARCHIVE_PAGE_LIMITS = {\n\tmin: 1,\n\tmax: 5e3\n};\n/** Bounds for the archive `max` parameter (events per request). */\nvar ARCHIVE_MAX_LIMITS = {\n\tmin: 1,\n\tmax: 1e5\n};\nvar SSE_HEADERS = {\n\t\"content-type\": \"text/event-stream; charset=utf-8\",\n\t\"cache-control\": \"no-cache, no-transform\",\n\tconnection: \"keep-alive\",\n\t\"x-accel-buffering\": \"no\"\n};\n/**\n* Tags every event of one tail with its log group and where it came from.\n*\n* A merged multi-group stream has to say which group each line came from, both\n* for the archive and for the group column in the viewer. `origin` is what keeps\n* a mixed archive/CloudWatch view from writing archived rows back.\n*/\nasync function* taggedEvents(source, group, origin) {\n\tfor await (const batch of source) {\n\t\tif (batch.type === \"coverage\") {\n\t\t\tyield {\n\t\t\t\t...batch,\n\t\t\t\tgroup\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tif (batch.type !== \"events\") {\n\t\t\tyield batch;\n\t\t\tcontinue;\n\t\t}\n\t\tconst events = [];\n\t\tfor (const event of batch.events) events.push({\n\t\t\t...event,\n\t\t\tgroup\n\t\t});\n\t\tyield {\n\t\t\ttype: \"events\",\n\t\t\tevents,\n\t\t\torigin\n\t\t};\n\t}\n}\n/**\n* Writes one batch to the archive, under the right group.\n*\n* A merged multi-group stream tags every event with its own group, so a batch\n* that mixes groups is split; a single-group stream falls back to the group the\n* request named. Answers `false` when any row was not stored, which is what\n* stops the stream from recording coverage it cannot back up.\n*/\nasync function recordBatch(archive, region, groupNames, events) {\n\tconst fallback = groupNames[0] ?? \"\";\n\tconst byGroup = /* @__PURE__ */ new Map();\n\tfor (const event of events) {\n\t\tconst group = event.group ?? fallback;\n\t\tconst bucket = byGroup.get(group);\n\t\tif (bucket === void 0) byGroup.set(group, [event]);\n\t\telse bucket.push(event);\n\t}\n\tlet stored = true;\n\tfor (const [group, groupEvents] of byGroup) if (await archive.record(region, group, groupEvents) !== groupEvents.length) stored = false;\n\treturn stored;\n}\n/**\n* Collects the ranges a stream read from CloudWatch, per log group.\n*\n* Each range arrives after the events it produced, and the pump has archived\n* those by then, so a range seen here is backed by stored rows. Only the part\n* that had settled when it was read is kept, and ranges are merged as they\n* arrive so a long live tail holds a handful of intervals, not one per poll.\n*/\nvar CoverageCollector = class {\n\t#byGroup = /* @__PURE__ */ new Map();\n\tadd(group, range) {\n\t\tconst settled = settleCoverage(range, range.readAt);\n\t\tif (settled === null) return;\n\t\tthis.#byGroup.set(group, mergeCoverage([...this.#byGroup.get(group) ?? [], settled]));\n\t}\n\tentries() {\n\t\tconst entries = [];\n\t\tfor (const [logGroup, intervals] of this.#byGroup) for (const interval of intervals) entries.push({\n\t\t\tlogGroup,\n\t\t\t...interval\n\t\t});\n\t\treturn entries;\n\t}\n};\n/**\n* Parses a positive integer parameter within `limits`.\n*\n* Returns `null` for a missing value (meaning \"use the default\") and for an\n* unusable one, so a typo falls back to the default instead of failing the\n* stream; an out-of-range value is clamped rather than rejected.\n*/\nfunction parseBoundedInt(value, limits) {\n\tif (value === null) return null;\n\tconst trimmed = value.trim();\n\tif (trimmed.length === 0) return null;\n\tconst parsed = Number(trimmed);\n\tif (!Number.isFinite(parsed)) return null;\n\treturn Math.min(Math.max(Math.round(parsed), limits.min), limits.max);\n}\n/**\n* Creates the CloudWatch Logs client and resolves the region it reads.\n*\n* Returns an `apiError` response the route can send unchanged when either step\n* fails (a missing region is the common case), so both the plain and the hybrid\n* feed build the client the same way.\n*/\nasync function openCloudWatch(config) {\n\tlet client;\n\ttry {\n\t\tclient = createLogsClient(config);\n\t} catch (error) {\n\t\tconst described = describeAwsError(error);\n\t\treturn apiError(502, described.message, described.code);\n\t}\n\ttry {\n\t\treturn {\n\t\t\tclient,\n\t\t\tregion: await resolveEffectiveRegion(client, config)\n\t\t};\n\t} catch (error) {\n\t\tclient.destroy();\n\t\tconst described = describeAwsError(error);\n\t\treturn apiError(502, described.message, described.code);\n\t}\n}\n/**\n* Builds the feed for a request.\n*\n* The archive path never creates a CloudWatch client, so browsing history works\n* with no credentials and no network; it does need a region, because archived\n* rows are stored per region. Failures come back as an `apiError` response the\n* route returns unchanged.\n*/\nasync function resolveFeed(request) {\n\tconst { source, config, env, groupNames, startTime, endTime, signal } = request;\n\tif (source === \"archive\") {\n\t\tconst region = config.region ?? \"\";\n\t\tif (region === \"\") return apiError(400, \"Query parameter \\\"region\\\" is required when source=archive\", \"missing-region-param\");\n\t\treturn {\n\t\t\tregion,\n\t\t\tgroupNames,\n\t\t\tgenerator: tailArchivedEvents({\n\t\t\t\tarchive: await getArchive(env, {\n\t\t\t\t\tregion,\n\t\t\t\t\treadOnly: true\n\t\t\t\t}),\n\t\t\t\tregion,\n\t\t\t\tlogGroups: groupNames,\n\t\t\t\tstartTime,\n\t\t\t\tendTime: endTime ?? Date.now(),\n\t\t\t\tsearch: request.search,\n\t\t\t\tlevels: request.levels,\n\t\t\t\t...request.pageSize === null ? {} : { pageSize: request.pageSize },\n\t\t\t\t...request.maxEvents === null ? {} : { maxEvents: request.maxEvents },\n\t\t\t\tsignal\n\t\t\t}),\n\t\t\trelease: () => void 0\n\t\t};\n\t}\n\tconst opened = await openCloudWatch(config);\n\tif (opened instanceof Response) return opened;\n\tconst { client, region } = opened;\n\tconst reportCoverage = (request.filterPattern ?? \"\").length === 0;\n\treturn {\n\t\tregion,\n\t\tgroupNames,\n\t\tgenerator: mergeTails(groupNames.map((group) => taggedEvents(tailLogEvents({\n\t\t\tclient,\n\t\t\tlogGroupName: group,\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tpollIntervalMs: request.pollIntervalMs,\n\t\t\tfilterPattern: request.filterPattern,\n\t\t\tsignal,\n\t\t\tmaxConsecutiveErrors: MAX_CONSECUTIVE_ERRORS,\n\t\t\treportCoverage,\n\t\t\t...request.maxEvents === null ? {} : { maxEvents: request.maxEvents }\n\t\t}), group, \"cloudwatch\"))),\n\t\trelease: () => client.destroy()\n\t};\n}\n/**\n* Builds a historic CloudWatch view that reads the archive wherever it can.\n*\n* For each group the window is split against the archive's coverage: ranges the\n* archive already holds are replayed locally, and only the gaps are fetched from\n* CloudWatch. That is what makes re-searching a window that was streamed before\n* fast and offline-first, without ever dropping events the archive never saw -\n* the gaps are always filled from AWS.\n*\n* Each gap is recorded as coverage once CloudWatch has been read over it and\n* its events are stored, so the next view of the same window is answered from\n* the archive (all but its last few minutes, which may still be arriving).\n*/\nasync function resolveHybridFeed(request) {\n\tconst { config, env, groupNames, startTime, filterPattern, pollIntervalMs, signal } = request;\n\tconst { maxEvents, pageSize } = request;\n\tconst end = request.endTime ?? Date.now();\n\tconst opened = await openCloudWatch(config);\n\tif (opened instanceof Response) return opened;\n\tconst { client, region } = opened;\n\tconst archive = await getArchive(env, {\n\t\tregion,\n\t\treadOnly: true\n\t});\n\tconst coverage = await archive.coverage(region, groupNames, startTime, end);\n\tconst generators = [];\n\tfor (const group of groupNames) {\n\t\tconst intervals = coverage.get(group) ?? [];\n\t\tfor (const covered of intersectCoverage(startTime, end, intervals)) generators.push(taggedEvents(tailArchivedEvents({\n\t\t\tarchive,\n\t\t\tregion,\n\t\t\tlogGroups: [group],\n\t\t\tstartTime: covered.start,\n\t\t\tendTime: covered.end,\n\t\t\t...pageSize === null ? {} : { pageSize },\n\t\t\t...maxEvents === null ? {} : { maxEvents },\n\t\t\tsignal\n\t\t}), group, \"archive\"));\n\t\tfor (const gap of subtractCoverage(startTime, end, intervals)) generators.push(taggedEvents(tailLogEvents({\n\t\t\tclient,\n\t\t\tlogGroupName: group,\n\t\t\tstartTime: gap.start,\n\t\t\tendTime: gap.end,\n\t\t\tpollIntervalMs,\n\t\t\tfilterPattern,\n\t\t\tsignal,\n\t\t\tmaxConsecutiveErrors: MAX_CONSECUTIVE_ERRORS,\n\t\t\treportCoverage: true,\n\t\t\t...maxEvents === null ? {} : { maxEvents }\n\t\t}), group, \"cloudwatch\"));\n\t}\n\treturn {\n\t\tregion,\n\t\tgroupNames,\n\t\tgenerator: mergeTails(generators),\n\t\trelease: () => client.destroy()\n\t};\n}\n/**\n* `GET /api/stream` - server-sent events for one log group.\n*\n* Emits `ready` first, then `log` per batch, `ping` after 15 s of silence and\n* a final `end`. `source=cloudwatch` (the default) polls CloudWatch Logs with\n* the ambient credentials; `source=archive` replays the local DuckDB archive and\n* needs neither credentials nor a region parameter resolution.\n*\n* The stream is cancelled through `request.signal`, and every timer and listener\n* is removed so the dev server can exit.\n*/\nvar GET = async ({ url, request }) => {\n\tconst groupSelection = parseGroupParams(url.searchParams.get(\"group\"), url.searchParams.get(\"groups\"));\n\tif (!groupSelection.ok) return apiError(400, groupSelection.message, groupSelection.code);\n\tconst groupNames = groupSelection.names;\n\tconst parsedRegion = parseRegionParam(url.searchParams.get(\"region\"));\n\tif (!parsedRegion.ok) return apiError(400, REGION_PARAM_HINT, \"invalid-region\");\n\tconst source = parseSourceParam(url.searchParams.get(\"source\"));\n\tif (source === null) return apiError(400, SOURCE_PARAM_HINT, \"invalid-source\");\n\tconst env = readEnv();\n\tconst config = resolveAwsConfig(env, parsedRegion.region);\n\tconst filterPattern = url.searchParams.get(\"filterPattern\")?.trim();\n\tconst search = url.searchParams.get(\"search\")?.trim() ?? \"\";\n\tconst levels = parseLevelParam(url.searchParams.get(\"level\"));\n\tif (levels === void 0) return apiError(400, LEVEL_PARAM_HINT, \"invalid-level\");\n\tif (levels !== null && source !== \"archive\") return apiError(400, \"The \\\"level\\\" filter applies to source=archive; use filterPattern to filter CloudWatch\", \"invalid-level\");\n\tconst streamWindow = resolveWindow({\n\t\tmode: url.searchParams.get(\"mode\") ?? (source === \"archive\" ? \"historic\" : null),\n\t\trange: url.searchParams.get(\"range\"),\n\t\tfrom: url.searchParams.get(\"from\"),\n\t\tto: url.searchParams.get(\"to\"),\n\t\tstartTime: url.searchParams.get(\"startTime\"),\n\t\tlookback: url.searchParams.get(\"lookback\"),\n\t\tnow: Date.now()\n\t}, source === \"archive\" ? { maxLookbackMs: null } : {});\n\tif (!streamWindow.ok) return apiError(400, streamWindow.message, streamWindow.code);\n\tif (source === \"archive\" && streamWindow.mode === \"live\") return apiError(400, \"The local archive only serves historic windows: use mode=historic, or source=cloudwatch to tail live\", \"invalid-mode\");\n\tconst bodyAbort = new AbortController();\n\tconst hybrid = source === \"cloudwatch\" && streamWindow.mode === \"historic\" && (filterPattern ?? \"\").length === 0;\n\tconst feedRequest = {\n\t\tsource,\n\t\tconfig,\n\t\tenv,\n\t\tgroupNames,\n\t\tstartTime: streamWindow.startTime,\n\t\tendTime: streamWindow.endTime,\n\t\tfilterPattern,\n\t\tsearch: search.length === 0 ? null : search,\n\t\tlevels,\n\t\tpageSize: parseBoundedInt(url.searchParams.get(\"pageSize\"), ARCHIVE_PAGE_LIMITS),\n\t\tmaxEvents: parseBoundedInt(url.searchParams.get(\"max\"), ARCHIVE_MAX_LIMITS),\n\t\tpollIntervalMs: clampPollMs(url.searchParams.get(\"poll\")),\n\t\tsignal: bodyAbort.signal\n\t};\n\tconst feed = hybrid ? await resolveHybridFeed(feedRequest) : await resolveFeed(feedRequest);\n\tif (feed instanceof Response) return feed;\n\tconst archive = source === \"cloudwatch\" ? await getArchive(env, { region: feed.region }) : null;\n\tconst encoder = new TextEncoder();\n\tlet streamController;\n\t/** Removes this stream from the server's registry of open streams. */\n\tlet unregisterStream;\n\tlet closed = false;\n\tlet pingTimer;\n\tlet cleanedUp = false;\n\tconst clearPing = () => {\n\t\tif (pingTimer !== void 0) {\n\t\t\tclearTimeout(pingTimer);\n\t\t\tpingTimer = void 0;\n\t\t}\n\t};\n\tconst armPing = () => {\n\t\tif (closed) return;\n\t\tclearPing();\n\t\tpingTimer = setTimeout(() => {\n\t\t\tpingTimer = void 0;\n\t\t\tif (closed) return;\n\t\t\tenqueue(sseFrame(\"ping\", { at: Date.now() }), false);\n\t\t\tarmPing();\n\t\t}, PING_INTERVAL_MS);\n\t\tpingTimer.unref?.();\n\t};\n\tconst enqueue = (chunk, rearm = true) => {\n\t\tif (closed || streamController === void 0) return;\n\t\ttry {\n\t\t\tstreamController.enqueue(encoder.encode(chunk));\n\t\t} catch {\n\t\t\tclosed = true;\n\t\t\treturn;\n\t\t}\n\t\tif (rearm) armPing();\n\t};\n\tconst closeStream = () => {\n\t\tclosed = true;\n\t\ttry {\n\t\t\tstreamController?.close();\n\t\t} catch {}\n\t};\n\tconst writeEnd = (reason) => {\n\t\tclearPing();\n\t\tconst payload = { reason };\n\t\ttry {\n\t\t\tstreamController?.enqueue(encoder.encode(sseFrame(\"end\", payload)));\n\t\t} catch {}\n\t\tcloseStream();\n\t};\n\tconst onAbort = () => {\n\t\tbodyAbort.abort();\n\t};\n\tconst cleanup = () => {\n\t\tif (cleanedUp) return;\n\t\tcleanedUp = true;\n\t\tclearPing();\n\t\tunregisterStream?.();\n\t\tunregisterStream = void 0;\n\t\trequest.signal.removeEventListener(\"abort\", onAbort);\n\t\tfeed.release();\n\t};\n\tconst eventCap = source === \"cloudwatch\" && streamWindow.mode === \"historic\" ? feedRequest.maxEvents : null;\n\tconst pump = async () => {\n\t\tlet consecutiveErrors = 0;\n\t\tlet reason = \"completed\";\n\t\tlet sent = 0;\n\t\tconst coverage = new CoverageCollector();\n\t\tlet archiveComplete = true;\n\t\ttry {\n\t\t\tfor await (const batch of feed.generator) {\n\t\t\t\tif (closed || bodyAbort.signal.aborted) break;\n\t\t\t\tif (batch.type === \"events\") {\n\t\t\t\t\tconst events = withDetections(batch.events);\n\t\t\t\t\tconst remaining = eventCap === null ? events.length : eventCap - sent;\n\t\t\t\t\tconst shown = remaining < events.length ? events.slice(0, remaining) : events;\n\t\t\t\t\tconst payload = { events: shown };\n\t\t\t\t\tconsecutiveErrors = 0;\n\t\t\t\t\tsent += shown.length;\n\t\t\t\t\tenqueue(sseFrame(\"log\", payload));\n\t\t\t\t\tif (archive !== null && batch.origin !== \"archive\") {\n\t\t\t\t\t\tif (!await recordBatch(archive, feed.region, feed.groupNames, events)) archiveComplete = false;\n\t\t\t\t\t}\n\t\t\t\t\tif (eventCap !== null && sent >= eventCap) {\n\t\t\t\t\t\treason = \"event-limit\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else if (batch.type === \"coverage\") coverage.add(batch.group ?? feed.groupNames[0] ?? \"\", batch);\n\t\t\t\telse if (batch.type === \"end\") {\n\t\t\t\t\treason = batch.reason;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tconst payload = { message: batch.message };\n\t\t\t\t\tif (batch.code !== void 0) payload.code = batch.code;\n\t\t\t\t\tconsecutiveErrors += 1;\n\t\t\t\t\tenqueue(sseFrame(\"error\", payload));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (reason === \"completed\") {\n\t\t\t\tif (bodyAbort.signal.aborted) reason = \"client-disconnected\";\n\t\t\t\telse if (consecutiveErrors >= MAX_CONSECUTIVE_ERRORS) reason = \"repeated-errors\";\n\t\t\t}\n\t\t\tconst covered = coverage.entries();\n\t\t\tif (archive !== null && archiveComplete && covered.length > 0) await archive.recordCoverage(feed.region, covered);\n\t\t} catch (error) {\n\t\t\tconst described = describeAwsError(error);\n\t\t\tconst payload = { message: described.message };\n\t\t\tif (described.code !== void 0) payload.code = described.code;\n\t\t\tenqueue(sseFrame(\"error\", payload));\n\t\t\treason = \"failed\";\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t\twriteEnd(reason);\n\t};\n\trequest.signal.addEventListener(\"abort\", onAbort, { once: true });\n\tconst stream = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tstreamController = controller;\n\t\t\tconst payload = {\n\t\t\t\tregion: feed.region,\n\t\t\t\tlogGroupName: feed.groupNames[0] ?? \"\",\n\t\t\t\tgroups: [...feed.groupNames],\n\t\t\t\tendpoint: source === \"archive\" ? null : config.endpoint,\n\t\t\t\tsource,\n\t\t\t\tstartTime: streamWindow.startTime,\n\t\t\t\tendTime: streamWindow.endTime,\n\t\t\t\tmode: streamWindow.mode,\n\t\t\t\tpreset: streamWindow.preset,\n\t\t\t\tclamped: streamWindow.clamped\n\t\t\t};\n\t\t\tenqueue(sseFrame(\"ready\", payload));\n\t\t\tarmPing();\n\t\t\tunregisterStream = registerLiveStream(() => writeEnd(\"server-stopping\"));\n\t\t\tpump();\n\t\t},\n\t\tcancel() {\n\t\t\tbodyAbort.abort();\n\t\t\tclearPing();\n\t\t\tcloseStream();\n\t\t\tcleanup();\n\t\t}\n\t});\n\treturn new Response(stream, { headers: SSE_HEADERS });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { ah as escape_html } from '../../chunks/server.js-CAEBuMIH.js';
2
- import { p as page } from '../../chunks/state.js-vZj9lo1I.js';
1
+ import { ae as escape_html } from '../../chunks/index-server.js-Dsi44azJ.js';
2
+ import { p as page } from '../../chunks/state.js-qsHzjuJU.js';
3
3
  import '../../chunks/uneval.js-DaakSYFQ.js';
4
- import '../../chunks/index-server.js-DNLOKvM0.js';
5
4
  import '../../chunks/shared.js-CgjUIvRK.js';
6
5
  import '../../chunks/exports.js-ClPPfcHj.js';
7
- import '../../chunks/internal2.js-BMcEVxqN.js';
8
- import '../../chunks/legacy-client.js-DJmDw3Zx.js';
6
+ import '../../chunks/internal2.js-Dm0TlpeP.js';
7
+ import '../../chunks/legacy-client.js-C8Upo6IB.js';
8
+ import '../../chunks/events.js-oxLu7lhH.js';
9
9
  import '../../chunks/utils.js-BIlHjgGW.js';
10
10
 
11
11
  //#region node_modules/.pnpm/@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0_vite@8.2.2_@types_ab6e39593f61aae0ad0b9a1bac6935c7/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte
@@ -16,4 +16,4 @@ function Error($$renderer, $$props) {
16
16
  }
17
17
 
18
18
  export { Error as default };
19
- //# sourceMappingURL=error.svelte.js-bokc4skC.js.map
19
+ //# sourceMappingURL=error.svelte.js-ClTGKP0-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.svelte.js-ClTGKP0-.js","sources":["../../../../../.svelte-kit/output/server/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { S as escape_html } from \"../../chunks/index-server.js\";\nimport { t as page } from \"../../chunks/state.js\";\n//#region node_modules/.pnpm/@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0_vite@8.2.2_@types_ab6e39593f61aae0ad0b9a1bac6935c7/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte\nfunction Error($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t$$renderer.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n\t});\n}\n//#endregion\nexport { Error as default };\n"],"names":[],"mappings":";;;;;;;;;;AAEA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC,CAAC,CAAC;AACH;;"}