oxygen-cli 1.40.2-beta.1 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +1755 -1742
  2. package/LICENSE +672 -672
  3. package/README.md +37 -37
  4. package/build/core/OxygenCore.js +1 -1
  5. package/build/core/OxygenEvents.js +1 -1
  6. package/build/core/OxygenModule.js +1 -1
  7. package/build/core/OxygenService.js +1 -1
  8. package/build/core/OxygenSubModule.js +1 -1
  9. package/build/core/WebDriverModule.js +1 -1
  10. package/build/core/utils.js +1 -1
  11. package/build/errors/HookError.js +1 -1
  12. package/build/errors/ModuleError.js +1 -1
  13. package/build/errors/ModuleUnavailableError.js +1 -1
  14. package/build/errors/OxygenError.js +1 -1
  15. package/build/errors/ScriptNotFound.js +1 -1
  16. package/build/errors/helper.js +1 -1
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +1 -1
  19. package/build/lib/cli.js +1 -1
  20. package/build/lib/debugger.js +1 -1
  21. package/build/lib/img-merge.js +1 -1
  22. package/build/lib/launcher.js +1 -1
  23. package/build/lib/logger.js +43 -43
  24. package/build/lib/moduleRequire.js +1 -1
  25. package/build/lib/parallel-launcher.js +1 -1
  26. package/build/lib/param-manager.js +1 -1
  27. package/build/lib/param-reader-csv.js +1 -1
  28. package/build/lib/param-reader-excel.js +1 -1
  29. package/build/lib/param-reader-json.js +1 -1
  30. package/build/lib/text-to-image.js +1 -1
  31. package/build/lib/util.js +1 -1
  32. package/build/model/case-result.js +1 -1
  33. package/build/model/failure.js +1 -1
  34. package/build/model/status.js +1 -1
  35. package/build/model/step-result.js +1 -1
  36. package/build/model/suite-result.js +1 -1
  37. package/build/model/test-result.js +1 -1
  38. package/build/model/testcase.js +1 -1
  39. package/build/model/testsuite.js +1 -1
  40. package/build/ox_modules/index.js +1 -1
  41. package/build/ox_modules/module-assert.js +37 -37
  42. package/build/ox_modules/module-date.js +24 -24
  43. package/build/ox_modules/module-db.js +52 -52
  44. package/build/ox_modules/module-email.js +59 -59
  45. package/build/ox_modules/module-eyes.js +34 -34
  46. package/build/ox_modules/module-http/ntlm-util.js +10 -10
  47. package/build/ox_modules/module-http/ntlm.js +15 -15
  48. package/build/ox_modules/module-http.js +132 -132
  49. package/build/ox_modules/module-log.js +27 -27
  50. package/build/ox_modules/module-mailinator.js +87 -87
  51. package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
  52. package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
  53. package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
  54. package/build/ox_modules/module-mob/commands/assertText.js +21 -21
  55. package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
  56. package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
  57. package/build/ox_modules/module-mob/commands/back.js +16 -16
  58. package/build/ox_modules/module-mob/commands/clear.js +19 -19
  59. package/build/ox_modules/module-mob/commands/click.js +17 -17
  60. package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
  61. package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
  62. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
  63. package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
  64. package/build/ox_modules/module-mob/commands/debug.js +16 -16
  65. package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
  66. package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
  67. package/build/ox_modules/module-mob/commands/execute.js +21 -21
  68. package/build/ox_modules/module-mob/commands/findElement.js +20 -20
  69. package/build/ox_modules/module-mob/commands/findElements.js +23 -23
  70. package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
  71. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
  72. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
  73. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
  74. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
  75. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
  76. package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
  77. package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
  78. package/build/ox_modules/module-mob/commands/getSource.js +16 -16
  79. package/build/ox_modules/module-mob/commands/getText.js +18 -18
  80. package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
  81. package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
  82. package/build/ox_modules/module-mob/commands/getValue.js +18 -18
  83. package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
  84. package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
  85. package/build/ox_modules/module-mob/commands/index.js +1 -1
  86. package/build/ox_modules/module-mob/commands/installApp.js +16 -16
  87. package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
  88. package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
  89. package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
  90. package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
  91. package/build/ox_modules/module-mob/commands/isExist.js +19 -19
  92. package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
  93. package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
  94. package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
  95. package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
  96. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
  97. package/build/ox_modules/module-mob/commands/open.js +17 -17
  98. package/build/ox_modules/module-mob/commands/pause.js +16 -16
  99. package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
  100. package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
  101. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
  102. package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
  103. package/build/ox_modules/module-mob/commands/select.js +24 -24
  104. package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
  105. package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
  106. package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
  107. package/build/ox_modules/module-mob/commands/setContext.js +16 -16
  108. package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
  109. package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
  110. package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
  111. package/build/ox_modules/module-mob/commands/shake.js +16 -16
  112. package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
  113. package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
  114. package/build/ox_modules/module-mob/commands/swipe.js +20 -20
  115. package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
  116. package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
  117. package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
  118. package/build/ox_modules/module-mob/commands/tap.js +17 -17
  119. package/build/ox_modules/module-mob/commands/type.js +20 -20
  120. package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
  121. package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
  122. package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
  123. package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
  124. package/build/ox_modules/module-mob.js +74 -74
  125. package/build/ox_modules/module-mongo.js +82 -82
  126. package/build/ox_modules/module-pdf.js +35 -35
  127. package/build/ox_modules/module-proxy.js +77 -77
  128. package/build/ox_modules/module-serial.js +55 -55
  129. package/build/ox_modules/module-shell.js +52 -33
  130. package/build/ox_modules/module-soap.js +72 -72
  131. package/build/ox_modules/module-twilio.js +41 -41
  132. package/build/ox_modules/module-utils.js +91 -91
  133. package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
  134. package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
  135. package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
  136. package/build/ox_modules/module-web/commands/assertExist.js +17 -17
  137. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
  138. package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
  139. package/build/ox_modules/module-web/commands/assertText.js +21 -21
  140. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
  141. package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
  142. package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
  143. package/build/ox_modules/module-web/commands/assertValue.js +20 -20
  144. package/build/ox_modules/module-web/commands/back.js +16 -16
  145. package/build/ox_modules/module-web/commands/clear.js +18 -18
  146. package/build/ox_modules/module-web/commands/click.js +25 -25
  147. package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
  148. package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
  149. package/build/ox_modules/module-web/commands/debug.js +15 -15
  150. package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
  151. package/build/ox_modules/module-web/commands/deselect.js +22 -22
  152. package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
  153. package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
  154. package/build/ox_modules/module-web/commands/execute.js +24 -24
  155. package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
  156. package/build/ox_modules/module-web/commands/findElement.js +19 -19
  157. package/build/ox_modules/module-web/commands/findElements.js +22 -22
  158. package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
  159. package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
  160. package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
  161. package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
  162. package/build/ox_modules/module-web/commands/getCookies.js +13 -13
  163. package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
  164. package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
  165. package/build/ox_modules/module-web/commands/getHTML.js +17 -17
  166. package/build/ox_modules/module-web/commands/getSource.js +16 -16
  167. package/build/ox_modules/module-web/commands/getText.js +18 -18
  168. package/build/ox_modules/module-web/commands/getTitle.js +12 -12
  169. package/build/ox_modules/module-web/commands/getUrl.js +16 -16
  170. package/build/ox_modules/module-web/commands/getValue.js +18 -18
  171. package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
  172. package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
  173. package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
  174. package/build/ox_modules/module-web/commands/index.js +1 -1
  175. package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
  176. package/build/ox_modules/module-web/commands/isChecked.js +18 -18
  177. package/build/ox_modules/module-web/commands/isExist.js +19 -19
  178. package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
  179. package/build/ox_modules/module-web/commands/isSelected.js +23 -23
  180. package/build/ox_modules/module-web/commands/isVisible.js +19 -19
  181. package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
  182. package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
  183. package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
  184. package/build/ox_modules/module-web/commands/mock.js +20 -20
  185. package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
  186. package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
  187. package/build/ox_modules/module-web/commands/newWindow.js +16 -16
  188. package/build/ox_modules/module-web/commands/open.js +16 -16
  189. package/build/ox_modules/module-web/commands/pause.js +15 -15
  190. package/build/ox_modules/module-web/commands/point.js +21 -21
  191. package/build/ox_modules/module-web/commands/pointJS.js +15 -15
  192. package/build/ox_modules/module-web/commands/refresh.js +15 -15
  193. package/build/ox_modules/module-web/commands/rightClick.js +17 -17
  194. package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
  195. package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
  196. package/build/ox_modules/module-web/commands/select.js +23 -23
  197. package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
  198. package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
  199. package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
  200. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
  201. package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
  202. package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
  203. package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
  204. package/build/ox_modules/module-web/commands/type.js +20 -20
  205. package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
  206. package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
  207. package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
  208. package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
  209. package/build/ox_modules/module-web/commands/verifyText.js +21 -21
  210. package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
  211. package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
  212. package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
  213. package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
  214. package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
  215. package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
  216. package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
  217. package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
  218. package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
  219. package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
  220. package/build/ox_modules/module-web/commands/waitForText.js +20 -20
  221. package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
  222. package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
  223. package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
  224. package/build/ox_modules/module-web.js +94 -94
  225. package/build/ox_modules/module-win/commands/assertText.js +17 -17
  226. package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
  227. package/build/ox_modules/module-win/commands/assertValue.js +14 -14
  228. package/build/ox_modules/module-win/commands/back.js +11 -11
  229. package/build/ox_modules/module-win/commands/clear.js +13 -13
  230. package/build/ox_modules/module-win/commands/click.js +13 -13
  231. package/build/ox_modules/module-win/commands/clickLong.js +14 -14
  232. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
  233. package/build/ox_modules/module-win/commands/findElement.js +15 -15
  234. package/build/ox_modules/module-win/commands/findElements.js +15 -15
  235. package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
  236. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
  237. package/build/ox_modules/module-win/commands/getLocation.js +14 -14
  238. package/build/ox_modules/module-win/commands/getSource.js +12 -12
  239. package/build/ox_modules/module-win/commands/getText.js +14 -14
  240. package/build/ox_modules/module-win/commands/getValue.js +14 -14
  241. package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
  242. package/build/ox_modules/module-win/commands/index.js +1 -1
  243. package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
  244. package/build/ox_modules/module-win/commands/isChecked.js +14 -14
  245. package/build/ox_modules/module-win/commands/isClickable.js +14 -14
  246. package/build/ox_modules/module-win/commands/isExist.js +15 -15
  247. package/build/ox_modules/module-win/commands/isSelected.js +14 -14
  248. package/build/ox_modules/module-win/commands/isVisible.js +15 -15
  249. package/build/ox_modules/module-win/commands/open.js +13 -13
  250. package/build/ox_modules/module-win/commands/pause.js +12 -12
  251. package/build/ox_modules/module-win/commands/rightClick.js +13 -13
  252. package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
  253. package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
  254. package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
  255. package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
  256. package/build/ox_modules/module-win/commands/tap.js +13 -13
  257. package/build/ox_modules/module-win/commands/type.js +16 -16
  258. package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
  259. package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
  260. package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
  261. package/build/ox_modules/module-win.js +47 -47
  262. package/build/ox_modules/utils.js +8 -8
  263. package/build/ox_reporters/excel/template.json +48 -48
  264. package/build/ox_reporters/html/index.ejs +163 -163
  265. package/build/ox_reporters/html/summary.ejs +77 -77
  266. package/build/ox_reporters/html/tests-details.ejs +134 -134
  267. package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
  268. package/build/ox_reporters/reporter-excel.js +1 -1
  269. package/build/ox_reporters/reporter-html.js +1 -1
  270. package/build/ox_reporters/reporter-json.js +1 -1
  271. package/build/ox_reporters/reporter-junit.js +1 -1
  272. package/build/ox_reporters/reporter-pdf.js +1 -1
  273. package/build/ox_reporters/reporter-rp.js +73 -42
  274. package/build/ox_reporters/reporter-xml.js +1 -1
  275. package/build/ox_services/service-devtools/submodule-network.js +1 -1
  276. package/build/ox_services/service-devtools.js +1 -1
  277. package/build/reporter/FileReporterBase.js +1 -1
  278. package/build/reporter/ReportAggregator.js +1 -1
  279. package/build/reporter/ReporterBase.js +1 -1
  280. package/build/reporter/WebSocketReporter.js +1 -1
  281. package/build/runners/WorkerProcess.js +1 -1
  282. package/build/runners/cucumber/CucumberEventListener.js +1 -1
  283. package/build/runners/cucumber/CucumberReporter.js +1 -1
  284. package/build/runners/cucumber/CucumberWorker.js +1 -1
  285. package/build/runners/cucumber/index.js +1 -1
  286. package/build/runners/cucumber/worker.js +1 -1
  287. package/build/runners/index.js +1 -1
  288. package/build/runners/oxygen/OxygenWorker.js +1 -1
  289. package/build/runners/oxygen/index.js +1 -1
  290. package/build/runners/oxygen/worker.js +1 -1
  291. package/config/default.json +6 -6
  292. package/package.json +139 -139
  293. package/types/index.d.ts +70 -70
  294. package/types/module-eyes.d.ts +39 -39
  295. package/types/module-http.d.ts +163 -163
  296. package/types/module-log.d.ts +34 -34
  297. package/types/module-mob.d.ts +966 -966
  298. package/types/module-pdf.d.ts +40 -40
  299. package/types/module-proxy.d.ts +100 -100
  300. package/types/module-shell.d.ts +24 -24
  301. package/types/module-utils.d.ts +99 -99
  302. package/types/module-web.d.ts +1053 -1053
  303. package/types/module-win.d.ts +352 -352
  304. package/types/oxygen.d.ts +53 -53
  305. package/log.txt +0 -1614
  306. package/reports/2025-06-08_231627/report.html +0 -440
  307. package/reports/2025-06-09_223615/report.html +0 -440
  308. package/transpiled/mongodb/etc/prepare.js +0 -18
  309. package/transpiled/mongodb/lib/admin.js +0 -182
  310. package/transpiled/mongodb/lib/beta.js +0 -26
  311. package/transpiled/mongodb/lib/bson.js +0 -220
  312. package/transpiled/mongodb/lib/bulk/common.js +0 -1041
  313. package/transpiled/mongodb/lib/bulk/ordered.js +0 -76
  314. package/transpiled/mongodb/lib/bulk/unordered.js +0 -102
  315. package/transpiled/mongodb/lib/change_stream.js +0 -517
  316. package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -329
  317. package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +0 -779
  318. package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -95
  319. package/transpiled/mongodb/lib/client-side-encryption/errors.js +0 -171
  320. package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -98
  321. package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +0 -34
  322. package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +0 -186
  323. package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +0 -29
  324. package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +0 -58
  325. package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +0 -505
  326. package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +0 -63
  327. package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -167
  328. package/transpiled/mongodb/lib/cmap/auth/gssapi.js +0 -207
  329. package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +0 -193
  330. package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +0 -181
  331. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -101
  332. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -81
  333. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -174
  334. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -59
  335. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -58
  336. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -138
  337. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -42
  338. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -71
  339. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -34
  340. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -111
  341. package/transpiled/mongodb/lib/cmap/auth/plain.js +0 -43
  342. package/transpiled/mongodb/lib/cmap/auth/providers.js +0 -22
  343. package/transpiled/mongodb/lib/cmap/auth/scram.js +0 -318
  344. package/transpiled/mongodb/lib/cmap/auth/x509.js +0 -61
  345. package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +0 -266
  346. package/transpiled/mongodb/lib/cmap/commands.js +0 -605
  347. package/transpiled/mongodb/lib/cmap/connect.js +0 -418
  348. package/transpiled/mongodb/lib/cmap/connection.js +0 -673
  349. package/transpiled/mongodb/lib/cmap/connection_pool.js +0 -688
  350. package/transpiled/mongodb/lib/cmap/connection_pool_events.js +0 -254
  351. package/transpiled/mongodb/lib/cmap/errors.js +0 -128
  352. package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +0 -278
  353. package/transpiled/mongodb/lib/cmap/metrics.js +0 -67
  354. package/transpiled/mongodb/lib/cmap/stream_description.js +0 -74
  355. package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +0 -196
  356. package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +0 -19
  357. package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +0 -144
  358. package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -278
  359. package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +0 -376
  360. package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +0 -49
  361. package/transpiled/mongodb/lib/collection.js +0 -852
  362. package/transpiled/mongodb/lib/connection_string.js +0 -1452
  363. package/transpiled/mongodb/lib/constants.js +0 -162
  364. package/transpiled/mongodb/lib/cursor/abstract_cursor.js +0 -1082
  365. package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +0 -227
  366. package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +0 -136
  367. package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -69
  368. package/transpiled/mongodb/lib/cursor/find_cursor.js +0 -476
  369. package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +0 -48
  370. package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +0 -46
  371. package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -30
  372. package/transpiled/mongodb/lib/cursor/run_command_cursor.js +0 -125
  373. package/transpiled/mongodb/lib/db.js +0 -467
  374. package/transpiled/mongodb/lib/deps.js +0 -174
  375. package/transpiled/mongodb/lib/encrypter.js +0 -129
  376. package/transpiled/mongodb/lib/error.js +0 -1550
  377. package/transpiled/mongodb/lib/explain.js +0 -122
  378. package/transpiled/mongodb/lib/gridfs/download.js +0 -369
  379. package/transpiled/mongodb/lib/gridfs/index.js +0 -240
  380. package/transpiled/mongodb/lib/gridfs/upload.js +0 -446
  381. package/transpiled/mongodb/lib/index.js +0 -975
  382. package/transpiled/mongodb/lib/mongo_client.js +0 -626
  383. package/transpiled/mongodb/lib/mongo_client_auth_providers.js +0 -98
  384. package/transpiled/mongodb/lib/mongo_logger.js +0 -812
  385. package/transpiled/mongodb/lib/mongo_types.js +0 -71
  386. package/transpiled/mongodb/lib/operations/aggregate.js +0 -129
  387. package/transpiled/mongodb/lib/operations/bulk_write.js +0 -48
  388. package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -96
  389. package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -409
  390. package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +0 -5
  391. package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +0 -144
  392. package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -228
  393. package/transpiled/mongodb/lib/operations/collections.js +0 -49
  394. package/transpiled/mongodb/lib/operations/command.js +0 -102
  395. package/transpiled/mongodb/lib/operations/count.js +0 -60
  396. package/transpiled/mongodb/lib/operations/create_collection.js +0 -109
  397. package/transpiled/mongodb/lib/operations/delete.js +0 -134
  398. package/transpiled/mongodb/lib/operations/distinct.js +0 -77
  399. package/transpiled/mongodb/lib/operations/drop.js +0 -102
  400. package/transpiled/mongodb/lib/operations/estimated_document_count.js +0 -47
  401. package/transpiled/mongodb/lib/operations/execute_operation.js +0 -251
  402. package/transpiled/mongodb/lib/operations/find.js +0 -197
  403. package/transpiled/mongodb/lib/operations/find_and_modify.js +0 -191
  404. package/transpiled/mongodb/lib/operations/get_more.js +0 -84
  405. package/transpiled/mongodb/lib/operations/indexes.js +0 -197
  406. package/transpiled/mongodb/lib/operations/insert.js +0 -138
  407. package/transpiled/mongodb/lib/operations/is_capped.js +0 -44
  408. package/transpiled/mongodb/lib/operations/kill_cursors.js +0 -58
  409. package/transpiled/mongodb/lib/operations/list_collections.js +0 -66
  410. package/transpiled/mongodb/lib/operations/list_databases.js +0 -56
  411. package/transpiled/mongodb/lib/operations/operation.js +0 -88
  412. package/transpiled/mongodb/lib/operations/options_operation.js +0 -44
  413. package/transpiled/mongodb/lib/operations/profiling_level.js +0 -42
  414. package/transpiled/mongodb/lib/operations/remove_user.js +0 -35
  415. package/transpiled/mongodb/lib/operations/rename.js +0 -48
  416. package/transpiled/mongodb/lib/operations/run_command.js +0 -64
  417. package/transpiled/mongodb/lib/operations/search_indexes/create.js +0 -41
  418. package/transpiled/mongodb/lib/operations/search_indexes/drop.js +0 -51
  419. package/transpiled/mongodb/lib/operations/search_indexes/update.js +0 -40
  420. package/transpiled/mongodb/lib/operations/set_profiling_level.js +0 -70
  421. package/transpiled/mongodb/lib/operations/stats.js +0 -39
  422. package/transpiled/mongodb/lib/operations/update.js +0 -218
  423. package/transpiled/mongodb/lib/operations/validate_collection.js +0 -49
  424. package/transpiled/mongodb/lib/read_concern.js +0 -92
  425. package/transpiled/mongodb/lib/read_preference.js +0 -215
  426. package/transpiled/mongodb/lib/resource_management.js +0 -74
  427. package/transpiled/mongodb/lib/sdam/common.js +0 -53
  428. package/transpiled/mongodb/lib/sdam/events.js +0 -177
  429. package/transpiled/mongodb/lib/sdam/monitor.js +0 -656
  430. package/transpiled/mongodb/lib/sdam/server.js +0 -463
  431. package/transpiled/mongodb/lib/sdam/server_description.js +0 -196
  432. package/transpiled/mongodb/lib/sdam/server_selection.js +0 -283
  433. package/transpiled/mongodb/lib/sdam/server_selection_events.js +0 -112
  434. package/transpiled/mongodb/lib/sdam/srv_polling.js +0 -139
  435. package/transpiled/mongodb/lib/sdam/topology.js +0 -833
  436. package/transpiled/mongodb/lib/sdam/topology_description.js +0 -447
  437. package/transpiled/mongodb/lib/sessions.js +0 -988
  438. package/transpiled/mongodb/lib/sort.js +0 -123
  439. package/transpiled/mongodb/lib/timeout.js +0 -349
  440. package/transpiled/mongodb/lib/transactions.js +0 -149
  441. package/transpiled/mongodb/lib/utils.js +0 -1502
  442. package/transpiled/mongodb/lib/write_concern.js +0 -115
