watch-tail 0.6.2 → 0.8.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 (275) hide show
  1. package/README.md +37 -15
  2. package/build/client/_app/immutable/assets/0.zDk3x0WE.css +2 -0
  3. package/build/client/_app/immutable/assets/0.zDk3x0WE.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.zDk3x0WE.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/{EventScatter.DA5sZ1c0.css → EventScatter.CCk6ByS3.css} +1 -1
  6. package/build/client/_app/immutable/assets/EventScatter.CCk6ByS3.css.br +0 -0
  7. package/build/client/_app/immutable/assets/EventScatter.CCk6ByS3.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{8x_7TBuS.js → 9z7cmAWt.js} +1 -1
  9. package/build/client/_app/immutable/chunks/9z7cmAWt.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/9z7cmAWt.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{D1Hr4tKw.js → B26Z2DQX.js} +1 -1
  12. package/build/client/_app/immutable/chunks/B26Z2DQX.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/B26Z2DQX.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{KA1QvXmu.js → B5kJ4QGS.js} +1 -1
  15. package/build/client/_app/immutable/chunks/B5kJ4QGS.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/B5kJ4QGS.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{sf5kQ3yV.js → BF1MBUT7.js} +1 -1
  18. package/build/client/_app/immutable/chunks/BF1MBUT7.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/BF1MBUT7.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{F4LqKrLs.js → BJEa1AAY.js} +5 -5
  21. package/build/client/_app/immutable/chunks/BJEa1AAY.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BJEa1AAY.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{w7c5E2ms.js → BKpbhYu9.js} +1 -1
  24. package/build/client/_app/immutable/chunks/BKpbhYu9.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/BKpbhYu9.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{DtV-MjyX.js → BVlqiKgb.js} +1 -1
  27. package/build/client/_app/immutable/chunks/BVlqiKgb.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/BVlqiKgb.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{DWm-CGbg.js → BWGaSL1l.js} +1 -1
  30. package/build/client/_app/immutable/chunks/BWGaSL1l.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/BWGaSL1l.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{BNDRPiSt.js → B_Z4tBMl.js} +1 -1
  33. package/build/client/_app/immutable/chunks/B_Z4tBMl.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/B_Z4tBMl.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{BWDKMHXq.js → Bo46v6NJ.js} +1 -1
  36. package/build/client/_app/immutable/chunks/Bo46v6NJ.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/Bo46v6NJ.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/{BKpsnTLG.js → BpDPh_kG.js} +1 -1
  39. package/build/client/_app/immutable/chunks/BpDPh_kG.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BpDPh_kG.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/{DQCjzVyz.js → BzFqst10.js} +1 -1
  42. package/build/client/_app/immutable/chunks/BzFqst10.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BzFqst10.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/{KsLFdNDs.js → C3JYac4u.js} +1 -1
  45. package/build/client/_app/immutable/chunks/C3JYac4u.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/C3JYac4u.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{CG0TPRkn.js → CBzF0p8K.js} +1 -1
  48. package/build/client/_app/immutable/chunks/CBzF0p8K.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/CBzF0p8K.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/{1cmfrS0o.js → CM9QBz5w.js} +1 -1
  51. package/build/client/_app/immutable/chunks/CM9QBz5w.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CM9QBz5w.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/{DznDQzx1.js → CZqQKfBo.js} +1 -1
  54. package/build/client/_app/immutable/chunks/CZqQKfBo.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/CZqQKfBo.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/Cr-NovV3.js +5 -0
  57. package/build/client/_app/immutable/chunks/Cr-NovV3.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/Cr-NovV3.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/{DqJI6J5U.js → Cz6pnyFa.js} +1 -1
  60. package/build/client/_app/immutable/chunks/Cz6pnyFa.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/Cz6pnyFa.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/{CBRk0OGa.js → D2fsDTN5.js} +1 -1
  63. package/build/client/_app/immutable/chunks/D2fsDTN5.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/D2fsDTN5.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/{CpeJ2iPd.js → DBcd9YbV.js} +1 -1
  66. package/build/client/_app/immutable/chunks/DBcd9YbV.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/DBcd9YbV.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/{OoMmWNOu.js → DC_milOQ.js} +1 -1
  69. package/build/client/_app/immutable/chunks/DC_milOQ.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DC_milOQ.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/{CIDBs8t6.js → DNiEIfDZ.js} +1 -1
  72. package/build/client/_app/immutable/chunks/DNiEIfDZ.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/DNiEIfDZ.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/{Dc9It0QB.js → DWdskt_Y.js} +1 -1
  75. package/build/client/_app/immutable/chunks/DWdskt_Y.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/DWdskt_Y.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/{DYDQbI6D.js → DsMQ6HVM.js} +1 -1
  78. package/build/client/_app/immutable/chunks/DsMQ6HVM.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/DsMQ6HVM.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/Dxeyu30B.js +1 -0
  81. package/build/client/_app/immutable/chunks/Dxeyu30B.js.br +1 -0
  82. package/build/client/_app/immutable/chunks/Dxeyu30B.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/{CfPyeeq3.js → H4Anb6kP.js} +1 -1
  84. package/build/client/_app/immutable/chunks/H4Anb6kP.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/H4Anb6kP.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/MDK8mPOo.js +1 -0
  87. package/build/client/_app/immutable/chunks/MDK8mPOo.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/MDK8mPOo.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/{D0IrjYE5.js → X7CLxGgV.js} +1 -1
  90. package/build/client/_app/immutable/chunks/X7CLxGgV.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/X7CLxGgV.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/{D6rwn6Ed.js → cK-f5ch_.js} +1 -1
  93. package/build/client/_app/immutable/chunks/cK-f5ch_.js.br +2 -0
  94. package/build/client/_app/immutable/chunks/cK-f5ch_.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/{UsO0MS14.js → mhYP0ygJ.js} +1 -1
  96. package/build/client/_app/immutable/chunks/mhYP0ygJ.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/mhYP0ygJ.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/{AAWh0-tL.js → vB0ff9Sn.js} +1 -1
  99. package/build/client/_app/immutable/chunks/vB0ff9Sn.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/vB0ff9Sn.js.gz +0 -0
  101. package/build/client/_app/immutable/entry/{app.FQLd-NC-.js → app.CinEZGkq.js} +2 -2
  102. package/build/client/_app/immutable/entry/app.CinEZGkq.js.br +0 -0
  103. package/build/client/_app/immutable/entry/app.CinEZGkq.js.gz +0 -0
  104. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js +1 -0
  105. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js.br +1 -0
  106. package/build/client/_app/immutable/entry/start.B7e0-3Hk.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/{0.BN3NguWs.js → 0.CFO0Fthy.js} +1 -1
  108. package/build/client/_app/immutable/nodes/0.CFO0Fthy.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/{0.BN3NguWs.js.gz → 0.CFO0Fthy.js.gz} +0 -0
  110. package/build/client/_app/immutable/nodes/{1.5EZfoLCg.js → 1.kGO9dV9J.js} +1 -1
  111. package/build/client/_app/immutable/nodes/1.kGO9dV9J.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/1.kGO9dV9J.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/2.eGSziRQX.js +5 -0
  114. package/build/client/_app/immutable/nodes/2.eGSziRQX.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/2.eGSziRQX.js.gz +0 -0
  116. package/build/client/_app/version.json +1 -1
  117. package/build/client/_app/version.json.br +0 -0
  118. package/build/client/_app/version.json.gz +0 -0
  119. package/build/handler.js +4 -4
  120. package/build/index.js +4 -4
  121. package/build/server/chunks/chunks/{EventScatter.js-D3Jaw_Cw.js → EventScatter.js-CG0RcOU6.js} +82 -20
  122. package/build/server/chunks/chunks/{EventScatter.js-D3Jaw_Cw.js.map → EventScatter.js-CG0RcOU6.js.map} +1 -1
  123. package/build/server/chunks/chunks/{archive.js-C2D-5edp.js → archive.js-D2jtMmDo.js} +134 -26
  124. package/build/server/chunks/chunks/archive.js-D2jtMmDo.js.map +1 -0
  125. package/build/server/chunks/chunks/{aws.js-DkPqAybc.js → env2.js-C5BgBJDY.js} +63 -6
  126. package/build/server/chunks/chunks/env2.js-C5BgBJDY.js.map +1 -0
  127. package/build/server/chunks/chunks/identity.js-NmGXxBz3.js +22 -0
  128. package/build/server/chunks/chunks/identity.js-NmGXxBz3.js.map +1 -0
  129. package/build/server/chunks/chunks/{internal2.js-627EG4am.js → internal2.js-BMcEVxqN.js} +2 -2
  130. package/build/server/chunks/chunks/{internal2.js-627EG4am.js.map → internal2.js-BMcEVxqN.js.map} +1 -1
  131. package/build/server/chunks/chunks/{level-filter.js-B3o2hyWD.js → level-filter.js-D9MNrew3.js} +2 -2
  132. package/build/server/chunks/chunks/{level-filter.js-B3o2hyWD.js.map → level-filter.js-D9MNrew3.js.map} +1 -1
  133. package/build/server/chunks/chunks/{log-buffer.js-BI_gQOls.js → log-buffer.js-A9FA-Qv8.js} +18 -3
  134. package/build/server/chunks/chunks/log-buffer.js-A9FA-Qv8.js.map +1 -0
  135. package/build/server/chunks/chunks/{regions.js-IQPMyP5C.js → regions.js-COf7DgnH.js} +3 -3
  136. package/build/server/chunks/chunks/regions.js-COf7DgnH.js.map +1 -0
  137. package/build/server/chunks/chunks/{series-buckets.js-BjigySff.js → series-buckets.js-DFGWkob5.js} +34 -8
  138. package/build/server/chunks/chunks/series-buckets.js-DFGWkob5.js.map +1 -0
  139. package/build/server/chunks/chunks/{state.js-DbqJPX0Y.js → state.js-vZj9lo1I.js} +2 -2
  140. package/build/server/chunks/chunks/{state.js-DbqJPX0Y.js.map → state.js-vZj9lo1I.js.map} +1 -1
  141. package/build/server/chunks/entries/endpoints/api/archive/{_server.ts.js-83Ch7djd.js → _server.ts.js-C4hWyXuu.js} +17 -9
  142. package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-C4hWyXuu.js.map +1 -0
  143. package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-VctnBhIJ.js → _server.ts.js-C5tfrpmC.js} +4 -5
  144. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-C5tfrpmC.js.map +1 -0
  145. package/build/server/chunks/entries/endpoints/api/identity/{_server.ts.js-Dt540Sio.js → _server.ts.js-PWRPScuN.js} +6 -24
  146. package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-PWRPScuN.js.map +1 -0
  147. package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-drLgUdvB.js → _server.ts.js-D4y43Vwe.js} +14 -11
  148. package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-D4y43Vwe.js.map +1 -0
  149. package/build/server/chunks/entries/endpoints/api/regions/{_server.ts.js-CBqfN6Pg.js → _server.ts.js-9_g0ojki.js} +8 -9
  150. package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-9_g0ojki.js.map +1 -0
  151. package/build/server/chunks/entries/endpoints/api/series/{_server.ts.js-DOvBhEDU.js → _server.ts.js-DibT3Hjc.js} +34 -16
  152. package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DibT3Hjc.js.map +1 -0
  153. package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-B9_-4ssJ.js → _server.ts.js-BxXw5K0R.js} +32 -20
  154. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BxXw5K0R.js.map +1 -0
  155. package/build/server/chunks/entries/fallbacks/{error.svelte.js-B8dLO9gT.js → error.svelte.js-bokc4skC.js} +3 -3
  156. package/build/server/chunks/entries/fallbacks/{error.svelte.js-B8dLO9gT.js.map → error.svelte.js-bokc4skC.js.map} +1 -1
  157. package/build/server/chunks/entries/pages/{_layout.svelte.js-CBQpEToy.js → _layout.svelte.js-8U7ZeKYO.js} +3 -3
  158. package/build/server/chunks/entries/pages/_layout.svelte.js-8U7ZeKYO.js.map +1 -0
  159. package/build/server/chunks/entries/pages/{_page.svelte.js-BwuzE25P.js → _page.svelte.js-DRoSEPVH.js} +149 -41
  160. package/build/server/chunks/entries/pages/_page.svelte.js-DRoSEPVH.js.map +1 -0
  161. package/build/server/chunks/{handler-hlKcUyVP.js → handler-BkYErjbr.js} +3 -3
  162. package/build/server/chunks/{handler-hlKcUyVP.js.map → handler-BkYErjbr.js.map} +1 -1
  163. package/build/server/chunks/{index.js-BfPWKsz6.js → index.js-5mkIDcpy.js} +2 -2
  164. package/build/server/chunks/{index.js-BfPWKsz6.js.map → index.js-5mkIDcpy.js.map} +1 -1
  165. package/build/server/chunks/{manifest.js-uuijI5lm.js → manifest.js-BGoS-vRx.js} +12 -12
  166. package/build/server/chunks/{manifest.js-uuijI5lm.js.map → manifest.js-BGoS-vRx.js.map} +1 -1
  167. package/build/server/chunks/nodes/{0.js-CNFDDPj5.js → 0.js-BIj6k30n.js} +4 -4
  168. package/build/server/chunks/nodes/{0.js-CNFDDPj5.js.map → 0.js-BIj6k30n.js.map} +1 -1
  169. package/build/server/chunks/nodes/{1.js-bi9PXX_2.js → 1.js-BQibx33b.js} +3 -3
  170. package/build/server/chunks/nodes/{1.js-bi9PXX_2.js.map → 1.js-BQibx33b.js.map} +1 -1
  171. package/build/server/chunks/nodes/{2.js-3MYCPEqM.js → 2.js-CczDSPv9.js} +4 -4
  172. package/build/server/chunks/nodes/{2.js-3MYCPEqM.js.map → 2.js-CczDSPv9.js.map} +1 -1
  173. package/dist/cli/index.js +13 -6
  174. package/dist/cli/options.js +1 -1
  175. package/dist/cli/server.js +19 -4
  176. package/dist/lib/cli/aws.js +4 -4
  177. package/dist/lib/log-buffer.js +1 -1
  178. package/package.json +6 -6
  179. package/build/client/_app/immutable/assets/0.Dfts6BC4.css +0 -2
  180. package/build/client/_app/immutable/assets/0.Dfts6BC4.css.br +0 -0
  181. package/build/client/_app/immutable/assets/0.Dfts6BC4.css.gz +0 -0
  182. package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.br +0 -0
  183. package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.gz +0 -0
  184. package/build/client/_app/immutable/chunks/1cmfrS0o.js.br +0 -0
  185. package/build/client/_app/immutable/chunks/1cmfrS0o.js.gz +0 -0
  186. package/build/client/_app/immutable/chunks/8x_7TBuS.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/8x_7TBuS.js.gz +0 -0
  188. package/build/client/_app/immutable/chunks/AAWh0-tL.js.br +0 -0
  189. package/build/client/_app/immutable/chunks/AAWh0-tL.js.gz +0 -0
  190. package/build/client/_app/immutable/chunks/BKpsnTLG.js.br +0 -0
  191. package/build/client/_app/immutable/chunks/BKpsnTLG.js.gz +0 -0
  192. package/build/client/_app/immutable/chunks/BNDRPiSt.js.br +0 -0
  193. package/build/client/_app/immutable/chunks/BNDRPiSt.js.gz +0 -0
  194. package/build/client/_app/immutable/chunks/BWDKMHXq.js.br +0 -0
  195. package/build/client/_app/immutable/chunks/BWDKMHXq.js.gz +0 -0
  196. package/build/client/_app/immutable/chunks/BjxZ_neZ.js +0 -5
  197. package/build/client/_app/immutable/chunks/BjxZ_neZ.js.br +0 -0
  198. package/build/client/_app/immutable/chunks/BjxZ_neZ.js.gz +0 -0
  199. package/build/client/_app/immutable/chunks/CBRk0OGa.js.br +0 -0
  200. package/build/client/_app/immutable/chunks/CBRk0OGa.js.gz +0 -0
  201. package/build/client/_app/immutable/chunks/CG0TPRkn.js.br +0 -0
  202. package/build/client/_app/immutable/chunks/CG0TPRkn.js.gz +0 -0
  203. package/build/client/_app/immutable/chunks/CGReuhGk.js +0 -1
  204. package/build/client/_app/immutable/chunks/CGReuhGk.js.br +0 -1
  205. package/build/client/_app/immutable/chunks/CGReuhGk.js.gz +0 -0
  206. package/build/client/_app/immutable/chunks/CIDBs8t6.js.br +0 -0
  207. package/build/client/_app/immutable/chunks/CIDBs8t6.js.gz +0 -0
  208. package/build/client/_app/immutable/chunks/CfPyeeq3.js.br +0 -0
  209. package/build/client/_app/immutable/chunks/CfPyeeq3.js.gz +0 -0
  210. package/build/client/_app/immutable/chunks/CpeJ2iPd.js.br +0 -0
  211. package/build/client/_app/immutable/chunks/CpeJ2iPd.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/D0IrjYE5.js.br +0 -0
  213. package/build/client/_app/immutable/chunks/D0IrjYE5.js.gz +0 -0
  214. package/build/client/_app/immutable/chunks/D1Hr4tKw.js.br +0 -0
  215. package/build/client/_app/immutable/chunks/D1Hr4tKw.js.gz +0 -0
  216. package/build/client/_app/immutable/chunks/D6rwn6Ed.js.br +0 -1
  217. package/build/client/_app/immutable/chunks/D6rwn6Ed.js.gz +0 -0
  218. package/build/client/_app/immutable/chunks/DQCjzVyz.js.br +0 -0
  219. package/build/client/_app/immutable/chunks/DQCjzVyz.js.gz +0 -0
  220. package/build/client/_app/immutable/chunks/DWm-CGbg.js.br +0 -0
  221. package/build/client/_app/immutable/chunks/DWm-CGbg.js.gz +0 -0
  222. package/build/client/_app/immutable/chunks/DYDQbI6D.js.br +0 -0
  223. package/build/client/_app/immutable/chunks/DYDQbI6D.js.gz +0 -0
  224. package/build/client/_app/immutable/chunks/Dc9It0QB.js.br +0 -0
  225. package/build/client/_app/immutable/chunks/Dc9It0QB.js.gz +0 -0
  226. package/build/client/_app/immutable/chunks/DkQY3T0m.js +0 -1
  227. package/build/client/_app/immutable/chunks/DkQY3T0m.js.br +0 -0
  228. package/build/client/_app/immutable/chunks/DkQY3T0m.js.gz +0 -0
  229. package/build/client/_app/immutable/chunks/DqJI6J5U.js.br +0 -0
  230. package/build/client/_app/immutable/chunks/DqJI6J5U.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/DtV-MjyX.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/DtV-MjyX.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/DznDQzx1.js.br +0 -0
  234. package/build/client/_app/immutable/chunks/DznDQzx1.js.gz +0 -0
  235. package/build/client/_app/immutable/chunks/F4LqKrLs.js.br +0 -0
  236. package/build/client/_app/immutable/chunks/F4LqKrLs.js.gz +0 -0
  237. package/build/client/_app/immutable/chunks/KA1QvXmu.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/KA1QvXmu.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/KsLFdNDs.js.br +0 -0
  240. package/build/client/_app/immutable/chunks/KsLFdNDs.js.gz +0 -0
  241. package/build/client/_app/immutable/chunks/OoMmWNOu.js.br +0 -0
  242. package/build/client/_app/immutable/chunks/OoMmWNOu.js.gz +0 -0
  243. package/build/client/_app/immutable/chunks/UsO0MS14.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/UsO0MS14.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/sf5kQ3yV.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/sf5kQ3yV.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/w7c5E2ms.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/w7c5E2ms.js.gz +0 -0
  249. package/build/client/_app/immutable/entry/app.FQLd-NC-.js.br +0 -0
  250. package/build/client/_app/immutable/entry/app.FQLd-NC-.js.gz +0 -0
  251. package/build/client/_app/immutable/entry/start.DqW_lChD.js +0 -1
  252. package/build/client/_app/immutable/entry/start.DqW_lChD.js.br +0 -1
  253. package/build/client/_app/immutable/entry/start.DqW_lChD.js.gz +0 -0
  254. package/build/client/_app/immutable/nodes/0.BN3NguWs.js.br +0 -0
  255. package/build/client/_app/immutable/nodes/1.5EZfoLCg.js.br +0 -0
  256. package/build/client/_app/immutable/nodes/1.5EZfoLCg.js.gz +0 -0
  257. package/build/client/_app/immutable/nodes/2.CbcDv2oO.js +0 -4
  258. package/build/client/_app/immutable/nodes/2.CbcDv2oO.js.br +0 -0
  259. package/build/client/_app/immutable/nodes/2.CbcDv2oO.js.gz +0 -0
  260. package/build/server/chunks/chunks/archive.js-C2D-5edp.js.map +0 -1
  261. package/build/server/chunks/chunks/aws.js-DkPqAybc.js.map +0 -1
  262. package/build/server/chunks/chunks/env2.js-CcIskxOZ.js +0 -60
  263. package/build/server/chunks/chunks/env2.js-CcIskxOZ.js.map +0 -1
  264. package/build/server/chunks/chunks/log-buffer.js-BI_gQOls.js.map +0 -1
  265. package/build/server/chunks/chunks/regions.js-IQPMyP5C.js.map +0 -1
  266. package/build/server/chunks/chunks/series-buckets.js-BjigySff.js.map +0 -1
  267. package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js.map +0 -1
  268. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-VctnBhIJ.js.map +0 -1
  269. package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-Dt540Sio.js.map +0 -1
  270. package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-drLgUdvB.js.map +0 -1
  271. package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-CBqfN6Pg.js.map +0 -1
  272. package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js.map +0 -1
  273. package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-B9_-4ssJ.js.map +0 -1
  274. package/build/server/chunks/entries/pages/_layout.svelte.js-CBQpEToy.js.map +0 -1
  275. package/build/server/chunks/entries/pages/_page.svelte.js-BwuzE25P.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/BJEa1AAY.js","../chunks/pqiPC7Y8.js","../chunks/HclGiUj8.js","../chunks/xihTtKlq.js","../chunks/Cr-NovV3.js","../chunks/DNiEIfDZ.js","../chunks/MDK8mPOo.js","../chunks/BWGaSL1l.js","../chunks/BF1MBUT7.js","../chunks/DBcd9YbV.js","../chunks/BKpbhYu9.js","../chunks/Db0q5_zr.js","../chunks/CCch3uox.js","../chunks/9z7cmAWt.js","../chunks/BzFqst10.js","../chunks/BVlqiKgb.js","../chunks/B5kJ4QGS.js","../chunks/DWdskt_Y.js","../chunks/B_Z4tBMl.js","../chunks/C58PZtCD.js","../assets/Path.B0wDzTrn.css","../chunks/BR2LaRms.js","../chunks/RobXhXPM.js","../chunks/CM9QBz5w.js","../chunks/D2fsDTN5.js","../chunks/DC_milOQ.js","../assets/Circle.C5MKzgk2.css","../chunks/Dfvzj6n2.js","../assets/EventScatter.CCk6ByS3.css"])))=>i.map(i=>d[i]);
