mongoku 2.4.7 → 2.5.0-compat

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css +1 -0
  2. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/2G5jukcB.js +1 -0
  5. package/build/client/_app/immutable/chunks/2G5jukcB.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/2G5jukcB.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/6o4NUMxB.js +4 -0
  8. package/build/client/_app/immutable/chunks/6o4NUMxB.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/6o4NUMxB.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/B5NTIIm5.js +1 -0
  11. package/build/client/_app/immutable/chunks/B5NTIIm5.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/B5NTIIm5.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BUr91kOw.js +1 -0
  14. package/build/client/_app/immutable/chunks/BUr91kOw.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BUr91kOw.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BYPjaq07.js +1 -0
  17. package/build/client/_app/immutable/chunks/BYPjaq07.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BYPjaq07.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BbTfJMmq.js +14 -0
  20. package/build/client/_app/immutable/chunks/BbTfJMmq.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BbTfJMmq.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js +1 -0
  23. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.br +1 -0
  24. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BnpHJF5-.js +2 -0
  26. package/build/client/_app/immutable/chunks/BnpHJF5-.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BnpHJF5-.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/Bs3adGX8.js +1 -0
  29. package/build/client/_app/immutable/chunks/Bs3adGX8.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/Bs3adGX8.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/C78BOXI2.js +41 -0
  32. package/build/client/_app/immutable/chunks/C78BOXI2.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/C78BOXI2.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/C93uPVVn.js +1 -0
  35. package/build/client/_app/immutable/chunks/C93uPVVn.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/C93uPVVn.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{BPstE8aZ.js → CUFCqXaE.js} +1 -1
  38. package/build/client/_app/immutable/chunks/CUFCqXaE.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/CUFCqXaE.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/CViuk-C3.js +1 -0
  41. package/build/client/_app/immutable/chunks/CViuk-C3.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CViuk-C3.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CXNtxrhs.js +1 -0
  44. package/build/client/_app/immutable/chunks/CXNtxrhs.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CXNtxrhs.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/CxcplU4Q.js +1 -0
  47. package/build/client/_app/immutable/chunks/CxcplU4Q.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CxcplU4Q.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DDy-Kuac.js +1 -0
  50. package/build/client/_app/immutable/chunks/DDy-Kuac.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DDy-Kuac.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/DKCLErzc.js +16 -0
  53. package/build/client/_app/immutable/chunks/DKCLErzc.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DKCLErzc.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/DUw-I2kh.js +1 -0
  56. package/build/client/_app/immutable/chunks/DUw-I2kh.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DUw-I2kh.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DdLT9cdj.js +1 -0
  59. package/build/client/_app/immutable/chunks/DdLT9cdj.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DdLT9cdj.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{CqFYS5AV.js → c-rWvg5T.js} +1 -1
  62. package/build/client/_app/immutable/chunks/c-rWvg5T.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/c-rWvg5T.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/zQDvlhdC.js +1 -0
  65. package/build/client/_app/immutable/chunks/zQDvlhdC.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/zQDvlhdC.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/zyo9dcGA.js +1 -0
  68. package/build/client/_app/immutable/chunks/zyo9dcGA.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/zyo9dcGA.js.gz +0 -0
  70. package/build/client/_app/immutable/entry/app.BYPYxahw.js +2 -0
  71. package/build/client/_app/immutable/entry/app.BYPYxahw.js.br +0 -0
  72. package/build/client/_app/immutable/entry/app.BYPYxahw.js.gz +0 -0
  73. package/build/client/_app/immutable/entry/start.CRRkdSEH.js +1 -0
  74. package/build/client/_app/immutable/entry/start.CRRkdSEH.js.br +2 -0
  75. package/build/client/_app/immutable/entry/start.CRRkdSEH.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/0.D7q3zJsC.js +1 -0
  77. package/build/client/_app/immutable/nodes/0.D7q3zJsC.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/0.D7q3zJsC.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/1.CuooKRx4.js +1 -0
  80. package/build/client/_app/immutable/nodes/1.CuooKRx4.js.br +3 -0
  81. package/build/client/_app/immutable/nodes/1.CuooKRx4.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/10.BEUG9MZZ.js +6 -0
  83. package/build/client/_app/immutable/nodes/10.BEUG9MZZ.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/10.BEUG9MZZ.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/11.D1Bx8Nwt.js +1 -0
  86. package/build/client/_app/immutable/nodes/11.D1Bx8Nwt.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/11.D1Bx8Nwt.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/12.smtK-KGP.js +1 -0
  89. package/build/client/_app/immutable/nodes/12.smtK-KGP.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/12.smtK-KGP.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/13.MIix6KLd.js +65 -0
  92. package/build/client/_app/immutable/nodes/13.MIix6KLd.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/13.MIix6KLd.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{2.Byf6opOr.js → 2.AM8fesja.js} +1 -1
  95. package/build/client/_app/immutable/nodes/2.AM8fesja.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/2.AM8fesja.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{3.B3j0bAgy.js → 3.BShuoOz5.js} +1 -1
  98. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/{4.6dtz57ii.js → 4.BD6QbApY.js} +1 -1
  101. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/{5.COHVaEDo.js → 5.JM_dwz0R.js} +1 -1
  104. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/7.ShEJfMNx.js +1 -0
  107. package/build/client/_app/immutable/nodes/7.ShEJfMNx.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/7.ShEJfMNx.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/8.Dvgdr2GZ.js +1 -0
  110. package/build/client/_app/immutable/nodes/8.Dvgdr2GZ.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/8.Dvgdr2GZ.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/9.DpUhY1Fc.js +2 -0
  113. package/build/client/_app/immutable/nodes/9.DpUhY1Fc.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/9.DpUhY1Fc.js.gz +0 -0
  115. package/build/client/_app/version.json +1 -1
  116. package/build/client/_app/version.json.br +0 -0
  117. package/build/client/_app/version.json.gz +0 -0
  118. package/build/env.js +51 -2
  119. package/build/handler.js +46 -4
  120. package/build/index.js +25 -14
  121. package/build/server/chunks/0-ByAQ_mky.js +22 -0
  122. package/build/server/chunks/0-ByAQ_mky.js.map +1 -0
  123. package/build/server/chunks/1-CkUgKFo-.js +9 -0
  124. package/build/server/chunks/1-CkUgKFo-.js.map +1 -0
  125. package/build/server/chunks/{10-Q8FxEohX.js → 10-DidUeiYX.js} +4 -4
  126. package/build/server/chunks/10-DidUeiYX.js.map +1 -0
  127. package/build/server/chunks/{11-Dih8b_FT.js → 11-BtuYt_Zq.js} +4 -4
  128. package/build/server/chunks/11-BtuYt_Zq.js.map +1 -0
  129. package/build/server/chunks/{12-BTYK-Nix.js → 12-Z53CaPRW.js} +9 -4
  130. package/build/server/chunks/12-Z53CaPRW.js.map +1 -0
  131. package/build/server/chunks/{13-DANeaseJ.js → 13-Dv_EpqWJ.js} +4 -4
  132. package/build/server/chunks/{13-DANeaseJ.js.map → 13-Dv_EpqWJ.js.map} +1 -1
  133. package/build/server/chunks/{2-Bx656tbc.js → 2-DaZMexAs.js} +2 -2
  134. package/build/server/chunks/2-DaZMexAs.js.map +1 -0
  135. package/build/server/chunks/{3-B-zRiOJV.js → 3-Dr4vFhF1.js} +2 -2
  136. package/build/server/chunks/3-Dr4vFhF1.js.map +1 -0
  137. package/build/server/chunks/{4-BBCE4OIo.js → 4-K2WnEwm7.js} +2 -2
  138. package/build/server/chunks/4-K2WnEwm7.js.map +1 -0
  139. package/build/server/chunks/{5-D68X5smv.js → 5-Be-Du8oZ.js} +2 -2
  140. package/build/server/chunks/5-Be-Du8oZ.js.map +1 -0
  141. package/build/server/chunks/{6-ifXBeMPA.js → 6-D70sM7i2.js} +2 -2
  142. package/build/server/chunks/{6-ifXBeMPA.js.map → 6-D70sM7i2.js.map} +1 -1
  143. package/build/server/chunks/{7-BvrEDP0H.js → 7-DWYh4PEC.js} +4 -4
  144. package/build/server/chunks/7-DWYh4PEC.js.map +1 -0
  145. package/build/server/chunks/{8-DVSIRfD_.js → 8-Dfl6BJLs.js} +4 -4
  146. package/build/server/chunks/8-Dfl6BJLs.js.map +1 -0
  147. package/build/server/chunks/{9-DYUtK2qF.js → 9-CPq-2rbs.js} +4 -4
  148. package/build/server/chunks/9-CPq-2rbs.js.map +1 -0
  149. package/build/server/chunks/{JsonValue-EppVzWzE.js → JsonValue-W-SPP1mP.js} +4 -4
  150. package/build/server/chunks/JsonValue-W-SPP1mP.js.map +1 -0
  151. package/build/server/chunks/{Modal-eRpc5lqR.js → Modal-fWUUqg69.js} +3 -3
  152. package/build/server/chunks/Modal-fWUUqg69.js.map +1 -0
  153. package/build/server/chunks/{Panel-HO9t9Spv.js → Panel-BXokpC3w.js} +13 -6
  154. package/build/server/chunks/Panel-BXokpC3w.js.map +1 -0
  155. package/build/server/chunks/{PrettyJson-F3fqxkqU.js → PrettyJson-BRyBOmHe.js} +6 -6
  156. package/build/server/chunks/PrettyJson-BRyBOmHe.js.map +1 -0
  157. package/build/server/chunks/{Tooltip-Dd-Bzogp.js → Tooltip-1tZ4BUxU.js} +2 -2
  158. package/build/server/chunks/Tooltip-1tZ4BUxU.js.map +1 -0
  159. package/build/server/chunks/{TooltipTable-jHWezlEs.js → TooltipTable-B2QGp4YW.js} +4 -4
  160. package/build/server/chunks/TooltipTable-B2QGp4YW.js.map +1 -0
  161. package/build/server/chunks/{_layout.svelte-CKGgUBvr.js → _layout.svelte-CblefOVC.js} +11 -10
  162. package/build/server/chunks/_layout.svelte-CblefOVC.js.map +1 -0
  163. package/build/server/chunks/{_page.svelte-ClZj6yzK.js → _page.svelte-BN0rshEY.js} +13 -12
  164. package/build/server/chunks/_page.svelte-BN0rshEY.js.map +1 -0
  165. package/build/server/chunks/{_page.svelte-DFzKfImt.js → _page.svelte-BynsNDn8.js} +16 -15
  166. package/build/server/chunks/{_page.svelte-DFzKfImt.js.map → _page.svelte-BynsNDn8.js.map} +1 -1
  167. package/build/server/chunks/{_page.svelte-DBcsXxML.js → _page.svelte-CIbSDaPK.js} +14 -13
  168. package/build/server/chunks/_page.svelte-CIbSDaPK.js.map +1 -0
  169. package/build/server/chunks/{_page.svelte-BlmdSnTh.js → _page.svelte-DLXpqNHi.js} +9 -8
  170. package/build/server/chunks/_page.svelte-DLXpqNHi.js.map +1 -0
  171. package/build/server/chunks/{_page.svelte-ZYW4iSHn.js → _page.svelte-LdKBnnIv.js} +17 -16
  172. package/build/server/chunks/_page.svelte-LdKBnnIv.js.map +1 -0
  173. package/build/server/chunks/{_page.svelte-D50SWEhd.js → _page.svelte-QapG7T-C.js} +14 -13
  174. package/build/server/chunks/_page.svelte-QapG7T-C.js.map +1 -0
  175. package/build/server/chunks/{_page.svelte-D8GSKYqN.js → _page.svelte-vpZZN5HP.js} +67 -20
  176. package/build/server/chunks/_page.svelte-vpZZN5HP.js.map +1 -0
  177. package/build/server/chunks/client-sMN80nsW.js +7 -0
  178. package/build/server/chunks/{client-Cp5ag8tA.js.map → client-sMN80nsW.js.map} +1 -1
  179. package/build/server/chunks/{client2-Dos6p_Xm.js → client2-Win1ekWT.js} +4 -4
  180. package/build/server/chunks/client2-Win1ekWT.js.map +1 -0
  181. package/build/server/chunks/{context-C22hLSHK.js → context-8UI9xWgq.js} +2 -3
  182. package/build/server/chunks/context-8UI9xWgq.js.map +1 -0
  183. package/build/server/chunks/error.svelte-BxPCp8kk.js +18 -0
  184. package/build/server/chunks/{error.svelte-BBEhCLUJ.js.map → error.svelte-BxPCp8kk.js.map} +1 -1
  185. package/build/server/chunks/{exports-Cv9LZeD1.js → exports-CtTNDGe5.js} +6 -6
  186. package/build/server/chunks/exports-CtTNDGe5.js.map +1 -0
  187. package/build/server/chunks/{index2-DBFlGzWV.js → index-DOCFW0vv.js} +535 -27
  188. package/build/server/chunks/index-DOCFW0vv.js.map +1 -0
  189. package/build/server/chunks/{index-Djsj11qr.js → index-wpIsICWW.js} +6 -1
  190. package/build/server/chunks/index-wpIsICWW.js.map +1 -0
  191. package/build/server/chunks/{index-DFXVwu6p.js → index2-CJE0QJlP.js} +2 -2
  192. package/build/server/chunks/index2-CJE0QJlP.js.map +1 -0
  193. package/build/server/chunks/{index3-DANRthiW.js → index3-B-GW6G4t.js} +3 -3
  194. package/build/server/chunks/{index3-DANRthiW.js.map → index3-B-GW6G4t.js.map} +1 -1
  195. package/build/server/chunks/{mongo-Ndoh6fs5.js → mongo-CpQtfvt6.js} +30 -1
  196. package/build/server/chunks/mongo-CpQtfvt6.js.map +1 -0
  197. package/build/server/chunks/{remote-xxtqbu-fbBqzvFu.js → remote-xxtqbu-CnjCJBlx.js} +6 -5
  198. package/build/server/chunks/remote-xxtqbu-CnjCJBlx.js.map +1 -0
  199. package/build/server/chunks/{servers.remote-B1eorl4A.js → servers.remote-DFtFLNmW.js} +97 -91
  200. package/build/server/chunks/servers.remote-DFtFLNmW.js.map +1 -0
  201. package/build/server/chunks/{shared-CQd3A1I4.js → shared-LVlqpKFH.js} +35 -95
  202. package/build/server/chunks/shared-LVlqpKFH.js.map +1 -0
  203. package/build/server/chunks/{state.svelte-Dm0prnTp.js → state.svelte-Cv3Dtfl4.js} +2 -2
  204. package/build/server/chunks/state.svelte-Cv3Dtfl4.js.map +1 -0
  205. package/build/server/chunks/utils-D1ahxout.js.map +1 -1
  206. package/build/server/chunks/utils2-DrnJY_bz.js +91 -0
  207. package/build/server/chunks/utils2-DrnJY_bz.js.map +1 -0
  208. package/build/server/index.js +826 -672
  209. package/build/server/index.js.map +1 -1
  210. package/build/server/manifest.js +16 -16
  211. package/build/server/manifest.js.map +1 -1
  212. package/package.json +2 -2
  213. package/src/api/servers.remote.ts +62 -48
  214. package/src/lib/components/Panel.svelte +5 -2
  215. package/src/lib/components/SearchBox.svelte +153 -41
  216. package/src/lib/server/mongo.ts +41 -0
  217. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +40 -2
  218. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +8 -1
  219. package/build/client/_app/immutable/assets/0.C_geP4pp.css +0 -1
  220. package/build/client/_app/immutable/assets/0.C_geP4pp.css.br +0 -0
  221. package/build/client/_app/immutable/assets/0.C_geP4pp.css.gz +0 -0
  222. package/build/client/_app/immutable/chunks/B4aoEZ0v.js +0 -24
  223. package/build/client/_app/immutable/chunks/B4aoEZ0v.js.br +0 -0
  224. package/build/client/_app/immutable/chunks/B4aoEZ0v.js.gz +0 -0
  225. package/build/client/_app/immutable/chunks/BLB7WU0x.js +0 -1
  226. package/build/client/_app/immutable/chunks/BLB7WU0x.js.br +0 -0
  227. package/build/client/_app/immutable/chunks/BLB7WU0x.js.gz +0 -0
  228. package/build/client/_app/immutable/chunks/BLbeQvsT.js +0 -1
  229. package/build/client/_app/immutable/chunks/BLbeQvsT.js.br +0 -0
  230. package/build/client/_app/immutable/chunks/BLbeQvsT.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/BPstE8aZ.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/BPstE8aZ.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/Bf7BrxKt.js +0 -16
  234. package/build/client/_app/immutable/chunks/Bf7BrxKt.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/Bf7BrxKt.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/Bp2iD_PL.js +0 -1
  237. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/C7SHYyfv.js +0 -1
  240. package/build/client/_app/immutable/chunks/C7SHYyfv.js.br +0 -0
  241. package/build/client/_app/immutable/chunks/C7SHYyfv.js.gz +0 -0
  242. package/build/client/_app/immutable/chunks/CItzKczS.js +0 -1
  243. package/build/client/_app/immutable/chunks/CItzKczS.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/CItzKczS.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/CcZlJCRe.js +0 -1
  246. package/build/client/_app/immutable/chunks/CcZlJCRe.js.br +0 -0
  247. package/build/client/_app/immutable/chunks/CcZlJCRe.js.gz +0 -0
  248. package/build/client/_app/immutable/chunks/CqFYS5AV.js.br +0 -0
  249. package/build/client/_app/immutable/chunks/CqFYS5AV.js.gz +0 -0
  250. package/build/client/_app/immutable/chunks/DCMoR4xM.js +0 -4
  251. package/build/client/_app/immutable/chunks/DCMoR4xM.js.br +0 -0
  252. package/build/client/_app/immutable/chunks/DCMoR4xM.js.gz +0 -0
  253. package/build/client/_app/immutable/chunks/DOGFG_U4.js +0 -14
  254. package/build/client/_app/immutable/chunks/DOGFG_U4.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/DOGFG_U4.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/Dip-8jE5.js +0 -1
  257. package/build/client/_app/immutable/chunks/Dip-8jE5.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/Dip-8jE5.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/Dr_XE7iR.js +0 -2
  260. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/DuLpG1zT.js +0 -1
  263. package/build/client/_app/immutable/chunks/DuLpG1zT.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/DuLpG1zT.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/DyfVYlRP.js +0 -1
  266. package/build/client/_app/immutable/chunks/DyfVYlRP.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/DyfVYlRP.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/DzvdC2Gd.js +0 -1
  269. package/build/client/_app/immutable/chunks/DzvdC2Gd.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/DzvdC2Gd.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/OTbFjzBQ.js +0 -1
  272. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/TQ9V_LBO.js +0 -1
  275. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.gz +0 -0
  277. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js +0 -2
  278. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js.br +0 -0
  279. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js.gz +0 -0
  280. package/build/client/_app/immutable/entry/start.BSgvMa0e.js +0 -1
  281. package/build/client/_app/immutable/entry/start.BSgvMa0e.js.br +0 -0
  282. package/build/client/_app/immutable/entry/start.BSgvMa0e.js.gz +0 -0
  283. package/build/client/_app/immutable/nodes/0.D5oac--o.js +0 -1
  284. package/build/client/_app/immutable/nodes/0.D5oac--o.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/0.D5oac--o.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js +0 -1
  287. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js.br +0 -2
  288. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js.gz +0 -0
  289. package/build/client/_app/immutable/nodes/10.BW6wwszo.js +0 -3
  290. package/build/client/_app/immutable/nodes/10.BW6wwszo.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/10.BW6wwszo.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js +0 -1
  293. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js.br +0 -0
  294. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js.gz +0 -0
  295. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js +0 -1
  296. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/13.CPZtARGc.js +0 -65
  299. package/build/client/_app/immutable/nodes/13.CPZtARGc.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/13.CPZtARGc.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/7.4ml51zZU.js +0 -1
  310. package/build/client/_app/immutable/nodes/7.4ml51zZU.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/7.4ml51zZU.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js +0 -1
  313. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js +0 -2
  316. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js.br +0 -0
  317. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js.gz +0 -0
  318. package/build/server/chunks/0-B2WscjW7.js +0 -22
  319. package/build/server/chunks/0-B2WscjW7.js.map +0 -1
  320. package/build/server/chunks/1-B9coRC5J.js +0 -9
  321. package/build/server/chunks/1-B9coRC5J.js.map +0 -1
  322. package/build/server/chunks/10-Q8FxEohX.js.map +0 -1
  323. package/build/server/chunks/11-Dih8b_FT.js.map +0 -1
  324. package/build/server/chunks/12-BTYK-Nix.js.map +0 -1
  325. package/build/server/chunks/2-Bx656tbc.js.map +0 -1
  326. package/build/server/chunks/3-B-zRiOJV.js.map +0 -1
  327. package/build/server/chunks/4-BBCE4OIo.js.map +0 -1
  328. package/build/server/chunks/5-D68X5smv.js.map +0 -1
  329. package/build/server/chunks/7-BvrEDP0H.js.map +0 -1
  330. package/build/server/chunks/8-DVSIRfD_.js.map +0 -1
  331. package/build/server/chunks/9-DYUtK2qF.js.map +0 -1
  332. package/build/server/chunks/JsonValue-EppVzWzE.js.map +0 -1
  333. package/build/server/chunks/Modal-eRpc5lqR.js.map +0 -1
  334. package/build/server/chunks/Panel-HO9t9Spv.js.map +0 -1
  335. package/build/server/chunks/PrettyJson-F3fqxkqU.js.map +0 -1
  336. package/build/server/chunks/Tooltip-Dd-Bzogp.js.map +0 -1
  337. package/build/server/chunks/TooltipTable-jHWezlEs.js.map +0 -1
  338. package/build/server/chunks/_layout.svelte-CKGgUBvr.js.map +0 -1
  339. package/build/server/chunks/_page.svelte-BlmdSnTh.js.map +0 -1
  340. package/build/server/chunks/_page.svelte-ClZj6yzK.js.map +0 -1
  341. package/build/server/chunks/_page.svelte-D50SWEhd.js.map +0 -1
  342. package/build/server/chunks/_page.svelte-D8GSKYqN.js.map +0 -1
  343. package/build/server/chunks/_page.svelte-DBcsXxML.js.map +0 -1
  344. package/build/server/chunks/_page.svelte-ZYW4iSHn.js.map +0 -1
  345. package/build/server/chunks/client-Cp5ag8tA.js +0 -7
  346. package/build/server/chunks/client2-Dos6p_Xm.js.map +0 -1
  347. package/build/server/chunks/context-C22hLSHK.js.map +0 -1
  348. package/build/server/chunks/error.svelte-BBEhCLUJ.js +0 -18
  349. package/build/server/chunks/exports-Cv9LZeD1.js.map +0 -1
  350. package/build/server/chunks/index-DFXVwu6p.js.map +0 -1
  351. package/build/server/chunks/index-Djsj11qr.js.map +0 -1
  352. package/build/server/chunks/index2-DBFlGzWV.js.map +0 -1
  353. package/build/server/chunks/mongo-Ndoh6fs5.js.map +0 -1
  354. package/build/server/chunks/remote-xxtqbu-fbBqzvFu.js.map +0 -1
  355. package/build/server/chunks/servers.remote-B1eorl4A.js.map +0 -1
  356. package/build/server/chunks/shared-CQd3A1I4.js.map +0 -1
  357. package/build/server/chunks/state.svelte-Dm0prnTp.js.map +0 -1
  358. package/src/lib/components/TimeRangeStats.svelte +0 -269
