oxygen-cli 1.40.2-beta.1 → 1.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +1750 -1742
  2. package/LICENSE +672 -672
  3. package/README.md +37 -37
  4. package/build/core/OxygenCore.js +1 -1
  5. package/build/core/OxygenEvents.js +1 -1
  6. package/build/core/OxygenModule.js +1 -1
  7. package/build/core/OxygenService.js +1 -1
  8. package/build/core/OxygenSubModule.js +1 -1
  9. package/build/core/WebDriverModule.js +1 -1
  10. package/build/core/utils.js +1 -1
  11. package/build/errors/HookError.js +1 -1
  12. package/build/errors/ModuleError.js +1 -1
  13. package/build/errors/ModuleUnavailableError.js +1 -1
  14. package/build/errors/OxygenError.js +1 -1
  15. package/build/errors/ScriptNotFound.js +1 -1
  16. package/build/errors/helper.js +1 -2
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +1 -5
  19. package/build/lib/cli.js +1 -1
  20. package/build/lib/debugger.js +1 -1
  21. package/build/lib/img-merge.js +1 -1
  22. package/build/lib/launcher.js +1 -1
  23. package/build/lib/logger.js +43 -43
  24. package/build/lib/moduleRequire.js +1 -1
  25. package/build/lib/parallel-launcher.js +1 -1
  26. package/build/lib/param-manager.js +1 -1
  27. package/build/lib/param-reader-csv.js +1 -1
  28. package/build/lib/param-reader-excel.js +1 -1
  29. package/build/lib/param-reader-json.js +1 -1
  30. package/build/lib/text-to-image.js +1 -1
  31. package/build/lib/util.js +1 -1
  32. package/build/model/case-result.js +1 -1
  33. package/build/model/failure.js +1 -1
  34. package/build/model/status.js +1 -1
  35. package/build/model/step-result.js +1 -1
  36. package/build/model/suite-result.js +1 -1
  37. package/build/model/test-result.js +1 -1
  38. package/build/model/testcase.js +1 -1
  39. package/build/model/testsuite.js +1 -1
  40. package/build/ox_modules/index.js +1 -9
  41. package/build/ox_modules/module-assert.js +37 -37
  42. package/build/ox_modules/module-date.js +24 -24
  43. package/build/ox_modules/module-db.js +52 -52
  44. package/build/ox_modules/module-email.js +59 -59
  45. package/build/ox_modules/module-eyes.js +34 -34
  46. package/build/ox_modules/module-http/ntlm-util.js +10 -10
  47. package/build/ox_modules/module-http/ntlm.js +15 -15
  48. package/build/ox_modules/module-http.js +132 -132
  49. package/build/ox_modules/module-log.js +27 -27
  50. package/build/ox_modules/module-mailinator.js +87 -87
  51. package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
  52. package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
  53. package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
  54. package/build/ox_modules/module-mob/commands/assertText.js +21 -21
  55. package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
  56. package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
  57. package/build/ox_modules/module-mob/commands/back.js +16 -16
  58. package/build/ox_modules/module-mob/commands/clear.js +19 -19
  59. package/build/ox_modules/module-mob/commands/click.js +17 -17
  60. package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
  61. package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
  62. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
  63. package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
  64. package/build/ox_modules/module-mob/commands/debug.js +16 -16
  65. package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
  66. package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
  67. package/build/ox_modules/module-mob/commands/execute.js +21 -21
  68. package/build/ox_modules/module-mob/commands/findElement.js +20 -20
  69. package/build/ox_modules/module-mob/commands/findElements.js +23 -23
  70. package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
  71. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
  72. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
  73. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
  74. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
  75. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
  76. package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
  77. package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
  78. package/build/ox_modules/module-mob/commands/getSource.js +16 -16
  79. package/build/ox_modules/module-mob/commands/getText.js +18 -18
  80. package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
  81. package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
  82. package/build/ox_modules/module-mob/commands/getValue.js +18 -18
  83. package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
  84. package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
  85. package/build/ox_modules/module-mob/commands/index.js +1 -1
  86. package/build/ox_modules/module-mob/commands/installApp.js +16 -16
  87. package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
  88. package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
  89. package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
  90. package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
  91. package/build/ox_modules/module-mob/commands/isExist.js +19 -19
  92. package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
  93. package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
  94. package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
  95. package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
  96. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
  97. package/build/ox_modules/module-mob/commands/open.js +17 -17
  98. package/build/ox_modules/module-mob/commands/pause.js +16 -16
  99. package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
  100. package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
  101. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
  102. package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
  103. package/build/ox_modules/module-mob/commands/select.js +24 -24
  104. package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
  105. package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
  106. package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
  107. package/build/ox_modules/module-mob/commands/setContext.js +16 -16
  108. package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
  109. package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
  110. package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
  111. package/build/ox_modules/module-mob/commands/shake.js +16 -16
  112. package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
  113. package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
  114. package/build/ox_modules/module-mob/commands/swipe.js +20 -20
  115. package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
  116. package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
  117. package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
  118. package/build/ox_modules/module-mob/commands/tap.js +17 -17
  119. package/build/ox_modules/module-mob/commands/type.js +20 -20
  120. package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
  121. package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
  122. package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
  123. package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
  124. package/build/ox_modules/module-mob.js +74 -74
  125. package/build/ox_modules/module-pdf.js +35 -35
  126. package/build/ox_modules/module-proxy.js +77 -77
  127. package/build/ox_modules/module-serial.js +55 -55
  128. package/build/ox_modules/module-shell.js +52 -33
  129. package/build/ox_modules/module-soap.js +72 -72
  130. package/build/ox_modules/module-twilio.js +41 -41
  131. package/build/ox_modules/module-utils.js +91 -91
  132. package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
  133. package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
  134. package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
  135. package/build/ox_modules/module-web/commands/assertExist.js +17 -17
  136. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
  137. package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
  138. package/build/ox_modules/module-web/commands/assertText.js +21 -21
  139. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
  140. package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
  141. package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
  142. package/build/ox_modules/module-web/commands/assertValue.js +20 -20
  143. package/build/ox_modules/module-web/commands/back.js +16 -16
  144. package/build/ox_modules/module-web/commands/clear.js +18 -18
  145. package/build/ox_modules/module-web/commands/click.js +25 -25
  146. package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
  147. package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
  148. package/build/ox_modules/module-web/commands/debug.js +15 -15
  149. package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
  150. package/build/ox_modules/module-web/commands/deselect.js +22 -22
  151. package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
  152. package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
  153. package/build/ox_modules/module-web/commands/execute.js +24 -24
  154. package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
  155. package/build/ox_modules/module-web/commands/findElement.js +19 -19
  156. package/build/ox_modules/module-web/commands/findElements.js +22 -22
  157. package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
  158. package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
  159. package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
  160. package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
  161. package/build/ox_modules/module-web/commands/getCookies.js +13 -13
  162. package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
  163. package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
  164. package/build/ox_modules/module-web/commands/getHTML.js +17 -17
  165. package/build/ox_modules/module-web/commands/getSource.js +16 -16
  166. package/build/ox_modules/module-web/commands/getText.js +18 -18
  167. package/build/ox_modules/module-web/commands/getTitle.js +12 -12
  168. package/build/ox_modules/module-web/commands/getUrl.js +16 -16
  169. package/build/ox_modules/module-web/commands/getValue.js +18 -18
  170. package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
  171. package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
  172. package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
  173. package/build/ox_modules/module-web/commands/index.js +1 -1
  174. package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
  175. package/build/ox_modules/module-web/commands/isChecked.js +18 -18
  176. package/build/ox_modules/module-web/commands/isExist.js +19 -19
  177. package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
  178. package/build/ox_modules/module-web/commands/isSelected.js +23 -23
  179. package/build/ox_modules/module-web/commands/isVisible.js +19 -19
  180. package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
  181. package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
  182. package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
  183. package/build/ox_modules/module-web/commands/mock.js +20 -20
  184. package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
  185. package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
  186. package/build/ox_modules/module-web/commands/newWindow.js +16 -16
  187. package/build/ox_modules/module-web/commands/open.js +16 -16
  188. package/build/ox_modules/module-web/commands/pause.js +15 -15
  189. package/build/ox_modules/module-web/commands/point.js +21 -21
  190. package/build/ox_modules/module-web/commands/pointJS.js +15 -15
  191. package/build/ox_modules/module-web/commands/refresh.js +15 -15
  192. package/build/ox_modules/module-web/commands/rightClick.js +17 -17
  193. package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
  194. package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
  195. package/build/ox_modules/module-web/commands/select.js +23 -23
  196. package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
  197. package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
  198. package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
  199. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
  200. package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
  201. package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
  202. package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
  203. package/build/ox_modules/module-web/commands/type.js +20 -20
  204. package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
  205. package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
  206. package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
  207. package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
  208. package/build/ox_modules/module-web/commands/verifyText.js +21 -21
  209. package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
  210. package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
  211. package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
  212. package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
  213. package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
  214. package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
  215. package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
  216. package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
  217. package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
  218. package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
  219. package/build/ox_modules/module-web/commands/waitForText.js +20 -20
  220. package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
  221. package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
  222. package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
  223. package/build/ox_modules/module-web.js +94 -94
  224. package/build/ox_modules/module-win/commands/assertText.js +17 -17
  225. package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
  226. package/build/ox_modules/module-win/commands/assertValue.js +14 -14
  227. package/build/ox_modules/module-win/commands/back.js +11 -11
  228. package/build/ox_modules/module-win/commands/clear.js +13 -13
  229. package/build/ox_modules/module-win/commands/click.js +13 -13
  230. package/build/ox_modules/module-win/commands/clickLong.js +14 -14
  231. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
  232. package/build/ox_modules/module-win/commands/findElement.js +15 -15
  233. package/build/ox_modules/module-win/commands/findElements.js +15 -15
  234. package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
  235. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
  236. package/build/ox_modules/module-win/commands/getLocation.js +14 -14
  237. package/build/ox_modules/module-win/commands/getSource.js +12 -12
  238. package/build/ox_modules/module-win/commands/getText.js +14 -14
  239. package/build/ox_modules/module-win/commands/getValue.js +14 -14
  240. package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
  241. package/build/ox_modules/module-win/commands/index.js +1 -1
  242. package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
  243. package/build/ox_modules/module-win/commands/isChecked.js +14 -14
  244. package/build/ox_modules/module-win/commands/isClickable.js +14 -14
  245. package/build/ox_modules/module-win/commands/isExist.js +15 -15
  246. package/build/ox_modules/module-win/commands/isSelected.js +14 -14
  247. package/build/ox_modules/module-win/commands/isVisible.js +15 -15
  248. package/build/ox_modules/module-win/commands/open.js +13 -13
  249. package/build/ox_modules/module-win/commands/pause.js +12 -12
  250. package/build/ox_modules/module-win/commands/rightClick.js +13 -13
  251. package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
  252. package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
  253. package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
  254. package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
  255. package/build/ox_modules/module-win/commands/tap.js +13 -13
  256. package/build/ox_modules/module-win/commands/type.js +16 -16
  257. package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
  258. package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
  259. package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
  260. package/build/ox_modules/module-win.js +47 -47
  261. package/build/ox_modules/utils.js +8 -8
  262. package/build/ox_reporters/excel/template.json +48 -48
  263. package/build/ox_reporters/html/index.ejs +163 -163
  264. package/build/ox_reporters/html/summary.ejs +77 -77
  265. package/build/ox_reporters/html/tests-details.ejs +134 -134
  266. package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
  267. package/build/ox_reporters/reporter-excel.js +1 -1
  268. package/build/ox_reporters/reporter-html.js +1 -1
  269. package/build/ox_reporters/reporter-json.js +1 -1
  270. package/build/ox_reporters/reporter-junit.js +1 -1
  271. package/build/ox_reporters/reporter-pdf.js +1 -1
  272. package/build/ox_reporters/reporter-rp.js +73 -42
  273. package/build/ox_reporters/reporter-xml.js +1 -1
  274. package/build/ox_services/service-devtools/submodule-network.js +1 -1
  275. package/build/ox_services/service-devtools.js +1 -1
  276. package/build/reporter/FileReporterBase.js +1 -1
  277. package/build/reporter/ReportAggregator.js +5 -13
  278. package/build/reporter/ReporterBase.js +1 -1
  279. package/build/reporter/WebSocketReporter.js +1 -1
  280. package/build/runners/WorkerProcess.js +1 -1
  281. package/build/runners/cucumber/CucumberEventListener.js +1 -1
  282. package/build/runners/cucumber/CucumberReporter.js +1 -1
  283. package/build/runners/cucumber/CucumberWorker.js +1 -1
  284. package/build/runners/cucumber/index.js +1 -1
  285. package/build/runners/cucumber/worker.js +1 -1
  286. package/build/runners/index.js +1 -1
  287. package/build/runners/oxygen/OxygenWorker.js +1 -1
  288. package/build/runners/oxygen/index.js +1 -1
  289. package/build/runners/oxygen/worker.js +1 -1
  290. package/config/default.json +6 -6
  291. package/package.json +137 -139
  292. package/types/index.d.ts +70 -70
  293. package/types/module-eyes.d.ts +39 -39
  294. package/types/module-http.d.ts +163 -163
  295. package/types/module-log.d.ts +34 -34
  296. package/types/module-mob.d.ts +966 -966
  297. package/types/module-pdf.d.ts +40 -40
  298. package/types/module-proxy.d.ts +100 -100
  299. package/types/module-shell.d.ts +24 -24
  300. package/types/module-utils.d.ts +99 -99
  301. package/types/module-web.d.ts +1053 -1053
  302. package/types/module-win.d.ts +352 -352
  303. package/types/oxygen.d.ts +53 -53
  304. package/build/ox_modules/module-mongo.js +0 -302
  305. package/log.txt +0 -1614
  306. package/reports/2025-06-08_231627/report.html +0 -440
  307. package/reports/2025-06-09_223615/report.html +0 -440
  308. package/transpiled/mongodb/etc/prepare.js +0 -18
  309. package/transpiled/mongodb/lib/admin.js +0 -182
  310. package/transpiled/mongodb/lib/beta.js +0 -26
  311. package/transpiled/mongodb/lib/bson.js +0 -220
  312. package/transpiled/mongodb/lib/bulk/common.js +0 -1041
  313. package/transpiled/mongodb/lib/bulk/ordered.js +0 -76
  314. package/transpiled/mongodb/lib/bulk/unordered.js +0 -102
  315. package/transpiled/mongodb/lib/change_stream.js +0 -517
  316. package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -329
  317. package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +0 -779
  318. package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -95
  319. package/transpiled/mongodb/lib/client-side-encryption/errors.js +0 -171
  320. package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -98
  321. package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +0 -34
  322. package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +0 -186
  323. package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +0 -29
  324. package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +0 -58
  325. package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +0 -505
  326. package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +0 -63
  327. package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -167
  328. package/transpiled/mongodb/lib/cmap/auth/gssapi.js +0 -207
  329. package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +0 -193
  330. package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +0 -181
  331. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -101
  332. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -81
  333. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -174
  334. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -59
  335. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -58
  336. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -138
  337. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -42
  338. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -71
  339. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -34
  340. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -111
  341. package/transpiled/mongodb/lib/cmap/auth/plain.js +0 -43
  342. package/transpiled/mongodb/lib/cmap/auth/providers.js +0 -22
  343. package/transpiled/mongodb/lib/cmap/auth/scram.js +0 -318
  344. package/transpiled/mongodb/lib/cmap/auth/x509.js +0 -61
  345. package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +0 -266
  346. package/transpiled/mongodb/lib/cmap/commands.js +0 -605
  347. package/transpiled/mongodb/lib/cmap/connect.js +0 -418
  348. package/transpiled/mongodb/lib/cmap/connection.js +0 -673
  349. package/transpiled/mongodb/lib/cmap/connection_pool.js +0 -688
  350. package/transpiled/mongodb/lib/cmap/connection_pool_events.js +0 -254
  351. package/transpiled/mongodb/lib/cmap/errors.js +0 -128
  352. package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +0 -278
  353. package/transpiled/mongodb/lib/cmap/metrics.js +0 -67
  354. package/transpiled/mongodb/lib/cmap/stream_description.js +0 -74
  355. package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +0 -196
  356. package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +0 -19
  357. package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +0 -144
  358. package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -278
  359. package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +0 -376
  360. package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +0 -49
  361. package/transpiled/mongodb/lib/collection.js +0 -852
  362. package/transpiled/mongodb/lib/connection_string.js +0 -1452
  363. package/transpiled/mongodb/lib/constants.js +0 -162
  364. package/transpiled/mongodb/lib/cursor/abstract_cursor.js +0 -1082
  365. package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +0 -227
  366. package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +0 -136
  367. package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -69
  368. package/transpiled/mongodb/lib/cursor/find_cursor.js +0 -476
  369. package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +0 -48
  370. package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +0 -46
  371. package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -30
  372. package/transpiled/mongodb/lib/cursor/run_command_cursor.js +0 -125
  373. package/transpiled/mongodb/lib/db.js +0 -467
  374. package/transpiled/mongodb/lib/deps.js +0 -174
  375. package/transpiled/mongodb/lib/encrypter.js +0 -129
  376. package/transpiled/mongodb/lib/error.js +0 -1550
  377. package/transpiled/mongodb/lib/explain.js +0 -122
  378. package/transpiled/mongodb/lib/gridfs/download.js +0 -369
  379. package/transpiled/mongodb/lib/gridfs/index.js +0 -240
  380. package/transpiled/mongodb/lib/gridfs/upload.js +0 -446
  381. package/transpiled/mongodb/lib/index.js +0 -975
  382. package/transpiled/mongodb/lib/mongo_client.js +0 -626
  383. package/transpiled/mongodb/lib/mongo_client_auth_providers.js +0 -98
  384. package/transpiled/mongodb/lib/mongo_logger.js +0 -812
  385. package/transpiled/mongodb/lib/mongo_types.js +0 -71
  386. package/transpiled/mongodb/lib/operations/aggregate.js +0 -129
  387. package/transpiled/mongodb/lib/operations/bulk_write.js +0 -48
  388. package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -96
  389. package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -409
  390. package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +0 -5
  391. package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +0 -144
  392. package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -228
  393. package/transpiled/mongodb/lib/operations/collections.js +0 -49
  394. package/transpiled/mongodb/lib/operations/command.js +0 -102
  395. package/transpiled/mongodb/lib/operations/count.js +0 -60
  396. package/transpiled/mongodb/lib/operations/create_collection.js +0 -109
  397. package/transpiled/mongodb/lib/operations/delete.js +0 -134
  398. package/transpiled/mongodb/lib/operations/distinct.js +0 -77
  399. package/transpiled/mongodb/lib/operations/drop.js +0 -102
  400. package/transpiled/mongodb/lib/operations/estimated_document_count.js +0 -47
  401. package/transpiled/mongodb/lib/operations/execute_operation.js +0 -251
  402. package/transpiled/mongodb/lib/operations/find.js +0 -197
  403. package/transpiled/mongodb/lib/operations/find_and_modify.js +0 -191
  404. package/transpiled/mongodb/lib/operations/get_more.js +0 -84
  405. package/transpiled/mongodb/lib/operations/indexes.js +0 -197
  406. package/transpiled/mongodb/lib/operations/insert.js +0 -138
  407. package/transpiled/mongodb/lib/operations/is_capped.js +0 -44
  408. package/transpiled/mongodb/lib/operations/kill_cursors.js +0 -58
  409. package/transpiled/mongodb/lib/operations/list_collections.js +0 -66
  410. package/transpiled/mongodb/lib/operations/list_databases.js +0 -56
  411. package/transpiled/mongodb/lib/operations/operation.js +0 -88
  412. package/transpiled/mongodb/lib/operations/options_operation.js +0 -44
  413. package/transpiled/mongodb/lib/operations/profiling_level.js +0 -42
  414. package/transpiled/mongodb/lib/operations/remove_user.js +0 -35
  415. package/transpiled/mongodb/lib/operations/rename.js +0 -48
  416. package/transpiled/mongodb/lib/operations/run_command.js +0 -64
  417. package/transpiled/mongodb/lib/operations/search_indexes/create.js +0 -41
  418. package/transpiled/mongodb/lib/operations/search_indexes/drop.js +0 -51
  419. package/transpiled/mongodb/lib/operations/search_indexes/update.js +0 -40
  420. package/transpiled/mongodb/lib/operations/set_profiling_level.js +0 -70
  421. package/transpiled/mongodb/lib/operations/stats.js +0 -39
  422. package/transpiled/mongodb/lib/operations/update.js +0 -218
  423. package/transpiled/mongodb/lib/operations/validate_collection.js +0 -49
  424. package/transpiled/mongodb/lib/read_concern.js +0 -92
  425. package/transpiled/mongodb/lib/read_preference.js +0 -215
  426. package/transpiled/mongodb/lib/resource_management.js +0 -74
  427. package/transpiled/mongodb/lib/sdam/common.js +0 -53
  428. package/transpiled/mongodb/lib/sdam/events.js +0 -177
  429. package/transpiled/mongodb/lib/sdam/monitor.js +0 -656
  430. package/transpiled/mongodb/lib/sdam/server.js +0 -463
  431. package/transpiled/mongodb/lib/sdam/server_description.js +0 -196
  432. package/transpiled/mongodb/lib/sdam/server_selection.js +0 -283
  433. package/transpiled/mongodb/lib/sdam/server_selection_events.js +0 -112
  434. package/transpiled/mongodb/lib/sdam/srv_polling.js +0 -139
  435. package/transpiled/mongodb/lib/sdam/topology.js +0 -833
  436. package/transpiled/mongodb/lib/sdam/topology_description.js +0 -447
  437. package/transpiled/mongodb/lib/sessions.js +0 -988
  438. package/transpiled/mongodb/lib/sort.js +0 -123
  439. package/transpiled/mongodb/lib/timeout.js +0 -349
  440. package/transpiled/mongodb/lib/transactions.js +0 -149
  441. package/transpiled/mongodb/lib/utils.js +0 -1502
  442. package/transpiled/mongodb/lib/write_concern.js +0 -115
