mongoku 2.9.2 → 2.10.0

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 (459) hide show
  1. package/build/client/_app/immutable/assets/0.D8aXA7G5.css +1 -0
  2. package/build/client/_app/immutable/assets/0.D8aXA7G5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.D8aXA7G5.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/10.-WSj0hXT.css +1 -0
  5. package/build/client/_app/immutable/assets/10.-WSj0hXT.css.br +1 -0
  6. package/build/client/_app/immutable/assets/10.-WSj0hXT.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/16.BpmHh9U0.css +1 -0
  8. package/build/client/_app/immutable/assets/16.BpmHh9U0.css.br +0 -0
  9. package/build/client/_app/immutable/assets/16.BpmHh9U0.css.gz +0 -0
  10. package/build/client/_app/immutable/chunks/-8z-rXzu.js +1 -0
  11. package/build/client/_app/immutable/chunks/-8z-rXzu.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/-8z-rXzu.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/ADrS3reX.js +1 -0
  14. package/build/client/_app/immutable/chunks/ADrS3reX.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/ADrS3reX.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/B2jd13FV.js +4 -0
  17. package/build/client/_app/immutable/chunks/B2jd13FV.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/B2jd13FV.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/B3A9hx44.js +1 -0
  20. package/build/client/_app/immutable/chunks/B3A9hx44.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/B3A9hx44.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/B48saTbS.js +1 -0
  23. package/build/client/_app/immutable/chunks/B48saTbS.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/B48saTbS.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{DCAtHodH.js → BCQ_Gxjq.js} +2 -2
  26. package/build/client/_app/immutable/chunks/BCQ_Gxjq.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BCQ_Gxjq.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BE54Cy37.js +1 -0
  29. package/build/client/_app/immutable/chunks/BE54Cy37.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BE54Cy37.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/C5BvtFsa.js +1 -0
  32. package/build/client/_app/immutable/chunks/C5BvtFsa.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/C5BvtFsa.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/C5dXZyme.js +1 -0
  35. package/build/client/_app/immutable/chunks/C5dXZyme.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/C5dXZyme.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{IixngxlS.js → CFdm8ab0.js} +2 -2
  38. package/build/client/_app/immutable/chunks/CFdm8ab0.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/CFdm8ab0.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/CUBPtF8t.js +65 -0
  41. package/build/client/_app/immutable/chunks/CUBPtF8t.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CUBPtF8t.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/{9xpgPu5N.js → Cf6RCjfg.js} +1 -1
  44. package/build/client/_app/immutable/chunks/Cf6RCjfg.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/Cf6RCjfg.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{Dzt_TFtX.js → CmmE3z9D.js} +1 -1
  47. package/build/client/_app/immutable/chunks/CmmE3z9D.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CmmE3z9D.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/CrLGr586.js +2 -0
  50. package/build/client/_app/immutable/chunks/CrLGr586.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/CrLGr586.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/CyTV7fHl.js +1 -0
  53. package/build/client/_app/immutable/chunks/CyTV7fHl.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/CyTV7fHl.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/{CTk2PBcX.js → DFOCkNuT.js} +1 -1
  56. package/build/client/_app/immutable/chunks/DFOCkNuT.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DFOCkNuT.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DKMyRjux.js +1 -0
  59. package/build/client/_app/immutable/chunks/DKMyRjux.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DKMyRjux.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/DO0gnjpd.js +1 -0
  62. package/build/client/_app/immutable/chunks/DO0gnjpd.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/DO0gnjpd.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/DVIi8uNn.js +1 -0
  65. package/build/client/_app/immutable/chunks/DVIi8uNn.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/DVIi8uNn.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/Dc47-4iR.js +1 -0
  68. package/build/client/_app/immutable/chunks/Dc47-4iR.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/Dc47-4iR.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/Ddz9xOa-.js +1 -0
  71. package/build/client/_app/immutable/chunks/Ddz9xOa-.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/Ddz9xOa-.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/{IwGwbOe7.js → DfW1b8bA.js} +1 -1
  74. package/build/client/_app/immutable/chunks/DfW1b8bA.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/{IwGwbOe7.js.gz → DfW1b8bA.js.gz} +0 -0
  76. package/build/client/_app/immutable/chunks/Dfjkeakv.js +1 -0
  77. package/build/client/_app/immutable/chunks/Dfjkeakv.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/Dfjkeakv.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{ChWGK2Ce.js → DgwByHCB.js} +1 -1
  80. package/build/client/_app/immutable/chunks/DgwByHCB.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/DgwByHCB.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/DupjJGFi.js +1 -0
  83. package/build/client/_app/immutable/chunks/DupjJGFi.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/DupjJGFi.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/DymqlScG.js +1 -0
  86. package/build/client/_app/immutable/chunks/DymqlScG.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/DymqlScG.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/{Z7BFksgg.js → J9ZSs_8c.js} +1 -1
  89. package/build/client/_app/immutable/chunks/J9ZSs_8c.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/J9ZSs_8c.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/{CKvueigk.js → OvZJ6gNJ.js} +1 -1
  92. package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/URA3nPWG.js +1 -0
  95. package/build/client/_app/immutable/chunks/URA3nPWG.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/URA3nPWG.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/_rBAec6D.js +1 -0
  98. package/build/client/_app/immutable/chunks/_rBAec6D.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/_rBAec6D.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/oSuzXE6i.js +1 -0
  101. package/build/client/_app/immutable/chunks/oSuzXE6i.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/oSuzXE6i.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/wZh6TcLb.js +2 -0
  104. package/build/client/_app/immutable/chunks/wZh6TcLb.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/wZh6TcLb.js.gz +0 -0
  106. package/build/client/_app/immutable/entry/app.Dohu_2eh.js +2 -0
  107. package/build/client/_app/immutable/entry/app.Dohu_2eh.js.br +0 -0
  108. package/build/client/_app/immutable/entry/app.Dohu_2eh.js.gz +0 -0
  109. package/build/client/_app/immutable/entry/start.DDHa2d-g.js +1 -0
  110. package/build/client/_app/immutable/entry/start.DDHa2d-g.js.br +0 -0
  111. package/build/client/_app/immutable/entry/start.DDHa2d-g.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/0.CfO6UFBT.js +1 -0
  113. package/build/client/_app/immutable/nodes/0.CfO6UFBT.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/0.CfO6UFBT.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/1.DmCvW_N2.js +1 -0
  116. package/build/client/_app/immutable/nodes/1.DmCvW_N2.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/1.DmCvW_N2.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/10.DXfooZeN.js +2 -0
  119. package/build/client/_app/immutable/nodes/10.DXfooZeN.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/10.DXfooZeN.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/11.D3RjJxHn.js +6 -0
  122. package/build/client/_app/immutable/nodes/11.D3RjJxHn.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/11.D3RjJxHn.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/{12.CuCxLKQr.js → 12.BSCHL8Wv.js} +1 -1
  125. package/build/client/_app/immutable/nodes/12.BSCHL8Wv.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/12.BSCHL8Wv.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/13.BUZC3U5h.js +1 -0
  128. package/build/client/_app/immutable/nodes/13.BUZC3U5h.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/13.BUZC3U5h.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/14.DzivuL8z.js +65 -0
  131. package/build/client/_app/immutable/nodes/14.DzivuL8z.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/14.DzivuL8z.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/15.BqJSmWZ_.js +1 -0
  134. package/build/client/_app/immutable/nodes/15.BqJSmWZ_.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/15.BqJSmWZ_.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/16.wrfG8awE.js +1 -0
  137. package/build/client/_app/immutable/nodes/16.wrfG8awE.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/16.wrfG8awE.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{2.Bai-TIgH.js → 2.6jE8uEJq.js} +1 -1
  140. package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{3.ev9oAmrG.js → 3.C59rlT3p.js} +1 -1
  143. package/build/client/_app/immutable/nodes/3.C59rlT3p.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/3.C59rlT3p.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js +1 -0
  146. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/{5.CyK0fI1l.js → 5.Cu8LcB5H.js} +1 -1
  149. package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/7.OZHRLJkf.js +1 -0
  152. package/build/client/_app/immutable/nodes/7.OZHRLJkf.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/7.OZHRLJkf.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/8.FO3bdL0t.js +2 -0
  155. package/build/client/_app/immutable/nodes/8.FO3bdL0t.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/8.FO3bdL0t.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/9.YByd0d9H.js +1 -0
  158. package/build/client/_app/immutable/nodes/9.YByd0d9H.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/9.YByd0d9H.js.gz +0 -0
  160. package/build/client/_app/version.json +1 -1
  161. package/build/client/_app/version.json.br +0 -0
  162. package/build/client/_app/version.json.gz +0 -0
  163. package/build/server/chunks/0-DmENzvkm.js +32 -0
  164. package/build/server/chunks/0-DmENzvkm.js.map +1 -0
  165. package/build/server/chunks/1-DrWvtmhM.js +9 -0
  166. package/build/server/chunks/{1-lx7f4PWt.js.map → 1-DrWvtmhM.js.map} +1 -1
  167. package/build/server/chunks/10-Dya2sI8O.js +43 -0
  168. package/build/server/chunks/10-Dya2sI8O.js.map +1 -0
  169. package/build/server/chunks/{11-BEDQUU1_.js → 11-zfpbmXhF.js} +5 -24
  170. package/build/server/chunks/11-zfpbmXhF.js.map +1 -0
  171. package/build/server/chunks/{12-CzhXMlU9.js → 12-CqW8vg1C.js} +4 -5
  172. package/build/server/chunks/12-CqW8vg1C.js.map +1 -0
  173. package/build/server/chunks/{13-D1eLiA_r.js → 13-DlmjNDSw.js} +5 -24
  174. package/build/server/chunks/13-DlmjNDSw.js.map +1 -0
  175. package/build/server/chunks/14-Bu7VU4oX.js +38 -0
  176. package/build/server/chunks/14-Bu7VU4oX.js.map +1 -0
  177. package/build/server/chunks/15-DamzcyR0.js +48 -0
  178. package/build/server/chunks/15-DamzcyR0.js.map +1 -0
  179. package/build/server/chunks/16-D0Gv3LNT.js +46 -0
  180. package/build/server/chunks/16-D0Gv3LNT.js.map +1 -0
  181. package/build/server/chunks/{2-ckJpvP-Z.js → 2-DGpX4fMQ.js} +2 -2
  182. package/build/server/chunks/{2-ckJpvP-Z.js.map → 2-DGpX4fMQ.js.map} +1 -1
  183. package/build/server/chunks/{3-TPjZ0P0_.js → 3-CwHfLh5P.js} +2 -2
  184. package/build/server/chunks/{3-TPjZ0P0_.js.map → 3-CwHfLh5P.js.map} +1 -1
  185. package/build/server/chunks/{4-DoW1zEiI.js → 4-B5F5-cxe.js} +10 -2
  186. package/build/server/chunks/4-B5F5-cxe.js.map +1 -0
  187. package/build/server/chunks/{5-cZ6VD-C-.js → 5-CxqBB_6c.js} +2 -2
  188. package/build/server/chunks/{5-cZ6VD-C-.js.map → 5-CxqBB_6c.js.map} +1 -1
  189. package/build/server/chunks/{6-eXO6RVDu.js → 6-Qus887OP.js} +3 -2
  190. package/build/server/chunks/{6-eXO6RVDu.js.map → 6-Qus887OP.js.map} +1 -1
  191. package/build/server/chunks/{7-BmJzLrSm.js → 7-DSWLUW8e.js} +6 -5
  192. package/build/server/chunks/{7-BmJzLrSm.js.map → 7-DSWLUW8e.js.map} +1 -1
  193. package/build/server/chunks/{8-Ba9OHB5H.js → 8-CWn7ZxmV.js} +4 -5
  194. package/build/server/chunks/8-CWn7ZxmV.js.map +1 -0
  195. package/build/server/chunks/{9-DSgRe_DY.js → 9-B4pg_rCS.js} +4 -5
  196. package/build/server/chunks/9-B4pg_rCS.js.map +1 -0
  197. package/build/server/chunks/IconChevronDown-D8V4kB6o.js +10 -0
  198. package/build/server/chunks/IconChevronDown-D8V4kB6o.js.map +1 -0
  199. package/build/server/chunks/{JsonValue-CGVfzyTL.js → JsonValue-B-iqFShN.js} +4 -3
  200. package/build/server/chunks/JsonValue-B-iqFShN.js.map +1 -0
  201. package/build/server/chunks/{Modal-D2E5OLRi.js → Modal-D10te4nR.js} +2 -2
  202. package/build/server/chunks/Modal-D10te4nR.js.map +1 -0
  203. package/build/server/chunks/{Panel-C6VWd6JD.js → Panel-CBztHh2Y.js} +2 -2
  204. package/build/server/chunks/Panel-CBztHh2Y.js.map +1 -0
  205. package/build/server/chunks/{PrettyJson-Bo4UtQ1o.js → PrettyJson-Dz5fCjPq.js} +6 -6
  206. package/build/server/chunks/PrettyJson-Dz5fCjPq.js.map +1 -0
  207. package/build/server/chunks/{Tooltip-OVylvwfb.js → Tooltip-BHX9gIpe.js} +2 -2
  208. package/build/server/chunks/Tooltip-BHX9gIpe.js.map +1 -0
  209. package/build/server/chunks/{TooltipTable-CLglfpck.js → TooltipTable-BIwNd3UB.js} +3 -3
  210. package/build/server/chunks/TooltipTable-BIwNd3UB.js.map +1 -0
  211. package/build/server/chunks/{_layout.svelte-CLPxHDiP.js → _layout.svelte-BX5H_goi.js} +38 -15
  212. package/build/server/chunks/_layout.svelte-BX5H_goi.js.map +1 -0
  213. package/build/server/chunks/{_page.svelte-zD7qndty.js → _page.svelte-Bh6uDLz6.js} +15 -15
  214. package/build/server/chunks/_page.svelte-Bh6uDLz6.js.map +1 -0
  215. package/build/server/chunks/_page.svelte-CHqJAnyH.js +258 -0
  216. package/build/server/chunks/_page.svelte-CHqJAnyH.js.map +1 -0
  217. package/build/server/chunks/{_page.svelte-CPcgVZQj.js → _page.svelte-CsCyoCpn.js} +15 -15
  218. package/build/server/chunks/_page.svelte-CsCyoCpn.js.map +1 -0
  219. package/build/server/chunks/{_page.svelte-CAAPpbun.js → _page.svelte-Cwyc6wIg.js} +14 -14
  220. package/build/server/chunks/_page.svelte-Cwyc6wIg.js.map +1 -0
  221. package/build/server/chunks/{_page.svelte-e5wWk327.js → _page.svelte-DE0XWW__.js} +12 -12
  222. package/build/server/chunks/_page.svelte-DE0XWW__.js.map +1 -0
  223. package/build/server/chunks/{_page.svelte-DVjTn-ck.js → _page.svelte-DIe5tQ3z.js} +14 -14
  224. package/build/server/chunks/_page.svelte-DIe5tQ3z.js.map +1 -0
  225. package/build/server/chunks/{_page.svelte-C3QVwl-z.js → _page.svelte-DT0U0FvS.js} +5 -4
  226. package/build/server/chunks/_page.svelte-DT0U0FvS.js.map +1 -0
  227. package/build/server/chunks/{_page.svelte-C_GX0K8M.js → _page.svelte-YOsljIow.js} +19 -22
  228. package/build/server/chunks/_page.svelte-YOsljIow.js.map +1 -0
  229. package/build/server/chunks/{_page.svelte-BeiSosXN.js → _page.svelte-aEFurJZ0.js} +55 -15
  230. package/build/server/chunks/_page.svelte-aEFurJZ0.js.map +1 -0
  231. package/build/server/chunks/{_page.svelte-CkZUu9Wh.js → _page.svelte-vWYc1vOs.js} +9 -9
  232. package/build/server/chunks/_page.svelte-vWYc1vOs.js.map +1 -0
  233. package/build/server/chunks/{_server.ts-i-glbZtX.js → _server.ts-BTmpua-U.js} +4 -3
  234. package/build/server/chunks/{_server.ts-i-glbZtX.js.map → _server.ts-BTmpua-U.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-CEBmCzTO.js → _server.ts-BhWrvCAV.js} +4 -3
  236. package/build/server/chunks/{_server.ts-CEBmCzTO.js.map → _server.ts-BhWrvCAV.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-CoUHVeKI.js → _server.ts-CUj-HfCf.js} +4 -3
  238. package/build/server/chunks/{_server.ts-CoUHVeKI.js.map → _server.ts-CUj-HfCf.js.map} +1 -1
  239. package/build/server/chunks/client-DrDUOhf5.js +7 -0
  240. package/build/server/chunks/{client-COtw9Xqw.js.map → client-DrDUOhf5.js.map} +1 -1
  241. package/build/server/chunks/{client2-BIa3wTXU.js → client2-Birk_77A.js} +4 -4
  242. package/build/server/chunks/{client2-BIa3wTXU.js.map → client2-Birk_77A.js.map} +1 -1
  243. package/build/server/chunks/error.svelte-DisWvlhZ.js +19 -0
  244. package/build/server/chunks/error.svelte-DisWvlhZ.js.map +1 -0
  245. package/build/server/chunks/{filters-B3U8Nh9P.js → filters-BTgp9cdC.js} +4 -7
  246. package/build/server/chunks/filters-BTgp9cdC.js.map +1 -0
  247. package/build/server/chunks/{hooks.server-BiUSRqj1.js → hooks.server-Cc7EKf-Z.js} +4 -3
  248. package/build/server/chunks/{hooks.server-BiUSRqj1.js.map → hooks.server-Cc7EKf-Z.js.map} +1 -1
  249. package/build/server/chunks/{index-CtYzvcG6.js → index-CDf-jMhD.js} +3 -2
  250. package/build/server/chunks/index-CDf-jMhD.js.map +1 -0
  251. package/build/server/chunks/{index2-B0RgZaJY.js → index2-DNcGQp0K.js} +3 -3
  252. package/build/server/chunks/index2-DNcGQp0K.js.map +1 -0
  253. package/build/server/chunks/{mongo-B92d7zNj.js → mongo-Du0OjH5b.js} +257 -24
  254. package/build/server/chunks/mongo-Du0OjH5b.js.map +1 -0
  255. package/build/server/chunks/{oauth-D6jTWKFd.js → oauth-CyIuK65I.js} +2 -2
  256. package/build/server/chunks/{oauth-D6jTWKFd.js.map → oauth-CyIuK65I.js.map} +1 -1
  257. package/build/server/chunks/{remote-xxtqbu-CDChJkWc.js → remote-xxtqbu-BCjbN3T4.js} +6 -6
  258. package/build/server/chunks/remote-xxtqbu-BCjbN3T4.js.map +1 -0
  259. package/build/server/chunks/renderer-wJWkLEmh.js +1844 -0
  260. package/build/server/chunks/renderer-wJWkLEmh.js.map +1 -0
  261. package/build/server/chunks/{root-otUAnOAR.js → root-Bs42DBih.js} +12 -1849
  262. package/build/server/chunks/root-Bs42DBih.js.map +1 -0
  263. package/build/server/chunks/{routing-EDfUNu8L.js → routing-CJRzZHIr.js} +2 -2
  264. package/build/server/chunks/{routing-EDfUNu8L.js.map → routing-CJRzZHIr.js.map} +1 -1
  265. package/build/server/chunks/{server2-D_y4YbpC.js → server2-B0ZXRoOj.js} +3 -3
  266. package/build/server/chunks/{server2-D_y4YbpC.js.map → server2-B0ZXRoOj.js.map} +1 -1
  267. package/build/server/chunks/{servers.remote-CGenkEHX.js → servers.remote-Bise-7j4.js} +5 -14
  268. package/build/server/chunks/servers.remote-Bise-7j4.js.map +1 -0
  269. package/build/server/chunks/shardKey-BnXqfB_r.js +11 -0
  270. package/build/server/chunks/shardKey-BnXqfB_r.js.map +1 -0
  271. package/build/server/chunks/{shared-DlqhoNLb.js → shared-BJTImRjE.js} +3 -2
  272. package/build/server/chunks/{shared-DlqhoNLb.js.map → shared-BJTImRjE.js.map} +1 -1
  273. package/build/server/chunks/{state.svelte-Bj5yxNNk.js → state.svelte-YUn1p3EK.js} +3 -2
  274. package/build/server/chunks/{state.svelte-Bj5yxNNk.js.map → state.svelte-YUn1p3EK.js.map} +1 -1
  275. package/build/server/index.js +7 -6
  276. package/build/server/index.js.map +1 -1
  277. package/build/server/manifest.js +29 -21
  278. package/build/server/manifest.js.map +1 -1
  279. package/package.json +1 -1
  280. package/src/api/servers.remote.ts +3 -12
  281. package/src/lib/collectionCategories.ts +25 -0
  282. package/src/lib/components/PageSwitcher.svelte +74 -6
  283. package/src/lib/components/ShardBadge.svelte +65 -0
  284. package/src/lib/server/connectionString.ts +50 -0
  285. package/src/lib/server/mongo.ts +208 -37
  286. package/src/lib/types.ts +34 -0
  287. package/src/lib/utils/filters.ts +5 -7
  288. package/src/lib/utils/mongoUri.ts +164 -0
  289. package/src/lib/utils/shardKey.ts +16 -0
  290. package/src/routes/servers/+page.svelte +1 -1
  291. package/src/routes/servers/[server]/databases/[database]/collections/+page.server.ts +5 -0
  292. package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +47 -9
  293. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+layout.ts +3 -0
  294. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.server.ts +26 -0
  295. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.svelte +319 -0
  296. package/src/tests/server/connectionString.test.ts +108 -0
  297. package/build/client/_app/immutable/assets/0.DTh4C4pw.css +0 -1
  298. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.br +0 -0
  299. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.gz +0 -0
  300. package/build/client/_app/immutable/chunks/8tf5Lvl3.js +0 -1
  301. package/build/client/_app/immutable/chunks/8tf5Lvl3.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/8tf5Lvl3.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/951V-MIZ.js +0 -1
  304. package/build/client/_app/immutable/chunks/951V-MIZ.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/951V-MIZ.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/9xpgPu5N.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/9xpgPu5N.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/BDGd1aqF.js +0 -2
  309. package/build/client/_app/immutable/chunks/BDGd1aqF.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/BDGd1aqF.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/BN_N9-2s.js +0 -1
  312. package/build/client/_app/immutable/chunks/BN_N9-2s.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/BN_N9-2s.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/BUO1EOQu.js +0 -1
  315. package/build/client/_app/immutable/chunks/BUO1EOQu.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/BUO1EOQu.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/BiVfO0yo.js +0 -1
  318. package/build/client/_app/immutable/chunks/BiVfO0yo.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/BiVfO0yo.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/C6P2UOyZ.js +0 -1
  321. package/build/client/_app/immutable/chunks/C6P2UOyZ.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/C6P2UOyZ.js.gz +0 -0
  323. package/build/client/_app/immutable/chunks/CCOVnadf.js +0 -1
  324. package/build/client/_app/immutable/chunks/CCOVnadf.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/CCOVnadf.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/CKvueigk.js.br +0 -0
  327. package/build/client/_app/immutable/chunks/CKvueigk.js.gz +0 -0
  328. package/build/client/_app/immutable/chunks/CQE8d3kg.js +0 -1
  329. package/build/client/_app/immutable/chunks/CQE8d3kg.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/CQE8d3kg.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/CTk2PBcX.js.br +0 -0
  332. package/build/client/_app/immutable/chunks/CTk2PBcX.js.gz +0 -0
  333. package/build/client/_app/immutable/chunks/ChWGK2Ce.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/ChWGK2Ce.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/CkMoyTwc.js +0 -1
  336. package/build/client/_app/immutable/chunks/CkMoyTwc.js.br +0 -0
  337. package/build/client/_app/immutable/chunks/CkMoyTwc.js.gz +0 -0
  338. package/build/client/_app/immutable/chunks/CmI1igJD.js +0 -1
  339. package/build/client/_app/immutable/chunks/CmI1igJD.js.br +0 -0
  340. package/build/client/_app/immutable/chunks/CmI1igJD.js.gz +0 -0
  341. package/build/client/_app/immutable/chunks/DCAtHodH.js.br +0 -0
  342. package/build/client/_app/immutable/chunks/DCAtHodH.js.gz +0 -0
  343. package/build/client/_app/immutable/chunks/DFXj4NOH.js +0 -1
  344. package/build/client/_app/immutable/chunks/DFXj4NOH.js.br +0 -0
  345. package/build/client/_app/immutable/chunks/DFXj4NOH.js.gz +0 -0
  346. package/build/client/_app/immutable/chunks/DaMh_eeB.js +0 -1
  347. package/build/client/_app/immutable/chunks/DaMh_eeB.js.br +0 -0
  348. package/build/client/_app/immutable/chunks/DaMh_eeB.js.gz +0 -0
  349. package/build/client/_app/immutable/chunks/DqxUmOYD.js +0 -66
  350. package/build/client/_app/immutable/chunks/DqxUmOYD.js.br +0 -0
  351. package/build/client/_app/immutable/chunks/DqxUmOYD.js.gz +0 -0
  352. package/build/client/_app/immutable/chunks/Dzt_TFtX.js.br +0 -0
  353. package/build/client/_app/immutable/chunks/Dzt_TFtX.js.gz +0 -0
  354. package/build/client/_app/immutable/chunks/IixngxlS.js.br +0 -0
  355. package/build/client/_app/immutable/chunks/IixngxlS.js.gz +0 -0
  356. package/build/client/_app/immutable/chunks/IwGwbOe7.js.br +0 -0
  357. package/build/client/_app/immutable/chunks/YMZQSnF3.js +0 -1
  358. package/build/client/_app/immutable/chunks/YMZQSnF3.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/YMZQSnF3.js.gz +0 -0
  360. package/build/client/_app/immutable/chunks/Z7BFksgg.js.br +0 -0
  361. package/build/client/_app/immutable/chunks/Z7BFksgg.js.gz +0 -0
  362. package/build/client/_app/immutable/chunks/dlHwFtkV.js +0 -1
  363. package/build/client/_app/immutable/chunks/dlHwFtkV.js.br +0 -0
  364. package/build/client/_app/immutable/chunks/dlHwFtkV.js.gz +0 -0
  365. package/build/client/_app/immutable/chunks/v8XDA7ui.js +0 -4
  366. package/build/client/_app/immutable/chunks/v8XDA7ui.js.br +0 -0
  367. package/build/client/_app/immutable/chunks/v8XDA7ui.js.gz +0 -0
  368. package/build/client/_app/immutable/entry/app.B1EvSYDg.js +0 -2
  369. package/build/client/_app/immutable/entry/app.B1EvSYDg.js.br +0 -0
  370. package/build/client/_app/immutable/entry/app.B1EvSYDg.js.gz +0 -0
  371. package/build/client/_app/immutable/entry/start.BFVM56Yz.js +0 -1
  372. package/build/client/_app/immutable/entry/start.BFVM56Yz.js.br +0 -0
  373. package/build/client/_app/immutable/entry/start.BFVM56Yz.js.gz +0 -0
  374. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js +0 -1
  375. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.br +0 -0
  376. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.gz +0 -0
  377. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js +0 -1
  378. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.br +0 -0
  379. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.gz +0 -0
  380. package/build/client/_app/immutable/nodes/10.eB7zuikE.js +0 -2
  381. package/build/client/_app/immutable/nodes/10.eB7zuikE.js.br +0 -0
  382. package/build/client/_app/immutable/nodes/10.eB7zuikE.js.gz +0 -0
  383. package/build/client/_app/immutable/nodes/11.fvrVbout.js +0 -6
  384. package/build/client/_app/immutable/nodes/11.fvrVbout.js.br +0 -0
  385. package/build/client/_app/immutable/nodes/11.fvrVbout.js.gz +0 -0
  386. package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.br +0 -0
  387. package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.gz +0 -0
  388. package/build/client/_app/immutable/nodes/13.DPotp8O6.js +0 -1
  389. package/build/client/_app/immutable/nodes/13.DPotp8O6.js.br +0 -0
  390. package/build/client/_app/immutable/nodes/13.DPotp8O6.js.gz +0 -0
  391. package/build/client/_app/immutable/nodes/14.D5zVPym5.js +0 -65
  392. package/build/client/_app/immutable/nodes/14.D5zVPym5.js.br +0 -0
  393. package/build/client/_app/immutable/nodes/14.D5zVPym5.js.gz +0 -0
  394. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js +0 -1
  395. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.br +0 -0
  396. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.gz +0 -0
  397. package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.br +0 -0
  398. package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.gz +0 -0
  399. package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.br +0 -0
  400. package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.gz +0 -0
  401. package/build/client/_app/immutable/nodes/4.DS2d90xq.js +0 -1
  402. package/build/client/_app/immutable/nodes/4.DS2d90xq.js.br +0 -0
  403. package/build/client/_app/immutable/nodes/4.DS2d90xq.js.gz +0 -0
  404. package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.br +0 -0
  405. package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.gz +0 -0
  406. package/build/client/_app/immutable/nodes/7.D-uzybGz.js +0 -1
  407. package/build/client/_app/immutable/nodes/7.D-uzybGz.js.br +0 -0
  408. package/build/client/_app/immutable/nodes/7.D-uzybGz.js.gz +0 -0
  409. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js +0 -2
  410. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.br +0 -0
  411. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.gz +0 -0
  412. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js +0 -1
  413. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.br +0 -0
  414. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.gz +0 -0
  415. package/build/server/chunks/0-BRQgSkWt.js +0 -31
  416. package/build/server/chunks/0-BRQgSkWt.js.map +0 -1
  417. package/build/server/chunks/1-lx7f4PWt.js +0 -9
  418. package/build/server/chunks/10-Censc2uj.js +0 -42
  419. package/build/server/chunks/10-Censc2uj.js.map +0 -1
  420. package/build/server/chunks/11-BEDQUU1_.js.map +0 -1
  421. package/build/server/chunks/12-CzhXMlU9.js.map +0 -1
  422. package/build/server/chunks/13-D1eLiA_r.js.map +0 -1
  423. package/build/server/chunks/14-BVNQ2wyL.js +0 -57
  424. package/build/server/chunks/14-BVNQ2wyL.js.map +0 -1
  425. package/build/server/chunks/15-Ch9c9iYB.js +0 -67
  426. package/build/server/chunks/15-Ch9c9iYB.js.map +0 -1
  427. package/build/server/chunks/4-DoW1zEiI.js.map +0 -1
  428. package/build/server/chunks/8-Ba9OHB5H.js.map +0 -1
  429. package/build/server/chunks/9-DSgRe_DY.js.map +0 -1
  430. package/build/server/chunks/JsonValue-CGVfzyTL.js.map +0 -1
  431. package/build/server/chunks/Modal-D2E5OLRi.js.map +0 -1
  432. package/build/server/chunks/Panel-C6VWd6JD.js.map +0 -1
  433. package/build/server/chunks/PrettyJson-Bo4UtQ1o.js.map +0 -1
  434. package/build/server/chunks/Tooltip-OVylvwfb.js.map +0 -1
  435. package/build/server/chunks/TooltipTable-CLglfpck.js.map +0 -1
  436. package/build/server/chunks/_layout.svelte-CLPxHDiP.js.map +0 -1
  437. package/build/server/chunks/_page.svelte-BeiSosXN.js.map +0 -1
  438. package/build/server/chunks/_page.svelte-C3QVwl-z.js.map +0 -1
  439. package/build/server/chunks/_page.svelte-CAAPpbun.js.map +0 -1
  440. package/build/server/chunks/_page.svelte-CPcgVZQj.js.map +0 -1
  441. package/build/server/chunks/_page.svelte-C_GX0K8M.js.map +0 -1
  442. package/build/server/chunks/_page.svelte-CkZUu9Wh.js.map +0 -1
  443. package/build/server/chunks/_page.svelte-DVjTn-ck.js.map +0 -1
  444. package/build/server/chunks/_page.svelte-e5wWk327.js.map +0 -1
  445. package/build/server/chunks/_page.svelte-zD7qndty.js.map +0 -1
  446. package/build/server/chunks/client-COtw9Xqw.js +0 -7
  447. package/build/server/chunks/error.svelte-DUZ2SYyF.js +0 -18
  448. package/build/server/chunks/error.svelte-DUZ2SYyF.js.map +0 -1
  449. package/build/server/chunks/filters-B3U8Nh9P.js.map +0 -1
  450. package/build/server/chunks/index-CtYzvcG6.js.map +0 -1
  451. package/build/server/chunks/index2-B0RgZaJY.js.map +0 -1
  452. package/build/server/chunks/mongo-B92d7zNj.js.map +0 -1
  453. package/build/server/chunks/remote-xxtqbu-CDChJkWc.js.map +0 -1
  454. package/build/server/chunks/root-otUAnOAR.js.map +0 -1
  455. package/build/server/chunks/servers.remote-CGenkEHX.js.map +0 -1
  456. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +0 -11
  457. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +0 -11
  458. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +0 -11
  459. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.ts +0 -11
