mongoku 2.0.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/README.md +18 -4
  2. package/build/client/_app/immutable/assets/0.egX7ddQL.css +1 -0
  3. package/build/client/_app/immutable/assets/0.egX7ddQL.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.egX7ddQL.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/10.59aTjJn9.css +1 -0
  6. package/build/client/_app/immutable/assets/10.59aTjJn9.css.br +0 -0
  7. package/build/client/_app/immutable/assets/10.59aTjJn9.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/11.CEtFGlZU.css +1 -0
  9. package/build/client/_app/immutable/assets/11.CEtFGlZU.css.br +1 -0
  10. package/build/client/_app/immutable/assets/11.CEtFGlZU.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/12.BdCOhvz0.css +1 -0
  12. package/build/client/_app/immutable/assets/12.BdCOhvz0.css.br +0 -0
  13. package/build/client/_app/immutable/assets/12.BdCOhvz0.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css +1 -0
  15. package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css.br +0 -0
  16. package/build/client/_app/immutable/assets/JsonValue.BEbzuWqZ.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css +1 -0
  18. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.br +0 -0
  19. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.gz +0 -0
  20. package/build/client/_app/immutable/assets/Panel.B3aWupye.css +1 -0
  21. package/build/client/_app/immutable/assets/Panel.B3aWupye.css.br +0 -0
  22. package/build/client/_app/immutable/assets/Panel.B3aWupye.css.gz +0 -0
  23. package/build/client/_app/immutable/chunks/3iRu_dUj.js +2 -0
  24. package/build/client/_app/immutable/chunks/3iRu_dUj.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/3iRu_dUj.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{ChWB6xnu.js → 4l_AWZos.js} +1 -1
  27. package/build/client/_app/immutable/chunks/4l_AWZos.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/4l_AWZos.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/5nAxkTTP.js +1 -0
  30. package/build/client/_app/immutable/chunks/5nAxkTTP.js.br +5 -0
  31. package/build/client/_app/immutable/chunks/5nAxkTTP.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BBg-V8FE.js +1 -0
  33. package/build/client/_app/immutable/chunks/BBg-V8FE.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/BBg-V8FE.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BE8UzJuY.js +1 -0
  36. package/build/client/_app/immutable/chunks/BE8UzJuY.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BE8UzJuY.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BUNgwIS0.js +1 -0
  39. package/build/client/_app/immutable/chunks/BUNgwIS0.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BUNgwIS0.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BjzB4NFq.js +1 -0
  42. package/build/client/_app/immutable/chunks/BjzB4NFq.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BjzB4NFq.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BtCOrwSt.js +1 -0
  45. package/build/client/_app/immutable/chunks/BtCOrwSt.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/BtCOrwSt.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/BvKY81hz.js +1 -0
  48. package/build/client/_app/immutable/chunks/BvKY81hz.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BvKY81hz.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/{DQkpHJGc.js → C0PCwpqt.js} +1 -1
  51. package/build/client/_app/immutable/chunks/C0PCwpqt.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/C0PCwpqt.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/C82Rp5eQ.js +1 -0
  54. package/build/client/_app/immutable/chunks/C82Rp5eQ.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/C82Rp5eQ.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/CEvYYWlm.js +2 -0
  57. package/build/client/_app/immutable/chunks/CEvYYWlm.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/CEvYYWlm.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/CT5SFbzp.js +1 -0
  60. package/build/client/_app/immutable/chunks/CT5SFbzp.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/CT5SFbzp.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/CcyPStn-.js +1 -0
  63. package/build/client/_app/immutable/chunks/CcyPStn-.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/CcyPStn-.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/Cx2cA4gg.js +1 -0
  66. package/build/client/_app/immutable/chunks/Cx2cA4gg.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/Cx2cA4gg.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/D5ccpaXt.js +1 -0
  69. package/build/client/_app/immutable/chunks/D5ccpaXt.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/D5ccpaXt.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/D64wQeYi.js +1 -0
  72. package/build/client/_app/immutable/chunks/D64wQeYi.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/D64wQeYi.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/D7E46CWw.js +1 -0
  75. package/build/client/_app/immutable/chunks/D7E46CWw.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/D7E46CWw.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/DR9xdhsg.js +1 -0
  78. package/build/client/_app/immutable/chunks/DR9xdhsg.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/DR9xdhsg.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/DVJuGan7.js +1 -0
  81. package/build/client/_app/immutable/chunks/DVJuGan7.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/DVJuGan7.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/Dx86XS0G.js +1 -0
  84. package/build/client/_app/immutable/chunks/Dx86XS0G.js.br +4 -0
  85. package/build/client/_app/immutable/chunks/Dx86XS0G.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/lkkUcQuO.js +29 -0
  87. package/build/client/_app/immutable/chunks/lkkUcQuO.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/lkkUcQuO.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/nVJvgG3c.js +4 -0
  90. package/build/client/_app/immutable/chunks/nVJvgG3c.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/nVJvgG3c.js.gz +0 -0
  92. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js +2 -0
  93. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.br +0 -0
  94. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.gz +0 -0
  95. package/build/client/_app/immutable/entry/start.C1uqw3sp.js +1 -0
  96. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.br +2 -0
  97. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/0.CD9yR-49.js +5 -0
  99. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/1.DztuiMqq.js +1 -0
  102. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js +2 -0
  105. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js +1 -0
  108. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/12.wxif1TtN.js +1 -0
  111. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js +66 -0
  114. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/2.DwwrLLW4.js +1 -0
  117. package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.br +1 -0
  118. package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/3.t20GootO.js +1 -0
  120. package/build/client/_app/immutable/nodes/3.t20GootO.js.br +0 -0
  121. package/build/client/_app/immutable/nodes/3.t20GootO.js.gz +0 -0
  122. package/build/client/_app/immutable/nodes/4.CXHjkPtf.js +1 -0
  123. package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.gz +0 -0
  125. package/build/client/_app/immutable/nodes/5.C9tcr5B0.js +1 -0
  126. package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.br +0 -0
  127. package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.gz +0 -0
  128. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js +1 -0
  129. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.br +0 -0
  130. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.gz +0 -0
  131. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js +1 -0
  132. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.br +0 -0
  133. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.gz +0 -0
  134. package/build/client/_app/immutable/nodes/9.Bk397TaK.js +2 -0
  135. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.br +0 -0
  136. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.gz +0 -0
  137. package/build/client/_app/version.json +1 -1
  138. package/build/client/_app/version.json.br +0 -0
  139. package/build/client/_app/version.json.gz +0 -0
  140. package/build/handler.js +14 -0
  141. package/build/server/chunks/{0-Cb5ytlMI.js → 0-hDOo8HzQ.js} +7 -6
  142. package/build/server/chunks/0-hDOo8HzQ.js.map +1 -0
  143. package/build/server/chunks/1-Dsw_dVjH.js +9 -0
  144. package/build/server/chunks/1-Dsw_dVjH.js.map +1 -0
  145. package/build/server/chunks/10-Xy0rxLNm.js +213 -0
  146. package/build/server/chunks/10-Xy0rxLNm.js.map +1 -0
  147. package/build/server/chunks/11-DBYsQ3ww.js +42 -0
  148. package/build/server/chunks/11-DBYsQ3ww.js.map +1 -0
  149. package/build/server/chunks/12-D4aSEhYN.js +102 -0
  150. package/build/server/chunks/12-D4aSEhYN.js.map +1 -0
  151. package/build/server/chunks/13-CNu_Hz8r.js +52 -0
  152. package/build/server/chunks/13-CNu_Hz8r.js.map +1 -0
  153. package/build/server/chunks/2-ClkERMhY.js +24 -0
  154. package/build/server/chunks/2-ClkERMhY.js.map +1 -0
  155. package/build/server/chunks/3-CTpqmxdo.js +25 -0
  156. package/build/server/chunks/3-CTpqmxdo.js.map +1 -0
  157. package/build/server/chunks/4-CUH4fZn8.js +25 -0
  158. package/build/server/chunks/4-CUH4fZn8.js.map +1 -0
  159. package/build/server/chunks/5-BSEdxfut.js +25 -0
  160. package/build/server/chunks/5-BSEdxfut.js.map +1 -0
  161. package/build/server/chunks/{2-B39zPvzn.js → 6-ifXBeMPA.js} +2 -2
  162. package/build/server/chunks/{2-B39zPvzn.js.map → 6-ifXBeMPA.js.map} +1 -1
  163. package/build/server/chunks/7-CJJMTAtJ.js +82 -0
  164. package/build/server/chunks/7-CJJMTAtJ.js.map +1 -0
  165. package/build/server/chunks/{4-DzHoLo__.js → 8-jBgxYwFg.js} +19 -10
  166. package/build/server/chunks/8-jBgxYwFg.js.map +1 -0
  167. package/build/server/chunks/{5-CCWbCDpk.js → 9-U8SAVx43.js} +7 -8
  168. package/build/server/chunks/9-U8SAVx43.js.map +1 -0
  169. package/build/server/chunks/JsonValue-B5gcBFcA.js +290 -0
  170. package/build/server/chunks/JsonValue-B5gcBFcA.js.map +1 -0
  171. package/build/server/chunks/Modal-zVnoAfFx.js +36 -0
  172. package/build/server/chunks/Modal-zVnoAfFx.js.map +1 -0
  173. package/build/server/chunks/{Panel-Bz0b85EW.js → Panel-yg5YKL4d.js} +4 -3
  174. package/build/server/chunks/Panel-yg5YKL4d.js.map +1 -0
  175. package/build/server/chunks/PrettyJson-mXYQacEL.js +137 -0
  176. package/build/server/chunks/PrettyJson-mXYQacEL.js.map +1 -0
  177. package/build/server/chunks/Tooltip-DflJLumT.js +38 -0
  178. package/build/server/chunks/Tooltip-DflJLumT.js.map +1 -0
  179. package/build/server/chunks/TooltipTable-BPMzcmqQ.js +60 -0
  180. package/build/server/chunks/TooltipTable-BPMzcmqQ.js.map +1 -0
  181. package/build/server/chunks/_layout.svelte-DMm1Ill8.js +168 -0
  182. package/build/server/chunks/_layout.svelte-DMm1Ill8.js.map +1 -0
  183. package/build/server/chunks/_page.svelte-B-dLNs2Q.js +199 -0
  184. package/build/server/chunks/_page.svelte-B-dLNs2Q.js.map +1 -0
  185. package/build/server/chunks/{_page.svelte-FLzHOuyK.js → _page.svelte-BBpDrOEz.js} +40 -22
  186. package/build/server/chunks/_page.svelte-BBpDrOEz.js.map +1 -0
  187. package/build/server/chunks/_page.svelte-C9OCv4Hv.js +204 -0
  188. package/build/server/chunks/_page.svelte-C9OCv4Hv.js.map +1 -0
  189. package/build/server/chunks/{_page.svelte-w9cxGvUf.js → _page.svelte-CvWJ35oO.js} +33 -13
  190. package/build/server/chunks/_page.svelte-CvWJ35oO.js.map +1 -0
  191. package/build/server/chunks/_page.svelte-DYHUokXG.js +297 -0
  192. package/build/server/chunks/_page.svelte-DYHUokXG.js.map +1 -0
  193. package/build/server/chunks/{_page.svelte-FIp-IsOo.js → _page.svelte-Ds1-yUh2.js} +64 -13
  194. package/build/server/chunks/_page.svelte-Ds1-yUh2.js.map +1 -0
  195. package/build/server/chunks/{_page.svelte-jxFKbZdN.js → _page.svelte-DzPMpozq.js} +9 -6
  196. package/build/server/chunks/_page.svelte-DzPMpozq.js.map +1 -0
  197. package/build/server/chunks/_server.ts-06lGoPp8.js +8 -0
  198. package/build/server/chunks/_server.ts-06lGoPp8.js.map +1 -0
  199. package/build/server/chunks/async-lVJA8xJZ.js +9 -0
  200. package/build/server/chunks/async-lVJA8xJZ.js.map +1 -0
  201. package/build/server/chunks/client-BFlyU7ZU.js +7 -0
  202. package/build/server/chunks/{client-bj7sePQc.js.map → client-BFlyU7ZU.js.map} +1 -1
  203. package/build/server/chunks/{client2-BX4-xbM4.js → client2-DYaMKWrc.js} +4 -4
  204. package/build/server/chunks/{client2-BX4-xbM4.js.map → client2-DYaMKWrc.js.map} +1 -1
  205. package/build/server/chunks/{async-BfR0vYHo.js → context-C22hLSHK.js} +2 -8
  206. package/build/server/chunks/context-C22hLSHK.js.map +1 -0
  207. package/build/server/chunks/error.svelte-BENdaVOT.js +19 -0
  208. package/build/server/chunks/error.svelte-BENdaVOT.js.map +1 -0
  209. package/build/server/chunks/event-DVH-6ISX.js.map +1 -1
  210. package/build/server/chunks/hooks.server-CagAPNr2.js +40 -0
  211. package/build/server/chunks/hooks.server-CagAPNr2.js.map +1 -0
  212. package/build/server/chunks/{index-EKt9-9bV.js → index-DFXVwu6p.js} +2 -2
  213. package/build/server/chunks/{index-EKt9-9bV.js.map → index-DFXVwu6p.js.map} +1 -1
  214. package/build/server/chunks/index-Djsj11qr.js.map +1 -1
  215. package/build/server/chunks/index-server-Bf-hP5gL.js +5 -0
  216. package/build/server/chunks/index-server-Bf-hP5gL.js.map +1 -0
  217. package/build/server/chunks/{routing-DcR4fCSD.js → index2-DBFlGzWV.js} +23 -100
  218. package/build/server/chunks/index2-DBFlGzWV.js.map +1 -0
  219. package/build/server/chunks/{index3-DquTjlmp.js → index3-CoOO2o9t.js} +6 -6
  220. package/build/server/chunks/index3-CoOO2o9t.js.map +1 -0
  221. package/build/server/chunks/jsonParser-CraFXJs8.js +174 -0
  222. package/build/server/chunks/jsonParser-CraFXJs8.js.map +1 -0
  223. package/build/server/chunks/layout.svelte-CJcHX-Na.js +10 -0
  224. package/build/server/chunks/layout.svelte-CJcHX-Na.js.map +1 -0
  225. package/build/server/chunks/logger-D71iWOkl.js +36 -0
  226. package/build/server/chunks/logger-D71iWOkl.js.map +1 -0
  227. package/build/server/chunks/{mongo-dLmCShL_.js → mongo-BogiTfnG.js} +54 -12
  228. package/build/server/chunks/mongo-BogiTfnG.js.map +1 -0
  229. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js +17 -0
  230. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js.map +1 -0
  231. package/build/server/chunks/routing-e10vGH37.js +81 -0
  232. package/build/server/chunks/routing-e10vGH37.js.map +1 -0
  233. package/build/server/chunks/{server2-BiqGvkCy.js → server2-_mGVuBoG.js} +2 -2
  234. package/build/server/chunks/{server2-BiqGvkCy.js.map → server2-_mGVuBoG.js.map} +1 -1
  235. package/build/server/chunks/servers.remote-C2HuT43p.js +690 -0
  236. package/build/server/chunks/servers.remote-C2HuT43p.js.map +1 -0
  237. package/build/server/chunks/shared-Buki-xt5.js +506 -0
  238. package/build/server/chunks/shared-Buki-xt5.js.map +1 -0
  239. package/build/server/chunks/{state.svelte-CRHA9yov.js → state.svelte-C8IWmp_n.js} +2 -2
  240. package/build/server/chunks/{state.svelte-CRHA9yov.js.map → state.svelte-C8IWmp_n.js.map} +1 -1
  241. package/build/server/chunks/{utils-DGYJFmnf.js → utils-kjxf7BZO.js} +2 -2
  242. package/build/server/chunks/{utils-DGYJFmnf.js.map → utils-kjxf7BZO.js.map} +1 -1
  243. package/build/server/index.js +189 -610
  244. package/build/server/index.js.map +1 -1
  245. package/build/server/manifest.js +45 -18
  246. package/build/server/manifest.js.map +1 -1
  247. package/package.json +13 -2
  248. package/src/api/servers.remote.ts +381 -20
  249. package/src/app.css +98 -3
  250. package/src/app.html +15 -0
  251. package/src/hooks.server.ts +18 -1
  252. package/src/lib/actions/jsonTextarea.ts +395 -0
  253. package/src/lib/components/Breadcrumbs.svelte +7 -58
  254. package/src/lib/components/JsonValue.svelte +279 -85
  255. package/src/lib/components/Modal.svelte +59 -0
  256. package/src/lib/components/OriginWarning.svelte +109 -0
  257. package/src/lib/components/PageSwitcher.svelte +37 -0
  258. package/src/lib/components/Panel.svelte +1 -1
  259. package/src/lib/components/PrettyJson.svelte +112 -36
  260. package/src/lib/components/SearchBox.svelte +161 -97
  261. package/src/lib/components/ThemeSwitcher.svelte +66 -0
  262. package/src/lib/components/Tooltip.svelte +83 -0
  263. package/src/lib/components/TooltipTable.svelte +45 -102
  264. package/src/lib/server/HostsManager.ts +4 -0
  265. package/src/lib/server/aggregation.ts +62 -0
  266. package/src/lib/server/mongo.ts +78 -15
  267. package/src/lib/types.ts +60 -0
  268. package/src/lib/utils/isEmptyObject.ts +6 -0
  269. package/src/lib/utils/jsonParser.ts +9 -1
  270. package/src/lib/utils/logger.ts +42 -0
  271. package/src/lib/utils/omit.ts +3 -0
  272. package/src/routes/+layout.server.ts +2 -1
  273. package/src/routes/+layout.svelte +15 -2
  274. package/src/routes/favicon.ico/+server.ts +8 -0
  275. package/src/routes/servers/+page.server.ts +23 -10
  276. package/src/routes/servers/+page.svelte +44 -10
  277. package/src/routes/servers/[server]/databases/+layout.ts +8 -0
  278. package/src/routes/servers/[server]/databases/+page.server.ts +15 -4
  279. package/src/routes/servers/[server]/databases/[database]/collections/+layout.ts +9 -0
  280. package/src/routes/servers/[server]/databases/[database]/collections/+page.server.ts +0 -2
  281. package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +67 -8
  282. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+layout.ts +9 -0
  283. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.server.ts +217 -0
  284. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +342 -0
  285. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +10 -0
  286. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+layout.ts +9 -0
  287. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.server.ts +15 -12
  288. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.svelte +81 -7
  289. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +88 -0
  290. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +333 -0
  291. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +10 -0
  292. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.server.ts +18 -0
  293. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +378 -0
  294. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +10 -0
  295. package/src/tests/api/aggregation.test.ts +125 -0
  296. package/build/client/_app/immutable/assets/0.CEsPYTp2.css +0 -1
  297. package/build/client/_app/immutable/assets/0.CEsPYTp2.css.br +0 -0
  298. package/build/client/_app/immutable/assets/0.CEsPYTp2.css.gz +0 -0
  299. package/build/client/_app/immutable/assets/6.DawdmtJd.css +0 -1
  300. package/build/client/_app/immutable/assets/6.DawdmtJd.css.br +0 -2
  301. package/build/client/_app/immutable/assets/6.DawdmtJd.css.gz +0 -0
  302. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css +0 -1
  303. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.br +0 -0
  304. package/build/client/_app/immutable/assets/Panel.BDHMtO-3.css.gz +0 -0
  305. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css +0 -1
  306. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.br +0 -0
  307. package/build/client/_app/immutable/assets/PrettyJson.CtngcfyW.css.gz +0 -0
  308. package/build/client/_app/immutable/chunks/B2-iEFN3.js +0 -2
  309. package/build/client/_app/immutable/chunks/B2-iEFN3.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/B2-iEFN3.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/B5y2vsNr.js +0 -1
  312. package/build/client/_app/immutable/chunks/B5y2vsNr.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/B5y2vsNr.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/BN_N9-2s.js +0 -1
  315. package/build/client/_app/immutable/chunks/BN_N9-2s.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/BN_N9-2s.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/C1z4TjN7.js +0 -1
  318. package/build/client/_app/immutable/chunks/C1z4TjN7.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/C1z4TjN7.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/CQBaNlA9.js +0 -1
  321. package/build/client/_app/immutable/chunks/CQBaNlA9.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/CQBaNlA9.js.gz +0 -0
  323. package/build/client/_app/immutable/chunks/CVoOGazw.js +0 -4
  324. package/build/client/_app/immutable/chunks/CVoOGazw.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/CVoOGazw.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/CapOg2jD.js +0 -1
  327. package/build/client/_app/immutable/chunks/CapOg2jD.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/CapOg2jD.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/ChWB6xnu.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/ChWB6xnu.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/CqnBT2zJ.js +0 -1
  332. package/build/client/_app/immutable/chunks/CqnBT2zJ.js.br +0 -0
  333. package/build/client/_app/immutable/chunks/CqnBT2zJ.js.gz +0 -0
  334. package/build/client/_app/immutable/chunks/D069mncP.js +0 -1
  335. package/build/client/_app/immutable/chunks/D069mncP.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/D069mncP.js.gz +0 -0
  337. package/build/client/_app/immutable/chunks/DACrOfV_.js +0 -14
  338. package/build/client/_app/immutable/chunks/DACrOfV_.js.br +0 -0
  339. package/build/client/_app/immutable/chunks/DACrOfV_.js.gz +0 -0
  340. package/build/client/_app/immutable/chunks/DQkpHJGc.js.br +0 -0
  341. package/build/client/_app/immutable/chunks/DQkpHJGc.js.gz +0 -0
  342. package/build/client/_app/immutable/chunks/DSDD_hFT.js +0 -1
  343. package/build/client/_app/immutable/chunks/DSDD_hFT.js.br +0 -0
  344. package/build/client/_app/immutable/chunks/DSDD_hFT.js.gz +0 -0
  345. package/build/client/_app/immutable/chunks/D_aTX_ol.js +0 -1
  346. package/build/client/_app/immutable/chunks/D_aTX_ol.js.br +0 -0
  347. package/build/client/_app/immutable/chunks/D_aTX_ol.js.gz +0 -0
  348. package/build/client/_app/immutable/chunks/Dg3qHExF.js +0 -1
  349. package/build/client/_app/immutable/chunks/Dg3qHExF.js.br +0 -0
  350. package/build/client/_app/immutable/chunks/Dg3qHExF.js.gz +0 -0
  351. package/build/client/_app/immutable/chunks/Dt6-JRym.js +0 -2
  352. package/build/client/_app/immutable/chunks/Dt6-JRym.js.br +0 -0
  353. package/build/client/_app/immutable/chunks/Dt6-JRym.js.gz +0 -0
  354. package/build/client/_app/immutable/chunks/QoKxaG0e.js +0 -1
  355. package/build/client/_app/immutable/chunks/QoKxaG0e.js.br +0 -2
  356. package/build/client/_app/immutable/chunks/QoKxaG0e.js.gz +0 -0
  357. package/build/client/_app/immutable/chunks/rtveiEyS.js +0 -1
  358. package/build/client/_app/immutable/chunks/rtveiEyS.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/rtveiEyS.js.gz +0 -0
  360. package/build/client/_app/immutable/entry/app.Cc1FNLNH.js +0 -2
  361. package/build/client/_app/immutable/entry/app.Cc1FNLNH.js.br +0 -0
  362. package/build/client/_app/immutable/entry/app.Cc1FNLNH.js.gz +0 -0
  363. package/build/client/_app/immutable/entry/start.CwqlbFyy.js +0 -1
  364. package/build/client/_app/immutable/entry/start.CwqlbFyy.js.br +0 -2
  365. package/build/client/_app/immutable/entry/start.CwqlbFyy.js.gz +0 -0
  366. package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js +0 -1
  367. package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js.br +0 -0
  368. package/build/client/_app/immutable/nodes/0.wBQEpdjZ.js.gz +0 -0
  369. package/build/client/_app/immutable/nodes/1.K6-n7D0b.js +0 -1
  370. package/build/client/_app/immutable/nodes/1.K6-n7D0b.js.br +0 -0
  371. package/build/client/_app/immutable/nodes/1.K6-n7D0b.js.gz +0 -0
  372. package/build/client/_app/immutable/nodes/3.DkGcIF98.js +0 -1
  373. package/build/client/_app/immutable/nodes/3.DkGcIF98.js.br +0 -0
  374. package/build/client/_app/immutable/nodes/3.DkGcIF98.js.gz +0 -0
  375. package/build/client/_app/immutable/nodes/4.C_NxbT98.js +0 -1
  376. package/build/client/_app/immutable/nodes/4.C_NxbT98.js.br +0 -0
  377. package/build/client/_app/immutable/nodes/4.C_NxbT98.js.gz +0 -0
  378. package/build/client/_app/immutable/nodes/5.CFvfYaLM.js +0 -1
  379. package/build/client/_app/immutable/nodes/5.CFvfYaLM.js.br +0 -0
  380. package/build/client/_app/immutable/nodes/5.CFvfYaLM.js.gz +0 -0
  381. package/build/client/_app/immutable/nodes/6.h34Zyorq.js +0 -1
  382. package/build/client/_app/immutable/nodes/6.h34Zyorq.js.br +0 -0
  383. package/build/client/_app/immutable/nodes/6.h34Zyorq.js.gz +0 -0
  384. package/build/client/_app/immutable/nodes/7.BVJmNbU5.js +0 -1
  385. package/build/client/_app/immutable/nodes/7.BVJmNbU5.js.br +0 -0
  386. package/build/client/_app/immutable/nodes/7.BVJmNbU5.js.gz +0 -0
  387. package/build/server/chunks/0-Cb5ytlMI.js.map +0 -1
  388. package/build/server/chunks/1-Cpb7zRtJ.js +0 -9
  389. package/build/server/chunks/1-Cpb7zRtJ.js.map +0 -1
  390. package/build/server/chunks/3-B_DkgZkc.js +0 -69
  391. package/build/server/chunks/3-B_DkgZkc.js.map +0 -1
  392. package/build/server/chunks/4-DzHoLo__.js.map +0 -1
  393. package/build/server/chunks/5-CCWbCDpk.js.map +0 -1
  394. package/build/server/chunks/6-Dok8svjB.js +0 -202
  395. package/build/server/chunks/6-Dok8svjB.js.map +0 -1
  396. package/build/server/chunks/7-CmgJSG2j.js +0 -42
  397. package/build/server/chunks/7-CmgJSG2j.js.map +0 -1
  398. package/build/server/chunks/Panel-Bz0b85EW.js.map +0 -1
  399. package/build/server/chunks/PrettyJson-CX6-dNsW.js +0 -291
  400. package/build/server/chunks/PrettyJson-CX6-dNsW.js.map +0 -1
  401. package/build/server/chunks/TooltipTable-0z4HkHlH.js +0 -17
  402. package/build/server/chunks/TooltipTable-0z4HkHlH.js.map +0 -1
  403. package/build/server/chunks/_layout.svelte-UiDiCQEz.js +0 -111
  404. package/build/server/chunks/_layout.svelte-UiDiCQEz.js.map +0 -1
  405. package/build/server/chunks/_page.svelte-FIp-IsOo.js.map +0 -1
  406. package/build/server/chunks/_page.svelte-FLzHOuyK.js.map +0 -1
  407. package/build/server/chunks/_page.svelte-jxFKbZdN.js.map +0 -1
  408. package/build/server/chunks/_page.svelte-k8avSQW1.js +0 -215
  409. package/build/server/chunks/_page.svelte-k8avSQW1.js.map +0 -1
  410. package/build/server/chunks/_page.svelte-w9cxGvUf.js.map +0 -1
  411. package/build/server/chunks/async-BfR0vYHo.js.map +0 -1
  412. package/build/server/chunks/client-bj7sePQc.js +0 -7
  413. package/build/server/chunks/error.svelte-D5sIJv3P.js +0 -18
  414. package/build/server/chunks/error.svelte-D5sIJv3P.js.map +0 -1
  415. package/build/server/chunks/hooks.server-_TKfdzGA.js +0 -26
  416. package/build/server/chunks/hooks.server-_TKfdzGA.js.map +0 -1
  417. package/build/server/chunks/index3-DquTjlmp.js.map +0 -1
  418. package/build/server/chunks/mongo-dLmCShL_.js.map +0 -1
  419. package/build/server/chunks/remote-xxtqbu-BFzaWXy0.js +0 -234
  420. package/build/server/chunks/remote-xxtqbu-BFzaWXy0.js.map +0 -1
  421. package/build/server/chunks/routing-DcR4fCSD.js.map +0 -1
  422. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.server.ts +0 -106
  423. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+page.svelte +0 -174
  424. /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css → 7.CRKE8WvY.css} +0 -0
  425. /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css.br → 7.CRKE8WvY.css.br} +0 -0
  426. /package/build/client/_app/immutable/assets/{3.CRKE8WvY.css.gz → 7.CRKE8WvY.css.gz} +0 -0