@@ -1,318 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ScramSHA256 = exports.ScramSHA1 = void 0;
7
-
8
- const saslprep_1 = require("@mongodb-js/saslprep");
9
-
10
- const crypto = require("crypto");
11
-
12
- const bson_1 = require("../../bson");
13
-
14
- const error_1 = require("../../error");
15
-
16
- const utils_1 = require("../../utils");
17
-
18
- const auth_provider_1 = require("./auth_provider");
19
-
20
- const providers_1 = require("./providers");
21
-
22
- class ScramSHA extends auth_provider_1.AuthProvider {
23
- constructor(cryptoMethod) {
24
- super();
25
- this.cryptoMethod = cryptoMethod || 'sha1';
26
- }
27
-
28
- async prepare(handshakeDoc, authContext) {
29
- const cryptoMethod = this.cryptoMethod;
30
- const credentials = authContext.credentials;
31
-
32
- if (!credentials) {
33
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
34
- }
35
-
36
- const nonce = await (0, utils_1.randomBytes)(24); // store the nonce for later use
37
-
38
- authContext.nonce = nonce;
39
- const request = { ...handshakeDoc,
40
- speculativeAuthenticate: { ...makeFirstMessage(cryptoMethod, credentials, nonce),
41
- db: credentials.source
42
- }
43
- };
44
- return request;
45
- }
46
-
47
- async auth(authContext) {
48
- const {
49
- reauthenticating,
50
- response
51
- } = authContext;
52
-
53
- if (response?.speculativeAuthenticate && !reauthenticating) {
54
- return await continueScramConversation(this.cryptoMethod, response.speculativeAuthenticate, authContext);
55
- }
56
-
57
- return await executeScram(this.cryptoMethod, authContext);
58
- }
59
-
60
- }
61
-
62
- function cleanUsername(username) {
63
- return username.replace('=', '=3D').replace(',', '=2C');
64
- }
65
-
66
- function clientFirstMessageBare(username, nonce) {
67
- // NOTE: This is done b/c Javascript uses UTF-16, but the server is hashing in UTF-8.
68
- // Since the username is not sasl-prep-d, we need to do this here.
69
- return Buffer.concat([Buffer.from('n=', 'utf8'), Buffer.from(username, 'utf8'), Buffer.from(',r=', 'utf8'), Buffer.from(nonce.toString('base64'), 'utf8')]);
70
- }
71
-
72
- function makeFirstMessage(cryptoMethod, credentials, nonce) {
73
- const username = cleanUsername(credentials.username);
74
- const mechanism = cryptoMethod === 'sha1' ? providers_1.AuthMechanism.MONGODB_SCRAM_SHA1 : providers_1.AuthMechanism.MONGODB_SCRAM_SHA256; // NOTE: This is done b/c Javascript uses UTF-16, but the server is hashing in UTF-8.
75
- // Since the username is not sasl-prep-d, we need to do this here.
76
-
77
- return {
78
- saslStart: 1,
79
- mechanism,
80
- payload: new bson_1.Binary(Buffer.concat([Buffer.from('n,,', 'utf8'), clientFirstMessageBare(username, nonce)])),
81
- autoAuthorize: 1,
82
- options: {
83
- skipEmptyExchange: true
84
- }
85
- };
86
- }
87
-
88
- async function executeScram(cryptoMethod, authContext) {
89
- const {
90
- connection,
91
- credentials
92
- } = authContext;
93
-
94
- if (!credentials) {
95
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
96
- }
97
-
98
- if (!authContext.nonce) {
99
- throw new error_1.MongoInvalidArgumentError('AuthContext must contain a valid nonce property');
100
- }
101
-
102
- const nonce = authContext.nonce;
103
- const db = credentials.source;
104
- const saslStartCmd = makeFirstMessage(cryptoMethod, credentials, nonce);
105
- const response = await connection.command((0, utils_1.ns)(`${db}.$cmd`), saslStartCmd, undefined);
106
- await continueScramConversation(cryptoMethod, response, authContext);
107
- }
108
-
109
- async function continueScramConversation(cryptoMethod, response, authContext) {
110
- const connection = authContext.connection;
111
- const credentials = authContext.credentials;
112
-
113
- if (!credentials) {
114
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
115
- }
116
-
117
- if (!authContext.nonce) {
118
- throw new error_1.MongoInvalidArgumentError('Unable to continue SCRAM without valid nonce');
119
- }
120
-
121
- const nonce = authContext.nonce;
122
- const db = credentials.source;
123
- const username = cleanUsername(credentials.username);
124
- const password = credentials.password;
125
- const processedPassword = cryptoMethod === 'sha256' ? (0, saslprep_1.saslprep)(password) : passwordDigest(username, password);
126
- const payload = Buffer.isBuffer(response.payload) ? new bson_1.Binary(response.payload) : response.payload;
127
- const dict = parsePayload(payload);
128
- const iterations = parseInt(dict.i, 10);
129
-
130
- if (iterations && iterations < 4096) {
131
- // TODO(NODE-3483)
132
- throw new error_1.MongoRuntimeError(`Server returned an invalid iteration count ${iterations}`);
133
- }
134
-
135
- const salt = dict.s;
136
- const rnonce = dict.r;
137
-
138
- if (rnonce.startsWith('nonce')) {
139
- // TODO(NODE-3483)
140
- throw new error_1.MongoRuntimeError(`Server returned an invalid nonce: ${rnonce}`);
141
- } // Set up start of proof
142
-
143
-
144
- const withoutProof = `c=biws,r=${rnonce}`;
145
- const saltedPassword = HI(processedPassword, Buffer.from(salt, 'base64'), iterations, cryptoMethod);
146
- const clientKey = HMAC(cryptoMethod, saltedPassword, 'Client Key');
147
- const serverKey = HMAC(cryptoMethod, saltedPassword, 'Server Key');
148
- const storedKey = H(cryptoMethod, clientKey);
149
- const authMessage = [clientFirstMessageBare(username, nonce), payload.toString('utf8'), withoutProof].join(',');
150
- const clientSignature = HMAC(cryptoMethod, storedKey, authMessage);
151
- const clientProof = `p=${xor(clientKey, clientSignature)}`;
152
- const clientFinal = [withoutProof, clientProof].join(',');
153
- const serverSignature = HMAC(cryptoMethod, serverKey, authMessage);
154
- const saslContinueCmd = {
155
- saslContinue: 1,
156
- conversationId: response.conversationId,
157
- payload: new bson_1.Binary(Buffer.from(clientFinal))
158
- };
159
- const r = await connection.command((0, utils_1.ns)(`${db}.$cmd`), saslContinueCmd, undefined);
160
- const parsedResponse = parsePayload(r.payload);
161
-
162
- if (!compareDigest(Buffer.from(parsedResponse.v, 'base64'), serverSignature)) {
163
- throw new error_1.MongoRuntimeError('Server returned an invalid signature');
164
- }
165
-
166
- if (r.done !== false) {
167
- // If the server sends r.done === true we can save one RTT
168
- return;
169
- }
170
-
171
- const retrySaslContinueCmd = {
172
- saslContinue: 1,
173
- conversationId: r.conversationId,
174
- payload: Buffer.alloc(0)
175
- };
176
- await connection.command((0, utils_1.ns)(`${db}.$cmd`), retrySaslContinueCmd, undefined);
177
- }
178
-
179
- function parsePayload(payload) {
180
- const payloadStr = payload.toString('utf8');
181
- const dict = {};
182
- const parts = payloadStr.split(',');
183
-
184
- for (let i = 0; i < parts.length; i++) {
185
- const valueParts = (parts[i].match(/^([^=]*)=(.*)$/) ?? []).slice(1);
186
- dict[valueParts[0]] = valueParts[1];
187
- }
188
-
189
- return dict;
190
- }
191
-
192
- function passwordDigest(username, password) {
193
- if (typeof username !== 'string') {
194
- throw new error_1.MongoInvalidArgumentError('Username must be a string');
195
- }
196
-
197
- if (typeof password !== 'string') {
198
- throw new error_1.MongoInvalidArgumentError('Password must be a string');
199
- }
200
-
201
- if (password.length === 0) {
202
- throw new error_1.MongoInvalidArgumentError('Password cannot be empty');
203
- }
204
-
205
- let md5;
206
-
207
- try {
208
- md5 = crypto.createHash('md5');
209
- } catch (err) {
210
- if (crypto.getFips()) {
211
- // This error is (slightly) more helpful than what comes from OpenSSL directly, e.g.
212
- // 'Error: error:060800C8:digital envelope routines:EVP_DigestInit_ex:disabled for FIPS'
213
- throw new Error('Auth mechanism SCRAM-SHA-1 is not supported in FIPS mode');
214
- }
215
-
216
- throw err;
217
- }
218
-
219
- md5.update(`${username}:mongo:${password}`, 'utf8');
220
- return md5.digest('hex');
221
- } // XOR two buffers
222
-
223
-
224
- function xor(a, b) {
225
- if (!Buffer.isBuffer(a)) {
226
- a = Buffer.from(a);
227
- }
228
-
229
- if (!Buffer.isBuffer(b)) {
230
- b = Buffer.from(b);
231
- }
232
-
233
- const length = Math.max(a.length, b.length);
234
- const res = [];
235
-
236
- for (let i = 0; i < length; i += 1) {
237
- res.push(a[i] ^ b[i]);
238
- }
239
-
240
- return Buffer.from(res).toString('base64');
241
- }
242
-
243
- function H(method, text) {
244
- return crypto.createHash(method).update(text).digest();
245
- }
246
-
247
- function HMAC(method, key, text) {
248
- return crypto.createHmac(method, key).update(text).digest();
249
- }
250
-
251
- let _hiCache = {};
252
- let _hiCacheCount = 0;
253
-
254
- function _hiCachePurge() {
255
- _hiCache = {};
256
- _hiCacheCount = 0;
257
- }
258
-
259
- const hiLengthMap = {
260
- sha256: 32,
261
- sha1: 20
262
- };
263
-
264
- function HI(data, salt, iterations, cryptoMethod) {
265
- // omit the work if already generated
266
- const key = [data, salt.toString('base64'), iterations].join('_');
267
-
268
- if (_hiCache[key] != null) {
269
- return _hiCache[key];
270
- } // generate the salt
271
-
272
-
273
- const saltedData = crypto.pbkdf2Sync(data, salt, iterations, hiLengthMap[cryptoMethod], cryptoMethod); // cache a copy to speed up the next lookup, but prevent unbounded cache growth
274
-
275
- if (_hiCacheCount >= 200) {
276
- _hiCachePurge();
277
- }
278
-
279
- _hiCache[key] = saltedData;
280
- _hiCacheCount += 1;
281
- return saltedData;
282
- }
283
-
284
- function compareDigest(lhs, rhs) {
285
- if (lhs.length !== rhs.length) {
286
- return false;
287
- }
288
-
289
- if (typeof crypto.timingSafeEqual === 'function') {
290
- return crypto.timingSafeEqual(lhs, rhs);
291
- }
292
-
293
- let result = 0;
294
-
295
- for (let i = 0; i < lhs.length; i++) {
296
- result |= lhs[i] ^ rhs[i];
297
- }
298
-
299
- return result === 0;
300
- }
301
-
302
- class ScramSHA1 extends ScramSHA {
303
- constructor() {
304
- super('sha1');
305
- }
306
-
307
- }
308
-
309
- exports.ScramSHA1 = ScramSHA1;
310
-
311
- class ScramSHA256 extends ScramSHA {
312
- constructor() {
313
- super('sha256');
314
- }
315
-
316
- }
317
-
318
- exports.ScramSHA256 = ScramSHA256;
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.X509 = void 0;
7
-
8
- const error_1 = require("../../error");
9
-
10
- const utils_1 = require("../../utils");
11
-
12
- const auth_provider_1 = require("./auth_provider");
13
-
14
- class X509 extends auth_provider_1.AuthProvider {
15
- async prepare(handshakeDoc, authContext) {
16
- const {
17
- credentials
18
- } = authContext;
19
-
20
- if (!credentials) {
21
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
22
- }
23
-
24
- return { ...handshakeDoc,
25
- speculativeAuthenticate: x509AuthenticateCommand(credentials)
26
- };
27
- }
28
-
29
- async auth(authContext) {
30
- const connection = authContext.connection;
31
- const credentials = authContext.credentials;
32
-
33
- if (!credentials) {
34
- throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
35
- }
36
-
37
- const response = authContext.response;
38
-
39
- if (response?.speculativeAuthenticate) {
40
- return;
41
- }
42
-
43
- await connection.command((0, utils_1.ns)('$external.$cmd'), x509AuthenticateCommand(credentials), undefined);
44
- }
45
-
46
- }
47
-
48
- exports.X509 = X509;
49
-
50
- function x509AuthenticateCommand(credentials) {
51
- const command = {
52
- authenticate: 1,
53
- mechanism: 'MONGODB-X509'
54
- };
55
-
56
- if (credentials.username) {
57
- command.user = credentials.username;
58
- }
59
-
60
- return command;
61
- }
@@ -1,266 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SENSITIVE_COMMANDS = exports.CommandFailedEvent = exports.CommandSucceededEvent = exports.CommandStartedEvent = void 0;
7
-
8
- const constants_1 = require("../constants");
9
-
10
- const utils_1 = require("../utils");
11
-
12
- const commands_1 = require("./commands");
13
- /**
14
- * An event indicating the start of a given command
15
- * @public
16
- * @category Event
17
- */
18
-
19
-
20
- class CommandStartedEvent {
21
- /**
22
- * Create a started event
23
- *
24
- * @internal
25
- * @param pool - the pool that originated the command
26
- * @param command - the command
27
- */
28
- constructor(connection, command, serverConnectionId) {
29
- /** @internal */
30
- this.name = constants_1.COMMAND_STARTED;
31
- const cmd = extractCommand(command);
32
- const commandName = extractCommandName(cmd);
33
- const {
34
- address,
35
- connectionId,
36
- serviceId
37
- } = extractConnectionDetails(connection); // TODO: remove in major revision, this is not spec behavior
38
-
39
- if (exports.SENSITIVE_COMMANDS.has(commandName)) {
40
- this.commandObj = {};
41
- this.commandObj[commandName] = true;
42
- }
43
-
44
- this.address = address;
45
- this.connectionId = connectionId;
46
- this.serviceId = serviceId;
47
- this.requestId = command.requestId;
48
- this.databaseName = command.databaseName;
49
- this.commandName = commandName;
50
- this.command = maybeRedact(commandName, cmd, cmd);
51
- this.serverConnectionId = serverConnectionId;
52
- }
53
- /* @internal */
54
-
55
-
56
- get hasServiceId() {
57
- return !!this.serviceId;
58
- }
59
-
60
- }
61
-
62
- exports.CommandStartedEvent = CommandStartedEvent;
63
- /**
64
- * An event indicating the success of a given command
65
- * @public
66
- * @category Event
67
- */
68
-
69
- class CommandSucceededEvent {
70
- /**
71
- * Create a succeeded event
72
- *
73
- * @internal
74
- * @param pool - the pool that originated the command
75
- * @param command - the command
76
- * @param reply - the reply for this command from the server
77
- * @param started - a high resolution tuple timestamp of when the command was first sent, to calculate duration
78
- */
79
- constructor(connection, command, reply, started, serverConnectionId) {
80
- /** @internal */
81
- this.name = constants_1.COMMAND_SUCCEEDED;
82
- const cmd = extractCommand(command);
83
- const commandName = extractCommandName(cmd);
84
- const {
85
- address,
86
- connectionId,
87
- serviceId
88
- } = extractConnectionDetails(connection);
89
- this.address = address;
90
- this.connectionId = connectionId;
91
- this.serviceId = serviceId;
92
- this.requestId = command.requestId;
93
- this.commandName = commandName;
94
- this.duration = (0, utils_1.calculateDurationInMs)(started);
95
- this.reply = maybeRedact(commandName, cmd, extractReply(reply));
96
- this.serverConnectionId = serverConnectionId;
97
- }
98
- /* @internal */
99
-
100
-
101
- get hasServiceId() {
102
- return !!this.serviceId;
103
- }
104
-
105
- }
106
-
107
- exports.CommandSucceededEvent = CommandSucceededEvent;
108
- /**
109
- * An event indicating the failure of a given command
110
- * @public
111
- * @category Event
112
- */
113
-
114
- class CommandFailedEvent {
115
- /**
116
- * Create a failure event
117
- *
118
- * @internal
119
- * @param pool - the pool that originated the command
120
- * @param command - the command
121
- * @param error - the generated error or a server error response
122
- * @param started - a high resolution tuple timestamp of when the command was first sent, to calculate duration
123
- */
124
- constructor(connection, command, error, started, serverConnectionId) {
125
- /** @internal */
126
- this.name = constants_1.COMMAND_FAILED;
127
- const cmd = extractCommand(command);
128
- const commandName = extractCommandName(cmd);
129
- const {
130
- address,
131
- connectionId,
132
- serviceId
133
- } = extractConnectionDetails(connection);
134
- this.address = address;
135
- this.connectionId = connectionId;
136
- this.serviceId = serviceId;
137
- this.requestId = command.requestId;
138
- this.commandName = commandName;
139
- this.duration = (0, utils_1.calculateDurationInMs)(started);
140
- this.failure = maybeRedact(commandName, cmd, error);
141
- this.serverConnectionId = serverConnectionId;
142
- }
143
- /* @internal */
144
-
145
-
146
- get hasServiceId() {
147
- return !!this.serviceId;
148
- }
149
-
150
- }
151
-
152
- exports.CommandFailedEvent = CommandFailedEvent;
153
- /**
154
- * Commands that we want to redact because of the sensitive nature of their contents
155
- * @internal
156
- */
157
-
158
- exports.SENSITIVE_COMMANDS = new Set(['authenticate', 'saslStart', 'saslContinue', 'getnonce', 'createUser', 'updateUser', 'copydbgetnonce', 'copydbsaslstart', 'copydb']);
159
- const HELLO_COMMANDS = new Set(['hello', constants_1.LEGACY_HELLO_COMMAND, constants_1.LEGACY_HELLO_COMMAND_CAMEL_CASE]); // helper methods
160
-
161
- const extractCommandName = commandDoc => Object.keys(commandDoc)[0];
162
-
163
- const collectionName = command => command.ns.split('.')[1];
164
-
165
- const maybeRedact = (commandName, commandDoc, result) => exports.SENSITIVE_COMMANDS.has(commandName) || HELLO_COMMANDS.has(commandName) && commandDoc.speculativeAuthenticate ? {} : result;
166
-
167
- const LEGACY_FIND_QUERY_MAP = {
168
- $query: 'filter',
169
- $orderby: 'sort',
170
- $hint: 'hint',
171
- $comment: 'comment',
172
- $maxScan: 'maxScan',
173
- $max: 'max',
174
- $min: 'min',
175
- $returnKey: 'returnKey',
176
- $showDiskLoc: 'showRecordId',
177
- $maxTimeMS: 'maxTimeMS',
178
- $snapshot: 'snapshot'
179
- };
180
- const LEGACY_FIND_OPTIONS_MAP = {
181
- numberToSkip: 'skip',
182
- numberToReturn: 'batchSize',
183
- returnFieldSelector: 'projection'
184
- };
185
- /** Extract the actual command from the query, possibly up-converting if it's a legacy format */
186
-
187
- function extractCommand(command) {
188
- if (command instanceof commands_1.OpMsgRequest) {
189
- const cmd = { ...command.command
190
- }; // For OP_MSG with payload type 1 we need to pull the documents
191
- // array out of the document sequence for monitoring.
192
-
193
- if (cmd.ops instanceof commands_1.DocumentSequence) {
194
- cmd.ops = cmd.ops.documents;
195
- }
196
-
197
- if (cmd.nsInfo instanceof commands_1.DocumentSequence) {
198
- cmd.nsInfo = cmd.nsInfo.documents;
199
- }
200
-
201
- return cmd;
202
- }
203
-
204
- if (command.query?.$query) {
205
- let result;
206
-
207
- if (command.ns === 'admin.$cmd') {
208
- // up-convert legacy command
209
- result = Object.assign({}, command.query.$query);
210
- } else {
211
- // up-convert legacy find command
212
- result = {
213
- find: collectionName(command)
214
- };
215
- Object.keys(LEGACY_FIND_QUERY_MAP).forEach(key => {
216
- if (command.query[key] != null) {
217
- result[LEGACY_FIND_QUERY_MAP[key]] = { ...command.query[key]
218
- };
219
- }
220
- });
221
- }
222
-
223
- Object.keys(LEGACY_FIND_OPTIONS_MAP).forEach(key => {
224
- const legacyKey = key;
225
-
226
- if (command[legacyKey] != null) {
227
- result[LEGACY_FIND_OPTIONS_MAP[legacyKey]] = command[legacyKey];
228
- }
229
- });
230
- return result;
231
- }
232
-
233
- let clonedQuery = {};
234
- const clonedCommand = { ...command
235
- };
236
-
237
- if (command.query) {
238
- clonedQuery = { ...command.query
239
- };
240
- clonedCommand.query = clonedQuery;
241
- }
242
-
243
- return command.query ? clonedQuery : clonedCommand;
244
- }
245
-
246
- function extractReply(reply) {
247
- if (!reply) {
248
- return reply;
249
- }
250
-
251
- return reply.result ? reply.result : reply;
252
- }
253
-
254
- function extractConnectionDetails(connection) {
255
- let connectionId;
256
-
257
- if ('id' in connection) {
258
- connectionId = connection.id;
259
- }
260
-
261
- return {
262
- address: connection.address,
263
- serviceId: connection.serviceId,
264
- connectionId
265
- };
266
- }