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,167 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.LegacyAWSTemporaryCredentialProvider = exports.AWSSDKCredentialProvider = exports.AWSTemporaryCredentialProvider = void 0;
7
-
8
- const deps_1 = require("../../deps");
9
-
10
- const error_1 = require("../../error");
11
-
12
- const utils_1 = require("../../utils");
13
-
14
- const AWS_RELATIVE_URI = 'http://169.254.170.2';
15
- const AWS_EC2_URI = 'http://169.254.169.254';
16
- const AWS_EC2_PATH = '/latest/meta-data/iam/security-credentials';
17
- /**
18
- * @internal
19
- *
20
- * Fetches temporary AWS credentials.
21
- */
22
-
23
- class AWSTemporaryCredentialProvider {
24
- static get awsSDK() {
25
- AWSTemporaryCredentialProvider._awsSDK ??= (0, deps_1.getAwsCredentialProvider)();
26
- return AWSTemporaryCredentialProvider._awsSDK;
27
- }
28
-
29
- static get isAWSSDKInstalled() {
30
- return !('kModuleError' in AWSTemporaryCredentialProvider.awsSDK);
31
- }
32
-
33
- }
34
-
35
- exports.AWSTemporaryCredentialProvider = AWSTemporaryCredentialProvider;
36
- /** @internal */
37
-
38
- class AWSSDKCredentialProvider extends AWSTemporaryCredentialProvider {
39
- /**
40
- * Create the SDK credentials provider.
41
- * @param credentialsProvider - The credentials provider.
42
- */
43
- constructor(credentialsProvider) {
44
- super();
45
-
46
- if (credentialsProvider) {
47
- this._provider = credentialsProvider;
48
- }
49
- }
50
- /**
51
- * The AWS SDK caches credentials automatically and handles refresh when the credentials have expired.
52
- * To ensure this occurs, we need to cache the `provider` returned by the AWS sdk and re-use it when fetching credentials.
53
- */
54
-
55
-
56
- get provider() {
57
- if ('kModuleError' in AWSTemporaryCredentialProvider.awsSDK) {
58
- throw AWSTemporaryCredentialProvider.awsSDK.kModuleError;
59
- }
60
-
61
- if (this._provider) {
62
- return this._provider;
63
- }
64
-
65
- let {
66
- AWS_STS_REGIONAL_ENDPOINTS = '',
67
- AWS_REGION = ''
68
- } = process.env;
69
- AWS_STS_REGIONAL_ENDPOINTS = AWS_STS_REGIONAL_ENDPOINTS.toLowerCase();
70
- AWS_REGION = AWS_REGION.toLowerCase();
71
- /** The option setting should work only for users who have explicit settings in their environment, the driver should not encode "defaults" */
72
-
73
- const awsRegionSettingsExist = AWS_REGION.length !== 0 && AWS_STS_REGIONAL_ENDPOINTS.length !== 0;
74
- /**
75
- * The following regions use the global AWS STS endpoint, sts.amazonaws.com, by default
76
- * https://docs.aws.amazon.com/sdkref/latest/guide/feature-sts-regionalized-endpoints.html
77
- */
78
-
79
- const LEGACY_REGIONS = new Set(['ap-northeast-1', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'aws-global', 'ca-central-1', 'eu-central-1', 'eu-north-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'sa-east-1', 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2']);
80
- /**
81
- * If AWS_STS_REGIONAL_ENDPOINTS is set to regional, users are opting into the new behavior of respecting the region settings
82
- *
83
- * If AWS_STS_REGIONAL_ENDPOINTS is set to legacy, then "old" regions need to keep using the global setting.
84
- * Technically the SDK gets this wrong, it reaches out to 'sts.us-east-1.amazonaws.com' when it should be 'sts.amazonaws.com'.
85
- * That is not our bug to fix here. We leave that up to the SDK.
86
- */
87
-
88
- const useRegionalSts = AWS_STS_REGIONAL_ENDPOINTS === 'regional' || AWS_STS_REGIONAL_ENDPOINTS === 'legacy' && !LEGACY_REGIONS.has(AWS_REGION);
89
- this._provider = awsRegionSettingsExist && useRegionalSts ? AWSTemporaryCredentialProvider.awsSDK.fromNodeProviderChain({
90
- clientConfig: {
91
- region: AWS_REGION
92
- }
93
- }) : AWSTemporaryCredentialProvider.awsSDK.fromNodeProviderChain();
94
- return this._provider;
95
- }
96
-
97
- async getCredentials() {
98
- /*
99
- * Creates a credential provider that will attempt to find credentials from the
100
- * following sources (listed in order of precedence):
101
- *
102
- * - Environment variables exposed via process.env
103
- * - SSO credentials from token cache
104
- * - Web identity token credentials
105
- * - Shared credentials and config ini files
106
- * - The EC2/ECS Instance Metadata Service
107
- */
108
- try {
109
- const creds = await this.provider();
110
- return {
111
- AccessKeyId: creds.accessKeyId,
112
- SecretAccessKey: creds.secretAccessKey,
113
- Token: creds.sessionToken,
114
- Expiration: creds.expiration
115
- };
116
- } catch (error) {
117
- throw new error_1.MongoAWSError(error.message, {
118
- cause: error
119
- });
120
- }
121
- }
122
-
123
- }
124
-
125
- exports.AWSSDKCredentialProvider = AWSSDKCredentialProvider;
126
- /**
127
- * @internal
128
- * Fetches credentials manually (without the AWS SDK), as outlined in the [Obtaining Credentials](https://github.com/mongodb/specifications/blob/master/source/auth/auth.md#obtaining-credentials)
129
- * section of the Auth spec.
130
- */
131
-
132
- class LegacyAWSTemporaryCredentialProvider extends AWSTemporaryCredentialProvider {
133
- async getCredentials() {
134
- // If the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
135
- // is set then drivers MUST assume that it was set by an AWS ECS agent
136
- if (process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI) {
137
- return await (0, utils_1.request)(`${AWS_RELATIVE_URI}${process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}`);
138
- } // Otherwise assume we are on an EC2 instance
139
- // get a token
140
-
141
-
142
- const token = await (0, utils_1.request)(`${AWS_EC2_URI}/latest/api/token`, {
143
- method: 'PUT',
144
- json: false,
145
- headers: {
146
- 'X-aws-ec2-metadata-token-ttl-seconds': 30
147
- }
148
- }); // get role name
149
-
150
- const roleName = await (0, utils_1.request)(`${AWS_EC2_URI}/${AWS_EC2_PATH}`, {
151
- json: false,
152
- headers: {
153
- 'X-aws-ec2-metadata-token': token
154
- }
155
- }); // get temp credentials
156
-
157
- const creds = await (0, utils_1.request)(`${AWS_EC2_URI}/${AWS_EC2_PATH}/${roleName}`, {
158
- headers: {
159
- 'X-aws-ec2-metadata-token': token
160
- }
161
- });
162
- return creds;
163
- }
164
-
165
- }
166
-
167
- exports.LegacyAWSTemporaryCredentialProvider = LegacyAWSTemporaryCredentialProvider;
@@ -1,207 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GSSAPI = exports.GSSAPICanonicalizationValue = void 0;
7
- exports.performGSSAPICanonicalizeHostName = performGSSAPICanonicalizeHostName;
8
- exports.resolveCname = resolveCname;
9
-
10
- const dns = require("dns");
11
-
12
- const deps_1 = require("../../deps");
13
-
14
- const error_1 = require("../../error");
15
-
16
- const utils_1 = require("../../utils");
17
-
18
- const auth_provider_1 = require("./auth_provider");
19
- /** @public */
20
-
21
-
22
- exports.GSSAPICanonicalizationValue = Object.freeze({
23
- on: true,
24
- off: false,
25
- none: 'none',
26
- forward: 'forward',
27
- forwardAndReverse: 'forwardAndReverse'
28
- });
29
-
30
- async function externalCommand(connection, command) {
31
- const response = await connection.command((0, utils_1.ns)('$external.$cmd'), command);
32
- return response;
33
- }
34
-
35
- let krb;
36
-
37
- class GSSAPI extends auth_provider_1.AuthProvider {
38
- async auth(authContext) {
39
- const {
40
- connection,
41
- credentials
42
- } = authContext;
43
-
44
- if (credentials == null) {
45
- throw new error_1.MongoMissingCredentialsError('Credentials required for GSSAPI authentication');
46
- }
47
-
48
- const {
49
- username
50
- } = credentials;
51
- const client = await makeKerberosClient(authContext);
52
- const payload = await client.step('');
53
- const saslStartResponse = await externalCommand(connection, saslStart(payload));
54
- const negotiatedPayload = await negotiate(client, 10, saslStartResponse.payload);
55
- const saslContinueResponse = await externalCommand(connection, saslContinue(negotiatedPayload, saslStartResponse.conversationId));
56
- const finalizePayload = await finalize(client, username, saslContinueResponse.payload);
57
- await externalCommand(connection, {
58
- saslContinue: 1,
59
- conversationId: saslContinueResponse.conversationId,
60
- payload: finalizePayload
61
- });
62
- }
63
-
64
- }
65
-
66
- exports.GSSAPI = GSSAPI;
67
-
68
- async function makeKerberosClient(authContext) {
69
- const {
70
- hostAddress
71
- } = authContext.options;
72
- const {
73
- credentials
74
- } = authContext;
75
-
76
- if (!hostAddress || typeof hostAddress.host !== 'string' || !credentials) {
77
- throw new error_1.MongoInvalidArgumentError('Connection must have host and port and credentials defined.');
78
- }
79
-
80
- loadKrb();
81
-
82
- if ('kModuleError' in krb) {
83
- throw krb['kModuleError'];
84
- }
85
-
86
- const {
87
- initializeClient
88
- } = krb;
89
- const {
90
- username,
91
- password
92
- } = credentials;
93
- const mechanismProperties = credentials.mechanismProperties;
94
- const serviceName = mechanismProperties.SERVICE_NAME ?? 'mongodb';
95
- const host = await performGSSAPICanonicalizeHostName(hostAddress.host, mechanismProperties);
96
- const initOptions = {};
97
-
98
- if (password != null) {
99
- // TODO(NODE-5139): These do not match the typescript options in initializeClient
100
- Object.assign(initOptions, {
101
- user: username,
102
- password: password
103
- });
104
- }
105
-
106
- const spnHost = mechanismProperties.SERVICE_HOST ?? host;
107
- let spn = `${serviceName}${process.platform === 'win32' ? '/' : '@'}${spnHost}`;
108
-
109
- if ('SERVICE_REALM' in mechanismProperties) {
110
- spn = `${spn}@${mechanismProperties.SERVICE_REALM}`;
111
- }
112
-
113
- return await initializeClient(spn, initOptions);
114
- }
115
-
116
- function saslStart(payload) {
117
- return {
118
- saslStart: 1,
119
- mechanism: 'GSSAPI',
120
- payload,
121
- autoAuthorize: 1
122
- };
123
- }
124
-
125
- function saslContinue(payload, conversationId) {
126
- return {
127
- saslContinue: 1,
128
- conversationId,
129
- payload
130
- };
131
- }
132
-
133
- async function negotiate(client, retries, payload) {
134
- try {
135
- const response = await client.step(payload);
136
- return response || '';
137
- } catch (error) {
138
- if (retries === 0) {
139
- // Retries exhausted, raise error
140
- throw error;
141
- } // Adjust number of retries and call step again
142
-
143
-
144
- return await negotiate(client, retries - 1, payload);
145
- }
146
- }
147
-
148
- async function finalize(client, user, payload) {
149
- // GSS Client Unwrap
150
- const response = await client.unwrap(payload);
151
- return await client.wrap(response || '', {
152
- user
153
- });
154
- }
155
-
156
- async function performGSSAPICanonicalizeHostName(host, mechanismProperties) {
157
- const mode = mechanismProperties.CANONICALIZE_HOST_NAME;
158
-
159
- if (!mode || mode === exports.GSSAPICanonicalizationValue.none) {
160
- return host;
161
- } // If forward and reverse or true
162
-
163
-
164
- if (mode === exports.GSSAPICanonicalizationValue.on || mode === exports.GSSAPICanonicalizationValue.forwardAndReverse) {
165
- // Perform the lookup of the ip address.
166
- const {
167
- address
168
- } = await dns.promises.lookup(host);
169
-
170
- try {
171
- // Perform a reverse ptr lookup on the ip address.
172
- const results = await dns.promises.resolvePtr(address); // If the ptr did not error but had no results, return the host.
173
-
174
- return results.length > 0 ? results[0] : host;
175
- } catch {
176
- // This can error as ptr records may not exist for all ips. In this case
177
- // fallback to a cname lookup as dns.lookup() does not return the
178
- // cname.
179
- return await resolveCname(host);
180
- }
181
- } else {
182
- // The case for forward is just to resolve the cname as dns.lookup()
183
- // will not return it.
184
- return await resolveCname(host);
185
- }
186
- }
187
-
188
- async function resolveCname(host) {
189
- // Attempt to resolve the host name
190
- try {
191
- const results = await dns.promises.resolveCname(host); // Get the first resolved host id
192
-
193
- return results.length > 0 ? results[0] : host;
194
- } catch {
195
- return host;
196
- }
197
- }
198
- /**
199
- * Load the Kerberos library.
200
- */
201
-
202
-
203
- function loadKrb() {
204
- if (!krb) {
205
- krb = (0, deps_1.getKerberos)();
206
- }
207
- }
@@ -1,193 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MongoCredentials = exports.DEFAULT_ALLOWED_HOSTS = void 0;
7
-
8
- const error_1 = require("../../error");
9
-
10
- const gssapi_1 = require("./gssapi");
11
-
12
- const providers_1 = require("./providers");
13
- /**
14
- * @see https://github.com/mongodb/specifications/blob/master/source/auth/auth.md
15
- */
16
-
17
-
18
- function getDefaultAuthMechanism(hello) {
19
- if (hello) {
20
- // If hello contains saslSupportedMechs, use scram-sha-256
21
- // if it is available, else scram-sha-1
22
- if (Array.isArray(hello.saslSupportedMechs)) {
23
- return hello.saslSupportedMechs.includes(providers_1.AuthMechanism.MONGODB_SCRAM_SHA256) ? providers_1.AuthMechanism.MONGODB_SCRAM_SHA256 : providers_1.AuthMechanism.MONGODB_SCRAM_SHA1;
24
- }
25
- } // Default auth mechanism for 4.0 and higher.
26
-
27
-
28
- return providers_1.AuthMechanism.MONGODB_SCRAM_SHA256;
29
- }
30
-
31
- const ALLOWED_ENVIRONMENT_NAMES = ['test', 'azure', 'gcp', 'k8s'];
32
- const ALLOWED_HOSTS_ERROR = 'Auth mechanism property ALLOWED_HOSTS must be an array of strings.';
33
- /** @internal */
34
-
35
- exports.DEFAULT_ALLOWED_HOSTS = ['*.mongodb.net', '*.mongodb-qa.net', '*.mongodb-dev.net', '*.mongodbgov.net', 'localhost', '127.0.0.1', '::1'];
36
- /** Error for when the token audience is missing in the environment. */
37
-
38
- const TOKEN_RESOURCE_MISSING_ERROR = 'TOKEN_RESOURCE must be set in the auth mechanism properties when ENVIRONMENT is azure or gcp.';
39
- /**
40
- * A representation of the credentials used by MongoDB
41
- * @public
42
- */
43
-
44
- class MongoCredentials {
45
- constructor(options) {
46
- this.username = options.username ?? '';
47
- this.password = options.password;
48
- this.source = options.source;
49
-
50
- if (!this.source && options.db) {
51
- this.source = options.db;
52
- }
53
-
54
- this.mechanism = options.mechanism || providers_1.AuthMechanism.MONGODB_DEFAULT;
55
- this.mechanismProperties = options.mechanismProperties || {};
56
-
57
- if (this.mechanism.match(/MONGODB-AWS/i)) {
58
- if (!this.username && process.env.AWS_ACCESS_KEY_ID) {
59
- this.username = process.env.AWS_ACCESS_KEY_ID;
60
- }
61
-
62
- if (!this.password && process.env.AWS_SECRET_ACCESS_KEY) {
63
- this.password = process.env.AWS_SECRET_ACCESS_KEY;
64
- }
65
-
66
- if (this.mechanismProperties.AWS_SESSION_TOKEN == null && process.env.AWS_SESSION_TOKEN != null) {
67
- this.mechanismProperties = { ...this.mechanismProperties,
68
- AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN
69
- };
70
- }
71
- }
72
-
73
- if (this.mechanism === providers_1.AuthMechanism.MONGODB_OIDC && !this.mechanismProperties.ALLOWED_HOSTS) {
74
- this.mechanismProperties = { ...this.mechanismProperties,
75
- ALLOWED_HOSTS: exports.DEFAULT_ALLOWED_HOSTS
76
- };
77
- }
78
-
79
- Object.freeze(this.mechanismProperties);
80
- Object.freeze(this);
81
- }
82
- /** Determines if two MongoCredentials objects are equivalent */
83
-
84
-
85
- equals(other) {
86
- return this.mechanism === other.mechanism && this.username === other.username && this.password === other.password && this.source === other.source;
87
- }
88
- /**
89
- * If the authentication mechanism is set to "default", resolves the authMechanism
90
- * based on the server version and server supported sasl mechanisms.
91
- *
92
- * @param hello - A hello response from the server
93
- */
94
-
95
-
96
- resolveAuthMechanism(hello) {
97
- // If the mechanism is not "default", then it does not need to be resolved
98
- if (this.mechanism.match(/DEFAULT/i)) {
99
- return new MongoCredentials({
100
- username: this.username,
101
- password: this.password,
102
- source: this.source,
103
- mechanism: getDefaultAuthMechanism(hello),
104
- mechanismProperties: this.mechanismProperties
105
- });
106
- }
107
-
108
- return this;
109
- }
110
-
111
- validate() {
112
- if ((this.mechanism === providers_1.AuthMechanism.MONGODB_GSSAPI || this.mechanism === providers_1.AuthMechanism.MONGODB_PLAIN || this.mechanism === providers_1.AuthMechanism.MONGODB_SCRAM_SHA1 || this.mechanism === providers_1.AuthMechanism.MONGODB_SCRAM_SHA256) && !this.username) {
113
- throw new error_1.MongoMissingCredentialsError(`Username required for mechanism '${this.mechanism}'`);
114
- }
115
-
116
- if (this.mechanism === providers_1.AuthMechanism.MONGODB_OIDC) {
117
- if (this.username && this.mechanismProperties.ENVIRONMENT && this.mechanismProperties.ENVIRONMENT !== 'azure') {
118
- throw new error_1.MongoInvalidArgumentError(`username and ENVIRONMENT '${this.mechanismProperties.ENVIRONMENT}' may not be used together for mechanism '${this.mechanism}'.`);
119
- }
120
-
121
- if (this.username && this.password) {
122
- throw new error_1.MongoInvalidArgumentError(`No password is allowed in ENVIRONMENT '${this.mechanismProperties.ENVIRONMENT}' for '${this.mechanism}'.`);
123
- }
124
-
125
- if ((this.mechanismProperties.ENVIRONMENT === 'azure' || this.mechanismProperties.ENVIRONMENT === 'gcp') && !this.mechanismProperties.TOKEN_RESOURCE) {
126
- throw new error_1.MongoInvalidArgumentError(TOKEN_RESOURCE_MISSING_ERROR);
127
- }
128
-
129
- if (this.mechanismProperties.ENVIRONMENT && !ALLOWED_ENVIRONMENT_NAMES.includes(this.mechanismProperties.ENVIRONMENT)) {
130
- throw new error_1.MongoInvalidArgumentError(`Currently only a ENVIRONMENT in ${ALLOWED_ENVIRONMENT_NAMES.join(',')} is supported for mechanism '${this.mechanism}'.`);
131
- }
132
-
133
- if (!this.mechanismProperties.ENVIRONMENT && !this.mechanismProperties.OIDC_CALLBACK && !this.mechanismProperties.OIDC_HUMAN_CALLBACK) {
134
- throw new error_1.MongoInvalidArgumentError(`Either a ENVIRONMENT, OIDC_CALLBACK, or OIDC_HUMAN_CALLBACK must be specified for mechanism '${this.mechanism}'.`);
135
- }
136
-
137
- if (this.mechanismProperties.ALLOWED_HOSTS) {
138
- const hosts = this.mechanismProperties.ALLOWED_HOSTS;
139
-
140
- if (!Array.isArray(hosts)) {
141
- throw new error_1.MongoInvalidArgumentError(ALLOWED_HOSTS_ERROR);
142
- }
143
-
144
- for (const host of hosts) {
145
- if (typeof host !== 'string') {
146
- throw new error_1.MongoInvalidArgumentError(ALLOWED_HOSTS_ERROR);
147
- }
148
- }
149
- }
150
- }
151
-
152
- if (providers_1.AUTH_MECHS_AUTH_SRC_EXTERNAL.has(this.mechanism)) {
153
- if (this.source != null && this.source !== '$external') {
154
- // TODO(NODE-3485): Replace this with a MongoAuthValidationError
155
- throw new error_1.MongoAPIError(`Invalid source '${this.source}' for mechanism '${this.mechanism}' specified.`);
156
- }
157
- }
158
-
159
- if (this.mechanism === providers_1.AuthMechanism.MONGODB_PLAIN && this.source == null) {
160
- // TODO(NODE-3485): Replace this with a MongoAuthValidationError
161
- throw new error_1.MongoAPIError('PLAIN Authentication Mechanism needs an auth source');
162
- }
163
-
164
- if (this.mechanism === providers_1.AuthMechanism.MONGODB_X509 && this.password != null) {
165
- if (this.password === '') {
166
- Reflect.set(this, 'password', undefined);
167
- return;
168
- } // TODO(NODE-3485): Replace this with a MongoAuthValidationError
169
-
170
-
171
- throw new error_1.MongoAPIError(`Password not allowed for mechanism MONGODB-X509`);
172
- }
173
-
174
- const canonicalization = this.mechanismProperties.CANONICALIZE_HOST_NAME ?? false;
175
-
176
- if (!Object.values(gssapi_1.GSSAPICanonicalizationValue).includes(canonicalization)) {
177
- throw new error_1.MongoAPIError(`Invalid CANONICALIZE_HOST_NAME value: ${canonicalization}`);
178
- }
179
- }
180
-
181
- static merge(creds, options) {
182
- return new MongoCredentials({
183
- username: options.username ?? creds?.username ?? '',
184
- password: options.password ?? creds?.password ?? '',
185
- mechanism: options.mechanism ?? creds?.mechanism ?? providers_1.AuthMechanism.MONGODB_DEFAULT,
186
- mechanismProperties: options.mechanismProperties ?? creds?.mechanismProperties ?? {},
187
- source: options.source ?? options.db ?? creds?.source ?? 'admin'
188
- });
189
- }
190
-
191
- }
192
-
193
- exports.MongoCredentials = MongoCredentials;