@@ -0,0 +1,2 @@
1
+ import{c as H,a as t,f as d,t as E}from"../chunks/DKMyRjux.js";import{p as ua,f as P,a as _a,s as p,c as n,r as l,t as g,g as a,u as V,b as L,h as Da,i as Ca,d as S,n as ra}from"../chunks/DfW1b8bA.js";import{s as R,d as Ia,a as oa}from"../chunks/CrLGr586.js";import{a as sa}from"../chunks/oSuzXE6i.js";import{p as wa,i as b}from"../chunks/DymqlScG.js";import{e as Ka}from"../chunks/wZh6TcLb.js";import{s as q}from"../chunks/DupjJGFi.js";import{f as Pa}from"../chunks/BE54Cy37.js";import{i as Ra}from"../chunks/B2jd13FV.js";import{r as ia}from"../chunks/_rBAec6D.js";import{M as Ua}from"../chunks/J9ZSs_8c.js";import{P as Ma}from"../chunks/DVIi8uNn.js";import{f as Ta}from"../chunks/C5BvtFsa.js";import{T as fa}from"../chunks/Cf6RCjfg.js";import{n as ca}from"../chunks/CUBPtF8t.js";import{a as ma,f as na}from"../chunks/Dfjkeakv.js";var Fa=d('<span class="shard-key font-mono svelte-45t1vt"> </span>'),Na=d('<a class="shard-badge svelte-45t1vt">sharded <!></a>'),ja=d('<span class="shard-key font-mono svelte-45t1vt"> </span>'),Aa=d('<span class="shard-badge svelte-45t1vt">sharded <!></span>');function Oa(G,s){ua(s,!0);const K=wa(s,"showKey",3,!0),D=V(()=>Ta(s.shardKey));var y=H(),x=P(y);{var Q=C=>{var c=Na(),U=p(n(c));{var T=v=>{var i=Fa(),m=n(i,!0);l(i),g(()=>R(m,a(D))),t(v,i)};b(U,v=>{K()&&v(T)})}l(c),g(()=>{q(c,"href",s.href),q(c,"title",`Sharded on ${a(D)}`)}),t(C,c)},M=C=>{var c=Aa(),U=p(n(c));{var T=v=>{var i=ja(),m=n(i,!0);l(i),g(()=>R(m,a(D))),t(v,i)};b(U,v=>{K()&&v(T)})}l(c),g(()=>q(c,"title",`Sharded on ${a(D)}`)),t(C,c)};b(x,C=>{s.href?C(Q):C(M,-1)})}t(G,y),_a()}var Ba=d('<span title="Failed to load">❌</span>'),Ea=d('<span style="color: var(--text-secondary);">...</span>'),Ha=d('<span title="Failed to load">❌</span>'),Ja=d('<span style="color: var(--text-secondary);">...</span>'),La=d('<span title="Failed to load">❌</span>'),Va=d('<span style="color: var(--text-secondary);">...</span>'),qa=d('<button class="btn btn-outline-danger btn-sm -my-2 hidden group-hover:inline">Drop</button>'),Ga=d('<tr class="group"><td><div class="flex items-center gap-2"><a> </a> <!></div></td><td><!></td><td><!></td><td><!></td><td style="width: 100px"><div class="flex justify-end"><!></div></td></tr>'),Qa=d('<tr><td colspan="5"><div class="text-center">No collections...</div></td></tr>'),Wa=d('<table class="table"><thead><tr><th>Name</th><th>Documents</th><th>Indexes</th><th>Size</th><th></th></tr></thead><tbody><!></tbody></table>'),Xa=d('<button class="btn btn-default btn-sm">Cancel</button> <button class="btn btn-outline-danger btn-sm"><!></button>',1),Ya=d(`<p>Are you sure you want to drop the collection <strong> </strong>? This action cannot be
2
+ undone.</p>`),Za=d("<!> <!>",1);function _t(G,s){ua(s,!0);let K=L(Da({}));Ca(()=>{const v=s.data.shardKeys;S(K,{},!0);let i=!1;return v.then(m=>{i||S(K,m,!0)}),()=>{i=!0}});let D=L(!1),y=L(null),x=L(!1);function Q(v){S(y,v,!0),S(D,!0)}function M(){S(D,!1),S(y,null),S(x,!1)}async function C(){if(!(!a(y)||a(x))){S(x,!0);try{await Pa({server:s.data.server,database:s.data.database,collection:a(y).name}),ca.notifySuccess(`Collection "${a(y).name}" dropped successfully`),M(),await Ra()}catch(v){ca.notifyError(v,"Failed to drop collection"),S(x,!1)}}}var c=Za(),U=P(c);Ma(U,{get title(){return`${s.data.database??""} collections`},children:(v,i)=>{var m=Wa(),h=p(n(m)),k=n(h);{var F=I=>{var _=H(),N=P(_);Ka(N,17,()=>s.data.collections,X=>X.name,(X,z)=>{var Y=Ga(),Z=n(Y),la=n(Z),J=n(la),pa=n(J,!0);l(J);var ha=p(J,2);{var ba=r=>{{let e=V(()=>ia(`/servers/${encodeURIComponent(s.data.server)}/databases/${encodeURIComponent(s.data.database)}/collections/${encodeURIComponent(a(z).name)}/sharding`));Oa(r,{get shardKey(){return a(K)[a(z).name]},get href(){return a(e)}})}};b(ha,r=>{a(K)[a(z).name]&&r(ba)})}l(la),l(Z);var $=p(Z),ga=n($);sa(ga,()=>a(z).details,r=>{var e=Ea();t(r,e)},(r,e)=>{var w=H(),j=P(w);{var A=o=>{var u=E();g(f=>R(u,f),[()=>ma(a(e).count)]),t(o,u)},O=o=>{var u=Ba();t(o,u)};b(j,o=>{a(e)?o(A):o(O,-1)})}t(r,w)}),l($);var aa=p($),ya=n(aa);sa(ya,()=>a(z).details,r=>{var e=Ja();t(r,e)},(r,e)=>{var w=H(),j=P(w);{var A=o=>{{let u=V(()=>a(e).indexes.map(f=>({definition:f.key?JSON.stringify(f.key,null,1):f.name,size:na(f.size)})));fa(o,{columns:[{header:"Index",key:"definition",align:"left"},{header:"Size",key:"size",align:"right"}],get rows(){return a(u)},children:(f,Sa)=>{ra();var B=E();g(ea=>R(B,ea),[()=>ma(a(e).nIndexes)]),t(f,B)},$$slots:{default:!0}})}},O=o=>{var u=Ha();t(o,u)};b(j,o=>{a(e)?o(A):o(O,-1)})}t(r,w)}),l(aa);var ta=p(aa),xa=n(ta);sa(xa,()=>a(z).details,r=>{var e=Va();t(r,e)},(r,e)=>{var w=H(),j=P(w);{var A=o=>{{let u=V(()=>[{label:"Average obj. size",value:a(e).avgObjSize},{label:"Data size",value:a(e).dataSize},{label:"Storage size",value:a(e).storageSize},{label:"Index size",value:a(e).totalIndexSize}].map(f=>({...f,value:typeof f.value=="number"?na(f.value):f.value})));fa(o,{hideHeader:!0,columns:[{header:"Label",key:"label",align:"left"},{header:"Value",key:"value",align:"right"}],get rows(){return a(u)},children:(f,Sa)=>{ra();var B=E();g(ea=>R(B,ea),[()=>na(a(e).size)]),t(f,B)},$$slots:{default:!0}})}},O=o=>{var u=La();t(o,u)};b(j,o=>{a(e)?o(A):o(O,-1)})}t(r,w)}),l(ta);var da=p(ta),va=n(da),ka=n(va);{var za=r=>{var e=qa();oa("click",e,()=>Q(a(z))),t(r,e)};b(ka,r=>{s.data.readOnly||r(za)})}l(va),l(da),l(Y),g(r=>{q(J,"href",r),R(pa,a(z).name)},[()=>ia(`/servers/${encodeURIComponent(s.data.server)}/databases/${encodeURIComponent(s.data.database)}/collections/${encodeURIComponent(a(z).name)}/documents`)]),t(X,Y)}),t(I,_)},W=I=>{var _=Qa();t(I,_)};b(k,I=>{s.data.collections&&s.data.collections.length>0?I(F):I(W,-1)})}l(h),l(m),t(v,m)},$$slots:{default:!0}});var T=p(U,2);Ua(T,{get show(){return a(D)},onclose:M,title:"Drop Collection",footer:i=>{var m=Xa(),h=P(m),k=p(h,2),F=n(k);{var W=_=>{var N=E("Dropping...");t(_,N)},I=_=>{var N=E("Drop Collection");t(_,N)};b(F,_=>{a(x)?_(W):_(I,-1)})}l(k),g(()=>{h.disabled=a(x),k.disabled=a(x)}),oa("click",h,M),oa("click",k,C),t(i,m)},children:(i,m)=>{var h=Ya(),k=p(n(h)),F=n(k,!0);l(k),ra(),l(h),g(()=>R(F,a(y)?.name)),t(i,h)},$$slots:{footer:!0,default:!0}}),t(G,c),_a()}Ia(["click"]);export{_t as component};
@@ -0,0 +1,6 @@
1
+ import{f as _,a as g,b as ht,t as wt,c as Pt}from"../chunks/DKMyRjux.js";import{b as S,al as ct,g as e,p as Nt,a as Dt,f as te,c as i,s as a,u as T,r as l,t as U,h as ze,i as Pe,j as Be,d as v,n as et,bj as Xt,aQ as bt,w as gt,e as dt}from"../chunks/DfW1b8bA.js";import{d as jt,a as C,s as A,e as Rt}from"../chunks/CrLGr586.js";import{a as Mt}from"../chunks/oSuzXE6i.js";import{i as q,p as Re}from"../chunks/DymqlScG.js";import{s as tt,c as _t,e as Bt}from"../chunks/wZh6TcLb.js";import{a as Oe,p as $t}from"../chunks/OvZJ6gNJ.js";import{r as fe,a as xt,s as Le}from"../chunks/DupjJGFi.js";import{b as be}from"../chunks/DgwByHCB.js";import{p as Yt,q as vt,s as Tt,t as Zt,u as er,b as tr,v as rr,i as or,w as ar}from"../chunks/BE54Cy37.js";import{g as nr,f as qt}from"../chunks/B2jd13FV.js";import{r as It}from"../chunks/_rBAec6D.js";import{J as sr,j as yt}from"../chunks/BCQ_Gxjq.js";import{s as Et}from"../chunks/CyTV7fHl.js";import{M as lr}from"../chunks/J9ZSs_8c.js";import{P as pt}from"../chunks/DVIi8uNn.js";import{p as mt,s as ft,P as ir}from"../chunks/CFdm8ab0.js";import{b as Ze}from"../chunks/C5dXZyme.js";import{p as At}from"../chunks/DFOCkNuT.js";import{I as Ot,c as Ft}from"../chunks/URA3nPWG.js";import{a as oe}from"../chunks/Dfjkeakv.js";import{n as G}from"../chunks/CUBPtF8t.js";const cr=Symbol();class Qt extends URLSearchParams{#e=S(0);#o=ur();#t=!1;#r(){if(!this.#o||this.#t)return;this.#t=!0;const u=this.toString();this.#o.search=u&&`?${u}`,this.#t=!1}[cr](u){if(!this.#t){this.#t=!0;for(const k of[...super.keys()])super.delete(k);for(const[k,r]of u)super.append(k,r);ct(this.#e),this.#t=!1}}append(u,k){super.append(u,k),this.#r(),ct(this.#e)}delete(u,k){var r=super.has(u,k);super.delete(u,k),r&&(this.#r(),ct(this.#e))}get(u){return e(this.#e),super.get(u)}getAll(u){return e(this.#e),super.getAll(u)}has(u,k){return e(this.#e),super.has(u,k)}keys(){return e(this.#e),super.keys()}set(u,k){var r=super.getAll(u).join("");super.set(u,k),r!==super.getAll(u).join("")&&(this.#r(),ct(this.#e))}sort(){super.sort(),this.#r(),ct(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}let dr=null;function ur(){return dr}var vr=_('<button class="btn btn-default btn-sm">Close</button>'),pr=_('<p class="text-xs mt-2" style="color: var(--error);">⚠️ This query is using a collection scan (COLLSCAN). Consider adding an index for better performance.</p>'),mr=_('<div class="efficiency-bar mb-6"><div class="flex justify-between items-center mb-2"><span class="text-sm font-semibold" style="color: var(--text);">Efficiency</span> <span class="text-sm font-mono" style="color: var(--text-secondary);"> </span></div> <div class="h-2 rounded-full bg-[var(--color-3)] overflow-hidden"><div></div></div> <!></div>'),fr=_('<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mb-6"><div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Execution Time</span> <span class="metric-value svelte-10vh4gh"> </span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Returned</span> <span class="metric-value svelte-10vh4gh"> </span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Documents Examined</span> <span class="metric-value svelte-10vh4gh"> </span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Keys Examined</span> <span class="metric-value svelte-10vh4gh"> </span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Index Used</span> <span> </span></div> <div class="metric-card svelte-10vh4gh"><span class="metric-label svelte-10vh4gh">Query Stage</span> <span class="metric-value svelte-10vh4gh"> </span></div></div> <!>',1),br=_('<!> <details class="mt-4"><summary class="cursor-pointer text-sm font-semibold mb-3" style="color: var(--link);">View full explain output</summary> <div class="p-4 rounded-xl bg-[var(--color-3)] font-mono text-sm overflow-auto max-h-[400px] border border-[var(--border-color)]"><!></div></details>',1);function gr(O,u){Nt(u,!0);function k(y){if(!y)return null;if(y.indexName||y.stage==="IXSCAN"&&y.indexName)return String(y.indexName);if(y.inputStage){const f=k(y.inputStage);if(f)return f}if(Array.isArray(y.inputStages))for(const f of y.inputStages){const N=k(f);if(N)return N}if(y.queryPlan){const f=k(y.queryPlan);if(f)return f}return null}function r(y){if(!y)return!1;if(y.stage==="COLLSCAN"||y.inputStage&&r(y.inputStage))return!0;if(Array.isArray(y.inputStages)){for(const f of y.inputStages)if(r(f))return!0}return!!(y.queryPlan&&r(y.queryPlan))}const t=T(()=>{if(!u.data||typeof u.data!="object")return null;const y=u.data,f=y.executionStats,Q=y.queryPlanner?.winningPlan,ae=k(Q),Ee=r(Q);let h;ae?h=ae:Ee?h="COLLSCAN":h="N/A";const X=Q?.stage??"N/A";return{executionTimeMs:f?.executionTimeMillis??"N/A",docsExamined:f?.totalDocsExamined??"N/A",keysExamined:f?.totalKeysExamined??"N/A",nReturned:f?.nReturned??"N/A",indexUsed:h,stage:X}}),c=T(()=>{if(!e(t))return null;const y=Number(e(t).keysExamined),f=Number(e(t).nReturned);return y>0?(f/y*100).toFixed(1):"0.0"}),ce=T(()=>{if(!e(t))return"";const y=Number(e(t).keysExamined),f=Number(e(t).docsExamined),N=Number(e(t).nReturned);return y>0?`${N} / ${y} keys to docs`:`${y} keys / ${f} docs`}),F=T(()=>e(t)?!(e(t).indexUsed==="COLLSCAN"||e(t).indexUsed==="N/A"):null);lr(O,{get show(){return u.show},get onclose(){return u.onclose},title:"Execution Stats",wide:!0,footer:f=>{var N=vr();C("click",N,function(...Q){u.onclose?.apply(this,Q)}),g(f,N)},children:(f,N)=>{var Q=br(),ae=te(Q);{var Ee=K=>{var ge=fr(),ke=te(ge),ne=i(ke),xe=a(i(ne),2),ye=i(xe);l(xe),l(ne);var de=a(ne,2),Ne=a(i(de),2),he=i(Ne,!0);l(Ne),l(de);var Me=a(de,2),Fe=a(i(Me),2),De=i(Fe,!0);l(Fe),l(Me);var je=a(Me,2),$e=a(i(je),2),se=i($e,!0);l($e),l(je);var we=a(je,2),Ie=a(i(we),2);let qe;var Qe=i(Ie,!0);l(Ie),l(we);var Je=a(we,2),Ge=a(i(Je),2),rt=i(Ge,!0);l(Ge),l(Je),l(ke);var ot=a(ke,2);{var He=Se=>{var Ce=mr(),ue=i(Ce),Te=a(i(ue),2),Ke=i(Te);l(Te),l(ue);var n=a(ue,2),d=i(n);let m;l(n);var w=a(n,2);{var P=B=>{var E=pr();g(B,E)};q(w,B=>{e(F)===!1&&B(P)})}l(Ce),U((B,E)=>{A(Ke,`${e(ce)??""} (${e(c)??""}%)`),m=tt(d,1,"h-full rounded-full transition-all duration-300",null,m,B),Et(d,`width: ${E??""}%`)},[()=>({"bg-green-500":e(F)&&Number(e(c))>=70,"bg-yellow-500":e(F)&&Number(e(c))>=30&&Number(e(c))<70,"bg-red-500":!e(F)||Number(e(c))<30}),()=>e(F)?Math.min(Number(e(c)),100):100]),g(Se,Ce)};q(ot,Se=>{e(c)!==null&&Se(He)})}U((Se,Ce,ue)=>{A(ye,`${e(t).executionTimeMs??""}ms`),A(he,Se),A(De,Ce),A(se,ue),qe=tt(Ie,1,"metric-value svelte-10vh4gh",null,qe,{warning:e(t).indexUsed==="COLLSCAN",good:e(t).indexUsed!=="COLLSCAN"}),A(Qe,e(t).indexUsed),A(rt,e(t).stage)},[()=>typeof e(t).nReturned=="number"?e(t).nReturned.toLocaleString():e(t).nReturned,()=>typeof e(t).docsExamined=="number"?e(t).docsExamined.toLocaleString():e(t).docsExamined,()=>typeof e(t).keysExamined=="number"?e(t).keysExamined.toLocaleString():e(t).keysExamined]),g(K,ge)};q(ae,K=>{e(t)&&K(Ee)})}var h=a(ae,2),X=a(i(h),2),We=i(X);sr(We,{get value(){return u.data},collapsed:!1}),l(X),l(h),g(f,Q)},$$slots:{footer:!0,default:!0}}),Dt()}jt(["click"]);var xr=ht('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"></path><path d="m15 5 4 4"></path></svg>');function yr(O,u){let k=Re(u,"class",3,"w-4 h-4");var r=xr();U(()=>tt(r,0,_t(k()))),g(O,r)}var hr=_('<textarea placeholder="[]" name="query" rows="5" class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1" style="color: var(--text);"></textarea>'),_r=_('<input type="text" name="field" placeholder="field name" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>'),kr=_('<textarea name="query" rows="5" class="w-full px-3 py-2 bg-transparent outline-none font-mono text-[13px] resize-y svelte-1o0c7a1" style="color: var(--text);"></textarea>'),wr=_('<input type="text" name="query" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/>'),qr=_('<button type="button" class="h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition cursor-pointer text-[13px] font-medium flex items-center gap-1" style="color: var(--text-secondary);" title="Filter by document creation time"><span>📊</span> <!></button>'),Sr=_('<button type="button" class="h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer" style="color: var(--text);"><!></button>'),Cr=_('<button type="button" class="h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] transition disabled:opacity-50 cursor-pointer text-[13px] font-medium" style="color: var(--link);"> </button>'),Er=_('<div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50 sm:col-span-2"><div class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]" style="color: var(--text-secondary);">Filter (optional)</div> <input type="text" name="query" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/></div>'),Nr=_('<div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"><div class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]" style="color: var(--text-secondary);">Sort</div> <input type="text" name="sort" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/></div> <div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"><div class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]" style="color: var(--text-secondary);">Project</div> <input type="text" name="project" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/></div>',1),Dr=_('<div class="grid gap-2 sm:grid-cols-2"><!> <div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"><div class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]" style="color: var(--text-secondary);">Skip</div> <input type="number" name="skip" min="0" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/></div> <div class="rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"><div class="px-3 py-1.5 text-[12px] border-b border-[var(--border-color)]" style="color: var(--text-secondary);">Limit</div> <input type="number" name="limit" min="1" class="w-full h-9 px-3 bg-transparent outline-none font-mono text-[13px] border-0 !rounded-none svelte-1o0c7a1" style="color: var(--text);"/></div></div>'),jr=_('<div class="fixed z-[1000] rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] shadow-lg overflow-hidden"><button type="button" class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer" style="color: var(--text);">Query</button> <button type="button" class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer" style="color: var(--text);">Distinct</button> <button type="button" class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer" style="color: var(--text);">Aggregation</button></div>'),Ir=_('<span class="inline-block w-3 h-3 border-2 border-[var(--border-color)] border-t-[var(--link)] rounded-full animate-spin"></span>'),Ur=_('<button type="button" class="w-full px-3 py-2 text-left text-[13px] hover:bg-[var(--color-3)] transition cursor-pointer flex justify-between items-center" style="color: var(--text);"><span> </span> <span class="font-medium tabular-nums" style="color: var(--text-secondary);"><!></span></button>'),Lr=_('<div class="fixed z-[1000] rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] shadow-lg overflow-hidden"></div>'),Pr=_('<div class="rounded-2xl border border-[var(--border-color)] bg-[var(--light-background)]/70 shadow-sm p-3 sm:p-4"><form class="flex flex-col gap-3" method="GET" action="?"><div class="flex items-stretch gap-2"><div class="flex-1 flex items-stretch rounded-xl border border-[var(--border-color)] overflow-hidden bg-[var(--color-3)]/50"><button type="button" class="h-full px-3 flex items-center gap-1 text-[13px] border-r border-[var(--border-color)] hover:bg-[var(--color-3)] transition cursor-pointer" style="color: var(--text-secondary);"><span class="capitalize"> </span> <!></button> <!></div> <input type="hidden" name="mode"/> <input type="hidden" name="v"/> <div class="flex items-center gap-2"><!> <button type="button" class="h-9 px-3 rounded-xl border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[15px] font-semibold leading-none transition cursor-pointer" style="color: var(--text);" title="Toggle optional fields"> </button> <!> <!> <button type="submit" class="h-9 px-4 py-0 rounded-xl btn btn-success text-lg font-semibold transition">Go</button></div></div> <!></form></div> <!> <!>',1);function Rr(O,u){Nt(u,!0);const k=2e4;let r=Re(u,"params",15),t=Re(u,"editMode",15,!1),c=Re(u,"readonly",11,!1),ce=Re(u,"explainLoading",3,!1),F=S(ze(r().sort!=="{}"||r().project!=="{}"||r().skip!==0||r().limit!==20)),y=S(ze(Math.random())),f=S(void 0),N=S(!1),Q=S(void 0),ae=S(ze({left:"0px",top:"0px",minWidth:"140px"})),Ee=T(()=>r().query?.includes(`
2
+ `)??!1);function h(s){if(s.key==="Enter"&&s.shiftKey){s.preventDefault();const p=s.target.selectionStart??0,x=r().query.slice(0,p),b=r().query.slice(p);r(r().query=x+`
3
+ `+b,!0),Be().then(()=>{Be().then(()=>{e(f)?.setSelectionRange(p+1,p+1)})})}}function X(s){const o=s.clipboardData?.getData("text");if(o&&o.includes(`
4
+ `)){s.preventDefault();const p=s.target,x=p.selectionStart??0,b=p.selectionEnd??x,j=r().query.slice(0,x),L=r().query.slice(b);r(r().query=j+o+L,!0);const W=x+o.length;Be().then(()=>{Be().then(()=>{e(f)?.setSelectionRange(W,W)})})}}Pe(()=>{e(N)&&e(Q)&&Be().then(()=>{if(!e(Q))return;const s=e(Q).getBoundingClientRect();v(ae,{left:`${s.left}px`,top:`${s.bottom+5}px`,minWidth:`${s.width}px`},!0)})}),Pe(()=>{(r().mode==="aggregation"||r().mode==="distinct")&&t()&&t(!1)}),Pe(()=>{e(f)&&(e(f).setSelectionRange(1,1),e(f).focus())});async function We(s){s.preventDefault(),Xt(y);const o=new FormData(e(ge)),p=[...o.entries()].map(b=>encodeURIComponent(b[0])+"="+encodeURIComponent(b[1])).join("&");if((At.url.pathname+"?"+p).length>k&&u.onsearch){u.onsearch(r());return}await nr(It(At.url.pathname+"?"+[...o.entries()].map(b=>encodeURIComponent(b[0])+"="+encodeURIComponent(b[1])).join("&")),{keepFocus:!0})}function K(s){if(r(r().mode=s,!0),v(N,!1),s==="aggregation"&&!r().query?.trimStart().startsWith("[")){const o=r().query?.trim();r(o&&o!=="{}"&&o!==""?r().query=`[{ $match: ${o} }]`:r().query="[]",!0)}else s==="query"&&r().query?.trimStart().startsWith("[")?r(r().query="{}",!0):s==="distinct"&&(r(r().field=void 0,!0),!r().query||r().query.trim()===""?r(r().query="{}",!0):r().query.trim()!=="{}"&&v(F,!0))}let ge=S(void 0);const ke=[{label:"Last 24 hours",days:1},{label:"Last 7 days",days:7},{label:"Last 30 days",days:30},{label:"Last 90 days",days:90},{label:"Last 180 days",days:180}];let ne=S(!1),xe=S(void 0),ye=S(ze({left:"0px",top:"0px",minWidth:"200px"})),de=S(!1),Ne=S(void 0),he=S(ze(ke.map(s=>({...s,count:null,error:null,loading:!1}))));Pe(()=>{e(ne)&&e(xe)&&Be().then(()=>{if(!e(xe))return;const s=e(xe).getBoundingClientRect();v(ye,{left:`${s.right-200}px`,top:`${s.bottom+5}px`,minWidth:"200px"},!0)})});async function Me(){if(!u.server||!u.database||!u.collection||e(de))return;v(de,!0),v(he,ke.map(o=>({...o,count:null,error:null,loading:!0})),!0);const s=r().mode==="query"?r().query:void 0;v(Ne,s,!0);for(let o=0;o<ke.length;o++){const p=ke[o];try{const x=await Yt({server:u.server,database:u.database,collection:u.collection,days:p.days,query:s});e(he)[o]={...p,count:x.count,error:x.error,loading:!1}}catch(x){e(he)[o]={...p,count:null,error:x instanceof Error?x.message:String(x),loading:!1}}}v(de,!1)}function Fe(){if(v(ne,!e(ne)),!e(ne))return;const s=r().mode==="query"?r().query:void 0;(e(he).every(p=>p.count===null&&!p.error&&!p.loading)||e(Ne)!==s)&&Me()}function De(s){const o=Date.now(),p=s*24*60*60*1e3,b=Math.floor((o-p)/1e3).toString(16).padStart(8,"0")+"0000000000000000",j={$gte:{$type:"ObjectId",$value:b}};let L=`{_id: {$gte: ObjectId("${b}")}}`;try{const W=mt(r().query);if(W&&typeof W=="object"&&!Array.isArray(W)){const ve={...W,_id:j};L=ft(ve)}}catch{}r(r().query=L,!0),r(r().mode="query",!0),v(ne,!1),Be().then(()=>{e(ge)?.requestSubmit()})}var je=Pr(),$e=te(je),se=i($e),we=i(se),Ie=i(we),qe=i(Ie),Qe=i(qe),Je=i(Qe,!0);l(Qe);var Ge=a(Qe,2);Ot(Ge,{class:"w-3 h-3"}),l(qe),Ze(qe,s=>v(Q,s),()=>e(Q));var rt=a(qe,2);{var ot=s=>{var o=hr();bt(o),Ze(o,p=>v(f,p),()=>e(f)),gt(()=>be(o,()=>r().query,p=>r(r().query=p,!0))),Oe(o,(p,x)=>yt?.(p,x),()=>({onsubmit:()=>e(ge)?.requestSubmit()})),g(s,o)},He=s=>{var o=_r();fe(o),be(o,()=>r().field,p=>r(r().field=p,!0)),g(s,o)},Se=s=>{var o=kr();bt(o),Le(o,"placeholder","{}"),Ze(o,p=>v(f,p),()=>e(f)),gt(()=>be(o,()=>r().query,p=>r(r().query=p,!0))),Oe(o,(p,x)=>yt?.(p,x),()=>({onsubmit:()=>e(ge)?.requestSubmit()})),g(s,o)},Ce=s=>{var o=wr();fe(o),Le(o,"placeholder","{}"),Ze(o,p=>v(f,p),()=>e(f)),C("keydown",o,h),Rt("paste",o,X),be(o,()=>r().query,p=>r(r().query=p,!0)),g(s,o)};q(rt,s=>{r().mode==="aggregation"?s(ot):r().mode==="distinct"?s(He,1):e(Ee)?s(Se,2):s(Ce,-1)})}l(Ie);var ue=a(Ie,2);fe(ue);var Te=a(ue,2);fe(Te);var Ke=a(Te,2),n=i(Ke);{var d=s=>{var o=qr(),p=a(i(o),2);Ot(p,{class:"w-3 h-3"}),l(o),Ze(o,x=>v(xe,x),()=>e(xe)),C("click",o,Fe),g(s,o)};q(n,s=>{u.server&&u.database&&u.collection&&s(d)})}var m=a(n,2),w=i(m,!0);l(m);var P=a(m,2);{var B=s=>{var o=Sr(),p=i(o);yr(p,{class:"w-4 h-4"}),l(o),U(()=>{Le(o,"title",r().mode!=="query"?"Update not available in this mode":"Update multiple documents"),o.disabled=r().mode!=="query"}),C("click",o,()=>{t(!t())}),g(s,o)};q(P,s=>{c()||s(B)})}var E=a(P,2);{var D=s=>{var o=Cr(),p=i(o,!0);l(o),U(()=>{Le(o,"title",r().mode==="distinct"?"Explain not available for distinct queries":"Show query execution plan"),o.disabled=r().mode==="distinct"||ce(),A(p,ce()?"...":"Explain")}),C("click",o,function(...x){u.onexplain?.apply(this,x)}),g(s,o)};q(E,s=>{u.onexplain&&s(D)})}et(2),l(Ke),l(we);var H=a(we,2);{var le=s=>{var o=Dr(),p=i(o);{var x=V=>{var pe=Er(),ee=a(i(pe),2);fe(ee),Le(ee,"placeholder","{}"),l(pe),be(ee,()=>r().query,_e=>r(r().query=_e,!0)),g(V,pe)},b=V=>{var pe=Nr(),ee=te(pe),_e=a(i(ee),2);fe(_e),Le(_e,"placeholder","{}"),l(ee);var I=a(ee,2),R=a(i(I),2);fe(R),Le(R,"placeholder","{}"),l(I),be(_e,()=>r().sort,re=>r(r().sort=re,!0)),be(R,()=>r().project,re=>r(r().project=re,!0)),g(V,pe)};q(p,V=>{r().mode==="distinct"?V(x):V(b,-1)})}var j=a(p,2),L=a(i(j),2);fe(L),l(j);var W=a(j,2),ve=a(i(W),2);fe(ve),l(W),l(o),be(L,()=>r().skip,V=>r(r().skip=V,!0)),be(ve,()=>r().limit,V=>r(r().limit=V,!0)),g(s,o)};q(H,s=>{e(F)&&s(le)})}l(se),Ze(se,s=>v(ge,s),()=>e(ge)),l($e);var Y=a($e,2);{var ie=s=>{var o=jr();let p;var x=i(o),b=a(x,2),j=a(b,2);l(o),Oe(o,L=>$t?.(L)),Oe(o,(L,W)=>Ft?.(L,W),()=>()=>v(N,!1)),U(()=>p=Et(o,"",p,{left:e(ae).left,top:e(ae).top,"min-width":e(ae).minWidth})),C("click",x,()=>K("query")),C("click",b,()=>K("distinct")),C("click",j,()=>K("aggregation")),g(s,o)};q(Y,s=>{e(N)&&s(ie)})}var Z=a(Y,2);{var z=s=>{var o=Lr();let p;Bt(o,21,()=>e(he),x=>x.label,(x,b)=>{var j=Ur(),L=i(j),W=i(L,!0);l(L);var ve=a(L,2),V=i(ve);{var pe=R=>{var re=Ir();g(R,re)},ee=R=>{var re=wt("⚠️");g(R,re)},_e=R=>{var re=wt();U(at=>A(re,at),[()=>oe(e(b).count)]),g(R,re)},I=R=>{var re=wt("—");g(R,re)};q(V,R=>{e(b).loading?R(pe):e(b).error?R(ee,1):e(b).count!==null?R(_e,2):R(I,-1)})}l(ve),l(j),U(()=>{j.disabled=e(b).loading,A(W,e(b).label)}),C("click",j,()=>De(e(b).days)),g(x,j)}),l(o),Oe(o,x=>$t?.(x)),Oe(o,(x,b)=>Ft?.(x,b),()=>()=>v(ne,!1)),U(()=>p=Et(o,"",p,{left:e(ye).left,top:e(ye).top,"min-width":e(ye).minWidth})),g(s,o)};q(Z,s=>{e(ne)&&s(z)})}U(()=>{A(Je,r().mode),xt(ue,r().mode),xt(Te,e(y)),A(w,e(F)?"−":"+")}),Rt("submit",se,We),C("click",qe,()=>v(N,!e(N))),C("click",m,()=>{v(F,!e(F))}),g(O,je),Dt()}jt(["click","keydown"]);var Mr=ht('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg>');function $r(O,u){let k=Re(u,"class",3,"w-4 h-4");var r=Mr();U(()=>tt(r,0,_t(k()))),g(O,r)}var Tr=ht('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"></path></svg>');function Ar(O,u){let k=Re(u,"class",3,"w-4 h-4");var r=Tr();U(()=>tt(r,0,_t(k()))),g(O,r)}var Or=ht('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18"></path><path d="M7 12h10"></path><path d="M10 18h4"></path><path d="m7 16 3 3 3-3"></path></svg>');function Fr(O,u){let k=Re(u,"class",3,"w-4 h-4");var r=Or();U(()=>tt(r,0,_t(k()))),g(O,r)}const St=(O,u=dt,k=dt)=>{var r=Qr();U(t=>Le(r,"href",t),[()=>It(u())]),C("click",r,function(...t){k()?.apply(this,t)}),g(O,r)},Ct=(O,u=dt,k=dt)=>{var r=Br();U(t=>Le(r,"href",t),[()=>It(u())]),C("click",r,function(...t){k()?.apply(this,t)}),g(O,r)};var Qr=_('<a class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline -my-2" style="color: var(--text);">Previous</a>'),Br=_('<a class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition no-underline" style="color: var(--text);">Next</a>'),zr=_('<button class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition" style="color: var(--text); cursor: pointer;" title="Reverse sort order"><!></button>'),Wr=_('<button class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition" style="color: var(--text); cursor: pointer;" title="Copy distinct values"><!></button>'),Jr=_('<button class="btn btn-success"><!> Insert Document</button>'),Gr=_('<div class="space-y-3"><label for="insert-document" class="block text-sm font-semibold mb-2" style="color: var(--text);">Document JSON:</label> <textarea id="insert-document" placeholder="Document JSON" rows="6" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2" style="color: var(--text); --tw-ring-color: var(--link);"></textarea> <div class="flex gap-3"><button class="btn btn-success hover:bg-[var(--button-success-l)]"> </button> <button class="btn btn-default">Cancel</button></div></div>'),Hr=_('<div class="flex gap-3"><button class="btn btn-default"> </button></div>'),Kr=_(`<div class="text-sm rounded-xl bg-yellow-500/10 p-4 border border-yellow-500/30" style="color: var(--text-secondary);"><p class="font-semibold text-yellow-600 mb-2">⚠️ Query Changed</p> <p style="color: var(--text);">The filter has changed since you last checked the count. Please check the document count again before
5
+ proceeding.</p></div> <div class="flex gap-3"><button class="btn btn-default"> </button> <button class="btn btn-default">Cancel</button></div>`,1),Vr=_(`<p class="mb-2" style="color: var(--text);"> </p> <p>You can still proceed with deletion, but please be cautious. This operation will permanently delete
6
+ all documents matching the filter. This action cannot be undone.</p>`,1),Xr=_('<p class="mb-2" style="color: var(--text);">This will delete <strong class="text-red-600"> </strong> </p> <p>This operation is permanent and cannot be undone.</p>',1),Yr=_(`<div class="text-sm rounded-xl bg-red-500/10 p-4 border border-red-500/30" style="color: var(--text-secondary);"><p class="font-semibold text-red-600 mb-2">⚠️ Warning</p> <!></div> <div><label for="delete-confirm" class="block text-sm font-semibold mb-2" style="color: var(--text);">Type <code class="bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs">confirm</code> to proceed:</label> <input type="text" id="delete-confirm" placeholder="Type 'confirm' to enable deletion" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2" style="color: var(--text); --tw-ring-color: var(--link);"/></div> <div class="flex gap-3"><button class="btn btn-danger hover:bg-red-700"> </button> <button class="btn btn-default">Cancel</button></div>`,1),Zr=_('<div class="p-4 sm:p-6 space-y-6"><div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Insert New Document</h3> <!></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Update Multiple Documents</h3> <div class="space-y-4"><div><label for="update-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to update):</label> <input type="text" id="update-filter" readonly="" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be updated.</p></div> <div><label for="update-operation" class="block text-sm font-semibold mb-2" style="color: var(--text);">Update Operation (e.g., $set, $inc, $unset):</label> <textarea placeholder="Update operation" rows="4" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm focus:outline-none focus:ring-2" style="color: var(--text); --tw-ring-color: var(--link);"></textarea></div> <div class="flex gap-3"><button class="btn btn-success hover:bg-[var(--button-success-l)]"> </button></div></div></div> <div class="rounded-xl bg-[var(--color-3)]/30 p-4 border border-[var(--border-color)]"><h3 class="text-lg font-semibold mb-3" style="color: var(--text);">Delete Multiple Documents</h3> <div class="space-y-4"><div><label for="delete-filter" class="block text-sm font-semibold mb-2" style="color: var(--text);">Filter (which documents to delete):</label> <input type="text" id="delete-filter" readonly="" class="w-full p-3 rounded-xl border border-[var(--border-color)] bg-[var(--color-3)] font-mono text-sm opacity-75 cursor-not-allowed" style="color: var(--text);"/> <p class="text-xs mt-2" style="color: var(--text-secondary);">This filter is taken from the query above. Modify the query to change which documents will be deleted.</p></div> <!></div></div> <div class="flex justify-end"><button class="btn btn-default hover:bg-[var(--color-3)]">Close Edit Mode</button></div> <div class="text-sm rounded-xl bg-[var(--color-3)]/50 p-4 border border-[var(--border-color)]" style="color: var(--text-secondary);"><p class="mb-2 font-semibold" style="color: var(--text);">Update Operation Examples:</p> <p class="mb-2">• Set a field: <code class="bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs"></code></p> <p class="mb-2">• Increment a value: <code class="bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs"></code></p> <p class="mb-2">• Unset a field: <code class="bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs"></code></p> <p>• Pipeline (compute from existing fields): <code class="bg-[var(--light-background)] px-2 py-1 rounded border border-[var(--border-color)] font-mono text-xs"></code></p></div></div>'),eo=_("<!> <!> <!>",1),to=_("<!> <!> <!>",1),ro=_("<!> <!>",1),oo=_("<!> <!>",1),ao=_("<!> <!> <!> <!>",1);function No(O,u){Nt(u,!0);const k=n=>{var d=zr(),m=i(d);Fr(m,{class:"w-4 h-4"}),l(d),C("click",d,Je),g(n,d)},r=(n,d=dt)=>{var m=Wr(),w=i(m);$r(w,{class:"w-4 h-4"}),l(m),C("click",m,()=>Ge(d())),g(n,m)};let t=Re(u,"data",7),c=S(ze({...t().params})),ce=T(()=>t().results),F=S(!1),y=S("{}"),f=S(!1),N=S(!1),Q=S(!1),ae=S(null),Ee=S(!1),h=ze({countChecked:!1,count:null,countError:null,confirmText:"",isCounting:!1,countQuery:null}),X=S(null),We=0;Pe(()=>{v(c,{...t().params},!0),De()}),Pe(()=>{const n=++We;v(X,null),t().count.then(d=>{n===We&&v(X,d.error?null:d.data,!0)})}),Pe(()=>{e(ce)&&v(K,null),e(ce).then(n=>{n.error&&G.notifyError(n.error)})}),Pe(()=>{t().count.then(n=>{n.error&&!n.error.includes("operation exceeded time limit")&&G.notifyError(n.error)})});let K=S(null),ge=T(()=>e(K)?{data:e(K),error:null}:e(ce));async function ke(n,d,m){const w=!!(e(c).project&&e(c).project!=="{}"&&Object.keys(mt(e(c).project)).length>0),P=d?._id?.$value,B=n?.$value;if(P!==B){G.notifyError("ObjectId changed. This is not supported, update canceled.");return}if(B)try{const E=await er({server:t().server,database:t().database,collection:t().collection,document:B,value:d,partial:w});if(E.ok){G.notifySuccess("Document updated successfully");const D=m.findIndex(H=>H._id?.$value===B);D!==-1&&(m[D]=E.update),v(K,m,!0)}}catch(E){console.error(E),G.notifyError(E,"Failed to update document")}}async function ne(n,d){const m=n?.$value??n;if(!(!m||typeof m!="string"))try{await tr({server:t().server,database:t().database,collection:t().collection,document:m}),G.notifySuccess("Document removed successfully"),v(K,d.filter(w=>(w._id?.$value??w._id)!==m),!0)}catch(w){G.notifyError(w,"Failed to remove document")}}function xe(n){const d=new Qt;return d.set("query",e(c).query||"{}"),d.set("sort",e(c).sort||""),d.set("project",e(c).project||""),d.set("skip",String(n)),d.set("limit",String(e(c).limit)),`/servers/${encodeURIComponent(t().server)}/databases/${encodeURIComponent(t().database)}/collections/${encodeURIComponent(t().collection)}/documents?${d.toString()}`}const ye=T(()=>xe(e(c).skip+e(c).limit)),de=T(()=>xe(Math.max(0,e(c).skip-e(c).limit)));function Ne(n){n.preventDefault(),t().params.skip+=t().params.limit,e(c).skip=t().params.skip,qt(e(ye),{}),v(ce,vt({server:t().server,database:t().database,collection:t().collection,query:e(c).query,sort:e(c).sort,project:e(c).project,skip:e(c).skip,limit:e(c).limit,mode:e(c).mode,field:e(c).field}))}function he(n){n.preventDefault(),t().params.skip=Math.max(0,t().params.skip-t().params.limit),e(c).skip=t().params.skip,qt(e(de),{}),v(ce,vt({server:t().server,database:t().database,collection:t().collection,query:e(c).query,sort:e(c).sort,project:e(c).project,skip:e(c).skip,limit:e(c).limit,mode:e(c).mode,field:e(c).field}))}async function Me(){v(f,!0);try{const n=await rr({server:t().server,database:t().database,collection:t().collection,filter:e(c).query||"{}",update:e(y)});n.ok&&(G.notifySuccess(`Updated ${n.modifiedCount} document(s) (matched ${n.matchedCount})`),v(K,null),v(F,!1))}catch(n){console.error(n),G.notifyError(n,"Failed to update documents")}finally{v(f,!1)}}async function Fe(){h.isCounting=!0,h.countError=null;const n=e(c).query||"{}";try{const d=await Tt({server:t().server,database:t().database,collection:t().collection,filter:n});h.count=d.data,h.countError=d.error,h.countChecked=!0,h.countQuery=n}catch(d){G.notifyError(d,"Failed to count documents"),h.countError=d instanceof Error?d.message:String(d)}finally{h.isCounting=!1}}function De(){h.countChecked=!1,h.count=null,h.countError=null,h.confirmText="",h.countQuery=null}let je=T(()=>h.countChecked&&h.countQuery!==(e(c).query||"{}"));Pe(()=>{e(je)&&(h.confirmText="")});async function $e(){v(f,!0);try{const n=await ar({server:t().server,database:t().database,collection:t().collection,filter:e(c).query||"{}"});n.ok&&(G.notifySuccess(`Deleted ${n.deletedCount} document(s)`),v(K,null),v(F,!1),De())}catch(n){console.error(n),G.notifyError(n,"Failed to delete documents")}finally{v(f,!1)}}let se=S("{}");async function we(){v(f,!0);try{const n=mt(e(se));(await or({server:t().server,database:t().database,collection:t().collection,document:null,value:n})).ok&&(G.notifySuccess("Document inserted successfully"),v(K,null),v(N,!1),v(se,"{}"))}catch(n){console.error(n),G.notifyError(n,"Failed to insert document")}finally{v(f,!1)}}function Ie(){v(N,!0),v(se,"{}")}function qe(){v(N,!1),v(se,"{}")}function Qe(){const n=e(c).sort||"{}";if(n.replace(/\s/g,"")==="{}")return ft({_id:-1}).replace(/[\n\t]/g," ").replace(/\s+/g," ");const d=mt(n),m={};for(const[w,P]of Object.entries(d))typeof P=="number"?m[w]=P===1?-1:1:m[w]=P;return ft(m).replace(/[\n\t]/g," ").replace(/\s+/g," ")}function Je(n){n.preventDefault();const d=Qe();e(c).sort=d,t().params.sort=d,t().params.skip=0,e(c).skip=0;const m=new Qt;m.set("query",e(c).query||"{}"),m.set("sort",d),m.set("project",e(c).project||""),m.set("skip","0"),m.set("limit",String(e(c).limit));const w=`/servers/${encodeURIComponent(t().server)}/databases/${encodeURIComponent(t().database)}/collections/${encodeURIComponent(t().collection)}/documents?${m.toString()}`;qt(w,{}),v(ce,vt({server:t().server,database:t().database,collection:t().collection,query:e(c).query,sort:d,project:e(c).project,skip:0,limit:e(c).limit,mode:e(c).mode,field:e(c).field}))}async function Ge(n){try{const d=n.map(w=>w.value),m=ft(d);await navigator.clipboard.writeText(m),G.notifySuccess("Copied distinct values to clipboard")}catch(d){console.error(d),G.notifyError(d,"Failed to copy to clipboard")}}async function rt(){v(Q,!0);try{const n=await Zt({server:t().server,database:t().database,collection:t().collection,query:e(c).query||"{}",sort:e(c).sort||"{}",project:e(c).project||"{}",skip:e(c).skip,limit:e(c).limit,mode:e(c).mode==="aggregation"?"aggregation":"query",verbosity:"executionStats"});n.error?G.notifyError(n.error):(v(ae,n.data,!0),v(Ee,!0))}catch(n){console.error(n),G.notifyError(n,"Failed to explain query")}finally{v(Q,!1)}}function ot(n){const d={...n,field:n.field??""};t().params=d,v(c,d,!0),v(ce,vt({server:t().server,database:t().database,collection:t().collection,query:d.query,sort:d.sort,project:d.project,skip:d.skip,limit:d.limit,mode:d.mode,field:d.field})),t().count=Tt({server:t().server,database:t().database,collection:t().collection,filter:d.query})}var He=ao(),Se=te(He);Rr(Se,{get readonly(){return t().readOnly},get explainLoading(){return e(Q)},onexplain:rt,onsearch:ot,get server(){return t().server},get database(){return t().database},get collection(){return t().collection},get params(){return e(c)},set params(n){v(c,n,!0)},get editMode(){return e(F)},set editMode(n){v(F,n,!0)}});var Ce=a(Se,2);gr(Ce,{get data(){return e(ae)},get show(){return e(Ee)},onclose:()=>v(Ee,!1)});var ue=a(Ce,2);{var Te=n=>{pt(n,{title:"Edit Mode",children:(d,m)=>{var w=Zr(),P=i(w),B=a(i(P),2);{var E=M=>{var $=Jr(),J=i($);Ar(J,{class:"w-4 h-4 inline mr-2"}),et(),l($),C("click",$,Ie),g(M,$)},D=M=>{var $=Gr(),J=a(i($),2);bt(J),gt(()=>be(J,()=>e(se),Ye=>v(se,Ye))),Oe(J,(Ye,ut)=>yt?.(Ye,ut),()=>({onsubmit:we}));var me=a(J,2),Ue=i(me),Ve=i(Ue,!0);l(Ue);var Xe=a(Ue,2);l(me),l($),U(()=>{Ue.disabled=e(f),A(Ve,e(f)?"Inserting...":"Insert"),Xe.disabled=e(f)}),C("click",Ue,we),C("click",Xe,qe),g(M,$)};q(B,M=>{e(N)?M(D,-1):M(E)})}l(P);var H=a(P,2),le=a(i(H),2),Y=i(le),ie=a(i(Y),2);fe(ie),et(2),l(Y);var Z=a(Y,2),z=a(i(Z),2);bt(z),gt(()=>be(z,()=>e(y),M=>v(y,M))),Oe(z,(M,$)=>yt?.(M,$),()=>({onsubmit:Me})),l(Z);var s=a(Z,2),o=i(s),p=i(o,!0);l(o),l(s),l(le),l(H);var x=a(H,2),b=a(i(x),2),j=i(b),L=a(i(j),2);fe(L),et(2),l(j);var W=a(j,2);{var ve=M=>{var $=Hr(),J=i($),me=i(J,!0);l(J),l($),U(()=>{J.disabled=h.isCounting,A(me,h.isCounting?"Counting...":"Check Document Count")}),C("click",J,Fe),g(M,$)},V=M=>{var $=Kr(),J=a(te($),2),me=i(J),Ue=i(me,!0);l(me);var Ve=a(me,2);l(J),U(()=>{me.disabled=h.isCounting,A(Ue,h.isCounting?"Counting...":"Check Count Again"),Ve.disabled=h.isCounting}),C("click",me,Fe),C("click",Ve,De),g(M,$)},pe=M=>{var $=Yr(),J=te($),me=a(i(J),2);{var Ue=Ae=>{var st=Vr(),lt=te(st),it=i(lt);l(lt),et(2),U(()=>A(it,`Unable to count documents: ${h.countError??""}`)),g(Ae,st)},Ve=Ae=>{var st=Xr(),lt=te(st),it=a(i(lt)),Ht=i(it,!0);l(it);var Kt=a(it);l(lt),et(2),U(Vt=>{A(Ht,Vt),A(Kt,` document${h.count===1?"":"s"}.`)},[()=>h.count?.toLocaleString()]),g(Ae,st)};q(me,Ae=>{h.countError?Ae(Ue):Ae(Ve,-1)})}l(J);var Xe=a(J,2),Ye=a(i(Xe),2);fe(Ye),l(Xe);var ut=a(Xe,2),nt=i(ut),Gt=i(nt,!0);l(nt);var Lt=a(nt,2);l(ut),U(()=>{nt.disabled=e(f)||h.confirmText!=="confirm",A(Gt,e(f)?"Deleting...":"Execute Delete"),Lt.disabled=e(f)}),be(Ye,()=>h.confirmText,Ae=>h.confirmText=Ae),C("click",nt,$e),C("click",Lt,De),g(M,$)};q(W,M=>{h.countChecked?e(je)?M(V,1):M(pe,-1):M(ve)})}l(b),l(x);var ee=a(x,2),_e=i(ee);l(ee);var I=a(ee,2),R=a(i(I),2),re=a(i(R));re.textContent='{"$set": {"status": "active"}}',l(R);var at=a(R,2),zt=a(i(at));zt.textContent='{"$inc": {"count": 1}}',l(at);var kt=a(at,2),Wt=a(i(kt));Wt.textContent='{"$unset": {"oldField": ""}}',l(kt);var Ut=a(kt,2),Jt=a(i(Ut));Jt.textContent='[{"$set": {"fullName": {"$concat": ["$firstName", " ", "$lastName"]}}}]',l(Ut),l(I),l(w),U(()=>{xt(ie,e(c).query||"{}"),o.disabled=e(f),A(p,e(f)?"Updating...":"Execute Update"),xt(L,e(c).query||"{}")}),C("click",o,Me),C("click",_e,()=>{v(F,!1),v(N,!1),De()}),g(d,w)},$$slots:{default:!0}})};q(ue,n=>{e(F)&&n(Te)})}var Ke=a(ue,2);Mt(Ke,()=>e(ge),n=>{{const d=w=>{var P=Pt(),B=te(P);{var E=D=>{var H=oo(),le=te(H);{var Y=z=>{St(z,()=>e(de),()=>he)};q(le,z=>{t().params.skip>0&&z(Y)})}var ie=a(le,2);{var Z=z=>{Ct(z,()=>e(ye),()=>Ne)};q(ie,z=>{t().params.skip+t().params.limit<e(X)&&z(Z)})}g(D,H)};q(B,D=>{e(X)!==null&&D(E)})}g(w,P)};let m=T(()=>e(X)!==null?t().params.mode==="distinct"?`${oe(e(X))} distinct value${e(X)===1?"":"s"}...`:`${oe(t().params.skip+1)} - ${oe(t().params.skip+t().params.limit)} of ${oe(e(X))} documents...`:t().params.mode==="distinct"?"Loading distinct values...":"Loading documents...");pt(n,{get title(){return e(m)},titleClass:"py-1",actions:d,$$slots:{actions:!0}})}},(n,d)=>{const m=T(()=>e(d)?.data??[]);var w=ro(),P=te(w);Mt(P,()=>t().count,E=>{{const D=le=>{var Y=to(),ie=te(Y);{var Z=b=>{St(b,()=>e(de),()=>he)};q(ie,b=>{t().params.skip>0&&b(Z)})}var z=a(ie,2);{var s=b=>{Ct(b,()=>e(ye),()=>Ne)};q(z,b=>{e(m).length>=t().params.limit&&b(s)})}var o=a(z,2);{var p=b=>{r(b,()=>e(m))},x=b=>{k(b)};q(o,b=>{t().params.mode==="distinct"?b(p):b(x,-1)})}g(le,Y)};let H=T(()=>e(m).length>0?t().params.mode==="distinct"?`${oe(e(m).length)} distinct value${e(m).length===1?"":"s"} (counting...)`:`${oe(t().params.skip+1)} - ${oe(t().params.skip+e(m).length)} Documents (counting...)`:t().params.mode==="distinct"?"No distinct values":"No documents");pt(E,{titleClass:"py-1",get title(){return e(H)},actions:D,$$slots:{actions:!0}})}},(E,D)=>{var H=Pt(),le=te(H);{var Y=ie=>{const Z=T(()=>e(D).data),z=T(()=>e(D).error?e(m).length>=t().params.limit:t().params.skip+e(m).length<e(Z)),s=T(()=>t().params.skip>0),o=T(()=>e(D).error?.includes("operation exceeded time limit"));{const p=b=>{var j=eo(),L=te(j);{var W=I=>{St(I,()=>e(de),()=>he)};q(L,I=>{e(s)&&I(W)})}var ve=a(L,2);{var V=I=>{Ct(I,()=>e(ye),()=>Ne)};q(ve,I=>{e(z)&&I(V)})}var pe=a(ve,2);{var ee=I=>{r(I,()=>e(m))},_e=I=>{k(I)};q(pe,I=>{t().params.mode==="distinct"?I(ee):I(_e,-1)})}g(b,j)};let x=T(()=>e(m).length>0?t().params.mode==="distinct"?`${oe(e(Z))} distinct value${e(Z)===1?"":"s"}`:e(Z)>0?`${oe(t().params.skip+1)} - ${oe(t().params.skip+e(m).length)} of ${oe(e(Z))} documents`:`${oe(t().params.skip+1)} - ${oe(t().params.skip+e(m).length)} documents (count ${e(o)?"timeout":"unavailable"})`:t().params.mode==="distinct"?"No distinct values":"No documents");pt(ie,{get title(){return e(x)},titleClass:"py-1",actions:p,$$slots:{actions:!0}})}};q(le,ie=>{t().params&&ie(Y)})}g(E,H)});var B=a(P,2);Bt(B,19,()=>e(m),(E,D)=>E._id?.$value||D,(E,D)=>{{let H=T(()=>t().params.mode==="aggregation"||t().params.mode==="distinct"||t().readOnly?void 0:Y=>ke(e(D)._id,Y,e(m))),le=T(()=>t().params.mode==="aggregation"||t().params.mode==="distinct"||t().readOnly?void 0:()=>ne(e(D)._id,e(m)));ir(E,{get json(){return e(D)},autoCollapse:!0,get onedit(){return e(H)},get onremove(){return e(le)},get server(){return t().server},get database(){return t().database},get collection(){return t().collection},get mappings(){return t().mappings}})}}),g(n,w)}),g(O,He),Dt()}jt(["click"]);export{No as component};
@@ -1 +1 @@
1
- import{c as J,a as u,f}from"../chunks/DaMh_eeB.js";import{p as L,f as M,a as T,g as o,b as I,u as v,c as g,r as y,s as _,t as z,d as s}from"../chunks/IwGwbOe7.js";import{d as A,s as B,a as k}from"../chunks/BDGd1aqF.js";import{i as D}from"../chunks/CCOVnadf.js";import{i as G,b as H,u as K}from"../chunks/YMZQSnF3.js";import{g as N}from"../chunks/v8XDA7ui.js";import{b as Q}from"../chunks/Dzt_TFtX.js";import{P as w}from"../chunks/IixngxlS.js";import{n as c}from"../chunks/DqxUmOYD.js";var V=f('<div class="loading svelte-khslrq">Loading...</div>'),W=f('<div class="insert-container svelte-khslrq"><h3 class="svelte-khslrq"> </h3> <!> <button class="btn btn-default mt-4">Cancel</button></div>'),X=f('<button class="btn btn-success">Insert Document</button>'),Y=f('<div class="not-found-container svelte-khslrq"><div class="text-center svelte-khslrq">Document not found</div> <!></div>');function dt(q,t){L(t,!0);let l=I(!1),d=v(()=>t.data.document),b=I(!1);async function C(e){const a=e?._id?.$value??e?._id,n=o(d)?._id?.$value??o(d)?._id;if(a!==n){c.notifyError("ObjectId changed. This is not supported, update canceled.");return}if(n){s(l,!0);try{const r=await K({server:t.data.server,database:t.data.database,collection:t.data.collection,document:n,value:e,partial:!1});r.ok&&(c.notifySuccess("Document updated successfully"),s(d,r.update))}catch(r){c.notifyError(r,"Failed to update document")}finally{s(l,!1)}}}async function E(){const e=o(d)?._id?.$value??o(d)?._id;if(e)try{await H({server:t.data.server,database:t.data.database,collection:t.data.collection,document:e}),c.notifySuccess("Document removed successfully"),N(`${Q}/servers/${encodeURIComponent(t.data.server)}/databases/${encodeURIComponent(t.data.database)}/collections/${encodeURIComponent(t.data.collection)}?query=${encodeURIComponent("{}")}&sort=&project=&skip=0&limit=20`)}catch(a){c.notifyError(a,"Failed to remove document")}}async function O(e){s(l,!0);try{(await G({server:t.data.server,database:t.data.database,collection:t.data.collection,document:t.data.documentId,value:e})).ok&&(c.notifySuccess("Document inserted successfully"),window.location.reload())}catch(a){c.notifyError(a,"Failed to insert document")}finally{s(l,!1)}}function x(){s(b,!0)}var h=J(),R=M(h);{var S=e=>{var a=V();u(e,a)},U=e=>{{let a=v(()=>t.data.readOnly?void 0:C),n=v(()=>t.data.readOnly?void 0:E);w(e,{get json(){return o(d)},get onedit(){return o(a)},get onremove(){return o(n)},get server(){return t.data.server},get database(){return t.data.database},get collection(){return t.data.collection},get mappings(){return t.data.mappings}})}},j=e=>{var a=W(),n=g(a),r=g(n);y(n);var i=_(n,2);{let P=v(()=>({_id:{$type:"ObjectId",$value:t.data.documentId}}));w(i,{get json(){return o(P)},onedit:O,get server(){return t.data.server},get database(){return t.data.database},get collection(){return t.data.collection},get mappings(){return t.data.mappings},startInEditMode:!0})}var m=_(i,2);y(a),z(()=>B(r,`Insert Document with ID: ${t.data.documentId??""}`)),k("click",m,()=>s(b,!1)),u(e,a)},F=e=>{var a=Y(),n=_(g(a),2);{var r=i=>{var m=X();k("click",m,x),u(i,m)};D(n,i=>{t.data.readOnly||i(r)})}y(a),u(e,a)};D(R,e=>{o(l)?e(S):o(d)?e(U,1):o(b)?e(j,2):e(F,-1)})}u(q,h),T()}A(["click"]);export{dt as component};
1
+ import{c as J,a as u,f}from"../chunks/DKMyRjux.js";import{p as L,f as M,a as T,g as o,b as I,u as v,c as g,r as y,s as _,t as z,d as s}from"../chunks/DfW1b8bA.js";import{d as A,s as B,a as k}from"../chunks/CrLGr586.js";import{i as D}from"../chunks/DymqlScG.js";import{i as G,b as H,u as K}from"../chunks/BE54Cy37.js";import{g as N}from"../chunks/B2jd13FV.js";import{b as Q}from"../chunks/CmmE3z9D.js";import{P as w}from"../chunks/CFdm8ab0.js";import{n as c}from"../chunks/CUBPtF8t.js";var V=f('<div class="loading svelte-khslrq">Loading...</div>'),W=f('<div class="insert-container svelte-khslrq"><h3 class="svelte-khslrq"> </h3> <!> <button class="btn btn-default mt-4">Cancel</button></div>'),X=f('<button class="btn btn-success">Insert Document</button>'),Y=f('<div class="not-found-container svelte-khslrq"><div class="text-center svelte-khslrq">Document not found</div> <!></div>');function dt(q,t){L(t,!0);let l=I(!1),d=v(()=>t.data.document),b=I(!1);async function C(e){const a=e?._id?.$value??e?._id,n=o(d)?._id?.$value??o(d)?._id;if(a!==n){c.notifyError("ObjectId changed. This is not supported, update canceled.");return}if(n){s(l,!0);try{const r=await K({server:t.data.server,database:t.data.database,collection:t.data.collection,document:n,value:e,partial:!1});r.ok&&(c.notifySuccess("Document updated successfully"),s(d,r.update))}catch(r){c.notifyError(r,"Failed to update document")}finally{s(l,!1)}}}async function E(){const e=o(d)?._id?.$value??o(d)?._id;if(e)try{await H({server:t.data.server,database:t.data.database,collection:t.data.collection,document:e}),c.notifySuccess("Document removed successfully"),N(`${Q}/servers/${encodeURIComponent(t.data.server)}/databases/${encodeURIComponent(t.data.database)}/collections/${encodeURIComponent(t.data.collection)}?query=${encodeURIComponent("{}")}&sort=&project=&skip=0&limit=20`)}catch(a){c.notifyError(a,"Failed to remove document")}}async function O(e){s(l,!0);try{(await G({server:t.data.server,database:t.data.database,collection:t.data.collection,document:t.data.documentId,value:e})).ok&&(c.notifySuccess("Document inserted successfully"),window.location.reload())}catch(a){c.notifyError(a,"Failed to insert document")}finally{s(l,!1)}}function x(){s(b,!0)}var h=J(),R=M(h);{var S=e=>{var a=V();u(e,a)},U=e=>{{let a=v(()=>t.data.readOnly?void 0:C),n=v(()=>t.data.readOnly?void 0:E);w(e,{get json(){return o(d)},get onedit(){return o(a)},get onremove(){return o(n)},get server(){return t.data.server},get database(){return t.data.database},get collection(){return t.data.collection},get mappings(){return t.data.mappings}})}},j=e=>{var a=W(),n=g(a),r=g(n);y(n);var i=_(n,2);{let P=v(()=>({_id:{$type:"ObjectId",$value:t.data.documentId}}));w(i,{get json(){return o(P)},onedit:O,get server(){return t.data.server},get database(){return t.data.database},get collection(){return t.data.collection},get mappings(){return t.data.mappings},startInEditMode:!0})}var m=_(i,2);y(a),z(()=>B(r,`Insert Document with ID: ${t.data.documentId??""}`)),k("click",m,()=>s(b,!1)),u(e,a)},F=e=>{var a=Y(),n=_(g(a),2);{var r=i=>{var m=X();k("click",m,x),u(i,m)};D(n,i=>{t.data.readOnly||i(r)})}y(a),u(e,a)};D(R,e=>{o(l)?e(S):o(d)?e(U,1):o(b)?e(j,2):e(F,-1)})}u(q,h),T()}A(["click"]);export{dt as component};
@@ -0,0 +1 @@
1
+ import{f as v,a as n,c as kt,t as Tt}from"../chunks/DKMyRjux.js";import{p as Jt,h as se,s as d,c as a,r as t,a as Kt,g as e,u as O,t as j,b as x,i as Be,d as l,f as ae,w as Bt,n as Ne,aQ as At,bl as Oa}from"../chunks/DfW1b8bA.js";import{d as Vt,s as P,a as Q}from"../chunks/CrLGr586.js";import{a as Ma}from"../chunks/oSuzXE6i.js";import{p as lt,i as k}from"../chunks/DymqlScG.js";import{e as it,s as Rt,i as $t}from"../chunks/wZh6TcLb.js";import{a as qt}from"../chunks/OvZJ6gNJ.js";import{r as ge,s as ve}from"../chunks/DupjJGFi.js";import{s as Ea}from"../chunks/CyTV7fHl.js";import{a as Re,b as ot}from"../chunks/DgwByHCB.js";import{h as Ia,j as Ca,k as Fa,l as Da,m as La,n as Ua,o as Ta}from"../chunks/BE54Cy37.js";import{r as Ba,f as Aa,h as Ra}from"../chunks/B2jd13FV.js";import{p as je}from"../chunks/DFOCkNuT.js";import{j as Wt,J as $a}from"../chunks/BCQ_Gxjq.js";import{M as zt}from"../chunks/J9ZSs_8c.js";import{P as Ae}from"../chunks/DVIi8uNn.js";import{n as F}from"../chunks/CUBPtF8t.js";import{f as qa}from"../chunks/Dfjkeakv.js";function Wa(i,o){if(i.length<o.length&&o.endsWith(i))return i;if(o.length<i.length&&i.endsWith(o))return o;let c="",s=i.length-1,g=o.length-1;for(;s>=0&&g>=0&&i[s]===o[g];)c=i.slice(s),s--,g--;return c}function za(i,o){if(!i||o.length===0)return null;let c=null,s=0;for(const g of o){const C=Wa(i,g);C.length>s?(s=C.length,c=g):C.length===s&&(c=null)}return c}var Ha=v('<div class="loading-message svelte-14baj27">Loading nodes...</div>'),Ja=v('<div class="no-nodes-message svelte-14baj27">No nodes found. Click "Fetch Usage" to load nodes.</div>'),Ka=v('<span class="primary-badge svelte-14baj27">PRIMARY</span>'),Va=v('<label class="checkbox-label svelte-14baj27"><input type="checkbox" class="svelte-14baj27"/> <span class="node-name svelte-14baj27"> <!></span></label>'),Qa=v('<div class="selector-options svelte-14baj27"></div>'),Ya=v('<div class="replica-set-selector svelte-14baj27"><div class="selector-header svelte-14baj27"><span class="selector-title svelte-14baj27">Replica Set Nodes</span> <span class="selector-subtitle svelte-14baj27">Select specific nodes to fetch index stats from</span></div> <!></div>');function Ga(i,o){Jt(o,!0);let c=lt(o,"availableNodes",27,()=>se([])),s=lt(o,"selectedNodes",31,()=>se([])),g=lt(o,"loading",3,!1),C=lt(o,"primaryNode",3,null),$=O(()=>Object.fromEntries(c().map(M=>[M,s().includes(M)])));const Pe=O(()=>!C()||c().length===0?null:za(C(),c()));function re(){s(Object.keys(e($)).filter(M=>e($)[M]))}var D=Ya(),B=d(a(D),2);{var he=M=>{var J=Ha();n(M,J)},$e=M=>{var J=Ja();n(M,J)},Y=M=>{var J=Qa();it(J,20,c,le=>le,(le,q)=>{var K=Va(),oe=a(K);ge(oe);var fe=d(oe,2),Oe=a(fe),dt=d(Oe);{var qe=A=>{var ct=Ka();n(A,ct)};k(dt,A=>{q===e(Pe)&&A(qe)})}t(fe),t(K),j(()=>{ve(fe,"title",q),P(Oe,`${q??""} `)}),Q("change",oe,re),Re(oe,()=>e($)[q],A=>e($)[q]=A),n(le,K)}),t(J),n(M,J)};k(B,M=>{g()?M(he):c().length===0?M($e,1):M(Y,-1)})}t(D),n(i,D),Kt()}Vt(["change"]);function nt(i,o=3){if(i===0)return"0";const c=Math.abs(i),s=i<0?"-":"";if(c>=1e9){const g=c/1e9;return`${s}${g.toPrecision(o)}B`}else if(c>=1e6){const g=c/1e6;return`${s}${g.toPrecision(o)}M`}else if(c>=1e3){const g=c/1e3;return`${s}${g.toPrecision(o)}k`}else return`${s}${c.toPrecision(Math.min(o,Math.ceil(Math.log10(c+1))))}`}function Xa(i){if(!i)return"";const c=new Date().getTime()-i.getTime(),s=Math.floor(c/1e3),g=Math.floor(s/60),C=Math.floor(g/60);return C>0?`${C}h ${g%60}m ago`:g>0?`${g}m ${s%60}s ago`:`${s}s ago`}function Qt(i){if(i.length===0||i.length===1)return"";let o=i[0];for(let c=1;c<i.length;c++)for(;i[c].indexOf(o)!==0;)if(o=o.substring(0,o.length-1),o==="")return"";return o}function Za(i){if(i.length===0||i.length===1)return"";const o=i.map(s=>s.split("").reverse().join(""));return Qt(o).split("").reverse().join("")}function es(i,o,c){if(!o&&!c)return i;let s=i;if(o&&s.startsWith(o)&&(s=s.slice(o.length)),c&&s.endsWith(c)&&(s=s.slice(0,-c.length)),s.length===0)return i;const g=o.length>0,C=c.length>0;return g&&C?`…${s}…`:g?`…${s}`:C?`${s}…`:s}function ts(i){if(i.length<=1)return Object.fromEntries(i.map(s=>[s,s]));const o=Qt(i),c=Za(i);return Object.fromEntries(i.map(s=>[s,es(s,o,c)]))}function as(i,o){return Object.fromEntries(Object.entries(i).filter(([c])=>!o.includes(c)))}function Ht(i){let o=0;for(const c of i)o+=c;return o}var ss=v('<div class="p-4 svelte-l3ef1w"><p class="error svelte-l3ef1w"> </p></div>'),rs=v('<button class="btn btn-success btn-sm flex items-center svelte-l3ef1w" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 inline mr-1 svelte-l3ef1w"><path d="M12 5v14M5 12h14" class="svelte-l3ef1w"></path></svg> Create Index</button>'),ls=v('<div class="text-center p-4 svelte-l3ef1w" style="color: var(--text-darker)">No indexes found</div>'),os=v('<label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Aggregate usage</span></label>'),ns=v('<div class="mb-4 svelte-l3ef1w"><!> <div class="mt-3 flex gap-3 items-center flex-wrap svelte-l3ef1w"><button><!></button> <!></div></div>'),is=v('<th style="width: 150px" class="svelte-l3ef1w">Actions</th>'),ds=v('<span class="index-key svelte-l3ef1w"> </span>'),cs=v('<div class="flex flex-wrap gap-2 svelte-l3ef1w"></div>'),vs=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),fs=v('<span class="badge badge-building svelte-l3ef1w">building</span>'),us=v('<span class="badge badge-hidden svelte-l3ef1w">hidden</span>'),ps=v('<span class="badge badge-unique svelte-l3ef1w">unique</span>'),bs=v('<span class="badge badge-sparse svelte-l3ef1w">sparse</span>'),ms=v('<span class="badge badge-partial svelte-l3ef1w">partial</span>'),gs=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),hs=v('<span class="text-sm whitespace-nowrap svelte-l3ef1w"> </span>'),_s=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),ws=v('<span class="increment-badge svelte-l3ef1w"> </span>'),xs=v('<div class="svelte-l3ef1w"> <!> <span class="text-xs svelte-l3ef1w" style="color: var(--text-darker)"> </span></div>'),ys=v('<span class="increment-badge svelte-l3ef1w"> </span>'),ks=v('<div class="separate-stat svelte-l3ef1w"><span class="stat-host svelte-l3ef1w"> </span> <span class="stat-value svelte-l3ef1w"> <!></span></div>'),Ss=v('<div class="svelte-l3ef1w"> </div>'),Ns=v('<div class="text-sm mt-1 svelte-l3ef1w"><!></div>'),js=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),Ps=v('<div class="flex gap-2 hidden group-hover:flex -my-2 svelte-l3ef1w"><button class="btn btn-outline-light btn-sm svelte-l3ef1w"> </button> <button class="btn btn-outline-danger btn-sm svelte-l3ef1w">Drop</button></div>'),Os=v('<td class="svelte-l3ef1w"><!></td>'),Ms=v('<tr><td class="name-cell svelte-l3ef1w"><span class="font-mono text-sm index-name svelte-l3ef1w"> </span></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><div class="flex flex-wrap gap-2 svelte-l3ef1w"><!> <!> <!> <!> <!> <!></div></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><details class="cursor-pointer svelte-l3ef1w"><summary class="details-link svelte-l3ef1w">View full</summary> <div class="details-content svelte-l3ef1w"><!></div></details></td><!></tr>'),Es=v('<div class="table-wrapper svelte-l3ef1w"><table class="table svelte-l3ef1w"><thead class="svelte-l3ef1w"><tr class="svelte-l3ef1w"><th class="name-column svelte-l3ef1w">Name</th><th class="svelte-l3ef1w">Keys</th><th class="svelte-l3ef1w">Properties</th><th class="shrink-column svelte-l3ef1w">Size</th><th class="shrink-column svelte-l3ef1w">Usage</th><th style="min-width: 300px" class="svelte-l3ef1w">Details</th><!></tr></thead><tbody class="svelte-l3ef1w"></tbody></table></div>'),Is=v("<!> <!>",1),Cs=v('<div class="mb-4 flex gap-3 svelte-l3ef1w"><!> <button class="btn btn-primary btn-sm svelte-l3ef1w"> </button></div> <!>',1),Fs=v('<div class="p-4 svelte-l3ef1w"><p class="error svelte-l3ef1w"> </p></div>'),Ds=v('<div class="loading svelte-l3ef1w">Loading indexes...</div>'),Ls=v('<button class="btn btn-default btn-sm svelte-l3ef1w">Cancel</button> <button class="btn btn-danger btn-sm svelte-l3ef1w">Drop Index</button>',1),Us=v('<p class="svelte-l3ef1w">Are you sure you want to drop the index <strong class="svelte-l3ef1w"> </strong>?</p> <p class="text-sm mt-2 svelte-l3ef1w" style="color: var(--text-darker)">This action cannot be undone. The index will need to be recreated if needed again.</p>',1),Ts=v('<button class="btn btn-default btn-sm svelte-l3ef1w">Cancel</button> <button class="btn btn-success btn-sm svelte-l3ef1w"> </button>',1),Bs=v('<div class="space-y-4 svelte-l3ef1w"><div class="svelte-l3ef1w"><label for="index-keys" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Index Keys (JSON) <span style="color: var(--error);" class="svelte-l3ef1w">*</span></label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Define the fields to index. Use 1 for ascending, -1 for descending. Example: <code class="svelte-l3ef1w"></code></p> <textarea id="index-keys" rows="3" class="w-full p-3 rounded border border-[var(--border-color)] bg-[var(--color-1)] font-mono text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"></textarea></div> <div class="svelte-l3ef1w"><label for="index-name" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Index Name (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Leave empty to auto-generate based on fields</p> <input id="index-name" type="text" placeholder="e.g., user_email_idx" class="w-full p-2 rounded border border-[var(--border-color)] bg-[var(--color-1)] text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"/></div> <div class="grid grid-cols-2 gap-3 svelte-l3ef1w"><label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Unique</span></label> <label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Sparse</span></label> <label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Background</span></label></div> <div class="svelte-l3ef1w"><label for="index-partial" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Partial Filter Expression (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Only index documents that match this filter. Example: <code class="svelte-l3ef1w"></code></p> <textarea id="index-partial" rows="2" class="w-full p-3 rounded border border-[var(--border-color)] bg-[var(--color-1)] font-mono text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"></textarea></div> <div class="svelte-l3ef1w"><label for="index-ttl" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">TTL - Expire After Seconds (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Automatically delete documents after specified seconds (for TTL indexes)</p> <input id="index-ttl" type="number" placeholder="e.g., 3600" min="0" class="w-full p-2 rounded border border-[var(--border-color)] bg-[var(--color-1)] text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"/></div></div>'),As=v("<!> <!> <!>",1);function rr(i,o){Jt(o,!0);const c=O(()=>o.data.readOnly);let s=x(null),g=x(se(new Set)),C=x(!1),$=x(null),Pe=x(!1),re=x(!1),D=x(se([])),B=x(se([])),he=x(!1),$e=x(null),Y=x(se({})),M=x(se({})),J=x(null),le=x(!1),q=x(!1),K=x(!1),oe=x(!1),fe=x(se([])),Oe=x(se(new Date));const dt=O(()=>{const f=[...new Set(Object.values(e(Y)).map(p=>p.host))];return ts(f)}),qe=O(()=>e(B).length!==e(fe).length||!e(B).every(f=>e(fe).includes(f))),A=O(()=>Object.keys(e(M)).length>0&&!e(qe)),ct=O(()=>(e(Oe),Xa(e(J))));Be(()=>{const f=setInterval(()=>{l(Oe,new Date,!0)},1e3);return()=>clearInterval(f)});let We=x('{ "fieldName": 1 }'),ze=x(""),He=x(!1),Je=x(!1),Ke=x(""),Ve=x(void 0),Qe=x(!1);Be(()=>{o.data.indexes.then(f=>{e(s)||l(s,f,!0)})});const Yt=O(()=>e(s)||o.data.indexes);async function Gt(f,p){const{server:_,database:u,collection:h}=je.params;if(!(!_||!u||!h)){e(g).add(f),l(g,e(g),!0);try{const w={server:_,database:u,collection:h,index:f};if(p?await Ua(w):await Ta(w),e(s)&&e(s).data){const E=e(s).data.map(S=>S.name===f?{...S,hidden:!p}:S);l(s,{...e(s),data:E},!0)}F.notifySuccess(`Index ${p?"unhidden":"hidden"} successfully`)}catch(w){F.notifyError(w,`Failed to ${p?"unhide":"hide"} index`)}finally{e(g).delete(f),l(g,e(g),!0)}}}function Xt(){l(We,'{ "fieldName": 1 }'),l(ze,""),l(He,!1),l(Je,!1),l(Ke,""),l(Ve,void 0),l(Qe,!1),l(Pe,!0)}function vt(){l(Pe,!1)}async function Zt(){const{server:f,database:p,collection:_}=je.params;if(!(!f||!p||!_)){l(q,!0);try{await La({server:f,database:p,collection:_,keys:e(We),name:e(ze)||void 0,unique:e(He)||void 0,sparse:e(Je)||void 0,partialFilterExpression:e(Ke)||void 0,expireAfterSeconds:e(Ve),background:e(Qe)||void 0}),F.notifySuccess("Index created successfully"),vt(),await Ra("app:indexes")}catch(u){F.notifyError(u,"Failed to create index")}finally{l(q,!1)}}}function ea(f){l($,f,!0),l(C,!0)}function ft(){l(C,!1),l($,null)}async function ta(){if(!e($))return;const{server:f,database:p,collection:_}=je.params;if(!f||!p||!_)return;e(g).add(e($)),l(g,e(g),!0);const u=e($);try{if(await Da({server:f,database:p,collection:_,index:u}),e(s)&&e(s).data){const h=e(s).data.filter(w=>w.name!==u);l(s,{...e(s),data:h},!0)}F.notifySuccess(`Index "${u}" dropped successfully`),ft()}catch(h){F.notifyError(h,"Failed to drop index")}finally{e(g).delete(u),l(g,e(g),!0)}}async function St(){const{server:f,database:p,collection:_}=je.params;if(!(!f||!p||!_)){l(he,!0);try{const u=await Ia({server:f});if(u.error)F.notifyError(u.error,"Failed to load nodes"),l(D,[],!0);else if(l(D,u.data,!0),e(D).length>0){F.notifySuccess(`Found ${e(D).length} node(s)`);const h=await Ca({server:f,database:p,collection:_});!h.error&&h.data&&l($e,h.data,!0)}}catch(u){F.notifyError(u,"Failed to load nodes"),l(D,[],!0)}finally{l(he,!1)}}}async function Nt(f=!0){const{server:p,database:_,collection:u}=je.params;if(!p||!_||!u)return;if(e(B).length===0){F.notifyError("No nodes selected","Please select at least one node");return}l(le,!0);const h=e(qe)||!e(A);try{const w=await Fa({server:p,database:_,collection:u,nodes:e(B)});w.error&&F.notifyError(w.error,"Failed to fetch stats from some nodes"),l(Y,w.data,!0),l(fe,[...e(B)],!0),h&&(l(M,{...e(Y)},!0),l(J,new Date,!0));const E=Object.keys(e(Y)).length;if(E===0)F.notifyError("No stats found","No index stats found for selected nodes");else{const S=h?`Fetched stats from ${E} index/host combination(s)`:`Updated stats from ${E} index/host combination(s)`;F.notifySuccess(S)}if(f){const S=new URL(window.location.href);S.searchParams.set("nodes",e(B).join(",")),e(K)&&S.searchParams.set("aggregate","true"),Aa(S.toString(),{})}}catch(w){F.notifyError(w,"Failed to fetch multi-node usage")}finally{l(le,!1)}}Be(()=>{e(re)&&e(D).length===0&&!e(he)&&St()}),Be(()=>{if(!e(oe)){const f=new URL(je.url),p=f.searchParams.get("nodes"),_=f.searchParams.get("aggregate");if(p){const u=p.split(",").filter(h=>h.length>0);u.length>0&&(l(re,!0),l(B,u,!0),e(D).length===0&&St().then(()=>{u.length>0&&Nt(!1)}))}_!==null&&l(K,_==="true"),l(oe,!0)}}),Be(()=>{if(e(oe)&&Object.keys(e(Y)).length>0){const f=new URL(window.location.href);e(K)?f.searchParams.set("aggregate","true"):f.searchParams.delete("aggregate"),Ba(f.toString(),{})}});var jt=As(),Pt=ae(jt);Ma(Pt,()=>e(Yt),f=>{Ae(f,{title:"Indexes",children:(p,_)=>{var u=Ds();n(p,u)},$$slots:{default:!0}})},(f,p)=>{var _=kt(),u=ae(_);{var h=E=>{Ae(E,{title:"Indexes",children:(S,ne)=>{var G=ss(),ie=a(G),X=a(ie,!0);t(ie),t(G),j(()=>P(X,e(p).error)),n(S,G)},$$slots:{default:!0}})},w=E=>{var S=Cs(),ne=ae(S),G=a(ne);{var ie=L=>{var W=rs();Q("click",W,Xt),n(L,W)};k(G,L=>{e(c)||L(ie)})}var X=d(G,2),Ye=a(X);t(X),t(ne);var Me=d(ne,2);{var Ge=L=>{Ae(L,{title:"Indexes",children:(W,ue)=>{var Ee=ls();n(W,Ee)},$$slots:{default:!0}})},Xe=L=>{var W=Is(),ue=ae(W);{var Ee=de=>{var pe=ns(),y=a(pe);Ga(y,{get loading(){return e(he)},get primaryNode(){return e($e)},get availableNodes(){return e(D)},set availableNodes(N){l(D,N,!0)},get selectedNodes(){return e(B)},set selectedNodes(N){l(B,N,!0)}});var Ie=d(y,2),z=a(Ie);let Ce;var ut=a(z);{var pt=N=>{var R=Tt();j(()=>P(R,e(A)?"Checking Δ...":"Fetching...")),n(N,R)},Ze=N=>{var R=Tt();j(()=>P(R,e(A)?"Δ Usage":"Fetch Usage")),n(N,R)};k(ut,N=>{e(le)?N(pt):N(Ze,-1)})}t(z);var Z=d(z,2);{var b=N=>{var R=os(),we=a(R);ge(we),Ne(2),t(R),Re(we,()=>e(K),De=>l(K,De)),n(N,R)},Fe=O(()=>Object.keys(e(Y)).length>0);k(Z,N=>{e(Fe)&&N(b)})}t(Ie),t(pe),j(()=>{Ce=Rt(z,1,"btn btn-sm svelte-l3ef1w",null,Ce,{"btn-primary":!e(A),"btn-outline-primary":e(A)}),z.disabled=e(le)||e(B).length===0,ve(z,"title",e(A)?`Baseline from ${e(ct)}`:"Fetch index usage statistics")}),Q("click",z,()=>Nt()),n(de,pe)};k(ue,de=>{e(re)&&de(Ee)})}var _e=d(ue,2);Ae(_e,{title:"Indexes",children:(de,pe)=>{var y=Es(),Ie=a(y),z=a(Ie),Ce=a(z),ut=d(a(Ce),6);{var pt=Z=>{var b=is();n(Z,b)};k(ut,Z=>{e(c)||Z(pt)})}t(Ce),t(z);var Ze=d(z);it(Ze,21,()=>e(p).data,Z=>Z.name,(Z,b)=>{const Fe=O(()=>e(g).has(e(b).name));var N=Ms();let R;var we=a(N),De=a(we),sa=a(De,!0);t(De),t(we);var bt=d(we),ra=a(bt);{var la=r=>{var m=cs();it(m,21,()=>Object.entries(e(b).key),$t,(V,ee)=>{var ce=O(()=>Oa(e(ee),2));let be=()=>e(ce)[0],H=()=>e(ce)[1];var I=ds(),U=a(I);t(I),j(()=>P(U,`${be()??""}: ${(H()===1?"↑":H()===-1?"↓":H())??""}`)),n(V,I)}),t(m),n(r,m)},oa=r=>{var m=vs();n(r,m)};k(ra,r=>{e(b).key?r(la):r(oa,-1)})}t(bt);var mt=d(bt),Mt=a(mt),Et=a(Mt);{var na=r=>{var m=fs();j(V=>{ve(m,"title",V),Ea(m,e(b).building.pct>0?`background: linear-gradient(to right, hsl(45, 100%, 45%) ${e(b).building.pct}%, hsl(45, 100%, 75%) ${e(b).building.pct}%)`:"")},[()=>e(b).building.pct>0?`${e(b).building.pct}% (${e(b).building.done.toLocaleString()} / ${e(b).building.total.toLocaleString()})`:"Building…"]),n(r,m)};k(Et,r=>{e(b).building&&r(na)})}var It=d(Et,2);{var ia=r=>{var m=us();n(r,m)};k(It,r=>{e(b).hidden&&r(ia)})}var Ct=d(It,2);{var da=r=>{var m=ps();n(r,m)};k(Ct,r=>{e(b).unique&&r(da)})}var Ft=d(Ct,2);{var ca=r=>{var m=bs();n(r,m)};k(Ft,r=>{e(b).sparse&&r(ca)})}var Dt=d(Ft,2);{var va=r=>{var m=ms();n(r,m)};k(Dt,r=>{e(b).partialFilterExpression&&r(va)})}var fa=d(Dt,2);{var ua=r=>{var m=gs();n(r,m)};k(fa,r=>{!e(b).building&&!e(b).hidden&&!e(b).unique&&!e(b).sparse&&!e(b).partialFilterExpression&&r(ua)})}t(Mt),t(mt);var gt=d(mt),pa=a(gt);{var ba=r=>{var m=hs(),V=a(m,!0);t(m),j(ee=>P(V,ee),[()=>qa(e(b).size)]),n(r,m)},ma=r=>{var m=_s();n(r,m)};k(pa,r=>{e(b).size?r(ba):r(ma,-1)})}t(gt);var ht=d(gt),ga=a(ht);{var ha=r=>{const m=O(()=>Object.entries(e(Y)).filter(([I])=>I.startsWith(`${e(b).name}::`)).map(([I,U])=>({key:I,stats:U}))),V=O(()=>Object.fromEntries(Object.entries(e(M)).filter(([I])=>I.startsWith(`${e(b).name}::`))));var ee=Ns(),ce=a(ee);{var be=I=>{var U=kt(),wt=ae(U);{var xt=xe=>{const ye=O(()=>Ht(e(m).map(T=>T.stats.ops))),et=O(()=>Ht(Object.values(e(V)).map(T=>T.ops))),Le=O(()=>e(et)>0?e(ye)-e(et):0);var me=xs(),tt=a(me),te=d(tt);{var at=T=>{var Ue=ws(),st=a(Ue);t(Ue),j(rt=>P(st,`+${rt??""}`),[()=>nt(e(Le))]),n(T,Ue)};k(te,T=>{e(Le)>0&&T(at)})}var ke=d(te,2),Se=a(ke);t(ke),t(me),j(T=>{ve(me,"title",`Aggregated across ${e(m).length??""} node(s)`),P(tt,`${T??""} `),P(Se,`(${e(m).length??""} node${e(m).length>1?"s":""})`)},[()=>e(Le)>0?nt(e(ye)):e(ye).toLocaleString()]),n(xe,me)},ka=xe=>{var ye=kt(),et=ae(ye);it(et,17,()=>e(m),$t,(Le,me)=>{let tt=()=>e(me).key,te=()=>e(me).stats;const at=O(()=>e(V)[tt()]?.ops||0),ke=O(()=>e(at)>0?te().ops-e(at):0);var Se=ks(),T=a(Se),Ue=a(T);t(T);var st=d(T,2),rt=a(st),Sa=d(rt);{var Na=Te=>{var yt=ys(),ja=a(yt);t(yt),j(Pa=>P(ja,`+${Pa??""}`),[()=>nt(e(ke))]),n(Te,yt)};k(Sa,Te=>{e(ke)>0&&Te(Na)})}t(st),t(Se),j(Te=>{ve(Se,"title",te().host),P(Ue,`${(e(dt)[te().host]||te().host)??""}:`),P(rt,`${Te??""} `)},[()=>e(ke)>0?nt(te().ops):te().ops.toLocaleString()]),n(Le,Se)}),n(xe,ye)};k(wt,xe=>{e(K)?xe(xt):xe(ka,-1)})}n(I,U)},H=I=>{var U=Ss(),wt=a(U,!0);t(U),j(xt=>P(wt,xt),[()=>e(b).stats.ops.toLocaleString()]),n(I,U)};k(ce,I=>{e(m).length>0?I(be):I(H,-1)})}t(ee),n(r,ee)},_a=r=>{var m=js();n(r,m)};k(ga,r=>{e(b).stats?r(ha):r(_a,-1)})}t(ht);var _t=d(ht),Lt=a(_t),Ut=d(a(Lt),2),wa=a(Ut);{let r=O(()=>as(e(b),["stats"]));$a(wa,{get value(){return e(r)},collapsed:!1})}t(Ut),t(Lt),t(_t);var xa=d(_t);{var ya=r=>{var m=Os(),V=a(m);{var ee=ce=>{var be=Ps(),H=a(be),I=a(H,!0);t(H);var U=d(H,2);t(be),j(()=>{H.disabled=e(Fe),P(I,e(b).hidden?"Unhide":"Hide"),U.disabled=e(Fe)}),Q("click",H,()=>Gt(e(b).name,e(b).hidden)),Q("click",U,()=>ea(e(b).name)),n(ce,be)};k(V,ce=>{e(b).name!=="_id_"&&ce(ee)})}t(m),n(r,m)};k(xa,r=>{e(c)||r(ya)})}t(N),j(()=>{R=Rt(N,1,"group svelte-l3ef1w",null,R,{"opacity-50":e(Fe)}),ve(De,"title",e(b).name),P(sa,e(b).name)}),n(Z,N)}),t(Ze),t(Ie),t(y),n(de,y)},$$slots:{default:!0}}),n(L,W)};k(Me,L=>{e(p).data.length===0?L(Ge):L(Xe,-1)})}j(()=>P(Ye,`${e(re)?"Hide":"Show"} Multi-Node Usage`)),Q("click",X,()=>l(re,!e(re))),n(E,S)};k(u,E=>{e(p).error?E(h):E(w,-1)})}n(f,_)},(f,p)=>{Ae(f,{title:"Indexes",children:(_,u)=>{var h=Fs(),w=a(h),E=a(w);t(w),t(h),j(()=>P(E,`Error loading indexes: ${e(p)??""}`)),n(_,h)},$$slots:{default:!0}})});var Ot=d(Pt,2);zt(Ot,{get show(){return e(C)},onclose:ft,footer:p=>{var _=Ls(),u=ae(_),h=d(u,2);Q("click",u,ft),Q("click",h,ta),n(p,_)},children:(p,_)=>{var u=Us(),h=ae(u),w=d(a(h)),E=a(w,!0);t(w),Ne(),t(h),Ne(2),j(()=>P(E,e($))),n(p,u)},$$slots:{footer:!0,default:!0}});var aa=d(Ot,2);zt(aa,{get show(){return e(Pe)},onclose:vt,title:"Create Index",footer:p=>{var _=Ts(),u=ae(_),h=d(u,2),w=a(h,!0);t(h),j(()=>{u.disabled=e(q),h.disabled=e(q),P(w,e(q)?"Creating...":"Create Index")}),Q("click",u,vt),Q("click",h,Zt),n(p,_)},children:(p,_)=>{var u=Bs(),h=a(u),w=d(a(h),2),E=d(a(w));E.textContent='{ "fieldName": 1 }',t(w);var S=d(w,2);At(S),ve(S,"placeholder",'{"fieldName": 1}'),Bt(()=>ot(S,()=>e(We),y=>l(We,y))),qt(S,y=>Wt?.(y)),t(h);var ne=d(h,2),G=d(a(ne),4);ge(G),t(ne);var ie=d(ne,2),X=a(ie),Ye=a(X);ge(Ye),Ne(2),t(X);var Me=d(X,2),Ge=a(Me);ge(Ge),Ne(2),t(Me);var Xe=d(Me,2),L=a(Xe);ge(L),Ne(2),t(Xe),t(ie);var W=d(ie,2),ue=d(a(W),2),Ee=d(a(ue));Ee.textContent='{ "status": "active" }',t(ue);var _e=d(ue,2);At(_e),ve(_e,"placeholder",'{"status": "active"}'),Bt(()=>ot(_e,()=>e(Ke),y=>l(Ke,y))),qt(_e,y=>Wt?.(y)),t(W);var de=d(W,2),pe=d(a(de),4);ge(pe),t(de),t(u),ot(G,()=>e(ze),y=>l(ze,y)),Re(Ye,()=>e(He),y=>l(He,y)),Re(Ge,()=>e(Je),y=>l(Je,y)),Re(L,()=>e(Qe),y=>l(Qe,y)),ot(pe,()=>e(Ve),y=>l(Ve,y)),n(p,u)},$$slots:{footer:!0,default:!0}}),n(i,jt),Kt()}Vt(["click"]);export{rr as component};
@@ -0,0 +1,65 @@
1
+ import{f as d,a as s}from"../chunks/DKMyRjux.js";import{p as Xe,h as Ye,f as ve,a as Ze,t as F,c as a,s as o,d as i,b as S,r as e,n as Pe,g as t,u as _e}from"../chunks/DfW1b8bA.js";import{d as $e,s as he,a as v}from"../chunks/CrLGr586.js";import{i as C}from"../chunks/DymqlScG.js";import{e as ye,i as Le}from"../chunks/wZh6TcLb.js";import{s as et,r as ee}from"../chunks/DupjJGFi.js";import{b as te}from"../chunks/DgwByHCB.js";import{i as tt,s as at,b as Me}from"../chunks/B3A9hx44.js";import{u as ot}from"../chunks/BE54Cy37.js";import{r as rt}from"../chunks/_rBAec6D.js";import{P as lt}from"../chunks/DVIi8uNn.js";import{n as z}from"../chunks/CUBPtF8t.js";var it=d('<button class="btn btn-success btn-sm -my-2">Save</button>'),nt=d('<button class="btn btn-outline-light btn-sm -my-2 hover:bg-[var(--color-3)]">🤖 AI Helper</button> <!>',1),st=d('<button class="btn btn-outline-danger btn-sm mt-6 hover:bg-[rgba(255,59,48,0.1)]">Remove Mapping</button>'),dt=d("<option> </option>"),ct=d('<div class="flex-1"><label class="block text-xs mb-1">Target Collection <select class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"><option>Select collection...</option><!></select></label></div> <div class="flex-1"><label class="block text-xs mb-1">Target Field <input type="text" placeholder="_id" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"/></label></div>',1),vt=d('<div class="flex-[2]"><label class="block text-xs mb-1">URL Template (use &#123;value&#125; for interpolation) <input type="text" placeholder="https://example.com/{value}" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"/></label></div>'),ut=d('<button class="btn btn-outline-danger btn-sm mt-5 hover:bg-[rgba(255,59,48,0.1)]">×</button>'),bt=d('<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">Type <select class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm mt-1"><option>Document</option><option>URL</option></select></label></div> <!> <!></div>'),pt=d('<div class="flex gap-2 mt-2 ml-4"><button class="btn btn-outline-light btn-sm hover:bg-[var(--color-3)]">+ Add Document Target</button> <button class="btn btn-outline-light btn-sm hover:bg-[var(--color-3)]">+ Add URL Target</button></div>'),mt=d('<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" 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"/></label></div> <!></div> <div class="space-y-2"></div> <!></div>'),gt=d('<div class="space-y-4"></div>'),ft=d('<div class="text-center py-8" style="color: var(--text-secondary);">No mappings defined yet.</div>'),_t=d('<button class="btn btn-success">+ Add New Mapping</button>'),ht=d("<option> </option>"),yt=d('<label class="block text-sm font-medium mb-1">Target Collection <select class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded mt-1"><option>Select collection...</option><!></select></label> <label class="block text-sm font-medium mb-1">Target Field <input type="text" placeholder="_id" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded mt-1"/></label>',1),xt=d(`<label class="block text-sm font-medium mb-1">URL Template <input type="text" placeholder="https://hf.co/datasets/{value}" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded mt-1"/></label> <p class="text-xs" style="color: var(--text-secondary);">Use <code class="px-1 bg-[var(--color-2)] rounded">&#123;value&#125;</code> as a placeholder for the field
2
+ value. Example: if the field is "abc/glue", and template is "https://hf.co/datasets/&#123;value&#125;",
3
+ the result will be "https://hf.co/datasets/abc/glue"</p>`,1),kt=d('<div class="border border-[var(--border-color)] rounded p-4 bg-[var(--light-background)]"><h3 class="text-lg font-medium mb-3">New Mapping</h3> <div class="space-y-3"><label class="block text-sm font-medium mb-1">Field Path <input type="text" placeholder="e.g., authorId or comments.authorId" class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded mt-1"/></label> <label class="block text-sm font-medium mb-1">Mapping Type <select class="w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded mt-1"><option>Document</option><option>URL</option></select></label> <!> <div class="flex gap-2"><button class="btn btn-success">Add</button> <button class="btn btn-default hover:bg-[var(--color-3)]">Cancel</button></div></div></div>'),wt=d('<div class="mt-4"><!></div>'),Tt=d(`<div class="p-4"><div class="mb-4"><p class="mb-3">Define relationships between collections or external URLs to enable hover tooltips, navigation on foreign key
4
+ fields, and clickable external links. This will be stored in the <code class="px-1 bg-[var(--light-background)] rounded">mongoku.mappings</code> collection as a document with <a class="text-blue-500"> </a>.</p> <details class="mb-2" style="color: var(--text-secondary);"><summary class="cursor-pointer font-medium mb-2">Examples</summary> <div class="mt-2 space-y-3"><div><div class="font-medium mb-1">Document Mapping Example:</div> <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">&#123; _id: "post1", title: "Hello", authorId: "user123", comments: [&#123;authorId: "user456", text:
5
+ "Nice!"&#125;] &#125;</code> <div class="text space-y-1"><div>→ Mapping 1: Field path <code class="px-1 bg-[var(--light-background)] rounded">authorId</code>, type <strong>document</strong>, 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>→ Mapping 2: Field path <code class="px-1 bg-[var(--light-background)] rounded">comments.authorId</code>, type <strong>document</strong>, 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> <div><div class="font-medium mb-1">URL Mapping Example:</div> <div class="mb-1">Document in collection <code class="px-1 bg-[var(--light-background)] rounded">dataset_info_cache</code>:</div> <code class="block px-2 py-1 bg-[var(--light-background)] rounded text-xs mb-2">&#123; _id: "abc/glue", name: "GLUE Benchmark", ... &#125;</code> <div class="text space-y-1"><div>→ Mapping: Field path <code class="px-1 bg-[var(--light-background)] rounded">_id</code>, type <strong>URL</strong>, template <code class="px-1 bg-[var(--light-background)] rounded">https://hf.co/datasets/&#123;value&#125;</code></div> <div class="ml-4">Result: Clicking the _id will open "https://hf.co/datasets/abc/glue" in a new tab</div></div></div></div></details></div> <!> <!></div>`),Ct=d(`<div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4" role="button" tabindex="0"><div class="bg-[var(--color-1)] border border-[var(--border-color)] rounded-lg max-w-4xl w-full max-h-[80vh] overflow-hidden flex flex-col" role="dialog" tabindex="-1"><div class="p-4 border-b border-[var(--border-color)] flex justify-between items-center"><h2 class="text-xl font-semibold">AI Mapping Generator Prompt</h2> <button class="btn btn-outline-light btn-sm hover:bg-[var(--color-3)]">Close</button></div> <div class="p-4 overflow-auto flex-1"><p class="mb-3 text-sm" style="color: var(--text-secondary);">Copy this prompt and paste it into your IDE's AI assistant (Cursor, GitHub Copilot, etc.) to automatically
6
+ generate mappings for this collection.</p> <pre class="bg-[var(--color-2)] border border-[var(--border-color)] rounded p-4 text-sm whitespace-pre-wrap overflow-auto"> </pre></div> <div class="p-4 border-t border-[var(--border-color)] flex justify-end gap-2"><button class="btn btn-default hover:bg-[var(--color-3)]">Close</button> <button class="btn btn-primary hover:brightness-110">Copy to Clipboard</button></div></div></div>`),It=d("<!> <!>",1);function St(Re,r){Xe(r,!0);function Ne(l){return"type"in l?l:{type:"document",collection:l.collection,on:l.on}}let ae=Ye(Object.entries(r.data.mappings).map(([l,n])=>({fieldPath:l,targets:(Array.isArray(n)?n:[n]).map(Ne)}))),q=S(""),G=S("document"),B=S(""),oe=S("_id"),H=S(""),ue=S(!1),Q=S(!1);const Ae=_e(()=>`I need help generating MongoDB collection mappings for my database.
7
+
8
+ **Context:**
9
+ - Database: ${r.data.database}
10
+ - Collection: ${r.data.collection}
11
+ - Available collections: ${r.data.availableCollections.join(", ")}
12
+
13
+ **Task:**
14
+ Please analyze my codebase to identify relationships between the "${r.data.collection}" collection and other collections. Look for:
15
+ 1. Fields that reference documents in other collections (foreign keys)
16
+ 2. Nested fields within arrays or objects that reference other documents
17
+ 3. Common patterns like userId, authorId, etc.
18
+
19
+ If you have access to the MongoDB MCP server, use it to:
20
+ 1. Query sample documents from the "${r.data.collection}" collection
21
+ 2. Analyze the schema and field types
22
+ 3. Identify potential foreign key relationships
23
+
24
+ **Output Format:**
25
+ Create a file named \`${r.data.collection}.mappings.json\` with the following structure:
26
+
27
+ \`\`\`json
28
+ {
29
+ "_id": "${r.data.collection}",
30
+ "mappings": {
31
+ "fieldPath": { "type": "document", "collection": "targetCollection", "on": "targetField" },
32
+ "nested.fieldPath": { "type": "document", "collection": "targetCollection", "on": "targetField" }
33
+ }
34
+ }
35
+ \`\`\`
36
+
37
+ **Example:**
38
+ If the collection has documents like:
39
+ \`\`\`json
40
+ {
41
+ "_id": "post1",
42
+ "authorId": "user123",
43
+ "comments": [
44
+ { "authorId": "user456", "text": "Great post!" }
45
+ ]
46
+ }
47
+ \`\`\`
48
+
49
+ The mappings would be:
50
+ \`\`\`json
51
+ {
52
+ "_id": "${r.data.collection}",
53
+ "mappings": {
54
+ "authorId": { "type": "document", "collection": "users", "on": "_id" },
55
+ "comments.authorId": { "type": "document", "collection": "users", "on": "_id" }
56
+ }
57
+ }
58
+ \`\`\`
59
+
60
+ **Notes:**
61
+ - Use dot notation for nested fields (e.g., "comments.authorId")
62
+ - Multiple mappings for the same field can be expressed as an array
63
+ - Target field is usually "_id" but can be any unique field
64
+
65
+ Please analyze the codebase and database, then generate the appropriate mappings file.`);async function Se(){try{await navigator.clipboard.writeText(t(Ae)),z.notifySuccess("AI prompt copied to clipboard")}catch(l){z.notifyError(l,"Failed to copy to clipboard")}}function Fe(l,n="document"){n==="document"?l.targets.push({type:"document",collection:"",on:"_id"}):l.targets.push({type:"url",template:""})}function ze(l,n){l.targets.splice(n,1)}function qe(l){ae.splice(l,1)}function Ge(){if(!t(q).trim()){z.notifyError("Field path is required");return}let l;if(t(G)==="document"){if(!t(B).trim()){z.notifyError("Target collection is required");return}l={type:"document",collection:t(B).trim(),on:t(oe).trim()||"_id"}}else{if(!t(H).trim()){z.notifyError("URL template is required");return}l={type:"url",template:t(H).trim()}}ae.push({fieldPath:t(q).trim(),targets:[l]}),i(q,""),i(G,"document"),i(B,""),i(oe,"_id"),i(H,""),i(ue,!1)}function Be(){i(q,""),i(G,"document"),i(B,""),i(oe,"_id"),i(H,""),i(ue,!1)}async function He(){try{const l={};for(const n of ae)if(n.fieldPath.trim()){const g=n.targets.filter(c=>{if("type"in c){if(c.type==="document")return c.collection.trim()&&c.on.trim();if(c.type==="url")return c.template.trim()}else return c.collection.trim()&&c.on.trim();return!1});g.length>0&&(l[n.fieldPath]=g.length===1?g[0]:g)}await ot({server:r.data.server,database:r.data.database,collection:"mongoku.mappings",document:r.data.collection,value:{mappings:l,_id:r.data.collection},partial:!1,upsert:!0}),z.notifySuccess("Mappings saved successfully")}catch(l){console.error("Error saving mappings:",l),z.notifyError(l,"Failed to save mappings")}}var Ee=It(),Oe=ve(Ee);lt(Oe,{get title(){return`Mappings for ${r.data.collection??""}`},titleClass:"py-2",actions:n=>{var g=nt(),c=ve(g),D=o(c,2);{var E=x=>{var J=it();v("click",J,He),s(x,J)};C(D,x=>{r.data.readOnly||x(E)})}v("click",c,()=>i(Q,!0)),s(n,g)},children:(n,g)=>{var c=Tt(),D=a(c),E=a(D),x=o(a(E),3),J=a(x);e(x),Pe(),e(E),Pe(2),e(D);var re=o(D,2);{var be=h=>{var I=gt();ye(I,21,()=>ae,Le,(ke,y,we)=>{var k=mt(),w=a(k),K=a(w),V=a(K),W=o(a(V));ee(W),e(V),e(K);var le=o(K,2);{var ie=f=>{var _=st();v("click",_,()=>qe(we)),s(f,_)};C(le,f=>{r.data.readOnly||f(ie)})}e(w);var L=o(w,2);ye(L,21,()=>t(y).targets,Le,(f,_,P)=>{const M=_e(()=>"type"in t(_)?t(_).type:"document");var ne=bt(),p=a(ne),O=a(p),u=o(a(O)),T=a(u);T.value=T.__value="document";var U=o(T);U.value=U.__value="url",e(u);var ge;tt(u),e(O),e(p);var se=o(p,2);{var fe=m=>{const b=_e(()=>t(_));var X=ct(),Y=ve(X),Z=a(Y),$=o(a(Z)),Te=a($);Te.value=Te.__value="";var Ve=o(Te);ye(Ve,16,()=>r.data.availableCollections,N=>N,(N,Ie)=>{var ce=dt(),We=a(ce,!0);e(ce);var je={};F(()=>{he(We,Ie),je!==(je=Ie)&&(ce.value=(ce.__value=Ie)??"")}),s(N,ce)}),e($),e(Z),e(Y);var Ue=o(Y,2),De=a(Ue),Ce=o(a(De));ee(Ce),e(De),e(Ue),F(()=>{$.disabled=r.data.readOnly,Ce.disabled=r.data.readOnly}),Me($,()=>t(b).collection,N=>t(b).collection=N),te(Ce,()=>t(b).on,N=>t(b).on=N),s(m,X)},A=m=>{const b=_e(()=>t(_));var X=vt(),Y=a(X),Z=o(a(Y));ee(Z),e(Y),e(X),F(()=>Z.disabled=r.data.readOnly),te(Z,()=>t(b).template,$=>t(b).template=$),s(m,X)};C(se,m=>{t(M)==="document"?m(fe):m(A,-1)})}var de=o(se,2);{var R=m=>{var b=ut();F(()=>b.disabled=t(y).targets.length===1),v("click",b,()=>ze(t(y),P)),s(m,b)};C(de,m=>{r.data.readOnly||m(R)})}e(ne),F(()=>{u.disabled=r.data.readOnly,ge!==(ge=t(M))&&(u.value=(u.__value=t(M))??"",at(u,t(M)))}),v("change",u,m=>{m.currentTarget.value==="document"?t(y).targets[P]={type:"document",collection:"",on:"_id"}:t(y).targets[P]={type:"url",template:""}}),s(f,ne)}),e(L);var pe=o(L,2);{var me=f=>{var _=pt(),P=a(_),M=o(P,2);e(_),v("click",P,()=>Fe(t(y),"document")),v("click",M,()=>Fe(t(y),"url")),s(f,_)};C(pe,f=>{r.data.readOnly||f(me)})}e(k),F(()=>W.disabled=r.data.readOnly),te(W,()=>t(y).fieldPath,f=>t(y).fieldPath=f),s(ke,k)}),e(I),s(h,I)},xe=h=>{var I=ft();s(h,I)};C(re,h=>{ae.length>0?h(be):h(xe,-1)})}var j=o(re,2);{var Ke=h=>{var I=wt(),ke=a(I);{var y=k=>{var w=_t();v("click",w,()=>i(ue,!0)),s(k,w)},we=k=>{var w=kt(),K=o(a(w),2),V=a(K),W=o(a(V));ee(W),e(V);var le=o(V,2),ie=o(a(le)),L=a(ie);L.value=L.__value="document";var pe=o(L);pe.value=pe.__value="url",e(ie),e(le);var me=o(le,2);{var f=p=>{var O=yt(),u=ve(O),T=o(a(u)),U=a(T);U.value=U.__value="";var ge=o(U);ye(ge,16,()=>r.data.availableCollections,A=>A,(A,de)=>{var R=ht(),m=a(R,!0);e(R);var b={};F(()=>{he(m,de),b!==(b=de)&&(R.value=(R.__value=de)??"")}),s(A,R)}),e(T),e(u);var se=o(u,2),fe=o(a(se));ee(fe),e(se),Me(T,()=>t(B),A=>i(B,A)),te(fe,()=>t(oe),A=>i(oe,A)),s(p,O)},_=p=>{var O=xt(),u=ve(O),T=o(a(u));ee(T),e(u),Pe(2),te(T,()=>t(H),U=>i(H,U)),s(p,O)};C(me,p=>{t(G)==="document"?p(f):p(_,-1)})}var P=o(me,2),M=a(P),ne=o(M,2);e(P),e(K),e(w),te(W,()=>t(q),p=>i(q,p)),Me(ie,()=>t(G),p=>i(G,p)),v("click",M,Ge),v("click",ne,Be),s(k,w)};C(ke,k=>{t(ue)?k(we,-1):k(y)})}e(I),s(h,I)};C(j,h=>{r.data.readOnly||h(Ke)})}e(c),F(h=>{et(x,"href",h),he(J,`_id: "${r.data.collection??""}"`)},[()=>rt(`/servers/${r.data.server}/databases/${r.data.database}/collections/mongoku.mappings/documents/${r.data.collection}`)]),s(n,c)},$$slots:{actions:!0,default:!0}});var Qe=o(Oe,2);{var Je=l=>{var n=Ct(),g=a(n),c=a(g),D=o(a(c),2);e(c);var E=o(c,2),x=o(a(E),2),J=a(x,!0);e(x),e(E);var re=o(E,2),be=a(re),xe=o(be,2);e(re),e(g),e(n),F(()=>he(J,t(Ae))),v("click",n,()=>i(Q,!1)),v("keydown",n,j=>{j.key==="Escape"&&i(Q,!1)}),v("click",g,j=>j.stopPropagation()),v("keydown",g,j=>j.stopPropagation()),v("click",D,()=>i(Q,!1)),v("click",be,()=>i(Q,!1)),v("click",xe,Se),s(l,n)};C(Qe,l=>{t(Q)&&l(Je)})}s(Re,Ee),Ze()}$e(["click","change","keydown"]);export{St as component};
@@ -0,0 +1 @@
1
+ import{f as v,a as s,c as se,t as tr,b as le}from"../chunks/DKMyRjux.js";import{p as de,a as ie,f as Cr,g as t,u as Pr,c as e,s as a,r,t as A,b as ar,d as j,n as vr}from"../chunks/DfW1b8bA.js";import{d as ne,s as u,a as ve}from"../chunks/CrLGr586.js";import{i as x}from"../chunks/DymqlScG.js";import{e as Ar}from"../chunks/wZh6TcLb.js";import{r as ce,s as Or}from"../chunks/DupjJGFi.js";import{s as jr}from"../chunks/CyTV7fHl.js";import{b as me}from"../chunks/DgwByHCB.js";import{b as ue}from"../chunks/B3A9hx44.js";import{a as pe}from"../chunks/BE54Cy37.js";import{P as fe}from"../chunks/DVIi8uNn.js";import{P as Tr}from"../chunks/CFdm8ab0.js";import{n as or}from"../chunks/CUBPtF8t.js";var be=le('<svg class="animate-spin w-4 h-4 inline mr-1" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>'),xe=v('<button class="btn btn-primary btn-sm -my-2"><!> </button>'),_e=v('<div class="overflow-hidden rounded-lg border border-[var(--border-color)] bg-[var(--color-1)]"><table class="table mb-0"><tbody><tr><td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Status</td><td class="px-4 py-3"><span class="badge badge-success">Active</span></td></tr><tr><td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Validation Level</td><td class="px-4 py-3"><span class="font-mono text-sm" style="color: var(--text);"> </span> <span class="text-xs ml-2" style="color: var(--text-darker);"><!></span></td></tr><tr><td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Validation Action</td><td class="px-4 py-3"><span class="font-mono text-sm" style="color: var(--text);"> </span> <span class="text-xs ml-2" style="color: var(--text-darker);"><!></span></td></tr></tbody></table></div> <div class="mt-4"><h4 class="text-xs font-semibold mb-2 uppercase tracking-wide" style="color: var(--text-secondary);">JSON Schema</h4> <div class="rounded-lg border border-[var(--border-color)] overflow-hidden"><!></div></div>',1),ge=v(`<div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-8 text-center"><div class="text-4xl mb-3 opacity-30">&#x1F4CB;</div> <p class="text-sm font-medium" style="color: var(--text-secondary);">No JSON Schema validator configured.</p> <p class="text-xs mt-1" style="color: var(--text-darker);">Use MongoDB's <a href="https://www.mongodb.com/docs/manual/core/schema-validation/" target="_blank" rel="noopener" class="underline" style="color: var(--link);">schema validation</a> to enforce document structure.</p></div>`),ye=v('<div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-8 text-center"><svg class="animate-spin w-6 h-6 mx-auto mb-3" style="color: var(--link);" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg> <p class="text-sm" style="color: var(--text-secondary);">Running validation...</p></div>'),he=v('<div class="rounded-lg border border-red-500/30 bg-red-500/10 p-4"><p class="text-sm text-red-600 font-medium">Audit failed</p> <p class="text-xs mt-1 text-red-500"> </p></div>'),we=v('<a class="text-xs font-mono underline hover:no-underline" style="color: var(--link);"> </a>'),Se=v('<span class="text-xs font-mono" style="color: var(--text);"> </span>'),ke=v('<div class="flex items-center gap-2"><span class="text-xs font-medium" style="color: var(--text-secondary);">Document:</span> <!></div>'),Ce=v('<div class="flex items-start gap-2"><span class="text-red-400 mt-0.5">•</span> <pre class="text-xs whitespace-pre-wrap font-mono flex-1" style="color: var(--error);"> </pre></div>'),Pe=v('<div class="px-4 pb-4"><details class="rounded border border-[var(--border-color)] overflow-hidden"><summary class="cursor-pointer px-3 py-2 text-xs font-medium bg-[var(--color-1)] hover:bg-[var(--color-2)] transition-colors" style="color: var(--text-secondary);">View full document</summary> <div class="p-3 border-t border-[var(--border-color)] bg-[var(--color-1)]"><!></div></details></div>'),Ae=v('<div class="rounded-lg border border-red-500/20 bg-red-500/5 overflow-hidden"><div class="px-4 py-3 border-b border-red-500/10"><!></div> <div class="p-4"><div class="space-y-2"></div></div> <!></div>'),je=v('<div class="mt-4"><h4 class="text-sm font-semibold mb-3" style="color: var(--error);"> </h4> <div class="space-y-3 max-h-96 overflow-auto pr-2"></div></div>'),Re=v('<pre class="p-3 text-xs whitespace-pre-wrap font-mono" style="color: var(--text);"> </pre>'),Ve=v('<div class="mt-4"><h4 class="text-sm font-semibold mb-2" style="color: hsl(38, 92%, 50%);">Warnings</h4> <div class="rounded-lg border border-yellow-500/20 bg-yellow-500/5 divide-y divide-yellow-500/10 max-h-48 overflow-auto"></div></div>'),Le=v('<div class="mb-4"><div class="flex justify-between items-center mb-2"><span class="text-sm font-medium" style="color: var(--text);">Compliance</span> <span class="text-sm font-bold"> </span></div> <div class="w-full h-3 rounded-full bg-[var(--color-3)] overflow-hidden"><div class="h-full rounded-full transition-all duration-500"></div></div></div> <div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-4"><div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center"><div class="text-lg font-bold" style="color: var(--text);"> </div> <div class="text-xs" style="color: var(--text-darker);">Scanned</div></div> <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center"><div class="text-lg font-bold" style="color: var(--button-success);"> </div> <div class="text-xs" style="color: var(--text-darker);">Valid</div></div> <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center"><div class="text-lg font-bold"> </div> <div class="text-xs" style="color: var(--text-darker);">Invalid</div></div> <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center"><div class="text-lg font-bold" style="color: var(--text);"> </div> <div class="text-xs" style="color: var(--text-darker);">Duration</div></div></div> <!> <!>',1),Me=v('<div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-6 text-center"><p class="text-sm" style="color: var(--text-secondary);">Click "Run Audit" to check document compliance.</p></div>'),De=v('<div><h3 class="text-sm font-semibold mb-3 uppercase tracking-wide" style="color: var(--text-secondary);">Compliance Audit</h3> <details class="mb-4"><summary class="cursor-pointer text-sm font-medium" style="color: var(--text-secondary);">Read Preference (optional)</summary> <div class="mt-3 grid grid-cols-1 sm:grid-cols-2 gap-3 p-3 rounded-lg bg-[var(--color-3)]/50"><label class="block"><span class="text-xs font-medium" style="color: var(--text-secondary);">Mode</span> <select class="mt-1 w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm" style="color: var(--text);"><option>Default</option><option>secondaryPreferred</option><option>secondary</option><option>nearest</option></select></label> <label class="block"><span class="text-xs font-medium" style="color: var(--text-secondary);">Tags (JSON)</span> <input type="text" class="mt-1 w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm font-mono" style="color: var(--text);"/></label></div></details> <!></div>'),Ie=v('<div class="p-4 space-y-6"><div><h3 class="text-sm font-semibold mb-3 uppercase tracking-wide" style="color: var(--text-secondary);">Configuration</h3> <!></div> <!></div>');function Ge(Jr,c){de(c,!0);let i=ar(null),z=ar(!1),Y=ar(null),cr=ar(""),mr=ar(""),w=Pr(()=>c.data.schemaInfo);function Ur(o){if(o==null)return{display:"",navigable:null};if(typeof o=="string"||typeof o=="number")return{display:String(o),navigable:String(o)};if(typeof o=="object"){const l=o,q="$value"in l&&(typeof l.$value=="string"||typeof l.$value=="number"),I=l.$type===void 0||l.$type==="ObjectId";if(q&&I){const _=String(l.$value);return{display:_,navigable:_}}const R=Object.entries(l).filter(([_])=>_!=="$type");if(R.length>0)return{display:R.map(([S,V])=>`${S}: ${typeof V=="object"?JSON.stringify(V):V}`).join(" · "),navigable:null}}return{display:String(o),navigable:null}}function Rr(o){if(!Number.isFinite(o))return String(o);if(o>=100)return"100";if(o<=0)return"0";const l=Math.floor(o*100)/100;return Number.isInteger(l)?l.toFixed(0):l.toString()}let Vr=Pr(()=>t(i)?t(i).compliancePct===100?"var(--button-success)":t(i).compliancePct>=90?"hsl(38, 92%, 50%)":"var(--error)":"var(--text)");async function zr(){j(z,!0),j(Y,null),j(i,null);try{const o=await pe({server:c.data.server,database:c.data.database,collection:c.data.collection,readPreferenceMode:t(cr)||void 0,readPreferenceTags:t(mr)||void 0});if(o.error)j(Y,o.error,!0),or.notifyError(o.error);else if(j(i,o.data,!0),o.data?.hasSchema){const l=`Audit complete: ${Rr(o.data.compliancePct)}% of ${o.data.nrecords.toLocaleString()} documents match the schema`;o.data.compliancePct===100?or.notifySuccess(l):o.data.compliancePct>=90?or.notify(l,"info"):or.notifyError(l)}}catch(o){const l=o instanceof Error?o.message:String(o);j(Y,l,!0),or.notifyError(l)}finally{j(z,!1)}}fe(Jr,{title:"Schema Validation",titleClass:"py-2",actions:l=>{var q=se(),I=Cr(q);{var R=_=>{var S=xe(),V=e(S);{var ur=m=>{var g=be();s(m,g)};x(V,m=>{t(z)&&m(ur)})}var pr=a(V);r(S),A(()=>{S.disabled=t(z),u(pr,` ${t(z)?"Auditing...":"Run Audit"}`)}),ve("click",S,zr),s(_,S)};x(I,_=>{t(w).hasSchema&&_(R)})}s(l,q)},children:(l,q)=>{var I=Ie(),R=e(I),_=a(e(R),2);{var S=m=>{var g=_e(),N=Cr(g),G=e(N),B=e(G),E=a(e(B)),F=a(e(E)),O=e(F),K=e(O,!0);r(O);var Q=a(O,2),sr=e(Q);{var X=d=>{var f=tr("— all inserts & updates validated");s(d,f)},fr=d=>{var f=tr("— only existing valid docs re-checked");s(d,f)},br=d=>{var f=tr("— no validation");s(d,f)};x(sr,d=>{t(w).validationLevel==="strict"?d(X):t(w).validationLevel==="moderate"?d(fr,1):d(br,-1)})}r(Q),r(F),r(E);var lr=a(E),dr=a(e(lr)),Z=e(dr),n=e(Z,!0);r(Z);var p=a(Z,2),L=e(p);{var T=d=>{var f=tr("— invalid docs accepted with warning");s(d,f)},$=d=>{var f=tr("— invalid docs rejected");s(d,f)};x(L,d=>{t(w).validationAction==="warn"?d(T):d($,-1)})}r(p),r(dr),r(lr),r(B),r(G),r(N);var ir=a(N,2),rr=a(e(ir),2),xr=e(rr);Tr(xr,{get json(){return t(w).validator},autoCollapse:!1,get server(){return c.data.server},get database(){return c.data.database},get collection(){return c.data.collection}}),r(rr),r(ir),A(()=>{u(K,t(w).validationLevel??"strict"),u(n,t(w).validationAction??"error")}),s(m,g)},V=m=>{var g=ge();s(m,g)};x(_,m=>{t(w).hasSchema?m(S):m(V,-1)})}r(R);var ur=a(R,2);{var pr=m=>{var g=De(),N=a(e(g),2),G=a(e(N),2),B=e(G),E=a(e(B),2),F=e(E);F.value=F.__value="";var O=a(F);O.value=O.__value="secondaryPreferred";var K=a(O);K.value=K.__value="secondary";var Q=a(K);Q.value=Q.__value="nearest",r(E),r(B);var sr=a(B,2),X=a(e(sr),2);ce(X),Or(X,"placeholder",'[{"nodeType":"ANALYTICS"}]'),r(sr),r(G),r(N);var fr=a(N,2);{var br=n=>{var p=ye();s(n,p)},lr=n=>{var p=he(),L=a(e(p),2),T=e(L,!0);r(L),r(p),A(()=>u(T,t(Y))),s(n,p)},dr=n=>{var p=Le(),L=Cr(p),T=e(L),$=a(e(T),2),ir=e($);r($),r(T);var rr=a(T,2),xr=e(rr);r(rr),r(L);var d=a(L,2),f=e(d),Lr=e(f),Br=e(Lr,!0);r(Lr),vr(2),r(f);var _r=a(f,2),Mr=e(_r),Fr=e(Mr,!0);r(Mr),vr(2),r(_r);var gr=a(_r,2),yr=e(gr),Hr=e(yr,!0);r(yr),vr(2),r(gr);var Dr=a(gr,2),Ir=e(Dr),Wr=e(Ir);r(Ir),vr(2),r(Dr),r(d);var Nr=a(d,2);{var Yr=k=>{var C=je(),M=e(C),J=e(M);r(M);var nr=a(M,2);Ar(nr,23,()=>t(i).errors,(H,P)=>`err-${P}`,(H,P,Kr)=>{var hr=Ae(),wr=e(hr),Qr=e(wr);{var Xr=y=>{const b=Pr(()=>Ur(t(P).docId));var h=ke(),U=a(e(h),2);{var er=W=>{var D=we(),kr=e(D,!0);r(D),A((ee,te,ae,oe)=>{Or(D,"href",`/servers/${ee??""}/databases/${te??""}/collections/${ae??""}/documents/${oe??""}`),u(kr,t(b).display)},[()=>encodeURIComponent(c.data.server),()=>encodeURIComponent(c.data.database),()=>encodeURIComponent(c.data.collection),()=>encodeURIComponent(t(b).navigable)]),s(W,D)},re=W=>{var D=Se(),kr=e(D,!0);r(D),A(()=>u(kr,t(b).display)),s(W,D)};x(U,W=>{t(b).navigable!==null?W(er):W(re,-1)})}r(h),s(y,h)};x(Qr,y=>{t(P).docId&&y(Xr)})}r(wr);var Sr=a(wr,2),Er=e(Sr);Ar(Er,23,()=>t(P).message.split("; "),(y,b)=>`${t(Kr)}-${b}`,(y,b)=>{var h=Ce(),U=a(e(h),2),er=e(U,!0);r(U),r(h),A(()=>u(er,t(b))),s(y,h)}),r(Er),r(Sr);var Zr=a(Sr,2);{var $r=y=>{var b=Pe(),h=e(b),U=a(e(h),2),er=e(U);Tr(er,{get json(){return t(P).document},autoCollapse:!0,get server(){return c.data.server},get database(){return c.data.database},get collection(){return c.data.collection}}),r(U),r(h),r(b),s(y,b)};x(Zr,y=>{t(P).document&&y($r)})}r(hr),s(H,hr)}),r(nr),r(C),A(()=>u(J,`Validation Errors (${t(i).errors.length??""} sampled)`)),s(k,C)};x(Nr,k=>{t(i).errors.length>0&&k(Yr)})}var qr=a(Nr,2);{var Gr=k=>{var C=Ve(),M=a(e(C),2);Ar(M,20,()=>t(i).warnings,J=>J,(J,nr)=>{var H=Re(),P=e(H,!0);r(H),A(()=>u(P,nr)),s(J,H)}),r(M),r(C),s(k,C)};x(qr,k=>{t(i).warnings.length>0&&k(Gr)})}A((k,C,M,J)=>{jr($,`color: ${t(Vr)??""};`),u(ir,`${k??""}%`),jr(xr,`width: ${t(i).compliancePct??""}%; background: ${t(Vr)??""};`),u(Br,C),u(Fr,M),jr(yr,`color: ${t(i).nInvalidDocuments>0?"var(--error)":"var(--text)"};`),u(Hr,J),u(Wr,`${t(i).tookMs??""}ms`)},[()=>Rr(t(i).compliancePct),()=>t(i).nrecords.toLocaleString(),()=>t(i).nValidDocuments.toLocaleString(),()=>t(i).nInvalidDocuments.toLocaleString()]),s(n,p)},Z=n=>{var p=Me();s(n,p)};x(fr,n=>{t(z)?n(br):t(Y)?n(lr,1):t(i)?n(dr,2):n(Z,-1)})}r(g),ue(E,()=>t(cr),n=>j(cr,n)),me(X,()=>t(mr),n=>j(mr,n)),s(m,g)};x(ur,m=>{t(w).hasSchema&&m(pr)})}r(I),s(l,I)},$$slots:{actions:!0,default:!0}}),ie()}ne(["click"]);export{Ge as component};
@@ -0,0 +1 @@
1
+ import{c as ta,a as r,f as e,t as Ca}from"../chunks/DKMyRjux.js";import{p as Ia,f as N,a as Ea,c as o,r as s,t as f,g as a,u as sa,s as n,n as Ka}from"../chunks/DfW1b8bA.js";import{s as p}from"../chunks/CrLGr586.js";import{a as Na}from"../chunks/oSuzXE6i.js";import{i}from"../chunks/DymqlScG.js";import{e as ca}from"../chunks/wZh6TcLb.js";import{s as Da}from"../chunks/DupjJGFi.js";import{s as pa}from"../chunks/CyTV7fHl.js";import{P as L}from"../chunks/DVIi8uNn.js";import{a as ha,f as Ba}from"../chunks/Dfjkeakv.js";import{f as Fa}from"../chunks/C5BvtFsa.js";var Ha=e('<div class="p-4"><p class="error svelte-1y8drq2"> </p></div>'),La=e('<div class="p-4 text-center" style="color: var(--text-darker);">No data</div>'),Ma=e('<div class="p-6 text-center"><div class="text-3xl mb-2">⛁</div> <p style="color: var(--text);">This server is not a sharded cluster.</p> <p class="text-sm mt-1" style="color: var(--text-darker);">Connect through a <code>mongos</code> router to view shard distribution.</p></div>'),Ta=e('<span class="badge badge-sharded svelte-1y8drq2">Sharded</span>'),ja=e('<span class="badge badge-unsharded svelte-1y8drq2">Not sharded</span>'),Aa=e('<span class="badge badge-prop svelte-1y8drq2">hashed</span>'),Ga=e('<span class="badge badge-prop svelte-1y8drq2">unique key</span>'),Ja=e('<span class="badge badge-ok svelte-1y8drq2">balancer on</span>'),Oa=e('<span class="badge badge-warn svelte-1y8drq2">balancing disabled</span>'),Qa=e('<div class="key-pill svelte-1y8drq2" title="Shard key"><span class="key-label svelte-1y8drq2">shard key</span> <span class="font-mono text-sm"> </span></div>'),Ra=e('<div class="ml-auto text-sm" style="color: var(--text-darker);"> </div>'),Ua=e('<div class="px-4 pb-3 text-sm" style="color: var(--warning, hsl(38, 92%, 45%));"> </div>'),Va=e('<div class="p-4 flex flex-wrap gap-4 items-center"><!> <!> <!> <!> <!> <!></div> <!>',1),Wa=e('<div class="dist-seg svelte-1y8drq2"><!></div>'),Xa=e('<div class="legend-item svelte-1y8drq2"><span class="legend-dot svelte-1y8drq2"></span> <span class="font-mono text-xs"> </span></div>'),Ya=e('<div class="p-4"><div class="dist-bar svelte-1y8drq2"></div> <div class="legend svelte-1y8drq2"></div></div>'),Za=e('<th class="shrink-column svelte-1y8drq2">Chunks</th>'),ar=e('<td> <span class="text-xs" style="color: var(--text-darker);"> </span></td>'),rr=e('<span class="text-xs" style="color: var(--text-darker);"> </span>'),tr=e(" <!>",1),sr=e('<span style="color: var(--text-darker);">-</span>'),er=e('<span class="text-xs" style="color: var(--text-darker);"> </span>'),or=e(" <!>",1),dr=e('<span style="color: var(--text-darker);">-</span>'),vr=e('<tr><td><span class="legend-dot inline-block mr-2 svelte-1y8drq2"></span> <span class="font-mono text-sm"> </span></td><td><span class="font-mono text-xs" style="color: var(--text-darker);"> </span></td><!><td><!></td><td><!></td></tr>'),nr=e('<div class="table-wrapper svelte-1y8drq2"><table class="table"><thead><tr><th>Shard</th><th>Host</th><!><th class="shrink-column svelte-1y8drq2">Documents</th><th class="shrink-column svelte-1y8drq2">Size</th></tr></thead><tbody></tbody></table></div>'),lr=e("<!> <!> <!>",1),ir=e('<div class="p-4"><p class="error svelte-1y8drq2"> </p></div>'),_r=e('<div class="loading p-4">Loading sharding info...</div>');function $r(ya,fa){Ia(fa,!0);function M(T,b){return b<=0?0:Math.round(T/b*100)}const J=["hsl(210, 70%, 55%)","hsl(150, 60%, 45%)","hsl(38, 92%, 50%)","hsl(280, 60%, 58%)","hsl(0, 70%, 58%)","hsl(190, 65%, 48%)","hsl(330, 65%, 58%)","hsl(95, 55%, 45%)"];var ua=ta(),ka=N(ua);Na(ka,()=>fa.data.sharding,T=>{L(T,{title:"Sharding",children:(b,V)=>{var ea=_r();r(b,ea)},$$slots:{default:!0}})},(T,b)=>{var V=ta(),ea=N(V);{var W=D=>{L(D,{title:"Sharding",children:(d,na)=>{var X=Ha(),da=o(X),la=o(da,!0);s(da),s(X),f(()=>p(la,a(b)?.error??"Failed to load sharding info")),r(d,X)},$$slots:{default:!0}})},oa=D=>{const d=sa(()=>a(b).data);var na=ta(),X=N(na);{var da=z=>{L(z,{title:"Sharding",children:(g,va)=>{var O=La();r(g,O)},$$slots:{default:!0}})},la=z=>{L(z,{title:"Sharding",children:(g,va)=>{var O=Ma();r(g,O)},$$slots:{default:!0}})},$a=z=>{const g=sa(()=>a(d).totalChunks),va=sa(()=>a(d).shards.reduce((y,j)=>y+(j.documents??0),0)),O=sa(()=>a(d).shards.reduce((y,j)=>y+(j.size??0),0));var ma=lr(),ga=N(ma);L(ga,{title:"Sharding status",class:"mb-4",children:(y,j)=>{var A=Va(),S=N(A),P=o(S);{var G=t=>{var v=Ta();r(t,v)},k=t=>{var v=ja();r(t,v)};i(P,t=>{a(d).sharded?t(G):t(k,-1)})}var h=n(P,2);{var B=t=>{var v=Aa();r(t,v)};i(h,t=>{a(d).hashed&&t(B)})}var _=n(h,2);{var l=t=>{var v=Ga();r(t,v)};i(_,t=>{a(d).unique&&t(l)})}var C=n(_,2);{var $=t=>{var v=ta(),w=N(v);{var E=F=>{var aa=Ja();r(F,aa)},Z=F=>{var aa=Oa();r(F,aa)};i(w,F=>{a(d).balancerEnabled?F(E):F(Z,-1)})}r(t,v)};i(C,t=>{a(d).sharded&&t($)})}var x=n(C,2);{var Q=t=>{var v=Qa(),w=n(o(v),2),E=o(w,!0);s(w),s(v),f(Z=>p(E,Z),[()=>Fa(a(d).shardKey)]),r(t,v)};i(x,t=>{a(d).shardKey&&t(Q)})}var R=n(x,2);{var Y=t=>{var v=Ra(),w=o(v);s(v),f(E=>p(w,`${E??""} chunk${a(g)===1?"":"s"} across ${a(d).shards.length??""} shard${a(d).shards.length===1?"":"s"}`),[()=>ha(a(g))]),r(t,v)};i(R,t=>{a(d).sharded&&t(Y)})}s(S);var q=n(S,2);{var I=t=>{var v=Ua(),w=o(v);s(v),f(()=>p(w,`⚠ ${a(d).warning??""}`)),r(t,v)};i(q,t=>{a(d).warning&&t(I)})}r(y,A)},$$slots:{default:!0}});var xa=n(ga,2);{var qa=y=>{L(y,{title:"Chunk distribution",class:"mb-4",children:(j,A)=>{var S=Ya(),P=o(S);ca(P,23,()=>a(d).shards,k=>k.shardId,(k,h,B)=>{var _=ta(),l=N(_);{var C=$=>{var x=Wa(),Q=o(x);{var R=q=>{var I=Ca();f(t=>p(I,`${t??""}%`),[()=>M(a(h).chunks,a(g))]),r(q,I)},Y=sa(()=>M(a(h).chunks,a(g))>=8);i(Q,q=>{a(Y)&&q(R)})}s(x),f((q,I)=>{pa(x,`width: ${q??""}%; background: ${J[a(B)%J.length]??""};`),Da(x,"title",`${a(h).shardId??""}: ${a(h).chunks??""} chunks (${I??""}%)`)},[()=>M(a(h).chunks,a(g)),()=>M(a(h).chunks,a(g))]),r($,x)};i(l,$=>{a(h).chunks>0&&$(C)})}r(k,_)}),s(P);var G=n(P,2);ca(G,23,()=>a(d).shards,k=>k.shardId,(k,h,B)=>{var _=Xa(),l=o(_),C=n(l,2),$=o(C,!0);s(C),s(_),f(()=>{pa(l,`background: ${J[a(B)%J.length]??""};`),p($,a(h).shardId)}),r(k,_)}),s(G),s(S),r(j,S)},$$slots:{default:!0}})};i(xa,y=>{a(d).sharded&&a(g)>0&&y(qa)})}var Sa=n(xa,2);L(Sa,{title:"Per-shard breakdown",children:(y,j)=>{var A=nr(),S=o(A),P=o(S),G=o(P),k=n(o(G),2);{var h=_=>{var l=Za();r(_,l)};i(k,_=>{a(d).sharded&&_(h)})}Ka(2),s(G),s(P);var B=n(P);ca(B,23,()=>a(d).shards,_=>_.shardId,(_,l,C)=>{var $=vr(),x=o($),Q=o(x),R=n(Q,2),Y=o(R,!0);s(R),s(x);var q=n(x),I=o(q),t=o(I,!0);s(I),s(q);var v=n(q);{var w=c=>{var u=ar(),H=o(u),U=n(H),ra=o(U);s(U),s(u),f((m,K)=>{p(H,`${m??""} `),p(ra,`(${K??""}%)`)},[()=>ha(a(l).chunks),()=>M(a(l).chunks,a(g))]),r(c,u)};i(v,c=>{a(d).sharded&&c(w)})}var E=n(v),Z=o(E);{var F=c=>{var u=tr(),H=N(u),U=n(H);{var ra=m=>{var K=rr(),ia=o(K);s(K),f(_a=>p(ia,`(${_a??""}%)`),[()=>M(a(l).documents,a(va))]),r(m,K)};i(U,m=>{a(va)>0&&m(ra)})}f(m=>p(H,`${m??""} `),[()=>ha(a(l).documents)]),r(c,u)},aa=c=>{var u=sr();r(c,u)};i(Z,c=>{a(l).documents!=null?c(F):c(aa,-1)})}s(E);var ba=n(E),Pa=o(ba);{var wa=c=>{var u=or(),H=N(u),U=n(H);{var ra=m=>{var K=er(),ia=o(K);s(K),f(_a=>p(ia,`(${_a??""}%)`),[()=>M(a(l).size,a(O))]),r(m,K)};i(U,m=>{a(O)>0&&m(ra)})}f(m=>p(H,`${m??""} `),[()=>Ba(a(l).size)]),r(c,u)},za=c=>{var u=dr();r(c,u)};i(Pa,c=>{a(l).size!=null?c(wa):c(za,-1)})}s(ba),s($),f(()=>{pa(Q,`background: ${J[a(C)%J.length]??""};`),p(Y,a(l).shardId),p(t,a(l).host)}),r(_,$)}),s(B),s(S),s(A),r(y,A)},$$slots:{default:!0}}),r(z,ma)};i(X,z=>{a(d)?a(d).shardingEnabled?z($a,-1):z(la,1):z(da)})}r(D,na)};i(ea,D=>{!a(b)||a(b).error?D(W):D(oa,-1)})}r(T,V)},(T,b)=>{L(T,{title:"Sharding",children:(V,ea)=>{var W=ir(),oa=o(W),D=o(oa);s(oa),s(W),f(()=>p(D,`Error loading sharding info: ${a(b)??""}`)),r(V,W)},$$slots:{default:!0}})}),r(ya,ua),Ea()}export{$r as component};
@@ -1 +1 @@
1
- import{L as t}from"../chunks/BiVfO0yo.js";const r=e=>({server:e.params.server,breadcrumbs:[{label:e.params.server,path:`/servers/${encodeURIComponent(e.params.server)}/databases`}]}),a=Object.freeze(Object.defineProperty({__proto__:null,load:r},Symbol.toStringTag,{value:"Module"}));export{t as component,a as universal};
1
+ import{L as t}from"../chunks/Dc47-4iR.js";const r=e=>({server:e.params.server,breadcrumbs:[{label:e.params.server,path:`/servers/${encodeURIComponent(e.params.server)}/databases`}]}),a=Object.freeze(Object.defineProperty({__proto__:null,load:r},Symbol.toStringTag,{value:"Module"}));export{t as component,a as universal};
@@ -1 +1 @@
1
- import{L as s}from"../chunks/BiVfO0yo.js";const e=async a=>({database:a.params.database,breadcrumbs:[...(await a.parent()).breadcrumbs,{label:a.params.database,path:`/${encodeURIComponent(a.params.database)}/collections`}]}),o=Object.freeze(Object.defineProperty({__proto__:null,load:e},Symbol.toStringTag,{value:"Module"}));export{s as component,o as universal};
1
+ import{L as s}from"../chunks/Dc47-4iR.js";const e=async a=>({database:a.params.database,breadcrumbs:[...(await a.parent()).breadcrumbs,{label:a.params.database,path:`/${encodeURIComponent(a.params.database)}/collections`}]}),o=Object.freeze(Object.defineProperty({__proto__:null,load:e},Symbol.toStringTag,{value:"Module"}));export{s as component,o as universal};
@@ -0,0 +1 @@
1
+ import{L as c}from"../chunks/Dc47-4iR.js";const a=[{key:"documents",label:"Documents",primary:!0},{key:"indexes",label:"Indexes",primary:!0},{key:"sharding",label:"Sharding"},{key:"mappings",label:"Mappings"},{key:"schema",label:"Schema"}],l=async e=>({collection:e.params.collection,categories:a,breadcrumbs:[...(await e.parent()).breadcrumbs,{label:e.params.collection,path:`/${e.params.collection}/documents`}]}),o=Object.freeze(Object.defineProperty({__proto__:null,load:l},Symbol.toStringTag,{value:"Module"}));export{c as component,o as universal};
@@ -1 +1 @@
1
- import{L as c}from"../chunks/BiVfO0yo.js";const o=async a=>({document:a.params.document,breadcrumbs:[...(await a.parent()).breadcrumbs,{label:a.params.document,path:`/documents/${a.params.document}`}]}),r=Object.freeze(Object.defineProperty({__proto__:null,load:o},Symbol.toStringTag,{value:"Module"}));export{c as component,r as universal};
1
+ import{L as c}from"../chunks/Dc47-4iR.js";const o=async a=>({document:a.params.document,breadcrumbs:[...(await a.parent()).breadcrumbs,{label:a.params.document,path:`/documents/${a.params.document}`}]}),r=Object.freeze(Object.defineProperty({__proto__:null,load:o},Symbol.toStringTag,{value:"Module"}));export{c as component,r as universal};
@@ -0,0 +1 @@
1
+ import{f as r,a as i}from"../chunks/DKMyRjux.js";import{i as m}from"../chunks/-8z-rXzu.js";import{p as n,t as p,a as l,s as f,c,r as d}from"../chunks/DfW1b8bA.js";import{s as u}from"../chunks/DupjJGFi.js";import{r as b}from"../chunks/_rBAec6D.js";var v=r(`<div class="flex flex-col items-center justify-center py-24 gap-4"><h1 class="text-xl font-semibold">You've been logged out</h1> <p class="text-sm text-[var(--text-muted)]">Your session has been ended.</p> <a class="btn btn-default btn-sm mt-2">Log back in</a></div>`);function Y(e,s){n(s,!1),m();var t=v(),a=f(c(t),4);d(t),p(o=>u(a,"href",o),[()=>b("/auth/login")]),i(e,t),l()}export{Y as component};
@@ -0,0 +1,2 @@
1
+ import{f as _,a,c as K,t as it}from"../chunks/DKMyRjux.js";import{b as M,ak as dt,M as zt,g as t,d as u,al as Z,p as Rt,f as C,a as Ct,ah as Et,s as g,c as s,r as o,t as S,n as lt,u as Dt}from"../chunks/DfW1b8bA.js";import{d as Mt,e as Pt,s as E,a as D}from"../chunks/CrLGr586.js";import{a as H}from"../chunks/oSuzXE6i.js";import{i as N}from"../chunks/DymqlScG.js";import{e as Tt}from"../chunks/wZh6TcLb.js";import{s as vt,r as At}from"../chunks/DupjJGFi.js";import{b as Ft}from"../chunks/DgwByHCB.js";import{r as Nt,c as $t,e as jt}from"../chunks/BE54Cy37.js";import{i as tt}from"../chunks/B2jd13FV.js";import{r as Ot}from"../chunks/_rBAec6D.js";import{P as Yt}from"../chunks/DVIi8uNn.js";import{T as qt}from"../chunks/Cf6RCjfg.js";import{n as O}from"../chunks/CUBPtF8t.js";import{s as et,f as ct}from"../chunks/Dfjkeakv.js";var Bt=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],It=["difference","intersection","symmetricDifference","union"],ut=!1;class J extends Set{#r=new Map;#t=M(0);#e=M(0);#a=dt||-1;constructor(e){if(super(),e){for(var n of e)super.add(n);this.#e.v=super.size}ut||this.#o()}#s(e){return dt===this.#a?M(e):zt(e)}#o(){ut=!0;var e=J.prototype,n=Set.prototype;for(const i of Bt)e[i]=function(...v){return t(this.#t),n[i].apply(this,v)};for(const i of It)e[i]=function(...v){t(this.#t);var Y=n[i].apply(this,v);return new J(Y)}}has(e){var n=super.has(e),i=this.#r,v=i.get(e);if(v===void 0){if(!n)return t(this.#t),!1;v=this.#s(!0),i.set(e,v)}return t(v),n}add(e){return super.has(e)||(super.add(e),u(this.#e,super.size),Z(this.#t)),this}delete(e){var n=super.delete(e),i=this.#r,v=i.get(e);return v!==void 0&&(i.delete(e),u(v,!1)),n&&(u(this.#e,super.size),Z(this.#t)),n}clear(){if(super.size!==0){super.clear();var e=this.#r;for(var n of e.values())u(n,!1);e.clear(),u(this.#e,0),Z(this.#t)}}keys(){return this.values()}values(){return t(this.#t),super.values()}entries(){return t(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return t(this.#e)}}var Kt=_('<input type="text" placeholder="mongodb://user:password@hostname:port?directConnection=true" class="form-input svelte-gqreh7"/> <button class="btn btn-outline-success btn-sm">Add</button>',1),Ut=_('<button class="btn btn-default btn-sm"> </button> <!>',1),Gt=_('<span class="error"><span class="badge badge-danger">Error</span> </span>'),Ht=_("<a> </a>"),Jt=_("<span> </span>"),Lt=_('<span style="color: var(--text-secondary);">...</span>'),Qt=_('<span style="color: var(--text-secondary);">...</span>'),Vt=_('<button class="btn btn-default btn-sm -my-2 hidden group-hover:inline"> </button>'),Wt=_('<tr class="group"><td><!></td><td><!></td><td><!></td><td style="width: 250px"><div class="flex gap-2 justify-end"><!> <button class="btn btn-outline-danger btn-sm -my-2 hidden group-hover:inline">Remove from list</button></div></td></tr>'),Xt=_('<tr><td colspan="4"><div class="text-center">No servers...</div></td></tr>'),Zt=_('<table class="table"><thead><tr><th>Name</th><th>Databases</th><th>Size</th><th></th></tr></thead><tbody><!></tbody></table>'),te=_(`<div class="modal-overlay"><div class="modal"><div class="modal-body"><p>Are you sure you want to remove <strong> </strong>? This will only remove it from this
2
+ list. You can add it back.</p></div> <div class="modal-footer"><button class="btn btn-default btn-sm">No</button> <button class="btn btn-outline-danger btn-sm">Yes</button></div></div></div>`),ee=_("<!> <!>",1);function he(ft,e){Rt(e,!0);let n=M(!1),i=M(""),v=M(!1),Y=M(!1),q=M(null);const U=new J;async function mt(){if(t(i)){u(v,!0);try{await $t({url:t(i)}),u(i,""),u(n,!1),O.notifySuccess("Server added successfully"),await tt()}catch(c){O.notifyError(c,"Failed to add server")}finally{u(v,!1)}}}function pt(c){u(q,c,!0),u(Y,!0)}function G(){u(Y,!1),u(q,null)}async function _t(){if(t(q))try{await jt(t(q).name),O.notifySuccess("Server removed successfully"),G(),await tt()}catch(c){O.notifyError(c,"Failed to remove server")}}function ht(c){c.key==="Escape"&&G()}async function bt(c){U.add(c._id);try{await Nt(c._id),O.notifySuccess("Connection restored successfully"),await tt()}catch(k){O.notifyError(k,"Failed to retry connection")}finally{U.delete(c._id)}}var rt=ee();Pt("keydown",Et,ht);var at=C(rt);Yt(at,{title:"Servers",actions:k=>{var P=Ut(),h=C(P),T=s(h,!0);o(h);var $=g(h,2);{var B=z=>{var b=Kt(),w=C(b);At(w);var j=g(w,2);S(()=>{w.disabled=t(v),j.disabled=!t(i).length||t(v)}),Ft(w,()=>t(i),I=>u(i,I)),D("click",j,mt),a(z,b)};N($,z=>{t(n)&&z(B)})}S(()=>E(T,t(n)?"Cancel":"Add Server")),D("click",h,()=>u(n,!t(n))),a(k,P)},children:(k,P)=>{var h=Zt(),T=g(s(h)),$=s(T);{var B=b=>{var w=K(),j=C(w);Tt(j,17,()=>e.data.servers,I=>I._id,(I,y)=>{var L=Wt(),Q=s(L),wt=s(Q);H(wt,()=>t(y).details,f=>{var r=Jt(),m=s(r,!0);o(r),S(x=>E(m,x),[()=>et(t(y).name)]),a(f,r)},(f,r)=>{var m=K(),x=C(m);{var A=d=>{var l=Gt(),F=s(l),R=g(F);o(l),S(X=>{vt(F,"title",t(r).error.message),E(R,` ${X??""}`)},[()=>et(t(y).name)]),a(d,l)},p=d=>{var l=Ht(),F=s(l,!0);o(l),S((R,X)=>{vt(l,"href",R),E(F,X)},[()=>Ot(`/servers/${encodeURIComponent(t(y).name)}/databases`),()=>et(t(y).name)]),a(d,l)};N(x,d=>{"error"in t(r)&&t(r).error?d(A):d(p,-1)})}a(f,m)}),o(Q);var V=g(Q),kt=s(V);H(kt,()=>t(y).details,f=>{var r=Lt();a(f,r)},(f,r)=>{var m=K(),x=C(m);{var A=p=>{{let d=Dt(()=>t(r).databases.map(l=>({name:l.name,size:ct(l.size)})));qt(p,{columns:[{header:"Database",key:"name"},{header:"Size",key:"size"}],get rows(){return t(d)},children:(l,F)=>{lt();var R=it();S(()=>E(R,t(r).databases.length)),a(l,R)},$$slots:{default:!0}})}};N(x,p=>{"databases"in t(r)&&t(r).databases&&p(A)})}a(f,m)}),o(V);var W=g(V),xt=s(W);H(xt,()=>t(y).details,f=>{var r=Qt();a(f,r)},(f,r)=>{var m=K(),x=C(m);{var A=p=>{var d=it();S(l=>E(d,l),[()=>ct(t(r).size)]),a(p,d)};N(x,p=>{"size"in t(r)&&t(r).size!==void 0&&p(A)})}a(f,m)}),o(W);var st=g(W),ot=s(st),nt=s(ot);H(nt,()=>t(y).details,null,(f,r)=>{var m=K(),x=C(m);{var A=p=>{var d=Vt(),l=s(d,!0);o(d),S((F,R)=>{d.disabled=F,E(l,R)},[()=>U.has(t(y)._id),()=>U.has(t(y)._id)?"Retrying...":"Retry"]),D("click",d,()=>bt(t(y))),a(p,d)};N(x,p=>{"error"in t(r)&&t(r).error&&p(A)})}a(f,m)});var St=g(nt,2);o(ot),o(st),o(L),D("click",St,()=>pt(t(y))),a(I,L)}),a(b,w)},z=b=>{var w=Xt();a(b,w)};N($,b=>{e.data.servers&&e.data.servers.length>0?b(B):b(z,-1)})}o(T),o(h),a(k,h)},$$slots:{actions:!0,default:!0}});var yt=g(at,2);{var gt=c=>{var k=te(),P=s(k),h=s(P),T=s(h),$=g(s(T)),B=s($,!0);o($),lt(),o(T),o(h);var z=g(h,2),b=s(z),w=g(b,2);o(z),o(P),o(k),S(()=>E(B,t(q)?.name)),D("click",k,G),D("click",P,j=>j.stopPropagation()),D("click",b,G),D("click",w,_t),a(c,k)};N(yt,c=>{t(Y)&&c(gt)})}a(ft,rt),Ct()}Mt(["click"]);export{he as component};
@@ -0,0 +1 @@
1
+ import{f as p,a as s,c as ot,t as O}from"../chunks/DKMyRjux.js";import{p as st,f as E,a as nt,s as m,c as a,r,g as t,t as z,n as q,u as lt,b as R,d as f}from"../chunks/DfW1b8bA.js";import{d as it,s as S,a as U}from"../chunks/CrLGr586.js";import{i as k}from"../chunks/DymqlScG.js";import{e as dt}from"../chunks/wZh6TcLb.js";import{s as vt}from"../chunks/DupjJGFi.js";import{d as ut}from"../chunks/BE54Cy37.js";import{i as ct}from"../chunks/B2jd13FV.js";import{r as mt}from"../chunks/_rBAec6D.js";import{M as ft}from"../chunks/J9ZSs_8c.js";import{P as pt}from"../chunks/DVIi8uNn.js";import{T as bt}from"../chunks/Cf6RCjfg.js";import{n as G}from"../chunks/CUBPtF8t.js";import{f as J}from"../chunks/Dfjkeakv.js";var _t=p('<button class="btn btn-outline-danger btn-sm -my-2 hidden group-hover:inline">Drop</button>'),ht=p('<tr class="group"><td><a> </a></td><td> </td><td><!></td><td style="width: 100px"><div class="flex justify-end"><!></div></td></tr>'),gt=p('<tr><td colspan="4"><div class="text-center">No databases...</div></td></tr>'),yt=p('<table class="table"><thead><tr><th>Name</th><th>Collections</th><th>Size</th><th></th></tr></thead><tbody><!></tbody></table>'),Dt=p('<button class="btn btn-default btn-sm">Cancel</button> <button class="btn btn-outline-danger btn-sm"><!></button>',1),xt=p("<p>Are you sure you want to drop the database <strong> </strong>? This action cannot be undone.</p>"),zt=p("<!> <!>",1);function Bt(K,d){st(d,!0);let M=R(!1),b=R(null),u=R(!1);function L(_){f(b,_,!0),f(M,!0)}function T(){f(M,!1),f(b,null),f(u,!1)}async function Q(){if(!(!t(b)||t(u))){f(u,!0);try{await ut({server:d.data.server,database:t(b).name}),G.notifySuccess(`Database "${t(b).name}" dropped successfully`),T(),await ct()}catch(_){G.notifyError(_,"Failed to drop database"),f(u,!1)}}}var B=zt(),F=E(B);pt(F,{get title(){return`Databases on ${d.data.server??""}`},children:(_,D)=>{var c=yt(),n=m(a(c)),l=a(n);{var g=v=>{var o=ot(),y=E(o);dt(y,17,()=>d.data.databases,P=>P.name,(P,e)=>{var w=ht(),I=a(w),j=a(I),X=a(j,!0);r(j),r(I);var A=m(I),Z=a(A,!0);r(A);var N=m(A),$=a(N);{var tt=i=>{{let x=lt(()=>[{metric:"Total Size",value:t(e).size},{metric:"Data Size",value:t(e).dataSize},{metric:"Storage Size",value:t(e).storageSize},{metric:"Index Size",value:t(e).totalIndexSize},{metric:"Avg Object Size",value:t(e).avgObjSize},{metric:"Empty",value:t(e).empty?"Yes":"No"}].map(h=>({...h,value:typeof h.value=="number"?J(h.value):h.value})));bt(i,{hideHeader:!0,columns:[{header:"Metric",key:"metric",align:"left"},{header:"Value",key:"value",align:"right"}],get rows(){return t(x)},children:(h,St)=>{q();var Y=O();z(rt=>S(Y,rt),[()=>J(t(e).size)]),s(h,Y)},$$slots:{default:!0}})}};k($,i=>{t(e).size!==void 0&&i(tt)})}r(N);var H=m(N),V=a(H),et=a(V);{var at=i=>{var x=_t();U("click",x,()=>L(t(e))),s(i,x)};k(et,i=>{d.data.readOnly||i(at)})}r(V),r(H),r(w),z(i=>{vt(j,"href",i),S(X,t(e).name),S(Z,t(e).nCollections)},[()=>mt(`/servers/${encodeURIComponent(d.data.server)}/databases/${encodeURIComponent(t(e).name)}/collections`)]),s(P,w)}),s(v,o)},C=v=>{var o=gt();s(v,o)};k(l,v=>{d.data.databases&&d.data.databases.length>0?v(g):v(C,-1)})}r(n),r(c),s(_,c)},$$slots:{default:!0}});var W=m(F,2);ft(W,{get show(){return t(M)},onclose:T,title:"Drop Database",footer:D=>{var c=Dt(),n=E(c),l=m(n,2),g=a(l);{var C=o=>{var y=O("Dropping...");s(o,y)},v=o=>{var y=O("Drop Database");s(o,y)};k(g,o=>{t(u)?o(C):o(v,-1)})}r(l),z(()=>{n.disabled=t(u),l.disabled=t(u)}),U("click",n,T),U("click",l,Q),s(D,c)},children:(D,c)=>{var n=xt(),l=m(a(n)),g=a(l,!0);r(l),q(),r(n),z(()=>S(g,t(b)?.name)),s(D,n)},$$slots:{footer:!0,default:!0}}),s(K,B),nt()}it(["click"]);export{Bt as component};
@@ -1 +1 @@
1
- {"version":"1780063932090"}
1
+ {"version":"1780506812596"}
Binary file
Binary file