oxygen-cli 1.40.2-beta.1 → 1.40.2

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 (442) hide show
  1. package/CHANGELOG.md +1750 -1742
  2. package/LICENSE +672 -672
  3. package/README.md +37 -37
  4. package/build/core/OxygenCore.js +1 -1
  5. package/build/core/OxygenEvents.js +1 -1
  6. package/build/core/OxygenModule.js +1 -1
  7. package/build/core/OxygenService.js +1 -1
  8. package/build/core/OxygenSubModule.js +1 -1
  9. package/build/core/WebDriverModule.js +1 -1
  10. package/build/core/utils.js +1 -1
  11. package/build/errors/HookError.js +1 -1
  12. package/build/errors/ModuleError.js +1 -1
  13. package/build/errors/ModuleUnavailableError.js +1 -1
  14. package/build/errors/OxygenError.js +1 -1
  15. package/build/errors/ScriptNotFound.js +1 -1
  16. package/build/errors/helper.js +1 -2
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +1 -5
  19. package/build/lib/cli.js +1 -1
  20. package/build/lib/debugger.js +1 -1
  21. package/build/lib/img-merge.js +1 -1
  22. package/build/lib/launcher.js +1 -1
  23. package/build/lib/logger.js +43 -43
  24. package/build/lib/moduleRequire.js +1 -1
  25. package/build/lib/parallel-launcher.js +1 -1
  26. package/build/lib/param-manager.js +1 -1
  27. package/build/lib/param-reader-csv.js +1 -1
  28. package/build/lib/param-reader-excel.js +1 -1
  29. package/build/lib/param-reader-json.js +1 -1
  30. package/build/lib/text-to-image.js +1 -1
  31. package/build/lib/util.js +1 -1
  32. package/build/model/case-result.js +1 -1
  33. package/build/model/failure.js +1 -1
  34. package/build/model/status.js +1 -1
  35. package/build/model/step-result.js +1 -1
  36. package/build/model/suite-result.js +1 -1
  37. package/build/model/test-result.js +1 -1
  38. package/build/model/testcase.js +1 -1
  39. package/build/model/testsuite.js +1 -1
  40. package/build/ox_modules/index.js +1 -9
  41. package/build/ox_modules/module-assert.js +37 -37
  42. package/build/ox_modules/module-date.js +24 -24
  43. package/build/ox_modules/module-db.js +52 -52
  44. package/build/ox_modules/module-email.js +59 -59
  45. package/build/ox_modules/module-eyes.js +34 -34
  46. package/build/ox_modules/module-http/ntlm-util.js +10 -10
  47. package/build/ox_modules/module-http/ntlm.js +15 -15
  48. package/build/ox_modules/module-http.js +132 -132
  49. package/build/ox_modules/module-log.js +27 -27
  50. package/build/ox_modules/module-mailinator.js +87 -87
  51. package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
  52. package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
  53. package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
  54. package/build/ox_modules/module-mob/commands/assertText.js +21 -21
  55. package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
  56. package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
  57. package/build/ox_modules/module-mob/commands/back.js +16 -16
  58. package/build/ox_modules/module-mob/commands/clear.js +19 -19
  59. package/build/ox_modules/module-mob/commands/click.js +17 -17
  60. package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
  61. package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
  62. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
  63. package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
  64. package/build/ox_modules/module-mob/commands/debug.js +16 -16
  65. package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
  66. package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
  67. package/build/ox_modules/module-mob/commands/execute.js +21 -21
  68. package/build/ox_modules/module-mob/commands/findElement.js +20 -20
  69. package/build/ox_modules/module-mob/commands/findElements.js +23 -23
  70. package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
  71. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
  72. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
  73. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
  74. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
  75. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
  76. package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
  77. package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
  78. package/build/ox_modules/module-mob/commands/getSource.js +16 -16
  79. package/build/ox_modules/module-mob/commands/getText.js +18 -18
  80. package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
  81. package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
  82. package/build/ox_modules/module-mob/commands/getValue.js +18 -18
  83. package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
  84. package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
  85. package/build/ox_modules/module-mob/commands/index.js +1 -1
  86. package/build/ox_modules/module-mob/commands/installApp.js +16 -16
  87. package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
  88. package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
  89. package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
  90. package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
  91. package/build/ox_modules/module-mob/commands/isExist.js +19 -19
  92. package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
  93. package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
  94. package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
  95. package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
  96. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
  97. package/build/ox_modules/module-mob/commands/open.js +17 -17
  98. package/build/ox_modules/module-mob/commands/pause.js +16 -16
  99. package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
  100. package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
  101. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
  102. package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
  103. package/build/ox_modules/module-mob/commands/select.js +24 -24
  104. package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
  105. package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
  106. package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
  107. package/build/ox_modules/module-mob/commands/setContext.js +16 -16
  108. package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
  109. package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
  110. package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
  111. package/build/ox_modules/module-mob/commands/shake.js +16 -16
  112. package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
  113. package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
  114. package/build/ox_modules/module-mob/commands/swipe.js +20 -20
  115. package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
  116. package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
  117. package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
  118. package/build/ox_modules/module-mob/commands/tap.js +17 -17
  119. package/build/ox_modules/module-mob/commands/type.js +20 -20
  120. package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
  121. package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
  122. package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
  123. package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
  124. package/build/ox_modules/module-mob.js +74 -74
  125. package/build/ox_modules/module-pdf.js +35 -35
  126. package/build/ox_modules/module-proxy.js +77 -77
  127. package/build/ox_modules/module-serial.js +55 -55
  128. package/build/ox_modules/module-shell.js +52 -33
  129. package/build/ox_modules/module-soap.js +72 -72
  130. package/build/ox_modules/module-twilio.js +41 -41
  131. package/build/ox_modules/module-utils.js +91 -91
  132. package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
  133. package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
  134. package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
  135. package/build/ox_modules/module-web/commands/assertExist.js +17 -17
  136. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
  137. package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
  138. package/build/ox_modules/module-web/commands/assertText.js +21 -21
  139. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
  140. package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
  141. package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
  142. package/build/ox_modules/module-web/commands/assertValue.js +20 -20
  143. package/build/ox_modules/module-web/commands/back.js +16 -16
  144. package/build/ox_modules/module-web/commands/clear.js +18 -18
  145. package/build/ox_modules/module-web/commands/click.js +25 -25
  146. package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
  147. package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
  148. package/build/ox_modules/module-web/commands/debug.js +15 -15
  149. package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
  150. package/build/ox_modules/module-web/commands/deselect.js +22 -22
  151. package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
  152. package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
  153. package/build/ox_modules/module-web/commands/execute.js +24 -24
  154. package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
  155. package/build/ox_modules/module-web/commands/findElement.js +19 -19
  156. package/build/ox_modules/module-web/commands/findElements.js +22 -22
  157. package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
  158. package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
  159. package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
  160. package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
  161. package/build/ox_modules/module-web/commands/getCookies.js +13 -13
  162. package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
  163. package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
  164. package/build/ox_modules/module-web/commands/getHTML.js +17 -17
  165. package/build/ox_modules/module-web/commands/getSource.js +16 -16
  166. package/build/ox_modules/module-web/commands/getText.js +18 -18
  167. package/build/ox_modules/module-web/commands/getTitle.js +12 -12
  168. package/build/ox_modules/module-web/commands/getUrl.js +16 -16
  169. package/build/ox_modules/module-web/commands/getValue.js +18 -18
  170. package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
  171. package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
  172. package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
  173. package/build/ox_modules/module-web/commands/index.js +1 -1
  174. package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
  175. package/build/ox_modules/module-web/commands/isChecked.js +18 -18
  176. package/build/ox_modules/module-web/commands/isExist.js +19 -19
  177. package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
  178. package/build/ox_modules/module-web/commands/isSelected.js +23 -23
  179. package/build/ox_modules/module-web/commands/isVisible.js +19 -19
  180. package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
  181. package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
  182. package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
  183. package/build/ox_modules/module-web/commands/mock.js +20 -20
  184. package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
  185. package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
  186. package/build/ox_modules/module-web/commands/newWindow.js +16 -16
  187. package/build/ox_modules/module-web/commands/open.js +16 -16
  188. package/build/ox_modules/module-web/commands/pause.js +15 -15
  189. package/build/ox_modules/module-web/commands/point.js +21 -21
  190. package/build/ox_modules/module-web/commands/pointJS.js +15 -15
  191. package/build/ox_modules/module-web/commands/refresh.js +15 -15
  192. package/build/ox_modules/module-web/commands/rightClick.js +17 -17
  193. package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
  194. package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
  195. package/build/ox_modules/module-web/commands/select.js +23 -23
  196. package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
  197. package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
  198. package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
  199. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
  200. package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
  201. package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
  202. package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
  203. package/build/ox_modules/module-web/commands/type.js +20 -20
  204. package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
  205. package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
  206. package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
  207. package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
  208. package/build/ox_modules/module-web/commands/verifyText.js +21 -21
  209. package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
  210. package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
  211. package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
  212. package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
  213. package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
  214. package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
  215. package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
  216. package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
  217. package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
  218. package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
  219. package/build/ox_modules/module-web/commands/waitForText.js +20 -20
  220. package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
  221. package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
  222. package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
  223. package/build/ox_modules/module-web.js +94 -94
  224. package/build/ox_modules/module-win/commands/assertText.js +17 -17
  225. package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
  226. package/build/ox_modules/module-win/commands/assertValue.js +14 -14
  227. package/build/ox_modules/module-win/commands/back.js +11 -11
  228. package/build/ox_modules/module-win/commands/clear.js +13 -13
  229. package/build/ox_modules/module-win/commands/click.js +13 -13
  230. package/build/ox_modules/module-win/commands/clickLong.js +14 -14
  231. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
  232. package/build/ox_modules/module-win/commands/findElement.js +15 -15
  233. package/build/ox_modules/module-win/commands/findElements.js +15 -15
  234. package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
  235. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
  236. package/build/ox_modules/module-win/commands/getLocation.js +14 -14
  237. package/build/ox_modules/module-win/commands/getSource.js +12 -12
  238. package/build/ox_modules/module-win/commands/getText.js +14 -14
  239. package/build/ox_modules/module-win/commands/getValue.js +14 -14
  240. package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
  241. package/build/ox_modules/module-win/commands/index.js +1 -1
  242. package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
  243. package/build/ox_modules/module-win/commands/isChecked.js +14 -14
  244. package/build/ox_modules/module-win/commands/isClickable.js +14 -14
  245. package/build/ox_modules/module-win/commands/isExist.js +15 -15
  246. package/build/ox_modules/module-win/commands/isSelected.js +14 -14
  247. package/build/ox_modules/module-win/commands/isVisible.js +15 -15
  248. package/build/ox_modules/module-win/commands/open.js +13 -13
  249. package/build/ox_modules/module-win/commands/pause.js +12 -12
  250. package/build/ox_modules/module-win/commands/rightClick.js +13 -13
  251. package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
  252. package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
  253. package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
  254. package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
  255. package/build/ox_modules/module-win/commands/tap.js +13 -13
  256. package/build/ox_modules/module-win/commands/type.js +16 -16
  257. package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
  258. package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
  259. package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
  260. package/build/ox_modules/module-win.js +47 -47
  261. package/build/ox_modules/utils.js +8 -8
  262. package/build/ox_reporters/excel/template.json +48 -48
  263. package/build/ox_reporters/html/index.ejs +163 -163
  264. package/build/ox_reporters/html/summary.ejs +77 -77
  265. package/build/ox_reporters/html/tests-details.ejs +134 -134
  266. package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
  267. package/build/ox_reporters/reporter-excel.js +1 -1
  268. package/build/ox_reporters/reporter-html.js +1 -1
  269. package/build/ox_reporters/reporter-json.js +1 -1
  270. package/build/ox_reporters/reporter-junit.js +1 -1
  271. package/build/ox_reporters/reporter-pdf.js +1 -1
  272. package/build/ox_reporters/reporter-rp.js +73 -42
  273. package/build/ox_reporters/reporter-xml.js +1 -1
  274. package/build/ox_services/service-devtools/submodule-network.js +1 -1
  275. package/build/ox_services/service-devtools.js +1 -1
  276. package/build/reporter/FileReporterBase.js +1 -1
  277. package/build/reporter/ReportAggregator.js +5 -13
  278. package/build/reporter/ReporterBase.js +1 -1
  279. package/build/reporter/WebSocketReporter.js +1 -1
  280. package/build/runners/WorkerProcess.js +1 -1
  281. package/build/runners/cucumber/CucumberEventListener.js +1 -1
  282. package/build/runners/cucumber/CucumberReporter.js +1 -1
  283. package/build/runners/cucumber/CucumberWorker.js +1 -1
  284. package/build/runners/cucumber/index.js +1 -1
  285. package/build/runners/cucumber/worker.js +1 -1
  286. package/build/runners/index.js +1 -1
  287. package/build/runners/oxygen/OxygenWorker.js +1 -1
  288. package/build/runners/oxygen/index.js +1 -1
  289. package/build/runners/oxygen/worker.js +1 -1
  290. package/config/default.json +6 -6
  291. package/package.json +137 -139
  292. package/types/index.d.ts +70 -70
  293. package/types/module-eyes.d.ts +39 -39
  294. package/types/module-http.d.ts +163 -163
  295. package/types/module-log.d.ts +34 -34
  296. package/types/module-mob.d.ts +966 -966
  297. package/types/module-pdf.d.ts +40 -40
  298. package/types/module-proxy.d.ts +100 -100
  299. package/types/module-shell.d.ts +24 -24
  300. package/types/module-utils.d.ts +99 -99
  301. package/types/module-web.d.ts +1053 -1053
  302. package/types/module-win.d.ts +352 -352
  303. package/types/oxygen.d.ts +53 -53
  304. package/build/ox_modules/module-mongo.js +0 -302
  305. package/log.txt +0 -1614
  306. package/reports/2025-06-08_231627/report.html +0 -440
  307. package/reports/2025-06-09_223615/report.html +0 -440
  308. package/transpiled/mongodb/etc/prepare.js +0 -18
  309. package/transpiled/mongodb/lib/admin.js +0 -182
  310. package/transpiled/mongodb/lib/beta.js +0 -26
  311. package/transpiled/mongodb/lib/bson.js +0 -220
  312. package/transpiled/mongodb/lib/bulk/common.js +0 -1041
  313. package/transpiled/mongodb/lib/bulk/ordered.js +0 -76
  314. package/transpiled/mongodb/lib/bulk/unordered.js +0 -102
  315. package/transpiled/mongodb/lib/change_stream.js +0 -517
  316. package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -329
  317. package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +0 -779
  318. package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -95
  319. package/transpiled/mongodb/lib/client-side-encryption/errors.js +0 -171
  320. package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -98
  321. package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +0 -34
  322. package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +0 -186
  323. package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +0 -29
  324. package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +0 -58
  325. package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +0 -505
  326. package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +0 -63
  327. package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -167
  328. package/transpiled/mongodb/lib/cmap/auth/gssapi.js +0 -207
  329. package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +0 -193
  330. package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +0 -181
  331. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -101
  332. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -81
  333. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -174
  334. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -59
  335. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -58
  336. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -138
  337. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -42
  338. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -71
  339. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -34
  340. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -111
  341. package/transpiled/mongodb/lib/cmap/auth/plain.js +0 -43
  342. package/transpiled/mongodb/lib/cmap/auth/providers.js +0 -22
  343. package/transpiled/mongodb/lib/cmap/auth/scram.js +0 -318
  344. package/transpiled/mongodb/lib/cmap/auth/x509.js +0 -61
  345. package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +0 -266
  346. package/transpiled/mongodb/lib/cmap/commands.js +0 -605
  347. package/transpiled/mongodb/lib/cmap/connect.js +0 -418
  348. package/transpiled/mongodb/lib/cmap/connection.js +0 -673
  349. package/transpiled/mongodb/lib/cmap/connection_pool.js +0 -688
  350. package/transpiled/mongodb/lib/cmap/connection_pool_events.js +0 -254
  351. package/transpiled/mongodb/lib/cmap/errors.js +0 -128
  352. package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +0 -278
  353. package/transpiled/mongodb/lib/cmap/metrics.js +0 -67
  354. package/transpiled/mongodb/lib/cmap/stream_description.js +0 -74
  355. package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +0 -196
  356. package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +0 -19
  357. package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +0 -144
  358. package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -278
  359. package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +0 -376
  360. package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +0 -49
  361. package/transpiled/mongodb/lib/collection.js +0 -852
  362. package/transpiled/mongodb/lib/connection_string.js +0 -1452
  363. package/transpiled/mongodb/lib/constants.js +0 -162
  364. package/transpiled/mongodb/lib/cursor/abstract_cursor.js +0 -1082
  365. package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +0 -227
  366. package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +0 -136
  367. package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -69
  368. package/transpiled/mongodb/lib/cursor/find_cursor.js +0 -476
  369. package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +0 -48
  370. package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +0 -46
  371. package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -30
  372. package/transpiled/mongodb/lib/cursor/run_command_cursor.js +0 -125
  373. package/transpiled/mongodb/lib/db.js +0 -467
  374. package/transpiled/mongodb/lib/deps.js +0 -174
  375. package/transpiled/mongodb/lib/encrypter.js +0 -129
  376. package/transpiled/mongodb/lib/error.js +0 -1550
  377. package/transpiled/mongodb/lib/explain.js +0 -122
  378. package/transpiled/mongodb/lib/gridfs/download.js +0 -369
  379. package/transpiled/mongodb/lib/gridfs/index.js +0 -240
  380. package/transpiled/mongodb/lib/gridfs/upload.js +0 -446
  381. package/transpiled/mongodb/lib/index.js +0 -975
  382. package/transpiled/mongodb/lib/mongo_client.js +0 -626
  383. package/transpiled/mongodb/lib/mongo_client_auth_providers.js +0 -98
  384. package/transpiled/mongodb/lib/mongo_logger.js +0 -812
  385. package/transpiled/mongodb/lib/mongo_types.js +0 -71
  386. package/transpiled/mongodb/lib/operations/aggregate.js +0 -129
  387. package/transpiled/mongodb/lib/operations/bulk_write.js +0 -48
  388. package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -96
  389. package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -409
  390. package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +0 -5
  391. package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +0 -144
  392. package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -228
  393. package/transpiled/mongodb/lib/operations/collections.js +0 -49
  394. package/transpiled/mongodb/lib/operations/command.js +0 -102
  395. package/transpiled/mongodb/lib/operations/count.js +0 -60
  396. package/transpiled/mongodb/lib/operations/create_collection.js +0 -109
  397. package/transpiled/mongodb/lib/operations/delete.js +0 -134
  398. package/transpiled/mongodb/lib/operations/distinct.js +0 -77
  399. package/transpiled/mongodb/lib/operations/drop.js +0 -102
  400. package/transpiled/mongodb/lib/operations/estimated_document_count.js +0 -47
  401. package/transpiled/mongodb/lib/operations/execute_operation.js +0 -251
  402. package/transpiled/mongodb/lib/operations/find.js +0 -197
  403. package/transpiled/mongodb/lib/operations/find_and_modify.js +0 -191
  404. package/transpiled/mongodb/lib/operations/get_more.js +0 -84
  405. package/transpiled/mongodb/lib/operations/indexes.js +0 -197
  406. package/transpiled/mongodb/lib/operations/insert.js +0 -138
  407. package/transpiled/mongodb/lib/operations/is_capped.js +0 -44
  408. package/transpiled/mongodb/lib/operations/kill_cursors.js +0 -58
  409. package/transpiled/mongodb/lib/operations/list_collections.js +0 -66
  410. package/transpiled/mongodb/lib/operations/list_databases.js +0 -56
  411. package/transpiled/mongodb/lib/operations/operation.js +0 -88
  412. package/transpiled/mongodb/lib/operations/options_operation.js +0 -44
  413. package/transpiled/mongodb/lib/operations/profiling_level.js +0 -42
  414. package/transpiled/mongodb/lib/operations/remove_user.js +0 -35
  415. package/transpiled/mongodb/lib/operations/rename.js +0 -48
  416. package/transpiled/mongodb/lib/operations/run_command.js +0 -64
  417. package/transpiled/mongodb/lib/operations/search_indexes/create.js +0 -41
  418. package/transpiled/mongodb/lib/operations/search_indexes/drop.js +0 -51
  419. package/transpiled/mongodb/lib/operations/search_indexes/update.js +0 -40
  420. package/transpiled/mongodb/lib/operations/set_profiling_level.js +0 -70
  421. package/transpiled/mongodb/lib/operations/stats.js +0 -39
  422. package/transpiled/mongodb/lib/operations/update.js +0 -218
  423. package/transpiled/mongodb/lib/operations/validate_collection.js +0 -49
  424. package/transpiled/mongodb/lib/read_concern.js +0 -92
  425. package/transpiled/mongodb/lib/read_preference.js +0 -215
  426. package/transpiled/mongodb/lib/resource_management.js +0 -74
  427. package/transpiled/mongodb/lib/sdam/common.js +0 -53
  428. package/transpiled/mongodb/lib/sdam/events.js +0 -177
  429. package/transpiled/mongodb/lib/sdam/monitor.js +0 -656
  430. package/transpiled/mongodb/lib/sdam/server.js +0 -463
  431. package/transpiled/mongodb/lib/sdam/server_description.js +0 -196
  432. package/transpiled/mongodb/lib/sdam/server_selection.js +0 -283
  433. package/transpiled/mongodb/lib/sdam/server_selection_events.js +0 -112
  434. package/transpiled/mongodb/lib/sdam/srv_polling.js +0 -139
  435. package/transpiled/mongodb/lib/sdam/topology.js +0 -833
  436. package/transpiled/mongodb/lib/sdam/topology_description.js +0 -447
  437. package/transpiled/mongodb/lib/sessions.js +0 -988
  438. package/transpiled/mongodb/lib/sort.js +0 -123
  439. package/transpiled/mongodb/lib/timeout.js +0 -349
  440. package/transpiled/mongodb/lib/transactions.js +0 -149
  441. package/transpiled/mongodb/lib/utils.js +0 -1502
  442. package/transpiled/mongodb/lib/write_concern.js +0 -115