@@ -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.BSgvMa0e.js",app:"_app/immutable/entry/app.jWGtrjtJ.js",imports:["_app/immutable/entry/start.BSgvMa0e.js","_app/immutable/chunks/DCMoR4xM.js","_app/immutable/chunks/Dr_XE7iR.js","_app/immutable/chunks/BLB7WU0x.js","_app/immutable/entry/app.jWGtrjtJ.js","_app/immutable/chunks/BLB7WU0x.js","_app/immutable/chunks/Dr_XE7iR.js","_app/immutable/chunks/Dip-8jE5.js","_app/immutable/chunks/DuLpG1zT.js","_app/immutable/chunks/CItzKczS.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.CRRkdSEH.js",app:"_app/immutable/entry/app.BYPYxahw.js",imports:["_app/immutable/entry/start.CRRkdSEH.js","_app/immutable/chunks/6o4NUMxB.js","_app/immutable/chunks/BYPjaq07.js","_app/immutable/chunks/CxcplU4Q.js","_app/immutable/entry/app.BYPYxahw.js","_app/immutable/chunks/BYPjaq07.js","_app/immutable/chunks/BnpHJF5-.js","_app/immutable/chunks/BUr91kOw.js","_app/immutable/chunks/CxcplU4Q.js","_app/immutable/chunks/CXNtxrhs.js","_app/immutable/chunks/B5NTIIm5.js","_app/immutable/chunks/Bl8s7Z6r.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-B2WscjW7.js')),
16
- __memo(() => import('./chunks/1-B9coRC5J.js')),
17
- __memo(() => import('./chunks/2-Bx656tbc.js')),
18
- __memo(() => import('./chunks/3-B-zRiOJV.js')),
19
- __memo(() => import('./chunks/4-BBCE4OIo.js')),
20
- __memo(() => import('./chunks/5-D68X5smv.js')),
21
- __memo(() => import('./chunks/6-ifXBeMPA.js')),
22
- __memo(() => import('./chunks/7-BvrEDP0H.js')),
23
- __memo(() => import('./chunks/8-DVSIRfD_.js')),
24
- __memo(() => import('./chunks/9-DYUtK2qF.js')),
25
- __memo(() => import('./chunks/10-Q8FxEohX.js')),
26
- __memo(() => import('./chunks/11-Dih8b_FT.js')),
27
- __memo(() => import('./chunks/12-BTYK-Nix.js')),
28
- __memo(() => import('./chunks/13-DANeaseJ.js'))
15
+ __memo(() => import('./chunks/0-ByAQ_mky.js')),
16
+ __memo(() => import('./chunks/1-CkUgKFo-.js')),
17
+ __memo(() => import('./chunks/2-DaZMexAs.js')),
18
+ __memo(() => import('./chunks/3-Dr4vFhF1.js')),
19
+ __memo(() => import('./chunks/4-K2WnEwm7.js')),
20
+ __memo(() => import('./chunks/5-Be-Du8oZ.js')),
21
+ __memo(() => import('./chunks/6-D70sM7i2.js')),
22
+ __memo(() => import('./chunks/7-DWYh4PEC.js')),
23
+ __memo(() => import('./chunks/8-Dfl6BJLs.js')),
24
+ __memo(() => import('./chunks/9-CPq-2rbs.js')),
25
+ __memo(() => import('./chunks/10-DidUeiYX.js')),
26
+ __memo(() => import('./chunks/11-BtuYt_Zq.js')),
27
+ __memo(() => import('./chunks/12-Z53CaPRW.js')),
28
+ __memo(() => import('./chunks/13-Dv_EpqWJ.js'))
29
29
  ],
