@himanshusinghs/mongodb-mcp-server 0.3.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 (582) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +609 -0
  3. package/dist/cjs/common/atlas/accessListUtils.d.ts +15 -0
  4. package/dist/cjs/common/atlas/accessListUtils.d.ts.map +1 -0
  5. package/dist/cjs/common/atlas/accessListUtils.js +53 -0
  6. package/dist/cjs/common/atlas/accessListUtils.js.map +1 -0
  7. package/dist/cjs/common/atlas/apiClient.d.ts +235 -0
  8. package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -0
  9. package/dist/cjs/common/atlas/apiClient.js +439 -0
  10. package/dist/cjs/common/atlas/apiClient.js.map +1 -0
  11. package/dist/cjs/common/atlas/apiClientError.d.ts +11 -0
  12. package/dist/cjs/common/atlas/apiClientError.d.ts.map +1 -0
  13. package/dist/cjs/common/atlas/apiClientError.js +54 -0
  14. package/dist/cjs/common/atlas/apiClientError.js.map +1 -0
  15. package/dist/cjs/common/atlas/cluster.d.ts +14 -0
  16. package/dist/cjs/common/atlas/cluster.d.ts.map +1 -0
  17. package/dist/cjs/common/atlas/cluster.js +75 -0
  18. package/dist/cjs/common/atlas/cluster.js.map +1 -0
  19. package/dist/cjs/common/atlas/roles.d.ts +8 -0
  20. package/dist/cjs/common/atlas/roles.d.ts.map +1 -0
  21. package/dist/cjs/common/atlas/roles.js +28 -0
  22. package/dist/cjs/common/atlas/roles.js.map +1 -0
  23. package/dist/cjs/common/config.d.ts +40 -0
  24. package/dist/cjs/common/config.d.ts.map +1 -0
  25. package/dist/cjs/common/config.js +300 -0
  26. package/dist/cjs/common/config.js.map +1 -0
  27. package/dist/cjs/common/connectionManager.d.ts +100 -0
  28. package/dist/cjs/common/connectionManager.d.ts.map +1 -0
  29. package/dist/cjs/common/connectionManager.js +243 -0
  30. package/dist/cjs/common/connectionManager.js.map +1 -0
  31. package/dist/cjs/common/errors.d.ts +10 -0
  32. package/dist/cjs/common/errors.d.ts.map +1 -0
  33. package/dist/cjs/common/errors.js +17 -0
  34. package/dist/cjs/common/errors.js.map +1 -0
  35. package/dist/cjs/common/exportsManager.d.ts +86 -0
  36. package/dist/cjs/common/exportsManager.d.ts.map +1 -0
  37. package/dist/cjs/common/exportsManager.js +288 -0
  38. package/dist/cjs/common/exportsManager.js.map +1 -0
  39. package/dist/cjs/common/logger.d.ts +118 -0
  40. package/dist/cjs/common/logger.d.ts.map +1 -0
  41. package/dist/cjs/common/logger.js +267 -0
  42. package/dist/cjs/common/logger.js.map +1 -0
  43. package/dist/cjs/common/managedTimeout.d.ts +6 -0
  44. package/dist/cjs/common/managedTimeout.d.ts.map +1 -0
  45. package/dist/cjs/common/managedTimeout.js +23 -0
  46. package/dist/cjs/common/managedTimeout.js.map +1 -0
  47. package/dist/cjs/common/packageInfo.d.ts +5 -0
  48. package/dist/cjs/common/packageInfo.d.ts.map +1 -0
  49. package/dist/cjs/common/packageInfo.js +9 -0
  50. package/dist/cjs/common/packageInfo.js.map +1 -0
  51. package/dist/cjs/common/session.d.ts +42 -0
  52. package/dist/cjs/common/session.d.ts.map +1 -0
  53. package/dist/cjs/common/session.js +106 -0
  54. package/dist/cjs/common/session.js.map +1 -0
  55. package/dist/cjs/common/sessionStore.d.ts +16 -0
  56. package/dist/cjs/common/sessionStore.d.ts.map +1 -0
  57. package/dist/cjs/common/sessionStore.js +99 -0
  58. package/dist/cjs/common/sessionStore.js.map +1 -0
  59. package/dist/cjs/helpers/connectionOptions.d.ts +25 -0
  60. package/dist/cjs/helpers/connectionOptions.d.ts.map +1 -0
  61. package/dist/cjs/helpers/connectionOptions.js +46 -0
  62. package/dist/cjs/helpers/connectionOptions.js.map +1 -0
  63. package/dist/cjs/helpers/container.d.ts +2 -0
  64. package/dist/cjs/helpers/container.d.ts.map +1 -0
  65. package/dist/cjs/helpers/container.js +34 -0
  66. package/dist/cjs/helpers/container.js.map +1 -0
  67. package/dist/cjs/helpers/deviceId.d.ts +24 -0
  68. package/dist/cjs/helpers/deviceId.d.ts.map +1 -0
  69. package/dist/cjs/helpers/deviceId.js +106 -0
  70. package/dist/cjs/helpers/deviceId.js.map +1 -0
  71. package/dist/cjs/helpers/generatePassword.d.ts +2 -0
  72. package/dist/cjs/helpers/generatePassword.d.ts.map +1 -0
  73. package/dist/cjs/helpers/generatePassword.js +12 -0
  74. package/dist/cjs/helpers/generatePassword.js.map +1 -0
  75. package/dist/cjs/helpers/indexCheck.d.ts +17 -0
  76. package/dist/cjs/helpers/indexCheck.d.ts.map +1 -0
  77. package/dist/cjs/helpers/indexCheck.js +68 -0
  78. package/dist/cjs/helpers/indexCheck.js.map +1 -0
  79. package/dist/cjs/index.d.ts +3 -0
  80. package/dist/cjs/index.d.ts.map +1 -0
  81. package/dist/cjs/index.js +131 -0
  82. package/dist/cjs/index.js.map +1 -0
  83. package/dist/cjs/lib.d.ts +9 -0
  84. package/dist/cjs/lib.d.ts.map +1 -0
  85. package/dist/cjs/lib.js +20 -0
  86. package/dist/cjs/lib.js.map +1 -0
  87. package/dist/cjs/package.json +1 -0
  88. package/dist/cjs/resources/common/config.d.ts +10 -0
  89. package/dist/cjs/resources/common/config.d.ts.map +1 -0
  90. package/dist/cjs/resources/common/config.js +46 -0
  91. package/dist/cjs/resources/common/config.js.map +1 -0
  92. package/dist/cjs/resources/common/debug.d.ts +17 -0
  93. package/dist/cjs/resources/common/debug.d.ts.map +1 -0
  94. package/dist/cjs/resources/common/debug.js +67 -0
  95. package/dist/cjs/resources/common/debug.js.map +1 -0
  96. package/dist/cjs/resources/common/exportedData.d.ts +15 -0
  97. package/dist/cjs/resources/common/exportedData.d.ts.map +1 -0
  98. package/dist/cjs/resources/common/exportedData.js +103 -0
  99. package/dist/cjs/resources/common/exportedData.js.map +1 -0
  100. package/dist/cjs/resources/resource.d.ts +44 -0
  101. package/dist/cjs/resources/resource.d.ts.map +1 -0
  102. package/dist/cjs/resources/resource.js +56 -0
  103. package/dist/cjs/resources/resource.js.map +1 -0
  104. package/dist/cjs/resources/resources.d.ts +5 -0
  105. package/dist/cjs/resources/resources.d.ts.map +1 -0
  106. package/dist/cjs/resources/resources.js +8 -0
  107. package/dist/cjs/resources/resources.js.map +1 -0
  108. package/dist/cjs/server.d.ts +40 -0
  109. package/dist/cjs/server.d.ts.map +1 -0
  110. package/dist/cjs/server.js +195 -0
  111. package/dist/cjs/server.js.map +1 -0
  112. package/dist/cjs/telemetry/constants.d.ts +6 -0
  113. package/dist/cjs/telemetry/constants.d.ts.map +1 -0
  114. package/dist/cjs/telemetry/constants.js +16 -0
  115. package/dist/cjs/telemetry/constants.js.map +1 -0
  116. package/dist/cjs/telemetry/eventCache.d.ts +34 -0
  117. package/dist/cjs/telemetry/eventCache.d.ts.map +1 -0
  118. package/dist/cjs/telemetry/eventCache.js +57 -0
  119. package/dist/cjs/telemetry/eventCache.js.map +1 -0
  120. package/dist/cjs/telemetry/telemetry.d.ts +50 -0
  121. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -0
  122. package/dist/cjs/telemetry/telemetry.js +145 -0
  123. package/dist/cjs/telemetry/telemetry.js.map +1 -0
  124. package/dist/cjs/telemetry/types.d.ts +70 -0
  125. package/dist/cjs/telemetry/types.d.ts.map +1 -0
  126. package/dist/cjs/telemetry/types.js +3 -0
  127. package/dist/cjs/telemetry/types.js.map +1 -0
  128. package/dist/cjs/tools/atlas/atlasTool.d.ts +18 -0
  129. package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -0
  130. package/dist/cjs/tools/atlas/atlasTool.js +92 -0
  131. package/dist/cjs/tools/atlas/atlasTool.js.map +1 -0
  132. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +18 -0
  133. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -0
  134. package/dist/cjs/tools/atlas/connect/connectCluster.js +215 -0
  135. package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -0
  136. package/dist/cjs/tools/atlas/create/createAccessList.d.ts +18 -0
  137. package/dist/cjs/tools/atlas/create/createAccessList.d.ts.map +1 -0
  138. package/dist/cjs/tools/atlas/create/createAccessList.js +66 -0
  139. package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -0
  140. package/dist/cjs/tools/atlas/create/createDBUser.d.ts +30 -0
  141. package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -0
  142. package/dist/cjs/tools/atlas/create/createDBUser.js +80 -0
  143. package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -0
  144. package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts +16 -0
  145. package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts.map +1 -0
  146. package/dist/cjs/tools/atlas/create/createFreeCluster.js +59 -0
  147. package/dist/cjs/tools/atlas/create/createFreeCluster.js.map +1 -0
  148. package/dist/cjs/tools/atlas/create/createProject.d.ts +15 -0
  149. package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -0
  150. package/dist/cjs/tools/atlas/create/createProject.js +60 -0
  151. package/dist/cjs/tools/atlas/create/createProject.js.map +1 -0
  152. package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts +14 -0
  153. package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -0
  154. package/dist/cjs/tools/atlas/read/inspectAccessList.js +43 -0
  155. package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -0
  156. package/dist/cjs/tools/atlas/read/inspectCluster.d.ts +16 -0
  157. package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -0
  158. package/dist/cjs/tools/atlas/read/inspectCluster.js +32 -0
  159. package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -0
  160. package/dist/cjs/tools/atlas/read/listAlerts.d.ts +14 -0
  161. package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -0
  162. package/dist/cjs/tools/atlas/read/listAlerts.js +46 -0
  163. package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -0
  164. package/dist/cjs/tools/atlas/read/listClusters.d.ts +16 -0
  165. package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -0
  166. package/dist/cjs/tools/atlas/read/listClusters.js +96 -0
  167. package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -0
  168. package/dist/cjs/tools/atlas/read/listDBUsers.d.ts +14 -0
  169. package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -0
  170. package/dist/cjs/tools/atlas/read/listDBUsers.js +58 -0
  171. package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -0
  172. package/dist/cjs/tools/atlas/read/listOrgs.d.ts +11 -0
  173. package/dist/cjs/tools/atlas/read/listOrgs.d.ts.map +1 -0
  174. package/dist/cjs/tools/atlas/read/listOrgs.js +36 -0
  175. package/dist/cjs/tools/atlas/read/listOrgs.js.map +1 -0
  176. package/dist/cjs/tools/atlas/read/listProjects.d.ts +15 -0
  177. package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -0
  178. package/dist/cjs/tools/atlas/read/listProjects.js +59 -0
  179. package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -0
  180. package/dist/cjs/tools/atlas/tools.d.ts +14 -0
  181. package/dist/cjs/tools/atlas/tools.d.ts.map +1 -0
  182. package/dist/cjs/tools/atlas/tools.js +30 -0
  183. package/dist/cjs/tools/atlas/tools.js.map +1 -0
  184. package/dist/cjs/tools/mongodb/connect/connect.d.ts +26 -0
  185. package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -0
  186. package/dist/cjs/tools/mongodb/connect/connect.js +86 -0
  187. package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -0
  188. package/dist/cjs/tools/mongodb/create/createCollection.d.ts +14 -0
  189. package/dist/cjs/tools/mongodb/create/createCollection.d.ts.map +1 -0
  190. package/dist/cjs/tools/mongodb/create/createCollection.js +27 -0
  191. package/dist/cjs/tools/mongodb/create/createCollection.js.map +1 -0
  192. package/dist/cjs/tools/mongodb/create/createIndex.d.ts +18 -0
  193. package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -0
  194. package/dist/cjs/tools/mongodb/create/createIndex.js +37 -0
  195. package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -0
  196. package/dist/cjs/tools/mongodb/create/insertMany.d.ts +16 -0
  197. package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -0
  198. package/dist/cjs/tools/mongodb/create/insertMany.js +37 -0
  199. package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -0
  200. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +16 -0
  201. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -0
  202. package/dist/cjs/tools/mongodb/delete/deleteMany.js +53 -0
  203. package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -0
  204. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts +14 -0
  205. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -0
  206. package/dist/cjs/tools/mongodb/delete/dropCollection.js +29 -0
  207. package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -0
  208. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts +13 -0
  209. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -0
  210. package/dist/cjs/tools/mongodb/delete/dropDatabase.js +29 -0
  211. package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -0
  212. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts +14 -0
  213. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -0
  214. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +36 -0
  215. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -0
  216. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts +16 -0
  217. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -0
  218. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js +61 -0
  219. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js.map +1 -0
  220. package/dist/cjs/tools/mongodb/metadata/dbStats.d.ts +13 -0
  221. package/dist/cjs/tools/mongodb/metadata/dbStats.d.ts.map +1 -0
  222. package/dist/cjs/tools/mongodb/metadata/dbStats.js +29 -0
  223. package/dist/cjs/tools/mongodb/metadata/dbStats.js.map +1 -0
  224. package/dist/cjs/tools/mongodb/metadata/explain.d.ts +89 -0
  225. package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -0
  226. package/dist/cjs/tools/mongodb/metadata/explain.js +80 -0
  227. package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -0
  228. package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts +13 -0
  229. package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts.map +1 -0
  230. package/dist/cjs/tools/mongodb/metadata/listCollections.js +35 -0
  231. package/dist/cjs/tools/mongodb/metadata/listCollections.js.map +1 -0
  232. package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts +11 -0
  233. package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -0
  234. package/dist/cjs/tools/mongodb/metadata/listDatabases.js +25 -0
  235. package/dist/cjs/tools/mongodb/metadata/listDatabases.js.map +1 -0
  236. package/dist/cjs/tools/mongodb/metadata/logs.d.ts +15 -0
  237. package/dist/cjs/tools/mongodb/metadata/logs.d.ts.map +1 -0
  238. package/dist/cjs/tools/mongodb/metadata/logs.js +49 -0
  239. package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -0
  240. package/dist/cjs/tools/mongodb/mongodbTool.d.ts +20 -0
  241. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -0
  242. package/dist/cjs/tools/mongodb/mongodbTool.js +130 -0
  243. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -0
  244. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +19 -0
  245. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -0
  246. package/dist/cjs/tools/mongodb/read/aggregate.js +40 -0
  247. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -0
  248. package/dist/cjs/tools/mongodb/read/collectionIndexes.d.ts +15 -0
  249. package/dist/cjs/tools/mongodb/read/collectionIndexes.d.ts.map +1 -0
  250. package/dist/cjs/tools/mongodb/read/collectionIndexes.js +40 -0
  251. package/dist/cjs/tools/mongodb/read/collectionIndexes.js.map +1 -0
  252. package/dist/cjs/tools/mongodb/read/count.d.ts +19 -0
  253. package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -0
  254. package/dist/cjs/tools/mongodb/read/count.js +51 -0
  255. package/dist/cjs/tools/mongodb/read/count.js.map +1 -0
  256. package/dist/cjs/tools/mongodb/read/export.d.ts +72 -0
  257. package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -0
  258. package/dist/cjs/tools/mongodb/read/export.js +119 -0
  259. package/dist/cjs/tools/mongodb/read/export.js.map +1 -0
  260. package/dist/cjs/tools/mongodb/read/find.d.ts +26 -0
  261. package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -0
  262. package/dist/cjs/tools/mongodb/read/find.js +53 -0
  263. package/dist/cjs/tools/mongodb/read/find.js.map +1 -0
  264. package/dist/cjs/tools/mongodb/tools.d.ts +23 -0
  265. package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -0
  266. package/dist/cjs/tools/mongodb/tools.js +48 -0
  267. package/dist/cjs/tools/mongodb/tools.js.map +1 -0
  268. package/dist/cjs/tools/mongodb/update/renameCollection.d.ts +18 -0
  269. package/dist/cjs/tools/mongodb/update/renameCollection.d.ts.map +1 -0
  270. package/dist/cjs/tools/mongodb/update/renameCollection.js +59 -0
  271. package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -0
  272. package/dist/cjs/tools/mongodb/update/updateMany.d.ts +18 -0
  273. package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -0
  274. package/dist/cjs/tools/mongodb/update/updateMany.js +78 -0
  275. package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -0
  276. package/dist/cjs/tools/tool.d.ts +49 -0
  277. package/dist/cjs/tools/tool.d.ts.map +1 -0
  278. package/dist/cjs/tools/tool.js +201 -0
  279. package/dist/cjs/tools/tool.js.map +1 -0
  280. package/dist/cjs/transports/base.d.ts +17 -0
  281. package/dist/cjs/transports/base.d.ts.map +1 -0
  282. package/dist/cjs/transports/base.js +74 -0
  283. package/dist/cjs/transports/base.js.map +1 -0
  284. package/dist/cjs/transports/stdio.d.ts +20 -0
  285. package/dist/cjs/transports/stdio.d.ts.map +1 -0
  286. package/dist/cjs/transports/stdio.js +70 -0
  287. package/dist/cjs/transports/stdio.js.map +1 -0
  288. package/dist/cjs/transports/streamableHttp.d.ts +14 -0
  289. package/dist/cjs/transports/streamableHttp.d.ts.map +1 -0
  290. package/dist/cjs/transports/streamableHttp.js +221 -0
  291. package/dist/cjs/transports/streamableHttp.js.map +1 -0
  292. package/dist/esm/common/atlas/accessListUtils.d.ts +15 -0
  293. package/dist/esm/common/atlas/accessListUtils.d.ts.map +1 -0
  294. package/dist/esm/common/atlas/accessListUtils.js +48 -0
  295. package/dist/esm/common/atlas/accessListUtils.js.map +1 -0
  296. package/dist/esm/common/atlas/apiClient.d.ts +235 -0
  297. package/dist/esm/common/atlas/apiClient.d.ts.map +1 -0
  298. package/dist/esm/common/atlas/apiClient.js +399 -0
  299. package/dist/esm/common/atlas/apiClient.js.map +1 -0
  300. package/dist/esm/common/atlas/apiClientError.d.ts +11 -0
  301. package/dist/esm/common/atlas/apiClientError.d.ts.map +1 -0
  302. package/dist/esm/common/atlas/apiClientError.js +50 -0
  303. package/dist/esm/common/atlas/apiClientError.js.map +1 -0
  304. package/dist/esm/common/atlas/cluster.d.ts +14 -0
  305. package/dist/esm/common/atlas/cluster.d.ts.map +1 -0
  306. package/dist/esm/common/atlas/cluster.js +70 -0
  307. package/dist/esm/common/atlas/cluster.js.map +1 -0
  308. package/dist/esm/common/atlas/roles.d.ts +8 -0
  309. package/dist/esm/common/atlas/roles.d.ts.map +1 -0
  310. package/dist/esm/common/atlas/roles.js +25 -0
  311. package/dist/esm/common/atlas/roles.js.map +1 -0
  312. package/dist/esm/common/config.d.ts +40 -0
  313. package/dist/esm/common/config.d.ts.map +1 -0
  314. package/dist/esm/common/config.js +291 -0
  315. package/dist/esm/common/config.js.map +1 -0
  316. package/dist/esm/common/connectionManager.d.ts +100 -0
  317. package/dist/esm/common/connectionManager.d.ts.map +1 -0
  318. package/dist/esm/common/connectionManager.js +234 -0
  319. package/dist/esm/common/connectionManager.js.map +1 -0
  320. package/dist/esm/common/errors.d.ts +10 -0
  321. package/dist/esm/common/errors.d.ts.map +1 -0
  322. package/dist/esm/common/errors.js +13 -0
  323. package/dist/esm/common/errors.js.map +1 -0
  324. package/dist/esm/common/exportsManager.d.ts +86 -0
  325. package/dist/esm/common/exportsManager.d.ts.map +1 -0
  326. package/dist/esm/common/exportsManager.js +278 -0
  327. package/dist/esm/common/exportsManager.js.map +1 -0
  328. package/dist/esm/common/logger.d.ts +118 -0
  329. package/dist/esm/common/logger.d.ts.map +1 -0
  330. package/dist/esm/common/logger.js +255 -0
  331. package/dist/esm/common/logger.js.map +1 -0
  332. package/dist/esm/common/managedTimeout.d.ts +6 -0
  333. package/dist/esm/common/managedTimeout.d.ts.map +1 -0
  334. package/dist/esm/common/managedTimeout.js +20 -0
  335. package/dist/esm/common/managedTimeout.js.map +1 -0
  336. package/dist/esm/common/packageInfo.d.ts +5 -0
  337. package/dist/esm/common/packageInfo.d.ts.map +1 -0
  338. package/dist/esm/common/packageInfo.js +6 -0
  339. package/dist/esm/common/packageInfo.js.map +1 -0
  340. package/dist/esm/common/session.d.ts +42 -0
  341. package/dist/esm/common/session.d.ts.map +1 -0
  342. package/dist/esm/common/session.js +99 -0
  343. package/dist/esm/common/session.js.map +1 -0
  344. package/dist/esm/common/sessionStore.d.ts +16 -0
  345. package/dist/esm/common/sessionStore.d.ts.map +1 -0
  346. package/dist/esm/common/sessionStore.js +95 -0
  347. package/dist/esm/common/sessionStore.js.map +1 -0
  348. package/dist/esm/helpers/connectionOptions.d.ts +25 -0
  349. package/dist/esm/helpers/connectionOptions.d.ts.map +1 -0
  350. package/dist/esm/helpers/connectionOptions.js +39 -0
  351. package/dist/esm/helpers/connectionOptions.js.map +1 -0
  352. package/dist/esm/helpers/container.d.ts +2 -0
  353. package/dist/esm/helpers/container.d.ts.map +1 -0
  354. package/dist/esm/helpers/container.js +28 -0
  355. package/dist/esm/helpers/container.js.map +1 -0
  356. package/dist/esm/helpers/deviceId.d.ts +24 -0
  357. package/dist/esm/helpers/deviceId.d.ts.map +1 -0
  358. package/dist/esm/helpers/deviceId.js +69 -0
  359. package/dist/esm/helpers/deviceId.js.map +1 -0
  360. package/dist/esm/helpers/generatePassword.d.ts +2 -0
  361. package/dist/esm/helpers/generatePassword.d.ts.map +1 -0
  362. package/dist/esm/helpers/generatePassword.js +9 -0
  363. package/dist/esm/helpers/generatePassword.js.map +1 -0
  364. package/dist/esm/helpers/indexCheck.d.ts +17 -0
  365. package/dist/esm/helpers/indexCheck.d.ts.map +1 -0
  366. package/dist/esm/helpers/indexCheck.js +63 -0
  367. package/dist/esm/helpers/indexCheck.js.map +1 -0
  368. package/dist/esm/index.d.ts +3 -0
  369. package/dist/esm/index.d.ts.map +1 -0
  370. package/dist/esm/index.js +126 -0
  371. package/dist/esm/index.js.map +1 -0
  372. package/dist/esm/lib.d.ts +9 -0
  373. package/dist/esm/lib.d.ts.map +1 -0
  374. package/dist/esm/lib.js +9 -0
  375. package/dist/esm/lib.js.map +1 -0
  376. package/dist/esm/package.json +1 -0
  377. package/dist/esm/resources/common/config.d.ts +10 -0
  378. package/dist/esm/resources/common/config.d.ts.map +1 -0
  379. package/dist/esm/resources/common/config.js +42 -0
  380. package/dist/esm/resources/common/config.js.map +1 -0
  381. package/dist/esm/resources/common/debug.d.ts +17 -0
  382. package/dist/esm/resources/common/debug.d.ts.map +1 -0
  383. package/dist/esm/resources/common/debug.js +63 -0
  384. package/dist/esm/resources/common/debug.js.map +1 -0
  385. package/dist/esm/resources/common/exportedData.d.ts +15 -0
  386. package/dist/esm/resources/common/exportedData.d.ts.map +1 -0
  387. package/dist/esm/resources/common/exportedData.js +99 -0
  388. package/dist/esm/resources/common/exportedData.js.map +1 -0
  389. package/dist/esm/resources/resource.d.ts +44 -0
  390. package/dist/esm/resources/resource.d.ts.map +1 -0
  391. package/dist/esm/resources/resource.js +52 -0
  392. package/dist/esm/resources/resource.js.map +1 -0
  393. package/dist/esm/resources/resources.d.ts +5 -0
  394. package/dist/esm/resources/resources.d.ts.map +1 -0
  395. package/dist/esm/resources/resources.js +5 -0
  396. package/dist/esm/resources/resources.js.map +1 -0
  397. package/dist/esm/server.d.ts +40 -0
  398. package/dist/esm/server.d.ts.map +1 -0
  399. package/dist/esm/server.js +188 -0
  400. package/dist/esm/server.js.map +1 -0
  401. package/dist/esm/telemetry/constants.d.ts +6 -0
  402. package/dist/esm/telemetry/constants.d.ts.map +1 -0
  403. package/dist/esm/telemetry/constants.js +13 -0
  404. package/dist/esm/telemetry/constants.js.map +1 -0
  405. package/dist/esm/telemetry/eventCache.d.ts +34 -0
  406. package/dist/esm/telemetry/eventCache.d.ts.map +1 -0
  407. package/dist/esm/telemetry/eventCache.js +53 -0
  408. package/dist/esm/telemetry/eventCache.js.map +1 -0
  409. package/dist/esm/telemetry/telemetry.d.ts +50 -0
  410. package/dist/esm/telemetry/telemetry.d.ts.map +1 -0
  411. package/dist/esm/telemetry/telemetry.js +141 -0
  412. package/dist/esm/telemetry/telemetry.js.map +1 -0
  413. package/dist/esm/telemetry/types.d.ts +70 -0
  414. package/dist/esm/telemetry/types.d.ts.map +1 -0
  415. package/dist/esm/telemetry/types.js +2 -0
  416. package/dist/esm/telemetry/types.js.map +1 -0
  417. package/dist/esm/tools/atlas/atlasTool.d.ts +18 -0
  418. package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -0
  419. package/dist/esm/tools/atlas/atlasTool.js +88 -0
  420. package/dist/esm/tools/atlas/atlasTool.js.map +1 -0
  421. package/dist/esm/tools/atlas/connect/connectCluster.d.ts +18 -0
  422. package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -0
  423. package/dist/esm/tools/atlas/connect/connectCluster.js +211 -0
  424. package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -0
  425. package/dist/esm/tools/atlas/create/createAccessList.d.ts +18 -0
  426. package/dist/esm/tools/atlas/create/createAccessList.d.ts.map +1 -0
  427. package/dist/esm/tools/atlas/create/createAccessList.js +62 -0
  428. package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -0
  429. package/dist/esm/tools/atlas/create/createDBUser.d.ts +30 -0
  430. package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -0
  431. package/dist/esm/tools/atlas/create/createDBUser.js +76 -0
  432. package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -0
  433. package/dist/esm/tools/atlas/create/createFreeCluster.d.ts +16 -0
  434. package/dist/esm/tools/atlas/create/createFreeCluster.d.ts.map +1 -0
  435. package/dist/esm/tools/atlas/create/createFreeCluster.js +55 -0
  436. package/dist/esm/tools/atlas/create/createFreeCluster.js.map +1 -0
  437. package/dist/esm/tools/atlas/create/createProject.d.ts +15 -0
  438. package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -0
  439. package/dist/esm/tools/atlas/create/createProject.js +56 -0
  440. package/dist/esm/tools/atlas/create/createProject.js.map +1 -0
  441. package/dist/esm/tools/atlas/read/inspectAccessList.d.ts +14 -0
  442. package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -0
  443. package/dist/esm/tools/atlas/read/inspectAccessList.js +39 -0
  444. package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -0
  445. package/dist/esm/tools/atlas/read/inspectCluster.d.ts +16 -0
  446. package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -0
  447. package/dist/esm/tools/atlas/read/inspectCluster.js +28 -0
  448. package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -0
  449. package/dist/esm/tools/atlas/read/listAlerts.d.ts +14 -0
  450. package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -0
  451. package/dist/esm/tools/atlas/read/listAlerts.js +42 -0
  452. package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -0
  453. package/dist/esm/tools/atlas/read/listClusters.d.ts +16 -0
  454. package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -0
  455. package/dist/esm/tools/atlas/read/listClusters.js +92 -0
  456. package/dist/esm/tools/atlas/read/listClusters.js.map +1 -0
  457. package/dist/esm/tools/atlas/read/listDBUsers.d.ts +14 -0
  458. package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -0
  459. package/dist/esm/tools/atlas/read/listDBUsers.js +54 -0
  460. package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -0
  461. package/dist/esm/tools/atlas/read/listOrgs.d.ts +11 -0
  462. package/dist/esm/tools/atlas/read/listOrgs.d.ts.map +1 -0
  463. package/dist/esm/tools/atlas/read/listOrgs.js +32 -0
  464. package/dist/esm/tools/atlas/read/listOrgs.js.map +1 -0
  465. package/dist/esm/tools/atlas/read/listProjects.d.ts +15 -0
  466. package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -0
  467. package/dist/esm/tools/atlas/read/listProjects.js +55 -0
  468. package/dist/esm/tools/atlas/read/listProjects.js.map +1 -0
  469. package/dist/esm/tools/atlas/tools.d.ts +14 -0
  470. package/dist/esm/tools/atlas/tools.d.ts.map +1 -0
  471. package/dist/esm/tools/atlas/tools.js +27 -0
  472. package/dist/esm/tools/atlas/tools.js.map +1 -0
  473. package/dist/esm/tools/mongodb/connect/connect.d.ts +26 -0
  474. package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -0
  475. package/dist/esm/tools/mongodb/connect/connect.js +79 -0
  476. package/dist/esm/tools/mongodb/connect/connect.js.map +1 -0
  477. package/dist/esm/tools/mongodb/create/createCollection.d.ts +14 -0
  478. package/dist/esm/tools/mongodb/create/createCollection.d.ts.map +1 -0
  479. package/dist/esm/tools/mongodb/create/createCollection.js +23 -0
  480. package/dist/esm/tools/mongodb/create/createCollection.js.map +1 -0
  481. package/dist/esm/tools/mongodb/create/createIndex.d.ts +18 -0
  482. package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -0
  483. package/dist/esm/tools/mongodb/create/createIndex.js +33 -0
  484. package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -0
  485. package/dist/esm/tools/mongodb/create/insertMany.d.ts +16 -0
  486. package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -0
  487. package/dist/esm/tools/mongodb/create/insertMany.js +33 -0
  488. package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -0
  489. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +16 -0
  490. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -0
  491. package/dist/esm/tools/mongodb/delete/deleteMany.js +49 -0
  492. package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -0
  493. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts +14 -0
  494. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -0
  495. package/dist/esm/tools/mongodb/delete/dropCollection.js +25 -0
  496. package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -0
  497. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts +13 -0
  498. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -0
  499. package/dist/esm/tools/mongodb/delete/dropDatabase.js +25 -0
  500. package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -0
  501. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts +14 -0
  502. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -0
  503. package/dist/esm/tools/mongodb/metadata/collectionSchema.js +32 -0
  504. package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -0
  505. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts +16 -0
  506. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -0
  507. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js +57 -0
  508. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js.map +1 -0
  509. package/dist/esm/tools/mongodb/metadata/dbStats.d.ts +13 -0
  510. package/dist/esm/tools/mongodb/metadata/dbStats.d.ts.map +1 -0
  511. package/dist/esm/tools/mongodb/metadata/dbStats.js +25 -0
  512. package/dist/esm/tools/mongodb/metadata/dbStats.js.map +1 -0
  513. package/dist/esm/tools/mongodb/metadata/explain.d.ts +89 -0
  514. package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -0
  515. package/dist/esm/tools/mongodb/metadata/explain.js +76 -0
  516. package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -0
  517. package/dist/esm/tools/mongodb/metadata/listCollections.d.ts +13 -0
  518. package/dist/esm/tools/mongodb/metadata/listCollections.d.ts.map +1 -0
  519. package/dist/esm/tools/mongodb/metadata/listCollections.js +31 -0
  520. package/dist/esm/tools/mongodb/metadata/listCollections.js.map +1 -0
  521. package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts +11 -0
  522. package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -0
  523. package/dist/esm/tools/mongodb/metadata/listDatabases.js +21 -0
  524. package/dist/esm/tools/mongodb/metadata/listDatabases.js.map +1 -0
  525. package/dist/esm/tools/mongodb/metadata/logs.d.ts +15 -0
  526. package/dist/esm/tools/mongodb/metadata/logs.d.ts.map +1 -0
  527. package/dist/esm/tools/mongodb/metadata/logs.js +45 -0
  528. package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -0
  529. package/dist/esm/tools/mongodb/mongodbTool.d.ts +20 -0
  530. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -0
  531. package/dist/esm/tools/mongodb/mongodbTool.js +126 -0
  532. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -0
  533. package/dist/esm/tools/mongodb/read/aggregate.d.ts +19 -0
  534. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -0
  535. package/dist/esm/tools/mongodb/read/aggregate.js +36 -0
  536. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -0
  537. package/dist/esm/tools/mongodb/read/collectionIndexes.d.ts +15 -0
  538. package/dist/esm/tools/mongodb/read/collectionIndexes.d.ts.map +1 -0
  539. package/dist/esm/tools/mongodb/read/collectionIndexes.js +36 -0
  540. package/dist/esm/tools/mongodb/read/collectionIndexes.js.map +1 -0
  541. package/dist/esm/tools/mongodb/read/count.d.ts +19 -0
  542. package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -0
  543. package/dist/esm/tools/mongodb/read/count.js +47 -0
  544. package/dist/esm/tools/mongodb/read/count.js.map +1 -0
  545. package/dist/esm/tools/mongodb/read/export.d.ts +72 -0
  546. package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -0
  547. package/dist/esm/tools/mongodb/read/export.js +112 -0
  548. package/dist/esm/tools/mongodb/read/export.js.map +1 -0
  549. package/dist/esm/tools/mongodb/read/find.d.ts +26 -0
  550. package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -0
  551. package/dist/esm/tools/mongodb/read/find.js +49 -0
  552. package/dist/esm/tools/mongodb/read/find.js.map +1 -0
  553. package/dist/esm/tools/mongodb/tools.d.ts +23 -0
  554. package/dist/esm/tools/mongodb/tools.d.ts.map +1 -0
  555. package/dist/esm/tools/mongodb/tools.js +45 -0
  556. package/dist/esm/tools/mongodb/tools.js.map +1 -0
  557. package/dist/esm/tools/mongodb/update/renameCollection.d.ts +18 -0
  558. package/dist/esm/tools/mongodb/update/renameCollection.d.ts.map +1 -0
  559. package/dist/esm/tools/mongodb/update/renameCollection.js +55 -0
  560. package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -0
  561. package/dist/esm/tools/mongodb/update/updateMany.d.ts +18 -0
  562. package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -0
  563. package/dist/esm/tools/mongodb/update/updateMany.js +74 -0
  564. package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -0
  565. package/dist/esm/tools/tool.d.ts +49 -0
  566. package/dist/esm/tools/tool.d.ts.map +1 -0
  567. package/dist/esm/tools/tool.js +196 -0
  568. package/dist/esm/tools/tool.js.map +1 -0
  569. package/dist/esm/transports/base.d.ts +17 -0
  570. package/dist/esm/transports/base.d.ts.map +1 -0
  571. package/dist/esm/transports/base.js +70 -0
  572. package/dist/esm/transports/base.js.map +1 -0
  573. package/dist/esm/transports/stdio.d.ts +20 -0
  574. package/dist/esm/transports/stdio.d.ts.map +1 -0
  575. package/dist/esm/transports/stdio.js +64 -0
  576. package/dist/esm/transports/stdio.js.map +1 -0
  577. package/dist/esm/transports/streamableHttp.d.ts +14 -0
  578. package/dist/esm/transports/streamableHttp.d.ts.map +1 -0
  579. package/dist/esm/transports/streamableHttp.js +214 -0
  580. package/dist/esm/transports/streamableHttp.js.map +1 -0
  581. package/dist/index.js +1 -0
  582. package/package.json +126 -0