@@ -1,505 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StateMachine = void 0;
7
-
8
- const fs = require("fs/promises");
9
-
10
- const net = require("net");
11
-
12
- const tls = require("tls");
13
-
14
- const bson_1 = require("../bson");
15
-
16
- const abstract_cursor_1 = require("../cursor/abstract_cursor");
17
-
18
- const deps_1 = require("../deps");
19
-
20
- const error_1 = require("../error");
21
-
22
- const timeout_1 = require("../timeout");
23
-
24
- const utils_1 = require("../utils");
25
-
26
- const client_encryption_1 = require("./client_encryption");
27
-
28
- const errors_1 = require("./errors");
29
-
30
- let socks = null;
31
-
32
- function loadSocks() {
33
- if (socks == null) {
34
- const socksImport = (0, deps_1.getSocks)();
35
-
36
- if ('kModuleError' in socksImport) {
37
- throw socksImport.kModuleError;
38
- }
39
-
40
- socks = socksImport;
41
- }
42
-
43
- return socks;
44
- } // libmongocrypt states
45
-
46
-
47
- const MONGOCRYPT_CTX_ERROR = 0;
48
- const MONGOCRYPT_CTX_NEED_MONGO_COLLINFO = 1;
49
- const MONGOCRYPT_CTX_NEED_MONGO_MARKINGS = 2;
50
- const MONGOCRYPT_CTX_NEED_MONGO_KEYS = 3;
51
- const MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS = 7;
52
- const MONGOCRYPT_CTX_NEED_KMS = 4;
53
- const MONGOCRYPT_CTX_READY = 5;
54
- const MONGOCRYPT_CTX_DONE = 6;
55
- const HTTPS_PORT = 443;
56
- const stateToString = new Map([[MONGOCRYPT_CTX_ERROR, 'MONGOCRYPT_CTX_ERROR'], [MONGOCRYPT_CTX_NEED_MONGO_COLLINFO, 'MONGOCRYPT_CTX_NEED_MONGO_COLLINFO'], [MONGOCRYPT_CTX_NEED_MONGO_MARKINGS, 'MONGOCRYPT_CTX_NEED_MONGO_MARKINGS'], [MONGOCRYPT_CTX_NEED_MONGO_KEYS, 'MONGOCRYPT_CTX_NEED_MONGO_KEYS'], [MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS, 'MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS'], [MONGOCRYPT_CTX_NEED_KMS, 'MONGOCRYPT_CTX_NEED_KMS'], [MONGOCRYPT_CTX_READY, 'MONGOCRYPT_CTX_READY'], [MONGOCRYPT_CTX_DONE, 'MONGOCRYPT_CTX_DONE']]);
57
- const INSECURE_TLS_OPTIONS = ['tlsInsecure', 'tlsAllowInvalidCertificates', 'tlsAllowInvalidHostnames', // These options are disallowed by the spec, so we explicitly filter them out if provided, even
58
- // though the StateMachine does not declare support for these options.
59
- 'tlsDisableOCSPEndpointCheck', 'tlsDisableCertificateRevocationCheck'];
60
- /**
61
- * Helper function for logging. Enabled by setting the environment flag MONGODB_CRYPT_DEBUG.
62
- * @param msg - Anything you want to be logged.
63
- */
64
-
65
- function debug(msg) {
66
- if (process.env.MONGODB_CRYPT_DEBUG) {
67
- // eslint-disable-next-line no-console
68
- console.error(msg);
69
- }
70
- }
71
- /**
72
- * This is kind of a hack. For `rewrapManyDataKey`, we have tests that
73
- * guarantee that when there are no matching keys, `rewrapManyDataKey` returns
74
- * nothing. We also have tests for auto encryption that guarantee for `encrypt`
75
- * we return an error when there are no matching keys. This error is generated in
76
- * subsequent iterations of the state machine.
77
- * Some apis (`encrypt`) throw if there are no filter matches and others (`rewrapManyDataKey`)
78
- * do not. We set the result manually here, and let the state machine continue. `libmongocrypt`
79
- * will inform us if we need to error by setting the state to `MONGOCRYPT_CTX_ERROR` but
80
- * otherwise we'll return `{ v: [] }`.
81
- */
82
-
83
-
84
- let EMPTY_V;
85
- /**
86
- * @internal
87
- * An internal class that executes across a MongoCryptContext until either
88
- * a finishing state or an error is reached. Do not instantiate directly.
89
- */
90
- // TODO(DRIVERS-2671): clarify CSOT behavior for FLE APIs
91
-
92
- class StateMachine {
93
- constructor(options, bsonOptions = (0, bson_1.pluckBSONSerializeOptions)(options)) {
94
- this.options = options;
95
- this.bsonOptions = bsonOptions;
96
- }
97
- /**
98
- * Executes the state machine according to the specification
99
- */
100
-
101
-
102
- async execute(executor, context, options) {
103
- const keyVaultNamespace = executor._keyVaultNamespace;
104
- const keyVaultClient = executor._keyVaultClient;
105
- const metaDataClient = executor._metaDataClient;
106
- const mongocryptdClient = executor._mongocryptdClient;
107
- const mongocryptdManager = executor._mongocryptdManager;
108
- let result = null; // Typescript treats getters just like properties: Once you've tested it for equality
109
- // it cannot change. Which is exactly the opposite of what we use state and status for.
110
- // Every call to at least `addMongoOperationResponse` and `finalize` can change the state.
111
- // These wrappers let us write code more naturally and not add compiler exceptions
112
- // to conditions checks inside the state machine.
113
-
114
- const getStatus = () => context.status;
115
-
116
- const getState = () => context.state;
117
-
118
- while (getState() !== MONGOCRYPT_CTX_DONE && getState() !== MONGOCRYPT_CTX_ERROR) {
119
- options.signal?.throwIfAborted();
120
- debug(`[context#${context.id}] ${stateToString.get(getState()) || getState()}`);
121
-
122
- switch (getState()) {
123
- case MONGOCRYPT_CTX_NEED_MONGO_COLLINFO:
124
- {
125
- const filter = (0, bson_1.deserialize)(context.nextMongoOperation());
126
-
127
- if (!metaDataClient) {
128
- throw new errors_1.MongoCryptError('unreachable state machine state: entered MONGOCRYPT_CTX_NEED_MONGO_COLLINFO but metadata client is undefined');
129
- }
130
-
131
- const collInfoCursor = this.fetchCollectionInfo(metaDataClient, context.ns, filter, options);
132
-
133
- for await (const collInfo of collInfoCursor) {
134
- context.addMongoOperationResponse((0, bson_1.serialize)(collInfo));
135
- if (getState() === MONGOCRYPT_CTX_ERROR) break;
136
- }
137
-
138
- if (getState() === MONGOCRYPT_CTX_ERROR) break;
139
- context.finishMongoOperation();
140
- break;
141
- }
142
-
143
- case MONGOCRYPT_CTX_NEED_MONGO_MARKINGS:
144
- {
145
- const command = context.nextMongoOperation();
146
- if (getState() === MONGOCRYPT_CTX_ERROR) break;
147
-
148
- if (!mongocryptdClient) {
149
- throw new errors_1.MongoCryptError('unreachable state machine state: entered MONGOCRYPT_CTX_NEED_MONGO_MARKINGS but mongocryptdClient is undefined');
150
- } // When we are using the shared library, we don't have a mongocryptd manager.
151
-
152
-
153
- const markedCommand = mongocryptdManager ? await mongocryptdManager.withRespawn(this.markCommand.bind(this, mongocryptdClient, context.ns, command, options)) : await this.markCommand(mongocryptdClient, context.ns, command, options);
154
- context.addMongoOperationResponse(markedCommand);
155
- context.finishMongoOperation();
156
- break;
157
- }
158
-
159
- case MONGOCRYPT_CTX_NEED_MONGO_KEYS:
160
- {
161
- const filter = context.nextMongoOperation();
162
- const keys = await this.fetchKeys(keyVaultClient, keyVaultNamespace, filter, options);
163
-
164
- if (keys.length === 0) {
165
- // See docs on EMPTY_V
166
- result = EMPTY_V ??= (0, bson_1.serialize)({
167
- v: []
168
- });
169
- }
170
-
171
- for (const key of keys) {
172
- context.addMongoOperationResponse((0, bson_1.serialize)(key));
173
- }
174
-
175
- context.finishMongoOperation();
176
- break;
177
- }
178
-
179
- case MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS:
180
- {
181
- const kmsProviders = await executor.askForKMSCredentials();
182
- context.provideKMSProviders((0, bson_1.serialize)(kmsProviders));
183
- break;
184
- }
185
-
186
- case MONGOCRYPT_CTX_NEED_KMS:
187
- {
188
- await Promise.all(this.requests(context, options));
189
- context.finishKMSRequests();
190
- break;
191
- }
192
-
193
- case MONGOCRYPT_CTX_READY:
194
- {
195
- const finalizedContext = context.finalize();
196
-
197
- if (getState() === MONGOCRYPT_CTX_ERROR) {
198
- const message = getStatus().message || 'Finalization error';
199
- throw new errors_1.MongoCryptError(message);
200
- }
201
-
202
- result = finalizedContext;
203
- break;
204
- }
205
-
206
- default:
207
- throw new errors_1.MongoCryptError(`Unknown state: ${getState()}`);
208
- }
209
- }
210
-
211
- if (getState() === MONGOCRYPT_CTX_ERROR || result == null) {
212
- const message = getStatus().message;
213
-
214
- if (!message) {
215
- debug(`unidentifiable error in MongoCrypt - received an error status from \`libmongocrypt\` but received no error message.`);
216
- }
217
-
218
- throw new errors_1.MongoCryptError(message ?? 'unidentifiable error in MongoCrypt - received an error status from `libmongocrypt` but received no error message.');
219
- }
220
-
221
- return result;
222
- }
223
- /**
224
- * Handles the request to the KMS service. Exposed for testing purposes. Do not directly invoke.
225
- * @param kmsContext - A C++ KMS context returned from the bindings
226
- * @returns A promise that resolves when the KMS reply has be fully parsed
227
- */
228
-
229
-
230
- async kmsRequest(request, options) {
231
- const parsedUrl = request.endpoint.split(':');
232
- const port = parsedUrl[1] != null ? Number.parseInt(parsedUrl[1], 10) : HTTPS_PORT;
233
- const socketOptions = {
234
- host: parsedUrl[0],
235
- servername: parsedUrl[0],
236
- port,
237
- ...(0, client_encryption_1.autoSelectSocketOptions)(this.options.socketOptions || {})
238
- };
239
- const message = request.message;
240
- const buffer = new utils_1.BufferPool();
241
- let netSocket;
242
- let socket;
243
-
244
- function destroySockets() {
245
- for (const sock of [socket, netSocket]) {
246
- if (sock) {
247
- sock.destroy();
248
- }
249
- }
250
- }
251
-
252
- function onerror(cause) {
253
- return new errors_1.MongoCryptError('KMS request failed', {
254
- cause
255
- });
256
- }
257
-
258
- function onclose() {
259
- return new errors_1.MongoCryptError('KMS request closed');
260
- }
261
-
262
- const tlsOptions = this.options.tlsOptions;
263
-
264
- if (tlsOptions) {
265
- const kmsProvider = request.kmsProvider;
266
- const providerTlsOptions = tlsOptions[kmsProvider];
267
-
268
- if (providerTlsOptions) {
269
- const error = this.validateTlsOptions(kmsProvider, providerTlsOptions);
270
-
271
- if (error) {
272
- throw error;
273
- }
274
-
275
- try {
276
- await this.setTlsOptions(providerTlsOptions, socketOptions);
277
- } catch (err) {
278
- throw onerror(err);
279
- }
280
- }
281
- }
282
-
283
- let abortListener;
284
-
285
- try {
286
- if (this.options.proxyOptions && this.options.proxyOptions.proxyHost) {
287
- netSocket = new net.Socket();
288
- const {
289
- promise: willConnect,
290
- reject: rejectOnNetSocketError,
291
- resolve: resolveOnNetSocketConnect
292
- } = (0, utils_1.promiseWithResolvers)();
293
- netSocket.once('error', err => rejectOnNetSocketError(onerror(err))).once('close', () => rejectOnNetSocketError(onclose())).once('connect', () => resolveOnNetSocketConnect());
294
- const netSocketOptions = { ...socketOptions,
295
- host: this.options.proxyOptions.proxyHost,
296
- port: this.options.proxyOptions.proxyPort || 1080
297
- };
298
- netSocket.connect(netSocketOptions);
299
- await willConnect;
300
-
301
- try {
302
- socks ??= loadSocks();
303
- socketOptions.socket = (await socks.SocksClient.createConnection({
304
- existing_socket: netSocket,
305
- command: 'connect',
306
- destination: {
307
- host: socketOptions.host,
308
- port: socketOptions.port
309
- },
310
- proxy: {
311
- // host and port are ignored because we pass existing_socket
312
- host: 'iLoveJavaScript',
313
- port: 0,
314
- type: 5,
315
- userId: this.options.proxyOptions.proxyUsername,
316
- password: this.options.proxyOptions.proxyPassword
317
- }
318
- })).socket;
319
- } catch (err) {
320
- throw onerror(err);
321
- }
322
- }
323
-
324
- socket = tls.connect(socketOptions, () => {
325
- socket.write(message);
326
- });
327
- const {
328
- promise: willResolveKmsRequest,
329
- reject: rejectOnTlsSocketError,
330
- resolve
331
- } = (0, utils_1.promiseWithResolvers)();
332
- abortListener = (0, utils_1.addAbortListener)(options?.signal, function () {
333
- destroySockets();
334
- rejectOnTlsSocketError(this.reason);
335
- });
336
- socket.once('error', err => rejectOnTlsSocketError(onerror(err))).once('close', () => rejectOnTlsSocketError(onclose())).on('data', data => {
337
- buffer.append(data);
338
-
339
- while (request.bytesNeeded > 0 && buffer.length) {
340
- const bytesNeeded = Math.min(request.bytesNeeded, buffer.length);
341
- request.addResponse(buffer.read(bytesNeeded));
342
- }
343
-
344
- if (request.bytesNeeded <= 0) {
345
- resolve();
346
- }
347
- });
348
- await (options?.timeoutContext?.csotEnabled() ? Promise.all([willResolveKmsRequest, timeout_1.Timeout.expires(options.timeoutContext?.remainingTimeMS)]) : willResolveKmsRequest);
349
- } catch (error) {
350
- if (error instanceof timeout_1.TimeoutError) throw new error_1.MongoOperationTimeoutError('KMS request timed out');
351
- throw error;
352
- } finally {
353
- // There's no need for any more activity on this socket at this point.
354
- destroySockets();
355
- abortListener?.[utils_1.kDispose]();
356
- }
357
- }
358
-
359
- *requests(context, options) {
360
- for (let request = context.nextKMSRequest(); request != null; request = context.nextKMSRequest()) {
361
- yield this.kmsRequest(request, options);
362
- }
363
- }
364
- /**
365
- * Validates the provided TLS options are secure.
366
- *
367
- * @param kmsProvider - The KMS provider name.
368
- * @param tlsOptions - The client TLS options for the provider.
369
- *
370
- * @returns An error if any option is invalid.
371
- */
372
-
373
-
374
- validateTlsOptions(kmsProvider, tlsOptions) {
375
- const tlsOptionNames = Object.keys(tlsOptions);
376
-
377
- for (const option of INSECURE_TLS_OPTIONS) {
378
- if (tlsOptionNames.includes(option)) {
379
- return new errors_1.MongoCryptError(`Insecure TLS options prohibited for ${kmsProvider}: ${option}`);
380
- }
381
- }
382
- }
383
- /**
384
- * Sets only the valid secure TLS options.
385
- *
386
- * @param tlsOptions - The client TLS options for the provider.
387
- * @param options - The existing connection options.
388
- */
389
-
390
-
391
- async setTlsOptions(tlsOptions, options) {
392
- if (tlsOptions.tlsCertificateKeyFile) {
393
- const cert = await fs.readFile(tlsOptions.tlsCertificateKeyFile);
394
- options.cert = options.key = cert;
395
- }
396
-
397
- if (tlsOptions.tlsCAFile) {
398
- options.ca = await fs.readFile(tlsOptions.tlsCAFile);
399
- }
400
-
401
- if (tlsOptions.tlsCertificateKeyFilePassword) {
402
- options.passphrase = tlsOptions.tlsCertificateKeyFilePassword;
403
- }
404
- }
405
- /**
406
- * Fetches collection info for a provided namespace, when libmongocrypt
407
- * enters the `MONGOCRYPT_CTX_NEED_MONGO_COLLINFO` state. The result is
408
- * used to inform libmongocrypt of the schema associated with this
409
- * namespace. Exposed for testing purposes. Do not directly invoke.
410
- *
411
- * @param client - A MongoClient connected to the topology
412
- * @param ns - The namespace to list collections from
413
- * @param filter - A filter for the listCollections command
414
- * @param callback - Invoked with the info of the requested collection, or with an error
415
- */
416
-
417
-
418
- fetchCollectionInfo(client, ns, filter, options) {
419
- const {
420
- db
421
- } = utils_1.MongoDBCollectionNamespace.fromString(ns);
422
- const cursor = client.db(db).listCollections(filter, {
423
- promoteLongs: false,
424
- promoteValues: false,
425
- timeoutContext: options?.timeoutContext && new abstract_cursor_1.CursorTimeoutContext(options?.timeoutContext, Symbol()),
426
- signal: options?.signal,
427
- nameOnly: false
428
- });
429
- return cursor;
430
- }
431
- /**
432
- * Calls to the mongocryptd to provide markings for a command.
433
- * Exposed for testing purposes. Do not directly invoke.
434
- * @param client - A MongoClient connected to a mongocryptd
435
- * @param ns - The namespace (database.collection) the command is being executed on
436
- * @param command - The command to execute.
437
- * @param callback - Invoked with the serialized and marked bson command, or with an error
438
- */
439
-
440
-
441
- async markCommand(client, ns, command, options) {
442
- const {
443
- db
444
- } = utils_1.MongoDBCollectionNamespace.fromString(ns);
445
- const bsonOptions = {
446
- promoteLongs: false,
447
- promoteValues: false
448
- };
449
- const rawCommand = (0, bson_1.deserialize)(command, bsonOptions);
450
- const commandOptions = {
451
- timeoutMS: undefined,
452
- signal: undefined
453
- };
454
-
455
- if (options?.timeoutContext?.csotEnabled()) {
456
- commandOptions.timeoutMS = options.timeoutContext.remainingTimeMS;
457
- }
458
-
459
- if (options?.signal) {
460
- commandOptions.signal = options.signal;
461
- }
462
-
463
- const response = await client.db(db).command(rawCommand, { ...bsonOptions,
464
- ...commandOptions
465
- });
466
- return (0, bson_1.serialize)(response, this.bsonOptions);
467
- }
468
- /**
469
- * Requests keys from the keyVault collection on the topology.
470
- * Exposed for testing purposes. Do not directly invoke.
471
- * @param client - A MongoClient connected to the topology
472
- * @param keyVaultNamespace - The namespace (database.collection) of the keyVault Collection
473
- * @param filter - The filter for the find query against the keyVault Collection
474
- * @param callback - Invoked with the found keys, or with an error
475
- */
476
-
477
-
478
- fetchKeys(client, keyVaultNamespace, filter, options) {
479
- const {
480
- db: dbName,
481
- collection: collectionName
482
- } = utils_1.MongoDBCollectionNamespace.fromString(keyVaultNamespace);
483
- const commandOptions = {
484
- timeoutContext: undefined,
485
- signal: undefined
486
- };
487
-
488
- if (options?.timeoutContext != null) {
489
- commandOptions.timeoutContext = new abstract_cursor_1.CursorTimeoutContext(options.timeoutContext, Symbol());
490
- }
491
-
492
- if (options?.signal != null) {
493
- commandOptions.signal = options.signal;
494
- }
495
-
496
- return client.db(dbName).collection(collectionName, {
497
- readConcern: {
498
- level: 'majority'
499
- }
500
- }).find((0, bson_1.deserialize)(filter), commandOptions).toArray();
501
- }
502
-
503
- }
504
-
505
- exports.StateMachine = StateMachine;
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AuthProvider = exports.AuthContext = void 0;
7
-
8
- const error_1 = require("../../error");
9
- /**
10
- * Context used during authentication
11
- * @internal
12
- */
13
-
14
-
15
- class AuthContext {
16
- constructor(connection, credentials, options) {
17
- /** If the context is for reauthentication. */
18
- this.reauthenticating = false;
19
- this.connection = connection;
20
- this.credentials = credentials;
21
- this.options = options;
22
- }
23
-
24
- }
25
-
26
- exports.AuthContext = AuthContext;
27
- /**
28
- * Provider used during authentication.
29
- * @internal
30
- */
31
-
32
- class AuthProvider {
33
- /**
34
- * Prepare the handshake document before the initial handshake.
35
- *
36
- * @param handshakeDoc - The document used for the initial handshake on a connection
37
- * @param authContext - Context for authentication flow
38
- */
39
- async prepare(handshakeDoc, _authContext) {
40
- return handshakeDoc;
41
- }
42
- /**
43
- * Reauthenticate.
44
- * @param context - The shared auth context.
45
- */
46
-
47
-
48
- async reauth(context) {
49
- if (context.reauthenticating) {
50
- throw new error_1.MongoRuntimeError('Reauthentication already in progress.');
51
- }
52
-
53
- try {
54
- context.reauthenticating = true;
55
- await this.auth(context);
56
- } finally {
57
- context.reauthenticating = false;
58
- }
59
- }
60
-
61
- }
62
-
63
- exports.AuthProvider = AuthProvider;