30
30
  remotes: {
31
- 'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-fbBqzvFu.js'))
31
+ 'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-CnjCJBlx.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.BSgvMa0e.js\",app:\"_app/immutable/entry/app.jWGtrjtJ.js\",imports:[\"_app/immutable/entry/start.BSgvMa0e.js\",\"_app/immutable/chunks/DCMoR4xM.js\",\"_app/immutable/chunks/Dr_XE7iR.js\",\"_app/immutable/chunks/BLB7WU0x.js\",\"_app/immutable/entry/app.jWGtrjtJ.js\",\"_app/immutable/chunks/BLB7WU0x.js\",\"_app/immutable/chunks/Dr_XE7iR.js\",\"_app/immutable/chunks/Dip-8jE5.js\",\"_app/immutable/chunks/DuLpG1zT.js\",\"_app/immutable/chunks/CItzKczS.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.CRRkdSEH.js\",app:\"_app/immutable/entry/app.BYPYxahw.js\",imports:[\"_app/immutable/entry/start.CRRkdSEH.js\",\"_app/immutable/chunks/6o4NUMxB.js\",\"_app/immutable/chunks/BYPjaq07.js\",\"_app/immutable/chunks/CxcplU4Q.js\",\"_app/immutable/entry/app.BYPYxahw.js\",\"_app/immutable/chunks/BYPjaq07.js\",\"_app/immutable/chunks/BnpHJF5-.js\",\"_app/immutable/chunks/BUr91kOw.js\",\"_app/immutable/chunks/CxcplU4Q.js\",\"_app/immutable/chunks/CXNtxrhs.js\",\"_app/immutable/chunks/B5NTIIm5.js\",\"_app/immutable/chunks/Bl8s7Z6r.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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongoku",
3
- "version": "2.4.7",
3
+ "version": "2.5.0-compat",
4
4
  "license": "MIT",