@@ -1,852 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Collection = void 0;
7
-
8
- const bson_1 = require("./bson");
9
-
10
- const ordered_1 = require("./bulk/ordered");
11
-
12
- const unordered_1 = require("./bulk/unordered");
13
-
14
- const change_stream_1 = require("./change_stream");
15
-
16
- const aggregation_cursor_1 = require("./cursor/aggregation_cursor");
17
-
18
- const find_cursor_1 = require("./cursor/find_cursor");
19
-
20
- const list_indexes_cursor_1 = require("./cursor/list_indexes_cursor");
21
-
22
- const list_search_indexes_cursor_1 = require("./cursor/list_search_indexes_cursor");
23
-
24
- const error_1 = require("./error");
25
-
26
- const bulk_write_1 = require("./operations/bulk_write");
27
-
28
- const count_1 = require("./operations/count");
29
-
30
- const delete_1 = require("./operations/delete");
31
-
32
- const distinct_1 = require("./operations/distinct");
33
-
34
- const drop_1 = require("./operations/drop");
35
-
36
- const estimated_document_count_1 = require("./operations/estimated_document_count");
37
-
38
- const execute_operation_1 = require("./operations/execute_operation");
39
-
40
- const find_and_modify_1 = require("./operations/find_and_modify");
41
-
42
- const indexes_1 = require("./operations/indexes");
43
-
44
- const insert_1 = require("./operations/insert");
45
-
46
- const is_capped_1 = require("./operations/is_capped");
47
-
48
- const options_operation_1 = require("./operations/options_operation");
49
-
50
- const rename_1 = require("./operations/rename");
51
-
52
- const create_1 = require("./operations/search_indexes/create");
53
-
54
- const drop_2 = require("./operations/search_indexes/drop");
55
-
56
- const update_1 = require("./operations/search_indexes/update");
57
-
58
- const update_2 = require("./operations/update");
59
-
60
- const read_concern_1 = require("./read_concern");
61
-
62
- const read_preference_1 = require("./read_preference");
63
-
64
- const utils_1 = require("./utils");
65
-
66
- const write_concern_1 = require("./write_concern");
67
- /**
68
- * The **Collection** class is an internal class that embodies a MongoDB collection
69
- * allowing for insert/find/update/delete and other command operation on that MongoDB collection.
70
- *
71
- * **COLLECTION Cannot directly be instantiated**
72
- * @public
73
- *
74
- * @example
75
- * ```ts
76
- * import { MongoClient } from 'mongodb';
77
- *
78
- * interface Pet {
79
- * name: string;
80
- * kind: 'dog' | 'cat' | 'fish';
81
- * }
82
- *
83
- * const client = new MongoClient('mongodb://localhost:27017');
84
- * const pets = client.db().collection<Pet>('pets');
85
- *
86
- * const petCursor = pets.find();
87
- *
88
- * for await (const pet of petCursor) {
89
- * console.log(`${pet.name} is a ${pet.kind}!`);
90
- * }
91
- * ```
92
- */
93
-
94
-
95
- class Collection {
96
- /**
97
- * Create a new Collection instance
98
- * @internal
99
- */
100
- constructor(db, name, options) {
101
- // Internal state
102
- this.s = {
103
- db,
104
- options,
105
- namespace: new utils_1.MongoDBCollectionNamespace(db.databaseName, name),
106
- pkFactory: db.options?.pkFactory ?? utils_1.DEFAULT_PK_FACTORY,
107
- readPreference: read_preference_1.ReadPreference.fromOptions(options),
108
- bsonOptions: (0, bson_1.resolveBSONOptions)(options, db),
109
- readConcern: read_concern_1.ReadConcern.fromOptions(options),
110
- writeConcern: write_concern_1.WriteConcern.fromOptions(options)
111
- };
112
- this.client = db.client;
113
- }
114
- /**
115
- * The name of the database this collection belongs to
116
- */
117
-
118
-
119
- get dbName() {
120
- return this.s.namespace.db;
121
- }
122
- /**
123
- * The name of this collection
124
- */
125
-
126
-
127
- get collectionName() {
128
- return this.s.namespace.collection;
129
- }
130
- /**
131
- * The namespace of this collection, in the format `${this.dbName}.${this.collectionName}`
132
- */
133
-
134
-
135
- get namespace() {
136
- return this.fullNamespace.toString();
137
- }
138
- /**
139
- * @internal
140
- *
141
- * The `MongoDBNamespace` for the collection.
142
- */
143
-
144
-
145
- get fullNamespace() {
146
- return this.s.namespace;
147
- }
148
- /**
149
- * The current readConcern of the collection. If not explicitly defined for
150
- * this collection, will be inherited from the parent DB
151
- */
152
-
153
-
154
- get readConcern() {
155
- if (this.s.readConcern == null) {
156
- return this.s.db.readConcern;
157
- }
158
-
159
- return this.s.readConcern;
160
- }
161
- /**
162
- * The current readPreference of the collection. If not explicitly defined for
163
- * this collection, will be inherited from the parent DB
164
- */
165
-
166
-
167
- get readPreference() {
168
- if (this.s.readPreference == null) {
169
- return this.s.db.readPreference;
170
- }
171
-
172
- return this.s.readPreference;
173
- }
174
-
175
- get bsonOptions() {
176
- return this.s.bsonOptions;
177
- }
178
- /**
179
- * The current writeConcern of the collection. If not explicitly defined for
180
- * this collection, will be inherited from the parent DB
181
- */
182
-
183
-
184
- get writeConcern() {
185
- if (this.s.writeConcern == null) {
186
- return this.s.db.writeConcern;
187
- }
188
-
189
- return this.s.writeConcern;
190
- }
191
- /** The current index hint for the collection */
192
-
193
-
194
- get hint() {
195
- return this.s.collectionHint;
196
- }
197
-
198
- set hint(v) {
199
- this.s.collectionHint = (0, utils_1.normalizeHintField)(v);
200
- }
201
-
202
- get timeoutMS() {
203
- return this.s.options.timeoutMS;
204
- }
205
- /**
206
- * Inserts a single document into MongoDB. If documents passed in do not contain the **_id** field,
207
- * one will be added to each of the documents missing it by the driver, mutating the document. This behavior
208
- * can be overridden by setting the **forceServerObjectId** flag.
209
- *
210
- * @param doc - The document to insert
211
- * @param options - Optional settings for the command
212
- */
213
-
214
-
215
- async insertOne(doc, options) {
216
- return await (0, execute_operation_1.executeOperation)(this.client, new insert_1.InsertOneOperation(this, doc, (0, utils_1.resolveOptions)(this, options)));
217
- }
218
- /**
219
- * Inserts an array of documents into MongoDB. If documents passed in do not contain the **_id** field,
220
- * one will be added to each of the documents missing it by the driver, mutating the document. This behavior
221
- * can be overridden by setting the **forceServerObjectId** flag.
222
- *
223
- * @param docs - The documents to insert
224
- * @param options - Optional settings for the command
225
- */
226
-
227
-
228
- async insertMany(docs, options) {
229
- return await (0, execute_operation_1.executeOperation)(this.client, new insert_1.InsertManyOperation(this, docs, (0, utils_1.resolveOptions)(this, options ?? {
230
- ordered: true
231
- })));
232
- }
233
- /**
234
- * Perform a bulkWrite operation without a fluent API
235
- *
236
- * Legal operation types are
237
- * - `insertOne`
238
- * - `replaceOne`
239
- * - `updateOne`
240
- * - `updateMany`
241
- * - `deleteOne`
242
- * - `deleteMany`
243
- *
244
- * If documents passed in do not contain the **_id** field,
245
- * one will be added to each of the documents missing it by the driver, mutating the document. This behavior
246
- * can be overridden by setting the **forceServerObjectId** flag.
247
- *
248
- * @param operations - Bulk operations to perform
249
- * @param options - Optional settings for the command
250
- * @throws MongoDriverError if operations is not an array
251
- */
252
-
253
-
254
- async bulkWrite(operations, options) {
255
- if (!Array.isArray(operations)) {
256
- throw new error_1.MongoInvalidArgumentError('Argument "operations" must be an array of documents');
257
- }
258
-
259
- return await (0, execute_operation_1.executeOperation)(this.client, new bulk_write_1.BulkWriteOperation(this, operations, (0, utils_1.resolveOptions)(this, options ?? {
260
- ordered: true
261
- })));
262
- }
263
- /**
264
- * Update a single document in a collection
265
- *
266
- * The value of `update` can be either:
267
- * - UpdateFilter<TSchema> - A document that contains update operator expressions,
268
- * - Document[] - an aggregation pipeline.
269
- *
270
- * @param filter - The filter used to select the document to update
271
- * @param update - The modifications to apply
272
- * @param options - Optional settings for the command
273
- */
274
-
275
-
276
- async updateOne(filter, update, options) {
277
- return await (0, execute_operation_1.executeOperation)(this.client, new update_2.UpdateOneOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)));
278
- }
279
- /**
280
- * Replace a document in a collection with another document
281
- *
282
- * @param filter - The filter used to select the document to replace
283
- * @param replacement - The Document that replaces the matching document
284
- * @param options - Optional settings for the command
285
- */
286
-
287
-
288
- async replaceOne(filter, replacement, options) {
289
- return await (0, execute_operation_1.executeOperation)(this.client, new update_2.ReplaceOneOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)));
290
- }
291
- /**
292
- * Update multiple documents in a collection
293
- *
294
- * The value of `update` can be either:
295
- * - UpdateFilter<TSchema> - A document that contains update operator expressions,
296
- * - Document[] - an aggregation pipeline.
297
- *
298
- * @param filter - The filter used to select the document to update
299
- * @param update - The modifications to apply
300
- * @param options - Optional settings for the command
301
- */
302
-
303
-
304
- async updateMany(filter, update, options) {
305
- return await (0, execute_operation_1.executeOperation)(this.client, new update_2.UpdateManyOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)));
306
- }
307
- /**
308
- * Delete a document from a collection
309
- *
310
- * @param filter - The filter used to select the document to remove
311
- * @param options - Optional settings for the command
312
- */
313
-
314
-
315
- async deleteOne(filter = {}, options = {}) {
316
- return await (0, execute_operation_1.executeOperation)(this.client, new delete_1.DeleteOneOperation(this, filter, (0, utils_1.resolveOptions)(this, options)));
317
- }
318
- /**
319
- * Delete multiple documents from a collection
320
- *
321
- * @param filter - The filter used to select the documents to remove
322
- * @param options - Optional settings for the command
323
- */
324
-
325
-
326
- async deleteMany(filter = {}, options = {}) {
327
- return await (0, execute_operation_1.executeOperation)(this.client, new delete_1.DeleteManyOperation(this, filter, (0, utils_1.resolveOptions)(this, options)));
328
- }
329
- /**
330
- * Rename the collection.
331
- *
332
- * @remarks
333
- * This operation does not inherit options from the Db or MongoClient.
334
- *
335
- * @param newName - New name of of the collection.
336
- * @param options - Optional settings for the command
337
- */
338
-
339
-
340
- async rename(newName, options) {
341
- // Intentionally, we do not inherit options from parent for this operation.
342
- return await (0, execute_operation_1.executeOperation)(this.client, new rename_1.RenameOperation(this, newName, (0, utils_1.resolveOptions)(undefined, { ...options,
343
- readPreference: read_preference_1.ReadPreference.PRIMARY
344
- })));
345
- }
346
- /**
347
- * Drop the collection from the database, removing it permanently. New accesses will create a new collection.
348
- *
349
- * @param options - Optional settings for the command
350
- */
351
-
352
-
353
- async drop(options) {
354
- return await (0, execute_operation_1.executeOperation)(this.client, new drop_1.DropCollectionOperation(this.s.db, this.collectionName, options));
355
- }
356
-
357
- async findOne(filter = {}, options = {}) {
358
- const cursor = this.find(filter, options).limit(-1).batchSize(1);
359
- const res = await cursor.next();
360
- await cursor.close();
361
- return res;
362
- }
363
-
364
- find(filter = {}, options = {}) {
365
- return new find_cursor_1.FindCursor(this.client, this.s.namespace, filter, (0, utils_1.resolveOptions)(this, options));
366
- }
367
- /**
368
- * Returns the options of the collection.
369
- *
370
- * @param options - Optional settings for the command
371
- */
372
-
373
-
374
- async options(options) {
375
- return await (0, execute_operation_1.executeOperation)(this.client, new options_operation_1.OptionsOperation(this, (0, utils_1.resolveOptions)(this, options)));
376
- }
377
- /**
378
- * Returns if the collection is a capped collection
379
- *
380
- * @param options - Optional settings for the command
381
- */
382
-
383
-
384
- async isCapped(options) {
385
- return await (0, execute_operation_1.executeOperation)(this.client, new is_capped_1.IsCappedOperation(this, (0, utils_1.resolveOptions)(this, options)));
386
- }
387
- /**
388
- * Creates an index on the db and collection collection.
389
- *
390
- * @param indexSpec - The field name or index specification to create an index for
391
- * @param options - Optional settings for the command
392
- *
393
- * @example
394
- * ```ts
395
- * const collection = client.db('foo').collection('bar');
396
- *
397
- * await collection.createIndex({ a: 1, b: -1 });
398
- *
399
- * // Alternate syntax for { c: 1, d: -1 } that ensures order of indexes
400
- * await collection.createIndex([ [c, 1], [d, -1] ]);
401
- *
402
- * // Equivalent to { e: 1 }
403
- * await collection.createIndex('e');
404
- *
405
- * // Equivalent to { f: 1, g: 1 }
406
- * await collection.createIndex(['f', 'g'])
407
- *
408
- * // Equivalent to { h: 1, i: -1 }
409
- * await collection.createIndex([ { h: 1 }, { i: -1 } ]);
410
- *
411
- * // Equivalent to { j: 1, k: -1, l: 2d }
412
- * await collection.createIndex(['j', ['k', -1], { l: '2d' }])
413
- * ```
414
- */
415
-
416
-
417
- async createIndex(indexSpec, options) {
418
- const indexes = await (0, execute_operation_1.executeOperation)(this.client, indexes_1.CreateIndexesOperation.fromIndexSpecification(this, this.collectionName, indexSpec, (0, utils_1.resolveOptions)(this, options)));
419
- return indexes[0];
420
- }
421
- /**
422
- * Creates multiple indexes in the collection, this method is only supported for
423
- * MongoDB 2.6 or higher. Earlier version of MongoDB will throw a command not supported
424
- * error.
425
- *
426
- * **Note**: Unlike {@link Collection#createIndex| createIndex}, this function takes in raw index specifications.
427
- * Index specifications are defined {@link https://www.mongodb.com/docs/manual/reference/command/createIndexes/| here}.
428
- *
429
- * @param indexSpecs - An array of index specifications to be created
430
- * @param options - Optional settings for the command
431
- *
432
- * @example
433
- * ```ts
434
- * const collection = client.db('foo').collection('bar');
435
- * await collection.createIndexes([
436
- * // Simple index on field fizz
437
- * {
438
- * key: { fizz: 1 },
439
- * }
440
- * // wildcard index
441
- * {
442
- * key: { '$**': 1 }
443
- * },
444
- * // named index on darmok and jalad
445
- * {
446
- * key: { darmok: 1, jalad: -1 }
447
- * name: 'tanagra'
448
- * }
449
- * ]);
450
- * ```
451
- */
452
-
453
-
454
- async createIndexes(indexSpecs, options) {
455
- return await (0, execute_operation_1.executeOperation)(this.client, indexes_1.CreateIndexesOperation.fromIndexDescriptionArray(this, this.collectionName, indexSpecs, (0, utils_1.resolveOptions)(this, { ...options,
456
- maxTimeMS: undefined
457
- })));
458
- }
459
- /**
460
- * Drops an index from this collection.
461
- *
462
- * @param indexName - Name of the index to drop.
463
- * @param options - Optional settings for the command
464
- */
465
-
466
-
467
- async dropIndex(indexName, options) {
468
- return await (0, execute_operation_1.executeOperation)(this.client, new indexes_1.DropIndexOperation(this, indexName, { ...(0, utils_1.resolveOptions)(this, options),
469
- readPreference: read_preference_1.ReadPreference.primary
470
- }));
471
- }
472
- /**
473
- * Drops all indexes from this collection.
474
- *
475
- * @param options - Optional settings for the command
476
- */
477
-
478
-
479
- async dropIndexes(options) {
480
- try {
481
- await (0, execute_operation_1.executeOperation)(this.client, new indexes_1.DropIndexOperation(this, '*', (0, utils_1.resolveOptions)(this, options)));
482
- return true;
483
- } catch (error) {
484
- // TODO(NODE-6517): Driver should only filter for namespace not found error. Other errors should be thrown.
485
- if (error instanceof error_1.MongoOperationTimeoutError) throw error;
486
- return false;
487
- }
488
- }
489
- /**
490
- * Get the list of all indexes information for the collection.
491
- *
492
- * @param options - Optional settings for the command
493
- */
494
-
495
-
496
- listIndexes(options) {
497
- return new list_indexes_cursor_1.ListIndexesCursor(this, (0, utils_1.resolveOptions)(this, options));
498
- }
499
- /**
500
- * Checks if one or more indexes exist on the collection, fails on first non-existing index
501
- *
502
- * @param indexes - One or more index names to check.
503
- * @param options - Optional settings for the command
504
- */
505
-
506
-
507
- async indexExists(indexes, options) {
508
- const indexNames = Array.isArray(indexes) ? indexes : [indexes];
509
- const allIndexes = new Set(await this.listIndexes(options).map(({
510
- name
511
- }) => name).toArray());
512
- return indexNames.every(name => allIndexes.has(name));
513
- }
514
-
515
- async indexInformation(options) {
516
- return await this.indexes({ ...options,
517
- full: options?.full ?? false
518
- });
519
- }
520
- /**
521
- * Gets an estimate of the count of documents in a collection using collection metadata.
522
- * This will always run a count command on all server versions.
523
- *
524
- * due to an oversight in versions 5.0.0-5.0.8 of MongoDB, the count command,
525
- * which estimatedDocumentCount uses in its implementation, was not included in v1 of
526
- * the Stable API, and so users of the Stable API with estimatedDocumentCount are
527
- * recommended to upgrade their server version to 5.0.9+ or set apiStrict: false to avoid
528
- * encountering errors.
529
- *
530
- * @see {@link https://www.mongodb.com/docs/manual/reference/command/count/#behavior|Count: Behavior}
531
- * @param options - Optional settings for the command
532
- */
533
-
534
-
535
- async estimatedDocumentCount(options) {
536
- return await (0, execute_operation_1.executeOperation)(this.client, new estimated_document_count_1.EstimatedDocumentCountOperation(this, (0, utils_1.resolveOptions)(this, options)));
537
- }
538
- /**
539
- * Gets the number of documents matching the filter.
540
- * For a fast count of the total documents in a collection see {@link Collection#estimatedDocumentCount| estimatedDocumentCount}.
541
- *
542
- * Due to countDocuments using the $match aggregation pipeline stage, certain query operators cannot be used in countDocuments. This includes the $where and $near query operators, among others. Details can be found in the documentation for the $match aggregation pipeline stage.
543
- *
544
- * **Note**: When migrating from {@link Collection#count| count} to {@link Collection#countDocuments| countDocuments}
545
- * the following query operators must be replaced:
546
- *
547
- * | Operator | Replacement |
548
- * | -------- | ----------- |
549
- * | `$where` | [`$expr`][1] |
550
- * | `$near` | [`$geoWithin`][2] with [`$center`][3] |
551
- * | `$nearSphere` | [`$geoWithin`][2] with [`$centerSphere`][4] |
552
- *
553
- * [1]: https://www.mongodb.com/docs/manual/reference/operator/query/expr/
554
- * [2]: https://www.mongodb.com/docs/manual/reference/operator/query/geoWithin/
555
- * [3]: https://www.mongodb.com/docs/manual/reference/operator/query/center/#op._S_center
556
- * [4]: https://www.mongodb.com/docs/manual/reference/operator/query/centerSphere/#op._S_centerSphere
557
- *
558
- * @param filter - The filter for the count
559
- * @param options - Optional settings for the command
560
- *
561
- * @see https://www.mongodb.com/docs/manual/reference/operator/query/expr/
562
- * @see https://www.mongodb.com/docs/manual/reference/operator/query/geoWithin/
563
- * @see https://www.mongodb.com/docs/manual/reference/operator/query/center/#op._S_center
564
- * @see https://www.mongodb.com/docs/manual/reference/operator/query/centerSphere/#op._S_centerSphere
565
- */
566
-
567
-
568
- async countDocuments(filter = {}, options = {}) {
569
- const pipeline = [];
570
- pipeline.push({
571
- $match: filter
572
- });
573
-
574
- if (typeof options.skip === 'number') {
575
- pipeline.push({
576
- $skip: options.skip
577
- });
578
- }
579
-
580
- if (typeof options.limit === 'number') {
581
- pipeline.push({
582
- $limit: options.limit
583
- });
584
- }
585
-
586
- pipeline.push({
587
- $group: {
588
- _id: 1,
589
- n: {
590
- $sum: 1
591
- }
592
- }
593
- });
594
- const cursor = this.aggregate(pipeline, options);
595
- const doc = await cursor.next();
596
- await cursor.close();
597
- return doc?.n ?? 0;
598
- }
599
-
600
- async distinct(key, filter = {}, options = {}) {
601
- return await (0, execute_operation_1.executeOperation)(this.client, new distinct_1.DistinctOperation(this, key, filter, (0, utils_1.resolveOptions)(this, options)));
602
- }
603
-
604
- async indexes(options) {
605
- const indexes = await this.listIndexes(options).toArray();
606
- const full = options?.full ?? true;
607
-
608
- if (full) {
609
- return indexes;
610
- }
611
-
612
- const object = Object.fromEntries(indexes.map(({
613
- name,
614
- key
615
- }) => [name, Object.entries(key)]));
616
- return object;
617
- }
618
-
619
- async findOneAndDelete(filter, options) {
620
- return await (0, execute_operation_1.executeOperation)(this.client, new find_and_modify_1.FindOneAndDeleteOperation(this, filter, (0, utils_1.resolveOptions)(this, options)));
621
- }
622
-
623
- async findOneAndReplace(filter, replacement, options) {
624
- return await (0, execute_operation_1.executeOperation)(this.client, new find_and_modify_1.FindOneAndReplaceOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)));
625
- }
626
-
627
- async findOneAndUpdate(filter, update, options) {
628
- return await (0, execute_operation_1.executeOperation)(this.client, new find_and_modify_1.FindOneAndUpdateOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)));
629
- }
630
- /**
631
- * Execute an aggregation framework pipeline against the collection, needs MongoDB \>= 2.2
632
- *
633
- * @param pipeline - An array of aggregation pipelines to execute
634
- * @param options - Optional settings for the command
635
- */
636
-
637
-
638
- aggregate(pipeline = [], options) {
639
- if (!Array.isArray(pipeline)) {
640
- throw new error_1.MongoInvalidArgumentError('Argument "pipeline" must be an array of aggregation stages');
641
- }
642
-
643
- return new aggregation_cursor_1.AggregationCursor(this.client, this.s.namespace, pipeline, (0, utils_1.resolveOptions)(this, options));
644
- }
645
- /**
646
- * Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this collection.
647
- *
648
- * @remarks
649
- * watch() accepts two generic arguments for distinct use cases:
650
- * - The first is to override the schema that may be defined for this specific collection
651
- * - The second is to override the shape of the change stream document entirely, if it is not provided the type will default to ChangeStreamDocument of the first argument
652
- * @example
653
- * By just providing the first argument I can type the change to be `ChangeStreamDocument<{ _id: number }>`
654
- * ```ts
655
- * collection.watch<{ _id: number }>()
656
- * .on('change', change => console.log(change._id.toFixed(4)));
657
- * ```
658
- *
659
- * @example
660
- * Passing a second argument provides a way to reflect the type changes caused by an advanced pipeline.
661
- * Here, we are using a pipeline to have MongoDB filter for insert changes only and add a comment.
662
- * No need start from scratch on the ChangeStreamInsertDocument type!
663
- * By using an intersection we can save time and ensure defaults remain the same type!
664
- * ```ts
665
- * collection
666
- * .watch<Schema, ChangeStreamInsertDocument<Schema> & { comment: string }>([
667
- * { $addFields: { comment: 'big changes' } },
668
- * { $match: { operationType: 'insert' } }
669
- * ])
670
- * .on('change', change => {
671
- * change.comment.startsWith('big');
672
- * change.operationType === 'insert';
673
- * // No need to narrow in code because the generics did that for us!
674
- * expectType<Schema>(change.fullDocument);
675
- * });
676
- * ```
677
- *
678
- * @remarks
679
- * When `timeoutMS` is configured for a change stream, it will have different behaviour depending
680
- * on whether the change stream is in iterator mode or emitter mode. In both cases, a change
681
- * stream will time out if it does not receive a change event within `timeoutMS` of the last change
682
- * event.
683
- *
684
- * Note that if a change stream is consistently timing out when watching a collection, database or
685
- * client that is being changed, then this may be due to the server timing out before it can finish
686
- * processing the existing oplog. To address this, restart the change stream with a higher
687
- * `timeoutMS`.
688
- *
689
- * If the change stream times out the initial aggregate operation to establish the change stream on
690
- * the server, then the client will close the change stream. If the getMore calls to the server
691
- * time out, then the change stream will be left open, but will throw a MongoOperationTimeoutError
692
- * when in iterator mode and emit an error event that returns a MongoOperationTimeoutError in
693
- * emitter mode.
694
- *
695
- * To determine whether or not the change stream is still open following a timeout, check the
696
- * {@link ChangeStream.closed} getter.
697
- *
698
- * @example
699
- * In iterator mode, if a next() call throws a timeout error, it will attempt to resume the change stream.
700
- * The next call can just be retried after this succeeds.
701
- * ```ts
702
- * const changeStream = collection.watch([], { timeoutMS: 100 });
703
- * try {
704
- * await changeStream.next();
705
- * } catch (e) {
706
- * if (e instanceof MongoOperationTimeoutError && !changeStream.closed) {
707
- * await changeStream.next();
708
- * }
709
- * throw e;
710
- * }
711
- * ```
712
- *
713
- * @example
714
- * In emitter mode, if the change stream goes `timeoutMS` without emitting a change event, it will
715
- * emit an error event that returns a MongoOperationTimeoutError, but will not close the change
716
- * stream unless the resume attempt fails. There is no need to re-establish change listeners as
717
- * this will automatically continue emitting change events once the resume attempt completes.
718
- *
719
- * ```ts
720
- * const changeStream = collection.watch([], { timeoutMS: 100 });
721
- * changeStream.on('change', console.log);
722
- * changeStream.on('error', e => {
723
- * if (e instanceof MongoOperationTimeoutError && !changeStream.closed) {
724
- * // do nothing
725
- * } else {
726
- * changeStream.close();
727
- * }
728
- * });
729
- * ```
730
- *
731
- * @param pipeline - An array of {@link https://www.mongodb.com/docs/manual/reference/operator/aggregation-pipeline/|aggregation pipeline stages} through which to pass change stream documents. This allows for filtering (using $match) and manipulating the change stream documents.
732
- * @param options - Optional settings for the command
733
- * @typeParam TLocal - Type of the data being detected by the change stream
734
- * @typeParam TChange - Type of the whole change stream document emitted
735
- */
736
-
737
-
738
- watch(pipeline = [], options = {}) {
739
- // Allow optionally not specifying a pipeline
740
- if (!Array.isArray(pipeline)) {
741
- options = pipeline;
742
- pipeline = [];
743
- }
744
-
745
- return new change_stream_1.ChangeStream(this, pipeline, (0, utils_1.resolveOptions)(this, options));
746
- }
747
- /**
748
- * Initiate an Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.
749
- *
750
- * @throws MongoNotConnectedError
751
- * @remarks
752
- * **NOTE:** MongoClient must be connected prior to calling this method due to a known limitation in this legacy implementation.
753
- * However, `collection.bulkWrite()` provides an equivalent API that does not require prior connecting.
754
- */
755
-
756
-
757
- initializeUnorderedBulkOp(options) {
758
- return new unordered_1.UnorderedBulkOperation(this, (0, utils_1.resolveOptions)(this, options));
759
- }
760
- /**
761
- * Initiate an In order bulk write operation. Operations will be serially executed in the order they are added, creating a new operation for each switch in types.
762
- *
763
- * @throws MongoNotConnectedError
764
- * @remarks
765
- * **NOTE:** MongoClient must be connected prior to calling this method due to a known limitation in this legacy implementation.
766
- * However, `collection.bulkWrite()` provides an equivalent API that does not require prior connecting.
767
- */
768
-
769
-
770
- initializeOrderedBulkOp(options) {
771
- return new ordered_1.OrderedBulkOperation(this, (0, utils_1.resolveOptions)(this, options));
772
- }
773
- /**
774
- * An estimated count of matching documents in the db to a filter.
775
- *
776
- * **NOTE:** This method has been deprecated, since it does not provide an accurate count of the documents
777
- * in a collection. To obtain an accurate count of documents in the collection, use {@link Collection#countDocuments| countDocuments}.
778
- * To obtain an estimated count of all documents in the collection, use {@link Collection#estimatedDocumentCount| estimatedDocumentCount}.
779
- *
780
- * @deprecated use {@link Collection#countDocuments| countDocuments} or {@link Collection#estimatedDocumentCount| estimatedDocumentCount} instead
781
- *
782
- * @param filter - The filter for the count.
783
- * @param options - Optional settings for the command
784
- */
785
-
786
-
787
- async count(filter = {}, options = {}) {
788
- return await (0, execute_operation_1.executeOperation)(this.client, new count_1.CountOperation(this.fullNamespace, filter, (0, utils_1.resolveOptions)(this, options)));
789
- }
790
-
791
- listSearchIndexes(indexNameOrOptions, options) {
792
- options = typeof indexNameOrOptions === 'object' ? indexNameOrOptions : options == null ? {} : options;
793
- const indexName = indexNameOrOptions == null ? null : typeof indexNameOrOptions === 'object' ? null : indexNameOrOptions;
794
- return new list_search_indexes_cursor_1.ListSearchIndexesCursor(this, indexName, options);
795
- }
796
- /**
797
- * Creates a single search index for the collection.
798
- *
799
- * @param description - The index description for the new search index.
800
- * @returns A promise that resolves to the name of the new search index.
801
- *
802
- * @remarks Only available when used against a 7.0+ Atlas cluster.
803
- */
804
-
805
-
806
- async createSearchIndex(description) {
807
- const [index] = await this.createSearchIndexes([description]);
808
- return index;
809
- }
810
- /**
811
- * Creates multiple search indexes for the current collection.
812
- *
813
- * @param descriptions - An array of `SearchIndexDescription`s for the new search indexes.
814
- * @returns A promise that resolves to an array of the newly created search index names.
815
- *
816
- * @remarks Only available when used against a 7.0+ Atlas cluster.
817
- * @returns
818
- */
819
-
820
-
821
- async createSearchIndexes(descriptions) {
822
- return await (0, execute_operation_1.executeOperation)(this.client, new create_1.CreateSearchIndexesOperation(this, descriptions));
823
- }
824
- /**
825
- * Deletes a search index by index name.
826
- *
827
- * @param name - The name of the search index to be deleted.
828
- *
829
- * @remarks Only available when used against a 7.0+ Atlas cluster.
830
- */
831
-
832
-
833
- async dropSearchIndex(name) {
834
- return await (0, execute_operation_1.executeOperation)(this.client, new drop_2.DropSearchIndexOperation(this, name));
835
- }
836
- /**
837
- * Updates a search index by replacing the existing index definition with the provided definition.
838
- *
839
- * @param name - The name of the search index to update.
840
- * @param definition - The new search index definition.
841
- *
842
- * @remarks Only available when used against a 7.0+ Atlas cluster.
843
- */
844
-
845
-
846
- async updateSearchIndex(name, definition) {
847
- return await (0, execute_operation_1.executeOperation)(this.client, new update_1.UpdateSearchIndexOperation(this, name, definition));
848
- }
849
-
850
- }
851
-
852
- exports.Collection = Collection;