watch-tail 0.4.0 → 0.6.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 +158 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css +2 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css.gz +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css +1 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.br +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css +1 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.br +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.gz +0 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css +1 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.br +1 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.gz +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css +1 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.br +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.gz +0 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css +1 -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/assets/Labels.sEaJtb97.css +1 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.br +0 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.gz +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css +1 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.br +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.gz +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css +1 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.br +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.gz +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css +1 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.br +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.gz +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css +1 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.br +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js +1 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js +1 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js +1 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js.br +0 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js +1 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js +1 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js +1 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js +10 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js +1 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js +1 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js +1 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js.br +1 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js +1 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js +5 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js +1 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bw_9uNRP.js → BsH4MNzX.js} +1 -1
- package/build/client/_app/immutable/chunks/BsH4MNzX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsH4MNzX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js +1 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js +1 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js +4 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.br +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js +1 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js +1 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js +2 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js.br +0 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js +1 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js +1 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js +1 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js +1 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js +1 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js.br +1 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js +1 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js +1 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js +1 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js +1 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js +1 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js +1 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js +1 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js +1 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.br +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js +1 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js.br +1 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js +1 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.br +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js +1 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js.br +0 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js +1 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js.br +0 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js +3 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.br +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js +1 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js.br +0 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js +15 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js.br +0 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js +1 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.br +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js +1 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js.br +0 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js +2 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js +1 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js.br +1 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js +1 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js +1 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.js +4 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.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 +9 -7
- package/build/handler.js.map +1 -1
- package/build/index.js +9 -7
- package/build/index.js.map +1 -1
- package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js +701 -0
- package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js.map +1 -0
- package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js +31 -0
- package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js.map +1 -0
- package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js +448 -0
- package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js.map +1 -0
- package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js +983 -0
- package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js.map +1 -0
- package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js +355 -0
- package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js.map +1 -0
- package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js +170 -0
- package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js.map +1 -0
- package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js +352 -0
- package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js.map +1 -0
- package/build/server/chunks/chunks/EventScatter.js-D3Jaw_Cw.js +7308 -0
- package/build/server/chunks/chunks/EventScatter.js-D3Jaw_Cw.js.map +1 -0
- package/build/server/chunks/chunks/Labels.js-DpagpV6d.js +497 -0
- package/build/server/chunks/chunks/Labels.js-DpagpV6d.js.map +1 -0
- package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js +343 -0
- package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js.map +1 -0
- package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js +423 -0
- package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js.map +1 -0
- package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js +756 -0
- package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js.map +1 -0
- package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js +1259 -0
- package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js.map +1 -0
- package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js +228 -0
- package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js.map +1 -0
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js +14 -0
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js.map +1 -0
- package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js +25 -0
- package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js.map +1 -0
- package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js +547 -0
- package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js.map +1 -0
- package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js +516 -0
- package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js.map +1 -0
- package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js +847 -0
- package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js.map +1 -0
- package/build/server/chunks/chunks/TooltipItem.js-T0cKLjLu.js +314 -0
- package/build/server/chunks/chunks/TooltipItem.js-T0cKLjLu.js.map +1 -0
- package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js +2052 -0
- package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js.map +1 -0
- package/build/server/chunks/chunks/archive.js-C2D-5edp.js +823 -0
- package/build/server/chunks/chunks/archive.js-C2D-5edp.js.map +1 -0
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js +8 -0
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js.map +1 -0
- package/build/server/chunks/chunks/attributes.js-BVWo7wbg.js +25 -0
- package/build/server/chunks/chunks/attributes.js-BVWo7wbg.js.map +1 -0
- package/build/server/chunks/chunks/{env2.js-DXveJt1Y.js → aws.js-DkPqAybc.js} +2 -59
- package/build/server/chunks/chunks/aws.js-DkPqAybc.js.map +1 -0
- package/build/server/chunks/chunks/band.js-C7izXphE.js +155 -0
- package/build/server/chunks/chunks/band.js-C7izXphE.js.map +1 -0
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js +1356 -0
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js.map +1 -0
- package/build/server/chunks/chunks/common.js-BWQB8Die.js +5760 -0
- package/build/server/chunks/chunks/common.js-BWQB8Die.js.map +1 -0
- package/build/server/chunks/chunks/env2.js-CcIskxOZ.js +60 -0
- package/build/server/chunks/chunks/env2.js-CcIskxOZ.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-CvFPPbaH.js → exports.js-ClPPfcHj.js} +6 -1
- package/build/server/chunks/chunks/exports.js-ClPPfcHj.js.map +1 -0
- package/build/server/chunks/chunks/group.js-DBFzWAox.js +30 -0
- package/build/server/chunks/chunks/group.js-DBFzWAox.js.map +1 -0
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js +248 -0
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js.map +1 -0
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js +2 -0
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js.map +1 -0
- package/build/server/chunks/chunks/{internal2.js-DZ8ZzzjN.js → internal.js-DZ8ZzzjN.js} +1 -1
- package/build/server/chunks/chunks/internal.js-DZ8ZzzjN.js.map +1 -0
- package/build/server/chunks/chunks/internal2.js-BPo5dcDi.js +188 -0
- package/build/server/chunks/chunks/internal2.js-BPo5dcDi.js.map +1 -0
- package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js +695 -0
- package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js.map +1 -0
- package/build/server/chunks/chunks/{internal.js-Cc3oBhL-.js → legacy-client.js-DJmDw3Zx.js} +13 -439
- package/build/server/chunks/chunks/legacy-client.js-DJmDw3Zx.js.map +1 -0
- package/build/server/chunks/chunks/level-filter.js-B3o2hyWD.js +313 -0
- package/build/server/chunks/chunks/level-filter.js-B3o2hyWD.js.map +1 -0
- package/build/server/chunks/chunks/lineRadial.js-Dm0GMqo3.js +126 -0
- package/build/server/chunks/chunks/lineRadial.js-Dm0GMqo3.js.map +1 -0
- package/build/server/chunks/chunks/linear.js-CTOKrHn9.js +1046 -0
- package/build/server/chunks/chunks/linear.js-CTOKrHn9.js.map +1 -0
- package/build/server/chunks/chunks/log-buffer.js-BI_gQOls.js +587 -0
- package/build/server/chunks/chunks/log-buffer.js-BI_gQOls.js.map +1 -0
- package/build/server/chunks/chunks/math.js-BqujbaBs.js +50 -0
- package/build/server/chunks/chunks/math.js-BqujbaBs.js.map +1 -0
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js +11 -0
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js.map +1 -0
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js +11 -0
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js.map +1 -0
- package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js +677 -0
- package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js.map +1 -0
- package/build/server/chunks/chunks/occlusion.js-DJ-AdK9u.js +33 -0
- package/build/server/chunks/chunks/occlusion.js-DJ-AdK9u.js.map +1 -0
- package/build/server/chunks/chunks/path.js-BizMrlzb.js +488 -0
- package/build/server/chunks/chunks/path.js-BizMrlzb.js.map +1 -0
- package/build/server/chunks/chunks/path2.js-pquT2Kg6.js +27 -0
- package/build/server/chunks/chunks/path2.js-pquT2Kg6.js.map +1 -0
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js +7 -0
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js.map +1 -0
- package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js +187 -0
- package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js.map +1 -0
- package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js +276 -0
- package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js.map +1 -0
- package/build/server/chunks/chunks/series-buckets.js-BjigySff.js +290 -0
- package/build/server/chunks/chunks/series-buckets.js-BjigySff.js.map +1 -0
- package/build/server/chunks/chunks/{server.js-ByNB8uti.js → server.js-CAEBuMIH.js} +167 -2
- package/build/server/chunks/chunks/server.js-CAEBuMIH.js.map +1 -0
- package/build/server/chunks/chunks/source.js-DZEVvuho.js +21 -0
- package/build/server/chunks/chunks/source.js-DZEVvuho.js.map +1 -0
- package/build/server/chunks/chunks/{state.js-9DxsWxU-.js → state.js-DgkwfYFo.js} +5 -4
- package/build/server/chunks/chunks/state.js-DgkwfYFo.js.map +1 -0
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js +11 -0
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js +39 -0
- package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-BOjix7GN.js → _server.ts.js-VctnBhIJ.js} +5 -4
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-VctnBhIJ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/identity/{_server.ts.js-g13uvmrX.js → _server.ts.js-Dt540Sio.js} +4 -3
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-Dt540Sio.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-CmHRxdZK.js → _server.ts.js-drLgUdvB.js} +57 -8
- package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-drLgUdvB.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/regions/{_server.ts.js-BgUwioxp.js → _server.ts.js-CBqfN6Pg.js} +5 -4
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-CBqfN6Pg.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js +225 -0
- package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-CIYo4C-0.js → _server.ts.js-BWRHawY8.js} +324 -223
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BWRHawY8.js.map +1 -0
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CFonuZkV.js → error.svelte.js-CsCL5PMW.js} +7 -5
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CFonuZkV.js.map → error.svelte.js-CsCL5PMW.js.map} +1 -1
- package/build/server/chunks/entries/pages/{_layout.svelte.js-Dzluuq12.js → _layout.svelte.js-CBQpEToy.js} +2 -2
- package/build/server/chunks/entries/pages/{_layout.svelte.js-Dzluuq12.js.map → _layout.svelte.js-CBQpEToy.js.map} +1 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-qqtU0apo.js +1641 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-qqtU0apo.js.map +1 -0
- package/build/server/chunks/{handler-DS32NMsJ.js → handler-DlfTB05m.js} +3 -3
- package/build/server/chunks/{handler-DS32NMsJ.js.map → handler-DlfTB05m.js.map} +1 -1
- package/build/server/chunks/{index.js-HHu-yOEK.js → index.js-BMrd9hfO.js} +6 -5
- package/build/server/chunks/index.js-BMrd9hfO.js.map +1 -0
- package/build/server/chunks/{manifest.js-BUrA7Zyr.js → manifest.js-D1kCuVe5.js} +24 -10
- package/build/server/chunks/manifest.js-D1kCuVe5.js.map +1 -0
- package/build/server/chunks/nodes/0.js-CNFDDPj5.js +9 -0
- package/build/server/chunks/nodes/{0.js-gSRmrAt_.js.map → 0.js-CNFDDPj5.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-B5FPLYnf.js +9 -0
- package/build/server/chunks/nodes/{1.js-D68K7Ad_.js.map → 1.js-B5FPLYnf.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BEuxzw6b.js +9 -0
- package/build/server/chunks/nodes/2.js-BEuxzw6b.js.map +1 -0
- package/dist/cli/completions.js +6 -0
- package/dist/cli/index.js +131 -88
- package/dist/cli/options.js +28 -2
- package/dist/cli/preflight.js +30 -0
- package/dist/cli/ui.js +18 -3
- package/dist/lib/cli/aws.js +12 -4
- package/dist/lib/log-buffer.js +443 -0
- package/dist/lib/log-format.js +185 -0
- package/dist/lib/types.js +0 -4
- package/package.json +6 -2
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css +0 -2
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js +0 -1
- package/build/client/_app/immutable/chunks/De_x7GQi.js.br +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js +0 -3
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Be166AxG.js +0 -2
- package/build/client/_app/immutable/entry/app.Be166AxG.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Be166AxG.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js +0 -1
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.br +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js +0 -1
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.br +0 -4
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js +0 -1
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js +0 -5
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.gz +0 -0
- package/build/server/chunks/chunks/env2.js-DXveJt1Y.js.map +0 -1
- package/build/server/chunks/chunks/exports.js-CvFPPbaH.js.map +0 -1
- package/build/server/chunks/chunks/internal.js-Cc3oBhL-.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-DZ8ZzzjN.js.map +0 -1
- package/build/server/chunks/chunks/server.js-ByNB8uti.js.map +0 -1
- package/build/server/chunks/chunks/state.js-9DxsWxU-.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BOjix7GN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-g13uvmrX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-CmHRxdZK.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-BgUwioxp.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-CIYo4C-0.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-CpwYbxbM.js +0 -1291
- package/build/server/chunks/entries/pages/_page.svelte.js-CpwYbxbM.js.map +0 -1
- package/build/server/chunks/index.js-HHu-yOEK.js.map +0 -1
- package/build/server/chunks/manifest.js-BUrA7Zyr.js.map +0 -1
- package/build/server/chunks/nodes/0.js-gSRmrAt_.js +0 -9
- package/build/server/chunks/nodes/1.js-D68K7Ad_.js +0 -9
- package/build/server/chunks/nodes/2.js-ChYsaaoC.js +0 -9
- package/build/server/chunks/nodes/2.js-ChYsaaoC.js.map +0 -1
|
@@ -10,11 +10,11 @@ return {
|
|
|
10
10
|
assets: new Set(["robots.txt"]),
|
|
11
11
|
mimeTypes: {".txt":"text/plain"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.2H5s3Lol.js",app:"_app/immutable/entry/app.DFSifnlU.js",imports:["_app/immutable/entry/start.2H5s3Lol.js","_app/immutable/chunks/BOT2hFMn.js","_app/immutable/chunks/pqiPC7Y8.js","_app/immutable/entry/app.DFSifnlU.js","_app/immutable/chunks/pqiPC7Y8.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./nodes/0.js-
|
|
16
|
-
__memo(() => import('./nodes/1.js-
|
|
17
|
-
__memo(() => import('./nodes/2.js-
|
|
15
|
+
__memo(() => import('./nodes/0.js-CNFDDPj5.js')),
|
|
16
|
+
__memo(() => import('./nodes/1.js-B5FPLYnf.js')),
|
|
17
|
+
__memo(() => import('./nodes/2.js-BEuxzw6b.js'))
|
|
18
18
|
],
|
|
19
19
|
remotes: {
|
|
20
20
|
|
|
@@ -27,40 +27,54 @@ return {
|
|
|
27
27
|
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
|
28
28
|
endpoint: null
|
|
29
29
|
},
|
|
30
|
+
{
|
|
31
|
+
id: "/api/archive",
|
|
32
|
+
pattern: /^\/api\/archive\/?$/,
|
|
33
|
+
params: [],
|
|
34
|
+
page: null,
|
|
35
|
+
endpoint: __memo(() => import('./entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js'))
|
|
36
|
+
},
|
|
30
37
|
{
|
|
31
38
|
id: "/api/health",
|
|
32
39
|
pattern: /^\/api\/health\/?$/,
|
|
33
40
|
params: [],
|
|
34
41
|
page: null,
|
|
35
|
-
endpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js-
|
|
42
|
+
endpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js-VctnBhIJ.js'))
|
|
36
43
|
},
|
|
37
44
|
{
|
|
38
45
|
id: "/api/identity",
|
|
39
46
|
pattern: /^\/api\/identity\/?$/,
|
|
40
47
|
params: [],
|
|
41
48
|
page: null,
|
|
42
|
-
endpoint: __memo(() => import('./entries/endpoints/api/identity/_server.ts.js-
|
|
49
|
+
endpoint: __memo(() => import('./entries/endpoints/api/identity/_server.ts.js-Dt540Sio.js'))
|
|
43
50
|
},
|
|
44
51
|
{
|
|
45
52
|
id: "/api/log-groups",
|
|
46
53
|
pattern: /^\/api\/log-groups\/?$/,
|
|
47
54
|
params: [],
|
|
48
55
|
page: null,
|
|
49
|
-
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-
|
|
56
|
+
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-drLgUdvB.js'))
|
|
50
57
|
},
|
|
51
58
|
{
|
|
52
59
|
id: "/api/regions",
|
|
53
60
|
pattern: /^\/api\/regions\/?$/,
|
|
54
61
|
params: [],
|
|
55
62
|
page: null,
|
|
56
|
-
endpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js-
|
|
63
|
+
endpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js-CBqfN6Pg.js'))
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "/api/series",
|
|
67
|
+
pattern: /^\/api\/series\/?$/,
|
|
68
|
+
params: [],
|
|
69
|
+
page: null,
|
|
70
|
+
endpoint: __memo(() => import('./entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js'))
|
|
57
71
|
},
|
|
58
72
|
{
|
|
59
73
|
id: "/api/stream",
|
|
60
74
|
pattern: /^\/api\/stream\/?$/,
|
|
61
75
|
params: [],
|
|
62
76
|
page: null,
|
|
63
|
-
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-
|
|
77
|
+
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-BWRHawY8.js'))
|
|
64
78
|
}
|
|
65
79
|
],
|
|
66
80
|
prerendered_routes: new Set([]),
|
|
@@ -74,4 +88,4 @@ return {
|
|
|
74
88
|
})();
|
|
75
89
|
|
|
76
90
|
export { manifest as m };
|
|
77
|
-
//# sourceMappingURL=manifest.js-
|
|
91
|
+
//# sourceMappingURL=manifest.js-D1kCuVe5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js-D1kCuVe5.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.2H5s3Lol.js\",app:\"_app/immutable/entry/app.DFSifnlU.js\",imports:[\"_app/immutable/entry/start.2H5s3Lol.js\",\"_app/immutable/chunks/BOT2hFMn.js\",\"_app/immutable/chunks/pqiPC7Y8.js\",\"_app/immutable/entry/app.DFSifnlU.js\",\"_app/immutable/chunks/pqiPC7Y8.js\",\"_app/immutable/chunks/HclGiUj8.js\",\"_app/immutable/chunks/xihTtKlq.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/archive\",\n\t\t\t\tpattern: /^\\/api\\/archive\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/archive/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/health\",\n\t\t\t\tpattern: /^\\/api\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/identity\",\n\t\t\t\tpattern: /^\\/api\\/identity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/identity/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/log-groups\",\n\t\t\t\tpattern: /^\\/api\\/log-groups\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/regions\",\n\t\t\t\tpattern: /^\\/api\\/regions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/series\",\n\t\t\t\tpattern: /^\\/api\\/series\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/series/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/stream\",\n\t\t\t\tpattern: /^\\/api\\/stream\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js'))\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACza,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,2DAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,0DAA8C,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,sBAAsB;AACnC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,4DAAgD,CAAC;AACnF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,8DAAkD,CAAC;AACrF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,2DAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,0DAA8C,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,0DAA8C,CAAC;AACjF;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 0;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-CBQpEToy.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/0.BN3NguWs.js","_app/immutable/chunks/pqiPC7Y8.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/0.Dfts6BC4.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=0.js-CNFDDPj5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0.js-
|
|
1
|
+
{"version":3,"file":"0.js-CNFDDPj5.js","sources":["../../../../.svelte-kit/output/server/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.BN3NguWs.js\",\"_app/immutable/chunks/pqiPC7Y8.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.Dfts6BC4.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,gDAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-CsCL5PMW.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.Djdw1GzA.js","_app/immutable/chunks/pqiPC7Y8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BsH4MNzX.js","_app/immutable/chunks/BOT2hFMn.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=1.js-B5FPLYnf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1.js-
|
|
1
|
+
{"version":3,"file":"1.js-B5FPLYnf.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.Djdw1GzA.js\",\"_app/immutable/chunks/pqiPC7Y8.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BsH4MNzX.js\",\"_app/immutable/chunks/BOT2hFMn.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 2;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-qqtU0apo.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/2.CjvaJDQJ.js","_app/immutable/chunks/pqiPC7Y8.js","_app/immutable/chunks/BOT2hFMn.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BsH4MNzX.js","_app/immutable/chunks/BjxZ_neZ.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/Path.B0wDzTrn.css","_app/immutable/assets/Circle.C5MKzgk2.css","_app/immutable/assets/EventScatter.DA5sZ1c0.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=2.js-BEuxzw6b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2.js-BEuxzw6b.js","sources":["../../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/2.CjvaJDQJ.js\",\"_app/immutable/chunks/pqiPC7Y8.js\",\"_app/immutable/chunks/BOT2hFMn.js\",\"_app/immutable/chunks/HclGiUj8.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BsH4MNzX.js\",\"_app/immutable/chunks/BjxZ_neZ.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Path.B0wDzTrn.css\",\"_app/immutable/assets/Circle.C5MKzgk2.css\",\"_app/immutable/assets/EventScatter.DA5sZ1c0.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8CAAkC,CAAC,EAAE;AAChG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,iDAAiD;AACvJ,MAAC,KAAK,GAAG;;"}
|
package/dist/cli/completions.js
CHANGED
|
@@ -62,6 +62,12 @@ function registerCompletionSpec(profiles = []) {
|
|
|
62
62
|
t.option('print', 'Print the environment and exit');
|
|
63
63
|
t.option('list', 'List AWS profiles and exit');
|
|
64
64
|
t.option('verbose', 'Log the server output');
|
|
65
|
+
t.option('db', 'Database file for local history', function (complete) {
|
|
66
|
+
complete('./logs.duckdb', 'archive in the current directory');
|
|
67
|
+
complete('~/watch-tail.duckdb', 'archive in your home directory');
|
|
68
|
+
});
|
|
69
|
+
t.option('archive', 'Keep a local history archive (default)');
|
|
70
|
+
t.option('no-archive', 'Do not keep a local history archive');
|
|
65
71
|
t.option('help', 'Show help', undefined, 'h');
|
|
66
72
|
t.option('version', 'Show the version', undefined, 'v');
|
|
67
73
|
const complete = t.command('complete', 'Print a shell completion script');
|
package/dist/cli/index.js
CHANGED
|
@@ -15,8 +15,8 @@ import { classifyCredentialFailure, describeStyle, isCredentialFailure, loginAdv
|
|
|
15
15
|
import { handleCompletion } from "./completions.js";
|
|
16
16
|
import { isLoopbackHost, parseCliArgs, usageText } from "./options.js";
|
|
17
17
|
import { appRootFromHere, healthUrl, openBrowser as openBrowserDefault, startServer, stopServer, uiUrl, waitForHealth, } from "./server.js";
|
|
18
|
-
import { isHeadless, probeCredentials as probeCredentialsDefault, readIdentity as readIdentityDefault, runLogin as runLoginDefault, shortIdentity, } from "./preflight.js";
|
|
19
|
-
import { createUi, isInteractive } from "./ui.js";
|
|
18
|
+
import { describeArchive, isHeadless, probeCredentials as probeCredentialsDefault, readArchive as readArchiveDefault, readIdentity as readIdentityDefault, runLogin as runLoginDefault, shortIdentity, } from "./preflight.js";
|
|
19
|
+
import { PromptCancelled, createUi, isInteractive } from "./ui.js";
|
|
20
20
|
/** Reads the version from the package manifest next to the app root. */
|
|
21
21
|
export function readVersion(appRoot) {
|
|
22
22
|
const fallback = '0.0.0';
|
|
@@ -75,6 +75,7 @@ function defaultIo() {
|
|
|
75
75
|
probeCredentials: (input) => probeCredentialsDefault(input),
|
|
76
76
|
runLogin: (command) => runLoginDefault(command),
|
|
77
77
|
readIdentity: (input) => readIdentityDefault(input),
|
|
78
|
+
readArchive: (input) => readArchiveDefault(input),
|
|
78
79
|
waitForHealth,
|
|
79
80
|
startServerImpl: startServer,
|
|
80
81
|
spawnImpl: spawn,
|
|
@@ -229,6 +230,7 @@ export async function run(argv, overrides = {}) {
|
|
|
229
230
|
region,
|
|
230
231
|
endpoint: options.endpoint,
|
|
231
232
|
clearStaticKeys: options.profile === null && profile !== null,
|
|
233
|
+
archive: { enabled: options.archive, path: options.db },
|
|
232
234
|
});
|
|
233
235
|
if (options.print) {
|
|
234
236
|
for (const line of describeChildEnv(childEnv))
|
|
@@ -267,104 +269,145 @@ export async function run(argv, overrides = {}) {
|
|
|
267
269
|
host: options.host,
|
|
268
270
|
verbose: options.verbose,
|
|
269
271
|
});
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
return 1;
|
|
275
|
-
}
|
|
276
|
-
ui.stopSpinner(`listening on ${url}`);
|
|
277
|
-
// Before sending anyone to a UI that cannot load logs, check that AWS will
|
|
278
|
-
// actually answer, and offer the login that fixes it.
|
|
279
|
-
const assessment = await assessCredentials({
|
|
280
|
-
options,
|
|
281
|
-
io,
|
|
282
|
-
ui,
|
|
283
|
-
url,
|
|
284
|
-
region,
|
|
285
|
-
startProfile: profile,
|
|
286
|
-
});
|
|
287
|
-
if (assessment.status === 'other') {
|
|
288
|
-
ui.warn(`could not list log groups: ${assessment.message}`);
|
|
289
|
-
}
|
|
290
|
-
if (assessment.status === 'credentials') {
|
|
291
|
-
// A profile that was not in play needs the app restarted with it: that is
|
|
292
|
-
// the only way to find out whether its credentials already work, and the
|
|
293
|
-
// only way the browser can use it.
|
|
294
|
-
const activeProfile = assessment.chosen === null ? null : assessment.chosen;
|
|
295
|
-
let activeRegion = region;
|
|
296
|
-
let failureMessage = assessment.message;
|
|
297
|
-
let failureCode = assessment.code;
|
|
298
|
-
if (assessment.chosen !== null) {
|
|
299
|
-
activeRegion = resolveRunRegion({
|
|
300
|
-
region: options.region,
|
|
301
|
-
profile: assessment.chosen,
|
|
302
|
-
base: io.env,
|
|
303
|
-
configText: io.readConfigText(),
|
|
304
|
-
});
|
|
305
|
-
ui.info(`restarting with profile ${assessment.chosen}`);
|
|
272
|
+
try {
|
|
273
|
+
const ready = await io.waitForHealth(healthUrl(url), { fetchImpl: fetch });
|
|
274
|
+
if (!ready) {
|
|
275
|
+
ui.failSpinner(`the server did not answer on ${url}`);
|
|
306
276
|
await stopServer(child);
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
await stopServer(child);
|
|
323
|
-
return 1;
|
|
277
|
+
return 1;
|
|
278
|
+
}
|
|
279
|
+
ui.stopSpinner(`listening on ${url}`);
|
|
280
|
+
// Report where history is kept before the AWS check: it is the one thing the
|
|
281
|
+
// UI can offer even when credentials are not usable yet.
|
|
282
|
+
if (!options.archive) {
|
|
283
|
+
ui.info('local history off (--no-archive)');
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
const archive = await io.readArchive({ baseUrl: url });
|
|
287
|
+
if (archive.ok) {
|
|
288
|
+
if (archive.status.available)
|
|
289
|
+
ui.info(describeArchive(archive.status));
|
|
290
|
+
else
|
|
291
|
+
ui.warn(describeArchive(archive.status));
|
|
324
292
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
if (identity.ok) {
|
|
328
|
-
ui.info(`profile ${assessment.chosen} already works (${shortIdentity(identity.identity.arn)}) - using it`);
|
|
329
|
-
ui.outro(`${url} (Ctrl+C to stop)`);
|
|
330
|
-
if (options.open)
|
|
331
|
-
io.openBrowser(url);
|
|
332
|
-
const code = await io.waitForStop(child);
|
|
333
|
-
ui.outro('stopped');
|
|
334
|
-
return code;
|
|
293
|
+
else {
|
|
294
|
+
ui.warn(`could not read the local history status: ${archive.message}`);
|
|
335
295
|
}
|
|
336
|
-
failureMessage = identity.message;
|
|
337
|
-
failureCode = identity.code;
|
|
338
296
|
}
|
|
339
|
-
|
|
297
|
+
// Before sending anyone to a UI that cannot load logs, check that AWS will
|
|
298
|
+
// actually answer, and offer the login that fixes it.
|
|
299
|
+
const assessment = await assessCredentials({
|
|
340
300
|
options,
|
|
341
301
|
io,
|
|
342
302
|
ui,
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
303
|
+
url,
|
|
304
|
+
region,
|
|
305
|
+
startProfile: profile,
|
|
346
306
|
});
|
|
347
|
-
if (
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
307
|
+
if (assessment.status === 'other') {
|
|
308
|
+
ui.warn(`could not list log groups: ${assessment.message}`);
|
|
309
|
+
}
|
|
310
|
+
if (assessment.status === 'credentials') {
|
|
311
|
+
// A profile that was not in play needs the app restarted with it: that is
|
|
312
|
+
// the only way to find out whether its credentials already work, and the
|
|
313
|
+
// only way the browser can use it.
|
|
314
|
+
const activeProfile = assessment.chosen === null ? null : assessment.chosen;
|
|
315
|
+
let activeRegion = region;
|
|
316
|
+
let failureMessage = assessment.message;
|
|
317
|
+
let failureCode = assessment.code;
|
|
318
|
+
if (assessment.chosen !== null) {
|
|
319
|
+
activeRegion = resolveRunRegion({
|
|
320
|
+
region: options.region,
|
|
321
|
+
profile: assessment.chosen,
|
|
322
|
+
base: io.env,
|
|
323
|
+
configText: io.readConfigText(),
|
|
324
|
+
});
|
|
325
|
+
ui.info(`restarting with profile ${assessment.chosen}`);
|
|
326
|
+
await stopServer(child);
|
|
327
|
+
child = io.startServerImpl({
|
|
328
|
+
appRoot: io.appRoot,
|
|
329
|
+
env: buildChildEnv({
|
|
330
|
+
base: baseEnv,
|
|
331
|
+
profile: assessment.chosen,
|
|
332
|
+
region: activeRegion,
|
|
333
|
+
endpoint: null,
|
|
334
|
+
archive: { enabled: options.archive, path: options.db },
|
|
335
|
+
}),
|
|
336
|
+
port: options.port,
|
|
337
|
+
host: options.host,
|
|
338
|
+
verbose: options.verbose,
|
|
339
|
+
});
|
|
340
|
+
const healthy = await io.waitForHealth(healthUrl(url), { fetchImpl: fetch });
|
|
341
|
+
if (!healthy) {
|
|
342
|
+
ui.failSpinner(`the server did not come back up on ${url}`);
|
|
343
|
+
await stopServer(child);
|
|
344
|
+
return 1;
|
|
345
|
+
}
|
|
346
|
+
// Now the question is about the chosen profile, not the ambient one.
|
|
347
|
+
const identity = await io.readIdentity({ baseUrl: url, region: activeRegion });
|
|
348
|
+
if (identity.ok) {
|
|
349
|
+
ui.info(`profile ${assessment.chosen} already works (${shortIdentity(identity.identity.arn)}) - using it`);
|
|
350
|
+
ui.outro(`${url} (Ctrl+C to stop)`);
|
|
351
|
+
if (options.open)
|
|
352
|
+
io.openBrowser(url);
|
|
353
|
+
const code = await io.waitForStop(child);
|
|
354
|
+
ui.outro('stopped');
|
|
355
|
+
return code;
|
|
356
|
+
}
|
|
357
|
+
failureMessage = identity.message;
|
|
358
|
+
failureCode = identity.code;
|
|
351
359
|
}
|
|
352
|
-
|
|
353
|
-
|
|
360
|
+
const outcome = await offerLogin({
|
|
361
|
+
options,
|
|
362
|
+
io,
|
|
363
|
+
ui,
|
|
364
|
+
profile: activeProfile ?? assessment.profile,
|
|
365
|
+
failureMessage,
|
|
366
|
+
failureCode,
|
|
367
|
+
});
|
|
368
|
+
if (outcome.login === 'succeeded') {
|
|
369
|
+
const identity = await io.readIdentity({ baseUrl: url, region: activeRegion });
|
|
370
|
+
if (identity.ok) {
|
|
371
|
+
ui.info(`signed in as ${shortIdentity(identity.identity.arn)}${activeProfile === null ? '' : ` (${activeProfile})`}`);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
ui.warn(`still failing after login: ${identity.message}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else if (activeProfile !== null) {
|
|
378
|
+
ui.info(`the app is using profile ${activeProfile}; log in, then press Refresh in the UI`);
|
|
354
379
|
}
|
|
355
380
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}
|
|
381
|
+
if (options.open)
|
|
382
|
+
io.openBrowser(url);
|
|
383
|
+
ui.outro(`${url} (Ctrl+C to stop)`);
|
|
384
|
+
const code = await io.waitForStop(child);
|
|
385
|
+
ui.outro('stopped');
|
|
386
|
+
return code;
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
if (!(error instanceof PromptCancelled))
|
|
390
|
+
throw error;
|
|
391
|
+
// Ctrl+C at a prompt is a stop, not an answer to the question: shut the
|
|
392
|
+
// server down and report it the same way a Ctrl+C at a running server does.
|
|
393
|
+
ui.outro('stopped');
|
|
394
|
+
return await stopServer(child);
|
|
359
395
|
}
|
|
360
|
-
if (options.open)
|
|
361
|
-
io.openBrowser(url);
|
|
362
|
-
ui.outro(`${url} (Ctrl+C to stop)`);
|
|
363
|
-
const code = await io.waitForStop(child);
|
|
364
|
-
ui.outro('stopped');
|
|
365
|
-
return code;
|
|
366
396
|
}
|
|
367
|
-
/**
|
|
397
|
+
/**
|
|
398
|
+
* Entry point used by `bin.ts`: runs the CLI and sets the exit code.
|
|
399
|
+
*
|
|
400
|
+
* A cancelled prompt that `run` did not convert into a stop still exits like an
|
|
401
|
+
* interrupted process (130) instead of throwing "the prompt was cancelled" at
|
|
402
|
+
* someone who just pressed Ctrl+C.
|
|
403
|
+
*/
|
|
368
404
|
export async function main(argv = process.argv.slice(2)) {
|
|
369
|
-
|
|
405
|
+
try {
|
|
406
|
+
process.exitCode = await run(argv);
|
|
407
|
+
}
|
|
408
|
+
catch (error) {
|
|
409
|
+
if (!(error instanceof PromptCancelled))
|
|
410
|
+
throw error;
|
|
411
|
+
process.exitCode = 130;
|
|
412
|
+
}
|
|
370
413
|
}
|
package/dist/cli/options.js
CHANGED
|
@@ -32,6 +32,9 @@ const KNOWN_FLAGS = new Set([
|
|
|
32
32
|
'version',
|
|
33
33
|
'v',
|
|
34
34
|
'verbose',
|
|
35
|
+
'archive',
|
|
36
|
+
'no-archive',
|
|
37
|
+
'db',
|
|
35
38
|
]);
|
|
36
39
|
function asString(value) {
|
|
37
40
|
if (typeof value === 'string') {
|
|
@@ -63,8 +66,19 @@ export function parseCliArgs(argv) {
|
|
|
63
66
|
try {
|
|
64
67
|
parsed = parse(words, {
|
|
65
68
|
alias: { p: 'profile', r: 'region', h: 'help', v: 'version' },
|
|
66
|
-
boolean: [
|
|
67
|
-
|
|
69
|
+
boolean: [
|
|
70
|
+
'floci',
|
|
71
|
+
'open',
|
|
72
|
+
'no-open',
|
|
73
|
+
'print',
|
|
74
|
+
'list',
|
|
75
|
+
'help',
|
|
76
|
+
'version',
|
|
77
|
+
'verbose',
|
|
78
|
+
'archive',
|
|
79
|
+
'no-archive',
|
|
80
|
+
],
|
|
81
|
+
string: ['profile', 'region', 'port', 'host', 'endpoint', 'db'],
|
|
68
82
|
default: { open: true },
|
|
69
83
|
});
|
|
70
84
|
}
|
|
@@ -102,6 +116,8 @@ export function parseCliArgs(argv) {
|
|
|
102
116
|
help: asFlag(parsed.help),
|
|
103
117
|
version: asFlag(parsed.version),
|
|
104
118
|
verbose: asFlag(parsed.verbose),
|
|
119
|
+
archive: !asFlag(parsed['no-archive']) && parsed.archive !== false,
|
|
120
|
+
db: asString(parsed.db),
|
|
105
121
|
complete: null,
|
|
106
122
|
},
|
|
107
123
|
};
|
|
@@ -120,6 +136,8 @@ export function defaults() {
|
|
|
120
136
|
help: false,
|
|
121
137
|
version: false,
|
|
122
138
|
verbose: false,
|
|
139
|
+
archive: true,
|
|
140
|
+
db: null,
|
|
123
141
|
complete: null,
|
|
124
142
|
};
|
|
125
143
|
}
|
|
@@ -153,6 +171,8 @@ Options
|
|
|
153
171
|
--print Print the environment that would be used, then exit
|
|
154
172
|
--list List the AWS profiles found on disk, then exit
|
|
155
173
|
--verbose Log the server's own output
|
|
174
|
+
--db <path> Database file for local history (default: app data dir)
|
|
175
|
+
--no-archive Do not keep a local history archive
|
|
156
176
|
-h, --help Show this help
|
|
157
177
|
-v, --version Show the version
|
|
158
178
|
|
|
@@ -164,6 +184,12 @@ Examples
|
|
|
164
184
|
npx watch-tail
|
|
165
185
|
npx watch-tail --profile my-profile --region eu-west-1
|
|
166
186
|
npx watch-tail --floci --port 4600 --no-open
|
|
187
|
+
npx watch-tail --db ./logs.duckdb (history in a file you choose)
|
|
188
|
+
|
|
189
|
+
Everything the app streams is also archived to a local DuckDB file, so the UI can
|
|
190
|
+
browse history later without calling AWS. Use --no-archive to switch that off, or
|
|
191
|
+
--db to keep the archive somewhere else. The database needs the optional DuckDB
|
|
192
|
+
driver: when it is missing, the app runs exactly as before, without history.
|
|
167
193
|
|
|
168
194
|
The app streams whatever your ambient AWS credentials can read. Credentials are
|
|
169
195
|
resolved by the AWS SDK (SSO, shared config, environment, instance role); the CLI
|
package/dist/cli/preflight.js
CHANGED
|
@@ -113,3 +113,33 @@ export function shortIdentity(arn) {
|
|
|
113
113
|
return name;
|
|
114
114
|
return parts.at(-1) ?? arn;
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Asks the app what the local DuckDB archive holds.
|
|
118
|
+
*
|
|
119
|
+
* The route always answers 200 (an unavailable archive is reported inside the
|
|
120
|
+
* payload), so a failure here means the app itself could not be reached. The CLI
|
|
121
|
+
* only prints the result: nothing about startup depends on it.
|
|
122
|
+
*/
|
|
123
|
+
export async function readArchive(input) {
|
|
124
|
+
const { baseUrl, fetchImpl = fetch, timeoutMs = 5000 } = input;
|
|
125
|
+
try {
|
|
126
|
+
const response = await fetchImpl(new URL('/api/archive', baseUrl), {
|
|
127
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
128
|
+
});
|
|
129
|
+
if (!response.ok)
|
|
130
|
+
return { ok: false, message: `HTTP ${response.status}` };
|
|
131
|
+
return { ok: true, status: (await response.json()) };
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
return { ok: false, message: error instanceof Error ? error.message : String(error) };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** One line describing the archive for the startup banner. */
|
|
138
|
+
export function describeArchive(status) {
|
|
139
|
+
if (!status.available)
|
|
140
|
+
return `local history unavailable: ${status.error ?? 'unknown reason'}`;
|
|
141
|
+
const count = status.rows === 0
|
|
142
|
+
? 'no events yet'
|
|
143
|
+
: `${status.rows.toLocaleString('en-US')} event${status.rows === 1 ? '' : 's'}`;
|
|
144
|
+
return `history ${count} at ${status.path}`;
|
|
145
|
+
}
|
package/dist/cli/ui.js
CHANGED
|
@@ -6,6 +6,19 @@
|
|
|
6
6
|
* falls back to plain lines, which also keeps the integration tests readable.
|
|
7
7
|
*/
|
|
8
8
|
import { autocomplete, cancel, confirm, intro, isCancel, log, outro, spinner, } from '@clack/prompts';
|
|
9
|
+
/**
|
|
10
|
+
* Thrown when the user cancels a prompt with Ctrl+C.
|
|
11
|
+
*
|
|
12
|
+
* A cancel is not an answer: reading it as "No" is how the CLI used to keep
|
|
13
|
+
* running (server and all) after a Ctrl+C that looked like it did nothing, so
|
|
14
|
+
* the prompt layer raises this instead and the CLI stops cleanly.
|
|
15
|
+
*/
|
|
16
|
+
export class PromptCancelled extends Error {
|
|
17
|
+
constructor() {
|
|
18
|
+
super('the prompt was cancelled');
|
|
19
|
+
this.name = 'PromptCancelled';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
9
22
|
/**
|
|
10
23
|
* Decides whether the process can render animated output and ask questions.
|
|
11
24
|
*
|
|
@@ -72,14 +85,16 @@ export function createUi(options = {}) {
|
|
|
72
85
|
});
|
|
73
86
|
if (isCancel(answer)) {
|
|
74
87
|
cancel('Cancelled.');
|
|
75
|
-
|
|
88
|
+
throw new PromptCancelled();
|
|
76
89
|
}
|
|
77
90
|
return String(answer);
|
|
78
91
|
},
|
|
79
92
|
confirm: async (message, initial = true) => {
|
|
80
93
|
const answer = await confirm({ message, initialValue: initial });
|
|
81
|
-
if (isCancel(answer))
|
|
82
|
-
|
|
94
|
+
if (isCancel(answer)) {
|
|
95
|
+
cancel('Cancelled.');
|
|
96
|
+
throw new PromptCancelled();
|
|
97
|
+
}
|
|
83
98
|
return answer === true;
|
|
84
99
|
},
|
|
85
100
|
};
|
package/dist/lib/cli/aws.js
CHANGED
|
@@ -185,7 +185,7 @@ const EMULATOR_CREDENTIALS = { accessKeyId: 'test', secretAccessKey: 'test' };
|
|
|
185
185
|
* `AWS_DEFAULT_REGION`, which is how `--region` (or a region resolved by
|
|
186
186
|
* {@link resolveRunRegion}) wins over the profile.
|
|
187
187
|
*/
|
|
188
|
-
export function buildChildEnv({ base, profile = null, region = null, endpoint = null, clearStaticKeys = false, }) {
|
|
188
|
+
export function buildChildEnv({ base, profile = null, region = null, endpoint = null, clearStaticKeys = false, archive = null, }) {
|
|
189
189
|
const env = { ...base };
|
|
190
190
|
const name = normalize(profile);
|
|
191
191
|
const emulator = normalize(endpoint);
|
|
@@ -213,6 +213,12 @@ export function buildChildEnv({ base, profile = null, region = null, endpoint =
|
|
|
213
213
|
env.AWS_REGION = code;
|
|
214
214
|
env.AWS_DEFAULT_REGION = code;
|
|
215
215
|
}
|
|
216
|
+
if (archive !== null) {
|
|
217
|
+
// A blank value means "unset" to the server, so `--db` and `--no-archive`
|
|
218
|
+
// can each be expressed without removing the variable.
|
|
219
|
+
env.WATCH_STREAM_ARCHIVE = archive.enabled ? '' : 'off';
|
|
220
|
+
env.WATCH_STREAM_ARCHIVE_DB = archive.path ?? '';
|
|
221
|
+
}
|
|
216
222
|
return env;
|
|
217
223
|
}
|
|
218
224
|
/**
|
|
@@ -286,10 +292,12 @@ export function isEmulatorEndpoint(endpoint) {
|
|
|
286
292
|
* local emulator settings were neutralized for this run.
|
|
287
293
|
*/
|
|
288
294
|
export function describeChildEnv(env) {
|
|
289
|
-
return Object.keys(env)
|
|
290
|
-
|
|
295
|
+
return (Object.keys(env)
|
|
296
|
+
// `WATCH_STREAM_*` is part of the effective configuration too: a
|
|
297
|
+
// `--no-archive` or `--db` run is only reproducible if `--print` shows it.
|
|
298
|
+
.filter((key) => key.startsWith('AWS_') || key.startsWith('WATCH_STREAM_'))
|
|
291
299
|
.toSorted(compareNames)
|
|
292
|
-
.map((key) => `${key}=${env[key] ?? ''}`);
|
|
300
|
+
.map((key) => `${key}=${env[key] ?? ''}`));
|
|
293
301
|
}
|
|
294
302
|
/** Reads the shared AWS config file, or an empty string when it is missing. */
|
|
295
303
|
export function readConfigText(env = process.env) {
|