@beesolve/analytics-dashboard 0.0.0-stage → 0.2.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/DOCS.md +28 -0
- package/README.md +168 -2
- package/dist/authConsumer/authConsumer.mjs +26 -0
- package/dist/authConsumer/authConsumer.mjs.map +7 -0
- package/dist/authConsumer/bowser-YSBMONHT.mjs +2 -0
- package/dist/authConsumer/bowser-YSBMONHT.mjs.map +7 -0
- package/dist/authConsumer/chunk-5FKPGIT4.mjs +19 -0
- package/dist/authConsumer/chunk-5FKPGIT4.mjs.map +7 -0
- package/dist/authConsumer/chunk-A55324SF.mjs +2 -0
- package/dist/authConsumer/chunk-A55324SF.mjs.map +7 -0
- package/dist/authConsumer/chunk-BTFKTGDG.mjs +4 -0
- package/dist/authConsumer/chunk-BTFKTGDG.mjs.map +7 -0
- package/dist/authConsumer/chunk-C2HKOC4G.mjs +16 -0
- package/dist/authConsumer/chunk-C2HKOC4G.mjs.map +7 -0
- package/dist/authConsumer/chunk-CJTIV5DQ.mjs +2 -0
- package/dist/authConsumer/chunk-CJTIV5DQ.mjs.map +7 -0
- package/dist/authConsumer/chunk-HGD7WY52.mjs +2 -0
- package/dist/authConsumer/chunk-HGD7WY52.mjs.map +7 -0
- package/dist/authConsumer/chunk-JJCR37FH.mjs +10 -0
- package/dist/authConsumer/chunk-JJCR37FH.mjs.map +7 -0
- package/dist/authConsumer/chunk-NX6AKUU3.mjs +2 -0
- package/dist/authConsumer/chunk-NX6AKUU3.mjs.map +7 -0
- package/dist/authConsumer/chunk-OQ6H2FAT.mjs +2 -0
- package/dist/authConsumer/chunk-OQ6H2FAT.mjs.map +7 -0
- package/dist/authConsumer/chunk-SHDTR6JV.mjs +2 -0
- package/dist/authConsumer/chunk-SHDTR6JV.mjs.map +7 -0
- package/dist/authConsumer/chunk-UVVOS55R.mjs +2 -0
- package/dist/authConsumer/chunk-UVVOS55R.mjs.map +7 -0
- package/dist/authConsumer/chunk-VVQ6TCBE.mjs +2 -0
- package/dist/authConsumer/chunk-VVQ6TCBE.mjs.map +7 -0
- package/dist/authConsumer/chunk-WWJVMT5K.mjs +2 -0
- package/dist/authConsumer/chunk-WWJVMT5K.mjs.map +7 -0
- package/dist/authConsumer/chunk-XU7UBKPR.mjs +2 -0
- package/dist/authConsumer/chunk-XU7UBKPR.mjs.map +7 -0
- package/dist/authConsumer/dist-es-5RMISOKM.mjs +2 -0
- package/dist/authConsumer/dist-es-5RMISOKM.mjs.map +7 -0
- package/dist/authConsumer/dist-es-A3KZDGFL.mjs +2 -0
- package/dist/authConsumer/dist-es-A3KZDGFL.mjs.map +7 -0
- package/dist/authConsumer/dist-es-BARSD4VH.mjs +2 -0
- package/dist/authConsumer/dist-es-BARSD4VH.mjs.map +7 -0
- package/dist/authConsumer/dist-es-ICRQP6OY.mjs +7 -0
- package/dist/authConsumer/dist-es-ICRQP6OY.mjs.map +7 -0
- package/dist/authConsumer/dist-es-NSKORCUT.mjs +3 -0
- package/dist/authConsumer/dist-es-NSKORCUT.mjs.map +7 -0
- package/dist/authConsumer/dist-es-SJXVMHWV.mjs +2 -0
- package/dist/authConsumer/dist-es-SJXVMHWV.mjs.map +7 -0
- package/dist/authConsumer/dist-es-X5OVBSBE.mjs +2 -0
- package/dist/authConsumer/dist-es-X5OVBSBE.mjs.map +7 -0
- package/dist/authConsumer/dist-es-YZCOQZO5.mjs +3 -0
- package/dist/authConsumer/dist-es-YZCOQZO5.mjs.map +7 -0
- package/dist/authConsumer/event-streams-HKJTV7SP.mjs +2 -0
- package/dist/authConsumer/event-streams-HKJTV7SP.mjs.map +7 -0
- package/dist/authConsumer/event-streams-WPTL7RJA.mjs +2 -0
- package/dist/authConsumer/event-streams-WPTL7RJA.mjs.map +7 -0
- package/dist/authConsumer/loadSso-4CGEWHWX.mjs +2 -0
- package/dist/authConsumer/loadSso-4CGEWHWX.mjs.map +7 -0
- package/dist/authConsumer/signin-FWYC566H.mjs +2 -0
- package/dist/authConsumer/signin-FWYC566H.mjs.map +7 -0
- package/dist/authConsumer/sso-oidc-7RHBKIHO.mjs +2 -0
- package/dist/authConsumer/sso-oidc-7RHBKIHO.mjs.map +7 -0
- package/dist/authConsumer/sts-CPERFVPD.mjs +2 -0
- package/dist/authConsumer/sts-CPERFVPD.mjs.map +7 -0
- package/dist/build/client/_app/immutable/assets/0.DRO3o7Ky.css +1 -0
- package/dist/build/client/_app/immutable/assets/0.DRO3o7Ky.css.br +0 -0
- package/dist/build/client/_app/immutable/assets/0.DRO3o7Ky.css.gz +0 -0
- package/dist/build/client/_app/immutable/assets/3.Kr4XtrhX.css +1 -0
- package/dist/build/client/_app/immutable/assets/3.Kr4XtrhX.css.br +0 -0
- package/dist/build/client/_app/immutable/assets/3.Kr4XtrhX.css.gz +0 -0
- package/dist/build/client/_app/immutable/assets/4.pzhatwyO.css +1 -0
- package/dist/build/client/_app/immutable/assets/4.pzhatwyO.css.br +3 -0
- package/dist/build/client/_app/immutable/assets/4.pzhatwyO.css.gz +0 -0
- package/dist/build/client/_app/immutable/assets/7.CLAH1zbo.css +1 -0
- package/dist/build/client/_app/immutable/assets/7.CLAH1zbo.css.br +0 -0
- package/dist/build/client/_app/immutable/assets/7.CLAH1zbo.css.gz +0 -0
- package/dist/build/client/_app/immutable/assets/8.kPbJskIW.css +1 -0
- package/dist/build/client/_app/immutable/assets/8.kPbJskIW.css.br +0 -0
- package/dist/build/client/_app/immutable/assets/8.kPbJskIW.css.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/-flIlLbR.js +1 -0
- package/dist/build/client/_app/immutable/chunks/-flIlLbR.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/-flIlLbR.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/BaNbYf_w.js +1 -0
- package/dist/build/client/_app/immutable/chunks/BaNbYf_w.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/BaNbYf_w.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/Bbj_adPZ.js +1 -0
- package/dist/build/client/_app/immutable/chunks/Bbj_adPZ.js.br +2 -0
- package/dist/build/client/_app/immutable/chunks/Bbj_adPZ.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/BjDtInFk.js +1 -0
- package/dist/build/client/_app/immutable/chunks/BjDtInFk.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/BjDtInFk.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/dist/build/client/_app/immutable/chunks/Bjy-W4x2.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/Bjy-W4x2.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/BsZAT_sO.js +1 -0
- package/dist/build/client/_app/immutable/chunks/BsZAT_sO.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/BsZAT_sO.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/C65wlWj3.js +3 -0
- package/dist/build/client/_app/immutable/chunks/C65wlWj3.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/C65wlWj3.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/CI6ywtCd.js +3 -0
- package/dist/build/client/_app/immutable/chunks/CI6ywtCd.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/CI6ywtCd.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/CSvV6lTB.js +1 -0
- package/dist/build/client/_app/immutable/chunks/CSvV6lTB.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/CSvV6lTB.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/DLxYM5fa.js +1 -0
- package/dist/build/client/_app/immutable/chunks/DLxYM5fa.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/DLxYM5fa.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/DzNyqKSt.js +1 -0
- package/dist/build/client/_app/immutable/chunks/DzNyqKSt.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/DzNyqKSt.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/RsrLknAJ.js +1 -0
- package/dist/build/client/_app/immutable/chunks/RsrLknAJ.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/RsrLknAJ.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/hePW80VL.js +1 -0
- package/dist/build/client/_app/immutable/chunks/hePW80VL.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/hePW80VL.js.gz +0 -0
- package/dist/build/client/_app/immutable/chunks/kEdGpB3n.js +1 -0
- package/dist/build/client/_app/immutable/chunks/kEdGpB3n.js.br +0 -0
- package/dist/build/client/_app/immutable/chunks/kEdGpB3n.js.gz +0 -0
- package/dist/build/client/_app/immutable/entry/app.prk0UIKZ.js +2 -0
- package/dist/build/client/_app/immutable/entry/app.prk0UIKZ.js.br +0 -0
- package/dist/build/client/_app/immutable/entry/app.prk0UIKZ.js.gz +0 -0
- package/dist/build/client/_app/immutable/entry/payload.DSmR2FwN.js +1 -0
- package/dist/build/client/_app/immutable/entry/payload.DSmR2FwN.js.br +0 -0
- package/dist/build/client/_app/immutable/entry/payload.DSmR2FwN.js.gz +0 -0
- package/dist/build/client/_app/immutable/entry/start.Dxjvp0la.js +2 -0
- package/dist/build/client/_app/immutable/entry/start.Dxjvp0la.js.br +0 -0
- package/dist/build/client/_app/immutable/entry/start.Dxjvp0la.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/0.jy0BlCX0.js +1 -0
- package/dist/build/client/_app/immutable/nodes/0.jy0BlCX0.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/0.jy0BlCX0.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/1.0LAtJInZ.js +1 -0
- package/dist/build/client/_app/immutable/nodes/1.0LAtJInZ.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/1.0LAtJInZ.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/10.C7ib9SAf.js +1 -0
- package/dist/build/client/_app/immutable/nodes/10.C7ib9SAf.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/10.C7ib9SAf.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/2.xIoVI8Pt.js +1 -0
- package/dist/build/client/_app/immutable/nodes/2.xIoVI8Pt.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/2.xIoVI8Pt.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/3.yf_BSypc.js +1 -0
- package/dist/build/client/_app/immutable/nodes/3.yf_BSypc.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/3.yf_BSypc.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/4.DcPD8uRH.js +3 -0
- package/dist/build/client/_app/immutable/nodes/4.DcPD8uRH.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/4.DcPD8uRH.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/5.Bnv17IW5.js +1 -0
- package/dist/build/client/_app/immutable/nodes/5.Bnv17IW5.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/5.Bnv17IW5.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/6.BzMUTdRA.js +1 -0
- package/dist/build/client/_app/immutable/nodes/6.BzMUTdRA.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/6.BzMUTdRA.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/7.axFX3R7h.js +1 -0
- package/dist/build/client/_app/immutable/nodes/7.axFX3R7h.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/7.axFX3R7h.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/8.DBrComIy.js +1 -0
- package/dist/build/client/_app/immutable/nodes/8.DBrComIy.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/8.DBrComIy.js.gz +0 -0
- package/dist/build/client/_app/immutable/nodes/9.CozJkzSE.js +1 -0
- package/dist/build/client/_app/immutable/nodes/9.CozJkzSE.js.br +0 -0
- package/dist/build/client/_app/immutable/nodes/9.CozJkzSE.js.gz +0 -0
- package/dist/build/client/_app/version.json +1 -0
- package/dist/build/client/_app/version.json.br +0 -0
- package/dist/build/client/_app/version.json.gz +0 -0
- package/dist/build/routes.json +1 -0
- package/dist/build/server/0-ZBLOQKP7.js +3 -0
- package/dist/build/server/0-ZBLOQKP7.js.map +6 -0
- package/dist/build/server/1-5WYCLPWK.js +3 -0
- package/dist/build/server/1-5WYCLPWK.js.map +6 -0
- package/dist/build/server/10-N3GZHVAL.js +3 -0
- package/dist/build/server/10-N3GZHVAL.js.map +6 -0
- package/dist/build/server/2-XRUNWLSZ.js +3 -0
- package/dist/build/server/2-XRUNWLSZ.js.map +6 -0
- package/dist/build/server/3-G6G4VVSG.js +3 -0
- package/dist/build/server/3-G6G4VVSG.js.map +6 -0
- package/dist/build/server/4-RAONXXL6.js +3 -0
- package/dist/build/server/4-RAONXXL6.js.map +6 -0
- package/dist/build/server/5-FHHUR6IU.js +3 -0
- package/dist/build/server/5-FHHUR6IU.js.map +6 -0
- package/dist/build/server/6-6KBB7U66.js +3 -0
- package/dist/build/server/6-6KBB7U66.js.map +6 -0
- package/dist/build/server/7-ZA6GJPFX.js +3 -0
- package/dist/build/server/7-ZA6GJPFX.js.map +6 -0
- package/dist/build/server/8-MCEF7TBG.js +3 -0
- package/dist/build/server/8-MCEF7TBG.js.map +6 -0
- package/dist/build/server/9-6V4EY4YA.js +3 -0
- package/dist/build/server/9-6V4EY4YA.js.map +6 -0
- package/dist/build/server/_layout.svelte-CKXMSCZZ.js +3 -0
- package/dist/build/server/_layout.svelte-CKXMSCZZ.js.map +6 -0
- package/dist/build/server/_page.svelte-3Y5APV4K.js +3 -0
- package/dist/build/server/_page.svelte-3Y5APV4K.js.map +6 -0
- package/dist/build/server/_page.svelte-JYYJHLNJ.js +3 -0
- package/dist/build/server/_page.svelte-JYYJHLNJ.js.map +6 -0
- package/dist/build/server/_page.svelte-QJUGTVOP.js +3 -0
- package/dist/build/server/_page.svelte-QJUGTVOP.js.map +6 -0
- package/dist/build/server/_page.svelte-S3KIXETO.js +3 -0
- package/dist/build/server/_page.svelte-S3KIXETO.js.map +6 -0
- package/dist/build/server/_page.svelte-UZF7NHFO.js +3 -0
- package/dist/build/server/_page.svelte-UZF7NHFO.js.map +6 -0
- package/dist/build/server/_page.svelte-WPZPALIR.js +3 -0
- package/dist/build/server/_page.svelte-WPZPALIR.js.map +6 -0
- package/dist/build/server/_page.svelte-XXUKHSQ3.js +3 -0
- package/dist/build/server/_page.svelte-XXUKHSQ3.js.map +6 -0
- package/dist/build/server/_page.svelte-YR5ZRVJB.js +3 -0
- package/dist/build/server/_page.svelte-YR5ZRVJB.js.map +6 -0
- package/dist/build/server/bowser-64WH7SLH.js +3 -0
- package/dist/build/server/bowser-64WH7SLH.js.map +6 -0
- package/dist/build/server/chunk-45OCATQP.js +3 -0
- package/dist/build/server/chunk-45OCATQP.js.map +6 -0
- package/dist/build/server/chunk-4SGGWC4Y.js +3 -0
- package/dist/build/server/chunk-4SGGWC4Y.js.map +6 -0
- package/dist/build/server/chunk-4ZFJD7V4.js +9 -0
- package/dist/build/server/chunk-4ZFJD7V4.js.map +6 -0
- package/dist/build/server/chunk-5AOSKFCC.js +3 -0
- package/dist/build/server/chunk-5AOSKFCC.js.map +6 -0
- package/dist/build/server/chunk-6CUGABU3.js +3 -0
- package/dist/build/server/chunk-6CUGABU3.js.map +6 -0
- package/dist/build/server/chunk-6ZFGHU6W.js +3 -0
- package/dist/build/server/chunk-6ZFGHU6W.js.map +6 -0
- package/dist/build/server/chunk-7H7K7YVM.js +23 -0
- package/dist/build/server/chunk-7H7K7YVM.js.map +6 -0
- package/dist/build/server/chunk-7LPGCU4C.js +11 -0
- package/dist/build/server/chunk-7LPGCU4C.js.map +6 -0
- package/dist/build/server/chunk-COXRAWZU.js +7 -0
- package/dist/build/server/chunk-COXRAWZU.js.map +6 -0
- package/dist/build/server/chunk-CSRMCT5X.js +3 -0
- package/dist/build/server/chunk-CSRMCT5X.js.map +6 -0
- package/dist/build/server/chunk-CTC7EH5D.js +8 -0
- package/dist/build/server/chunk-CTC7EH5D.js.map +6 -0
- package/dist/build/server/chunk-CZ754NYE.js +2 -0
- package/dist/build/server/chunk-CZ754NYE.js.map +6 -0
- package/dist/build/server/chunk-DVLTINVM.js +24 -0
- package/dist/build/server/chunk-DVLTINVM.js.map +6 -0
- package/dist/build/server/chunk-DYKW3K3W.js +4 -0
- package/dist/build/server/chunk-DYKW3K3W.js.map +6 -0
- package/dist/build/server/chunk-EFZAFSVU.js +5 -0
- package/dist/build/server/chunk-EFZAFSVU.js.map +6 -0
- package/dist/build/server/chunk-EI7KG3XR.js +119 -0
- package/dist/build/server/chunk-EI7KG3XR.js.map +6 -0
- package/dist/build/server/chunk-EN7Z5YF5.js +3 -0
- package/dist/build/server/chunk-EN7Z5YF5.js.map +6 -0
- package/dist/build/server/chunk-EPPCNHKZ.js +3 -0
- package/dist/build/server/chunk-EPPCNHKZ.js.map +6 -0
- package/dist/build/server/chunk-EV3SFPHU.js +9 -0
- package/dist/build/server/chunk-EV3SFPHU.js.map +6 -0
- package/dist/build/server/chunk-FQR3U6BT.js +3 -0
- package/dist/build/server/chunk-FQR3U6BT.js.map +6 -0
- package/dist/build/server/chunk-FX527VAY.js +3 -0
- package/dist/build/server/chunk-FX527VAY.js.map +6 -0
- package/dist/build/server/chunk-GLKH6VBF.js +3 -0
- package/dist/build/server/chunk-GLKH6VBF.js.map +6 -0
- package/dist/build/server/chunk-J3JWBB7E.js +9 -0
- package/dist/build/server/chunk-J3JWBB7E.js.map +6 -0
- package/dist/build/server/chunk-JBGJIY2K.js +3 -0
- package/dist/build/server/chunk-JBGJIY2K.js.map +6 -0
- package/dist/build/server/chunk-JCF4MFGG.js +3 -0
- package/dist/build/server/chunk-JCF4MFGG.js.map +6 -0
- package/dist/build/server/chunk-JLDSEZUK.js +3 -0
- package/dist/build/server/chunk-JLDSEZUK.js.map +6 -0
- package/dist/build/server/chunk-JOH2QUXW.js +3 -0
- package/dist/build/server/chunk-JOH2QUXW.js.map +6 -0
- package/dist/build/server/chunk-JUDBP2XJ.js +3 -0
- package/dist/build/server/chunk-JUDBP2XJ.js.map +6 -0
- package/dist/build/server/chunk-KFOZ3QDS.js +5 -0
- package/dist/build/server/chunk-KFOZ3QDS.js.map +6 -0
- package/dist/build/server/chunk-KUYN4HWD.js +3 -0
- package/dist/build/server/chunk-KUYN4HWD.js.map +6 -0
- package/dist/build/server/chunk-LBNNT2QS.js +3 -0
- package/dist/build/server/chunk-LBNNT2QS.js.map +6 -0
- package/dist/build/server/chunk-M5VLIKDC.js +3 -0
- package/dist/build/server/chunk-M5VLIKDC.js.map +6 -0
- package/dist/build/server/chunk-MFLM3JS7.js +3 -0
- package/dist/build/server/chunk-MFLM3JS7.js.map +6 -0
- package/dist/build/server/chunk-MLC2CEYH.js +7 -0
- package/dist/build/server/chunk-MLC2CEYH.js.map +6 -0
- package/dist/build/server/chunk-OWM5LWOG.js +3 -0
- package/dist/build/server/chunk-OWM5LWOG.js.map +6 -0
- package/dist/build/server/chunk-PNWN3T3A.js +3 -0
- package/dist/build/server/chunk-PNWN3T3A.js.map +6 -0
- package/dist/build/server/chunk-PWME7NGZ.js +3 -0
- package/dist/build/server/chunk-PWME7NGZ.js.map +6 -0
- package/dist/build/server/chunk-Q2IEUOHW.js +4 -0
- package/dist/build/server/chunk-Q2IEUOHW.js.map +6 -0
- package/dist/build/server/chunk-SVLGZRKZ.js +20 -0
- package/dist/build/server/chunk-SVLGZRKZ.js.map +6 -0
- package/dist/build/server/chunk-U7NJH7YG.js +3 -0
- package/dist/build/server/chunk-U7NJH7YG.js.map +6 -0
- package/dist/build/server/chunk-ULOSRW2D.js +3 -0
- package/dist/build/server/chunk-ULOSRW2D.js.map +6 -0
- package/dist/build/server/chunk-V4WLSBDY.js +3 -0
- package/dist/build/server/chunk-V4WLSBDY.js.map +6 -0
- package/dist/build/server/chunk-VKYMR5UJ.js +3 -0
- package/dist/build/server/chunk-VKYMR5UJ.js.map +6 -0
- package/dist/build/server/chunk-WFJCOJII.js +3 -0
- package/dist/build/server/chunk-WFJCOJII.js.map +6 -0
- package/dist/build/server/chunk-WV6QT4WX.js +3 -0
- package/dist/build/server/chunk-WV6QT4WX.js.map +6 -0
- package/dist/build/server/chunk-XHZNAFX4.js +3 -0
- package/dist/build/server/chunk-XHZNAFX4.js.map +6 -0
- package/dist/build/server/chunk-XQGDXRCJ.js +4 -0
- package/dist/build/server/chunk-XQGDXRCJ.js.map +6 -0
- package/dist/build/server/chunk-XYYC33WE.js +3 -0
- package/dist/build/server/chunk-XYYC33WE.js.map +6 -0
- package/dist/build/server/chunk-YHXLVT6T.js +19 -0
- package/dist/build/server/chunk-YHXLVT6T.js.map +6 -0
- package/dist/build/server/chunk-ZBF6TCMI.js +11 -0
- package/dist/build/server/chunk-ZBF6TCMI.js.map +6 -0
- package/dist/build/server/dist-es-2BUR2XC3.js +3 -0
- package/dist/build/server/dist-es-2BUR2XC3.js.map +6 -0
- package/dist/build/server/dist-es-4AKCON7Z.js +4 -0
- package/dist/build/server/dist-es-4AKCON7Z.js.map +6 -0
- package/dist/build/server/dist-es-6AEKBKLO.js +4 -0
- package/dist/build/server/dist-es-6AEKBKLO.js.map +6 -0
- package/dist/build/server/dist-es-7VEQXIE2.js +3 -0
- package/dist/build/server/dist-es-7VEQXIE2.js.map +6 -0
- package/dist/build/server/dist-es-BATVHFG5.js +8 -0
- package/dist/build/server/dist-es-BATVHFG5.js.map +6 -0
- package/dist/build/server/dist-es-KTHQ5GFH.js +3 -0
- package/dist/build/server/dist-es-KTHQ5GFH.js.map +6 -0
- package/dist/build/server/dist-es-PFWLVSUH.js +3 -0
- package/dist/build/server/dist-es-PFWLVSUH.js.map +6 -0
- package/dist/build/server/dist-es-SRGFDDYG.js +3 -0
- package/dist/build/server/dist-es-SRGFDDYG.js.map +6 -0
- package/dist/build/server/dist-es-SRLXROG6.js +3 -0
- package/dist/build/server/dist-es-SRLXROG6.js.map +6 -0
- package/dist/build/server/dist-es2-N6B2SB7P.js +8 -0
- package/dist/build/server/dist-es2-N6B2SB7P.js.map +6 -0
- package/dist/build/server/dist-es3-DKADLFA6.js +3 -0
- package/dist/build/server/dist-es3-DKADLFA6.js.map +6 -0
- package/dist/build/server/dist-es4-HWRJJ4KU.js +3 -0
- package/dist/build/server/dist-es4-HWRJJ4KU.js.map +6 -0
- package/dist/build/server/dist-es5-CNJWR77J.js +3 -0
- package/dist/build/server/dist-es5-CNJWR77J.js.map +6 -0
- package/dist/build/server/dist-es6-3H546ZJB.js +4 -0
- package/dist/build/server/dist-es6-3H546ZJB.js.map +6 -0
- package/dist/build/server/dist-es7-GBNLQKWI.js +3 -0
- package/dist/build/server/dist-es7-GBNLQKWI.js.map +6 -0
- package/dist/build/server/dist-es8-XKF26QFV.js +4 -0
- package/dist/build/server/dist-es8-XKF26QFV.js.map +6 -0
- package/dist/build/server/error.svelte-6ET2IFRD.js +3 -0
- package/dist/build/server/error.svelte-6ET2IFRD.js.map +6 -0
- package/dist/build/server/event-streams-4E4LBL7I.js +3 -0
- package/dist/build/server/event-streams-4E4LBL7I.js.map +6 -0
- package/dist/build/server/event-streams-P6EJEFOZ.js +3 -0
- package/dist/build/server/event-streams-P6EJEFOZ.js.map +6 -0
- package/dist/build/server/event-streams-Y2DDNV3W.js +3 -0
- package/dist/build/server/event-streams-Y2DDNV3W.js.map +6 -0
- package/dist/build/server/handler.js +3 -0
- package/dist/build/server/handler.js.map +6 -0
- package/dist/build/server/hooks.server-DUGXMI46.js +3 -0
- package/dist/build/server/hooks.server-DUGXMI46.js.map +6 -0
- package/dist/build/server/instance-R4IOGTAZ.js +69 -0
- package/dist/build/server/instance-R4IOGTAZ.js.map +6 -0
- package/dist/build/server/layout.svelte-2JY65LGT.js +3 -0
- package/dist/build/server/layout.svelte-2JY65LGT.js.map +6 -0
- package/dist/build/server/loadSso-G3UDUWRB.js +3 -0
- package/dist/build/server/loadSso-G3UDUWRB.js.map +6 -0
- package/dist/build/server/loadSso-IHGCKVPZ.js +3 -0
- package/dist/build/server/loadSso-IHGCKVPZ.js.map +6 -0
- package/dist/build/server/package.json +5 -0
- package/dist/build/server/remote-14csdey-AN6OF5DV.js +3 -0
- package/dist/build/server/remote-14csdey-AN6OF5DV.js.map +6 -0
- package/dist/build/server/remote-1tatjnv-AZZDHATA.js +3 -0
- package/dist/build/server/remote-1tatjnv-AZZDHATA.js.map +6 -0
- package/dist/build/server/remote-nc6tv3-PU2UBZ2H.js +3 -0
- package/dist/build/server/remote-nc6tv3-PU2UBZ2H.js.map +6 -0
- package/dist/build/server/remote-qvubti-BI734GR7.js +3 -0
- package/dist/build/server/remote-qvubti-BI734GR7.js.map +6 -0
- package/dist/build/server/signin-DR2A7DIJ.js +3 -0
- package/dist/build/server/signin-DR2A7DIJ.js.map +6 -0
- package/dist/build/server/signin-OFY7FSKY.js +3 -0
- package/dist/build/server/signin-OFY7FSKY.js.map +6 -0
- package/dist/build/server/sso-oidc-3ERD4PTK.js +3 -0
- package/dist/build/server/sso-oidc-3ERD4PTK.js.map +6 -0
- package/dist/build/server/sso-oidc-NILKGEWO.js +3 -0
- package/dist/build/server/sso-oidc-NILKGEWO.js.map +6 -0
- package/dist/build/server/stream.js +3 -0
- package/dist/build/server/stream.js.map +6 -0
- package/dist/build/server/sts-LINENT6I.js +3 -0
- package/dist/build/server/sts-LINENT6I.js.map +6 -0
- package/dist/build/server/sts-ZU7KLM25.js +3 -0
- package/dist/build/server/sts-ZU7KLM25.js.map +6 -0
- package/dist/cdk.d.ts +17 -0
- package/dist/cdk.js +83 -0
- package/docs/how-to/getting-started.md +110 -0
- package/package.json +75 -4
package/DOCS.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# @beesolve/analytics-dashboard - Documentation
|
|
2
|
+
|
|
3
|
+
**Keywords:** CloudFront analytics dashboard, traffic analytics, AnalyticsDashboard construct, CDK, SvelteKit, CloudFront, DynamoDB, email-code auth, hits/errors/bytes, status/country/device/path breakdowns
|
|
4
|
+
|
|
5
|
+
> This documentation is published inside the installed package and matches the installed version. Prefer it over prior knowledge or older examples found online.
|
|
6
|
+
|
|
7
|
+
> Full source, examples, and ADRs: https://github.com/BeeSolve/packages/tree/main/packages/analytics-dashboard
|
|
8
|
+
|
|
9
|
+
## How-To Guides
|
|
10
|
+
|
|
11
|
+
| Guide | Description |
|
|
12
|
+
| --------------------------------------------------- | ---------------------------------------------------- |
|
|
13
|
+
| [Getting Started](./docs/how-to/getting-started.md) | Install, wire the pipeline, backfill history, deploy |
|
|
14
|
+
|
|
15
|
+
## Working Examples
|
|
16
|
+
|
|
17
|
+
The [samples/](https://github.com/BeeSolve/packages/tree/main/packages/samples) directory
|
|
18
|
+
in the GitHub repository contains full, deployable CDK stacks demonstrating real-world usage:
|
|
19
|
+
|
|
20
|
+
| Sample | What it shows |
|
|
21
|
+
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
22
|
+
| [analytics](https://github.com/BeeSolve/packages/tree/main/packages/samples/analytics) | End-to-end analytics pipeline: v2 logging, processor, and the dashboard |
|
|
23
|
+
|
|
24
|
+
## Further Reading
|
|
25
|
+
|
|
26
|
+
- [README](./README.md) - API reference and configuration
|
|
27
|
+
- [CHANGELOG](./CHANGELOG.md) - Version history
|
|
28
|
+
- [Architecture Decision Records](https://github.com/BeeSolve/packages/tree/main/packages/analytics-dashboard/docs) (GitHub only)
|
package/README.md
CHANGED
|
@@ -1,3 +1,169 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @beesolve/analytics-dashboard
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
SvelteKit dashboard for viewing CloudFront traffic analytics — deployed on AWS Lambda behind CloudFront with email-code authentication.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌────────────┐ ┌──────────────┐ ┌─────────┐ ┌──────────┐
|
|
9
|
+
│ CloudFront │ ──► │ Lambda (SSR) │ ──► │ DynamoDB│ │ SES │
|
|
10
|
+
└────────────┘ └──────────────┘ └─────────┘ └──────────┘
|
|
11
|
+
│ ▲ ▲
|
|
12
|
+
│ read-only │ analytics table │
|
|
13
|
+
│ (AnalyticsProcessor.grantRead) OTP emails via
|
|
14
|
+
└── /auth/* ──► AuthGateway (authorizer) @beesolve/email-service
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The dashboard reads the `@beesolve/analytics-processor` DynamoDB table (hourly/daily/monthly
|
|
18
|
+
totals + per-dimension breakdowns) **read-only**. Its own small DynamoDB table holds the
|
|
19
|
+
dashboard's `Users`/`Setup` records (sign-in, roles).
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install \
|
|
25
|
+
@beesolve/analytics-dashboard \
|
|
26
|
+
@beesolve/analytics-processor \
|
|
27
|
+
@beesolve/cdk-constructs \
|
|
28
|
+
@beesolve/auth-service \
|
|
29
|
+
aws-cdk \
|
|
30
|
+
aws-cdk-lib \
|
|
31
|
+
constructs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- [`@beesolve/cdk-constructs`](../cdk-constructs) — `CloudFrontAccessLoggingSettings` with standard logging v2
|
|
35
|
+
- [`@beesolve/analytics-processor`](../analytics-processor) — aggregates Athena query results into DynamoDB
|
|
36
|
+
- [`@beesolve/auth-service`](../service-auth) — email-code authentication with session management
|
|
37
|
+
|
|
38
|
+
## CDK Setup
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
import { AnalyticsDashboard } from "@beesolve/analytics-dashboard/cdk";
|
|
42
|
+
import { requiredRecordFields } from "@beesolve/analytics-processor";
|
|
43
|
+
import { AnalyticsProcessor } from "@beesolve/analytics-processor/cdk";
|
|
44
|
+
import { AuthGateway } from "@beesolve/auth-service/cdk";
|
|
45
|
+
import { CloudFrontAccessLoggingSettings } from "@beesolve/cdk-constructs";
|
|
46
|
+
import { App, RemovalPolicy, Stack } from "aws-cdk-lib";
|
|
47
|
+
|
|
48
|
+
const frontendUri = process.env.FRONTEND_URI;
|
|
49
|
+
if (frontendUri == null) throw new Error("FRONTEND_URI environment variable is required");
|
|
50
|
+
|
|
51
|
+
const app = new App();
|
|
52
|
+
const stack = new Stack(app, "AnalyticsStack", {
|
|
53
|
+
env: { account: "123456789012", region: "eu-central-1" },
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// 1. Log the distribution to S3 as Parquet (standard logging v2)
|
|
57
|
+
const logging = new CloudFrontAccessLoggingSettings(stack, "Logging", {
|
|
58
|
+
athena: { account: "123456789012", recordFields: requiredRecordFields },
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// ...create your CloudFront `distribution`, spreading
|
|
62
|
+
// `...logging.cloudFrontLoggingSettings` into its props, then:
|
|
63
|
+
logging.enableV2Logging({
|
|
64
|
+
distributionArn: `arn:aws:cloudfront::123456789012:distribution/${distribution.distributionId}`,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// 2. Aggregate logs into DynamoDB
|
|
68
|
+
const processor = new AnalyticsProcessor(stack, "Processor", {
|
|
69
|
+
athenaDatabase: logging.glueDatabaseName!,
|
|
70
|
+
athenaV2Table: logging.glueTableName!,
|
|
71
|
+
athenaWorkgroup: logging.workgroupName!,
|
|
72
|
+
logBucketArn: logging.logBucket.bucketArn,
|
|
73
|
+
athenaResultsBucketArn: logging.athenaResultsBucket?.bucketArn,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// 3. Set up authentication
|
|
77
|
+
const auth = new AuthGateway(stack, "Auth", {
|
|
78
|
+
stage: "prod",
|
|
79
|
+
frontendUri,
|
|
80
|
+
allowSignUp: false,
|
|
81
|
+
authorizerCache: "disabled",
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// 4. Deploy the dashboard
|
|
85
|
+
const dashboard = new AnalyticsDashboard(stack, "AnalyticsDashboard", {
|
|
86
|
+
auth,
|
|
87
|
+
processor,
|
|
88
|
+
emailSender: {
|
|
89
|
+
name: "Analytics Dashboard",
|
|
90
|
+
emailAddress: "noreply@example.com",
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The `AnalyticsDashboard` construct provisions:
|
|
96
|
+
|
|
97
|
+
- SvelteKit app on Lambda (via `kit-on-lambda`)
|
|
98
|
+
- CloudFront distribution with auth cookie enforcement
|
|
99
|
+
- Auth behavior for `/auth/*` routes
|
|
100
|
+
- A dedicated DynamoDB table (+ reverse GSI) for the dashboard's `Users`/`Setup`, wired via `ANALYTICS_USERS_TABLE` / `ANALYTICS_USERS_REVERSE_INDEX`
|
|
101
|
+
- Read-only access to the processor's analytics table via `processor.grantRead(handler)` (`ANALYTICS_TABLE_NAME` / `ANALYTICS_REVERSE_INDEX`)
|
|
102
|
+
- Email service for OTP codes
|
|
103
|
+
- EventBridge rule for auth events (sends OTP emails)
|
|
104
|
+
|
|
105
|
+
## Data layer (remote functions)
|
|
106
|
+
|
|
107
|
+
The dashboard reads its data through SvelteKit remote functions, not `+page.server.ts`
|
|
108
|
+
`load`/`actions`. Definitions live in `src/lib/remote/*.remote.ts`:
|
|
109
|
+
|
|
110
|
+
- `getOverview({ grain, anchor?, size? })` — clamps the window per grain, computes boundary
|
|
111
|
+
keys deterministically from the anchor (no DynamoDB cursors), and returns the totals series
|
|
112
|
+
plus `prev`/`next` anchors.
|
|
113
|
+
- `getBreakdown({ dimension, grain, periodKey })` — reads a single bounded breakdown partition.
|
|
114
|
+
- `users`/`setup` remote functions mirror `@beesolve/dmarc-dashboard` (admin guards,
|
|
115
|
+
`toRemoteError`, `requireUser`/`requireAdmin`).
|
|
116
|
+
|
|
117
|
+
Environment variables are declared in `src/env.ts` via `defineEnvVars` (Valibot schemas) and
|
|
118
|
+
imported, typed and validated, from `$app/env/private`: `ANALYTICS_TABLE_NAME`,
|
|
119
|
+
`ANALYTICS_REVERSE_INDEX`, `ANALYTICS_USERS_TABLE`, `ANALYTICS_USERS_REVERSE_INDEX`.
|
|
120
|
+
|
|
121
|
+
## First Deployment
|
|
122
|
+
|
|
123
|
+
The SvelteKit build requires a `FRONTEND_URI` environment variable (the CloudFront URL), which doesn't exist until after the first deploy:
|
|
124
|
+
|
|
125
|
+
1. Set `FRONTEND_URI` to a placeholder URL (e.g. `https://placeholder.cloudfront.net`)
|
|
126
|
+
2. Deploy — note the CloudFront URL from CDK output
|
|
127
|
+
3. Update `FRONTEND_URI` with the real URL and redeploy
|
|
128
|
+
|
|
129
|
+
## Backfilling history
|
|
130
|
+
|
|
131
|
+
CloudFront standard logging v2 only starts collecting Parquet data once the upgraded
|
|
132
|
+
`CloudFrontAccessLoggingSettings` is deployed. Historic traffic lives in the already-collected
|
|
133
|
+
v1 (tab-delimited) logs. Run the one-time backfill from `@beesolve/analytics-processor` once,
|
|
134
|
+
as an operator, to populate the table from v1 history before anyone relies on long-range views:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# from the analytics-processor package, with AWS creds (AWS_PROFILE) in scope
|
|
138
|
+
bun run backfill -- --from 2026-01-01T00:00:00Z --to 2026-02-01T00:00:00Z
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The backfill is resumable and exactly-once (per-hour idempotency markers), so re-running it
|
|
142
|
+
skips already-processed hours. See the processor README for the full flag reference.
|
|
143
|
+
|
|
144
|
+
## Local Development
|
|
145
|
+
|
|
146
|
+
Run the SvelteKit dev server against the **real** deployed backend — no fixtures:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
bun install
|
|
150
|
+
cp .env.local.example .env.local # then fill in real values
|
|
151
|
+
aws sso login # (or export AWS_PROFILE) so SDK clients can reach AWS
|
|
152
|
+
bun run dev
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
There is no Lambda authorizer locally, so `@beesolve/auth-service` injects a dev session
|
|
156
|
+
automatically. Set `DEV_USER_EMAIL` in `.env.local` to a **real** user's email in the users
|
|
157
|
+
table — the app looks it up to resolve that user's role. This is guarded by `import.meta.env.DEV`
|
|
158
|
+
and never included in the deployed bundle.
|
|
159
|
+
|
|
160
|
+
## Features
|
|
161
|
+
|
|
162
|
+
- Overview with hourly/daily/monthly/yearly grain switching and rolling prev/next windows
|
|
163
|
+
- Stat cards for hits, success, errors, and bytes
|
|
164
|
+
- Per-dimension breakdowns: HTTP status, country, device, and top paths
|
|
165
|
+
- Email-code sign-in (no passwords) + user management (invite, remove)
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
[MIT](../../LICENSE)
|