@@ -0,0 +1,199 @@
1
+ import './async-lVJA8xJZ.js';
2
+ import { s as stringify, a as attr, e as ensure_array_like } from './index2-DBFlGzWV.js';
3
+ import './servers.remote-C2HuT43p.js';
4
+ import { r as resolve } from './server2-_mGVuBoG.js';
5
+ import { P as Panel } from './Panel-yg5YKL4d.js';
6
+ import { e as escape_html } from './context-C22hLSHK.js';
7
+ import './event-DVH-6ISX.js';
8
+ import './utils-kjxf7BZO.js';
9
+ import './shared-Buki-xt5.js';
10
+ import './index-Djsj11qr.js';
11
+ import './jsonParser-CraFXJs8.js';
12
+ import 'esprima';
13
+ import './JsonEncoder-jJ2OBaud.js';
14
+ import 'mongodb';
15
+ import './mongo-BogiTfnG.js';
16
+ import './logger-D71iWOkl.js';
17
+ import 'url';
18
+ import 'node:fs';
19
+ import 'node:os';
20
+ import 'node:path';
21
+ import 'zod';
22
+ import './routing-e10vGH37.js';
23
+
24
+ function _page($$renderer, $$props) {
25
+ $$renderer.component(($$renderer2) => {
26
+ let { data } = $$props;
27
+ let mappingsArray = Object.entries(data.mappings).map(([fieldPath, targets]) => ({
28
+ fieldPath,
29
+ targets: Array.isArray(targets) ? targets : [targets]
30
+ }));
31
+ `I need help generating MongoDB collection mappings for my database.
32
+
33
+ **Context:**
34
+ - Database: ${data.database}
35
+ - Collection: ${data.collection}
36
+ - Available collections: ${data.availableCollections.join(", ")}
37
+
38
+ **Task:**
39
+ Please analyze my codebase to identify relationships between the "${data.collection}" collection and other collections. Look for:
40
+ 1. Fields that reference documents in other collections (foreign keys)
41
+ 2. Nested fields within arrays or objects that reference other documents
42
+ 3. Common patterns like userId, authorId, etc.
43
+
44
+ If you have access to the MongoDB MCP server, use it to:
45
+ 1. Query sample documents from the "${data.collection}" collection
46
+ 2. Analyze the schema and field types
47
+ 3. Identify potential foreign key relationships
48
+
49
+ **Output Format:**
50
+ Create a file named \`${data.collection}.mappings.json\` with the following structure:
51
+
52
+ \`\`\`json
53
+ {
54
+ "_id": "${data.collection}",
55
+ "mappings": {
56
+ "fieldPath": { "collection": "targetCollection", "on": "targetField" },
57
+ "nested.fieldPath": { "collection": "targetCollection", "on": "targetField" }
58
+ }
59
+ }
60
+ \`\`\`
61
+
62
+ **Example:**
63
+ If the collection has documents like:
64
+ \`\`\`json
65
+ {
66
+ "_id": "post1",
67
+ "authorId": "user123",
68
+ "comments": [
69
+ { "authorId": "user456", "text": "Great post!" }
70
+ ]
71
+ }
72
+ \`\`\`
73
+
74
+ The mappings would be:
75
+ \`\`\`json
76
+ {
77
+ "_id": "${data.collection}",
78
+ "mappings": {
79
+ "authorId": { "collection": "users", "on": "_id" },
80
+ "comments.authorId": { "collection": "users", "on": "_id" }
81
+ }
82
+ }
83
+ \`\`\`
84
+
85
+ **Notes:**
86
+ - Use dot notation for nested fields (e.g., "comments.authorId")
87
+ - Multiple mappings for the same field can be expressed as an array
88
+ - Target field is usually "_id" but can be any unique field
89
+
90
+ Please analyze the codebase and database, then generate the appropriate mappings file.`;
91
+ {
92
+ let actions = function($$renderer3) {
93
+ $$renderer3.push(`<button class="btn btn-outline-light btn-sm -my-2">🤖 AI Helper</button> `);
94
+ if (!data.readOnly) {
95
+ $$renderer3.push("<!--[-->");
96
+ $$renderer3.push(`<button class="btn btn-success btn-sm -my-2">Save</button>`);
97
+ } else {
98
+ $$renderer3.push("<!--[!-->");
99
+ }
100
+ $$renderer3.push(`<!--]-->`);
101
+ };
102
+ Panel($$renderer2, {
103
+ title: `Mappings for ${stringify(data.collection)}`,
104
+ actions,
105
+ children: ($$renderer3) => {
106
+ $$renderer3.push(`<div class="p-4"><div class="mb-4"><p class="mb-3">Define relationships between collections to enable hover tooltips and navigation on foreign key fields. This
107
+ will be stored in the <code class="px-1 bg-[var(--light-background)] rounded">mongoku.mappings</code> collection
108
+ as a document with <a${attr("href", resolve(`/servers/${data.server}/databases/${data.database}/collections/mongoku.mappings/documents/${data.collection}`))} class="text-blue-500">_id: "${escape_html(data.collection)}"</a>.</p> <details class="mb-2" style="color: var(--text-secondary);"><summary class="cursor-pointer font-medium mb-2">Example</summary> <div class="mt-2"><div class="mb-1">Document in collection <code class="px-1 bg-[var(--light-background)] rounded">posts</code>:</div> <code class="block px-2 py-1 bg-[var(--light-background)] rounded text-xs mb-2">{ _id: "post1", title: "Hello", authorId: "user123", comments: [{authorId: "user456", text:
109
+ "Nice!"}] }</code> <div class="text space-y-1"><div>→ Mapping 1: Field path <code class="px-1 bg-[var(--light-background)] rounded">authorId</code>, target
110
+ collection <code class="px-1 bg-[var(--light-background)] rounded">users</code>, target field <code class="px-1 bg-[var(--light-background)] rounded">_id</code></div> <div>→ Mapping 2: Field path <code class="px-1 bg-[var(--light-background)] rounded">comments.authorId</code>,
111
+ target collection <code class="px-1 bg-[var(--light-background)] rounded">users</code>, target field <code class="px-1 bg-[var(--light-background)] rounded">_id</code></div></div></div></details></div> `);
112
+ if (mappingsArray.length > 0) {
113
+ $$renderer3.push("<!--[-->");
114
+ $$renderer3.push(`<div class="space-y-4"><!--[-->`);
115
+ const each_array = ensure_array_like(mappingsArray);
116
+ for (let entryIndex = 0, $$length = each_array.length; entryIndex < $$length; entryIndex++) {
117
+ let entry = each_array[entryIndex];
118
+ $$renderer3.push(`<div class="border border-[var(--border-color)] rounded p-4"><div class="flex items-start gap-4 mb-3"><div class="flex-1"><label class="block text-sm font-medium mb-1">Field Path <input type="text"${attr("value", entry.fieldPath)} placeholder="e.g., authorId or comments.authorId" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"${attr("disabled", data.readOnly, true)}/></label></div> `);
119
+ if (!data.readOnly) {
120
+ $$renderer3.push("<!--[-->");
121
+ $$renderer3.push(`<button class="btn btn-outline-danger btn-sm mt-6">Remove Mapping</button>`);
122
+ } else {
123
+ $$renderer3.push("<!--[!-->");
124
+ }
125
+ $$renderer3.push(`<!--]--></div> <div class="space-y-2"><!--[-->`);
126
+ const each_array_1 = ensure_array_like(entry.targets);
127
+ for (let targetIndex = 0, $$length2 = each_array_1.length; targetIndex < $$length2; targetIndex++) {
128
+ let target = each_array_1[targetIndex];
129
+ $$renderer3.push(`<div class="flex items-start gap-2 pl-4 border-l-2 border-[var(--color-3)]"><div class="flex-1"><label class="block text-xs mb-1">Target Collection `);
130
+ $$renderer3.select(
131
+ {
132
+ value: target.collection,
133
+ class: "w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1",
134
+ disabled: data.readOnly
135
+ },
136
+ ($$renderer4) => {
137
+ $$renderer4.option({ value: "" }, ($$renderer5) => {
138
+ $$renderer5.push(`Select collection...`);
139
+ });
140
+ $$renderer4.push(`<!--[-->`);
141
+ const each_array_2 = ensure_array_like(data.availableCollections);
142
+ for (let $$index = 0, $$length3 = each_array_2.length; $$index < $$length3; $$index++) {
143
+ let col = each_array_2[$$index];
144
+ $$renderer4.option({ value: col }, ($$renderer5) => {
145
+ $$renderer5.push(`${escape_html(col)}`);
146
+ });
147
+ }
148
+ $$renderer4.push(`<!--]-->`);
149
+ }
150
+ );
151
+ $$renderer3.push(`</label></div> <div class="flex-1"><label class="block text-xs mb-1">Target Field <input type="text"${attr("value", target.on)} placeholder="_id" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"${attr("disabled", data.readOnly, true)}/></label></div> `);
152
+ if (!data.readOnly) {
153
+ $$renderer3.push("<!--[-->");
154
+ $$renderer3.push(`<button class="btn btn-outline-danger btn-sm mt-5"${attr("disabled", entry.targets.length === 1, true)}>×</button>`);
155
+ } else {
156
+ $$renderer3.push("<!--[!-->");
157
+ }
158
+ $$renderer3.push(`<!--]--></div>`);
159
+ }
160
+ $$renderer3.push(`<!--]--></div> `);
161
+ if (!data.readOnly) {
162
+ $$renderer3.push("<!--[-->");
163
+ $$renderer3.push(`<button class="btn btn-outline-light btn-sm mt-2 ml-4">+ Add Alternative Target</button>`);
164
+ } else {
165
+ $$renderer3.push("<!--[!-->");
166
+ }
167
+ $$renderer3.push(`<!--]--></div>`);
168
+ }
169
+ $$renderer3.push(`<!--]--></div>`);
170
+ } else {
171
+ $$renderer3.push("<!--[!-->");
172
+ $$renderer3.push(`<div class="text-center py-8" style="color: var(--text-secondary);">No mappings defined yet.</div>`);
173
+ }
174
+ $$renderer3.push(`<!--]--> `);
175
+ if (!data.readOnly) {
176
+ $$renderer3.push("<!--[-->");
177
+ $$renderer3.push(`<div class="mt-4">`);
178
+ {
179
+ $$renderer3.push("<!--[-->");
180
+ $$renderer3.push(`<button class="btn btn-success">+ Add New Mapping</button>`);
181
+ }
182
+ $$renderer3.push(`<!--]--></div>`);
183
+ } else {
184
+ $$renderer3.push("<!--[!-->");
185
+ }
186
+ $$renderer3.push(`<!--]--></div>`);
187
+ }
188
+ });
189
+ }
190
+ $$renderer2.push(`<!----> `);
191
+ {
192
+ $$renderer2.push("<!--[!-->");
193
+ }
194
+ $$renderer2.push(`<!--]-->`);
195
+ });
196
+ }
197
+
198
+ export { _page as default };
199
+ //# sourceMappingURL=_page.svelte-B-dLNs2Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-B-dLNs2Q.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/mappings/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../chunks/async.js\";\nimport { x as attr, w as ensure_array_like, z as stringify } from \"../../../../../../../../../chunks/index2.js\";\nimport \"../../../../../../../../../chunks/servers.remote.js\";\nimport { r as resolve } from \"../../../../../../../../../chunks/server2.js\";\nimport { P as Panel } from \"../../../../../../../../../chunks/Panel.js\";\nimport { e as escape_html } from \"../../../../../../../../../chunks/context.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let mappingsArray = Object.entries(data.mappings).map(([fieldPath, targets]) => ({\n fieldPath,\n targets: Array.isArray(targets) ? targets : [targets]\n }));\n `I need help generating MongoDB collection mappings for my database.\n\n**Context:**\n- Database: ${data.database}\n- Collection: ${data.collection}\n- Available collections: ${data.availableCollections.join(\", \")}\n\n**Task:**\nPlease analyze my codebase to identify relationships between the \"${data.collection}\" collection and other collections. Look for:\n1. Fields that reference documents in other collections (foreign keys)\n2. Nested fields within arrays or objects that reference other documents\n3. Common patterns like userId, authorId, etc.\n\nIf you have access to the MongoDB MCP server, use it to:\n1. Query sample documents from the \"${data.collection}\" collection\n2. Analyze the schema and field types\n3. Identify potential foreign key relationships\n\n**Output Format:**\nCreate a file named \\`${data.collection}.mappings.json\\` with the following structure:\n\n\\`\\`\\`json\n{\n \"_id\": \"${data.collection}\",\n \"mappings\": {\n \"fieldPath\": { \"collection\": \"targetCollection\", \"on\": \"targetField\" },\n \"nested.fieldPath\": { \"collection\": \"targetCollection\", \"on\": \"targetField\" }\n }\n}\n\\`\\`\\`\n\n**Example:**\nIf the collection has documents like:\n\\`\\`\\`json\n{\n \"_id\": \"post1\",\n \"authorId\": \"user123\",\n \"comments\": [\n { \"authorId\": \"user456\", \"text\": \"Great post!\" }\n ]\n}\n\\`\\`\\`\n\nThe mappings would be:\n\\`\\`\\`json\n{\n \"_id\": \"${data.collection}\",\n \"mappings\": {\n \"authorId\": { \"collection\": \"users\", \"on\": \"_id\" },\n \"comments.authorId\": { \"collection\": \"users\", \"on\": \"_id\" }\n }\n}\n\\`\\`\\`\n\n**Notes:**\n- Use dot notation for nested fields (e.g., \"comments.authorId\")\n- Multiple mappings for the same field can be expressed as an array\n- Target field is usually \"_id\" but can be any unique field\n\nPlease analyze the codebase and database, then generate the appropriate mappings file.`;\n {\n let actions = function($$renderer3) {\n $$renderer3.push(`<button class=\"btn btn-outline-light btn-sm -my-2\">🤖 AI Helper</button> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-success btn-sm -my-2\">Save</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n };\n Panel($$renderer2, {\n title: `Mappings for ${stringify(data.collection)}`,\n actions,\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"p-4\"><div class=\"mb-4\"><p class=\"mb-3\">Define relationships between collections to enable hover tooltips and navigation on foreign key fields. This\n\t\t\t\twill be stored in the <code class=\"px-1 bg-[var(--light-background)] rounded\">mongoku.mappings</code> collection\n\t\t\t\tas a document with <a${attr(\"href\", resolve(`/servers/${data.server}/databases/${data.database}/collections/mongoku.mappings/documents/${data.collection}`))} class=\"text-blue-500\">_id: \"${escape_html(data.collection)}\"</a>.</p> <details class=\"mb-2\" style=\"color: var(--text-secondary);\"><summary class=\"cursor-pointer font-medium mb-2\">Example</summary> <div class=\"mt-2\"><div class=\"mb-1\">Document in collection <code class=\"px-1 bg-[var(--light-background)] rounded\">posts</code>:</div> <code class=\"block px-2 py-1 bg-[var(--light-background)] rounded text-xs mb-2\">{ _id: \"post1\", title: \"Hello\", authorId: \"user123\", comments: [{authorId: \"user456\", text:\n\t\t\t\t\t\t\"Nice!\"}] }</code> <div class=\"text space-y-1\"><div>→ Mapping 1: Field path <code class=\"px-1 bg-[var(--light-background)] rounded\">authorId</code>, target\n\t\t\t\t\t\t\tcollection <code class=\"px-1 bg-[var(--light-background)] rounded\">users</code>, target field <code class=\"px-1 bg-[var(--light-background)] rounded\">_id</code></div> <div>→ Mapping 2: Field path <code class=\"px-1 bg-[var(--light-background)] rounded\">comments.authorId</code>,\n\t\t\t\t\t\t\ttarget collection <code class=\"px-1 bg-[var(--light-background)] rounded\">users</code>, target field <code class=\"px-1 bg-[var(--light-background)] rounded\">_id</code></div></div></div></details></div> `);\n if (mappingsArray.length > 0) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"space-y-4\"><!--[-->`);\n const each_array = ensure_array_like(mappingsArray);\n for (let entryIndex = 0, $$length = each_array.length; entryIndex < $$length; entryIndex++) {\n let entry = each_array[entryIndex];\n $$renderer3.push(`<div class=\"border border-[var(--border-color)] rounded p-4\"><div class=\"flex items-start gap-4 mb-3\"><div class=\"flex-1\"><label class=\"block text-sm font-medium mb-1\">Field Path <input type=\"text\"${attr(\"value\", entry.fieldPath)} placeholder=\"e.g., authorId or comments.authorId\" class=\"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\"${attr(\"disabled\", data.readOnly, true)}/></label></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-danger btn-sm mt-6\">Remove Mapping</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div> <div class=\"space-y-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(entry.targets);\n for (let targetIndex = 0, $$length2 = each_array_1.length; targetIndex < $$length2; targetIndex++) {\n let target = each_array_1[targetIndex];\n $$renderer3.push(`<div class=\"flex items-start gap-2 pl-4 border-l-2 border-[var(--color-3)]\"><div class=\"flex-1\"><label class=\"block text-xs mb-1\">Target Collection `);\n $$renderer3.select(\n {\n value: target.collection,\n class: \"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\",\n disabled: data.readOnly\n },\n ($$renderer4) => {\n $$renderer4.option({ value: \"\" }, ($$renderer5) => {\n $$renderer5.push(`Select collection...`);\n });\n $$renderer4.push(`<!--[-->`);\n const each_array_2 = ensure_array_like(data.availableCollections);\n for (let $$index = 0, $$length3 = each_array_2.length; $$index < $$length3; $$index++) {\n let col = each_array_2[$$index];\n $$renderer4.option({ value: col }, ($$renderer5) => {\n $$renderer5.push(`${escape_html(col)}`);\n });\n }\n $$renderer4.push(`<!--]-->`);\n }\n );\n $$renderer3.push(`</label></div> <div class=\"flex-1\"><label class=\"block text-xs mb-1\">Target Field <input type=\"text\"${attr(\"value\", target.on)} placeholder=\"_id\" class=\"w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1\"${attr(\"disabled\", data.readOnly, true)}/></label></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-danger btn-sm mt-5\"${attr(\"disabled\", entry.targets.length === 1, true)}>×</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-outline-light btn-sm mt-2 ml-4\">+ Add Alternative Target</button>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<div class=\"text-center py-8\" style=\"color: var(--text-secondary);\">No mappings defined yet.</div>`);\n }\n $$renderer3.push(`<!--]--> `);\n if (!data.readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"mt-4\">`);\n {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<button class=\"btn btn-success\">+ Add New Mapping</button>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n });\n }\n $$renderer2.push(`<!----> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1,26 +1,33 @@
1
- import './async-BfR0vYHo.js';
2
- import { u as updateDocument, d as deleteDocument } from './remote-xxtqbu-BFzaWXy0.js';
3
- import { g as goto } from './client2-BX4-xbM4.js';
4
- import { r as resolve } from './server2-BiqGvkCy.js';
5
- import { P as PrettyJson } from './PrettyJson-CX6-dNsW.js';
1
+ import './async-lVJA8xJZ.js';
2
+ import { d as deleteDocument, u as updateDocument } from './servers.remote-C2HuT43p.js';
3
+ import { g as goto } from './client2-DYaMKWrc.js';
4
+ import { r as resolve } from './server2-_mGVuBoG.js';
5
+ import { P as PrettyJson } from './PrettyJson-mXYQacEL.js';
6
6
  import { n as notificationStore } from './notifications.svelte-CIqkoPWX.js';