2
+ import{At as e,B as t,Et as n,G as r,I as i,J as a,K as o,M as s,N as c,P as l,R as u,Tt as d,U as f,W as p,X as m,Z as h,_ as g,b as _,bt as v,ct as y,ft as b,g as x,h as S,ht as C,i as w,j as T,k as E,l as D,lt as O,m as k,mt as A,n as ee,nt as j,ot as M,p as te,rt as N,s as P,st as F,ut as I,v as L,x as R,y as z,yt as ne,z as B}from"../chunks/pqiPC7Y8.js";import{t as V}from"../chunks/MDK8mPOo.js";import{t as re}from"../chunks/HclGiUj8.js";import"../chunks/xihTtKlq.js";import{t as H}from"../chunks/cK-f5ch_.js";import{_ as U,a as ie,b as W,c as ae,d as G,f as oe,g as se,h as ce,i as le,l as ue,m as de,n as fe,o as pe,p as K,r as me,s as he,t as ge,v as _e,y as ve}from"../chunks/Cr-NovV3.js";var ye=`--:--:--.---`;function be(e,t=2){return String(Math.trunc(Math.abs(e))).padStart(t,`0`)}function xe(e){if(typeof e!=`number`||!Number.isFinite(e))return ye;let t=new Date(e);return Number.isNaN(t.getTime())?ye:`${`${be(t.getUTCHours())}:${be(t.getUTCMinutes())}:${be(t.getUTCSeconds())}`}.${be(t.getUTCMilliseconds(),3)}`}function Se(e){if(typeof e!=`number`||!Number.isFinite(e))return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:t.toISOString()}function Ce(e){let t=e>=100?e.toFixed(0):e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function we(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;let t=Math.round(e);if(t<1e3)return`${t}ms`;let n=t/1e3;if(n<60)return`${Ce(n)}s`;let r=Math.floor(n),i=Math.floor(r/60),a=r%60;if(i<60)return a===0?`${i}m`:`${i}m ${a}s`;let o=Math.floor(i/60),s=i%60;return s===0?`${o}h`:`${o}h ${s}m`}function Te(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.trunc(e)} B`;let t=[`KiB`,`MiB`,`GiB`,`TiB`],n=e/1024,r=t[0];for(let e=1;e<t.length&&n>=1024;e+=1)n/=1024,r=t[e];return`${Ce(n)} ${r}`}function q(e){if(typeof e!=`number`||!Number.isFinite(e))return`0`;let t=Math.trunc(e);return(t<0?`-`:``)+String(Math.abs(t)).replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function Ee(e){let t=typeof e==`string`?e.trim():``;if(t===``)return null;let n=t.toLowerCase();return n.includes(`floci`)?`floci`:n.includes(`localstack`)?`localstack`:De(t)===`4566`?`floci`:`local emulator`}function De(e){return Oe(e)?.port||null}function Oe(e){try{return new URL(e)}catch{return null}}function ke(e){let t=typeof e==`string`?e.trim():``;if(t===``)return null;let n=Ee(t);return n===null?null:(Oe(t)?.hostname.toLowerCase()??t.toLowerCase()).startsWith(n)?t:`${n} ${t}`}var J=t(`<span data-testid="credentials-hint" class="text-[0.6875rem] text-neutral-500">dev creds</span>`),Ae=t(`<span class="inline-flex items-center gap-1.5"><span data-testid="endpoint-badge" class="rounded-full border border-violet-900 bg-violet-950/60 px-2.5 py-1 text-xs font-medium text-violet-300"> </span> <!></span>`);function je(e,t){v(t,!0);let r=w(t,`endpoint`,3,null),o=w(t,`credentials`,3,null),s=C(()=>ke(r())),c=C(()=>o()===`emulator-default`),d=C(()=>a(c)?`Local emulator endpoint - using floci's throwaway credentials (no ambient AWS credentials found)`:`Local emulator endpoint`);var f=B(),p=F(f),m=e=>{var t=Ae(),r=M(t),o=y(r,!0),f=O(r,2),p=e=>{var t=J();u(e,t)};l(f,e=>{a(c)&&e(p)}),n(t),j(()=>{k(t,`title`,a(d)),k(r,`title`,a(d)),i(o,a(s))}),u(e,t)};l(p,e=>{a(s)!==null&&e(m)}),u(e,f),ne()}var Y={sidebarWidth:`watch-tail:sidebar-width`,prefixWidth:`watch-tail:prefix-width`,wrap:`watch-tail:wrap`,jsonView:`watch-tail:json-view`,chartOpen:`watch-tail:chart-open`,groupRequests:`watch-tail:group-requests`},X={defaultRem:22,minRem:16,maxVw:44},Me={defaultRem:14,minRem:4,maxRem:40};function Ne(e,t,n){let r=Math.min(t,n),i=Math.max(t,n);return Number.isNaN(e)?r:Math.min(Math.max(e,r),i)}function Pe(e,t,n,r){if(typeof e!=`string`||e.trim()===``)return Ne(t,n,r);let i=Number(e);return Ne(Number.isFinite(i)?i:t,n,r)}function Fe(e){let{startWidth:t,startX:n,currentX:r,min:i,max:a}=e;return Ne(t+(r-n),i,a)}function Ie(e){let{width:t,key:n,step:r=16,min:i,max:a}=e;return Ne(n!==`ArrowLeft`&&n!==`ArrowRight`?t:t+(n===`ArrowLeft`?-r:r),i,a)}function Le(e,t=16){let n=e/t;return`${Number.isInteger(n)?n:Number(n.toFixed(3))}rem`}function Z(e,t=16){return e*t}var Re=t(`<button type="button"> </button>`),ze=t(`<span class="text-neutral-500" data-testid="scatter-groups"> </span>`),Q=t(`<span class="flex items-center gap-1 text-neutral-400"><span class="inline-block h-2 w-2 rounded-full"></span> <span class="text-neutral-500"> </span></span>`),Be=t(`<span class="text-amber-300" data-testid="scatter-loading">loading…</span>`),Ve=t(`<span class="ml-auto text-sky-300" data-testid="scatter-brush-preview"> </span>`),He=t(`<span class="ml-auto text-neutral-500" data-testid="scatter-hint">select a point to show logs · drag to zoom · click background to clear</span>`),Ue=t(`<p class="px-1 text-[0.6875rem] text-neutral-500" data-testid="duration-note">Observed duration (ms) · last event + its duration − first event · partial requests may
3
+ appear shorter</p>`),We=t(`<p class="px-1 py-4 text-xs text-amber-300" data-testid="scatter-error">The chart could not be loaded. The log view is unaffected.</p>`),Ge=t(`<div class="w-full animate-pulse rounded bg-neutral-900/60"></div>`),Ke=t(`<p class="px-1 py-6 text-xs text-neutral-500" data-testid="scatter-empty"> </p>`),qe=t(`<!> <!>`,1),Je=t(`<section class="flex min-w-0 flex-col gap-1 rounded-lg border border-neutral-800 bg-neutral-950/60 p-2" data-testid="event-scatter"><div class="flex flex-wrap items-center gap-x-3 gap-y-1 px-1 text-[0.6875rem]"><button type="button" data-testid="scatter-toggle" class="flex items-center gap-1 rounded-md border border-neutral-800 bg-neutral-900 px-2 py-0.5 font-semibold uppercase tracking-wider text-neutral-400 transition-colors hover:border-neutral-700 hover:text-neutral-200"><span aria-hidden="true"> </span> </button> <div role="group" aria-label="Chart metric" class="flex rounded-md border border-neutral-800 p-0.5"></div> <span class="text-neutral-400" data-testid="scatter-summary"> <!></span> <!> <!> <!> <!></div> <!></section>`);function Ye(e,t){v(t,!0);let o=()=>re(()=>import(`../chunks/BJEa1AAY.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]),import.meta.url),d=w(t,`metric`,3,`count`),p=w(t,`points`,19,()=>[]),m=w(t,`from`,3,0),h=w(t,`to`,3,0);w(t,`bucketMs`,3,0);let g=w(t,`groups`,19,()=>[]),x=w(t,`loading`,3,!1),S=w(t,`byRequest`,3,!0),D=w(t,`height`,3,200),ee=w(t,`open`,3,!0),te=w(t,`loadChart`,3,o),P=A(null),I=C(()=>a(P)??ee()),L=A(null),R=A(!1),V=A(null),H=A(0);N(()=>{if(typeof localStorage>`u`)return;let e=localStorage.getItem(Y.chartOpen);e===`0`&&b(P,!1),e===`1`&&b(P,!0)}),N(()=>{if(!a(I)||a(L)!==null||a(R))return;let e=!1;return te()().then(t=>{e||b(L,t.default,!0)}).catch(()=>{e||b(R,!0)}),()=>{e=!0}});function U(){b(P,!a(I));try{localStorage?.setItem(Y.chartOpen,a(I)?`1`:`0`)}catch{}}function ie(e){return new Date(e).toISOString().slice(11,19)}let W=C(()=>le(p())),ae=C(()=>a(W).reduce((e,t)=>e+t.events,0)),G=C(()=>new Set(p().map(e=>e.t)).size),oe=C(()=>p().length>0),se=C(()=>d()===`duration`||S()?`requests`:`events`);function ce(){b(H,a(H)+1),t.onBrush?.(null)}var ue={reset:ce},de=Je(),pe=M(de),K=M(pe),me=M(K),he=y(me,!0),ge=O(me);n(K);var _e=O(K,2);T(_e,20,()=>[`count`,`duration`],s,(e,n)=>{var a=Re(),o=y(a,!0);j(()=>{k(a,`data-testid`,`chart-metric-${n}`),k(a,`aria-pressed`,d()===n),_(a,1,`rounded px-2 py-0.5 transition-colors ${d()===n?`bg-sky-950 text-sky-300`:`text-neutral-400 hover:text-neutral-200`}`),i(o,n===`count`?`Count`:`Duration (ms)`)}),r(`click`,a,()=>t.onMetricChange?.(n)),u(e,a)}),n(_e);var ve=O(_e,2),ye=M(ve),be=O(ye),xe=e=>{var t=f();j(e=>i(t,` in ${e??``} buckets`),[()=>q(a(G))]),u(e,t)};l(be,e=>{d()===`count`&&e(xe)}),n(ve);var Se=O(ve,2),Ce=e=>{var t=ze(),n=y(t);j(()=>i(n,`across ${g().length??``} groups`)),u(e,t)};l(Se,e=>{g().length>1&&e(Ce)});var we=O(Se,2);T(we,17,()=>a(W),e=>e.level,(e,t)=>{var r=Q(),o=M(r),s=O(o),c=O(s),l=y(c,!0);n(r),j(e=>{k(r,`data-testid`,`scatter-legend-${a(t).level??``}`),z(o,`background-color: ${fe[a(t).level]??``}`),i(s,` ${a(t).label??``} `),i(l,e)},[()=>q(a(t).events)]),u(e,r)});var Te=O(we,2),Ee=e=>{var t=Be();u(e,t)};l(Te,e=>{x()&&a(I)&&e(Ee)});var De=O(Te,2),Oe=e=>{var t=B(),n=F(t),r=e=>{var t=Ve(),n=y(t);j((e,t)=>i(n,`release to zoom to ${e??``} – ${t??``}`),[()=>ie(a(V).from),()=>ie(a(V).to)]),u(e,t)},o=e=>{var t=He();u(e,t)};l(n,e=>{a(V)===null?e(o,-1):e(r)}),u(e,t)};l(De,e=>{a(I)&&e(Oe)}),n(pe);var ke=O(pe,2),J=e=>{var n=qe(),r=F(n),o=e=>{var t=Ue();u(e,t)};l(r,e=>{d()===`duration`&&e(o)});var s=O(r,2),f=e=>{var t=We();u(e,t)},g=e=>{var n=B(),r=F(n),i=e=>{var n=B(),r=F(n);c(r,()=>`${a(H)}:${d()}`,e=>{var n=B(),r=F(n);E(r,()=>a(L),(e,n)=>{n(e,{get points(){return p()},get onSelect(){return t.onSelect},get metric(){return d()},get from(){return m()},get to(){return h()},get height(){return D()},onBrush:e=>{b(V,null),t.onBrush?.(e)},onBrushPreview:e=>b(V,e,!0)})}),u(e,n)}),u(e,n)},o=e=>{var t=Ge();j(()=>z(t,`height: ${D()??``}px`)),u(e,t)};l(r,e=>{a(L)===null?e(o,-1):e(i)}),u(e,n)},_=e=>{var t=Ke(),n=y(t,!0);j(()=>i(n,d()===`duration`?`No requests with a request ID in this window yet.`:`No events in this window yet.`)),u(e,t)};l(s,e=>{a(R)?e(f):a(oe)?e(g,1):x()||e(_,2)}),u(e,n)};return l(ke,e=>{a(I)&&e(J)}),n(de),j(e=>{k(de,`aria-label`,d()===`duration`?`Request duration over time`:`Events over time`),k(K,`aria-expanded`,a(I)),k(K,`title`,a(I)?`Hide the chart`:`Show the chart`),i(he,a(I)?`▾`:`▸`),i(ge,` ${d()===`duration`?`Request duration`:`Events over time`}`),i(ye,`${e??``}
4
+ ${a(se)??``}`)},[()=>q(a(ae))]),r(`click`,K,U),u(e,de),ne(ue)}p([`click`]);var Xe=t(`<div role="separator" aria-orientation="vertical" tabindex="0"></div>`);function Ze(e,t){v(t,!0);let n=w(t,`class`,3,``),i=w(t,`style`,3,``),a=null;function s(e){a={x:e.clientX,width:t.width},e.currentTarget.setPointerCapture?.(e.pointerId),e.preventDefault()}function c(e){a!==null&&(t.onChange(Fe({startWidth:a.width,startX:a.x,currentX:e.clientX,min:t.min,max:t.max})),e.preventDefault())}function l(e){a!==null&&(a=null,e.currentTarget.releasePointerCapture?.(e.pointerId),t.onCommit?.(t.width))}function d(e){let n=Ie({width:t.width,key:e.key,min:t.min,max:t.max});n!==t.width&&(e.preventDefault(),t.onChange(n),t.onCommit?.(n))}var f=Xe();j(e=>{k(f,`aria-label`,t.label),k(f,`aria-valuemin`,t.min),k(f,`aria-valuemax`,t.max),k(f,`aria-valuenow`,e),k(f,`title`,`${t.label??``} (drag or use the arrow keys)`),k(f,`data-testid`,t.testId),_(f,1,`cursor-col-resize touch-none bg-transparent hover:bg-sky-500/30 focus:bg-sky-500/50 focus:outline-none ${n()??``}`),z(f,i())},[()=>Math.round(t.width)]),r(`pointerdown`,f,s),r(`pointermove`,f,c),r(`pointerup`,f,l),o(`pointercancel`,f,l),r(`keydown`,f,d),u(e,f),ne()}p([`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Qe=[`15m`,`1h`,`3h`,`12h`,`24h`,`5d`],$e={"15m":`15 min`,"1h":`1 hour`,"3h":`3 hours`,"12h":`12 hours`,"24h":`24 hours`,"5d":`5 days`};function et(e){return Qe.includes(e)}function tt(e){return et(e)?$e[e]:e}function nt(e){return String(e).padStart(2,`0`)}function rt(e){let t=new Date(e);return`${t.getFullYear()}-${nt(t.getMonth()+1)}-${nt(t.getDate())}T${nt(t.getHours())}:${nt(t.getMinutes())}`}function it(e){if(typeof e!=`string`||e.trim()===``)return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function at(e,t){let n=new Date(e),r=`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`;return new Date(t).toDateString()===n.toDateString()?r:`${n.toLocaleDateString(void 0,{day:`numeric`,month:`short`})} ${r}`}function ot(e,t){if(e===null||e.startTime===void 0)return{mode:`live`,label:`live`,title:`Tailing new events`,clamped:!1};let n=e.clamped===!0;if(e.mode!==`historic`||e.endTime===null||e.endTime===void 0)return{mode:`live`,label:`live`,title:`Live since ${at(e.startTime,t)}`,clamped:n};let r=at(e.startTime,t),i=at(e.endTime,t),a=e.preset===null||e.preset===void 0?null:tt(e.preset);return{mode:`historic`,label:a===null?`${r} → ${i}`:`${a} · ${r} → ${i}`,title:n?`Historic window, clamped to the last 14 days that CloudWatch Logs keeps`:`Historic window`,clamped:n}}var st=t(`<button type="button"> </button>`),ct=t(`<div class="flex flex-wrap items-center gap-1" role="group" aria-label="Historic range"><!> <button type="button" data-testid="preset-custom"> </button></div>`),lt=t(`<span class="text-xs text-amber-300" data-testid="range-loading">loading window…</span>`),ut=t(`<span class="text-xs text-neutral-500"> </span>`),dt=t(`<span class="text-xs text-red-300" role="alert" data-testid="custom-error"> </span>`),ft=t(`<div class="flex flex-wrap items-center gap-2 rounded-lg border border-neutral-800 bg-neutral-900/70 p-2" data-testid="custom-window"><label class="flex items-center gap-1 text-xs text-neutral-400">From <input type="datetime-local" data-testid="custom-from" class="rounded-md border border-neutral-800 bg-neutral-950 px-2 py-1 text-xs text-neutral-100"/></label> <label class="flex items-center gap-1 text-xs text-neutral-400">To <input type="datetime-local" data-testid="custom-to" class="rounded-md border border-neutral-800 bg-neutral-950 px-2 py-1 text-xs text-neutral-100"/></label> <button type="button" data-testid="custom-apply" class="rounded-md border border-sky-800 bg-sky-950/60 px-2 py-1 text-xs font-medium text-sky-200 hover:border-sky-600">Apply</button> <!></div>`),pt=t(`<div class="flex flex-wrap items-center gap-2" data-testid="range-controls"><div class="flex items-center gap-1 rounded-lg border border-neutral-800 bg-neutral-900 p-0.5" role="group" aria-label="Tail mode"><button type="button" data-testid="mode-live">Live</button> <button type="button" data-testid="mode-historic">Historic</button></div> <!> <!> <!></div>`);function mt(e,t){v(t,!0);let o=w(t,`mode`,3,`live`),s=w(t,`range`,3,`15m`),c=w(t,`from`,3,null),d=w(t,`to`,3,null),f=w(t,`disabled`,3,!1),p=w(t,`loading`,3,!1),m=w(t,`liveDisabled`,3,!1),h=A(!1),g=A(``),x=A(``),S=A(null);N(()=>{let e=c()??(d()??Date.now())-36e5,t=d()??Date.now();b(g,rt(e),!0),b(x,rt(t),!0),b(h,o()===`historic`&&s()===``&&c()!==null&&d()!==null,!0)});function E(e){e!==o()&&(e===`live`&&m()||t.onApply?.({mode:e,range:e===`live`?``:s()===``?`15m`:s(),from:null,to:null}))}function ee(e){b(S,null),t.onApply?.({mode:`historic`,range:e,from:null,to:null})}function P(){b(S,null),b(h,!0)}function F(){let e=it(a(g)),n=it(a(x));if(e===null||n===null){b(S,`Pick both a start and an end time.`);return}if(n<=e){b(S,`The end must be after the start.`);return}if(n-e>12096e5){b(S,`CloudWatch Logs only keeps 14 days.`);return}b(S,null),t.onApply?.({mode:`historic`,range:``,from:e,to:n})}let I=C(()=>o()===`historic`&&s()===``&&c()!==null&&d()!==null?`${rt(c()).replace(`T`,` `)} → ${rt(d()).replace(`T`,` `)}`:`Custom…`);var L=pt(),R=M(L),z=M(R),B=O(z,2);n(R);var V=O(R,2),re=e=>{var t=ct(),o=M(t);T(o,16,()=>Qe,e=>e,(e,t)=>{var n=st(),a=y(n,!0);j(()=>{k(n,`aria-pressed`,s()===t),k(n,`data-testid`,`preset-${t??``}`),n.disabled=f(),_(n,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${s()===t?`border-amber-700 bg-amber-950/50 text-amber-200`:`border-neutral-800 bg-neutral-900 text-neutral-300 hover:border-neutral-700`} disabled:opacity-40`),i(a,$e[t])}),r(`click`,n,()=>ee(t)),u(e,n)});var c=O(o,2),l=y(c,!0);n(t),j(()=>{k(c,`aria-pressed`,s()===``),c.disabled=f(),_(c,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${s()===``?`border-amber-700 bg-amber-950/50 text-amber-200`:`border-neutral-800 bg-neutral-900 text-neutral-300 hover:border-neutral-700`}`),i(l,a(I))}),r(`click`,c,P),u(e,t)};l(V,e=>{o()===`historic`&&e(re)});var H=O(V,2),U=e=>{var t=lt();u(e,t)},ie=e=>{var t=ut(),n=y(t);j(e=>i(n,`last ${e??``}`),[()=>tt(s())]),u(e,t)};l(H,e=>{p()?e(U):o()===`historic`&&s()!==``&&e(ie,1)});var W=O(H,2),ae=e=>{var t=ft(),o=M(t),s=O(M(o));te(s),n(o);var c=O(o,2),d=O(M(c));te(d),n(c);var f=O(c,2),p=O(f,2),m=e=>{var t=dt(),n=y(t,!0);j(()=>i(n,a(S))),u(e,t)};l(p,e=>{a(S)!==null&&e(m)}),n(t),D(s,()=>a(g),e=>b(g,e)),D(d,()=>a(x),e=>b(x,e)),r(`click`,f,F),u(e,t)};l(W,e=>{a(h)&&o()===`historic`&&e(ae)}),n(L),j(()=>{k(z,`aria-pressed`,o()===`live`),z.disabled=m(),k(z,`title`,m()?`There is nothing to tail: the local archive holds historic windows`:void 0),_(z,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${o()===`live`?`border-sky-700 bg-sky-950/60 text-sky-300`:`border-transparent text-neutral-400 hover:text-neutral-200`} disabled:opacity-40`),k(B,`aria-pressed`,o()===`historic`),_(B,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${o()===`historic`?`border-amber-700 bg-amber-950/50 text-amber-300`:`border-transparent text-neutral-400 hover:text-neutral-200`}`)}),r(`click`,z,()=>E(`live`)),r(`click`,B,()=>E(`historic`)),u(e,L),ne()}p([`click`]);var $=`us-east-1.us-east-2.us-west-1.us-west-2.ca-central-1.ca-west-1.mx-central-1.sa-east-1.eu-west-1.eu-west-2.eu-west-3.eu-central-1.eu-central-2.eu-north-1.eu-south-1.eu-south-2.af-south-1.me-south-1.me-central-1.il-central-1.ap-east-1.ap-south-1.ap-south-2.ap-southeast-1.ap-southeast-2.ap-southeast-3.ap-southeast-4.ap-southeast-5.ap-southeast-6.ap-southeast-7.ap-northeast-1.ap-northeast-2.ap-northeast-3`.split(`.`),ht=class extends Error{status;code;details;constructor(e,t={}){super(e,{cause:t.cause}),this.name=`ApiError`,this.status=t.status??0,this.code=t.code,this.details=t.details}};function gt(e,t){if(typeof e!=`object`||!e)return;let n=e[t];return typeof n==`string`?n:void 0}function _t(e,t=`Unexpected API error`){return gt(e,`error`)??t}function vt(e){let t=new URLSearchParams;e.region&&t.set(`region`,e.region),e.source&&t.set(`source`,e.source),e.prefix&&t.set(`prefix`,e.prefix),typeof e.limit==`number`&&Number.isFinite(e.limit)&&t.set(`limit`,String(e.limit));let n=t.toString();return n===``?`/api/log-groups`:`/api/log-groups?${n}`}function yt(e){let t=new URLSearchParams;e.region&&t.set(`region`,e.region),t.set(`source`,`archive`);let n=(e.groups??[]).filter(e=>e.length>0);n.length>0&&t.set(`groups`,n.join(`,`)),typeof e.from==`number`&&Number.isFinite(e.from)&&t.set(`from`,String(Math.round(e.from))),typeof e.to==`number`&&Number.isFinite(e.to)&&t.set(`to`,String(Math.round(e.to)));let r=(e.levels??[]).filter(e=>e.length>0);return r.length>0&&t.set(`level`,r.join(`,`)),e.metric&&t.set(`metric`,e.metric),(e.by===`request`||e.by===`event`)&&t.set(`by`,e.by),typeof e.bucketMs==`number`&&Number.isFinite(e.bucketMs)&&e.bucketMs>0&&t.set(`bucket`,String(Math.round(e.bucketMs))),`/api/series?${t.toString()}`}function bt(e){return St(yt(e),e)}function xt(e){return e instanceof Error&&e.name===`AbortError`}async function St(e,t){let n=t.fetchImpl??fetch,r;try{r=await n(e,{headers:{accept:`application/json`},signal:t.signal})}catch(t){throw xt(t)?t:new ht(`Could not reach ${e}.`,{cause:t})}let i=await r.text(),a=null;if(i.trim()!==``)try{a=JSON.parse(i)}catch{a=null}if(!r.ok)throw new ht(_t(a,`Request to ${e} failed with ${r.status}.`),{status:r.status,code:gt(a,`code`),details:gt(a,`details`)});return a}function Ct(e={}){return St(`/api/regions`,e)}function wt(e={}){return St(`/api/health`,e)}function Tt(e){return St(vt(e),e)}function Et(e={}){return St(`/api/archive${e.region?`?${new URLSearchParams({region:e.region})}`:``}`,e)}function Dt(e){return`No log groups found in ${e}. Start floci and run \`pnpm seed\` to create sample groups.`}var Ot=`Locally archived events - read from the local DuckDB file, no CloudWatch credentials, historic windows only.`;function kt(e){let t=typeof e==`string`?e.trim():``,n=`Locally archived events instead of live CloudWatch data`;return t===``?n:`${n} (${t})`}function At(e){return`Nothing archived for ${e===``?`this region`:e} yet - stream a group from CloudWatch once and it will appear here.`}function jt(e){return e.trim().replace(/\.+$/,``)}function Mt(e,t){if(t instanceof ht){let n=t.details?` ${t.details}`:``;return`Could not list log groups in ${e}: ${jt(t.message)}.${n}`}return`Could not reach the watch-tail API for ${e}. ${t instanceof Error&&t.message!==``?t.message:String(t)}`}function Nt(e,t,n){return`${n} (${t===null||t===``?e:`${t} in ${e}`})`}var Pt=t(`<span class="text-xs font-medium text-sky-400" data-testid="selected-count"> </span>`),Ft=t(`<span class="rounded-full border border-teal-900 bg-teal-950/50 px-1.5 py-0.5 text-[0.625rem] font-medium text-teal-300" data-testid="group-source-badge">local</span>`),It=t(`<p role="alert" data-testid="group-error" class="rounded-md border border-red-900 bg-red-950/50 px-3 py-2 text-xs leading-5 text-red-300"> </p>`),Lt=t(`<div class="h-5 animate-pulse rounded bg-neutral-800/80"></div>`),Rt=t(`<div class="flex flex-col gap-2" data-testid="group-loading" aria-busy="true"><!> <p class="text-xs text-neutral-500">Loading log groups…</p></div>`),zt=t(`<p data-testid="group-empty" class="rounded-md border border-neutral-800 bg-neutral-900/60 px-3 py-2 text-xs leading-5 text-neutral-400"> </p>`),Bt=t(`<p data-testid="group-no-match" class="px-1 py-2 text-xs text-neutral-500"> </p>`),Vt=t(`<span data-testid="group-archived-count" class="rounded-full border border-teal-900 bg-teal-950/50 px-1.5 py-0.5 text-[0.625rem] font-medium text-teal-300"> </span>`),Ht=t(`<span class="hidden text-[0.6875rem] text-neutral-500 xl:inline" data-testid="group-archived-span"> </span>`),Ut=t(`<span class="flex shrink-0 items-center gap-1.5"><!> <!></span>`),Wt=t(`<span class="shrink-0 text-[0.6875rem] text-neutral-500"> </span>`),Gt=t(`<li class="flex items-center gap-1.5"><input type="checkbox" class="size-3.5 shrink-0 cursor-pointer accent-sky-500"/> <button type="button" data-testid="group-row"><span class="truncate font-mono"> </span> <!></button></li>`),Kt=t(`<p class="text-[0.6875rem] text-neutral-500" data-testid="group-truncated"> </p>`),qt=t(`<ul class="flex min-h-0 flex-1 flex-col gap-1 overflow-y-auto pr-1"></ul> <!>`,1),Jt=t(`<section class="flex min-h-0 flex-1 flex-col gap-3"><div class="flex items-center justify-between gap-2"><div class="flex items-baseline gap-2"><h2 class="text-sm font-semibold text-neutral-200"> </h2> <span class="text-xs text-neutral-500" data-testid="group-count"> </span> <!> <!></div> <button type="button" class="rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium text-neutral-300 transition-colors hover:border-neutral-700 hover:text-neutral-100 disabled:cursor-not-allowed disabled:opacity-50"> </button></div> <div class="flex flex-col gap-1.5"><label class="sr-only" for="group-search">Search log groups</label> <input id="group-search" type="search" placeholder="Search log groups" class="w-full rounded-md border border-neutral-800 bg-neutral-900 px-2.5 py-1.5 text-sm text-neutral-100 outline-none transition-colors placeholder:text-neutral-600 hover:border-neutral-700 focus:border-sky-600"/></div> <!></section>`);function Yt(e,t){v(t,!0);let o=w(t,`groups`,19,()=>[]),c=w(t,`source`,3,`cloudwatch`),f=w(t,`region`,3,``),p=w(t,`selected`,19,()=>[]),m=w(t,`loading`,3,!1),h=w(t,`error`,3,null),g=w(t,`maxRows`,3,500),E=A(``),D=C(()=>c()===`archive`);function ee(e){return e.archivedEvents===void 0?null:`${q(e.archivedEvents)} archived`}function N(e){return e.archivedOldest===void 0||e.archivedNewest===void 0?null:`${Se(e.archivedOldest)} \u2192 ${Se(e.archivedNewest)}`}let P=C(()=>o().filter(e=>e.name.toLowerCase().includes(a(E).trim().toLowerCase()))),I=C(()=>a(P).slice(0,g())),L=C(()=>a(P).length>a(I).length),R=C(()=>a(E).trim());function z(e){return e==null?[]:Array.isArray(e)?e:[e]}let B=C(()=>z(p()));function V(e){return a(B).includes(e)}function re(e){return V(e)?`border-sky-800 bg-sky-950/50 text-sky-200`:`border-transparent bg-neutral-900/60 text-neutral-300 hover:border-neutral-800 hover:text-neutral-100`}var H=Jt(),U=M(H),ie=M(U),W=M(ie),ae=y(W,!0),G=O(W,2),oe=y(G),se=O(G,2),ce=e=>{var t=Pt(),n=y(t);j(e=>i(n,`${e??``} selected`),[()=>q(a(B).length)]),u(e,t)};l(se,e=>{a(B).length>1&&e(ce)});var le=O(se,2),ue=e=>{var t=Ft();u(e,t)};l(le,e=>{a(D)&&e(ue)}),n(ie);var de=O(ie,2),fe=y(de,!0);n(U);var pe=O(U,2),K=O(M(pe),2);te(K),n(pe);var me=O(pe,2),he=e=>{var t=It(),n=y(t,!0);j(()=>i(n,h())),u(e,t)},ge=e=>{var t=Rt(),r=M(t);T(r,16,()=>Array.from({length:5}),s,(e,t)=>{var n=Lt();u(e,n)}),d(2),n(t),u(e,t)},_e=e=>{var t=zt(),n=y(t,!0);j(e=>i(n,e),[()=>a(D)?At(f()):Dt(f())]),u(e,t)},ve=e=>{var t=Bt(),n=y(t);j(()=>i(n,`No log groups match “${a(R)??``}”.`)),u(e,t)},ye=e=>{var o=qt(),s=F(o);T(s,21,()=>a(I),e=>e.arn??e.name,(e,o)=>{var s=Gt(),c=M(s);te(c);var d=O(c,2),f=M(d),p=y(f,!0),m=O(f,2),h=e=>{var t=Ut(),r=M(t),s=e=>{var t=Vt(),n=y(t,!0);j((e,r)=>{k(t,`title`,e),i(n,r)},[()=>N(a(o))??`Events held in the local DuckDB archive`,()=>ee(a(o))]),u(e,t)},c=C(()=>ee(a(o))!==null);l(r,e=>{a(c)&&e(s)});var d=O(r,2),f=e=>{var t=Ht(),n=y(t,!0);j(e=>i(n,e),[()=>N(a(o))]),u(e,t)},p=C(()=>N(a(o))!==null);l(d,e=>{a(p)&&e(f)}),n(t),u(e,t)},g=e=>{var t=Wt(),n=y(t,!0);j(e=>i(n,e),[()=>Te(a(o).storedBytes)]),u(e,t)};l(m,e=>{a(D)?e(h):a(o).storedBytes!==void 0&&e(g,1)}),n(d),n(s),j((e,t,n)=>{k(c,`data-testid`,`group-check-${a(o).name??``}`),k(c,`aria-label`,`Include ${a(o).name} in the selection`),S(c,e),k(d,`aria-current`,t),_(d,1,`flex min-w-0 flex-1 items-center justify-between gap-2 rounded-md border px-2.5 py-1.5 text-left text-xs transition-colors ${n??``}`),i(p,a(o).name)},[()=>V(a(o).name),()=>V(a(o).name)?`true`:void 0,()=>re(a(o).name)]),r(`change`,c,()=>t.onToggle?.(a(o).name)),r(`click`,d,()=>t.onSelect?.(a(o).name)),u(e,s)}),n(s);var c=O(s,2),d=e=>{var t=Kt(),n=y(t);j((e,t)=>i(n,`Showing first ${e??``} of ${t??``} groups.`),[()=>q(g()),()=>q(a(P).length)]),u(e,t)};l(c,e=>{a(L)&&e(d)}),u(e,o)};l(me,e=>{h()!==null&&h()!==``?e(he):m()&&o().length===0?e(ge,1):o().length===0?e(_e,2):a(I).length===0?e(ve,3):e(ye,-1)}),n(H),j((e,t)=>{i(ae,a(D)?`Archived groups`:`Log groups`),i(oe,`${e??``} of ${t??``}`),de.disabled=m(),i(fe,m()?`Refreshing…`:`Refresh`),x(K,a(E))},[()=>q(a(P).length),()=>q(o().length)]),r(`click`,de,()=>t.onRefresh?.()),r(`input`,K,e=>b(E,e.currentTarget.value,!0)),u(e,H),ne()}p([`click`,`input`,`change`]);function Xt(e,t){if(t===null)return new Set;let{point:n,bucketMs:r,byRequest:i,fallbackGroup:a}=t,o=e.filter(e=>(e.group??a)===n.group);if(n.requestId!==void 0)return new Set(o.filter(e=>ae(e)===n.requestId));let s=e=>Math.floor(e/r)*r===n.t,c=new Set;if(i){for(let e of he(o))if(s(e.first)&&e.level===n.level)for(let{event:t}of e.events)c.add(t)}for(let e of o)i&&ae(e)!==null||s(e.timestamp)&&(K(e)??`unknown`)===n.level&&c.add(e);return c}var Zt=t(`<span data-testid="status-badge"><span aria-hidden="true"></span> </span>`);function Qt(e,t){let r={idle:`idle`,connecting:`connecting`,live:`live`,reconnecting:`reconnecting`,error:`error`,ended:`ended`},o={idle:`border-neutral-700 bg-neutral-800/60 text-neutral-400`,connecting:`border-sky-900 bg-sky-950/70 text-sky-300`,live:`border-emerald-900 bg-emerald-950/70 text-emerald-300`,reconnecting:`border-amber-900 bg-amber-950/70 text-amber-300`,error:`border-red-900 bg-red-950/70 text-red-300`,ended:`border-neutral-700 bg-neutral-800/60 text-neutral-400`},s={idle:`bg-neutral-500`,connecting:`bg-sky-400 animate-pulse`,live:`bg-emerald-400`,reconnecting:`bg-amber-400 animate-pulse`,error:`bg-red-400`,ended:`bg-neutral-500`},c=C(()=>o[t.status]),l=C(()=>s[t.status]),d=C(()=>r[t.status]);var f=Zt(),p=M(f),m=O(p);n(f),j(()=>{k(f,`data-status`,t.status),_(f,1,`inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs font-medium ${a(c)??``}`),_(p,1,`size-1.5 rounded-full ${a(l)??``}`),i(m,` ${a(d)??``}`)}),u(e,f)}var $t=t(`<span data-testid="archive-badge" class="rounded-full border border-teal-900 bg-teal-950/60 px-2 py-0.5 text-[0.6875rem] font-medium text-teal-300">local archive</span>`),en=t(`<span class="text-xs text-neutral-400" data-testid="request-count"> </span>`),tn=t(`<span class="text-xs text-amber-300" data-testid="pending-count"> </span>`),nn=t(`<span class="text-xs text-amber-300/80" data-testid="dropped-count"> </span>`),rn=t(`<span class="text-[0.6875rem] text-amber-400/80" data-testid="window-clamped">14-day limit</span>`),an=t(`<span class="text-[0.6875rem] text-emerald-400/80" data-testid="window-complete">window complete</span>`),on=t(`<span class="ml-1 opacity-70"> </span>`),sn=t(`<button type="button"> <!></button>`),cn=t(`<p role="alert" data-testid="stream-error" class="border-b border-red-900 bg-red-950/50 px-3 py-2 text-xs leading-5 text-red-300"> </p>`),ln=t(`<div class="flex items-center gap-2 px-3 py-1 text-xs text-sky-300" role="status" data-testid="chart-selection-status"><!> <button type="button" class="ml-auto underline">Clear selection</button></div>`),un=t(`<p class="px-3 py-6 text-sm text-neutral-500" data-testid="viewer-idle">Select a log group to start tailing.</p>`),dn=t(`<p class="px-3 py-6 text-sm text-neutral-500" data-testid="viewer-empty"> </p>`),fn=t(`<span class="w-[9rem] shrink-0 truncate text-teal-400/80" data-testid="log-group"> </span>`),pn=t(`<span class="shrink-0 text-neutral-600" aria-hidden="true"> </span>`),mn=t(`<span> </span>`),hn=t(`<span class="w-full whitespace-pre text-xs text-neutral-300" data-testid="log-json-expanded"></span>`),gn=t(`<li data-testid="log-line"><span class="w-[7.5rem] shrink-0 text-neutral-500"> </span> <!> <span class="shrink-0 truncate text-sky-400/80" data-testid="log-stream"> </span> <!> <span data-testid="log-message"><!></span> <!></li>`),_n=t(`<span class="min-w-0 truncate text-neutral-500" data-testid="request-group-preview"> </span>`),vn=t(`<ul class="contents"></ul>`),yn=t(`<li data-testid="log-request-group"><button type="button" class="flex w-full flex-wrap items-baseline gap-2 px-3 py-0.5 text-left hover:bg-neutral-900/60" data-testid="request-group-summary"><span class="w-[7.5rem] shrink-0 text-neutral-500"> </span> <!> <span class="shrink-0 truncate text-sky-400/80" data-testid="log-stream"> </span> <span class="shrink-0 text-neutral-600" aria-hidden="true"> </span> <span class="shrink-0 rounded border border-neutral-700 bg-neutral-900 px-1.5 font-mono text-[0.6875rem] text-sky-200" data-testid="request-group-id" title="Request id shared by these lines"> </span> <span class="shrink-0 text-neutral-400" data-testid="request-group-count"> </span> <span class="shrink-0 text-neutral-500" data-testid="request-group-span"> </span> <span data-testid="request-group-level"> </span> <!></button> <!></li>`),bn=t(`<div data-testid="log-canvas"><ol class="font-mono text-xs leading-5" data-testid="log-lines"></ol> <!></div>`),xn=t(`<section class="flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-neutral-800 bg-neutral-950"><div class="flex flex-wrap items-center gap-x-3 gap-y-2 border-b border-neutral-800 bg-neutral-900/40 px-3 py-2"><!> <!> <span class="text-xs text-neutral-400" data-testid="visible-count"> </span> <!> <span class="text-xs text-neutral-500" data-testid="received-count"> </span> <!> <!> <span data-testid="window-chip"> </span> <!> <!> <div class="ml-auto flex flex-wrap items-center gap-2"><div class="flex items-center gap-1" role="group" aria-label="Filter by level"><button type="button" title="Show every level, including lines with no level" data-testid="level-all">All</button> <!></div> <input type="search" aria-label="Filter log lines" placeholder="Filter lines" class="w-40 rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs text-neutral-100 outline-none transition-colors placeholder:text-neutral-600 hover:border-neutral-700 focus:border-sky-600"/> <button type="button" title="Wrap long lines instead of scrolling sideways" data-testid="wrap-toggle">Wrap</button> <button type="button" title="Pretty-print JSON log entries (off: click a line to open its JSON)" data-testid="json-toggle">JSON</button> <button type="button" title="Group the lines of one request into a single row, coloured by its most critical line (off: one row per line)" data-testid="group-toggle">By request</button> <button type="button" class="rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium text-neutral-300 transition-colors hover:border-neutral-700 hover:text-neutral-100"> </button> <button type="button" class="rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium text-neutral-300 transition-colors hover:border-neutral-700 hover:text-neutral-100">Clear</button> <button type="button">Auto-scroll</button></div></div> <!> <!> <div class="min-h-0 min-w-0 flex-1 overflow-auto bg-neutral-950" data-testid="log-scroller"><!></div></section>`);function Sn(t,o){v(o,!0);let s=w(o,`selection`,3,null),c=w(o,`lines`,19,()=>[]),d=w(o,`status`,3,`idle`),p=w(o,`error`,3,null),g=w(o,`region`,3,``),S=w(o,`group`,3,null),E=w(o,`filter`,3,``),D=w(o,`paused`,3,!1),L=w(o,`autoScroll`,3,!0),V=w(o,`pendingCount`,3,0),re=w(o,`droppedCount`,3,0),H=w(o,`receivedCount`,3,0),ie=w(o,`mode`,3,`live`),ae=w(o,`ready`,3,null),G=w(o,`endReason`,3,null),le=w(o,`archivePath`,3,null),fe=w(o,`groups`,19,()=>[]),pe=w(o,`level`,3,void 0),me=w(o,`groupRequests`,3,!0),he=Z(7.5),ye=Z(.75),be=Z(.5),Ce=Z(Me.minRem),Te=Z(Me.maxRem),Ee=Z(Me.defaultRem);function De(e){try{return typeof localStorage>`u`?null:localStorage.getItem(e)}catch{return null}}function Oe(e,t){try{if(typeof localStorage>`u`)return;localStorage.setItem(e,t)}catch{}}let ke=A(!1),J=A(!0),Ae=A(I(Ee));ee(()=>{b(ke,De(Y.wrap)===`true`),b(J,De(Y.jsonView)!==`false`),b(Ae,Pe(De(Y.prefixWidth),Ee,Ce,Te),!0)});let je=A(null),X=C(()=>pe()===void 0?a(je):pe());function Ne(e){pe()===void 0?b(je,e,!0):o.onLevelChange?.(e)}let Fe=[{level:`error`,label:`Error`,activeClass:`border-red-800 bg-red-950/50 text-red-300`},{level:`warn`,label:`Warn`,activeClass:`border-amber-800 bg-amber-950/40 text-amber-300`},{level:`info`,label:`Info`,activeClass:`border-neutral-700 bg-neutral-800 text-neutral-100`},{level:`debug`,label:`Debug`,activeClass:`border-neutral-700 bg-neutral-800 text-neutral-400`}],Ie=C(()=>Xt(c(),s())),Re=C(()=>ce(se(c(),E()),a(X))),ze=C(()=>a(Re).filter(e=>a(Ie).has(e)).length),Q=C(()=>{let e={error:0,warn:0,info:0,debug:0,unknown:0};for(let t of c()){let n=K(t);e[n??`unknown`]=(e[n??`unknown`]??0)+1}return e}),Be=C(()=>a(Re).map((e,t)=>{let n=e.level===void 0?oe(e.message):e.level,r=ve(e.message,{prettyJson:a(J)}),i=U(n),o=null;if(!a(J)){let t=_e(e.message);t!==null&&(o=JSON.stringify(t,null,2))}return{selected:a(Ie).has(e),key:de(e,t),time:xe(e.timestamp),timestamp:Se(e.timestamp),streamName:e.streamName,group:e.group??null,message:r.text,tokens:a(J)&&r.isJson?W(r.text):null,expandable:o,level:n,levelClass:i}}));function Ve(e){return{kind:`line`,...e}}function He(e){let t=e.request.events.map(e=>a(Be)[e.index]).filter(e=>e!==void 0),n=e.request.level,r=t[0];return{kind:`request`,key:e.key,id:e.request.id,time:r?.time??``,timestamp:r?.timestamp??``,count:t.length,span:we(e.request.last-e.request.first),level:n,levelLabel:ge[n],levelClass:U(n===`unknown`?null:n),group:Ue(t.map(e=>e.group)),streamName:Ue(t.map(e=>e.streamName)),preview:We(e.request),children:t}}function Ue(e){let t=e[0];return t==null?null:e.every(e=>e===t)?t:null}function We(e){let t=e.events.find(t=>K(a(Re)[t.index]??{message:``})===e.level)??e.events[0],[n=``]=(a(Re)[t?.index??-1]?.message??``).split(`
5
+ `);return n.replace(/\s+/g,` `).trim().slice(0,160)}let Ge=C(()=>{if(!me())return a(Be).map(Ve);let e=[];for(let t of ue(a(Re))){if(t.kind===`line`){e.push(Ve(a(Be)[t.index]));continue}if(t.request.events.length===1){let n=a(Be)[t.request.events[0]?.index??-1];n!==void 0&&e.push(Ve(n));continue}e.push(He(t))}return e}),Ke=C(()=>a(Ge).some(e=>e.kind===`request`)),qe=C(()=>a(Ge).filter(e=>e.kind===`request`).length),Je=A(null);N(()=>{let e=a(Ge).length;s()===null&&L()&&a(Je)!==null&&e!==0&&(a(Je).scrollTop=a(Je).scrollHeight)});let Ye=C(()=>a(Ge).find(e=>e.kind===`line`?e.selected:e.children.some(e=>e.selected))?.key),Xe=null,Qe;N(()=>{let e=s(),t=a(Ye);if(e===null||t===void 0){Xe=null;return}if(e===Xe&&t===Qe)return;h(()=>{let e={...a($)};for(let t of a(Ge))t.kind===`request`&&t.children.some(e=>e.selected)&&(e[t.key]=!0);b($,e,!0)});let n=!1;return m().then(()=>{if(n||a(Je)===null)return;let r=a(Je).querySelector(`[data-chart-selected="true"]`);r&&(Xe=e,Qe=t,a(Je).scrollTop+=r.getBoundingClientRect().top-a(Je).getBoundingClientRect().top-8)}),()=>{n=!0}});let $e=C(()=>p()===null?null:Nt(g(),S(),p().message)),et=C(()=>ae()?.source===`archive`),tt=C(()=>a(et)&&(d()===`connecting`||d()===`live`||d()===`reconnecting`)?`idle`:d()),nt=C(()=>kt(le())),rt=C(()=>S()===null||S()===``?`Select a log group to start tailing.`:E().trim()===``?a(et)?`No archived events for ${S()} in this window.`:`Waiting for events from ${S()}\u2026`:`No lines match the filter.`),it=C(()=>L()?`text-sky-300`:`text-neutral-400`),at=C(()=>ot(ae(),Date.now())),st=C(()=>ie()===`historic`&&G()===`window-complete`),ct=C(()=>a(ke)?`text-sky-300`:`text-neutral-400`),lt=C(()=>a(J)?`text-sky-300`:`text-neutral-400`),ut=C(()=>me()?`text-sky-300`:`text-neutral-400`),dt=C(()=>a(ke)?`w-full`:`w-max min-w-full`),ft=C(()=>a(ke)?`whitespace-pre-wrap break-words`:`whitespace-pre`),pt=C(()=>ye+he+be+a(Ae)),mt=C(()=>`max-width: ${Le(a(Ae))}`),$=A(I({}));function ht(e){return a($)[e]===!0}function gt(e){if(a($)[e]===!0){let{[e]:t,...n}=a($);b($,n,!0);return}b($,{...a($),[e]:!0},!0)}function _t(e){switch(e){case`key`:return`text-sky-300`;case`string`:return`text-emerald-300`;case`number`:return`text-amber-300`;case`boolean`:return`text-fuchsia-300`;case`null`:return`text-neutral-500`;case`punctuation`:return`text-neutral-600`;default:return``}}function vt(){Oe(Y.prefixWidth,String(Math.round(a(Ae))))}function yt(){b(ke,!a(ke)),Oe(Y.wrap,String(a(ke)))}function bt(){b(J,!a(J)),Oe(Y.jsonView,String(a(J)))}var xt=xn(),St=M(xt),Ct=M(St);Qt(Ct,{get status(){return a(tt)}});var wt=O(Ct,2),Tt=e=>{var t=$t();j(()=>k(t,`title`,a(nt))),u(e,t)};l(wt,e=>{a(et)&&e(Tt)});var Et=O(wt,2),Dt=y(Et),Ot=O(Et,2),At=e=>{var t=en(),n=y(t);j(e=>i(n,`${e??``} requests`),[()=>q(a(qe))]),u(e,t)};l(Ot,e=>{a(Ke)&&e(At)});var jt=O(Ot,2),Mt=y(jt),Pt=O(jt,2),Ft=e=>{var t=tn(),n=y(t);j(e=>i(n,`${e??``} buffered`),[()=>q(V())]),u(e,t)};l(Pt,e=>{V()>0&&e(Ft)});var It=O(Pt,2),Lt=e=>{var t=nn(),n=y(t);j(e=>i(n,`${e??``} dropped`),[()=>q(re())]),u(e,t)};l(It,e=>{re()>0&&e(Lt)});var Rt=O(It,2),zt=y(Rt,!0),Bt=O(Rt,2),Vt=e=>{var t=rn();u(e,t)};l(Bt,e=>{a(at).clamped&&e(Vt)});var Ht=O(Bt,2),Ut=e=>{var t=an();u(e,t)};l(Ht,e=>{a(st)&&e(Ut)});var Wt=O(Ht,2),Gt=M(Wt),Kt=M(Gt),qt=O(Kt,2);T(qt,17,()=>Fe,e=>e.level,(e,t)=>{var o=sn(),s=M(o),c=O(s),d=e=>{var n=on(),r=y(n,!0);j(e=>i(r,e),[()=>q(a(Q)[a(t).level]??0)]),u(e,n)};l(c,e=>{(a(Q)[a(t).level]??0)>0&&e(d)}),n(o),j(()=>{k(o,`aria-pressed`,a(X)===a(t).level),k(o,`title`,`Show only ${a(t).label??``} lines (${a(Q)[a(t).level]??0??``} loaded)`),k(o,`data-testid`,`level-${a(t).level??``}`),_(o,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${(a(X)===a(t).level?a(t).activeClass:`border-neutral-800 bg-neutral-900 text-neutral-400 hover:border-neutral-700`)??``}`),i(s,`${a(t).label??``} `)}),r(`click`,o,()=>Ne(a(X)===a(t).level?null:a(t).level)),u(e,o)}),n(Gt);var Jt=O(Gt,2);te(Jt);var Yt=O(Jt,2),Zt=O(Yt,2),Sn=O(Zt,2),Cn=O(Sn,2),wn=y(Cn,!0),Tn=O(Cn,2),En=O(Tn,2);n(Wt),n(St);var Dn=O(St,2),On=e=>{var t=cn(),n=y(t,!0);j(()=>i(n,a($e))),u(e,t)};l(Dn,e=>{a($e)!==null&&e(On)});var kn=O(Dn,2),An=e=>{var t=ln(),s=M(t),c=e=>{var t=f(`Selected logs are not in the loaded buffer. Zoom into this time range to load them.`);u(e,t)},d=e=>{var t=f();j(()=>i(t,`${a(ze)??``} of ${a(Ie).size??``} selected log lines visible${a(ze)<a(Ie).size?` — clear the text or level filter to see all`:``}.`)),u(e,t)};l(s,e=>{a(Ie).size===0?e(c):e(d,-1)});var p=O(s,2);n(t),r(`click`,p,function(...e){o.onSelectionClear?.apply(this,e)}),u(e,t)};l(kn,e=>{s()!==null&&e(An)});var jn=O(kn,2),Mn=M(jn),Nn=e=>{var t=un();u(e,t)},Pn=e=>{var t=dn(),n=y(t,!0);j(()=>i(n,a(rt))),u(e,t)},Fn=t=>{var o=bn(),s=M(o);{let t=(t,o=e,s=e)=>{let c=C(()=>o().expandable!==null),d=C(()=>a(c)&&ht(o().key));var p=gn();let m;var h=M(p),g=y(h,!0),v=O(h,2),b=e=>{var t=fn(),n=y(t,!0);j(()=>{k(t,`title`,o().group??``),i(n,o().group??``)}),u(e,t)};l(v,e=>{fe().length>1&&e(b)});var x=O(v,2),S=y(x,!0),w=O(x,2),E=e=>{var t=pn(),n=y(t,!0);j(()=>i(n,a(d)?`▾`:`▸`)),u(e,t)};l(w,e=>{a(c)&&e(E)});var D=O(w,2),A=M(D),ee=e=>{var t=B(),n=F(t);T(n,19,()=>o().tokens,(e,t)=>`${o().key}-${t}`,(e,t)=>{var n=mn(),r=y(n,!0);j(e=>{_(n,1,e),i(r,a(t).text)},[()=>R(_t(a(t).type))]),u(e,n)}),u(e,t)},te=e=>{var t=f();j(()=>i(t,o().message)),u(e,t)};l(A,e=>{o().tokens===null?e(te,-1):e(ee)}),n(D);var N=O(D,2),P=e=>{var t=hn();T(t,23,()=>W(o().expandable),(e,t)=>`${o().key}-json-${t}`,(e,t)=>{var n=mn(),r=y(n,!0);j(e=>{_(n,1,e),i(r,a(t).text)},[()=>R(_t(a(t).type))]),u(e,n)}),n(t),u(e,t)};l(N,e=>{a(d)&&o().expandable!==null&&e(P)}),n(p),j(()=>{m=_(p,1,`flex flex-wrap items-baseline gap-2 ${s()?`pl-8`:`px-3`} py-0.5 hover:bg-neutral-900/60 ${a(dt)??``} ${a(c)?`cursor-pointer`:``}`,null,m,{"bg-sky-950":o().selected,"ring-1":o().selected,"ring-inset":o().selected,"ring-sky-700":o().selected}),k(p,`data-chart-selected`,o().selected?`true`:void 0),k(p,`data-request-child`,s()?`true`:void 0),k(p,`data-level`,o().level??`unknown`),k(p,`data-expandable`,a(c)?`true`:void 0),k(p,`data-expanded`,a(d)?`true`:void 0),k(p,`role`,a(c)?`button`:void 0),k(p,`tabindex`,a(c)?0:void 0),k(p,`aria-expanded`,a(c)?a(d):void 0),k(p,`title`,a(c)?a(d)?`Hide the JSON in this line`:`Show this line as JSON`:void 0),k(h,`title`,o().timestamp),i(g,o().time),z(x,a(mt)),k(x,`title`,o().streamName??``),i(S,o().streamName??``),_(D,1,`${a(ft)??``} ${o().levelClass??``}`)}),r(`click`,p,function(...e){(a(c)?()=>gt(o().key):void 0)?.apply(this,e)}),r(`keydown`,p,function(...e){(a(c)?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),gt(o().key))}:void 0)?.apply(this,e)}),u(t,p)};T(s,21,()=>a(Ge),e=>e.key,(e,o)=>{var s=B(),c=F(s),d=e=>{let s=C(()=>ht(a(o).key));var c=yn();let d;var f=M(c),p=M(f),m=y(p,!0),h=O(p,2),g=e=>{var t=fn(),n=y(t,!0);j(()=>{k(t,`title`,a(o).group??``),i(n,a(o).group??``)}),u(e,t)};l(h,e=>{fe().length>1&&e(g)});var v=O(h,2),b=y(v,!0),x=O(v,2),S=y(x,!0),w=O(x,2),E=y(w,!0),D=O(w,2),A=y(D),ee=O(D,2),te=y(ee,!0),N=O(ee,2),P=y(N,!0),F=O(N,2),I=e=>{var t=_n(),n=y(t,!0);j(()=>i(n,a(o).preview)),u(e,t)};l(F,e=>{a(s)||e(I)}),n(f);var L=O(f,2),ne=e=>{var r=vn();T(r,21,()=>a(o).children,e=>e.key,(e,n)=>{t(e,()=>a(n),()=>!0)}),n(r),u(e,r)};l(L,e=>{a(s)&&e(ne)}),n(c),j((e,t,n)=>{d=_(c,1,R(a(dt)),null,d,{"bg-sky-950":e}),k(c,`data-chart-selected`,t),k(c,`data-request-id`,a(o).id),k(c,`data-level`,a(o).level),k(c,`data-expanded`,a(s)?`true`:void 0),k(c,`data-lines`,a(o).count),k(f,`aria-expanded`,a(s)),k(f,`title`,a(s)?`Hide the lines of this request`:`Show every line of this request`),k(p,`title`,a(o).timestamp),i(m,a(o).time),z(v,a(mt)),k(v,`title`,a(o).streamName??``),i(b,a(o).streamName??``),i(S,a(s)?`▾`:`▸`),i(E,a(o).id),i(A,`${n??``} lines`),i(te,a(o).span),_(N,1,`shrink-0 font-medium ${a(o).levelClass??``}`),i(P,a(o).levelLabel)},[()=>a(o).children.some(e=>e.selected),()=>a(o).children.some(e=>e.selected)?`true`:void 0,()=>q(a(o).count)]),r(`click`,f,()=>gt(a(o).key)),u(e,c)},f=e=>{t(e,()=>a(o),()=>!1)};l(c,e=>{a(o).kind===`request`?e(d):e(f,-1)}),u(e,s)}),n(s)}var c=O(s,2);{let e=C(()=>a(pt)-4);Ze(c,{label:`Resize prefix column`,get width(){return a(Ae)},get min(){return Ce},get max(){return Te},testId:`prefix-resizer`,onChange:e=>b(Ae,e,!0),onCommit:()=>vt(),class:`absolute inset-y-0 w-2`,get style(){return`left: ${a(e)??``}px`}})}n(o),j(()=>_(o,1,`relative min-h-full ${a(dt)??``}`)),u(t,o)};l(Mn,e=>{S()===null||S()===``?e(Nn):a(Ge).length===0?e(Pn,1):e(Fn,-1)}),n(jn),P(jn,e=>b(Je,e),()=>a(Je)),n(xt),j((e,t)=>{i(Dt,`${e??``} shown`),i(Mt,`${t??``} received`),_(Rt,1,`rounded-full border px-2 py-0.5 text-[0.6875rem] font-medium ${a(at).mode===`historic`?`border-amber-900 bg-amber-950/40 text-amber-300`:`border-neutral-800 bg-neutral-900 text-neutral-400`}`),k(Rt,`title`,a(at).title),i(zt,a(at).label),k(Kt,`aria-pressed`,a(X)===null),_(Kt,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${a(X)===null?`border-sky-700 bg-sky-950/60 text-sky-200`:`border-neutral-800 bg-neutral-900 text-neutral-400 hover:border-neutral-700`}`),x(Jt,E()),k(Yt,`aria-pressed`,a(ke)),_(Yt,1,`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${a(ct)??``}`),k(Zt,`aria-pressed`,a(J)),_(Zt,1,`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${a(lt)??``}`),k(Sn,`aria-pressed`,me()),_(Sn,1,`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${a(ut)??``}`),k(Cn,`aria-pressed`,D()),i(wn,D()?`Resume`:`Pause`),k(En,`aria-pressed`,L()),_(En,1,`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${a(it)??``}`)},[()=>q(a(Re).length),()=>q(H())]),r(`click`,Kt,()=>Ne(null)),r(`input`,Jt,e=>o.onFilterChange?.(e.currentTarget.value)),r(`click`,Yt,yt),r(`click`,Zt,bt),r(`click`,Sn,()=>o.onGroupToggle?.()),r(`click`,Cn,()=>o.onPauseToggle?.()),r(`click`,Tn,()=>o.onClear?.()),r(`click`,En,()=>o.onAutoScrollToggle?.()),u(t,xt),ne()}p([`click`,`input`,`keydown`]);var Cn=t(`<option> </option>`),wn=t(`<div class="flex flex-col gap-1.5"><label class="text-[0.6875rem] font-semibold uppercase tracking-wider text-neutral-500"> </label> <select class="w-full rounded-md border border-neutral-800 bg-neutral-900 px-2.5 py-1.5 text-sm text-neutral-100 outline-none transition-colors hover:border-neutral-700 focus:border-sky-600 disabled:cursor-not-allowed disabled:opacity-50"></select></div>`);function Tn(e,t){v(t,!0);let o=w(t,`regions`,3,$),s=w(t,`value`,3,``),c=w(t,`disabled`,3,!1),l=w(t,`label`,3,`Region`),d=w(t,`id`,3,`region-select`),f=C(()=>s()!==``&&!o().includes(s())?[s(),...o()]:[...o()]);var p=wn(),m=M(p),h=y(m,!0),_=O(m,2);T(_,20,()=>a(f),e=>e,(e,t)=>{var n=Cn(),r=y(n,!0),a={};j(()=>{i(r,t),a!==(a=t)&&(n.value=(n.__value=a)??``)}),u(e,n)}),n(_);var b;g(_),n(p),j(()=>{k(m,`for`,d()),i(h,l()),k(_,`id`,d()),_.disabled=c(),b!==(b=s())&&(_.value=(_.__value=b)??``,L(_,b))}),r(`change`,_,e=>t.onchange?.(e.currentTarget.value)),u(e,p),ne()}p([`change`]);var En=t(`<p class="text-[0.6875rem] leading-4 text-teal-300/80" data-testid="archive-note"> </p>`),Dn=t(`<div class="flex flex-col gap-1.5"><div class="flex items-center gap-1 rounded-lg border border-neutral-800 bg-neutral-900 p-0.5" role="group" aria-label="Log source"><button type="button" title="Stream from CloudWatch Logs with your AWS credentials" data-testid="source-cloudwatch">CloudWatch</button> <button type="button" data-testid="source-archive">Local archive</button></div> <!></div>`);function On(e,t){v(t,!0);let o=w(t,`source`,3,`cloudwatch`),s=w(t,`archiveAvailable`,3,!1),c=w(t,`archivePath`,3,null),d=C(()=>kt(c()));function f(e){e!==o()&&t.onChange?.(e)}var p=B(),m=F(p),h=e=>{var t=Dn(),s=M(t),c=M(s),p=O(c,2);n(s);var m=O(s,2),h=e=>{var t=En(),n=y(t,!0);j(()=>{k(t,`title`,a(d)),i(n,Ot)}),u(e,t)};l(m,e=>{o()===`archive`&&e(h)}),n(t),j(()=>{k(c,`aria-pressed`,o()===`cloudwatch`),_(c,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${o()===`cloudwatch`?`border-sky-700 bg-sky-950/60 text-sky-300`:`border-transparent text-neutral-400 hover:text-neutral-200`}`),k(p,`aria-pressed`,o()===`archive`),k(p,`title`,a(d)),_(p,1,`rounded-md border px-2 py-1 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${o()===`archive`?`border-teal-700 bg-teal-950/60 text-teal-300`:`border-transparent text-neutral-400 hover:text-neutral-200`}`)}),r(`click`,c,()=>f(`cloudwatch`)),r(`click`,p,()=>f(`archive`)),u(e,t)};l(m,e=>{s()&&e(h)}),u(e,p),ne()}p([`click`]);function kn(e){return new EventSource(e)}function An(e,t=``){let n=new URLSearchParams;n.set(`region`,e.region);let r=(e.groups??[]).filter(e=>e.length>0);return r.length>1?n.set(`groups`,r.join(`,`)):n.set(`group`,r[0]??e.group),e.source===`archive`&&n.set(`source`,`archive`),e.filterPattern&&n.set(`filterPattern`,e.filterPattern),e.mode===`historic`?(n.set(`mode`,`historic`),e.range&&n.set(`range`,e.range),e.from!==void 0&&e.from!==``&&n.set(`from`,String(e.from)),e.to!==void 0&&e.to!==``&&n.set(`to`,String(e.to))):e.mode===`live`&&n.set(`mode`,`live`),e.startTime!==void 0&&e.startTime!==``&&n.set(`startTime`,String(e.startTime)),e.lookback&&n.set(`lookback`,e.lookback),typeof e.poll==`number`&&Number.isFinite(e.poll)&&n.set(`poll`,String(e.poll)),`${t}/api/stream?${n.toString()}`}function jn(e){try{return JSON.parse(e)}catch{return null}}var Mn=class{#e=A(`idle`);get status(){return a(this.#e)}set status(e){b(this.#e,e,!0)}#t=A(null);get lastError(){return a(this.#t)}set lastError(e){b(this.#t,e,!0)}#n=A(null);get ready(){return a(this.#n)}set ready(e){b(this.#n,e,!0)}#r=A(null);get target(){return a(this.#r)}set target(e){b(this.#r,e,!0)}#i=A([]);get lines(){return a(this.#i)}set lines(e){b(this.#i,e)}#a=A(0);get receivedCount(){return a(this.#a)}set receivedCount(e){b(this.#a,e,!0)}#o=A(0);get droppedCount(){return a(this.#o)}set droppedCount(e){b(this.#o,e,!0)}#s=A(0);get pendingCount(){return a(this.#s)}set pendingCount(e){b(this.#s,e,!0)}#c=A(!1);get paused(){return a(this.#c)}set paused(e){b(this.#c,e,!0)}#l=A(null);get lastEventAt(){return a(this.#l)}set lastEventAt(e){b(this.#l,e,!0)}#u=A(null);get endReason(){return a(this.#u)}set endReason(e){b(this.#u,e,!0)}#d;#f=null;#p=[];#m=null;#h;#g;#_;#v;#y;constructor(e={}){this.#d=new G(e.capacity??5e3),this.#h=e.createEventSource??kn,this.#g=e.reconnectDelayMs??1e3,this.#_=e.url??(e=>An(e)),this.#v=e.schedule??((e,t)=>setTimeout(e,t)),this.#y=e.cancel??(e=>clearTimeout(e))}start(e){this.#S(),this.#E(),this.clear(),this.status=`connecting`,this.lastError=null,this.ready=null,this.endReason=null,this.target={...e},this.#b(!1)}stop(){this.#E(),this.#S(),this.target=null,this.status=`idle`}pause(){this.#d.pause(),this.paused=!0}resume(){this.#d.resume(),this.paused=!1,this.#O()}togglePause(){this.paused?this.resume():this.pause()}clear(){this.#d.clear(),this.paused=!1,this.lines=[],this.receivedCount=0,this.droppedCount=0,this.pendingCount=0}get size(){return this.#d.size}#b(e){let t=this.target;if(t===null)return;this.#S(),this.status=e?`reconnecting`:`connecting`;let n;try{n=this.#h(this.#_(t))}catch(e){this.status=`error`,this.lastError={message:e instanceof Error?e.message:String(e)};return}this.#f=n,this.#x(n,`open`,()=>{this.status=`live`,this.lastError=null}),this.#x(n,`error`,e=>this.#C(e)),this.#x(n,`ready`,e=>this.#k(e)),this.#x(n,`log`,e=>this.#A(e)),this.#x(n,`ping`,e=>this.#j(e)),this.#x(n,`end`,e=>this.#M(e))}#x(e,t,n){e.addEventListener(t,n),this.#p.push({source:e,type:t,handler:n})}#S(){for(let e of this.#p)e.source.removeEventListener(e.type,e.handler);this.#p=[],this.#f?.close(),this.#f=null}#C(e){let t=typeof e.data==`string`?e.data.trim():``;if(t===``){this.#w();return}this.lastError=jn(t)??{message:t},this.status=`error`}#w(){let e=this.#f;e!==null&&(this.status=`reconnecting`,e.readyState===2&&this.#T())}#T(){this.#m===null&&(this.#m=this.#v(()=>{this.#m=null,this.target!==null&&this.#b(!0)},this.#g))}#E(){this.#m!==null&&(this.#y(this.#m),this.#m=null)}#D(){this.lastEventAt=Date.now(),this.status!==`ended`&&(this.status=`live`)}#O(){this.lines=this.#d.toArray(),this.pendingCount=this.#d.pendingCount,this.droppedCount=this.#d.droppedCount}#k(e){let t=jn(e.data);t!==null&&(this.ready=t),this.#D()}#A(e){let t=jn(e.data),n=t!==null&&Array.isArray(t.events)?t.events:[];n.length!==0&&(this.#d.push(n),this.#O(),this.receivedCount+=n.length,this.#D())}#j(e){let t=jn(e.data);this.lastEventAt=t?.at??Date.now(),this.status!==`ended`&&(this.status=`live`)}#M(e){let t=jn(e.data);this.endReason=t?.reason??null,this.status=`ended`,this.#E(),this.#S()}},Nn=t(`<!> <span data-testid="archive-source-badge" class="rounded-full border border-teal-900 bg-teal-950/60 px-2.5 py-1 text-xs font-medium text-teal-300">local archive</span>`,1),Pn=t(`<span class="text-xs text-emerald-400/80">API ok</span>`),Fn=t(`<p role="alert" data-testid="boot-error" class="rounded-md border border-red-900 bg-red-950/50 px-3 py-2 text-xs leading-5 text-red-300"> </p>`),In=t(`<div class="flex flex-wrap items-center gap-2 text-[0.6875rem] text-neutral-500"><span data-testid="brush-window"> </span> <button type="button" data-testid="brush-clear" class="rounded-md border border-neutral-800 bg-neutral-900 px-2 py-0.5 font-medium text-neutral-300 transition-colors hover:border-neutral-700 hover:text-neutral-100">Reset zoom</button></div>`),Ln=t(`<div class="flex flex-wrap items-center gap-x-3 gap-y-2"><span class="text-[0.6875rem] font-semibold uppercase tracking-wider text-neutral-500">Watching</span> <span class="max-w-[22rem] truncate rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 font-mono text-xs text-neutral-200"> </span> <span class="text-xs text-neutral-500">in</span> <span class="font-mono text-xs text-neutral-300"> </span> <!> <!></div> <!> <!> <div class="flex min-h-0 min-w-0 flex-1 flex-col gap-3 lg:flex-row"><div class="flex min-h-0 w-full flex-col gap-3 rounded-lg border border-neutral-800 bg-neutral-950/60 p-3 lg:shrink-0" data-testid="sidebar"><!> <!> <!></div> <!> <div class="flex min-h-0 min-w-0 flex-1 flex-col"><!> <!> <!></div></div>`,1);function Rn(e,t){v(t,!0);let o=new Mn,s=A(I(H.url.searchParams.get(`region`)??``)),c=A(I(H.url.searchParams.get(`source`)===`archive`?`archive`:`cloudwatch`)),d=A(I(H.url.searchParams.get(`mode`)===`historic`?`historic`:`live`)),f=A(I(H.url.searchParams.get(`range`)??`15m`)),p=A(I(Te(H.url.searchParams.get(`from`)))),m=A(I(Te(H.url.searchParams.get(`to`)))),h=A(!1),g=A(I([...$])),_=A(I([])),x=A(!1),S=A(null),w=A(null),T=A(null),E=A(null),D=A(null),te=A(``),L=A(!0),R=A(I(Be(H.url.searchParams))),B=C(()=>a(R)[0]??null),re=A(null),U=A(!0),W=A(null),ae=A(6e4),G=A(I([])),oe=A(!1),se=A(`count`),ce=0,le=A(null),ue=C(()=>a(E)?.available===!0),de=C(()=>a(E)?.path??null),fe=C(()=>kt(a(de))),K=A(0),he=A(I(Z(X.defaultRem))),ge=C(()=>a(K)===0?Z(X.defaultRem):Math.max(Z(X.minRem),a(K)*X.maxVw/100)),_e=Z(X.minRem),ve=C(()=>`width: min(${a(he)}px, ${X.maxVw}vw)`);function ye(e){try{return typeof localStorage>`u`?null:localStorage.getItem(e)}catch{return null}}function be(){try{if(typeof localStorage>`u`)return;localStorage.setItem(Y.sidebarWidth,String(Math.round(a(he))))}catch{}}ee(()=>{b(U,ye(Y.groupRequests)!==`false`),xe();let e=()=>{b(K,window.innerWidth,!0)};return e(),b(he,Ne(Pe(ye(Y.sidebarWidth),Z(X.defaultRem),Z(X.minRem),window.innerWidth*X.maxVw/100),Z(X.minRem),Math.max(Z(X.minRem),window.innerWidth*X.maxVw/100)),!0),window.addEventListener(`resize`,e),()=>{o.stop(),window.removeEventListener(`resize`,e)}});async function xe(){let e=Be(H.url.searchParams);await Ce(),await Se(),a(c)===`archive`&&!a(ue)&&(b(c,`cloudwatch`),b(T,a(w)?.endpoint??null,!0)),a(c)===`archive`&&b(d,`historic`),await we(a(s)),e.length>0?(b(h,a(d)===`historic`),b(R,e,!0),De(),Q(a(s),a(R))):Q(a(s),a(R))}async function Se(){let e=a(s);try{let t=await Et({region:e});a(s)===e&&b(E,t,!0)}catch{a(s)===e&&b(E,null)}}async function Ce(){try{let[e,t]=await Promise.all([Ct(),wt()]);e.regions.length>0&&b(g,e.regions,!0),a(s)===``&&b(s,e.defaultRegion||a(g)[0]||$[0],!0),b(w,t,!0),b(T,t.endpoint,!0)}catch(e){b(D,`Could not reach the watch-tail API. ${We(e)}`),a(s)===``&&b(s,$[0],!0)}}async function we(e){b(x,!0),b(S,null);let t=a(c),n=t===`archive`?{region:e,source:t}:{region:e};try{let r=await Tt(n);if(e!==a(s)||t!==a(c))return;r.endpoint!==null&&b(T,r.endpoint,!0),b(_,r.groups,!0)}catch(n){if(e!==a(s)||t!==a(c))return;b(_,[],!0),b(S,Mt(e,n),!0)}finally{e===a(s)&&t===a(c)&&b(x,!1)}}function Te(e){if(e===null||e.trim()===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function q(){return a(d)===`live`&&a(c)!==`archive`?{mode:`live`}:a(f)===``&&a(p)!==null&&a(m)!==null?{mode:`historic`,from:a(p),to:a(m)}:{mode:`historic`,range:a(f)===``?`15m`:a(f)}}function Ee(){let e=q(),[t,...n]=a(R),r={region:a(s),group:t??``,groups:[...a(R)],...e};return a(c)===`archive`&&(r.source=`archive`),r}function De(){if(b(W,null),a(s)===``||a(R).length===0){o.stop();return}b(h,a(d)===`historic`),o.start(Ee()),Ue()}function Oe(e){a(s)!==``&&e!==``&&(b(R,[e],!0),Q(a(s),a(R)),De())}function ke(e){if(a(s)!==``&&e!==``){if(b(R,a(R).includes(e)?a(R).filter(t=>t!==e):[...a(R),e],!0),Q(a(s),a(R)),a(R).length===0){o.stop(),b(G,[],!0);return}De()}}function J(e){(a(c)!==`archive`||e.mode!==`live`)&&(b(d,e.mode,!0),b(f,e.range,!0),b(p,e.from,!0),b(m,e.to,!0),Q(a(s),a(R)),a(R).length!==0&&(b(h,e.mode===`historic`),o.start(Ee()),Ue()))}function Ae(e){if(e===null)return;let t=He();if(!ie(e,t,Ve(t.from,t.to))){a(le)?.reset();return}J({mode:`historic`,range:``,from:e.from,to:e.to})}function Me(){b(U,!a(U));try{localStorage?.setItem(Y.groupRequests,a(U)?`true`:`false`)}catch{}}function Fe(){a(le)?.reset(),J({mode:`historic`,range:a(f)===``?`15m`:a(f),from:null,to:null})}function Ie(e){e!==a(c)&&(e!==`archive`||a(ue))&&(b(c,e,!0),e===`archive`&&a(d)!==`historic`&&(b(d,`historic`),a(f)===``&&(b(f,`15m`),b(p,null),b(m,null))),a(R).length>0&&(b(h,a(d)===`historic`),o.start(Ee())),b(_,[],!0),Q(a(s),a(R)),we(a(s)),Ue())}async function Le(){await Se(),!(a(c)!==`archive`||a(ue))&&(b(c,`cloudwatch`),a(R).length>0&&o.start(Ee()),b(_,[],!0),Q(a(s),a(R)),we(a(s)),Ue())}function Re(e){e!==``&&e!==a(s)&&(b(s,e,!0),o.stop(),b(_,[],!0),b(R,[],!0),b(G,[],!0),Q(e,[]),Se(),we(e))}function ze(){we(a(s))}function Q(e,t){let n=new URL(H.url);e===``?n.searchParams.delete(`region`):n.searchParams.set(`region`,e),a(c)===`archive`?n.searchParams.set(`source`,`archive`):n.searchParams.delete(`source`),n.searchParams.delete(`group`),n.searchParams.delete(`groups`);let r=t.filter(e=>e.length>0);r.length===1?n.searchParams.set(`group`,r[0]):r.length>1&&n.searchParams.set(`groups`,r.join(`,`)),a(d)===`live`?(n.searchParams.delete(`mode`),n.searchParams.delete(`range`),n.searchParams.delete(`from`),n.searchParams.delete(`to`)):(n.searchParams.set(`mode`,`historic`),n.searchParams.delete(`from`),n.searchParams.delete(`to`),n.searchParams.delete(`range`),a(f)===``&&a(p)!==null&&a(m)!==null?(n.searchParams.set(`from`,String(a(p))),n.searchParams.set(`to`,String(a(m)))):n.searchParams.set(`range`,a(f)===``?`15m`:a(f))),n.href!==H.url.href&&V(n,{})}N(()=>{(o.ready!==null||o.status===`error`)&&b(h,!1)}),N(()=>{[a(c),a(s),a(R).join(`,`),a(d),a(f),a(p)??``,a(m)??``,a(re)??``,a(U)?`request`:`event`,a(se),o.receivedCount,o.ready?.startTime??``,o.ready?.endTime??``].join(`|`).length!==0&&Ue()}),N(()=>{o.lastError?.code===`archive-unavailable`&&Le()});function Be(e){let t=(e.get(`groups`)??``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0);if(t.length>0)return[...new Set(t)];let n=e.get(`group`)?.trim()??``;return n.length>0?[n]:[]}N(()=>{a(c),a(s),a(R).join(`\0`),a(d),a(f),a(p),a(m),a(U),b(W,null)});function Ve(e,t){let n=Math.max(1,t-e);return[1e3,5e3,1e4,3e4,6e4,3e5,9e5,18e5].find(e=>n/e<=90)??36e5}function He(){if(a(d)===`historic`){let e=a(m)??o.ready?.endTime??Date.now(),t=a(p)??o.ready?.startTime??e-9e5;return{from:Math.min(t,e-1e3),to:e}}let e=Date.now();return{from:e-9e5,to:e}}async function Ue(){let e=++ce;if(b(oe,!1),a(R).length===0||a(s)===``){b(G,[],!0);return}let{from:t,to:n}=He();if(b(ae,Ve(t,n),!0),a(c)!==`archive`){b(G,(a(se)===`duration`?pe:me)(o.lines,{from:t,to:n,bucketMs:Ve(t,n),level:a(re),fallbackGroup:a(B)??``,byRequest:a(U)}),!0);return}b(oe,!0),b(G,[],!0);try{let r=await bt({region:a(s),groups:a(R),from:t,to:n,levels:a(re)===null?[]:[a(re)],by:a(U)?`request`:`event`,metric:a(se)});e===ce&&(b(G,r.points,!0),b(ae,r.bucketMs,!0))}catch{e===ce&&b(G,[],!0)}finally{e===ce&&b(oe,!1)}}function We(e){return e instanceof Error&&e.message!==``?e.message:String(e)}var Ge=Ln(),Ke=F(Ge),qe=O(M(Ke),2),Je=y(qe,!0),Xe=O(qe,4),Qe=y(Xe,!0),$e=O(Xe,2),et=e=>{var t=Nn(),n=F(t);je(n,{endpoint:null,credentials:null});var r=O(n,2);j(()=>k(r,`title`,a(fe))),u(e,t)},tt=e=>{{let t=C(()=>a(w)?.credentials??null);je(e,{get endpoint(){return a(T)},get credentials(){return a(t)}})}};l($e,e=>{a(c)===`archive`?e(et):e(tt,-1)});var nt=O($e,2),rt=e=>{var t=Pn();u(e,t)};l(nt,e=>{a(w)!==null&&a(w).ok&&e(rt)}),n(Ke);var it=O(Ke,2),at=e=>{var t=Fn(),n=y(t,!0);j(()=>i(n,a(D))),u(e,t)};l(it,e=>{a(D)!==null&&e(at)});var ot=O(it,2);{let e=C(()=>a(B)===null),t=C(()=>a(c)===`archive`);mt(ot,{get mode(){return a(d)},get range(){return a(f)},get from(){return a(p)},get to(){return a(m)},get loading(){return a(h)},get disabled(){return a(e)},get liveDisabled(){return a(t)},onApply:J})}var st=O(ot,2),ct=M(st),lt=M(ct);On(lt,{get source(){return a(c)},get archiveAvailable(){return a(ue)},get archivePath(){return a(de)},onChange:Ie});var ut=O(lt,2);Tn(ut,{get regions(){return a(g)},get value(){return a(s)},onchange:Re}),Yt(O(ut,2),{get groups(){return a(_)},get source(){return a(c)},get region(){return a(s)},get selected(){return a(R)},get loading(){return a(x)},get error(){return a(S)},onSelect:Oe,onToggle:ke,onRefresh:ze}),n(ct);var dt=O(ct,2);Ze(dt,{label:`Resize group list`,get width(){return a(he)},get min(){return _e},get max(){return a(ge)},testId:`sidebar-resizer`,onChange:e=>b(he,e,!0),onCommit:()=>be(),class:`hidden lg:block lg:w-2`});var ft=O(dt,2),pt=M(ft);{let e=C(()=>He().from),t=C(()=>He().to);P(Ye(pt,{get points(){return a(G)},get from(){return a(e)},get to(){return a(t)},get bucketMs(){return a(ae)},get groups(){return a(R)},get byRequest(){return a(U)},get metric(){return a(se)},onMetricChange:e=>{b(W,null),b(se,e,!0)},onSelect:e=>{b(L,!1),b(W,{point:e,bucketMs:a(ae),byRequest:a(U),fallbackGroup:a(B)??``},!0)},get loading(){return a(oe)},onBrush:Ae}),e=>b(le,e,!0),()=>a(le))}var ht=O(pt,2),gt=e=>{var t=In(),o=M(t),s=y(o),c=O(o,2);n(t),j((e,t)=>i(s,`zoomed to ${e??``} – ${t??``}`),[()=>new Date(a(p)).toLocaleTimeString(),()=>new Date(a(m)).toLocaleTimeString()]),r(`click`,c,Fe),u(e,t)};l(ht,e=>{a(p)!==null&&a(m)!==null&&a(d)===`historic`&&e(gt)}),Sn(O(ht,2),{get selection(){return a(W)},onSelectionClear:()=>b(W,null),get lines(){return o.lines},get status(){return o.status},get error(){return o.lastError},get mode(){return a(d)},get ready(){return o.ready},get endReason(){return o.endReason},get archivePath(){return a(de)},get region(){return a(s)},get group(){return a(B)},get groups(){return a(R)},get level(){return a(re)},onLevelChange:e=>b(re,e,!0),get groupRequests(){return a(U)},onGroupToggle:Me,get filter(){return a(te)},get paused(){return o.paused},get autoScroll(){return a(L)},get pendingCount(){return o.pendingCount},get droppedCount(){return o.droppedCount},get receivedCount(){return o.receivedCount},onFilterChange:e=>b(te,e,!0),onPauseToggle:()=>o.togglePause(),onClear:()=>{b(W,null),o.clear()},onAutoScrollToggle:()=>{b(W,null),b(L,!a(L))}}),n(ft),n(st),j(()=>{i(Je,a(B)??`no group selected`),i(Qe,a(s)===``?`resolving region…`:a(s)),z(ct,a(ve))}),u(e,Ge),ne()}p([`click`]);export{Rn as component};
@@ -1 +1 @@
1
- {"version":"1789685798576"}
1
+ {"version":"1789803236220"}
Binary file
Binary file
package/build/handler.js CHANGED
@@ -2,9 +2,9 @@ import './shims.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import 'node:process';
5
- export { h as handler } from './server/chunks/handler-hlKcUyVP.js';
6
- import './server/chunks/index.js-BfPWKsz6.js';
7
- import './server/chunks/manifest.js-uuijI5lm.js';
5
+ export { h as handler } from './server/chunks/handler-BkYErjbr.js';
6
+ import './server/chunks/index.js-5mkIDcpy.js';
7
+ import './server/chunks/manifest.js-BGoS-vRx.js';
8
8
  import './env.js';
9
9
  import 'node:buffer';
10
10
  import 'node:crypto';
@@ -21,6 +21,6 @@ import './server/chunks/chunks/server.js-CAEBuMIH.js';
21
21
  import './server/chunks/chunks/internal.js-DZ8ZzzjN.js';
22
22
  import './server/chunks/chunks/shared-server.js-Dn5XheXH.js';
23
23
  import './server/chunks/chunks/exports.js-ClPPfcHj.js';
24
- import './server/chunks/chunks/internal2.js-627EG4am.js';
24
+ import './server/chunks/chunks/internal2.js-BMcEVxqN.js';
25
25
  import './server/chunks/chunks/legacy-client.js-DJmDw3Zx.js';
26
26
  //# sourceMappingURL=handler.js.map
package/build/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import fs__default from 'node:fs';
3
3
  import process from 'node:process';
4
- import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-hlKcUyVP.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-BkYErjbr.js';
5
5
  import { env, timeout_env } from './env.js';
6
6
  import { rm } from 'node:fs/promises';
7
7
  import './shims.js';
@@ -14,15 +14,15 @@ import 'node:stream';
14
14
  import './server/chunks/chunks/shared.js-CgjUIvRK.js';
15
15
  import './server/chunks/chunks/uneval.js-DaakSYFQ.js';
16
16
  import './server/chunks/chunks/utils.js-BIlHjgGW.js';
17
- import './server/chunks/index.js-BfPWKsz6.js';
17
+ import './server/chunks/index.js-5mkIDcpy.js';
18
18
  import './server/chunks/chunks/index-server.js-DNLOKvM0.js';
19
19
  import './server/chunks/chunks/server.js-CAEBuMIH.js';
20
20
  import './server/chunks/chunks/internal.js-DZ8ZzzjN.js';
21
21
  import './server/chunks/chunks/shared-server.js-Dn5XheXH.js';
22
22
  import './server/chunks/chunks/exports.js-ClPPfcHj.js';
23
- import './server/chunks/chunks/internal2.js-627EG4am.js';
23
+ import './server/chunks/chunks/internal2.js-BMcEVxqN.js';
24
24
  import './server/chunks/chunks/legacy-client.js-DJmDw3Zx.js';
25
- import './server/chunks/manifest.js-uuijI5lm.js';
25
+ import './server/chunks/manifest.js-BGoS-vRx.js';
26
26
  import 'node:url';
27
27
 
28
28
  const path = env('SOCKET_PATH', false);
@@ -1,5 +1,5 @@
1
- import { am as bind_props, ai as attr_style, al as stringify, ac as derived, at as spread_props, ak as ensure_array_like, r as run, au as snapshot, ar as attributes, an as clsx, av as await_block, aw as fallback, ax as exclude_from_object, ah as escape_html, aj as attr_class, ag as attr, as as props_id } from './server.js-CAEBuMIH.js';
2
- import { S as SERIES_LEVEL_COLOR } from './series-buckets.js-BjigySff.js';
1
+ import { am as bind_props, ai as attr_style, al as stringify, ac as derived, at as spread_props, ak as ensure_array_like, ag as attr, r as run, au as snapshot, ar as attributes, an as clsx, av as await_block, aw as fallback, ax as exclude_from_object, ah as escape_html, aj as attr_class, as as props_id } from './server.js-CAEBuMIH.js';
2
+ import { S as SERIES_LEVEL_COLOR } from './series-buckets.js-DFGWkob5.js';
3
3
  import { c as chartDataArray, D as setChartContext, C as Context, e as accessor, E as defaultChartPadding, F as unique, a as getChartContext, G as useDebounce, H as getObjectOrNull, I as watch, J as useMutationObserver, b as cls, M as MediaQuery, S as SvelteSet, B as isEqualValue, z as sortFunc, K as isLiteralObject, P as PeriodType, A as format, L as Duration, x as timeYear, N as DateToken, u as timeDay, O as findRelatedData, Q as utcYear, R as utcDay, T as utcHour, q as timeHour, U as utcMinute, t as timeMinute, s as second, p as millisecond } from './common.js-BWQB8Die.js';
4
4
  import { t as setGeoContext, u as getFacetPanel, v as colorPropDataKey, g as getLayerContext, w as setLayerContext, b as getGeoContext, x as setFacetPanel, a as getMarkData } from './key.svelte.js-CWIvXc6L.js';
5
5
  import { d as transformer, a as copy, i as initRange, e as linearish, f as identity$1, r as rgb } from './linear.js-CTOKrHn9.js';
@@ -26,7 +26,7 @@ import { P as Points } from './Points2.js-BMGdkzTE.js';
26
26
  import { L as Line_svg, a as Line_canvas, b as Line_html } from './Line.html.js-BM5tR11G.js';
27
27
  import { T as Tooltip, p as panelDatum, i as isSinglePointMode, f as findDatumByValue, d as dataCoords, a as TooltipHeader, b as TooltipList, c as TooltipItem } from './TooltipItem.js-T0cKLjLu.js';
28
28
  import './uneval.js-DaakSYFQ.js';
29
- import './log-buffer.js-BI_gQOls.js';
29
+ import './log-buffer.js-A9FA-Qv8.js';
30
30
  import './rect.svelte.js-zeS7FWjB.js';
31
31
  import './Points.html.js-CLbHD6OP.js';
32
32
 
@@ -7092,7 +7092,7 @@ function EventScatter($$renderer, $$props) {
7092
7092
  /** Chart height in px. */
7093
7093
  /** Called with the brushed range when the drag ends, or `null` on clear. */
7094
7094
  /** Called while dragging, for a preview that does not re-scope anything. */
7095
- let { points = [], from = 0, to = 0, height = 200, onBrush, onBrushPreview } = $$props;
7095
+ let { metric = "count", points = [], from = 0, to = 0, height = 200, onBrush, onBrushPreview, onSelect } = $$props;
7096
7096
  /**
7097
7097
  * layerchart's series shape: a key, a label, a colour and the rows of that
7098
7098
  * series. One series per level is what makes a spike readable as errors or as
@@ -7112,6 +7112,8 @@ function EventScatter($$renderer, $$props) {
7112
7112
  data: rows
7113
7113
  }));
7114
7114
  });
7115
+ /** Keep the slowest request clear of the chart edge, including all-zero spans. */
7116
+ let durationCeiling = derived(() => Math.max(1, points.reduce((max, point) => Math.max(max, point.durationMs ?? 0), 0) * 1.1));
7115
7117
  /** layerchart's chart context, which owns the brush state. */
7116
7118
  let chartContext = void 0;
7117
7119
  /** Reads a brushed domain pair into epoch milliseconds. */
@@ -7155,8 +7157,33 @@ function EventScatter($$renderer, $$props) {
7155
7157
  let $$settled = true;
7156
7158
  let $$inner_renderer;
7157
7159
  function $$render_inner($$renderer) {
7158
- $$renderer.push(`<div class="w-full"${attr_style(`height: ${stringify(height)}px`)} data-testid="scatter-chart">`);
7160
+ $$renderer.push(`<div class="w-full svelte-1lpolse"${attr_style(`height: ${stringify(height)}px`)} data-testid="scatter-chart">`);
7159
7161
  {
7162
+ function marks($$renderer, { context }) {
7163
+ $$renderer.push(`<!--[-->`);
7164
+ const each_array = ensure_array_like(context.series.visibleSeries);
7165
+ for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
7166
+ let series = each_array[$$index_1];
7167
+ {
7168
+ function children($$renderer, { points }) {
7169
+ $$renderer.push(`<!--[-->`);
7170
+ const each_array_1 = ensure_array_like(points);
7171
+ for (let $$index = 0, $$length = each_array_1.length; $$index < $$length; $$index++) {
7172
+ let point = each_array_1[$$index];
7173
+ $$renderer.push(`<circle${attr("cx", point.x)}${attr("cy", point.y)}${attr("r", point.r)}${attr("fill", series.color)} stroke="#0a0a0a" stroke-width="1" class="cursor-pointer focus:stroke-white focus:stroke-2" role="button" tabindex="0" data-testid="scatter-point"${attr("aria-label", `Show ${point.data.requestId ?? `${point.data.events} ${point.data.level} events`} in ${point.data.group} at ${clockLabel(point.data.t)}`)}></circle>`);
7174
+ }
7175
+ $$renderer.push(`<!--]-->`);
7176
+ }
7177
+ Points($$renderer, {
7178
+ seriesKey: series.key,
7179
+ r: 5,
7180
+ children,
7181
+ $$slots: { default: true }
7182
+ });
7183
+ }
7184
+ }
7185
+ $$renderer.push(`<!--]-->`);
7186
+ }
7160
7187
  function tooltip($$renderer) {
7161
7188
  {
7162
7189
  function children($$renderer, { data }) {
@@ -7201,18 +7228,48 @@ function EventScatter($$renderer, $$props) {
7201
7228
  $$renderer.push("<!--]-->");
7202
7229
  }
7203
7230
  $$renderer.push(` `);
7204
- if (TooltipItem) {
7205
- $$renderer.push("<!--[-->");
7206
- TooltipItem($$renderer, {
7207
- label: "events",
7208
- value: data.events,
7209
- format: "integer"
7210
- });
7211
- $$renderer.push("<!--]-->");
7231
+ if (metric === "duration") {
7232
+ $$renderer.push("<!--[0-->");
7233
+ if (TooltipItem) {
7234
+ $$renderer.push("<!--[-->");
7235
+ TooltipItem($$renderer, {
7236
+ label: "request",
7237
+ value: data.requestId ?? ""
7238
+ });
7239
+ $$renderer.push("<!--]-->");
7240
+ } else {
7241
+ $$renderer.push("<!--[!-->");
7242
+ $$renderer.push("<!--]-->");
7243
+ }
7244
+ $$renderer.push(` `);
7245
+ if (TooltipItem) {
7246
+ $$renderer.push("<!--[-->");
7247
+ TooltipItem($$renderer, {
7248
+ label: "duration (ms)",
7249
+ value: data.durationMs ?? 0,
7250
+ format: (value) => value.toLocaleString(void 0, { maximumFractionDigits: 3 })
7251
+ });
7252
+ $$renderer.push("<!--]-->");
7253
+ } else {
7254
+ $$renderer.push("<!--[!-->");
7255
+ $$renderer.push("<!--]-->");
7256
+ }
7212
7257
  } else {
7213
- $$renderer.push("<!--[!-->");
7214
- $$renderer.push("<!--]-->");
7258
+ $$renderer.push("<!--[-1-->");
7259
+ if (TooltipItem) {
7260
+ $$renderer.push("<!--[-->");
7261
+ TooltipItem($$renderer, {
7262
+ label: "events",
7263
+ value: data.events,
7264
+ format: "integer"
7265
+ });
7266
+ $$renderer.push("<!--]-->");
7267
+ } else {
7268
+ $$renderer.push("<!--[!-->");
7269
+ $$renderer.push("<!--]-->");
7270
+ }
7215
7271
  }
7272
+ $$renderer.push(`<!--]-->`);
7216
7273
  },
7217
7274
  $$slots: { default: true }
7218
7275
  });
@@ -7242,14 +7299,15 @@ function EventScatter($$renderer, $$props) {
7242
7299
  ScatterChart($$renderer, {
7243
7300
  data: points,
7244
7301
  x: (point) => new Date(point.t),
7245
- y: "events",
7302
+ y: metric === "duration" ? "durationMs" : "events",
7303
+ yDomain: metric === "duration" ? [0, durationCeiling()] : void 0,
7246
7304
  series: series(),
7247
7305
  xDomain: [new Date(from), new Date(to)],
7248
7306
  padding: {
7249
7307
  top: 8,
7250
7308
  right: 12,
7251
7309
  bottom: 24,
7252
- left: 40
7310
+ left: metric === "duration" ? 72 : 40
7253
7311
  },
7254
7312
  grid: {
7255
7313
  x: true,
@@ -7268,7 +7326,7 @@ function EventScatter($$renderer, $$props) {
7268
7326
  tickOcclusion: true
7269
7327
  },
7270
7328
  yAxis: {
7271
- format: "integer",
7329
+ format: metric === "duration" ? (value) => `${value.toLocaleString()} ms` : "integer",
7272
7330
  tickSpacing: 24,
7273
7331
  ticks: 4
7274
7332
  }
@@ -7288,8 +7346,12 @@ function EventScatter($$renderer, $$props) {
7288
7346
  chartContext = $$value;
7289
7347
  $$settled = false;
7290
7348
  },
7349
+ marks,
7291
7350
  tooltip,
7292
- $$slots: { tooltip: true }
7351
+ $$slots: {
7352
+ marks: true,
7353
+ tooltip: true
7354
+ }
7293
7355
  });
7294
7356
  }
7295
7357
  $$renderer.push(`<!----></div>`);
@@ -7305,4 +7367,4 @@ function EventScatter($$renderer, $$props) {
7305
7367
  }
7306
7368
 
7307
7369
  export { EventScatter as default };
7308
- //# sourceMappingURL=EventScatter.js-D3Jaw_Cw.js.map
7370
+ //# sourceMappingURL=EventScatter.js-CG0RcOU6.js.map