mongoku 2.0.4 → 2.1.1
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 +18 -4
- package/build/client/_app/immutable/assets/0.egX7ddQL.css +1 -0
- package/build/client/_app/immutable/assets/0.egX7ddQL.css.br +0 -0
- package/build/client/_app/immutable/assets/0.egX7ddQL.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.59aTjJn9.css +1 -0
- package/build/client/_app/immutable/assets/10.59aTjJn9.css.br +0 -0
- package/build/client/_app/immutable/assets/10.59aTjJn9.css.gz +0 -0
- package/build/client/_app/immutable/assets/11.CEtFGlZU.css +1 -0
- package/build/client/_app/immutable/assets/11.CEtFGlZU.css.br +1 -0
- package/build/client/_app/immutable/assets/11.CEtFGlZU.css.gz +0 -0
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css +1 -0
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css.br +0 -0
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css.gz +0 -0
- package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css +1 -0
- package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css.br +0 -0
- package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css +1 -0
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.br +0 -0
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.gz +0 -0
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css +1 -0
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css.br +0 -0
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css.gz +0 -0
- package/build/client/_app/immutable/chunks/3iRu_dUj.js +2 -0
- package/build/client/_app/immutable/chunks/3iRu_dUj.js.br +0 -0
- package/build/client/_app/immutable/chunks/3iRu_dUj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{ChWB6xnu.js → 4l_AWZos.js} +1 -1
- package/build/client/_app/immutable/chunks/4l_AWZos.js.br +0 -0
- package/build/client/_app/immutable/chunks/4l_AWZos.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5nAxkTTP.js +1 -0
- package/build/client/_app/immutable/chunks/5nAxkTTP.js.br +5 -0
- package/build/client/_app/immutable/chunks/5nAxkTTP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BBg-V8FE.js +1 -0
- package/build/client/_app/immutable/chunks/BBg-V8FE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BBg-V8FE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BE8UzJuY.js +1 -0
- package/build/client/_app/immutable/chunks/BE8UzJuY.js.br +0 -0
- package/build/client/_app/immutable/chunks/BE8UzJuY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BUNgwIS0.js +1 -0
- package/build/client/_app/immutable/chunks/BUNgwIS0.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUNgwIS0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjzB4NFq.js +1 -0
- package/build/client/_app/immutable/chunks/BjzB4NFq.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjzB4NFq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BtCOrwSt.js +1 -0
- package/build/client/_app/immutable/chunks/BtCOrwSt.js.br +0 -0
- package/build/client/_app/immutable/chunks/BtCOrwSt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvKY81hz.js +1 -0
- package/build/client/_app/immutable/chunks/BvKY81hz.js.br +0 -0
- package/build/client/_app/immutable/chunks/BvKY81hz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DQkpHJGc.js → C0PCwpqt.js} +1 -1
- package/build/client/_app/immutable/chunks/C0PCwpqt.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0PCwpqt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js +1 -0
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEvYYWlm.js +2 -0
- package/build/client/_app/immutable/chunks/CEvYYWlm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEvYYWlm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CT5SFbzp.js +1 -0
- package/build/client/_app/immutable/chunks/CT5SFbzp.js.br +0 -0
- package/build/client/_app/immutable/chunks/CT5SFbzp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CcyPStn-.js +1 -0
- package/build/client/_app/immutable/chunks/CcyPStn-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CcyPStn-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx2cA4gg.js +1 -0
- package/build/client/_app/immutable/chunks/Cx2cA4gg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx2cA4gg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5ccpaXt.js +1 -0
- package/build/client/_app/immutable/chunks/D5ccpaXt.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5ccpaXt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D64wQeYi.js +1 -0
- package/build/client/_app/immutable/chunks/D64wQeYi.js.br +0 -0
- package/build/client/_app/immutable/chunks/D64wQeYi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7E46CWw.js +1 -0
- package/build/client/_app/immutable/chunks/D7E46CWw.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7E46CWw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DR9xdhsg.js +1 -0
- package/build/client/_app/immutable/chunks/DR9xdhsg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DR9xdhsg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVJuGan7.js +1 -0
- package/build/client/_app/immutable/chunks/DVJuGan7.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVJuGan7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dx86XS0G.js +1 -0
- package/build/client/_app/immutable/chunks/Dx86XS0G.js.br +4 -0
- package/build/client/_app/immutable/chunks/Dx86XS0G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/lkkUcQuO.js +29 -0
- package/build/client/_app/immutable/chunks/lkkUcQuO.js.br +0 -0
- package/build/client/_app/immutable/chunks/lkkUcQuO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/nVJvgG3c.js +4 -0
- package/build/client/_app/immutable/chunks/nVJvgG3c.js.br +0 -0
- package/build/client/_app/immutable/chunks/nVJvgG3c.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.g5qLQ5x2.js +2 -0
- package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C1uqw3sp.js +1 -0
- package/build/client/_app/immutable/entry/start.C1uqw3sp.js.br +2 -0
- package/build/client/_app/immutable/entry/start.C1uqw3sp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CD9yR-49.js +5 -0
- package/build/client/_app/immutable/nodes/0.CD9yR-49.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CD9yR-49.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DztuiMqq.js +1 -0
- package/build/client/_app/immutable/nodes/1.DztuiMqq.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DztuiMqq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.CWMFKPcE.js +2 -0
- package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js +1 -0
- package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.wxif1TtN.js +1 -0
- package/build/client/_app/immutable/nodes/12.wxif1TtN.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.wxif1TtN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CpyTaRSN.js +66 -0
- package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DwwrLLW4.js +1 -0
- package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.br +1 -0
- package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.t20GootO.js +1 -0
- package/build/client/_app/immutable/nodes/3.t20GootO.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.t20GootO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CXHjkPtf.js +1 -0
- package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.C9tcr5B0.js +1 -0
- package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DoT-dNUk.js +1 -0
- package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BFPkGTSl.js +1 -0
- package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Bk397TaK.js +2 -0
- package/build/client/_app/immutable/nodes/9.Bk397TaK.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Bk397TaK.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +14 -0
- package/build/server/chunks/{0-Cb5ytlMI.js → 0-hDOo8HzQ.js} +7 -6
- package/build/server/chunks/0-hDOo8HzQ.js.map +1 -0
- package/build/server/chunks/1-Dsw_dVjH.js +9 -0
- package/build/server/chunks/1-Dsw_dVjH.js.map +1 -0
- package/build/server/chunks/10-Xy0rxLNm.js +213 -0
- package/build/server/chunks/10-Xy0rxLNm.js.map +1 -0
- package/build/server/chunks/11-DBYsQ3ww.js +42 -0
- package/build/server/chunks/11-DBYsQ3ww.js.map +1 -0
- package/build/server/chunks/12-D4aSEhYN.js +102 -0
- package/build/server/chunks/12-D4aSEhYN.js.map +1 -0
- package/build/server/chunks/13-CNu_Hz8r.js +52 -0
- package/build/server/chunks/13-CNu_Hz8r.js.map +1 -0
- package/build/server/chunks/2-ClkERMhY.js +24 -0
- package/build/server/chunks/2-ClkERMhY.js.map +1 -0
- package/build/server/chunks/3-CTpqmxdo.js +25 -0
- package/build/server/chunks/3-CTpqmxdo.js.map +1 -0
- package/build/server/chunks/4-CUH4fZn8.js +25 -0
- package/build/server/chunks/4-CUH4fZn8.js.map +1 -0
- package/build/server/chunks/5-BSEdxfut.js +25 -0
- package/build/server/chunks/5-BSEdxfut.js.map +1 -0
- package/build/server/chunks/{2-B39zPvzn.js → 6-ifXBeMPA.js} +2 -2
- package/build/server/chunks/{2-B39zPvzn.js.map → 6-ifXBeMPA.js.map} +1 -1
- package/build/server/chunks/7-CJJMTAtJ.js +82 -0
- package/build/server/chunks/7-CJJMTAtJ.js.map +1 -0
- package/build/server/chunks/{4-DzHoLo__.js → 8-jBgxYwFg.js} +19 -10
- package/build/server/chunks/8-jBgxYwFg.js.map +1 -0
- package/build/server/chunks/{5-CCWbCDpk.js → 9-U8SAVx43.js} +7 -8
- package/build/server/chunks/9-U8SAVx43.js.map +1 -0
- package/build/server/chunks/JsonValue-B5gcBFcA.js +290 -0
- package/build/server/chunks/JsonValue-B5gcBFcA.js.map +1 -0
- package/build/server/chunks/Modal-zVnoAfFx.js +36 -0
- package/build/server/chunks/Modal-zVnoAfFx.js.map +1 -0
- package/build/server/chunks/{Panel-Bz0b85EW.js → Panel-yg5YKL4d.js} +4 -3
- package/build/server/chunks/Panel-yg5YKL4d.js.map +1 -0
- package/build/server/chunks/PrettyJson-mXYQacEL.js +137 -0
- package/build/server/chunks/PrettyJson-mXYQacEL.js.map +1 -0
- package/build/server/chunks/Tooltip-DflJLumT.js +38 -0
- package/build/server/chunks/Tooltip-DflJLumT.js.map +1 -0
- package/build/server/chunks/TooltipTable-BPMzcmqQ.js +60 -0
- package/build/server/chunks/TooltipTable-BPMzcmqQ.js.map +1 -0
- package/build/server/chunks/_layout.svelte-DMm1Ill8.js +168 -0
- package/build/server/chunks/_layout.svelte-DMm1Ill8.js.map +1 -0
- package/build/server/chunks/_page.svelte-B-dLNs2Q.js +199 -0
- package/build/server/chunks/_page.svelte-B-dLNs2Q.js.map +1 -0
- package/build/server/chunks/{_page.svelte-FLzHOuyK.js → _page.svelte-BBpDrOEz.js} +40 -22
- package/build/server/chunks/_page.svelte-BBpDrOEz.js.map +1 -0
- package/build/server/chunks/_page.svelte-C9OCv4Hv.js +204 -0
- package/build/server/chunks/_page.svelte-C9OCv4Hv.js.map +1 -0
- package/build/server/chunks/{_page.svelte-w9cxGvUf.js → _page.svelte-CvWJ35oO.js} +33 -13
- package/build/server/chunks/_page.svelte-CvWJ35oO.js.map +1 -0
- package/build/server/chunks/_page.svelte-DYHUokXG.js +297 -0
- package/build/server/chunks/_page.svelte-DYHUokXG.js.map +1 -0
- package/build/server/chunks/{_page.svelte-FIp-IsOo.js → _page.svelte-Ds1-yUh2.js} +64 -13
- package/build/server/chunks/_page.svelte-Ds1-yUh2.js.map +1 -0
- package/build/server/chunks/{_page.svelte-jxFKbZdN.js → _page.svelte-DzPMpozq.js} +9 -6
- package/build/server/chunks/_page.svelte-DzPMpozq.js.map +1 -0
- package/build/server/chunks/_server.ts-06lGoPp8.js +8 -0
- package/build/server/chunks/_server.ts-06lGoPp8.js.map +1 -0
- package/build/server/chunks/async-lVJA8xJZ.js +9 -0
- package/build/server/chunks/async-lVJA8xJZ.js.map +1 -0
- package/build/server/chunks/client-BFlyU7ZU.js +7 -0
- package/build/server/chunks/{client-bj7sePQc.js.map → client-BFlyU7ZU.js.map} +1 -1
- package/build/server/chunks/{client2-BX4-xbM4.js → client2-DYaMKWrc.js} +4 -4
- package/build/server/chunks/{client2-BX4-xbM4.js.map → client2-DYaMKWrc.js.map} +1 -1
- package/build/server/chunks/{async-BfR0vYHo.js → context-C22hLSHK.js} +2 -8
- package/build/server/chunks/context-C22hLSHK.js.map +1 -0
- package/build/server/chunks/error.svelte-BENdaVOT.js +19 -0
- package/build/server/chunks/error.svelte-BENdaVOT.js.map +1 -0
- package/build/server/chunks/event-DVH-6ISX.js.map +1 -1
- package/build/server/chunks/hooks.server-CagAPNr2.js +40 -0
- package/build/server/chunks/hooks.server-CagAPNr2.js.map +1 -0
- package/build/server/chunks/{index-EKt9-9bV.js → index-DFXVwu6p.js} +2 -2
- package/build/server/chunks/{index-EKt9-9bV.js.map → index-DFXVwu6p.js.map} +1 -1
- package/build/server/chunks/index-Djsj11qr.js.map +1 -1
- package/build/server/chunks/index-server-Bf-hP5gL.js +5 -0
- package/build/server/chunks/index-server-Bf-hP5gL.js.map +1 -0
- package/build/server/chunks/{routing-DcR4fCSD.js → index2-DBFlGzWV.js} +23 -100
- package/build/server/chunks/index2-DBFlGzWV.js.map +1 -0
- package/build/server/chunks/{index3-DquTjlmp.js → index3-CoOO2o9t.js} +6 -6
- package/build/server/chunks/index3-CoOO2o9t.js.map +1 -0
- package/build/server/chunks/jsonParser-CraFXJs8.js +174 -0
- package/build/server/chunks/jsonParser-CraFXJs8.js.map +1 -0
- package/build/server/chunks/layout.svelte-CJcHX-Na.js +10 -0
- package/build/server/chunks/layout.svelte-CJcHX-Na.js.map +1 -0
- package/build/server/chunks/logger-D71iWOkl.js +36 -0
- package/build/server/chunks/logger-D71iWOkl.js.map +1 -0
- package/build/server/chunks/{mongo-dLmCShL_.js → mongo-BogiTfnG.js} +54 -12
- package/build/server/chunks/mongo-BogiTfnG.js.map +1 -0
- package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js +17 -0
- package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js.map +1 -0
- package/build/server/chunks/routing-e10vGH37.js +81 -0
- package/build/server/chunks/routing-e10vGH37.js.map +1 -0
- package/build/server/chunks/{server2-BiqGvkCy.js → server2-_mGVuBoG.js} +2 -2
- package/build/server/chunks/{server2-BiqGvkCy.js.map → server2-_mGVuBoG.js.map} +1 -1
- package/build/server/chunks/servers.remote-C2HuT43p.js +690 -0
- package/build/server/chunks/servers.remote-C2HuT43p.js.map +1 -0
- package/build/server/chunks/shared-Buki-xt5.js +506 -0
- package/build/server/chunks/shared-Buki-xt5.js.map +1 -0
- package/build/server/chunks/{state.svelte-CRHA9yov.js → state.svelte-C8IWmp_n.js} +2 -2
- package/build/server/chunks/{state.svelte-CRHA9yov.js.map → state.svelte-C8IWmp_n.js.map} +1 -1
- package/build/server/chunks/{utils-DGYJFmnf.js → utils-kjxf7BZO.js} +2 -2
- package/build/server/chunks/{utils-DGYJFmnf.js.map → utils-kjxf7BZO.js.map} +1 -1
- package/build/server/index.js +189 -610
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +45 -18
- package/build/server/manifest.js.map +1 -1
- package/package.json +13 -2
- package/src/api/servers.remote.ts +381 -20
- package/src/app.css +98 -3
- package/src/app.html +15 -0
- package/src/hooks.server.ts +18 -1
- package/src/lib/actions/jsonTextarea.ts +395 -0
- package/src/lib/components/Breadcrumbs.svelte +7 -58
- package/src/lib/components/JsonValue.svelte +279 -85
- package/src/lib/components/Modal.svelte +59 -0
- package/src/lib/components/OriginWarning.svelte +109 -0
- package/src/lib/components/PageSwitcher.svelte +37 -0
- package/src/lib/components/Panel.svelte +1 -1
- package/src/lib/components/PrettyJson.svelte +112 -36
- package/src/lib/components/SearchBox.svelte +161 -97
- package/src/lib/components/ThemeSwitcher.svelte +66 -0
- package/src/lib/components/Tooltip.svelte +83 -0
- package/src/lib/components/TooltipTable.svelte +45 -102
- package/src/lib/server/HostsManager.ts +4 -0
- package/src/lib/server/aggregation.ts +62 -0
- package/src/lib/server/mongo.ts +78 -15
- package/src/lib/types.ts +60 -0
- package/src/lib/utils/isEmptyObject.ts +6 -0
- package/src/lib/utils/jsonParser.ts +9 -1
- package/src/lib/utils/logger.ts +42 -0
- package/src/lib/utils/omit.ts +3 -0
- package/src/routes/+layout.server.ts +2 -1
- package/src/routes/+layout.svelte +15 -2
- package/src/routes/favicon.ico/+server.ts +8 -0
- package/src/routes/servers/+page.server.ts +23 -10
- package/src/routes/servers/+page.svelte +44 -10
- package/src/routes/servers/[server]/databases/+layout.ts +8 -0
- package/src/routes/servers/[server]/databases/+page.server.ts +15 -4
- package/src/routes/servers/[server]/databases/[database]/collections/+layout.ts +9 -0
- package/src/routes/servers/[server]/databases/[database]/collections/+page.server.ts +0 -2
- package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +67 -8
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+layout.ts +9 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.server.ts +217 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +342 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +10 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+layout.ts +9 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.server.ts +15 -12
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.svelte +81 -7
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +88 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +333 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +10 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.server.ts +18 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +378 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +10 -0
- package/src/tests/api/aggregation.test.ts +125 -0
- package/build/client/_app/immutable/assets/0.CEsPYTp2.css +0 -1
- package/build/client/_app/immutable/assets/0.CEsPYTp2.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CEsPYTp2.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.DawdmtJd.css +0 -1
- package/build/client/_app/immutable/assets/6.DawdmtJd.css.br +0 -2
- package/build/client/_app/immutable/assets/6.DawdmtJd.css.gz +0 -0
- package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css +0 -1
- package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.br +0 -0
- package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.gz +0 -0
- package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css +0 -1
- package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.br +0 -0
- package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B2-iEFN3.js +0 -2
- package/build/client/_app/immutable/chunks/B2-iEFN3.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2-iEFN3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5y2vsNr.js +0 -1
- package/build/client/_app/immutable/chunks/B5y2vsNr.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5y2vsNr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BN_N9-2s.js +0 -1
- package/build/client/_app/immutable/chunks/BN_N9-2s.js.br +0 -0
- package/build/client/_app/immutable/chunks/BN_N9-2s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1z4TjN7.js +0 -1
- package/build/client/_app/immutable/chunks/C1z4TjN7.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1z4TjN7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQBaNlA9.js +0 -1
- package/build/client/_app/immutable/chunks/CQBaNlA9.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQBaNlA9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVoOGazw.js +0 -4
- package/build/client/_app/immutable/chunks/CVoOGazw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVoOGazw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CapOg2jD.js +0 -1
- package/build/client/_app/immutable/chunks/CapOg2jD.js.br +0 -0
- package/build/client/_app/immutable/chunks/CapOg2jD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ChWB6xnu.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChWB6xnu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqnBT2zJ.js +0 -1
- package/build/client/_app/immutable/chunks/CqnBT2zJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqnBT2zJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D069mncP.js +0 -1
- package/build/client/_app/immutable/chunks/D069mncP.js.br +0 -0
- package/build/client/_app/immutable/chunks/D069mncP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DACrOfV_.js +0 -14
- package/build/client/_app/immutable/chunks/DACrOfV_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DACrOfV_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQkpHJGc.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQkpHJGc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSDD_hFT.js +0 -1
- package/build/client/_app/immutable/chunks/DSDD_hFT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSDD_hFT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_aTX_ol.js +0 -1
- package/build/client/_app/immutable/chunks/D_aTX_ol.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_aTX_ol.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dg3qHExF.js +0 -1
- package/build/client/_app/immutable/chunks/Dg3qHExF.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dg3qHExF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dt6-JRym.js +0 -2
- package/build/client/_app/immutable/chunks/Dt6-JRym.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dt6-JRym.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QoKxaG0e.js +0 -1
- package/build/client/_app/immutable/chunks/QoKxaG0e.js.br +0 -2
- package/build/client/_app/immutable/chunks/QoKxaG0e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/rtveiEyS.js +0 -1
- package/build/client/_app/immutable/chunks/rtveiEyS.js.br +0 -0
- package/build/client/_app/immutable/chunks/rtveiEyS.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Cc1FNLNH.js +0 -2
- package/build/client/_app/immutable/entry/app.Cc1FNLNH.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cc1FNLNH.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CwqlbFyy.js +0 -1
- package/build/client/_app/immutable/entry/start.CwqlbFyy.js.br +0 -2
- package/build/client/_app/immutable/entry/start.CwqlbFyy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js +0 -1
- package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.K6-n7D0b.js +0 -1
- package/build/client/_app/immutable/nodes/1.K6-n7D0b.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.K6-n7D0b.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DkGcIF98.js +0 -1
- package/build/client/_app/immutable/nodes/3.DkGcIF98.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DkGcIF98.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.C_NxbT98.js +0 -1
- package/build/client/_app/immutable/nodes/4.C_NxbT98.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C_NxbT98.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CFvfYaLM.js +0 -1
- package/build/client/_app/immutable/nodes/5.CFvfYaLM.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CFvfYaLM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.h34Zyorq.js +0 -1
- package/build/client/_app/immutable/nodes/6.h34Zyorq.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.h34Zyorq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BVJmNbU5.js +0 -1
- package/build/client/_app/immutable/nodes/7.BVJmNbU5.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BVJmNbU5.js.gz +0 -0
- package/build/server/chunks/0-Cb5ytlMI.js.map +0 -1
- package/build/server/chunks/1-Cpb7zRtJ.js +0 -9
- package/build/server/chunks/1-Cpb7zRtJ.js.map +0 -1
- package/build/server/chunks/3-B_DkgZkc.js +0 -69
- package/build/server/chunks/3-B_DkgZkc.js.map +0 -1
- package/build/server/chunks/4-DzHoLo__.js.map +0 -1
- package/build/server/chunks/5-CCWbCDpk.js.map +0 -1
- package/build/server/chunks/6-Dok8svjB.js +0 -202
- package/build/server/chunks/6-Dok8svjB.js.map +0 -1
- package/build/server/chunks/7-CmgJSG2j.js +0 -42
- package/build/server/chunks/7-CmgJSG2j.js.map +0 -1
- package/build/server/chunks/Panel-Bz0b85EW.js.map +0 -1
- package/build/server/chunks/PrettyJson-CX6-dNsW.js +0 -291
- package/build/server/chunks/PrettyJson-CX6-dNsW.js.map +0 -1
- package/build/server/chunks/TooltipTable-0z4HkHlH.js +0 -17
- package/build/server/chunks/TooltipTable-0z4HkHlH.js.map +0 -1
- package/build/server/chunks/_layout.svelte-UiDiCQEz.js +0 -111
- package/build/server/chunks/_layout.svelte-UiDiCQEz.js.map +0 -1
- package/build/server/chunks/_page.svelte-FIp-IsOo.js.map +0 -1
- package/build/server/chunks/_page.svelte-FLzHOuyK.js.map +0 -1
- package/build/server/chunks/_page.svelte-jxFKbZdN.js.map +0 -1
- package/build/server/chunks/_page.svelte-k8avSQW1.js +0 -215
- package/build/server/chunks/_page.svelte-k8avSQW1.js.map +0 -1
- package/build/server/chunks/_page.svelte-w9cxGvUf.js.map +0 -1
- package/build/server/chunks/async-BfR0vYHo.js.map +0 -1
- package/build/server/chunks/client-bj7sePQc.js +0 -7
- package/build/server/chunks/error.svelte-D5sIJv3P.js +0 -18
- package/build/server/chunks/error.svelte-D5sIJv3P.js.map +0 -1
- package/build/server/chunks/hooks.server-_TKfdzGA.js +0 -26
- package/build/server/chunks/hooks.server-_TKfdzGA.js.map +0 -1
- package/build/server/chunks/index3-DquTjlmp.js.map +0 -1
- package/build/server/chunks/mongo-dLmCShL_.js.map +0 -1
- package/build/server/chunks/remote-xxtqbu-BFzaWXy0.js +0 -234
- package/build/server/chunks/remote-xxtqbu-BFzaWXy0.js.map +0 -1
- package/build/server/chunks/routing-DcR4fCSD.js.map +0 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.server.ts +0 -106
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.svelte +0 -174
- /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css → 7.CRKE8WvY.css} +0 -0
- /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css.br → 7.CRKE8WvY.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css.gz → 7.CRKE8WvY.css.gz} +0 -0
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { k as escape_html } from './async-BfR0vYHo.js';
|
|
2
|
-
import { p as page } from './index3-DquTjlmp.js';
|
|
3
|
-
import './client-bj7sePQc.js';
|
|
4
|
-
import './state.svelte-CRHA9yov.js';
|
|
5
|
-
import './event-DVH-6ISX.js';
|
|
6
|
-
import './client2-BX4-xbM4.js';
|
|
7
|
-
import './exports-Cv9LZeD1.js';
|
|
8
|
-
import './utils-DGYJFmnf.js';
|
|
9
|
-
import './index-EKt9-9bV.js';
|
|
10
|
-
|
|
11
|
-
function Error($$renderer, $$props) {
|
|
12
|
-
$$renderer.component(($$renderer2) => {
|
|
13
|
-
$$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { Error as default };
|
|
18
|
-
//# sourceMappingURL=error.svelte-D5sIJv3P.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.svelte-D5sIJv3P.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { e as escape_html } from \"../../chunks/async.js\";\nimport { p as page } from \"../../chunks/index3.js\";\nfunction Error($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n });\n}\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;;;;;;;;AAEA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { MongoError } from 'mongodb';
|
|
2
|
-
|
|
3
|
-
Error.stackTraceLimit = 100;
|
|
4
|
-
const handle = async ({ event, resolve }) => {
|
|
5
|
-
return resolve(event);
|
|
6
|
-
};
|
|
7
|
-
const handleError = ({ error }) => {
|
|
8
|
-
console.error(error);
|
|
9
|
-
if (error instanceof MongoError) {
|
|
10
|
-
return {
|
|
11
|
-
message: error.message,
|
|
12
|
-
code: error.code
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
if (error instanceof Error) {
|
|
16
|
-
return {
|
|
17
|
-
message: error.message
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
message: "An unexpected error occurred"
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export { handle, handleError };
|
|
26
|
-
//# sourceMappingURL=hooks.server-_TKfdzGA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.server-_TKfdzGA.js","sources":["../../../.svelte-kit/adapter-node/chunks/hooks.server.js"],"sourcesContent":["import { MongoError } from \"mongodb\";\nError.stackTraceLimit = 100;\nconst handle = async ({ event, resolve }) => {\n return resolve(event);\n};\nconst handleError = ({ error }) => {\n console.error(error);\n if (error instanceof MongoError) {\n return {\n message: error.message,\n code: error.code\n };\n }\n if (error instanceof Error) {\n return {\n message: error.message\n };\n }\n return {\n message: \"An unexpected error occurred\"\n };\n};\nexport {\n handle,\n handleError\n};\n"],"names":[],"mappings":";;AACA,KAAK,CAAC,eAAe,GAAG,GAAG;AACtB,MAAC,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AAC7C,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB;AACK,MAAC,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK;AACnC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,KAAK,YAAY,UAAU,EAAE;AACnC,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO;AAC5B,MAAM,IAAI,EAAE,KAAK,CAAC;AAClB,KAAK;AACL,EAAE;AACF,EAAE,IAAI,KAAK,YAAY,KAAK,EAAE;AAC9B,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,KAAK,CAAC;AACrB,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,OAAO,EAAE;AACb,GAAG;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index3-DquTjlmp.js","sources":["../../../.svelte-kit/adapter-node/chunks/index3.js"],"sourcesContent":["import \"./client.js\";\nimport { g as getContext } from \"./async.js\";\nfunction context() {\n return getContext(\"__request__\");\n}\nconst page$1 = {\n get error() {\n return context().page.error;\n },\n get params() {\n return context().page.params;\n },\n get status() {\n return context().page.status;\n },\n get url() {\n return context().page.url;\n }\n};\nconst page = page$1;\nexport {\n page as p\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC;AACA,MAAM,MAAM,GAAG;AACf,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC/B,EAAE,CAAC;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,EAAE,CAAC;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,EAAE,CAAC;AACH,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG;AAC7B,EAAE;AACF,CAAC;AACI,MAAC,IAAI,GAAG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-dLmCShL_.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { 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 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}\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 clientIds = /* @__PURE__ */ new Map();\n // hostname -> _id\n hostsManager;\n countTimeout = parseInt(process.env.MONGOKU_COUNT_TIMEOUT, 10) || 5e3;\n constructor() {\n this.hostsManager = new HostsManager();\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 MongoClient(urlStr);\n this.clients.set(hostname, client);\n this.clientIds.set(hostname, host._id);\n }\n } catch (err) {\n console.error(`Failed to parse URL for host ${host.path}:`, err);\n }\n }\n }\n getClient(name) {\n const client = this.clients.get(name) || this.clients.get(`${name}:27017`);\n if (!client) {\n throw new Error(\"Server does not exist\");\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.entries()).filter(([, client]) => client instanceof MongoClient).map(([name, client]) => ({\n name,\n _id: this.clientIds.get(name) || \"\",\n client\n }));\n }\n getCollection(serverName, databaseName, collectionName) {\n const client = this.getClient(serverName);\n const db = client.db(databaseName);\n return db.collection(collectionName);\n }\n getCountTimeout() {\n return this.countTimeout;\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 MongoClient(urlStr);\n this.clients.set(hostname, client);\n this.clientIds.set(hostname, id);\n }\n } catch (err) {\n console.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.delete(name);\n this.clientIds.delete(name);\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,234 +0,0 @@
|
|
|
1
|
-
import { g as get_request_store, w as with_request_store } from './event-DVH-6ISX.js';
|
|
2
|
-
import './utils-DGYJFmnf.js';
|
|
3
|
-
import { e as error } from './index-Djsj11qr.js';
|
|
4
|
-
import { J as JsonEncoder } from './JsonEncoder-jJ2OBaud.js';
|
|
5
|
-
import { g as getMongo } from './mongo-dLmCShL_.js';
|
|
6
|
-
import { ObjectId } from 'mongodb';
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import 'url';
|
|
9
|
-
import 'node:fs';
|
|
10
|
-
import 'node:os';
|
|
11
|
-
import 'node:path';
|
|
12
|
-
|
|
13
|
-
/** @import { RemoteInfo } from 'types' */
|
|
14
|
-
|
|
15
|
-
/** @type {RemoteInfo['type'][]} */
|
|
16
|
-
const types = ['command', 'form', 'prerender', 'query', 'query_batch'];
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @param {Record<string, any>} module
|
|
20
|
-
* @param {string} file
|
|
21
|
-
* @param {string} hash
|
|
22
|
-
*/
|
|
23
|
-
function init_remote_functions(module, file, hash) {
|
|
24
|
-
if (module.default) {
|
|
25
|
-
throw new Error(
|
|
26
|
-
`Cannot export \`default\` from a remote module (${file}) — please use named exports instead`
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
for (const [name, fn] of Object.entries(module)) {
|
|
31
|
-
if (!types.includes(fn?.__?.type)) {
|
|
32
|
-
throw new Error(
|
|
33
|
-
`\`${name}\` exported from ${file} is invalid — all exports from this file must be remote functions`
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
fn.__.id = `${hash}/${name}`;
|
|
38
|
-
fn.__.name = name;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function create_validator(validate_or_fn, maybe_fn) {
|
|
43
|
-
if (!maybe_fn) {
|
|
44
|
-
return (arg) => {
|
|
45
|
-
if (arg !== void 0) {
|
|
46
|
-
error(400, "Bad Request");
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (validate_or_fn === "unchecked") {
|
|
51
|
-
return (arg) => arg;
|
|
52
|
-
}
|
|
53
|
-
if ("~standard" in validate_or_fn) {
|
|
54
|
-
return async (arg) => {
|
|
55
|
-
const { event, state } = get_request_store();
|
|
56
|
-
const validate = validate_or_fn["~standard"].validate;
|
|
57
|
-
const result = await validate(arg);
|
|
58
|
-
if (result.issues) {
|
|
59
|
-
error(
|
|
60
|
-
400,
|
|
61
|
-
await state.handleValidationError({
|
|
62
|
-
issues: result.issues,
|
|
63
|
-
event
|
|
64
|
-
})
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
return result.value;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
throw new Error(
|
|
71
|
-
'Invalid validator passed to remote function. Expected "unchecked" or a Standard Schema (https://standardschema.dev)'
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
async function run_remote_function(event, state, allow_cookies, arg, validate, fn) {
|
|
75
|
-
const store = {
|
|
76
|
-
event: {
|
|
77
|
-
...event,
|
|
78
|
-
setHeaders: () => {
|
|
79
|
-
throw new Error("setHeaders is not allowed in remote functions");
|
|
80
|
-
},
|
|
81
|
-
cookies: {
|
|
82
|
-
...event.cookies,
|
|
83
|
-
set: (name, value, opts) => {
|
|
84
|
-
if (opts.path && !opts.path.startsWith("/")) {
|
|
85
|
-
throw new Error("Cookies set in remote functions must have an absolute path");
|
|
86
|
-
}
|
|
87
|
-
return event.cookies.set(name, value, opts);
|
|
88
|
-
},
|
|
89
|
-
delete: (name, opts) => {
|
|
90
|
-
if (opts.path && !opts.path.startsWith("/")) {
|
|
91
|
-
throw new Error("Cookies deleted in remote functions must have an absolute path");
|
|
92
|
-
}
|
|
93
|
-
return event.cookies.delete(name, opts);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
state: {
|
|
98
|
-
...state,
|
|
99
|
-
is_in_remote_function: true
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const validated = await with_request_store(store, () => validate(arg));
|
|
103
|
-
return with_request_store(store, () => fn(validated));
|
|
104
|
-
}
|
|
105
|
-
// @__NO_SIDE_EFFECTS__
|
|
106
|
-
function command(validate_or_fn, maybe_fn) {
|
|
107
|
-
const fn = maybe_fn ?? validate_or_fn;
|
|
108
|
-
const validate = create_validator(validate_or_fn, maybe_fn);
|
|
109
|
-
const __ = { type: "command", id: "", name: "" };
|
|
110
|
-
const wrapper = (arg) => {
|
|
111
|
-
const { event, state } = get_request_store();
|
|
112
|
-
if (state.is_endpoint_request) {
|
|
113
|
-
if (!["POST", "PUT", "PATCH", "DELETE"].includes(event.request.method)) {
|
|
114
|
-
throw new Error(
|
|
115
|
-
`Cannot call a command (\`${__.name}(${maybe_fn ? "..." : ""})\`) from a ${event.request.method} handler`
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
} else if (!event.isRemoteRequest) {
|
|
119
|
-
throw new Error(
|
|
120
|
-
`Cannot call a command (\`${__.name}(${maybe_fn ? "..." : ""})\`) during server-side rendering`
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
state.refreshes ??= {};
|
|
124
|
-
const promise = Promise.resolve(run_remote_function(event, state, true, arg, validate, fn));
|
|
125
|
-
promise.updates = () => {
|
|
126
|
-
throw new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);
|
|
127
|
-
};
|
|
128
|
-
return (
|
|
129
|
-
/** @type {ReturnType<RemoteCommand<Input, Output>>} */
|
|
130
|
-
promise
|
|
131
|
-
);
|
|
132
|
-
};
|
|
133
|
-
Object.defineProperty(wrapper, "__", { value: __ });
|
|
134
|
-
Object.defineProperty(wrapper, "pending", {
|
|
135
|
-
get: () => 0
|
|
136
|
-
});
|
|
137
|
-
return wrapper;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const $$_self_$$ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
141
|
-
__proto__: null,
|
|
142
|
-
get addServer() {
|
|
143
|
-
return addServer;
|
|
144
|
-
},
|
|
145
|
-
get deleteDocument() {
|
|
146
|
-
return deleteDocument;
|
|
147
|
-
},
|
|
148
|
-
get removeServer() {
|
|
149
|
-
return removeServer;
|
|
150
|
-
},
|
|
151
|
-
get updateDocument() {
|
|
152
|
-
return updateDocument;
|
|
153
|
-
}
|
|
154
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
155
|
-
function checkReadOnly() {
|
|
156
|
-
if (process.env.MONGOKU_READ_ONLY_MODE === "true") {
|
|
157
|
-
error(403, "Read-only mode is enabled");
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
const addServer = command(
|
|
161
|
-
z.object({
|
|
162
|
-
url: z.string()
|
|
163
|
-
}),
|
|
164
|
-
async ({ url }) => {
|
|
165
|
-
const mongo = await getMongo();
|
|
166
|
-
await mongo.addServer(url);
|
|
167
|
-
return { ok: true };
|
|
168
|
-
}
|
|
169
|
-
);
|
|
170
|
-
const removeServer = command(z.string(), async (serverName) => {
|
|
171
|
-
const mongo = await getMongo();
|
|
172
|
-
await mongo.removeServer(serverName);
|
|
173
|
-
return { ok: true };
|
|
174
|
-
});
|
|
175
|
-
const updateDocument = command(
|
|
176
|
-
z.object({
|
|
177
|
-
server: z.string(),
|
|
178
|
-
database: z.string(),
|
|
179
|
-
collection: z.string(),
|
|
180
|
-
document: z.string(),
|
|
181
|
-
value: z.unknown(),
|
|
182
|
-
partial: z.boolean().optional().default(false)
|
|
183
|
-
}),
|
|
184
|
-
async ({ server, database, collection, document, value, partial }) => {
|
|
185
|
-
checkReadOnly();
|
|
186
|
-
const mongo = await getMongo();
|
|
187
|
-
const coll = mongo.getCollection(server, database, collection);
|
|
188
|
-
if (!coll) {
|
|
189
|
-
error(404, `Collection not found: ${server}.${database}.${collection}`);
|
|
190
|
-
}
|
|
191
|
-
const newValue = JsonEncoder.decode(value);
|
|
192
|
-
const update = partial ? { $set: newValue } : JsonEncoder.decode(newValue);
|
|
193
|
-
await coll.replaceOne(
|
|
194
|
-
{
|
|
195
|
-
_id: new ObjectId(document)
|
|
196
|
-
},
|
|
197
|
-
update
|
|
198
|
-
);
|
|
199
|
-
return {
|
|
200
|
-
ok: true,
|
|
201
|
-
update: JsonEncoder.encode(newValue)
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
);
|
|
205
|
-
const deleteDocument = command(
|
|
206
|
-
z.object({
|
|
207
|
-
server: z.string(),
|
|
208
|
-
database: z.string(),
|
|
209
|
-
collection: z.string(),
|
|
210
|
-
document: z.string()
|
|
211
|
-
}),
|
|
212
|
-
async ({ server, database, collection, document }) => {
|
|
213
|
-
checkReadOnly();
|
|
214
|
-
const mongo = await getMongo();
|
|
215
|
-
const coll = mongo.getCollection(server, database, collection);
|
|
216
|
-
if (!coll) {
|
|
217
|
-
error(404, `Collection not found: ${server}.${database}.${collection}`);
|
|
218
|
-
}
|
|
219
|
-
await coll.deleteOne({
|
|
220
|
-
_id: new ObjectId(document)
|
|
221
|
-
});
|
|
222
|
-
return {
|
|
223
|
-
ok: true
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
);
|
|
227
|
-
init_remote_functions($$_self_$$, "src/api/servers.remote.ts", "xxtqbu");
|
|
228
|
-
for (const [name, fn] of Object.entries($$_self_$$)) {
|
|
229
|
-
fn.__.id = "xxtqbu/" + name;
|
|
230
|
-
fn.__.name = name;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export { deleteDocument as d, $$_self_$$ as default, updateDocument as u };
|
|
234
|
-
//# sourceMappingURL=remote-xxtqbu-BFzaWXy0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remote-xxtqbu-BFzaWXy0.js","sources":["../../../node_modules/.pnpm/@sveltejs+kit@2.46.3_@sveltejs+vite-plugin-svelte@6.2.1_svelte@5.39.11_vite@7.1.9_@type_e09a1e4e1ae4eaa65c4418875c54bc45/node_modules/@sveltejs/kit/src/exports/internal/remote-functions.js","../../../.svelte-kit/adapter-node/chunks/query.js","../../../.svelte-kit/adapter-node/chunks/remote-xxtqbu.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 create_validator as a,\n get_response as b,\n command 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 { c as command } from \"./query.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { J as JsonEncoder } from \"./JsonEncoder.js\";\nimport { g as getMongo } from \"./mongo.js\";\nimport { ObjectId } from \"mongodb\";\nimport { z } from \"zod\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nconst $$_self_$$ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n get addServer() {\n return addServer;\n },\n get deleteDocument() {\n return deleteDocument;\n },\n get removeServer() {\n return removeServer;\n },\n get updateDocument() {\n return updateDocument;\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}\nconst addServer = command(\n z.object({\n url: z.string()\n }),\n async ({ 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 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 }),\n async ({ server, database, collection, document, value, partial }) => {\n checkReadOnly();\n const mongo = await getMongo();\n const coll = mongo.getCollection(server, database, collection);\n if (!coll) {\n error(404, `Collection not found: ${server}.${database}.${collection}`);\n }\n const newValue = JsonEncoder.decode(value);\n const update = partial ? { $set: newValue } : JsonEncoder.decode(newValue);\n await coll.replaceOne(\n {\n _id: new ObjectId(document)\n },\n update\n );\n return {\n ok: true,\n update: 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 checkReadOnly();\n const mongo = await getMongo();\n const coll = mongo.getCollection(server, database, collection);\n if (!coll) {\n error(404, `Collection not found: ${server}.${database}.${collection}`);\n }\n await coll.deleteOne({\n _id: new ObjectId(document)\n });\n return {\n ok: true\n };\n }\n);\ninit_remote_functions($$_self_$$, \"src/api/servers.remote.ts\", \"xxtqbu\");\nfor (const [name, fn] of Object.entries($$_self_$$)) {\n fn.__.id = \"xxtqbu/\" + name;\n fn.__.name = name;\n}\nexport default $$_self_$$;;\nexport {\n deleteDocument as d,\n updateDocument as u\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing-DcR4fCSD.js","sources":["../../../.svelte-kit/adapter-node/chunks/server.js","../../../.svelte-kit/adapter-node/chunks/index2.js","../../../.svelte-kit/adapter-node/chunks/routing.js"],"sourcesContent":["let base = \"\";\nlet assets = base;\nconst app_dir = \"_app\";\nconst relative = true;\nconst initial = { base, assets };\nconst initial_base = initial.base;\nfunction override(paths) {\n base = paths.base;\n assets = paths.assets;\n}\nfunction reset() {\n base = initial.base;\n assets = initial.assets;\n}\nfunction set_assets(path) {\n assets = initial.assets = path;\n}\nexport {\n assets as a,\n base as b,\n app_dir as c,\n reset as d,\n initial_base as i,\n override as o,\n relative as r,\n set_assets as s\n};\n","import { e as escape_html, b as set_ssr_context, c as ssr_context, p as push, d as pop, a as async_mode_flag } from \"./async.js\";\nimport { k as is_promise, n as noop } from \"./utils2.js\";\nconst DERIVED = 1 << 1;\nconst EFFECT = 1 << 2;\nconst RENDER_EFFECT = 1 << 3;\nconst BLOCK_EFFECT = 1 << 4;\nconst BRANCH_EFFECT = 1 << 5;\nconst ROOT_EFFECT = 1 << 6;\nconst BOUNDARY_EFFECT = 1 << 7;\nconst UNOWNED = 1 << 8;\nconst DISCONNECTED = 1 << 9;\nconst CLEAN = 1 << 10;\nconst DIRTY = 1 << 11;\nconst MAYBE_DIRTY = 1 << 12;\nconst INERT = 1 << 13;\nconst DESTROYED = 1 << 14;\nconst EFFECT_RAN = 1 << 15;\nconst EFFECT_TRANSPARENT = 1 << 16;\nconst INSPECT_EFFECT = 1 << 17;\nconst HEAD_EFFECT = 1 << 18;\nconst EFFECT_PRESERVED = 1 << 19;\nconst USER_EFFECT = 1 << 20;\nconst REACTION_IS_UPDATING = 1 << 21;\nconst ASYNC = 1 << 22;\nconst ERROR_VALUE = 1 << 23;\nconst STATE_SYMBOL = Symbol(\"$state\");\nconst LEGACY_PROPS = Symbol(\"legacy props\");\nconst STALE_REACTION = new class StaleReactionError extends Error {\n name = \"StaleReactionError\";\n message = \"The reaction that called `getAbortSignal()` was re-run or destroyed\";\n}();\nconst COMMENT_NODE = 8;\nconst HYDRATION_START = \"[\";\nconst HYDRATION_START_ELSE = \"[!\";\nconst HYDRATION_END = \"]\";\nconst HYDRATION_ERROR = {};\nconst ELEMENT_IS_NAMESPACED = 1;\nconst ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;\nconst ELEMENT_IS_INPUT = 1 << 2;\nconst UNINITIALIZED = Symbol();\nconst DOM_BOOLEAN_ATTRIBUTES = [\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"disabled\",\n \"formnovalidate\",\n \"indeterminate\",\n \"inert\",\n \"ismap\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"seamless\",\n \"selected\",\n \"webkitdirectory\",\n \"defer\",\n \"disablepictureinpicture\",\n \"disableremoteplayback\"\n];\nfunction is_boolean_attribute(name) {\n return DOM_BOOLEAN_ATTRIBUTES.includes(name);\n}\nconst PASSIVE_EVENTS = [\"touchstart\", \"touchmove\"];\nfunction is_passive_event(name) {\n return PASSIVE_EVENTS.includes(name);\n}\nfunction r(e) {\n var t, f, n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n else if (\"object\" == typeof e) if (Array.isArray(e)) {\n var o = e.length;\n for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n } else for (f in e) e[f] && (n && (n += \" \"), n += f);\n return n;\n}\nfunction clsx$1() {\n for (var e, t, f = 0, n = \"\", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\nconst replacements = {\n translate: /* @__PURE__ */ new Map([\n [true, \"yes\"],\n [false, \"no\"]\n ])\n};\nfunction attr(name, value, is_boolean = false) {\n if (name === \"hidden\" && value !== \"until-found\") {\n is_boolean = true;\n }\n if (value == null || !value && is_boolean) return \"\";\n const normalized = name in replacements && replacements[name].get(value) || value;\n const assignment = is_boolean ? \"\" : `=\"${escape_html(normalized, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction clsx(value) {\n if (typeof value === \"object\") {\n return clsx$1(value);\n } else {\n return value ?? \"\";\n }\n}\nconst whitespace = [...\" \t\\n\\r\\f \\v\\uFEFF\"];\nfunction to_class(value, hash, directives) {\n var classname = value == null ? \"\" : \"\" + value;\n if (hash) {\n classname = classname ? classname + \" \" + hash : hash;\n }\n if (directives) {\n for (var key in directives) {\n if (directives[key]) {\n classname = classname ? classname + \" \" + key : key;\n } else if (classname.length) {\n var len = key.length;\n var a = 0;\n while ((a = classname.indexOf(key, a)) >= 0) {\n var b = a + len;\n if ((a === 0 || whitespace.includes(classname[a - 1])) && (b === classname.length || whitespace.includes(classname[b]))) {\n classname = (a === 0 ? \"\" : classname.substring(0, a)) + classname.substring(b + 1);\n } else {\n a = b;\n }\n }\n }\n }\n }\n return classname === \"\" ? null : classname;\n}\nfunction append_styles(styles, important = false) {\n var separator = important ? \" !important;\" : \";\";\n var css = \"\";\n for (var key in styles) {\n var value = styles[key];\n if (value != null && value !== \"\") {\n css += \" \" + key + \": \" + value + separator;\n }\n }\n return css;\n}\nfunction to_css_name(name) {\n if (name[0] !== \"-\" || name[1] !== \"-\") {\n return name.toLowerCase();\n }\n return name;\n}\nfunction to_style(value, styles) {\n if (styles) {\n var new_style = \"\";\n var normal_styles;\n var important_styles;\n if (Array.isArray(styles)) {\n normal_styles = styles[0];\n important_styles = styles[1];\n } else {\n normal_styles = styles;\n }\n if (value) {\n value = String(value).replaceAll(/\\s*\\/\\*.*?\\*\\/\\s*/g, \"\").trim();\n var in_str = false;\n var in_apo = 0;\n var in_comment = false;\n var reserved_names = [];\n if (normal_styles) {\n reserved_names.push(...Object.keys(normal_styles).map(to_css_name));\n }\n if (important_styles) {\n reserved_names.push(...Object.keys(important_styles).map(to_css_name));\n }\n var start_index = 0;\n var name_index = -1;\n const len = value.length;\n for (var i = 0; i < len; i++) {\n var c = value[i];\n if (in_comment) {\n if (c === \"/\" && value[i - 1] === \"*\") {\n in_comment = false;\n }\n } else if (in_str) {\n if (in_str === c) {\n in_str = false;\n }\n } else if (c === \"/\" && value[i + 1] === \"*\") {\n in_comment = true;\n } else if (c === '\"' || c === \"'\") {\n in_str = c;\n } else if (c === \"(\") {\n in_apo++;\n } else if (c === \")\") {\n in_apo--;\n }\n if (!in_comment && in_str === false && in_apo === 0) {\n if (c === \":\" && name_index === -1) {\n name_index = i;\n } else if (c === \";\" || i === len - 1) {\n if (name_index !== -1) {\n var name = to_css_name(value.substring(start_index, name_index).trim());\n if (!reserved_names.includes(name)) {\n if (c !== \";\") {\n i++;\n }\n var property = value.substring(start_index, i).trim();\n new_style += \" \" + property + \";\";\n }\n }\n start_index = i + 1;\n name_index = -1;\n }\n }\n }\n }\n if (normal_styles) {\n new_style += append_styles(normal_styles);\n }\n if (important_styles) {\n new_style += append_styles(important_styles, true);\n }\n new_style = new_style.trim();\n return new_style === \"\" ? null : new_style;\n }\n return value == null ? null : String(value);\n}\nconst BLOCK_OPEN = `<!--${HYDRATION_START}-->`;\nconst BLOCK_OPEN_ELSE = `<!--${HYDRATION_START_ELSE}-->`;\nconst BLOCK_CLOSE = `<!--${HYDRATION_END}-->`;\nlet controller = null;\nfunction abort() {\n controller?.abort(STALE_REACTION);\n controller = null;\n}\nfunction await_invalid() {\n const error = new Error(`await_invalid\nEncountered asynchronous work while rendering synchronously.\nhttps://svelte.dev/e/await_invalid`);\n error.name = \"Svelte error\";\n throw error;\n}\nfunction html_deprecated() {\n const error = new Error(`html_deprecated\nThe \\`html\\` property of server render results has been deprecated. Use \\`body\\` instead.\nhttps://svelte.dev/e/html_deprecated`);\n error.name = \"Svelte error\";\n throw error;\n}\nfunction experimental_async_ssr() {\n {\n console.warn(`https://svelte.dev/e/experimental_async_ssr`);\n }\n}\nclass Renderer {\n /**\n * The contents of the renderer.\n * @type {RendererItem[]}\n */\n #out = [];\n /**\n * Any `onDestroy` callbacks registered during execution of this renderer.\n * @type {(() => void)[] | undefined}\n */\n #on_destroy = void 0;\n /**\n * Whether this renderer is a component body.\n * @type {boolean}\n */\n #is_component_body = false;\n /**\n * The type of string content that this renderer is accumulating.\n * @type {RendererType}\n */\n type;\n /** @type {Renderer | undefined} */\n #parent;\n /**\n * Asynchronous work associated with this renderer\n * @type {Promise<void> | undefined}\n */\n promise = void 0;\n /**\n * State which is associated with the content tree as a whole.\n * It will be re-exposed, uncopied, on all children.\n * @type {SSRState}\n * @readonly\n */\n global;\n /**\n * State that is local to the branch it is declared in.\n * It will be shallow-copied to all children.\n *\n * @type {{ select_value: string | undefined }}\n */\n local;\n /**\n * @param {SSRState} global\n * @param {Renderer | undefined} [parent]\n */\n constructor(global, parent) {\n this.#parent = parent;\n this.global = global;\n this.local = parent ? { ...parent.local } : { select_value: void 0 };\n this.type = parent ? parent.type : \"body\";\n }\n /**\n * @param {(renderer: Renderer) => void} fn\n */\n head(fn) {\n const head = new Renderer(this.global, this);\n head.type = \"head\";\n this.#out.push(head);\n head.child(fn);\n }\n /**\n * @param {(renderer: Renderer) => void} fn\n */\n async(fn) {\n this.#out.push(BLOCK_OPEN);\n this.child(fn);\n this.#out.push(BLOCK_CLOSE);\n }\n /**\n * Create a child renderer. The child renderer inherits the state from the parent,\n * but has its own content.\n * @param {(renderer: Renderer) => MaybePromise<void>} fn\n */\n child(fn) {\n const child = new Renderer(this.global, this);\n this.#out.push(child);\n const parent = ssr_context;\n set_ssr_context({\n ...ssr_context,\n p: parent,\n c: null,\n r: child\n });\n const result = fn(child);\n set_ssr_context(parent);\n if (result instanceof Promise) {\n if (child.global.mode === \"sync\") {\n await_invalid();\n }\n result.catch(() => {\n });\n child.promise = result;\n }\n return child;\n }\n /**\n * Create a component renderer. The component renderer inherits the state from the parent,\n * but has its own content. It is treated as an ordering boundary for ondestroy callbacks.\n * @param {(renderer: Renderer) => MaybePromise<void>} fn\n * @param {Function} [component_fn]\n * @returns {void}\n */\n component(fn, component_fn) {\n push();\n const child = this.child(fn);\n child.#is_component_body = true;\n pop();\n }\n /**\n * @param {Record<string, any>} attrs\n * @param {(renderer: Renderer) => void} fn\n * @param {string | undefined} [css_hash]\n * @param {Record<string, boolean> | undefined} [classes]\n * @param {Record<string, string> | undefined} [styles]\n * @param {number | undefined} [flags]\n * @returns {void}\n */\n select(attrs, fn, css_hash, classes, styles, flags) {\n const { value, ...select_attrs } = attrs;\n this.push(`<select${attributes(select_attrs, css_hash, classes, styles, flags)}>`);\n this.child((renderer) => {\n renderer.local.select_value = value;\n fn(renderer);\n });\n this.push(\"</select>\");\n }\n /**\n * @param {Record<string, any>} attrs\n * @param {string | number | boolean | ((renderer: Renderer) => void)} body\n * @param {string | undefined} [css_hash]\n * @param {Record<string, boolean> | undefined} [classes]\n * @param {Record<string, string> | undefined} [styles]\n * @param {number | undefined} [flags]\n */\n option(attrs, body, css_hash, classes, styles, flags) {\n this.#out.push(`<option${attributes(attrs, css_hash, classes, styles, flags)}`);\n const close = (renderer, value, { head, body: body2 }) => {\n if (\"value\" in attrs) {\n value = attrs.value;\n }\n if (value === this.local.select_value) {\n renderer.#out.push(\" selected\");\n }\n renderer.#out.push(`>${body2}</option>`);\n if (head) {\n renderer.head((child) => child.push(head));\n }\n };\n if (typeof body === \"function\") {\n this.child((renderer) => {\n const r2 = new Renderer(this.global, this);\n body(r2);\n if (this.global.mode === \"async\") {\n return r2.#collect_content_async().then((content) => {\n close(renderer, content.body.replaceAll(\"<!---->\", \"\"), content);\n });\n } else {\n const content = r2.#collect_content();\n close(renderer, content.body.replaceAll(\"<!---->\", \"\"), content);\n }\n });\n } else {\n close(this, body, { body });\n }\n }\n /**\n * @param {(renderer: Renderer) => void} fn\n */\n title(fn) {\n const path = this.get_path();\n const close = (head) => {\n this.global.set_title(head, path);\n };\n this.child((renderer) => {\n const r2 = new Renderer(renderer.global, renderer);\n fn(r2);\n if (renderer.global.mode === \"async\") {\n return r2.#collect_content_async().then((content) => {\n close(content.head);\n });\n } else {\n const content = r2.#collect_content();\n close(content.head);\n }\n });\n }\n /**\n * @param {string | (() => Promise<string>)} content\n */\n push(content) {\n if (typeof content === \"function\") {\n this.child(async (renderer) => renderer.push(await content()));\n } else {\n this.#out.push(content);\n }\n }\n /**\n * @param {() => void} fn\n */\n on_destroy(fn) {\n (this.#on_destroy ??= []).push(fn);\n }\n /**\n * @returns {number[]}\n */\n get_path() {\n return this.#parent ? [...this.#parent.get_path(), this.#parent.#out.indexOf(this)] : [];\n }\n /**\n * @deprecated this is needed for legacy component bindings\n */\n copy() {\n const copy = new Renderer(this.global, this.#parent);\n copy.#out = this.#out.map((item) => item instanceof Renderer ? item.copy() : item);\n copy.promise = this.promise;\n return copy;\n }\n /**\n * @param {Renderer} other\n * @deprecated this is needed for legacy component bindings\n */\n subsume(other) {\n if (this.global.mode !== other.global.mode) {\n throw new Error(\n \"invariant: A renderer cannot switch modes. If you're seeing this, there's a compiler bug. File an issue!\"\n );\n }\n this.local = other.local;\n this.#out = other.#out.map((item) => {\n if (item instanceof Renderer) {\n item.subsume(item);\n }\n return item;\n });\n this.promise = other.promise;\n this.type = other.type;\n }\n get length() {\n return this.#out.length;\n }\n /**\n * Only available on the server and when compiling with the `server` option.\n * Takes a component and returns an object with `body` and `head` properties on it, which you can use to populate the HTML when server-rendering your app.\n * @template {Record<string, any>} Props\n * @param {Component<Props>} component\n * @param {{ props?: Omit<Props, '$$slots' | '$$events'>; context?: Map<any, any>; idPrefix?: string }} [options]\n * @returns {RenderOutput}\n */\n static render(component, options = {}) {\n let sync;\n let async;\n const result = (\n /** @type {RenderOutput} */\n {}\n );\n Object.defineProperties(result, {\n html: {\n get: () => {\n return (sync ??= Renderer.#render(component, options)).body;\n }\n },\n head: {\n get: () => {\n return (sync ??= Renderer.#render(component, options)).head;\n }\n },\n body: {\n get: () => {\n return (sync ??= Renderer.#render(component, options)).body;\n }\n },\n then: {\n value: (\n /**\n * this is not type-safe, but honestly it's the best I can do right now, and it's a straightforward function.\n *\n * @template TResult1\n * @template [TResult2=never]\n * @param { (value: SyncRenderOutput) => TResult1 } onfulfilled\n * @param { (reason: unknown) => TResult2 } onrejected\n */\n (onfulfilled, onrejected) => {\n if (!async_mode_flag) {\n experimental_async_ssr();\n const result2 = sync ??= Renderer.#render(component, options);\n const user_result = onfulfilled({\n head: result2.head,\n body: result2.body,\n html: result2.body\n });\n return Promise.resolve(user_result);\n }\n async ??= Renderer.#render_async(component, options);\n return async.then((result2) => {\n Object.defineProperty(result2, \"html\", {\n // eslint-disable-next-line getter-return\n get: () => {\n html_deprecated();\n }\n });\n return onfulfilled(\n /** @type {SyncRenderOutput} */\n result2\n );\n }, onrejected);\n }\n )\n }\n });\n return result;\n }\n /**\n * Collect all of the `onDestroy` callbacks regsitered during rendering. In an async context, this is only safe to call\n * after awaiting `collect_async`.\n *\n * Child renderers are \"porous\" and don't affect execution order, but component body renderers\n * create ordering boundaries. Within a renderer, callbacks run in order until hitting a component boundary.\n * @returns {Iterable<() => void>}\n */\n *#collect_on_destroy() {\n for (const component of this.#traverse_components()) {\n yield* component.#collect_ondestroy();\n }\n }\n /**\n * Performs a depth-first search of renderers, yielding the deepest components first, then additional components as we backtrack up the tree.\n * @returns {Iterable<Renderer>}\n */\n *#traverse_components() {\n for (const child of this.#out) {\n if (typeof child !== \"string\") {\n yield* child.#traverse_components();\n }\n }\n if (this.#is_component_body) {\n yield this;\n }\n }\n /**\n * @returns {Iterable<() => void>}\n */\n *#collect_ondestroy() {\n if (this.#on_destroy) {\n for (const fn of this.#on_destroy) {\n yield fn;\n }\n }\n for (const child of this.#out) {\n if (child instanceof Renderer && !child.#is_component_body) {\n yield* child.#collect_ondestroy();\n }\n }\n }\n /**\n * Render a component. Throws if any of the children are performing asynchronous work.\n *\n * @template {Record<string, any>} Props\n * @param {Component<Props>} component\n * @param {{ props?: Omit<Props, '$$slots' | '$$events'>; context?: Map<any, any>; idPrefix?: string }} options\n * @returns {AccumulatedContent}\n */\n static #render(component, options) {\n var previous_context = ssr_context;\n try {\n const renderer = Renderer.#open_render(\"sync\", component, options);\n const content = renderer.#collect_content();\n return Renderer.#close_render(content, renderer);\n } finally {\n abort();\n set_ssr_context(previous_context);\n }\n }\n /**\n * Render a component.\n *\n * @template {Record<string, any>} Props\n * @param {Component<Props>} component\n * @param {{ props?: Omit<Props, '$$slots' | '$$events'>; context?: Map<any, any>; idPrefix?: string }} options\n * @returns {Promise<AccumulatedContent>}\n */\n static async #render_async(component, options) {\n var previous_context = ssr_context;\n try {\n const renderer = Renderer.#open_render(\"async\", component, options);\n const content = await renderer.#collect_content_async();\n return Renderer.#close_render(content, renderer);\n } finally {\n abort();\n set_ssr_context(previous_context);\n }\n }\n /**\n * Collect all of the code from the `out` array and return it as a string, or a promise resolving to a string.\n * @param {AccumulatedContent} content\n * @returns {AccumulatedContent}\n */\n #collect_content(content = { head: \"\", body: \"\" }) {\n for (const item of this.#out) {\n if (typeof item === \"string\") {\n content[this.type] += item;\n } else if (item instanceof Renderer) {\n item.#collect_content(content);\n }\n }\n return content;\n }\n /**\n * Collect all of the code from the `out` array and return it as a string.\n * @param {AccumulatedContent} content\n * @returns {Promise<AccumulatedContent>}\n */\n async #collect_content_async(content = { head: \"\", body: \"\" }) {\n await this.promise;\n for (const item of this.#out) {\n if (typeof item === \"string\") {\n content[this.type] += item;\n } else if (item instanceof Renderer) {\n await item.#collect_content_async(content);\n }\n }\n return content;\n }\n /**\n * @template {Record<string, any>} Props\n * @param {'sync' | 'async'} mode\n * @param {import('svelte').Component<Props>} component\n * @param {{ props?: Omit<Props, '$$slots' | '$$events'>; context?: Map<any, any>; idPrefix?: string }} options\n * @returns {Renderer}\n */\n static #open_render(mode, component, options) {\n const renderer = new Renderer(\n new SSRState(mode, options.idPrefix ? options.idPrefix + \"-\" : \"\")\n );\n renderer.push(BLOCK_OPEN);\n if (options.context) {\n push();\n ssr_context.c = options.context;\n ssr_context.r = renderer;\n }\n component(renderer, options.props ?? {});\n if (options.context) {\n pop();\n }\n renderer.push(BLOCK_CLOSE);\n return renderer;\n }\n /**\n * @param {AccumulatedContent} content\n * @param {Renderer} renderer\n */\n static #close_render(content, renderer) {\n for (const cleanup of renderer.#collect_on_destroy()) {\n cleanup();\n }\n let head = content.head + renderer.global.get_title();\n let body = content.body;\n for (const { hash, code } of renderer.global.css) {\n head += `<style id=\"${hash}\">${code}</style>`;\n }\n return {\n head,\n body\n };\n }\n}\nclass SSRState {\n /** @readonly @type {'sync' | 'async'} */\n mode;\n /** @readonly @type {() => string} */\n uid;\n /** @readonly @type {Set<{ hash: string; code: string }>} */\n css = /* @__PURE__ */ new Set();\n /** @type {{ path: number[], value: string }} */\n #title = { path: [], value: \"\" };\n /**\n * @param {'sync' | 'async'} mode\n * @param {string} [id_prefix]\n */\n constructor(mode, id_prefix = \"\") {\n this.mode = mode;\n let uid = 1;\n this.uid = () => `${id_prefix}s${uid++}`;\n }\n get_title() {\n return this.#title.value;\n }\n /**\n * Performs a depth-first (lexicographic) comparison using the path. Rejects sets\n * from earlier than or equal to the current value.\n * @param {string} value\n * @param {number[]} path\n */\n set_title(value, path) {\n const current = this.#title.path;\n let i = 0;\n let l = Math.min(path.length, current.length);\n while (i < l && path[i] === current[i]) i += 1;\n if (path[i] === void 0) return;\n if (current[i] === void 0 || path[i] > current[i]) {\n this.#title.path = path;\n this.#title.value = value;\n }\n }\n}\nconst INVALID_ATTR_NAME_CHAR_REGEX = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\nfunction render(component, options = {}) {\n return Renderer.render(\n /** @type {Component<Props>} */\n component,\n options\n );\n}\nfunction attributes(attrs, css_hash, classes, styles, flags = 0) {\n if (styles) {\n attrs.style = to_style(attrs.style, styles);\n }\n if (attrs.class) {\n attrs.class = clsx(attrs.class);\n }\n if (css_hash || classes) {\n attrs.class = to_class(attrs.class, css_hash, classes);\n }\n let attr_str = \"\";\n let name;\n const is_html = (flags & ELEMENT_IS_NAMESPACED) === 0;\n const lowercase = (flags & ELEMENT_PRESERVE_ATTRIBUTE_CASE) === 0;\n const is_input = (flags & ELEMENT_IS_INPUT) !== 0;\n for (name in attrs) {\n if (typeof attrs[name] === \"function\") continue;\n if (name[0] === \"$\" && name[1] === \"$\") continue;\n if (INVALID_ATTR_NAME_CHAR_REGEX.test(name)) continue;\n var value = attrs[name];\n if (lowercase) {\n name = name.toLowerCase();\n }\n if (is_input) {\n if (name === \"defaultvalue\" || name === \"defaultchecked\") {\n name = name === \"defaultvalue\" ? \"value\" : \"checked\";\n if (attrs[name]) continue;\n }\n }\n attr_str += attr(name, value, is_html && is_boolean_attribute(name));\n }\n return attr_str;\n}\nfunction stringify(value) {\n return typeof value === \"string\" ? value : value == null ? \"\" : value + \"\";\n}\nfunction attr_class(value, hash, directives) {\n var result = to_class(value, hash, directives);\n return result ? ` class=\"${escape_html(result, true)}\"` : \"\";\n}\nfunction attr_style(value, directives) {\n var result = to_style(value, directives);\n return result ? ` style=\"${escape_html(result, true)}\"` : \"\";\n}\nfunction bind_props(props_parent, props_now) {\n for (const key in props_now) {\n const initial_value = props_parent[key];\n const value = props_now[key];\n if (initial_value === void 0 && value !== void 0 && Object.getOwnPropertyDescriptor(props_parent, key)?.set) {\n props_parent[key] = value;\n }\n }\n}\nfunction await_block(renderer, promise, pending_fn, then_fn) {\n if (is_promise(promise)) {\n renderer.push(BLOCK_OPEN);\n promise.then(null, noop);\n if (pending_fn !== null) {\n pending_fn();\n }\n } else if (then_fn !== null) {\n renderer.push(BLOCK_OPEN_ELSE);\n then_fn(promise);\n }\n}\nfunction ensure_array_like(array_like_or_iterator) {\n if (array_like_or_iterator) {\n return array_like_or_iterator.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);\n }\n return [];\n}\nexport {\n ASYNC as A,\n BOUNDARY_EFFECT as B,\n COMMENT_NODE as C,\n DIRTY as D,\n ERROR_VALUE as E,\n stringify as F,\n await_block as G,\n HYDRATION_ERROR as H,\n INERT as I,\n bind_props as J,\n attr_style as K,\n LEGACY_PROPS as L,\n MAYBE_DIRTY as M,\n RENDER_EFFECT as R,\n STATE_SYMBOL as S,\n UNOWNED as U,\n HYDRATION_END as a,\n HYDRATION_START as b,\n HYDRATION_START_ELSE as c,\n EFFECT_RAN as d,\n CLEAN as e,\n EFFECT as f,\n BLOCK_EFFECT as g,\n BRANCH_EFFECT as h,\n ROOT_EFFECT as i,\n DESTROYED as j,\n DERIVED as k,\n EFFECT_TRANSPARENT as l,\n EFFECT_PRESERVED as m,\n INSPECT_EFFECT as n,\n UNINITIALIZED as o,\n HEAD_EFFECT as p,\n STALE_REACTION as q,\n USER_EFFECT as r,\n DISCONNECTED as s,\n REACTION_IS_UPDATING as t,\n is_passive_event as u,\n render as v,\n experimental_async_ssr as w,\n ensure_array_like as x,\n attr as y,\n attr_class as z\n};\n","function affects_path(segment) {\n return segment !== \"\" && !/^\\([^)]+\\)$/.test(segment);\n}\nfunction get_route_segments(route) {\n return route.slice(1).split(\"/\").filter(affects_path);\n}\nfunction exec(match, params, matchers) {\n const result = {};\n const values = match.slice(1);\n const values_needing_match = values.filter((value) => value !== void 0);\n let buffered = 0;\n for (let i = 0; i < params.length; i += 1) {\n const param = params[i];\n let value = values[i - buffered];\n if (param.chained && param.rest && buffered) {\n value = values.slice(i - buffered, i + 1).filter((s) => s).join(\"/\");\n buffered = 0;\n }\n if (value === void 0) {\n if (param.rest) result[param.name] = \"\";\n continue;\n }\n if (!param.matcher || matchers[param.matcher](value)) {\n result[param.name] = value;\n const next_param = params[i + 1];\n const next_value = values[i + 1];\n if (next_param && !next_param.rest && next_param.optional && next_value && param.chained) {\n buffered = 0;\n }\n if (!next_param && !next_value && Object.keys(result).length === values_needing_match.length) {\n buffered = 0;\n }\n continue;\n }\n if (param.optional && param.chained) {\n buffered++;\n continue;\n }\n return;\n }\n if (buffered) return;\n return result;\n}\nconst basic_param_pattern = /\\[(\\[)?(\\.\\.\\.)?(\\w+?)(?:=(\\w+))?\\]\\]?/g;\nfunction resolve_route(id, params) {\n const segments = get_route_segments(id);\n const has_id_trailing_slash = id != \"/\" && id.endsWith(\"/\");\n return \"/\" + segments.map(\n (segment) => segment.replace(basic_param_pattern, (_, optional, rest, name) => {\n const param_value = params[name];\n if (!param_value) {\n if (optional) return \"\";\n if (rest && param_value !== void 0) return \"\";\n throw new Error(`Missing parameter '${name}' in route ${id}`);\n }\n if (param_value.startsWith(\"/\") || param_value.endsWith(\"/\"))\n throw new Error(\n `Parameter '${name}' in route ${id} cannot start or end with a slash -- this would cause an invalid route like foo//bar`\n );\n return param_value;\n })\n ).filter(Boolean).join(\"/\") + (has_id_trailing_slash ? \"/\" : \"\");\n}\nexport {\n exec as e,\n resolve_route as r\n};\n"],"names":[],"mappings":"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"}
|
package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.server.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import JsonEncoder from "$lib/server/JsonEncoder";
|
|
2
|
-
import { getMongo } from "$lib/server/mongo";
|
|
3
|
-
import type { MongoDocument } from "$lib/types";
|
|
4
|
-
import { parseJSON } from "$lib/utils/jsonParser";
|
|
5
|
-
import { error } from "@sveltejs/kit";
|
|
6
|
-
import type { Document } from "mongodb";
|
|
7
|
-
import type { PageServerLoad } from "./$types";
|
|
8
|
-
|
|
9
|
-
export const load: PageServerLoad = async ({ params, url }) => {
|
|
10
|
-
const query = url.searchParams.get("query") || "{}";
|
|
11
|
-
const sort = url.searchParams.get("sort") || "{}";
|
|
12
|
-
const project = url.searchParams.get("project") || "{}";
|
|
13
|
-
const skip = parseInt(url.searchParams.get("skip") || "0", 10);
|
|
14
|
-
const limit = parseInt(url.searchParams.get("limit") || "20", 10);
|
|
15
|
-
|
|
16
|
-
// Parse JSON strings early for immediate errors
|
|
17
|
-
let queryDoc: unknown;
|
|
18
|
-
try {
|
|
19
|
-
queryDoc = parseJSON(query);
|
|
20
|
-
} catch (err) {
|
|
21
|
-
return error(400, `Invalid query: ${query} - ${err}`);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let sortDoc: unknown;
|
|
25
|
-
try {
|
|
26
|
-
sortDoc = parseJSON(sort);
|
|
27
|
-
} catch (err) {
|
|
28
|
-
return error(400, `Invalid sort: ${sort} - ${err}`);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
let projectDoc: Document;
|
|
32
|
-
try {
|
|
33
|
-
projectDoc = parseJSON(project) as Document;
|
|
34
|
-
} catch (err) {
|
|
35
|
-
return error(400, `Invalid project: ${project} - ${err}`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const mongo = await getMongo();
|
|
39
|
-
const collection = mongo.getCollection(params.server, params.database, params.collection);
|
|
40
|
-
|
|
41
|
-
if (!collection) {
|
|
42
|
-
return error(404, `Collection not found: ${params.server}.${params.database}.${params.collection}`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Stream both promises - return error info instead of throwing
|
|
46
|
-
const resultsPromise = collection
|
|
47
|
-
.find(JsonEncoder.decode(queryDoc))
|
|
48
|
-
.project(projectDoc)
|
|
49
|
-
.sort(JsonEncoder.decode(sortDoc))
|
|
50
|
-
.limit(limit)
|
|
51
|
-
.skip(skip)
|
|
52
|
-
.map((obj) => JsonEncoder.encode(obj))
|
|
53
|
-
.toArray()
|
|
54
|
-
.then((results) => ({
|
|
55
|
-
data: results as MongoDocument[],
|
|
56
|
-
error: null as string | null,
|
|
57
|
-
}))
|
|
58
|
-
.catch((err) => {
|
|
59
|
-
console.error("Error fetching query results:", err);
|
|
60
|
-
return {
|
|
61
|
-
data: [] as MongoDocument[],
|
|
62
|
-
error: `Failed to fetch query results: ${err instanceof Error ? err.message : String(err)}`,
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const countPromise = (async () => {
|
|
67
|
-
try {
|
|
68
|
-
if (queryDoc && Object.keys(queryDoc).length > 0) {
|
|
69
|
-
return {
|
|
70
|
-
data: await collection.countDocuments(JsonEncoder.decode(queryDoc), {
|
|
71
|
-
maxTimeMS: mongo.getCountTimeout(),
|
|
72
|
-
}),
|
|
73
|
-
error: null as string | null,
|
|
74
|
-
};
|
|
75
|
-
} else {
|
|
76
|
-
// fast count
|
|
77
|
-
return {
|
|
78
|
-
data: await collection.estimatedDocumentCount(),
|
|
79
|
-
error: null as string | null,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
} catch (err) {
|
|
83
|
-
console.error("Error counting documents:", err);
|
|
84
|
-
return {
|
|
85
|
-
data: 0,
|
|
86
|
-
error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
})();
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
server: params.server,
|
|
93
|
-
database: params.database,
|
|
94
|
-
collection: params.collection,
|
|
95
|
-
// Stream these promises to the client
|
|
96
|
-
results: resultsPromise,
|
|
97
|
-
count: countPromise,
|
|
98
|
-
params: {
|
|
99
|
-
query,
|
|
100
|
-
sort,
|
|
101
|
-
project,
|
|
102
|
-
skip,
|
|
103
|
-
limit,
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
};
|