mongoku 2.4.6-compat → 2.4.7-compat
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 +15 -0
- package/build/client/_app/immutable/assets/0.C_geP4pp.css +1 -0
- package/build/client/_app/immutable/assets/0.C_geP4pp.css.br +0 -0
- package/build/client/_app/immutable/assets/0.C_geP4pp.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.Wc4MTSzM.css +1 -0
- package/build/client/_app/immutable/assets/10.Wc4MTSzM.css.br +0 -0
- package/build/client/_app/immutable/assets/10.Wc4MTSzM.css.gz +0 -0
- package/build/client/_app/immutable/assets/{Modal.zD4dMMyk.css → Modal.CZgFKXkP.css} +1 -1
- package/build/client/_app/immutable/assets/Modal.CZgFKXkP.css.br +0 -0
- package/build/client/_app/immutable/assets/Modal.CZgFKXkP.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B27BoO92.js +1 -0
- package/build/client/_app/immutable/chunks/B27BoO92.js.br +0 -0
- package/build/client/_app/immutable/chunks/B27BoO92.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{reNJcONQ.js → BLB7WU0x.js} +1 -1
- package/build/client/_app/immutable/chunks/BLB7WU0x.js.br +0 -0
- package/build/client/_app/immutable/chunks/{reNJcONQ.js.gz → BLB7WU0x.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/{DvuSce6Q.js → BTDPx7wo.js} +1 -1
- package/build/client/_app/immutable/chunks/BTDPx7wo.js.br +0 -0
- package/build/client/_app/immutable/chunks/BTDPx7wo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CQi92wY1.js → BV1jCwWf.js} +1 -1
- package/build/client/_app/immutable/chunks/BV1jCwWf.js.br +0 -0
- package/build/client/_app/immutable/chunks/BV1jCwWf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bp2iD_PL.js +1 -0
- package/build/client/_app/immutable/chunks/Bp2iD_PL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bp2iD_PL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CItzKczS.js +1 -0
- package/build/client/_app/immutable/chunks/CItzKczS.js.br +0 -0
- package/build/client/_app/immutable/chunks/CItzKczS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CjbrLxJm.js → Ce084HhL.js} +1 -1
- package/build/client/_app/immutable/chunks/Ce084HhL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce084HhL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DIw4Wyr4.js → CqFYS5AV.js} +1 -1
- package/build/client/_app/immutable/chunks/CqFYS5AV.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqFYS5AV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cs_Y8eC2.js → DC13l09X.js} +6 -6
- package/build/client/_app/immutable/chunks/DC13l09X.js.br +0 -0
- package/build/client/_app/immutable/chunks/DC13l09X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dqjuk_9f.js → DXWJTsg6.js} +1 -1
- package/build/client/_app/immutable/chunks/DXWJTsg6.js.br +0 -0
- package/build/client/_app/immutable/chunks/DXWJTsg6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dip-8jE5.js +1 -0
- package/build/client/_app/immutable/chunks/Dip-8jE5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dip-8jE5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dr_XE7iR.js +2 -0
- package/build/client/_app/immutable/chunks/Dr_XE7iR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dr_XE7iR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuLpG1zT.js +1 -0
- package/build/client/_app/immutable/chunks/DuLpG1zT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuLpG1zT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dn0_-jEe.js → DyfVYlRP.js} +1 -1
- package/build/client/_app/immutable/chunks/DyfVYlRP.js.br +0 -0
- package/build/client/_app/immutable/chunks/DyfVYlRP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BXUq66wC.js → OTbFjzBQ.js} +1 -1
- package/build/client/_app/immutable/chunks/OTbFjzBQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/OTbFjzBQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{UJuWD2W4.js → TQ9V_LBO.js} +1 -1
- package/build/client/_app/immutable/chunks/TQ9V_LBO.js.br +0 -0
- package/build/client/_app/immutable/chunks/TQ9V_LBO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B3q3gQD5.js → p4lxgeXU.js} +3 -3
- package/build/client/_app/immutable/chunks/p4lxgeXU.js.br +0 -0
- package/build/client/_app/immutable/chunks/p4lxgeXU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pXcSrKpr.js +1 -0
- package/build/client/_app/immutable/chunks/pXcSrKpr.js.br +0 -0
- package/build/client/_app/immutable/chunks/pXcSrKpr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xuMwtvm-.js +16 -0
- package/build/client/_app/immutable/chunks/xuMwtvm-.js.br +0 -0
- package/build/client/_app/immutable/chunks/xuMwtvm-.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.B7JBkmJ2.js +2 -0
- package/build/client/_app/immutable/entry/app.B7JBkmJ2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B7JBkmJ2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C35Eiz23.js +1 -0
- package/build/client/_app/immutable/entry/start.C35Eiz23.js.br +2 -0
- package/build/client/_app/immutable/entry/start.C35Eiz23.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.U3Wc2t11.js +1 -0
- package/build/client/_app/immutable/nodes/0.U3Wc2t11.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.U3Wc2t11.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js +1 -0
- package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.E5c2rVVT.js +3 -0
- package/build/client/_app/immutable/nodes/10.E5c2rVVT.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.E5c2rVVT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.CDi4i_Wb.js → 11.CwiIDBVl.js} +1 -1
- package/build/client/_app/immutable/nodes/11.CwiIDBVl.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CwiIDBVl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.BF4KBraU.js +1 -0
- package/build/client/_app/immutable/nodes/12.BF4KBraU.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.BF4KBraU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.BNgciqug.js +65 -0
- package/build/client/_app/immutable/nodes/13.BNgciqug.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BNgciqug.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DqvBb3C7.js → 2.Byf6opOr.js} +1 -1
- package/build/client/_app/immutable/nodes/2.Byf6opOr.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Byf6opOr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.27swwcG4.js → 3.B3j0bAgy.js} +1 -1
- package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.CcholrFe.js → 4.6dtz57ii.js} +1 -1
- package/build/client/_app/immutable/nodes/4.6dtz57ii.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.6dtz57ii.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CzudN9q-.js → 5.COHVaEDo.js} +1 -1
- package/build/client/_app/immutable/nodes/5.COHVaEDo.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.COHVaEDo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.Bmco0vbT.js → 7.Cecp1nCH.js} +1 -1
- package/build/client/_app/immutable/nodes/7.Cecp1nCH.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Cecp1nCH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.DZLMUPtG.js → 8.DFk2Y9sL.js} +1 -1
- package/build/client/_app/immutable/nodes/8.DFk2Y9sL.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DFk2Y9sL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.CFkMGjd0.js → 9.W4l2xsEF.js} +1 -1
- package/build/client/_app/immutable/nodes/9.W4l2xsEF.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.W4l2xsEF.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/server/chunks/0-CuiS31Ys.js +22 -0
- package/build/server/chunks/{0-BwUdZ0Qi.js.map → 0-CuiS31Ys.js.map} +1 -1
- package/build/server/chunks/1-C9TxPuQ0.js +9 -0
- package/build/server/chunks/{1-CSzb5YUp.js.map → 1-C9TxPuQ0.js.map} +1 -1
- package/build/server/chunks/{10-CKou-YOv.js → 10-PX9d-jhv.js} +5 -5
- package/build/server/chunks/10-PX9d-jhv.js.map +1 -0
- package/build/server/chunks/{11-CFhS7tPn.js → 11-Bhv-UeEo.js} +4 -4
- package/build/server/chunks/{11-CFhS7tPn.js.map → 11-Bhv-UeEo.js.map} +1 -1
- package/build/server/chunks/{12-Cj8MHbvu.js → 12-BuNmW-Vp.js} +5 -5
- package/build/server/chunks/{12-Cj8MHbvu.js.map → 12-BuNmW-Vp.js.map} +1 -1
- package/build/server/chunks/{13-BuraZ7Jc.js → 13-CAI7Pyhf.js} +4 -4
- package/build/server/chunks/{13-BuraZ7Jc.js.map → 13-CAI7Pyhf.js.map} +1 -1
- package/build/server/chunks/{2-BheEgghx.js → 2-Bx656tbc.js} +2 -2
- package/build/server/chunks/{2-BheEgghx.js.map → 2-Bx656tbc.js.map} +1 -1
- package/build/server/chunks/{3-BwrTscBH.js → 3-B-zRiOJV.js} +2 -2
- package/build/server/chunks/{3-BwrTscBH.js.map → 3-B-zRiOJV.js.map} +1 -1
- package/build/server/chunks/{4-D28kbpdN.js → 4-BBCE4OIo.js} +2 -2
- package/build/server/chunks/{4-D28kbpdN.js.map → 4-BBCE4OIo.js.map} +1 -1
- package/build/server/chunks/{5--wY8V1OC.js → 5-D68X5smv.js} +2 -2
- package/build/server/chunks/{5--wY8V1OC.js.map → 5-D68X5smv.js.map} +1 -1
- package/build/server/chunks/{7-BwceH8Q7.js → 7-C8AZjmDc.js} +4 -4
- package/build/server/chunks/{7-BwceH8Q7.js.map → 7-C8AZjmDc.js.map} +1 -1
- package/build/server/chunks/{8-DyIhulUv.js → 8-CGRiuqYX.js} +5 -5
- package/build/server/chunks/{8-DyIhulUv.js.map → 8-CGRiuqYX.js.map} +1 -1
- package/build/server/chunks/{9-DGNm1JRG.js → 9-CBzIf4Vj.js} +5 -5
- package/build/server/chunks/{9-DGNm1JRG.js.map → 9-CBzIf4Vj.js.map} +1 -1
- package/build/server/chunks/{JsonValue-Cexm3jGT.js → JsonValue-EppVzWzE.js} +88 -36
- package/build/server/chunks/JsonValue-EppVzWzE.js.map +1 -0
- package/build/server/chunks/{Modal-BzZ9u6V6.js → Modal-eRpc5lqR.js} +4 -3
- package/build/server/chunks/Modal-eRpc5lqR.js.map +1 -0
- package/build/server/chunks/{Panel-BHGtM9Vw.js → Panel-HO9t9Spv.js} +2 -2
- package/build/server/chunks/{Panel-BHGtM9Vw.js.map → Panel-HO9t9Spv.js.map} +1 -1
- package/build/server/chunks/{PrettyJson-tOt0PqjF.js → PrettyJson-F3fqxkqU.js} +7 -6
- package/build/server/chunks/PrettyJson-F3fqxkqU.js.map +1 -0
- package/build/server/chunks/{Tooltip-DAE2mkm6.js → Tooltip-Dd-Bzogp.js} +2 -2
- package/build/server/chunks/{Tooltip-DAE2mkm6.js.map → Tooltip-Dd-Bzogp.js.map} +1 -1
- package/build/server/chunks/{TooltipTable-xo_OEG9c.js → TooltipTable-jHWezlEs.js} +3 -3
- package/build/server/chunks/{TooltipTable-xo_OEG9c.js.map → TooltipTable-jHWezlEs.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-Dji2JJ9X.js → _layout.svelte-CKGgUBvr.js} +9 -3
- package/build/server/chunks/_layout.svelte-CKGgUBvr.js.map +1 -0
- package/build/server/chunks/_page.svelte-BlmdSnTh.js +245 -0
- package/build/server/chunks/_page.svelte-BlmdSnTh.js.map +1 -0
- package/build/server/chunks/{_page.svelte-x1L5xjgQ.js → _page.svelte-ClZj6yzK.js} +7 -7
- package/build/server/chunks/{_page.svelte-x1L5xjgQ.js.map → _page.svelte-ClZj6yzK.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-be8sxgGt.js → _page.svelte-D50SWEhd.js} +8 -8
- package/build/server/chunks/{_page.svelte-be8sxgGt.js.map → _page.svelte-D50SWEhd.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D-23v2Aa.js → _page.svelte-D8GSKYqN.js} +223 -12
- package/build/server/chunks/_page.svelte-D8GSKYqN.js.map +1 -0
- package/build/server/chunks/{_page.svelte-D9IvgJO5.js → _page.svelte-DBcsXxML.js} +8 -8
- package/build/server/chunks/{_page.svelte-D9IvgJO5.js.map → _page.svelte-DBcsXxML.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-aT9hOnbL.js → _page.svelte-DFzKfImt.js} +8 -8
- package/build/server/chunks/{_page.svelte-aT9hOnbL.js.map → _page.svelte-DFzKfImt.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D5-pMskg.js → _page.svelte-ZYW4iSHn.js} +8 -8
- package/build/server/chunks/{_page.svelte-D5-pMskg.js.map → _page.svelte-ZYW4iSHn.js.map} +1 -1
- package/build/server/chunks/{index2-eSFyMQpS.js → index2-DBFlGzWV.js} +2 -2
- package/build/server/chunks/{index2-eSFyMQpS.js.map → index2-DBFlGzWV.js.map} +1 -1
- package/build/server/chunks/{mongo-BHk5yAj9.js → mongo-Ndoh6fs5.js} +21 -7
- package/build/server/chunks/mongo-Ndoh6fs5.js.map +1 -0
- package/build/server/chunks/{remote-xxtqbu-ETLGkdRu.js → remote-xxtqbu-fbBqzvFu.js} +3 -3
- package/build/server/chunks/remote-xxtqbu-fbBqzvFu.js.map +1 -0
- package/build/server/chunks/{servers.remote-CGies_Na.js → servers.remote-B1eorl4A.js} +163 -12
- package/build/server/chunks/servers.remote-B1eorl4A.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +15 -15
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/api/servers.remote.ts +196 -10
- package/src/app.css +3 -6
- package/src/lib/components/ExplainPanel.svelte +273 -0
- package/src/lib/components/JsonValue.svelte +51 -6
- package/src/lib/components/Modal.svelte +7 -2
- package/src/lib/components/Notifications.svelte +3 -15
- package/src/lib/components/PrettyJson.svelte +1 -1
- package/src/lib/components/SearchBox.svelte +160 -5
- package/src/lib/components/TimeRangeStats.svelte +269 -0
- package/src/lib/icons/IconClose.svelte +21 -0
- package/src/lib/icons/IconExternalLink.svelte +22 -0
- package/src/lib/server/mongo.ts +31 -6
- package/src/lib/types.ts +16 -5
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +49 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +219 -79
- package/build/client/_app/immutable/assets/0.CEIWAdGZ.css +0 -1
- package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.BrydhPds.css +0 -1
- package/build/client/_app/immutable/assets/10.BrydhPds.css.br +0 -0
- package/build/client/_app/immutable/assets/10.BrydhPds.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.br +0 -0
- package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.gz +0 -0
- package/build/client/_app/immutable/chunks/0oUK0vJa.js +0 -1
- package/build/client/_app/immutable/chunks/0oUK0vJa.js.br +0 -0
- package/build/client/_app/immutable/chunks/0oUK0vJa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3q3gQD5.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3q3gQD5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGXqurs_.js +0 -1
- package/build/client/_app/immutable/chunks/BGXqurs_.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGXqurs_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPbCnJEo.js +0 -1
- package/build/client/_app/immutable/chunks/BPbCnJEo.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPbCnJEo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BXUq66wC.js.br +0 -0
- package/build/client/_app/immutable/chunks/BXUq66wC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxoAxRg6.js +0 -1
- package/build/client/_app/immutable/chunks/BxoAxRg6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxoAxRg6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByCRZ7zS.js +0 -2
- package/build/client/_app/immutable/chunks/ByCRZ7zS.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByCRZ7zS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BybrNGke.js +0 -16
- package/build/client/_app/immutable/chunks/BybrNGke.js.br +0 -0
- package/build/client/_app/immutable/chunks/BybrNGke.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQi92wY1.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQi92wY1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjbrLxJm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjbrLxJm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cs_Y8eC2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cs_Y8eC2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIw4Wyr4.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIw4Wyr4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dn0_-jEe.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dn0_-jEe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dqjuk_9f.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dqjuk_9f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DvuSce6Q.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvuSce6Q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UJuWD2W4.js.br +0 -0
- package/build/client/_app/immutable/chunks/UJuWD2W4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/XRLS4Bbp.js +0 -1
- package/build/client/_app/immutable/chunks/XRLS4Bbp.js.br +0 -0
- package/build/client/_app/immutable/chunks/XRLS4Bbp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_kKBJjiB.js +0 -1
- package/build/client/_app/immutable/chunks/_kKBJjiB.js.br +0 -0
- package/build/client/_app/immutable/chunks/_kKBJjiB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/reNJcONQ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BPKl8oaJ.js +0 -2
- package/build/client/_app/immutable/entry/app.BPKl8oaJ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BPKl8oaJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DWHdYJ-L.js +0 -1
- package/build/client/_app/immutable/entry/start.DWHdYJ-L.js.br +0 -2
- package/build/client/_app/immutable/entry/start.DWHdYJ-L.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.B2NjMPUg.js +0 -1
- package/build/client/_app/immutable/nodes/0.B2NjMPUg.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.B2NjMPUg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DIJdjioz.js +0 -1
- package/build/client/_app/immutable/nodes/1.DIJdjioz.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.DIJdjioz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DBt9LqZ5.js +0 -3
- package/build/client/_app/immutable/nodes/10.DBt9LqZ5.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DBt9LqZ5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CDi4i_Wb.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CDi4i_Wb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.CbEEqmwu.js +0 -1
- package/build/client/_app/immutable/nodes/12.CbEEqmwu.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.CbEEqmwu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DuXWHwDt.js +0 -66
- package/build/client/_app/immutable/nodes/13.DuXWHwDt.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DuXWHwDt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DqvBb3C7.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DqvBb3C7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.27swwcG4.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.27swwcG4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CcholrFe.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CcholrFe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CzudN9q-.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CzudN9q-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Bmco0vbT.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Bmco0vbT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DZLMUPtG.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DZLMUPtG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CFkMGjd0.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CFkMGjd0.js.gz +0 -0
- package/build/server/chunks/0-BwUdZ0Qi.js +0 -22
- package/build/server/chunks/1-CSzb5YUp.js +0 -9
- package/build/server/chunks/10-CKou-YOv.js.map +0 -1
- package/build/server/chunks/JsonValue-Cexm3jGT.js.map +0 -1
- package/build/server/chunks/Modal-BzZ9u6V6.js.map +0 -1
- package/build/server/chunks/PrettyJson-tOt0PqjF.js.map +0 -1
- package/build/server/chunks/_layout.svelte-Dji2JJ9X.js.map +0 -1
- package/build/server/chunks/_page.svelte-CJ5HzoD0.js +0 -203
- package/build/server/chunks/_page.svelte-CJ5HzoD0.js.map +0 -1
- package/build/server/chunks/_page.svelte-D-23v2Aa.js.map +0 -1
- package/build/server/chunks/mongo-BHk5yAj9.js.map +0 -1
- package/build/server/chunks/remote-xxtqbu-ETLGkdRu.js.map +0 -1
- package/build/server/chunks/servers.remote-CGies_Na.js.map +0 -1
package/build/server/manifest.js
CHANGED
|
@@ -10,25 +10,25 @@ 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.C35Eiz23.js",app:"_app/immutable/entry/app.B7JBkmJ2.js",imports:["_app/immutable/entry/start.C35Eiz23.js","_app/immutable/chunks/p4lxgeXU.js","_app/immutable/chunks/Dr_XE7iR.js","_app/immutable/chunks/BLB7WU0x.js","_app/immutable/entry/app.B7JBkmJ2.js","_app/immutable/chunks/BLB7WU0x.js","_app/immutable/chunks/Dr_XE7iR.js","_app/immutable/chunks/Dip-8jE5.js","_app/immutable/chunks/DuLpG1zT.js","_app/immutable/chunks/CItzKczS.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./chunks/0-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
17
|
-
__memo(() => import('./chunks/2-
|
|
18
|
-
__memo(() => import('./chunks/3-
|
|
19
|
-
__memo(() => import('./chunks/4-
|
|
20
|
-
__memo(() => import('./chunks/5
|
|
15
|
+
__memo(() => import('./chunks/0-CuiS31Ys.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-C9TxPuQ0.js')),
|
|
17
|
+
__memo(() => import('./chunks/2-Bx656tbc.js')),
|
|
18
|
+
__memo(() => import('./chunks/3-B-zRiOJV.js')),
|
|
19
|
+
__memo(() => import('./chunks/4-BBCE4OIo.js')),
|
|
20
|
+
__memo(() => import('./chunks/5-D68X5smv.js')),
|
|
21
21
|
__memo(() => import('./chunks/6-ifXBeMPA.js')),
|
|
22
|
-
__memo(() => import('./chunks/7-
|
|
23
|
-
__memo(() => import('./chunks/8-
|
|
24
|
-
__memo(() => import('./chunks/9-
|
|
25
|
-
__memo(() => import('./chunks/10-
|
|
26
|
-
__memo(() => import('./chunks/11-
|
|
27
|
-
__memo(() => import('./chunks/12-
|
|
28
|
-
__memo(() => import('./chunks/13-
|
|
22
|
+
__memo(() => import('./chunks/7-C8AZjmDc.js')),
|
|
23
|
+
__memo(() => import('./chunks/8-CGRiuqYX.js')),
|
|
24
|
+
__memo(() => import('./chunks/9-CBzIf4Vj.js')),
|
|
25
|
+
__memo(() => import('./chunks/10-PX9d-jhv.js')),
|
|
26
|
+
__memo(() => import('./chunks/11-Bhv-UeEo.js')),
|
|
27
|
+
__memo(() => import('./chunks/12-BuNmW-Vp.js')),
|
|
28
|
+
__memo(() => import('./chunks/13-CAI7Pyhf.js'))
|
|
29
29
|
],
|
|
30
30
|
remotes: {
|
|
31
|
-
'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-
|
|
31
|
+
'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-fbBqzvFu.js'))
|
|
32
32
|
},
|
|
33
33
|
routes: [
|
|
34
34
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/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.DWHdYJ-L.js\",app:\"_app/immutable/entry/app.BPKl8oaJ.js\",imports:[\"_app/immutable/entry/start.DWHdYJ-L.js\",\"_app/immutable/chunks/B3q3gQD5.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/entry/app.BPKl8oaJ.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/BPbCnJEo.js\",\"_app/immutable/chunks/0oUK0vJa.js\",\"_app/immutable/chunks/BGXqurs_.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\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\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: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\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\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/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.C35Eiz23.js\",app:\"_app/immutable/entry/app.B7JBkmJ2.js\",imports:[\"_app/immutable/entry/start.C35Eiz23.js\",\"_app/immutable/chunks/p4lxgeXU.js\",\"_app/immutable/chunks/Dr_XE7iR.js\",\"_app/immutable/chunks/BLB7WU0x.js\",\"_app/immutable/entry/app.B7JBkmJ2.js\",\"_app/immutable/chunks/BLB7WU0x.js\",\"_app/immutable/chunks/Dr_XE7iR.js\",\"_app/immutable/chunks/Dip-8jE5.js\",\"_app/immutable/chunks/DuLpG1zT.js\",\"_app/immutable/chunks/CItzKczS.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\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\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: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\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\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -594,15 +594,28 @@ export const loadDocuments = query(
|
|
|
594
594
|
|
|
595
595
|
// Fetch a document by field value (for mappings)
|
|
596
596
|
// Tries multiple mapping targets and returns the first one that finds a document
|
|
597
|
+
// Only handles document mappings; URL mappings are handled client-side
|
|
597
598
|
export const fetchMappedDocument = query(
|
|
598
599
|
z.object({
|
|
599
600
|
server: z.string(),
|
|
600
601
|
database: z.string(),
|
|
601
602
|
mappings: z.array(
|
|
602
|
-
z.
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
603
|
+
z.union([
|
|
604
|
+
z.object({
|
|
605
|
+
type: z.literal("document"),
|
|
606
|
+
collection: z.string(),
|
|
607
|
+
on: z.string(),
|
|
608
|
+
}),
|
|
609
|
+
z.object({
|
|
610
|
+
type: z.literal("url"),
|
|
611
|
+
template: z.string(),
|
|
612
|
+
}),
|
|
613
|
+
// Legacy format (backwards compatibility)
|
|
614
|
+
z.object({
|
|
615
|
+
collection: z.string(),
|
|
616
|
+
on: z.string(),
|
|
617
|
+
}),
|
|
618
|
+
]),
|
|
606
619
|
),
|
|
607
620
|
value: z.unknown(),
|
|
608
621
|
}),
|
|
@@ -611,23 +624,40 @@ export const fetchMappedDocument = query(
|
|
|
611
624
|
const client = mongo.getClient(server);
|
|
612
625
|
const decodedValue = JsonEncoder.decode(value);
|
|
613
626
|
|
|
614
|
-
//
|
|
615
|
-
|
|
627
|
+
// Filter to only document mappings (URL mappings are handled client-side)
|
|
628
|
+
const documentMappings = mappings.filter((m) => {
|
|
629
|
+
if ("type" in m) {
|
|
630
|
+
return m.type === "document";
|
|
631
|
+
}
|
|
632
|
+
// Legacy format without type field is a document mapping
|
|
633
|
+
return "collection" in m && "on" in m;
|
|
634
|
+
});
|
|
635
|
+
|
|
636
|
+
// Try each document mapping in order and return the first match
|
|
637
|
+
for (const mapping of documentMappings) {
|
|
616
638
|
try {
|
|
617
|
-
|
|
618
|
-
|
|
639
|
+
// Type guard for TypeScript
|
|
640
|
+
if ("type" in mapping && mapping.type !== "document") continue;
|
|
641
|
+
|
|
642
|
+
const collection = "collection" in mapping ? mapping.collection : "";
|
|
643
|
+
const on = "on" in mapping ? mapping.on : "_id";
|
|
644
|
+
|
|
645
|
+
const coll = client.db(database).collection(collection);
|
|
646
|
+
const query = { [on]: decodedValue };
|
|
619
647
|
|
|
620
648
|
const document = await coll.findOne(query, { maxTimeMS: mongo.getQueryTimeout() });
|
|
621
649
|
|
|
622
650
|
if (document) {
|
|
623
651
|
return {
|
|
624
652
|
data: JsonEncoder.encode(document),
|
|
625
|
-
collection:
|
|
653
|
+
collection: collection,
|
|
626
654
|
error: null,
|
|
627
655
|
};
|
|
628
656
|
}
|
|
629
657
|
} catch (err) {
|
|
630
|
-
|
|
658
|
+
const collection = "collection" in mapping ? mapping.collection : "unknown";
|
|
659
|
+
const on = "on" in mapping ? mapping.on : "_id";
|
|
660
|
+
logger.error(`Error fetching mapped document from ${collection}.${on}:`, err);
|
|
631
661
|
// Continue to next mapping on error
|
|
632
662
|
continue;
|
|
633
663
|
}
|
|
@@ -827,3 +857,159 @@ export const getIndexStatsFromNodes = query(
|
|
|
827
857
|
}
|
|
828
858
|
},
|
|
829
859
|
);
|
|
860
|
+
|
|
861
|
+
// Explain a query and return execution statistics
|
|
862
|
+
export const explainQuery = query(
|
|
863
|
+
z.object({
|
|
864
|
+
server: z.string(),
|
|
865
|
+
database: z.string(),
|
|
866
|
+
collection: z.string(),
|
|
867
|
+
query: z.string().default("{}"),
|
|
868
|
+
sort: z.string().default("{}"),
|
|
869
|
+
project: z.string().default("{}"),
|
|
870
|
+
skip: z.number().int().default(0),
|
|
871
|
+
limit: z.number().int().default(20),
|
|
872
|
+
mode: z.enum(["query", "aggregation"]).default("query"),
|
|
873
|
+
verbosity: z.enum(["queryPlanner", "executionStats", "allPlansExecution"]).default("executionStats"),
|
|
874
|
+
}),
|
|
875
|
+
async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, verbosity }) => {
|
|
876
|
+
// Parse JSON strings
|
|
877
|
+
const queryDoc = (() => {
|
|
878
|
+
try {
|
|
879
|
+
return parseJSON(queryStr, { allowArray: true });
|
|
880
|
+
} catch (err) {
|
|
881
|
+
error(400, `Invalid query: ${err}`);
|
|
882
|
+
}
|
|
883
|
+
})();
|
|
884
|
+
|
|
885
|
+
try {
|
|
886
|
+
parseJSON(sort);
|
|
887
|
+
} catch (err) {
|
|
888
|
+
error(400, `Invalid sort: ${err}`);
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
try {
|
|
892
|
+
parseJSON(project);
|
|
893
|
+
} catch (err) {
|
|
894
|
+
error(400, `Invalid project: ${err}`);
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
const sortDoc = parseJSON(sort);
|
|
898
|
+
const projectDoc = parseJSON(project) as Document;
|
|
899
|
+
|
|
900
|
+
const mongo = await getMongo();
|
|
901
|
+
const client = mongo.getClient(server);
|
|
902
|
+
const coll = client.db(database).collection(collection);
|
|
903
|
+
|
|
904
|
+
try {
|
|
905
|
+
let explainResult;
|
|
906
|
+
|
|
907
|
+
if (mode === "aggregation" && Array.isArray(queryDoc)) {
|
|
908
|
+
// Validate aggregation pipeline
|
|
909
|
+
try {
|
|
910
|
+
validateAggregationPipeline(queryDoc);
|
|
911
|
+
} catch (err) {
|
|
912
|
+
error(400, `Invalid aggregation pipeline: ${err instanceof Error ? err.message : String(err)}`);
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
// Build the full pipeline with project, sort, limit, skip
|
|
916
|
+
const pipeline = JsonEncoder.decode(queryDoc);
|
|
917
|
+
const fullPipeline = [
|
|
918
|
+
...pipeline,
|
|
919
|
+
...(isEmptyObject(projectDoc) ? [] : [{ $project: projectDoc }]),
|
|
920
|
+
...(isEmptyObject(sortDoc as object) ? [] : [{ $sort: sortDoc }]),
|
|
921
|
+
{ $skip: skip },
|
|
922
|
+
{ $limit: limit },
|
|
923
|
+
];
|
|
924
|
+
|
|
925
|
+
// Aggregation explain
|
|
926
|
+
explainResult = await coll.aggregate(fullPipeline).explain(verbosity);
|
|
927
|
+
} else {
|
|
928
|
+
// Find explain
|
|
929
|
+
explainResult = await coll
|
|
930
|
+
.find(JsonEncoder.decode(queryDoc))
|
|
931
|
+
.project(projectDoc)
|
|
932
|
+
.sort(JsonEncoder.decode(sortDoc))
|
|
933
|
+
.skip(skip)
|
|
934
|
+
.limit(limit)
|
|
935
|
+
.explain(verbosity);
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
// Convert to plain object to handle MongoDB special types (Long, Timestamp, etc.)
|
|
939
|
+
// that JsonEncoder doesn't support
|
|
940
|
+
const plainResult = JSON.parse(JSON.stringify(explainResult));
|
|
941
|
+
|
|
942
|
+
return {
|
|
943
|
+
data: plainResult,
|
|
944
|
+
error: null,
|
|
945
|
+
};
|
|
946
|
+
} catch (err) {
|
|
947
|
+
logger.error("Error explaining query:", err);
|
|
948
|
+
return {
|
|
949
|
+
data: null,
|
|
950
|
+
error: `Failed to explain query: ${err instanceof Error ? err.message : String(err)}`,
|
|
951
|
+
};
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
);
|
|
955
|
+
|
|
956
|
+
// Count documents created within a time range (based on ObjectId timestamp)
|
|
957
|
+
export const countDocumentsByTimeRange = query(
|
|
958
|
+
z.object({
|
|
959
|
+
server: z.string(),
|
|
960
|
+
database: z.string(),
|
|
961
|
+
collection: z.string(),
|
|
962
|
+
timeRanges: z.array(
|
|
963
|
+
z.object({
|
|
964
|
+
label: z.string(),
|
|
965
|
+
days: z.number(),
|
|
966
|
+
}),
|
|
967
|
+
),
|
|
968
|
+
}),
|
|
969
|
+
async ({ server, database, collection, timeRanges }) => {
|
|
970
|
+
const mongo = await getMongo();
|
|
971
|
+
const client = mongo.getClient(server);
|
|
972
|
+
const coll = client.db(database).collection(collection);
|
|
973
|
+
|
|
974
|
+
try {
|
|
975
|
+
const results = await Promise.all(
|
|
976
|
+
timeRanges.map(async ({ label, days }) => {
|
|
977
|
+
// Calculate the timestamp for X days ago
|
|
978
|
+
const dateThreshold = new Date();
|
|
979
|
+
dateThreshold.setDate(dateThreshold.getDate() - days);
|
|
980
|
+
|
|
981
|
+
// Create ObjectId from timestamp
|
|
982
|
+
// ObjectId's first 4 bytes are the Unix timestamp
|
|
983
|
+
const objectIdThreshold = ObjectId.createFromTime(Math.floor(dateThreshold.getTime() / 1000));
|
|
984
|
+
|
|
985
|
+
try {
|
|
986
|
+
const count = await coll.countDocuments(
|
|
987
|
+
{ _id: { $gte: objectIdThreshold } },
|
|
988
|
+
{ maxTimeMS: mongo.getCountTimeout() },
|
|
989
|
+
);
|
|
990
|
+
return { label, days, count, error: null };
|
|
991
|
+
} catch (err) {
|
|
992
|
+
logger.error(`Error counting documents for ${label}:`, err);
|
|
993
|
+
return {
|
|
994
|
+
label,
|
|
995
|
+
days,
|
|
996
|
+
count: null,
|
|
997
|
+
error: err instanceof Error ? err.message : String(err),
|
|
998
|
+
};
|
|
999
|
+
}
|
|
1000
|
+
}),
|
|
1001
|
+
);
|
|
1002
|
+
|
|
1003
|
+
return {
|
|
1004
|
+
data: results,
|
|
1005
|
+
error: null,
|
|
1006
|
+
};
|
|
1007
|
+
} catch (err) {
|
|
1008
|
+
logger.error("Error counting documents by time range:", err);
|
|
1009
|
+
return {
|
|
1010
|
+
data: null,
|
|
1011
|
+
error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`,
|
|
1012
|
+
};
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
);
|
package/src/app.css
CHANGED
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
--button-danger: #ff3b30;
|
|
28
28
|
--button-danger-l: #ff6961;
|
|
29
|
-
--button-success:
|
|
30
|
-
--button-success-l: #5dd879;
|
|
29
|
+
--button-success: rgb(5 150 105);
|
|
31
30
|
--button-light: #1d1d1f;
|
|
32
31
|
--button-light-hover: #000000;
|
|
33
32
|
|
|
@@ -66,8 +65,7 @@
|
|
|
66
65
|
|
|
67
66
|
--button-danger: #ff453a;
|
|
68
67
|
--button-danger-l: #ff6961;
|
|
69
|
-
--button-success: #
|
|
70
|
-
--button-success-l: #5dd879;
|
|
68
|
+
--button-success: #10b981;
|
|
71
69
|
--button-light: #f5f5f7;
|
|
72
70
|
--button-light-hover: #ffffff;
|
|
73
71
|
|
|
@@ -106,8 +104,7 @@
|
|
|
106
104
|
|
|
107
105
|
--button-danger: #ff3b30;
|
|
108
106
|
--button-danger-l: #ff6961;
|
|
109
|
-
--button-success:
|
|
110
|
-
--button-success-l: #5dd879;
|
|
107
|
+
--button-success: rgb(5 150 105);
|
|
111
108
|
--button-light: #1d1d1f;
|
|
112
109
|
--button-light-hover: #000000;
|
|
113
110
|
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import JsonValue from "./JsonValue.svelte";
|
|
3
|
+
import Modal from "./Modal.svelte";
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
data: unknown;
|
|
7
|
+
show: boolean;
|
|
8
|
+
onclose: () => void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { data, show, onclose }: Props = $props();
|
|
12
|
+
|
|
13
|
+
// Recursively find index name in the execution plan tree
|
|
14
|
+
function findIndexInPlan(plan: Record<string, unknown> | undefined): string | null {
|
|
15
|
+
if (!plan) return null;
|
|
16
|
+
|
|
17
|
+
// Check if this stage has an index
|
|
18
|
+
if (plan.indexName) {
|
|
19
|
+
return String(plan.indexName);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Check if this is an IXSCAN stage
|
|
23
|
+
if (plan.stage === "IXSCAN" && plan.indexName) {
|
|
24
|
+
return String(plan.indexName);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Recursively check inputStage
|
|
28
|
+
if (plan.inputStage) {
|
|
29
|
+
const result = findIndexInPlan(plan.inputStage as Record<string, unknown>);
|
|
30
|
+
if (result) return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Check inputStages array (for some aggregation plans)
|
|
34
|
+
if (Array.isArray(plan.inputStages)) {
|
|
35
|
+
for (const stage of plan.inputStages) {
|
|
36
|
+
const result = findIndexInPlan(stage as Record<string, unknown>);
|
|
37
|
+
if (result) return result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Check queryPlan (for some MongoDB versions)
|
|
42
|
+
if (plan.queryPlan) {
|
|
43
|
+
const result = findIndexInPlan(plan.queryPlan as Record<string, unknown>);
|
|
44
|
+
if (result) return result;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check if plan contains COLLSCAN (no index used)
|
|
51
|
+
function hasCollScan(plan: Record<string, unknown> | undefined): boolean {
|
|
52
|
+
if (!plan) return false;
|
|
53
|
+
|
|
54
|
+
if (plan.stage === "COLLSCAN") return true;
|
|
55
|
+
|
|
56
|
+
if (plan.inputStage) {
|
|
57
|
+
if (hasCollScan(plan.inputStage as Record<string, unknown>)) return true;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (Array.isArray(plan.inputStages)) {
|
|
61
|
+
for (const stage of plan.inputStages) {
|
|
62
|
+
if (hasCollScan(stage as Record<string, unknown>)) return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (plan.queryPlan) {
|
|
67
|
+
if (hasCollScan(plan.queryPlan as Record<string, unknown>)) return true;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Extract key metrics from explain output
|
|
74
|
+
const metrics = $derived.by(() => {
|
|
75
|
+
if (!data || typeof data !== "object") return null;
|
|
76
|
+
|
|
77
|
+
const d = data as Record<string, unknown>;
|
|
78
|
+
const execStats = d.executionStats as Record<string, unknown> | undefined;
|
|
79
|
+
const queryPlanner = d.queryPlanner as Record<string, unknown> | undefined;
|
|
80
|
+
const winningPlan = queryPlanner?.winningPlan as Record<string, unknown> | undefined;
|
|
81
|
+
|
|
82
|
+
// Find index name recursively in the plan
|
|
83
|
+
const indexName = findIndexInPlan(winningPlan);
|
|
84
|
+
|
|
85
|
+
// Determine if COLLSCAN is used
|
|
86
|
+
const isCollScan = hasCollScan(winningPlan);
|
|
87
|
+
|
|
88
|
+
// Set index used
|
|
89
|
+
let indexUsed: string;
|
|
90
|
+
if (indexName) {
|
|
91
|
+
indexUsed = indexName;
|
|
92
|
+
} else if (isCollScan) {
|
|
93
|
+
indexUsed = "COLLSCAN";
|
|
94
|
+
} else {
|
|
95
|
+
indexUsed = "N/A";
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Determine the main stage
|
|
99
|
+
const stage = winningPlan?.stage ?? "N/A";
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
executionTimeMs: execStats?.executionTimeMillis ?? "N/A",
|
|
103
|
+
docsExamined: execStats?.totalDocsExamined ?? "N/A",
|
|
104
|
+
keysExamined: execStats?.totalKeysExamined ?? "N/A",
|
|
105
|
+
nReturned: execStats?.nReturned ?? "N/A",
|
|
106
|
+
indexUsed,
|
|
107
|
+
stage,
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Calculate efficiency ratio: nReturned / keysExamined
|
|
112
|
+
// When index used: nReturned / keysExamined
|
|
113
|
+
// When COLLSCAN (keysExamined = 0): 0% efficiency
|
|
114
|
+
const efficiency = $derived.by(() => {
|
|
115
|
+
if (!metrics) return null;
|
|
116
|
+
const keysExamined = Number(metrics.keysExamined);
|
|
117
|
+
const returned = Number(metrics.nReturned);
|
|
118
|
+
|
|
119
|
+
if (keysExamined > 0) {
|
|
120
|
+
// Index used: nReturned / keysExamined
|
|
121
|
+
return ((returned / keysExamined) * 100).toFixed(1);
|
|
122
|
+
}
|
|
123
|
+
// COLLSCAN: 0% efficiency (no index used)
|
|
124
|
+
return "0.0";
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// For display
|
|
128
|
+
const efficiencyLabel = $derived.by(() => {
|
|
129
|
+
if (!metrics) return "";
|
|
130
|
+
const keysExamined = Number(metrics.keysExamined);
|
|
131
|
+
const docsExamined = Number(metrics.docsExamined);
|
|
132
|
+
const returned = Number(metrics.nReturned);
|
|
133
|
+
|
|
134
|
+
if (keysExamined > 0) {
|
|
135
|
+
return `${returned} / ${keysExamined} keys to docs`;
|
|
136
|
+
}
|
|
137
|
+
return `${keysExamined} keys / ${docsExamined} docs`;
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Determine if the query is efficient
|
|
141
|
+
const isEfficient = $derived.by(() => {
|
|
142
|
+
if (!metrics) return null;
|
|
143
|
+
// COLLSCAN is generally inefficient for large collections
|
|
144
|
+
if (metrics.indexUsed === "COLLSCAN" || metrics.indexUsed === "N/A") return false;
|
|
145
|
+
// Has an index - that's good
|
|
146
|
+
return true;
|
|
147
|
+
});
|
|
148
|
+
</script>
|
|
149
|
+
|
|
150
|
+
<Modal {show} {onclose} title="Execution Stats" wide={true}>
|
|
151
|
+
<!-- Quick metrics summary -->
|
|
152
|
+
{#if metrics}
|
|
153
|
+
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mb-6">
|
|
154
|
+
<div class="metric-card">
|
|
155
|
+
<span class="metric-label">Execution Time</span>
|
|
156
|
+
<span class="metric-value">{metrics.executionTimeMs}ms</span>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="metric-card">
|
|
159
|
+
<span class="metric-label">Documents Returned</span>
|
|
160
|
+
<span class="metric-value"
|
|
161
|
+
>{typeof metrics.nReturned === "number" ? metrics.nReturned.toLocaleString() : metrics.nReturned}</span
|
|
162
|
+
>
|
|
163
|
+
</div>
|
|
164
|
+
<div class="metric-card">
|
|
165
|
+
<span class="metric-label">Documents Examined</span>
|
|
166
|
+
<span class="metric-value"
|
|
167
|
+
>{typeof metrics.docsExamined === "number"
|
|
168
|
+
? metrics.docsExamined.toLocaleString()
|
|
169
|
+
: metrics.docsExamined}</span
|
|
170
|
+
>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="metric-card">
|
|
173
|
+
<span class="metric-label">Keys Examined</span>
|
|
174
|
+
<span class="metric-value"
|
|
175
|
+
>{typeof metrics.keysExamined === "number"
|
|
176
|
+
? metrics.keysExamined.toLocaleString()
|
|
177
|
+
: metrics.keysExamined}</span
|
|
178
|
+
>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="metric-card">
|
|
181
|
+
<span class="metric-label">Index Used</span>
|
|
182
|
+
<span
|
|
183
|
+
class="metric-value"
|
|
184
|
+
class:warning={metrics.indexUsed === "COLLSCAN"}
|
|
185
|
+
class:good={metrics.indexUsed !== "COLLSCAN"}
|
|
186
|
+
>
|
|
187
|
+
{metrics.indexUsed}
|
|
188
|
+
</span>
|
|
189
|
+
</div>
|
|
190
|
+
<div class="metric-card">
|
|
191
|
+
<span class="metric-label">Query Stage</span>
|
|
192
|
+
<span class="metric-value">{metrics.stage}</span>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- Efficiency indicator -->
|
|
197
|
+
{#if efficiency !== null}
|
|
198
|
+
<div class="efficiency-bar mb-6">
|
|
199
|
+
<div class="flex justify-between items-center mb-2">
|
|
200
|
+
<span class="text-sm font-semibold" style="color: var(--text);">Efficiency</span>
|
|
201
|
+
<span class="text-sm font-mono" style="color: var(--text-secondary);">
|
|
202
|
+
{efficiencyLabel} ({efficiency}%)
|
|
203
|
+
</span>
|
|
204
|
+
</div>
|
|
205
|
+
<div class="h-2 rounded-full bg-[var(--color-3)] overflow-hidden">
|
|
206
|
+
<div
|
|
207
|
+
class="h-full rounded-full transition-all duration-300"
|
|
208
|
+
class:bg-green-500={isEfficient && Number(efficiency) >= 70}
|
|
209
|
+
class:bg-yellow-500={isEfficient && Number(efficiency) >= 30 && Number(efficiency) < 70}
|
|
210
|
+
class:bg-red-500={!isEfficient || Number(efficiency) < 30}
|
|
211
|
+
style="width: {isEfficient ? Math.min(Number(efficiency), 100) : 100}%"
|
|
212
|
+
></div>
|
|
213
|
+
</div>
|
|
214
|
+
{#if isEfficient === false}
|
|
215
|
+
<p class="text-xs mt-2" style="color: var(--error);">
|
|
216
|
+
⚠️ This query is using a collection scan (COLLSCAN). Consider adding an index for better performance.
|
|
217
|
+
</p>
|
|
218
|
+
{/if}
|
|
219
|
+
</div>
|
|
220
|
+
{/if}
|
|
221
|
+
{/if}
|
|
222
|
+
|
|
223
|
+
<!-- Full explain output -->
|
|
224
|
+
<details class="mt-4">
|
|
225
|
+
<summary class="cursor-pointer text-sm font-semibold mb-3" style="color: var(--link);">
|
|
226
|
+
View full explain output
|
|
227
|
+
</summary>
|
|
228
|
+
<div
|
|
229
|
+
class="p-4 rounded-xl bg-[var(--color-3)] font-mono text-sm overflow-auto max-h-[400px] border border-[var(--border-color)]"
|
|
230
|
+
>
|
|
231
|
+
<JsonValue value={data} collapsed={false} />
|
|
232
|
+
</div>
|
|
233
|
+
</details>
|
|
234
|
+
|
|
235
|
+
{#snippet footer()}
|
|
236
|
+
<button class="btn btn-default btn-sm" onclick={onclose}>Close</button>
|
|
237
|
+
{/snippet}
|
|
238
|
+
</Modal>
|
|
239
|
+
|
|
240
|
+
<style lang="postcss">
|
|
241
|
+
.metric-card {
|
|
242
|
+
display: flex;
|
|
243
|
+
flex-direction: column;
|
|
244
|
+
gap: 6px;
|
|
245
|
+
padding: 16px;
|
|
246
|
+
border-radius: 12px;
|
|
247
|
+
background-color: var(--color-3);
|
|
248
|
+
border: 1px solid var(--border-color);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.metric-label {
|
|
252
|
+
font-size: 12px;
|
|
253
|
+
font-weight: 500;
|
|
254
|
+
color: var(--text-secondary);
|
|
255
|
+
text-transform: uppercase;
|
|
256
|
+
letter-spacing: 0.5px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.metric-value {
|
|
260
|
+
font-size: 20px;
|
|
261
|
+
font-weight: 600;
|
|
262
|
+
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
263
|
+
color: var(--text);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.metric-value.warning {
|
|
267
|
+
color: var(--error);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.metric-value.good {
|
|
271
|
+
color: var(--button-success);
|
|
272
|
+
}
|
|
273
|
+
</style>
|