mongoku 2.4.6 → 2.4.7-compat

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/README.md +15 -0
  2. package/build/client/_app/immutable/assets/0.C_geP4pp.css +1 -0
  3. package/build/client/_app/immutable/assets/0.C_geP4pp.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.C_geP4pp.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/10.Wc4MTSzM.css +1 -0
  6. package/build/client/_app/immutable/assets/10.Wc4MTSzM.css.br +0 -0
  7. package/build/client/_app/immutable/assets/10.Wc4MTSzM.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{Modal.zD4dMMyk.css → Modal.CZgFKXkP.css} +1 -1
  9. package/build/client/_app/immutable/assets/Modal.CZgFKXkP.css.br +0 -0
  10. package/build/client/_app/immutable/assets/Modal.CZgFKXkP.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/B27BoO92.js +1 -0
  12. package/build/client/_app/immutable/chunks/B27BoO92.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/B27BoO92.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{reNJcONQ.js → BLB7WU0x.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BLB7WU0x.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/{reNJcONQ.js.gz → BLB7WU0x.js.gz} +0 -0
  17. package/build/client/_app/immutable/chunks/{Dkr5ZtQR.js → BTDPx7wo.js} +1 -1
  18. package/build/client/_app/immutable/chunks/BTDPx7wo.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/BTDPx7wo.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{BziC6PX1.js → BV1jCwWf.js} +1 -1
  21. package/build/client/_app/immutable/chunks/BV1jCwWf.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BV1jCwWf.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/Bp2iD_PL.js +1 -0
  24. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/CItzKczS.js +1 -0
  27. package/build/client/_app/immutable/chunks/CItzKczS.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/CItzKczS.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{BO6_ugNx.js → Ce084HhL.js} +1 -1
  30. package/build/client/_app/immutable/chunks/Ce084HhL.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/Ce084HhL.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{DIw4Wyr4.js → CqFYS5AV.js} +1 -1
  33. package/build/client/_app/immutable/chunks/CqFYS5AV.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/CqFYS5AV.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{CpnIKQd1.js → DC13l09X.js} +6 -6
  36. package/build/client/_app/immutable/chunks/DC13l09X.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/DC13l09X.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/{DkI4PMxL.js → DXWJTsg6.js} +1 -1
  39. package/build/client/_app/immutable/chunks/DXWJTsg6.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/DXWJTsg6.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/Dip-8jE5.js +1 -0
  42. package/build/client/_app/immutable/chunks/Dip-8jE5.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/Dip-8jE5.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/Dr_XE7iR.js +2 -0
  45. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/DuLpG1zT.js +1 -0
  48. package/build/client/_app/immutable/chunks/DuLpG1zT.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/DuLpG1zT.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/{Dn0_-jEe.js → DyfVYlRP.js} +1 -1
  51. package/build/client/_app/immutable/chunks/DyfVYlRP.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/DyfVYlRP.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/{BXUq66wC.js → OTbFjzBQ.js} +1 -1
  54. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/{UJuWD2W4.js → TQ9V_LBO.js} +1 -1
  57. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/{Z2a-si5C.js → p4lxgeXU.js} +3 -3
  60. package/build/client/_app/immutable/chunks/p4lxgeXU.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/p4lxgeXU.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/pXcSrKpr.js +1 -0
  63. package/build/client/_app/immutable/chunks/pXcSrKpr.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/pXcSrKpr.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/xuMwtvm-.js +16 -0
  66. package/build/client/_app/immutable/chunks/xuMwtvm-.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/xuMwtvm-.js.gz +0 -0
  68. package/build/client/_app/immutable/entry/app.B7JBkmJ2.js +2 -0
  69. package/build/client/_app/immutable/entry/app.B7JBkmJ2.js.br +0 -0
  70. package/build/client/_app/immutable/entry/app.B7JBkmJ2.js.gz +0 -0
  71. package/build/client/_app/immutable/entry/start.C35Eiz23.js +1 -0
  72. package/build/client/_app/immutable/entry/start.C35Eiz23.js.br +2 -0
  73. package/build/client/_app/immutable/entry/start.C35Eiz23.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/0.U3Wc2t11.js +1 -0
  75. package/build/client/_app/immutable/nodes/0.U3Wc2t11.js.br +0 -0
  76. package/build/client/_app/immutable/nodes/0.U3Wc2t11.js.gz +0 -0
  77. package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js +1 -0
  78. package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js.br +2 -0
  79. package/build/client/_app/immutable/nodes/1.YN6Ljj2X.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/10.E5c2rVVT.js +3 -0
  81. package/build/client/_app/immutable/nodes/10.E5c2rVVT.js.br +0 -0
  82. package/build/client/_app/immutable/nodes/10.E5c2rVVT.js.gz +0 -0
  83. package/build/client/_app/immutable/nodes/{11.IKyzjYy6.js → 11.CwiIDBVl.js} +1 -1
  84. package/build/client/_app/immutable/nodes/11.CwiIDBVl.js.br +0 -0
  85. package/build/client/_app/immutable/nodes/11.CwiIDBVl.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/12.BF4KBraU.js +1 -0
  87. package/build/client/_app/immutable/nodes/12.BF4KBraU.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/12.BF4KBraU.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/13.BNgciqug.js +65 -0
  90. package/build/client/_app/immutable/nodes/13.BNgciqug.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/13.BNgciqug.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/{2.DqvBb3C7.js → 2.Byf6opOr.js} +1 -1
  93. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/{3.27swwcG4.js → 3.B3j0bAgy.js} +1 -1
  96. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/{4.CcholrFe.js → 4.6dtz57ii.js} +1 -1
  99. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/{5.CzudN9q-.js → 5.COHVaEDo.js} +1 -1
  102. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/{7.C560Uxhw.js → 7.Cecp1nCH.js} +1 -1
  105. package/build/client/_app/immutable/nodes/7.Cecp1nCH.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/7.Cecp1nCH.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/{8.BEOgol-D.js → 8.DFk2Y9sL.js} +1 -1
  108. package/build/client/_app/immutable/nodes/8.DFk2Y9sL.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/8.DFk2Y9sL.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/{9.BmG9LqpS.js → 9.W4l2xsEF.js} +1 -1
  111. package/build/client/_app/immutable/nodes/9.W4l2xsEF.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/9.W4l2xsEF.js.gz +0 -0
  113. package/build/client/_app/version.json +1 -1
  114. package/build/client/_app/version.json.br +0 -0
  115. package/build/client/_app/version.json.gz +0 -0
  116. package/build/server/chunks/0-CuiS31Ys.js +22 -0
  117. package/build/server/chunks/{0-DgHP79Ti.js.map → 0-CuiS31Ys.js.map} +1 -1
  118. package/build/server/chunks/1-C9TxPuQ0.js +9 -0
  119. package/build/server/chunks/{1--T1OTbjT.js.map → 1-C9TxPuQ0.js.map} +1 -1
  120. package/build/server/chunks/{10-D1OhJt-m.js → 10-PX9d-jhv.js} +5 -5
  121. package/build/server/chunks/10-PX9d-jhv.js.map +1 -0
  122. package/build/server/chunks/{11-pr9S-VkT.js → 11-Bhv-UeEo.js} +4 -4
  123. package/build/server/chunks/{11-pr9S-VkT.js.map → 11-Bhv-UeEo.js.map} +1 -1
  124. package/build/server/chunks/{12-B_w9udgo.js → 12-BuNmW-Vp.js} +5 -5
  125. package/build/server/chunks/{12-B_w9udgo.js.map → 12-BuNmW-Vp.js.map} +1 -1
  126. package/build/server/chunks/{13-CfrLQ4p0.js → 13-CAI7Pyhf.js} +4 -4
  127. package/build/server/chunks/{13-CfrLQ4p0.js.map → 13-CAI7Pyhf.js.map} +1 -1
  128. package/build/server/chunks/{2-BheEgghx.js → 2-Bx656tbc.js} +2 -2
  129. package/build/server/chunks/{2-BheEgghx.js.map → 2-Bx656tbc.js.map} +1 -1
  130. package/build/server/chunks/{3-BwrTscBH.js → 3-B-zRiOJV.js} +2 -2
  131. package/build/server/chunks/{3-BwrTscBH.js.map → 3-B-zRiOJV.js.map} +1 -1
  132. package/build/server/chunks/{4-D28kbpdN.js → 4-BBCE4OIo.js} +2 -2
  133. package/build/server/chunks/{4-D28kbpdN.js.map → 4-BBCE4OIo.js.map} +1 -1
  134. package/build/server/chunks/{5--wY8V1OC.js → 5-D68X5smv.js} +2 -2
  135. package/build/server/chunks/{5--wY8V1OC.js.map → 5-D68X5smv.js.map} +1 -1
  136. package/build/server/chunks/{7-9IXFVUUl.js → 7-C8AZjmDc.js} +4 -4
  137. package/build/server/chunks/{7-9IXFVUUl.js.map → 7-C8AZjmDc.js.map} +1 -1
  138. package/build/server/chunks/{8-DQQl8f10.js → 8-CGRiuqYX.js} +5 -5
  139. package/build/server/chunks/{8-DQQl8f10.js.map → 8-CGRiuqYX.js.map} +1 -1
  140. package/build/server/chunks/{9-B4xWo186.js → 9-CBzIf4Vj.js} +5 -5
  141. package/build/server/chunks/{9-B4xWo186.js.map → 9-CBzIf4Vj.js.map} +1 -1
  142. package/build/server/chunks/{JsonValue-Cexm3jGT.js → JsonValue-EppVzWzE.js} +88 -36
  143. package/build/server/chunks/JsonValue-EppVzWzE.js.map +1 -0
  144. package/build/server/chunks/{Modal-BzZ9u6V6.js → Modal-eRpc5lqR.js} +4 -3
  145. package/build/server/chunks/Modal-eRpc5lqR.js.map +1 -0
  146. package/build/server/chunks/{Panel-BHGtM9Vw.js → Panel-HO9t9Spv.js} +2 -2
  147. package/build/server/chunks/{Panel-BHGtM9Vw.js.map → Panel-HO9t9Spv.js.map} +1 -1
  148. package/build/server/chunks/{PrettyJson-tOt0PqjF.js → PrettyJson-F3fqxkqU.js} +7 -6
  149. package/build/server/chunks/PrettyJson-F3fqxkqU.js.map +1 -0
  150. package/build/server/chunks/{Tooltip-DAE2mkm6.js → Tooltip-Dd-Bzogp.js} +2 -2
  151. package/build/server/chunks/{Tooltip-DAE2mkm6.js.map → Tooltip-Dd-Bzogp.js.map} +1 -1
  152. package/build/server/chunks/{TooltipTable-xo_OEG9c.js → TooltipTable-jHWezlEs.js} +3 -3
  153. package/build/server/chunks/{TooltipTable-xo_OEG9c.js.map → TooltipTable-jHWezlEs.js.map} +1 -1
  154. package/build/server/chunks/{_layout.svelte-Dji2JJ9X.js → _layout.svelte-CKGgUBvr.js} +9 -3
  155. package/build/server/chunks/_layout.svelte-CKGgUBvr.js.map +1 -0
  156. package/build/server/chunks/_page.svelte-BlmdSnTh.js +245 -0
  157. package/build/server/chunks/_page.svelte-BlmdSnTh.js.map +1 -0
  158. package/build/server/chunks/{_page.svelte-x1L5xjgQ.js → _page.svelte-ClZj6yzK.js} +7 -7
  159. package/build/server/chunks/{_page.svelte-x1L5xjgQ.js.map → _page.svelte-ClZj6yzK.js.map} +1 -1
  160. package/build/server/chunks/{_page.svelte-be8sxgGt.js → _page.svelte-D50SWEhd.js} +8 -8
  161. package/build/server/chunks/{_page.svelte-be8sxgGt.js.map → _page.svelte-D50SWEhd.js.map} +1 -1
  162. package/build/server/chunks/{_page.svelte-D-23v2Aa.js → _page.svelte-D8GSKYqN.js} +223 -12
  163. package/build/server/chunks/_page.svelte-D8GSKYqN.js.map +1 -0
  164. package/build/server/chunks/{_page.svelte-D9IvgJO5.js → _page.svelte-DBcsXxML.js} +8 -8
  165. package/build/server/chunks/{_page.svelte-D9IvgJO5.js.map → _page.svelte-DBcsXxML.js.map} +1 -1
  166. package/build/server/chunks/{_page.svelte-aT9hOnbL.js → _page.svelte-DFzKfImt.js} +8 -8
  167. package/build/server/chunks/{_page.svelte-aT9hOnbL.js.map → _page.svelte-DFzKfImt.js.map} +1 -1
  168. package/build/server/chunks/{_page.svelte-D5-pMskg.js → _page.svelte-ZYW4iSHn.js} +8 -8
  169. package/build/server/chunks/{_page.svelte-D5-pMskg.js.map → _page.svelte-ZYW4iSHn.js.map} +1 -1
  170. package/build/server/chunks/{index2-eSFyMQpS.js → index2-DBFlGzWV.js} +2 -2
  171. package/build/server/chunks/{index2-eSFyMQpS.js.map → index2-DBFlGzWV.js.map} +1 -1
  172. package/build/server/chunks/{mongo-BHk5yAj9.js → mongo-Ndoh6fs5.js} +21 -7
  173. package/build/server/chunks/mongo-Ndoh6fs5.js.map +1 -0
  174. package/build/server/chunks/{remote-xxtqbu-ETLGkdRu.js → remote-xxtqbu-fbBqzvFu.js} +3 -3
  175. package/build/server/chunks/remote-xxtqbu-fbBqzvFu.js.map +1 -0
  176. package/build/server/chunks/{servers.remote-CGies_Na.js → servers.remote-B1eorl4A.js} +163 -12
  177. package/build/server/chunks/servers.remote-B1eorl4A.js.map +1 -0
  178. package/build/server/index.js +2 -2
  179. package/build/server/index.js.map +1 -1
  180. package/build/server/manifest.js +15 -15
  181. package/build/server/manifest.js.map +1 -1
  182. package/package.json +1 -1
  183. package/src/api/servers.remote.ts +196 -10
  184. package/src/app.css +3 -6
  185. package/src/lib/components/ExplainPanel.svelte +273 -0
  186. package/src/lib/components/JsonValue.svelte +51 -6
  187. package/src/lib/components/Modal.svelte +7 -2
  188. package/src/lib/components/Notifications.svelte +3 -15
  189. package/src/lib/components/PrettyJson.svelte +1 -1
  190. package/src/lib/components/SearchBox.svelte +160 -5
  191. package/src/lib/components/TimeRangeStats.svelte +269 -0
  192. package/src/lib/icons/IconClose.svelte +21 -0
  193. package/src/lib/icons/IconExternalLink.svelte +22 -0
  194. package/src/lib/server/mongo.ts +31 -6
  195. package/src/lib/types.ts +16 -5
  196. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +49 -1
  197. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +219 -79
  198. package/build/client/_app/immutable/assets/0.CEIWAdGZ.css +0 -1
  199. package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.br +0 -0
  200. package/build/client/_app/immutable/assets/0.CEIWAdGZ.css.gz +0 -0
  201. package/build/client/_app/immutable/assets/10.BrydhPds.css +0 -1
  202. package/build/client/_app/immutable/assets/10.BrydhPds.css.br +0 -0
  203. package/build/client/_app/immutable/assets/10.BrydhPds.css.gz +0 -0
  204. package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.br +0 -0
  205. package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.gz +0 -0
  206. package/build/client/_app/immutable/chunks/0oUK0vJa.js +0 -1
  207. package/build/client/_app/immutable/chunks/0oUK0vJa.js.br +0 -0
  208. package/build/client/_app/immutable/chunks/0oUK0vJa.js.gz +0 -0
  209. package/build/client/_app/immutable/chunks/BGXqurs_.js +0 -1
  210. package/build/client/_app/immutable/chunks/BGXqurs_.js.br +0 -0
  211. package/build/client/_app/immutable/chunks/BGXqurs_.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/BO6_ugNx.js.br +0 -0
  213. package/build/client/_app/immutable/chunks/BO6_ugNx.js.gz +0 -0
  214. package/build/client/_app/immutable/chunks/BPbCnJEo.js +0 -1
  215. package/build/client/_app/immutable/chunks/BPbCnJEo.js.br +0 -0
  216. package/build/client/_app/immutable/chunks/BPbCnJEo.js.gz +0 -0
  217. package/build/client/_app/immutable/chunks/BXUq66wC.js.br +0 -0
  218. package/build/client/_app/immutable/chunks/BXUq66wC.js.gz +0 -0
  219. package/build/client/_app/immutable/chunks/BxoAxRg6.js +0 -1
  220. package/build/client/_app/immutable/chunks/BxoAxRg6.js.br +0 -0
  221. package/build/client/_app/immutable/chunks/BxoAxRg6.js.gz +0 -0
  222. package/build/client/_app/immutable/chunks/ByCRZ7zS.js +0 -2
  223. package/build/client/_app/immutable/chunks/ByCRZ7zS.js.br +0 -0
  224. package/build/client/_app/immutable/chunks/ByCRZ7zS.js.gz +0 -0
  225. package/build/client/_app/immutable/chunks/BziC6PX1.js.br +0 -0
  226. package/build/client/_app/immutable/chunks/BziC6PX1.js.gz +0 -0
  227. package/build/client/_app/immutable/chunks/CpnIKQd1.js.br +0 -0
  228. package/build/client/_app/immutable/chunks/CpnIKQd1.js.gz +0 -0
  229. package/build/client/_app/immutable/chunks/DIw4Wyr4.js.br +0 -0
  230. package/build/client/_app/immutable/chunks/DIw4Wyr4.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/DkI4PMxL.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/DkI4PMxL.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/Dkr5ZtQR.js.br +0 -0
  234. package/build/client/_app/immutable/chunks/Dkr5ZtQR.js.gz +0 -0
  235. package/build/client/_app/immutable/chunks/DmXOK2q9.js +0 -16
  236. package/build/client/_app/immutable/chunks/DmXOK2q9.js.br +0 -0
  237. package/build/client/_app/immutable/chunks/DmXOK2q9.js.gz +0 -0
  238. package/build/client/_app/immutable/chunks/Dn0_-jEe.js.br +0 -0
  239. package/build/client/_app/immutable/chunks/Dn0_-jEe.js.gz +0 -0
  240. package/build/client/_app/immutable/chunks/UJuWD2W4.js.br +0 -0
  241. package/build/client/_app/immutable/chunks/UJuWD2W4.js.gz +0 -0
  242. package/build/client/_app/immutable/chunks/Z2a-si5C.js.br +0 -0
  243. package/build/client/_app/immutable/chunks/Z2a-si5C.js.gz +0 -0
  244. package/build/client/_app/immutable/chunks/_kKBJjiB.js +0 -1
  245. package/build/client/_app/immutable/chunks/_kKBJjiB.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/_kKBJjiB.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/reNJcONQ.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/s-K2chw6.js +0 -1
  249. package/build/client/_app/immutable/chunks/s-K2chw6.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/s-K2chw6.js.gz +0 -0
  251. package/build/client/_app/immutable/entry/app.BBGxwcK8.js +0 -2
  252. package/build/client/_app/immutable/entry/app.BBGxwcK8.js.br +0 -0
  253. package/build/client/_app/immutable/entry/app.BBGxwcK8.js.gz +0 -0
  254. package/build/client/_app/immutable/entry/start.Cu5iaSNG.js +0 -1
  255. package/build/client/_app/immutable/entry/start.Cu5iaSNG.js.br +0 -0
  256. package/build/client/_app/immutable/entry/start.Cu5iaSNG.js.gz +0 -0
  257. package/build/client/_app/immutable/nodes/0.OznVrT12.js +0 -1
  258. package/build/client/_app/immutable/nodes/0.OznVrT12.js.br +0 -0
  259. package/build/client/_app/immutable/nodes/0.OznVrT12.js.gz +0 -0
  260. package/build/client/_app/immutable/nodes/1.BnbJyDlh.js +0 -1
  261. package/build/client/_app/immutable/nodes/1.BnbJyDlh.js.br +0 -2
  262. package/build/client/_app/immutable/nodes/1.BnbJyDlh.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/10.4wMOwZtW.js +0 -3
  264. package/build/client/_app/immutable/nodes/10.4wMOwZtW.js.br +0 -0
  265. package/build/client/_app/immutable/nodes/10.4wMOwZtW.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/11.IKyzjYy6.js.br +0 -0
  267. package/build/client/_app/immutable/nodes/11.IKyzjYy6.js.gz +0 -0
  268. package/build/client/_app/immutable/nodes/12.BYM9mUpP.js +0 -1
  269. package/build/client/_app/immutable/nodes/12.BYM9mUpP.js.br +0 -0
  270. package/build/client/_app/immutable/nodes/12.BYM9mUpP.js.gz +0 -0
  271. package/build/client/_app/immutable/nodes/13.ndMcrfHr.js +0 -66
  272. package/build/client/_app/immutable/nodes/13.ndMcrfHr.js.br +0 -0
  273. package/build/client/_app/immutable/nodes/13.ndMcrfHr.js.gz +0 -0
  274. package/build/client/_app/immutable/nodes/2.DqvBb3C7.js.br +0 -0
  275. package/build/client/_app/immutable/nodes/2.DqvBb3C7.js.gz +0 -0
  276. package/build/client/_app/immutable/nodes/3.27swwcG4.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/3.27swwcG4.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/4.CcholrFe.js.br +0 -0
  279. package/build/client/_app/immutable/nodes/4.CcholrFe.js.gz +0 -0
  280. package/build/client/_app/immutable/nodes/5.CzudN9q-.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/5.CzudN9q-.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/7.C560Uxhw.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/7.C560Uxhw.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/8.BEOgol-D.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/8.BEOgol-D.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/9.BmG9LqpS.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/9.BmG9LqpS.js.gz +0 -0
  288. package/build/server/chunks/0-DgHP79Ti.js +0 -22
  289. package/build/server/chunks/1--T1OTbjT.js +0 -9
  290. package/build/server/chunks/10-D1OhJt-m.js.map +0 -1
  291. package/build/server/chunks/JsonValue-Cexm3jGT.js.map +0 -1
  292. package/build/server/chunks/Modal-BzZ9u6V6.js.map +0 -1
  293. package/build/server/chunks/PrettyJson-tOt0PqjF.js.map +0 -1
  294. package/build/server/chunks/_layout.svelte-Dji2JJ9X.js.map +0 -1
  295. package/build/server/chunks/_page.svelte-CJ5HzoD0.js +0 -203
  296. package/build/server/chunks/_page.svelte-CJ5HzoD0.js.map +0 -1
  297. package/build/server/chunks/_page.svelte-D-23v2Aa.js.map +0 -1
  298. package/build/server/chunks/mongo-BHk5yAj9.js.map +0 -1
  299. package/build/server/chunks/remote-xxtqbu-ETLGkdRu.js.map +0 -1
  300. package/build/server/chunks/servers.remote-CGies_Na.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { l as logger } from './logger-KF6KpVP6.js';
2
2
  import { resolveSrv } from 'dns/promises';
3
- import { MongoClient } from 'mongodb';
3
+ import { ReadPreference, MongoClient } from 'mongodb';
4
4
  import { URL } from 'url';
5
5
  import * as fs from 'node:fs';
6
6
  import * as os from 'node:os';
@@ -165,8 +165,8 @@ class MongoClientWithMappings extends MongoClient {
165
165
  mappings = {};
166
166
  _id;
167
167
  name;
168
- constructor(url, _id, name) {
169
- super(url);
168
+ constructor(url, _id, name, readPreference) {
169
+ super(url, readPreference ? { readPreference } : {});
170
170
  this.url = url;
171
171
  this._id = _id;
172
172
  this.name = name;
@@ -196,12 +196,26 @@ class MongoConnections {
196
196
  countTimeout = parseInt(process.env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;
197
197
  queryTimeout = process.env.MONGOKU_QUERY_TIMEOUT ? parseInt(process.env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;
198
198
  excludedDatabases;
199
+ readPreference;
199
200
  constructor() {
200
201
  this.hostsManager = new HostsManager();
201
202
  const excludeEnv = process.env.MONGOKU_EXCLUDE_DATABASES || "";
202
203
  this.excludedDatabases = new Set(
203
204
  excludeEnv.split(",").map((db) => db.trim()).filter((db) => db.length > 0)
204
205
  );
206
+ const readPrefMode = process.env.MONGOKU_READ_PREFERENCE;
207
+ if (readPrefMode) {
208
+ let tags;
209
+ if (process.env.MONGOKU_READ_PREFERENCE_TAGS) {
210
+ try {
211
+ tags = JSON.parse(process.env.MONGOKU_READ_PREFERENCE_TAGS);
212
+ } catch (err) {
213
+ logger.error("Failed to parse MONGOKU_READ_PREFERENCE_TAGS:", err);
214
+ }
215
+ }
216
+ this.readPreference = tags ? new ReadPreference(readPrefMode, tags) : new ReadPreference(readPrefMode);
217
+ logger.log(`Read preference configured: ${readPrefMode}${tags ? ` with tags ${JSON.stringify(tags)}` : ""}`);
218
+ }
205
219
  }
206
220
  async initialize() {
207
221
  await this.hostsManager.load();
@@ -212,7 +226,7 @@ class MongoConnections {
212
226
  const url = new URL(urlStr);
213
227
  const hostname = url.host || host.path;
214
228
  if (!this.clients.has(hostname)) {
215
- const client = new MongoClientWithMappings(urlStr, host._id, hostname);
229
+ const client = new MongoClientWithMappings(urlStr, host._id, hostname, this.readPreference);
216
230
  this.clients.set(host._id, client);
217
231
  this.clientIds.set(hostname, host._id);
218
232
  }
@@ -258,7 +272,7 @@ class MongoConnections {
258
272
  const url = new URL(urlStr);
259
273
  const hostname = url.host || hostPath;
260
274
  if (!this.clients.has(hostname)) {
261
- const client = new MongoClientWithMappings(urlStr, id, hostname);
275
+ const client = new MongoClientWithMappings(urlStr, id, hostname, this.readPreference);
262
276
  this.clients.set(id, client);
263
277
  this.clientIds.set(hostname, id);
264
278
  }
@@ -279,7 +293,7 @@ class MongoConnections {
279
293
  throw new Error(`Client not found: ${id}`);
280
294
  }
281
295
  oldClient.close().catch((err) => logger.error(`Error closing old client ${id}:`, err));
282
- const newClient = new MongoClientWithMappings(oldClient.url, id, oldClient.name);
296
+ const newClient = new MongoClientWithMappings(oldClient.url, id, oldClient.name, this.readPreference);
283
297
  this.clients.set(id, newClient);
284
298
  await newClient.connect();
285
299
  }
@@ -344,4 +358,4 @@ async function getMongo() {
344
358
  }
345
359
 
346
360
  export { getCollectionJson as a, getMongo as g };
347
- //# sourceMappingURL=mongo-BHk5yAj9.js.map
361
+ //# sourceMappingURL=mongo-Ndoh6fs5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-Ndoh6fs5.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { l as logger } from \"./logger.js\";\nimport { resolveSrv } from \"dns/promises\";\nimport { ReadPreference, MongoClient } from \"mongodb\";\nimport { URL } from \"url\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nconst DEFAULT_HOSTS = process.env.MONGOKU_DEFAULT_HOST ? process.env.MONGOKU_DEFAULT_HOST.split(\";\") : [\"localhost:27017\"];\nconst DATABASE_FILE = process.env.MONGOKU_DATABASE_FILE || path.join(os.homedir(), \".mongoku.db\");\nclass HostsManager {\n _hosts = /* @__PURE__ */ new Map();\n // path -> _id\n async load() {\n let first = false;\n try {\n await fs.promises.stat(DATABASE_FILE);\n } catch {\n first = true;\n }\n if (!first) {\n await this._loadFromFile();\n }\n if (first || this._hosts.size === 0) {\n for (const hostname of DEFAULT_HOSTS) {\n this._hosts.set(hostname, this._generateId());\n }\n await this._saveToFile();\n }\n }\n async _loadFromFile() {\n const content = await fs.promises.readFile(DATABASE_FILE, \"utf8\");\n const lines = content.trim().split(\"\\n\").filter((line) => line.trim());\n const newHosts = /* @__PURE__ */ new Map();\n for (const line of lines) {\n const host = JSON.parse(line);\n if (host && typeof host.path === \"string\") {\n const id = host._id || this._generateId();\n newHosts.set(host.path, id);\n }\n }\n this._hosts = newHosts;\n }\n async _saveToFile() {\n const lines = Array.from(this._hosts).map(([hostPath, id]) => JSON.stringify({ path: hostPath, _id: id }));\n await fs.promises.writeFile(DATABASE_FILE, lines.join(\"\\n\") + \"\\n\", \"utf8\");\n }\n _generateId() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let result = \"\";\n for (let i = 0; i < 16; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n async getHosts() {\n return Array.from(this._hosts).map(([hostPath, id]) => ({ path: hostPath, _id: id }));\n }\n getHost(name) {\n return this._hosts.get(name);\n }\n async add(hostPath) {\n let id = this._hosts.get(hostPath);\n if (!id) {\n id = this._generateId();\n this._hosts.set(hostPath, id);\n }\n await this._saveToFile();\n return id;\n }\n async remove(hostPath) {\n const toRemove = Array.from(this._hosts.keys()).filter((existingPath) => {\n try {\n const regex = new RegExp(hostPath);\n return existingPath === hostPath || regex.test(existingPath);\n } catch {\n return existingPath === hostPath;\n }\n });\n for (const host of toRemove) {\n this._hosts.delete(host);\n }\n await this._saveToFile();\n }\n}\nasync function getCollectionJson(collection, type) {\n const stats = {\n size: 0,\n count: 0,\n avgObjSize: 0,\n storageSize: 0,\n capped: false,\n nindexes: 0,\n totalIndexSize: 0,\n indexSizes: {}\n };\n if (type !== \"view\") {\n const agg = await collection.aggregate([\n {\n $collStats: {\n storageStats: {},\n count: {}\n }\n }\n ]).next().catch(() => null);\n if (agg) {\n stats.size = agg.storageStats.size;\n stats.count = agg.storageStats.count;\n stats.avgObjSize = Math.round(agg.storageStats.size / agg.storageStats.count);\n stats.storageSize = agg.storageStats.storageSize;\n stats.capped = agg.storageStats.capped;\n stats.nindexes = agg.storageStats.nindexes;\n stats.totalIndexSize = agg.storageStats.totalIndexSize;\n stats.indexSizes = agg.storageStats.indexSizes;\n }\n }\n let indexes = [];\n if (type !== \"view\") {\n try {\n const indexList = await collection.listIndexes().toArray();\n indexes = indexList.map((index) => ({\n name: index.name,\n key: index.key,\n size: stats.indexSizes[index.name] || 0\n }));\n } catch {\n indexes = Object.entries(stats.indexSizes).map(([name, size]) => ({\n name,\n size\n }));\n }\n }\n return {\n name: collection.collectionName,\n size: (stats.storageSize ?? 0) + (stats.totalIndexSize ?? 0),\n dataSize: stats.size,\n count: stats.count,\n avgObjSize: stats.avgObjSize ?? 0,\n storageSize: stats.storageSize ?? 0,\n capped: stats.capped,\n nIndexes: stats.nindexes,\n totalIndexSize: stats.totalIndexSize ?? 0,\n indexSizes: stats.indexSizes,\n indexes\n };\n}\nasync function extractNodesFromConnectionString(connectionString) {\n const url = new URL(connectionString);\n if (url.protocol === \"mongodb+srv:\") {\n const hostname = url.hostname;\n const srvRecords = await resolveSrv(`_mongodb._tcp.${hostname}`);\n return srvRecords.sort((a, b) => a.priority - b.priority || b.weight - a.weight).map((record) => `${record.name}:${record.port}`).sort();\n }\n if (url.protocol === \"mongodb:\") {\n const hostsString = url.host;\n if (!hostsString) {\n throw new Error(\"No hosts found in connection string\");\n }\n return hostsString.split(\",\").map((host) => host.trim()).filter((host) => host.length > 0).sort();\n }\n throw new TypeError(`Unsupported protocol: ${url.protocol}`);\n}\nclass MongoClientWithMappings extends MongoClient {\n url;\n mappings = {};\n _id;\n name;\n constructor(url, _id, name, readPreference) {\n super(url, readPreference ? { readPreference } : {});\n this.url = url;\n this._id = _id;\n this.name = name;\n }\n async getMappings(dbName, collectionName, opts) {\n if (opts?.forceRefresh || !this.mappings[dbName]?.[collectionName]) {\n const mappings = await this.db(dbName).collection(\"mongoku.mappings\").findOne({ _id: collectionName });\n this.mappings[dbName] ??= {};\n this.mappings[dbName][collectionName] = mappings?.mappings ?? {};\n }\n return this.mappings[dbName][collectionName];\n }\n clearMappingsCache(dbName, collectionName) {\n delete this.mappings[dbName][collectionName];\n }\n}\nclass MongoConnections {\n /**\n * Todo: better system where we can have mutiple servers with same hostname, and labels for each server that\n * would be displayed in the UI instead of the hostname.\n */\n clients = /* @__PURE__ */ new Map();\n // _id -> MongoClientWithMappings\n clientIds = /* @__PURE__ */ new Map();\n // hostname -> _id\n hostsManager;\n countTimeout = parseInt(process.env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;\n queryTimeout = process.env.MONGOKU_QUERY_TIMEOUT ? parseInt(process.env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;\n excludedDatabases;\n readPreference;\n constructor() {\n this.hostsManager = new HostsManager();\n const excludeEnv = process.env.MONGOKU_EXCLUDE_DATABASES || \"\";\n this.excludedDatabases = new Set(\n excludeEnv.split(\",\").map((db) => db.trim()).filter((db) => db.length > 0)\n );\n const readPrefMode = process.env.MONGOKU_READ_PREFERENCE;\n if (readPrefMode) {\n let tags;\n if (process.env.MONGOKU_READ_PREFERENCE_TAGS) {\n try {\n tags = JSON.parse(process.env.MONGOKU_READ_PREFERENCE_TAGS);\n } catch (err) {\n logger.error(\"Failed to parse MONGOKU_READ_PREFERENCE_TAGS:\", err);\n }\n }\n this.readPreference = tags ? new ReadPreference(readPrefMode, tags) : new ReadPreference(readPrefMode);\n logger.log(`Read preference configured: ${readPrefMode}${tags ? ` with tags ${JSON.stringify(tags)}` : \"\"}`);\n }\n }\n async initialize() {\n await this.hostsManager.load();\n const hosts = await this.hostsManager.getHosts();\n for (const host of hosts) {\n const urlStr = host.path.startsWith(\"mongodb\") ? host.path : `mongodb://${host.path}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || host.path;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, host._id, hostname, this.readPreference);\n this.clients.set(host._id, client);\n this.clientIds.set(hostname, host._id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${host.path}:`, err);\n }\n }\n }\n getClient(name) {\n const clientId = this.clientIds.get(name) || this.clientIds.get(`${name}:27017`);\n if (!clientId) {\n throw new Error(`Client not found: ${name}`);\n }\n const client = this.clients.get(clientId);\n if (!client) {\n throw new Error(`Client not found: ${name}`);\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.values()).map((client) => ({\n name: client.name,\n _id: client._id,\n client\n }));\n }\n getCountTimeout() {\n return this.countTimeout;\n }\n getQueryTimeout() {\n return this.queryTimeout;\n }\n filterDatabases(databases) {\n if (this.excludedDatabases.size === 0) {\n return databases;\n }\n return databases.filter((db) => !this.excludedDatabases.has(db.name));\n }\n async addServer(hostPath) {\n const id = await this.hostsManager.add(hostPath);\n const urlStr = hostPath.startsWith(\"mongodb\") ? hostPath : `mongodb://${hostPath}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || hostPath;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, id, hostname, this.readPreference);\n this.clients.set(id, client);\n this.clientIds.set(hostname, id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${hostPath}:`, err);\n throw err;\n }\n }\n async removeServer(name) {\n await this.hostsManager.remove(name);\n this.clients.get(name)?.close().catch((err) => logger.error(`Error closing client ${name}:`, err));\n this.clients.delete(name);\n this.clientIds.delete(name);\n }\n async reconnectClient(id) {\n const oldClient = this.clients.get(id);\n if (!oldClient) {\n throw new Error(`Client not found: ${id}`);\n }\n oldClient.close().catch((err) => logger.error(`Error closing old client ${id}:`, err));\n const newClient = new MongoClientWithMappings(oldClient.url, id, oldClient.name, this.readPreference);\n this.clients.set(id, newClient);\n await newClient.connect();\n }\n /**\n * Get the list of nodes from a server's connection string\n */\n async getServerNodes(serverId) {\n const client = this.getClient(serverId);\n return extractNodesFromConnectionString(client.url);\n }\n /**\n * Fetch index stats from a specific node using directConnection\n */\n async getIndexStatsFromNode(serverId, node, database, collection) {\n const client = this.getClient(serverId);\n const url = new URL(client.url);\n const directUrl = new URL(url.toString());\n directUrl.protocol = \"mongodb:\";\n directUrl.host = node;\n directUrl.searchParams.set(\"directConnection\", \"true\");\n if (url.searchParams.has(\"tls\") || url.searchParams.has(\"ssl\") || url.protocol === \"mongodb+srv:\") {\n directUrl.searchParams.set(\"tls\", \"true\");\n }\n let nodeClient = null;\n try {\n nodeClient = new MongoClient(directUrl.toString());\n await nodeClient.connect();\n const coll = nodeClient.db(database).collection(collection);\n const statsResult = await coll.aggregate([{ $indexStats: {} }]).toArray();\n const indexStats = Object.fromEntries(\n statsResult.map((stat) => [\n stat.name,\n {\n ops: stat.accesses?.ops || 0,\n since: stat.accesses?.since || /* @__PURE__ */ new Date(),\n host: stat.host || node\n }\n ])\n );\n return indexStats;\n } finally {\n if (nodeClient) {\n await nodeClient.close();\n }\n }\n }\n}\nlet mongoConnections = null;\nlet initPromise = null;\nasync function getMongo() {\n if (!mongoConnections) {\n if (!initPromise) {\n initPromise = (async () => {\n mongoConnections = new MongoConnections();\n await mongoConnections.initialize();\n return mongoConnections;\n })();\n }\n return initPromise;\n }\n return mongoConnections;\n}\nexport {\n getCollectionJson as a,\n getMongo as g\n};\n"],"names":[],"mappings":";;;;;;;;AAOA,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC1H,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC;AACjG,MAAM,YAAY,CAAC;AACnB,EAAE,MAAM,mBAAmB,IAAI,GAAG,EAAE;AACpC;AACA,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,IAAI;AACR,MAAM,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3C,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,KAAK,GAAG,IAAI;AAClB,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,MAAM,IAAI,CAAC,aAAa,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;AACzC,MAAM,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;AAC5C,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACrD,MAAM;AACN,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE;AAC9B,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,aAAa,GAAG;AACxB,IAAI,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;AACrE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1E,IAAI,MAAM,QAAQ,mBAAmB,IAAI,GAAG,EAAE;AAC9C,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjD,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;AACjD,QAAQ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC1B,EAAE;AACF,EAAE,MAAM,WAAW,GAAG;AACtB,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9G,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;AAC/E,EAAE;AACF,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,KAAK,GAAG,gEAAgE;AAClF,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtE,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG;AACnB,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AACzF,EAAE;AACF,EAAE,OAAO,CAAC,IAAI,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,EAAE;AACF,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE;AACtB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;AACnC,IAAI;AACJ,IAAI,MAAM,IAAI,CAAC,WAAW,EAAE;AAC5B,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,MAAM,MAAM,CAAC,QAAQ,EAAE;AACzB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK;AAC7E,MAAM,IAAI;AACV,QAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC1C,QAAQ,OAAO,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACpE,MAAM,CAAC,CAAC,MAAM;AACd,QAAQ,OAAO,YAAY,KAAK,QAAQ;AACxC,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACjC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,IAAI;AACJ,IAAI,MAAM,IAAI,CAAC,WAAW,EAAE;AAC5B,EAAE;AACF;AACA,eAAe,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE;AACnD,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,cAAc,EAAE,CAAC;AACrB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AACvB,IAAI,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC;AAC3C,MAAM;AACN,QAAQ,UAAU,EAAE;AACpB,UAAU,YAAY,EAAE,EAAE;AAC1B,UAAU,KAAK,EAAE;AACjB;AACA;AACA,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AAC/B,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI;AACxC,MAAM,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK;AAC1C,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AACnF,MAAM,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,WAAW;AACtD,MAAM,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM;AAC5C,MAAM,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ;AAChD,MAAM,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc;AAC5D,MAAM,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU;AACpD,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,OAAO,GAAG,EAAE;AAClB,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AACvB,IAAI,IAAI;AACR,MAAM,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;AAChE,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAC1C,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,QAAQ,GAAG,EAAE,KAAK,CAAC,GAAG;AACtB,QAAQ,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AAC9C,OAAO,CAAC,CAAC;AACT,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM;AACxE,QAAQ,IAAI;AACZ,QAAQ;AACR,OAAO,CAAC,CAAC;AACT,IAAI;AACJ,EAAE;AACF,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,UAAU,CAAC,cAAc;AACnC,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;AAChE,IAAI,QAAQ,EAAE,KAAK,CAAC,IAAI;AACxB,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK;AACtB,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;AACrC,IAAI,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;AACvC,IAAI,MAAM,EAAE,KAAK,CAAC,MAAM;AACxB,IAAI,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC5B,IAAI,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,CAAC;AAC7C,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU;AAChC,IAAI;AACJ,GAAG;AACH;AACA,eAAe,gCAAgC,CAAC,gBAAgB,EAAE;AAClE,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC;AACvC,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc,EAAE;AACvC,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;AACjC,IAAI,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpE,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5I,EAAE;AACF,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE;AACnC,IAAI,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI;AAChC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAC5D,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AACrG,EAAE;AACF,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D;AACA,MAAM,uBAAuB,SAAS,WAAW,CAAC;AAClD,EAAE,GAAG;AACL,EAAE,QAAQ,GAAG,EAAE;AACf,EAAE,GAAG;AACL,EAAE,IAAI;AACN,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE;AAC9C,IAAI,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;AACxD,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,EAAE;AACF,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;AAClD,IAAI,IAAI,IAAI,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE;AACxE,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AAC5G,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;AAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,GAAG,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACtE,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;AAChD,EAAE;AACF,EAAE,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;AAChD,EAAE;AACF;AACA,MAAM,gBAAgB,CAAC;AACvB;AACA;AACA;AACA;AACA,EAAE,OAAO,mBAAmB,IAAI,GAAG,EAAE;AACrC;AACA,EAAE,SAAS,mBAAmB,IAAI,GAAG,EAAE;AACvC;AACA,EAAE,YAAY;AACd,EAAE,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,IAAI,GAAG;AACvE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,GAAG,MAAM;AAC7G,EAAE,iBAAiB;AACnB,EAAE,cAAc;AAChB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE;AAC1C,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;AAClE,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG;AACpC,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC;AAC/E,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB;AAC5D,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,IAAI;AACd,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE;AACpD,QAAQ,IAAI;AACZ,UAAU,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AACrE,QAAQ,CAAC,CAAC,OAAO,GAAG,EAAE;AACtB,UAAU,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC;AAC5E,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC;AAC5G,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,4BAA4B,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClH,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAClC,IAAI,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACpD,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3F,MAAM,IAAI;AACV,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AACnC,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9C,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACzC,UAAU,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;AACrG,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AAC5C,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC;AAChD,QAAQ;AACR,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACvE,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,CAAC,IAAI,EAAE;AAClB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpF,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,WAAW,GAAG;AAChB,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AAC9D,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI;AACvB,MAAM,GAAG,EAAE,MAAM,CAAC,GAAG;AACrB,MAAM;AACN,KAAK,CAAC,CAAC;AACP,EAAE;AACF,EAAE,eAAe,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY;AAC5B,EAAE;AACF,EAAE,eAAe,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,YAAY;AAC5B,EAAE;AACF,EAAE,eAAe,CAAC,SAAS,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE;AAC3C,MAAM,OAAO,SAAS;AACtB,IAAI;AACJ,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACzE,EAAE;AACF,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE;AAC5B,IAAI,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpD,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACtF,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AACjC,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,QAAQ;AAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvC,QAAQ,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;AAC7F,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;AACxC,MAAM;AACN,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACpE,MAAM,MAAM,GAAG;AACf,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,YAAY,CAAC,IAAI,EAAE;AAC3B,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/B,EAAE;AACF,EAAE,MAAM,eAAe,CAAC,EAAE,EAAE;AAC5B,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,IAAI;AACJ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1F,IAAI,MAAM,SAAS,GAAG,IAAI,uBAAuB,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACzG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;AACnC,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;AAC7B,EAAE;AACF;AACA;AACA;AACA,EAAE,MAAM,cAAc,CAAC,QAAQ,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,IAAI,OAAO,gCAAgC,CAAC,MAAM,CAAC,GAAG,CAAC;AACvD,EAAE;AACF;AACA;AACA;AACA,EAAE,MAAM,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;AACpE,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACnC,IAAI,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7C,IAAI,SAAS,CAAC,QAAQ,GAAG,UAAU;AACnC,IAAI,SAAS,CAAC,IAAI,GAAG,IAAI;AACzB,IAAI,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AAC1D,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc,EAAE;AACvG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG,IAAI;AACzB,IAAI,IAAI;AACR,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AACxD,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE;AAChC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AAC/E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AAC3C,QAAQ,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAClC,UAAU,IAAI,CAAC,IAAI;AACnB,UAAU;AACV,YAAY,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AACxC,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,oBAAoB,IAAI,IAAI,EAAE;AACrE,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI;AAC/B;AACA,SAAS;AACT,OAAO;AACP,MAAM,OAAO,UAAU;AACvB,IAAI,CAAC,SAAS;AACd,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,MAAM,UAAU,CAAC,KAAK,EAAE;AAChC,MAAM;AACN,IAAI;AACJ,EAAE;AACF;AACA,IAAI,gBAAgB,GAAG,IAAI;AAC3B,IAAI,WAAW,GAAG,IAAI;AACtB,eAAe,QAAQ,GAAG;AAC1B,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzB,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,WAAW,GAAG,CAAC,YAAY;AACjC,QAAQ,gBAAgB,GAAG,IAAI,gBAAgB,EAAE;AACjD,QAAQ,MAAM,gBAAgB,CAAC,UAAU,EAAE;AAC3C,QAAQ,OAAO,gBAAgB;AAC/B,MAAM,CAAC,GAAG;AACV,IAAI;AACJ,IAAI,OAAO,WAAW;AACtB,EAAE;AACF,EAAE,OAAO,gBAAgB;AACzB;;;;"}
@@ -1,4 +1,4 @@
1
- export { m as default } from './servers.remote-CGies_Na.js';
1
+ export { m as default } from './servers.remote-B1eorl4A.js';
2
2
  import './utils-D1ahxout.js';
3
3
  import './shared-CQd3A1I4.js';
4
4
  import './index-Djsj11qr.js';
@@ -9,11 +9,11 @@ import 'mongodb';
9
9
  import './logger-KF6KpVP6.js';
10
10
  import 'async_hooks';
11
11
  import 'node:util';
12
- import './mongo-BHk5yAj9.js';
12
+ import './mongo-Ndoh6fs5.js';
13
13
  import 'dns/promises';
14
14
  import 'url';
15
15
  import 'node:fs';
16
16
  import 'node:os';
17
17
  import 'node:path';
18
18
  import 'zod';
19
- //# sourceMappingURL=remote-xxtqbu-ETLGkdRu.js.map
19
+ //# sourceMappingURL=remote-xxtqbu-fbBqzvFu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-xxtqbu-fbBqzvFu.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ import { e as error } from './index-Djsj11qr.js';
4
4
  import { p as parseJSON, v as validateAggregationPipeline, i as isEmptyObject } from './jsonParser-C3QUcODD.js';
5
5
  import { J as JsonEncoder } from './JsonEncoder-B8eJRYZ4.js';
6
6
  import { l as logger } from './logger-KF6KpVP6.js';
7
- import { g as getMongo } from './mongo-BHk5yAj9.js';
7
+ import { g as getMongo } from './mongo-Ndoh6fs5.js';
8
8
  import { ObjectId, ReadPreference } from 'mongodb';
9
9
  import { z } from 'zod';
10
10
 
@@ -296,6 +296,9 @@ const m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
296
296
  get countDocuments() {
297
297
  return countDocuments;
298
298
  },
299
+ get countDocumentsByTimeRange() {
300
+ return countDocumentsByTimeRange;
301
+ },
299
302
  get createIndex() {
300
303
  return createIndex;
301
304
  },
@@ -317,6 +320,9 @@ const m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
317
320
  get dropIndex() {
318
321
  return dropIndex;
319
322
  },
323
+ get explainQuery() {
324
+ return explainQuery;
325
+ },
320
326
  get fetchMappedDocument() {
321
327
  return fetchMappedDocument;
322
328
  },
@@ -818,10 +824,22 @@ const fetchMappedDocument = query(
818
824
  server: z.string(),
819
825
  database: z.string(),
820
826
  mappings: z.array(
821
- z.object({
822
- collection: z.string(),
823
- on: z.string()
824
- })
827
+ z.union([
828
+ z.object({
829
+ type: z.literal("document"),
830
+ collection: z.string(),
831
+ on: z.string()
832
+ }),
833
+ z.object({
834
+ type: z.literal("url"),
835
+ template: z.string()
836
+ }),
837
+ // Legacy format (backwards compatibility)
838
+ z.object({
839
+ collection: z.string(),
840
+ on: z.string()
841
+ })
842
+ ])
825
843
  ),
826
844
  value: z.unknown()
827
845
  }),
@@ -829,20 +847,31 @@ const fetchMappedDocument = query(
829
847
  const mongo = await getMongo();
830
848
  const client = mongo.getClient(server);
831
849
  const decodedValue = JsonEncoder.decode(value);
832
- for (const mapping of mappings) {
850
+ const documentMappings = mappings.filter((m2) => {
851
+ if ("type" in m2) {
852
+ return m2.type === "document";
853
+ }
854
+ return "collection" in m2 && "on" in m2;
855
+ });
856
+ for (const mapping of documentMappings) {
833
857
  try {
834
- const coll = client.db(database).collection(mapping.collection);
835
- const query2 = { [mapping.on]: decodedValue };
858
+ if ("type" in mapping && mapping.type !== "document") continue;
859
+ const collection = "collection" in mapping ? mapping.collection : "";
860
+ const on = "on" in mapping ? mapping.on : "_id";
861
+ const coll = client.db(database).collection(collection);
862
+ const query2 = { [on]: decodedValue };
836
863
  const document = await coll.findOne(query2, { maxTimeMS: mongo.getQueryTimeout() });
837
864
  if (document) {
838
865
  return {
839
866
  data: JsonEncoder.encode(document),
840
- collection: mapping.collection,
867
+ collection,
841
868
  error: null
842
869
  };
843
870
  }
844
871
  } catch (err) {
845
- logger.error(`Error fetching mapped document from ${mapping.collection}.${mapping.on}:`, err);
872
+ const collection = "collection" in mapping ? mapping.collection : "unknown";
873
+ const on = "on" in mapping ? mapping.on : "_id";
874
+ logger.error(`Error fetching mapped document from ${collection}.${on}:`, err);
846
875
  continue;
847
876
  }
848
877
  }
@@ -1002,11 +1031,133 @@ const getIndexStatsFromNodes = query(
1002
1031
  }
1003
1032
  }
1004
1033
  );
1034
+ const explainQuery = query(
1035
+ z.object({
1036
+ server: z.string(),
1037
+ database: z.string(),
1038
+ collection: z.string(),
1039
+ query: z.string().default("{}"),
1040
+ sort: z.string().default("{}"),
1041
+ project: z.string().default("{}"),
1042
+ skip: z.number().int().default(0),
1043
+ limit: z.number().int().default(20),
1044
+ mode: z.enum(["query", "aggregation"]).default("query"),
1045
+ verbosity: z.enum(["queryPlanner", "executionStats", "allPlansExecution"]).default("executionStats")
1046
+ }),
1047
+ async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, verbosity }) => {
1048
+ const queryDoc = (() => {
1049
+ try {
1050
+ return parseJSON(queryStr, { allowArray: true });
1051
+ } catch (err) {
1052
+ error(400, `Invalid query: ${err}`);
1053
+ }
1054
+ })();
1055
+ try {
1056
+ parseJSON(sort);
1057
+ } catch (err) {
1058
+ error(400, `Invalid sort: ${err}`);
1059
+ }
1060
+ try {
1061
+ parseJSON(project);
1062
+ } catch (err) {
1063
+ error(400, `Invalid project: ${err}`);
1064
+ }
1065
+ const sortDoc = parseJSON(sort);
1066
+ const projectDoc = parseJSON(project);
1067
+ const mongo = await getMongo();
1068
+ const client = mongo.getClient(server);
1069
+ const coll = client.db(database).collection(collection);
1070
+ try {
1071
+ let explainResult;
1072
+ if (mode === "aggregation" && Array.isArray(queryDoc)) {
1073
+ try {
1074
+ validateAggregationPipeline(queryDoc);
1075
+ } catch (err) {
1076
+ error(400, `Invalid aggregation pipeline: ${err instanceof Error ? err.message : String(err)}`);
1077
+ }
1078
+ const pipeline = JsonEncoder.decode(queryDoc);
1079
+ const fullPipeline = [
1080
+ ...pipeline,
1081
+ ...isEmptyObject(projectDoc) ? [] : [{ $project: projectDoc }],
1082
+ ...isEmptyObject(sortDoc) ? [] : [{ $sort: sortDoc }],
1083
+ { $skip: skip },
1084
+ { $limit: limit }
1085
+ ];
1086
+ explainResult = await coll.aggregate(fullPipeline).explain(verbosity);
1087
+ } else {
1088
+ explainResult = await coll.find(JsonEncoder.decode(queryDoc)).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).skip(skip).limit(limit).explain(verbosity);
1089
+ }
1090
+ const plainResult = JSON.parse(JSON.stringify(explainResult));
1091
+ return {
1092
+ data: plainResult,
1093
+ error: null
1094
+ };
1095
+ } catch (err) {
1096
+ logger.error("Error explaining query:", err);
1097
+ return {
1098
+ data: null,
1099
+ error: `Failed to explain query: ${err instanceof Error ? err.message : String(err)}`
1100
+ };
1101
+ }
1102
+ }
1103
+ );
1104
+ const countDocumentsByTimeRange = query(
1105
+ z.object({
1106
+ server: z.string(),
1107
+ database: z.string(),
1108
+ collection: z.string(),
1109
+ timeRanges: z.array(
1110
+ z.object({
1111
+ label: z.string(),
1112
+ days: z.number()
1113
+ })
1114
+ )
1115
+ }),
1116
+ async ({ server, database, collection, timeRanges }) => {
1117
+ const mongo = await getMongo();
1118
+ const client = mongo.getClient(server);
1119
+ const coll = client.db(database).collection(collection);
1120
+ try {
1121
+ const results = await Promise.all(
1122
+ timeRanges.map(async ({ label, days }) => {
1123
+ const dateThreshold = /* @__PURE__ */ new Date();
1124
+ dateThreshold.setDate(dateThreshold.getDate() - days);
1125
+ const objectIdThreshold = ObjectId.createFromTime(Math.floor(dateThreshold.getTime() / 1e3));
1126
+ try {
1127
+ const count = await coll.countDocuments(
1128
+ { _id: { $gte: objectIdThreshold } },
1129
+ { maxTimeMS: mongo.getCountTimeout() }
1130
+ );
1131
+ return { label, days, count, error: null };
1132
+ } catch (err) {
1133
+ logger.error(`Error counting documents for ${label}:`, err);
1134
+ return {
1135
+ label,
1136
+ days,
1137
+ count: null,
1138
+ error: err instanceof Error ? err.message : String(err)
1139
+ };
1140
+ }
1141
+ })
1142
+ );
1143
+ return {
1144
+ data: results,
1145
+ error: null
1146
+ };
1147
+ } catch (err) {
1148
+ logger.error("Error counting documents by time range:", err);
1149
+ return {
1150
+ data: null,
1151
+ error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`
1152
+ };
1153
+ }
1154
+ }
1155
+ );
1005
1156
  init_remote_functions(m, "src/api/servers.remote.ts", "xxtqbu");
1006
1157
  for (const [name, fn] of Object.entries(m)) {
1007
1158
  fn.__.id = "xxtqbu/" + name;
1008
1159
  fn.__.name = name;
1009
1160
  }
1010
1161
 
1011
- export { deleteDocument as d, fetchMappedDocument as f, m, updateDocument as u };
1012
- //# sourceMappingURL=servers.remote-CGies_Na.js.map
1162
+ export { deleteDocument as d, explainQuery as e, fetchMappedDocument as f, m, updateDocument as u };
1163
+ //# sourceMappingURL=servers.remote-B1eorl4A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servers.remote-B1eorl4A.js","sources":["../../../node_modules/.pnpm/@sveltejs+kit@2.47.2_@sveltejs+vite-plugin-svelte@6.2.1_svelte@5.41.1_vite@7.1.11_@type_af5bcbb3f06a79268e5ce5060889dfbf/node_modules/@sveltejs/kit/src/exports/internal/remote-functions.js","../../../.svelte-kit/adapter-node/chunks/query.js","../../../.svelte-kit/adapter-node/chunks/servers.remote.js"],"sourcesContent":["/** @import { RemoteInfo } from 'types' */\n\n/** @type {RemoteInfo['type'][]} */\nconst types = ['command', 'form', 'prerender', 'query', 'query_batch'];\n\n/**\n * @param {Record<string, any>} module\n * @param {string} file\n * @param {string} hash\n */\nexport function init_remote_functions(module, file, hash) {\n\tif (module.default) {\n\t\tthrow new Error(\n\t\t\t`Cannot export \\`default\\` from a remote module (${file}) — please use named exports instead`\n\t\t);\n\t}\n\n\tfor (const [name, fn] of Object.entries(module)) {\n\t\tif (!types.includes(fn?.__?.type)) {\n\t\t\tthrow new Error(\n\t\t\t\t`\\`${name}\\` exported from ${file} is invalid — all exports from this file must be remote functions`\n\t\t\t);\n\t\t}\n\n\t\tfn.__.id = `${hash}/${name}`;\n\t\tfn.__.name = name;\n\t}\n}\n","import { get_request_store, with_request_store } from \"@sveltejs/kit/internal/server\";\nimport { j as stringify_remote_arg, k as parse, f as create_remote_cache_key } from \"./shared.js\";\nimport { p as prerendering } from \"./environment.js\";\nimport { error } from \"@sveltejs/kit\";\nfunction create_validator(validate_or_fn, maybe_fn) {\n if (!maybe_fn) {\n return (arg) => {\n if (arg !== void 0) {\n error(400, \"Bad Request\");\n }\n };\n }\n if (validate_or_fn === \"unchecked\") {\n return (arg) => arg;\n }\n if (\"~standard\" in validate_or_fn) {\n return async (arg) => {\n const { event, state } = get_request_store();\n const validate = validate_or_fn[\"~standard\"].validate;\n const result = await validate(arg);\n if (result.issues) {\n error(\n 400,\n await state.handleValidationError({\n issues: result.issues,\n event\n })\n );\n }\n return result.value;\n };\n }\n throw new Error(\n 'Invalid validator passed to remote function. Expected \"unchecked\" or a Standard Schema (https://standardschema.dev)'\n );\n}\nasync function get_response(info, arg, state, get_result) {\n await 0;\n const cache = get_cache(info, state);\n return cache[stringify_remote_arg(arg, state.transport)] ??= get_result();\n}\nfunction parse_remote_response(data, transport) {\n const revivers = {};\n for (const key in transport) {\n revivers[key] = transport[key].decode;\n }\n return parse(data, revivers);\n}\nasync function run_remote_function(event, state, allow_cookies, arg, validate, fn) {\n const store = {\n event: {\n ...event,\n setHeaders: () => {\n throw new Error(\"setHeaders is not allowed in remote functions\");\n },\n cookies: {\n ...event.cookies,\n set: (name, value, opts) => {\n if (!allow_cookies) {\n throw new Error(\"Cannot set cookies in `query` or `prerender` functions\");\n }\n if (opts.path && !opts.path.startsWith(\"/\")) {\n throw new Error(\"Cookies set in remote functions must have an absolute path\");\n }\n return event.cookies.set(name, value, opts);\n },\n delete: (name, opts) => {\n if (!allow_cookies) {\n throw new Error(\"Cannot delete cookies in `query` or `prerender` functions\");\n }\n if (opts.path && !opts.path.startsWith(\"/\")) {\n throw new Error(\"Cookies deleted in remote functions must have an absolute path\");\n }\n return event.cookies.delete(name, opts);\n }\n }\n },\n state: {\n ...state,\n is_in_remote_function: true\n }\n };\n const validated = await with_request_store(store, () => validate(arg));\n return with_request_store(store, () => fn(validated));\n}\nfunction get_cache(info, state = get_request_store().state) {\n let cache = state.remote_data?.get(info);\n if (cache === void 0) {\n cache = {};\n (state.remote_data ??= /* @__PURE__ */ new Map()).set(info, cache);\n }\n return cache;\n}\n// @__NO_SIDE_EFFECTS__\nfunction command(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = { type: \"command\", id: \"\", name: \"\" };\n const wrapper = (arg) => {\n const { event, state } = get_request_store();\n if (state.is_endpoint_request) {\n if (![\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(event.request.method)) {\n throw new Error(\n `Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) from a ${event.request.method} handler`\n );\n }\n } else if (!event.isRemoteRequest) {\n throw new Error(\n `Cannot call a command (\\`${__.name}(${maybe_fn ? \"...\" : \"\"})\\`) during server-side rendering`\n );\n }\n state.refreshes ??= {};\n const promise = Promise.resolve(run_remote_function(event, state, true, arg, validate, fn));\n promise.updates = () => {\n throw new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);\n };\n return (\n /** @type {ReturnType<RemoteCommand<Input, Output>>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n Object.defineProperty(wrapper, \"pending\", {\n get: () => 0\n });\n return wrapper;\n}\n// @__NO_SIDE_EFFECTS__\nfunction query(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = { type: \"query\", id: \"\", name: \"\" };\n const wrapper = (arg) => {\n if (prerendering) {\n throw new Error(\n `Cannot call query '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`\n );\n }\n const { event, state } = get_request_store();\n const promise = get_response(\n __,\n arg,\n state,\n () => run_remote_function(event, state, false, arg, validate, fn)\n );\n promise.catch(() => {\n });\n promise.set = (value) => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call set on query '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n if (__.id) {\n const cache = get_cache(__, state2);\n const key = stringify_remote_arg(arg, state2.transport);\n refreshes[create_remote_cache_key(__.id, key)] = cache[key] = Promise.resolve(value);\n }\n };\n promise.refresh = () => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call refresh on query '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state2.transport));\n refreshes[cache_key] = promise;\n return promise.then(() => {\n });\n };\n promise.withOverride = () => {\n throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n };\n return (\n /** @type {RemoteQuery<Output>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n return wrapper;\n}\n// @__NO_SIDE_EFFECTS__\nfunction batch(validate_or_fn, maybe_fn) {\n const fn = maybe_fn ?? validate_or_fn;\n const validate = create_validator(validate_or_fn, maybe_fn);\n const __ = {\n type: \"query_batch\",\n id: \"\",\n name: \"\",\n run: (args) => {\n const { event, state } = get_request_store();\n return run_remote_function(\n event,\n state,\n false,\n args,\n (array) => Promise.all(array.map(validate)),\n fn\n );\n }\n };\n let batching = { args: [], resolvers: [] };\n const wrapper = (arg) => {\n if (prerendering) {\n throw new Error(\n `Cannot call query.batch '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`\n );\n }\n const { event, state } = get_request_store();\n const promise = get_response(__, arg, state, () => {\n return new Promise((resolve, reject) => {\n batching.args.push(arg);\n batching.resolvers.push({ resolve, reject });\n if (batching.args.length > 1) return;\n setTimeout(async () => {\n const batched = batching;\n batching = { args: [], resolvers: [] };\n try {\n const get_result = await run_remote_function(\n event,\n state,\n false,\n batched.args,\n (array) => Promise.all(array.map(validate)),\n fn\n );\n for (let i = 0; i < batched.resolvers.length; i++) {\n try {\n batched.resolvers[i].resolve(get_result(batched.args[i], i));\n } catch (error2) {\n batched.resolvers[i].reject(error2);\n }\n }\n } catch (error2) {\n for (const resolver of batched.resolvers) {\n resolver.reject(error2);\n }\n }\n }, 0);\n });\n });\n promise.catch(() => {\n });\n promise.refresh = async () => {\n const { state: state2 } = get_request_store();\n const refreshes = state2.refreshes;\n if (!refreshes) {\n throw new Error(\n `Cannot call refresh on query.batch '${__.name}' because it is not executed in the context of a command/form remote function`\n );\n }\n const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state2.transport));\n refreshes[cache_key] = await /** @type {Promise<any>} */\n promise;\n };\n promise.withOverride = () => {\n throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);\n };\n return (\n /** @type {RemoteQuery<Output>} */\n promise\n );\n };\n Object.defineProperty(wrapper, \"__\", { value: __ });\n return wrapper;\n}\nObject.defineProperty(query, \"batch\", { value: batch, enumerable: true });\nexport {\n get_response as a,\n command as b,\n create_validator as c,\n get_cache as g,\n parse_remote_response as p,\n query as q,\n run_remote_function as r\n};\n","import \"@sveltejs/kit/internal/server\";\nimport \"./utils.js\";\nimport { b as command, q as query } from \"./query.js\";\nimport { error } from \"@sveltejs/kit\";\nimport { p as parseJSON, v as validateAggregationPipeline, i as isEmptyObject } from \"./jsonParser.js\";\nimport { J as JsonEncoder } from \"./JsonEncoder.js\";\nimport { l as logger } from \"./logger.js\";\nimport { g as getMongo } from \"./mongo.js\";\nimport { ObjectId, ReadPreference } from \"mongodb\";\nimport { z } from \"zod\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nconst m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n get addServer() {\n return addServer;\n },\n get countDocuments() {\n return countDocuments;\n },\n get countDocumentsByTimeRange() {\n return countDocumentsByTimeRange;\n },\n get createIndex() {\n return createIndex;\n },\n get deleteDocument() {\n return deleteDocument;\n },\n get deleteMany() {\n return deleteMany;\n },\n get detectPrimaryNode() {\n return detectPrimaryNode;\n },\n get dropCollection() {\n return dropCollection;\n },\n get dropDatabase() {\n return dropDatabase;\n },\n get dropIndex() {\n return dropIndex;\n },\n get explainQuery() {\n return explainQuery;\n },\n get fetchMappedDocument() {\n return fetchMappedDocument;\n },\n get getIndexStatsFromNodes() {\n return getIndexStatsFromNodes;\n },\n get getIndexStatsWithReadPreference() {\n return getIndexStatsWithReadPreference;\n },\n get getServerNodes() {\n return getServerNodes;\n },\n get hideIndex() {\n return hideIndex;\n },\n get insertDocument() {\n return insertDocument;\n },\n get loadDocuments() {\n return loadDocuments;\n },\n get removeServer() {\n return removeServer;\n },\n get retryConnection() {\n return retryConnection;\n },\n get unhideIndex() {\n return unhideIndex;\n },\n get updateDocument() {\n return updateDocument;\n },\n get updateMany() {\n return updateMany;\n }\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction checkReadOnly() {\n if (process.env.MONGOKU_READ_ONLY_MODE === \"true\") {\n error(403, \"Read-only mode is enabled\");\n }\n}\nfunction sanitizeMongoUrl(url) {\n try {\n const urlObj = new URL(url.startsWith(\"mongodb\") ? url : `mongodb://${url}`);\n if (urlObj.username || urlObj.password) {\n urlObj.username = \"***\";\n urlObj.password = \"***\";\n }\n return urlObj.toString();\n } catch {\n return \"***\";\n }\n}\nconst addServer = command(\n z.object({\n url: z.string()\n }),\n async ({ url }) => {\n logger.log(\"addServer called with payload:\", { url: sanitizeMongoUrl(url) });\n const mongo = await getMongo();\n await mongo.addServer(url);\n return { ok: true };\n }\n);\nconst removeServer = command(z.string(), async (serverName) => {\n logger.log(\"removeServer called with payload:\", { serverName });\n const mongo = await getMongo();\n await mongo.removeServer(serverName);\n return { ok: true };\n});\nconst updateDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string(),\n value: z.unknown(),\n partial: z.boolean().optional().default(false),\n upsert: z.boolean().optional().default(false)\n }),\n async ({ server, database, collection, document, value, partial, upsert }) => {\n logger.log(\"updateDocument called with payload:\", { server, database, collection, document, partial, upsert });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const newValue = JsonEncoder.decode(value);\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n if (partial) {\n await coll.updateOne(\n {\n _id\n },\n { $set: newValue },\n { upsert }\n );\n } else {\n await coll.replaceOne(\n {\n _id\n },\n JsonEncoder.decode(newValue),\n { upsert }\n );\n }\n if (collection === \"mongoku.mappings\") {\n client.clearMappingsCache(database, document);\n }\n return {\n ok: true,\n update: JsonEncoder.encode(newValue)\n };\n }\n);\nconst insertDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string().nullable().optional(),\n value: z.unknown()\n }),\n async ({ server, database, collection, document, value }) => {\n logger.log(\"insertDocument called with payload:\", { server, database, collection, document });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const newValue = JsonEncoder.decode(value);\n if (document !== null && document !== void 0) {\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n newValue._id = _id;\n }\n const res = await coll.insertOne(newValue);\n if (collection === \"mongoku.mappings\" && typeof res.insertedId === \"string\") {\n client.clearMappingsCache(database, res.insertedId);\n }\n return {\n ok: true,\n insert: JsonEncoder.encode(newValue)\n };\n }\n);\nconst deleteDocument = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n document: z.string()\n }),\n async ({ server, database, collection, document }) => {\n logger.log(\"deleteDocument called with payload:\", { server, database, collection, document });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n await client.db(database).collection(collection).deleteOne({\n _id\n });\n if (collection === \"mongoku.mappings\") {\n client.clearMappingsCache(database, document);\n }\n return {\n ok: true\n };\n }\n);\nconst updateMany = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string(),\n update: z.string()\n }),\n async ({ server, database, collection, filter, update }) => {\n logger.log(\"updateMany called with payload:\", { server, database, collection, filter, update });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n const updateDoc = JsonEncoder.decode(parseJSON(update));\n const result = await coll.updateMany(filterDoc, updateDoc);\n return {\n ok: true,\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount\n };\n }\n);\nconst countDocuments = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string()\n }),\n async ({ server, database, collection, filter }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n try {\n const count = await coll.countDocuments(filterDoc, {\n maxTimeMS: mongo.getCountTimeout()\n });\n return {\n data: count,\n error: null\n };\n } catch (err) {\n logger.error(\"Error counting documents:\", err);\n return {\n data: 0,\n error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst deleteMany = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n filter: z.string()\n }),\n async ({ server, database, collection, filter }) => {\n logger.log(\"deleteMany called with payload:\", { server, database, collection, filter });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const filterDoc = JsonEncoder.decode(parseJSON(filter));\n const result = await coll.deleteMany(filterDoc);\n return {\n ok: true,\n deletedCount: result.deletedCount\n };\n }\n);\nconst hideIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"hideIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n collMod: collection,\n index: {\n name: index,\n hidden: true\n }\n });\n return {\n ok: true\n };\n }\n);\nconst unhideIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"unhideIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n collMod: collection,\n index: {\n name: index,\n hidden: false\n }\n });\n return {\n ok: true\n };\n }\n);\nconst createIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n keys: z.string(),\n name: z.string().optional(),\n unique: z.boolean().optional(),\n sparse: z.boolean().optional(),\n partialFilterExpression: z.string().optional(),\n expireAfterSeconds: z.number().optional(),\n background: z.boolean().optional()\n }),\n async ({\n server,\n database,\n collection,\n keys,\n name,\n unique,\n sparse,\n partialFilterExpression,\n expireAfterSeconds,\n background\n }) => {\n logger.log(\"createIndex called with payload:\", { server, database, collection, keys, name, unique, sparse });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n const keysDoc = JsonEncoder.decode(parseJSON(keys));\n const options = {};\n if (name) options.name = name;\n if (unique) options.unique = unique;\n if (sparse) options.sparse = sparse;\n if (partialFilterExpression) {\n options.partialFilterExpression = JsonEncoder.decode(parseJSON(partialFilterExpression));\n }\n if (expireAfterSeconds !== void 0) options.expireAfterSeconds = expireAfterSeconds;\n if (background) options.background = background;\n await coll.createIndex(keysDoc, options);\n return {\n ok: true\n };\n }\n);\nconst dropIndex = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n index: z.string()\n }),\n async ({ server, database, collection, index }) => {\n logger.log(\"dropIndex called with payload:\", { server, database, collection, index });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).command({\n dropIndexes: collection,\n index\n });\n return {\n ok: true\n };\n }\n);\nconst dropCollection = command(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string()\n }),\n async ({ server, database, collection }) => {\n logger.log(\"dropCollection called with payload:\", { server, database, collection });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const db = client.db(database);\n await db.dropCollection(collection);\n return {\n ok: true\n };\n }\n);\nconst dropDatabase = command(\n z.object({\n server: z.string(),\n database: z.string()\n }),\n async ({ server, database }) => {\n logger.log(\"dropDatabase called with payload:\", { server, database });\n checkReadOnly();\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n await client.db(database).dropDatabase();\n return {\n ok: true\n };\n }\n);\nconst retryConnection = command(z.string(), async (serverId) => {\n logger.log(\"retryConnection called with payload:\", { serverId });\n const mongo = await getMongo();\n await mongo.reconnectClient(serverId);\n return { ok: true };\n});\nconst loadDocuments = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n query: z.string().default(\"{}\"),\n sort: z.string().default(\"{}\"),\n project: z.string().default(\"{}\"),\n skip: z.number().int().default(0),\n limit: z.number().int().default(20),\n mode: z.enum([\"query\", \"distinct\", \"aggregation\"]).default(\"query\"),\n field: z.string().optional()\n }),\n async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, field }) => {\n let queryDoc;\n try {\n queryDoc = parseJSON(queryStr, { allowArray: true });\n } catch (err) {\n error(400, `Invalid query: ${err}`);\n }\n try {\n parseJSON(sort);\n } catch (err) {\n error(400, `Invalid sort: ${err}`);\n }\n try {\n parseJSON(project);\n } catch (err) {\n error(400, `Invalid project: ${err}`);\n }\n const sortDoc = parseJSON(sort);\n const projectDoc = parseJSON(project);\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n if (mode === \"distinct\") {\n if (!field) {\n error(400, \"Invalid distinct query: field name is required\");\n }\n try {\n const results = await coll.distinct(field, JsonEncoder.decode(queryDoc), {\n maxTimeMS: mongo.getQueryTimeout()\n });\n return {\n data: results.map((value) => JsonEncoder.encode({ value })),\n error: null,\n isAggregation: false,\n isDistinct: true\n };\n } catch (err) {\n logger.error(\"Error executing distinct:\", err);\n error(500, `Failed to execute distinct: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n if (mode === \"aggregation\" && Array.isArray(queryDoc)) {\n try {\n validateAggregationPipeline(queryDoc);\n } catch (err) {\n error(400, `Invalid aggregation pipeline: ${err instanceof Error ? err.message : String(err)}`);\n }\n const pipeline = JsonEncoder.decode(queryDoc);\n try {\n const results = await coll.aggregate(\n [\n ...pipeline,\n ...isEmptyObject(projectDoc) ? [] : [{ $project: projectDoc }],\n ...isEmptyObject(sortDoc) ? [] : [{ $sort: sortDoc }],\n { $limit: limit },\n { $skip: skip }\n ],\n {\n maxTimeMS: mongo.getQueryTimeout()\n }\n ).map((obj) => JsonEncoder.encode(obj)).toArray();\n return {\n data: results,\n error: null,\n isAggregation: true,\n isDistinct: false\n };\n } catch (err) {\n logger.error(\"Error executing aggregation:\", err);\n error(500, `Failed to execute aggregation: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n try {\n const results = await coll.find(JsonEncoder.decode(queryDoc), { maxTimeMS: mongo.getQueryTimeout() }).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).limit(limit).skip(skip).map((obj) => JsonEncoder.encode(obj)).toArray();\n return {\n data: results,\n error: null,\n isAggregation: false,\n isDistinct: false\n };\n } catch (err) {\n logger.error(\"Error fetching query results:\", err);\n error(500, `Failed to fetch query results: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n);\nconst fetchMappedDocument = query(\n z.object({\n server: z.string(),\n database: z.string(),\n mappings: z.array(\n z.union([\n z.object({\n type: z.literal(\"document\"),\n collection: z.string(),\n on: z.string()\n }),\n z.object({\n type: z.literal(\"url\"),\n template: z.string()\n }),\n // Legacy format (backwards compatibility)\n z.object({\n collection: z.string(),\n on: z.string()\n })\n ])\n ),\n value: z.unknown()\n }),\n async ({ server, database, mappings, value }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const decodedValue = JsonEncoder.decode(value);\n const documentMappings = mappings.filter((m2) => {\n if (\"type\" in m2) {\n return m2.type === \"document\";\n }\n return \"collection\" in m2 && \"on\" in m2;\n });\n for (const mapping of documentMappings) {\n try {\n if (\"type\" in mapping && mapping.type !== \"document\") continue;\n const collection = \"collection\" in mapping ? mapping.collection : \"\";\n const on = \"on\" in mapping ? mapping.on : \"_id\";\n const coll = client.db(database).collection(collection);\n const query2 = { [on]: decodedValue };\n const document = await coll.findOne(query2, { maxTimeMS: mongo.getQueryTimeout() });\n if (document) {\n return {\n data: JsonEncoder.encode(document),\n collection,\n error: null\n };\n }\n } catch (err) {\n const collection = \"collection\" in mapping ? mapping.collection : \"unknown\";\n const on = \"on\" in mapping ? mapping.on : \"_id\";\n logger.error(`Error fetching mapped document from ${collection}.${on}:`, err);\n continue;\n }\n }\n return {\n data: null,\n collection: null,\n error: \"Document not found in any mapped collection\"\n };\n }\n);\nconst getIndexStatsWithReadPreference = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n readPreferenceMode: z.string().optional(),\n readPreferenceTags: z.string().optional()\n }),\n async ({ server, database, collection, readPreferenceMode, readPreferenceTags }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n try {\n let tags;\n if (readPreferenceTags) {\n try {\n tags = parseJSON(readPreferenceTags);\n if (typeof tags !== \"object\" || tags === null) {\n error(400, \"Invalid read preference tags format\");\n }\n if (!Array.isArray(tags)) {\n tags = [tags];\n }\n } catch (err) {\n error(400, `Invalid read preference tags JSON: ${err}`);\n }\n }\n let readPreference;\n if (readPreferenceMode || tags) {\n const mode = readPreferenceMode || \"nearest\";\n readPreference = tags ? new ReadPreference(mode, tags) : new ReadPreference(mode);\n }\n const coll = client.db(database).collection(collection);\n const aggregateOptions = readPreference ? { readPreference } : {};\n const statsResult = await coll.aggregate([{ $indexStats: {} }], aggregateOptions).toArray();\n const indexStats = Object.fromEntries(\n statsResult.map((stat) => [\n stat.name,\n {\n ops: stat.accesses?.ops || 0,\n since: stat.accesses?.since || /* @__PURE__ */ new Date(),\n host: stat.host || \"unknown\"\n }\n ])\n );\n return {\n data: JsonEncoder.encode(indexStats),\n error: null\n };\n } catch (err) {\n logger.error(\"Error fetching index stats with read preference:\", err);\n return {\n data: {},\n error: `Failed to fetch index stats: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst getServerNodes = query(\n z.object({\n server: z.string()\n }),\n async ({ server }) => {\n const mongo = await getMongo();\n try {\n const nodes = await mongo.getServerNodes(server);\n return {\n data: nodes,\n error: null\n };\n } catch (err) {\n logger.error(\"Error getting server nodes:\", err);\n return {\n data: [],\n error: `Failed to get server nodes: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst detectPrimaryNode = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string()\n }),\n async ({ server, database, collection }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n try {\n const coll = client.db(database).collection(collection);\n const statsResult = await coll.aggregate([{ $indexStats: {} }], { readPreference: new ReadPreference(\"primary\") }).toArray();\n const primaryHost = statsResult.length > 0 ? statsResult[0].host : null;\n return {\n data: primaryHost,\n error: null\n };\n } catch (err) {\n logger.error(\"Error detecting primary node:\", err);\n return {\n data: null,\n error: `Failed to detect primary: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst getIndexStatsFromNodes = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n nodes: z.array(z.string())\n }),\n async ({ server, database, collection, nodes }) => {\n const mongo = await getMongo();\n try {\n const results = await Promise.allSettled(\n nodes.map(async (node) => {\n const stats = await mongo.getIndexStatsFromNode(server, node, database, collection);\n return { node, stats };\n })\n );\n const mergedStats = {};\n const errors = [];\n let i = 0;\n for (const result of results) {\n if (result.status === \"fulfilled\") {\n const { stats } = result.value;\n for (const [indexName, indexStats] of Object.entries(stats)) {\n const key = `${indexName}::${indexStats.host}`;\n mergedStats[key] = indexStats;\n }\n } else {\n logger.error(`Error fetching index stats from node ${nodes[i]}:`, result.reason);\n errors.push(result.reason?.message || String(result.reason));\n }\n i++;\n }\n return {\n data: JsonEncoder.encode(mergedStats),\n error: errors.length > 0 ? errors.join(\"; \") : null\n };\n } catch (err) {\n logger.error(\"Error fetching index stats from nodes:\", err);\n return {\n data: {},\n error: `Failed to fetch index stats: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst explainQuery = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n query: z.string().default(\"{}\"),\n sort: z.string().default(\"{}\"),\n project: z.string().default(\"{}\"),\n skip: z.number().int().default(0),\n limit: z.number().int().default(20),\n mode: z.enum([\"query\", \"aggregation\"]).default(\"query\"),\n verbosity: z.enum([\"queryPlanner\", \"executionStats\", \"allPlansExecution\"]).default(\"executionStats\")\n }),\n async ({ server, database, collection, query: queryStr, sort, project, skip, limit, mode, verbosity }) => {\n const queryDoc = (() => {\n try {\n return parseJSON(queryStr, { allowArray: true });\n } catch (err) {\n error(400, `Invalid query: ${err}`);\n }\n })();\n try {\n parseJSON(sort);\n } catch (err) {\n error(400, `Invalid sort: ${err}`);\n }\n try {\n parseJSON(project);\n } catch (err) {\n error(400, `Invalid project: ${err}`);\n }\n const sortDoc = parseJSON(sort);\n const projectDoc = parseJSON(project);\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n try {\n let explainResult;\n if (mode === \"aggregation\" && Array.isArray(queryDoc)) {\n try {\n validateAggregationPipeline(queryDoc);\n } catch (err) {\n error(400, `Invalid aggregation pipeline: ${err instanceof Error ? err.message : String(err)}`);\n }\n const pipeline = JsonEncoder.decode(queryDoc);\n const fullPipeline = [\n ...pipeline,\n ...isEmptyObject(projectDoc) ? [] : [{ $project: projectDoc }],\n ...isEmptyObject(sortDoc) ? [] : [{ $sort: sortDoc }],\n { $skip: skip },\n { $limit: limit }\n ];\n explainResult = await coll.aggregate(fullPipeline).explain(verbosity);\n } else {\n explainResult = await coll.find(JsonEncoder.decode(queryDoc)).project(projectDoc).sort(JsonEncoder.decode(sortDoc)).skip(skip).limit(limit).explain(verbosity);\n }\n const plainResult = JSON.parse(JSON.stringify(explainResult));\n return {\n data: plainResult,\n error: null\n };\n } catch (err) {\n logger.error(\"Error explaining query:\", err);\n return {\n data: null,\n error: `Failed to explain query: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\nconst countDocumentsByTimeRange = query(\n z.object({\n server: z.string(),\n database: z.string(),\n collection: z.string(),\n timeRanges: z.array(\n z.object({\n label: z.string(),\n days: z.number()\n })\n )\n }),\n async ({ server, database, collection, timeRanges }) => {\n const mongo = await getMongo();\n const client = mongo.getClient(server);\n const coll = client.db(database).collection(collection);\n try {\n const results = await Promise.all(\n timeRanges.map(async ({ label, days }) => {\n const dateThreshold = /* @__PURE__ */ new Date();\n dateThreshold.setDate(dateThreshold.getDate() - days);\n const objectIdThreshold = ObjectId.createFromTime(Math.floor(dateThreshold.getTime() / 1e3));\n try {\n const count = await coll.countDocuments(\n { _id: { $gte: objectIdThreshold } },\n { maxTimeMS: mongo.getCountTimeout() }\n );\n return { label, days, count, error: null };\n } catch (err) {\n logger.error(`Error counting documents for ${label}:`, err);\n return {\n label,\n days,\n count: null,\n error: err instanceof Error ? err.message : String(err)\n };\n }\n })\n );\n return {\n data: results,\n error: null\n };\n } catch (err) {\n logger.error(\"Error counting documents by time range:\", err);\n return {\n data: null,\n error: `Failed to count documents: ${err instanceof Error ? err.message : String(err)}`\n };\n }\n }\n);\ninit_remote_functions(m, \"src/api/servers.remote.ts\", \"xxtqbu\");\nfor (const [name, fn] of Object.entries(m)) {\n fn.__.id = \"xxtqbu/\" + name;\n fn.__.name = name;\n}\nexport {\n deleteDocument as d,\n explainQuery as e,\n fetchMappedDocument as f,\n m,\n updateDocument as u\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -4,7 +4,7 @@ import { b as base, a as app_dir, e as exec, c as assets, d as relative, o as ov
4
4
  import { T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, c as create_remote_cache_key, i as is_primitive, g as get_type, p as parse_remote_arg, a as stringify, b as stringify$1, D as DevalueError, d as is_plain_object, e as enumerable_symbols, f as stringify_key, h as stringify_string, j as escaped } from './chunks/shared-CQd3A1I4.js';
5
5
  import { d as decode_pathname, a as decode_params, n as normalize_path, b as disable_search, v as validate_layout_server_exports, c as validate_layout_exports, e as validate_page_server_exports, f as validate_page_exports, r as resolve, m as make_trackable } from './chunks/exports-Cv9LZeD1.js';
6
6
  import { s as safe_equals, e as equals, r as readable, w as writable } from './chunks/index-DFXVwu6p.js';
7
- import { r as render, L as LEGACY_PROPS, U as UNOWNED, E as ERROR_VALUE, C as COMMENT_NODE, H as HYDRATION_START, i as HYDRATION_ERROR, S as STATE_SYMBOL, j as UNINITIALIZED, D as DERIVED, k as DIRTY, l as CLEAN, M as MAYBE_DIRTY, m as DISCONNECTED, I as INERT, n as EFFECT, R as RENDER_EFFECT, B as BLOCK_EFFECT, o as is_passive_event, p as BRANCH_EFFECT, q as ROOT_EFFECT, t as DESTROYED, A as ASYNC, u as REACTION_IS_UPDATING, v as EFFECT_RAN, w as EFFECT_PRESERVED, x as HEAD_EFFECT, y as BOUNDARY_EFFECT, z as EFFECT_TRANSPARENT, F as INSPECT_EFFECT, G as STALE_REACTION, J as HYDRATION_END, K as HYDRATION_START_ELSE, N as USER_EFFECT } from './chunks/index2-eSFyMQpS.js';
7
+ import { r as render, L as LEGACY_PROPS, U as UNOWNED, E as ERROR_VALUE, C as COMMENT_NODE, H as HYDRATION_START, i as HYDRATION_ERROR, S as STATE_SYMBOL, j as UNINITIALIZED, D as DERIVED, k as DIRTY, l as CLEAN, M as MAYBE_DIRTY, m as DISCONNECTED, I as INERT, n as EFFECT, R as RENDER_EFFECT, B as BLOCK_EFFECT, o as is_passive_event, p as BRANCH_EFFECT, q as ROOT_EFFECT, t as DESTROYED, A as ASYNC, u as REACTION_IS_UPDATING, v as EFFECT_RAN, w as EFFECT_PRESERVED, x as HEAD_EFFECT, y as BOUNDARY_EFFECT, z as EFFECT_TRANSPARENT, F as INSPECT_EFFECT, G as STALE_REACTION, J as HYDRATION_END, K as HYDRATION_START_ELSE, N as USER_EFFECT } from './chunks/index2-DBFlGzWV.js';
8
8
  import { d as define_property, o as object_prototype, c as array_prototype, f as get_descriptor, h as is_extensible, j as array_from, k as get_prototype_of, l as is_array, m as deferred, r as run_all, q as index_of, t as setContext } from './chunks/context-C22hLSHK.js';
9
9
  import { a as async_mode_flag, t as tracing_mode_flag } from './chunks/async-lVJA8xJZ.js';
10
10
 
@@ -2659,7 +2659,7 @@ const options = {
2659
2659
  <div class="error">
2660
2660
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
2661
2661
  },
2662
- version_hash: "115q35f"
2662
+ version_hash: "10zffx8"
2663
2663
  };
2664
2664
  async function get_hooks() {
2665
2665
  let handle;