mongoku 2.9.2 → 2.10.0-compat
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.D8aXA7G5.css +1 -0
- package/build/client/_app/immutable/assets/0.D8aXA7G5.css.br +0 -0
- package/build/client/_app/immutable/assets/0.D8aXA7G5.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.-WSj0hXT.css +1 -0
- package/build/client/_app/immutable/assets/10.-WSj0hXT.css.br +1 -0
- package/build/client/_app/immutable/assets/10.-WSj0hXT.css.gz +0 -0
- package/build/client/_app/immutable/assets/16.BpmHh9U0.css +1 -0
- package/build/client/_app/immutable/assets/16.BpmHh9U0.css.br +0 -0
- package/build/client/_app/immutable/assets/16.BpmHh9U0.css.gz +0 -0
- package/build/client/_app/immutable/chunks/-8z-rXzu.js +1 -0
- package/build/client/_app/immutable/chunks/-8z-rXzu.js.br +0 -0
- package/build/client/_app/immutable/chunks/-8z-rXzu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ADrS3reX.js +1 -0
- package/build/client/_app/immutable/chunks/ADrS3reX.js.br +0 -0
- package/build/client/_app/immutable/chunks/ADrS3reX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3A9hx44.js +1 -0
- package/build/client/_app/immutable/chunks/B3A9hx44.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3A9hx44.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B48saTbS.js +1 -0
- package/build/client/_app/immutable/chunks/B48saTbS.js.br +0 -0
- package/build/client/_app/immutable/chunks/B48saTbS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{IixngxlS.js → BoF-bMzh.js} +2 -2
- package/build/client/_app/immutable/chunks/BoF-bMzh.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoF-bMzh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5BvtFsa.js +1 -0
- package/build/client/_app/immutable/chunks/C5BvtFsa.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5BvtFsa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5dXZyme.js +1 -0
- package/build/client/_app/immutable/chunks/C5dXZyme.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5dXZyme.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUBPtF8t.js +65 -0
- package/build/client/_app/immutable/chunks/CUBPtF8t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUBPtF8t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{9xpgPu5N.js → Cf6RCjfg.js} +1 -1
- package/build/client/_app/immutable/chunks/Cf6RCjfg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cf6RCjfg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CrLGr586.js +2 -0
- package/build/client/_app/immutable/chunks/CrLGr586.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrLGr586.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CsbWzWJI.js +1 -0
- package/build/client/_app/immutable/chunks/CsbWzWJI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CsbWzWJI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyTV7fHl.js +1 -0
- package/build/client/_app/immutable/chunks/CyTV7fHl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyTV7fHl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DCAtHodH.js → D3UCTJm-.js} +2 -2
- package/build/client/_app/immutable/chunks/D3UCTJm-.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3UCTJm-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dzt_TFtX.js → DH7nqg5-.js} +1 -1
- package/build/client/_app/immutable/chunks/DH7nqg5-.js.br +0 -0
- package/build/client/_app/immutable/chunks/DH7nqg5-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKMyRjux.js +1 -0
- package/build/client/_app/immutable/chunks/DKMyRjux.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKMyRjux.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DO0gnjpd.js +1 -0
- package/build/client/_app/immutable/chunks/DO0gnjpd.js.br +0 -0
- package/build/client/_app/immutable/chunks/DO0gnjpd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVIi8uNn.js +1 -0
- package/build/client/_app/immutable/chunks/DVIi8uNn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVIi8uNn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dc47-4iR.js +1 -0
- package/build/client/_app/immutable/chunks/Dc47-4iR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dc47-4iR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CTk2PBcX.js → Dcgd1m6P.js} +1 -1
- package/build/client/_app/immutable/chunks/Dcgd1m6P.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dcgd1m6P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ddz9xOa-.js +1 -0
- package/build/client/_app/immutable/chunks/Ddz9xOa-.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ddz9xOa-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{IwGwbOe7.js → DfW1b8bA.js} +1 -1
- package/build/client/_app/immutable/chunks/DfW1b8bA.js.br +0 -0
- package/build/client/_app/immutable/chunks/{IwGwbOe7.js.gz → DfW1b8bA.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/Dfjkeakv.js +1 -0
- package/build/client/_app/immutable/chunks/Dfjkeakv.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dfjkeakv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{ChWGK2Ce.js → DgwByHCB.js} +1 -1
- package/build/client/_app/immutable/chunks/DgwByHCB.js.br +0 -0
- package/build/client/_app/immutable/chunks/DgwByHCB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{v8XDA7ui.js → DlVaABeK.js} +3 -3
- package/build/client/_app/immutable/chunks/DlVaABeK.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlVaABeK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DupjJGFi.js +1 -0
- package/build/client/_app/immutable/chunks/DupjJGFi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DupjJGFi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DymqlScG.js +1 -0
- package/build/client/_app/immutable/chunks/DymqlScG.js.br +0 -0
- package/build/client/_app/immutable/chunks/DymqlScG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Z7BFksgg.js → J9ZSs_8c.js} +1 -1
- package/build/client/_app/immutable/chunks/J9ZSs_8c.js.br +0 -0
- package/build/client/_app/immutable/chunks/J9ZSs_8c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CKvueigk.js → OvZJ6gNJ.js} +1 -1
- package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/URA3nPWG.js +1 -0
- package/build/client/_app/immutable/chunks/URA3nPWG.js.br +0 -0
- package/build/client/_app/immutable/chunks/URA3nPWG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bZzTqofF.js +1 -0
- package/build/client/_app/immutable/chunks/bZzTqofF.js.br +0 -0
- package/build/client/_app/immutable/chunks/bZzTqofF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oSuzXE6i.js +1 -0
- package/build/client/_app/immutable/chunks/oSuzXE6i.js.br +0 -0
- package/build/client/_app/immutable/chunks/oSuzXE6i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wZh6TcLb.js +2 -0
- package/build/client/_app/immutable/chunks/wZh6TcLb.js.br +0 -0
- package/build/client/_app/immutable/chunks/wZh6TcLb.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.G0Hwsu0f.js +2 -0
- package/build/client/_app/immutable/entry/app.G0Hwsu0f.js.br +0 -0
- package/build/client/_app/immutable/entry/app.G0Hwsu0f.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.pOs5gHaO.js +1 -0
- package/build/client/_app/immutable/entry/start.pOs5gHaO.js.br +0 -0
- package/build/client/_app/immutable/entry/start.pOs5gHaO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BPw_KPrY.js +1 -0
- package/build/client/_app/immutable/nodes/0.BPw_KPrY.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BPw_KPrY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.eWL7yJRK.js +1 -0
- package/build/client/_app/immutable/nodes/1.eWL7yJRK.js.br +4 -0
- package/build/client/_app/immutable/nodes/1.eWL7yJRK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.AwBSgK4-.js +2 -0
- package/build/client/_app/immutable/nodes/10.AwBSgK4-.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.AwBSgK4-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.DS8hIvI2.js +6 -0
- package/build/client/_app/immutable/nodes/11.DS8hIvI2.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.DS8hIvI2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{12.CuCxLKQr.js → 12.DP-oGzlU.js} +1 -1
- package/build/client/_app/immutable/nodes/12.DP-oGzlU.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DP-oGzlU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DCNBPtGq.js +1 -0
- package/build/client/_app/immutable/nodes/13.DCNBPtGq.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DCNBPtGq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js +65 -0
- package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.DFTrPy3K.js +1 -0
- package/build/client/_app/immutable/nodes/15.DFTrPy3K.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.DFTrPy3K.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.wrfG8awE.js +1 -0
- package/build/client/_app/immutable/nodes/16.wrfG8awE.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.wrfG8awE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.Bai-TIgH.js → 2.6jE8uEJq.js} +1 -1
- package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.ev9oAmrG.js → 3.C59rlT3p.js} +1 -1
- package/build/client/_app/immutable/nodes/3.C59rlT3p.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C59rlT3p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DbZo8waJ.js +1 -0
- package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CyK0fI1l.js → 5.Cu8LcB5H.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BSMf3Keu.js +1 -0
- package/build/client/_app/immutable/nodes/7.BSMf3Keu.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BSMf3Keu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CmQOYs57.js +2 -0
- package/build/client/_app/immutable/nodes/8.CmQOYs57.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CmQOYs57.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js +1 -0
- package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-2tDL-Z_M.js +32 -0
- package/build/server/chunks/0-2tDL-Z_M.js.map +1 -0
- package/build/server/chunks/1-L1YRtIEr.js +9 -0
- package/build/server/chunks/{1-lx7f4PWt.js.map → 1-L1YRtIEr.js.map} +1 -1
- package/build/server/chunks/10-kSTe-NQK.js +43 -0
- package/build/server/chunks/10-kSTe-NQK.js.map +1 -0
- package/build/server/chunks/{11-BEDQUU1_.js → 11-BSFyIooa.js} +5 -24
- package/build/server/chunks/11-BSFyIooa.js.map +1 -0
- package/build/server/chunks/{12-CzhXMlU9.js → 12-DhN9fz9p.js} +4 -5
- package/build/server/chunks/12-DhN9fz9p.js.map +1 -0
- package/build/server/chunks/{13-D1eLiA_r.js → 13-B1mdDktE.js} +5 -24
- package/build/server/chunks/13-B1mdDktE.js.map +1 -0
- package/build/server/chunks/14-G2fvhIG4.js +38 -0
- package/build/server/chunks/14-G2fvhIG4.js.map +1 -0
- package/build/server/chunks/15-BxHbA5Ao.js +48 -0
- package/build/server/chunks/15-BxHbA5Ao.js.map +1 -0
- package/build/server/chunks/16-D0Gv3LNT.js +46 -0
- package/build/server/chunks/16-D0Gv3LNT.js.map +1 -0
- package/build/server/chunks/{2-ckJpvP-Z.js → 2-DGpX4fMQ.js} +2 -2
- package/build/server/chunks/{2-ckJpvP-Z.js.map → 2-DGpX4fMQ.js.map} +1 -1
- package/build/server/chunks/{3-TPjZ0P0_.js → 3-CwHfLh5P.js} +2 -2
- package/build/server/chunks/{3-TPjZ0P0_.js.map → 3-CwHfLh5P.js.map} +1 -1
- package/build/server/chunks/{4-DoW1zEiI.js → 4-B5F5-cxe.js} +10 -2
- package/build/server/chunks/4-B5F5-cxe.js.map +1 -0
- package/build/server/chunks/{5-cZ6VD-C-.js → 5-CxqBB_6c.js} +2 -2
- package/build/server/chunks/{5-cZ6VD-C-.js.map → 5-CxqBB_6c.js.map} +1 -1
- package/build/server/chunks/{6-eXO6RVDu.js → 6-Qus887OP.js} +3 -2
- package/build/server/chunks/{6-eXO6RVDu.js.map → 6-Qus887OP.js.map} +1 -1
- package/build/server/chunks/{7-BmJzLrSm.js → 7-BNgFbh-a.js} +6 -5
- package/build/server/chunks/{7-BmJzLrSm.js.map → 7-BNgFbh-a.js.map} +1 -1
- package/build/server/chunks/{8-Ba9OHB5H.js → 8-DOgOgmwJ.js} +4 -5
- package/build/server/chunks/8-DOgOgmwJ.js.map +1 -0
- package/build/server/chunks/{9-DSgRe_DY.js → 9-D-PO69az.js} +4 -5
- package/build/server/chunks/9-D-PO69az.js.map +1 -0
- package/build/server/chunks/IconChevronDown-D8V4kB6o.js +10 -0
- package/build/server/chunks/IconChevronDown-D8V4kB6o.js.map +1 -0
- package/build/server/chunks/{JsonValue-CGVfzyTL.js → JsonValue-B-iqFShN.js} +4 -3
- package/build/server/chunks/JsonValue-B-iqFShN.js.map +1 -0
- package/build/server/chunks/{Modal-D2E5OLRi.js → Modal-D10te4nR.js} +2 -2
- package/build/server/chunks/Modal-D10te4nR.js.map +1 -0
- package/build/server/chunks/{Panel-C6VWd6JD.js → Panel-CBztHh2Y.js} +2 -2
- package/build/server/chunks/Panel-CBztHh2Y.js.map +1 -0
- package/build/server/chunks/{PrettyJson-Bo4UtQ1o.js → PrettyJson-Dz5fCjPq.js} +6 -6
- package/build/server/chunks/PrettyJson-Dz5fCjPq.js.map +1 -0
- package/build/server/chunks/{Tooltip-OVylvwfb.js → Tooltip-BHX9gIpe.js} +2 -2
- package/build/server/chunks/Tooltip-BHX9gIpe.js.map +1 -0
- package/build/server/chunks/{TooltipTable-CLglfpck.js → TooltipTable-BIwNd3UB.js} +3 -3
- package/build/server/chunks/TooltipTable-BIwNd3UB.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CLPxHDiP.js → _layout.svelte-BX5H_goi.js} +38 -15
- package/build/server/chunks/_layout.svelte-BX5H_goi.js.map +1 -0
- package/build/server/chunks/{_page.svelte-zD7qndty.js → _page.svelte-Bh6uDLz6.js} +15 -15
- package/build/server/chunks/_page.svelte-Bh6uDLz6.js.map +1 -0
- package/build/server/chunks/_page.svelte-CHqJAnyH.js +258 -0
- package/build/server/chunks/_page.svelte-CHqJAnyH.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CPcgVZQj.js → _page.svelte-CsCyoCpn.js} +15 -15
- package/build/server/chunks/_page.svelte-CsCyoCpn.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CAAPpbun.js → _page.svelte-Cwyc6wIg.js} +14 -14
- package/build/server/chunks/_page.svelte-Cwyc6wIg.js.map +1 -0
- package/build/server/chunks/{_page.svelte-e5wWk327.js → _page.svelte-DE0XWW__.js} +12 -12
- package/build/server/chunks/_page.svelte-DE0XWW__.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DVjTn-ck.js → _page.svelte-DIe5tQ3z.js} +14 -14
- package/build/server/chunks/_page.svelte-DIe5tQ3z.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C3QVwl-z.js → _page.svelte-DT0U0FvS.js} +5 -4
- package/build/server/chunks/_page.svelte-DT0U0FvS.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C_GX0K8M.js → _page.svelte-YOsljIow.js} +19 -22
- package/build/server/chunks/_page.svelte-YOsljIow.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BeiSosXN.js → _page.svelte-aEFurJZ0.js} +55 -15
- package/build/server/chunks/_page.svelte-aEFurJZ0.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CkZUu9Wh.js → _page.svelte-vWYc1vOs.js} +9 -9
- package/build/server/chunks/_page.svelte-vWYc1vOs.js.map +1 -0
- package/build/server/chunks/{_server.ts-i-glbZtX.js → _server.ts-BTmpua-U.js} +4 -3
- package/build/server/chunks/{_server.ts-i-glbZtX.js.map → _server.ts-BTmpua-U.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CEBmCzTO.js → _server.ts-BhWrvCAV.js} +4 -3
- package/build/server/chunks/{_server.ts-CEBmCzTO.js.map → _server.ts-BhWrvCAV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CoUHVeKI.js → _server.ts-CUj-HfCf.js} +4 -3
- package/build/server/chunks/{_server.ts-CoUHVeKI.js.map → _server.ts-CUj-HfCf.js.map} +1 -1
- package/build/server/chunks/client-DrDUOhf5.js +7 -0
- package/build/server/chunks/{client-COtw9Xqw.js.map → client-DrDUOhf5.js.map} +1 -1
- package/build/server/chunks/{client2-BIa3wTXU.js → client2-Birk_77A.js} +4 -4
- package/build/server/chunks/{client2-BIa3wTXU.js.map → client2-Birk_77A.js.map} +1 -1
- package/build/server/chunks/error.svelte-DisWvlhZ.js +19 -0
- package/build/server/chunks/error.svelte-DisWvlhZ.js.map +1 -0
- package/build/server/chunks/{filters-B3U8Nh9P.js → filters-BTgp9cdC.js} +4 -7
- package/build/server/chunks/filters-BTgp9cdC.js.map +1 -0
- package/build/server/chunks/{hooks.server-BiUSRqj1.js → hooks.server-Cc7EKf-Z.js} +4 -3
- package/build/server/chunks/{hooks.server-BiUSRqj1.js.map → hooks.server-Cc7EKf-Z.js.map} +1 -1
- package/build/server/chunks/{index-CtYzvcG6.js → index-CDf-jMhD.js} +3 -2
- package/build/server/chunks/index-CDf-jMhD.js.map +1 -0
- package/build/server/chunks/{index2-B0RgZaJY.js → index2-DNcGQp0K.js} +3 -3
- package/build/server/chunks/index2-DNcGQp0K.js.map +1 -0
- package/build/server/chunks/{mongo-B92d7zNj.js → mongo-Du0OjH5b.js} +257 -24
- package/build/server/chunks/mongo-Du0OjH5b.js.map +1 -0
- package/build/server/chunks/{oauth-D6jTWKFd.js → oauth-CyIuK65I.js} +2 -2
- package/build/server/chunks/{oauth-D6jTWKFd.js.map → oauth-CyIuK65I.js.map} +1 -1
- package/build/server/chunks/{remote-xxtqbu-CDChJkWc.js → remote-xxtqbu-BCjbN3T4.js} +6 -6
- package/build/server/chunks/remote-xxtqbu-BCjbN3T4.js.map +1 -0
- package/build/server/chunks/renderer-wJWkLEmh.js +1844 -0
- package/build/server/chunks/renderer-wJWkLEmh.js.map +1 -0
- package/build/server/chunks/{root-otUAnOAR.js → root-Bs42DBih.js} +12 -1849
- package/build/server/chunks/root-Bs42DBih.js.map +1 -0
- package/build/server/chunks/{routing-EDfUNu8L.js → routing-CJRzZHIr.js} +2 -2
- package/build/server/chunks/{routing-EDfUNu8L.js.map → routing-CJRzZHIr.js.map} +1 -1
- package/build/server/chunks/{server2-D_y4YbpC.js → server2-B0ZXRoOj.js} +3 -3
- package/build/server/chunks/{server2-D_y4YbpC.js.map → server2-B0ZXRoOj.js.map} +1 -1
- package/build/server/chunks/{servers.remote-CGenkEHX.js → servers.remote-Bise-7j4.js} +5 -14
- package/build/server/chunks/servers.remote-Bise-7j4.js.map +1 -0
- package/build/server/chunks/shardKey-BnXqfB_r.js +11 -0
- package/build/server/chunks/shardKey-BnXqfB_r.js.map +1 -0
- package/build/server/chunks/{shared-DlqhoNLb.js → shared-BJTImRjE.js} +3 -2
- package/build/server/chunks/{shared-DlqhoNLb.js.map → shared-BJTImRjE.js.map} +1 -1
- package/build/server/chunks/{state.svelte-Bj5yxNNk.js → state.svelte-YUn1p3EK.js} +3 -2
- package/build/server/chunks/{state.svelte-Bj5yxNNk.js.map → state.svelte-YUn1p3EK.js.map} +1 -1
- package/build/server/index.js +7 -6
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +29 -21
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/api/servers.remote.ts +3 -12
- package/src/lib/collectionCategories.ts +25 -0
- package/src/lib/components/PageSwitcher.svelte +74 -6
- package/src/lib/components/ShardBadge.svelte +65 -0
- package/src/lib/server/connectionString.ts +50 -0
- package/src/lib/server/mongo.ts +208 -37
- package/src/lib/types.ts +34 -0
- package/src/lib/utils/filters.ts +5 -7
- package/src/lib/utils/mongoUri.ts +164 -0
- package/src/lib/utils/shardKey.ts +16 -0
- package/src/routes/servers/+page.svelte +1 -1
- package/src/routes/servers/[server]/databases/[database]/collections/+page.server.ts +5 -0
- package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +47 -9
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+layout.ts +3 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.server.ts +26 -0
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.svelte +319 -0
- package/src/tests/server/connectionString.test.ts +108 -0
- package/build/client/_app/immutable/assets/0.DTh4C4pw.css +0 -1
- package/build/client/_app/immutable/assets/0.DTh4C4pw.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DTh4C4pw.css.gz +0 -0
- package/build/client/_app/immutable/chunks/8tf5Lvl3.js +0 -1
- package/build/client/_app/immutable/chunks/8tf5Lvl3.js.br +0 -0
- package/build/client/_app/immutable/chunks/8tf5Lvl3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/951V-MIZ.js +0 -1
- package/build/client/_app/immutable/chunks/951V-MIZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/951V-MIZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/9xpgPu5N.js.br +0 -0
- package/build/client/_app/immutable/chunks/9xpgPu5N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDGd1aqF.js +0 -2
- package/build/client/_app/immutable/chunks/BDGd1aqF.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDGd1aqF.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/BUO1EOQu.js +0 -1
- package/build/client/_app/immutable/chunks/BUO1EOQu.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUO1EOQu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiVfO0yo.js +0 -1
- package/build/client/_app/immutable/chunks/BiVfO0yo.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiVfO0yo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6P2UOyZ.js +0 -1
- package/build/client/_app/immutable/chunks/C6P2UOyZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6P2UOyZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCOVnadf.js +0 -1
- package/build/client/_app/immutable/chunks/CCOVnadf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCOVnadf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CKvueigk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CKvueigk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQE8d3kg.js +0 -1
- package/build/client/_app/immutable/chunks/CQE8d3kg.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQE8d3kg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTk2PBcX.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTk2PBcX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ChWGK2Ce.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChWGK2Ce.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CkMoyTwc.js +0 -1
- package/build/client/_app/immutable/chunks/CkMoyTwc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CkMoyTwc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CmI1igJD.js +0 -1
- package/build/client/_app/immutable/chunks/CmI1igJD.js.br +0 -0
- package/build/client/_app/immutable/chunks/CmI1igJD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DCAtHodH.js.br +0 -0
- package/build/client/_app/immutable/chunks/DCAtHodH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DFXj4NOH.js +0 -1
- package/build/client/_app/immutable/chunks/DFXj4NOH.js.br +0 -0
- package/build/client/_app/immutable/chunks/DFXj4NOH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaMh_eeB.js +0 -1
- package/build/client/_app/immutable/chunks/DaMh_eeB.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaMh_eeB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DqxUmOYD.js +0 -66
- package/build/client/_app/immutable/chunks/DqxUmOYD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DqxUmOYD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dzt_TFtX.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dzt_TFtX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/IixngxlS.js.br +0 -0
- package/build/client/_app/immutable/chunks/IixngxlS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/IwGwbOe7.js.br +0 -0
- package/build/client/_app/immutable/chunks/YMZQSnF3.js +0 -1
- package/build/client/_app/immutable/chunks/YMZQSnF3.js.br +0 -0
- package/build/client/_app/immutable/chunks/YMZQSnF3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Z7BFksgg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Z7BFksgg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/dlHwFtkV.js +0 -1
- package/build/client/_app/immutable/chunks/dlHwFtkV.js.br +0 -0
- package/build/client/_app/immutable/chunks/dlHwFtkV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/v8XDA7ui.js.br +0 -0
- package/build/client/_app/immutable/chunks/v8XDA7ui.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.B1EvSYDg.js +0 -2
- package/build/client/_app/immutable/entry/app.B1EvSYDg.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B1EvSYDg.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BFVM56Yz.js +0 -1
- package/build/client/_app/immutable/entry/start.BFVM56Yz.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BFVM56Yz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.1R1dLPSd.js +0 -1
- package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.LhEdwE1H.js +0 -1
- package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.eB7zuikE.js +0 -2
- package/build/client/_app/immutable/nodes/10.eB7zuikE.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.eB7zuikE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.fvrVbout.js +0 -6
- package/build/client/_app/immutable/nodes/11.fvrVbout.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.fvrVbout.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DPotp8O6.js +0 -1
- package/build/client/_app/immutable/nodes/13.DPotp8O6.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DPotp8O6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.D5zVPym5.js +0 -65
- package/build/client/_app/immutable/nodes/14.D5zVPym5.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.D5zVPym5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.Cucd16Gx.js +0 -1
- package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DS2d90xq.js +0 -1
- package/build/client/_app/immutable/nodes/4.DS2d90xq.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DS2d90xq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.D-uzybGz.js +0 -1
- package/build/client/_app/immutable/nodes/7.D-uzybGz.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D-uzybGz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CYKKqJhA.js +0 -2
- package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CQcxG5IS.js +0 -1
- package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.gz +0 -0
- package/build/server/chunks/0-BRQgSkWt.js +0 -31
- package/build/server/chunks/0-BRQgSkWt.js.map +0 -1
- package/build/server/chunks/1-lx7f4PWt.js +0 -9
- package/build/server/chunks/10-Censc2uj.js +0 -42
- package/build/server/chunks/10-Censc2uj.js.map +0 -1
- package/build/server/chunks/11-BEDQUU1_.js.map +0 -1
- package/build/server/chunks/12-CzhXMlU9.js.map +0 -1
- package/build/server/chunks/13-D1eLiA_r.js.map +0 -1
- package/build/server/chunks/14-BVNQ2wyL.js +0 -57
- package/build/server/chunks/14-BVNQ2wyL.js.map +0 -1
- package/build/server/chunks/15-Ch9c9iYB.js +0 -67
- package/build/server/chunks/15-Ch9c9iYB.js.map +0 -1
- package/build/server/chunks/4-DoW1zEiI.js.map +0 -1
- package/build/server/chunks/8-Ba9OHB5H.js.map +0 -1
- package/build/server/chunks/9-DSgRe_DY.js.map +0 -1
- package/build/server/chunks/JsonValue-CGVfzyTL.js.map +0 -1
- package/build/server/chunks/Modal-D2E5OLRi.js.map +0 -1
- package/build/server/chunks/Panel-C6VWd6JD.js.map +0 -1
- package/build/server/chunks/PrettyJson-Bo4UtQ1o.js.map +0 -1
- package/build/server/chunks/Tooltip-OVylvwfb.js.map +0 -1
- package/build/server/chunks/TooltipTable-CLglfpck.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CLPxHDiP.js.map +0 -1
- package/build/server/chunks/_page.svelte-BeiSosXN.js.map +0 -1
- package/build/server/chunks/_page.svelte-C3QVwl-z.js.map +0 -1
- package/build/server/chunks/_page.svelte-CAAPpbun.js.map +0 -1
- package/build/server/chunks/_page.svelte-CPcgVZQj.js.map +0 -1
- package/build/server/chunks/_page.svelte-C_GX0K8M.js.map +0 -1
- package/build/server/chunks/_page.svelte-CkZUu9Wh.js.map +0 -1
- package/build/server/chunks/_page.svelte-DVjTn-ck.js.map +0 -1
- package/build/server/chunks/_page.svelte-e5wWk327.js.map +0 -1
- package/build/server/chunks/_page.svelte-zD7qndty.js.map +0 -1
- package/build/server/chunks/client-COtw9Xqw.js +0 -7
- package/build/server/chunks/error.svelte-DUZ2SYyF.js +0 -18
- package/build/server/chunks/error.svelte-DUZ2SYyF.js.map +0 -1
- package/build/server/chunks/filters-B3U8Nh9P.js.map +0 -1
- package/build/server/chunks/index-CtYzvcG6.js.map +0 -1
- package/build/server/chunks/index2-B0RgZaJY.js.map +0 -1
- package/build/server/chunks/mongo-B92d7zNj.js.map +0 -1
- package/build/server/chunks/remote-xxtqbu-CDChJkWc.js.map +0 -1
- package/build/server/chunks/root-otUAnOAR.js.map +0 -1
- package/build/server/chunks/servers.remote-CGenkEHX.js.map +0 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +0 -11
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +0 -11
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +0 -11
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.ts +0 -11
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { logger } from "$lib/server/logger";
|
|
2
|
+
import { getMongo } from "$lib/server/mongo";
|
|
3
|
+
import type { ShardingInfo } from "$lib/types";
|
|
4
|
+
import type { PageServerLoad } from "./$types";
|
|
5
|
+
|
|
6
|
+
export const load: PageServerLoad = async ({ params, depends }) => {
|
|
7
|
+
depends("app:sharding");
|
|
8
|
+
|
|
9
|
+
const shardingPromise = (async (): Promise<{ data: ShardingInfo | null; error: string | null }> => {
|
|
10
|
+
try {
|
|
11
|
+
const mongo = await getMongo();
|
|
12
|
+
const data = await mongo.getShardingInfo(params.server, params.database, params.collection);
|
|
13
|
+
return { data, error: null };
|
|
14
|
+
} catch (err) {
|
|
15
|
+
logger.error("Error fetching sharding info:", err);
|
|
16
|
+
return {
|
|
17
|
+
data: null,
|
|
18
|
+
error: `Failed to fetch sharding info: ${err instanceof Error ? err.message : String(err)}`,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
})();
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
sharding: shardingPromise,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Panel from "$lib/components/Panel.svelte";
|
|
3
|
+
import { formatBytes, formatNumber } from "$lib/utils/filters";
|
|
4
|
+
import { formatShardKey } from "$lib/utils/shardKey";
|
|
5
|
+
|
|
6
|
+
const { data } = $props();
|
|
7
|
+
|
|
8
|
+
function pct(value: number, total: number): number {
|
|
9
|
+
if (total <= 0) {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
return Math.round((value / total) * 100);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Deterministic color per shard for the distribution bar.
|
|
16
|
+
const shardColors = [
|
|
17
|
+
"hsl(210, 70%, 55%)",
|
|
18
|
+
"hsl(150, 60%, 45%)",
|
|
19
|
+
"hsl(38, 92%, 50%)",
|
|
20
|
+
"hsl(280, 60%, 58%)",
|
|
21
|
+
"hsl(0, 70%, 58%)",
|
|
22
|
+
"hsl(190, 65%, 48%)",
|
|
23
|
+
"hsl(330, 65%, 58%)",
|
|
24
|
+
"hsl(95, 55%, 45%)",
|
|
25
|
+
];
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
{#await data.sharding}
|
|
29
|
+
<Panel title="Sharding">
|
|
30
|
+
<div class="loading p-4">Loading sharding info...</div>
|
|
31
|
+
</Panel>
|
|
32
|
+
{:then result}
|
|
33
|
+
{#if !result || result.error}
|
|
34
|
+
<Panel title="Sharding">
|
|
35
|
+
<div class="p-4">
|
|
36
|
+
<p class="error">{result?.error ?? "Failed to load sharding info"}</p>
|
|
37
|
+
</div>
|
|
38
|
+
</Panel>
|
|
39
|
+
{:else}
|
|
40
|
+
{@const info = result.data}
|
|
41
|
+
{#if !info}
|
|
42
|
+
<Panel title="Sharding">
|
|
43
|
+
<div class="p-4 text-center" style="color: var(--text-darker);">No data</div>
|
|
44
|
+
</Panel>
|
|
45
|
+
{:else if !info.shardingEnabled}
|
|
46
|
+
<Panel title="Sharding">
|
|
47
|
+
<div class="p-6 text-center">
|
|
48
|
+
<div class="text-3xl mb-2">⛁</div>
|
|
49
|
+
<p style="color: var(--text);">This server is not a sharded cluster.</p>
|
|
50
|
+
<p class="text-sm mt-1" style="color: var(--text-darker);">
|
|
51
|
+
Connect through a <code>mongos</code> router to view shard distribution.
|
|
52
|
+
</p>
|
|
53
|
+
</div>
|
|
54
|
+
</Panel>
|
|
55
|
+
{:else}
|
|
56
|
+
{@const totalChunks = info.totalChunks}
|
|
57
|
+
{@const totalDocs = info.shards.reduce((acc, s) => acc + (s.documents ?? 0), 0)}
|
|
58
|
+
{@const totalSize = info.shards.reduce((acc, s) => acc + (s.size ?? 0), 0)}
|
|
59
|
+
|
|
60
|
+
<!-- Status summary -->
|
|
61
|
+
<Panel title="Sharding status" class="mb-4">
|
|
62
|
+
<div class="p-4 flex flex-wrap gap-4 items-center">
|
|
63
|
+
{#if info.sharded}
|
|
64
|
+
<span class="badge badge-sharded">Sharded</span>
|
|
65
|
+
{:else}
|
|
66
|
+
<span class="badge badge-unsharded">Not sharded</span>
|
|
67
|
+
{/if}
|
|
68
|
+
{#if info.hashed}
|
|
69
|
+
<span class="badge badge-prop">hashed</span>
|
|
70
|
+
{/if}
|
|
71
|
+
{#if info.unique}
|
|
72
|
+
<span class="badge badge-prop">unique key</span>
|
|
73
|
+
{/if}
|
|
74
|
+
{#if info.sharded}
|
|
75
|
+
{#if info.balancerEnabled}
|
|
76
|
+
<span class="badge badge-ok">balancer on</span>
|
|
77
|
+
{:else}
|
|
78
|
+
<span class="badge badge-warn">balancing disabled</span>
|
|
79
|
+
{/if}
|
|
80
|
+
{/if}
|
|
81
|
+
|
|
82
|
+
{#if info.shardKey}
|
|
83
|
+
<div class="key-pill" title="Shard key">
|
|
84
|
+
<span class="key-label">shard key</span>
|
|
85
|
+
<span class="font-mono text-sm">{formatShardKey(info.shardKey)}</span>
|
|
86
|
+
</div>
|
|
87
|
+
{/if}
|
|
88
|
+
|
|
89
|
+
{#if info.sharded}
|
|
90
|
+
<div class="ml-auto text-sm" style="color: var(--text-darker);">
|
|
91
|
+
{formatNumber(totalChunks)} chunk{totalChunks === 1 ? "" : "s"} across {info.shards.length} shard{info
|
|
92
|
+
.shards.length === 1
|
|
93
|
+
? ""
|
|
94
|
+
: "s"}
|
|
95
|
+
</div>
|
|
96
|
+
{/if}
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
{#if info.warning}
|
|
100
|
+
<div class="px-4 pb-3 text-sm" style="color: var(--warning, hsl(38, 92%, 45%));">⚠ {info.warning}</div>
|
|
101
|
+
{/if}
|
|
102
|
+
</Panel>
|
|
103
|
+
|
|
104
|
+
<!-- Distribution bar (chunks) -->
|
|
105
|
+
{#if info.sharded && totalChunks > 0}
|
|
106
|
+
<Panel title="Chunk distribution" class="mb-4">
|
|
107
|
+
<div class="p-4">
|
|
108
|
+
<div class="dist-bar">
|
|
109
|
+
{#each info.shards as shard, i (shard.shardId)}
|
|
110
|
+
{#if shard.chunks > 0}
|
|
111
|
+
<div
|
|
112
|
+
class="dist-seg"
|
|
113
|
+
style="width: {pct(shard.chunks, totalChunks)}%; background: {shardColors[i % shardColors.length]};"
|
|
114
|
+
title="{shard.shardId}: {shard.chunks} chunks ({pct(shard.chunks, totalChunks)}%)"
|
|
115
|
+
>
|
|
116
|
+
{#if pct(shard.chunks, totalChunks) >= 8}
|
|
117
|
+
{pct(shard.chunks, totalChunks)}%
|
|
118
|
+
{/if}
|
|
119
|
+
</div>
|
|
120
|
+
{/if}
|
|
121
|
+
{/each}
|
|
122
|
+
</div>
|
|
123
|
+
<div class="legend">
|
|
124
|
+
{#each info.shards as shard, i (shard.shardId)}
|
|
125
|
+
<div class="legend-item">
|
|
126
|
+
<span class="legend-dot" style="background: {shardColors[i % shardColors.length]};"></span>
|
|
127
|
+
<span class="font-mono text-xs">{shard.shardId}</span>
|
|
128
|
+
</div>
|
|
129
|
+
{/each}
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</Panel>
|
|
133
|
+
{/if}
|
|
134
|
+
|
|
135
|
+
<!-- Per-shard table -->
|
|
136
|
+
<Panel title="Per-shard breakdown">
|
|
137
|
+
<div class="table-wrapper">
|
|
138
|
+
<table class="table">
|
|
139
|
+
<thead>
|
|
140
|
+
<tr>
|
|
141
|
+
<th>Shard</th>
|
|
142
|
+
<th>Host</th>
|
|
143
|
+
{#if info.sharded}
|
|
144
|
+
<th class="shrink-column">Chunks</th>
|
|
145
|
+
{/if}
|
|
146
|
+
<th class="shrink-column">Documents</th>
|
|
147
|
+
<th class="shrink-column">Size</th>
|
|
148
|
+
</tr>
|
|
149
|
+
</thead>
|
|
150
|
+
<tbody>
|
|
151
|
+
{#each info.shards as shard, i (shard.shardId)}
|
|
152
|
+
<tr>
|
|
153
|
+
<td>
|
|
154
|
+
<span
|
|
155
|
+
class="legend-dot inline-block mr-2"
|
|
156
|
+
style="background: {shardColors[i % shardColors.length]};"
|
|
157
|
+
></span>
|
|
158
|
+
<span class="font-mono text-sm">{shard.shardId}</span>
|
|
159
|
+
</td>
|
|
160
|
+
<td>
|
|
161
|
+
<span class="font-mono text-xs" style="color: var(--text-darker);">{shard.host}</span>
|
|
162
|
+
</td>
|
|
163
|
+
{#if info.sharded}
|
|
164
|
+
<td>
|
|
165
|
+
{formatNumber(shard.chunks)}
|
|
166
|
+
<span class="text-xs" style="color: var(--text-darker);">
|
|
167
|
+
({pct(shard.chunks, totalChunks)}%)
|
|
168
|
+
</span>
|
|
169
|
+
</td>
|
|
170
|
+
{/if}
|
|
171
|
+
<td>
|
|
172
|
+
{#if shard.documents != null}
|
|
173
|
+
{formatNumber(shard.documents)}
|
|
174
|
+
{#if totalDocs > 0}
|
|
175
|
+
<span class="text-xs" style="color: var(--text-darker);">
|
|
176
|
+
({pct(shard.documents, totalDocs)}%)
|
|
177
|
+
</span>
|
|
178
|
+
{/if}
|
|
179
|
+
{:else}
|
|
180
|
+
<span style="color: var(--text-darker);">-</span>
|
|
181
|
+
{/if}
|
|
182
|
+
</td>
|
|
183
|
+
<td>
|
|
184
|
+
{#if shard.size != null}
|
|
185
|
+
{formatBytes(shard.size)}
|
|
186
|
+
{#if totalSize > 0}
|
|
187
|
+
<span class="text-xs" style="color: var(--text-darker);">
|
|
188
|
+
({pct(shard.size, totalSize)}%)
|
|
189
|
+
</span>
|
|
190
|
+
{/if}
|
|
191
|
+
{:else}
|
|
192
|
+
<span style="color: var(--text-darker);">-</span>
|
|
193
|
+
{/if}
|
|
194
|
+
</td>
|
|
195
|
+
</tr>
|
|
196
|
+
{/each}
|
|
197
|
+
</tbody>
|
|
198
|
+
</table>
|
|
199
|
+
</div>
|
|
200
|
+
</Panel>
|
|
201
|
+
{/if}
|
|
202
|
+
{/if}
|
|
203
|
+
{:catch err}
|
|
204
|
+
<Panel title="Sharding">
|
|
205
|
+
<div class="p-4">
|
|
206
|
+
<p class="error">Error loading sharding info: {err}</p>
|
|
207
|
+
</div>
|
|
208
|
+
</Panel>
|
|
209
|
+
{/await}
|
|
210
|
+
|
|
211
|
+
<style lang="postcss">
|
|
212
|
+
.table-wrapper {
|
|
213
|
+
overflow-x: auto;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.shrink-column {
|
|
217
|
+
width: 1%;
|
|
218
|
+
white-space: nowrap;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.badge {
|
|
222
|
+
display: inline-flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
border-radius: 6px;
|
|
225
|
+
padding: 4px 10px;
|
|
226
|
+
font-size: 13px;
|
|
227
|
+
font-weight: 600;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.badge-sharded {
|
|
231
|
+
background-color: hsl(150, 60%, 45%);
|
|
232
|
+
color: white;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.badge-unsharded {
|
|
236
|
+
background-color: hsl(0, 0%, 45%);
|
|
237
|
+
color: white;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.badge-prop {
|
|
241
|
+
background-color: hsl(220, 70%, 55%);
|
|
242
|
+
color: white;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.badge-ok {
|
|
246
|
+
background-color: var(--color-3);
|
|
247
|
+
color: var(--text);
|
|
248
|
+
border: 1px solid var(--color-4);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.badge-warn {
|
|
252
|
+
background-color: hsl(38, 92%, 50%);
|
|
253
|
+
color: var(--text-inverse);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.key-pill {
|
|
257
|
+
display: inline-flex;
|
|
258
|
+
align-items: center;
|
|
259
|
+
gap: 8px;
|
|
260
|
+
border-radius: 6px;
|
|
261
|
+
padding: 4px 10px;
|
|
262
|
+
background-color: var(--color-3);
|
|
263
|
+
border: 1px solid var(--color-4);
|
|
264
|
+
color: var(--text);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.key-label {
|
|
268
|
+
font-size: 11px;
|
|
269
|
+
text-transform: uppercase;
|
|
270
|
+
letter-spacing: 0.04em;
|
|
271
|
+
color: var(--text-darker);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.dist-bar {
|
|
275
|
+
display: flex;
|
|
276
|
+
width: 100%;
|
|
277
|
+
height: 28px;
|
|
278
|
+
border-radius: 6px;
|
|
279
|
+
overflow: hidden;
|
|
280
|
+
background-color: var(--color-1);
|
|
281
|
+
border: 1px solid var(--border-color);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.dist-seg {
|
|
285
|
+
display: flex;
|
|
286
|
+
align-items: center;
|
|
287
|
+
justify-content: center;
|
|
288
|
+
font-size: 11px;
|
|
289
|
+
font-weight: 600;
|
|
290
|
+
color: white;
|
|
291
|
+
overflow: hidden;
|
|
292
|
+
white-space: nowrap;
|
|
293
|
+
transition: width 0.2s ease;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.legend {
|
|
297
|
+
display: flex;
|
|
298
|
+
flex-wrap: wrap;
|
|
299
|
+
gap: 12px;
|
|
300
|
+
margin-top: 12px;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.legend-item {
|
|
304
|
+
display: flex;
|
|
305
|
+
align-items: center;
|
|
306
|
+
gap: 6px;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.legend-dot {
|
|
310
|
+
width: 12px;
|
|
311
|
+
height: 12px;
|
|
312
|
+
border-radius: 3px;
|
|
313
|
+
flex-shrink: 0;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.error {
|
|
317
|
+
color: var(--error);
|
|
318
|
+
}
|
|
319
|
+
</style>
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { buildDirectConnectionUri, mongoHostKey, parseMongoUri, sanitizeMongoUri } from "$lib/server/connectionString";
|
|
2
|
+
import { mongoDisplayName } from "$lib/utils/mongoUri";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
|
|
5
|
+
const MULTI_HOST =
|
|
6
|
+
"mongodb://user:pass@mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017/?replicaSet=rs0";
|
|
7
|
+
|
|
8
|
+
describe("connectionString", () => {
|
|
9
|
+
describe("parseMongoUri", () => {
|
|
10
|
+
it("parses a multi-host (mongos) connection string", () => {
|
|
11
|
+
const parsed = parseMongoUri(MULTI_HOST);
|
|
12
|
+
expect(parsed.protocol).toBe("mongodb:");
|
|
13
|
+
expect(parsed.username).toBe("user");
|
|
14
|
+
expect(parsed.password).toBe("pass");
|
|
15
|
+
expect(parsed.hosts).toHaveLength(3);
|
|
16
|
+
expect(parsed.hosts[0]).toBe("mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017");
|
|
17
|
+
expect(parsed.hosts[2]).toBe("mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017");
|
|
18
|
+
expect(parsed.search).toBe("replicaSet=rs0");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("parses a simple single-host uri without credentials", () => {
|
|
22
|
+
const parsed = parseMongoUri("mongodb://localhost:27017");
|
|
23
|
+
expect(parsed.username).toBe("");
|
|
24
|
+
expect(parsed.password).toBe("");
|
|
25
|
+
expect(parsed.hosts).toEqual(["localhost:27017"]);
|
|
26
|
+
expect(parsed.pathname).toBe("");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("parses mongodb+srv uris", () => {
|
|
30
|
+
const parsed = parseMongoUri("mongodb+srv://user:pass@cluster0.example.mongodb.net/db?w=majority");
|
|
31
|
+
expect(parsed.protocol).toBe("mongodb+srv:");
|
|
32
|
+
expect(parsed.hosts).toEqual(["cluster0.example.mongodb.net"]);
|
|
33
|
+
expect(parsed.pathname).toBe("/db");
|
|
34
|
+
expect(parsed.search).toBe("w=majority");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("throws on a non-mongodb scheme", () => {
|
|
38
|
+
expect(() => parseMongoUri("http://example.com")).toThrow();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe("mongoHostKey", () => {
|
|
43
|
+
it("returns the raw comma-joined host list for multi-host", () => {
|
|
44
|
+
expect(mongoHostKey(MULTI_HOST)).toBe(
|
|
45
|
+
"mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017",
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("returns the host for a single-host uri", () => {
|
|
50
|
+
expect(mongoHostKey("mongodb://localhost:27017/db")).toBe("localhost:27017");
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe("sanitizeMongoUri", () => {
|
|
55
|
+
it("masks credentials in a multi-host uri without dropping hosts", () => {
|
|
56
|
+
const out = sanitizeMongoUri(MULTI_HOST);
|
|
57
|
+
expect(out).toContain("***:***@");
|
|
58
|
+
expect(out).not.toContain("user:pass");
|
|
59
|
+
expect(out).toContain("mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017");
|
|
60
|
+
expect(out).toContain("replicaSet=rs0");
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it("leaves credential-less uris untouched", () => {
|
|
64
|
+
expect(sanitizeMongoUri("mongodb://localhost:27017")).toBe("mongodb://localhost:27017");
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
describe("buildDirectConnectionUri", () => {
|
|
69
|
+
it("targets a single node, keeping credentials and adding directConnection", () => {
|
|
70
|
+
const node = "mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017";
|
|
71
|
+
const out = buildDirectConnectionUri(MULTI_HOST, node);
|
|
72
|
+
expect(out).toContain(`@${node}/`);
|
|
73
|
+
expect(out).toContain("directConnection=true");
|
|
74
|
+
expect(out).toContain("user:pass");
|
|
75
|
+
// only the single node, not the comma list
|
|
76
|
+
expect(out).not.toContain("mongos-0");
|
|
77
|
+
expect(out).not.toContain("mongos-2");
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("adds tls=true for srv sources", () => {
|
|
81
|
+
const out = buildDirectConnectionUri(
|
|
82
|
+
"mongodb+srv://u:p@cluster0.example.mongodb.net/db",
|
|
83
|
+
"shard-00-00.example.mongodb.net:27017",
|
|
84
|
+
);
|
|
85
|
+
expect(out).toContain("tls=true");
|
|
86
|
+
expect(out).toContain("directConnection=true");
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
describe("mongoDisplayName", () => {
|
|
91
|
+
it("strips credentials and port for a single host", () => {
|
|
92
|
+
expect(mongoDisplayName("mongodb://user:pass@db.example.com:27017/admin")).toBe("db.example.com");
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("collapses a multi-host list to the shared domain with a count", () => {
|
|
96
|
+
// The failing real-world case: don't render a giant comma-joined name.
|
|
97
|
+
expect(mongoDisplayName(MULTI_HOST)).toBe("moonlanding-bucket-prod.mongodb.internal (3 hosts)");
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("falls back to first host (+n) when hosts share no suffix", () => {
|
|
101
|
+
expect(mongoDisplayName("mongodb://a.foo.com:27017,b.bar.com:27017")).toBe("a.foo.com (+1)");
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("returns the input unchanged for non-mongodb strings", () => {
|
|
105
|
+
expect(mongoDisplayName("not-a-uri")).toBe("not-a-uri");
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.notifications.svelte-2qov3s{position:fixed;top:90px;right:20px;z-index:1001;display:flex;flex-direction:column;gap:12px}.notification.svelte-2qov3s{padding:14px 18px;border-radius:1rem;box-shadow:0 4px 12px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:12px;min-width:320px;max-width:480px;animation:svelte-2qov3s-slideIn .4s cubic-bezier(.16,1,.3,1);border:1px solid rgba(255,255,255,.1);font-size:14px}.notification.svelte-2qov3s button:where(.svelte-2qov3s){background:#fff3;border:none;border-radius:8px;cursor:pointer;opacity:.8;margin-left:auto;padding:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .2s}.notification.svelte-2qov3s button:where(.svelte-2qov3s):hover{opacity:1;background:#ffffff4d}.notification-error.svelte-2qov3s{background-color:#ff453a;color:#fff}.notification-success.svelte-2qov3s{background-color:var(--button-success);color:#fff}.notification-info.svelte-2qov3s{background-color:#0a84ff;color:#fff}@keyframes svelte-2qov3s-slideIn{0%{transform:translate(450px);opacity:0}to{transform:translate(0);opacity:1}}.warning-banner.svelte-1358fs2{background-color:#f59e0b;color:#111827;padding:12px 24px;border-bottom:1px solid #d97706}.warning-content.svelte-1358fs2{display:flex;align-items:center;gap:12px;max-width:1400px;margin:0 auto}.warning-content.svelte-1358fs2 svg:where(.svelte-1358fs2){flex-shrink:0}.warning-content.svelte-1358fs2 span:where(.svelte-1358fs2){flex:1;font-size:14px;line-height:1.5}.warning-content.svelte-1358fs2 code:where(.svelte-1358fs2){background-color:#0000001a;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:13px}.dismiss-button.svelte-1358fs2{background:none;border:none;font-size:24px;cursor:pointer;opacity:.7;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#111827}.dismiss-button.svelte-1358fs2:hover{opacity:1}.theme-content.svelte-u8uo5a{display:none}html[data-theme-mode=light] .theme-light.svelte-u8uo5a,html[data-theme-mode=dark] .theme-dark.svelte-u8uo5a{display:inline-flex;opacity:1}html[data-theme-mode=system][data-theme=light] .theme-system-light.svelte-u8uo5a,html[data-theme-mode=system][data-theme=dark] .theme-system-dark.svelte-u8uo5a{display:inline-flex;opacity:.6}.theme-text-system.svelte-u8uo5a{display:none}html[data-theme-mode=system] .theme-text-system.svelte-u8uo5a{display:inline}html[data-theme-mode=light] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child,html[data-theme-mode=dark] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child{opacity:1}html[data-theme-mode=system] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child{opacity:.6}html[data-theme-mode=system] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child{opacity:1}html[data-theme-mode=light] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child,html[data-theme-mode=dark] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child{opacity:.6}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{height:100%}body{background-color:var(--background-color);color:var(--text);tab-size:2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,system-ui,sans-serif}a:hover{text-decoration:underline}input[type=text],input[type=number],textarea{border-radius:var(--radius-2xl);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));background-color:var(--color-3);color:var(--text);border:1px solid var(--color-4);transition:border-color .2s,background-color .2s}input[type=text]:focus,input[type=number]:focus,textarea:focus{border-color:var(--link);background-color:var(--light-background);outline:none}input::placeholder,textarea::placeholder{color:var(--text-secondary);opacity:1}::selection{color:var(--text);background-color:#007aff33}}@layer components{.btn{cursor:pointer;border-radius:var(--radius-xl);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-width:1px;font-size:14px;transition-duration:.2s}.btn-sm{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.btn-default{background-color:var(--light-background);color:var(--text);border-color:var(--color-4)}.btn-default:hover:not(:disabled){background-color:var(--color-1-5);filter:brightness(.98)}.btn-danger{background-color:var(--button-danger);color:#fff;border-color:#0000}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-success{background-color:var(--button-success);color:#fff;border-color:#0000}.btn-success:hover:not(:disabled){filter:brightness(1.05)}.btn-primary{background-color:var(--link);color:#fff;border-color:#0000}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-outline-danger{color:var(--button-danger);background:0 0;border-color:#ff3b304d}.btn-outline-danger:hover:not(:disabled){background-color:#ff3b301a}.btn-outline-success{color:var(--button-success);background:0 0;border-color:#34c7594d}.btn-outline-success:hover:not(:disabled){background-color:#34c7591a}.btn-outline-light{color:var(--text);border-color:var(--color-4);background:0 0}.btn-outline-light:hover:not(:disabled){background-color:var(--color-3)}.btn-outline-primary{color:var(--link);border-color:var(--link);background:0 0}.btn-outline-primary:hover:not(:disabled){background-color:var(--link);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.table{border-collapse:collapse;width:100%}.table thead tr{background-color:var(--color-3)}.table th,.table td{text-align:left;border-bottom:1px solid var(--border-color);padding:12px}.table tbody tr:last-child td{border-bottom:none}.table th{color:var(--text);font-weight:600}.table tbody tr:hover{background-color:var(--color-1-5)}.badge{border:1px solid var(--color-4);background-color:var(--light-background);border-radius:8px;padding:4px 10px;font-size:12px;display:inline-block}.badge-danger{background-color:var(--button-danger);color:#fff;border-color:#0000}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--light-background);border:1px solid var(--color-4);border-radius:1.25rem;width:90%;max-width:500px;box-shadow:0 10px 40px #00000026}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--color-4);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.loading{text-align:center;color:var(--text-darker);padding:40px}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-14{height:calc(var(--spacing) * 14)}.h-\[18px\]{height:18px}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[400px\]{max-height:400px}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-40{width:calc(var(--spacing) * 40)}.w-\[18px\]{width:18px}.w-full{width:100%}.w-px{width:1px}.max-w-4xl{max-width:var(--container-4xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-\[96rem\]{max-width:96rem}.max-w-\[600px\]{max-width:600px}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-yellow-500\/10>:not(:last-child)){border-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){:where(.divide-yellow-500\/10>:not(:last-child)){border-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-\[var\(--border-color\)\]{border-color:var(--border-color)}.border-\[var\(--color-3\)\]{border-color:var(--color-3)}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/10{border-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.border-red-500\/10{border-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-yellow-500\/20{border-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/20{border-color:color-mix(in oklab,var(--color-yellow-500) 20%,transparent)}}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.border-t-\[var\(--link\)\]{border-top-color:var(--link)}.bg-\[var\(--background-color\)\]\/80{background-color:var(--background-color)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--background-color\)\]\/80{background-color:color-mix(in oklab,var(--background-color) 80%,transparent)}}.bg-\[var\(--border-color\)\]{background-color:var(--border-color)}.bg-\[var\(--color-1\)\]{background-color:var(--color-1)}.bg-\[var\(--color-2\)\]{background-color:var(--color-2)}.bg-\[var\(--color-3\)\],.bg-\[var\(--color-3\)\]\/30{background-color:var(--color-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-3\)\]\/30{background-color:color-mix(in oklab,var(--color-3) 30%,transparent)}}.bg-\[var\(--color-3\)\]\/50{background-color:var(--color-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-3\)\]\/50{background-color:color-mix(in oklab,var(--color-3) 50%,transparent)}}.bg-\[var\(--color-4\)\]{background-color:var(--color-4)}.bg-\[var\(--light-background\)\],.bg-\[var\(--light-background\)\]\/70{background-color:var(--light-background)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--light-background\)\]\/70{background-color:color-mix(in oklab,var(--light-background) 70%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--danger\,\#f44336\)\]{color:var(--danger,#f44336)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-blue-500{color:var(--color-blue-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow-\[inset_0_-1px_0_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:inset 0 -1px 0 var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:inline:is(:where(.group):hover *){display:inline}.hover\:bg-\[rgba\(255\,59\,48\,0\.1\)\]:hover{background-color:#ff3b301a}.hover\:bg-\[var\(--button-success-l\)\]:hover{background-color:var(--button-success-l)}.hover\:bg-\[var\(--color-2\)\]:hover{background-color:var(--color-2)}.hover\:bg-\[var\(--color-3\)\]:hover{background-color:var(--color-3)}.hover\:bg-\[var\(--hover-background\)\]:hover{background-color:var(--hover-background)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-\[14px\]{font-size:14px}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:py-10{padding-block:calc(var(--spacing) * 10)}}@media(min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media(prefers-color-scheme:dark){.dark\:bg-white{background-color:var(--color-white)}.dark\:text-black{color:var(--color-black)}}.dotted{border-bottom:1px dotted var(--text);cursor:help}.error{color:var(--error)}}:root[data-theme=light]{--color-1:#f5f5f7;--color-1-5:#fff;--light-background:#fff;--color-3:#f0f0f2;--color-4:#e5e5e7;--background-color:var(--color-1);--border-color:var(--color-4);--text:#1d1d1f;--text-inverse:#fff;--text-darker:#6e6e73;--text-lighter:#000;--text-secondary:#86868b;--link:#007aff;--error:#ff3b30;--button-danger:#ff3b30;--button-danger-l:#ff6961;--button-success:#059669;--button-light:#1d1d1f;--button-light-hover:#000;--code-namespace:#0070c1;--code-boolean:#007aff;--code-null:#007aff;--code-numbers:#098658;--code-string:#d73a49;--code-links:#0451a5;--code-summary:#22863a;--code-regexp:#d16969;--code-function:#6f42c1;--border:1px solid var(--color-4)}:root[data-theme=dark]{--color-1:#1c1c1e;--color-1-5:#2c2c2e;--light-background:#2c2c2e;--color-3:#3a3a3c;--color-4:#48484a;--background-color:var(--color-1);--border-color:var(--color-3);--text:#f5f5f7;--text-inverse:#1c1c1e;--text-darker:#98989d;--text-lighter:#fff;--text-secondary:#8e8e93;--link:#0a84ff;--error:#ff453a;--button-danger:#ff453a;--button-danger-l:#ff6961;--button-success:#10b981;--button-light:#f5f5f7;--button-light-hover:#fff;--code-namespace:#9cdcfe;--code-boolean:#0a84ff;--code-null:#0a84ff;--code-numbers:#a5d6a7;--code-string:#ff8a65;--code-links:#4fc3f7;--code-summary:#81c784;--code-regexp:#ef9a9a;--code-function:#dcdcaa;--border:1px solid var(--color-3)}:root:not([data-theme]){--color-1:#f5f5f7;--color-1-5:#fff;--light-background:#fff;--color-3:#f0f0f2;--color-4:#e5e5e7;--background-color:var(--color-1);--border-color:var(--color-4);--text:#1d1d1f;--text-inverse:#fff;--text-darker:#6e6e73;--text-lighter:#000;--text-secondary:#86868b;--link:#007aff;--error:#ff3b30;--button-danger:#ff3b30;--button-danger-l:#ff6961;--button-success:#059669;--button-light:#1d1d1f;--button-light-hover:#000;--code-namespace:#0070c1;--code-boolean:#007aff;--code-null:#007aff;--code-numbers:#098658;--code-string:#d73a49;--code-links:#0451a5;--code-summary:#22863a;--code-regexp:#d16969;--code-function:#6f42c1;--border:1px solid var(--color-4)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as O,a as A}from"./DaMh_eeB.js";import{a9 as R,j as C,p as j,b as g,a8 as k,a1 as x,g as t,O as z,d as u,f as G,c as T,r as E,s as I,a as N,t as S}from"./IwGwbOe7.js";import{e as y}from"./BDGd1aqF.js";import{s as B}from"./BUO1EOQu.js";import{p as H,i as Y}from"./CCOVnadf.js";import{a as q,p as D}from"./CKvueigk.js";import{t as F,s as J}from"./DqxUmOYD.js";import{b as M}from"./CkMoyTwc.js";function m(o,e={},n,l){for(var i in n){var s=n[i];e[i]!==s&&(n[i]==null?o.style.removeProperty(i):o.style.setProperty(i,s,l))}}function K(o,e,n,l){var i=o[R];if(C||i!==e){var s=F(e,l);(!C||s!==o.getAttribute("style"))&&(s==null?o.removeAttribute("style"):o.style.cssText=s),o[R]=e}else l&&(Array.isArray(l)?(m(o,n?.[0],l[0]),m(o,n?.[1],l[1],"important")):m(o,n,l));return l}var Q=O('<div role="tooltip"><!></div>'),U=O('<div class="relative inline-block"><!></div><!>',1);function rt(o,e){j(e,!0);let n=H(e,"show",3,!1),l=H(e,"tooltipClass",3,""),i=g(void 0),s=g(void 0),f=g(k({left:"",right:"",top:""}));x(()=>{n()&&t(i)&&t(s)&&z().then(()=>{if(!t(s)||!t(i))return;const r=t(s).getBoundingClientRect(),a=t(i).getBoundingClientRect(),c=window.innerWidth,h=window.innerHeight;u(f,{left:"",right:"",top:""},!0),r.left+a.width>c?t(f).right=`${c-r.right}px`:t(f).left=`${r.left}px`;const w=h-r.bottom,W=r.top,d=5;w>=a.height+d||w>W?t(f).top=`${r.bottom+d}px`:t(f).top=`${r.top-a.height-d}px`})});var b=U(),v=G(b),P=T(v);B(P,()=>e.trigger),E(v),M(v,r=>u(s,r),()=>t(s));var _=I(v);{var L=r=>{var a=Q();let c;var h=T(a);B(h,()=>e.content),E(a),q(a,p=>D?.(p)),M(a,p=>u(i,p),()=>t(i)),S(()=>{J(a,1,`fixed bg-[var(--light-background)] border border-[var(--border-color)] rounded-2xl z-[1000] shadow-xl backdrop-blur-md ${l()??""}`),c=K(a,"color: var(--text);",c,{left:t(f).left,right:t(f).right,top:t(f).top})}),y("mouseenter",a,function(...p){e.onTooltipMouseEnter?.apply(this,p)}),y("mouseleave",a,function(...p){e.onTooltipMouseLeave?.apply(this,p)}),A(r,a)};Y(_,r=>{n()&&r(L)})}A(o,b),N()}export{rt as T,K as s};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as l,T as o,V as u,W as m,X as n,Y as d,l as p,j as _,Z as v,_ as k}from"./IwGwbOe7.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(t,s=!0){this.anchor=t,this.#a=s}#f=t=>{if(this.#t.has(t)){var s=this.#t.get(t),e=this.#s.get(s);if(e)l(e),this.#i.delete(s);else{var a=this.#e.get(s);a&&(this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),e=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===t)break;const r=this.#e.get(f);r&&(o(r.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const r=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();k(f,c),c.append(n()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!e?(this.#i.add(i),u(f,r,!1)):r()}}};#r=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[e,a]of this.#e)s.includes(e)||(o(a.effect),this.#e.delete(e))};ensure(t,s){var e=p,a=m();if(s&&!this.#s.has(t)&&!this.#e.has(t))if(a){var i=document.createDocumentFragment(),f=n();i.append(f),this.#e.set(t,{effect:d(()=>s(f)),fragment:i})}else this.#s.set(t,d(()=>s(this.anchor)));if(this.#t.set(e,t),a){for(const[r,h]of this.#s)r===t?e.unskip_effect(h):e.skip_effect(h);for(const[r,h]of this.#e)r===t?e.unskip_effect(h.effect):e.skip_effect(h.effect);e.oncommit(this.#f),e.ondiscard(this.#r)}else _&&(this.anchor=v),this.#f(e)}}export{w as B};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{aB as ee,g as X,y as z,Q as te,P as re,al as P,w as S,Z as v,j as y,as as E,aC as V,h as se,k as ie,H as ne,aD as W,Y as p,X as J,V as x,l as g,_ as ae,aE as fe,aF as A,aG as D,aH as $,B as he,aI as oe,aJ as Q,$ as U,x as le,T as C,o as O,n as de,q as ce,aK as R,R as ue,aL as _e,aM as pe,aN as ge,F as ve,aO as ye,aP as me,aQ as q,aR as H,aS as be,aT as Z,aU as Ee,aV as Te,aW as L,v as N,aX as we,aY as Se,aZ as Re,a_ as Ne,p as ke,a$ as Ae,b0 as De,a as Oe}from"./IwGwbOe7.js";import{d as Fe}from"./DaMh_eeB.js";function xe(t){let e=0,r=z(0),i;return()=>{ee()&&(X(r),te(()=>(e===0&&(i=re(()=>t(()=>P(r)))),e+=1,()=>{S(()=>{e-=1,e===0&&(i?.(),i=void 0,P(r))})})))}}var Ce=ue|_e;function He(t,e,r,i){new Le(t,e,r,i)}class Le{parent;is_pending=!1;transform_error;#r;#_=y?v:null;#i;#o;#t;#n=null;#e=null;#s=null;#a=null;#l=0;#h=0;#d=!1;#p=new Set;#g=new Set;#f=null;#b=xe(()=>(this.#f=z(this.#l),()=>{this.#f=null}));constructor(e,r,i,n){this.#r=e,this.#i=r,this.#o=s=>{var a=E;a.b=this,a.f|=V,i(s)},this.parent=E.b,this.transform_error=n??this.parent?.transform_error??(s=>s),this.#t=se(()=>{if(y){const s=this.#_;ie();const a=s.data===ne;if(s.data.startsWith(W)){const f=JSON.parse(s.data.slice(W.length));this.#T(f)}else a?this.#w():this.#E()}else this.#v()},Ce),y&&(this.#r=v)}#E(){try{this.#n=p(()=>this.#o(this.#r))}catch(e){this.error(e)}}#T(e){const r=this.#i.failed;r&&(this.#s=p(()=>{r(this.#r,()=>e,()=>()=>{})}))}#w(){const e=this.#i.pending;e&&(this.is_pending=!0,this.#e=p(()=>e(this.#r)),S(()=>{var r=this.#a=document.createDocumentFragment(),i=J();r.append(i),this.#n=this.#u(()=>p(()=>this.#o(i))),this.#h===0&&(this.#r.before(r),this.#a=null,x(this.#e,()=>{this.#e=null}),this.#c(g))}))}#v(){try{if(this.is_pending=this.has_pending_snippet(),this.#h=0,this.#l=0,this.#n=p(()=>{this.#o(this.#r)}),this.#h>0){var e=this.#a=document.createDocumentFragment();ae(this.#n,e);const r=this.#i.pending;this.#e=p(()=>r(this.#r))}else this.#c(g)}catch(r){this.error(r)}}#c(e){this.is_pending=!1,e.transfer_effects(this.#p,this.#g)}defer_effect(e){fe(e,this.#p,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#u(e){var r=E,i=Q,n=U;A(this.#t),D(this.#t),$(this.#t.ctx);try{return he.ensure(),e()}catch(s){return oe(s),null}finally{A(r),D(i),$(n)}}#y(e,r){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(e,r);return}this.#h+=e,this.#h===0&&(this.#c(r),this.#e&&x(this.#e,()=>{this.#e=null}),this.#a&&(this.#r.before(this.#a),this.#a=null))}update_pending_count(e,r){this.#y(e,r),this.#l+=e,!(!this.#f||this.#d)&&(this.#d=!0,S(()=>{this.#d=!1,this.#f&&le(this.#f,this.#l)}))}get_effect_pending(){return this.#b(),X(this.#f)}error(e){if(!this.#i.onerror&&!this.#i.failed)throw e;g?.is_fork?(this.#n&&g.skip_effect(this.#n),this.#e&&g.skip_effect(this.#e),this.#s&&g.skip_effect(this.#s),g.on_fork_commit(()=>{this.#m(e)})):this.#m(e)}#m(e){this.#n&&(C(this.#n),this.#n=null),this.#e&&(C(this.#e),this.#e=null),this.#s&&(C(this.#s),this.#s=null),y&&(O(this.#_),de(),O(ce()));var r=this.#i.onerror;let i=this.#i.failed;var n=!1,s=!1;const a=()=>{if(n){ge();return}n=!0,s&&pe(),this.#s!==null&&x(this.#s,()=>{this.#s=null}),this.#u(()=>{this.#v()})},c=f=>{try{s=!0,r?.(f,a),s=!1}catch(h){R(h,this.#t&&this.#t.parent)}i&&(this.#s=this.#u(()=>{try{return p(()=>{var h=E;h.b=this,h.f|=V,i(this.#r,()=>f,()=>a)})}catch(h){return R(h,this.#t.parent),null}}))};S(()=>{var f;try{f=this.transform_error(e)}catch(h){R(h,this.#t&&this.#t.parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(c,h=>R(h,this.#t&&this.#t.parent)):c(f)})}}const Me=["touchstart","touchmove"];function Ie(t){return Me.includes(t)}const w=Symbol("events"),G=new Set,M=new Set;function Ye(t,e,r,i={}){function n(s){if(i.capture||I.call(e,s),!s.cancelBubble)return ye(()=>r?.call(this,s))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?S(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function We(t,e,r,i,n){var s={capture:i,passive:n},a=Ye(t,e,r,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ve(()=>{e.removeEventListener(t,a,s)})}function $e(t,e,r){(e[w]??={})[t]=r}function qe(t){for(var e=0;e<t.length;e++)G.add(t[e]);for(var r of M)r(t)}let j=null;function I(t){var e=this,r=e.ownerDocument,i=t.type,n=t.composedPath?.()||[],s=n[0]||t.target;j=t;var a=0,c=j===t&&t[w];if(c){var f=n.indexOf(c);if(f!==-1&&(e===document||e===window)){t[w]=e;return}var h=n.indexOf(e);if(h===-1)return;f<=h&&(a=f)}if(s=n[a]||t.target,s!==e){me(t,"currentTarget",{configurable:!0,get(){return s||r}});var m=Q,T=E;D(null),A(null);try{for(var _,l=[];s!==null;){var o=s.assignedSlot||s.parentNode||s.host||null;try{var d=s[w]?.[i];d!=null&&(!s.disabled||t.target===s)&&d.call(s,t)}catch(u){_?l.push(u):_=u}if(t.cancelBubble||o===e||o===null)break;s=o}if(_){for(let u of l)queueMicrotask(()=>{throw u});throw _}}finally{t[w]=e,delete t.currentTarget,D(m),A(T)}}}function je(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t[q]??=t.nodeValue)&&(t[q]=r,t.nodeValue=`${r}`)}function Be(t,e){return K(t,e)}function Xe(t,e){H(),e.intro=e.intro??!1;const r=e.target,i=y,n=v;try{for(var s=be(r);s&&(s.nodeType!==Z||s.data!==Ee);)s=Te(s);if(!s)throw L;N(!0),O(s);const a=K(t,{...e,anchor:s});return N(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
|
|
2
|
-
`).some(c=>c.startsWith("https://svelte.dev/e/")))throw a;return a!==L&&console.warn("Failed to hydrate: ",a),e.recover===!1&&we(),H(),Se(r),N(!1),Be(t,e)}finally{N(i),O(n)}}const k=new Map;function K(t,{target:e,anchor:r,props:i={},events:n,context:s,intro:a=!0,transformError:c}){H();var f=void 0,h=Re(()=>{var m=r??e.appendChild(J());He(m,{pending:()=>{}},l=>{ke({});var o=U;if(s&&(o.c=s),n&&(i.$$events=n),y&&Fe(l,null),f=t(l,i)||{},y&&(E.nodes.end=v,v===null||v.nodeType!==Z||v.data!==Ae))throw De(),L;Oe()},c);var T=new Set,_=l=>{for(var o=0;o<l.length;o++){var d=l[o];if(!T.has(d)){T.add(d);var u=Ie(d);for(const F of[e,document]){var b=k.get(F);b===void 0&&(b=new Map,k.set(F,b));var B=b.get(d);B===void 0?(F.addEventListener(d,I,{passive:u}),b.set(d,1)):b.set(d,B+1)}}}};return _(Ne(G)),M.add(_),()=>{for(var l of T)for(const u of[e,document]){var o=k.get(u),d=o.get(l);--d==0?(u.removeEventListener(l,I),o.delete(l),o.size===0&&k.delete(u)):o.set(l,d)}M.delete(_),m!==r&&m.parentNode?.removeChild(m)}});return Y.set(f,h),f}let Y=new WeakMap;function ze(t,e){const r=Y.get(t);return r?(Y.delete(t),r(e)):Promise.resolve()}export{$e as a,qe as d,We as e,Xe as h,Be as m,je as s,ze as u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(r){return r===0?"0 B":r<1e3?r+" B":r<1e6?(r/1e3).toFixed(2)+" kB":r<1e9?(r/1e6).toFixed(2)+" MB":r<1e12?(r/1e9).toFixed(2)+" GB":(r/1e12).toFixed(2)+" TB"}function n(r){return r.toLocaleString()}function o(r){if(r.startsWith("mongodb://")||r.startsWith("mongodb+srv://"))try{return new URL(r).hostname}catch{return r}return r}export{n as a,e as f,o as s};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as p,R as t}from"./IwGwbOe7.js";import{B as c}from"./951V-MIZ.js";function f(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{f as s};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as m,a as i}from"./DaMh_eeB.js";import{f as n}from"./IwGwbOe7.js";import{s as p}from"./BUO1EOQu.js";function c(a,o){var r=m(),t=n(r);p(t,()=>o.children),i(a,r)}export{c as L};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a1 as o,$ as t,aj as r,P as a}from"./IwGwbOe7.js";function i(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function c(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function s(e){t===null&&c(),r&&t.l!==null?l(t).m.push(e):o(()=>{const n=a(e);if(typeof n=="function")return n})}function l(e){var n=e.l;return n.u??={a:[],b:[],m:[]}}export{i as e,s as o};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as B,j as R,k as L,R as D,am as N,q as x,o as M,v as A,Z as Y,an as q,ao as w,ap as U,g as P,a5 as T,aq as j,a8 as z,d as C,ar as F,as as Z,at as $,au as G,P as H,aj as J,av as K,aw as Q,ax as V,ay as W,az as X}from"./IwGwbOe7.js";import{B as p}from"./951V-MIZ.js";let h=!1;function k(e){var n=h;try{return h=!1,[e(),h]}finally{h=n}}function ra(e,n,f=!1){var t;R&&(t=Y,L());var i=new p(e),u=f?D:0;function v(r,s){if(R){var _=N(t);if(r!==parseInt(_.substring(1))){var l=x();M(l),i.anchor=l,A(!1),i.ensure(r,s),A(!0);return}}i.ensure(r,s)}B(()=>{var r=!1;n((s,_=0)=>{r=!0,v(_,s)}),r||v(-1,null)},u)}function na(e,n,f,t){var i=!J||(f&K)!==0,u=(f&G)!==0,v=(f&V)!==0,r=t,s=!0,_=void 0,l=()=>v&&i?(_??=T(t),P(_)):(s&&(s=!1,r=v?H(t):t),r);let c;if(u){var m=W in e||X in e;c=q(e,n)?.set??(m&&n in e?a=>e[n]=a:void 0)}var o,E=!1;u?[o,E]=k(()=>e[n]):o=e[n],o===void 0&&t!==void 0&&(o=l(),c&&(i&&w(),c(o)));var d;if(i?d=()=>{var a=e[n];return a===void 0?l():(s=!0,a)}:d=()=>{var a=e[n];return a!==void 0&&(r=void 0),a===void 0?r:a},i&&(f&U)===0)return d;if(c){var O=e.$$legacy;return(function(a,S){return arguments.length>0?((!i||!S||O||E)&&c(S?d():a),a):d()})}var b=!1,g=((f&Q)!==0?T:j)(()=>(b=!1,d()));u&&P(g);var y=Z;return(function(a,S){if(arguments.length>0){const I=S?P(g):i&&u?z(a):a;return C(g,I),b=!0,r!==void 0&&(r=I),a}return F&&b||(y.f&$)!==0?g.v:P(g)})}export{ra as i,na as p};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|