mongoku 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +19 -11
  2. package/build/client/_app/immutable/chunks/{CEvYYWlm.js → BdCk1gVw.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BdCk1gVw.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BdCk1gVw.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{Dx86XS0G.js → Bsz507MG.js} +1 -1
  6. package/build/client/_app/immutable/chunks/Bsz507MG.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/Bsz507MG.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{4l_AWZos.js → C1XfxmRC.js} +1 -1
  9. package/build/client/_app/immutable/chunks/C1XfxmRC.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/C1XfxmRC.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/CKHNRODp.js +1 -0
  12. package/build/client/_app/immutable/chunks/CKHNRODp.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/CKHNRODp.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{lkkUcQuO.js → CM2Lsplc.js} +10 -10
  15. package/build/client/_app/immutable/chunks/CM2Lsplc.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/CM2Lsplc.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{D64wQeYi.js → CRt_PE0j.js} +1 -1
  18. package/build/client/_app/immutable/chunks/CRt_PE0j.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/CRt_PE0j.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{nVJvgG3c.js → CnRtsGt8.js} +3 -3
  21. package/build/client/_app/immutable/chunks/CnRtsGt8.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/CnRtsGt8.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{BjzB4NFq.js → D4QB_3_6.js} +1 -1
  24. package/build/client/_app/immutable/chunks/D4QB_3_6.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/D4QB_3_6.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{DVJuGan7.js → DKR4gtrs.js} +1 -1
  27. package/build/client/_app/immutable/chunks/DKR4gtrs.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/DKR4gtrs.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{BtCOrwSt.js → lGcxg7CO.js} +1 -1
  30. package/build/client/_app/immutable/chunks/lGcxg7CO.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/lGcxg7CO.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/{app.g5qLQ5x2.js → app.-1fKTnAu.js} +2 -2
  33. package/build/client/_app/immutable/entry/app.-1fKTnAu.js.br +0 -0
  34. package/build/client/_app/immutable/entry/app.-1fKTnAu.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/start.BJmMjOs5.js +1 -0
  36. package/build/client/_app/immutable/entry/start.BJmMjOs5.js.br +2 -0
  37. package/build/client/_app/immutable/entry/start.BJmMjOs5.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{0.CD9yR-49.js → 0.Cd4lrshe.js} +1 -1
  39. package/build/client/_app/immutable/nodes/0.Cd4lrshe.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/0.Cd4lrshe.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{1.DztuiMqq.js → 1.B4faIcO5.js} +1 -1
  42. package/build/client/_app/immutable/nodes/1.B4faIcO5.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/1.B4faIcO5.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js +2 -0
  45. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{11.-Y7Cu3Uv.js → 11.MJ6Rv19p.js} +1 -1
  48. package/build/client/_app/immutable/nodes/11.MJ6Rv19p.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/11.MJ6Rv19p.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{12.wxif1TtN.js → 12.BMSZ742P.js} +1 -1
  51. package/build/client/_app/immutable/nodes/12.BMSZ742P.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/12.BMSZ742P.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/13.C5mOzCii.js +66 -0
  54. package/build/client/_app/immutable/nodes/13.C5mOzCii.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/13.C5mOzCii.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/{7.DoT-dNUk.js → 7.BV3eTGHn.js} +1 -1
  57. package/build/client/_app/immutable/nodes/7.BV3eTGHn.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/7.BV3eTGHn.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/{8.BFPkGTSl.js → 8.Dw_zZKYL.js} +1 -1
  60. package/build/client/_app/immutable/nodes/8.Dw_zZKYL.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/8.Dw_zZKYL.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/{9.Bk397TaK.js → 9.BA65fyAm.js} +1 -1
  63. package/build/client/_app/immutable/nodes/9.BA65fyAm.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/9.BA65fyAm.js.gz +0 -0
  65. package/build/client/_app/version.json +1 -1
  66. package/build/client/_app/version.json.br +0 -0
  67. package/build/client/_app/version.json.gz +0 -0
  68. package/build/server/chunks/{0-hDOo8HzQ.js → 0-DhPAR6AN.js} +2 -2
  69. package/build/server/chunks/{0-hDOo8HzQ.js.map → 0-DhPAR6AN.js.map} +1 -1
  70. package/build/server/chunks/{1-Dsw_dVjH.js → 1-B5Roc8lW.js} +2 -2
  71. package/build/server/chunks/{1-Dsw_dVjH.js.map → 1-B5Roc8lW.js.map} +1 -1
  72. package/build/server/chunks/{10-Xy0rxLNm.js → 10-BRaPMv4v.js} +9 -7
  73. package/build/server/chunks/10-BRaPMv4v.js.map +1 -0
  74. package/build/server/chunks/{11-DBYsQ3ww.js → 11-D47Grqcs.js} +8 -6
  75. package/build/server/chunks/{11-DBYsQ3ww.js.map → 11-D47Grqcs.js.map} +1 -1
  76. package/build/server/chunks/{12-D4aSEhYN.js → 12-DYHC-SIK.js} +8 -6
  77. package/build/server/chunks/{12-D4aSEhYN.js.map → 12-DYHC-SIK.js.map} +1 -1
  78. package/build/server/chunks/{13-CNu_Hz8r.js → 13-6jJDktOb.js} +7 -5
  79. package/build/server/chunks/{13-CNu_Hz8r.js.map → 13-6jJDktOb.js.map} +1 -1
  80. package/build/server/chunks/{7-CJJMTAtJ.js → 7-CEa921n2.js} +7 -5
  81. package/build/server/chunks/7-CEa921n2.js.map +1 -0
  82. package/build/server/chunks/{8-jBgxYwFg.js → 8-BJXi_u8p.js} +6 -4
  83. package/build/server/chunks/8-BJXi_u8p.js.map +1 -0
  84. package/build/server/chunks/{9-U8SAVx43.js → 9-DaOfuWT8.js} +7 -5
  85. package/build/server/chunks/{9-U8SAVx43.js.map → 9-DaOfuWT8.js.map} +1 -1
  86. package/build/server/chunks/{JsonEncoder-jJ2OBaud.js → JsonEncoder-B8eJRYZ4.js} +12 -2
  87. package/build/server/chunks/JsonEncoder-B8eJRYZ4.js.map +1 -0
  88. package/build/server/chunks/{JsonValue-B5gcBFcA.js → JsonValue-ClBHqVOS.js} +59 -50
  89. package/build/server/chunks/JsonValue-ClBHqVOS.js.map +1 -0
  90. package/build/server/chunks/{PrettyJson-mXYQacEL.js → PrettyJson-4GQa7qAU.js} +3 -3
  91. package/build/server/chunks/{PrettyJson-mXYQacEL.js.map → PrettyJson-4GQa7qAU.js.map} +1 -1
  92. package/build/server/chunks/{_page.svelte-B-dLNs2Q.js → _page.svelte-C-13GpOe.js} +8 -6
  93. package/build/server/chunks/{_page.svelte-B-dLNs2Q.js.map → _page.svelte-C-13GpOe.js.map} +1 -1
  94. package/build/server/chunks/{_page.svelte-BBpDrOEz.js → _page.svelte-CCaM2a2k.js} +10 -8
  95. package/build/server/chunks/{_page.svelte-BBpDrOEz.js.map → _page.svelte-CCaM2a2k.js.map} +1 -1
  96. package/build/server/chunks/{_page.svelte-C9OCv4Hv.js → _page.svelte-CGvzbG1F.js} +9 -7
  97. package/build/server/chunks/{_page.svelte-C9OCv4Hv.js.map → _page.svelte-CGvzbG1F.js.map} +1 -1
  98. package/build/server/chunks/{_page.svelte-CvWJ35oO.js → _page.svelte-CKLhszFj.js} +8 -6
  99. package/build/server/chunks/{_page.svelte-CvWJ35oO.js.map → _page.svelte-CKLhszFj.js.map} +1 -1
  100. package/build/server/chunks/{_page.svelte-Ds1-yUh2.js → _page.svelte-CiFj0j1b.js} +8 -6
  101. package/build/server/chunks/{_page.svelte-Ds1-yUh2.js.map → _page.svelte-CiFj0j1b.js.map} +1 -1
  102. package/build/server/chunks/{_page.svelte-DYHUokXG.js → _page.svelte-DsOSf3up.js} +11 -9
  103. package/build/server/chunks/_page.svelte-DsOSf3up.js.map +1 -0
  104. package/build/server/chunks/hooks.server-DRPXFQlL.js +53 -0
  105. package/build/server/chunks/hooks.server-DRPXFQlL.js.map +1 -0
  106. package/build/server/chunks/{jsonParser-CraFXJs8.js → jsonParser-C3QUcODD.js} +10 -2
  107. package/build/server/chunks/jsonParser-C3QUcODD.js.map +1 -0
  108. package/build/server/chunks/logger-KF6KpVP6.js +150 -0
  109. package/build/server/chunks/logger-KF6KpVP6.js.map +1 -0
  110. package/build/server/chunks/{mongo-BogiTfnG.js → mongo-Db8Vgimy.js} +2 -2
  111. package/build/server/chunks/{mongo-BogiTfnG.js.map → mongo-Db8Vgimy.js.map} +1 -1
  112. package/build/server/chunks/remote-xxtqbu-AjxdDZZ_.js +19 -0
  113. package/build/server/chunks/remote-xxtqbu-AjxdDZZ_.js.map +1 -0
  114. package/build/server/chunks/{servers.remote-C2HuT43p.js → servers.remote-DrkuAWHP.js} +20 -7
  115. package/build/server/chunks/servers.remote-DrkuAWHP.js.map +1 -0
  116. package/build/server/index.js +2 -2
  117. package/build/server/index.js.map +1 -1
  118. package/build/server/manifest.js +11 -11
  119. package/build/server/manifest.js.map +1 -1
  120. package/package.json +1 -1
  121. package/src/api/servers.remote.ts +20 -3
  122. package/src/app.d.ts +3 -1
  123. package/src/hooks.server.ts +38 -16
  124. package/src/lib/components/JsonValue.svelte +8 -0
  125. package/src/lib/server/JsonEncoder.ts +11 -1
  126. package/src/lib/server/contextStore.ts +4 -0
  127. package/src/lib/server/logger.ts +184 -0
  128. package/src/lib/server/mongo.ts +1 -1
  129. package/src/lib/utils/jsonParser.ts +11 -1
  130. package/src/routes/servers/+page.server.ts +1 -1
  131. package/src/routes/servers/[server]/databases/+page.server.ts +1 -1
  132. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.server.ts +1 -1
  133. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +2 -3
  134. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +1 -1
  135. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +1 -2
  136. package/build/client/_app/immutable/chunks/4l_AWZos.js.br +0 -0
  137. package/build/client/_app/immutable/chunks/4l_AWZos.js.gz +0 -0
  138. package/build/client/_app/immutable/chunks/BjzB4NFq.js.br +0 -0
  139. package/build/client/_app/immutable/chunks/BjzB4NFq.js.gz +0 -0
  140. package/build/client/_app/immutable/chunks/BtCOrwSt.js.br +0 -0
  141. package/build/client/_app/immutable/chunks/BtCOrwSt.js.gz +0 -0
  142. package/build/client/_app/immutable/chunks/CEvYYWlm.js.br +0 -0
  143. package/build/client/_app/immutable/chunks/CEvYYWlm.js.gz +0 -0
  144. package/build/client/_app/immutable/chunks/CT5SFbzp.js +0 -1
  145. package/build/client/_app/immutable/chunks/CT5SFbzp.js.br +0 -0
  146. package/build/client/_app/immutable/chunks/CT5SFbzp.js.gz +0 -0
  147. package/build/client/_app/immutable/chunks/CcyPStn-.js +0 -1
  148. package/build/client/_app/immutable/chunks/CcyPStn-.js.br +0 -0
  149. package/build/client/_app/immutable/chunks/CcyPStn-.js.gz +0 -0
  150. package/build/client/_app/immutable/chunks/D64wQeYi.js.br +0 -0
  151. package/build/client/_app/immutable/chunks/D64wQeYi.js.gz +0 -0
  152. package/build/client/_app/immutable/chunks/DVJuGan7.js.br +0 -0
  153. package/build/client/_app/immutable/chunks/DVJuGan7.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/Dx86XS0G.js.br +0 -4
  155. package/build/client/_app/immutable/chunks/Dx86XS0G.js.gz +0 -0
  156. package/build/client/_app/immutable/chunks/lkkUcQuO.js.br +0 -0
  157. package/build/client/_app/immutable/chunks/lkkUcQuO.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/nVJvgG3c.js.br +0 -0
  159. package/build/client/_app/immutable/chunks/nVJvgG3c.js.gz +0 -0
  160. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.br +0 -0
  161. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.gz +0 -0
  162. package/build/client/_app/immutable/entry/start.C1uqw3sp.js +0 -1
  163. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.br +0 -2
  164. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.gz +0 -0
  165. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.br +0 -0
  166. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.gz +0 -0
  167. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.br +0 -0
  168. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.gz +0 -0
  169. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js +0 -2
  170. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.br +0 -0
  171. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.br +0 -0
  173. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.gz +0 -0
  174. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.br +0 -0
  175. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.gz +0 -0
  176. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js +0 -66
  177. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.br +0 -0
  180. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.gz +0 -0
  185. package/build/server/chunks/10-Xy0rxLNm.js.map +0 -1
  186. package/build/server/chunks/7-CJJMTAtJ.js.map +0 -1
  187. package/build/server/chunks/8-jBgxYwFg.js.map +0 -1
  188. package/build/server/chunks/JsonEncoder-jJ2OBaud.js.map +0 -1
  189. package/build/server/chunks/JsonValue-B5gcBFcA.js.map +0 -1
  190. package/build/server/chunks/_page.svelte-DYHUokXG.js.map +0 -1
  191. package/build/server/chunks/hooks.server-CagAPNr2.js +0 -40
  192. package/build/server/chunks/hooks.server-CagAPNr2.js.map +0 -1
  193. package/build/server/chunks/jsonParser-CraFXJs8.js.map +0 -1
  194. package/build/server/chunks/logger-D71iWOkl.js +0 -36
  195. package/build/server/chunks/logger-D71iWOkl.js.map +0 -1
  196. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js +0 -17
  197. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js.map +0 -1
  198. package/build/server/chunks/servers.remote-C2HuT43p.js.map +0 -1
  199. package/src/lib/utils/logger.ts +0 -42
@@ -118,7 +118,7 @@ function buildObject(node) {
118
118
  }
119
119
  case "NewExpression":
120
120
  case "CallExpression": {
121
- const authorizedCalls = ["ObjectId", "Date", "RegExp"];
121
+ const authorizedCalls = ["ObjectId", "Date", "RegExp", "BinData"];
122
122
  const callee = node.callee.type === "Identifier" ? node.callee.name : null;
123
123
  if (callee && authorizedCalls.includes(callee)) {
124
124
  if (callee === "RegExp") {
@@ -131,6 +131,14 @@ function buildObject(node) {
131
131
  }
132
132
  };
133
133
  }
134
+ if (callee === "BinData") {
135
+ const [subType, base64] = node.arguments.map((arg) => buildObject(arg));
136
+ return {
137
+ $type: "Binary",
138
+ $value: base64,
139
+ $subType: subType
140
+ };
141
+ }
134
142
  return {
135
143
  $type: callee,
136
144
  $value: buildObject(node.arguments[0])
@@ -171,4 +179,4 @@ function parseJSON(text, opts) {
171
179
  }
172
180
 
173
181
  export { isEmptyObject as i, parseJSON as p, validateAggregationPipeline as v };
174
- //# sourceMappingURL=jsonParser-CraFXJs8.js.map
182
+ //# sourceMappingURL=jsonParser-C3QUcODD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonParser-C3QUcODD.js","sources":["../../../.svelte-kit/adapter-node/chunks/jsonParser.js"],"sourcesContent":["import { parseScript } from \"esprima\";\nconst ALLOWED_AGGREGATION_STAGES = /* @__PURE__ */ new Set([\n \"$addFields\",\n \"$bucket\",\n \"$bucketAuto\",\n \"$collStats\",\n \"$count\",\n \"$densify\",\n \"$documents\",\n \"$facet\",\n \"$fill\",\n \"$geoNear\",\n \"$graphLookup\",\n \"$group\",\n \"$indexStats\",\n \"$limit\",\n \"$listClusterCatalog\",\n \"$listSampledQueries\",\n \"$listSearchIndexes\",\n \"$listSessions\",\n \"$lookup\",\n \"$match\",\n \"$project\",\n \"$querySettings\",\n \"$queryStats\",\n \"$rankFusion\",\n \"$redact\",\n \"$replaceRoot\",\n \"$replaceWith\",\n \"$sample\",\n \"$search\",\n \"$searchMeta\",\n \"$set\",\n \"$setWindowFields\",\n \"$skip\",\n \"$sort\",\n \"$sortByCount\",\n \"$unionWith\",\n \"$unset\",\n \"$unwind\",\n \"$vectorSearch\"\n]);\nfunction validateAggregationPipeline(pipeline) {\n for (let i = 0; i < pipeline.length; i++) {\n const stage = pipeline[i];\n if (!stage || typeof stage !== \"object\") {\n throw new Error(`Invalid stage at index ${i}: must be an object`);\n }\n const stageKeys = Object.keys(stage);\n if (stageKeys.length !== 1) {\n throw new Error(`Invalid stage at index ${i}: must have exactly one key, found ${stageKeys.length}`);\n }\n const stageOperator = stageKeys[0];\n if (!ALLOWED_AGGREGATION_STAGES.has(stageOperator)) {\n throw new Error(\n `Disallowed stage operator at index ${i}: \"${stageOperator}\". Only allowed stages are permitted, to avoid future write stages like '$merge' or '$out'.`\n );\n }\n }\n}\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n return false;\n }\n return true;\n}\nfunction buildObject(node) {\n switch (node.type) {\n case \"ObjectExpression\": {\n const obj = {};\n for (const prop of node.properties) {\n let name;\n if (prop.type === \"SpreadElement\") {\n throw new Error(`Expected \"Property\" but received: ${prop.type}`);\n }\n if (prop.key.type === \"Identifier\") {\n name = prop.key.name;\n } else if (prop.key.type === \"Literal\") {\n if (prop.key.value instanceof RegExp || typeof prop.key.value === \"bigint\" || prop.key.value === false || prop.key.value === null || prop.key.value === true || prop.key.value === void 0) {\n throw new Error(`Expected \"Identifier\" for object key but received: ${prop.key.type}`);\n }\n name = prop.key.value;\n } else {\n throw new Error(`Expected \"Identifier\" but received: ${prop.key.type}`);\n }\n obj[name] = buildObject(prop.value);\n }\n return obj;\n }\n case \"ArrayExpression\": {\n const obj = [];\n for (const prop of node.elements) {\n if (prop === null) {\n throw new Error(`Expected \"Expression\" but received: ${prop}`);\n }\n obj.push(buildObject(prop));\n }\n return obj;\n }\n case \"Literal\": {\n if (node.value instanceof RegExp) {\n return {\n $type: \"RegExp\",\n $value: {\n $pattern: node.value.source,\n $flags: node.value.flags\n }\n };\n }\n return node.value;\n }\n case \"UnaryExpression\": {\n if (node.operator === \"-\" && node.argument.type === \"Literal\" && typeof node.argument.value === \"number\") {\n return -node.argument.value;\n }\n throw new Error(`${node.type} are not authorized`);\n }\n case \"NewExpression\":\n case \"CallExpression\": {\n const authorizedCalls = [\"ObjectId\", \"Date\", \"RegExp\", \"BinData\"];\n const callee = node.callee.type === \"Identifier\" ? node.callee.name : null;\n if (callee && authorizedCalls.includes(callee)) {\n if (callee === \"RegExp\") {\n const [pattern, flags] = node.arguments.map((arg) => buildObject(arg));\n return {\n $type: \"RegExp\",\n $value: {\n $pattern: pattern,\n $flags: flags\n }\n };\n }\n if (callee === \"BinData\") {\n const [subType, base64] = node.arguments.map((arg) => buildObject(arg));\n return {\n $type: \"Binary\",\n $value: base64,\n $subType: subType\n };\n }\n return {\n $type: callee,\n $value: buildObject(node.arguments[0])\n };\n } else {\n throw new Error(`Unknown ${node.type}: ${callee}`);\n }\n }\n case \"Identifier\": {\n if (node.name === \"undefined\") {\n return void 0;\n }\n if (node.name === \"Infinity\") {\n return Infinity;\n }\n throw `Unknown identifier: ${node.name}`;\n }\n default:\n throw new Error(`Sorry but ${node.type} are not authorized`);\n }\n}\nfunction parseJSON(text, opts) {\n const tree = parseScript(`var __JSON__ = ${text};`, {\n tolerant: true\n });\n const varDeclaration = tree.body[0];\n if (varDeclaration.type !== \"VariableDeclaration\") {\n throw new Error(\"Expected VariableDeclaration but received: \" + varDeclaration.type);\n }\n const objExpression = varDeclaration.declarations[0].init;\n if (opts?.allowArray && objExpression?.type === \"ArrayExpression\") {\n return buildObject(objExpression);\n }\n if (objExpression?.type !== \"ObjectExpression\") {\n throw new Error(\"Expected ObjectExpression but received: \" + objExpression?.type);\n }\n return buildObject(objExpression);\n}\nexport {\n isEmptyObject as i,\n parseJSON as p,\n validateAggregationPipeline as v\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+ import { inspect } from 'node:util';
3
+
4
+ const contextStore = new AsyncLocalStorage();
5
+ class Logger {
6
+ structuredLogging;
7
+ logHeaders;
8
+ constructor() {
9
+ this.structuredLogging = process.env.MONGOKU_STRUCTURED_LOG === "true";
10
+ this.logHeaders = process.env.MONGOKU_LOG_HEADERS ? process.env.MONGOKU_LOG_HEADERS.split(",").map((h) => h.trim().toLowerCase()).filter(Boolean) : [];
11
+ }
12
+ /**
13
+ * Get request context information from the current request
14
+ */
15
+ getRequestContext() {
16
+ const event = contextStore.getStore();
17
+ if (!event) {
18
+ return void 0;
19
+ }
20
+ const url = new URL(event.request.url);
21
+ const context = {
22
+ requestId: event.locals.requestId,
23
+ method: event.request.method,
24
+ url: url.pathname + url.search,
25
+ ip: event.getClientAddress(),
26
+ userAgent: event.request.headers.get("user-agent") || void 0
27
+ };
28
+ if (this.logHeaders.length > 0) {
29
+ const headers = {};
30
+ for (const headerName of this.logHeaders) {
31
+ const value = event.request.headers.get(headerName);
32
+ if (value) {
33
+ headers[headerName] = value;
34
+ }
35
+ }
36
+ if (Object.keys(headers).length > 0) {
37
+ context.headers = headers;
38
+ }
39
+ }
40
+ return context;
41
+ }
42
+ /**
43
+ * Format arguments for logging
44
+ */
45
+ formatArgs(args) {
46
+ return args.map((arg) => {
47
+ if (arg instanceof Error) {
48
+ return (arg.stack ?? `${arg.name}: ${arg.message}`) + (arg.cause instanceof Error ? `
49
+ cause: ${arg.cause.stack ?? `${arg.cause.name}: ${arg.cause.message}`}` : "");
50
+ } else if (typeof arg === "string") {
51
+ return arg;
52
+ } else {
53
+ return inspect(arg, { depth: 20, colors: !this.structuredLogging });
54
+ }
55
+ }).join(" ");
56
+ }
57
+ /**
58
+ * Internal log method that handles both structured and unstructured logging
59
+ */
60
+ _log(level, args) {
61
+ const message = this.formatArgs(args);
62
+ if (this.structuredLogging) {
63
+ const logEntry = {
64
+ level,
65
+ time: (/* @__PURE__ */ new Date()).toISOString(),
66
+ message,
67
+ ...this.getRequestContext()
68
+ };
69
+ console.log(JSON.stringify(logEntry));
70
+ } else {
71
+ switch (level) {
72
+ case "error":
73
+ console.error(message);
74
+ break;
75
+ case "warn":
76
+ console.warn(message);
77
+ break;
78
+ case "debug":
79
+ console.debug(message);
80
+ break;
81
+ default:
82
+ console.log(message);
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Log an informational message
88
+ */
89
+ log(...args) {
90
+ this._log("info", args);
91
+ }
92
+ /**
93
+ * Log an informational message (alias for log)
94
+ */
95
+ info(...args) {
96
+ this._log("info", args);
97
+ }
98
+ /**
99
+ * Log an error message
100
+ */
101
+ error(...args) {
102
+ this._log("error", args);
103
+ }
104
+ /**
105
+ * Log a warning message
106
+ */
107
+ warn(...args) {
108
+ this._log("warn", args);
109
+ }
110
+ /**
111
+ * Log a debug message
112
+ */
113
+ debug(...args) {
114
+ this._log("debug", args);
115
+ }
116
+ /**
117
+ * Log an HTTP request
118
+ */
119
+ logRequest(statusCode, durationMs) {
120
+ const duration = Math.round(durationMs * 100) / 100;
121
+ if (this.structuredLogging) {
122
+ const logEntry = {
123
+ level: "info",
124
+ time: (/* @__PURE__ */ new Date()).toISOString(),
125
+ type: "request",
126
+ statusCode,
127
+ duration,
128
+ ...this.getRequestContext()
129
+ };
130
+ console.log(JSON.stringify(logEntry));
131
+ } else {
132
+ const event = contextStore.getStore();
133
+ if (event) {
134
+ const url = new URL(event.request.url);
135
+ const urlPath = url.pathname + url.search;
136
+ const method = event.request.method;
137
+ const message = `${statusCode} ${method} ${urlPath} ${duration}ms`;
138
+ if (statusCode >= 400) {
139
+ console.error(message);
140
+ } else {
141
+ console.log(message);
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ const logger = new Logger();
148
+
149
+ export { contextStore as c, logger as l };
150
+ //# sourceMappingURL=logger-KF6KpVP6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-KF6KpVP6.js","sources":["../../../.svelte-kit/adapter-node/chunks/logger.js"],"sourcesContent":["import { AsyncLocalStorage } from \"async_hooks\";\nimport { inspect } from \"node:util\";\nconst contextStore = new AsyncLocalStorage();\nclass Logger {\n structuredLogging;\n logHeaders;\n constructor() {\n this.structuredLogging = process.env.MONGOKU_STRUCTURED_LOG === \"true\";\n this.logHeaders = process.env.MONGOKU_LOG_HEADERS ? process.env.MONGOKU_LOG_HEADERS.split(\",\").map((h) => h.trim().toLowerCase()).filter(Boolean) : [];\n }\n /**\n * Get request context information from the current request\n */\n getRequestContext() {\n const event = contextStore.getStore();\n if (!event) {\n return void 0;\n }\n const url = new URL(event.request.url);\n const context = {\n requestId: event.locals.requestId,\n method: event.request.method,\n url: url.pathname + url.search,\n ip: event.getClientAddress(),\n userAgent: event.request.headers.get(\"user-agent\") || void 0\n };\n if (this.logHeaders.length > 0) {\n const headers = {};\n for (const headerName of this.logHeaders) {\n const value = event.request.headers.get(headerName);\n if (value) {\n headers[headerName] = value;\n }\n }\n if (Object.keys(headers).length > 0) {\n context.headers = headers;\n }\n }\n return context;\n }\n /**\n * Format arguments for logging\n */\n formatArgs(args) {\n return args.map((arg) => {\n if (arg instanceof Error) {\n return (arg.stack ?? `${arg.name}: ${arg.message}`) + (arg.cause instanceof Error ? `\ncause: ${arg.cause.stack ?? `${arg.cause.name}: ${arg.cause.message}`}` : \"\");\n } else if (typeof arg === \"string\") {\n return arg;\n } else {\n return inspect(arg, { depth: 20, colors: !this.structuredLogging });\n }\n }).join(\" \");\n }\n /**\n * Internal log method that handles both structured and unstructured logging\n */\n _log(level, args) {\n const message = this.formatArgs(args);\n if (this.structuredLogging) {\n const logEntry = {\n level,\n time: (/* @__PURE__ */ new Date()).toISOString(),\n message,\n ...this.getRequestContext()\n };\n console.log(JSON.stringify(logEntry));\n } else {\n switch (level) {\n case \"error\":\n console.error(message);\n break;\n case \"warn\":\n console.warn(message);\n break;\n case \"debug\":\n console.debug(message);\n break;\n default:\n console.log(message);\n }\n }\n }\n /**\n * Log an informational message\n */\n log(...args) {\n this._log(\"info\", args);\n }\n /**\n * Log an informational message (alias for log)\n */\n info(...args) {\n this._log(\"info\", args);\n }\n /**\n * Log an error message\n */\n error(...args) {\n this._log(\"error\", args);\n }\n /**\n * Log a warning message\n */\n warn(...args) {\n this._log(\"warn\", args);\n }\n /**\n * Log a debug message\n */\n debug(...args) {\n this._log(\"debug\", args);\n }\n /**\n * Log an HTTP request\n */\n logRequest(statusCode, durationMs) {\n const duration = Math.round(durationMs * 100) / 100;\n if (this.structuredLogging) {\n const logEntry = {\n level: \"info\",\n time: (/* @__PURE__ */ new Date()).toISOString(),\n type: \"request\",\n statusCode,\n duration,\n ...this.getRequestContext()\n };\n console.log(JSON.stringify(logEntry));\n } else {\n const event = contextStore.getStore();\n if (event) {\n const url = new URL(event.request.url);\n const urlPath = url.pathname + url.search;\n const method = event.request.method;\n const message = `${statusCode} ${method} ${urlPath} ${duration}ms`;\n if (statusCode >= 400) {\n console.error(message);\n } else {\n console.log(message);\n }\n }\n }\n }\n}\nconst logger = new Logger();\nexport {\n contextStore as c,\n logger as l\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-D71iWOkl.js';
1
+ import { l as logger } from './logger-KF6KpVP6.js';
2
2
  import { MongoClient } from 'mongodb';
3
3
  import { URL } from 'url';
4
4
  import * as fs from 'node:fs';
@@ -273,4 +273,4 @@ async function getMongo() {
273
273
  }
274
274
 
275
275
  export { getCollectionJson as a, getMongo as g };
276
- //# sourceMappingURL=mongo-BogiTfnG.js.map
276
+ //# sourceMappingURL=mongo-Db8Vgimy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongo-BogiTfnG.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { l as logger } from \"./logger.js\";\nimport { 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}\nclass MongoClientWithMappings extends MongoClient {\n mappings = {};\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 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 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 }\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);\n this.clients.set(hostname, 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 client = this.clients.get(name) || this.clients.get(`${name}:27017`);\n if (!client) {\n throw new Error(`Client not found: ${name}`);\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.entries()).filter(([, client]) => client instanceof MongoClient).map(([name, client]) => ({\n name,\n _id: this.clientIds.get(name) || \"\",\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);\n this.clients.set(hostname, 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(name) {\n const connectionString = this.hostsManager.getHost(name);\n if (!connectionString) {\n throw new Error(`Connection string not found for client: ${name}`);\n }\n const oldClient = this.clients.get(name);\n if (oldClient) {\n oldClient.close()?.catch((err) => logger.error(`Error closing old client ${name}:`, err));\n }\n const newClient = new MongoClientWithMappings(connectionString);\n this.clients.set(name, newClient);\n await newClient.connect();\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":";;;;;;;AAMA,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,MAAM,uBAAuB,SAAS,WAAW,CAAC;AAClD,EAAE,QAAQ,GAAG,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,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,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,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,CAAC;AAC5D,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,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,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9E,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,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,YAAY,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM;AAC7H,MAAM,IAAI;AACV,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;AACzC,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,CAAC;AAC1D,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC1C,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,IAAI,EAAE;AAC9B,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5D,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/F,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,IAAI,uBAAuB,CAAC,gBAAgB,CAAC;AACnE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AACrC,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;AAC7B,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
+ {"version":3,"file":"mongo-Db8Vgimy.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { l as logger } from \"./logger.js\";\nimport { 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}\nclass MongoClientWithMappings extends MongoClient {\n mappings = {};\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 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 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 }\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);\n this.clients.set(hostname, 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 client = this.clients.get(name) || this.clients.get(`${name}:27017`);\n if (!client) {\n throw new Error(`Client not found: ${name}`);\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.entries()).filter(([, client]) => client instanceof MongoClient).map(([name, client]) => ({\n name,\n _id: this.clientIds.get(name) || \"\",\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);\n this.clients.set(hostname, 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(name) {\n const connectionString = this.hostsManager.getHost(name);\n if (!connectionString) {\n throw new Error(`Connection string not found for client: ${name}`);\n }\n const oldClient = this.clients.get(name);\n if (oldClient) {\n oldClient.close()?.catch((err) => logger.error(`Error closing old client ${name}:`, err));\n }\n const newClient = new MongoClientWithMappings(connectionString);\n this.clients.set(name, newClient);\n await newClient.connect();\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":"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"}
@@ -0,0 +1,19 @@
1
+ export { m as default } from './servers.remote-DrkuAWHP.js';
2
+ import './event-DVH-6ISX.js';
3
+ import './utils-kjxf7BZO.js';
4
+ import './shared-Buki-xt5.js';
5
+ import './index-Djsj11qr.js';
6
+ import './jsonParser-C3QUcODD.js';
7
+ import 'esprima';
8
+ import './JsonEncoder-B8eJRYZ4.js';
9
+ import 'mongodb';
10
+ import './logger-KF6KpVP6.js';
11
+ import 'async_hooks';
12
+ import 'node:util';
13
+ import './mongo-Db8Vgimy.js';
14
+ import 'url';
15
+ import 'node:fs';
16
+ import 'node:os';
17
+ import 'node:path';
18
+ import 'zod';
19
+ //# sourceMappingURL=remote-xxtqbu-AjxdDZZ_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-xxtqbu-AjxdDZZ_.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -2,10 +2,10 @@ import { g as get_request_store, w as with_request_store } from './event-DVH-6IS
2
2
  import './utils-kjxf7BZO.js';
3
3
  import { c as create_remote_cache_key, s as stringify_remote_arg } from './shared-Buki-xt5.js';
4
4
  import { e as error } from './index-Djsj11qr.js';
5
- import { p as parseJSON, v as validateAggregationPipeline, i as isEmptyObject } from './jsonParser-CraFXJs8.js';
6
- import { J as JsonEncoder } from './JsonEncoder-jJ2OBaud.js';
7
- import { g as getMongo } from './mongo-BogiTfnG.js';
8
- import { l as logger } from './logger-D71iWOkl.js';
5
+ import { p as parseJSON, v as validateAggregationPipeline, i as isEmptyObject } from './jsonParser-C3QUcODD.js';
6
+ import { J as JsonEncoder } from './JsonEncoder-B8eJRYZ4.js';
7
+ import { l as logger } from './logger-KF6KpVP6.js';
8
+ import { g as getMongo } from './mongo-Db8Vgimy.js';
9
9
  import { ObjectId } from 'mongodb';
10
10
  import { z } from 'zod';
11
11
 
@@ -336,12 +336,24 @@ function checkReadOnly() {
336
336
  error(403, "Read-only mode is enabled");
337
337
  }
338
338
  }
339
+ function sanitizeMongoUrl(url) {
340
+ try {
341
+ const urlObj = new URL(url.startsWith("mongodb") ? url : `mongodb://${url}`);
342
+ if (urlObj.username || urlObj.password) {
343
+ urlObj.username = "***";
344
+ urlObj.password = "***";
345
+ }
346
+ return urlObj.toString();
347
+ } catch {
348
+ return "***";
349
+ }
350
+ }
339
351
  const addServer = command(
340
352
  z.object({
341
353
  url: z.string()
342
354
  }),
343
355
  async ({ url }) => {
344
- logger.log("addServer called with payload:", { url });
356
+ logger.log("addServer called with payload:", { url: sanitizeMongoUrl(url) });
345
357
  const mongo = await getMongo();
346
358
  await mongo.addServer(url);
347
359
  return { ok: true };
@@ -436,8 +448,9 @@ const deleteDocument = command(
436
448
  checkReadOnly();
437
449
  const mongo = await getMongo();
438
450
  const client = mongo.getClient(server);
451
+ const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;
439
452
  await client.db(database).collection(collection).deleteOne({
440
- _id: new ObjectId(document)
453
+ _id
441
454
  });
442
455
  if (collection === "mongoku.mappings") {
443
456
  client.clearMappingsCache(database, document);
@@ -687,4 +700,4 @@ for (const [name, fn] of Object.entries(m)) {
687
700
  }
688
701
 
689
702
  export { deleteDocument as d, fetchMappedDocument as f, m, updateDocument as u };
690
- //# sourceMappingURL=servers.remote-C2HuT43p.js.map
703
+ //# sourceMappingURL=servers.remote-DrkuAWHP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servers.remote-DrkuAWHP.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 } 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 deleteDocument() {\n return deleteDocument;\n },\n get dropCollection() {\n return dropCollection;\n },\n get dropIndex() {\n return dropIndex;\n },\n get fetchMappedDocument() {\n return fetchMappedDocument;\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(),\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 const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;\n newValue._id = _id;\n await coll.insertOne(newValue);\n if (collection === \"mongoku.mappings\") {\n client.clearMappingsCache(database, document);\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 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 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 retryConnection = command(z.string(), async (serverName) => {\n logger.log(\"retryConnection called with payload:\", { serverName });\n const mongo = await getMongo();\n await mongo.reconnectClient(serverName);\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 }),\n async ({ server, database, collection, query: queryStr, sort, project, skip, limit }) => {\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 (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 };\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 };\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.object({\n collection: z.string(),\n on: z.string()\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 for (const mapping of mappings) {\n try {\n const coll = client.db(database).collection(mapping.collection);\n const query2 = { [mapping.on]: decodedValue };\n const document = await coll.findOne(query2, { maxTimeMS: mongo.getQueryTimeout() });\n if (document) {\n return {\n data: JsonEncoder.encode(document),\n collection: mapping.collection,\n error: null\n };\n }\n } catch (err) {\n logger.error(`Error fetching mapped document from ${mapping.collection}.${mapping.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);\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 fetchMappedDocument as f,\n m,\n updateDocument as u\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -2660,7 +2660,7 @@ const options = {
2660
2660
  <div class="error">
2661
2661
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
2662
2662
  },
2663
- version_hash: "1ox5bkv"
2663
+ version_hash: "1j7xagl"
2664
2664
  };
2665
2665
  async function get_hooks() {
2666
2666
  let handle;
@@ -2668,7 +2668,7 @@ async function get_hooks() {
2668
2668
  let handleError;
2669
2669
  let handleValidationError;
2670
2670
  let init;
2671
- ({ handle, handleFetch, handleError, handleValidationError, init } = await import('./chunks/hooks.server-CagAPNr2.js'));
2671
+ ({ handle, handleFetch, handleError, handleValidationError, init } = await import('./chunks/hooks.server-DRPXFQlL.js'));
2672
2672
  let reroute;
2673
2673
  let transport;
2674
2674
  return {