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
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import './async-lVJA8xJZ.js';
|
|
2
|
-
import { s as stringify, a as attr, e as ensure_array_like } from './index2-eSFyMQpS.js';
|
|
3
|
-
import './servers.remote-CGies_Na.js';
|
|
4
|
-
import { r as resolve } from './server2-YmCaJGWy.js';
|
|
5
|
-
import { P as Panel } from './Panel-BHGtM9Vw.js';
|
|
6
|
-
import { e as escape_html } from './context-C22hLSHK.js';
|
|
7
|
-
import './utils-D1ahxout.js';
|
|
8
|
-
import './shared-CQd3A1I4.js';
|
|
9
|
-
import './index-Djsj11qr.js';
|
|
10
|
-
import './jsonParser-C3QUcODD.js';
|
|
11
|
-
import 'esprima';
|
|
12
|
-
import './JsonEncoder-B8eJRYZ4.js';
|
|
13
|
-
import 'mongodb';
|
|
14
|
-
import './logger-KF6KpVP6.js';
|
|
15
|
-
import 'async_hooks';
|
|
16
|
-
import 'node:util';
|
|
17
|
-
import './mongo-BHk5yAj9.js';
|
|
18
|
-
import 'dns/promises';
|
|
19
|
-
import 'url';
|
|
20
|
-
import 'node:fs';
|
|
21
|
-
import 'node:os';
|
|
22
|
-
import 'node:path';
|
|
23
|
-
import 'zod';
|
|
24
|
-
import './routing-e10vGH37.js';
|
|
25
|
-
|
|
26
|
-
function _page($$renderer, $$props) {
|
|
27
|
-
$$renderer.component(($$renderer2) => {
|
|
28
|
-
let { data } = $$props;
|
|
29
|
-
let mappingsArray = Object.entries(data.mappings).map(([fieldPath, targets]) => ({
|
|
30
|
-
fieldPath,
|
|
31
|
-
targets: Array.isArray(targets) ? targets : [targets]
|
|
32
|
-
}));
|
|
33
|
-
`I need help generating MongoDB collection mappings for my database.
|
|
34
|
-
|
|
35
|
-
**Context:**
|
|
36
|
-
- Database: ${data.database}
|
|
37
|
-
- Collection: ${data.collection}
|
|
38
|
-
- Available collections: ${data.availableCollections.join(", ")}
|
|
39
|
-
|
|
40
|
-
**Task:**
|
|
41
|
-
Please analyze my codebase to identify relationships between the "${data.collection}" collection and other collections. Look for:
|
|
42
|
-
1. Fields that reference documents in other collections (foreign keys)
|
|
43
|
-
2. Nested fields within arrays or objects that reference other documents
|
|
44
|
-
3. Common patterns like userId, authorId, etc.
|
|
45
|
-
|
|
46
|
-
If you have access to the MongoDB MCP server, use it to:
|
|
47
|
-
1. Query sample documents from the "${data.collection}" collection
|
|
48
|
-
2. Analyze the schema and field types
|
|
49
|
-
3. Identify potential foreign key relationships
|
|
50
|
-
|
|
51
|
-
**Output Format:**
|
|
52
|
-
Create a file named \`${data.collection}.mappings.json\` with the following structure:
|
|
53
|
-
|
|
54
|
-
\`\`\`json
|
|
55
|
-
{
|
|
56
|
-
"_id": "${data.collection}",
|
|
57
|
-
"mappings": {
|
|
58
|
-
"fieldPath": { "collection": "targetCollection", "on": "targetField" },
|
|
59
|
-
"nested.fieldPath": { "collection": "targetCollection", "on": "targetField" }
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
\`\`\`
|
|
63
|
-
|
|
64
|
-
**Example:**
|
|
65
|
-
If the collection has documents like:
|
|
66
|
-
\`\`\`json
|
|
67
|
-
{
|
|
68
|
-
"_id": "post1",
|
|
69
|
-
"authorId": "user123",
|
|
70
|
-
"comments": [
|
|
71
|
-
{ "authorId": "user456", "text": "Great post!" }
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
\`\`\`
|
|
75
|
-
|
|
76
|
-
The mappings would be:
|
|
77
|
-
\`\`\`json
|
|
78
|
-
{
|
|
79
|
-
"_id": "${data.collection}",
|
|
80
|
-
"mappings": {
|
|
81
|
-
"authorId": { "collection": "users", "on": "_id" },
|
|
82
|
-
"comments.authorId": { "collection": "users", "on": "_id" }
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
\`\`\`
|
|
86
|
-
|
|
87
|
-
**Notes:**
|
|
88
|
-
- Use dot notation for nested fields (e.g., "comments.authorId")
|
|
89
|
-
- Multiple mappings for the same field can be expressed as an array
|
|
90
|
-
- Target field is usually "_id" but can be any unique field
|
|
91
|
-
|
|
92
|
-
Please analyze the codebase and database, then generate the appropriate mappings file.`;
|
|
93
|
-
{
|
|
94
|
-
let actions = function($$renderer3) {
|
|
95
|
-
$$renderer3.push(`<button class="btn btn-outline-light btn-sm -my-2 hover:bg-[var(--color-3)]">🤖 AI Helper</button> `);
|
|
96
|
-
if (!data.readOnly) {
|
|
97
|
-
$$renderer3.push("<!--[-->");
|
|
98
|
-
$$renderer3.push(`<button class="btn btn-success btn-sm -my-2 hover:bg-[var(--button-success-l)]">Save</button>`);
|
|
99
|
-
} else {
|
|
100
|
-
$$renderer3.push("<!--[!-->");
|
|
101
|
-
}
|
|
102
|
-
$$renderer3.push(`<!--]-->`);
|
|
103
|
-
};
|
|
104
|
-
Panel($$renderer2, {
|
|
105
|
-
title: `Mappings for ${stringify(data.collection)}`,
|
|
106
|
-
titleClass: "py-2",
|
|
107
|
-
actions,
|
|
108
|
-
children: ($$renderer3) => {
|
|
109
|
-
$$renderer3.push(`<div class="p-4"><div class="mb-4"><p class="mb-3">Define relationships between collections to enable hover tooltips and navigation on foreign key fields. This
|
|
110
|
-
will be stored in the <code class="px-1 bg-[var(--light-background)] rounded">mongoku.mappings</code> collection
|
|
111
|
-
as a document with <a${attr("href", resolve(`/servers/${data.server}/databases/${data.database}/collections/mongoku.mappings/documents/${data.collection}`))} class="text-blue-500">_id: "${escape_html(data.collection)}"</a>.</p> <details class="mb-2" style="color: var(--text-secondary);"><summary class="cursor-pointer font-medium mb-2">Example</summary> <div class="mt-2"><div class="mb-1">Document in collection <code class="px-1 bg-[var(--light-background)] rounded">posts</code>:</div> <code class="block px-2 py-1 bg-[var(--light-background)] rounded text-xs mb-2">{ _id: "post1", title: "Hello", authorId: "user123", comments: [{authorId: "user456", text:
|
|
112
|
-
"Nice!"}] }</code> <div class="text space-y-1"><div>→ Mapping 1: Field path <code class="px-1 bg-[var(--light-background)] rounded">authorId</code>, target
|
|
113
|
-
collection <code class="px-1 bg-[var(--light-background)] rounded">users</code>, target field <code class="px-1 bg-[var(--light-background)] rounded">_id</code></div> <div>→ Mapping 2: Field path <code class="px-1 bg-[var(--light-background)] rounded">comments.authorId</code>,
|
|
114
|
-
target collection <code class="px-1 bg-[var(--light-background)] rounded">users</code>, target field <code class="px-1 bg-[var(--light-background)] rounded">_id</code></div></div></div></details></div> `);
|
|
115
|
-
if (mappingsArray.length > 0) {
|
|
116
|
-
$$renderer3.push("<!--[-->");
|
|
117
|
-
$$renderer3.push(`<div class="space-y-4"><!--[-->`);
|
|
118
|
-
const each_array = ensure_array_like(mappingsArray);
|
|
119
|
-
for (let entryIndex = 0, $$length = each_array.length; entryIndex < $$length; entryIndex++) {
|
|
120
|
-
let entry = each_array[entryIndex];
|
|
121
|
-
$$renderer3.push(`<div class="border border-[var(--border-color)] rounded p-4"><div class="flex items-start gap-4 mb-3"><div class="flex-1"><label class="block text-sm font-medium mb-1">Field Path <input type="text"${attr("value", entry.fieldPath)} placeholder="e.g., authorId or comments.authorId" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"${attr("disabled", data.readOnly, true)}/></label></div> `);
|
|
122
|
-
if (!data.readOnly) {
|
|
123
|
-
$$renderer3.push("<!--[-->");
|
|
124
|
-
$$renderer3.push(`<button class="btn btn-outline-danger btn-sm mt-6 hover:bg-[rgba(255,59,48,0.1)]">Remove Mapping</button>`);
|
|
125
|
-
} else {
|
|
126
|
-
$$renderer3.push("<!--[!-->");
|
|
127
|
-
}
|
|
128
|
-
$$renderer3.push(`<!--]--></div> <div class="space-y-2"><!--[-->`);
|
|
129
|
-
const each_array_1 = ensure_array_like(entry.targets);
|
|
130
|
-
for (let targetIndex = 0, $$length2 = each_array_1.length; targetIndex < $$length2; targetIndex++) {
|
|
131
|
-
let target = each_array_1[targetIndex];
|
|
132
|
-
$$renderer3.push(`<div class="flex items-start gap-2 pl-4 border-l-2 border-[var(--color-3)]"><div class="flex-1"><label class="block text-xs mb-1">Target Collection `);
|
|
133
|
-
$$renderer3.select(
|
|
134
|
-
{
|
|
135
|
-
value: target.collection,
|
|
136
|
-
class: "w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1",
|
|
137
|
-
disabled: data.readOnly
|
|
138
|
-
},
|
|
139
|
-
($$renderer4) => {
|
|
140
|
-
$$renderer4.option({ value: "" }, ($$renderer5) => {
|
|
141
|
-
$$renderer5.push(`Select collection...`);
|
|
142
|
-
});
|
|
143
|
-
$$renderer4.push(`<!--[-->`);
|
|
144
|
-
const each_array_2 = ensure_array_like(data.availableCollections);
|
|
145
|
-
for (let $$index = 0, $$length3 = each_array_2.length; $$index < $$length3; $$index++) {
|
|
146
|
-
let col = each_array_2[$$index];
|
|
147
|
-
$$renderer4.option({ value: col }, ($$renderer5) => {
|
|
148
|
-
$$renderer5.push(`${escape_html(col)}`);
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
$$renderer4.push(`<!--]-->`);
|
|
152
|
-
}
|
|
153
|
-
);
|
|
154
|
-
$$renderer3.push(`</label></div> <div class="flex-1"><label class="block text-xs mb-1">Target Field <input type="text"${attr("value", target.on)} placeholder="_id" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"${attr("disabled", data.readOnly, true)}/></label></div> `);
|
|
155
|
-
if (!data.readOnly) {
|
|
156
|
-
$$renderer3.push("<!--[-->");
|
|
157
|
-
$$renderer3.push(`<button class="btn btn-outline-danger btn-sm mt-5 hover:bg-[rgba(255,59,48,0.1)]"${attr("disabled", entry.targets.length === 1, true)}>×</button>`);
|
|
158
|
-
} else {
|
|
159
|
-
$$renderer3.push("<!--[!-->");
|
|
160
|
-
}
|
|
161
|
-
$$renderer3.push(`<!--]--></div>`);
|
|
162
|
-
}
|
|
163
|
-
$$renderer3.push(`<!--]--></div> `);
|
|
164
|
-
if (!data.readOnly) {
|
|
165
|
-
$$renderer3.push("<!--[-->");
|
|
166
|
-
$$renderer3.push(`<button class="btn btn-outline-light btn-sm mt-2 ml-4 hover:bg-[var(--color-3)]">+ Add Alternative Target</button>`);
|
|
167
|
-
} else {
|
|
168
|
-
$$renderer3.push("<!--[!-->");
|
|
169
|
-
}
|
|
170
|
-
$$renderer3.push(`<!--]--></div>`);
|
|
171
|
-
}
|
|
172
|
-
$$renderer3.push(`<!--]--></div>`);
|
|
173
|
-
} else {
|
|
174
|
-
$$renderer3.push("<!--[!-->");
|
|
175
|
-
$$renderer3.push(`<div class="text-center py-8" style="color: var(--text-secondary);">No mappings defined yet.</div>`);
|
|
176
|
-
}
|
|
177
|
-
$$renderer3.push(`<!--]--> `);
|
|
178
|
-
if (!data.readOnly) {
|
|
179
|
-
$$renderer3.push("<!--[-->");
|
|
180
|
-
$$renderer3.push(`<div class="mt-4">`);
|
|
181
|
-
{
|
|
182
|
-
$$renderer3.push("<!--[-->");
|
|
183
|
-
$$renderer3.push(`<button class="btn btn-success hover:bg-[var(--button-success-l)]">+ Add New Mapping</button>`);
|
|
184
|
-
}
|
|
185
|
-
$$renderer3.push(`<!--]--></div>`);
|
|
186
|
-
} else {
|
|
187
|
-
$$renderer3.push("<!--[!-->");
|
|
188
|
-
}
|
|
189
|
-
$$renderer3.push(`<!--]--></div>`);
|
|
190
|
-
},
|
|
191
|
-
$$slots: { actions: true, default: true }
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
$$renderer2.push(`<!----> `);
|
|
195
|
-
{
|
|
196
|
-
$$renderer2.push("<!--[!-->");
|
|
197
|
-
}
|
|
198
|
-
$$renderer2.push(`<!--]-->`);
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
export { _page as default };
|
|
203
|
-
//# sourceMappingURL=_page.svelte-CJ5HzoD0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-CJ5HzoD0.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/mappings/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../chunks/async.js\";\nimport { x as attr, w as ensure_array_like, z as stringify } from \"../../../../../../../../../chunks/index2.js\";\nimport \"../../../../../../../../../chunks/servers.remote.js\";\nimport { r as resolve } from \"../../../../../../../../../chunks/server2.js\";\nimport { P as Panel } from \"../../../../../../../../../chunks/Panel.js\";\nimport { e as escape_html } from \"../../../../../../../../../chunks/context.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let mappingsArray = Object.entries(data.mappings).map(([fieldPath, targets]) => ({\n fieldPath,\n targets: Array.isArray(targets) ? targets : [targets]\n }));\n `I need help generating MongoDB collection mappings for my database.\n\n**Context:**\n- Database: ${data.database}\n- Collection: ${data.collection}\n- Available collections: ${data.availableCollections.join(\", \")}\n\n**Task:**\nPlease analyze my codebase to identify relationships between the \"${data.collection}\" collection and other collections. Look for:\n1. Fields that reference documents in other collections (foreign keys)\n2. Nested fields within arrays or objects that reference other documents\n3. Common patterns like userId, authorId, etc.\n\nIf you have access to the MongoDB MCP server, use it to:\n1. Query sample documents from the \"${data.collection}\" collection\n2. Analyze the schema and field types\n3. Identify potential foreign key relationships\n\n**Output Format:**\nCreate a file named \\`${data.collection}.mappings.json\\` with the following structure:\n\n\\`\\`\\`json\n{\n \"_id\": \"${data.collection}\",\n \"mappings\": {\n \"fieldPath\": { \"collection\": \"targetCollection\", \"on\": \"targetField\" },\n \"nested.fieldPath\": { \"collection\": \"targetCollection\", \"on\": \"targetField\" }\n }\n}\n\\`\\`\\`\n\n**Example:**\nIf the collection has documents like:\n\\`\\`\\`json\n{\n \"_id\": \"post1\",\n \"authorId\": \"user123\",\n \"comments\": [\n { \"authorId\": \"user456\", \"text\": \"Great post!\" }\n ]\n}\n\\`\\`\\`\n\nThe mappings would be:\n\\`\\`\\`json\n{\n \"_id\": \"${data.collection}\",\n \"mappings\": {\n \"authorId\": { \"collection\": \"users\", \"on\": \"_id\" },\n \"comments.authorId\": { \"collection\": \"users\", \"on\": \"_id\" }\n }\n}\n\\`\\`\\`\n\n**Notes:**\n- Use dot notation for nested fields (e.g., \"comments.authorId\")\n- Multiple mappings for the same field can be expressed as an array\n- Target field is usually \"_id\" but can be any unique field\n\nPlease analyze the codebase and database, then generate the appropriate mappings file.`;\n {\n let actions = function($$renderer3) {\n $$renderer3.push(`<button class=\"btn btn-outline-light btn-sm -my-2 hover:bg-[var(--color-3)]\">🤖 AI Helper</button> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-success btn-sm -my-2 hover:bg-[var(--button-success-l)]\">Save</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n };\n Panel($$renderer2, {\n title: `Mappings for ${stringify(data.collection)}`,\n titleClass: \"py-2\",\n actions,\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"p-4\"><div class=\"mb-4\"><p class=\"mb-3\">Define relationships between collections to enable hover tooltips and navigation on foreign key fields. This\n\t\t\t\twill be stored in the <code class=\"px-1 bg-[var(--light-background)] rounded\">mongoku.mappings</code> collection\n\t\t\t\tas a document with <a${attr(\"href\", resolve(`/servers/${data.server}/databases/${data.database}/collections/mongoku.mappings/documents/${data.collection}`))} class=\"text-blue-500\">_id: \"${escape_html(data.collection)}\"</a>.</p> <details class=\"mb-2\" style=\"color: var(--text-secondary);\"><summary class=\"cursor-pointer font-medium mb-2\">Example</summary> <div class=\"mt-2\"><div class=\"mb-1\">Document in collection <code class=\"px-1 bg-[var(--light-background)] rounded\">posts</code>:</div> <code class=\"block px-2 py-1 bg-[var(--light-background)] rounded text-xs mb-2\">{ _id: \"post1\", title: \"Hello\", authorId: \"user123\", comments: [{authorId: \"user456\", text:\n\t\t\t\t\t\t\"Nice!\"}] }</code> <div class=\"text space-y-1\"><div>→ Mapping 1: Field path <code class=\"px-1 bg-[var(--light-background)] rounded\">authorId</code>, target\n\t\t\t\t\t\t\tcollection <code class=\"px-1 bg-[var(--light-background)] rounded\">users</code>, target field <code class=\"px-1 bg-[var(--light-background)] rounded\">_id</code></div> <div>→ Mapping 2: Field path <code class=\"px-1 bg-[var(--light-background)] rounded\">comments.authorId</code>,\n\t\t\t\t\t\t\ttarget collection <code class=\"px-1 bg-[var(--light-background)] rounded\">users</code>, target field <code class=\"px-1 bg-[var(--light-background)] rounded\">_id</code></div></div></div></details></div> `);\n if (mappingsArray.length > 0) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"space-y-4\"><!--[-->`);\n const each_array = ensure_array_like(mappingsArray);\n for (let entryIndex = 0, $$length = each_array.length; entryIndex < $$length; entryIndex++) {\n let entry = each_array[entryIndex];\n $$renderer3.push(`<div class=\"border border-[var(--border-color)] rounded p-4\"><div class=\"flex items-start gap-4 mb-3\"><div class=\"flex-1\"><label class=\"block text-sm font-medium mb-1\">Field Path <input type=\"text\"${attr(\"value\", entry.fieldPath)} placeholder=\"e.g., authorId or comments.authorId\" class=\"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\"${attr(\"disabled\", data.readOnly, true)}/></label></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-danger btn-sm mt-6 hover:bg-[rgba(255,59,48,0.1)]\">Remove Mapping</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div> <div class=\"space-y-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(entry.targets);\n for (let targetIndex = 0, $$length2 = each_array_1.length; targetIndex < $$length2; targetIndex++) {\n let target = each_array_1[targetIndex];\n $$renderer3.push(`<div class=\"flex items-start gap-2 pl-4 border-l-2 border-[var(--color-3)]\"><div class=\"flex-1\"><label class=\"block text-xs mb-1\">Target Collection `);\n $$renderer3.select(\n {\n value: target.collection,\n class: \"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\",\n disabled: data.readOnly\n },\n ($$renderer4) => {\n $$renderer4.option({ value: \"\" }, ($$renderer5) => {\n $$renderer5.push(`Select collection...`);\n });\n $$renderer4.push(`<!--[-->`);\n const each_array_2 = ensure_array_like(data.availableCollections);\n for (let $$index = 0, $$length3 = each_array_2.length; $$index < $$length3; $$index++) {\n let col = each_array_2[$$index];\n $$renderer4.option({ value: col }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(col)}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`</label></div> <div class=\"flex-1\"><label class=\"block text-xs mb-1\">Target Field <input type=\"text\"${attr(\"value\", target.on)} placeholder=\"_id\" class=\"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\"${attr(\"disabled\", data.readOnly, true)}/></label></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-danger btn-sm mt-5 hover:bg-[rgba(255,59,48,0.1)]\"${attr(\"disabled\", entry.targets.length === 1, true)}>×</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-light btn-sm mt-2 ml-4 hover:bg-[var(--color-3)]\">+ Add Alternative Target</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<div class=\"text-center py-8\" style=\"color: var(--text-secondary);\">No mappings defined yet.</div>`);\n }\n $$renderer3.push(`<!--]--> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"mt-4\">`);\n {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-success hover:bg-[var(--button-success-l)]\">+ Add New Mapping</button>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n },\n $$slots: { actions: true, default: true }\n });\n }\n $$renderer2.push(`<!----> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-D-23v2Aa.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../chunks/async.js\";\nimport { y as attr_class, J as clsx, x as attr, K as bind_props, G as await_block, w as ensure_array_like } from \"../../../../../../../../../chunks/index2.js\";\nimport { d as deleteDocument, u as updateDocument } from \"../../../../../../../../../chunks/servers.remote.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../../../../../../../../chunks/exports.js\";\nimport \"../../../../../../../../../chunks/utils.js\";\nimport { r as resolve } from \"../../../../../../../../../chunks/server2.js\";\nimport \"../../../../../../../../../chunks/state.svelte.js\";\nimport { P as Panel } from \"../../../../../../../../../chunks/Panel.js\";\nimport { P as PrettyJson } from \"../../../../../../../../../chunks/PrettyJson.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../../../../../../../../chunks/client.js\";\nimport { e as escape_html } from \"../../../../../../../../../chunks/context.js\";\nimport { n as notificationStore } from \"../../../../../../../../../chunks/notifications.svelte.js\";\nimport { a as formatNumber } from \"../../../../../../../../../chunks/filters.js\";\nimport { p as parseJSON } from \"../../../../../../../../../chunks/jsonParser.js\";\nimport { a as SvelteURLSearchParams } from \"../../../../../../../../../chunks/index-server.js\";\nfunction IconChevronDown($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"m6 9 6 6 6-6\"></path></svg>`);\n}\nfunction IconEdit($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\"></path><path d=\"m15 5 4 4\"></path></svg>`);\n}\nfunction SearchBox($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { params = void 0, editMode = false, readonly = false } = $$props;\n let showOptionalFields = params.sort !== \"{}\" || params.project !== \"{}\" || params.skip !== 0 || params.limit !== 20;\n let counter = Math.random();\n $$renderer2.push(`<div class=\"rounded-2xl border border-[var(--border-color)] bg-[var(--light-background)]/70 shadow-sm p-3 sm:p-4\"><form class=\"flex flex-col gap-3\" method=\"GET\" action=\"?\"><div class=\"flex items-stretch gap-2\"><div class=\"flex-1 flex items-stretch rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><button type=\"button\" class=\"h-full px-3 flex items-center gap-1 text-[13px] border-r border-[var(--border-color)] hover:bg-[var(--color-3)] transition cursor-pointer\" style=\"color: var(--text-secondary);\"><span class=\"capitalize\">${escape_html(params.mode)}</span> `);\n IconChevronDown($$renderer2, { class: \"w-3 h-3\" });\n $$renderer2.push(`<!----></button> `);\n if (params.mode === \"aggregation\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<textarea placeholder=\"[]\" name=\"query\" rows=\"5\" class=\"w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1\" style=\"color: var(--text);\">`);\n const $$body = escape_html(params.query);\n if ($$body) {\n $$renderer2.push(`${$$body}`);\n }\n $$renderer2.push(`</textarea>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (params.mode === \"distinct\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<input type=\"text\"${attr(\"value\", params.field)} name=\"field\" placeholder=\"field name\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<input type=\"text\"${attr(\"value\", params.query)} placeholder=\"{}\" name=\"query\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/>`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div> <input type=\"hidden\"${attr(\"value\", params.mode)} name=\"mode\"/> <input type=\"hidden\"${attr(\"value\", counter)} name=\"v\"/> <div class=\"flex items-center gap-2\"><button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[15px] font-semibold leading-none transition cursor-pointer\" style=\"color: var(--text);\" title=\"Toggle optional fields\">${escape_html(showOptionalFields ? \"−\" : \"+\")}</button> `);\n if (!readonly) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button type=\"button\" class=\"h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer\" style=\"color: var(--text);\"${attr(\"title\", params.mode !== \"query\" ? \"Update not available in this mode\" : \"Update multiple documents\")}${attr(\"disabled\", params.mode !== \"query\", true)}>`);\n IconEdit($$renderer2, { class: \"w-4 h-4\" });\n $$renderer2.push(`<!----></button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <button type=\"submit\" class=\"h-9 px-4 rounded-xl bg-[var(--button-success)] text-white font-semibold transition cursor-pointer hover:bg-[var(--button-success-l)] active:brightness-95\">Go</button></div></div> `);\n if (showOptionalFields) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"grid gap-2 sm:grid-cols-2\">`);\n if (params.mode === \"distinct\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50 sm:col-span-2\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Filter (optional)</div> <input type=\"text\"${attr(\"value\", params.query)} name=\"query\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Sort</div> <input type=\"text\"${attr(\"value\", params.sort)} name=\"sort\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Project</div> <input type=\"text\"${attr(\"value\", params.project)} name=\"project\" placeholder=\"{}\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div>`);\n }\n $$renderer2.push(`<!--]--> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Skip</div> <input type=\"number\"${attr(\"value\", params.skip)} name=\"skip\" min=\"0\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div> <div class=\"rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50\"><div class=\"px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]\" style=\"color: var(--text-secondary);\">Limit</div> <input type=\"number\"${attr(\"value\", params.limit)} name=\"limit\" min=\"1\" class=\"w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1\" style=\"color: var(--text);\"/></div></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></form></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { params, editMode, readonly });\n });\n}\nfunction IconCopy($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path></svg>`);\n}\nfunction IconPlus($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M12 5v14M5 12h14\"></path></svg>`);\n}\nfunction IconSortReverse($$renderer, $$props) {\n let { class: className = \"w-4 h-4\" } = $$props;\n $$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(clsx(className))}><path d=\"M3 6h18\"></path><path d=\"M7 12h10\"></path><path d=\"M10 18h4\"></path><path d=\"m7 16 3 3 3-3\"></path></svg>`);\n}\nfunction previousButton($$renderer, url, onClick) {\n $$renderer.push(`<a${attr(\"href\", resolve(url))} class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline -my-2\" style=\"color: var(--text);\">Previous</a>`);\n}\nfunction nextButton($$renderer, url, onClick) {\n $$renderer.push(`<a${attr(\"href\", resolve(url))} class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline\" style=\"color: var(--text);\">Next</a>`);\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let params = { ...data.params };\n let dataPromise = data.results;\n let editMode = false;\n let updateQuery = \"{}\";\n let isUpdating = false;\n let deleteState = {\n isCounting: false\n };\n let modifiedItems = null;\n let items = modifiedItems ? { data: modifiedItems, error: null } : dataPromise;\n async function editDocument(_id, json, items2) {\n const partial = Boolean(params.project && params.project !== \"{}\" && Object.keys(parseJSON(params.project)).length > 0);\n const newId = json?._id?.$value;\n const oldId = _id?.$value;\n if (newId !== oldId) {\n notificationStore.notifyError(\"ObjectId changed. This is not supported, update canceled.\");\n return;\n }\n if (!oldId) return;\n try {\n const result = await updateDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: oldId,\n value: json,\n partial\n });\n if (result.ok) {\n notificationStore.notifySuccess(\"Document updated successfully\");\n const index = items2.findIndex((item) => item._id?.$value === oldId);\n if (index !== -1) {\n items2[index] = result.update;\n }\n modifiedItems = items2;\n }\n } catch (error) {\n console.error(error);\n notificationStore.notifyError(error, \"Failed to update document\");\n }\n }\n async function removeDocument(_id, items2) {\n const documentId = _id?.$value ?? _id;\n if (!documentId || typeof documentId !== \"string\") {\n return;\n }\n try {\n await deleteDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: documentId\n });\n notificationStore.notifySuccess(\"Document removed successfully\");\n modifiedItems = items2.filter((item) => (item._id?.$value ?? item._id) !== documentId);\n } catch (error) {\n notificationStore.notifyError(error, \"Failed to remove document\");\n }\n }\n function buildUrl(skip) {\n const queryParams = new SvelteURLSearchParams();\n queryParams.set(\"query\", params.query || \"{}\");\n queryParams.set(\"sort\", params.sort || \"\");\n queryParams.set(\"project\", params.project || \"\");\n queryParams.set(\"skip\", String(skip));\n queryParams.set(\"limit\", String(params.limit));\n return `/servers/${encodeURIComponent(data.server)}/databases/${encodeURIComponent(data.database)}/collections/${encodeURIComponent(data.collection)}/documents?${queryParams.toString()}`;\n }\n const nextUrl = buildUrl(params.skip + params.limit);\n const previousUrl = buildUrl(Math.max(0, params.skip - params.limit));\n function sortButton($$renderer3) {\n $$renderer3.push(`<button class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition\" style=\"color: var(--text); cursor: pointer;\" title=\"Reverse sort order\">`);\n IconSortReverse($$renderer3, { class: \"w-4 h-4\" });\n $$renderer3.push(`<!----></button>`);\n }\n function copyButton($$renderer3, items2) {\n $$renderer3.push(`<button class=\"px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition\" style=\"color: var(--text); cursor: pointer;\" title=\"Copy distinct values\">`);\n IconCopy($$renderer3, { class: \"w-4 h-4\" });\n $$renderer3.push(`<!----></button>`);\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n SearchBox($$renderer3, {\n readonly: data.readOnly,\n get params() {\n return params;\n },\n set params($$value) {\n params = $$value;\n $$settled = false;\n },\n get editMode() {\n return editMode;\n },\n set editMode($$value) {\n editMode = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----> `);\n if (editMode) {\n $$renderer3.push(\"<!--[-->\");\n Panel($$renderer3, {\n title: \"Edit Mode\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"p-4 sm:p-6 space-y-6\"><div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Insert New Document</h3> `);\n {\n $$renderer4.push(\"<!--[-->\");\n $$renderer4.push(`<button class=\"btn btn-success\">`);\n IconPlus($$renderer4, { class: \"w-4 h-4 inline mr-2\" });\n $$renderer4.push(`<!----> Insert Document</button>`);\n }\n $$renderer4.push(`<!--]--></div> <div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Update Multiple Documents</h3> <div class=\"space-y-4\"><div><label for=\"update-filter\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Filter (which documents to update):</label> <input type=\"text\" id=\"update-filter\"${attr(\"value\", params.query || \"{}\")} readonly class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed\" style=\"color: var(--text);\"/> <p class=\"text-xs mt-2\" style=\"color: var(--text-secondary);\">This filter is taken from the query above. Modify the query to change which documents will be updated.</p></div> <div><label for=\"update-operation\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Update Operation (e.g., $set, $inc, $unset):</label> <textarea placeholder=\"Update operation\" rows=\"4\" class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2\" style=\"color: var(--text); --tw-ring-color: var(--link);\">`);\n const $$body_1 = escape_html(updateQuery);\n if ($$body_1) {\n $$renderer4.push(`${$$body_1}`);\n }\n $$renderer4.push(`</textarea></div> <div class=\"flex gap-3\"><button class=\"btn btn-success hover:bg-[var(--button-success-l)]\"${attr(\"disabled\", isUpdating, true)}>${escape_html(\"Execute Update\")}</button></div></div></div> <div class=\"rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]\"><h3 class=\"text-lg font-semibold mb-3\" style=\"color: var(--text);\">Delete Multiple Documents</h3> <div class=\"space-y-4\"><div><label for=\"delete-filter\" class=\"block text-sm font-semibold mb-2\" style=\"color: var(--text);\">Filter (which documents to delete):</label> <input type=\"text\" id=\"delete-filter\"${attr(\"value\", params.query || \"{}\")} readonly class=\"w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed\" style=\"color: var(--text);\"/> <p class=\"text-xs mt-2\" style=\"color: var(--text-secondary);\">This filter is taken from the query above. Modify the query to change which documents will be deleted.</p></div> `);\n {\n $$renderer4.push(\"<!--[-->\");\n $$renderer4.push(`<div class=\"flex gap-3\"><button class=\"btn btn-default\"${attr(\"disabled\", deleteState.isCounting, true)}>${escape_html(\"Check Document Count\")}</button></div>`);\n }\n $$renderer4.push(`<!--]--></div></div> <div class=\"flex justify-end\"><button class=\"btn btn-default hover:bg-[var(--color-3)]\">Close Edit Mode</button></div> <div class=\"text-sm rounded-xl bg-[var(--color-3)]/50 p-4 border border-[var(--border-color)]\" style=\"color: var(--text-secondary);\"><p class=\"mb-2 font-semibold\" style=\"color: var(--text);\">Update Operation Examples:</p> <p class=\"mb-2\">• Set a field: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$set\": {\"status\": \"active\"}}</code></p> <p class=\"mb-2\">• Increment a value: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$inc\": {\"count\": 1}}</code></p> <p>• Unset a field: <code class=\"bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs\">{\"$unset\": {\"oldField\": \"\"}}</code></p></div></div>`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n await_block(\n $$renderer3,\n items,\n () => {\n {\n let actions = function($$renderer4) {\n {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n title: data.params.mode === \"distinct\" ? \"Loading distinct values...\" : \"Loading documents...\",\n titleClass: \"py-1\",\n actions,\n $$slots: { actions: true }\n });\n }\n },\n (resultsData) => {\n const items2 = resultsData?.data ?? [];\n await_block(\n $$renderer3,\n data.count,\n () => {\n {\n let actions = function($$renderer4) {\n if (data.params.skip > 0) {\n $$renderer4.push(\"<!--[-->\");\n previousButton($$renderer4, previousUrl);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (items2.length >= data.params.limit) {\n $$renderer4.push(\"<!--[-->\");\n nextButton($$renderer4, nextUrl);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (data.params.mode === \"distinct\") {\n $$renderer4.push(\"<!--[-->\");\n copyButton($$renderer4);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n sortButton($$renderer4);\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n titleClass: \"py-1\",\n title: items2.length > 0 ? data.params.mode === \"distinct\" ? `${formatNumber(items2.length)} distinct value${items2.length === 1 ? \"\" : \"s\"} (counting...)` : `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} Documents (counting...)` : data.params.mode === \"distinct\" ? \"No distinct values\" : \"No documents\",\n actions,\n $$slots: { actions: true }\n });\n }\n },\n (countData) => {\n if (data.params) {\n $$renderer3.push(\"<!--[-->\");\n const count = countData.data;\n const hasNext = countData.error ? items2.length >= data.params.limit : data.params.skip + items2.length < count;\n const hasPrevious = data.params.skip > 0;\n const isTimeout = countData.error?.includes(\"operation exceeded time limit\");\n {\n let actions = function($$renderer4) {\n if (hasPrevious) {\n $$renderer4.push(\"<!--[-->\");\n previousButton($$renderer4, previousUrl);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (hasNext) {\n $$renderer4.push(\"<!--[-->\");\n nextButton($$renderer4, nextUrl);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (data.params.mode === \"distinct\") {\n $$renderer4.push(\"<!--[-->\");\n copyButton($$renderer4);\n } else {\n $$renderer4.push(\"<!--[!-->\");\n sortButton($$renderer4);\n }\n $$renderer4.push(`<!--]-->`);\n };\n Panel($$renderer3, {\n title: items2.length > 0 ? data.params.mode === \"distinct\" ? `${formatNumber(count)} distinct value${count === 1 ? \"\" : \"s\"}` : count > 0 ? `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} of ${formatNumber(count)} documents` : `${formatNumber(data.params.skip + 1)} - ${formatNumber(data.params.skip + items2.length)} documents (count ${isTimeout ? \"timeout\" : \"unavailable\"})` : data.params.mode === \"distinct\" ? \"No distinct values\" : \"No documents\",\n titleClass: \"py-1\",\n actions,\n $$slots: { actions: true }\n });\n }\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`<!--]--> <!--[-->`);\n const each_array = ensure_array_like(items2);\n for (let index = 0, $$length = each_array.length; index < $$length; index++) {\n let item = each_array[index];\n PrettyJson($$renderer3, {\n json: item,\n autoCollapse: true,\n onedit: data.params.mode === \"aggregation\" || data.params.mode === \"distinct\" || data.readOnly ? void 0 : (json) => editDocument(item._id, json, items2),\n onremove: data.params.mode === \"aggregation\" || data.params.mode === \"distinct\" || data.readOnly ? void 0 : () => removeDocument(item._id, items2),\n server: data.server,\n database: data.database,\n collection: data.collection,\n mappings: data.mappings\n });\n }\n $$renderer3.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-BHk5yAj9.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { l as logger } from \"./logger.js\";\nimport { resolveSrv } from \"dns/promises\";\nimport { MongoClient } from \"mongodb\";\nimport { URL } from \"url\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nconst DEFAULT_HOSTS = process.env.MONGOKU_DEFAULT_HOST ? process.env.MONGOKU_DEFAULT_HOST.split(\";\") : [\"localhost:27017\"];\nconst DATABASE_FILE = process.env.MONGOKU_DATABASE_FILE || path.join(os.homedir(), \".mongoku.db\");\nclass HostsManager {\n _hosts = /* @__PURE__ */ new Map();\n // path -> _id\n async load() {\n let first = false;\n try {\n await fs.promises.stat(DATABASE_FILE);\n } catch {\n first = true;\n }\n if (!first) {\n await this._loadFromFile();\n }\n if (first || this._hosts.size === 0) {\n for (const hostname of DEFAULT_HOSTS) {\n this._hosts.set(hostname, this._generateId());\n }\n await this._saveToFile();\n }\n }\n async _loadFromFile() {\n const content = await fs.promises.readFile(DATABASE_FILE, \"utf8\");\n const lines = content.trim().split(\"\\n\").filter((line) => line.trim());\n const newHosts = /* @__PURE__ */ new Map();\n for (const line of lines) {\n const host = JSON.parse(line);\n if (host && typeof host.path === \"string\") {\n const id = host._id || this._generateId();\n newHosts.set(host.path, id);\n }\n }\n this._hosts = newHosts;\n }\n async _saveToFile() {\n const lines = Array.from(this._hosts).map(([hostPath, id]) => JSON.stringify({ path: hostPath, _id: id }));\n await fs.promises.writeFile(DATABASE_FILE, lines.join(\"\\n\") + \"\\n\", \"utf8\");\n }\n _generateId() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let result = \"\";\n for (let i = 0; i < 16; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n async getHosts() {\n return Array.from(this._hosts).map(([hostPath, id]) => ({ path: hostPath, _id: id }));\n }\n getHost(name) {\n return this._hosts.get(name);\n }\n async add(hostPath) {\n let id = this._hosts.get(hostPath);\n if (!id) {\n id = this._generateId();\n this._hosts.set(hostPath, id);\n }\n await this._saveToFile();\n return id;\n }\n async remove(hostPath) {\n const toRemove = Array.from(this._hosts.keys()).filter((existingPath) => {\n try {\n const regex = new RegExp(hostPath);\n return existingPath === hostPath || regex.test(existingPath);\n } catch {\n return existingPath === hostPath;\n }\n });\n for (const host of toRemove) {\n this._hosts.delete(host);\n }\n await this._saveToFile();\n }\n}\nasync function getCollectionJson(collection, type) {\n const stats = {\n size: 0,\n count: 0,\n avgObjSize: 0,\n storageSize: 0,\n capped: false,\n nindexes: 0,\n totalIndexSize: 0,\n indexSizes: {}\n };\n if (type !== \"view\") {\n const agg = await collection.aggregate([\n {\n $collStats: {\n storageStats: {},\n count: {}\n }\n }\n ]).next().catch(() => null);\n if (agg) {\n stats.size = agg.storageStats.size;\n stats.count = agg.storageStats.count;\n stats.avgObjSize = Math.round(agg.storageStats.size / agg.storageStats.count);\n stats.storageSize = agg.storageStats.storageSize;\n stats.capped = agg.storageStats.capped;\n stats.nindexes = agg.storageStats.nindexes;\n stats.totalIndexSize = agg.storageStats.totalIndexSize;\n stats.indexSizes = agg.storageStats.indexSizes;\n }\n }\n let indexes = [];\n if (type !== \"view\") {\n try {\n const indexList = await collection.listIndexes().toArray();\n indexes = indexList.map((index) => ({\n name: index.name,\n key: index.key,\n size: stats.indexSizes[index.name] || 0\n }));\n } catch {\n indexes = Object.entries(stats.indexSizes).map(([name, size]) => ({\n name,\n size\n }));\n }\n }\n return {\n name: collection.collectionName,\n size: (stats.storageSize ?? 0) + (stats.totalIndexSize ?? 0),\n dataSize: stats.size,\n count: stats.count,\n avgObjSize: stats.avgObjSize ?? 0,\n storageSize: stats.storageSize ?? 0,\n capped: stats.capped,\n nIndexes: stats.nindexes,\n totalIndexSize: stats.totalIndexSize ?? 0,\n indexSizes: stats.indexSizes,\n indexes\n };\n}\nasync function extractNodesFromConnectionString(connectionString) {\n const url = new URL(connectionString);\n if (url.protocol === \"mongodb+srv:\") {\n const hostname = url.hostname;\n const srvRecords = await resolveSrv(`_mongodb._tcp.${hostname}`);\n return srvRecords.sort((a, b) => a.priority - b.priority || b.weight - a.weight).map((record) => `${record.name}:${record.port}`).sort();\n }\n if (url.protocol === \"mongodb:\") {\n const hostsString = url.host;\n if (!hostsString) {\n throw new Error(\"No hosts found in connection string\");\n }\n return hostsString.split(\",\").map((host) => host.trim()).filter((host) => host.length > 0).sort();\n }\n throw new TypeError(`Unsupported protocol: ${url.protocol}`);\n}\nclass MongoClientWithMappings extends MongoClient {\n url;\n mappings = {};\n _id;\n name;\n constructor(url, _id, name) {\n super(url);\n this.url = url;\n this._id = _id;\n this.name = name;\n }\n async getMappings(dbName, collectionName, opts) {\n if (opts?.forceRefresh || !this.mappings[dbName]?.[collectionName]) {\n const mappings = await this.db(dbName).collection(\"mongoku.mappings\").findOne({ _id: collectionName });\n this.mappings[dbName] ??= {};\n this.mappings[dbName][collectionName] = mappings?.mappings ?? {};\n }\n return this.mappings[dbName][collectionName];\n }\n clearMappingsCache(dbName, collectionName) {\n delete this.mappings[dbName][collectionName];\n }\n}\nclass MongoConnections {\n /**\n * Todo: better system where we can have mutiple servers with same hostname, and labels for each server that\n * would be displayed in the UI instead of the hostname.\n */\n clients = /* @__PURE__ */ new Map();\n // _id -> MongoClientWithMappings\n clientIds = /* @__PURE__ */ new Map();\n // hostname -> _id\n hostsManager;\n countTimeout = parseInt(process.env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;\n queryTimeout = process.env.MONGOKU_QUERY_TIMEOUT ? parseInt(process.env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;\n excludedDatabases;\n constructor() {\n this.hostsManager = new HostsManager();\n const excludeEnv = process.env.MONGOKU_EXCLUDE_DATABASES || \"\";\n this.excludedDatabases = new Set(\n excludeEnv.split(\",\").map((db) => db.trim()).filter((db) => db.length > 0)\n );\n }\n async initialize() {\n await this.hostsManager.load();\n const hosts = await this.hostsManager.getHosts();\n for (const host of hosts) {\n const urlStr = host.path.startsWith(\"mongodb\") ? host.path : `mongodb://${host.path}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || host.path;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, host._id, hostname);\n this.clients.set(host._id, client);\n this.clientIds.set(hostname, host._id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${host.path}:`, err);\n }\n }\n }\n getClient(name) {\n const clientId = this.clientIds.get(name) || this.clientIds.get(`${name}:27017`);\n if (!clientId) {\n throw new Error(`Client not found: ${name}`);\n }\n const client = this.clients.get(clientId);\n if (!client) {\n throw new Error(`Client not found: ${name}`);\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.values()).map((client) => ({\n name: client.name,\n _id: client._id,\n client\n }));\n }\n getCountTimeout() {\n return this.countTimeout;\n }\n getQueryTimeout() {\n return this.queryTimeout;\n }\n filterDatabases(databases) {\n if (this.excludedDatabases.size === 0) {\n return databases;\n }\n return databases.filter((db) => !this.excludedDatabases.has(db.name));\n }\n async addServer(hostPath) {\n const id = await this.hostsManager.add(hostPath);\n const urlStr = hostPath.startsWith(\"mongodb\") ? hostPath : `mongodb://${hostPath}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || hostPath;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, id, hostname);\n this.clients.set(id, client);\n this.clientIds.set(hostname, id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${hostPath}:`, err);\n throw err;\n }\n }\n async removeServer(name) {\n await this.hostsManager.remove(name);\n this.clients.get(name)?.close().catch((err) => logger.error(`Error closing client ${name}:`, err));\n this.clients.delete(name);\n this.clientIds.delete(name);\n }\n async reconnectClient(id) {\n const oldClient = this.clients.get(id);\n if (!oldClient) {\n throw new Error(`Client not found: ${id}`);\n }\n oldClient.close().catch((err) => logger.error(`Error closing old client ${id}:`, err));\n const newClient = new MongoClientWithMappings(oldClient.url, id, oldClient.name);\n this.clients.set(id, newClient);\n await newClient.connect();\n }\n /**\n * Get the list of nodes from a server's connection string\n */\n async getServerNodes(serverId) {\n const client = this.getClient(serverId);\n return extractNodesFromConnectionString(client.url);\n }\n /**\n * Fetch index stats from a specific node using directConnection\n */\n async getIndexStatsFromNode(serverId, node, database, collection) {\n const client = this.getClient(serverId);\n const url = new URL(client.url);\n const directUrl = new URL(url.toString());\n directUrl.protocol = \"mongodb:\";\n directUrl.host = node;\n directUrl.searchParams.set(\"directConnection\", \"true\");\n if (url.searchParams.has(\"tls\") || url.searchParams.has(\"ssl\") || url.protocol === \"mongodb+srv:\") {\n directUrl.searchParams.set(\"tls\", \"true\");\n }\n let nodeClient = null;\n try {\n nodeClient = new MongoClient(directUrl.toString());\n await nodeClient.connect();\n const coll = nodeClient.db(database).collection(collection);\n const statsResult = await coll.aggregate([{ $indexStats: {} }]).toArray();\n const indexStats = Object.fromEntries(\n statsResult.map((stat) => [\n stat.name,\n {\n ops: stat.accesses?.ops || 0,\n since: stat.accesses?.since || /* @__PURE__ */ new Date(),\n host: stat.host || node\n }\n ])\n );\n return indexStats;\n } finally {\n if (nodeClient) {\n await nodeClient.close();\n }\n }\n }\n}\nlet mongoConnections = null;\nlet initPromise = null;\nasync function getMongo() {\n if (!mongoConnections) {\n if (!initPromise) {\n initPromise = (async () => {\n mongoConnections = new MongoConnections();\n await mongoConnections.initialize();\n return mongoConnections;\n })();\n }\n return initPromise;\n }\n return mongoConnections;\n}\nexport {\n getCollectionJson as a,\n getMongo as g\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remote-xxtqbu-ETLGkdRu.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"servers.remote-CGies_Na.js","sources":["../../../node_modules/.pnpm/@sveltejs+kit@2.47.2_@sveltejs+vite-plugin-svelte@6.2.1_svelte@5.41.1_vite@7.1.11_@type_af5bcbb3f06a79268e5ce5060889dfbf/node_modules/@sveltejs/kit/src/exports/internal/remote-functions.js","../../../.svelte-kit/adapter-node/chunks/query.js","../../../.svelte-kit/adapter-node/chunks/servers.remote.js"],"sourcesContent":["/** @import { RemoteInfo } from 'types' */\n\n/** @type {RemoteInfo['type'][]} */\nconst types = ['command', 'form', 'prerender', 'query', 'query_batch'];\n\n/**\n * @param {Record<string, any>} module\n * @param {string} file\n * @param {string} hash\n */\nexport function init_remote_functions(module, file, hash) {\n\tif (module.default) {\n\t\tthrow new Error(\n\t\t\t`Cannot export \\`default\\` from a remote module (${file}) — please use named exports instead`\n\t\t);\n\t}\n\n\tfor (const [name, fn] of Object.entries(module)) {\n\t\tif (!types.includes(fn?.__?.type)) {\n\t\t\tthrow new Error(\n\t\t\t\t`\\`${name}\\` exported from ${file} is invalid — all exports from this file must be remote functions`\n\t\t\t);\n\t\t}\n\n\t\tfn.__.id = `${hash}/${name}`;\n\t\tfn.__.name = name;\n\t}\n}\n","import { get_request_store, with_request_store } from \"@sveltejs/kit/internal/server\";\nimport { j as stringify_remote_arg, k as parse, f as create_remote_cache_key } from \"./shared.js\";\nimport { p as prerendering } from \"./environment.js\";\nimport { error } from \"@sveltejs/kit\";\nfunction create_validator(validate_or_fn, maybe_fn) {\n if (!maybe_fn) {\n return (arg) => {\n if (arg !== void 0) {\n error(400, \"Bad Request\");\n }\n };\n }\n if (validate_or_fn === \"unchecked\") {\n return (arg) => arg;\n }\n if (\"~standard\" in validate_or_fn) {\n return async (arg) => {\n const { event, state } = get_request_store();\n const validate = validate_or_fn[\"~standard\"].validate;\n const result = await validate(arg);\n if (result.issues) {\n error(\n 400,\n await state.handleValidationError({\n issues: result.issues,\n event\n })\n );\n }\n return result.value;\n };\n }\n throw new Error(\n 'Invalid validator passed to remote function. Expected \"unchecked\" or a Standard Schema (https://standardschema.dev)'\n );\n}\nasync function get_response(info, arg, state, get_result) {\n await 0;\n const cache = get_cache(info, state);\n return cache[stringify_remote_arg(arg, state.transport)] ??= get_result();\n}\nfunction parse_remote_response(data, transport) {\n const revivers = {};\n for (const key in transport) {\n revivers[key] = transport[key].decode;\n }\n return parse(data, revivers);\n}\nasync function run_remote_function(event, state, allow_cookies, arg, validate, fn) {\n const store = {\n event: {\n ...event,\n setHeaders: () => {\n throw new Error(\"setHeaders is not allowed in remote functions\");\n },\n cookies: {\n ...event.cookies,\n set: (name, value, opts) => {\n if (!allow_cookies) {\n throw new Error(\"Cannot set cookies in `query` or `prerender` functions\");\n }\n if (opts.path && !opts.path.startsWith(\"/\")) {\n throw new Error(\"Cookies set in remote functions must have an absolute path\");\n }\n return event.cookies.set(name, value, opts);\n },\n delete: (name, opts) => {\n if (!allow_cookies) {\n throw new Error(\"Cannot delete cookies in `query` or `prerender` functions\");\n }\n if (opts.path && !opts.path.startsWith(\"/\")) {\n throw new Error(\"Cookies deleted in remote functions must have an absolute path\");\n }\n return event.cookies.delete(name, opts);\n }\n }\n },\n state: {\n ...state,\n is_in_remote_function: true\n }\n };\n const validated = await with_request_store(store, () => validate(arg));\n return with_request_store(store, () => fn(validated));\n}\nfunction get_cache(info, state = get_request_store().state) {\n let cache = state.remote_data?.get(info);\n if (cache === void 0) {\n cache = {};\n (state.remote_data ??= /* @__PURE__ */ new Map()).set(info, cache);\n }\n return cache;\n}\n// @__NO_SIDE_EFFECTS__\nfunction command(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = { type: \"command\", id: \"\", name: \"\" };\n const wrapper = (arg) => {\n const { event, state } = get_request_store();\n if (state.is_endpoint_request) {\n if (![\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(event.request.method)) {\n throw new Error(\n `Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) from a ${event.request.method} handler`\n );\n }\n } else if (!event.isRemoteRequest) {\n throw new Error(\n `Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) during server-side rendering`\n );\n }\n state.refreshes ??= {};\n const promise = Promise.resolve(run_remote_function(event, state, true, arg, validate, fn));\n promise.updates = () => {\n throw new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);\n };\n return (\n /** @type {ReturnType<RemoteCommand<Input, Output>>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n Object.defineProperty(wrapper, \"pending\", {\n get: () => 0\n });\n return wrapper;\n}\n// @__NO_SIDE_EFFECTS__\nfunction query(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = { type: \"query\", id: \"\", name: \"\" };\n const wrapper = (arg) => {\n if (prerendering) {\n throw new Error(\n `Cannot call query '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`\n );\n }\n const { event, state } = get_request_store();\n const promise = get_response(\n __,\n arg,\n state,\n () => run_remote_function(event, state, false, arg, validate, fn)\n );\n promise.catch(() => {\n });\n promise.set = (value) => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call set on query '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n if (__.id) {\n const cache = get_cache(__, state2);\n const key = stringify_remote_arg(arg, state2.transport);\n refreshes[create_remote_cache_key(__.id, key)] = cache[key] = Promise.resolve(value);\n }\n };\n promise.refresh = () => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call refresh on query '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state2.transport));\n refreshes[cache_key] = promise;\n return promise.then(() => {\n });\n };\n promise.withOverride = () => {\n throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n };\n return (\n /** @type {RemoteQuery<Output>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n return wrapper;\n}\n// @__NO_SIDE_EFFECTS__\nfunction batch(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = {\n type: \"query_batch\",\n id: \"\",\n name: \"\",\n run: (args) => {\n const { event, state } = get_request_store();\n return run_remote_function(\n event,\n state,\n false,\n args,\n (array) => Promise.all(array.map(validate)),\n fn\n );\n }\n };\n let batching = { args: [], resolvers: [] };\n const wrapper = (arg) => {\n if (prerendering) {\n throw new Error(\n `Cannot call query.batch '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`\n );\n }\n const { event, state } = get_request_store();\n const promise = get_response(__, arg, state, () => {\n return new Promise((resolve, reject) => {\n batching.args.push(arg);\n batching.resolvers.push({ resolve, reject });\n if (batching.args.length > 1) return;\n setTimeout(async () => {\n const batched = batching;\n batching = { args: [], resolvers: [] };\n try {\n const get_result = await run_remote_function(\n event,\n state,\n false,\n batched.args,\n (array) => Promise.all(array.map(validate)),\n fn\n );\n for (let i = 0; i < batched.resolvers.length; i++) {\n try {\n batched.resolvers[i].resolve(get_result(batched.args[i], i));\n } catch (error2) {\n batched.resolvers[i].reject(error2);\n }\n }\n } catch (error2) {\n for (const resolver of batched.resolvers) {\n resolver.reject(error2);\n }\n }\n }, 0);\n });\n });\n promise.catch(() => {\n });\n promise.refresh = async () => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call refresh on query.batch '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state2.transport));\n refreshes[cache_key] = await /** @type {Promise<any>} */\n promise;\n };\n promise.withOverride = () => {\n throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n };\n return (\n /** @type {RemoteQuery<Output>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n return wrapper;\n}\nObject.defineProperty(query, \"batch\", { value: batch, enumerable: true });\nexport {\n get_response as a,\n command as b,\n create_validator as c,\n get_cache as g,\n parse_remote_response as p,\n query as q,\n run_remote_function as r\n};\n","import \"@sveltejs/kit/internal/server\";\nimport \"./utils.js\";\nimport { b as command, q as query } from \"./query.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { p as parseJSON, v as validateAggregationPipeline, i as isEmptyObject } from \"./jsonParser.js\";\nimport { J as JsonEncoder } from \"./JsonEncoder.js\";\nimport { l as logger } from \"./logger.js\";\nimport { g as getMongo } from \"./mongo.js\";\nimport { ObjectId, ReadPreference } from \"mongodb\";\nimport { z } from \"zod\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nconst m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n get addServer() {\n return addServer;\n },\n get countDocuments() {\n return countDocuments;\n },\n get createIndex() {\n return createIndex;\n },\n get deleteDocument() {\n return deleteDocument;\n },\n get deleteMany() {\n return deleteMany;\n },\n get detectPrimaryNode() {\n return detectPrimaryNode;\n },\n get dropCollection() {\n return dropCollection;\n },\n get dropDatabase() {\n return dropDatabase;\n },\n get dropIndex() {\n return dropIndex;\n },\n get fetchMappedDocument() {\n return fetchMappedDocument;\n },\n get getIndexStatsFromNodes() {\n return getIndexStatsFromNodes;\n },\n get getIndexStatsWithReadPreference() {\n return getIndexStatsWithReadPreference;\n },\n get getServerNodes() {\n return getServerNodes;\n },\n get hideIndex() {\n return hideIndex;\n },\n get insertDocument() {\n return insertDocument;\n },\n get loadDocuments() {\n return loadDocuments;\n },\n get removeServer() {\n return removeServer;\n },\n get retryConnection() {\n return retryConnection;\n },\n get unhideIndex() {\n return unhideIndex;\n },\n get updateDocument() {\n return updateDocument;\n },\n get updateMany() {\n return updateMany;\n }\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction checkReadOnly() {\n if (process.env.MONGOKU_READ_ONLY_MODE === \"true\") {\n error(403, \"Read-only mode is enabled\");\n }\n}\nfunction sanitizeMongoUrl(url) {\n try {\n const urlObj = new URL(url.startsWith(\"mongodb\") ? url : `mongodb://${url}`);\n if (urlObj.username || urlObj.password) {\n urlObj.username = \"***\";\n urlObj.password = \"***\";\n }\n return urlObj.toString();\n } catch {\n return \"***\";\n }\n}\nconst addServer = command(\n z.object({\n url: z.string()\n }),\n async ({ url }) => {\n logger.log(\"addServer called with payload:\", { url: sanitizeMongoUrl(url) });\n const mongo = await getMongo();\n await mongo.addServer(url);\n return { ok: true };\n }\n);\nconst removeServer = command(z.string(), async (serverName) => {\n logger.log(\"removeServer called with payload:\", { serverName });\n const mongo = await getMongo();\n await mongo.removeServer(serverName);\n return { ok: true };\n});\nconst updateDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string(),\n value: z.unknown(),\n partial: z.boolean().optional().default(false),\n upsert: z.boolean().optional().default(false)\n }),\n async ({ server, database, collection, document, value, partial, upsert }) => {\n logger.log(\"updateDocument called with payload:\", { server, database, collection, document, partial, upsert });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const newValue = JsonEncoder.decode(value);\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n if (partial) {\n await coll.updateOne(\n {\n _id\n },\n { $set: newValue },\n { upsert }\n );\n } else {\n await coll.replaceOne(\n {\n _id\n },\n JsonEncoder.decode(newValue),\n { upsert }\n );\n }\n if (collection === \"mongoku.mappings\") {\n client.clearMappingsCache(database, document);\n }\n return {\n ok: true,\n update: JsonEncoder.encode(newValue)\n };\n }\n);\nconst insertDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string().nullable().optional(),\n value: z.unknown()\n }),\n async ({ server, database, collection, document, value }) => {\n logger.log(\"insertDocument called with payload:\", { server, database, collection, document });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const newValue = JsonEncoder.decode(value);\n if (document !== null && document !== void 0) {\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n newValue._id = _id;\n }\n const res = await coll.insertOne(newValue);\n if (collection === \"mongoku.mappings\" && typeof res.insertedId === \"string\") {\n client.clearMappingsCache(database, res.insertedId);\n }\n return {\n ok: true,\n insert: JsonEncoder.encode(newValue)\n };\n }\n);\nconst deleteDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string()\n }),\n async ({ server, database, collection, document }) => {\n logger.log(\"deleteDocument called with payload:\", { server, database, collection, document });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n await client.db(database).collection(collection).deleteOne({\n _id\n });\n if (collection === \"mongoku.mappings\") {\n client.clearMappingsCache(database, document);\n }\n return {\n ok: true\n };\n }\n);\nconst updateMany = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string(),\n update: z.string()\n }),\n async ({ server, database, collection, filter, update }) => {\n logger.log(\"updateMany called with payload:\", { server, database, collection, filter, update });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n const updateDoc = JsonEncoder.decode(parseJSON(update));\n const result = await coll.updateMany(filterDoc, updateDoc);\n return {\n ok: true,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount\n };\n }\n);\nconst countDocuments = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string()\n }),\n async ({ server, database, collection, filter }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n try {\n const count = await coll.countDocuments(filterDoc, {\n maxTimeMS: mongo.getCountTimeout()\n });\n return {\n data: count,\n error: null\n };\n } catch (err) {\n logger.error(\"Error counting documents:\", err);\n return {\n data: 0,\n error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst deleteMany = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string()\n }),\n async ({ server, database, collection, filter }) => {\n logger.log(\"deleteMany called with payload:\", { server, database, collection, filter });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n const result = await coll.deleteMany(filterDoc);\n return {\n ok: true,\n deletedCount: result.deletedCount\n };\n }\n);\nconst hideIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"hideIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n collMod: collection,\n index: {\n name: index,\n hidden: true\n }\n });\n return {\n ok: true\n };\n }\n);\nconst unhideIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"unhideIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n collMod: collection,\n index: {\n name: index,\n hidden: false\n }\n });\n return {\n ok: true\n };\n }\n);\nconst createIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n keys: z.string(),\n name: z.string().optional(),\n unique: z.boolean().optional(),\n sparse: z.boolean().optional(),\n partialFilterExpression: z.string().optional(),\n expireAfterSeconds: z.number().optional(),\n background: z.boolean().optional()\n }),\n async ({\n server,\n database,\n collection,\n keys,\n name,\n unique,\n sparse,\n partialFilterExpression,\n expireAfterSeconds,\n background\n }) => {\n logger.log(\"createIndex called with payload:\", { server, database, collection, keys, name, unique, sparse });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const keysDoc = JsonEncoder.decode(parseJSON(keys));\n const options = {};\n if (name) options.name = name;\n if (unique) options.unique = unique;\n if (sparse) options.sparse = sparse;\n if (partialFilterExpression) {\n options.partialFilterExpression = JsonEncoder.decode(parseJSON(partialFilterExpression));\n }\n if (expireAfterSeconds !== void 0) options.expireAfterSeconds = expireAfterSeconds;\n if (background) options.background = background;\n await coll.createIndex(keysDoc, options);\n return {\n ok: true\n };\n }\n);\nconst dropIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"dropIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n dropIndexes: collection,\n index\n });\n return {\n ok: true\n };\n }\n);\nconst dropCollection = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string()\n }),\n async ({ server, database, collection }) => {\n logger.log(\"dropCollection called with payload:\", { server, database, collection });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const db = client.db(database);\n await db.dropCollection(collection);\n return {\n ok: true\n };\n }\n);\nconst dropDatabase = command(\n z.object({\n server: z.string(),\n database: z.string()\n }),\n async ({ server, database }) => {\n logger.log(\"dropDatabase called with payload:\", { server, database });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).dropDatabase();\n return {\n ok: true\n };\n }\n);\nconst retryConnection = command(z.string(), async (serverId) => {\n logger.log(\"retryConnection called with payload:\", { serverId });\n const mongo = await getMongo();\n await mongo.reconnectClient(serverId);\n return { ok: true };\n});\nconst loadDocuments = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n query: z.string().default(\"{}\"),\n sort: z.string().default(\"{}\"),\n project: z.string().default(\"{}\"),\n skip: z.number().int().default(0),\n limit: z.number().int().default(20),\n mode: z.enum([\"query\", \"distinct\", \"aggregation\"]).default(\"query\"),\n field: z.string().optional()\n }),\n async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, field }) => {\n let queryDoc;\n try {\n queryDoc = parseJSON(queryStr, { allowArray: true });\n } catch (err) {\n error(400, `Invalid query: ${err}`);\n }\n try {\n parseJSON(sort);\n } catch (err) {\n error(400, `Invalid sort: ${err}`);\n }\n try {\n parseJSON(project);\n } catch (err) {\n error(400, `Invalid project: ${err}`);\n }\n const sortDoc = parseJSON(sort);\n const projectDoc = parseJSON(project);\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n if (mode === \"distinct\") {\n if (!field) {\n error(400, \"Invalid distinct query: field name is required\");\n }\n try {\n const results = await coll.distinct(field, JsonEncoder.decode(queryDoc), {\n maxTimeMS: mongo.getQueryTimeout()\n });\n return {\n data: results.map((value) => JsonEncoder.encode({ value })),\n error: null,\n isAggregation: false,\n isDistinct: true\n };\n } catch (err) {\n logger.error(\"Error executing distinct:\", err);\n error(500, `Failed to execute distinct: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n if (mode === \"aggregation\" && Array.isArray(queryDoc)) {\n try {\n validateAggregationPipeline(queryDoc);\n } catch (err) {\n error(400, `Invalid aggregation pipeline: ${err instanceof Error ? err.message : String(err)}`);\n }\n const pipeline = JsonEncoder.decode(queryDoc);\n try {\n const results = await coll.aggregate(\n [\n ...pipeline,\n ...isEmptyObject(projectDoc) ? [] : [{ $project: projectDoc }],\n ...isEmptyObject(sortDoc) ? [] : [{ $sort: sortDoc }],\n { $limit: limit },\n { $skip: skip }\n ],\n {\n maxTimeMS: mongo.getQueryTimeout()\n }\n ).map((obj) => JsonEncoder.encode(obj)).toArray();\n return {\n data: results,\n error: null,\n isAggregation: true,\n isDistinct: false\n };\n } catch (err) {\n logger.error(\"Error executing aggregation:\", err);\n error(500, `Failed to execute aggregation: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n try {\n const results = await coll.find(JsonEncoder.decode(queryDoc), { maxTimeMS: mongo.getQueryTimeout() }).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).limit(limit).skip(skip).map((obj) => JsonEncoder.encode(obj)).toArray();\n return {\n data: results,\n error: null,\n isAggregation: false,\n isDistinct: false\n };\n } catch (err) {\n logger.error(\"Error fetching query results:\", err);\n error(500, `Failed to fetch query results: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n);\nconst fetchMappedDocument = query(\n z.object({\n server: z.string(),\n database: z.string(),\n mappings: z.array(\n z.object({\n collection: z.string(),\n on: z.string()\n })\n ),\n value: z.unknown()\n }),\n async ({ server, database, mappings, value }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const decodedValue = JsonEncoder.decode(value);\n for (const mapping of mappings) {\n try {\n const coll = client.db(database).collection(mapping.collection);\n const query2 = { [mapping.on]: decodedValue };\n const document = await coll.findOne(query2, { maxTimeMS: mongo.getQueryTimeout() });\n if (document) {\n return {\n data: JsonEncoder.encode(document),\n collection: mapping.collection,\n error: null\n };\n }\n } catch (err) {\n logger.error(`Error fetching mapped document from ${mapping.collection}.${mapping.on}:`, err);\n continue;\n }\n }\n return {\n data: null,\n collection: null,\n error: \"Document not found in any mapped collection\"\n };\n }\n);\nconst getIndexStatsWithReadPreference = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n readPreferenceMode: z.string().optional(),\n readPreferenceTags: z.string().optional()\n }),\n async ({ server, database, collection, readPreferenceMode, readPreferenceTags }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n try {\n let tags;\n if (readPreferenceTags) {\n try {\n tags = parseJSON(readPreferenceTags);\n if (typeof tags !== \"object\" || tags === null) {\n error(400, \"Invalid read preference tags format\");\n }\n if (!Array.isArray(tags)) {\n tags = [tags];\n }\n } catch (err) {\n error(400, `Invalid read preference tags JSON: ${err}`);\n }\n }\n let readPreference;\n if (readPreferenceMode || tags) {\n const mode = readPreferenceMode || \"nearest\";\n readPreference = tags ? new ReadPreference(mode, tags) : new ReadPreference(mode);\n }\n const coll = client.db(database).collection(collection);\n const aggregateOptions = readPreference ? { readPreference } : {};\n const statsResult = await coll.aggregate([{ $indexStats: {} }], aggregateOptions).toArray();\n const indexStats = Object.fromEntries(\n statsResult.map((stat) => [\n stat.name,\n {\n ops: stat.accesses?.ops || 0,\n since: stat.accesses?.since || /* @__PURE__ */ new Date(),\n host: stat.host || \"unknown\"\n }\n ])\n );\n return {\n data: JsonEncoder.encode(indexStats),\n error: null\n };\n } catch (err) {\n logger.error(\"Error fetching index stats with read preference:\", err);\n return {\n data: {},\n error: `Failed to fetch index stats: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst getServerNodes = query(\n z.object({\n server: z.string()\n }),\n async ({ server }) => {\n const mongo = await getMongo();\n try {\n const nodes = await mongo.getServerNodes(server);\n return {\n data: nodes,\n error: null\n };\n } catch (err) {\n logger.error(\"Error getting server nodes:\", err);\n return {\n data: [],\n error: `Failed to get server nodes: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst detectPrimaryNode = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string()\n }),\n async ({ server, database, collection }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n try {\n const coll = client.db(database).collection(collection);\n const statsResult = await coll.aggregate([{ $indexStats: {} }], { readPreference: new ReadPreference(\"primary\") }).toArray();\n const primaryHost = statsResult.length > 0 ? statsResult[0].host : null;\n return {\n data: primaryHost,\n error: null\n };\n } catch (err) {\n logger.error(\"Error detecting primary node:\", err);\n return {\n data: null,\n error: `Failed to detect primary: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst getIndexStatsFromNodes = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n nodes: z.array(z.string())\n }),\n async ({ server, database, collection, nodes }) => {\n const mongo = await getMongo();\n try {\n const results = await Promise.allSettled(\n nodes.map(async (node) => {\n const stats = await mongo.getIndexStatsFromNode(server, node, database, collection);\n return { node, stats };\n })\n );\n const mergedStats = {};\n const errors = [];\n let i = 0;\n for (const result of results) {\n if (result.status === \"fulfilled\") {\n const { stats } = result.value;\n for (const [indexName, indexStats] of Object.entries(stats)) {\n const key = `${indexName}::${indexStats.host}`;\n mergedStats[key] = indexStats;\n }\n } else {\n logger.error(`Error fetching index stats from node ${nodes[i]}:`, result.reason);\n errors.push(result.reason?.message || String(result.reason));\n }\n i++;\n }\n return {\n data: JsonEncoder.encode(mergedStats),\n error: errors.length > 0 ? errors.join(\"; \") : null\n };\n } catch (err) {\n logger.error(\"Error fetching index stats from nodes:\", err);\n return {\n data: {},\n error: `Failed to fetch index stats: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\ninit_remote_functions(m, \"src/api/servers.remote.ts\", \"xxtqbu\");\nfor (const [name, fn] of Object.entries(m)) {\n fn.__.id = \"xxtqbu/\" + name;\n fn.__.name = name;\n}\nexport {\n deleteDocument as d,\n fetchMappedDocument as f,\n m,\n updateDocument as u\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|