oxygen-cli 1.40.1 → 1.40.2-beta.1

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 (441) hide show
  1. package/CHANGELOG.md +1742 -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 +2 -1
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +5 -1
  19. package/build/lib/debugger.js +1 -1
  20. package/build/lib/img-merge.js +1 -1
  21. package/build/lib/launcher.js +1 -1
  22. package/build/lib/logger.js +43 -43
  23. package/build/lib/moduleRequire.js +1 -1
  24. package/build/lib/parallel-launcher.js +1 -1
  25. package/build/lib/param-manager.js +1 -1
  26. package/build/lib/param-reader-csv.js +1 -1
  27. package/build/lib/param-reader-excel.js +1 -1
  28. package/build/lib/param-reader-json.js +1 -1
  29. package/build/lib/text-to-image.js +1 -1
  30. package/build/lib/util.js +1 -1
  31. package/build/model/case-result.js +1 -1
  32. package/build/model/failure.js +1 -1
  33. package/build/model/status.js +1 -1
  34. package/build/model/step-result.js +1 -1
  35. package/build/model/suite-result.js +1 -1
  36. package/build/model/test-result.js +1 -1
  37. package/build/model/testcase.js +1 -1
  38. package/build/model/testsuite.js +1 -1
  39. package/build/ox_modules/index.js +9 -1
  40. package/build/ox_modules/module-assert.js +37 -37
  41. package/build/ox_modules/module-date.js +24 -24
  42. package/build/ox_modules/module-db.js +52 -52
  43. package/build/ox_modules/module-email.js +59 -59
  44. package/build/ox_modules/module-eyes.js +34 -34
  45. package/build/ox_modules/module-http/ntlm-util.js +10 -10
  46. package/build/ox_modules/module-http/ntlm.js +15 -15
  47. package/build/ox_modules/module-http.js +132 -132
  48. package/build/ox_modules/module-log.js +27 -27
  49. package/build/ox_modules/module-mailinator.js +87 -87
  50. package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
  51. package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
  52. package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
  53. package/build/ox_modules/module-mob/commands/assertText.js +21 -21
  54. package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
  55. package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
  56. package/build/ox_modules/module-mob/commands/back.js +16 -16
  57. package/build/ox_modules/module-mob/commands/clear.js +19 -19
  58. package/build/ox_modules/module-mob/commands/click.js +17 -17
  59. package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
  60. package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
  61. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
  62. package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
  63. package/build/ox_modules/module-mob/commands/debug.js +16 -16
  64. package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
  65. package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
  66. package/build/ox_modules/module-mob/commands/execute.js +21 -21
  67. package/build/ox_modules/module-mob/commands/findElement.js +20 -20
  68. package/build/ox_modules/module-mob/commands/findElements.js +23 -23
  69. package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
  70. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
  71. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
  72. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
  73. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
  74. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
  75. package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
  76. package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
  77. package/build/ox_modules/module-mob/commands/getSource.js +16 -16
  78. package/build/ox_modules/module-mob/commands/getText.js +18 -18
  79. package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
  80. package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
  81. package/build/ox_modules/module-mob/commands/getValue.js +18 -18
  82. package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
  83. package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
  84. package/build/ox_modules/module-mob/commands/index.js +1 -1
  85. package/build/ox_modules/module-mob/commands/installApp.js +16 -16
  86. package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
  87. package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
  88. package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
  89. package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
  90. package/build/ox_modules/module-mob/commands/isExist.js +19 -19
  91. package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
  92. package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
  93. package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
  94. package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
  95. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
  96. package/build/ox_modules/module-mob/commands/open.js +17 -17
  97. package/build/ox_modules/module-mob/commands/pause.js +16 -16
  98. package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
  99. package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
  100. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
  101. package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
  102. package/build/ox_modules/module-mob/commands/select.js +24 -24
  103. package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
  104. package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
  105. package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
  106. package/build/ox_modules/module-mob/commands/setContext.js +16 -16
  107. package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
  108. package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
  109. package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
  110. package/build/ox_modules/module-mob/commands/shake.js +16 -16
  111. package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
  112. package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
  113. package/build/ox_modules/module-mob/commands/swipe.js +20 -20
  114. package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
  115. package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
  116. package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
  117. package/build/ox_modules/module-mob/commands/tap.js +17 -17
  118. package/build/ox_modules/module-mob/commands/type.js +20 -20
  119. package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
  120. package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
  121. package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
  122. package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
  123. package/build/ox_modules/module-mob.js +74 -74
  124. package/build/ox_modules/module-mongo.js +302 -0
  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 +25 -25
  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 +1 -1
  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 +13 -5
  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/log.txt +1614 -0
  292. package/package.json +139 -137
  293. package/reports/2025-06-08_231627/report.html +440 -0
  294. package/reports/2025-06-09_223615/report.html +440 -0
  295. package/transpiled/mongodb/etc/prepare.js +18 -0
  296. package/transpiled/mongodb/lib/admin.js +182 -0
  297. package/transpiled/mongodb/lib/beta.js +26 -0
  298. package/transpiled/mongodb/lib/bson.js +220 -0
  299. package/transpiled/mongodb/lib/bulk/common.js +1041 -0
  300. package/transpiled/mongodb/lib/bulk/ordered.js +76 -0
  301. package/transpiled/mongodb/lib/bulk/unordered.js +102 -0
  302. package/transpiled/mongodb/lib/change_stream.js +517 -0
  303. package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +329 -0
  304. package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +779 -0
  305. package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +95 -0
  306. package/transpiled/mongodb/lib/client-side-encryption/errors.js +171 -0
  307. package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +98 -0
  308. package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +34 -0
  309. package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +186 -0
  310. package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +29 -0
  311. package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +58 -0
  312. package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +505 -0
  313. package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +63 -0
  314. package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +167 -0
  315. package/transpiled/mongodb/lib/cmap/auth/gssapi.js +207 -0
  316. package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +193 -0
  317. package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +181 -0
  318. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +101 -0
  319. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +81 -0
  320. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +174 -0
  321. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +59 -0
  322. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +58 -0
  323. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +138 -0
  324. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +42 -0
  325. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +71 -0
  326. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +34 -0
  327. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +111 -0
  328. package/transpiled/mongodb/lib/cmap/auth/plain.js +43 -0
  329. package/transpiled/mongodb/lib/cmap/auth/providers.js +22 -0
  330. package/transpiled/mongodb/lib/cmap/auth/scram.js +318 -0
  331. package/transpiled/mongodb/lib/cmap/auth/x509.js +61 -0
  332. package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +266 -0
  333. package/transpiled/mongodb/lib/cmap/commands.js +605 -0
  334. package/transpiled/mongodb/lib/cmap/connect.js +418 -0
  335. package/transpiled/mongodb/lib/cmap/connection.js +673 -0
  336. package/transpiled/mongodb/lib/cmap/connection_pool.js +688 -0
  337. package/transpiled/mongodb/lib/cmap/connection_pool_events.js +254 -0
  338. package/transpiled/mongodb/lib/cmap/errors.js +128 -0
  339. package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +278 -0
  340. package/transpiled/mongodb/lib/cmap/metrics.js +67 -0
  341. package/transpiled/mongodb/lib/cmap/stream_description.js +74 -0
  342. package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +196 -0
  343. package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +19 -0
  344. package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +144 -0
  345. package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +278 -0
  346. package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +376 -0
  347. package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +49 -0
  348. package/transpiled/mongodb/lib/collection.js +852 -0
  349. package/transpiled/mongodb/lib/connection_string.js +1452 -0
  350. package/transpiled/mongodb/lib/constants.js +162 -0
  351. package/transpiled/mongodb/lib/cursor/abstract_cursor.js +1082 -0
  352. package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +227 -0
  353. package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +136 -0
  354. package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +69 -0
  355. package/transpiled/mongodb/lib/cursor/find_cursor.js +476 -0
  356. package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +48 -0
  357. package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +46 -0
  358. package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +30 -0
  359. package/transpiled/mongodb/lib/cursor/run_command_cursor.js +125 -0
  360. package/transpiled/mongodb/lib/db.js +467 -0
  361. package/transpiled/mongodb/lib/deps.js +174 -0
  362. package/transpiled/mongodb/lib/encrypter.js +129 -0
  363. package/transpiled/mongodb/lib/error.js +1550 -0
  364. package/transpiled/mongodb/lib/explain.js +122 -0
  365. package/transpiled/mongodb/lib/gridfs/download.js +369 -0
  366. package/transpiled/mongodb/lib/gridfs/index.js +240 -0
  367. package/transpiled/mongodb/lib/gridfs/upload.js +446 -0
  368. package/transpiled/mongodb/lib/index.js +975 -0
  369. package/transpiled/mongodb/lib/mongo_client.js +626 -0
  370. package/transpiled/mongodb/lib/mongo_client_auth_providers.js +98 -0
  371. package/transpiled/mongodb/lib/mongo_logger.js +812 -0
  372. package/transpiled/mongodb/lib/mongo_types.js +71 -0
  373. package/transpiled/mongodb/lib/operations/aggregate.js +129 -0
  374. package/transpiled/mongodb/lib/operations/bulk_write.js +48 -0
  375. package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +96 -0
  376. package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +409 -0
  377. package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +5 -0
  378. package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +144 -0
  379. package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +228 -0
  380. package/transpiled/mongodb/lib/operations/collections.js +49 -0
  381. package/transpiled/mongodb/lib/operations/command.js +102 -0
  382. package/transpiled/mongodb/lib/operations/count.js +60 -0
  383. package/transpiled/mongodb/lib/operations/create_collection.js +109 -0
  384. package/transpiled/mongodb/lib/operations/delete.js +134 -0
  385. package/transpiled/mongodb/lib/operations/distinct.js +77 -0
  386. package/transpiled/mongodb/lib/operations/drop.js +102 -0
  387. package/transpiled/mongodb/lib/operations/estimated_document_count.js +47 -0
  388. package/transpiled/mongodb/lib/operations/execute_operation.js +251 -0
  389. package/transpiled/mongodb/lib/operations/find.js +197 -0
  390. package/transpiled/mongodb/lib/operations/find_and_modify.js +191 -0
  391. package/transpiled/mongodb/lib/operations/get_more.js +84 -0
  392. package/transpiled/mongodb/lib/operations/indexes.js +197 -0
  393. package/transpiled/mongodb/lib/operations/insert.js +138 -0
  394. package/transpiled/mongodb/lib/operations/is_capped.js +44 -0
  395. package/transpiled/mongodb/lib/operations/kill_cursors.js +58 -0
  396. package/transpiled/mongodb/lib/operations/list_collections.js +66 -0
  397. package/transpiled/mongodb/lib/operations/list_databases.js +56 -0
  398. package/transpiled/mongodb/lib/operations/operation.js +88 -0
  399. package/transpiled/mongodb/lib/operations/options_operation.js +44 -0
  400. package/transpiled/mongodb/lib/operations/profiling_level.js +42 -0
  401. package/transpiled/mongodb/lib/operations/remove_user.js +35 -0
  402. package/transpiled/mongodb/lib/operations/rename.js +48 -0
  403. package/transpiled/mongodb/lib/operations/run_command.js +64 -0
  404. package/transpiled/mongodb/lib/operations/search_indexes/create.js +41 -0
  405. package/transpiled/mongodb/lib/operations/search_indexes/drop.js +51 -0
  406. package/transpiled/mongodb/lib/operations/search_indexes/update.js +40 -0
  407. package/transpiled/mongodb/lib/operations/set_profiling_level.js +70 -0
  408. package/transpiled/mongodb/lib/operations/stats.js +39 -0
  409. package/transpiled/mongodb/lib/operations/update.js +218 -0
  410. package/transpiled/mongodb/lib/operations/validate_collection.js +49 -0
  411. package/transpiled/mongodb/lib/read_concern.js +92 -0
  412. package/transpiled/mongodb/lib/read_preference.js +215 -0
  413. package/transpiled/mongodb/lib/resource_management.js +74 -0
  414. package/transpiled/mongodb/lib/sdam/common.js +53 -0
  415. package/transpiled/mongodb/lib/sdam/events.js +177 -0
  416. package/transpiled/mongodb/lib/sdam/monitor.js +656 -0
  417. package/transpiled/mongodb/lib/sdam/server.js +463 -0
  418. package/transpiled/mongodb/lib/sdam/server_description.js +196 -0
  419. package/transpiled/mongodb/lib/sdam/server_selection.js +283 -0
  420. package/transpiled/mongodb/lib/sdam/server_selection_events.js +112 -0
  421. package/transpiled/mongodb/lib/sdam/srv_polling.js +139 -0
  422. package/transpiled/mongodb/lib/sdam/topology.js +833 -0
  423. package/transpiled/mongodb/lib/sdam/topology_description.js +447 -0
  424. package/transpiled/mongodb/lib/sessions.js +988 -0
  425. package/transpiled/mongodb/lib/sort.js +123 -0
  426. package/transpiled/mongodb/lib/timeout.js +349 -0
  427. package/transpiled/mongodb/lib/transactions.js +149 -0
  428. package/transpiled/mongodb/lib/utils.js +1502 -0
  429. package/transpiled/mongodb/lib/write_concern.js +115 -0
  430. package/types/index.d.ts +70 -70
  431. package/types/module-eyes.d.ts +39 -39
  432. package/types/module-http.d.ts +163 -163
  433. package/types/module-log.d.ts +34 -34
  434. package/types/module-mob.d.ts +966 -966
  435. package/types/module-pdf.d.ts +40 -40
  436. package/types/module-proxy.d.ts +100 -100
  437. package/types/module-shell.d.ts +24 -24
  438. package/types/module-utils.d.ts +99 -99
  439. package/types/module-web.d.ts +1053 -1053
  440. package/types/module-win.d.ts +352 -352
  441. package/types/oxygen.d.ts +53 -53
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ClientBulkWriteResultsMerger = void 0;
7
+
8
+ const __1 = require("../..");
9
+
10
+ const error_1 = require("../../error");
11
+ /**
12
+ * Unacknowledged bulk writes are always the same.
13
+ */
14
+
15
+
16
+ const UNACKNOWLEDGED = {
17
+ acknowledged: false,
18
+ insertedCount: 0,
19
+ upsertedCount: 0,
20
+ matchedCount: 0,
21
+ modifiedCount: 0,
22
+ deletedCount: 0,
23
+ insertResults: undefined,
24
+ updateResults: undefined,
25
+ deleteResults: undefined
26
+ };
27
+ /**
28
+ * Merges client bulk write cursor responses together into a single result.
29
+ * @internal
30
+ */
31
+
32
+ class ClientBulkWriteResultsMerger {
33
+ /**
34
+ * @returns The standard unacknowledged bulk write result.
35
+ */
36
+ static unacknowledged() {
37
+ return UNACKNOWLEDGED;
38
+ }
39
+ /**
40
+ * Instantiate the merger.
41
+ * @param options - The options.
42
+ */
43
+
44
+
45
+ constructor(options) {
46
+ this.options = options;
47
+ this.currentBatchOffset = 0;
48
+ this.writeConcernErrors = [];
49
+ this.writeErrors = new Map();
50
+ this.result = {
51
+ acknowledged: true,
52
+ insertedCount: 0,
53
+ upsertedCount: 0,
54
+ matchedCount: 0,
55
+ modifiedCount: 0,
56
+ deletedCount: 0,
57
+ insertResults: undefined,
58
+ updateResults: undefined,
59
+ deleteResults: undefined
60
+ };
61
+
62
+ if (options.verboseResults) {
63
+ this.result.insertResults = new Map();
64
+ this.result.updateResults = new Map();
65
+ this.result.deleteResults = new Map();
66
+ }
67
+ }
68
+ /**
69
+ * Get the bulk write result object.
70
+ */
71
+
72
+
73
+ get bulkWriteResult() {
74
+ return {
75
+ acknowledged: this.result.acknowledged,
76
+ insertedCount: this.result.insertedCount,
77
+ upsertedCount: this.result.upsertedCount,
78
+ matchedCount: this.result.matchedCount,
79
+ modifiedCount: this.result.modifiedCount,
80
+ deletedCount: this.result.deletedCount,
81
+ insertResults: this.result.insertResults,
82
+ updateResults: this.result.updateResults,
83
+ deleteResults: this.result.deleteResults
84
+ };
85
+ }
86
+ /**
87
+ * Merge the results in the cursor to the existing result.
88
+ * @param currentBatchOffset - The offset index to the original models.
89
+ * @param response - The cursor response.
90
+ * @param documents - The documents in the cursor.
91
+ * @returns The current result.
92
+ */
93
+
94
+
95
+ async merge(cursor) {
96
+ let writeConcernErrorResult;
97
+
98
+ try {
99
+ for await (const document of cursor) {
100
+ // Only add to maps if ok: 1
101
+ if (document.ok === 1) {
102
+ if (this.options.verboseResults) {
103
+ this.processDocument(cursor, document);
104
+ }
105
+ } else {
106
+ // If an individual write error is encountered during an ordered bulk write, drivers MUST
107
+ // record the error in writeErrors and immediately throw the exception. Otherwise, drivers
108
+ // MUST continue to iterate the results cursor and execute any further bulkWrite batches.
109
+ if (this.options.ordered) {
110
+ const error = new error_1.MongoClientBulkWriteError({
111
+ message: 'Mongo client ordered bulk write encountered a write error.'
112
+ });
113
+ error.writeErrors.set(document.idx + this.currentBatchOffset, {
114
+ code: document.code,
115
+ message: document.errmsg
116
+ });
117
+ error.partialResult = this.result;
118
+ throw error;
119
+ } else {
120
+ this.writeErrors.set(document.idx + this.currentBatchOffset, {
121
+ code: document.code,
122
+ message: document.errmsg
123
+ });
124
+ }
125
+ }
126
+ }
127
+ } catch (error) {
128
+ if (error instanceof __1.MongoWriteConcernError) {
129
+ const result = error.result;
130
+ writeConcernErrorResult = {
131
+ insertedCount: result.nInserted,
132
+ upsertedCount: result.nUpserted,
133
+ matchedCount: result.nMatched,
134
+ modifiedCount: result.nModified,
135
+ deletedCount: result.nDeleted,
136
+ writeConcernError: result.writeConcernError
137
+ };
138
+
139
+ if (this.options.verboseResults && result.cursor.firstBatch) {
140
+ for (const document of result.cursor.firstBatch) {
141
+ if (document.ok === 1) {
142
+ this.processDocument(cursor, document);
143
+ }
144
+ }
145
+ }
146
+ } else {
147
+ throw error;
148
+ }
149
+ } finally {
150
+ // Update the counts from the cursor response.
151
+ if (cursor.response) {
152
+ const response = cursor.response;
153
+ this.incrementCounts(response);
154
+ } // Increment the batch offset.
155
+
156
+
157
+ this.currentBatchOffset += cursor.operations.length;
158
+ } // If we have write concern errors ensure they are added.
159
+
160
+
161
+ if (writeConcernErrorResult) {
162
+ const writeConcernError = writeConcernErrorResult.writeConcernError;
163
+ this.incrementCounts(writeConcernErrorResult);
164
+ this.writeConcernErrors.push({
165
+ code: writeConcernError.code,
166
+ message: writeConcernError.errmsg
167
+ });
168
+ }
169
+
170
+ return this.result;
171
+ }
172
+ /**
173
+ * Process an individual document in the results.
174
+ * @param cursor - The cursor.
175
+ * @param document - The document to process.
176
+ */
177
+
178
+
179
+ processDocument(cursor, document) {
180
+ // Get the corresponding operation from the command.
181
+ const operation = cursor.operations[document.idx]; // Handle insert results.
182
+
183
+ if ('insert' in operation) {
184
+ this.result.insertResults?.set(document.idx + this.currentBatchOffset, {
185
+ insertedId: operation.document._id
186
+ });
187
+ } // Handle update results.
188
+
189
+
190
+ if ('update' in operation) {
191
+ const result = {
192
+ matchedCount: document.n,
193
+ modifiedCount: document.nModified ?? 0,
194
+ // Check if the bulk did actually upsert.
195
+ didUpsert: document.upserted != null
196
+ };
197
+
198
+ if (document.upserted) {
199
+ result.upsertedId = document.upserted._id;
200
+ }
201
+
202
+ this.result.updateResults?.set(document.idx + this.currentBatchOffset, result);
203
+ } // Handle delete results.
204
+
205
+
206
+ if ('delete' in operation) {
207
+ this.result.deleteResults?.set(document.idx + this.currentBatchOffset, {
208
+ deletedCount: document.n
209
+ });
210
+ }
211
+ }
212
+ /**
213
+ * Increment the result counts.
214
+ * @param document - The document with the results.
215
+ */
216
+
217
+
218
+ incrementCounts(document) {
219
+ this.result.insertedCount += document.insertedCount;
220
+ this.result.upsertedCount += document.upsertedCount;
221
+ this.result.matchedCount += document.matchedCount;
222
+ this.result.modifiedCount += document.modifiedCount;
223
+ this.result.deletedCount += document.deletedCount;
224
+ }
225
+
226
+ }
227
+
228
+ exports.ClientBulkWriteResultsMerger = ClientBulkWriteResultsMerger;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CollectionsOperation = void 0;
7
+
8
+ const collection_1 = require("../collection");
9
+
10
+ const operation_1 = require("./operation");
11
+ /** @internal */
12
+
13
+
14
+ class CollectionsOperation extends operation_1.AbstractOperation {
15
+ constructor(db, options) {
16
+ super(options);
17
+ this.options = options;
18
+ this.db = db;
19
+ }
20
+
21
+ get commandName() {
22
+ return 'listCollections';
23
+ }
24
+
25
+ async execute(server, session) {
26
+ // Let's get the collection names
27
+ const documents = await this.db.listCollections({}, { ...this.options,
28
+ nameOnly: true,
29
+ readPreference: this.readPreference,
30
+ session
31
+ }).toArray();
32
+ const collections = [];
33
+
34
+ for (const {
35
+ name
36
+ } of documents) {
37
+ if (!name.includes('$')) {
38
+ // Filter collections removing any illegal ones
39
+ collections.push(new collection_1.Collection(this.db, name, this.db.s.options));
40
+ }
41
+ } // Return the collection objects
42
+
43
+
44
+ return collections;
45
+ }
46
+
47
+ }
48
+
49
+ exports.CollectionsOperation = CollectionsOperation;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CommandOperation = void 0;
7
+
8
+ const error_1 = require("../error");
9
+
10
+ const explain_1 = require("../explain");
11
+
12
+ const read_concern_1 = require("../read_concern");
13
+
14
+ const server_selection_1 = require("../sdam/server_selection");
15
+
16
+ const utils_1 = require("../utils");
17
+
18
+ const write_concern_1 = require("../write_concern");
19
+
20
+ const operation_1 = require("./operation");
21
+ /** @internal */
22
+
23
+
24
+ class CommandOperation extends operation_1.AbstractOperation {
25
+ constructor(parent, options) {
26
+ super(options);
27
+ this.options = options ?? {}; // NOTE: this was explicitly added for the add/remove user operations, it's likely
28
+ // something we'd want to reconsider. Perhaps those commands can use `Admin`
29
+ // as a parent?
30
+
31
+ const dbNameOverride = options?.dbName || options?.authdb;
32
+
33
+ if (dbNameOverride) {
34
+ this.ns = new utils_1.MongoDBNamespace(dbNameOverride, '$cmd');
35
+ } else {
36
+ this.ns = parent ? parent.s.namespace.withCollection('$cmd') : new utils_1.MongoDBNamespace('admin', '$cmd');
37
+ }
38
+
39
+ this.readConcern = read_concern_1.ReadConcern.fromOptions(options);
40
+ this.writeConcern = write_concern_1.WriteConcern.fromOptions(options);
41
+
42
+ if (this.hasAspect(operation_1.Aspect.EXPLAINABLE)) {
43
+ this.explain = explain_1.Explain.fromOptions(options);
44
+ if (this.explain) (0, explain_1.validateExplainTimeoutOptions)(this.options, this.explain);
45
+ } else if (options?.explain != null) {
46
+ throw new error_1.MongoInvalidArgumentError(`Option "explain" is not supported on this command`);
47
+ }
48
+ }
49
+
50
+ get canRetryWrite() {
51
+ if (this.hasAspect(operation_1.Aspect.EXPLAINABLE)) {
52
+ return this.explain == null;
53
+ }
54
+
55
+ return super.canRetryWrite;
56
+ }
57
+
58
+ async executeCommand(server, session, cmd, timeoutContext, responseType) {
59
+ this.server = server;
60
+ const options = { ...this.options,
61
+ ...this.bsonOptions,
62
+ timeoutContext,
63
+ readPreference: this.readPreference,
64
+ session
65
+ };
66
+ const serverWireVersion = (0, utils_1.maxWireVersion)(server);
67
+ const inTransaction = this.session && this.session.inTransaction();
68
+
69
+ if (this.readConcern && (0, utils_1.commandSupportsReadConcern)(cmd) && !inTransaction) {
70
+ Object.assign(cmd, {
71
+ readConcern: this.readConcern
72
+ });
73
+ }
74
+
75
+ if (this.trySecondaryWrite && serverWireVersion < server_selection_1.MIN_SECONDARY_WRITE_WIRE_VERSION) {
76
+ options.omitReadPreference = true;
77
+ }
78
+
79
+ if (this.writeConcern && this.hasAspect(operation_1.Aspect.WRITE_OPERATION) && !inTransaction) {
80
+ write_concern_1.WriteConcern.apply(cmd, this.writeConcern);
81
+ }
82
+
83
+ if (options.collation && typeof options.collation === 'object' && !this.hasAspect(operation_1.Aspect.SKIP_COLLATION)) {
84
+ Object.assign(cmd, {
85
+ collation: options.collation
86
+ });
87
+ }
88
+
89
+ if (typeof options.maxTimeMS === 'number') {
90
+ cmd.maxTimeMS = options.maxTimeMS;
91
+ }
92
+
93
+ if (this.hasAspect(operation_1.Aspect.EXPLAINABLE) && this.explain) {
94
+ cmd = (0, explain_1.decorateWithExplain)(cmd, this.explain);
95
+ }
96
+
97
+ return await server.command(this.ns, cmd, options, responseType);
98
+ }
99
+
100
+ }
101
+
102
+ exports.CommandOperation = CommandOperation;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CountOperation = void 0;
7
+
8
+ const command_1 = require("./command");
9
+
10
+ const operation_1 = require("./operation");
11
+ /** @internal */
12
+
13
+
14
+ class CountOperation extends command_1.CommandOperation {
15
+ constructor(namespace, filter, options) {
16
+ super({
17
+ s: {
18
+ namespace: namespace
19
+ }
20
+ }, options);
21
+ this.options = options;
22
+ this.collectionName = namespace.collection;
23
+ this.query = filter;
24
+ }
25
+
26
+ get commandName() {
27
+ return 'count';
28
+ }
29
+
30
+ async execute(server, session, timeoutContext) {
31
+ const options = this.options;
32
+ const cmd = {
33
+ count: this.collectionName,
34
+ query: this.query
35
+ };
36
+
37
+ if (typeof options.limit === 'number') {
38
+ cmd.limit = options.limit;
39
+ }
40
+
41
+ if (typeof options.skip === 'number') {
42
+ cmd.skip = options.skip;
43
+ }
44
+
45
+ if (options.hint != null) {
46
+ cmd.hint = options.hint;
47
+ }
48
+
49
+ if (typeof options.maxTimeMS === 'number') {
50
+ cmd.maxTimeMS = options.maxTimeMS;
51
+ }
52
+
53
+ const result = await super.executeCommand(server, session, cmd, timeoutContext);
54
+ return result ? result.n : 0;
55
+ }
56
+
57
+ }
58
+
59
+ exports.CountOperation = CountOperation;
60
+ (0, operation_1.defineAspects)(CountOperation, [operation_1.Aspect.READ_OPERATION, operation_1.Aspect.RETRYABLE]);
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CreateCollectionOperation = void 0;
7
+
8
+ const constants_1 = require("../cmap/wire_protocol/constants");
9
+
10
+ const collection_1 = require("../collection");
11
+
12
+ const error_1 = require("../error");
13
+
14
+ const command_1 = require("./command");
15
+
16
+ const indexes_1 = require("./indexes");
17
+
18
+ const operation_1 = require("./operation");
19
+
20
+ const ILLEGAL_COMMAND_FIELDS = new Set(['w', 'wtimeout', 'timeoutMS', 'j', 'fsync', 'autoIndexId', 'pkFactory', 'raw', 'readPreference', 'session', 'readConcern', 'writeConcern', 'raw', 'fieldsAsRaw', 'useBigInt64', 'promoteLongs', 'promoteValues', 'promoteBuffers', 'bsonRegExp', 'serializeFunctions', 'ignoreUndefined', 'enableUtf8Validation']);
21
+ /* @internal */
22
+
23
+ const INVALID_QE_VERSION = 'Driver support of Queryable Encryption is incompatible with server. Upgrade server to use Queryable Encryption.';
24
+ /** @internal */
25
+
26
+ class CreateCollectionOperation extends command_1.CommandOperation {
27
+ constructor(db, name, options = {}) {
28
+ super(db, options);
29
+ this.options = options;
30
+ this.db = db;
31
+ this.name = name;
32
+ }
33
+
34
+ get commandName() {
35
+ return 'create';
36
+ }
37
+
38
+ async execute(server, session, timeoutContext) {
39
+ const db = this.db;
40
+ const name = this.name;
41
+ const options = this.options;
42
+ const encryptedFields = options.encryptedFields ?? db.client.s.options.autoEncryption?.encryptedFieldsMap?.[`${db.databaseName}.${name}`];
43
+
44
+ if (encryptedFields) {
45
+ // Creating a QE collection required min server of 7.0.0
46
+ // TODO(NODE-5353): Get wire version information from connection.
47
+ if (!server.loadBalanced && server.description.maxWireVersion < constants_1.MIN_SUPPORTED_QE_WIRE_VERSION) {
48
+ throw new error_1.MongoCompatibilityError(`${INVALID_QE_VERSION} The minimum server version required is ${constants_1.MIN_SUPPORTED_QE_SERVER_VERSION}`);
49
+ } // Create auxilliary collections for queryable encryption support.
50
+
51
+
52
+ const escCollection = encryptedFields.escCollection ?? `enxcol_.${name}.esc`;
53
+ const ecocCollection = encryptedFields.ecocCollection ?? `enxcol_.${name}.ecoc`;
54
+
55
+ for (const collectionName of [escCollection, ecocCollection]) {
56
+ const createOp = new CreateCollectionOperation(db, collectionName, {
57
+ clusteredIndex: {
58
+ key: {
59
+ _id: 1
60
+ },
61
+ unique: true
62
+ }
63
+ });
64
+ await createOp.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
65
+ }
66
+
67
+ if (!options.encryptedFields) {
68
+ this.options = { ...this.options,
69
+ encryptedFields
70
+ };
71
+ }
72
+ }
73
+
74
+ const coll = await this.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
75
+
76
+ if (encryptedFields) {
77
+ // Create the required index for queryable encryption support.
78
+ const createIndexOp = indexes_1.CreateIndexesOperation.fromIndexSpecification(db, name, {
79
+ __safeContent__: 1
80
+ }, {});
81
+ await createIndexOp.execute(server, session, timeoutContext);
82
+ }
83
+
84
+ return coll;
85
+ }
86
+
87
+ async executeWithoutEncryptedFieldsCheck(server, session, timeoutContext) {
88
+ const db = this.db;
89
+ const name = this.name;
90
+ const options = this.options;
91
+ const cmd = {
92
+ create: name
93
+ };
94
+
95
+ for (const n in options) {
96
+ if (options[n] != null && typeof options[n] !== 'function' && !ILLEGAL_COMMAND_FIELDS.has(n)) {
97
+ cmd[n] = options[n];
98
+ }
99
+ } // otherwise just execute the command
100
+
101
+
102
+ await super.executeCommand(server, session, cmd, timeoutContext);
103
+ return new collection_1.Collection(db, name, options);
104
+ }
105
+
106
+ }
107
+
108
+ exports.CreateCollectionOperation = CreateCollectionOperation;
109
+ (0, operation_1.defineAspects)(CreateCollectionOperation, [operation_1.Aspect.WRITE_OPERATION]);
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeleteManyOperation = exports.DeleteOneOperation = exports.DeleteOperation = void 0;
7
+ exports.makeDeleteStatement = makeDeleteStatement;
8
+
9
+ const error_1 = require("../error");
10
+
11
+ const command_1 = require("./command");
12
+
13
+ const operation_1 = require("./operation");
14
+ /** @internal */
15
+
16
+
17
+ class DeleteOperation extends command_1.CommandOperation {
18
+ constructor(ns, statements, options) {
19
+ super(undefined, options);
20
+ this.options = options;
21
+ this.ns = ns;
22
+ this.statements = statements;
23
+ }
24
+
25
+ get commandName() {
26
+ return 'delete';
27
+ }
28
+
29
+ get canRetryWrite() {
30
+ if (super.canRetryWrite === false) {
31
+ return false;
32
+ }
33
+
34
+ return this.statements.every(op => op.limit != null ? op.limit > 0 : true);
35
+ }
36
+
37
+ async execute(server, session, timeoutContext) {
38
+ const options = this.options ?? {};
39
+ const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
40
+ const command = {
41
+ delete: this.ns.collection,
42
+ deletes: this.statements,
43
+ ordered
44
+ };
45
+
46
+ if (options.let) {
47
+ command.let = options.let;
48
+ } // we check for undefined specifically here to allow falsy values
49
+ // eslint-disable-next-line no-restricted-syntax
50
+
51
+
52
+ if (options.comment !== undefined) {
53
+ command.comment = options.comment;
54
+ }
55
+
56
+ const unacknowledgedWrite = this.writeConcern && this.writeConcern.w === 0;
57
+
58
+ if (unacknowledgedWrite) {
59
+ if (this.statements.find(o => o.hint)) {
60
+ // TODO(NODE-3541): fix error for hint with unacknowledged writes
61
+ throw new error_1.MongoCompatibilityError(`hint is not supported with unacknowledged writes`);
62
+ }
63
+ }
64
+
65
+ const res = await super.executeCommand(server, session, command, timeoutContext);
66
+ return res;
67
+ }
68
+
69
+ }
70
+
71
+ exports.DeleteOperation = DeleteOperation;
72
+
73
+ class DeleteOneOperation extends DeleteOperation {
74
+ constructor(collection, filter, options) {
75
+ super(collection.s.namespace, [makeDeleteStatement(filter, { ...options,
76
+ limit: 1
77
+ })], options);
78
+ }
79
+
80
+ async execute(server, session, timeoutContext) {
81
+ const res = await super.execute(server, session, timeoutContext);
82
+ if (this.explain) return res;
83
+ if (res.code) throw new error_1.MongoServerError(res);
84
+ if (res.writeErrors) throw new error_1.MongoServerError(res.writeErrors[0]);
85
+ return {
86
+ acknowledged: this.writeConcern?.w !== 0,
87
+ deletedCount: res.n
88
+ };
89
+ }
90
+
91
+ }
92
+
93
+ exports.DeleteOneOperation = DeleteOneOperation;
94
+
95
+ class DeleteManyOperation extends DeleteOperation {
96
+ constructor(collection, filter, options) {
97
+ super(collection.s.namespace, [makeDeleteStatement(filter, options)], options);
98
+ }
99
+
100
+ async execute(server, session, timeoutContext) {
101
+ const res = await super.execute(server, session, timeoutContext);
102
+ if (this.explain) return res;
103
+ if (res.code) throw new error_1.MongoServerError(res);
104
+ if (res.writeErrors) throw new error_1.MongoServerError(res.writeErrors[0]);
105
+ return {
106
+ acknowledged: this.writeConcern?.w !== 0,
107
+ deletedCount: res.n
108
+ };
109
+ }
110
+
111
+ }
112
+
113
+ exports.DeleteManyOperation = DeleteManyOperation;
114
+
115
+ function makeDeleteStatement(filter, options) {
116
+ const op = {
117
+ q: filter,
118
+ limit: typeof options.limit === 'number' ? options.limit : 0
119
+ };
120
+
121
+ if (options.collation) {
122
+ op.collation = options.collation;
123
+ }
124
+
125
+ if (options.hint) {
126
+ op.hint = options.hint;
127
+ }
128
+
129
+ return op;
130
+ }
131
+
132
+ (0, operation_1.defineAspects)(DeleteOperation, [operation_1.Aspect.RETRYABLE, operation_1.Aspect.WRITE_OPERATION]);
133
+ (0, operation_1.defineAspects)(DeleteOneOperation, [operation_1.Aspect.RETRYABLE, operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.EXPLAINABLE, operation_1.Aspect.SKIP_COLLATION]);
134
+ (0, operation_1.defineAspects)(DeleteManyOperation, [operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.EXPLAINABLE, operation_1.Aspect.SKIP_COLLATION]);