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,812 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MongoLogger = exports.MongoLoggableComponent = exports.SEVERITY_LEVEL_MAP = exports.DEFAULT_MAX_DOCUMENT_LENGTH = exports.SeverityLevel = void 0;
7
- exports.parseSeverityFromString = parseSeverityFromString;
8
- exports.createStdioLogger = createStdioLogger;
9
- exports.stringifyWithMaxLen = stringifyWithMaxLen;
10
- exports.defaultLogTransform = defaultLogTransform;
11
-
12
- const util_1 = require("util");
13
-
14
- const bson_1 = require("./bson");
15
-
16
- const constants_1 = require("./constants");
17
-
18
- const utils_1 = require("./utils");
19
- /**
20
- * @public
21
- * Severity levels align with unix syslog.
22
- * Most typical driver functions will log to debug.
23
- */
24
-
25
-
26
- exports.SeverityLevel = Object.freeze({
27
- EMERGENCY: 'emergency',
28
- ALERT: 'alert',
29
- CRITICAL: 'critical',
30
- ERROR: 'error',
31
- WARNING: 'warn',
32
- NOTICE: 'notice',
33
- INFORMATIONAL: 'info',
34
- DEBUG: 'debug',
35
- TRACE: 'trace',
36
- OFF: 'off'
37
- });
38
- /** @internal */
39
-
40
- exports.DEFAULT_MAX_DOCUMENT_LENGTH = 1000;
41
- /** @internal */
42
-
43
- class SeverityLevelMap extends Map {
44
- constructor(entries) {
45
- const newEntries = [];
46
-
47
- for (const [level, value] of entries) {
48
- newEntries.push([value, level]);
49
- }
50
-
51
- newEntries.push(...entries);
52
- super(newEntries);
53
- }
54
-
55
- getNumericSeverityLevel(severity) {
56
- return this.get(severity);
57
- }
58
-
59
- getSeverityLevelName(level) {
60
- return this.get(level);
61
- }
62
-
63
- }
64
- /** @internal */
65
-
66
-
67
- exports.SEVERITY_LEVEL_MAP = new SeverityLevelMap([[exports.SeverityLevel.OFF, -Infinity], [exports.SeverityLevel.EMERGENCY, 0], [exports.SeverityLevel.ALERT, 1], [exports.SeverityLevel.CRITICAL, 2], [exports.SeverityLevel.ERROR, 3], [exports.SeverityLevel.WARNING, 4], [exports.SeverityLevel.NOTICE, 5], [exports.SeverityLevel.INFORMATIONAL, 6], [exports.SeverityLevel.DEBUG, 7], [exports.SeverityLevel.TRACE, 8]]);
68
- /** @public */
69
-
70
- exports.MongoLoggableComponent = Object.freeze({
71
- COMMAND: 'command',
72
- TOPOLOGY: 'topology',
73
- SERVER_SELECTION: 'serverSelection',
74
- CONNECTION: 'connection',
75
- CLIENT: 'client'
76
- });
77
- /**
78
- * Parses a string as one of SeverityLevel
79
- * @internal
80
- *
81
- * @param s - the value to be parsed
82
- * @returns one of SeverityLevel if value can be parsed as such, otherwise null
83
- */
84
-
85
- function parseSeverityFromString(s) {
86
- const validSeverities = Object.values(exports.SeverityLevel);
87
- const lowerSeverity = s?.toLowerCase();
88
-
89
- if (lowerSeverity != null && validSeverities.includes(lowerSeverity)) {
90
- return lowerSeverity;
91
- }
92
-
93
- return null;
94
- }
95
- /** @internal */
96
-
97
-
98
- function createStdioLogger(stream) {
99
- return {
100
- write: (0, util_1.promisify)((log, cb) => {
101
- const logLine = (0, util_1.inspect)(log, {
102
- compact: true,
103
- breakLength: Infinity
104
- });
105
- stream.write(`${logLine}\n`, 'utf-8', cb);
106
- return;
107
- })
108
- };
109
- }
110
- /**
111
- * resolves the MONGODB_LOG_PATH and mongodbLogPath options from the environment and the
112
- * mongo client options respectively. The mongodbLogPath can be either 'stdout', 'stderr', a NodeJS
113
- * Writable or an object which has a `write` method with the signature:
114
- * ```ts
115
- * write(log: Log): void
116
- * ```
117
- *
118
- * @returns the MongoDBLogWritable object to write logs to
119
- */
120
-
121
-
122
- function resolveLogPath({
123
- MONGODB_LOG_PATH
124
- }, {
125
- mongodbLogPath
126
- }) {
127
- if (typeof mongodbLogPath === 'string' && /^stderr$/i.test(mongodbLogPath)) {
128
- return {
129
- mongodbLogPath: createStdioLogger(process.stderr),
130
- mongodbLogPathIsStdErr: true
131
- };
132
- }
133
-
134
- if (typeof mongodbLogPath === 'string' && /^stdout$/i.test(mongodbLogPath)) {
135
- return {
136
- mongodbLogPath: createStdioLogger(process.stdout),
137
- mongodbLogPathIsStdErr: false
138
- };
139
- }
140
-
141
- if (typeof mongodbLogPath === 'object' && typeof mongodbLogPath?.write === 'function') {
142
- return {
143
- mongodbLogPath: mongodbLogPath,
144
- mongodbLogPathIsStdErr: false
145
- };
146
- }
147
-
148
- if (MONGODB_LOG_PATH && /^stderr$/i.test(MONGODB_LOG_PATH)) {
149
- return {
150
- mongodbLogPath: createStdioLogger(process.stderr),
151
- mongodbLogPathIsStdErr: true
152
- };
153
- }
154
-
155
- if (MONGODB_LOG_PATH && /^stdout$/i.test(MONGODB_LOG_PATH)) {
156
- return {
157
- mongodbLogPath: createStdioLogger(process.stdout),
158
- mongodbLogPathIsStdErr: false
159
- };
160
- }
161
-
162
- return {
163
- mongodbLogPath: createStdioLogger(process.stderr),
164
- mongodbLogPathIsStdErr: true
165
- };
166
- }
167
-
168
- function resolveSeverityConfiguration(clientOption, environmentOption, defaultSeverity) {
169
- return parseSeverityFromString(clientOption) ?? parseSeverityFromString(environmentOption) ?? defaultSeverity;
170
- }
171
-
172
- function compareSeverity(s0, s1) {
173
- const s0Num = exports.SEVERITY_LEVEL_MAP.getNumericSeverityLevel(s0);
174
- const s1Num = exports.SEVERITY_LEVEL_MAP.getNumericSeverityLevel(s1);
175
- return s0Num < s1Num ? -1 : s0Num > s1Num ? 1 : 0;
176
- }
177
- /** @internal */
178
-
179
-
180
- function stringifyWithMaxLen(value, maxDocumentLength, options = {}) {
181
- let strToTruncate = '';
182
- let currentLength = 0;
183
-
184
- const maxDocumentLengthEnsurer = function maxDocumentLengthEnsurer(key, value) {
185
- if (currentLength >= maxDocumentLength) {
186
- return undefined;
187
- } // Account for root document
188
-
189
-
190
- if (key === '') {
191
- // Account for starting brace
192
- currentLength += 1;
193
- return value;
194
- } // +4 accounts for 2 quotation marks, colon and comma after value
195
- // Note that this potentially undercounts since it does not account for escape sequences which
196
- // will have an additional backslash added to them once passed through JSON.stringify.
197
-
198
-
199
- currentLength += key.length + 4;
200
- if (value == null) return value;
201
-
202
- switch (typeof value) {
203
- case 'string':
204
- // +2 accounts for quotes
205
- // Note that this potentially undercounts similarly to the key length calculation
206
- currentLength += value.length + 2;
207
- break;
208
-
209
- case 'number':
210
- case 'bigint':
211
- currentLength += String(value).length;
212
- break;
213
-
214
- case 'boolean':
215
- currentLength += value ? 4 : 5;
216
- break;
217
-
218
- case 'object':
219
- if ((0, utils_1.isUint8Array)(value)) {
220
- // '{"$binary":{"base64":"<base64 string>","subType":"XX"}}'
221
- // This is an estimate based on the fact that the base64 is approximately 1.33x the length of
222
- // the actual binary sequence https://en.wikipedia.org/wiki/Base64
223
- currentLength += 22 + value.byteLength + value.byteLength * 0.33 + 18 | 0;
224
- } else if ('_bsontype' in value) {
225
- const v = value;
226
-
227
- switch (v._bsontype) {
228
- case 'Int32':
229
- currentLength += String(v.value).length;
230
- break;
231
-
232
- case 'Double':
233
- // Account for representing integers as <value>.0
234
- currentLength += (v.value | 0) === v.value ? String(v.value).length + 2 : String(v.value).length;
235
- break;
236
-
237
- case 'Long':
238
- currentLength += v.toString().length;
239
- break;
240
-
241
- case 'ObjectId':
242
- // '{"$oid":"XXXXXXXXXXXXXXXXXXXXXXXX"}'
243
- currentLength += 35;
244
- break;
245
-
246
- case 'MaxKey':
247
- case 'MinKey':
248
- // '{"$maxKey":1}' or '{"$minKey":1}'
249
- currentLength += 13;
250
- break;
251
-
252
- case 'Binary':
253
- // '{"$binary":{"base64":"<base64 string>","subType":"XX"}}'
254
- // This is an estimate based on the fact that the base64 is approximately 1.33x the length of
255
- // the actual binary sequence https://en.wikipedia.org/wiki/Base64
256
- currentLength += 22 + value.position + value.position * 0.33 + 18 | 0;
257
- break;
258
-
259
- case 'Timestamp':
260
- // '{"$timestamp":{"t":<t>,"i":<i>}}'
261
- currentLength += 19 + String(v.t).length + 5 + String(v.i).length + 2;
262
- break;
263
-
264
- case 'Code':
265
- // '{"$code":"<code>"}' or '{"$code":"<code>","$scope":<scope>}'
266
- if (v.scope == null) {
267
- currentLength += v.code.length + 10 + 2;
268
- } else {
269
- // Ignoring actual scope object, so this undercounts by a significant amount
270
- currentLength += v.code.length + 10 + 11;
271
- }
272
-
273
- break;
274
-
275
- case 'BSONRegExp':
276
- // '{"$regularExpression":{"pattern":"<pattern>","options":"<options>"}}'
277
- currentLength += 34 + v.pattern.length + 13 + v.options.length + 3;
278
- break;
279
- }
280
- }
281
-
282
- }
283
-
284
- return value;
285
- };
286
-
287
- if (typeof value === 'string') {
288
- strToTruncate = value;
289
- } else if (typeof value === 'function') {
290
- strToTruncate = value.name;
291
- } else {
292
- try {
293
- if (maxDocumentLength !== 0) {
294
- strToTruncate = bson_1.EJSON.stringify(value, maxDocumentLengthEnsurer, 0, options);
295
- } else {
296
- strToTruncate = bson_1.EJSON.stringify(value, options);
297
- }
298
- } catch (e) {
299
- strToTruncate = `Extended JSON serialization failed with: ${e.message}`;
300
- }
301
- } // handle truncation that occurs in the middle of multi-byte codepoints
302
-
303
-
304
- if (maxDocumentLength !== 0 && strToTruncate.length > maxDocumentLength && strToTruncate.charCodeAt(maxDocumentLength - 1) !== strToTruncate.codePointAt(maxDocumentLength - 1)) {
305
- maxDocumentLength--;
306
-
307
- if (maxDocumentLength === 0) {
308
- return '';
309
- }
310
- }
311
-
312
- return maxDocumentLength !== 0 && strToTruncate.length > maxDocumentLength ? `${strToTruncate.slice(0, maxDocumentLength)}...` : strToTruncate;
313
- }
314
-
315
- function isLogConvertible(obj) {
316
- const objAsLogConvertible = obj; // eslint-disable-next-line no-restricted-syntax
317
-
318
- return objAsLogConvertible.toLog !== undefined && typeof objAsLogConvertible.toLog === 'function';
319
- }
320
-
321
- function attachServerSelectionFields(log, serverSelectionEvent, maxDocumentLength = exports.DEFAULT_MAX_DOCUMENT_LENGTH) {
322
- const {
323
- selector,
324
- operation,
325
- topologyDescription,
326
- message
327
- } = serverSelectionEvent;
328
- log.selector = stringifyWithMaxLen(selector, maxDocumentLength);
329
- log.operation = operation;
330
- log.topologyDescription = stringifyWithMaxLen(topologyDescription, maxDocumentLength);
331
- log.message = message;
332
- return log;
333
- }
334
-
335
- function attachCommandFields(log, commandEvent) {
336
- log.commandName = commandEvent.commandName;
337
- log.requestId = commandEvent.requestId;
338
- log.driverConnectionId = commandEvent.connectionId;
339
- const {
340
- host,
341
- port
342
- } = utils_1.HostAddress.fromString(commandEvent.address).toHostPort();
343
- log.serverHost = host;
344
- log.serverPort = port;
345
-
346
- if (commandEvent?.serviceId) {
347
- log.serviceId = commandEvent.serviceId.toHexString();
348
- }
349
-
350
- log.databaseName = commandEvent.databaseName;
351
- log.serverConnectionId = commandEvent.serverConnectionId;
352
- return log;
353
- }
354
-
355
- function attachConnectionFields(log, event) {
356
- const {
357
- host,
358
- port
359
- } = utils_1.HostAddress.fromString(event.address).toHostPort();
360
- log.serverHost = host;
361
- log.serverPort = port;
362
- return log;
363
- }
364
-
365
- function attachSDAMFields(log, sdamEvent) {
366
- log.topologyId = sdamEvent.topologyId;
367
- return log;
368
- }
369
-
370
- function attachServerHeartbeatFields(log, serverHeartbeatEvent) {
371
- const {
372
- awaited,
373
- connectionId
374
- } = serverHeartbeatEvent;
375
- log.awaited = awaited;
376
- log.driverConnectionId = serverHeartbeatEvent.connectionId;
377
- const {
378
- host,
379
- port
380
- } = utils_1.HostAddress.fromString(connectionId).toHostPort();
381
- log.serverHost = host;
382
- log.serverPort = port;
383
- return log;
384
- }
385
- /** @internal */
386
-
387
-
388
- function defaultLogTransform(logObject, maxDocumentLength = exports.DEFAULT_MAX_DOCUMENT_LENGTH) {
389
- let log = Object.create(null);
390
-
391
- switch (logObject.name) {
392
- case constants_1.SERVER_SELECTION_STARTED:
393
- log = attachServerSelectionFields(log, logObject, maxDocumentLength);
394
- return log;
395
-
396
- case constants_1.SERVER_SELECTION_FAILED:
397
- log = attachServerSelectionFields(log, logObject, maxDocumentLength);
398
- log.failure = logObject.failure?.message;
399
- return log;
400
-
401
- case constants_1.SERVER_SELECTION_SUCCEEDED:
402
- log = attachServerSelectionFields(log, logObject, maxDocumentLength);
403
- log.serverHost = logObject.serverHost;
404
- log.serverPort = logObject.serverPort;
405
- return log;
406
-
407
- case constants_1.WAITING_FOR_SUITABLE_SERVER:
408
- log = attachServerSelectionFields(log, logObject, maxDocumentLength);
409
- log.remainingTimeMS = logObject.remainingTimeMS;
410
- return log;
411
-
412
- case constants_1.COMMAND_STARTED:
413
- log = attachCommandFields(log, logObject);
414
- log.message = 'Command started';
415
- log.command = stringifyWithMaxLen(logObject.command, maxDocumentLength, {
416
- relaxed: true
417
- });
418
- log.databaseName = logObject.databaseName;
419
- return log;
420
-
421
- case constants_1.COMMAND_SUCCEEDED:
422
- log = attachCommandFields(log, logObject);
423
- log.message = 'Command succeeded';
424
- log.durationMS = logObject.duration;
425
- log.reply = stringifyWithMaxLen(logObject.reply, maxDocumentLength, {
426
- relaxed: true
427
- });
428
- return log;
429
-
430
- case constants_1.COMMAND_FAILED:
431
- log = attachCommandFields(log, logObject);
432
- log.message = 'Command failed';
433
- log.durationMS = logObject.duration;
434
- log.failure = logObject.failure?.message ?? '(redacted)';
435
- return log;
436
-
437
- case constants_1.CONNECTION_POOL_CREATED:
438
- log = attachConnectionFields(log, logObject);
439
- log.message = 'Connection pool created';
440
-
441
- if (logObject.options) {
442
- const {
443
- maxIdleTimeMS,
444
- minPoolSize,
445
- maxPoolSize,
446
- maxConnecting,
447
- waitQueueTimeoutMS
448
- } = logObject.options;
449
- log = { ...log,
450
- maxIdleTimeMS,
451
- minPoolSize,
452
- maxPoolSize,
453
- maxConnecting,
454
- waitQueueTimeoutMS
455
- };
456
- }
457
-
458
- return log;
459
-
460
- case constants_1.CONNECTION_POOL_READY:
461
- log = attachConnectionFields(log, logObject);
462
- log.message = 'Connection pool ready';
463
- return log;
464
-
465
- case constants_1.CONNECTION_POOL_CLEARED:
466
- log = attachConnectionFields(log, logObject);
467
- log.message = 'Connection pool cleared';
468
-
469
- if (logObject.serviceId?._bsontype === 'ObjectId') {
470
- log.serviceId = logObject.serviceId?.toHexString();
471
- }
472
-
473
- return log;
474
-
475
- case constants_1.CONNECTION_POOL_CLOSED:
476
- log = attachConnectionFields(log, logObject);
477
- log.message = 'Connection pool closed';
478
- return log;
479
-
480
- case constants_1.CONNECTION_CREATED:
481
- log = attachConnectionFields(log, logObject);
482
- log.message = 'Connection created';
483
- log.driverConnectionId = logObject.connectionId;
484
- return log;
485
-
486
- case constants_1.CONNECTION_READY:
487
- log = attachConnectionFields(log, logObject);
488
- log.message = 'Connection ready';
489
- log.driverConnectionId = logObject.connectionId;
490
- log.durationMS = logObject.durationMS;
491
- return log;
492
-
493
- case constants_1.CONNECTION_CLOSED:
494
- log = attachConnectionFields(log, logObject);
495
- log.message = 'Connection closed';
496
- log.driverConnectionId = logObject.connectionId;
497
-
498
- switch (logObject.reason) {
499
- case 'stale':
500
- log.reason = 'Connection became stale because the pool was cleared';
501
- break;
502
-
503
- case 'idle':
504
- log.reason = 'Connection has been available but unused for longer than the configured max idle time';
505
- break;
506
-
507
- case 'error':
508
- log.reason = 'An error occurred while using the connection';
509
-
510
- if (logObject.error) {
511
- log.error = logObject.error;
512
- }
513
-
514
- break;
515
-
516
- case 'poolClosed':
517
- log.reason = 'Connection pool was closed';
518
- break;
519
-
520
- default:
521
- log.reason = `Unknown close reason: ${logObject.reason}`;
522
- }
523
-
524
- return log;
525
-
526
- case constants_1.CONNECTION_CHECK_OUT_STARTED:
527
- log = attachConnectionFields(log, logObject);
528
- log.message = 'Connection checkout started';
529
- return log;
530
-
531
- case constants_1.CONNECTION_CHECK_OUT_FAILED:
532
- log = attachConnectionFields(log, logObject);
533
- log.message = 'Connection checkout failed';
534
-
535
- switch (logObject.reason) {
536
- case 'poolClosed':
537
- log.reason = 'Connection pool was closed';
538
- break;
539
-
540
- case 'timeout':
541
- log.reason = 'Wait queue timeout elapsed without a connection becoming available';
542
- break;
543
-
544
- case 'connectionError':
545
- log.reason = 'An error occurred while trying to establish a new connection';
546
-
547
- if (logObject.error) {
548
- log.error = logObject.error;
549
- }
550
-
551
- break;
552
-
553
- default:
554
- log.reason = `Unknown close reason: ${logObject.reason}`;
555
- }
556
-
557
- log.durationMS = logObject.durationMS;
558
- return log;
559
-
560
- case constants_1.CONNECTION_CHECKED_OUT:
561
- log = attachConnectionFields(log, logObject);
562
- log.message = 'Connection checked out';
563
- log.driverConnectionId = logObject.connectionId;
564
- log.durationMS = logObject.durationMS;
565
- return log;
566
-
567
- case constants_1.CONNECTION_CHECKED_IN:
568
- log = attachConnectionFields(log, logObject);
569
- log.message = 'Connection checked in';
570
- log.driverConnectionId = logObject.connectionId;
571
- return log;
572
-
573
- case constants_1.SERVER_OPENING:
574
- log = attachSDAMFields(log, logObject);
575
- log = attachConnectionFields(log, logObject);
576
- log.message = 'Starting server monitoring';
577
- return log;
578
-
579
- case constants_1.SERVER_CLOSED:
580
- log = attachSDAMFields(log, logObject);
581
- log = attachConnectionFields(log, logObject);
582
- log.message = 'Stopped server monitoring';
583
- return log;
584
-
585
- case constants_1.SERVER_HEARTBEAT_STARTED:
586
- log = attachSDAMFields(log, logObject);
587
- log = attachServerHeartbeatFields(log, logObject);
588
- log.message = 'Server heartbeat started';
589
- return log;
590
-
591
- case constants_1.SERVER_HEARTBEAT_SUCCEEDED:
592
- log = attachSDAMFields(log, logObject);
593
- log = attachServerHeartbeatFields(log, logObject);
594
- log.message = 'Server heartbeat succeeded';
595
- log.durationMS = logObject.duration;
596
- log.serverConnectionId = logObject.serverConnectionId;
597
- log.reply = stringifyWithMaxLen(logObject.reply, maxDocumentLength, {
598
- relaxed: true
599
- });
600
- return log;
601
-
602
- case constants_1.SERVER_HEARTBEAT_FAILED:
603
- log = attachSDAMFields(log, logObject);
604
- log = attachServerHeartbeatFields(log, logObject);
605
- log.message = 'Server heartbeat failed';
606
- log.durationMS = logObject.duration;
607
- log.failure = logObject.failure?.message;
608
- return log;
609
-
610
- case constants_1.TOPOLOGY_OPENING:
611
- log = attachSDAMFields(log, logObject);
612
- log.message = 'Starting topology monitoring';
613
- return log;
614
-
615
- case constants_1.TOPOLOGY_CLOSED:
616
- log = attachSDAMFields(log, logObject);
617
- log.message = 'Stopped topology monitoring';
618
- return log;
619
-
620
- case constants_1.TOPOLOGY_DESCRIPTION_CHANGED:
621
- log = attachSDAMFields(log, logObject);
622
- log.message = 'Topology description changed';
623
- log.previousDescription = log.reply = stringifyWithMaxLen(logObject.previousDescription, maxDocumentLength);
624
- log.newDescription = log.reply = stringifyWithMaxLen(logObject.newDescription, maxDocumentLength);
625
- return log;
626
-
627
- default:
628
- for (const [key, value] of Object.entries(logObject)) {
629
- if (value != null) log[key] = value;
630
- }
631
-
632
- }
633
-
634
- return log;
635
- }
636
- /** @internal */
637
-
638
-
639
- class MongoLogger {
640
- constructor(options) {
641
- this.pendingLog = null;
642
- /**
643
- * This method should be used when logging errors that do not have a public driver API for
644
- * reporting errors.
645
- */
646
-
647
- this.error = this.log.bind(this, 'error');
648
- /**
649
- * This method should be used to log situations where undesirable application behaviour might
650
- * occur. For example, failing to end sessions on `MongoClient.close`.
651
- */
652
-
653
- this.warn = this.log.bind(this, 'warn');
654
- /**
655
- * This method should be used to report high-level information about normal driver behaviour.
656
- * For example, the creation of a `MongoClient`.
657
- */
658
-
659
- this.info = this.log.bind(this, 'info');
660
- /**
661
- * This method should be used to report information that would be helpful when debugging an
662
- * application. For example, a command starting, succeeding or failing.
663
- */
664
-
665
- this.debug = this.log.bind(this, 'debug');
666
- /**
667
- * This method should be used to report fine-grained details related to logic flow. For example,
668
- * entering and exiting a function body.
669
- */
670
-
671
- this.trace = this.log.bind(this, 'trace');
672
- this.componentSeverities = options.componentSeverities;
673
- this.maxDocumentLength = options.maxDocumentLength;
674
- this.logDestination = options.logDestination;
675
- this.logDestinationIsStdErr = options.logDestinationIsStdErr;
676
- this.severities = this.createLoggingSeverities();
677
- }
678
-
679
- createLoggingSeverities() {
680
- const severities = Object();
681
-
682
- for (const component of Object.values(exports.MongoLoggableComponent)) {
683
- severities[component] = {};
684
-
685
- for (const severityLevel of Object.values(exports.SeverityLevel)) {
686
- severities[component][severityLevel] = compareSeverity(severityLevel, this.componentSeverities[component]) <= 0;
687
- }
688
- }
689
-
690
- return severities;
691
- }
692
-
693
- turnOffSeverities() {
694
- for (const component of Object.values(exports.MongoLoggableComponent)) {
695
- this.componentSeverities[component] = exports.SeverityLevel.OFF;
696
-
697
- for (const severityLevel of Object.values(exports.SeverityLevel)) {
698
- this.severities[component][severityLevel] = false;
699
- }
700
- }
701
- }
702
-
703
- logWriteFailureHandler(error) {
704
- if (this.logDestinationIsStdErr) {
705
- this.turnOffSeverities();
706
- this.clearPendingLog();
707
- return;
708
- }
709
-
710
- this.logDestination = createStdioLogger(process.stderr);
711
- this.logDestinationIsStdErr = true;
712
- this.clearPendingLog();
713
- this.error(exports.MongoLoggableComponent.CLIENT, {
714
- toLog: function () {
715
- return {
716
- message: 'User input for mongodbLogPath is now invalid. Logging is halted.',
717
- error: error.message
718
- };
719
- }
720
- });
721
- this.turnOffSeverities();
722
- this.clearPendingLog();
723
- }
724
-
725
- clearPendingLog() {
726
- this.pendingLog = null;
727
- }
728
-
729
- willLog(component, severity) {
730
- if (severity === exports.SeverityLevel.OFF) return false;
731
- return this.severities[component][severity];
732
- }
733
-
734
- log(severity, component, message) {
735
- if (!this.willLog(component, severity)) return;
736
- let logMessage = {
737
- t: new Date(),
738
- c: component,
739
- s: severity
740
- };
741
-
742
- if (typeof message === 'string') {
743
- logMessage.message = message;
744
- } else if (typeof message === 'object') {
745
- if (isLogConvertible(message)) {
746
- logMessage = { ...logMessage,
747
- ...message.toLog()
748
- };
749
- } else {
750
- logMessage = { ...logMessage,
751
- ...defaultLogTransform(message, this.maxDocumentLength)
752
- };
753
- }
754
- }
755
-
756
- if ((0, utils_1.isPromiseLike)(this.pendingLog)) {
757
- this.pendingLog = this.pendingLog.then(() => this.logDestination.write(logMessage)).then(this.clearPendingLog.bind(this), this.logWriteFailureHandler.bind(this));
758
- return;
759
- }
760
-
761
- try {
762
- const logResult = this.logDestination.write(logMessage);
763
-
764
- if ((0, utils_1.isPromiseLike)(logResult)) {
765
- this.pendingLog = logResult.then(this.clearPendingLog.bind(this), this.logWriteFailureHandler.bind(this));
766
- }
767
- } catch (error) {
768
- this.logWriteFailureHandler(error);
769
- }
770
- }
771
- /**
772
- * Merges options set through environment variables and the MongoClient, preferring environment
773
- * variables when both are set, and substituting defaults for values not set. Options set in
774
- * constructor take precedence over both environment variables and MongoClient options.
775
- *
776
- * @remarks
777
- * When parsing component severity levels, invalid values are treated as unset and replaced with
778
- * the default severity.
779
- *
780
- * @param envOptions - options set for the logger from the environment
781
- * @param clientOptions - options set for the logger in the MongoClient options
782
- * @returns a MongoLoggerOptions object to be used when instantiating a new MongoLogger
783
- */
784
-
785
-
786
- static resolveOptions(envOptions, clientOptions) {
787
- // client options take precedence over env options
788
- const resolvedLogPath = resolveLogPath(envOptions, clientOptions);
789
- const combinedOptions = { ...envOptions,
790
- ...clientOptions,
791
- mongodbLogPath: resolvedLogPath.mongodbLogPath,
792
- mongodbLogPathIsStdErr: resolvedLogPath.mongodbLogPathIsStdErr
793
- };
794
- const defaultSeverity = resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.default, combinedOptions.MONGODB_LOG_ALL, exports.SeverityLevel.OFF);
795
- return {
796
- componentSeverities: {
797
- command: resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.command, combinedOptions.MONGODB_LOG_COMMAND, defaultSeverity),
798
- topology: resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.topology, combinedOptions.MONGODB_LOG_TOPOLOGY, defaultSeverity),
799
- serverSelection: resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.serverSelection, combinedOptions.MONGODB_LOG_SERVER_SELECTION, defaultSeverity),
800
- connection: resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.connection, combinedOptions.MONGODB_LOG_CONNECTION, defaultSeverity),
801
- client: resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.client, combinedOptions.MONGODB_LOG_CLIENT, defaultSeverity),
802
- default: defaultSeverity
803
- },
804
- maxDocumentLength: combinedOptions.mongodbLogMaxDocumentLength ?? (0, utils_1.parseUnsignedInteger)(combinedOptions.MONGODB_LOG_MAX_DOCUMENT_LENGTH) ?? 1000,
805
- logDestination: combinedOptions.mongodbLogPath,
806
- logDestinationIsStdErr: combinedOptions.mongodbLogPathIsStdErr
807
- };
808
- }
809
-
810
- }
811
-
812
- exports.MongoLogger = MongoLogger;