watch-tail 0.9.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 (357) hide show
  1. package/README.md +103 -8
  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/chunks/B2En4t_E.js +3 -0
  9. package/build/client/_app/immutable/chunks/B2En4t_E.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/B2En4t_E.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/BJ7fEbY9.js +1 -0
  12. package/build/client/_app/immutable/chunks/BJ7fEbY9.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/BJ7fEbY9.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{D7vimbmk.js → BX0v2q9h.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BX0v2q9h.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BX0v2q9h.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{DwOZdLDj.js → B_AZHMkI.js} +1 -1
  18. package/build/client/_app/immutable/chunks/B_AZHMkI.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/B_AZHMkI.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{dqF8mxBW.js → Bb9UOIo-.js} +1 -1
  21. package/build/client/_app/immutable/chunks/Bb9UOIo-.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/Bb9UOIo-.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{0b2v80OK.js → BdV_pkVs.js} +1 -1
  24. package/build/client/_app/immutable/chunks/BdV_pkVs.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/BdV_pkVs.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{C_U_Jvk5.js → BsrUsB47.js} +1 -1
  27. package/build/client/_app/immutable/chunks/BsrUsB47.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/BsrUsB47.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{DvxMaQv_.js → CHnbfiIG.js} +1 -1
  30. package/build/client/_app/immutable/chunks/CHnbfiIG.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/CHnbfiIG.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{DS3cLPAu.js → CNomy7CF.js} +1 -1
  33. package/build/client/_app/immutable/chunks/CNomy7CF.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/CNomy7CF.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/CPbNf3ya.js +1 -0
  36. package/build/client/_app/immutable/chunks/CPbNf3ya.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/CPbNf3ya.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/CZ2PC-zH.js +1 -0
  39. package/build/client/_app/immutable/chunks/CZ2PC-zH.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/CZ2PC-zH.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/CljxK204.js +1 -0
  42. package/build/client/_app/immutable/chunks/CljxK204.js.br +1 -0
  43. package/build/client/_app/immutable/chunks/CljxK204.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/CzU0cUz4.js +1 -0
  45. package/build/client/_app/immutable/chunks/CzU0cUz4.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/CzU0cUz4.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{B5RiPG8Z.js → D6vIi1r5.js} +1 -1
  48. package/build/client/_app/immutable/chunks/D6vIi1r5.js.br +3 -0
  49. package/build/client/_app/immutable/chunks/D6vIi1r5.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/DAxERhtN.js +1 -0
  51. package/build/client/_app/immutable/chunks/DAxERhtN.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/DAxERhtN.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/DIzgJaYS.js +1 -0
  54. package/build/client/_app/immutable/chunks/DIzgJaYS.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/DIzgJaYS.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/DSHrbzz3.js +1 -0
  57. package/build/client/_app/immutable/chunks/DSHrbzz3.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/DSHrbzz3.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/{Dkh4Dwm8.js → DSvLImpl.js} +1 -1
  60. package/build/client/_app/immutable/chunks/DSvLImpl.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/DSvLImpl.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/{b77-bq1n.js → DWBod19x.js} +1 -1
  63. package/build/client/_app/immutable/chunks/DWBod19x.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DWBod19x.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/{IlwbfbOu.js → Dicxo5h-.js} +1 -1
  66. package/build/client/_app/immutable/chunks/Dicxo5h-.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/Dicxo5h-.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/DjjHmSG3.js +1 -0
  69. package/build/client/_app/immutable/chunks/DjjHmSG3.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DjjHmSG3.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/DlDLXtam.js +1 -0
  72. package/build/client/_app/immutable/chunks/DlDLXtam.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/DlDLXtam.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/EZJqWoh3.js +1 -0
  75. package/build/client/_app/immutable/chunks/EZJqWoh3.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/EZJqWoh3.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/Fg8W5tkO.js +15 -0
  78. package/build/client/_app/immutable/chunks/Fg8W5tkO.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/Fg8W5tkO.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/LGzrUxfF.js +1 -0
  81. package/build/client/_app/immutable/chunks/LGzrUxfF.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/LGzrUxfF.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/McME9wI6.js +10 -0
  84. package/build/client/_app/immutable/chunks/McME9wI6.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/McME9wI6.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/N78Fm5Ux.js +1 -0
  87. package/build/client/_app/immutable/chunks/N78Fm5Ux.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/N78Fm5Ux.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/{DQqLOGLe.js → XrAcf7YH.js} +1 -1
  90. package/build/client/_app/immutable/chunks/XrAcf7YH.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/XrAcf7YH.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/{aI_O2VuQ.js → _PJhUOmT.js} +1 -1
  93. package/build/client/_app/immutable/chunks/_PJhUOmT.js.br +0 -0
  94. package/build/client/_app/immutable/chunks/_PJhUOmT.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/gXyWwJbW.js +1 -0
  96. package/build/client/_app/immutable/chunks/gXyWwJbW.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/gXyWwJbW.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/{DGYKsRyW.js → vMHl7jRw.js} +1 -1
  99. package/build/client/_app/immutable/chunks/vMHl7jRw.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/vMHl7jRw.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/xJTjOoUQ.js +2 -0
  102. package/build/client/_app/immutable/chunks/xJTjOoUQ.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/xJTjOoUQ.js.gz +0 -0
  104. package/build/client/_app/immutable/entry/app.ycJtqzGh.js +2 -0
  105. package/build/client/_app/immutable/entry/app.ycJtqzGh.js.br +0 -0
  106. package/build/client/_app/immutable/entry/app.ycJtqzGh.js.gz +0 -0
  107. package/build/client/_app/immutable/entry/start.DOq0-PiA.js +1 -0
  108. package/build/client/_app/immutable/entry/start.DOq0-PiA.js.br +0 -0
  109. package/build/client/_app/immutable/entry/start.DOq0-PiA.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js +1 -0
  111. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/0.D63E8Q6i.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/1.B63I-h1v.js +1 -0
  114. package/build/client/_app/immutable/nodes/1.B63I-h1v.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/1.B63I-h1v.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js +5 -0
  117. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/2.DXy8PMWZ.js.gz +0 -0
  119. package/build/client/_app/version.json +1 -1
  120. package/build/client/_app/version.json.br +0 -0
  121. package/build/client/_app/version.json.gz +0 -0
  122. package/build/handler.js +7 -7
  123. package/build/index.js +7 -7
  124. package/build/server/chunks/chunks/{Arc.canvas.js-CN0KDoHG.js → Arc.canvas.js-DqfSjlnB.js} +8 -8
  125. package/build/server/chunks/chunks/{Arc.canvas.js-CN0KDoHG.js.map → Arc.canvas.js-DqfSjlnB.js.map} +1 -1
  126. package/build/server/chunks/chunks/{Arc.js-C8EC9NoE.js → Arc.js-DNywwEq7.js} +10 -10
  127. package/build/server/chunks/chunks/{Arc.js-C8EC9NoE.js.map → Arc.js-DNywwEq7.js.map} +1 -1
  128. package/build/server/chunks/chunks/{Bar.js-DtAb3LZZ.js → Bar.js-BHJrwOa1.js} +14 -14
  129. package/build/server/chunks/chunks/{Bar.js-DtAb3LZZ.js.map → Bar.js-BHJrwOa1.js.map} +1 -1
  130. package/build/server/chunks/chunks/{ChartAnnotations.js-twzDSVzY.js → ChartAnnotations.js-DXt38zkt.js} +18 -18
  131. package/build/server/chunks/chunks/{ChartAnnotations.js-twzDSVzY.js.map → ChartAnnotations.js-DXt38zkt.js.map} +1 -1
  132. package/build/server/chunks/chunks/{Circle.html.js-BJywADGK.js → Circle.html.js-KngSXZUe.js} +5 -5
  133. package/build/server/chunks/chunks/{Circle.html.js-BJywADGK.js.map → Circle.html.js-KngSXZUe.js.map} +1 -1
  134. package/build/server/chunks/chunks/{ClipPath.canvas.js-9Fc0bTEM.js → ClipPath.canvas.js-BsGsfzQK.js} +4 -4
  135. package/build/server/chunks/chunks/{ClipPath.canvas.js-9Fc0bTEM.js.map → ClipPath.canvas.js-BsGsfzQK.js.map} +1 -1
  136. package/build/server/chunks/chunks/{DefaultTooltip.js-C2NWK2AD.js → DefaultTooltip.js-CbyljZUi.js} +8 -8
  137. package/build/server/chunks/chunks/{DefaultTooltip.js-C2NWK2AD.js.map → DefaultTooltip.js-CbyljZUi.js.map} +1 -1
  138. package/build/server/chunks/chunks/{EventScatter.js-CO2GonW-.js → EventScatter.js-DHlLEn_7.js} +36 -35
  139. package/build/server/chunks/chunks/{EventScatter.js-CO2GonW-.js.map → EventScatter.js-DHlLEn_7.js.map} +1 -1
  140. package/build/server/chunks/chunks/{Labels.js-DB9qoyZ3.js → Labels.js-DhpbhJmV.js} +18 -18
  141. package/build/server/chunks/chunks/{Labels.js-DB9qoyZ3.js.map → Labels.js-DhpbhJmV.js.map} +1 -1
  142. package/build/server/chunks/chunks/{Legend.js-B_ArjxQ7.js → Legend.js-D25j2DRt.js} +6 -6
  143. package/build/server/chunks/chunks/{Legend.js-B_ArjxQ7.js.map → Legend.js-D25j2DRt.js.map} +1 -1
  144. package/build/server/chunks/chunks/{Line.html.js-B1REcOFe.js → Line.html.js-CKb2T7JC.js} +6 -6
  145. package/build/server/chunks/chunks/{Line.html.js-B1REcOFe.js.map → Line.html.js-CKb2T7JC.js.map} +1 -1
  146. package/build/server/chunks/chunks/{Link.canvas.js-nWimAHfH.js → Link.canvas.js-c0r05107.js} +9 -9
  147. package/build/server/chunks/chunks/{Link.canvas.js-nWimAHfH.js.map → Link.canvas.js-c0r05107.js.map} +1 -1
  148. package/build/server/chunks/chunks/{Path.canvas.js-5A9wB8zQ.js → Path.canvas.js-opfoYzQB.js} +5 -5
  149. package/build/server/chunks/chunks/{Path.canvas.js-5A9wB8zQ.js.map → Path.canvas.js-opfoYzQB.js.map} +1 -1
  150. package/build/server/chunks/chunks/{Points.html.js-B2o3k-ZZ.js → Points.html.js-CJ75UtkE.js} +7 -7
  151. package/build/server/chunks/chunks/{Points.html.js-B2o3k-ZZ.js.map → Points.html.js-CJ75UtkE.js.map} +1 -1
  152. package/build/server/chunks/chunks/Points.js-Bx_vB0po.js +14 -0
  153. package/build/server/chunks/chunks/Points.js-Bx_vB0po.js.map +1 -0
  154. package/build/server/chunks/chunks/{Points2.js-BVbWugLT.js → Points2.js-Br2MMKbn.js} +4 -4
  155. package/build/server/chunks/chunks/{Points2.js-BVbWugLT.js.map → Points2.js-Br2MMKbn.js.map} +1 -1
  156. package/build/server/chunks/chunks/{Rect.html.js-DnQ6ObhQ.js → Rect.html.js-D_-JSZ22.js} +6 -6
  157. package/build/server/chunks/chunks/{Rect.html.js-DnQ6ObhQ.js.map → Rect.html.js-D_-JSZ22.js.map} +1 -1
  158. package/build/server/chunks/chunks/{Spline.js-YnAxvrKY.js → Spline.js-DpD4175j.js} +12 -12
  159. package/build/server/chunks/chunks/{Spline.js-YnAxvrKY.js.map → Spline.js-DpD4175j.js.map} +1 -1
  160. package/build/server/chunks/chunks/{Text.html.js-LbmYJb11.js → Text.html.js-Clxo39Ky.js} +6 -6
  161. package/build/server/chunks/chunks/{Text.html.js-LbmYJb11.js.map → Text.html.js-Clxo39Ky.js.map} +1 -1
  162. package/build/server/chunks/chunks/{TooltipItem.js-Ce-blieA.js → TooltipItem.js-CgYSF3I3.js} +6 -6
  163. package/build/server/chunks/chunks/{TooltipItem.js-Ce-blieA.js.map → TooltipItem.js-CgYSF3I3.js.map} +1 -1
  164. package/build/server/chunks/chunks/{Voronoi.js-CalFJAXH.js → Voronoi.js-CX8bqc1A.js} +7 -7
  165. package/build/server/chunks/chunks/{Voronoi.js-CalFJAXH.js.map → Voronoi.js-CX8bqc1A.js.map} +1 -1
  166. package/build/server/chunks/chunks/{archive.js-D2jtMmDo.js → archive.js-BRlkdj2X.js} +331 -30
  167. package/build/server/chunks/chunks/archive.js-BRlkdj2X.js.map +1 -0
  168. package/build/server/chunks/chunks/{attributes.js-CbKEpZKa.js → attributes.js-ECgqVV_7.js} +2 -2
  169. package/build/server/chunks/chunks/{attributes.js-CbKEpZKa.js.map → attributes.js-ECgqVV_7.js.map} +1 -1
  170. package/build/server/chunks/chunks/{band.js-CjzHWr4k.js → band.js-BcI84M0Z.js} +3 -3
  171. package/build/server/chunks/chunks/{band.js-CjzHWr4k.js.map → band.js-BcI84M0Z.js.map} +1 -1
  172. package/build/server/chunks/chunks/{common.js-BvQnfkFo.js → common.js-DeZxUyRN.js} +2 -2
  173. package/build/server/chunks/chunks/{common.js-BvQnfkFo.js.map → common.js-DeZxUyRN.js.map} +1 -1
  174. package/build/server/chunks/chunks/{events.js-zIVaXIP1.js → events.js-oxLu7lhH.js} +2 -2
  175. package/build/server/chunks/chunks/{events.js-zIVaXIP1.js.map → events.js-oxLu7lhH.js.map} +1 -1
  176. package/build/server/chunks/chunks/{group.js-D0SfevId.js → group.js-C8H9Tpr6.js} +2 -2
  177. package/build/server/chunks/chunks/{group.js-D0SfevId.js.map → group.js-C8H9Tpr6.js.map} +1 -1
  178. package/build/server/chunks/chunks/{index-server.js-CtH9Hqwf.js → index-server.js-Dsi44azJ.js} +91 -2
  179. package/build/server/chunks/chunks/index-server.js-Dsi44azJ.js.map +1 -0
  180. package/build/server/chunks/chunks/{internal2.js-CfVVfAb5.js → internal2.js-Dm0TlpeP.js} +5 -5
  181. package/build/server/chunks/chunks/{internal2.js-CfVVfAb5.js.map → internal2.js-Dm0TlpeP.js.map} +1 -1
  182. package/build/server/chunks/chunks/{key.svelte.js-Cq0L6YlN.js → key.svelte.js-C9G4pBhE.js} +4 -4
  183. package/build/server/chunks/chunks/{key.svelte.js-Cq0L6YlN.js.map → key.svelte.js-C9G4pBhE.js.map} +1 -1
  184. package/build/server/chunks/chunks/{legacy-client.js-DAqKExQD.js → legacy-client.js-C8Upo6IB.js} +3 -3
  185. package/build/server/chunks/chunks/legacy-client.js-C8Upo6IB.js.map +1 -0
  186. package/build/server/chunks/chunks/{level-filter.js-D9MNrew3.js → level-filter.js-H0nc-2BG.js} +2 -2
  187. package/build/server/chunks/chunks/{level-filter.js-D9MNrew3.js.map → level-filter.js-H0nc-2BG.js.map} +1 -1
  188. package/build/server/chunks/chunks/{lineRadial.js-B7ZNP_Jp.js → lineRadial.js-B0m9ujVX.js} +2 -2
  189. package/build/server/chunks/chunks/{lineRadial.js-B7ZNP_Jp.js.map → lineRadial.js-B0m9ujVX.js.map} +1 -1
  190. package/build/server/chunks/chunks/{linear.js-CHlwr1I4.js → linear.js-CJ07spu6.js} +2 -2
  191. package/build/server/chunks/chunks/{linear.js-CHlwr1I4.js.map → linear.js-CJ07spu6.js.map} +1 -1
  192. package/build/server/chunks/chunks/{motion.svelte.js-Crk8ri1u.js → motion.svelte.js-DB7vkWmD.js} +3 -3
  193. package/build/server/chunks/chunks/{motion.svelte.js-Crk8ri1u.js.map → motion.svelte.js-DB7vkWmD.js.map} +1 -1
  194. package/build/server/chunks/chunks/{occlusion.js-ot9_OqWn.js → occlusion.js-DtcqoJjc.js} +2 -2
  195. package/build/server/chunks/chunks/{occlusion.js-ot9_OqWn.js.map → occlusion.js-DtcqoJjc.js.map} +1 -1
  196. package/build/server/chunks/chunks/{path2.js-DLVU8nc9.js → path2.js-B3tNByoS.js} +2 -2
  197. package/build/server/chunks/chunks/{path2.js-DLVU8nc9.js.map → path2.js-B3tNByoS.js.map} +1 -1
  198. package/build/server/chunks/chunks/{rect.svelte.js-_0PgI5fe.js → rect.svelte.js-C6R1SgCx.js} +4 -4
  199. package/build/server/chunks/chunks/{rect.svelte.js-_0PgI5fe.js.map → rect.svelte.js-C6R1SgCx.js.map} +1 -1
  200. package/build/server/chunks/chunks/{scales.svelte.js-DeNkKcI-.js → scales.svelte.js-C4lRvUAb.js} +4 -4
  201. package/build/server/chunks/chunks/{scales.svelte.js-DeNkKcI-.js.map → scales.svelte.js-C4lRvUAb.js.map} +1 -1
  202. package/build/server/chunks/chunks/{state.js-i-NVNGIq.js → state.js-qsHzjuJU.js} +3 -3
  203. package/build/server/chunks/chunks/{state.js-i-NVNGIq.js.map → state.js-qsHzjuJU.js.map} +1 -1
  204. package/build/server/chunks/chunks/text-size.svelte.js-CqGaHRr3.js +310 -0
  205. package/build/server/chunks/chunks/text-size.svelte.js-CqGaHRr3.js.map +1 -0
  206. package/build/server/chunks/chunks/{time-range.js-BLMT8aU3.js → time-range.js-__87ZPq6.js} +10 -5
  207. package/build/server/chunks/chunks/time-range.js-__87ZPq6.js.map +1 -0
  208. package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-C4hWyXuu.js → _server.ts.js-C6WY-ljy.js} +2 -2
  209. package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-C4hWyXuu.js.map → _server.ts.js-C6WY-ljy.js.map} +1 -1
  210. package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D4y43Vwe.js → _server.ts.js-DTcVSbpV.js} +2 -2
  211. package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D4y43Vwe.js.map → _server.ts.js-DTcVSbpV.js.map} +1 -1
  212. package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DibT3Hjc.js → _server.ts.js-CzJ_bXh8.js} +4 -4
  213. package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DibT3Hjc.js.map → _server.ts.js-CzJ_bXh8.js.map} +1 -1
  214. package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-BxXw5K0R.js → _server.ts.js-U2naV16N.js} +211 -48
  215. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-U2naV16N.js.map +1 -0
  216. package/build/server/chunks/entries/fallbacks/{error.svelte.js-ylsqA41Y.js → error.svelte.js-ClTGKP0-.js} +6 -6
  217. package/build/server/chunks/entries/fallbacks/{error.svelte.js-ylsqA41Y.js.map → error.svelte.js-ClTGKP0-.js.map} +1 -1
  218. package/build/server/chunks/entries/pages/_layout.svelte.js-DNuWb03K.js +622 -0
  219. package/build/server/chunks/entries/pages/_layout.svelte.js-DNuWb03K.js.map +1 -0
  220. package/build/server/chunks/entries/pages/{_page.svelte.js-C9-7d7mD.js → _page.svelte.js-CVlL2UsO.js} +329 -188
  221. package/build/server/chunks/entries/pages/_page.svelte.js-CVlL2UsO.js.map +1 -0
  222. package/build/server/chunks/{handler-Bqo8aDgP.js → handler-CrpvMheE.js} +3 -3
  223. package/build/server/chunks/{handler-Bqo8aDgP.js.map → handler-CrpvMheE.js.map} +1 -1
  224. package/build/server/chunks/{index.js-fPvMujCL.js → index.js-9Dk7Q13E.js} +3 -3
  225. package/build/server/chunks/{index.js-fPvMujCL.js.map → index.js-9Dk7Q13E.js.map} +1 -1
  226. package/build/server/chunks/{manifest.js-Bkj-8GaD.js → manifest.js-DIaODzKX.js} +9 -9
  227. package/build/server/chunks/{manifest.js-Bkj-8GaD.js.map → manifest.js-DIaODzKX.js.map} +1 -1
  228. package/build/server/chunks/nodes/0.js-CQ960AOW.js +9 -0
  229. package/build/server/chunks/nodes/0.js-CQ960AOW.js.map +1 -0
  230. package/build/server/chunks/nodes/1.js-CtTei4sV.js +9 -0
  231. package/build/server/chunks/nodes/{1.js-DZXnUx67.js.map → 1.js-CtTei4sV.js.map} +1 -1
  232. package/build/server/chunks/nodes/2.js-BbKDb_M6.js +9 -0
  233. package/build/server/chunks/nodes/2.js-BbKDb_M6.js.map +1 -0
  234. package/dist/cli/completions.js +24 -0
  235. package/dist/cli/index.js +144 -3
  236. package/dist/cli/mcp/agents.js +344 -0
  237. package/dist/cli/mcp/backend.js +235 -0
  238. package/dist/cli/mcp/run.js +245 -0
  239. package/dist/cli/mcp/stdio.js +103 -0
  240. package/dist/cli/mcp/tools.js +245 -0
  241. package/dist/cli/options.js +138 -25
  242. package/dist/cli/server.js +28 -0
  243. package/dist/cli/ui.js +20 -1
  244. package/dist/lib/time-range.js +14 -3
  245. package/package.json +8 -2
  246. package/build/client/_app/immutable/assets/0.ChTKqSf6.css +0 -2
  247. package/build/client/_app/immutable/assets/0.ChTKqSf6.css.br +0 -0
  248. package/build/client/_app/immutable/assets/0.ChTKqSf6.css.gz +0 -0
  249. package/build/client/_app/immutable/chunks/0b2v80OK.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/0b2v80OK.js.gz +0 -0
  251. package/build/client/_app/immutable/chunks/5EFAIHuJ.js +0 -1
  252. package/build/client/_app/immutable/chunks/5EFAIHuJ.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/5EFAIHuJ.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/B15XBe8D.js +0 -1
  255. package/build/client/_app/immutable/chunks/B15XBe8D.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/B15XBe8D.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/B5RiPG8Z.js.br +0 -2
  258. package/build/client/_app/immutable/chunks/B5RiPG8Z.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/B_KVdCQT.js +0 -10
  260. package/build/client/_app/immutable/chunks/B_KVdCQT.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/B_KVdCQT.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/BuCpRsEL.js +0 -1
  263. package/build/client/_app/immutable/chunks/BuCpRsEL.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/BuCpRsEL.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/BvZtsVvW.js +0 -1
  266. package/build/client/_app/immutable/chunks/BvZtsVvW.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/BvZtsVvW.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/C3Y15ONf.js +0 -2
  269. package/build/client/_app/immutable/chunks/C3Y15ONf.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/C3Y15ONf.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/C9GPQYs7.js +0 -1
  272. package/build/client/_app/immutable/chunks/C9GPQYs7.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/C9GPQYs7.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/C_U_Jvk5.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/C_U_Jvk5.js.gz +0 -0
  276. package/build/client/_app/immutable/chunks/Cd7JqZj9.js +0 -1
  277. package/build/client/_app/immutable/chunks/Cd7JqZj9.js.br +0 -0
  278. package/build/client/_app/immutable/chunks/Cd7JqZj9.js.gz +0 -0
  279. package/build/client/_app/immutable/chunks/D2PbcyDU.js +0 -1
  280. package/build/client/_app/immutable/chunks/D2PbcyDU.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/D2PbcyDU.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/D7vimbmk.js.br +0 -0
  283. package/build/client/_app/immutable/chunks/D7vimbmk.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/DAqXSYzi.js +0 -1
  285. package/build/client/_app/immutable/chunks/DAqXSYzi.js.br +0 -0
  286. package/build/client/_app/immutable/chunks/DAqXSYzi.js.gz +0 -0
  287. package/build/client/_app/immutable/chunks/DGYKsRyW.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/DGYKsRyW.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/DPaulGql.js +0 -1
  290. package/build/client/_app/immutable/chunks/DPaulGql.js.br +0 -1
  291. package/build/client/_app/immutable/chunks/DPaulGql.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/DQqLOGLe.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/DQqLOGLe.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/DS3cLPAu.js.br +0 -0
  295. package/build/client/_app/immutable/chunks/DS3cLPAu.js.gz +0 -0
  296. package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.br +0 -0
  297. package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.gz +0 -0
  298. package/build/client/_app/immutable/chunks/DnqfXHAL.js +0 -15
  299. package/build/client/_app/immutable/chunks/DnqfXHAL.js.br +0 -0
  300. package/build/client/_app/immutable/chunks/DnqfXHAL.js.gz +0 -0
  301. package/build/client/_app/immutable/chunks/DsYron7_.js +0 -1
  302. package/build/client/_app/immutable/chunks/DsYron7_.js.br +0 -0
  303. package/build/client/_app/immutable/chunks/DsYron7_.js.gz +0 -0
  304. package/build/client/_app/immutable/chunks/DuM1cPdZ.js +0 -1
  305. package/build/client/_app/immutable/chunks/DuM1cPdZ.js.br +0 -0
  306. package/build/client/_app/immutable/chunks/DuM1cPdZ.js.gz +0 -0
  307. package/build/client/_app/immutable/chunks/DvxMaQv_.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/DvxMaQv_.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/DwOZdLDj.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/DwOZdLDj.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/IlwbfbOu.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/IlwbfbOu.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/aI_O2VuQ.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/aI_O2VuQ.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/b77-bq1n.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/b77-bq1n.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/dqF8mxBW.js.br +0 -0
  318. package/build/client/_app/immutable/chunks/dqF8mxBW.js.gz +0 -0
  319. package/build/client/_app/immutable/chunks/gkAHSOnS.js +0 -1
  320. package/build/client/_app/immutable/chunks/gkAHSOnS.js.br +0 -0
  321. package/build/client/_app/immutable/chunks/gkAHSOnS.js.gz +0 -0
  322. package/build/client/_app/immutable/chunks/pqiPC7Y8.js +0 -3
  323. package/build/client/_app/immutable/chunks/pqiPC7Y8.js.br +0 -0
  324. package/build/client/_app/immutable/chunks/pqiPC7Y8.js.gz +0 -0
  325. package/build/client/_app/immutable/chunks/ti8ecMFX.js +0 -1
  326. package/build/client/_app/immutable/chunks/ti8ecMFX.js.br +0 -0
  327. package/build/client/_app/immutable/chunks/ti8ecMFX.js.gz +0 -0
  328. package/build/client/_app/immutable/entry/app.CTR4aUFT.js +0 -2
  329. package/build/client/_app/immutable/entry/app.CTR4aUFT.js.br +0 -0
  330. package/build/client/_app/immutable/entry/app.CTR4aUFT.js.gz +0 -0
  331. package/build/client/_app/immutable/entry/start.CC6Ln8E2.js +0 -1
  332. package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.br +0 -0
  333. package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.gz +0 -0
  334. package/build/client/_app/immutable/nodes/0.CvUxmLsM.js +0 -1
  335. package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.br +0 -0
  336. package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.gz +0 -0
  337. package/build/client/_app/immutable/nodes/1.CbSHqfEx.js +0 -1
  338. package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.br +0 -0
  339. package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.gz +0 -0
  340. package/build/client/_app/immutable/nodes/2.DcD5v8dU.js +0 -5
  341. package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.br +0 -0
  342. package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.gz +0 -0
  343. package/build/server/chunks/chunks/Points.js-D7ozN9W5.js +0 -14
  344. package/build/server/chunks/chunks/Points.js-D7ozN9W5.js.map +0 -1
  345. package/build/server/chunks/chunks/archive.js-D2jtMmDo.js.map +0 -1
  346. package/build/server/chunks/chunks/index-server.js-CtH9Hqwf.js.map +0 -1
  347. package/build/server/chunks/chunks/legacy-client.js-DAqKExQD.js.map +0 -1
  348. package/build/server/chunks/chunks/time-range.js-BLMT8aU3.js.map +0 -1
  349. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BxXw5K0R.js.map +0 -1
  350. package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js +0 -113
  351. package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js.map +0 -1
  352. package/build/server/chunks/entries/pages/_page.svelte.js-C9-7d7mD.js.map +0 -1
  353. package/build/server/chunks/nodes/0.js-7J6kXnEo.js +0 -9
  354. package/build/server/chunks/nodes/0.js-7J6kXnEo.js.map +0 -1
  355. package/build/server/chunks/nodes/1.js-DZXnUx67.js +0 -9
  356. package/build/server/chunks/nodes/2.js-85y9-1SS.js +0 -9
  357. package/build/server/chunks/nodes/2.js-85y9-1SS.js.map +0 -1