5
5
  "author": "Anthony Moi <m.anthony.moi@gmail.com>",
6
6
  "type": "module",
@@ -50,7 +50,7 @@
50
50
  "@fontsource/cuprum": "^5.2.8",
51
51
  "@fontsource/rajdhani": "^5.2.7",
52
52
  "@sveltejs/adapter-node": "^5.3.3",
53
- "@sveltejs/kit": "^2.43.2",
53
+ "@sveltejs/kit": "^2.49.5",
54
54
  "@sveltejs/vite-plugin-svelte": "^6.2.0",
55
55
  "@tailwindcss/vite": "^4.1.14",
56
56
  "@types/esprima": "^4.0.6",
@@ -195,7 +195,7 @@ export const updateMany = command(
195
195
  const coll = client.db(database).collection(collection);
196
196
 
197
197
  const filterDoc = JsonEncoder.decode(parseJSON(filter));
198
- const updateDoc = JsonEncoder.decode(parseJSON(update));
198
+ const updateDoc = JsonEncoder.decode(parseJSON(update, { allowArray: true }));
199
199
 
200
200
  const result = await coll.updateMany(filterDoc, updateDoc);
201
201
 
@@ -207,8 +207,8 @@ export const updateMany = command(
207
207
  },
208
208
  );
209
209
 
