oxygen-cli 1.40.2-beta.1 → 1.41.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 (442) hide show
  1. package/CHANGELOG.md +1755 -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 -1
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +1 -1
  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 -1
  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-mongo.js +82 -82
  126. package/build/ox_modules/module-pdf.js +35 -35
  127. package/build/ox_modules/module-proxy.js +77 -77
  128. package/build/ox_modules/module-serial.js +55 -55
  129. package/build/ox_modules/module-shell.js +52 -33
  130. package/build/ox_modules/module-soap.js +72 -72
  131. package/build/ox_modules/module-twilio.js +41 -41
  132. package/build/ox_modules/module-utils.js +91 -91
  133. package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
  134. package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
  135. package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
  136. package/build/ox_modules/module-web/commands/assertExist.js +17 -17
  137. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
  138. package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
  139. package/build/ox_modules/module-web/commands/assertText.js +21 -21
  140. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
  141. package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
  142. package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
  143. package/build/ox_modules/module-web/commands/assertValue.js +20 -20
  144. package/build/ox_modules/module-web/commands/back.js +16 -16
  145. package/build/ox_modules/module-web/commands/clear.js +18 -18
  146. package/build/ox_modules/module-web/commands/click.js +25 -25
  147. package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
  148. package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
  149. package/build/ox_modules/module-web/commands/debug.js +15 -15
  150. package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
  151. package/build/ox_modules/module-web/commands/deselect.js +22 -22
  152. package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
  153. package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
  154. package/build/ox_modules/module-web/commands/execute.js +24 -24
  155. package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
  156. package/build/ox_modules/module-web/commands/findElement.js +19 -19
  157. package/build/ox_modules/module-web/commands/findElements.js +22 -22
  158. package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
  159. package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
  160. package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
  161. package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
  162. package/build/ox_modules/module-web/commands/getCookies.js +13 -13
  163. package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
  164. package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
  165. package/build/ox_modules/module-web/commands/getHTML.js +17 -17
  166. package/build/ox_modules/module-web/commands/getSource.js +16 -16
  167. package/build/ox_modules/module-web/commands/getText.js +18 -18
  168. package/build/ox_modules/module-web/commands/getTitle.js +12 -12
  169. package/build/ox_modules/module-web/commands/getUrl.js +16 -16
  170. package/build/ox_modules/module-web/commands/getValue.js +18 -18
  171. package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
  172. package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
  173. package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
  174. package/build/ox_modules/module-web/commands/index.js +1 -1
  175. package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
  176. package/build/ox_modules/module-web/commands/isChecked.js +18 -18
  177. package/build/ox_modules/module-web/commands/isExist.js +19 -19
  178. package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
  179. package/build/ox_modules/module-web/commands/isSelected.js +23 -23
  180. package/build/ox_modules/module-web/commands/isVisible.js +19 -19
  181. package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
  182. package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
  183. package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
  184. package/build/ox_modules/module-web/commands/mock.js +20 -20
  185. package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
  186. package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
  187. package/build/ox_modules/module-web/commands/newWindow.js +16 -16
  188. package/build/ox_modules/module-web/commands/open.js +16 -16
  189. package/build/ox_modules/module-web/commands/pause.js +15 -15
  190. package/build/ox_modules/module-web/commands/point.js +21 -21
  191. package/build/ox_modules/module-web/commands/pointJS.js +15 -15
  192. package/build/ox_modules/module-web/commands/refresh.js +15 -15
  193. package/build/ox_modules/module-web/commands/rightClick.js +17 -17
  194. package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
  195. package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
  196. package/build/ox_modules/module-web/commands/select.js +23 -23
  197. package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
  198. package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
  199. package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
  200. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
  201. package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
  202. package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
  203. package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
  204. package/build/ox_modules/module-web/commands/type.js +20 -20
  205. package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
  206. package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
  207. package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
  208. package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
  209. package/build/ox_modules/module-web/commands/verifyText.js +21 -21
  210. package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
  211. package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
  212. package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
  213. package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
  214. package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
  215. package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
  216. package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
  217. package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
  218. package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
  219. package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
  220. package/build/ox_modules/module-web/commands/waitForText.js +20 -20
  221. package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
  222. package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
  223. package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
  224. package/build/ox_modules/module-web.js +94 -94
  225. package/build/ox_modules/module-win/commands/assertText.js +17 -17
  226. package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
  227. package/build/ox_modules/module-win/commands/assertValue.js +14 -14
  228. package/build/ox_modules/module-win/commands/back.js +11 -11
  229. package/build/ox_modules/module-win/commands/clear.js +13 -13
  230. package/build/ox_modules/module-win/commands/click.js +13 -13
  231. package/build/ox_modules/module-win/commands/clickLong.js +14 -14
  232. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
  233. package/build/ox_modules/module-win/commands/findElement.js +15 -15
  234. package/build/ox_modules/module-win/commands/findElements.js +15 -15
  235. package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
  236. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
  237. package/build/ox_modules/module-win/commands/getLocation.js +14 -14
  238. package/build/ox_modules/module-win/commands/getSource.js +12 -12
  239. package/build/ox_modules/module-win/commands/getText.js +14 -14
  240. package/build/ox_modules/module-win/commands/getValue.js +14 -14
  241. package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
  242. package/build/ox_modules/module-win/commands/index.js +1 -1
  243. package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
  244. package/build/ox_modules/module-win/commands/isChecked.js +14 -14
  245. package/build/ox_modules/module-win/commands/isClickable.js +14 -14
  246. package/build/ox_modules/module-win/commands/isExist.js +15 -15
  247. package/build/ox_modules/module-win/commands/isSelected.js +14 -14
  248. package/build/ox_modules/module-win/commands/isVisible.js +15 -15
  249. package/build/ox_modules/module-win/commands/open.js +13 -13
  250. package/build/ox_modules/module-win/commands/pause.js +12 -12
  251. package/build/ox_modules/module-win/commands/rightClick.js +13 -13
  252. package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
  253. package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
  254. package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
  255. package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
  256. package/build/ox_modules/module-win/commands/tap.js +13 -13
  257. package/build/ox_modules/module-win/commands/type.js +16 -16
  258. package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
  259. package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
  260. package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
  261. package/build/ox_modules/module-win.js +47 -47
  262. package/build/ox_modules/utils.js +8 -8
  263. package/build/ox_reporters/excel/template.json +48 -48
  264. package/build/ox_reporters/html/index.ejs +163 -163
  265. package/build/ox_reporters/html/summary.ejs +77 -77
  266. package/build/ox_reporters/html/tests-details.ejs +134 -134
  267. package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
  268. package/build/ox_reporters/reporter-excel.js +1 -1
  269. package/build/ox_reporters/reporter-html.js +1 -1
  270. package/build/ox_reporters/reporter-json.js +1 -1
  271. package/build/ox_reporters/reporter-junit.js +1 -1
  272. package/build/ox_reporters/reporter-pdf.js +1 -1
  273. package/build/ox_reporters/reporter-rp.js +73 -42
  274. package/build/ox_reporters/reporter-xml.js +1 -1
  275. package/build/ox_services/service-devtools/submodule-network.js +1 -1
  276. package/build/ox_services/service-devtools.js +1 -1
  277. package/build/reporter/FileReporterBase.js +1 -1
  278. package/build/reporter/ReportAggregator.js +1 -1
  279. package/build/reporter/ReporterBase.js +1 -1
  280. package/build/reporter/WebSocketReporter.js +1 -1
  281. package/build/runners/WorkerProcess.js +1 -1
  282. package/build/runners/cucumber/CucumberEventListener.js +1 -1
  283. package/build/runners/cucumber/CucumberReporter.js +1 -1
  284. package/build/runners/cucumber/CucumberWorker.js +1 -1
  285. package/build/runners/cucumber/index.js +1 -1
  286. package/build/runners/cucumber/worker.js +1 -1
  287. package/build/runners/index.js +1 -1
  288. package/build/runners/oxygen/OxygenWorker.js +1 -1
  289. package/build/runners/oxygen/index.js +1 -1
  290. package/build/runners/oxygen/worker.js +1 -1
  291. package/config/default.json +6 -6
  292. package/package.json +139 -139
  293. package/types/index.d.ts +70 -70
  294. package/types/module-eyes.d.ts +39 -39
  295. package/types/module-http.d.ts +163 -163
  296. package/types/module-log.d.ts +34 -34
  297. package/types/module-mob.d.ts +966 -966
  298. package/types/module-pdf.d.ts +40 -40
  299. package/types/module-proxy.d.ts +100 -100
  300. package/types/module-shell.d.ts +24 -24
  301. package/types/module-utils.d.ts +99 -99
  302. package/types/module-web.d.ts +1053 -1053
  303. package/types/module-win.d.ts +352 -352
  304. package/types/oxygen.d.ts +53 -53
  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,77 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DistinctOperation = void 0;