@@ -0,0 +1,310 @@
1
+ import { a5 as attributes, a6 as ensure_array_like, a7 as element, a8 as getContext, a1 as derived, a9 as fallback, aa as to_array } from './index-server.js-Dsi44azJ.js';
2
+
3
+ //#region src/lib/puppy-slots.ts
4
+ /**
5
+ * Where the puppy companion can sit: one of the four screen corners.
6
+ *
7
+ * Pure geometry, so the drag-and-snap behaviour can be tested without a DOM:
8
+ * where each slot puts the puppy, which slot a drop lands in, and where the
9
+ * arrow keys send it.
10
+ */
11
+ var PUPPY_SLOTS = [
12
+ "top-left",
13
+ "top-right",
14
+ "bottom-left",
15
+ "bottom-right"
16
+ ];
17
+ var DEFAULT_PUPPY_SLOT = "bottom-right";
18
+ var PUPPY_SLOT_STORAGE_KEY = "watch-tail:puppy-slot";
19
+ /** Reads a stored slot, falling back to the default for anything unknown. */
20
+ function parsePuppySlot(value) {
21
+ return PUPPY_SLOTS.find((slot) => slot === value) ?? "bottom-right";
22
+ }
23
+ /**
24
+ * Top-left corner of the puppy in a slot. `margin` keeps it off the edges and
25
+ * `top` is the space reserved above it (the header), so the top slots never
26
+ * cover the header controls.
27
+ */
28
+ function slotPosition(slot, viewport, puppy, insets) {
29
+ const left = slot.endsWith("left");
30
+ const upper = slot.startsWith("top");
31
+ return {
32
+ x: left ? insets.margin : Math.max(insets.margin, viewport.width - puppy.width - insets.margin),
33
+ y: upper ? insets.top + insets.margin : Math.max(insets.top + insets.margin, viewport.height - puppy.height - insets.margin)
34
+ };
35
+ }
36
+ //#endregion
37
+ //#region src/lib/puppy.svelte.ts
38
+ var PuppyCompanion = class {
39
+ /** True while the puppy is on screen. */
40
+ shown = false;
41
+ /** Bumped on every wag; the puppy starts a short burst of wagging each time it changes. */
42
+ pulse = 0;
43
+ /** Bumped when the puppy is clicked; each change starts an excited burst of wagging. */
44
+ excitement = 0;
45
+ /** The screen corner the puppy sits in. */
46
+ slot = DEFAULT_PUPPY_SLOT;
47
+ /** Reads the remembered corner; call once on the client. */
48
+ restore() {
49
+ try {
50
+ this.slot = parsePuppySlot(localStorage.getItem(PUPPY_SLOT_STORAGE_KEY));
51
+ } catch {}
52
+ }
53
+ /** Moves the puppy to a corner and remembers it. */
54
+ moveTo(slot) {
55
+ this.slot = slot;
56
+ try {
57
+ localStorage.setItem(PUPPY_SLOT_STORAGE_KEY, slot);
58
+ } catch {}
59
+ }
60
+ /** Shows the puppy, or sends it away again. */
61
+ toggle() {
62
+ this.shown = !this.shown;
63
+ }
64
+ /**
65
+ * Asks for a burst of wagging. A no-op while the puppy is hidden. Callers inside
66
+ * an `$effect` must wrap this in `untrack`, since it reads and writes `pulse`.
67
+ */
68
+ wag() {
69
+ if (this.shown) this.pulse += 1;
70
+ }
71
+ /** Asks for an excited burst: faster, wider and longer. A no-op while hidden. */
72
+ excite() {
73
+ if (this.shown) this.excitement += 1;
74
+ }
75
+ };
76
+ /** One companion per page: the header, the layout and the panels all share it. */
77
+ var puppy = new PuppyCompanion();
78
+ //#endregion
79
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/defaultAttributes.js
80
+ /**
81
+ * @file
82
+ * @license @lucide/svelte v1.47.0 - ISC
83
+ *
84
+ * This source code is licensed under the ISC license.
85
+ * See the LICENSE file in the root directory of this source tree.
86
+ */
87
+ var defaultAttributes = {
88
+ xmlns: "http://www.w3.org/2000/svg",
89
+ width: 24,
90
+ height: 24,
91
+ viewBox: "0 0 24 24",
92
+ fill: "none",
93
+ stroke: "currentColor",
94
+ "stroke-width": 2,
95
+ "stroke-linecap": "round",
96
+ "stroke-linejoin": "round"
97
+ };
98
+ //#endregion
99
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/mergeClasses.js
100
+ /**
101
+ * @file
102
+ * @license @lucide/svelte v1.47.0 - ISC
103
+ *
104
+ * This source code is licensed under the ISC license.
105
+ * See the LICENSE file in the root directory of this source tree.
106
+ */
107
+ /**
108
+ * Merges classes into a single string
109
+ *
110
+ * @param {array} classes
111
+ * @returns {string} A string of classes
112
+ */
113
+ var mergeClasses = (...classes) => classes.filter((className, index, array) => {
114
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
115
+ }).join(" ").trim();
116
+ //#endregion
117
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/buildLucideIconNode.js
118
+ /**
119
+ * @file
120
+ * @license @lucide/svelte v1.47.0 - ISC
121
+ *
122
+ * This source code is licensed under the ISC license.
123
+ * See the LICENSE file in the root directory of this source tree.
124
+ */
125
+ function isDefined(value) {
126
+ return value !== null && value !== void 0;
127
+ }
128
+ /**
129
+ * Creates a Lucide icon node (an svgson-like format) from a Lucide icon object.
130
+ *
131
+ * @param icon The icon to build.
132
+ * @param params Additional build parameters.
133
+ */
134
+ function buildLucideIconNode(icon, params = {}) {
135
+ const attributeNames = params.attributeNames ?? {};
136
+ const getAttributeName = (attributeName) => attributeNames[attributeName] ?? attributeName;
137
+ const viewBoxWidth = icon.size ?? icon.width ?? defaultAttributes["width"];
138
+ const viewBoxHeight = icon.size ?? icon.height ?? defaultAttributes["height"];
139
+ const aliasClassNames = icon.aliases?.filter((alias) => typeof alias === "string" && alias.trim() !== "").map((alias) => `lucide-${alias}`) ?? [];
140
+ const iconClassNames = [...icon.name ? [`lucide-${icon.name}`] : [], ...aliasClassNames];
141
+ const classNamesFromClassName = params.className?.split(" ").filter(Boolean) ?? [];
142
+ const className = params.includeDefaultClasses === false ? mergeClasses(...classNamesFromClassName) : mergeClasses("lucide", ...iconClassNames, ...classNamesFromClassName);
143
+ const calculatedStrokeWidth = params.absoluteStrokeWidth ? Number(params.strokeWidth ?? defaultAttributes["stroke-width"]) * Number(icon.size ?? icon.width ?? defaultAttributes["width"]) / Number(params.size ?? params.width ?? defaultAttributes["width"]) : params.strokeWidth ?? defaultAttributes["stroke-width"];
144
+ return [
145
+ "svg",
146
+ {
147
+ ...Object.entries(defaultAttributes).reduce((attrs, [attrName, value]) => {
148
+ attrs[getAttributeName(attrName)] = value;
149
+ return attrs;
150
+ }, {}),
151
+ ..."color" in params && params.color && { [getAttributeName("stroke")]: params.color },
152
+ ..."size" in params && isDefined(params.size) && {
153
+ [getAttributeName("width")]: params.size,
154
+ [getAttributeName("height")]: params.size
155
+ },
156
+ ..."width" in params && isDefined(params.width) && { [getAttributeName("width")]: params.width },
157
+ ..."height" in params && isDefined(params.height) && { [getAttributeName("height")]: params.height },
158
+ [getAttributeName("stroke-width")]: calculatedStrokeWidth,
159
+ ...className && { [getAttributeName("class")]: className },
160
+ [getAttributeName("viewBox")]: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,
161
+ ...params.hasA11yProp === false ? { [getAttributeName("aria-hidden")]: "true" } : {},
162
+ ..."attributes" in params && params.attributes
163
+ },
164
+ icon.node.map((child) => {
165
+ const [name, attrs, children] = child;
166
+ const nextAttrs = params.nonScalingStroke ? {
167
+ [getAttributeName("vector-effect")]: "non-scaling-stroke",
168
+ ...attrs
169
+ } : attrs;
170
+ return children ? [
171
+ name,
172
+ nextAttrs,
173
+ children
174
+ ] : [name, nextAttrs];
175
+ })
176
+ ];
177
+ }
178
+ //#endregion
179
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/hasA11yProp.js
180
+ /**
181
+ * @file
182
+ * @license @lucide/svelte v1.47.0 - ISC
183
+ *
184
+ * This source code is licensed under the ISC license.
185
+ * See the LICENSE file in the root directory of this source tree.
186
+ */
187
+ /**
188
+ * Check if a component has an accessibility prop
189
+ *
190
+ * @param {object} props
191
+ * @returns {boolean} Whether the component has an accessibility prop
192
+ */
193
+ var hasA11yProp = (props) => {
194
+ for (const prop in props) if (prop.startsWith("aria-") || prop === "role" || prop === "title") return true;
195
+ return false;
196
+ };
197
+ //#endregion
198
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/context.js
199
+ /**
200
+ * @file
201
+ * @license @lucide/svelte v1.47.0 - ISC
202
+ *
203
+ * This source code is licensed under the ISC license.
204
+ * See the LICENSE file in the root directory of this source tree.
205
+ */
206
+ var LucideContext = Symbol("lucide-context");
207
+ var getLucideContext = () => getContext(LucideContext);
208
+ //#endregion
209
+ //#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/Icon.svelte
210
+ function Icon($$renderer, $$props) {
211
+ $$renderer.component(($$renderer) => {
212
+ const globalProps = getLucideContext() ?? {};
213
+ const { color = globalProps.color ?? "currentColor", size = globalProps.size ?? 24, width = size, height = size, strokeWidth = globalProps.strokeWidth ?? 2, absoluteStrokeWidth = globalProps.absoluteStrokeWidth ?? false, nonScalingStroke = globalProps.nonScalingStroke ?? false, iconNode = [], icon = {
214
+ node: iconNode,
215
+ aliases: [],
216
+ size: 24
217
+ }, class: propsClass, children, $$slots, $$events, ...props } = $$props;
218
+ const hasAccessibleProp = derived(() => Boolean(children) || hasA11yProp(props));
219
+ const $$d = derived(() => buildLucideIconNode(icon, {
220
+ color,
221
+ width,
222
+ height,
223
+ strokeWidth,
224
+ absoluteStrokeWidth,
225
+ nonScalingStroke,
226
+ className: mergeClasses("lucide-icon", globalProps.class),
227
+ hasA11yProp: hasAccessibleProp(),
228
+ attributes: props
229
+ })), $$derived_array = derived(() => to_array($$d(), 3)), svgAttributes = derived(() => $$derived_array()[1]), builtIconNode = derived(() => fallback($$derived_array()[2], () => [], true));
230
+ const iconAttributes = derived(() => ({
231
+ ...svgAttributes(),
232
+ class: [...svgAttributes().class.split(" "), propsClass]
233
+ }));
234
+ $$renderer.push(`<svg${attributes({ ...iconAttributes() }, void 0, void 0, void 0, 3)}><!--[-->`);
235
+ const each_array = ensure_array_like(builtIconNode());
236
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
237
+ let [tag, attrs] = each_array[$$index];
238
+ element($$renderer, tag, () => {
239
+ $$renderer.push(`${attributes({ ...attrs }, void 0, void 0, void 0, 3)}`);
240
+ });
241
+ }
242
+ $$renderer.push(`<!--]-->`);
243
+ children?.($$renderer);
244
+ $$renderer.push(`<!----></svg>`);
245
+ });
246
+ }
247
+ //#endregion
248
+ //#region src/lib/text-size.ts
249
+ /**
250
+ * Text sizes offered in the header, for readers who need the interface larger.
251
+ *
252
+ * The actual font sizes live in `text-size.css`: they scale the root element so
253
+ * every rem-based size follows together. Keeping only the ids and labels here
254
+ * leaves one source of truth for what each option looks like.
255
+ */
256
+ var TEXT_SIZES = [
257
+ {
258
+ id: "small",
259
+ name: "Small"
260
+ },
261
+ {
262
+ id: "default",
263
+ name: "Default"
264
+ },
265
+ {
266
+ id: "large",
267
+ name: "Large"
268
+ },
269
+ {
270
+ id: "xlarge",
271
+ name: "Extra large"
272
+ }
273
+ ];
274
+ var TEXT_SIZE_STORAGE_KEY = "watch-tail:text-size";
275
+ /** Unknown or obsolete preferences fall back to Default. */
276
+ function parseTextSize(value) {
277
+ return TEXT_SIZES.find((size) => size.id === value)?.id ?? "default";
278
+ }
279
+ //#endregion
280
+ //#region src/lib/text-size.svelte.ts
281
+ var BASE_ROOT_FONT_PX = 16;
282
+ function measureRootFontPx() {
283
+ const measured = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
284
+ return Number.isFinite(measured) && measured > 0 ? measured : BASE_ROOT_FONT_PX;
285
+ }
286
+ var TextSizePreference = class {
287
+ /** Root font size in pixels: 16 until a size is applied on the client. */
288
+ rootFontPx = BASE_ROOT_FONT_PX;
289
+ /**
290
+ * Applies a text size. The data attribute drives the stylesheet and the
291
+ * measured root font size keeps the pixel maths in step; the choice is
292
+ * persisted unless `persist` is false.
293
+ */
294
+ apply(value, persist = true) {
295
+ const id = parseTextSize(value);
296
+ if (typeof document !== "undefined") {
297
+ document.documentElement.dataset.textSize = id;
298
+ this.rootFontPx = measureRootFontPx();
299
+ }
300
+ if (!persist) return;
301
+ try {
302
+ localStorage.setItem(TEXT_SIZE_STORAGE_KEY, id);
303
+ } catch {}
304
+ }
305
+ };
306
+ /** One preference per page: the header select and the viewer both read it. */
307
+ var textSize = new TextSizePreference();
308
+
309
+ export { Icon as I, TEXT_SIZES as T, parseTextSize as a, puppy as p, slotPosition as s, textSize as t };
310
+ //# sourceMappingURL=text-size.svelte.js-CqGaHRr3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-size.svelte.js-CqGaHRr3.js","sources":["../../../../.svelte-kit/output/server/chunks/text-size.svelte.js"],"sourcesContent":["import { Bt as to_array, It as fallback, a as attributes, c as derived, g as getContext, l as element, u as ensure_array_like } from \"./index-server.js\";\n//#region src/lib/puppy-slots.ts\n/**\n* Where the puppy companion can sit: one of the four screen corners.\n*\n* Pure geometry, so the drag-and-snap behaviour can be tested without a DOM:\n* where each slot puts the puppy, which slot a drop lands in, and where the\n* arrow keys send it.\n*/\nvar PUPPY_SLOTS = [\n\t\"top-left\",\n\t\"top-right\",\n\t\"bottom-left\",\n\t\"bottom-right\"\n];\nvar DEFAULT_PUPPY_SLOT = \"bottom-right\";\nvar PUPPY_SLOT_STORAGE_KEY = \"watch-tail:puppy-slot\";\n/** Reads a stored slot, falling back to the default for anything unknown. */\nfunction parsePuppySlot(value) {\n\treturn PUPPY_SLOTS.find((slot) => slot === value) ?? \"bottom-right\";\n}\n/**\n* Top-left corner of the puppy in a slot. `margin` keeps it off the edges and\n* `top` is the space reserved above it (the header), so the top slots never\n* cover the header controls.\n*/\nfunction slotPosition(slot, viewport, puppy, insets) {\n\tconst left = slot.endsWith(\"left\");\n\tconst upper = slot.startsWith(\"top\");\n\treturn {\n\t\tx: left ? insets.margin : Math.max(insets.margin, viewport.width - puppy.width - insets.margin),\n\t\ty: upper ? insets.top + insets.margin : Math.max(insets.top + insets.margin, viewport.height - puppy.height - insets.margin)\n\t};\n}\n//#endregion\n//#region src/lib/puppy.svelte.ts\nvar PuppyCompanion = class {\n\t/** True while the puppy is on screen. */\n\tshown = false;\n\t/** Bumped on every wag; the puppy starts a short burst of wagging each time it changes. */\n\tpulse = 0;\n\t/** Bumped when the puppy is clicked; each change starts an excited burst of wagging. */\n\texcitement = 0;\n\t/** The screen corner the puppy sits in. */\n\tslot = DEFAULT_PUPPY_SLOT;\n\t/** Reads the remembered corner; call once on the client. */\n\trestore() {\n\t\ttry {\n\t\t\tthis.slot = parsePuppySlot(localStorage.getItem(PUPPY_SLOT_STORAGE_KEY));\n\t\t} catch {}\n\t}\n\t/** Moves the puppy to a corner and remembers it. */\n\tmoveTo(slot) {\n\t\tthis.slot = slot;\n\t\ttry {\n\t\t\tlocalStorage.setItem(PUPPY_SLOT_STORAGE_KEY, slot);\n\t\t} catch {}\n\t}\n\t/** Shows the puppy, or sends it away again. */\n\ttoggle() {\n\t\tthis.shown = !this.shown;\n\t}\n\t/**\n\t* Asks for a burst of wagging. A no-op while the puppy is hidden. Callers inside\n\t* an `$effect` must wrap this in `untrack`, since it reads and writes `pulse`.\n\t*/\n\twag() {\n\t\tif (this.shown) this.pulse += 1;\n\t}\n\t/** Asks for an excited burst: faster, wider and longer. A no-op while hidden. */\n\texcite() {\n\t\tif (this.shown) this.excitement += 1;\n\t}\n};\n/** One companion per page: the header, the layout and the panels all share it. */\nvar puppy = new PuppyCompanion();\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/defaultAttributes.js\n/**\n* @file\n* @license @lucide/svelte v1.47.0 - ISC\n*\n* This source code is licensed under the ISC license.\n* See the LICENSE file in the root directory of this source tree.\n*/\nvar defaultAttributes = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: 24,\n\theight: 24,\n\tviewBox: \"0 0 24 24\",\n\tfill: \"none\",\n\tstroke: \"currentColor\",\n\t\"stroke-width\": 2,\n\t\"stroke-linecap\": \"round\",\n\t\"stroke-linejoin\": \"round\"\n};\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/mergeClasses.js\n/**\n* @file\n* @license @lucide/svelte v1.47.0 - ISC\n*\n* This source code is licensed under the ISC license.\n* See the LICENSE file in the root directory of this source tree.\n*/\n/**\n* Merges classes into a single string\n*\n* @param {array} classes\n* @returns {string} A string of classes\n*/\nvar mergeClasses = (...classes) => classes.filter((className, index, array) => {\n\treturn Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/buildLucideIconNode.js\n/**\n* @file\n* @license @lucide/svelte v1.47.0 - ISC\n*\n* This source code is licensed under the ISC license.\n* See the LICENSE file in the root directory of this source tree.\n*/\nfunction isDefined(value) {\n\treturn value !== null && value !== void 0;\n}\n/**\n* Creates a Lucide icon node (an svgson-like format) from a Lucide icon object.\n*\n* @param icon The icon to build.\n* @param params Additional build parameters.\n*/\nfunction buildLucideIconNode(icon, params = {}) {\n\tconst attributeNames = params.attributeNames ?? {};\n\tconst getAttributeName = (attributeName) => attributeNames[attributeName] ?? attributeName;\n\tconst viewBoxWidth = icon.size ?? icon.width ?? defaultAttributes[\"width\"];\n\tconst viewBoxHeight = icon.size ?? icon.height ?? defaultAttributes[\"height\"];\n\tconst aliasClassNames = icon.aliases?.filter((alias) => typeof alias === \"string\" && alias.trim() !== \"\").map((alias) => `lucide-${alias}`) ?? [];\n\tconst iconClassNames = [...icon.name ? [`lucide-${icon.name}`] : [], ...aliasClassNames];\n\tconst classNamesFromClassName = params.className?.split(\" \").filter(Boolean) ?? [];\n\tconst className = params.includeDefaultClasses === false ? mergeClasses(...classNamesFromClassName) : mergeClasses(\"lucide\", ...iconClassNames, ...classNamesFromClassName);\n\tconst calculatedStrokeWidth = params.absoluteStrokeWidth ? Number(params.strokeWidth ?? defaultAttributes[\"stroke-width\"]) * Number(icon.size ?? icon.width ?? defaultAttributes[\"width\"]) / Number(params.size ?? params.width ?? defaultAttributes[\"width\"]) : params.strokeWidth ?? defaultAttributes[\"stroke-width\"];\n\treturn [\n\t\t\"svg\",\n\t\t{\n\t\t\t...Object.entries(defaultAttributes).reduce((attrs, [attrName, value]) => {\n\t\t\t\tattrs[getAttributeName(attrName)] = value;\n\t\t\t\treturn attrs;\n\t\t\t}, {}),\n\t\t\t...\"color\" in params && params.color && { [getAttributeName(\"stroke\")]: params.color },\n\t\t\t...\"size\" in params && isDefined(params.size) && {\n\t\t\t\t[getAttributeName(\"width\")]: params.size,\n\t\t\t\t[getAttributeName(\"height\")]: params.size\n\t\t\t},\n\t\t\t...\"width\" in params && isDefined(params.width) && { [getAttributeName(\"width\")]: params.width },\n\t\t\t...\"height\" in params && isDefined(params.height) && { [getAttributeName(\"height\")]: params.height },\n\t\t\t[getAttributeName(\"stroke-width\")]: calculatedStrokeWidth,\n\t\t\t...className && { [getAttributeName(\"class\")]: className },\n\t\t\t[getAttributeName(\"viewBox\")]: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,\n\t\t\t...params.hasA11yProp === false ? { [getAttributeName(\"aria-hidden\")]: \"true\" } : {},\n\t\t\t...\"attributes\" in params && params.attributes\n\t\t},\n\t\ticon.node.map((child) => {\n\t\t\tconst [name, attrs, children] = child;\n\t\t\tconst nextAttrs = params.nonScalingStroke ? {\n\t\t\t\t[getAttributeName(\"vector-effect\")]: \"non-scaling-stroke\",\n\t\t\t\t...attrs\n\t\t\t} : attrs;\n\t\t\treturn children ? [\n\t\t\t\tname,\n\t\t\t\tnextAttrs,\n\t\t\t\tchildren\n\t\t\t] : [name, nextAttrs];\n\t\t})\n\t];\n}\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/utils/hasA11yProp.js\n/**\n* @file\n* @license @lucide/svelte v1.47.0 - ISC\n*\n* This source code is licensed under the ISC license.\n* See the LICENSE file in the root directory of this source tree.\n*/\n/**\n* Check if a component has an accessibility prop\n*\n* @param {object} props\n* @returns {boolean} Whether the component has an accessibility prop\n*/\nvar hasA11yProp = (props) => {\n\tfor (const prop in props) if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") return true;\n\treturn false;\n};\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/context.js\n/**\n* @file\n* @license @lucide/svelte v1.47.0 - ISC\n*\n* This source code is licensed under the ISC license.\n* See the LICENSE file in the root directory of this source tree.\n*/\nvar LucideContext = Symbol(\"lucide-context\");\nvar getLucideContext = () => getContext(LucideContext);\n//#endregion\n//#region node_modules/.pnpm/@lucide+svelte@1.47.0_svelte@5.57.0/node_modules/@lucide/svelte/dist/Icon.svelte\nfunction Icon($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tconst globalProps = getLucideContext() ?? {};\n\t\tconst { color = globalProps.color ?? \"currentColor\", size = globalProps.size ?? 24, width = size, height = size, strokeWidth = globalProps.strokeWidth ?? 2, absoluteStrokeWidth = globalProps.absoluteStrokeWidth ?? false, nonScalingStroke = globalProps.nonScalingStroke ?? false, iconNode = [], icon = {\n\t\t\tnode: iconNode,\n\t\t\taliases: [],\n\t\t\tsize: 24\n\t\t}, class: propsClass, children, $$slots, $$events, ...props } = $$props;\n\t\tconst hasAccessibleProp = derived(() => Boolean(children) || hasA11yProp(props));\n\t\tconst $$d = derived(() => buildLucideIconNode(icon, {\n\t\t\tcolor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tstrokeWidth,\n\t\t\tabsoluteStrokeWidth,\n\t\t\tnonScalingStroke,\n\t\t\tclassName: mergeClasses(\"lucide-icon\", globalProps.class),\n\t\t\thasA11yProp: hasAccessibleProp(),\n\t\t\tattributes: props\n\t\t})), $$derived_array = derived(() => to_array($$d(), 3)), svgAttributes = derived(() => $$derived_array()[1]), builtIconNode = derived(() => fallback($$derived_array()[2], () => [], true));\n\t\tconst iconAttributes = derived(() => ({\n\t\t\t...svgAttributes(),\n\t\t\tclass: [...svgAttributes().class.split(\" \"), propsClass]\n\t\t}));\n\t\t$$renderer.push(`<svg${attributes({ ...iconAttributes() }, void 0, void 0, void 0, 3)}><!--[-->`);\n\t\tconst each_array = ensure_array_like(builtIconNode());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet [tag, attrs] = each_array[$$index];\n\t\t\telement($$renderer, tag, () => {\n\t\t\t\t$$renderer.push(`${attributes({ ...attrs }, void 0, void 0, void 0, 3)}`);\n\t\t\t});\n\t\t}\n\t\t$$renderer.push(`<!--]-->`);\n\t\tchildren?.($$renderer);\n\t\t$$renderer.push(`<!----></svg>`);\n\t});\n}\n//#endregion\n//#region src/lib/text-size.ts\n/**\n* Text sizes offered in the header, for readers who need the interface larger.\n*\n* The actual font sizes live in `text-size.css`: they scale the root element so\n* every rem-based size follows together. Keeping only the ids and labels here\n* leaves one source of truth for what each option looks like.\n*/\nvar TEXT_SIZES = [\n\t{\n\t\tid: \"small\",\n\t\tname: \"Small\"\n\t},\n\t{\n\t\tid: \"default\",\n\t\tname: \"Default\"\n\t},\n\t{\n\t\tid: \"large\",\n\t\tname: \"Large\"\n\t},\n\t{\n\t\tid: \"xlarge\",\n\t\tname: \"Extra large\"\n\t}\n];\nvar TEXT_SIZE_STORAGE_KEY = \"watch-tail:text-size\";\n/** Unknown or obsolete preferences fall back to Default. */\nfunction parseTextSize(value) {\n\treturn TEXT_SIZES.find((size) => size.id === value)?.id ?? \"default\";\n}\n//#endregion\n//#region src/lib/text-size.svelte.ts\nvar BASE_ROOT_FONT_PX = 16;\nfunction measureRootFontPx() {\n\tconst measured = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);\n\treturn Number.isFinite(measured) && measured > 0 ? measured : BASE_ROOT_FONT_PX;\n}\nvar TextSizePreference = class {\n\t/** Root font size in pixels: 16 until a size is applied on the client. */\n\trootFontPx = BASE_ROOT_FONT_PX;\n\t/**\n\t* Applies a text size. The data attribute drives the stylesheet and the\n\t* measured root font size keeps the pixel maths in step; the choice is\n\t* persisted unless `persist` is false.\n\t*/\n\tapply(value, persist = true) {\n\t\tconst id = parseTextSize(value);\n\t\tif (typeof document !== \"undefined\") {\n\t\t\tdocument.documentElement.dataset.textSize = id;\n\t\t\tthis.rootFontPx = measureRootFontPx();\n\t\t}\n\t\tif (!persist) return;\n\t\ttry {\n\t\t\tlocalStorage.setItem(TEXT_SIZE_STORAGE_KEY, id);\n\t\t} catch {}\n\t}\n};\n/** One preference per page: the header select and the viewer both read it. */\nvar textSize = new TextSizePreference();\n//#endregion\nexport { Icon as a, parseTextSize as i, TEXT_SIZES as n, puppy as o, TEXT_SIZE_STORAGE_KEY as r, slotPosition as s, textSize as t };\n"],"names":[],"mappings":"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"}
@@ -76,27 +76,32 @@ function formatWindowBound(epochMs, now) {
76
76
  function describeWindow(ready, now) {
77
77
  if (ready === null || ready.startTime === void 0) return {
78
78
  mode: "live",
79
- label: "live",
79
+ preset: null,
80
+ from: null,
81
+ to: null,
80
82
  title: "Tailing new events",
81
83
  clamped: false
82
84
  };
83
85
  const clamped = ready.clamped === true;
84
86
  if (ready.mode !== "historic" || ready.endTime === null || ready.endTime === void 0) return {
85
87
  mode: "live",
86
- label: "live",
88
+ preset: null,
89
+ from: null,
90
+ to: null,
87
91
  title: `Live since ${formatWindowBound(ready.startTime, now)}`,
88
92
  clamped
89
93
  };
90
94
  const from = formatWindowBound(ready.startTime, now);
91
95
  const to = formatWindowBound(ready.endTime, now);
92
- const preset = ready.preset === null || ready.preset === void 0 ? null : presetLabel(ready.preset);
93
96
  return {
94
97
  mode: "historic",
95
- label: preset === null ? `${from} → ${to}` : `${preset} · ${from} → ${to}`,
98
+ preset: ready.preset === null || ready.preset === void 0 ? null : presetLabel(ready.preset),
99
+ from,
100
+ to,
96
101
  title: clamped ? "Historic window, clamped to the last 14 days that CloudWatch Logs keeps" : "Historic window",
97
102
  clamped
98
103
  };
99
104
  }
100
105
 
101
106
  export { HISTORIC_PRESETS as H, PRESET_LABELS as P, presetLabel as a, describeWindow as d, isHistoricPreset as i, presetDurationMs as p, toDateTimeLocal as t };
102
- //# sourceMappingURL=time-range.js-BLMT8aU3.js.map
107
+ //# sourceMappingURL=time-range.js-__87ZPq6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-range.js-__87ZPq6.js","sources":["../../../../.svelte-kit/output/server/chunks/time-range.js"],"sourcesContent":["//#region src/lib/time-range.ts\n/**\n* Historic time-range helpers shared by the server and the browser.\n*\n* The preset list lives here so the API and the picker can never drift apart.\n* Everything is pure; nothing here touches the DOM.\n*/\n/** Preset windows offered by the historic range picker. */\nvar HISTORIC_PRESETS = [\n\t\"15m\",\n\t\"1h\",\n\t\"3h\",\n\t\"12h\",\n\t\"24h\",\n\t\"5d\"\n];\n/** Human labels for the preset chips. */\nvar PRESET_LABELS = {\n\t\"15m\": \"15 min\",\n\t\"1h\": \"1 hour\",\n\t\"3h\": \"3 hours\",\n\t\"12h\": \"12 hours\",\n\t\"24h\": \"24 hours\",\n\t\"5d\": \"5 days\"\n};\nvar UNIT_MS = {\n\tms: 1,\n\ts: 1e3,\n\tm: 6e4,\n\th: 36e5,\n\td: 864e5,\n\tw: 6048e5\n};\nvar DURATION_PATTERN = /^(\\d+(?:\\.\\d+)?)\\s*(ms|s|m|h|d|w)$/i;\n/** True when the value is one of the offered presets. */\nfunction isHistoricPreset(value) {\n\treturn HISTORIC_PRESETS.includes(value);\n}\n/** Duration of a preset window in milliseconds. */\nfunction presetDurationMs(preset) {\n\tconst match = DURATION_PATTERN.exec(preset);\n\treturn (match === null ? 0 : Number(match[1])) * (match === null ? 0 : UNIT_MS[match[2].toLowerCase()] ?? 0);\n}\n/** Label for a preset, falling back to the raw value. */\nfunction presetLabel(preset) {\n\treturn isHistoricPreset(preset) ? PRESET_LABELS[preset] : preset;\n}\n/**\n* Converts epoch milliseconds to the `YYYY-MM-DDTHH:mm` string a\n* `datetime-local` input expects, in the browser's local time zone.\n*/\n/** Zero-pads a number for the `datetime-local` format. */\nfunction pad(value) {\n\treturn String(value).padStart(2, \"0\");\n}\nfunction toDateTimeLocal(epochMs) {\n\tconst date = new Date(epochMs);\n\treturn `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n}\n/** Formats a window bound for display, for example `14:05` or `10 May 14:05`. */\nfunction formatWindowBound(epochMs, now) {\n\tconst date = new Date(epochMs);\n\tconst time = `${String(date.getHours()).padStart(2, \"0\")}:${String(date.getMinutes()).padStart(2, \"0\")}`;\n\tif (new Date(now).toDateString() === date.toDateString()) return time;\n\treturn `${date.toLocaleDateString(void 0, {\n\t\tday: \"numeric\",\n\t\tmonth: \"short\"\n\t})} ${time}`;\n}\n/**\n* Describes the window reported by the server's `ready` event.\n*\n* Live tails report the lookback window; historic tails report the resolved\n* range, naming the preset when one was used.\n*/\nfunction describeWindow(ready, now) {\n\tif (ready === null || ready.startTime === void 0) return {\n\t\tmode: \"live\",\n\t\tpreset: null,\n\t\tfrom: null,\n\t\tto: null,\n\t\ttitle: \"Tailing new events\",\n\t\tclamped: false\n\t};\n\tconst clamped = ready.clamped === true;\n\tif (ready.mode !== \"historic\" || ready.endTime === null || ready.endTime === void 0) return {\n\t\tmode: \"live\",\n\t\tpreset: null,\n\t\tfrom: null,\n\t\tto: null,\n\t\ttitle: `Live since ${formatWindowBound(ready.startTime, now)}`,\n\t\tclamped\n\t};\n\tconst from = formatWindowBound(ready.startTime, now);\n\tconst to = formatWindowBound(ready.endTime, now);\n\treturn {\n\t\tmode: \"historic\",\n\t\tpreset: ready.preset === null || ready.preset === void 0 ? null : presetLabel(ready.preset),\n\t\tfrom,\n\t\tto,\n\t\ttitle: clamped ? \"Historic window, clamped to the last 14 days that CloudWatch Logs keeps\" : \"Historic window\",\n\t\tclamped\n\t};\n}\n//#endregion\nexport { presetDurationMs as a, isHistoricPreset as i, PRESET_LABELS as n, presetLabel as o, describeWindow as r, toDateTimeLocal as s, HISTORIC_PRESETS as t };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { p as parseRegionParam, a as apiError, b as readEnv, R as REGION_PARAM_HINT } from '../../../../chunks/env2.js-C5BgBJDY.js';
2
- import { g as getArchive } from '../../../../chunks/archive.js-D2jtMmDo.js';
2
+ import { g as getArchive } from '../../../../chunks/archive.js-BRlkdj2X.js';
3
3
  import { j as json } from '../../../../chunks/utils.js-BIlHjgGW.js';
4
4
  import '../../../../chunks/shared-server.js-Dn5XheXH.js';
5
5
  import '@aws-sdk/client-cloudwatch-logs';
@@ -44,4 +44,4 @@ var GET = async ({ url }) => {
44
44
  };
45
45
 
46
46
  export { GET };
47
- //# sourceMappingURL=_server.ts.js-C4hWyXuu.js.map
47
+ //# sourceMappingURL=_server.ts.js-C6WY-ljy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-C4hWyXuu.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/archive/_server.ts.js"],"sourcesContent":["import { r as REGION_PARAM_HINT, s as parseRegionParam, t as readEnv, u as apiError } from \"../../../../chunks/env2.js\";\nimport { t as getArchive } from \"../../../../chunks/archive.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/archive/+server.ts\n/**\n* `GET /api/archive` - what the local DuckDB archive holds.\n*\n* Never fails: an archive that is off by configuration, missing its optional\n* driver or unreadable answers 200 with `available: false` and the reason, so\n* the UI can hide the archive view instead of showing an error.\n*/\nvar GET = async ({ url }) => {\n\tconst parsed = parseRegionParam(url.searchParams.get(\"region\"));\n\tif (!parsed.ok) return apiError(400, REGION_PARAM_HINT, \"invalid-region\");\n\tconst status = await (await getArchive(readEnv(), {\n\t\tregion: parsed.region,\n\t\treadOnly: true\n\t})).status();\n\tconst body = {\n\t\tpath: status.path,\n\t\tavailable: status.available,\n\t\terror: status.error,\n\t\tbytes: status.bytes,\n\t\trows: status.totals.rows,\n\t\tgroups: status.totals.groups,\n\t\tregions: status.totals.regions,\n\t\toldest: status.totals.oldest,\n\t\tnewest: status.totals.newest\n\t};\n\treturn json(body);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC7B,CAAC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAC1E,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE;AACnD,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACvB,EAAE,QAAQ,EAAE;AACZ,EAAE,CAAC,EAAE,MAAM,EAAE;AACb,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;AACnB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS;AAC7B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;AACrB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;AACrB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;AAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;AAChC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;AAC9B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACxB,EAAE;AACF,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB;;"}
1
+ {"version":3,"file":"_server.ts.js-C6WY-ljy.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/archive/_server.ts.js"],"sourcesContent":["import { r as REGION_PARAM_HINT, s as parseRegionParam, t as readEnv, u as apiError } from \"../../../../chunks/env2.js\";\nimport { t as getArchive } from \"../../../../chunks/archive.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/archive/+server.ts\n/**\n* `GET /api/archive` - what the local DuckDB archive holds.\n*\n* Never fails: an archive that is off by configuration, missing its optional\n* driver or unreadable answers 200 with `available: false` and the reason, so\n* the UI can hide the archive view instead of showing an error.\n*/\nvar GET = async ({ url }) => {\n\tconst parsed = parseRegionParam(url.searchParams.get(\"region\"));\n\tif (!parsed.ok) return apiError(400, REGION_PARAM_HINT, \"invalid-region\");\n\tconst status = await (await getArchive(readEnv(), {\n\t\tregion: parsed.region,\n\t\treadOnly: true\n\t})).status();\n\tconst body = {\n\t\tpath: status.path,\n\t\tavailable: status.available,\n\t\terror: status.error,\n\t\tbytes: status.bytes,\n\t\trows: status.totals.rows,\n\t\tgroups: status.totals.groups,\n\t\tregions: status.totals.regions,\n\t\toldest: status.totals.oldest,\n\t\tnewest: status.totals.newest\n\t};\n\treturn json(body);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC7B,CAAC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAC1E,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE;AACnD,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACvB,EAAE,QAAQ,EAAE;AACZ,EAAE,CAAC,EAAE,MAAM,EAAE;AACb,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;AACnB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS;AAC7B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;AACrB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;AACrB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;AAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;AAChC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;AAC9B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACxB,EAAE;AACF,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB;;"}
@@ -1,5 +1,5 @@
1
1
  import { p as parseRegionParam, a as apiError, b as readEnv, r as resolveAwsConfig, d as createLogsClient, e as resolveEffectiveRegion, f as describeAwsError, R as REGION_PARAM_HINT } from '../../../../chunks/env2.js-C5BgBJDY.js';
2
- import { g as getArchive } from '../../../../chunks/archive.js-D2jtMmDo.js';
2
+ import { g as getArchive } from '../../../../chunks/archive.js-BRlkdj2X.js';
3
3
  import { p as parseSourceParam, S as SOURCE_PARAM_HINT } from '../../../../chunks/source.js-DZEVvuho.js';
4
4
  import { j as json } from '../../../../chunks/utils.js-BIlHjgGW.js';
5
5
  import { DescribeLogGroupsCommand } from '@aws-sdk/client-cloudwatch-logs';
@@ -170,4 +170,4 @@ var GET = async ({ url, request }) => {
170
170
  };
171
171
 
172
172
  export { GET };
173
- //# sourceMappingURL=_server.ts.js-D4y43Vwe.js.map
173
+ //# sourceMappingURL=_server.ts.js-DTcVSbpV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-D4y43Vwe.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/log-groups/_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 { t as getArchive } from \"../../../../chunks/archive.js\";\nimport { n as parseSourceParam, t as SOURCE_PARAM_HINT } from \"../../../../chunks/source.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { DescribeLogGroupsCommand } from \"@aws-sdk/client-cloudwatch-logs\";\n//#region src/lib/server/log-groups.ts\n/** Page size requested from `DescribeLogGroups` (the API maximum). */\nvar PAGE_SIZE = 50;\nvar DEFAULT_LIMIT = 200;\nvar MIN_LIMIT = 1;\nvar MAX_LIMIT$1 = 1e3;\n/** Clamps the result limit into the supported 1..1000 range. */\nfunction clampLimit(limit) {\n\tif (limit === void 0 || !Number.isFinite(limit)) return DEFAULT_LIMIT;\n\treturn Math.min(Math.max(Math.floor(limit), MIN_LIMIT), MAX_LIMIT$1);\n}\n/** Maps an SDK log group onto the wire type, omitting absent fields. */\nfunction toSummary(group) {\n\tconst summary = { name: group.logGroupName ?? \"\" };\n\tif (group.arn !== void 0) summary.arn = group.arn;\n\tif (group.storedBytes !== void 0) summary.storedBytes = group.storedBytes;\n\tif (group.retentionInDays !== void 0) summary.retentionInDays = group.retentionInDays;\n\tif (group.creationTime !== void 0) summary.creationTime = group.creationTime;\n\treturn summary;\n}\n/** Locale-independent name comparison for a stable sort. */\nfunction byName(a, b) {\n\tif (a.name === b.name) return 0;\n\treturn a.name < b.name ? -1 : 1;\n}\n/**\n* Lists log groups for a region.\n*\n* Pages through `DescribeLogGroups` (50 per page, honouring `nextToken`),\n* filters by prefix on the client too because some emulators ignore\n* `logGroupNamePrefix`, de-duplicates by name, sorts by name and stops at\n* `limit` (default 200, clamped to 1..1000).\n*/\nasync function listLogGroups(client, options = {}) {\n\tconst prefix = options.prefix?.trim() ?? \"\";\n\tconst limit = clampLimit(options.limit);\n\tconst { signal } = options;\n\tconst collected = [];\n\tconst seenNames = /* @__PURE__ */ new Set();\n\tlet nextToken;\n\tdo {\n\t\tif (signal?.aborted) break;\n\t\tconst input = { limit: PAGE_SIZE };\n\t\tif (nextToken !== void 0) input.nextToken = nextToken;\n\t\tif (prefix.length > 0) input.logGroupNamePrefix = prefix;\n\t\tconst response = await client.send(new DescribeLogGroupsCommand(input), { abortSignal: signal });\n\t\tfor (const group of response.logGroups ?? []) {\n\t\t\tconst name = group.logGroupName;\n\t\t\tif (name === void 0 || name.length === 0) continue;\n\t\t\tif (prefix.length > 0 && !name.startsWith(prefix)) continue;\n\t\t\tif (seenNames.has(name)) continue;\n\t\t\tseenNames.add(name);\n\t\t\tcollected.push(toSummary(group));\n\t\t\tif (collected.length >= limit) break;\n\t\t}\n\t\tnextToken = response.nextToken;\n\t} while (nextToken !== void 0 && nextToken.length > 0 && collected.length < limit);\n\treturn collected.toSorted(byName);\n}\n/** Maps archived group rows onto the summary the group list renders. */\nfunction archivedGroupSummaries(rows) {\n\treturn rows.map((row) => {\n\t\tconst summary = {\n\t\t\tname: row.logGroup,\n\t\t\tarchivedEvents: row.events\n\t\t};\n\t\tif (row.oldest !== null) summary.archivedOldest = row.oldest;\n\t\tif (row.newest !== null) summary.archivedNewest = row.newest;\n\t\treturn summary;\n\t});\n}\n/**\n* Lists the log groups the local archive holds.\n*\n* The archive needs no credentials, so this works when CloudWatch is\n* unreachable. Groups are filtered by prefix and clamped to `limit` in process,\n* because the query already returns at most one row per group.\n*/\nfunction listArchivedGroups(rows, options = {}) {\n\tconst prefix = options.prefix?.trim() ?? \"\";\n\tconst limit = clampLimit(options.limit);\n\treturn archivedGroupSummaries(rows).filter((summary) => prefix.length === 0 || summary.name.startsWith(prefix)).slice(0, limit).toSorted(byName);\n}\n//#endregion\n//#region src/routes/api/log-groups/+server.ts\nvar MAX_LIMIT = 1e3;\n/**\n* `GET /api/log-groups?region=&prefix=&limit=&source=` - lists log groups.\n*\n* `source=cloudwatch` (the default) asks CloudWatch Logs for the region; the\n* region is optional there, because the SDK resolves it from the ambient AWS\n* configuration. `source=archive` lists what the local DuckDB file holds for\n* that region and needs no credentials at all. `request.signal` is forwarded to\n* the SDK so a disconnected client cancels the pagination loop.\n*/\nvar GET = async ({ url, request }) => {\n\tconst parsedRegion = parseRegionParam(url.searchParams.get(\"region\"));\n\tif (!parsedRegion.ok) return apiError(400, REGION_PARAM_HINT, \"invalid-region\");\n\tconst env = readEnv();\n\tconst limitRaw = url.searchParams.get(\"limit\")?.trim() ?? \"\";\n\tlet limit;\n\tif (limitRaw.length > 0) {\n\t\tconst parsed = Number(limitRaw);\n\t\tif (!Number.isInteger(parsed) || parsed < 1 || parsed > MAX_LIMIT) return apiError(400, `Invalid limit: expected an integer between 1 and ${MAX_LIMIT}`, \"invalid-limit\");\n\t\tlimit = parsed;\n\t} else {\n\t\tconst configured = Number((env.WATCH_TAIL_LIMIT ?? \"\").trim());\n\t\tif (Number.isInteger(configured) && configured >= 1 && configured <= MAX_LIMIT) limit = configured;\n\t}\n\tconst prefix = url.searchParams.get(\"prefix\")?.trim();\n\tconst source = parseSourceParam(url.searchParams.get(\"source\"));\n\tif (source === null) return apiError(400, SOURCE_PARAM_HINT, \"invalid-source\");\n\tconst config = resolveAwsConfig(env, parsedRegion.region);\n\tif (source === \"archive\") {\n\t\tconst groups = listArchivedGroups(await (await getArchive(env, {\n\t\t\tregion: config.region,\n\t\t\treadOnly: true\n\t\t})).groups(config.region), {\n\t\t\tprefix,\n\t\t\tlimit\n\t\t});\n\t\tconst body = {\n\t\t\tregion: config.region ?? \"\",\n\t\t\tendpoint: null,\n\t\t\tsource,\n\t\t\tgroups\n\t\t};\n\t\treturn json(body);\n\t}\n\tlet client;\n\ttry {\n\t\tclient = createLogsClient(config);\n\t\tconst region = await resolveEffectiveRegion(client, config);\n\t\tconst groups = await listLogGroups(client, {\n\t\t\tprefix: prefix !== void 0 && prefix.length > 0 ? prefix : void 0,\n\t\t\tlimit,\n\t\t\tsignal: request.signal\n\t\t});\n\t\tconst body = {\n\t\t\tregion,\n\t\t\tendpoint: config.endpoint,\n\t\t\tsource,\n\t\t\tgroups\n\t\t};\n\t\treturn json(body);\n\t} catch (error) {\n\t\tif (request.signal.aborted || error instanceof Error && error.name === \"AbortError\") return apiError(499, \"The client closed the request before CloudWatch Logs replied\", \"aborted\");\n\t\tconst described = describeAwsError(error);\n\t\treturn apiError(502, described.message, described.code);\n\t} finally {\n\t\tclient?.destroy();\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts.js-DTcVSbpV.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/log-groups/_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 { t as getArchive } from \"../../../../chunks/archive.js\";\nimport { n as parseSourceParam, t as SOURCE_PARAM_HINT } from \"../../../../chunks/source.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { DescribeLogGroupsCommand } from \"@aws-sdk/client-cloudwatch-logs\";\n//#region src/lib/server/log-groups.ts\n/** Page size requested from `DescribeLogGroups` (the API maximum). */\nvar PAGE_SIZE = 50;\nvar DEFAULT_LIMIT = 200;\nvar MIN_LIMIT = 1;\nvar MAX_LIMIT$1 = 1e3;\n/** Clamps the result limit into the supported 1..1000 range. */\nfunction clampLimit(limit) {\n\tif (limit === void 0 || !Number.isFinite(limit)) return DEFAULT_LIMIT;\n\treturn Math.min(Math.max(Math.floor(limit), MIN_LIMIT), MAX_LIMIT$1);\n}\n/** Maps an SDK log group onto the wire type, omitting absent fields. */\nfunction toSummary(group) {\n\tconst summary = { name: group.logGroupName ?? \"\" };\n\tif (group.arn !== void 0) summary.arn = group.arn;\n\tif (group.storedBytes !== void 0) summary.storedBytes = group.storedBytes;\n\tif (group.retentionInDays !== void 0) summary.retentionInDays = group.retentionInDays;\n\tif (group.creationTime !== void 0) summary.creationTime = group.creationTime;\n\treturn summary;\n}\n/** Locale-independent name comparison for a stable sort. */\nfunction byName(a, b) {\n\tif (a.name === b.name) return 0;\n\treturn a.name < b.name ? -1 : 1;\n}\n/**\n* Lists log groups for a region.\n*\n* Pages through `DescribeLogGroups` (50 per page, honouring `nextToken`),\n* filters by prefix on the client too because some emulators ignore\n* `logGroupNamePrefix`, de-duplicates by name, sorts by name and stops at\n* `limit` (default 200, clamped to 1..1000).\n*/\nasync function listLogGroups(client, options = {}) {\n\tconst prefix = options.prefix?.trim() ?? \"\";\n\tconst limit = clampLimit(options.limit);\n\tconst { signal } = options;\n\tconst collected = [];\n\tconst seenNames = /* @__PURE__ */ new Set();\n\tlet nextToken;\n\tdo {\n\t\tif (signal?.aborted) break;\n\t\tconst input = { limit: PAGE_SIZE };\n\t\tif (nextToken !== void 0) input.nextToken = nextToken;\n\t\tif (prefix.length > 0) input.logGroupNamePrefix = prefix;\n\t\tconst response = await client.send(new DescribeLogGroupsCommand(input), { abortSignal: signal });\n\t\tfor (const group of response.logGroups ?? []) {\n\t\t\tconst name = group.logGroupName;\n\t\t\tif (name === void 0 || name.length === 0) continue;\n\t\t\tif (prefix.length > 0 && !name.startsWith(prefix)) continue;\n\t\t\tif (seenNames.has(name)) continue;\n\t\t\tseenNames.add(name);\n\t\t\tcollected.push(toSummary(group));\n\t\t\tif (collected.length >= limit) break;\n\t\t}\n\t\tnextToken = response.nextToken;\n\t} while (nextToken !== void 0 && nextToken.length > 0 && collected.length < limit);\n\treturn collected.toSorted(byName);\n}\n/** Maps archived group rows onto the summary the group list renders. */\nfunction archivedGroupSummaries(rows) {\n\treturn rows.map((row) => {\n\t\tconst summary = {\n\t\t\tname: row.logGroup,\n\t\t\tarchivedEvents: row.events\n\t\t};\n\t\tif (row.oldest !== null) summary.archivedOldest = row.oldest;\n\t\tif (row.newest !== null) summary.archivedNewest = row.newest;\n\t\treturn summary;\n\t});\n}\n/**\n* Lists the log groups the local archive holds.\n*\n* The archive needs no credentials, so this works when CloudWatch is\n* unreachable. Groups are filtered by prefix and clamped to `limit` in process,\n* because the query already returns at most one row per group.\n*/\nfunction listArchivedGroups(rows, options = {}) {\n\tconst prefix = options.prefix?.trim() ?? \"\";\n\tconst limit = clampLimit(options.limit);\n\treturn archivedGroupSummaries(rows).filter((summary) => prefix.length === 0 || summary.name.startsWith(prefix)).slice(0, limit).toSorted(byName);\n}\n//#endregion\n//#region src/routes/api/log-groups/+server.ts\nvar MAX_LIMIT = 1e3;\n/**\n* `GET /api/log-groups?region=&prefix=&limit=&source=` - lists log groups.\n*\n* `source=cloudwatch` (the default) asks CloudWatch Logs for the region; the\n* region is optional there, because the SDK resolves it from the ambient AWS\n* configuration. `source=archive` lists what the local DuckDB file holds for\n* that region and needs no credentials at all. `request.signal` is forwarded to\n* the SDK so a disconnected client cancels the pagination loop.\n*/\nvar GET = async ({ url, request }) => {\n\tconst parsedRegion = parseRegionParam(url.searchParams.get(\"region\"));\n\tif (!parsedRegion.ok) return apiError(400, REGION_PARAM_HINT, \"invalid-region\");\n\tconst env = readEnv();\n\tconst limitRaw = url.searchParams.get(\"limit\")?.trim() ?? \"\";\n\tlet limit;\n\tif (limitRaw.length > 0) {\n\t\tconst parsed = Number(limitRaw);\n\t\tif (!Number.isInteger(parsed) || parsed < 1 || parsed > MAX_LIMIT) return apiError(400, `Invalid limit: expected an integer between 1 and ${MAX_LIMIT}`, \"invalid-limit\");\n\t\tlimit = parsed;\n\t} else {\n\t\tconst configured = Number((env.WATCH_TAIL_LIMIT ?? \"\").trim());\n\t\tif (Number.isInteger(configured) && configured >= 1 && configured <= MAX_LIMIT) limit = configured;\n\t}\n\tconst prefix = url.searchParams.get(\"prefix\")?.trim();\n\tconst source = parseSourceParam(url.searchParams.get(\"source\"));\n\tif (source === null) return apiError(400, SOURCE_PARAM_HINT, \"invalid-source\");\n\tconst config = resolveAwsConfig(env, parsedRegion.region);\n\tif (source === \"archive\") {\n\t\tconst groups = listArchivedGroups(await (await getArchive(env, {\n\t\t\tregion: config.region,\n\t\t\treadOnly: true\n\t\t})).groups(config.region), {\n\t\t\tprefix,\n\t\t\tlimit\n\t\t});\n\t\tconst body = {\n\t\t\tregion: config.region ?? \"\",\n\t\t\tendpoint: null,\n\t\t\tsource,\n\t\t\tgroups\n\t\t};\n\t\treturn json(body);\n\t}\n\tlet client;\n\ttry {\n\t\tclient = createLogsClient(config);\n\t\tconst region = await resolveEffectiveRegion(client, config);\n\t\tconst groups = await listLogGroups(client, {\n\t\t\tprefix: prefix !== void 0 && prefix.length > 0 ? prefix : void 0,\n\t\t\tlimit,\n\t\t\tsignal: request.signal\n\t\t});\n\t\tconst body = {\n\t\t\tregion,\n\t\t\tendpoint: config.endpoint,\n\t\t\tsource,\n\t\t\tgroups\n\t\t};\n\t\treturn json(body);\n\t} catch (error) {\n\t\tif (request.signal.aborted || error instanceof Error && error.name === \"AbortError\") return apiError(499, \"The client closed the request before CloudWatch Logs replied\", \"aborted\");\n\t\tconst described = describeAwsError(error);\n\t\treturn apiError(502, described.message, described.code);\n\t} finally {\n\t\tclient?.destroy();\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA;AACA;AACA,IAAI,SAAS,GAAG,EAAE;AAClB,IAAI,aAAa,GAAG,GAAG;AACvB,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,WAAW,GAAG,GAAG;AACrB;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,aAAa;AACtE,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC;AACrE;AACA;AACA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,CAAC,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE;AACnD,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AAClD,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AAC1E,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,MAAM,EAAE,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;AACtF,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,EAAE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;AAC7E,CAAC,OAAO,OAAO;AACf;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE;AACnD,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5C,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;AAC3B,CAAC,MAAM,SAAS,GAAG,EAAE;AACrB,CAAC,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE;AAC5C,CAAC,IAAI,SAAS;AACd,CAAC,GAAG;AACJ,EAAE,IAAI,MAAM,EAAE,OAAO,EAAE;AACvB,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;AACpC,EAAE,IAAI,SAAS,KAAK,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS;AACvD,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,kBAAkB,GAAG,MAAM;AAC1D,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAClG,EAAE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE;AAChD,GAAG,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;AAClC,GAAG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7C,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACtD,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5B,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnC,GAAG,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,EAAE;AAClC,EAAE;AACF,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS;AAChC,CAAC,CAAC,QAAQ,SAAS,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK;AAClF,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClC;AACA;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC1B,EAAE,MAAM,OAAO,GAAG;AAClB,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ;AACrB,GAAG,cAAc,EAAE,GAAG,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM;AAC9D,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM;AAC9D,EAAE,OAAO,OAAO;AAChB,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;AAChD,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5C,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,CAAC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjJ;AACA;AACA;AACA,IAAI,SAAS,GAAG,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AACtC,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAChF,CAAC,MAAM,GAAG,GAAG,OAAO,EAAE;AACtB,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,CAAC,IAAI,KAAK;AACV,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,SAAS,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC;AAC3K,EAAE,KAAK,GAAG,MAAM;AAChB,CAAC,CAAC,MAAM;AACR,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AAChE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,KAAK,GAAG,UAAU;AACpG,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE;AACtD,CAAC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAC/E,CAAC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC;AAC1D,CAAC,IAAI,MAAM,KAAK,SAAS,EAAE;AAC3B,EAAE,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE;AACjE,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7B,GAAG,MAAM;AACT,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG;AACf,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;AAC9B,GAAG,QAAQ,EAAE,IAAI;AACjB,GAAG,MAAM;AACT,GAAG;AACH,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AACD,CAAC,IAAI,MAAM;AACX,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7D,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;AAC7C,GAAG,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AACnE,GAAG,KAAK;AACR,GAAG,MAAM,EAAE,OAAO,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG;AACf,GAAG,MAAM;AACT,GAAG,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC5B,GAAG,MAAM;AACT,GAAG;AACH,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,8DAA8D,EAAE,SAAS,CAAC;AACtL,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC3C,EAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC;AACzD,CAAC,CAAC,SAAS;AACX,EAAE,MAAM,EAAE,OAAO,EAAE;AACnB,CAAC;AACD;;"}
@@ -1,7 +1,7 @@
1
1
  import { p as parseRegionParam, a as apiError, b as readEnv, r as resolveAwsConfig, R as REGION_PARAM_HINT } from '../../../../chunks/env2.js-C5BgBJDY.js';
2
- import { g as getArchive } from '../../../../chunks/archive.js-D2jtMmDo.js';
2
+ import { g as getArchive } 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, b as parseDurationMs, L as LEVEL_PARAM_HINT } from '../../../../chunks/level-filter.js-D9MNrew3.js';
4
+ import { p as parseGroupParams, a as parseLevelParam, r as resolveWindow, b as parseDurationMs, L as LEVEL_PARAM_HINT } from '../../../../chunks/level-filter.js-H0nc-2BG.js';
5
5
  import { j as json } from '../../../../chunks/utils.js-BIlHjgGW.js';
6
6
  import '../../../../chunks/shared-server.js-Dn5XheXH.js';
7
7
  import '@aws-sdk/client-cloudwatch-logs';
@@ -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
 
@@ -240,4 +240,4 @@ var GET = async ({ url }) => {
240
240
  };
241
241
 
242
242
  export { GET };
243
- //# sourceMappingURL=_server.ts.js-DibT3Hjc.js.map
243
+ //# sourceMappingURL=_server.ts.js-CzJ_bXh8.js.map