watch-tail 0.7.1 → 0.9.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.
- package/README.md +22 -13
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css +2 -0
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css.br +0 -0
- package/build/client/_app/immutable/assets/0.ChTKqSf6.css.gz +0 -0
- package/build/client/_app/immutable/assets/{EventScatter.DA5sZ1c0.css → EventScatter.0BkgJO-l.css} +1 -1
- package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.br +0 -0
- package/build/client/_app/immutable/assets/EventScatter.0BkgJO-l.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{DI6o1zMC.js → 0b2v80OK.js} +1 -1
- package/build/client/_app/immutable/chunks/0b2v80OK.js.br +0 -0
- package/build/client/_app/immutable/chunks/0b2v80OK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B78Vj1az.js → 5EFAIHuJ.js} +1 -1
- package/build/client/_app/immutable/chunks/5EFAIHuJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/5EFAIHuJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CY8zQ4KM.js → B15XBe8D.js} +1 -1
- package/build/client/_app/immutable/chunks/B15XBe8D.js.br +0 -0
- package/build/client/_app/immutable/chunks/B15XBe8D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D0CZlpgd.js → B5RiPG8Z.js} +1 -1
- package/build/client/_app/immutable/chunks/B5RiPG8Z.js.br +2 -0
- package/build/client/_app/immutable/chunks/B5RiPG8Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BnRQs9nz.js → B_KVdCQT.js} +5 -5
- package/build/client/_app/immutable/chunks/B_KVdCQT.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_KVdCQT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BPoZrXrH.js → BuCpRsEL.js} +1 -1
- package/build/client/_app/immutable/chunks/BuCpRsEL.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuCpRsEL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DtdjxckD.js → BvZtsVvW.js} +1 -1
- package/build/client/_app/immutable/chunks/BvZtsVvW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BvZtsVvW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CrmB4MvE.js → C3Y15ONf.js} +1 -1
- package/build/client/_app/immutable/chunks/C3Y15ONf.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3Y15ONf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{g-7YfdwH.js → C9GPQYs7.js} +1 -1
- package/build/client/_app/immutable/chunks/C9GPQYs7.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9GPQYs7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{YehCS1lO.js → CBZpkDc1.js} +1 -1
- package/build/client/_app/immutable/chunks/CBZpkDc1.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBZpkDc1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D-AkVRH7.js → C_U_Jvk5.js} +1 -1
- package/build/client/_app/immutable/chunks/C_U_Jvk5.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_U_Jvk5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CZ3S843d.js → Cd7JqZj9.js} +1 -1
- package/build/client/_app/immutable/chunks/Cd7JqZj9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cd7JqZj9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dp3OTI-g.js → D2PbcyDU.js} +1 -1
- package/build/client/_app/immutable/chunks/D2PbcyDU.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2PbcyDU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DbWb9_dK.js → D7vimbmk.js} +1 -1
- package/build/client/_app/immutable/chunks/D7vimbmk.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7vimbmk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{1mB5Ee1Q.js → DAqXSYzi.js} +1 -1
- package/build/client/_app/immutable/chunks/DAqXSYzi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAqXSYzi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CEw1go7g.js → DGYKsRyW.js} +1 -1
- package/build/client/_app/immutable/chunks/DGYKsRyW.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGYKsRyW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPaulGql.js +1 -0
- package/build/client/_app/immutable/chunks/DPaulGql.js.br +1 -0
- package/build/client/_app/immutable/chunks/DPaulGql.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CFJEGo4j.js → DQqLOGLe.js} +1 -1
- package/build/client/_app/immutable/chunks/DQqLOGLe.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQqLOGLe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CgAZPeK7.js → DS3cLPAu.js} +1 -1
- package/build/client/_app/immutable/chunks/DS3cLPAu.js.br +0 -0
- package/build/client/_app/immutable/chunks/DS3cLPAu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D0IZin0e.js → Dkh4Dwm8.js} +1 -1
- package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dkh4Dwm8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CtWwlW0t.js → DnqfXHAL.js} +1 -1
- package/build/client/_app/immutable/chunks/DnqfXHAL.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnqfXHAL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DsYron7_.js +1 -0
- package/build/client/_app/immutable/chunks/DsYron7_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsYron7_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BdW_yBQU.js → DuM1cPdZ.js} +1 -1
- package/build/client/_app/immutable/chunks/DuM1cPdZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuM1cPdZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B7aS9tS2.js → DvxMaQv_.js} +1 -1
- package/build/client/_app/immutable/chunks/DvxMaQv_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvxMaQv_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BF84Orj8.js → DwOZdLDj.js} +1 -1
- package/build/client/_app/immutable/chunks/DwOZdLDj.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwOZdLDj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{3fFVdy92.js → IlwbfbOu.js} +1 -1
- package/build/client/_app/immutable/chunks/IlwbfbOu.js.br +0 -0
- package/build/client/_app/immutable/chunks/IlwbfbOu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dh3ZWuG8.js → aI_O2VuQ.js} +1 -1
- package/build/client/_app/immutable/chunks/aI_O2VuQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/aI_O2VuQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C6r7NvtG.js → b77-bq1n.js} +1 -1
- package/build/client/_app/immutable/chunks/b77-bq1n.js.br +0 -0
- package/build/client/_app/immutable/chunks/b77-bq1n.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{8mpn3Xst.js → dqF8mxBW.js} +1 -1
- package/build/client/_app/immutable/chunks/dqF8mxBW.js.br +0 -0
- package/build/client/_app/immutable/chunks/dqF8mxBW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BSy__Jrd.js → gkAHSOnS.js} +1 -1
- package/build/client/_app/immutable/chunks/gkAHSOnS.js.br +0 -0
- package/build/client/_app/immutable/chunks/gkAHSOnS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{zfc2KyIr.js → ti8ecMFX.js} +1 -1
- package/build/client/_app/immutable/chunks/ti8ecMFX.js.br +0 -0
- package/build/client/_app/immutable/chunks/ti8ecMFX.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.C-KKyvGI.js → app.CTR4aUFT.js} +2 -2
- package/build/client/_app/immutable/entry/app.CTR4aUFT.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CTR4aUFT.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js +1 -0
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CC6Ln8E2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js +1 -0
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CvUxmLsM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.D5nbnmDb.js → 1.CbSHqfEx.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CbSHqfEx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js +5 -0
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DcD5v8dU.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/{Arc.canvas.js-D6g58nSp.js → Arc.canvas.js-CN0KDoHG.js} +8 -8
- package/build/server/chunks/chunks/Arc.canvas.js-CN0KDoHG.js.map +1 -0
- package/build/server/chunks/chunks/{Arc.js-D78Cf_4M.js → Arc.js-C8EC9NoE.js} +10 -10
- package/build/server/chunks/chunks/Arc.js-C8EC9NoE.js.map +1 -0
- package/build/server/chunks/chunks/{Bar.js-Cv73T8_D.js → Bar.js-DtAb3LZZ.js} +14 -14
- package/build/server/chunks/chunks/Bar.js-DtAb3LZZ.js.map +1 -0
- package/build/server/chunks/chunks/{ChartAnnotations.js-Ci22VB_6.js → ChartAnnotations.js-twzDSVzY.js} +18 -18
- package/build/server/chunks/chunks/ChartAnnotations.js-twzDSVzY.js.map +1 -0
- package/build/server/chunks/chunks/{Circle.html.js-BjwyNRG3.js → Circle.html.js-BJywADGK.js} +5 -5
- package/build/server/chunks/chunks/Circle.html.js-BJywADGK.js.map +1 -0
- package/build/server/chunks/chunks/{ClipPath.canvas.js-CFTBDWVU.js → ClipPath.canvas.js-9Fc0bTEM.js} +4 -4
- package/build/server/chunks/chunks/ClipPath.canvas.js-9Fc0bTEM.js.map +1 -0
- package/build/server/chunks/chunks/{DefaultTooltip.js-0r5rbE-1.js → DefaultTooltip.js-C2NWK2AD.js} +8 -8
- package/build/server/chunks/chunks/DefaultTooltip.js-C2NWK2AD.js.map +1 -0
- package/build/server/chunks/chunks/{EventScatter.js-Du7AJN9m.js → EventScatter.js-CO2GonW-.js} +67 -38
- package/build/server/chunks/chunks/EventScatter.js-CO2GonW-.js.map +1 -0
- package/build/server/chunks/chunks/{Labels.js-DpagpV6d.js → Labels.js-DB9qoyZ3.js} +18 -18
- package/build/server/chunks/chunks/Labels.js-DB9qoyZ3.js.map +1 -0
- package/build/server/chunks/chunks/{Legend.js-BOpwpe5s.js → Legend.js-B_ArjxQ7.js} +6 -6
- package/build/server/chunks/chunks/Legend.js-B_ArjxQ7.js.map +1 -0
- package/build/server/chunks/chunks/{Line.html.js-BM5tR11G.js → Line.html.js-B1REcOFe.js} +6 -6
- package/build/server/chunks/chunks/Line.html.js-B1REcOFe.js.map +1 -0
- package/build/server/chunks/chunks/{Link.canvas.js-P8ySzEAw.js → Link.canvas.js-nWimAHfH.js} +9 -9
- package/build/server/chunks/chunks/Link.canvas.js-nWimAHfH.js.map +1 -0
- package/build/server/chunks/chunks/{Path.canvas.js-DNAtnEBt.js → Path.canvas.js-5A9wB8zQ.js} +5 -5
- package/build/server/chunks/chunks/Path.canvas.js-5A9wB8zQ.js.map +1 -0
- package/build/server/chunks/chunks/{Points.html.js-CLbHD6OP.js → Points.html.js-B2o3k-ZZ.js} +7 -7
- package/build/server/chunks/chunks/Points.html.js-B2o3k-ZZ.js.map +1 -0
- package/build/server/chunks/chunks/Points.js-D7ozN9W5.js +14 -0
- package/build/server/chunks/chunks/Points.js-D7ozN9W5.js.map +1 -0
- package/build/server/chunks/chunks/{Points2.js-BMGdkzTE.js → Points2.js-BVbWugLT.js} +4 -4
- package/build/server/chunks/chunks/Points2.js-BVbWugLT.js.map +1 -0
- package/build/server/chunks/chunks/{Rect.html.js-Q3UvRwNn.js → Rect.html.js-DnQ6ObhQ.js} +6 -6
- package/build/server/chunks/chunks/Rect.html.js-DnQ6ObhQ.js.map +1 -0
- package/build/server/chunks/chunks/{Spline.js-BuZPz2PJ.js → Spline.js-YnAxvrKY.js} +12 -12
- package/build/server/chunks/chunks/Spline.js-YnAxvrKY.js.map +1 -0
- package/build/server/chunks/chunks/{Text.html.js-C8xO5Nz6.js → Text.html.js-LbmYJb11.js} +6 -6
- package/build/server/chunks/chunks/Text.html.js-LbmYJb11.js.map +1 -0
- package/build/server/chunks/chunks/{TooltipItem.js-T0cKLjLu.js → TooltipItem.js-Ce-blieA.js} +6 -6
- package/build/server/chunks/chunks/{TooltipItem.js-T0cKLjLu.js.map → TooltipItem.js-Ce-blieA.js.map} +1 -1
- package/build/server/chunks/chunks/{Voronoi.js-DevTsXQE.js → Voronoi.js-CalFJAXH.js} +7 -7
- package/build/server/chunks/chunks/Voronoi.js-CalFJAXH.js.map +1 -0
- package/build/server/chunks/chunks/{attributes.js-BVWo7wbg.js → attributes.js-CbKEpZKa.js} +2 -2
- package/build/server/chunks/chunks/{attributes.js-BVWo7wbg.js.map → attributes.js-CbKEpZKa.js.map} +1 -1
- package/build/server/chunks/chunks/{band.js-C7izXphE.js → band.js-CjzHWr4k.js} +3 -3
- package/build/server/chunks/chunks/{band.js-C7izXphE.js.map → band.js-CjzHWr4k.js.map} +1 -1
- package/build/server/chunks/chunks/{common.js-BWQB8Die.js → common.js-BvQnfkFo.js} +2 -2
- package/build/server/chunks/chunks/{common.js-BWQB8Die.js.map → common.js-BvQnfkFo.js.map} +1 -1
- package/build/server/chunks/chunks/events.js-zIVaXIP1.js +95 -0
- package/build/server/chunks/chunks/events.js-zIVaXIP1.js.map +1 -0
- package/build/server/chunks/chunks/{group.js-DBFzWAox.js → group.js-D0SfevId.js} +2 -2
- package/build/server/chunks/chunks/{group.js-DBFzWAox.js.map → group.js-D0SfevId.js.map} +1 -1
- package/build/server/chunks/chunks/{server.js-CAEBuMIH.js → index-server.js-CtH9Hqwf.js} +156 -4
- package/build/server/chunks/chunks/index-server.js-CtH9Hqwf.js.map +1 -0
- package/build/server/chunks/chunks/{internal2.js--RCssYze.js → internal2.js-CfVVfAb5.js} +5 -5
- package/build/server/chunks/chunks/internal2.js-CfVVfAb5.js.map +1 -0
- package/build/server/chunks/chunks/{key.svelte.js-CWIvXc6L.js → key.svelte.js-Cq0L6YlN.js} +3 -3
- package/build/server/chunks/chunks/key.svelte.js-Cq0L6YlN.js.map +1 -0
- package/build/server/chunks/chunks/{legacy-client.js-DJmDw3Zx.js → legacy-client.js-DAqKExQD.js} +3 -3
- package/build/server/chunks/chunks/legacy-client.js-DAqKExQD.js.map +1 -0
- package/build/server/chunks/chunks/{lineRadial.js-Dm0GMqo3.js → lineRadial.js-B7ZNP_Jp.js} +2 -2
- package/build/server/chunks/chunks/{lineRadial.js-Dm0GMqo3.js.map → lineRadial.js-B7ZNP_Jp.js.map} +1 -1
- package/build/server/chunks/chunks/{linear.js-CTOKrHn9.js → linear.js-CHlwr1I4.js} +2 -2
- package/build/server/chunks/chunks/{linear.js-CTOKrHn9.js.map → linear.js-CHlwr1I4.js.map} +1 -1
- package/build/server/chunks/chunks/{motion.svelte.js-DCHSFMu-.js → motion.svelte.js-Crk8ri1u.js} +3 -3
- package/build/server/chunks/chunks/motion.svelte.js-Crk8ri1u.js.map +1 -0
- package/build/server/chunks/chunks/{occlusion.js-DJ-AdK9u.js → occlusion.js-ot9_OqWn.js} +2 -2
- package/build/server/chunks/chunks/{occlusion.js-DJ-AdK9u.js.map → occlusion.js-ot9_OqWn.js.map} +1 -1
- package/build/server/chunks/chunks/{path2.js-pquT2Kg6.js → path2.js-DLVU8nc9.js} +2 -2
- package/build/server/chunks/chunks/{path2.js-pquT2Kg6.js.map → path2.js-DLVU8nc9.js.map} +1 -1
- package/build/server/chunks/chunks/{rect.svelte.js-zeS7FWjB.js → rect.svelte.js-_0PgI5fe.js} +4 -4
- package/build/server/chunks/chunks/rect.svelte.js-_0PgI5fe.js.map +1 -0
- package/build/server/chunks/chunks/{scales.svelte.js-D_1popPi.js → scales.svelte.js-DeNkKcI-.js} +4 -4
- package/build/server/chunks/chunks/scales.svelte.js-DeNkKcI-.js.map +1 -0
- package/build/server/chunks/chunks/{series-buckets.js-BmCYga3F.js → series-buckets.js-C-vMEJT2.js} +13 -12
- package/build/server/chunks/chunks/series-buckets.js-C-vMEJT2.js.map +1 -0
- package/build/server/chunks/chunks/{state.js-CI2ef6Vi.js → state.js-i-NVNGIq.js} +3 -4
- package/build/server/chunks/chunks/state.js-i-NVNGIq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-3ZYI-Za9.js → _server.ts.js-BxXw5K0R.js} +18 -9
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BxXw5K0R.js.map +1 -0
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-DP0OULWi.js → error.svelte.js-ylsqA41Y.js} +6 -6
- package/build/server/chunks/entries/fallbacks/error.svelte.js-ylsqA41Y.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js +113 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-D7sAdBVX.js.map +1 -0
- package/build/server/chunks/entries/pages/{_page.svelte.js-hG1agdw-.js → _page.svelte.js-C9-7d7mD.js} +121 -37
- package/build/server/chunks/entries/pages/_page.svelte.js-C9-7d7mD.js.map +1 -0
- package/build/server/chunks/{handler-_dxqeJJj.js → handler-Bqo8aDgP.js} +3 -3
- package/build/server/chunks/{handler-_dxqeJJj.js.map → handler-Bqo8aDgP.js.map} +1 -1
- package/build/server/chunks/{index.js-arX1nCCw.js → index.js-fPvMujCL.js} +3 -4
- package/build/server/chunks/index.js-fPvMujCL.js.map +1 -0
- package/build/server/chunks/{manifest.js-D3447-0_.js → manifest.js-Bkj-8GaD.js} +6 -6
- package/build/server/chunks/{manifest.js-D3447-0_.js.map → manifest.js-Bkj-8GaD.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-XM75fTfb.js → 0.js-7J6kXnEo.js} +4 -4
- package/build/server/chunks/nodes/{0.js-XM75fTfb.js.map → 0.js-7J6kXnEo.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-CRIDfcrR.js → 1.js-DZXnUx67.js} +3 -3
- package/build/server/chunks/nodes/{1.js-CRIDfcrR.js.map → 1.js-DZXnUx67.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-1qmqKlMg.js → 2.js-85y9-1SS.js} +4 -4
- package/build/server/chunks/nodes/{2.js-1qmqKlMg.js.map → 2.js-85y9-1SS.js.map} +1 -1
- package/dist/cli/index.js +13 -6
- package/dist/cli/server.js +19 -4
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/0.DKleCc0-.css +0 -2
- package/build/client/_app/immutable/assets/0.DKleCc0-.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DKleCc0-.css.gz +0 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.br +0 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1mB5Ee1Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/1mB5Ee1Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/3fFVdy92.js.br +0 -0
- package/build/client/_app/immutable/chunks/3fFVdy92.js.gz +0 -0
- package/build/client/_app/immutable/chunks/8mpn3Xst.js.br +0 -0
- package/build/client/_app/immutable/chunks/8mpn3Xst.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B78Vj1az.js.br +0 -0
- package/build/client/_app/immutable/chunks/B78Vj1az.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B7aS9tS2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B7aS9tS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BF84Orj8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BF84Orj8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BIdvnjrP.js +0 -1
- package/build/client/_app/immutable/chunks/BIdvnjrP.js.br +0 -1
- package/build/client/_app/immutable/chunks/BIdvnjrP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPoZrXrH.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPoZrXrH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSy__Jrd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSy__Jrd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BdW_yBQU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BdW_yBQU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BnRQs9nz.js.br +0 -0
- package/build/client/_app/immutable/chunks/BnRQs9nz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6r7NvtG.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6r7NvtG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEw1go7g.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEw1go7g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFJEGo4j.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFJEGo4j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGnVqaBL.js +0 -1
- package/build/client/_app/immutable/chunks/CGnVqaBL.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGnVqaBL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CY8zQ4KM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CY8zQ4KM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZ3S843d.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZ3S843d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CgAZPeK7.js.br +0 -0
- package/build/client/_app/immutable/chunks/CgAZPeK7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CrmB4MvE.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrmB4MvE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CtWwlW0t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtWwlW0t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-AkVRH7.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-AkVRH7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0CZlpgd.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0CZlpgd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0IZin0e.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0IZin0e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DI6o1zMC.js.br +0 -0
- package/build/client/_app/immutable/chunks/DI6o1zMC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DbWb9_dK.js.br +0 -0
- package/build/client/_app/immutable/chunks/DbWb9_dK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dh3ZWuG8.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dh3ZWuG8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dp3OTI-g.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dp3OTI-g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtdjxckD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtdjxckD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/YehCS1lO.js.br +0 -0
- package/build/client/_app/immutable/chunks/YehCS1lO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/g-7YfdwH.js.br +0 -0
- package/build/client/_app/immutable/chunks/g-7YfdwH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zfc2KyIr.js.br +0 -0
- package/build/client/_app/immutable/chunks/zfc2KyIr.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.C-KKyvGI.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C-KKyvGI.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.obx3dQT_.js +0 -1
- package/build/client/_app/immutable/entry/start.obx3dQT_.js.br +0 -1
- package/build/client/_app/immutable/entry/start.obx3dQT_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.2dnHMwE1.js +0 -1
- package/build/client/_app/immutable/nodes/0.2dnHMwE1.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.2dnHMwE1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.D5nbnmDb.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.D5nbnmDb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DAQ4mvAt.js +0 -5
- package/build/client/_app/immutable/nodes/2.DAQ4mvAt.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DAQ4mvAt.js.gz +0 -0
- package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js.map +0 -1
- package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js.map +0 -1
- package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js.map +0 -1
- package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js.map +0 -1
- package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js.map +0 -1
- package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js.map +0 -1
- package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js.map +0 -1
- package/build/server/chunks/chunks/EventScatter.js-Du7AJN9m.js.map +0 -1
- package/build/server/chunks/chunks/Labels.js-DpagpV6d.js.map +0 -1
- package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js.map +0 -1
- package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js.map +0 -1
- package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js.map +0 -1
- package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js.map +0 -1
- package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js.map +0 -1
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js +0 -14
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js.map +0 -1
- package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js.map +0 -1
- package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js.map +0 -1
- package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js.map +0 -1
- package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js.map +0 -1
- package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js.map +0 -1
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js +0 -248
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js--RCssYze.js.map +0 -1
- package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js.map +0 -1
- package/build/server/chunks/chunks/legacy-client.js-DJmDw3Zx.js.map +0 -1
- package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js.map +0 -1
- package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js.map +0 -1
- package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js.map +0 -1
- package/build/server/chunks/chunks/series-buckets.js-BmCYga3F.js.map +0 -1
- package/build/server/chunks/chunks/server.js-CAEBuMIH.js.map +0 -1
- package/build/server/chunks/chunks/state.js-CI2ef6Vi.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-3ZYI-Za9.js.map +0 -1
- package/build/server/chunks/entries/fallbacks/error.svelte.js-DP0OULWi.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-8U7ZeKYO.js +0 -22
- package/build/server/chunks/entries/pages/_layout.svelte.js-8U7ZeKYO.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-hG1agdw-.js.map +0 -1
- package/build/server/chunks/index.js-arX1nCCw.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_layout.svelte.js-D7sAdBVX.js","sources":["../../../../../.svelte-kit/output/server/entries/pages/_layout.svelte.js"],"sourcesContent":["import { l as ensure_array_like, u as head, v as attr, x as escape_html } from \"../../chunks/index-server.js\";\n//#region src/lib/themes.ts\n/** Built-in palettes. Their tokens live in themes.css. */\nvar THEMES = [\n\t{\n\t\tid: \"midnight\",\n\t\tname: \"Midnight\",\n\t\tmode: \"dark\"\n\t},\n\t{\n\t\tid: \"ocean\",\n\t\tname: \"Ocean\",\n\t\tmode: \"dark\"\n\t},\n\t{\n\t\tid: \"forest\",\n\t\tname: \"Forest\",\n\t\tmode: \"dark\"\n\t},\n\t{\n\t\tid: \"plum\",\n\t\tname: \"Plum\",\n\t\tmode: \"dark\"\n\t},\n\t{\n\t\tid: \"daylight\",\n\t\tname: \"Daylight\",\n\t\tmode: \"light\"\n\t},\n\t{\n\t\tid: \"sand\",\n\t\tname: \"Sand\",\n\t\tmode: \"light\"\n\t},\n\t{\n\t\tid: \"mint\",\n\t\tname: \"Mint\",\n\t\tmode: \"light\"\n\t},\n\t{\n\t\tid: \"lavender\",\n\t\tname: \"Lavender\",\n\t\tmode: \"light\"\n\t}\n];\nvar THEME_STORAGE_KEY = \"watch-tail:theme\";\n/** Unknown or obsolete preferences fall back to Midnight. */\nfunction parseTheme(value) {\n\treturn THEMES.find((theme) => theme.id === value)?.id ?? \"midnight\";\n}\n//#endregion\n//#region src/lib/components/ThemeSelect.svelte\nfunction ThemeSelect($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet selected = \"midnight\";\n\t\tfunction apply(value, persist = true) {\n\t\t\tselected = parseTheme(value);\n\t\t\tdocument.documentElement.dataset.theme = selected;\n\t\t\tif (persist) try {\n\t\t\t\tlocalStorage.setItem(THEME_STORAGE_KEY, selected);\n\t\t\t} catch {}\n\t\t}\n\t\t$$renderer.push(`<label class=\"ml-auto flex items-center gap-2 text-xs text-neutral-400\"><span>Theme</span> `);\n\t\t$$renderer.select({\n\t\t\t\"aria-label\": \"Colour theme\",\n\t\t\t\"data-testid\": \"theme-select\",\n\t\t\tvalue: selected,\n\t\t\tonchange: (event) => apply(event.currentTarget.value),\n\t\t\tclass: \"rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs text-neutral-200 outline-none focus:border-sky-600\"\n\t\t}, ($$renderer) => {\n\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\tconst each_array = ensure_array_like([\"dark\", \"light\"]);\n\t\t\tfor (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\tlet mode = each_array[$$index_1];\n\t\t\t\t$$renderer.push(`<optgroup${attr(\"label\", mode === \"dark\" ? \"Dark themes\" : \"Light themes\")}><!--[-->`);\n\t\t\t\tconst each_array_1 = ensure_array_like(THEMES.filter((theme) => theme.mode === mode));\n\t\t\t\tfor (let $$index = 0, $$length = each_array_1.length; $$index < $$length; $$index++) {\n\t\t\t\t\tlet theme = each_array_1[$$index];\n\t\t\t\t\t$$renderer.option({ value: theme.id }, ($$renderer) => {\n\t\t\t\t\t\t$$renderer.push(`${escape_html(theme.name)}`);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></optgroup>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t});\n\t\t$$renderer.push(`</label>`);\n\t});\n}\n//#endregion\n//#region src/lib/assets/favicon.svg\nvar favicon_default = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%20role='img'%20aria-label='watch-tail'%3e%3ctitle%3ewatch-tail%3c/title%3e%3c!--%20A%20log%20window:%20three%20lines,%20the%20newest%20highlighted,%20with%20the%20tail%20still%20running.%20--%3e%3crect%20width='32'%20height='32'%20rx='7'%20fill='%230a0a0a'%20/%3e%3crect%20x='5'%20y='6.6'%20width='14'%20height='4'%20rx='2'%20fill='%2338bdf8'%20/%3e%3crect%20x='5'%20y='14'%20width='22'%20height='4'%20rx='2'%20fill='%23525252'%20/%3e%3crect%20x='5'%20y='21.4'%20width='17'%20height='4'%20rx='2'%20fill='%23404040'%20/%3e%3ccircle%20cx='25.6'%20cy='8.6'%20r='2.8'%20fill='%2338bdf8'%20/%3e%3c/svg%3e\";\n//#endregion\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\tlet { children } = $$props;\n\thead(\"12qhfyh\", $$renderer, ($$renderer) => {\n\t\t$$renderer.title(($$renderer) => {\n\t\t\t$$renderer.push(`<title>watch-tail</title>`);\n\t\t});\n\t\t$$renderer.push(`<link rel=\"icon\"${attr(\"href\", favicon_default)}/>`);\n\t});\n\t$$renderer.push(`<div class=\"flex h-dvh min-h-[30rem] flex-col overflow-hidden bg-neutral-950 font-sans text-neutral-100 antialiased selection:bg-sky-900/60\"><header class=\"flex-none border-b border-neutral-900 bg-neutral-950/90\"><div class=\"flex w-full items-baseline gap-3 px-3 py-2 sm:px-4\"><span class=\"text-sm font-semibold tracking-tight\">watch<span class=\"text-sky-400\">-tail</span></span> <span class=\"hidden text-xs text-neutral-500 sm:inline\">Tail CloudWatch Logs in the browser</span> `);\n\tThemeSelect($$renderer, {});\n\t$$renderer.push(`<!----></div></header> <main class=\"flex min-h-0 w-full flex-1 flex-col gap-3 px-3 py-3 sm:px-4\">`);\n\tchildren($$renderer);\n\t$$renderer.push(`<!----></main></div>`);\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a8 as escape_html, a7 as attr, ac as attr_style, a1 as derived, ad as attr_class, a6 as ensure_array_like, ae as stringify, af as bind_props, ag as clsx } from '../../chunks/index-server.js-CtH9Hqwf.js';
|
|
2
2
|
import { f as LogStore, g as filterByLevel, h as filterEvents, c as effectiveLevel, t as tokenizeJson, b as detectLevel, j as formatLogMessage, k as eventKey, l as levelColorClass } from '../../chunks/log-buffer.js-A9FA-Qv8.js';
|
|
3
3
|
import { R as REGION_CODES } from '../../chunks/regions.js-COf7DgnH.js';
|
|
4
4
|
import { P as PRESET_LABELS, a as presetLabel, H as HISTORIC_PRESETS, t as toDateTimeLocal, d as describeWindow } from '../../chunks/time-range.js-BLMT8aU3.js';
|
|
5
|
-
import { p as page, r as replaceState } from '../../chunks/state.js-
|
|
6
|
-
import { S as SERIES_LEVEL_COLOR, g as groupByLevel, r as requestRows, L as LEVEL_LABELS, i as isMeaningfulBrush,
|
|
5
|
+
import { p as page, r as replaceState } from '../../chunks/state.js-i-NVNGIq.js';
|
|
6
|
+
import { S as SERIES_LEVEL_COLOR, g as groupByLevel, r as requestRows, a as requestIdOf, c as collectRequests, L as LEVEL_LABELS, i as isMeaningfulBrush, b as requestDurations, d as bucketEvents } from '../../chunks/series-buckets.js-C-vMEJT2.js';
|
|
7
7
|
import '../../chunks/uneval.js-DaakSYFQ.js';
|
|
8
|
-
import '../../chunks/index-server.js-DNLOKvM0.js';
|
|
9
8
|
import '../../chunks/shared.js-CgjUIvRK.js';
|
|
10
9
|
import '../../chunks/exports.js-ClPPfcHj.js';
|
|
11
|
-
import '../../chunks/internal2.js
|
|
12
|
-
import '../../chunks/legacy-client.js-
|
|
10
|
+
import '../../chunks/internal2.js-CfVVfAb5.js';
|
|
11
|
+
import '../../chunks/legacy-client.js-DAqKExQD.js';
|
|
12
|
+
import '../../chunks/events.js-zIVaXIP1.js';
|
|
13
13
|
import '../../chunks/utils.js-BIlHjgGW.js';
|
|
14
14
|
|
|
15
15
|
//#region src/lib/format.ts
|
|
@@ -160,6 +160,8 @@ function EndpointBadge($$renderer, $$props) {
|
|
|
160
160
|
var STORAGE_KEYS = {
|
|
161
161
|
sidebarWidth: "watch-tail:sidebar-width",
|
|
162
162
|
prefixWidth: "watch-tail:prefix-width",
|
|
163
|
+
timestampWidth: "watch-tail:timestamp-width",
|
|
164
|
+
groupWidth: "watch-tail:group-width",
|
|
163
165
|
wrap: "watch-tail:wrap",
|
|
164
166
|
jsonView: "watch-tail:json-view",
|
|
165
167
|
chartOpen: "watch-tail:chart-open",
|
|
@@ -177,11 +179,6 @@ var PREFIX_WIDTH = {
|
|
|
177
179
|
minRem: 4,
|
|
178
180
|
maxRem: 40
|
|
179
181
|
};
|
|
180
|
-
/** Converts a CSS pixel width to `rem` for use in a Tailwind `style` attribute. */
|
|
181
|
-
function pxToRem(px, rootFontSize = 16) {
|
|
182
|
-
const rem = px / rootFontSize;
|
|
183
|
-
return `${Number.isInteger(rem) ? rem : Number(rem.toFixed(3))}rem`;
|
|
184
|
-
}
|
|
185
182
|
/** Parses a `rem` value into CSS pixels. */
|
|
186
183
|
function remToPx(rem, rootFontSize = 16) {
|
|
187
184
|
return rem * rootFontSize;
|
|
@@ -207,7 +204,7 @@ function EventScatterPanel($$renderer, $$props) {
|
|
|
207
204
|
* The real loader: a dynamic import, which is what keeps layerchart out of the
|
|
208
205
|
* initial bundle. It only runs in the browser, and only once the panel is open.
|
|
209
206
|
*/
|
|
210
|
-
const loadChartModule = () => import('../../chunks/EventScatter.js-
|
|
207
|
+
const loadChartModule = () => import('../../chunks/EventScatter.js-CO2GonW-.js');
|
|
211
208
|
/** Bucketed counts for the window. */
|
|
212
209
|
/** Inclusive start of the window, epoch ms. */
|
|
213
210
|
/** Inclusive end of the window, epoch ms. */
|
|
@@ -219,7 +216,7 @@ function EventScatterPanel($$renderer, $$props) {
|
|
|
219
216
|
/** Chart height in px. */
|
|
220
217
|
/** Start open, which is also what the first visit uses. */
|
|
221
218
|
/** Chart module loader; defaults to the dynamic import. */
|
|
222
|
-
let { metric = "
|
|
219
|
+
let { metric = "duration", onMetricChange, onSelect, points = [], from = 0, to = 0, bucketMs = 0, groups = [], loading = false, byRequest = true, onBrush, height = 200, open = true, loadChart = loadChartModule } = $$props;
|
|
223
220
|
let expanded = derived(() => open);
|
|
224
221
|
/** Totals and labels per level, in severity order. */
|
|
225
222
|
let levelGroups = derived(() => groupByLevel(points));
|
|
@@ -235,7 +232,7 @@ function EventScatterPanel($$renderer, $$props) {
|
|
|
235
232
|
function reset() {
|
|
236
233
|
onBrush?.(null);
|
|
237
234
|
}
|
|
238
|
-
$$renderer.push(`<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"${attr("aria-label", metric === "duration" ? "Request duration over time" : "Events over time")}><div class="flex flex-wrap items-center gap-x-3 gap-y-1 px-1 text-[0.6875rem]"><button type="button"${attr("aria-expanded", expanded())}${attr("title", expanded() ? "Hide the chart" : "Show the chart")} 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">${escape_html(expanded() ? "▾" : "▸")}</span> ${escape_html(metric === "duration" ? "Request duration" : "Events over time")}</button> <div role="group" aria-label="Chart metric" class="flex rounded-md border border-neutral-800 p-0.5"><!--[-->`);
|
|
235
|
+
$$renderer.push(`<section class="flex min-w-0 shrink-0 flex-col gap-1 rounded-lg border border-neutral-800 bg-neutral-950/60 p-2" data-testid="event-scatter"${attr("aria-label", metric === "duration" ? "Request duration over time" : "Events over time")}><div class="flex flex-wrap items-center gap-x-3 gap-y-1 px-1 text-[0.6875rem]"><button type="button"${attr("aria-expanded", expanded())}${attr("title", expanded() ? "Hide the chart" : "Show the chart")} 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">${escape_html(expanded() ? "▾" : "▸")}</span> ${escape_html(metric === "duration" ? "Request duration" : "Events over time")}</button> <div role="group" aria-label="Chart metric" class="flex rounded-md border border-neutral-800 p-0.5"><!--[-->`);
|
|
239
236
|
const each_array = ensure_array_like(["count", "duration"]);
|
|
240
237
|
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
241
238
|
let choice = each_array[$$index];
|
|
@@ -260,7 +257,7 @@ function EventScatterPanel($$renderer, $$props) {
|
|
|
260
257
|
$$renderer.push(`<!--]--> `);
|
|
261
258
|
if (expanded()) {
|
|
262
259
|
$$renderer.push("<!--[0-->");
|
|
263
|
-
$$renderer.push(`<!--[-1--><span class="ml-auto text-neutral-500" data-testid="scatter-hint">drag to zoom · click to clear</span>`);
|
|
260
|
+
$$renderer.push(`<!--[-1--><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>`);
|
|
264
261
|
$$renderer.push(`<!--]-->`);
|
|
265
262
|
} else $$renderer.push("<!--[-1-->");
|
|
266
263
|
$$renderer.push(`<!--]--></div> `);
|
|
@@ -269,14 +266,14 @@ function EventScatterPanel($$renderer, $$props) {
|
|
|
269
266
|
if (metric === "duration") $$renderer.push(`<!--[0--><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
|
|
270
267
|
appear shorter</p>`);
|
|
271
268
|
else $$renderer.push("<!--[-1-->");
|
|
272
|
-
$$renderer.push(`<!--]--> `);
|
|
269
|
+
$$renderer.push(`<!--]--> <div class="overflow-hidden"${attr_style(`height: ${stringify(height)}px`)} data-testid="chart-body">`);
|
|
273
270
|
if (hasPoints()) {
|
|
274
271
|
$$renderer.push("<!--[1-->");
|
|
275
272
|
$$renderer.push(`<!--[-1--><div class="w-full animate-pulse rounded bg-neutral-900/60"${attr_style(`height: ${stringify(height)}px`)}></div>`);
|
|
276
273
|
$$renderer.push(`<!--]-->`);
|
|
277
274
|
} else if (!loading) $$renderer.push(`<!--[2--><p class="px-1 py-6 text-xs text-neutral-500" data-testid="scatter-empty">${escape_html(metric === "duration" ? "No requests with a request ID in this window yet." : "No events in this window yet.")}</p>`);
|
|
278
275
|
else $$renderer.push("<!--[-1-->");
|
|
279
|
-
$$renderer.push(`<!--]
|
|
276
|
+
$$renderer.push(`<!--]--></div>`);
|
|
280
277
|
} else $$renderer.push("<!--[-1-->");
|
|
281
278
|
$$renderer.push(`<!--]--></section>`);
|
|
282
279
|
bind_props($$props, { reset });
|
|
@@ -552,7 +549,7 @@ function LogGroupList($$renderer, $$props) {
|
|
|
552
549
|
const each_array_1 = ensure_array_like(visible());
|
|
553
550
|
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
554
551
|
let group = each_array_1[$$index_1];
|
|
555
|
-
$$renderer.push(`<li class="flex items-center gap-1.5"><input type="checkbox"${attr("data-testid", `group-check-${stringify(group.name)}`)}${attr("aria-label", `Include ${group.name} in the selection`)}${attr("checked", isSelected(group.name), true)} class="size-3.5 shrink-0 cursor-pointer accent-sky-500"/> <button type="button" data-testid="group-row"${attr("aria-current", isSelected(group.name) ? "true" : void 0)}${attr_class(`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 ${stringify(rowTone(group.name))}`)}><span class="
|
|
552
|
+
$$renderer.push(`<li class="flex items-center gap-1.5"><input type="checkbox"${attr("data-testid", `group-check-${stringify(group.name)}`)}${attr("aria-label", `Include ${group.name} in the selection`)}${attr("checked", isSelected(group.name), true)} class="size-3.5 shrink-0 cursor-pointer accent-sky-500"/> <button type="button" data-testid="group-row"${attr("data-group-name", group.name)}${attr("aria-label", group.name)}${attr("title", group.name)}${attr("aria-current", isSelected(group.name) ? "true" : void 0)}${attr_class(`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 ${stringify(rowTone(group.name))}`)}><span class="min-w-0 flex-1 overflow-hidden whitespace-nowrap font-mono" aria-hidden="true">${escape_html(group.name)}</span> `);
|
|
556
553
|
if (archived()) {
|
|
557
554
|
$$renderer.push(`<!--[0--><span class="flex shrink-0 items-center gap-1.5">`);
|
|
558
555
|
if (archivedCount(group) !== null) $$renderer.push(`<!--[0--><span data-testid="group-archived-count"${attr("title", archivedSpan(group) ?? "Events held in the local DuckDB archive")} 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">${escape_html(archivedCount(group))}</span>`);
|
|
@@ -574,6 +571,25 @@ function LogGroupList($$renderer, $$props) {
|
|
|
574
571
|
});
|
|
575
572
|
}
|
|
576
573
|
//#endregion
|
|
574
|
+
//#region src/lib/chart-selection.ts
|
|
575
|
+
/** Resolve a plotted mark against the loaded events, before display filters. */
|
|
576
|
+
function selectedChartEvents(lines, selection) {
|
|
577
|
+
if (selection === null) return /* @__PURE__ */ new Set();
|
|
578
|
+
const { point, bucketMs, byRequest, fallbackGroup } = selection;
|
|
579
|
+
const events = lines.filter((event) => (event.group ?? fallbackGroup) === point.group);
|
|
580
|
+
if (point.requestId !== void 0) return new Set(events.filter((event) => requestIdOf(event) === point.requestId));
|
|
581
|
+
const inBucket = (timestamp) => Math.floor(timestamp / bucketMs) * bucketMs === point.t;
|
|
582
|
+
const matches = /* @__PURE__ */ new Set();
|
|
583
|
+
if (byRequest) {
|
|
584
|
+
for (const request of collectRequests(events)) if (inBucket(request.first) && request.level === point.level) for (const { event } of request.events) matches.add(event);
|
|
585
|
+
}
|
|
586
|
+
for (const event of events) {
|
|
587
|
+
if (byRequest && requestIdOf(event) !== null) continue;
|
|
588
|
+
if (inBucket(event.timestamp) && (effectiveLevel(event) ?? "unknown") === point.level) matches.add(event);
|
|
589
|
+
}
|
|
590
|
+
return matches;
|
|
591
|
+
}
|
|
592
|
+
//#endregion
|
|
577
593
|
//#region src/lib/components/StatusBadge.svelte
|
|
578
594
|
function StatusBadge($$renderer, $$props) {
|
|
579
595
|
/** Connection status reported by the log stream. */
|
|
@@ -641,8 +657,9 @@ function LogViewer($$renderer, $$props) {
|
|
|
641
657
|
* default, and owned by the page so the chart counts the same requests.
|
|
642
658
|
*/
|
|
643
659
|
/** Called when the grouping toggle is pressed. */
|
|
644
|
-
let { lines = [], status = "idle", error = null, region = "", group = null, filter = "", paused = false, autoScroll = true, pendingCount = 0, droppedCount = 0, receivedCount = 0, mode = "live", ready = null, endReason = null, archivePath = null, groups = [], level = void 0, onLevelChange, groupRequests = true, onGroupToggle, onFilterChange, onPauseToggle, onClear, onAutoScrollToggle } = $$props;
|
|
645
|
-
|
|
660
|
+
let { selection = null, onSelectionClear, lines = [], status = "idle", error = null, region = "", group = null, filter = "", paused = false, autoScroll = true, pendingCount = 0, droppedCount = 0, receivedCount = 0, mode = "live", ready = null, endReason = null, archivePath = null, groups = [], level = void 0, onLevelChange, groupRequests = true, onGroupToggle, onFilterChange, onPauseToggle, onClear, onAutoScrollToggle } = $$props;
|
|
661
|
+
let timestampPx = remToPx(7.5);
|
|
662
|
+
let groupPx = 144;
|
|
646
663
|
const ROW_PADDING_PX = remToPx(.75);
|
|
647
664
|
const ROW_GAP_PX = remToPx(.5);
|
|
648
665
|
const PREFIX_MIN_PX = remToPx(PREFIX_WIDTH.minRem);
|
|
@@ -693,8 +710,10 @@ function LogViewer($$renderer, $$props) {
|
|
|
693
710
|
activeClass: "border-neutral-700 bg-neutral-800 text-neutral-400"
|
|
694
711
|
}
|
|
695
712
|
];
|
|
713
|
+
let selectedEvents = derived(() => selectedChartEvents(lines, selection));
|
|
696
714
|
/** Lines matching the text filter and the level filter. */
|
|
697
715
|
let visible = derived(() => filterByLevel(filterEvents(lines, filter), levelFilter()));
|
|
716
|
+
let visibleSelectedCount = derived(() => visible().filter((event) => selectedEvents().has(event)).length);
|
|
698
717
|
/** How many lines of each level are loaded, including `unknown`. */
|
|
699
718
|
let levelCounts = derived(() => {
|
|
700
719
|
const counts = {
|
|
@@ -716,6 +735,7 @@ function LogViewer($$renderer, $$props) {
|
|
|
716
735
|
const formatted = formatLogMessage(event.message, { prettyJson: jsonView });
|
|
717
736
|
const levelClass = levelColorClass(rowLevel);
|
|
718
737
|
return {
|
|
738
|
+
selected: selectedEvents().has(event),
|
|
719
739
|
key: eventKey(event, index),
|
|
720
740
|
time: formatTime(event.timestamp),
|
|
721
741
|
timestamp: formatTimestamp(event.timestamp),
|
|
@@ -809,7 +829,6 @@ function LogViewer($$renderer, $$props) {
|
|
|
809
829
|
let grouped = derived(() => displayRows().some((row) => row.kind === "request"));
|
|
810
830
|
/** Requests in view, shown next to the line count while grouping. */
|
|
811
831
|
let requestCount = derived(() => displayRows().filter((row) => row.kind === "request").length);
|
|
812
|
-
/** Keeps the newest line in view while auto-scroll is on (vertical only). */
|
|
813
832
|
/** Error text with the group and region context. */
|
|
814
833
|
let errorText = derived(() => error === null ? null : describeStreamError(region, group, error.message));
|
|
815
834
|
/** True when the ready frame says the events come from the local archive. */
|
|
@@ -840,9 +859,9 @@ function LogViewer($$renderer, $$props) {
|
|
|
840
859
|
/** Message cell: wrapped text or a single long line that scrolls sideways. */
|
|
841
860
|
let messageClass = derived(() => "whitespace-pre");
|
|
842
861
|
/** Left edge of the prefix resize handle, in pixels from the scrolled content edge. */
|
|
843
|
-
let handleLeft = derived(() => ROW_PADDING_PX +
|
|
862
|
+
let handleLeft = derived(() => ROW_PADDING_PX + timestampPx + ROW_GAP_PX + (groups.length > 1 ? groupPx + ROW_GAP_PX : 0) + prefixPx);
|
|
844
863
|
/** Prefix column width as a CSS length. */
|
|
845
|
-
let prefixStyle = derived(() => `
|
|
864
|
+
let prefixStyle = derived(() => `width: ${prefixPx}px`);
|
|
846
865
|
/** Rows the user has opened, keyed by row key. */
|
|
847
866
|
let expandedRows = {};
|
|
848
867
|
/** True when a row is open. */
|
|
@@ -897,6 +916,13 @@ function LogViewer($$renderer, $$props) {
|
|
|
897
916
|
$$renderer.push(`<!--]--></div> <input type="search" aria-label="Filter log lines" placeholder="Filter lines"${attr("value", filter)} 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"${attr("aria-pressed", wrapLines)} title="Wrap long lines instead of scrolling sideways" data-testid="wrap-toggle"${attr_class(`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${wrapTone()}`)}>Wrap</button> <button type="button"${attr("aria-pressed", jsonView)} title="Pretty-print JSON log entries (off: click a line to open its JSON)" data-testid="json-toggle"${attr_class(`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${jsonTone()}`)}>JSON</button> <button type="button"${attr("aria-pressed", groupRequests)} 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"${attr_class(`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${groupTone()}`)}>By request</button> <button type="button"${attr("aria-pressed", paused)} 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">${escape_html(paused ? "Resume" : "Pause")}</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"${attr("aria-pressed", autoScroll)}${attr_class(`rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 text-xs font-medium transition-colors hover:border-neutral-700 ${autoScrollTone()}`)}>Auto-scroll</button></div></div> `);
|
|
898
917
|
if (errorText() !== null) $$renderer.push(`<!--[0--><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">${escape_html(errorText())}</p>`);
|
|
899
918
|
else $$renderer.push("<!--[-1-->");
|
|
919
|
+
$$renderer.push(`<!--]--> `);
|
|
920
|
+
if (selection !== null) {
|
|
921
|
+
$$renderer.push(`<!--[0--><div class="flex items-center gap-2 px-3 py-1 text-xs text-sky-300" role="status" data-testid="chart-selection-status">`);
|
|
922
|
+
if (selectedEvents().size === 0) $$renderer.push(`<!--[0-->Selected logs are not in the loaded buffer. Zoom into this time range to load them.`);
|
|
923
|
+
else $$renderer.push(`<!--[-1-->${escape_html(visibleSelectedCount())} of ${escape_html(selectedEvents().size)} selected log lines visible${escape_html(visibleSelectedCount() < selectedEvents().size ? " — clear the text or level filter to see all" : "")}.`);
|
|
924
|
+
$$renderer.push(`<!--]--> <button type="button" class="ml-auto underline">Clear selection</button></div>`);
|
|
925
|
+
} else $$renderer.push("<!--[-1-->");
|
|
900
926
|
$$renderer.push(`<!--]--> <div class="min-h-0 min-w-0 flex-1 overflow-auto bg-neutral-950" data-testid="log-scroller">`);
|
|
901
927
|
if (group === null || group === "") $$renderer.push(`<!--[0--><p class="px-3 py-6 text-sm text-neutral-500" data-testid="viewer-idle">Select a log group to start tailing.</p>`);
|
|
902
928
|
else if (displayRows().length === 0) $$renderer.push(`<!--[1--><p class="px-3 py-6 text-sm text-neutral-500" data-testid="viewer-empty">${escape_html(emptyText())}</p>`);
|
|
@@ -905,8 +931,13 @@ function LogViewer($$renderer, $$props) {
|
|
|
905
931
|
function logLine($$renderer, row, child) {
|
|
906
932
|
const expandable = row.expandable !== null;
|
|
907
933
|
const open = expandable && isExpanded(row.key);
|
|
908
|
-
$$renderer.push(`<li${attr_class(`flex flex-wrap items-baseline gap-2
|
|
909
|
-
|
|
934
|
+
$$renderer.push(`<li${attr_class(`flex flex-wrap items-baseline gap-2 px-3 py-0.5 hover:bg-neutral-900/60 ${listClass()} ${expandable ? "cursor-pointer" : ""}`, void 0, {
|
|
935
|
+
"bg-sky-950": row.selected,
|
|
936
|
+
"ring-1": row.selected,
|
|
937
|
+
"ring-inset": row.selected,
|
|
938
|
+
"ring-sky-700": row.selected
|
|
939
|
+
})} data-testid="log-line"${attr("data-chart-selected", row.selected ? "true" : void 0)}${attr("data-request-child", child ? "true" : void 0)}${attr("data-level", row.level ?? "unknown")}${attr("data-expandable", expandable ? "true" : void 0)}${attr("data-expanded", open ? "true" : void 0)}${attr("role", expandable ? "button" : void 0)}${attr("tabindex", expandable ? 0 : void 0)}${attr("aria-expanded", expandable ? open : void 0)}${attr("title", expandable ? open ? "Hide the JSON in this line" : "Show this line as JSON" : void 0)}><span class="shrink-0 truncate text-neutral-500"${attr_style(`width: ${stringify(timestampPx)}px`)}${attr("title", row.timestamp)}>${escape_html(row.time)}</span> `);
|
|
940
|
+
if (groups.length > 1) $$renderer.push(`<!--[0--><span class="shrink-0 truncate text-teal-400/80"${attr_style(`width: ${stringify(groupPx)}px`)}${attr("title", row.group ?? "")} data-testid="log-group">${escape_html(row.group ?? "")}</span>`);
|
|
910
941
|
else $$renderer.push("<!--[-1-->");
|
|
911
942
|
$$renderer.push(`<!--]--> <span class="shrink-0 truncate text-sky-400/80"${attr_style(prefixStyle())}${attr("title", row.streamName ?? "")} data-testid="log-stream">${escape_html(row.streamName ?? "")}</span> `);
|
|
912
943
|
if (expandable) $$renderer.push(`<!--[0--><span class="shrink-0 text-neutral-600" aria-hidden="true">${escape_html(open ? "▾" : "▸")}</span>`);
|
|
@@ -933,15 +964,15 @@ function LogViewer($$renderer, $$props) {
|
|
|
933
964
|
} else $$renderer.push("<!--[-1-->");
|
|
934
965
|
$$renderer.push(`<!--]--></li>`);
|
|
935
966
|
}
|
|
936
|
-
$$renderer.push(`<div${attr_class(`relative min-h-full ${listClass()}`)} data-testid="log-canvas"><ol class="font-mono text-xs leading-5" data-testid="log-lines"><!--[-->`);
|
|
967
|
+
$$renderer.push(`<div${attr_class(`relative min-h-full ${listClass()}`)} data-testid="log-canvas"${attr_style("", { "min-width": void 0 })}><ol class="font-mono text-xs leading-5" data-testid="log-lines"><!--[-->`);
|
|
937
968
|
const each_array_3 = ensure_array_like(displayRows());
|
|
938
969
|
for (let $$index_4 = 0, $$length = each_array_3.length; $$index_4 < $$length; $$index_4++) {
|
|
939
970
|
let row = each_array_3[$$index_4];
|
|
940
971
|
if (row.kind === "request") {
|
|
941
972
|
$$renderer.push("<!--[0-->");
|
|
942
973
|
const open = isExpanded(row.key);
|
|
943
|
-
$$renderer.push(`<li${attr_class(clsx(listClass()))} data-testid="log-request-group"${attr("data-request-id", row.id)}${attr("data-level", row.level)}${attr("data-expanded", open ? "true" : void 0)}${attr("data-lines", row.count)}><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"${attr("aria-expanded", open)}${attr("title", open ? "Hide the lines of this request" : "Show every line of this request")} data-testid="request-group-summary"><span class="
|
|
944
|
-
if (groups.length > 1) $$renderer.push(`<!--[0--><span class="
|
|
974
|
+
$$renderer.push(`<li${attr_class(clsx(listClass()), void 0, { "bg-sky-950": row.children.some((child) => child.selected) })} data-testid="log-request-group"${attr("data-chart-selected", row.children.some((child) => child.selected) ? "true" : void 0)}${attr("data-request-id", row.id)}${attr("data-level", row.level)}${attr("data-expanded", open ? "true" : void 0)}${attr("data-lines", row.count)}><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"${attr("aria-expanded", open)}${attr("title", open ? "Hide the lines of this request" : "Show every line of this request")} data-testid="request-group-summary"><span class="shrink-0 truncate text-neutral-500"${attr_style(`width: ${stringify(timestampPx)}px`)}${attr("title", row.timestamp)}>${escape_html(row.time)}</span> `);
|
|
975
|
+
if (groups.length > 1) $$renderer.push(`<!--[0--><span class="shrink-0 truncate text-teal-400/80"${attr_style(`width: ${stringify(groupPx)}px`)}${attr("title", row.group ?? "")} data-testid="log-group">${escape_html(row.group ?? "")}</span>`);
|
|
945
976
|
else $$renderer.push("<!--[-1-->");
|
|
946
977
|
$$renderer.push(`<!--]--> <span class="shrink-0 truncate text-sky-400/80"${attr_style(prefixStyle())}${attr("title", row.streamName ?? "")} data-testid="log-stream">${escape_html(row.streamName ?? "")}</span> <span class="shrink-0 text-neutral-600" aria-hidden="true">${escape_html(open ? "▾" : "▸")}</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">${escape_html(row.id)}</span> <span class="shrink-0 text-neutral-400" data-testid="request-group-count">${escape_html(formatCount(row.count))} lines</span> <span class="shrink-0 text-neutral-500" data-testid="request-group-span">${escape_html(row.span)}</span> <span${attr_class(`shrink-0 font-medium ${stringify(row.levelClass)}`)} data-testid="request-group-level">${escape_html(row.levelLabel)}</span> `);
|
|
947
978
|
if (!open) $$renderer.push(`<!--[0--><span class="min-w-0 truncate text-neutral-500" data-testid="request-group-preview">${escape_html(row.preview)}</span>`);
|
|
@@ -965,14 +996,41 @@ function LogViewer($$renderer, $$props) {
|
|
|
965
996
|
}
|
|
966
997
|
$$renderer.push(`<!--]--></ol> `);
|
|
967
998
|
ColumnResizer($$renderer, {
|
|
968
|
-
label: "Resize
|
|
999
|
+
label: "Resize timestamp column",
|
|
1000
|
+
width: timestampPx,
|
|
1001
|
+
min: 64,
|
|
1002
|
+
max: 320,
|
|
1003
|
+
testId: "timestamp-resizer",
|
|
1004
|
+
onChange: (next) => timestampPx = next,
|
|
1005
|
+
onCommit: (next) => writePref(STORAGE_KEYS.timestampWidth, String(next)),
|
|
1006
|
+
class: "absolute inset-y-0 w-2 border-r border-neutral-800/40",
|
|
1007
|
+
style: `left: ${stringify(ROW_PADDING_PX + timestampPx - 4)}px`
|
|
1008
|
+
});
|
|
1009
|
+
$$renderer.push(`<!----> `);
|
|
1010
|
+
if (groups.length > 1) {
|
|
1011
|
+
$$renderer.push("<!--[0-->");
|
|
1012
|
+
ColumnResizer($$renderer, {
|
|
1013
|
+
label: "Resize log group column",
|
|
1014
|
+
width: groupPx,
|
|
1015
|
+
min: 64,
|
|
1016
|
+
max: 640,
|
|
1017
|
+
testId: "group-resizer",
|
|
1018
|
+
onChange: (next) => groupPx = next,
|
|
1019
|
+
onCommit: (next) => writePref(STORAGE_KEYS.groupWidth, String(next)),
|
|
1020
|
+
class: "absolute inset-y-0 w-2 border-r border-neutral-800/40",
|
|
1021
|
+
style: `left: ${stringify(ROW_PADDING_PX + timestampPx + ROW_GAP_PX + groupPx - 4)}px`
|
|
1022
|
+
});
|
|
1023
|
+
} else $$renderer.push("<!--[-1-->");
|
|
1024
|
+
$$renderer.push(`<!--]--> `);
|
|
1025
|
+
ColumnResizer($$renderer, {
|
|
1026
|
+
label: "Resize stream column",
|
|
969
1027
|
width: prefixPx,
|
|
970
1028
|
min: PREFIX_MIN_PX,
|
|
971
1029
|
max: PREFIX_MAX_PX,
|
|
972
1030
|
testId: "prefix-resizer",
|
|
973
1031
|
onChange: (next) => prefixPx = next,
|
|
974
1032
|
onCommit: () => savePrefixWidth(),
|
|
975
|
-
class: "absolute inset-y-0 w-2",
|
|
1033
|
+
class: "absolute inset-y-0 w-2 border-r border-neutral-800/40",
|
|
976
1034
|
style: `left: ${stringify(handleLeft() - 4)}px`
|
|
977
1035
|
});
|
|
978
1036
|
$$renderer.push(`<!----></div>`);
|
|
@@ -1320,10 +1378,12 @@ function _page($$renderer, $$props) {
|
|
|
1320
1378
|
*/
|
|
1321
1379
|
let groupRequests = true;
|
|
1322
1380
|
/** Bucketed counts behind the chart. */
|
|
1381
|
+
let chartSelection = null;
|
|
1382
|
+
let seriesBucketMs = 6e4;
|
|
1323
1383
|
let seriesPoints = [];
|
|
1324
1384
|
/** True while the archive counts are being fetched. */
|
|
1325
1385
|
let seriesLoading = false;
|
|
1326
|
-
let chartMetric = "
|
|
1386
|
+
let chartMetric = "duration";
|
|
1327
1387
|
let seriesRequest = 0;
|
|
1328
1388
|
/** True only when the local archive reports that it can be read. */
|
|
1329
1389
|
let archiveAvailable = derived(() => archiveStatus?.available === true);
|
|
@@ -1551,6 +1611,7 @@ function _page($$renderer, $$props) {
|
|
|
1551
1611
|
return;
|
|
1552
1612
|
}
|
|
1553
1613
|
const { from, to } = chartWindow();
|
|
1614
|
+
seriesBucketMs = chartBucketMs(from, to);
|
|
1554
1615
|
if (source !== "archive") {
|
|
1555
1616
|
seriesPoints = (chartMetric === "duration" ? requestDurations : bucketEvents)(stream.lines, {
|
|
1556
1617
|
from,
|
|
@@ -1574,7 +1635,10 @@ function _page($$renderer, $$props) {
|
|
|
1574
1635
|
by: groupRequests ? "request" : "event",
|
|
1575
1636
|
metric: chartMetric
|
|
1576
1637
|
});
|
|
1577
|
-
if (request === seriesRequest)
|
|
1638
|
+
if (request === seriesRequest) {
|
|
1639
|
+
seriesPoints = series.points;
|
|
1640
|
+
seriesBucketMs = series.bucketMs;
|
|
1641
|
+
}
|
|
1578
1642
|
} catch {
|
|
1579
1643
|
if (request === seriesRequest) seriesPoints = [];
|
|
1580
1644
|
} finally {
|
|
@@ -1644,11 +1708,23 @@ function _page($$renderer, $$props) {
|
|
|
1644
1708
|
points: seriesPoints,
|
|
1645
1709
|
from: chartWindow().from,
|
|
1646
1710
|
to: chartWindow().to,
|
|
1647
|
-
bucketMs:
|
|
1711
|
+
bucketMs: seriesBucketMs,
|
|
1648
1712
|
groups: selectedGroups,
|
|
1649
1713
|
byRequest: groupRequests,
|
|
1650
1714
|
metric: chartMetric,
|
|
1651
|
-
onMetricChange: (metric) =>
|
|
1715
|
+
onMetricChange: (metric) => {
|
|
1716
|
+
chartSelection = null;
|
|
1717
|
+
chartMetric = metric;
|
|
1718
|
+
},
|
|
1719
|
+
onSelect: (point) => {
|
|
1720
|
+
autoScroll = false;
|
|
1721
|
+
chartSelection = {
|
|
1722
|
+
point,
|
|
1723
|
+
bucketMs: seriesBucketMs,
|
|
1724
|
+
byRequest: groupRequests,
|
|
1725
|
+
fallbackGroup: selectedGroup() ?? ""
|
|
1726
|
+
};
|
|
1727
|
+
},
|
|
1652
1728
|
loading: seriesLoading,
|
|
1653
1729
|
onBrush: applyBrush
|
|
1654
1730
|
});
|
|
@@ -1657,6 +1733,8 @@ function _page($$renderer, $$props) {
|
|
|
1657
1733
|
else $$renderer.push("<!--[-1-->");
|
|
1658
1734
|
$$renderer.push(`<!--]--> `);
|
|
1659
1735
|
LogViewer($$renderer, {
|
|
1736
|
+
selection: chartSelection,
|
|
1737
|
+
onSelectionClear: () => chartSelection = null,
|
|
1660
1738
|
lines: stream.lines,
|
|
1661
1739
|
status: stream.status,
|
|
1662
1740
|
error: stream.lastError,
|
|
@@ -1679,12 +1757,18 @@ function _page($$renderer, $$props) {
|
|
|
1679
1757
|
receivedCount: stream.receivedCount,
|
|
1680
1758
|
onFilterChange: (value) => filter = value,
|
|
1681
1759
|
onPauseToggle: () => stream.togglePause(),
|
|
1682
|
-
onClear: () =>
|
|
1683
|
-
|
|
1760
|
+
onClear: () => {
|
|
1761
|
+
chartSelection = null;
|
|
1762
|
+
stream.clear();
|
|
1763
|
+
},
|
|
1764
|
+
onAutoScrollToggle: () => {
|
|
1765
|
+
chartSelection = null;
|
|
1766
|
+
autoScroll = !autoScroll;
|
|
1767
|
+
}
|
|
1684
1768
|
});
|
|
1685
1769
|
$$renderer.push(`<!----></div></div>`);
|
|
1686
1770
|
});
|
|
1687
1771
|
}
|
|
1688
1772
|
|
|
1689
1773
|
export { _page as default };
|
|
1690
|
-
//# sourceMappingURL=_page.svelte.js-
|
|
1774
|
+
//# sourceMappingURL=_page.svelte.js-C9-7d7mD.js.map
|