210
- // Count documents matching a filter
211
- export const countDocuments = query(
210
+ // Count documents matching a filter - uses `command` to avoid URL length limits
211
+ export const countDocuments = command(
212
212
  z.object({
213
213
  server: z.string(),
214
214
  database: z.string(),
@@ -462,8 +462,8 @@ export const retryConnection = command(z.string(), async (serverId) => {
462
462
  return { ok: true };
463
463
  });
464
464
 
465
- // Load documents from a collection
466
- export const loadDocuments = query(
465
+ // Load documents from a collection - uses `command` to avoid URL length limits
466
+ export const loadDocuments = command(
467
467
  z.object({
468
468
  server: z.string(),
469
469
  database: z.string(),
@@ -953,63 +953,77 @@ export const explainQuery = query(
953
953
  },
954
954
  );
955
955
 
956
- // Count documents created within a time range (based on ObjectId timestamp)
956
+ // Count documents created within a time range (based on ObjectId timestamp or createdAt field)
957
957
  export const countDocumentsByTimeRange = query(
958
958
  z.object({
959
959
  server: z.string(),
960
960
  database: z.string(),
961
961
  collection: z.string(),
962
- timeRanges: z.array(
963
- z.object({
964
- label: z.string(),
965
- days: z.number(),
966
- }),
967
- ),
962
+ days: z.number(),
963
+ query: z.string().optional(),
968
964
  }),
969
- async ({ server, database, collection, timeRanges }) => {
965
+ async ({
966
+ server,
967
+ database,
968
+ collection,
969
+ days,
970
+ query: queryStr,
971
+ }): Promise<{ count: number | null; error: string | null }> => {
970
972
  const mongo = await getMongo();
971
973
  const client = mongo.getClient(server);
972
974
  const coll = client.db(database).collection(collection);
973
975
 
976
+ // Parse the base query if provided
977
+ let baseQuery: Document = {};
978
+ if (queryStr) {
979
+ try {
980
+ const parsed = parseJSON(queryStr);
981
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
982
+ baseQuery = JsonEncoder.encode(parsed) as Document;
983
+ }
984
+ } catch {
985
+ // If parsing fails, ignore the query
986
+ }
987
+ }
988
+
989
+ // Check if _id has a creation timestamp (is ObjectId with embedded date)
990
+ // Use createdAt field ONLY if _id doesn't have a date AND there's an index on createdAt
991
+ let useCreatedAt = false;
974
992
  try {
975
- const results = await Promise.all(
976
- timeRanges.map(async ({ label, days }) => {
977
- // Calculate the timestamp for X days ago
978
- const dateThreshold = new Date();
979
- dateThreshold.setDate(dateThreshold.getDate() - days);
980
-
981
- // Create ObjectId from timestamp
982
- // ObjectId's first 4 bytes are the Unix timestamp
983
- const objectIdThreshold = ObjectId.createFromTime(Math.floor(dateThreshold.getTime() / 1000));
984
-
985
- try {
986
- const count = await coll.countDocuments(
987
- { _id: { $gte: objectIdThreshold } },
988
- { maxTimeMS: mongo.getCountTimeout() },
989
- );
990
- return { label, days, count, error: null };
991
- } catch (err) {
992
- logger.error(`Error counting documents for ${label}:`, err);
993
- return {
994
- label,
995
- days,
996
- count: null,
997
- error: err instanceof Error ? err.message : String(err),
998
- };
993
+ const sample = await coll.findOne({}, { projection: { _id: 1, createdAt: 1 }, maxTimeMS: 5000 });
994
+ if (sample) {
995
+ const idIsObjectId = sample._id instanceof ObjectId;
996
+ if (!idIsObjectId) {
997
+ if (sample.createdAt instanceof Date && (await client.hasIndexOnField(database, collection, "createdAt"))) {
998
+ useCreatedAt = true;
999
+ } else {
1000
+ return { count: null, error: "Cannot determine document age (no ObjectId or createdAt field)" };
999
1001
  }
1000
- }),
1001
- );
1002
+ }
1003
+ }
1004
+ } catch {
1005
+ // If sampling fails, default to ObjectId
1006
+ }
1002
1007
 
1003
- return {
1004
- data: results,
1005
- error: null,
1006
- };
1008
+ const dateThreshold = new Date();
1009
+ dateThreshold.setDate(dateThreshold.getDate() - days);
1010
+
1011
+ // Build filter based on _id type, merged with base query
1012
+ let filter: Document;
1013
+ if (useCreatedAt) {
1014
+ filter = { ...baseQuery, createdAt: { $gte: dateThreshold } };
1015
+ } else {
1016
+ const objectIdThreshold = ObjectId.createFromTime(Math.floor(dateThreshold.getTime() / 1000));
1017
+ filter = { ...baseQuery, _id: { $gte: objectIdThreshold } };
1018
+ }
1019
+
1020
+ try {
1021
+ const count = await coll.countDocuments(filter, { maxTimeMS: mongo.getCountTimeout() });
1022
+ return { count, error: null };
1007
1023
  } catch (err) {
1008
- logger.error("Error counting documents by time range:", err);
1009
- return {
1010
- data: null,
1011
- error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`,
1012
- };
1024
+ logger.error(`Error counting documents for ${days} days:`, err);
1025
+ const errorMsg = err instanceof Error ? err.message : String(err);
1026
+ return { count: null, error: errorMsg };
1013
1027
  }
1014
1028
  },
1015
1029
  );
@@ -17,7 +17,7 @@
17
17
  bind:this={ref}
18
18
  class="rounded-2xl border border-[var(--border-color)] bg-[var(--light-background)]/70 shadow-sm {className}"
19
19
  >
20
- {#if title}
20
+ {#if title || actions}
21
21
  <div
22
22
  class="px-3 sm:px-4 py-2 flex justify-between items-center {children
23
23
  ? 'border-b border-[var(--border-color)]'
@@ -26,8 +26,11 @@
26
26
  <div class="text-sm font-medium {titleClass}" style="color: var(--text);">
27
27
  {#if typeof title === "string"}
28
28
  <span>{title}</span>
29
- {:else}
29
+ {:else if title}
30
30
  {@render title()}
31
+ {:else}
32
+ <!-- to maintain the height of the panel title, for actions -->
33
+ &nbsp;
31
34
  {/if}
32
35
  </div>
33
36
  {#if actions}
@@ -10,14 +10,20 @@
10
10
  import IconEdit from "$lib/icons/IconEdit.svelte";
11
11
  import type { SearchParams } from "$lib/types";
12
12
  import { formatNumber } from "$lib/utils/filters";
13
+ import { parseJSON, serializeForEditing } from "$lib/utils/jsonParser";
13
14
  import { tick } from "svelte";
14
15
 
16
+ // Threshold for URL length before switching to remote function call - see https://stackoverflow.com/questions/32763165/node-js-http-get-url-length-limitation
17
+ const URL_LENGTH_THRESHOLD = 20_000;
18
+
15
19
  interface Props {
16
20
  params: SearchParams;
17
21
  editMode?: boolean;
18
22
  readonly: boolean;
19
23
  explainLoading?: boolean;
20
24
  onexplain?: () => void;
25
+ /** Callback for when URL would be too long - called with params instead of navigating */
26
+ onsearch?: (params: SearchParams) => void;
21
27
  server?: string;
22
28
  database?: string;
23
29
  collection?: string;
@@ -29,6 +35,7 @@
29
35
  readonly = $bindable(false),
30
36
  explainLoading = false,
31
37
  onexplain,
38
+ onsearch,
32
39
  server,
33
40
  database,
34
41
  collection,
@@ -47,6 +54,52 @@
47
54
  let modeButtonElement = $state<HTMLButtonElement>();
48
55
  let dropdownPosition = $state({ left: "0px", top: "0px", minWidth: "140px" });
49
56
 
57
+ // Track if query input should be multiline (textarea) vs single line (input)
58
+ let queryMultiline = $derived(params.query?.includes("\n") ?? false);
59
+
60
+ function handleQueryKeydown(event: KeyboardEvent) {
61
+ if (event.key === "Enter" && event.shiftKey) {
62
+ event.preventDefault();
63
+ const input = event.target as HTMLInputElement;
64
+ const cursorPos = input.selectionStart ?? 0;
65
+ const before = params.query.slice(0, cursorPos);
66
+ const after = params.query.slice(cursorPos);
67
+
68
+ // Insert newline - this will trigger queryMultiline to become true
69
+ params.query = before + "\n" + after;
70
+
71
+ // After textarea renders, set cursor after the newline
72
+ tick().then(() => {
73
+ tick().then(() => {
74
+ queryInput?.setSelectionRange(cursorPos + 1, cursorPos + 1);
75
+ });
76
+ });
77
+ }
78
+ }
79
+
80
+ function handleQueryPaste(event: ClipboardEvent) {
81
+ const pastedText = event.clipboardData?.getData("text");
82
+ if (pastedText && pastedText.includes("\n")) {
83
+ event.preventDefault();
84
+ const input = event.target as HTMLInputElement;
85
+ const cursorPos = input.selectionStart ?? 0;
86
+ const selectionEnd = input.selectionEnd ?? cursorPos;
87
+ const before = params.query.slice(0, cursorPos);
88
+ const after = params.query.slice(selectionEnd);
89
+
90
+ // Insert pasted text - this will trigger queryMultiline to become true
91
+ params.query = before + pastedText + after;
92
+
93
+ // After textarea renders, set cursor after pasted text
94
+ const newCursorPos = cursorPos + pastedText.length;
95
+ tick().then(() => {
96
+ tick().then(() => {
97
+ queryInput?.setSelectionRange(newCursorPos, newCursorPos);
98
+ });
99
+ });
100
+ }
101
+ }
102
+
50
103
  // Calculate dropdown position when shown
51
104
  $effect(() => {
52
105
  if (showModeDropdown && modeButtonElement) {
@@ -82,6 +135,18 @@
82
135
 
83
136
  const formData = new FormData(form);
84
137
 
138
+ const queryString = [...formData.entries()]
139
+ .map((e) => encodeURIComponent(e[0]) + "=" + encodeURIComponent(e[1] as string))
140
+ .join("&");
141
+
142
+ const fullUrl = page.url.pathname + "?" + queryString;
143
+
144
+ // If URL is too long and we have a callback, use remote function instead
145
+ if (fullUrl.length > URL_LENGTH_THRESHOLD && onsearch) {
146
+ onsearch(params);
147
+ return;
148
+ }
149
+
85
150
  await goto(
86
151
  resolve(
87
152
  (page.url.pathname +
@@ -133,7 +198,10 @@
133
198
  let newDocsButtonElement = $state<HTMLButtonElement>();
134
199
  let newDocsDropdownPosition = $state({ left: "0px", top: "0px", minWidth: "200px" });
135
200
  let isStatsLoading = $state(false);
136
- let stats = $state<Array<{ label: string; days: number; count: number | null; error: string | null }> | null>(null);
201
+ let lastStatsQuery = $state<string | undefined>(undefined);
202
+ let stats = $state<
203
+ Array<{ label: string; days: number; count: number | null; error: string | null; loading?: boolean }>
204
+ >(TIME_RANGES.map((r) => ({ ...r, count: null, error: null, loading: false })));
137
205
 
138
206
  // Calculate New Docs dropdown position when shown
139
207
  $effect(() => {
@@ -154,25 +222,44 @@
154
222
  if (!server || !database || !collection || isStatsLoading) return;
155
223
 
156
224
  isStatsLoading = true;
157
- try {
158
- const result = await countDocumentsByTimeRange({
159
- server,
160
- database,
161
- collection,
162
- timeRanges: TIME_RANGES,
163
- });
164
-
165
- if (!result.error) {
166
- stats = result.data;
225
+ // Reset all stats to loading state
226
+ stats = TIME_RANGES.map((r) => ({ ...r, count: null, error: null, loading: true }));
227
+
228
+ // Get current query to merge with time filter (only for query mode, not aggregation)
229
+ const currentQuery = params.mode === "query" ? params.query : undefined;
230
+ lastStatsQuery = currentQuery;
231
+
232
+ // Load each time range separately (sequentially, shortest first)
233
+ for (let i = 0; i < TIME_RANGES.length; i++) {
234
+ const range = TIME_RANGES[i];
235
+ try {
236
+ const result = await countDocumentsByTimeRange({
237
+ server,
238
+ database,
239
+ collection,
240
+ days: range.days,
241
+ query: currentQuery,
242
+ });
243
+
244
+ stats[i] = { ...range, count: result.count, error: result.error, loading: false };
245
+ } catch (err) {
246
+ stats[i] = { ...range, count: null, error: err instanceof Error ? err.message : String(err), loading: false };
167
247
  }
168
- } finally {
169
- isStatsLoading = false;
170
248
  }
249
+
250
+ isStatsLoading = false;
171
251
  }
172
252
 
173
253
  function toggleNewDocsDropdown() {
174
254
  showNewDocsDropdown = !showNewDocsDropdown;
175
- if (showNewDocsDropdown && stats === null) {
255
+ if (!showNewDocsDropdown) return;
256
+
257
+ // Reload stats if never loaded, or if the query has changed
258
+ const currentQuery = params.mode === "query" ? params.query : undefined;
259
+ const needsReload =
260
+ stats.every((s) => s.count === null && !s.error && !s.loading) || lastStatsQuery !== currentQuery;
261
+
262
+ if (needsReload) {
176
263
  loadStats();
177
264
  }
178
265
  }
@@ -185,9 +272,22 @@
185
272
 
186
273
  // Create ObjectId hex string from timestamp (first 4 bytes are timestamp)
187
274
  const objectIdHex = timestamp.toString(16).padStart(8, "0") + "0000000000000000";
275
+ const idFilter = { $gte: { $type: "ObjectId", $value: objectIdHex } };
276
+
277
+ // Try to merge with existing query, overwriting _id
278
+ let newQuery = `{_id: {$gte: ObjectId("${objectIdHex}")}}`;
279
+
280
+ try {
281
+ const currentQuery = parseJSON(params.query);
282
+ if (currentQuery && typeof currentQuery === "object" && !Array.isArray(currentQuery)) {
283
+ const merged = { ...(currentQuery as Record<string, unknown>), _id: idFilter };
284
+ newQuery = serializeForEditing(merged);
285
+ }
286
+ } catch {
287
+ // If parsing fails, just use the simple _id filter
288
+ }
188
289
 
189
- // Set the query with the ObjectId filter
190
- params.query = `{_id: {$gte: ObjectId("${objectIdHex}")}}`;
290
+ params.query = newQuery;
191
291
  params.mode = "query";
192
292
  showNewDocsDropdown = false;
193
293
 
@@ -237,6 +337,17 @@
237
337
  class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
238
338
  style="color: var(--text);"
239
339
  />
340
+ {:else if queryMultiline}
341
+ <textarea
342
+ bind:this={queryInput}
343
+ bind:value={params.query}
344
+ placeholder={"{}"}
345
+ name="query"
346
+ rows="5"
347
+ use:jsonTextarea={{ onsubmit: () => form?.requestSubmit() }}
348
+ class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y"
349
+ style="color: var(--text);"
350
+ ></textarea>
240
351
  {:else}
241
352
  <input
242
353
  type="text"
@@ -246,6 +357,8 @@
246
357
  name="query"
247
358
  class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none"
248
359
  style="color: var(--text);"
360
+ onkeydown={handleQueryKeydown}
361
+ onpaste={handleQueryPaste}
249
362
  />
250
363
  {/if}
251
364
  </div>
@@ -462,31 +575,30 @@
462
575
  style:top={newDocsDropdownPosition.top}
463
576
  style:min-width={newDocsDropdownPosition.minWidth}
464
577
  >
465
- {#if isStatsLoading}
466
- <div class="px-3 py-2 text-[13px]" style="color: var(--text-secondary);">Loading...</div>
467
- {:else if stats && stats.length > 0}
468
- {#each stats as stat (stat.label)}
469
- <button
470
- type="button"
471
- class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer flex justify-between items-center"
472
- style="color: var(--text);"
473
- onclick={() => selectTimeRange(stat.days)}
474
- >
475
- <span>{stat.label}</span>
476
- <span class="font-medium tabular-nums" style="color: var(--text-secondary);">
477
- {#if stat.error}
478
- ⚠️
479
- {:else if stat.count !== null}
480
- {formatNumber(stat.count)}
481
- {:else}
482
-
483
- {/if}
484
- </span>
485
- </button>
486
- {/each}
487
- {:else}
488
- <div class="px-3 py-2 text-[13px]" style="color: var(--text-secondary);">No data available</div>
489
- {/if}
578
+ {#each stats as stat (stat.label)}
579
+ <button
580
+ type="button"
581
+ class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer flex justify-between items-center"
582
+ style="color: var(--text);"
583
+ onclick={() => selectTimeRange(stat.days)}
584
+ disabled={stat.loading}
585
+ >
586
+ <span>{stat.label}</span>
587
+ <span class="font-medium tabular-nums" style="color: var(--text-secondary);">
588
+ {#if stat.loading}
589
+ <span
590
+ class="inline-block w-3 h-3 border-2 border-[var(--border-color)] border-t-[var(--link)] rounded-full animate-spin"
591
+ ></span>
592
+ {:else if stat.error}
593
+ ⚠️
594
+ {:else if stat.count !== null}
595
+ {formatNumber(stat.count)}
596
+ {:else}
597
+
598
+ {/if}
599
+ </span>
600
+ </button>
601
+ {/each}
490
602
  </div>
491
603
  {/if}
492
604
 
@@ -123,9 +123,17 @@ export async function extractNodesFromConnectionString(connectionString: string)
123
123
  throw new TypeError(`Unsupported protocol: ${url.protocol}`);
124
124
  }
125
125
 
126
+ export type IndexKey = Record<string, 1 | -1 | string>;
127
+
128
+ export interface CachedIndex {
129
+ name: string;
130
+ key: IndexKey;
131
+ }
132
+
126
133
  class MongoClientWithMappings extends MongoClient {
127
134
  url: string;
128
135
  mappings: Record<string, Record<string, Mappings>> = {};
136
+ indexes: Record<string, Record<string, CachedIndex[]>> = {};
129
137
  _id: string;
130
138
  name: string;
131
139
 
@@ -146,9 +154,42 @@ class MongoClientWithMappings extends MongoClient {
146
154
  }
147
155
  return this.mappings[dbName][collectionName];
148
156
  }
157
+
149
158
  clearMappingsCache(dbName: string, collectionName: string) {
150
159
  delete this.mappings[dbName][collectionName];
151
160
  }
161
+
162
+ async getIndexes(dbName: string, collectionName: string, opts?: { forceRefresh?: boolean }): Promise<CachedIndex[]> {
163
+ if (opts?.forceRefresh || !this.indexes[dbName]?.[collectionName]) {
164
+ const indexList = await this.db(dbName).collection(collectionName).listIndexes().toArray();
165
+ this.indexes[dbName] ??= {};
166
+ this.indexes[dbName][collectionName] = indexList.map((index) => ({
167
+ name: index.name,
168
+ key: index.key as IndexKey,
169
+ }));
170
+ }
171
+ return this.indexes[dbName][collectionName];
172
+ }
173
+
174
+ setIndexes(dbName: string, collectionName: string, indexes: CachedIndex[]) {
175
+ this.indexes[dbName] ??= {};
176
+ this.indexes[dbName][collectionName] = indexes;
177
+ }
178
+
179
+ clearIndexesCache(dbName: string, collectionName: string) {
180
+ delete this.indexes[dbName]?.[collectionName];
181
+ }
182
+
183
+ /**
184
+ * Check if a field has an index (as the first key in the index)
185
+ */
186
+ async hasIndexOnField(dbName: string, collectionName: string, field: string): Promise<boolean> {
187
+ const indexes = await this.getIndexes(dbName, collectionName);
188
+ return indexes.some((index) => {
189
+ const keys = Object.keys(index.key);
190
+ return keys[0] === field;
191
+ });
192
+ }
152
193
  }
153
194
 
154
195
  class MongoConnections {