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,1041 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.BulkOperationBase = exports.BulkWriteShimOperation = exports.FindOperators = exports.MongoBulkWriteError = exports.WriteError = exports.WriteConcernError = exports.BulkWriteResult = exports.Batch = exports.BatchType = void 0;
7
- exports.mergeBatchResults = mergeBatchResults;
8
-
9
- const bson_1 = require("../bson");
10
-
11
- const error_1 = require("../error");
12
-
13
- const delete_1 = require("../operations/delete");
14
-
15
- const execute_operation_1 = require("../operations/execute_operation");
16
-
17
- const insert_1 = require("../operations/insert");
18
-
19
- const operation_1 = require("../operations/operation");
20
-
21
- const update_1 = require("../operations/update");
22
-
23
- const utils_1 = require("../utils");
24
-
25
- const write_concern_1 = require("../write_concern");
26
- /** @public */
27
-
28
-
29
- exports.BatchType = Object.freeze({
30
- INSERT: 1,
31
- UPDATE: 2,
32
- DELETE: 3
33
- });
34
- /**
35
- * Keeps the state of a unordered batch so we can rewrite the results
36
- * correctly after command execution
37
- *
38
- * @public
39
- */
40
-
41
- class Batch {
42
- constructor(batchType, originalZeroIndex) {
43
- this.originalZeroIndex = originalZeroIndex;
44
- this.currentIndex = 0;
45
- this.originalIndexes = [];
46
- this.batchType = batchType;
47
- this.operations = [];
48
- this.size = 0;
49
- this.sizeBytes = 0;
50
- }
51
-
52
- }
53
-
54
- exports.Batch = Batch;
55
- /**
56
- * @public
57
- * The result of a bulk write.
58
- */
59
-
60
- class BulkWriteResult {
61
- static generateIdMap(ids) {
62
- const idMap = {};
63
-
64
- for (const doc of ids) {
65
- idMap[doc.index] = doc._id;
66
- }
67
-
68
- return idMap;
69
- }
70
- /**
71
- * Create a new BulkWriteResult instance
72
- * @internal
73
- */
74
-
75
-
76
- constructor(bulkResult, isOrdered) {
77
- this.result = bulkResult;
78
- this.insertedCount = this.result.nInserted ?? 0;
79
- this.matchedCount = this.result.nMatched ?? 0;
80
- this.modifiedCount = this.result.nModified ?? 0;
81
- this.deletedCount = this.result.nRemoved ?? 0;
82
- this.upsertedCount = this.result.upserted.length ?? 0;
83
- this.upsertedIds = BulkWriteResult.generateIdMap(this.result.upserted);
84
- this.insertedIds = BulkWriteResult.generateIdMap(this.getSuccessfullyInsertedIds(bulkResult, isOrdered));
85
- Object.defineProperty(this, 'result', {
86
- value: this.result,
87
- enumerable: false
88
- });
89
- }
90
- /** Evaluates to true if the bulk operation correctly executes */
91
-
92
-
93
- get ok() {
94
- return this.result.ok;
95
- }
96
- /**
97
- * Returns document_ids that were actually inserted
98
- * @internal
99
- */
100
-
101
-
102
- getSuccessfullyInsertedIds(bulkResult, isOrdered) {
103
- if (bulkResult.writeErrors.length === 0) return bulkResult.insertedIds;
104
-
105
- if (isOrdered) {
106
- return bulkResult.insertedIds.slice(0, bulkResult.writeErrors[0].index);
107
- }
108
-
109
- return bulkResult.insertedIds.filter(({
110
- index
111
- }) => !bulkResult.writeErrors.some(writeError => index === writeError.index));
112
- }
113
- /** Returns the upserted id at the given index */
114
-
115
-
116
- getUpsertedIdAt(index) {
117
- return this.result.upserted[index];
118
- }
119
- /** Returns raw internal result */
120
-
121
-
122
- getRawResponse() {
123
- return this.result;
124
- }
125
- /** Returns true if the bulk operation contains a write error */
126
-
127
-
128
- hasWriteErrors() {
129
- return this.result.writeErrors.length > 0;
130
- }
131
- /** Returns the number of write errors from the bulk operation */
132
-
133
-
134
- getWriteErrorCount() {
135
- return this.result.writeErrors.length;
136
- }
137
- /** Returns a specific write error object */
138
-
139
-
140
- getWriteErrorAt(index) {
141
- return index < this.result.writeErrors.length ? this.result.writeErrors[index] : undefined;
142
- }
143
- /** Retrieve all write errors */
144
-
145
-
146
- getWriteErrors() {
147
- return this.result.writeErrors;
148
- }
149
- /** Retrieve the write concern error if one exists */
150
-
151
-
152
- getWriteConcernError() {
153
- if (this.result.writeConcernErrors.length === 0) {
154
- return;
155
- } else if (this.result.writeConcernErrors.length === 1) {
156
- // Return the error
157
- return this.result.writeConcernErrors[0];
158
- } else {
159
- // Combine the errors
160
- let errmsg = '';
161
-
162
- for (let i = 0; i < this.result.writeConcernErrors.length; i++) {
163
- const err = this.result.writeConcernErrors[i];
164
- errmsg = errmsg + err.errmsg; // TODO: Something better
165
-
166
- if (i === 0) errmsg = errmsg + ' and ';
167
- }
168
-
169
- return new WriteConcernError({
170
- errmsg,
171
- code: error_1.MONGODB_ERROR_CODES.WriteConcernTimeout
172
- });
173
- }
174
- }
175
-
176
- toString() {
177
- return `BulkWriteResult(${bson_1.EJSON.stringify(this.result)})`;
178
- }
179
-
180
- isOk() {
181
- return this.result.ok === 1;
182
- }
183
-
184
- }
185
-
186
- exports.BulkWriteResult = BulkWriteResult;
187
- /**
188
- * An error representing a failure by the server to apply the requested write concern to the bulk operation.
189
- * @public
190
- * @category Error
191
- */
192
-
193
- class WriteConcernError {
194
- constructor(error) {
195
- this.serverError = error;
196
- }
197
- /** Write concern error code. */
198
-
199
-
200
- get code() {
201
- return this.serverError.code;
202
- }
203
- /** Write concern error message. */
204
-
205
-
206
- get errmsg() {
207
- return this.serverError.errmsg;
208
- }
209
- /** Write concern error info. */
210
-
211
-
212
- get errInfo() {
213
- return this.serverError.errInfo;
214
- }
215
-
216
- toJSON() {
217
- return this.serverError;
218
- }
219
-
220
- toString() {
221
- return `WriteConcernError(${this.errmsg})`;
222
- }
223
-
224
- }
225
-
226
- exports.WriteConcernError = WriteConcernError;
227
- /**
228
- * An error that occurred during a BulkWrite on the server.
229
- * @public
230
- * @category Error
231
- */
232
-
233
- class WriteError {
234
- constructor(err) {
235
- this.err = err;
236
- }
237
- /** WriteError code. */
238
-
239
-
240
- get code() {
241
- return this.err.code;
242
- }
243
- /** WriteError original bulk operation index. */
244
-
245
-
246
- get index() {
247
- return this.err.index;
248
- }
249
- /** WriteError message. */
250
-
251
-
252
- get errmsg() {
253
- return this.err.errmsg;
254
- }
255
- /** WriteError details. */
256
-
257
-
258
- get errInfo() {
259
- return this.err.errInfo;
260
- }
261
- /** Returns the underlying operation that caused the error */
262
-
263
-
264
- getOperation() {
265
- return this.err.op;
266
- }
267
-
268
- toJSON() {
269
- return {
270
- code: this.err.code,
271
- index: this.err.index,
272
- errmsg: this.err.errmsg,
273
- op: this.err.op
274
- };
275
- }
276
-
277
- toString() {
278
- return `WriteError(${JSON.stringify(this.toJSON())})`;
279
- }
280
-
281
- }
282
-
283
- exports.WriteError = WriteError;
284
- /** Merges results into shared data structure */
285
-
286
- function mergeBatchResults(batch, bulkResult, err, result) {
287
- // If we have an error set the result to be the err object
288
- if (err) {
289
- result = err;
290
- } else if (result && result.result) {
291
- result = result.result;
292
- }
293
-
294
- if (result == null) {
295
- return;
296
- } // Do we have a top level error stop processing and return
297
-
298
-
299
- if (result.ok === 0 && bulkResult.ok === 1) {
300
- bulkResult.ok = 0;
301
- const writeError = {
302
- index: 0,
303
- code: result.code || 0,
304
- errmsg: result.message,
305
- errInfo: result.errInfo,
306
- op: batch.operations[0]
307
- };
308
- bulkResult.writeErrors.push(new WriteError(writeError));
309
- return;
310
- } else if (result.ok === 0 && bulkResult.ok === 0) {
311
- return;
312
- } // If we have an insert Batch type
313
-
314
-
315
- if (isInsertBatch(batch) && result.n) {
316
- bulkResult.nInserted = bulkResult.nInserted + result.n;
317
- } // If we have an insert Batch type
318
-
319
-
320
- if (isDeleteBatch(batch) && result.n) {
321
- bulkResult.nRemoved = bulkResult.nRemoved + result.n;
322
- }
323
-
324
- let nUpserted = 0; // We have an array of upserted values, we need to rewrite the indexes
325
-
326
- if (Array.isArray(result.upserted)) {
327
- nUpserted = result.upserted.length;
328
-
329
- for (let i = 0; i < result.upserted.length; i++) {
330
- bulkResult.upserted.push({
331
- index: result.upserted[i].index + batch.originalZeroIndex,
332
- _id: result.upserted[i]._id
333
- });
334
- }
335
- } else if (result.upserted) {
336
- nUpserted = 1;
337
- bulkResult.upserted.push({
338
- index: batch.originalZeroIndex,
339
- _id: result.upserted
340
- });
341
- } // If we have an update Batch type
342
-
343
-
344
- if (isUpdateBatch(batch) && result.n) {
345
- const nModified = result.nModified;
346
- bulkResult.nUpserted = bulkResult.nUpserted + nUpserted;
347
- bulkResult.nMatched = bulkResult.nMatched + (result.n - nUpserted);
348
-
349
- if (typeof nModified === 'number') {
350
- bulkResult.nModified = bulkResult.nModified + nModified;
351
- } else {
352
- bulkResult.nModified = 0;
353
- }
354
- }
355
-
356
- if (Array.isArray(result.writeErrors)) {
357
- for (let i = 0; i < result.writeErrors.length; i++) {
358
- const writeError = {
359
- index: batch.originalIndexes[result.writeErrors[i].index],
360
- code: result.writeErrors[i].code,
361
- errmsg: result.writeErrors[i].errmsg,
362
- errInfo: result.writeErrors[i].errInfo,
363
- op: batch.operations[result.writeErrors[i].index]
364
- };
365
- bulkResult.writeErrors.push(new WriteError(writeError));
366
- }
367
- }
368
-
369
- if (result.writeConcernError) {
370
- bulkResult.writeConcernErrors.push(new WriteConcernError(result.writeConcernError));
371
- }
372
- }
373
-
374
- async function executeCommands(bulkOperation, options) {
375
- if (bulkOperation.s.batches.length === 0) {
376
- return new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
377
- }
378
-
379
- for (const batch of bulkOperation.s.batches) {
380
- const finalOptions = (0, utils_1.resolveOptions)(bulkOperation, { ...options,
381
- ordered: bulkOperation.isOrdered
382
- });
383
-
384
- if (finalOptions.bypassDocumentValidation !== true) {
385
- delete finalOptions.bypassDocumentValidation;
386
- } // Is the bypassDocumentValidation options specific
387
-
388
-
389
- if (bulkOperation.s.bypassDocumentValidation === true) {
390
- finalOptions.bypassDocumentValidation = true;
391
- } // Is the checkKeys option disabled
392
-
393
-
394
- if (bulkOperation.s.checkKeys === false) {
395
- finalOptions.checkKeys = false;
396
- }
397
-
398
- if (finalOptions.retryWrites) {
399
- if (isUpdateBatch(batch)) {
400
- finalOptions.retryWrites = finalOptions.retryWrites && !batch.operations.some(op => op.multi);
401
- }
402
-
403
- if (isDeleteBatch(batch)) {
404
- finalOptions.retryWrites = finalOptions.retryWrites && !batch.operations.some(op => op.limit === 0);
405
- }
406
- }
407
-
408
- const operation = isInsertBatch(batch) ? new insert_1.InsertOperation(bulkOperation.s.namespace, batch.operations, finalOptions) : isUpdateBatch(batch) ? new update_1.UpdateOperation(bulkOperation.s.namespace, batch.operations, finalOptions) : isDeleteBatch(batch) ? new delete_1.DeleteOperation(bulkOperation.s.namespace, batch.operations, finalOptions) : null;
409
- if (operation == null) throw new error_1.MongoRuntimeError(`Unknown batchType: ${batch.batchType}`);
410
- let thrownError = null;
411
- let result;
412
-
413
- try {
414
- result = await (0, execute_operation_1.executeOperation)(bulkOperation.s.collection.client, operation, finalOptions.timeoutContext);
415
- } catch (error) {
416
- thrownError = error;
417
- }
418
-
419
- if (thrownError != null) {
420
- if (thrownError instanceof error_1.MongoWriteConcernError) {
421
- mergeBatchResults(batch, bulkOperation.s.bulkResult, thrownError, result);
422
- const writeResult = new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
423
- throw new MongoBulkWriteError({
424
- message: thrownError.result.writeConcernError.errmsg,
425
- code: thrownError.result.writeConcernError.code
426
- }, writeResult);
427
- } else {
428
- // Error is a driver related error not a bulk op error, return early
429
- throw new MongoBulkWriteError(thrownError, new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered));
430
- }
431
- }
432
-
433
- mergeBatchResults(batch, bulkOperation.s.bulkResult, thrownError, result);
434
- const writeResult = new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
435
- bulkOperation.handleWriteError(writeResult);
436
- }
437
-
438
- bulkOperation.s.batches.length = 0;
439
- const writeResult = new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
440
- bulkOperation.handleWriteError(writeResult);
441
- return writeResult;
442
- }
443
- /**
444
- * An error indicating an unsuccessful Bulk Write
445
- * @public
446
- * @category Error
447
- */
448
-
449
-
450
- class MongoBulkWriteError extends error_1.MongoServerError {
451
- /**
452
- * **Do not use this constructor!**
453
- *
454
- * Meant for internal use only.
455
- *
456
- * @remarks
457
- * This class is only meant to be constructed within the driver. This constructor is
458
- * not subject to semantic versioning compatibility guarantees and may change at any time.
459
- *
460
- * @public
461
- **/
462
- constructor(error, result) {
463
- super(error);
464
- this.writeErrors = [];
465
- if (error instanceof WriteConcernError) this.err = error;else if (!(error instanceof Error)) {
466
- this.message = error.message;
467
- this.code = error.code;
468
- this.writeErrors = error.writeErrors ?? [];
469
- }
470
- this.result = result;
471
- Object.assign(this, error);
472
- }
473
-
474
- get name() {
475
- return 'MongoBulkWriteError';
476
- }
477
- /** Number of documents inserted. */
478
-
479
-
480
- get insertedCount() {
481
- return this.result.insertedCount;
482
- }
483
- /** Number of documents matched for update. */
484
-
485
-
486
- get matchedCount() {
487
- return this.result.matchedCount;
488
- }
489
- /** Number of documents modified. */
490
-
491
-
492
- get modifiedCount() {
493
- return this.result.modifiedCount;
494
- }
495
- /** Number of documents deleted. */
496
-
497
-
498
- get deletedCount() {
499
- return this.result.deletedCount;
500
- }
501
- /** Number of documents upserted. */
502
-
503
-
504
- get upsertedCount() {
505
- return this.result.upsertedCount;
506
- }
507
- /** Inserted document generated Id's, hash key is the index of the originating operation */
508
-
509
-
510
- get insertedIds() {
511
- return this.result.insertedIds;
512
- }
513
- /** Upserted document generated Id's, hash key is the index of the originating operation */
514
-
515
-
516
- get upsertedIds() {
517
- return this.result.upsertedIds;
518
- }
519
-
520
- }
521
-
522
- exports.MongoBulkWriteError = MongoBulkWriteError;
523
- /**
524
- * A builder object that is returned from {@link BulkOperationBase#find}.
525
- * Is used to build a write operation that involves a query filter.
526
- *
527
- * @public
528
- */
529
-
530
- class FindOperators {
531
- /**
532
- * Creates a new FindOperators object.
533
- * @internal
534
- */
535
- constructor(bulkOperation) {
536
- this.bulkOperation = bulkOperation;
537
- }
538
- /** Add a multiple update operation to the bulk operation */
539
-
540
-
541
- update(updateDocument) {
542
- const currentOp = buildCurrentOp(this.bulkOperation);
543
- return this.bulkOperation.addToOperationsList(exports.BatchType.UPDATE, (0, update_1.makeUpdateStatement)(currentOp.selector, updateDocument, { ...currentOp,
544
- multi: true
545
- }));
546
- }
547
- /** Add a single update operation to the bulk operation */
548
-
549
-
550
- updateOne(updateDocument) {
551
- if (!(0, utils_1.hasAtomicOperators)(updateDocument, this.bulkOperation.bsonOptions)) {
552
- throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
553
- }
554
-
555
- const currentOp = buildCurrentOp(this.bulkOperation);
556
- return this.bulkOperation.addToOperationsList(exports.BatchType.UPDATE, (0, update_1.makeUpdateStatement)(currentOp.selector, updateDocument, { ...currentOp,
557
- multi: false
558
- }));
559
- }
560
- /** Add a replace one operation to the bulk operation */
561
-
562
-
563
- replaceOne(replacement) {
564
- if ((0, utils_1.hasAtomicOperators)(replacement)) {
565
- throw new error_1.MongoInvalidArgumentError('Replacement document must not use atomic operators');
566
- }
567
-
568
- const currentOp = buildCurrentOp(this.bulkOperation);
569
- return this.bulkOperation.addToOperationsList(exports.BatchType.UPDATE, (0, update_1.makeUpdateStatement)(currentOp.selector, replacement, { ...currentOp,
570
- multi: false
571
- }));
572
- }
573
- /** Add a delete one operation to the bulk operation */
574
-
575
-
576
- deleteOne() {
577
- const currentOp = buildCurrentOp(this.bulkOperation);
578
- return this.bulkOperation.addToOperationsList(exports.BatchType.DELETE, (0, delete_1.makeDeleteStatement)(currentOp.selector, { ...currentOp,
579
- limit: 1
580
- }));
581
- }
582
- /** Add a delete many operation to the bulk operation */
583
-
584
-
585
- delete() {
586
- const currentOp = buildCurrentOp(this.bulkOperation);
587
- return this.bulkOperation.addToOperationsList(exports.BatchType.DELETE, (0, delete_1.makeDeleteStatement)(currentOp.selector, { ...currentOp,
588
- limit: 0
589
- }));
590
- }
591
- /** Upsert modifier for update bulk operation, noting that this operation is an upsert. */
592
-
593
-
594
- upsert() {
595
- if (!this.bulkOperation.s.currentOp) {
596
- this.bulkOperation.s.currentOp = {};
597
- }
598
-
599
- this.bulkOperation.s.currentOp.upsert = true;
600
- return this;
601
- }
602
- /** Specifies the collation for the query condition. */
603
-
604
-
605
- collation(collation) {
606
- if (!this.bulkOperation.s.currentOp) {
607
- this.bulkOperation.s.currentOp = {};
608
- }
609
-
610
- this.bulkOperation.s.currentOp.collation = collation;
611
- return this;
612
- }
613
- /** Specifies arrayFilters for UpdateOne or UpdateMany bulk operations. */
614
-
615
-
616
- arrayFilters(arrayFilters) {
617
- if (!this.bulkOperation.s.currentOp) {
618
- this.bulkOperation.s.currentOp = {};
619
- }
620
-
621
- this.bulkOperation.s.currentOp.arrayFilters = arrayFilters;
622
- return this;
623
- }
624
- /** Specifies hint for the bulk operation. */
625
-
626
-
627
- hint(hint) {
628
- if (!this.bulkOperation.s.currentOp) {
629
- this.bulkOperation.s.currentOp = {};
630
- }
631
-
632
- this.bulkOperation.s.currentOp.hint = hint;
633
- return this;
634
- }
635
-
636
- }
637
-
638
- exports.FindOperators = FindOperators;
639
- /**
640
- * TODO(NODE-4063)
641
- * BulkWrites merge complexity is implemented in executeCommands
642
- * This provides a vehicle to treat bulkOperations like any other operation (hence "shim")
643
- * We would like this logic to simply live inside the BulkWriteOperation class
644
- * @internal
645
- */
646
-
647
- class BulkWriteShimOperation extends operation_1.AbstractOperation {
648
- constructor(bulkOperation, options) {
649
- super(options);
650
- this.bulkOperation = bulkOperation;
651
- }
652
-
653
- get commandName() {
654
- return 'bulkWrite';
655
- }
656
-
657
- async execute(_server, session, timeoutContext) {
658
- if (this.options.session == null) {
659
- // An implicit session could have been created by 'executeOperation'
660
- // So if we stick it on finalOptions here, each bulk operation
661
- // will use this same session, it'll be passed in the same way
662
- // an explicit session would be
663
- this.options.session = session;
664
- }
665
-
666
- return await executeCommands(this.bulkOperation, { ...this.options,
667
- timeoutContext
668
- });
669
- }
670
-
671
- }
672
-
673
- exports.BulkWriteShimOperation = BulkWriteShimOperation;
674
- /** @public */
675
-
676
- class BulkOperationBase {
677
- /**
678
- * Create a new OrderedBulkOperation or UnorderedBulkOperation instance
679
- * @internal
680
- */
681
- constructor(collection, options, isOrdered) {
682
- this.collection = collection; // determine whether bulkOperation is ordered or unordered
683
-
684
- this.isOrdered = isOrdered;
685
- const topology = (0, utils_1.getTopology)(collection);
686
- options = options == null ? {} : options; // TODO Bring from driver information in hello
687
- // Get the namespace for the write operations
688
-
689
- const namespace = collection.s.namespace; // Used to mark operation as executed
690
-
691
- const executed = false; // Current item
692
-
693
- const currentOp = undefined; // Set max byte size
694
-
695
- const hello = topology.lastHello(); // If we have autoEncryption on, batch-splitting must be done on 2mb chunks, but single documents
696
- // over 2mb are still allowed
697
-
698
- const usingAutoEncryption = !!(topology.s.options && topology.s.options.autoEncrypter);
699
- const maxBsonObjectSize = hello && hello.maxBsonObjectSize ? hello.maxBsonObjectSize : 1024 * 1024 * 16;
700
- const maxBatchSizeBytes = usingAutoEncryption ? 1024 * 1024 * 2 : maxBsonObjectSize;
701
- const maxWriteBatchSize = hello && hello.maxWriteBatchSize ? hello.maxWriteBatchSize : 1000; // Calculates the largest possible size of an Array key, represented as a BSON string
702
- // element. This calculation:
703
- // 1 byte for BSON type
704
- // # of bytes = length of (string representation of (maxWriteBatchSize - 1))
705
- // + 1 bytes for null terminator
706
-
707
- const maxKeySize = (maxWriteBatchSize - 1).toString(10).length + 2; // Final options for retryable writes
708
-
709
- let finalOptions = Object.assign({}, options);
710
- finalOptions = (0, utils_1.applyRetryableWrites)(finalOptions, collection.s.db); // Final results
711
-
712
- const bulkResult = {
713
- ok: 1,
714
- writeErrors: [],
715
- writeConcernErrors: [],
716
- insertedIds: [],
717
- nInserted: 0,
718
- nUpserted: 0,
719
- nMatched: 0,
720
- nModified: 0,
721
- nRemoved: 0,
722
- upserted: []
723
- }; // Internal state
724
-
725
- this.s = {
726
- // Final result
727
- bulkResult,
728
- // Current batch state
729
- currentBatch: undefined,
730
- currentIndex: 0,
731
- // ordered specific
732
- currentBatchSize: 0,
733
- currentBatchSizeBytes: 0,
734
- // unordered specific
735
- currentInsertBatch: undefined,
736
- currentUpdateBatch: undefined,
737
- currentRemoveBatch: undefined,
738
- batches: [],
739
- // Write concern
740
- writeConcern: write_concern_1.WriteConcern.fromOptions(options),
741
- // Max batch size options
742
- maxBsonObjectSize,
743
- maxBatchSizeBytes,
744
- maxWriteBatchSize,
745
- maxKeySize,
746
- // Namespace
747
- namespace,
748
- // Topology
749
- topology,
750
- // Options
751
- options: finalOptions,
752
- // BSON options
753
- bsonOptions: (0, bson_1.resolveBSONOptions)(options),
754
- // Current operation
755
- currentOp,
756
- // Executed
757
- executed,
758
- // Collection
759
- collection,
760
- // Fundamental error
761
- err: undefined,
762
- // check keys
763
- checkKeys: typeof options.checkKeys === 'boolean' ? options.checkKeys : false
764
- }; // bypass Validation
765
-
766
- if (options.bypassDocumentValidation === true) {
767
- this.s.bypassDocumentValidation = true;
768
- }
769
- }
770
- /**
771
- * Add a single insert document to the bulk operation
772
- *
773
- * @example
774
- * ```ts
775
- * const bulkOp = collection.initializeOrderedBulkOp();
776
- *
777
- * // Adds three inserts to the bulkOp.
778
- * bulkOp
779
- * .insert({ a: 1 })
780
- * .insert({ b: 2 })
781
- * .insert({ c: 3 });
782
- * await bulkOp.execute();
783
- * ```
784
- */
785
-
786
-
787
- insert(document) {
788
- (0, utils_1.maybeAddIdToDocuments)(this.collection, document, {
789
- forceServerObjectId: this.shouldForceServerObjectId()
790
- });
791
- return this.addToOperationsList(exports.BatchType.INSERT, document);
792
- }
793
- /**
794
- * Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne.
795
- * Returns a builder object used to complete the definition of the operation.
796
- *
797
- * @example
798
- * ```ts
799
- * const bulkOp = collection.initializeOrderedBulkOp();
800
- *
801
- * // Add an updateOne to the bulkOp
802
- * bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });
803
- *
804
- * // Add an updateMany to the bulkOp
805
- * bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });
806
- *
807
- * // Add an upsert
808
- * bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });
809
- *
810
- * // Add a deletion
811
- * bulkOp.find({ g: 7 }).deleteOne();
812
- *
813
- * // Add a multi deletion
814
- * bulkOp.find({ h: 8 }).delete();
815
- *
816
- * // Add a replaceOne
817
- * bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});
818
- *
819
- * // Update using a pipeline (requires Mongodb 4.2 or higher)
820
- * bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
821
- * { $set: { total: { $sum: [ '$y', '$z' ] } } }
822
- * ]);
823
- *
824
- * // All of the ops will now be executed
825
- * await bulkOp.execute();
826
- * ```
827
- */
828
-
829
-
830
- find(selector) {
831
- if (!selector) {
832
- throw new error_1.MongoInvalidArgumentError('Bulk find operation must specify a selector');
833
- } // Save a current selector
834
-
835
-
836
- this.s.currentOp = {
837
- selector: selector
838
- };
839
- return new FindOperators(this);
840
- }
841
- /** Specifies a raw operation to perform in the bulk write. */
842
-
843
-
844
- raw(op) {
845
- if (op == null || typeof op !== 'object') {
846
- throw new error_1.MongoInvalidArgumentError('Operation must be an object with an operation key');
847
- }
848
-
849
- if ('insertOne' in op) {
850
- const forceServerObjectId = this.shouldForceServerObjectId();
851
- const document = op.insertOne && op.insertOne.document == null ? // TODO(NODE-6003): remove support for omitting the `documents` subdocument in bulk inserts
852
- op.insertOne : op.insertOne.document;
853
- (0, utils_1.maybeAddIdToDocuments)(this.collection, document, {
854
- forceServerObjectId
855
- });
856
- return this.addToOperationsList(exports.BatchType.INSERT, document);
857
- }
858
-
859
- if ('replaceOne' in op || 'updateOne' in op || 'updateMany' in op) {
860
- if ('replaceOne' in op) {
861
- if ('q' in op.replaceOne) {
862
- throw new error_1.MongoInvalidArgumentError('Raw operations are not allowed');
863
- }
864
-
865
- const updateStatement = (0, update_1.makeUpdateStatement)(op.replaceOne.filter, op.replaceOne.replacement, { ...op.replaceOne,
866
- multi: false
867
- });
868
-
869
- if ((0, utils_1.hasAtomicOperators)(updateStatement.u)) {
870
- throw new error_1.MongoInvalidArgumentError('Replacement document must not use atomic operators');
871
- }
872
-
873
- return this.addToOperationsList(exports.BatchType.UPDATE, updateStatement);
874
- }
875
-
876
- if ('updateOne' in op) {
877
- if ('q' in op.updateOne) {
878
- throw new error_1.MongoInvalidArgumentError('Raw operations are not allowed');
879
- }
880
-
881
- const updateStatement = (0, update_1.makeUpdateStatement)(op.updateOne.filter, op.updateOne.update, { ...op.updateOne,
882
- multi: false
883
- });
884
-
885
- if (!(0, utils_1.hasAtomicOperators)(updateStatement.u, this.bsonOptions)) {
886
- throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
887
- }
888
-
889
- return this.addToOperationsList(exports.BatchType.UPDATE, updateStatement);
890
- }
891
-
892
- if ('updateMany' in op) {
893
- if ('q' in op.updateMany) {
894
- throw new error_1.MongoInvalidArgumentError('Raw operations are not allowed');
895
- }
896
-
897
- const updateStatement = (0, update_1.makeUpdateStatement)(op.updateMany.filter, op.updateMany.update, { ...op.updateMany,
898
- multi: true
899
- });
900
-
901
- if (!(0, utils_1.hasAtomicOperators)(updateStatement.u, this.bsonOptions)) {
902
- throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
903
- }
904
-
905
- return this.addToOperationsList(exports.BatchType.UPDATE, updateStatement);
906
- }
907
- }
908
-
909
- if ('deleteOne' in op) {
910
- if ('q' in op.deleteOne) {
911
- throw new error_1.MongoInvalidArgumentError('Raw operations are not allowed');
912
- }
913
-
914
- return this.addToOperationsList(exports.BatchType.DELETE, (0, delete_1.makeDeleteStatement)(op.deleteOne.filter, { ...op.deleteOne,
915
- limit: 1
916
- }));
917
- }
918
-
919
- if ('deleteMany' in op) {
920
- if ('q' in op.deleteMany) {
921
- throw new error_1.MongoInvalidArgumentError('Raw operations are not allowed');
922
- }
923
-
924
- return this.addToOperationsList(exports.BatchType.DELETE, (0, delete_1.makeDeleteStatement)(op.deleteMany.filter, { ...op.deleteMany,
925
- limit: 0
926
- }));
927
- } // otherwise an unknown operation was provided
928
-
929
-
930
- throw new error_1.MongoInvalidArgumentError('bulkWrite only supports insertOne, updateOne, updateMany, deleteOne, deleteMany');
931
- }
932
-
933
- get length() {
934
- return this.s.currentIndex;
935
- }
936
-
937
- get bsonOptions() {
938
- return this.s.bsonOptions;
939
- }
940
-
941
- get writeConcern() {
942
- return this.s.writeConcern;
943
- }
944
-
945
- get batches() {
946
- const batches = [...this.s.batches];
947
-
948
- if (this.isOrdered) {
949
- if (this.s.currentBatch) batches.push(this.s.currentBatch);
950
- } else {
951
- if (this.s.currentInsertBatch) batches.push(this.s.currentInsertBatch);
952
- if (this.s.currentUpdateBatch) batches.push(this.s.currentUpdateBatch);
953
- if (this.s.currentRemoveBatch) batches.push(this.s.currentRemoveBatch);
954
- }
955
-
956
- return batches;
957
- }
958
-
959
- async execute(options = {}) {
960
- if (this.s.executed) {
961
- throw new error_1.MongoBatchReExecutionError();
962
- }
963
-
964
- const writeConcern = write_concern_1.WriteConcern.fromOptions(options);
965
-
966
- if (writeConcern) {
967
- this.s.writeConcern = writeConcern;
968
- } // If we have current batch
969
-
970
-
971
- if (this.isOrdered) {
972
- if (this.s.currentBatch) this.s.batches.push(this.s.currentBatch);
973
- } else {
974
- if (this.s.currentInsertBatch) this.s.batches.push(this.s.currentInsertBatch);
975
- if (this.s.currentUpdateBatch) this.s.batches.push(this.s.currentUpdateBatch);
976
- if (this.s.currentRemoveBatch) this.s.batches.push(this.s.currentRemoveBatch);
977
- } // If we have no operations in the bulk raise an error
978
-
979
-
980
- if (this.s.batches.length === 0) {
981
- throw new error_1.MongoInvalidArgumentError('Invalid BulkOperation, Batch cannot be empty');
982
- }
983
-
984
- this.s.executed = true;
985
- const finalOptions = { ...this.s.options,
986
- ...options
987
- };
988
- const operation = new BulkWriteShimOperation(this, finalOptions);
989
- return await (0, execute_operation_1.executeOperation)(this.s.collection.client, operation, finalOptions.timeoutContext);
990
- }
991
- /**
992
- * Handles the write error before executing commands
993
- * @internal
994
- */
995
-
996
-
997
- handleWriteError(writeResult) {
998
- if (this.s.bulkResult.writeErrors.length > 0) {
999
- const msg = this.s.bulkResult.writeErrors[0].errmsg ? this.s.bulkResult.writeErrors[0].errmsg : 'write operation failed';
1000
- throw new MongoBulkWriteError({
1001
- message: msg,
1002
- code: this.s.bulkResult.writeErrors[0].code,
1003
- writeErrors: this.s.bulkResult.writeErrors
1004
- }, writeResult);
1005
- }
1006
-
1007
- const writeConcernError = writeResult.getWriteConcernError();
1008
-
1009
- if (writeConcernError) {
1010
- throw new MongoBulkWriteError(writeConcernError, writeResult);
1011
- }
1012
- }
1013
-
1014
- shouldForceServerObjectId() {
1015
- return this.s.options.forceServerObjectId === true || this.s.collection.s.db.options?.forceServerObjectId === true;
1016
- }
1017
-
1018
- }
1019
-
1020
- exports.BulkOperationBase = BulkOperationBase;
1021
-
1022
- function isInsertBatch(batch) {
1023
- return batch.batchType === exports.BatchType.INSERT;
1024
- }
1025
-
1026
- function isUpdateBatch(batch) {
1027
- return batch.batchType === exports.BatchType.UPDATE;
1028
- }
1029
-
1030
- function isDeleteBatch(batch) {
1031
- return batch.batchType === exports.BatchType.DELETE;
1032
- }
1033
-
1034
- function buildCurrentOp(bulkOp) {
1035
- let {
1036
- currentOp
1037
- } = bulkOp.s;
1038
- bulkOp.s.currentOp = undefined;
1039
- if (!currentOp) currentOp = {};
1040
- return currentOp;
1041
- }