7
7
  import './event-DVH-6ISX.js';
8
- import './utils-DGYJFmnf.js';
8
+ import './utils-kjxf7BZO.js';
9
+ import './shared-Buki-xt5.js';
9
10
  import './index-Djsj11qr.js';
11
+ import './jsonParser-CraFXJs8.js';
12
+ import 'esprima';
10
13
  import './JsonEncoder-jJ2OBaud.js';
11
14
  import 'mongodb';
12
- import './mongo-dLmCShL_.js';
15
+ import './mongo-BogiTfnG.js';
16
+ import './logger-D71iWOkl.js';
13
17
  import 'url';
14
18
  import 'node:fs';
15
19
  import 'node:os';
16
20
  import 'node:path';
17
21
  import 'zod';
18
22
  import './exports-Cv9LZeD1.js';
19
- import './index-EKt9-9bV.js';
20
- import './state.svelte-CRHA9yov.js';
21
- import './routing-DcR4fCSD.js';
22
- import 'esprima';
23
- import './Panel-Bz0b85EW.js';
23
+ import './index-DFXVwu6p.js';
24
+ import './context-C22hLSHK.js';
25
+ import './state.svelte-C8IWmp_n.js';
26
+ import './routing-e10vGH37.js';
27
+ import './index2-DBFlGzWV.js';
28
+ import './JsonValue-B5gcBFcA.js';
29
+ import './Tooltip-DflJLumT.js';
30
+ import './Panel-yg5YKL4d.js';
24
31
 