7
-
8
- const utils_1 = require("../utils");
9
-
10
- const command_1 = require("./command");
11
-
12
- const operation_1 = require("./operation");
13
- /**
14
- * Return a list of distinct values for the given key across a collection.
15
- * @internal
16
- */
17
-
18
-
19
- class DistinctOperation extends command_1.CommandOperation {
20
- /**
21
- * Construct a Distinct operation.
22
- *
23
- * @param collection - Collection instance.
24
- * @param key - Field of the document to find distinct values for.
25
- * @param query - The query for filtering the set of documents to which we apply the distinct filter.
26
- * @param options - Optional settings. See Collection.prototype.distinct for a list of options.
27
- */
28
- constructor(collection, key, query, options) {
29
- super(collection, options);
30
- this.options = options ?? {};
31
- this.collection = collection;
32
- this.key = key;
33
- this.query = query;
34
- }
35
-
36
- get commandName() {
37
- return 'distinct';
38
- }
39
-
40
- async execute(server, session, timeoutContext) {
41
- const coll = this.collection;
42
- const key = this.key;
43
- const query = this.query;
44
- const options = this.options; // Distinct command
45
-
46
- const cmd = {
47
- distinct: coll.collectionName,
48
- key: key,
49
- query: query
50
- }; // Add maxTimeMS if defined
51
-
52
- if (typeof options.maxTimeMS === 'number') {
53
- cmd.maxTimeMS = options.maxTimeMS;
54
- } // we check for undefined specifically here to allow falsy values
55
- // eslint-disable-next-line no-restricted-syntax
56
-
57
-
58
- if (typeof options.comment !== 'undefined') {
59
- cmd.comment = options.comment;
60
- }
61
-
62
- if (options.hint != null) {
63
- cmd.hint = options.hint;
64
- } // Do we have a readConcern specified
65
-
66
-
67
- (0, utils_1.decorateWithReadConcern)(cmd, coll, options); // Have we specified collation
68
-
69
- (0, utils_1.decorateWithCollation)(cmd, coll, options);
70
- const result = await super.executeCommand(server, session, cmd, timeoutContext);
71
- return this.explain ? result : result.values;
72
- }
73
-
74
- }
75
-
76
- exports.DistinctOperation = DistinctOperation;
77
- (0, operation_1.defineAspects)(DistinctOperation, [operation_1.Aspect.READ_OPERATION, operation_1.Aspect.RETRYABLE, operation_1.Aspect.EXPLAINABLE]);
@@ -1,102 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DropDatabaseOperation = exports.DropCollectionOperation = void 0;
7
-
8
- const error_1 = require("../error");
9
-
10
- const command_1 = require("./command");
11
-
12
- const operation_1 = require("./operation");
13
- /** @internal */
14
-
15
-
16
- class DropCollectionOperation extends command_1.CommandOperation {
17
- constructor(db, name, options = {}) {
18
- super(db, options);
19
- this.db = db;
20
- this.options = options;
21
- this.name = name;
22
- }
23
-
24
- get commandName() {
25
- return 'drop';
26
- }
27
-
28
- async execute(server, session, timeoutContext) {
29
- const db = this.db;
30
- const options = this.options;
31
- const name = this.name;
32
- const encryptedFieldsMap = db.client.s.options.autoEncryption?.encryptedFieldsMap;
33
- let encryptedFields = options.encryptedFields ?? encryptedFieldsMap?.[`${db.databaseName}.${name}`];
34
-
35
- if (!encryptedFields && encryptedFieldsMap) {
36
- // If the MongoClient was configured with an encryptedFieldsMap,
37
- // and no encryptedFields config was available in it or explicitly
38
- // passed as an argument, the spec tells us to look one up using
39
- // listCollections().
40
- const listCollectionsResult = await db.listCollections({
41
- name
42
- }, {
43
- nameOnly: false
44
- }).toArray();
45
- encryptedFields = listCollectionsResult?.[0]?.options?.encryptedFields;
46
- }
47
-
48
- if (encryptedFields) {
49
- const escCollection = encryptedFields.escCollection || `enxcol_.${name}.esc`;
50
- const ecocCollection = encryptedFields.ecocCollection || `enxcol_.${name}.ecoc`;
51
-
52
- for (const collectionName of [escCollection, ecocCollection]) {
53
- // Drop auxilliary collections, ignoring potential NamespaceNotFound errors.
54
- const dropOp = new DropCollectionOperation(db, collectionName);
55
-
56
- try {
57
- await dropOp.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
58
- } catch (err) {
59
- if (!(err instanceof error_1.MongoServerError) || err.code !== error_1.MONGODB_ERROR_CODES.NamespaceNotFound) {
60
- throw err;
61
- }
62
- }
63
- }
64
- }
65
-
66
- return await this.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
67
- }
68
-
69
- async executeWithoutEncryptedFieldsCheck(server, session, timeoutContext) {
70
- await super.executeCommand(server, session, {
71
- drop: this.name
72
- }, timeoutContext);
73
- return true;
74
- }
75
-
76
- }
77
-
78
- exports.DropCollectionOperation = DropCollectionOperation;
79
- /** @internal */
80
-
81
- class DropDatabaseOperation extends command_1.CommandOperation {
82
- constructor(db, options) {
83
- super(db, options);
84
- this.options = options;
85
- }
86
-
87
- get commandName() {
88
- return 'dropDatabase';
89
- }
90
-
91
- async execute(server, session, timeoutContext) {
92
- await super.executeCommand(server, session, {
93
- dropDatabase: 1
94
- }, timeoutContext);
95
- return true;
96
- }
97
-
98
- }
99
-
100
- exports.DropDatabaseOperation = DropDatabaseOperation;
101
- (0, operation_1.defineAspects)(DropCollectionOperation, [operation_1.Aspect.WRITE_OPERATION]);
102
- (0, operation_1.defineAspects)(DropDatabaseOperation, [operation_1.Aspect.WRITE_OPERATION]);
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EstimatedDocumentCountOperation = void 0;
7
-
8
- const command_1 = require("./command");
9
-
10
- const operation_1 = require("./operation");
11
- /** @internal */
12
-
13
-
14
- class EstimatedDocumentCountOperation extends command_1.CommandOperation {
15
- constructor(collection, options = {}) {
16
- super(collection, options);
17
- this.options = options;
18
- this.collectionName = collection.collectionName;
19
- }
20
-
21
- get commandName() {
22
- return 'count';
23
- }
24
-
25
- async execute(server, session, timeoutContext) {
26
- const cmd = {
27
- count: this.collectionName
28
- };
29
-
30
- if (typeof this.options.maxTimeMS === 'number') {
31
- cmd.maxTimeMS = this.options.maxTimeMS;
32
- } // we check for undefined specifically here to allow falsy values
33
- // eslint-disable-next-line no-restricted-syntax
34
-
35
-
36
- if (this.options.comment !== undefined) {
37
- cmd.comment = this.options.comment;
38
- }
39
-
40
- const response = await super.executeCommand(server, session, cmd, timeoutContext);
41
- return response?.n || 0;
42
- }
43
-
44
- }
45
-
46
- exports.EstimatedDocumentCountOperation = EstimatedDocumentCountOperation;
47
- (0, operation_1.defineAspects)(EstimatedDocumentCountOperation, [operation_1.Aspect.READ_OPERATION, operation_1.Aspect.RETRYABLE, operation_1.Aspect.CURSOR_CREATING]);
@@ -1,251 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.executeOperation = executeOperation;
7
-
8
- const error_1 = require("../error");
9
-
10
- const read_preference_1 = require("../read_preference");
11
-
12
- const server_selection_1 = require("../sdam/server_selection");
13
-
14
- const timeout_1 = require("../timeout");
15
-
16
- const utils_1 = require("../utils");
17
-
18
- const operation_1 = require("./operation");
19
-
20
- const MMAPv1_RETRY_WRITES_ERROR_CODE = error_1.MONGODB_ERROR_CODES.IllegalOperation;
21
- const MMAPv1_RETRY_WRITES_ERROR_MESSAGE = 'This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.';
22
- /**
23
- * Executes the given operation with provided arguments.
24
- * @internal
25
- *
26
- * @remarks
27
- * Allows for a single point of entry to provide features such as implicit sessions, which
28
- * are required by the Driver Sessions specification in the event that a ClientSession is
29
- * not provided.
30
- *
31
- * The expectation is that this function:
32
- * - Connects the MongoClient if it has not already been connected, see {@link autoConnect}
33
- * - Creates a session if none is provided and cleans up the session it creates
34
- * - Tries an operation and retries under certain conditions, see {@link tryOperation}
35
- *
36
- * @typeParam T - The operation's type
37
- * @typeParam TResult - The type of the operation's result, calculated from T
38
- *
39
- * @param client - The MongoClient to execute this operation with
40
- * @param operation - The operation to execute
41
- */
42
-
43
- async function executeOperation(client, operation, timeoutContext) {
44
- if (!(operation instanceof operation_1.AbstractOperation)) {
45
- // TODO(NODE-3483): Extend MongoRuntimeError
46
- throw new error_1.MongoRuntimeError('This method requires a valid operation instance');
47
- }
48
-
49
- const topology = client.topology == null ? await (0, utils_1.abortable)(autoConnect(client), operation.options) : client.topology; // The driver sessions spec mandates that we implicitly create sessions for operations
50
- // that are not explicitly provided with a session.
51
-
52
- let session = operation.session;
53
- let owner;
54
-
55
- if (session == null) {
56
- owner = Symbol();
57
- session = client.startSession({
58
- owner,
59
- explicit: false
60
- });
61
- } else if (session.hasEnded) {
62
- throw new error_1.MongoExpiredSessionError('Use of expired sessions is not permitted');
63
- } else if (session.snapshotEnabled && !topology.capabilities.supportsSnapshotReads) {
64
- throw new error_1.MongoCompatibilityError('Snapshot reads require MongoDB 5.0 or later');
65
- } else if (session.client !== client) {
66
- throw new error_1.MongoInvalidArgumentError('ClientSession must be from the same MongoClient');
67
- }
68
-
69
- const readPreference = operation.readPreference ?? read_preference_1.ReadPreference.primary;
70
- const inTransaction = !!session?.inTransaction();
71
- const hasReadAspect = operation.hasAspect(operation_1.Aspect.READ_OPERATION);
72
-
73
- if (inTransaction && !readPreference.equals(read_preference_1.ReadPreference.primary) && (hasReadAspect || operation.commandName === 'runCommand')) {
74
- throw new error_1.MongoTransactionError(`Read preference in a transaction must be primary, not: ${readPreference.mode}`);
75
- }
76
-
77
- if (session?.isPinned && session.transaction.isCommitted && !operation.bypassPinningCheck) {
78
- session.unpin();
79
- }
80
-
81
- timeoutContext ??= timeout_1.TimeoutContext.create({
82
- session,
83
- serverSelectionTimeoutMS: client.s.options.serverSelectionTimeoutMS,
84
- waitQueueTimeoutMS: client.s.options.waitQueueTimeoutMS,
85
- timeoutMS: operation.options.timeoutMS
86
- });
87
-
88
- try {
89
- return await tryOperation(operation, {
90
- topology,
91
- timeoutContext,
92
- session,
93
- readPreference
94
- });
95
- } finally {
96
- if (session?.owner != null && session.owner === owner) {
97
- await session.endSession();
98
- }
99
- }
100
- }
101
- /**
102
- * Connects a client if it has not yet been connected
103
- * @internal
104
- */
105
-
106
-
107
- async function autoConnect(client) {
108
- if (client.topology == null) {
109
- if (client.s.hasBeenClosed) {
110
- throw new error_1.MongoNotConnectedError('Client must be connected before running operations');
111
- }
112
-
113
- client.s.options.__skipPingOnConnect = true;
114
-
115
- try {
116
- await client.connect();
117
-
118
- if (client.topology == null) {
119
- throw new error_1.MongoRuntimeError('client.connect did not create a topology but also did not throw');
120
- }
121
-
122
- return client.topology;
123
- } finally {
124
- delete client.s.options.__skipPingOnConnect;
125
- }
126
- }
127
-
128
- return client.topology;
129
- }
130
- /**
131
- * Executes an operation and retries as appropriate
132
- * @internal
133
- *
134
- * @remarks
135
- * Implements behaviour described in [Retryable Reads](https://github.com/mongodb/specifications/blob/master/source/retryable-reads/retryable-reads.md) and [Retryable
136
- * Writes](https://github.com/mongodb/specifications/blob/master/source/retryable-writes/retryable-writes.md) specification
137
- *
138
- * This function:
139
- * - performs initial server selection
140
- * - attempts to execute an operation
141
- * - retries the operation if it meets the criteria for a retryable read or a retryable write
142
- *
143
- * @typeParam T - The operation's type
144
- * @typeParam TResult - The type of the operation's result, calculated from T
145
- *
146
- * @param operation - The operation to execute
147
- * */
148
-
149
-
150
- async function tryOperation(operation, {
151
- topology,
152
- timeoutContext,
153
- session,
154
- readPreference
155
- }) {
156
- let selector;
157
-
158
- if (operation.hasAspect(operation_1.Aspect.MUST_SELECT_SAME_SERVER)) {
159
- // GetMore and KillCursor operations must always select the same server, but run through
160
- // server selection to potentially force monitor checks if the server is
161
- // in an unknown state.
162
- selector = (0, server_selection_1.sameServerSelector)(operation.server?.description);
163
- } else if (operation.trySecondaryWrite) {
164
- // If operation should try to write to secondary use the custom server selector
165
- // otherwise provide the read preference.
166
- selector = (0, server_selection_1.secondaryWritableServerSelector)(topology.commonWireVersion, readPreference);
167
- } else {
168
- selector = readPreference;
169
- }
170
-
171
- let server = await topology.selectServer(selector, {
172
- session,
173
- operationName: operation.commandName,
174
- timeoutContext,
175
- signal: operation.options.signal
176
- });
177
- const hasReadAspect = operation.hasAspect(operation_1.Aspect.READ_OPERATION);
178
- const hasWriteAspect = operation.hasAspect(operation_1.Aspect.WRITE_OPERATION);
179
- const inTransaction = session?.inTransaction() ?? false;
180
- const willRetryRead = topology.s.options.retryReads && !inTransaction && operation.canRetryRead;
181
- const willRetryWrite = topology.s.options.retryWrites && !inTransaction && (0, utils_1.supportsRetryableWrites)(server) && operation.canRetryWrite;
182
- const willRetry = operation.hasAspect(operation_1.Aspect.RETRYABLE) && session != null && (hasReadAspect && willRetryRead || hasWriteAspect && willRetryWrite);
183
-
184
- if (hasWriteAspect && willRetryWrite && session != null) {
185
- operation.options.willRetryWrite = true;
186
- session.incrementTransactionNumber();
187
- }
188
-
189
- const maxTries = willRetry ? timeoutContext.csotEnabled() ? Infinity : 2 : 1;
190
- let previousOperationError;
191
- let previousServer;
192
-
193
- for (let tries = 0; tries < maxTries; tries++) {
194
- if (previousOperationError) {
195
- if (hasWriteAspect && previousOperationError.code === MMAPv1_RETRY_WRITES_ERROR_CODE) {
196
- throw new error_1.MongoServerError({
197
- message: MMAPv1_RETRY_WRITES_ERROR_MESSAGE,
198
- errmsg: MMAPv1_RETRY_WRITES_ERROR_MESSAGE,
199
- originalError: previousOperationError
200
- });
201
- }
202
-
203
- if (operation.hasAspect(operation_1.Aspect.COMMAND_BATCHING) && !operation.canRetryWrite) {
204
- throw previousOperationError;
205
- }
206
-
207
- if (hasWriteAspect && !(0, error_1.isRetryableWriteError)(previousOperationError)) throw previousOperationError;
208
- if (hasReadAspect && !(0, error_1.isRetryableReadError)(previousOperationError)) throw previousOperationError;
209
-
210
- if (previousOperationError instanceof error_1.MongoNetworkError && operation.hasAspect(operation_1.Aspect.CURSOR_CREATING) && session != null && session.isPinned && !session.inTransaction()) {
211
- session.unpin({
212
- force: true,
213
- forceClear: true
214
- });
215
- }
216
-
217
- server = await topology.selectServer(selector, {
218
- session,
219
- operationName: operation.commandName,
220
- previousServer,
221
- signal: operation.options.signal
222
- });
223
-
224
- if (hasWriteAspect && !(0, utils_1.supportsRetryableWrites)(server)) {
225
- throw new error_1.MongoUnexpectedServerResponseError('Selected server does not support retryable writes');
226
- }
227
- }
228
-
229
- try {
230
- // If tries > 0 and we are command batching we need to reset the batch.
231
- if (tries > 0 && operation.hasAspect(operation_1.Aspect.COMMAND_BATCHING)) {
232
- operation.resetBatch();
233
- }
234
-
235
- return await operation.execute(server, session, timeoutContext);
236
- } catch (operationError) {
237
- if (!(operationError instanceof error_1.MongoError)) throw operationError;
238
-
239
- if (previousOperationError != null && operationError.hasErrorLabel(error_1.MongoErrorLabel.NoWritesPerformed)) {
240
- throw previousOperationError;
241
- }
242
-
243
- previousServer = server.description;
244
- previousOperationError = operationError; // Reset timeouts
245
-
246
- timeoutContext.clear();
247
- }
248
- }
249
-
250
- throw previousOperationError ?? new error_1.MongoRuntimeError('Tried to propagate retryability error, but no error was found.');
251
- }
@@ -1,197 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FindOperation = void 0;
7
-
8
- const responses_1 = require("../cmap/wire_protocol/responses");
9
-
10
- const error_1 = require("../error");
11
-
12
- const explain_1 = require("../explain");
13
-
14
- const read_concern_1 = require("../read_concern");
15
-
16
- const sort_1 = require("../sort");
17
-
18
- const utils_1 = require("../utils");
19
-
20
- const command_1 = require("./command");
21
-
22
- const operation_1 = require("./operation");
23
- /** @internal */
24
-
25
-
26
- class FindOperation extends command_1.CommandOperation {
27
- constructor(ns, filter = {}, options = {}) {
28
- super(undefined, options);
29
- this.options = { ...options
30
- };
31
- delete this.options.writeConcern;
32
- this.ns = ns;
33
-
34
- if (typeof filter !== 'object' || Array.isArray(filter)) {
35
- throw new error_1.MongoInvalidArgumentError('Query filter must be a plain object or ObjectId');
36
- } // special case passing in an ObjectId as a filter
37
-
38
-
39
- this.filter = filter != null && filter._bsontype === 'ObjectId' ? {
40
- _id: filter
41
- } : filter;
42
- }
43
-
44
- get commandName() {
45
- return 'find';
46
- }
47
-
48
- async execute(server, session, timeoutContext) {
49
- this.server = server;
50
- const options = this.options;
51
- let findCommand = makeFindCommand(this.ns, this.filter, options);
52
-
53
- if (this.explain) {
54
- (0, explain_1.validateExplainTimeoutOptions)(this.options, this.explain);
55
- findCommand = (0, explain_1.decorateWithExplain)(findCommand, this.explain);
56
- }
57
-
58
- return await server.command(this.ns, findCommand, { ...this.options,
59
- ...this.bsonOptions,
60
- documentsReturnedIn: 'firstBatch',
61
- session,
62
- timeoutContext
63
- }, this.explain ? responses_1.ExplainedCursorResponse : responses_1.CursorResponse);
64
- }
65
-
66
- }
67
-
68
- exports.FindOperation = FindOperation;
69
-
70
- function makeFindCommand(ns, filter, options) {
71
- const findCommand = {
72
- find: ns.collection,
73
- filter
74
- };
75
-
76
- if (options.sort) {
77
- findCommand.sort = (0, sort_1.formatSort)(options.sort);
78
- }
79
-
80
- if (options.projection) {
81
- let projection = options.projection;
82
-
83
- if (projection && Array.isArray(projection)) {
84
- projection = projection.length ? projection.reduce((result, field) => {
85
- result[field] = 1;
86
- return result;
87
- }, {}) : {
88
- _id: 1
89
- };
90
- }
91
-
92
- findCommand.projection = projection;
93
- }
94
-
95
- if (options.hint) {
96
- findCommand.hint = (0, utils_1.normalizeHintField)(options.hint);
97
- }
98
-
99
- if (typeof options.skip === 'number') {
100
- findCommand.skip = options.skip;
101
- }
102
-
103
- if (typeof options.limit === 'number') {
104
- if (options.limit < 0) {
105
- findCommand.limit = -options.limit;
106
- findCommand.singleBatch = true;
107
- } else {
108
- findCommand.limit = options.limit;
109
- }
110
- }
111
-
112
- if (typeof options.batchSize === 'number') {
113
- if (options.batchSize < 0) {
114
- if (options.limit && options.limit !== 0 && Math.abs(options.batchSize) < Math.abs(options.limit)) {
115
- findCommand.limit = -options.batchSize;
116
- }
117
-
118
- findCommand.singleBatch = true;
119
- } else {
120
- findCommand.batchSize = options.batchSize;
121
- }
122
- }
123
-
124
- if (typeof options.singleBatch === 'boolean') {
125
- findCommand.singleBatch = options.singleBatch;
126
- } // we check for undefined specifically here to allow falsy values
127
- // eslint-disable-next-line no-restricted-syntax
128
-
129
-
130
- if (options.comment !== undefined) {
131
- findCommand.comment = options.comment;
132
- }
133
-
134
- if (typeof options.maxTimeMS === 'number') {
135
- findCommand.maxTimeMS = options.maxTimeMS;
136
- }
137
-
138
- const readConcern = read_concern_1.ReadConcern.fromOptions(options);
139
-
140
- if (readConcern) {
141
- findCommand.readConcern = readConcern.toJSON();
142
- }
143
-
144
- if (options.max) {
145
- findCommand.max = options.max;
146
- }
147
-
148
- if (options.min) {
149
- findCommand.min = options.min;
150
- }
151
-
152
- if (typeof options.returnKey === 'boolean') {
153
- findCommand.returnKey = options.returnKey;
154
- }
155
-
156
- if (typeof options.showRecordId === 'boolean') {
157
- findCommand.showRecordId = options.showRecordId;
158
- }
159
-
160
- if (typeof options.tailable === 'boolean') {
161
- findCommand.tailable = options.tailable;
162
- }
163
-
164
- if (typeof options.oplogReplay === 'boolean') {
165
- findCommand.oplogReplay = options.oplogReplay;
166
- }
167
-
168
- if (typeof options.timeout === 'boolean') {
169
- findCommand.noCursorTimeout = !options.timeout;
170
- } else if (typeof options.noCursorTimeout === 'boolean') {
171
- findCommand.noCursorTimeout = options.noCursorTimeout;
172
- }
173
-
174
- if (typeof options.awaitData === 'boolean') {
175
- findCommand.awaitData = options.awaitData;
176
- }
177
-
178
- if (typeof options.allowPartialResults === 'boolean') {
179
- findCommand.allowPartialResults = options.allowPartialResults;
180
- }
181
-
182
- if (options.collation) {
183
- findCommand.collation = options.collation;
184
- }
185
-
186
- if (typeof options.allowDiskUse === 'boolean') {
187
- findCommand.allowDiskUse = options.allowDiskUse;
188
- }
189
-
190
- if (options.let) {
191
- findCommand.let = options.let;
192
- }
193
-
194
- return findCommand;
195
- }
196
-
197
- (0, operation_1.defineAspects)(FindOperation, [operation_1.Aspect.READ_OPERATION, operation_1.Aspect.RETRYABLE, operation_1.Aspect.EXPLAINABLE, operation_1.Aspect.CURSOR_CREATING]);