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,463 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Server = void 0;
7
-
8
- const connection_1 = require("../cmap/connection");
9
-
10
- const connection_pool_1 = require("../cmap/connection_pool");
11
-
12
- const errors_1 = require("../cmap/errors");
13
-
14
- const constants_1 = require("../constants");
15
-
16
- const error_1 = require("../error");
17
-
18
- const mongo_types_1 = require("../mongo_types");
19
-
20
- const transactions_1 = require("../transactions");
21
-
22
- const utils_1 = require("../utils");
23
-
24
- const write_concern_1 = require("../write_concern");
25
-
26
- const common_1 = require("./common");
27
-
28
- const monitor_1 = require("./monitor");
29
-
30
- const server_description_1 = require("./server_description");
31
-
32
- const stateTransition = (0, utils_1.makeStateMachine)({
33
- [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, common_1.STATE_CONNECTING],
34
- [common_1.STATE_CONNECTING]: [common_1.STATE_CONNECTING, common_1.STATE_CLOSING, common_1.STATE_CONNECTED, common_1.STATE_CLOSED],
35
- [common_1.STATE_CONNECTED]: [common_1.STATE_CONNECTED, common_1.STATE_CLOSING, common_1.STATE_CLOSED],
36
- [common_1.STATE_CLOSING]: [common_1.STATE_CLOSING, common_1.STATE_CLOSED]
37
- });
38
- /** @internal */
39
-
40
- class Server extends mongo_types_1.TypedEventEmitter {
41
- /**
42
- * Create a server
43
- */
44
- constructor(topology, description, options) {
45
- super();
46
- this.on('error', utils_1.noop);
47
- this.serverApi = options.serverApi;
48
- const poolOptions = {
49
- hostAddress: description.hostAddress,
50
- ...options
51
- };
52
- this.topology = topology;
53
- this.pool = new connection_pool_1.ConnectionPool(this, poolOptions);
54
- this.s = {
55
- description,
56
- options,
57
- state: common_1.STATE_CLOSED,
58
- operationCount: 0
59
- };
60
-
61
- for (const event of [...constants_1.CMAP_EVENTS, ...constants_1.APM_EVENTS]) {
62
- this.pool.on(event, e => this.emit(event, e));
63
- }
64
-
65
- this.pool.on(connection_1.Connection.CLUSTER_TIME_RECEIVED, clusterTime => {
66
- this.clusterTime = clusterTime;
67
- });
68
-
69
- if (this.loadBalanced) {
70
- this.monitor = null; // monitoring is disabled in load balancing mode
71
-
72
- return;
73
- } // create the monitor
74
-
75
-
76
- this.monitor = new monitor_1.Monitor(this, this.s.options);
77
-
78
- for (const event of constants_1.HEARTBEAT_EVENTS) {
79
- this.monitor.on(event, e => this.emit(event, e));
80
- }
81
-
82
- this.monitor.on('resetServer', error => markServerUnknown(this, error));
83
- this.monitor.on(Server.SERVER_HEARTBEAT_SUCCEEDED, event => {
84
- this.emit(Server.DESCRIPTION_RECEIVED, new server_description_1.ServerDescription(this.description.hostAddress, event.reply, {
85
- roundTripTime: this.monitor?.roundTripTime,
86
- minRoundTripTime: this.monitor?.minRoundTripTime
87
- }));
88
-
89
- if (this.s.state === common_1.STATE_CONNECTING) {
90
- stateTransition(this, common_1.STATE_CONNECTED);
91
- this.emit(Server.CONNECT, this);
92
- }
93
- });
94
- }
95
-
96
- get clusterTime() {
97
- return this.topology.clusterTime;
98
- }
99
-
100
- set clusterTime(clusterTime) {
101
- this.topology.clusterTime = clusterTime;
102
- }
103
-
104
- get description() {
105
- return this.s.description;
106
- }
107
-
108
- get name() {
109
- return this.s.description.address;
110
- }
111
-
112
- get autoEncrypter() {
113
- if (this.s.options && this.s.options.autoEncrypter) {
114
- return this.s.options.autoEncrypter;
115
- }
116
-
117
- return;
118
- }
119
-
120
- get loadBalanced() {
121
- return this.topology.description.type === common_1.TopologyType.LoadBalanced;
122
- }
123
- /**
124
- * Initiate server connect
125
- */
126
-
127
-
128
- connect() {
129
- if (this.s.state !== common_1.STATE_CLOSED) {
130
- return;
131
- }
132
-
133
- stateTransition(this, common_1.STATE_CONNECTING); // If in load balancer mode we automatically set the server to
134
- // a load balancer. It never transitions out of this state and
135
- // has no monitor.
136
-
137
- if (!this.loadBalanced) {
138
- this.monitor?.connect();
139
- } else {
140
- stateTransition(this, common_1.STATE_CONNECTED);
141
- this.emit(Server.CONNECT, this);
142
- }
143
- }
144
-
145
- closeCheckedOutConnections() {
146
- return this.pool.closeCheckedOutConnections();
147
- }
148
- /** Destroy the server connection */
149
-
150
-
151
- close() {
152
- if (this.s.state === common_1.STATE_CLOSED) {
153
- return;
154
- }
155
-
156
- stateTransition(this, common_1.STATE_CLOSING);
157
-
158
- if (!this.loadBalanced) {
159
- this.monitor?.close();
160
- }
161
-
162
- this.pool.close();
163
- stateTransition(this, common_1.STATE_CLOSED);
164
- this.emit('closed');
165
- }
166
- /**
167
- * Immediately schedule monitoring of this server. If there already an attempt being made
168
- * this will be a no-op.
169
- */
170
-
171
-
172
- requestCheck() {
173
- if (!this.loadBalanced) {
174
- this.monitor?.requestCheck();
175
- }
176
- }
177
-
178
- async command(ns, cmd, { ...options
179
- }, responseType) {
180
- if (ns.db == null || typeof ns === 'string') {
181
- throw new error_1.MongoInvalidArgumentError('Namespace must not be a string');
182
- }
183
-
184
- if (this.s.state === common_1.STATE_CLOSING || this.s.state === common_1.STATE_CLOSED) {
185
- throw new error_1.MongoServerClosedError();
186
- }
187
-
188
- options.directConnection = this.topology.s.options.directConnection; // There are cases where we need to flag the read preference not to get sent in
189
- // the command, such as pre-5.0 servers attempting to perform an aggregate write
190
- // with a non-primary read preference. In this case the effective read preference
191
- // (primary) is not the same as the provided and must be removed completely.
192
-
193
- if (options.omitReadPreference) {
194
- delete options.readPreference;
195
- }
196
-
197
- if (this.description.iscryptd) {
198
- options.omitMaxTimeMS = true;
199
- }
200
-
201
- const session = options.session;
202
- let conn = session?.pinnedConnection;
203
- this.incrementOperationCount();
204
-
205
- if (conn == null) {
206
- try {
207
- conn = await this.pool.checkOut(options);
208
-
209
- if (this.loadBalanced && isPinnableCommand(cmd, session)) {
210
- session?.pin(conn);
211
- }
212
- } catch (checkoutError) {
213
- this.decrementOperationCount();
214
- if (!(checkoutError instanceof errors_1.PoolClearedError)) this.handleError(checkoutError);
215
- throw checkoutError;
216
- }
217
- }
218
-
219
- let reauthPromise = null;
220
-
221
- try {
222
- try {
223
- const res = await conn.command(ns, cmd, options, responseType);
224
- (0, write_concern_1.throwIfWriteConcernError)(res);
225
- return res;
226
- } catch (commandError) {
227
- throw this.decorateCommandError(conn, cmd, options, commandError);
228
- }
229
- } catch (operationError) {
230
- if (operationError instanceof error_1.MongoError && operationError.code === error_1.MONGODB_ERROR_CODES.Reauthenticate) {
231
- reauthPromise = this.pool.reauthenticate(conn);
232
- reauthPromise.then(undefined, error => {
233
- reauthPromise = null;
234
- (0, utils_1.squashError)(error);
235
- });
236
- await (0, utils_1.abortable)(reauthPromise, options);
237
- reauthPromise = null; // only reachable if reauth succeeds
238
-
239
- try {
240
- const res = await conn.command(ns, cmd, options, responseType);
241
- (0, write_concern_1.throwIfWriteConcernError)(res);
242
- return res;
243
- } catch (commandError) {
244
- throw this.decorateCommandError(conn, cmd, options, commandError);
245
- }
246
- } else {
247
- throw operationError;
248
- }
249
- } finally {
250
- this.decrementOperationCount();
251
-
252
- if (session?.pinnedConnection !== conn) {
253
- if (reauthPromise != null) {
254
- // The reauth promise only exists if it hasn't thrown.
255
- const checkBackIn = () => {
256
- this.pool.checkIn(conn);
257
- };
258
-
259
- void reauthPromise.then(checkBackIn, checkBackIn);
260
- } else {
261
- this.pool.checkIn(conn);
262
- }
263
- }
264
- }
265
- }
266
- /**
267
- * Handle SDAM error
268
- * @internal
269
- */
270
-
271
-
272
- handleError(error, connection) {
273
- if (!(error instanceof error_1.MongoError)) {
274
- return;
275
- }
276
-
277
- const isStaleError = error.connectionGeneration && error.connectionGeneration < this.pool.generation;
278
-
279
- if (isStaleError) {
280
- return;
281
- }
282
-
283
- const isNetworkNonTimeoutError = error instanceof error_1.MongoNetworkError && !(error instanceof error_1.MongoNetworkTimeoutError);
284
- const isNetworkTimeoutBeforeHandshakeError = error instanceof error_1.MongoNetworkError && error.beforeHandshake;
285
- const isAuthHandshakeError = error.hasErrorLabel(error_1.MongoErrorLabel.HandshakeError);
286
-
287
- if (isNetworkNonTimeoutError || isNetworkTimeoutBeforeHandshakeError || isAuthHandshakeError) {
288
- // In load balanced mode we never mark the server as unknown and always
289
- // clear for the specific service id.
290
- if (!this.loadBalanced) {
291
- error.addErrorLabel(error_1.MongoErrorLabel.ResetPool);
292
- markServerUnknown(this, error);
293
- } else if (connection) {
294
- this.pool.clear({
295
- serviceId: connection.serviceId
296
- });
297
- }
298
- } else {
299
- if ((0, error_1.isSDAMUnrecoverableError)(error)) {
300
- if (shouldHandleStateChangeError(this, error)) {
301
- const shouldClearPool = (0, utils_1.maxWireVersion)(this) <= 7 || (0, error_1.isNodeShuttingDownError)(error);
302
-
303
- if (this.loadBalanced && connection && shouldClearPool) {
304
- this.pool.clear({
305
- serviceId: connection.serviceId
306
- });
307
- }
308
-
309
- if (!this.loadBalanced) {
310
- if (shouldClearPool) {
311
- error.addErrorLabel(error_1.MongoErrorLabel.ResetPool);
312
- }
313
-
314
- markServerUnknown(this, error);
315
- process.nextTick(() => this.requestCheck());
316
- }
317
- }
318
- }
319
- }
320
- }
321
- /**
322
- * Ensure that error is properly decorated and internal state is updated before throwing
323
- * @internal
324
- */
325
-
326
-
327
- decorateCommandError(connection, cmd, options, error) {
328
- if (typeof error !== 'object' || error == null || !('name' in error)) {
329
- throw new error_1.MongoRuntimeError('An unexpected error type: ' + typeof error);
330
- }
331
-
332
- if (error.name === 'AbortError' && 'cause' in error && error.cause instanceof error_1.MongoError) {
333
- error = error.cause;
334
- }
335
-
336
- if (!(error instanceof error_1.MongoError)) {
337
- // Node.js or some other error we have not special handling for
338
- return error;
339
- }
340
-
341
- if (connectionIsStale(this.pool, connection)) {
342
- return error;
343
- }
344
-
345
- const session = options?.session;
346
-
347
- if (error instanceof error_1.MongoNetworkError) {
348
- if (session && !session.hasEnded && session.serverSession) {
349
- session.serverSession.isDirty = true;
350
- } // inActiveTransaction check handles commit and abort.
351
-
352
-
353
- if (inActiveTransaction(session, cmd) && !error.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
354
- error.addErrorLabel(error_1.MongoErrorLabel.TransientTransactionError);
355
- }
356
-
357
- if ((isRetryableWritesEnabled(this.topology) || (0, transactions_1.isTransactionCommand)(cmd)) && (0, utils_1.supportsRetryableWrites)(this) && !inActiveTransaction(session, cmd)) {
358
- error.addErrorLabel(error_1.MongoErrorLabel.RetryableWriteError);
359
- }
360
- } else {
361
- if ((isRetryableWritesEnabled(this.topology) || (0, transactions_1.isTransactionCommand)(cmd)) && (0, error_1.needsRetryableWriteLabel)(error, (0, utils_1.maxWireVersion)(this), this.description.type) && !inActiveTransaction(session, cmd)) {
362
- error.addErrorLabel(error_1.MongoErrorLabel.RetryableWriteError);
363
- }
364
- }
365
-
366
- if (session && session.isPinned && error.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
367
- session.unpin({
368
- force: true
369
- });
370
- }
371
-
372
- this.handleError(error, connection);
373
- return error;
374
- }
375
- /**
376
- * Decrement the operation count, returning the new count.
377
- */
378
-
379
-
380
- decrementOperationCount() {
381
- return this.s.operationCount -= 1;
382
- }
383
- /**
384
- * Increment the operation count, returning the new count.
385
- */
386
-
387
-
388
- incrementOperationCount() {
389
- return this.s.operationCount += 1;
390
- }
391
-
392
- }
393
-
394
- exports.Server = Server;
395
- /** @event */
396
-
397
- Server.SERVER_HEARTBEAT_STARTED = constants_1.SERVER_HEARTBEAT_STARTED;
398
- /** @event */
399
-
400
- Server.SERVER_HEARTBEAT_SUCCEEDED = constants_1.SERVER_HEARTBEAT_SUCCEEDED;
401
- /** @event */
402
-
403
- Server.SERVER_HEARTBEAT_FAILED = constants_1.SERVER_HEARTBEAT_FAILED;
404
- /** @event */
405
-
406
- Server.CONNECT = constants_1.CONNECT;
407
- /** @event */
408
-
409
- Server.DESCRIPTION_RECEIVED = constants_1.DESCRIPTION_RECEIVED;
410
- /** @event */
411
-
412
- Server.CLOSED = constants_1.CLOSED;
413
- /** @event */
414
-
415
- Server.ENDED = constants_1.ENDED;
416
-
417
- function markServerUnknown(server, error) {
418
- // Load balancer servers can never be marked unknown.
419
- if (server.loadBalanced) {
420
- return;
421
- }
422
-
423
- if (error instanceof error_1.MongoNetworkError && !(error instanceof error_1.MongoNetworkTimeoutError)) {
424
- server.monitor?.reset();
425
- }
426
-
427
- server.emit(Server.DESCRIPTION_RECEIVED, new server_description_1.ServerDescription(server.description.hostAddress, undefined, {
428
- error
429
- }));
430
- }
431
-
432
- function isPinnableCommand(cmd, session) {
433
- if (session) {
434
- return session.inTransaction() || session.transaction.isCommitted && 'commitTransaction' in cmd || 'aggregate' in cmd || 'find' in cmd || 'getMore' in cmd || 'listCollections' in cmd || 'listIndexes' in cmd || 'bulkWrite' in cmd;
435
- }
436
-
437
- return false;
438
- }
439
-
440
- function connectionIsStale(pool, connection) {
441
- if (connection.serviceId) {
442
- return connection.generation !== pool.serviceGenerations.get(connection.serviceId.toHexString());
443
- }
444
-
445
- return connection.generation !== pool.generation;
446
- }
447
-
448
- function shouldHandleStateChangeError(server, err) {
449
- const etv = err.topologyVersion;
450
- const stv = server.description.topologyVersion;
451
- return (0, server_description_1.compareTopologyVersion)(stv, etv) < 0;
452
- }
453
-
454
- function inActiveTransaction(session, cmd) {
455
- return session && session.inTransaction() && !(0, transactions_1.isTransactionCommand)(cmd);
456
- }
457
- /** this checks the retryWrites option passed down from the client options, it
458
- * does not check if the server supports retryable writes */
459
-
460
-
461
- function isRetryableWritesEnabled(topology) {
462
- return topology.s.options.retryWrites !== false;
463
- }
@@ -1,196 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ServerDescription = void 0;
7
- exports.parseServerType = parseServerType;
8
- exports.compareTopologyVersion = compareTopologyVersion;
9
-
10
- const bson_1 = require("../bson");
11
-
12
- const error_1 = require("../error");
13
-
14
- const utils_1 = require("../utils");
15
-
16
- const common_1 = require("./common");
17
-
18
- const WRITABLE_SERVER_TYPES = new Set([common_1.ServerType.RSPrimary, common_1.ServerType.Standalone, common_1.ServerType.Mongos, common_1.ServerType.LoadBalancer]);
19
- const DATA_BEARING_SERVER_TYPES = new Set([common_1.ServerType.RSPrimary, common_1.ServerType.RSSecondary, common_1.ServerType.Mongos, common_1.ServerType.Standalone, common_1.ServerType.LoadBalancer]);
20
- /**
21
- * The client's view of a single server, based on the most recent hello outcome.
22
- *
23
- * Internal type, not meant to be directly instantiated
24
- * @public
25
- */
26
-
27
- class ServerDescription {
28
- /**
29
- * Create a ServerDescription
30
- * @internal
31
- *
32
- * @param address - The address of the server
33
- * @param hello - An optional hello response for this server
34
- */
35
- constructor(address, hello, options = {}) {
36
- if (address == null || address === '') {
37
- throw new error_1.MongoRuntimeError('ServerDescription must be provided with a non-empty address');
38
- }
39
-
40
- this.address = typeof address === 'string' ? utils_1.HostAddress.fromString(address).toString() // Use HostAddress to normalize
41
- : address.toString();
42
- this.type = parseServerType(hello, options);
43
- this.hosts = hello?.hosts?.map(host => host.toLowerCase()) ?? [];
44
- this.passives = hello?.passives?.map(host => host.toLowerCase()) ?? [];
45
- this.arbiters = hello?.arbiters?.map(host => host.toLowerCase()) ?? [];
46
- this.tags = hello?.tags ?? {};
47
- this.minWireVersion = hello?.minWireVersion ?? 0;
48
- this.maxWireVersion = hello?.maxWireVersion ?? 0;
49
- this.roundTripTime = options?.roundTripTime ?? -1;
50
- this.minRoundTripTime = options?.minRoundTripTime ?? 0;
51
- this.lastUpdateTime = (0, utils_1.now)();
52
- this.lastWriteDate = hello?.lastWrite?.lastWriteDate ?? 0; // NOTE: This actually builds the stack string instead of holding onto the getter and all its
53
- // associated references. This is done to prevent a memory leak.
54
-
55
- this.error = options.error ?? null;
56
- this.error?.stack; // TODO(NODE-2674): Preserve int64 sent from MongoDB
57
-
58
- this.topologyVersion = this.error?.topologyVersion ?? hello?.topologyVersion ?? null;
59
- this.setName = hello?.setName ?? null;
60
- this.setVersion = hello?.setVersion ?? null;
61
- this.electionId = hello?.electionId ?? null;
62
- this.logicalSessionTimeoutMinutes = hello?.logicalSessionTimeoutMinutes ?? null;
63
- this.maxMessageSizeBytes = hello?.maxMessageSizeBytes ?? null;
64
- this.maxWriteBatchSize = hello?.maxWriteBatchSize ?? null;
65
- this.maxBsonObjectSize = hello?.maxBsonObjectSize ?? null;
66
- this.primary = hello?.primary ?? null;
67
- this.me = hello?.me?.toLowerCase() ?? null;
68
- this.$clusterTime = hello?.$clusterTime ?? null;
69
- this.iscryptd = Boolean(hello?.iscryptd);
70
- }
71
-
72
- get hostAddress() {
73
- return utils_1.HostAddress.fromString(this.address);
74
- }
75
-
76
- get allHosts() {
77
- return this.hosts.concat(this.arbiters).concat(this.passives);
78
- }
79
- /** Is this server available for reads*/
80
-
81
-
82
- get isReadable() {
83
- return this.type === common_1.ServerType.RSSecondary || this.isWritable;
84
- }
85
- /** Is this server data bearing */
86
-
87
-
88
- get isDataBearing() {
89
- return DATA_BEARING_SERVER_TYPES.has(this.type);
90
- }
91
- /** Is this server available for writes */
92
-
93
-
94
- get isWritable() {
95
- return WRITABLE_SERVER_TYPES.has(this.type);
96
- }
97
-
98
- get host() {
99
- const chopLength = `:${this.port}`.length;
100
- return this.address.slice(0, -chopLength);
101
- }
102
-
103
- get port() {
104
- const port = this.address.split(':').pop();
105
- return port ? Number.parseInt(port, 10) : 27017;
106
- }
107
- /**
108
- * Determines if another `ServerDescription` is equal to this one per the rules defined in the SDAM specification.
109
- * @see https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.md
110
- */
111
-
112
-
113
- equals(other) {
114
- // Despite using the comparator that would determine a nullish topologyVersion as greater than
115
- // for equality we should only always perform direct equality comparison
116
- const topologyVersionsEqual = this.topologyVersion === other?.topologyVersion || compareTopologyVersion(this.topologyVersion, other?.topologyVersion) === 0;
117
- const electionIdsEqual = this.electionId != null && other?.electionId != null ? (0, utils_1.compareObjectId)(this.electionId, other.electionId) === 0 : this.electionId === other?.electionId;
118
- return other != null && other.iscryptd === this.iscryptd && (0, utils_1.errorStrictEqual)(this.error, other.error) && this.type === other.type && this.minWireVersion === other.minWireVersion && (0, utils_1.arrayStrictEqual)(this.hosts, other.hosts) && tagsStrictEqual(this.tags, other.tags) && this.setName === other.setName && this.setVersion === other.setVersion && electionIdsEqual && this.primary === other.primary && this.logicalSessionTimeoutMinutes === other.logicalSessionTimeoutMinutes && topologyVersionsEqual;
119
- }
120
-
121
- }
122
-
123
- exports.ServerDescription = ServerDescription; // Parses a `hello` message and determines the server type
124
-
125
- function parseServerType(hello, options) {
126
- if (options?.loadBalanced) {
127
- return common_1.ServerType.LoadBalancer;
128
- }
129
-
130
- if (!hello || !hello.ok) {
131
- return common_1.ServerType.Unknown;
132
- }
133
-
134
- if (hello.isreplicaset) {
135
- return common_1.ServerType.RSGhost;
136
- }
137
-
138
- if (hello.msg && hello.msg === 'isdbgrid') {
139
- return common_1.ServerType.Mongos;
140
- }
141
-
142
- if (hello.setName) {
143
- if (hello.hidden) {
144
- return common_1.ServerType.RSOther;
145
- } else if (hello.isWritablePrimary) {
146
- return common_1.ServerType.RSPrimary;
147
- } else if (hello.secondary) {
148
- return common_1.ServerType.RSSecondary;
149
- } else if (hello.arbiterOnly) {
150
- return common_1.ServerType.RSArbiter;
151
- } else {
152
- return common_1.ServerType.RSOther;
153
- }
154
- }
155
-
156
- return common_1.ServerType.Standalone;
157
- }
158
-
159
- function tagsStrictEqual(tags, tags2) {
160
- const tagsKeys = Object.keys(tags);
161
- const tags2Keys = Object.keys(tags2);
162
- return tagsKeys.length === tags2Keys.length && tagsKeys.every(key => tags2[key] === tags[key]);
163
- }
164
- /**
165
- * Compares two topology versions.
166
- *
167
- * 1. If the response topologyVersion is unset or the ServerDescription's
168
- * topologyVersion is null, the client MUST assume the response is more recent.
169
- * 1. If the response's topologyVersion.processId is not equal to the
170
- * ServerDescription's, the client MUST assume the response is more recent.
171
- * 1. If the response's topologyVersion.processId is equal to the
172
- * ServerDescription's, the client MUST use the counter field to determine
173
- * which topologyVersion is more recent.
174
- *
175
- * ```ts
176
- * currentTv < newTv === -1
177
- * currentTv === newTv === 0
178
- * currentTv > newTv === 1
179
- * ```
180
- */
181
-
182
-
183
- function compareTopologyVersion(currentTv, newTv) {
184
- if (currentTv == null || newTv == null) {
185
- return -1;
186
- }
187
-
188
- if (!currentTv.processId.equals(newTv.processId)) {
189
- return -1;
190
- } // TODO(NODE-2674): Preserve int64 sent from MongoDB
191
-
192
-
193
- const currentCounter = typeof currentTv.counter === 'bigint' ? bson_1.Long.fromBigInt(currentTv.counter) : bson_1.Long.isLong(currentTv.counter) ? currentTv.counter : bson_1.Long.fromNumber(currentTv.counter);
194
- const newCounter = typeof newTv.counter === 'bigint' ? bson_1.Long.fromBigInt(newTv.counter) : bson_1.Long.isLong(newTv.counter) ? newTv.counter : bson_1.Long.fromNumber(newTv.counter);
195
- return currentCounter.compare(newCounter);
196
- }