25
32
  function _page($$renderer, $$props) {
26
33
  $$renderer.component(($$renderer2) => {
@@ -28,8 +35,8 @@ function _page($$renderer, $$props) {
28
35
  let loading = false;
29
36
  let item = data.document;
30
37
  async function editDocument(json) {
31
- const newId = json?._id?.$value;
32
- const oldId = item?._id?.$value;
38
+ const newId = json?._id?.$value ?? json?._id;
39
+ const oldId = item?._id?.$value ?? item?._id;
33
40
  if (newId !== oldId) {
34
41
  notificationStore.notifyError("ObjectId changed. This is not supported, update canceled.");
35
42
  return;
@@ -56,7 +63,7 @@ function _page($$renderer, $$props) {
56
63
  }
57
64
  }
58
65
  async function removeDocument() {
59
- const documentId = item?._id?.$value;
66
+ const documentId = item?._id?.$value ?? item?._id;
60
67
  if (!documentId) return;
61
68
  try {
62
69
  await deleteDocument({
@@ -73,23 +80,34 @@ function _page($$renderer, $$props) {
73
80
  }
74
81
  if (loading) {
75
82
  $$renderer2.push("<!--[-->");
76
- $$renderer2.push(`<div class="loading">Loading...</div>`);
83
+ $$renderer2.push(`<div class="loading svelte-khslrq">Loading...</div>`);
77
84
  } else {
78
85
  $$renderer2.push("<!--[!-->");
79
86
  if (item) {
80
87
  $$renderer2.push("<!--[-->");
81
88
  PrettyJson($$renderer2, {
82
89
  json: item,
83
- readOnly: data.readOnly,
84
- onedit: editDocument,
85
- onremove: removeDocument,
90
+ onedit: data.readOnly ? void 0 : editDocument,
91
+ onremove: data.readOnly ? void 0 : removeDocument,
86
92
  server: data.server,
87
93
  database: data.database,
88
- collection: data.collection
94
+ collection: data.collection,
95
+ mappings: data.mappings
89
96
  });
90
97
  } else {
91
98
  $$renderer2.push("<!--[!-->");
92
- $$renderer2.push(`<div class="text-center">Document not found</div>`);
99
+ {
100
+ $$renderer2.push("<!--[!-->");
101
+ $$renderer2.push(`<div class="not-found-container svelte-khslrq"><div class="text-center svelte-khslrq">Document not found</div> `);
102
+ if (!data.readOnly) {
103
+ $$renderer2.push("<!--[-->");
104
+ $$renderer2.push(`<button class="btn btn-success">Insert Document</button>`);
105
+ } else {
106
+ $$renderer2.push("<!--[!-->");
107
+ }
108
+ $$renderer2.push(`<!--]--></div>`);
109
+ }
110
+ $$renderer2.push(`<!--]-->`);
93
111
  }
94
112
  $$renderer2.push(`<!--]-->`);
95
113
  }
@@ -98,4 +116,4 @@ function _page($$renderer, $$props) {
98
116
  }
99
117
 
100
118
  export { _page as default };
101
- //# sourceMappingURL=_page.svelte-FLzHOuyK.js.map
119
+ //# sourceMappingURL=_page.svelte-BBpDrOEz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-BBpDrOEz.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/documents/_document_/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../../chunks/async.js\";\nimport { u as updateDocument, d as deleteDocument } from \"../../../../../../../../../../chunks/servers.remote.js\";\nimport { g as goto } from \"../../../../../../../../../../chunks/client2.js\";\nimport { r as resolve } from \"../../../../../../../../../../chunks/server2.js\";\nimport { P as PrettyJson } from \"../../../../../../../../../../chunks/PrettyJson.js\";\nimport { n as notificationStore } from \"../../../../../../../../../../chunks/notifications.svelte.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n let loading = false;\n let item = data.document;\n async function editDocument(json) {\n const newId = json?._id?.$value ?? json?._id;\n const oldId = item?._id?.$value ?? item?._id;\n if (newId !== oldId) {\n notificationStore.notifyError(\"ObjectId changed. This is not supported, update canceled.\");\n return;\n }\n if (!oldId) return;\n loading = true;\n try {\n const result = await updateDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: oldId,\n value: json,\n partial: false\n });\n if (result.ok) {\n notificationStore.notifySuccess(\"Document updated successfully\");\n item = result.update;\n }\n } catch (error) {\n notificationStore.notifyError(error, \"Failed to update document\");\n } finally {\n loading = false;\n }\n }\n async function removeDocument() {\n const documentId = item?._id?.$value ?? item?._id;\n if (!documentId) return;\n try {\n await deleteDocument({\n server: data.server,\n database: data.database,\n collection: data.collection,\n document: documentId\n });\n notificationStore.notifySuccess(\"Document removed successfully\");\n goto(resolve(`/servers/${encodeURIComponent(data.server)}/databases/${encodeURIComponent(data.database)}/collections/${encodeURIComponent(data.collection)}?query=${encodeURIComponent(\"{}\")}&sort=&project=&skip=0&limit=20`));\n } catch (error) {\n notificationStore.notifyError(error, \"Failed to remove document\");\n }\n }\n if (loading) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"loading svelte-khslrq\">Loading...</div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (item) {\n $$renderer2.push(\"<!--[-->\");\n PrettyJson($$renderer2, {\n json: item,\n onedit: data.readOnly ? void 0 : editDocument,\n onremove: data.readOnly ? void 0 : removeDocument,\n server: data.server,\n database: data.database,\n collection: data.collection,\n mappings: data.mappings\n });\n } else {\n $$renderer2.push(\"<!--[!-->\");\n {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div class=\"not-found-container svelte-khslrq\"><div class=\"text-center svelte-khslrq\">Document not found</div> `);\n if (!data.readOnly) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button class=\"btn btn-success\">Insert Document</button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import './async-lVJA8xJZ.js';
2
+ import { d as await_block, e as ensure_array_like, b as attr_class, a as attr } from './index2-DBFlGzWV.js';
3
+ import './servers.remote-C2HuT43p.js';
4
+ import './client-BFlyU7ZU.js';
5
+ import { J as JsonValue_1 } from './JsonValue-B5gcBFcA.js';
6
+ import { M as Modal } from './Modal-zVnoAfFx.js';
7
+ import { P as Panel } from './Panel-yg5YKL4d.js';
8
+ import { f as formatBytes } from './filters-CbFjTNFI.js';
9
+ import { e as escape_html } from './context-C22hLSHK.js';
10
+ import './event-DVH-6ISX.js';
11
+ import './utils-kjxf7BZO.js';
12
+ import './shared-Buki-xt5.js';
13
+ import './index-Djsj11qr.js';
14
+ import './jsonParser-CraFXJs8.js';
15
+ import 'esprima';
16
+ import './JsonEncoder-jJ2OBaud.js';
17
+ import 'mongodb';
18
+ import './mongo-BogiTfnG.js';
19
+ import './logger-D71iWOkl.js';
20
+ import 'url';
21
+ import 'node:fs';
22
+ import 'node:os';
23
+ import 'node:path';
24
+ import 'zod';
25
+ import './state.svelte-C8IWmp_n.js';
26
+ import './client2-DYaMKWrc.js';
27
+ import './exports-Cv9LZeD1.js';
28
+ import './index-DFXVwu6p.js';
29
+ import './Tooltip-DflJLumT.js';
30
+
31
+ function omit(obj, keys) {
32
+ return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key)));
33
+ }
34
+ function _page($$renderer, $$props) {
35
+ $$renderer.component(($$renderer2) => {
36
+ const { data } = $$props;
37
+ const readOnly = data.readOnly;
38
+ let loadingIndexes = /* @__PURE__ */ new Set();
39
+ let showDropModal = false;
40
+ let indexToDrop = null;
41
+ const indexesData = data.indexes;
42
+ function closeDropModal() {
43
+ showDropModal = false;
44
+ indexToDrop = null;
45
+ }
46
+ await_block(
47
+ $$renderer2,
48
+ indexesData,
49
+ () => {
50
+ Panel($$renderer2, {
51
+ title: "Indexes",
52
+ children: ($$renderer3) => {
53
+ $$renderer3.push(`<div class="loading">Loading indexes...</div>`);
54
+ }
55
+ });
56
+ },
57
+ (result) => {
58
+ if (result.error) {
59
+ $$renderer2.push("<!--[-->");
60
+ Panel($$renderer2, {
61
+ title: "Indexes",
62
+ children: ($$renderer3) => {
63
+ $$renderer3.push(`<div class="p-4"><p class="error">${escape_html(result.error)}</p></div>`);
64
+ }
65
+ });
66
+ } else {
67
+ $$renderer2.push("<!--[!-->");
68
+ if (result.data.length === 0) {
69
+ $$renderer2.push("<!--[-->");
70
+ Panel($$renderer2, {
71
+ title: "Indexes",
72
+ children: ($$renderer3) => {
73
+ $$renderer3.push(`<div class="text-center p-4" style="color: var(--text-darker)">No indexes found</div>`);
74
+ }
75
+ });
76
+ } else {
77
+ $$renderer2.push("<!--[!-->");
78
+ Panel($$renderer2, {
79
+ title: "Indexes",
80
+ children: ($$renderer3) => {
81
+ $$renderer3.push(`<table class="table svelte-l3ef1w"><thead><tr><th class="shrink-column svelte-l3ef1w">Name</th><th>Keys</th><th>Properties</th><th class="shrink-column svelte-l3ef1w">Size</th><th class="shrink-column svelte-l3ef1w">Usage</th><th style="min-width: 300px">Details</th>`);
82
+ if (!readOnly) {
83
+ $$renderer3.push("<!--[-->");
84
+ $$renderer3.push(`<th style="width: 120px">Actions</th>`);
85
+ } else {
86
+ $$renderer3.push("<!--[!-->");
87
+ }
88
+ $$renderer3.push(`<!--]--></tr></thead><tbody class="svelte-l3ef1w"><!--[-->`);
89
+ const each_array = ensure_array_like(result.data);
90
+ for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
91
+ let index = each_array[$$index_1];
92
+ const isLoading = loadingIndexes.has(index.name);
93
+ $$renderer3.push(`<tr${attr_class("group", void 0, { "opacity-50": isLoading })}><td class="svelte-l3ef1w"><span class="font-mono text-sm">${escape_html(index.name)}</span></td><td class="svelte-l3ef1w">`);
94
+ if (index.key) {
95
+ $$renderer3.push("<!--[-->");
96
+ $$renderer3.push(`<div class="flex flex-wrap gap-2"><!--[-->`);
97
+ const each_array_1 = ensure_array_like(Object.entries(index.key));
98
+ for (let i = 0, $$length2 = each_array_1.length; i < $$length2; i++) {
99
+ let [field, direction] = each_array_1[i];
100
+ $$renderer3.push(`<span class="index-key svelte-l3ef1w">${escape_html(field)}: ${escape_html(direction === 1 ? "↑" : direction === -1 ? "↓" : direction)}</span>`);
101
+ }
102
+ $$renderer3.push(`<!--]--></div>`);
103
+ } else {
104
+ $$renderer3.push("<!--[!-->");
105
+ $$renderer3.push(`<span style="color: var(--text-darker)">-</span>`);
106
+ }
107
+ $$renderer3.push(`<!--]--></td><td class="svelte-l3ef1w"><div class="flex flex-wrap gap-2">`);
108
+ if (index.hidden) {
109
+ $$renderer3.push("<!--[-->");
110
+ $$renderer3.push(`<span class="badge badge-hidden svelte-l3ef1w">hidden</span>`);
111
+ } else {
112
+ $$renderer3.push("<!--[!-->");
113
+ }
114
+ $$renderer3.push(`<!--]--> `);
115
+ if (index.unique) {
116
+ $$renderer3.push("<!--[-->");
117
+ $$renderer3.push(`<span class="badge badge-unique svelte-l3ef1w">unique</span>`);
118
+ } else {
119
+ $$renderer3.push("<!--[!-->");
120
+ }
121
+ $$renderer3.push(`<!--]--> `);
122
+ if (index.sparse) {
123
+ $$renderer3.push("<!--[-->");
124
+ $$renderer3.push(`<span class="badge badge-sparse svelte-l3ef1w">sparse</span>`);
125
+ } else {
126
+ $$renderer3.push("<!--[!-->");
127
+ }
128
+ $$renderer3.push(`<!--]--> `);
129
+ if (index.partialFilterExpression) {
130
+ $$renderer3.push("<!--[-->");
131
+ $$renderer3.push(`<span class="badge badge-partial svelte-l3ef1w">partial</span>`);
132
+ } else {
133
+ $$renderer3.push("<!--[!-->");
134
+ }
135
+ $$renderer3.push(`<!--]--> `);
136
+ if (!index.hidden && !index.unique && !index.sparse && !index.partialFilterExpression) {
137
+ $$renderer3.push("<!--[-->");
138
+ $$renderer3.push(`<span style="color: var(--text-darker)">-</span>`);
139
+ } else {
140
+ $$renderer3.push("<!--[!-->");
141
+ }
142
+ $$renderer3.push(`<!--]--></div></td><td class="svelte-l3ef1w">`);
143
+ if (index.size) {
144
+ $$renderer3.push("<!--[-->");
145
+ $$renderer3.push(`<span class="text-sm whitespace-nowrap">${escape_html(formatBytes(index.size))}</span>`);
146
+ } else {
147
+ $$renderer3.push("<!--[!-->");
148
+ $$renderer3.push(`<span style="color: var(--text-darker)">-</span>`);
149
+ }
150
+ $$renderer3.push(`<!--]--></td><td class="svelte-l3ef1w">`);
151
+ if (index.stats) {
152
+ $$renderer3.push("<!--[-->");
153
+ $$renderer3.push(`<div class="text-sm mt-1"><div>${escape_html(index.stats.ops.toLocaleString())}</div></div>`);
154
+ } else {
155
+ $$renderer3.push("<!--[!-->");
156
+ $$renderer3.push(`<span style="color: var(--text-darker)">-</span>`);
157
+ }
158
+ $$renderer3.push(`<!--]--></td><td class="svelte-l3ef1w"><details class="cursor-pointer"><summary class="details-link svelte-l3ef1w">View full</summary> <div class="details-content svelte-l3ef1w">`);
159
+ JsonValue_1($$renderer3, { value: omit(index, ["stats"]), collapsed: false });
160
+ $$renderer3.push(`<!----></div></details></td>`);
161
+ if (!readOnly) {
162
+ $$renderer3.push("<!--[-->");
163
+ $$renderer3.push(`<td class="svelte-l3ef1w">`);
164
+ if (index.name !== "_id_") {
165
+ $$renderer3.push("<!--[-->");
166
+ $$renderer3.push(`<div class="flex gap-2 hidden group-hover:flex -my-2"><button class="btn btn-outline-light btn-sm svelte-l3ef1w"${attr("disabled", isLoading, true)}>${escape_html(index.hidden ? "Unhide" : "Hide")}</button> <button class="btn btn-outline-danger btn-sm"${attr("disabled", isLoading, true)}>Drop</button></div>`);
167
+ } else {
168
+ $$renderer3.push("<!--[!-->");
169
+ }
170
+ $$renderer3.push(`<!--]--></td>`);
171
+ } else {
172
+ $$renderer3.push("<!--[!-->");
173
+ }
174
+ $$renderer3.push(`<!--]--></tr>`);
175
+ }
176
+ $$renderer3.push(`<!--]--></tbody></table>`);
177
+ }
178
+ });
179
+ }
180
+ $$renderer2.push(`<!--]-->`);
181
+ }
182
+ $$renderer2.push(`<!--]-->`);
183
+ }
184
+ );
185
+ $$renderer2.push(`<!--]--> `);
186
+ {
187
+ let footer = function($$renderer3) {
188
+ $$renderer3.push(`<button class="btn btn-default btn-sm">Cancel</button> <button class="btn btn-danger btn-sm">Drop Index</button>`);
189
+ };
190
+ Modal($$renderer2, {
191
+ show: showDropModal,
192
+ onclose: closeDropModal,
193
+ footer,
194
+ children: ($$renderer3) => {
195
+ $$renderer3.push(`<p>Are you sure you want to drop the index <strong>${escape_html(indexToDrop)}</strong>?</p> <p class="text-sm mt-2" style="color: var(--text-darker)">This action cannot be undone. The index will need to be recreated if needed again.</p>`);
196
+ }
197
+ });
198
+ }
199
+ $$renderer2.push(`<!---->`);
200
+ });
201
+ }
202
+
203
+ export { _page as default };
204
+ //# sourceMappingURL=_page.svelte-C9OCv4Hv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-C9OCv4Hv.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/servers/_server_/databases/_database_/collections/_collection_/indexes/_page.svelte.js"],"sourcesContent":["import \"../../../../../../../../../chunks/async.js\";\nimport { J as await_block, w as ensure_array_like, y as attr_class, x as attr } from \"../../../../../../../../../chunks/index2.js\";\nimport \"../../../../../../../../../chunks/servers.remote.js\";\nimport \"../../../../../../../../../chunks/client.js\";\nimport { J as JsonValue_1 } from \"../../../../../../../../../chunks/JsonValue.js\";\nimport { M as Modal } from \"../../../../../../../../../chunks/Modal.js\";\nimport { P as Panel } from \"../../../../../../../../../chunks/Panel.js\";\nimport { f as formatBytes } from \"../../../../../../../../../chunks/filters.js\";\nimport { e as escape_html } from \"../../../../../../../../../chunks/context.js\";\nfunction omit(obj, keys) {\n return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key)));\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { data } = $$props;\n const readOnly = data.readOnly;\n let loadingIndexes = /* @__PURE__ */ new Set();\n let showDropModal = false;\n let indexToDrop = null;\n const indexesData = data.indexes;\n function closeDropModal() {\n showDropModal = false;\n indexToDrop = null;\n }\n await_block(\n $$renderer2,\n indexesData,\n () => {\n Panel($$renderer2, {\n title: \"Indexes\",\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"loading\">Loading indexes...</div>`);\n }\n });\n },\n (result) => {\n if (result.error) {\n $$renderer2.push(\"<!--[-->\");\n Panel($$renderer2, {\n title: \"Indexes\",\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"p-4\"><p class=\"error\">${escape_html(result.error)}</p></div>`);\n }\n });\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (result.data.length === 0) {\n $$renderer2.push(\"<!--[-->\");\n Panel($$renderer2, {\n title: \"Indexes\",\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"text-center p-4\" style=\"color: var(--text-darker)\">No indexes found</div>`);\n }\n });\n } else {\n $$renderer2.push(\"<!--[!-->\");\n Panel($$renderer2, {\n title: \"Indexes\",\n children: ($$renderer3) => {\n $$renderer3.push(`<table class=\"table svelte-l3ef1w\"><thead><tr><th class=\"shrink-column svelte-l3ef1w\">Name</th><th>Keys</th><th>Properties</th><th class=\"shrink-column svelte-l3ef1w\">Size</th><th class=\"shrink-column svelte-l3ef1w\">Usage</th><th style=\"min-width: 300px\">Details</th>`);\n if (!readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<th style=\"width: 120px\">Actions</th>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></tr></thead><tbody class=\"svelte-l3ef1w\"><!--[-->`);\n const each_array = ensure_array_like(result.data);\n for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n let index = each_array[$$index_1];\n const isLoading = loadingIndexes.has(index.name);\n $$renderer3.push(`<tr${attr_class(\"group\", void 0, { \"opacity-50\": isLoading })}><td class=\"svelte-l3ef1w\"><span class=\"font-mono text-sm\">${escape_html(index.name)}</span></td><td class=\"svelte-l3ef1w\">`);\n if (index.key) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"flex flex-wrap gap-2\"><!--[-->`);\n const each_array_1 = ensure_array_like(Object.entries(index.key));\n for (let i = 0, $$length2 = each_array_1.length; i < $$length2; i++) {\n let [field, direction] = each_array_1[i];\n $$renderer3.push(`<span class=\"index-key svelte-l3ef1w\">${escape_html(field)}: ${escape_html(direction === 1 ? \"↑\" : direction === -1 ? \"↓\" : direction)}</span>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<span style=\"color: var(--text-darker)\">-</span>`);\n }\n $$renderer3.push(`<!--]--></td><td class=\"svelte-l3ef1w\"><div class=\"flex flex-wrap gap-2\">`);\n if (index.hidden) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"badge badge-hidden svelte-l3ef1w\">hidden</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (index.unique) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"badge badge-unique svelte-l3ef1w\">unique</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (index.sparse) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"badge badge-sparse svelte-l3ef1w\">sparse</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (index.partialFilterExpression) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"badge badge-partial svelte-l3ef1w\">partial</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (!index.hidden && !index.unique && !index.sparse && !index.partialFilterExpression) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span style=\"color: var(--text-darker)\">-</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div></td><td class=\"svelte-l3ef1w\">`);\n if (index.size) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"text-sm whitespace-nowrap\">${escape_html(formatBytes(index.size))}</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<span style=\"color: var(--text-darker)\">-</span>`);\n }\n $$renderer3.push(`<!--]--></td><td class=\"svelte-l3ef1w\">`);\n if (index.stats) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"text-sm mt-1\"><div>${escape_html(index.stats.ops.toLocaleString())}</div></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<span style=\"color: var(--text-darker)\">-</span>`);\n }\n $$renderer3.push(`<!--]--></td><td class=\"svelte-l3ef1w\"><details class=\"cursor-pointer\"><summary class=\"details-link svelte-l3ef1w\">View full</summary> <div class=\"details-content svelte-l3ef1w\">`);\n JsonValue_1($$renderer3, { value: omit(index, [\"stats\"]), collapsed: false });\n $$renderer3.push(`<!----></div></details></td>`);\n if (!readOnly) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<td class=\"svelte-l3ef1w\">`);\n if (index.name !== \"_id_\") {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"flex gap-2 hidden group-hover:flex -my-2\"><button class=\"btn btn-outline-light btn-sm svelte-l3ef1w\"${attr(\"disabled\", isLoading, true)}>${escape_html(index.hidden ? \"Unhide\" : \"Hide\")}</button> <button class=\"btn btn-outline-danger btn-sm\"${attr(\"disabled\", isLoading, true)}>Drop</button></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></td>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></tr>`);\n }\n $$renderer3.push(`<!--]--></tbody></table>`);\n }\n });\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n );\n $$renderer2.push(`<!--]--> `);\n {\n let footer = function($$renderer3) {\n $$renderer3.push(`<button class=\"btn btn-default btn-sm\">Cancel</button> <button class=\"btn btn-danger btn-sm\">Drop Index</button>`);\n };\n Modal($$renderer2, {\n show: showDropModal,\n onclose: closeDropModal,\n footer,\n children: ($$renderer3) => {\n $$renderer3.push(`<p>Are you sure you want to drop the index <strong>${escape_html(indexToDrop)}</strong>?</p> <p class=\"text-sm mt-2\" style=\"color: var(--text-darker)\">This action cannot be undone. The index will need to be recreated if needed again.</p>`);\n }\n });\n }\n $$renderer2.push(`<!---->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}