mongoku 2.4.4 → 2.4.5
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.CEIWAdGZ.css +1 -0
- package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{CI_ovvBu.js → 3LgOwb59.js} +1 -1
- package/build/client/_app/immutable/chunks/3LgOwb59.js.br +0 -0
- package/build/client/_app/immutable/chunks/3LgOwb59.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{0x2tqDge.js → BNF3TSWe.js} +1 -1
- package/build/client/_app/immutable/chunks/BNF3TSWe.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNF3TSWe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CH4IMlv6.js +4 -0
- package/build/client/_app/immutable/chunks/CH4IMlv6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CH4IMlv6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DqFgKUuF.js → CMu1ND4u.js} +1 -1
- package/build/client/_app/immutable/chunks/CMu1ND4u.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMu1ND4u.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CeBnCdu0.js +1 -0
- package/build/client/_app/immutable/chunks/CeBnCdu0.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeBnCdu0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{m9KJhr2i.js → CrvogBCO.js} +1 -1
- package/build/client/_app/immutable/chunks/CrvogBCO.js.br +0 -0
- package/build/client/_app/immutable/chunks/CrvogBCO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{SENhER8Y.js → DL_7eGCj.js} +6 -6
- package/build/client/_app/immutable/chunks/DL_7eGCj.js.br +0 -0
- package/build/client/_app/immutable/chunks/DL_7eGCj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/YVSmS-BO.js +1 -0
- package/build/client/_app/immutable/chunks/YVSmS-BO.js.br +0 -0
- package/build/client/_app/immutable/chunks/YVSmS-BO.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.6kvAGzFx.js → app.Bn63r6jq.js} +2 -2
- package/build/client/_app/immutable/entry/app.Bn63r6jq.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Bn63r6jq.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.D-zzQzHa.js +1 -0
- package/build/client/_app/immutable/entry/start.D-zzQzHa.js.br +2 -0
- package/build/client/_app/immutable/entry/start.D-zzQzHa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0._Ka7l4G7.js +1 -0
- package/build/client/_app/immutable/nodes/0._Ka7l4G7.js.br +0 -0
- package/build/client/_app/immutable/nodes/0._Ka7l4G7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.C6-lRSct.js → 1.C_RZUfKy.js} +1 -1
- package/build/client/_app/immutable/nodes/1.C_RZUfKy.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C_RZUfKy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.P_2uCVkV.js +3 -0
- package/build/client/_app/immutable/nodes/10.P_2uCVkV.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.P_2uCVkV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.D6PMR4JE.js → 11.B9LD_pR3.js} +1 -1
- package/build/client/_app/immutable/nodes/11.B9LD_pR3.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.B9LD_pR3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{12.BaG9yS23.js → 12.DtrR4t5w.js} +1 -1
- package/build/client/_app/immutable/nodes/12.DtrR4t5w.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DtrR4t5w.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.ClrBypIt.js → 13.BYagUX2D.js} +1 -1
- package/build/client/_app/immutable/nodes/13.BYagUX2D.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BYagUX2D.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.C2cwruWu.js → 7.XwiZ31H4.js} +1 -1
- package/build/client/_app/immutable/nodes/7.XwiZ31H4.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.XwiZ31H4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Cgq8c1Pf.js +1 -0
- package/build/client/_app/immutable/nodes/8.Cgq8c1Pf.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Cgq8c1Pf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.ClN4Gbvd.js +2 -0
- package/build/client/_app/immutable/nodes/9.ClN4Gbvd.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.ClN4Gbvd.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-5-SDX-d2.js → 0-DNH-F5x0.js} +4 -4
- package/build/server/chunks/{0-5-SDX-d2.js.map → 0-DNH-F5x0.js.map} +1 -1
- package/build/server/chunks/{1-Cck2Jrzo.js → 1-1_OQTf0e.js} +2 -2
- package/build/server/chunks/{1-Cck2Jrzo.js.map → 1-1_OQTf0e.js.map} +1 -1
- package/build/server/chunks/{10-BV4HPibI.js → 10-4E_aVzT4.js} +58 -36
- package/build/server/chunks/10-4E_aVzT4.js.map +1 -0
- package/build/server/chunks/{11-iazI-4Kb.js → 11-DTyCG8Xj.js} +3 -3
- package/build/server/chunks/{11-iazI-4Kb.js.map → 11-DTyCG8Xj.js.map} +1 -1
- package/build/server/chunks/{12-B0JxHwKO.js → 12-O3oSmD2o.js} +3 -3
- package/build/server/chunks/{12-B0JxHwKO.js.map → 12-O3oSmD2o.js.map} +1 -1
- package/build/server/chunks/{13-IcujVjLI.js → 13-Drp2sCYG.js} +3 -3
- package/build/server/chunks/{13-IcujVjLI.js.map → 13-Drp2sCYG.js.map} +1 -1
- package/build/server/chunks/{7-uVKBumqv.js → 7-DL7-ZmZ2.js} +3 -3
- package/build/server/chunks/{7-uVKBumqv.js.map → 7-DL7-ZmZ2.js.map} +1 -1
- package/build/server/chunks/{8-eWNgFGi6.js → 8-GUonP2Zy.js} +3 -3
- package/build/server/chunks/{8-eWNgFGi6.js.map → 8-GUonP2Zy.js.map} +1 -1
- package/build/server/chunks/{9-C8GLDx_s.js → 9-DQhrhu5o.js} +3 -3
- package/build/server/chunks/{9-C8GLDx_s.js.map → 9-DQhrhu5o.js.map} +1 -1
- package/build/server/chunks/{JsonValue-DiECF6Zd.js → JsonValue-DoGRvQnG.js} +3 -3
- package/build/server/chunks/{JsonValue-DiECF6Zd.js.map → JsonValue-DoGRvQnG.js.map} +1 -1
- package/build/server/chunks/{Panel-DEP08QXV.js → Panel-BHGtM9Vw.js} +2 -2
- package/build/server/chunks/{Panel-DEP08QXV.js.map → Panel-BHGtM9Vw.js.map} +1 -1
- package/build/server/chunks/{PrettyJson-ElzPxPF4.js → PrettyJson-Bnmo1PGg.js} +5 -5
- package/build/server/chunks/{PrettyJson-ElzPxPF4.js.map → PrettyJson-Bnmo1PGg.js.map} +1 -1
- package/build/server/chunks/{Tooltip-DK6Aok7l.js → Tooltip-DAE2mkm6.js} +2 -2
- package/build/server/chunks/{Tooltip-DK6Aok7l.js.map → Tooltip-DAE2mkm6.js.map} +1 -1
- package/build/server/chunks/TooltipTable-xo_OEG9c.js +64 -0
- package/build/server/chunks/TooltipTable-xo_OEG9c.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CCi6mq1k.js → _layout.svelte-Dji2JJ9X.js} +29 -20
- package/build/server/chunks/_layout.svelte-Dji2JJ9X.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BvjNfjgw.js → _page.svelte-C4rGFSYL.js} +7 -7
- package/build/server/chunks/{_page.svelte-BvjNfjgw.js.map → _page.svelte-C4rGFSYL.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-B4BL5PJR.js → _page.svelte-CJ5HzoD0.js} +4 -4
- package/build/server/chunks/{_page.svelte-B4BL5PJR.js.map → _page.svelte-CJ5HzoD0.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DJFPwyij.js → _page.svelte-ClvvVxpD.js} +101 -35
- package/build/server/chunks/_page.svelte-ClvvVxpD.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DDe4hyAB.js → _page.svelte-D3jyb8d9.js} +6 -6
- package/build/server/chunks/{_page.svelte-DDe4hyAB.js.map → _page.svelte-D3jyb8d9.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BUheieJ5.js → _page.svelte-D9IvgJO5.js} +6 -6
- package/build/server/chunks/{_page.svelte-BUheieJ5.js.map → _page.svelte-D9IvgJO5.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DEe2Kbbw.js → _page.svelte-be8sxgGt.js} +6 -6
- package/build/server/chunks/{_page.svelte-DEe2Kbbw.js.map → _page.svelte-be8sxgGt.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Bj297hp1.js → _page.svelte-x1L5xjgQ.js} +6 -6
- package/build/server/chunks/{_page.svelte-Bj297hp1.js.map → _page.svelte-x1L5xjgQ.js.map} +1 -1
- package/build/server/chunks/{index2-DzKnqQNM.js → index2-eSFyMQpS.js} +2 -2
- package/build/server/chunks/{index2-DzKnqQNM.js.map → index2-eSFyMQpS.js.map} +1 -1
- package/build/server/chunks/{remote-xxtqbu-DBe3CqEJ.js → remote-xxtqbu-ETLGkdRu.js} +2 -2
- package/build/server/chunks/remote-xxtqbu-ETLGkdRu.js.map +1 -0
- package/build/server/chunks/{servers.remote-HDmNH7n4.js → servers.remote-CGies_Na.js} +85 -6
- package/build/server/chunks/servers.remote-CGies_Na.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +11 -11
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/api/servers.remote.ts +91 -2
- package/src/app.css +5 -0
- package/src/lib/actions/clickOutside.ts +24 -0
- package/src/lib/components/Breadcrumbs.svelte +5 -19
- package/src/lib/components/SearchBox.svelte +161 -62
- package/src/lib/components/TooltipTable.svelte +4 -2
- package/src/lib/icons/IconChevronDown.svelte +20 -0
- package/src/lib/icons/IconCopy.svelte +21 -0
- package/src/lib/icons/IconEdit.svelte +21 -0
- package/src/lib/icons/IconPlus.svelte +20 -0
- package/src/lib/icons/IconSortReverse.svelte +23 -0
- package/src/lib/stores/breadcrumbs.svelte.ts +17 -0
- package/src/lib/types.ts +2 -0
- package/src/routes/+layout.svelte +12 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.server.ts +67 -34
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +259 -44
- package/build/client/_app/immutable/assets/0.C-Y-CVnr.css +0 -1
- package/build/client/_app/immutable/assets/0.C-Y-CVnr.css.br +0 -0
- package/build/client/_app/immutable/assets/0.C-Y-CVnr.css.gz +0 -0
- package/build/client/_app/immutable/chunks/0x2tqDge.js.br +0 -0
- package/build/client/_app/immutable/chunks/0x2tqDge.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CI_ovvBu.js.br +0 -0
- package/build/client/_app/immutable/chunks/CI_ovvBu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp0n7wR5.js +0 -4
- package/build/client/_app/immutable/chunks/Cp0n7wR5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp0n7wR5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DqFgKUuF.js.br +0 -0
- package/build/client/_app/immutable/chunks/DqFgKUuF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/MW_nrxc3.js +0 -1
- package/build/client/_app/immutable/chunks/MW_nrxc3.js.br +0 -0
- package/build/client/_app/immutable/chunks/MW_nrxc3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SENhER8Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/SENhER8Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/m9KJhr2i.js.br +0 -0
- package/build/client/_app/immutable/chunks/m9KJhr2i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vsNApJWQ.js +0 -1
- package/build/client/_app/immutable/chunks/vsNApJWQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/vsNApJWQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.6kvAGzFx.js.br +0 -0
- package/build/client/_app/immutable/entry/app.6kvAGzFx.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CNBjelhv.js +0 -1
- package/build/client/_app/immutable/entry/start.CNBjelhv.js.br +0 -2
- package/build/client/_app/immutable/entry/start.CNBjelhv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.ClgWJHZK.js +0 -1
- package/build/client/_app/immutable/nodes/0.ClgWJHZK.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.ClgWJHZK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.C6-lRSct.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C6-lRSct.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DIGWL6eC.js +0 -1
- package/build/client/_app/immutable/nodes/10.DIGWL6eC.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DIGWL6eC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D6PMR4JE.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D6PMR4JE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.BaG9yS23.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.BaG9yS23.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.ClrBypIt.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.ClrBypIt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.C2cwruWu.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.C2cwruWu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CRDgVKjB.js +0 -1
- package/build/client/_app/immutable/nodes/8.CRDgVKjB.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CRDgVKjB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.X5vwJ8aD.js +0 -2
- package/build/client/_app/immutable/nodes/9.X5vwJ8aD.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.X5vwJ8aD.js.gz +0 -0
- package/build/server/chunks/10-BV4HPibI.js.map +0 -1
- package/build/server/chunks/TooltipTable-DUYKVtrh.js +0 -60
- package/build/server/chunks/TooltipTable-DUYKVtrh.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CCi6mq1k.js.map +0 -1
- package/build/server/chunks/_page.svelte-DJFPwyij.js.map +0 -1
- package/build/server/chunks/remote-xxtqbu-DBe3CqEJ.js.map +0 -1
- package/build/server/chunks/servers.remote-HDmNH7n4.js.map +0 -1
package/build/server/manifest.js
CHANGED
|
@@ -10,25 +10,25 @@ return {
|
|
|
10
10
|
assets: new Set(["robots.txt"]),
|
|
11
11
|
mimeTypes: {".txt":"text/plain"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.D-zzQzHa.js",app:"_app/immutable/entry/app.Bn63r6jq.js",imports:["_app/immutable/entry/start.D-zzQzHa.js","_app/immutable/chunks/CH4IMlv6.js","_app/immutable/chunks/ByCRZ7zS.js","_app/immutable/chunks/reNJcONQ.js","_app/immutable/entry/app.Bn63r6jq.js","_app/immutable/chunks/reNJcONQ.js","_app/immutable/chunks/ByCRZ7zS.js","_app/immutable/chunks/BPbCnJEo.js","_app/immutable/chunks/0oUK0vJa.js","_app/immutable/chunks/BGXqurs_.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./chunks/0-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
15
|
+
__memo(() => import('./chunks/0-DNH-F5x0.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-1_OQTf0e.js')),
|
|
17
17
|
__memo(() => import('./chunks/2-BheEgghx.js')),
|
|
18
18
|
__memo(() => import('./chunks/3-BwrTscBH.js')),
|
|
19
19
|
__memo(() => import('./chunks/4-D28kbpdN.js')),
|
|
20
20
|
__memo(() => import('./chunks/5--wY8V1OC.js')),
|
|
21
21
|
__memo(() => import('./chunks/6-ifXBeMPA.js')),
|
|
22
|
-
__memo(() => import('./chunks/7-
|
|
23
|
-
__memo(() => import('./chunks/8-
|
|
24
|
-
__memo(() => import('./chunks/9-
|
|
25
|
-
__memo(() => import('./chunks/10-
|
|
26
|
-
__memo(() => import('./chunks/11-
|
|
27
|
-
__memo(() => import('./chunks/12-
|
|
28
|
-
__memo(() => import('./chunks/13-
|
|
22
|
+
__memo(() => import('./chunks/7-DL7-ZmZ2.js')),
|
|
23
|
+
__memo(() => import('./chunks/8-GUonP2Zy.js')),
|
|
24
|
+
__memo(() => import('./chunks/9-DQhrhu5o.js')),
|
|
25
|
+
__memo(() => import('./chunks/10-4E_aVzT4.js')),
|
|
26
|
+
__memo(() => import('./chunks/11-DTyCG8Xj.js')),
|
|
27
|
+
__memo(() => import('./chunks/12-O3oSmD2o.js')),
|
|
28
|
+
__memo(() => import('./chunks/13-Drp2sCYG.js'))
|
|
29
29
|
],
|
|
30
30
|
remotes: {
|
|
31
|
-
'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-
|
|
31
|
+
'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-ETLGkdRu.js'))
|
|
32
32
|
},
|
|
33
33
|
routes: [
|
|
34
34
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.CNBjelhv.js\",app:\"_app/immutable/entry/app.6kvAGzFx.js\",imports:[\"_app/immutable/entry/start.CNBjelhv.js\",\"_app/immutable/chunks/Cp0n7wR5.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/entry/app.6kvAGzFx.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/BPbCnJEo.js\",\"_app/immutable/chunks/0oUK0vJa.js\",\"_app/immutable/chunks/BGXqurs_.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrhB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,oCAA2B,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,6BAA6B;AACrC,IAAI,OAAO,EAAE,qCAAqC;AAClD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,oDAAoD;AAC5D,IAAI,OAAO,EAAE,4DAA4D;AACzE,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/I,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACxD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,2EAA2E;AACnF,IAAI,OAAO,EAAE,iFAAiF;AAC9F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sFAAsF;AAC9F,IAAI,OAAO,EAAE,2FAA2F;AACxG,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrR,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC/D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,yEAAyE;AACjF,IAAI,OAAO,EAAE,+EAA+E;AAC5F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,0EAA0E;AAClF,IAAI,OAAO,EAAE,gFAAgF;AAC7F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.D-zzQzHa.js\",app:\"_app/immutable/entry/app.Bn63r6jq.js\",imports:[\"_app/immutable/entry/start.D-zzQzHa.js\",\"_app/immutable/chunks/CH4IMlv6.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/entry/app.Bn63r6jq.js\",\"_app/immutable/chunks/reNJcONQ.js\",\"_app/immutable/chunks/ByCRZ7zS.js\",\"_app/immutable/chunks/BPbCnJEo.js\",\"_app/immutable/chunks/0oUK0vJa.js\",\"_app/immutable/chunks/BGXqurs_.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrhB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,oCAA2B,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,6BAA6B;AACrC,IAAI,OAAO,EAAE,qCAAqC;AAClD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,oDAAoD;AAC5D,IAAI,OAAO,EAAE,4DAA4D;AACzE,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/I,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACxD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,2EAA2E;AACnF,IAAI,OAAO,EAAE,iFAAiF;AAC9F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sFAAsF;AAC9F,IAAI,OAAO,EAAE,2FAA2F;AACxG,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrR,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC/D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,yEAAyE;AACjF,IAAI,OAAO,EAAE,+EAA+E;AAC5F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,0EAA0E;AAClF,IAAI,OAAO,EAAE,gFAAgF;AAC7F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
|
package/package.json
CHANGED
|
@@ -207,6 +207,67 @@ export const updateMany = command(
|
|
|
207
207
|
},
|
|
208
208
|
);
|
|
209
209
|
|
|
210
|
+
// Count documents matching a filter
|
|
211
|
+
export const countDocuments = query(
|
|
212
|
+
z.object({
|
|
213
|
+
server: z.string(),
|
|
214
|
+
database: z.string(),
|
|
215
|
+
collection: z.string(),
|
|
216
|
+
filter: z.string(),
|
|
217
|
+
}),
|
|
218
|
+
async ({ server, database, collection, filter }) => {
|
|
219
|
+
const mongo = await getMongo();
|
|
220
|
+
const client = mongo.getClient(server);
|
|
221
|
+
const coll = client.db(database).collection(collection);
|
|
222
|
+
|
|
223
|
+
const filterDoc = JsonEncoder.decode(parseJSON(filter));
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
const count = await coll.countDocuments(filterDoc, {
|
|
227
|
+
maxTimeMS: mongo.getCountTimeout(),
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
return {
|
|
231
|
+
data: count,
|
|
232
|
+
error: null,
|
|
233
|
+
};
|
|
234
|
+
} catch (err) {
|
|
235
|
+
logger.error("Error counting documents:", err);
|
|
236
|
+
return {
|
|
237
|
+
data: 0,
|
|
238
|
+
error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
// Delete multiple documents with a filter query
|
|
245
|
+
export const deleteMany = command(
|
|
246
|
+
z.object({
|
|
247
|
+
server: z.string(),
|
|
248
|
+
database: z.string(),
|
|
249
|
+
collection: z.string(),
|
|
250
|
+
filter: z.string(),
|
|
251
|
+
}),
|
|
252
|
+
async ({ server, database, collection, filter }) => {
|
|
253
|
+
logger.log("deleteMany called with payload:", { server, database, collection, filter });
|
|
254
|
+
checkReadOnly();
|
|
255
|
+
|
|
256
|
+
const mongo = await getMongo();
|
|
257
|
+
const client = mongo.getClient(server);
|
|
258
|
+
const coll = client.db(database).collection(collection);
|
|
259
|
+
|
|
260
|
+
const filterDoc = JsonEncoder.decode(parseJSON(filter));
|
|
261
|
+
|
|
262
|
+
const result = await coll.deleteMany(filterDoc);
|
|
263
|
+
|
|
264
|
+
return {
|
|
265
|
+
ok: true,
|
|
266
|
+
deletedCount: result.deletedCount,
|
|
267
|
+
};
|
|
268
|
+
},
|
|
269
|
+
);
|
|
270
|
+
|
|
210
271
|
// Hide an index
|
|
211
272
|
export const hideIndex = command(
|
|
212
273
|
z.object({
|
|
@@ -412,8 +473,10 @@ export const loadDocuments = query(
|
|
|
412
473
|
project: z.string().default("{}"),
|
|
413
474
|
skip: z.number().int().default(0),
|
|
414
475
|
limit: z.number().int().default(20),
|
|
476
|
+
mode: z.enum(["query", "distinct", "aggregation"]).default("query"),
|
|
477
|
+
field: z.string().optional(),
|
|
415
478
|
}),
|
|
416
|
-
async ({ server, database, collection, query: queryStr, sort, project, skip, limit }) => {
|
|
479
|
+
async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, field }) => {
|
|
417
480
|
// Parse JSON strings - return error if invalid
|
|
418
481
|
let queryDoc: unknown;
|
|
419
482
|
|
|
@@ -442,7 +505,31 @@ export const loadDocuments = query(
|
|
|
442
505
|
const client = mongo.getClient(server);
|
|
443
506
|
const coll = client.db(database).collection(collection);
|
|
444
507
|
|
|
445
|
-
|
|
508
|
+
// Handle distinct mode
|
|
509
|
+
if (mode === "distinct") {
|
|
510
|
+
if (!field) {
|
|
511
|
+
error(400, "Invalid distinct query: field name is required");
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
try {
|
|
515
|
+
const results = await coll.distinct(field, JsonEncoder.decode(queryDoc), {
|
|
516
|
+
maxTimeMS: mongo.getQueryTimeout(),
|
|
517
|
+
});
|
|
518
|
+
|
|
519
|
+
return {
|
|
520
|
+
data: results.map((value) => JsonEncoder.encode({ value })),
|
|
521
|
+
error: null,
|
|
522
|
+
isAggregation: false,
|
|
523
|
+
isDistinct: true,
|
|
524
|
+
};
|
|
525
|
+
} catch (err) {
|
|
526
|
+
logger.error("Error executing distinct:", err);
|
|
527
|
+
error(500, `Failed to execute distinct: ${err instanceof Error ? err.message : String(err)}`);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
// Handle aggregation mode
|
|
532
|
+
if (mode === "aggregation" && Array.isArray(queryDoc)) {
|
|
446
533
|
try {
|
|
447
534
|
validateAggregationPipeline(queryDoc);
|
|
448
535
|
} catch (err) {
|
|
@@ -473,6 +560,7 @@ export const loadDocuments = query(
|
|
|
473
560
|
data: results,
|
|
474
561
|
error: null,
|
|
475
562
|
isAggregation: true,
|
|
563
|
+
isDistinct: false,
|
|
476
564
|
};
|
|
477
565
|
} catch (err) {
|
|
478
566
|
logger.error("Error executing aggregation:", err);
|
|
@@ -495,6 +583,7 @@ export const loadDocuments = query(
|
|
|
495
583
|
data: results,
|
|
496
584
|
error: null,
|
|
497
585
|
isAggregation: false,
|
|
586
|
+
isDistinct: false,
|
|
498
587
|
};
|
|
499
588
|
} catch (err) {
|
|
500
589
|
logger.error("Error fetching query results:", err);
|
package/src/app.css
CHANGED
|
@@ -299,6 +299,11 @@
|
|
|
299
299
|
border-bottom: 1px solid var(--border-color);
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
+
/* So that the bottom of the table doesn't overflow from the bottom of the panel. If too generic, we can move this to the panel component maybe */
|
|
303
|
+
.table tbody tr:last-child td {
|
|
304
|
+
border-bottom: none;
|
|
305
|
+
}
|
|
306
|
+
|
|
302
307
|
.table th {
|
|
303
308
|
font-weight: 600;
|
|
304
309
|
color: var(--text);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action that calls a callback when a click occurs outside the element
|
|
3
|
+
* @param node - The element to watch for outside clicks
|
|
4
|
+
* @param callback - Function to call when clicking outside
|
|
5
|
+
*/
|
|
6
|
+
export function clickOutside(node: HTMLElement, callback: () => void): { destroy: () => void } {
|
|
7
|
+
const handleClick = (event: MouseEvent) => {
|
|
8
|
+
if (node && !node.contains(event.target as Node)) {
|
|
9
|
+
callback();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// Use setTimeout to avoid the same click that triggered the action from immediately firing
|
|
14
|
+
const timeoutId = setTimeout(() => {
|
|
15
|
+
document.addEventListener("click", handleClick, true);
|
|
16
|
+
}, 0);
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
destroy() {
|
|
20
|
+
clearTimeout(timeoutId);
|
|
21
|
+
document.removeEventListener("click", handleClick, true);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -1,26 +1,12 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { resolve } from "$app/paths";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
interface BreadcrumbItem {
|
|
6
|
-
label: string;
|
|
7
|
-
href?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const breadcrumbs = $derived.by(() => {
|
|
11
|
-
const list = (page.data.breadcrumbs ?? []) as Array<{ label: string; path: string }>;
|
|
12
|
-
|
|
13
|
-
return list.reduce<BreadcrumbItem[]>(
|
|
14
|
-
(prev, curr) => [...prev, { label: curr.label, href: `${prev.at(-1)?.href ?? ""}${curr.path}` }],
|
|
15
|
-
[],
|
|
16
|
-
);
|
|
17
|
-
});
|
|
3
|
+
import { breadcrumbs } from "$lib/stores/breadcrumbs.svelte";
|
|
18
4
|
</script>
|
|
19
5
|
|
|
20
|
-
{#if breadcrumbs.length > 0}
|
|
6
|
+
{#if breadcrumbs.items.length > 0}
|
|
21
7
|
<nav aria-label="Breadcrumb" class="hidden md:flex items-center gap-1 text-sm">
|
|
22
|
-
{#each breadcrumbs as crumb, index (index)}
|
|
23
|
-
{#if crumb.href && index < breadcrumbs.length - 1}
|
|
8
|
+
{#each breadcrumbs.items as crumb, index (index)}
|
|
9
|
+
{#if crumb.href && index < breadcrumbs.items.length - 1}
|
|
24
10
|
<!-- eslint-disable @typescript-eslint/no-explicit-any -->
|
|
25
11
|
<a
|
|
26
12
|
href={resolve(crumb.href as any)}
|
|
@@ -34,7 +20,7 @@
|
|
|
34
20
|
{crumb.label}
|
|
35
21
|
</span>
|
|
36
22
|
{/if}
|
|
37
|
-
{#if index < breadcrumbs.length - 1}
|
|
23
|
+
{#if index < breadcrumbs.items.length - 1}
|
|
38
24
|
<span style="color: var(--text-secondary);">/</span>
|
|
39
25
|
{/if}
|
|
40
26
|
{/each}
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
import { goto } from "$app/navigation";
|
|
3
3
|
import { resolve } from "$app/paths";
|
|
4
4
|
import { page } from "$app/state";
|
|
5
|
+
import { clickOutside } from "$lib/actions/clickOutside";
|
|
5
6
|
import { jsonTextarea } from "$lib/actions/jsonTextarea";
|
|
7
|
+
import { portal } from "$lib/actions/portal";
|
|
8
|
+
import IconChevronDown from "$lib/icons/IconChevronDown.svelte";
|
|
9
|
+
import IconEdit from "$lib/icons/IconEdit.svelte";
|
|
6
10
|
import type { SearchParams } from "$lib/types";
|
|
11
|
+
import { tick } from "svelte";
|
|
7
12
|
|
|
8
13
|
interface Props {
|
|
9
14
|
params: SearchParams;
|
|
@@ -22,12 +27,28 @@
|
|
|
22
27
|
|
|
23
28
|
let queryInput = $state<HTMLInputElement | HTMLTextAreaElement | undefined>(undefined);
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
let
|
|
30
|
+
let showModeDropdown = $state(false);
|
|
31
|
+
let modeButtonElement = $state<HTMLButtonElement>();
|
|
32
|
+
let dropdownPosition = $state({ left: "0px", top: "0px", minWidth: "140px" });
|
|
27
33
|
|
|
28
|
-
//
|
|
34
|
+
// Calculate dropdown position when shown
|
|
29
35
|
$effect(() => {
|
|
30
|
-
if (
|
|
36
|
+
if (showModeDropdown && modeButtonElement) {
|
|
37
|
+
tick().then(() => {
|
|
38
|
+
if (!modeButtonElement) return;
|
|
39
|
+
const rect = modeButtonElement.getBoundingClientRect();
|
|
40
|
+
dropdownPosition = {
|
|
41
|
+
left: `${rect.left}px`,
|
|
42
|
+
top: `${rect.bottom + 5}px`,
|
|
43
|
+
minWidth: `${rect.width}px`,
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// Disable edit mode when switching to aggregation or distinct mode
|
|
50
|
+
$effect(() => {
|
|
51
|
+
if ((params.mode === "aggregation" || params.mode === "distinct") && editMode) {
|
|
31
52
|
editMode = false;
|
|
32
53
|
}
|
|
33
54
|
});
|
|
@@ -42,7 +63,9 @@
|
|
|
42
63
|
async function submit(event: SubmitEvent) {
|
|
43
64
|
event.preventDefault();
|
|
44
65
|
counter++;
|
|
66
|
+
|
|
45
67
|
const formData = new FormData(form);
|
|
68
|
+
|
|
46
69
|
await goto(
|
|
47
70
|
resolve(
|
|
48
71
|
(page.url.pathname +
|
|
@@ -58,6 +81,27 @@
|
|
|
58
81
|
);
|
|
59
82
|
}
|
|
60
83
|
|
|
84
|
+
function selectMode(newMode: "query" | "distinct" | "aggregation") {
|
|
85
|
+
params.mode = newMode;
|
|
86
|
+
showModeDropdown = false;
|
|
87
|
+
|
|
88
|
+
// Initialize appropriate default values
|
|
89
|
+
if (newMode === "aggregation" && !params.query?.trimStart().startsWith("[")) {
|
|
90
|
+
params.query = "[]";
|
|
91
|
+
} else if (newMode === "query" && params.query?.trimStart().startsWith("[")) {
|
|
92
|
+
params.query = "{}";
|
|
93
|
+
} else if (newMode === "distinct") {
|
|
94
|
+
// When switching to distinct mode, reset field and use current query as filter
|
|
95
|
+
params.field = undefined;
|
|
96
|
+
if (!params.query || params.query.trim() === "") {
|
|
97
|
+
params.query = "{}";
|
|
98
|
+
} else if (params.query.trim() !== "{}") {
|
|
99
|
+
// If there's a non-empty filter, show the optional fields
|
|
100
|
+
showOptionalFields = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
61
105
|
let form = $state<HTMLFormElement | undefined>(undefined);
|
|
62
106
|
</script>
|
|
63
107
|
|
|
@@ -68,13 +112,19 @@
|
|
|
68
112
|
<div
|
|
69
113
|
class="flex-1 flex items-stretch rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"
|
|
70
114
|
>
|
|
71
|
-
|
|
72
|
-
|
|
115
|
+
<!-- Mode selector dropdown -->
|
|
116
|
+
<button
|
|
117
|
+
type="button"
|
|
118
|
+
bind:this={modeButtonElement}
|
|
119
|
+
class="h-full px-3 flex items-center gap-1 text-[13px] border-r border-[var(--border-color)] hover:bg-[var(--color-3)] transition cursor-pointer"
|
|
73
120
|
style="color: var(--text-secondary);"
|
|
121
|
+
onclick={() => (showModeDropdown = !showModeDropdown)}
|
|
74
122
|
>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
123
|
+
<span class="capitalize">{params.mode}</span>
|
|
124
|
+
<IconChevronDown class="w-3 h-3" />
|
|
125
|
+
</button>
|
|
126
|
+
|
|
127
|
+
{#if params.mode === "aggregation"}
|
|
78
128
|
<textarea
|
|
79
129
|
bind:this={queryInput}
|
|
80
130
|
bind:value={params.query}
|
|
@@ -85,6 +135,15 @@
|
|
|
85
135
|
class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y"
|
|
86
136
|
style="color: var(--text);"
|
|
87
137
|
></textarea>
|
|
138
|
+
{:else if params.mode === "distinct"}
|
|
139
|
+
<input
|
|
140
|
+
type="text"
|
|
141
|
+
bind:value={params.field}
|
|
142
|
+
name="field"
|
|
143
|
+
placeholder="field name"
|
|
144
|
+
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
145
|
+
style="color: var(--text);"
|
|
146
|
+
/>
|
|
88
147
|
{:else}
|
|
89
148
|
<input
|
|
90
149
|
type="text"
|
|
@@ -98,6 +157,7 @@
|
|
|
98
157
|
{/if}
|
|
99
158
|
</div>
|
|
100
159
|
|
|
160
|
+
<input type="hidden" value={params.mode} name="mode" />
|
|
101
161
|
<input type="hidden" value={counter} name="v" />
|
|
102
162
|
|
|
103
163
|
<div class="flex items-center gap-2">
|
|
@@ -117,26 +177,13 @@
|
|
|
117
177
|
type="button"
|
|
118
178
|
class="h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer"
|
|
119
179
|
style="color: var(--text);"
|
|
120
|
-
title={
|
|
121
|
-
disabled={
|
|
180
|
+
title={params.mode !== "query" ? "Update not available in this mode" : "Update multiple documents"}
|
|
181
|
+
disabled={params.mode !== "query"}
|
|
122
182
|
onclick={() => {
|
|
123
183
|
editMode = !editMode;
|
|
124
184
|
}}
|
|
125
185
|
>
|
|
126
|
-
<
|
|
127
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
128
|
-
width="16"
|
|
129
|
-
height="16"
|
|
130
|
-
viewBox="0 0 24 24"
|
|
131
|
-
fill="none"
|
|
132
|
-
stroke="currentColor"
|
|
133
|
-
stroke-width="2"
|
|
134
|
-
stroke-linecap="round"
|
|
135
|
-
stroke-linejoin="round"
|
|
136
|
-
>
|
|
137
|
-
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"></path>
|
|
138
|
-
<path d="m15 5 4 4"></path>
|
|
139
|
-
</svg>
|
|
186
|
+
<IconEdit class="w-4 h-4" />
|
|
140
187
|
</button>
|
|
141
188
|
{/if}
|
|
142
189
|
<button
|
|
@@ -151,41 +198,63 @@
|
|
|
151
198
|
<!-- Optional fields -->
|
|
152
199
|
{#if showOptionalFields}
|
|
153
200
|
<div class="grid gap-2 sm:grid-cols-2">
|
|
154
|
-
|
|
155
|
-
|
|
201
|
+
{#if params.mode === "distinct"}
|
|
202
|
+
<!-- Distinct Filter -->
|
|
156
203
|
<div
|
|
157
|
-
class="
|
|
158
|
-
style="color: var(--text-secondary);"
|
|
204
|
+
class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50 sm:col-span-2"
|
|
159
205
|
>
|
|
160
|
-
|
|
206
|
+
<div
|
|
207
|
+
class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]"
|
|
208
|
+
style="color: var(--text-secondary);"
|
|
209
|
+
>
|
|
210
|
+
Filter (optional)
|
|
211
|
+
</div>
|
|
212
|
+
<input
|
|
213
|
+
type="text"
|
|
214
|
+
bind:value={params.query}
|
|
215
|
+
name="query"
|
|
216
|
+
placeholder={"{}"}
|
|
217
|
+
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
218
|
+
style="color: var(--text);"
|
|
219
|
+
/>
|
|
220
|
+
</div>
|
|
221
|
+
{:else}
|
|
222
|
+
<!-- Sort -->
|
|
223
|
+
<div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50">
|
|
224
|
+
<div
|
|
225
|
+
class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]"
|
|
226
|
+
style="color: var(--text-secondary);"
|
|
227
|
+
>
|
|
228
|
+
Sort
|
|
229
|
+
</div>
|
|
230
|
+
<input
|
|
231
|
+
type="text"
|
|
232
|
+
bind:value={params.sort}
|
|
233
|
+
name="sort"
|
|
234
|
+
placeholder={"{}"}
|
|
235
|
+
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
236
|
+
style="color: var(--text);"
|
|
237
|
+
/>
|
|
161
238
|
</div>
|
|
162
|
-
<input
|
|
163
|
-
type="text"
|
|
164
|
-
bind:value={params.sort}
|
|
165
|
-
name="sort"
|
|
166
|
-
placeholder={"{}"}
|
|
167
|
-
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
168
|
-
style="color: var(--text);"
|
|
169
|
-
/>
|
|
170
|
-
</div>
|
|
171
239
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
240
|
+
<!-- Project -->
|
|
241
|
+
<div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50">
|
|
242
|
+
<div
|
|
243
|
+
class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]"
|
|
244
|
+
style="color: var(--text-secondary);"
|
|
245
|
+
>
|
|
246
|
+
Project
|
|
247
|
+
</div>
|
|
248
|
+
<input
|
|
249
|
+
type="text"
|
|
250
|
+
bind:value={params.project}
|
|
251
|
+
name="project"
|
|
252
|
+
placeholder={"{}"}
|
|
253
|
+
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
254
|
+
style="color: var(--text);"
|
|
255
|
+
/>
|
|
179
256
|
</div>
|
|
180
|
-
|
|
181
|
-
type="text"
|
|
182
|
-
bind:value={params.project}
|
|
183
|
-
name="project"
|
|
184
|
-
placeholder={"{}"}
|
|
185
|
-
class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
|
|
186
|
-
style="color: var(--text);"
|
|
187
|
-
/>
|
|
188
|
-
</div>
|
|
257
|
+
{/if}
|
|
189
258
|
|
|
190
259
|
<!-- Skip -->
|
|
191
260
|
<div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50">
|
|
@@ -226,16 +295,46 @@
|
|
|
226
295
|
{/if}
|
|
227
296
|
|
|
228
297
|
<!-- Help text -->
|
|
229
|
-
{#if !showOptionalFields && !isAggregation && params.query === "{}"}
|
|
230
|
-
<div class="text-xs" style="color: var(--text-secondary);">
|
|
231
|
-
Tip: Use <code class="px-1.5 py-0.5 rounded bg-[var(--color-3)] border border-[var(--border-color)] font-mono"
|
|
232
|
-
>[{"{...}"}]</code
|
|
233
|
-
> to switch to aggregation mode
|
|
234
|
-
</div>
|
|
235
|
-
{/if}
|
|
236
298
|
</form>
|
|
237
299
|
</div>
|
|
238
300
|
|
|
301
|
+
<!-- Mode dropdown (rendered via portal to avoid overflow issues) -->
|
|
302
|
+
{#if showModeDropdown}
|
|
303
|
+
<div
|
|
304
|
+
use:portal
|
|
305
|
+
use:clickOutside={() => (showModeDropdown = false)}
|
|
306
|
+
class="fixed z-[1000] rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] shadow-lg overflow-hidden"
|
|
307
|
+
style:left={dropdownPosition.left}
|
|
308
|
+
style:top={dropdownPosition.top}
|
|
309
|
+
style:min-width={dropdownPosition.minWidth}
|
|
310
|
+
>
|
|
311
|
+
<button
|
|
312
|
+
type="button"
|
|
313
|
+
class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer"
|
|
314
|
+
style="color: var(--text);"
|
|
315
|
+
onclick={() => selectMode("query")}
|
|
316
|
+
>
|
|
317
|
+
Query
|
|
318
|
+
</button>
|
|
319
|
+
<button
|
|
320
|
+
type="button"
|
|
321
|
+
class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer"
|
|
322
|
+
style="color: var(--text);"
|
|
323
|
+
onclick={() => selectMode("distinct")}
|
|
324
|
+
>
|
|
325
|
+
Distinct
|
|
326
|
+
</button>
|
|
327
|
+
<button
|
|
328
|
+
type="button"
|
|
329
|
+
class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer"
|
|
330
|
+
style="color: var(--text);"
|
|
331
|
+
onclick={() => selectMode("aggregation")}
|
|
332
|
+
>
|
|
333
|
+
Aggregation
|
|
334
|
+
</button>
|
|
335
|
+
</div>
|
|
336
|
+
{/if}
|
|
337
|
+
|
|
239
338
|
<style lang="postcss">
|
|
240
339
|
input[type="text"],
|
|
241
340
|
input[type="number"],
|
|
@@ -60,11 +60,13 @@
|
|
|
60
60
|
</thead>
|
|
61
61
|
{/if}
|
|
62
62
|
<tbody>
|
|
63
|
-
{#each rows as row,
|
|
63
|
+
{#each rows as row, rowIndex (rowIndex)}
|
|
64
64
|
<tr>
|
|
65
65
|
{#each columns as column, index (index)}
|
|
66
66
|
<td
|
|
67
|
-
class="px-2 py-1
|
|
67
|
+
class="px-2 py-1"
|
|
68
|
+
class:border-b={rowIndex < rows.length - 1}
|
|
69
|
+
class:border-[var(--color-3)]={rowIndex < rows.length - 1}
|
|
68
70
|
class:text-left={column.align === "left" || !column.align}
|
|
69
71
|
class:text-right={column.align === "right"}
|
|
70
72
|
class:text-center={column.align === "center"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
class?: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
let { class: className = "w-4 h-4" }: Props = $props();
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<svg
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
fill="none"
|
|
13
|
+
stroke="currentColor"
|
|
14
|
+
stroke-width="2"
|
|
15
|
+
stroke-linecap="round"
|
|
16
|
+
stroke-linejoin="round"
|
|
17
|
+
class={className}
|
|
18
|
+
>
|
|
19
|
+
<path d="m6 9 6 6 6-6" />
|
|
20
|
+
</svg>
|