@@ -0,0 +1,25 @@
1
+ export interface AppNameComponents {
2
+ appName: string;
3
+ deviceId?: Promise<string>;
4
+ clientName?: string;
5
+ }
6
+ /**
7
+ * Sets the appName parameter with the extended format: appName--deviceId--clientName
8
+ * Only sets the appName if it's not already present in the connection string
9
+ * @param connectionString - The connection string to modify
10
+ * @param components - The components to build the appName from
11
+ * @returns The modified connection string
12
+ */
13
+ export declare function setAppNameParamIfMissing({ connectionString, components, }: {
14
+ connectionString: string;
15
+ components: AppNameComponents;
16
+ }): Promise<string>;
17
+ /**
18
+ * Validates the connection string
19
+ * @param connectionString - The connection string to validate
20
+ * @param looseValidation - Whether to allow loose validation
21
+ * @returns void
22
+ * @throws Error if the connection string is invalid
23
+ */
24
+ export declare function validateConnectionString(connectionString: string, looseValidation: boolean): void;
25
+ //# sourceMappingURL=connectionOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionOptions.d.ts","sourceRoot":"","sources":["../../../src/helpers/connectionOptions.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,EAC3C,gBAAgB,EAChB,UAAU,GACb,EAAE;IACC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,iBAAiB,CAAC;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI,CAQjG"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setAppNameParamIfMissing = setAppNameParamIfMissing;
7
+ exports.validateConnectionString = validateConnectionString;
8
+ const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
9
+ /**
10
+ * Sets the appName parameter with the extended format: appName--deviceId--clientName
11
+ * Only sets the appName if it's not already present in the connection string
12
+ * @param connectionString - The connection string to modify
13
+ * @param components - The components to build the appName from
14
+ * @returns The modified connection string
15
+ */
16
+ async function setAppNameParamIfMissing({ connectionString, components, }) {
17
+ const connectionStringUrl = new mongodb_connection_string_url_1.default(connectionString);
18
+ const searchParams = connectionStringUrl.typedSearchParams();
19
+ // Only set appName if it's not already present
20
+ if (searchParams.has("appName")) {
21
+ return connectionStringUrl.toString();
22
+ }
23
+ const appName = components.appName || "unknown";
24
+ const deviceId = components.deviceId ? await components.deviceId : "unknown";
25
+ const clientName = components.clientName || "unknown";
26
+ // Build the extended appName format: appName--deviceId--clientName
27
+ const extendedAppName = `${appName}--${deviceId}--${clientName}`;
28
+ searchParams.set("appName", extendedAppName);
29
+ return connectionStringUrl.toString();
30
+ }
31
+ /**
32
+ * Validates the connection string
33
+ * @param connectionString - The connection string to validate
34
+ * @param looseValidation - Whether to allow loose validation
35
+ * @returns void
36
+ * @throws Error if the connection string is invalid
37
+ */
38
+ function validateConnectionString(connectionString, looseValidation) {
39
+ try {
40
+ new mongodb_connection_string_url_1.default(connectionString, { looseValidation });
41
+ }
42
+ catch (error) {
43
+ throw new Error(`Invalid connection string with error: ${error instanceof Error ? error.message : String(error)}`);
44
+ }
45
+ }
46
+ //# sourceMappingURL=connectionOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionOptions.js","sourceRoot":"","sources":["../../../src/helpers/connectionOptions.ts"],"names":[],"mappings":";;;;;AAgBA,4DAyBC;AASD,4DAQC;AAzDD,kGAA6D;AAQ7D;;;;;;GAMG;AACI,KAAK,UAAU,wBAAwB,CAAC,EAC3C,gBAAgB,EAChB,UAAU,GAIb;IACG,MAAM,mBAAmB,GAAG,IAAI,uCAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,EAAsB,CAAC;IAEjF,+CAA+C;IAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,SAAS,CAAC;IAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC;IAEtD,mEAAmE;IACnE,MAAM,eAAe,GAAG,GAAG,OAAO,KAAK,QAAQ,KAAK,UAAU,EAAE,CAAC;IAEjE,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE7C,OAAO,mBAAmB,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,gBAAwB,EAAE,eAAwB;IACvF,IAAI,CAAC;QACD,IAAI,uCAAgB,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpG,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function detectContainerEnv(): Promise<boolean>;
2
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/helpers/container.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8B3D"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectContainerEnv = detectContainerEnv;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ let containerEnv;
9
+ async function detectContainerEnv() {
10
+ if (containerEnv !== undefined) {
11
+ return containerEnv;
12
+ }
13
+ const detect = async function () {
14
+ if (process.platform !== "linux") {
15
+ return false; // we only support linux containers for now
16
+ }
17
+ if (process.env.container) {
18
+ return true;
19
+ }
20
+ const exists = await Promise.all(["/.dockerenv", "/run/.containerenv", "/var/run/.containerenv"].map(async (file) => {
21
+ try {
22
+ await promises_1.default.access(file);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }));
29
+ return exists.includes(true);
30
+ };
31
+ containerEnv = await detect();
32
+ return containerEnv;
33
+ }
34
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/helpers/container.ts"],"names":[],"mappings":";;;;;AAIA,gDA8BC;AAlCD,2DAA6B;AAE7B,IAAI,YAAiC,CAAC;AAE/B,KAAK,UAAU,kBAAkB;IACpC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK;QAChB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,2CAA2C;QAC7D,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,CAAC,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/E,IAAI,CAAC;gBACD,MAAM,kBAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC;IAC9B,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { LoggerBase } from "../common/logger.js";
2
+ export declare const DEVICE_ID_TIMEOUT = 3000;
3
+ export declare class DeviceId {
4
+ private static readonly UnknownDeviceId;
5
+ private deviceIdPromise;
6
+ private abortController;
7
+ private logger;
8
+ private readonly getMachineId;
9
+ private timeout;
10
+ private constructor();
11
+ private initialize;
12
+ static create(logger: LoggerBase, timeout?: number): DeviceId;
13
+ /**
14
+ * Closes the device ID calculation promise and abort controller.
15
+ */
16
+ close(): void;
17
+ /**
18
+ * Gets the device ID, waiting for the calculation to complete if necessary.
19
+ * @returns Promise that resolves to the device ID string
20
+ */
21
+ get(): Promise<string>;
22
+ private handleDeviceIdError;
23
+ }
24
+ //# sourceMappingURL=deviceId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceId.d.ts","sourceRoot":"","sources":["../../../src/helpers/deviceId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAErE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAaP,OAAO,CAAC,UAAU;WAWJ,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ;IAOpE;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;OAGG;IACI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,mBAAmB;CAwB9B"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DeviceId = exports.DEVICE_ID_TIMEOUT = void 0;
37
+ const device_id_1 = require("@mongodb-js/device-id");
38
+ const logger_js_1 = require("../common/logger.js");
39
+ exports.DEVICE_ID_TIMEOUT = 3000;
40
+ class DeviceId {
41
+ constructor(logger, timeout = exports.DEVICE_ID_TIMEOUT) {
42
+ this.logger = logger;
43
+ this.timeout = timeout;
44
+ this.getMachineId = async () => {
45
+ const nodeMachineId = await Promise.resolve().then(() => __importStar(require("node-machine-id")));
46
+ const machineId = nodeMachineId.default?.machineId || nodeMachineId.machineId;
47
+ return machineId(true);
48
+ };
49
+ this.abortController = new AbortController();
50
+ this.deviceIdPromise = DeviceId.UnknownDeviceId;
51
+ }
52
+ initialize() {
53
+ this.deviceIdPromise = (0, device_id_1.getDeviceId)({
54
+ getMachineId: this.getMachineId,
55
+ onError: (reason, error) => {
56
+ this.handleDeviceIdError(reason, String(error));
57
+ },
58
+ timeout: this.timeout,
59
+ abortSignal: this.abortController.signal,
60
+ });
61
+ }
62
+ static create(logger, timeout) {
63
+ const instance = new DeviceId(logger, timeout ?? exports.DEVICE_ID_TIMEOUT);
64
+ instance.initialize();
65
+ return instance;
66
+ }
67
+ /**
68
+ * Closes the device ID calculation promise and abort controller.
69
+ */
70
+ close() {
71
+ this.abortController.abort();
72
+ }
73
+ /**
74
+ * Gets the device ID, waiting for the calculation to complete if necessary.
75
+ * @returns Promise that resolves to the device ID string
76
+ */
77
+ get() {
78
+ return this.deviceIdPromise;
79
+ }
80
+ handleDeviceIdError(reason, error) {
81
+ this.deviceIdPromise = DeviceId.UnknownDeviceId;
82
+ switch (reason) {
83
+ case "resolutionError":
84
+ this.logger.debug({
85
+ id: logger_js_1.LogId.deviceIdResolutionError,
86
+ context: "deviceId",
87
+ message: `Resolution error: ${String(error)}`,
88
+ });
89
+ break;
90
+ case "timeout":
91
+ this.logger.debug({
92
+ id: logger_js_1.LogId.deviceIdTimeout,
93
+ context: "deviceId",
94
+ message: "Device ID retrieval timed out",
95
+ noRedaction: true,
96
+ });
97
+ break;
98
+ case "abort":
99
+ // No need to log in the case of 'abort' errors
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ exports.DeviceId = DeviceId;
105
+ DeviceId.UnknownDeviceId = Promise.resolve("unknown");
106
+ //# sourceMappingURL=deviceId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceId.js","sourceRoot":"","sources":["../../../src/helpers/deviceId.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAoD;AAEpD,mDAA4C;AAE/B,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,MAAa,QAAQ;IASjB,YAAoB,MAAkB,EAAE,UAAkB,yBAAiB;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,IAAqB,EAAE;YAC5C,MAAM,aAAa,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YACtD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC;YAC9E,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IACpD,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,eAAe,GAAG,IAAA,uBAAW,EAAC;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;SAC3C,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAkB,EAAE,OAAgB;QACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,yBAAiB,CAAC,CAAC;QACpE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEtB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEO,mBAAmB,CAAC,MAAc,EAAE,KAAa;QACrD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAEhD,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,iBAAiB;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACd,EAAE,EAAE,iBAAK,CAAC,uBAAuB;oBACjC,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,qBAAqB,MAAM,CAAC,KAAK,CAAC,EAAE;iBAChD,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACd,EAAE,EAAE,iBAAK,CAAC,eAAe;oBACzB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,+BAA+B;oBACxC,WAAW,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,OAAO;gBACR,+CAA+C;gBAC/C,MAAM;QACd,CAAC;IACL,CAAC;;AA9EL,4BA+EC;AA9E2B,wBAAe,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateSecurePassword(): Promise<string>;
2
+ //# sourceMappingURL=generatePassword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePassword.d.ts","sourceRoot":"","sources":["../../../src/helpers/generatePassword.ts"],"names":[],"mappings":"AAKA,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAI9D"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSecurePassword = generateSecurePassword;
4
+ const crypto_1 = require("crypto");
5
+ const util_1 = require("util");
6
+ const randomBytesAsync = (0, util_1.promisify)(crypto_1.randomBytes);
7
+ async function generateSecurePassword() {
8
+ const buf = await randomBytesAsync(16);
9
+ const pass = buf.toString("base64url");
10
+ return pass;
11
+ }
12
+ //# sourceMappingURL=generatePassword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePassword.js","sourceRoot":"","sources":["../../../src/helpers/generatePassword.ts"],"names":[],"mappings":";;AAKA,wDAIC;AATD,mCAAqC;AACrC,+BAAiC;AAEjC,MAAM,gBAAgB,GAAG,IAAA,gBAAS,EAAC,oBAAW,CAAC,CAAC;AAEzC,KAAK,UAAU,sBAAsB;IACxC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Document } from "mongodb";
2
+ import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
3
+ /**
4
+ * Check if the query plan uses an index
5
+ * @param explainResult The result of the explain query
6
+ * @returns true if an index is used, false if it's a full collection scan
7
+ */
8
+ export declare function usesIndex(explainResult: Document): boolean;
9
+ /**
10
+ * Generate an error message for index check failure
11
+ */
12
+ export declare function getIndexCheckErrorMessage(database: string, collection: string, operation: string): string;
13
+ /**
14
+ * Generic function to perform index usage check
15
+ */
16
+ export declare function checkIndexUsage(provider: NodeDriverServiceProvider, database: string, collection: string, operation: string, explainCallback: () => Promise<Document>): Promise<void>;
17
+ //# sourceMappingURL=indexCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexCheck.d.ts","sourceRoot":"","sources":["../../../src/helpers/indexCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAGvF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAoC1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzG;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usesIndex = usesIndex;
4
+ exports.getIndexCheckErrorMessage = getIndexCheckErrorMessage;
5
+ exports.checkIndexUsage = checkIndexUsage;
6
+ const errors_js_1 = require("../common/errors.js");
7
+ /**
8
+ * Check if the query plan uses an index
9
+ * @param explainResult The result of the explain query
10
+ * @returns true if an index is used, false if it's a full collection scan
11
+ */
12
+ function usesIndex(explainResult) {
13
+ const queryPlanner = explainResult?.queryPlanner;
14
+ const winningPlan = queryPlanner?.winningPlan;
15
+ const stage = winningPlan?.stage;
16
+ const inputStage = winningPlan?.inputStage;
17
+ // Check for index scan stages (including MongoDB 8.0+ stages)
18
+ const indexScanStages = [
19
+ "IXSCAN",
20
+ "COUNT_SCAN",
21
+ "EXPRESS_IXSCAN",
22
+ "EXPRESS_CLUSTERED_IXSCAN",
23
+ "EXPRESS_UPDATE",
24
+ "EXPRESS_DELETE",
25
+ "IDHACK",
26
+ ];
27
+ if (stage && indexScanStages.includes(stage)) {
28
+ return true;
29
+ }
30
+ if (inputStage && inputStage.stage && indexScanStages.includes(inputStage.stage)) {
31
+ return true;
32
+ }
33
+ // Recursively check deeper stages
34
+ if (inputStage && inputStage.inputStage) {
35
+ return usesIndex({ queryPlanner: { winningPlan: inputStage } });
36
+ }
37
+ if (stage === "COLLSCAN") {
38
+ return false;
39
+ }
40
+ // Default to false (conservative approach)
41
+ return false;
42
+ }
43
+ /**
44
+ * Generate an error message for index check failure
45
+ */
46
+ function getIndexCheckErrorMessage(database, collection, operation) {
47
+ return `Index check failed: The ${operation} operation on "${database}.${collection}" performs a collection scan (COLLSCAN) instead of using an index. Consider adding an index for better performance. Use 'explain' tool for query plan analysis or 'collection-indexes' to view existing indexes. To disable this check, set MDB_MCP_INDEX_CHECK to false.`;
48
+ }
49
+ /**
50
+ * Generic function to perform index usage check
51
+ */
52
+ async function checkIndexUsage(provider, database, collection, operation, explainCallback) {
53
+ try {
54
+ const explainResult = await explainCallback();
55
+ if (!usesIndex(explainResult)) {
56
+ throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.ForbiddenCollscan, getIndexCheckErrorMessage(database, collection, operation));
57
+ }
58
+ }
59
+ catch (error) {
60
+ if (error instanceof errors_js_1.MongoDBError && error.code === errors_js_1.ErrorCodes.ForbiddenCollscan) {
61
+ throw error;
62
+ }
63
+ // If explain itself fails, log but do not prevent query execution
64
+ // This avoids blocking normal queries in special cases (e.g., permission issues)
65
+ console.warn(`Index check failed to execute explain for ${operation} on ${database}.${collection}:`, error);
66
+ }
67
+ }
68
+ //# sourceMappingURL=indexCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexCheck.js","sourceRoot":"","sources":["../../../src/helpers/indexCheck.ts"],"names":[],"mappings":";;AASA,8BAoCC;AAKD,8DAEC;AAKD,0CAyBC;AAhFD,mDAA+D;AAE/D;;;;GAIG;AACH,SAAgB,SAAS,CAAC,aAAuB;IAC7C,MAAM,YAAY,GAAG,aAAa,EAAE,YAAoC,CAAC;IACzE,MAAM,WAAW,GAAG,YAAY,EAAE,WAAmC,CAAC;IACtE,MAAM,KAAK,GAAG,WAAW,EAAE,KAA2B,CAAC;IACvD,MAAM,UAAU,GAAG,WAAW,EAAE,UAAkC,CAAC;IAEnE,8DAA8D;IAC9D,MAAM,eAAe,GAAG;QACpB,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,0BAA0B;QAC1B,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;KACX,CAAC;IAEF,IAAI,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAe,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,2CAA2C;IAC3C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,QAAgB,EAAE,UAAkB,EAAE,SAAiB;IAC7F,OAAO,2BAA2B,SAAS,kBAAkB,QAAQ,IAAI,UAAU,2QAA2Q,CAAC;AACnW,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CACjC,QAAmC,EACnC,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,eAAwC;IAExC,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,wBAAY,CAClB,sBAAU,CAAC,iBAAiB,EAC5B,yBAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAC7D,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,wBAAY,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAU,CAAC,iBAAiB,EAAE,CAAC;YAC/E,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,kEAAkE;QAClE,iFAAiF;QACjF,OAAO,CAAC,IAAI,CAAC,6CAA6C,SAAS,OAAO,QAAQ,IAAI,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;IAChH,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ function enableFipsIfRequested() {
8
+ let fipsError;
9
+ const tlsFIPSMode = process.argv.includes("--tlsFIPSMode");
10
+ if (tlsFIPSMode) {
11
+ try {
12
+ // eslint-disable-next-line
13
+ require("crypto").setFips(1);
14
+ }
15
+ catch (err) {
16
+ fipsError ?? (fipsError = err);
17
+ }
18
+ }
19
+ if (tlsFIPSMode) {
20
+ if (!fipsError && !crypto_1.default.getFips()) {
21
+ fipsError = new Error("FIPS mode not enabled despite requested due to unknown error.");
22
+ }
23
+ }
24
+ if (fipsError) {
25
+ if (process.config.variables.node_shared_openssl) {
26
+ console.error("Could not enable FIPS mode. Please ensure that your system OpenSSL installation supports FIPS.");
27
+ }
28
+ else {
29
+ console.error("Could not enable FIPS mode. This installation does not appear to support FIPS.");
30
+ }
31
+ console.error("Error details:");
32
+ console.error(fipsError);
33
+ process.exit(1);
34
+ }
35
+ }
36
+ enableFipsIfRequested();
37
+ const logger_js_1 = require("./common/logger.js");
38
+ const config_js_1 = require("./common/config.js");
39
+ const crypto_1 = __importDefault(require("crypto"));
40
+ const packageInfo_js_1 = require("./common/packageInfo.js");
41
+ const stdio_js_1 = require("./transports/stdio.js");
42
+ const streamableHttp_js_1 = require("./transports/streamableHttp.js");
43
+ const devtools_proxy_support_1 = require("@mongodb-js/devtools-proxy-support");
44
+ async function main() {
45
+ (0, devtools_proxy_support_1.systemCA)().catch(() => undefined); // load system CA asynchronously as in mongosh
46
+ assertHelpMode();
47
+ assertVersionMode();
48
+ const transportRunner = config_js_1.config.transport === "stdio" ? new stdio_js_1.StdioRunner(config_js_1.config) : new streamableHttp_js_1.StreamableHttpRunner(config_js_1.config);
49
+ const shutdown = () => {
50
+ transportRunner.logger.info({
51
+ id: logger_js_1.LogId.serverCloseRequested,
52
+ context: "server",
53
+ message: `Server close requested`,
54
+ });
55
+ transportRunner
56
+ .close()
57
+ .then(() => {
58
+ transportRunner.logger.info({
59
+ id: logger_js_1.LogId.serverClosed,
60
+ context: "server",
61
+ message: `Server closed`,
62
+ });
63
+ process.exit(0);
64
+ })
65
+ .catch((error) => {
66
+ transportRunner.logger.error({
67
+ id: logger_js_1.LogId.serverCloseFailure,
68
+ context: "server",
69
+ message: `Error closing server: ${error}`,
70
+ });
71
+ process.exit(1);
72
+ });
73
+ };
74
+ process.on("SIGINT", shutdown);
75
+ process.on("SIGABRT", shutdown);
76
+ process.on("SIGTERM", shutdown);
77
+ process.on("SIGQUIT", shutdown);
78
+ try {
79
+ await transportRunner.start();
80
+ }
81
+ catch (error) {
82
+ transportRunner.logger.info({
83
+ id: logger_js_1.LogId.serverCloseRequested,
84
+ context: "server",
85
+ message: `Closing server due to error: ${error}`,
86
+ noRedaction: true,
87
+ });
88
+ try {
89
+ await transportRunner.close();
90
+ transportRunner.logger.info({
91
+ id: logger_js_1.LogId.serverClosed,
92
+ context: "server",
93
+ message: "Server closed",
94
+ });
95
+ }
96
+ catch (error) {
97
+ transportRunner.logger.error({
98
+ id: logger_js_1.LogId.serverCloseFailure,
99
+ context: "server",
100
+ message: `Error closing server: ${error}`,
101
+ });
102
+ }
103
+ throw error;
104
+ }
105
+ }
106
+ main().catch((error) => {
107
+ // At this point, we may be in a very broken state, so we can't rely on the logger
108
+ // being functional. Instead, create a brand new ConsoleLogger and log the error
109
+ // to the console.
110
+ const logger = new logger_js_1.ConsoleLogger();
111
+ logger.emergency({
112
+ id: logger_js_1.LogId.serverStartFailure,
113
+ context: "server",
114
+ message: `Fatal error running server: ${error}`,
115
+ });
116
+ process.exit(1);
117
+ });
118
+ function assertHelpMode() {
119
+ if (config_js_1.config.help) {
120
+ console.log("For usage information refer to the README.md:");
121
+ console.log("https://github.com/mongodb-js/mongodb-mcp-server?tab=readme-ov-file#quick-start");
122
+ process.exit(0);
123
+ }
124
+ }
125
+ function assertVersionMode() {
126
+ if (config_js_1.config.version) {
127
+ console.log(packageInfo_js_1.packageInfo.version);
128
+ process.exit(0);
129
+ }
130
+ }
131
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { Server, type ServerOptions } from "./server.js";
2
+ export { Session, type SessionOptions } from "./common/session.js";
3
+ export { defaultUserConfig, type UserConfig } from "./common/config.js";
4
+ export { LoggerBase, type LogPayload, type LoggerType, type LogLevel } from "./common/logger.js";
5
+ export { StreamableHttpRunner } from "./transports/streamableHttp.js";
6
+ export { ConnectionManager, type AnyConnectionState, type ConnectionState, type ConnectionStateDisconnected, type ConnectionStateErrored, type ConnectionManagerFactoryFn, } from "./common/connectionManager.js";
7
+ export { Telemetry } from "./telemetry/telemetry.js";
8
+ export { packageInfo } from "./common/packageInfo.js";
9
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACH,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageInfo = exports.Telemetry = exports.ConnectionManager = exports.StreamableHttpRunner = exports.LoggerBase = exports.defaultUserConfig = exports.Session = exports.Server = void 0;
4
+ var server_js_1 = require("./server.js");
5
+ Object.defineProperty(exports, "Server", { enumerable: true, get: function () { return server_js_1.Server; } });
6
+ var session_js_1 = require("./common/session.js");
7
+ Object.defineProperty(exports, "Session", { enumerable: true, get: function () { return session_js_1.Session; } });
8
+ var config_js_1 = require("./common/config.js");
9
+ Object.defineProperty(exports, "defaultUserConfig", { enumerable: true, get: function () { return config_js_1.defaultUserConfig; } });
10
+ var logger_js_1 = require("./common/logger.js");
11
+ Object.defineProperty(exports, "LoggerBase", { enumerable: true, get: function () { return logger_js_1.LoggerBase; } });
12
+ var streamableHttp_js_1 = require("./transports/streamableHttp.js");
13
+ Object.defineProperty(exports, "StreamableHttpRunner", { enumerable: true, get: function () { return streamableHttp_js_1.StreamableHttpRunner; } });
14
+ var connectionManager_js_1 = require("./common/connectionManager.js");
15
+ Object.defineProperty(exports, "ConnectionManager", { enumerable: true, get: function () { return connectionManager_js_1.ConnectionManager; } });
16
+ var telemetry_js_1 = require("./telemetry/telemetry.js");
17
+ Object.defineProperty(exports, "Telemetry", { enumerable: true, get: function () { return telemetry_js_1.Telemetry; } });
18
+ var packageInfo_js_1 = require("./common/packageInfo.js");
19
+ Object.defineProperty(exports, "packageInfo", { enumerable: true, get: function () { return packageInfo_js_1.packageInfo; } });
20
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AAAhD,mGAAA,MAAM,OAAA;AACf,kDAAmE;AAA1D,qGAAA,OAAO,OAAA;AAChB,gDAAwE;AAA/D,8GAAA,iBAAiB,OAAA;AAC1B,gDAAiG;AAAxF,uGAAA,UAAU,OAAA;AACnB,oEAAsE;AAA7D,yHAAA,oBAAoB,OAAA;AAC7B,sEAOuC;AANnC,yHAAA,iBAAiB,OAAA;AAOrB,yDAAqD;AAA5C,yGAAA,SAAS,OAAA;AAClB,0DAAsD;AAA7C,6GAAA,WAAW,OAAA"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,10 @@
1
+ import { ReactiveResource } from "../resource.js";
2
+ import type { UserConfig } from "../../common/config.js";
3
+ import type { Telemetry } from "../../telemetry/telemetry.js";
4
+ import type { Session } from "../../lib.js";
5
+ export declare class ConfigResource extends ReactiveResource<UserConfig, readonly []> {
6
+ constructor(session: Session, config: UserConfig, telemetry: Telemetry);
7
+ reduce(eventName: undefined, event: undefined): UserConfig;
8
+ toOutput(): string;
9
+ }
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/resources/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAmBtE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,UAAU;IAO1D,QAAQ,IAAI,MAAM;CAgBrB"}