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,409 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildReplaceOneOperation = exports.buildUpdateManyOperation = exports.buildUpdateOneOperation = exports.buildDeleteManyOperation = exports.buildDeleteOneOperation = exports.buildInsertOneOperation = exports.ClientBulkWriteCommandBuilder = void 0;
7
- exports.buildOperation = buildOperation;
8
-
9
- const bson_1 = require("../../bson");
10
-
11
- const commands_1 = require("../../cmap/commands");
12
-
13
- const error_1 = require("../../error");
14
-
15
- const sort_1 = require("../../sort");
16
-
17
- const utils_1 = require("../../utils");
18
- /**
19
- * The bytes overhead for the extra fields added post command generation.
20
- */
21
-
22
-
23
- const MESSAGE_OVERHEAD_BYTES = 1000;
24
- /** @internal */
25
-
26
- class ClientBulkWriteCommandBuilder {
27
- /**
28
- * Create the command builder.
29
- * @param models - The client write models.
30
- */
31
- constructor(models, options, pkFactory) {
32
- this.models = models;
33
- this.options = options;
34
- this.pkFactory = pkFactory ?? utils_1.DEFAULT_PK_FACTORY;
35
- this.currentModelIndex = 0;
36
- this.previousModelIndex = 0;
37
- this.lastOperations = [];
38
- this.isBatchRetryable = true;
39
- }
40
- /**
41
- * Gets the errorsOnly value for the command, which is the inverse of the
42
- * user provided verboseResults option. Defaults to true.
43
- */
44
-
45
-
46
- get errorsOnly() {
47
- if ('verboseResults' in this.options) {
48
- return !this.options.verboseResults;
49
- }
50
-
51
- return true;
52
- }
53
- /**
54
- * Determines if there is another batch to process.
55
- * @returns True if not all batches have been built.
56
- */
57
-
58
-
59
- hasNextBatch() {
60
- return this.currentModelIndex < this.models.length;
61
- }
62
- /**
63
- * When we need to retry a command we need to set the current
64
- * model index back to its previous value.
65
- */
66
-
67
-
68
- resetBatch() {
69
- this.currentModelIndex = this.previousModelIndex;
70
- return true;
71
- }
72
- /**
73
- * Build a single batch of a client bulk write command.
74
- * @param maxMessageSizeBytes - The max message size in bytes.
75
- * @param maxWriteBatchSize - The max write batch size.
76
- * @returns The client bulk write command.
77
- */
78
-
79
-
80
- buildBatch(maxMessageSizeBytes, maxWriteBatchSize, maxBsonObjectSize) {
81
- // We start by assuming the batch has no multi-updates, so it is retryable
82
- // until we find them.
83
- this.isBatchRetryable = true;
84
- let commandLength = 0;
85
- let currentNamespaceIndex = 0;
86
- const command = this.baseCommand();
87
- const namespaces = new Map(); // In the case of retries we need to mark where we started this batch.
88
-
89
- this.previousModelIndex = this.currentModelIndex;
90
-
91
- while (this.currentModelIndex < this.models.length) {
92
- const model = this.models[this.currentModelIndex];
93
- const ns = model.namespace;
94
- const nsIndex = namespaces.get(ns); // Multi updates are not retryable.
95
-
96
- if (model.name === 'deleteMany' || model.name === 'updateMany') {
97
- this.isBatchRetryable = false;
98
- }
99
-
100
- if (nsIndex != null) {
101
- // Build the operation and serialize it to get the bytes buffer.
102
- const operation = buildOperation(model, nsIndex, this.pkFactory, this.options);
103
- let operationBuffer;
104
-
105
- try {
106
- operationBuffer = bson_1.BSON.serialize(operation);
107
- } catch (cause) {
108
- throw new error_1.MongoInvalidArgumentError(`Could not serialize operation to BSON`, {
109
- cause
110
- });
111
- }
112
-
113
- validateBufferSize('ops', operationBuffer, maxBsonObjectSize); // Check if the operation buffer can fit in the command. If it can,
114
- // then add the operation to the document sequence and increment the
115
- // current length as long as the ops don't exceed the maxWriteBatchSize.
116
-
117
- if (commandLength + operationBuffer.length < maxMessageSizeBytes && command.ops.documents.length < maxWriteBatchSize) {
118
- // Pushing to the ops document sequence returns the total byte length of the document sequence.
119
- commandLength = MESSAGE_OVERHEAD_BYTES + command.ops.push(operation, operationBuffer); // Increment the builder's current model index.
120
-
121
- this.currentModelIndex++;
122
- } else {
123
- // The operation cannot fit in the current command and will need to
124
- // go in the next batch. Exit the loop.
125
- break;
126
- }
127
- } else {
128
- // The namespace is not already in the nsInfo so we will set it in the map, and
129
- // construct our nsInfo and ops documents and buffers.
130
- namespaces.set(ns, currentNamespaceIndex);
131
- const nsInfo = {
132
- ns: ns
133
- };
134
- const operation = buildOperation(model, currentNamespaceIndex, this.pkFactory, this.options);
135
- let nsInfoBuffer;
136
- let operationBuffer;
137
-
138
- try {
139
- nsInfoBuffer = bson_1.BSON.serialize(nsInfo);
140
- operationBuffer = bson_1.BSON.serialize(operation);
141
- } catch (cause) {
142
- throw new error_1.MongoInvalidArgumentError(`Could not serialize ns info to BSON`, {
143
- cause
144
- });
145
- }
146
-
147
- validateBufferSize('nsInfo', nsInfoBuffer, maxBsonObjectSize);
148
- validateBufferSize('ops', operationBuffer, maxBsonObjectSize); // Check if the operation and nsInfo buffers can fit in the command. If they
149
- // can, then add the operation and nsInfo to their respective document
150
- // sequences and increment the current length as long as the ops don't exceed
151
- // the maxWriteBatchSize.
152
-
153
- if (commandLength + nsInfoBuffer.length + operationBuffer.length < maxMessageSizeBytes && command.ops.documents.length < maxWriteBatchSize) {
154
- // Pushing to the ops document sequence returns the total byte length of the document sequence.
155
- commandLength = MESSAGE_OVERHEAD_BYTES + command.nsInfo.push(nsInfo, nsInfoBuffer) + command.ops.push(operation, operationBuffer); // We've added a new namespace, increment the namespace index.
156
-
157
- currentNamespaceIndex++; // Increment the builder's current model index.
158
-
159
- this.currentModelIndex++;
160
- } else {
161
- // The operation cannot fit in the current command and will need to
162
- // go in the next batch. Exit the loop.
163
- break;
164
- }
165
- }
166
- } // Set the last operations and return the command.
167
-
168
-
169
- this.lastOperations = command.ops.documents;
170
- return command;
171
- }
172
-
173
- baseCommand() {
174
- const command = {
175
- bulkWrite: 1,
176
- errorsOnly: this.errorsOnly,
177
- ordered: this.options.ordered ?? true,
178
- ops: new commands_1.DocumentSequence('ops'),
179
- nsInfo: new commands_1.DocumentSequence('nsInfo')
180
- }; // Add bypassDocumentValidation if it was present in the options.
181
-
182
- if (this.options.bypassDocumentValidation != null) {
183
- command.bypassDocumentValidation = this.options.bypassDocumentValidation;
184
- } // Add let if it was present in the options.
185
-
186
-
187
- if (this.options.let) {
188
- command.let = this.options.let;
189
- } // we check for undefined specifically here to allow falsy values
190
- // eslint-disable-next-line no-restricted-syntax
191
-
192
-
193
- if (this.options.comment !== undefined) {
194
- command.comment = this.options.comment;
195
- }
196
-
197
- return command;
198
- }
199
-
200
- }
201
-
202
- exports.ClientBulkWriteCommandBuilder = ClientBulkWriteCommandBuilder;
203
-
204
- function validateBufferSize(name, buffer, maxBsonObjectSize) {
205
- if (buffer.length > maxBsonObjectSize) {
206
- throw new error_1.MongoInvalidArgumentError(`Client bulk write operation ${name} of length ${buffer.length} exceeds the max bson object size of ${maxBsonObjectSize}`);
207
- }
208
- }
209
- /**
210
- * Build the insert one operation.
211
- * @param model - The insert one model.
212
- * @param index - The namespace index.
213
- * @returns the operation.
214
- */
215
-
216
-
217
- const buildInsertOneOperation = (model, index, pkFactory) => {
218
- const document = {
219
- insert: index,
220
- document: model.document
221
- };
222
- document.document._id = model.document._id ?? pkFactory.createPk();
223
- return document;
224
- };
225
-
226
- exports.buildInsertOneOperation = buildInsertOneOperation;
227
- /**
228
- * Build the delete one operation.
229
- * @param model - The insert many model.
230
- * @param index - The namespace index.
231
- * @returns the operation.
232
- */
233
-
234
- const buildDeleteOneOperation = (model, index) => {
235
- return createDeleteOperation(model, index, false);
236
- };
237
-
238
- exports.buildDeleteOneOperation = buildDeleteOneOperation;
239
- /**
240
- * Build the delete many operation.
241
- * @param model - The delete many model.
242
- * @param index - The namespace index.
243
- * @returns the operation.
244
- */
245
-
246
- const buildDeleteManyOperation = (model, index) => {
247
- return createDeleteOperation(model, index, true);
248
- };
249
-
250
- exports.buildDeleteManyOperation = buildDeleteManyOperation;
251
- /**
252
- * Creates a delete operation based on the parameters.
253
- */
254
-
255
- function createDeleteOperation(model, index, multi) {
256
- const document = {
257
- delete: index,
258
- multi: multi,
259
- filter: model.filter
260
- };
261
-
262
- if (model.hint) {
263
- document.hint = model.hint;
264
- }
265
-
266
- if (model.collation) {
267
- document.collation = model.collation;
268
- }
269
-
270
- return document;
271
- }
272
- /**
273
- * Build the update one operation.
274
- * @param model - The update one model.
275
- * @param index - The namespace index.
276
- * @returns the operation.
277
- */
278
-
279
-
280
- const buildUpdateOneOperation = (model, index, options) => {
281
- return createUpdateOperation(model, index, false, options);
282
- };
283
-
284
- exports.buildUpdateOneOperation = buildUpdateOneOperation;
285
- /**
286
- * Build the update many operation.
287
- * @param model - The update many model.
288
- * @param index - The namespace index.
289
- * @returns the operation.
290
- */
291
-
292
- const buildUpdateManyOperation = (model, index, options) => {
293
- return createUpdateOperation(model, index, true, options);
294
- };
295
-
296
- exports.buildUpdateManyOperation = buildUpdateManyOperation;
297
- /**
298
- * Validate the update document.
299
- * @param update - The update document.
300
- */
301
-
302
- function validateUpdate(update, options) {
303
- if (!(0, utils_1.hasAtomicOperators)(update, options)) {
304
- throw new error_1.MongoAPIError('Client bulk write update models must only contain atomic modifiers (start with $) and must not be empty.');
305
- }
306
- }
307
- /**
308
- * Creates a delete operation based on the parameters.
309
- */
310
-
311
-
312
- function createUpdateOperation(model, index, multi, options) {
313
- // Update documents provided in UpdateOne and UpdateMany write models are
314
- // required only to contain atomic modifiers (i.e. keys that start with "$").
315
- // Drivers MUST throw an error if an update document is empty or if the
316
- // document's first key does not start with "$".
317
- validateUpdate(model.update, options);
318
- const document = {
319
- update: index,
320
- multi: multi,
321
- filter: model.filter,
322
- updateMods: model.update
323
- };
324
-
325
- if (model.hint) {
326
- document.hint = model.hint;
327
- }
328
-
329
- if (model.upsert) {
330
- document.upsert = model.upsert;
331
- }
332
-
333
- if (model.arrayFilters) {
334
- document.arrayFilters = model.arrayFilters;
335
- }
336
-
337
- if (model.collation) {
338
- document.collation = model.collation;
339
- }
340
-
341
- if (!multi && 'sort' in model && model.sort != null) {
342
- document.sort = (0, sort_1.formatSort)(model.sort);
343
- }
344
-
345
- return document;
346
- }
347
- /**
348
- * Build the replace one operation.
349
- * @param model - The replace one model.
350
- * @param index - The namespace index.
351
- * @returns the operation.
352
- */
353
-
354
-
355
- const buildReplaceOneOperation = (model, index) => {
356
- if ((0, utils_1.hasAtomicOperators)(model.replacement)) {
357
- throw new error_1.MongoAPIError('Client bulk write replace models must not contain atomic modifiers (start with $) and must not be empty.');
358
- }
359
-
360
- const document = {
361
- update: index,
362
- multi: false,
363
- filter: model.filter,
364
- updateMods: model.replacement
365
- };
366
-
367
- if (model.hint) {
368
- document.hint = model.hint;
369
- }
370
-
371
- if (model.upsert) {
372
- document.upsert = model.upsert;
373
- }
374
-
375
- if (model.collation) {
376
- document.collation = model.collation;
377
- }
378
-
379
- if (model.sort != null) {
380
- document.sort = (0, sort_1.formatSort)(model.sort);
381
- }
382
-
383
- return document;
384
- };
385
-
386
- exports.buildReplaceOneOperation = buildReplaceOneOperation;
387
- /** @internal */
388
-
389
- function buildOperation(model, index, pkFactory, options) {
390
- switch (model.name) {
391
- case 'insertOne':
392
- return (0, exports.buildInsertOneOperation)(model, index, pkFactory);
393
-
394
- case 'deleteOne':
395
- return (0, exports.buildDeleteOneOperation)(model, index);
396
-
397
- case 'deleteMany':
398
- return (0, exports.buildDeleteManyOperation)(model, index);
399
-
400
- case 'updateOne':
401
- return (0, exports.buildUpdateOneOperation)(model, index, options);
402
-
403
- case 'updateMany':
404
- return (0, exports.buildUpdateManyOperation)(model, index, options);
405
-
406
- case 'replaceOne':
407
- return (0, exports.buildReplaceOneOperation)(model, index);
408
- }
409
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,144 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ClientBulkWriteExecutor = void 0;
7
-
8
- const abstract_cursor_1 = require("../../cursor/abstract_cursor");
9
-
10
- const client_bulk_write_cursor_1 = require("../../cursor/client_bulk_write_cursor");
11
-
12
- const error_1 = require("../../error");
13
-
14
- const timeout_1 = require("../../timeout");
15
-
16
- const utils_1 = require("../../utils");
17
-
18
- const write_concern_1 = require("../../write_concern");
19
-
20
- const execute_operation_1 = require("../execute_operation");
21
-
22
- const client_bulk_write_1 = require("./client_bulk_write");
23
-
24
- const command_builder_1 = require("./command_builder");
25
-
26
- const results_merger_1 = require("./results_merger");
27
- /**
28
- * Responsible for executing a client bulk write.
29
- * @internal
30
- */
31
-
32
-
33
- class ClientBulkWriteExecutor {
34
- /**
35
- * Instantiate the executor.
36
- * @param client - The mongo client.
37
- * @param operations - The user supplied bulk write models.
38
- * @param options - The bulk write options.
39
- */
40
- constructor(client, operations, options) {
41
- if (operations.length === 0) {
42
- throw new error_1.MongoClientBulkWriteExecutionError('No client bulk write models were provided.');
43
- }
44
-
45
- this.client = client;
46
- this.operations = operations;
47
- this.options = {
48
- ordered: true,
49
- bypassDocumentValidation: false,
50
- verboseResults: false,
51
- ...options
52
- }; // If no write concern was provided, we inherit one from the client.
53
-
54
- if (!this.options.writeConcern) {
55
- this.options.writeConcern = write_concern_1.WriteConcern.fromOptions(this.client.s.options);
56
- }
57
-
58
- if (this.options.writeConcern?.w === 0) {
59
- if (this.options.verboseResults) {
60
- throw new error_1.MongoInvalidArgumentError('Cannot request unacknowledged write concern and verbose results');
61
- }
62
-
63
- if (this.options.ordered) {
64
- throw new error_1.MongoInvalidArgumentError('Cannot request unacknowledged write concern and ordered writes');
65
- }
66
- }
67
- }
68
- /**
69
- * Execute the client bulk write. Will split commands into batches and exhaust the cursors
70
- * for each, then merge the results into one.
71
- * @returns The result.
72
- */
73
-
74
-
75
- async execute() {
76
- // The command builder will take the user provided models and potential split the batch
77
- // into multiple commands due to size.
78
- const pkFactory = this.client.s.options.pkFactory;
79
- const commandBuilder = new command_builder_1.ClientBulkWriteCommandBuilder(this.operations, this.options, pkFactory); // Unacknowledged writes need to execute all batches and return { ok: 1}
80
-
81
- const resolvedOptions = (0, utils_1.resolveTimeoutOptions)(this.client, this.options);
82
- const context = timeout_1.TimeoutContext.create(resolvedOptions);
83
-
84
- if (this.options.writeConcern?.w === 0) {
85
- while (commandBuilder.hasNextBatch()) {
86
- const operation = new client_bulk_write_1.ClientBulkWriteOperation(commandBuilder, this.options);
87
- await (0, execute_operation_1.executeOperation)(this.client, operation, context);
88
- }
89
-
90
- return results_merger_1.ClientBulkWriteResultsMerger.unacknowledged();
91
- } else {
92
- const resultsMerger = new results_merger_1.ClientBulkWriteResultsMerger(this.options); // For each command will will create and exhaust a cursor for the results.
93
-
94
- while (commandBuilder.hasNextBatch()) {
95
- const cursorContext = new abstract_cursor_1.CursorTimeoutContext(context, Symbol());
96
- const options = { ...this.options,
97
- timeoutContext: cursorContext,
98
- ...(resolvedOptions.timeoutMS != null && {
99
- timeoutMode: abstract_cursor_1.CursorTimeoutMode.LIFETIME
100
- })
101
- };
102
- const cursor = new client_bulk_write_cursor_1.ClientBulkWriteCursor(this.client, commandBuilder, options);
103
-
104
- try {
105
- await resultsMerger.merge(cursor);
106
- } catch (error) {
107
- // Write concern errors are recorded in the writeConcernErrors field on MongoClientBulkWriteError.
108
- // When a write concern error is encountered, it should not terminate execution of the bulk write
109
- // for either ordered or unordered bulk writes. However, drivers MUST throw an exception at the end
110
- // of execution if any write concern errors were observed.
111
- if (error instanceof error_1.MongoServerError && !(error instanceof error_1.MongoClientBulkWriteError)) {
112
- // Server side errors need to be wrapped inside a MongoClientBulkWriteError, where the root
113
- // cause is the error property and a partial result is to be included.
114
- const bulkWriteError = new error_1.MongoClientBulkWriteError({
115
- message: 'Mongo client bulk write encountered an error during execution'
116
- });
117
- bulkWriteError.cause = error;
118
- bulkWriteError.partialResult = resultsMerger.bulkWriteResult;
119
- throw bulkWriteError;
120
- } else {
121
- // Client side errors are just thrown.
122
- throw error;
123
- }
124
- }
125
- } // If we have write concern errors or unordered write errors at the end we throw.
126
-
127
-
128
- if (resultsMerger.writeConcernErrors.length > 0 || resultsMerger.writeErrors.size > 0) {
129
- const error = new error_1.MongoClientBulkWriteError({
130
- message: 'Mongo client bulk write encountered errors during execution.'
131
- });
132
- error.writeConcernErrors = resultsMerger.writeConcernErrors;
133
- error.writeErrors = resultsMerger.writeErrors;
134
- error.partialResult = resultsMerger.bulkWriteResult;
135
- throw error;
136
- }
137
-
138
- return resultsMerger.bulkWriteResult;
139
- }
140
- }
141
-
142
- }
143
-
144
- exports.ClientBulkWriteExecutor = ClientBulkWriteExecutor;