oxygen-cli 1.40.1 → 1.40.2-beta.1

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 (441) hide show
  1. package/CHANGELOG.md +1742 -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 +2 -1
  17. package/build/index.js +1 -1
  18. package/build/lib/cli-util.js +5 -1
  19. package/build/lib/debugger.js +1 -1
  20. package/build/lib/img-merge.js +1 -1
  21. package/build/lib/launcher.js +1 -1
  22. package/build/lib/logger.js +43 -43
  23. package/build/lib/moduleRequire.js +1 -1
  24. package/build/lib/parallel-launcher.js +1 -1
  25. package/build/lib/param-manager.js +1 -1
  26. package/build/lib/param-reader-csv.js +1 -1
  27. package/build/lib/param-reader-excel.js +1 -1
  28. package/build/lib/param-reader-json.js +1 -1
  29. package/build/lib/text-to-image.js +1 -1
  30. package/build/lib/util.js +1 -1
  31. package/build/model/case-result.js +1 -1
  32. package/build/model/failure.js +1 -1
  33. package/build/model/status.js +1 -1
  34. package/build/model/step-result.js +1 -1
  35. package/build/model/suite-result.js +1 -1
  36. package/build/model/test-result.js +1 -1
  37. package/build/model/testcase.js +1 -1
  38. package/build/model/testsuite.js +1 -1
  39. package/build/ox_modules/index.js +9 -1
  40. package/build/ox_modules/module-assert.js +37 -37
  41. package/build/ox_modules/module-date.js +24 -24
  42. package/build/ox_modules/module-db.js +52 -52
  43. package/build/ox_modules/module-email.js +59 -59
  44. package/build/ox_modules/module-eyes.js +34 -34
  45. package/build/ox_modules/module-http/ntlm-util.js +10 -10
  46. package/build/ox_modules/module-http/ntlm.js +15 -15
  47. package/build/ox_modules/module-http.js +132 -132
  48. package/build/ox_modules/module-log.js +27 -27
  49. package/build/ox_modules/module-mailinator.js +87 -87
  50. package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
  51. package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
  52. package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
  53. package/build/ox_modules/module-mob/commands/assertText.js +21 -21
  54. package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
  55. package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
  56. package/build/ox_modules/module-mob/commands/back.js +16 -16
  57. package/build/ox_modules/module-mob/commands/clear.js +19 -19
  58. package/build/ox_modules/module-mob/commands/click.js +17 -17
  59. package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
  60. package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
  61. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
  62. package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
  63. package/build/ox_modules/module-mob/commands/debug.js +16 -16
  64. package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
  65. package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
  66. package/build/ox_modules/module-mob/commands/execute.js +21 -21
  67. package/build/ox_modules/module-mob/commands/findElement.js +20 -20
  68. package/build/ox_modules/module-mob/commands/findElements.js +23 -23
  69. package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
  70. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
  71. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
  72. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
  73. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
  74. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
  75. package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
  76. package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
  77. package/build/ox_modules/module-mob/commands/getSource.js +16 -16
  78. package/build/ox_modules/module-mob/commands/getText.js +18 -18
  79. package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
  80. package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
  81. package/build/ox_modules/module-mob/commands/getValue.js +18 -18
  82. package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
  83. package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
  84. package/build/ox_modules/module-mob/commands/index.js +1 -1
  85. package/build/ox_modules/module-mob/commands/installApp.js +16 -16
  86. package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
  87. package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
  88. package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
  89. package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
  90. package/build/ox_modules/module-mob/commands/isExist.js +19 -19
  91. package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
  92. package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
  93. package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
  94. package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
  95. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
  96. package/build/ox_modules/module-mob/commands/open.js +17 -17
  97. package/build/ox_modules/module-mob/commands/pause.js +16 -16
  98. package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
  99. package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
  100. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
  101. package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
  102. package/build/ox_modules/module-mob/commands/select.js +24 -24
  103. package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
  104. package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
  105. package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
  106. package/build/ox_modules/module-mob/commands/setContext.js +16 -16
  107. package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
  108. package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
  109. package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
  110. package/build/ox_modules/module-mob/commands/shake.js +16 -16
  111. package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
  112. package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
  113. package/build/ox_modules/module-mob/commands/swipe.js +20 -20
  114. package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
  115. package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
  116. package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
  117. package/build/ox_modules/module-mob/commands/tap.js +17 -17
  118. package/build/ox_modules/module-mob/commands/type.js +20 -20
  119. package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
  120. package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
  121. package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
  122. package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
  123. package/build/ox_modules/module-mob.js +74 -74
  124. package/build/ox_modules/module-mongo.js +302 -0
  125. package/build/ox_modules/module-pdf.js +35 -35
  126. package/build/ox_modules/module-proxy.js +77 -77
  127. package/build/ox_modules/module-serial.js +55 -55
  128. package/build/ox_modules/module-shell.js +25 -25
  129. package/build/ox_modules/module-soap.js +72 -72
  130. package/build/ox_modules/module-twilio.js +41 -41
  131. package/build/ox_modules/module-utils.js +91 -91
  132. package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
  133. package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
  134. package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
  135. package/build/ox_modules/module-web/commands/assertExist.js +17 -17
  136. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
  137. package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
  138. package/build/ox_modules/module-web/commands/assertText.js +21 -21
  139. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
  140. package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
  141. package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
  142. package/build/ox_modules/module-web/commands/assertValue.js +20 -20
  143. package/build/ox_modules/module-web/commands/back.js +16 -16
  144. package/build/ox_modules/module-web/commands/clear.js +18 -18
  145. package/build/ox_modules/module-web/commands/click.js +25 -25
  146. package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
  147. package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
  148. package/build/ox_modules/module-web/commands/debug.js +15 -15
  149. package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
  150. package/build/ox_modules/module-web/commands/deselect.js +22 -22
  151. package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
  152. package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
  153. package/build/ox_modules/module-web/commands/execute.js +24 -24
  154. package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
  155. package/build/ox_modules/module-web/commands/findElement.js +19 -19
  156. package/build/ox_modules/module-web/commands/findElements.js +22 -22
  157. package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
  158. package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
  159. package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
  160. package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
  161. package/build/ox_modules/module-web/commands/getCookies.js +13 -13
  162. package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
  163. package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
  164. package/build/ox_modules/module-web/commands/getHTML.js +17 -17
  165. package/build/ox_modules/module-web/commands/getSource.js +16 -16
  166. package/build/ox_modules/module-web/commands/getText.js +18 -18
  167. package/build/ox_modules/module-web/commands/getTitle.js +12 -12
  168. package/build/ox_modules/module-web/commands/getUrl.js +16 -16
  169. package/build/ox_modules/module-web/commands/getValue.js +18 -18
  170. package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
  171. package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
  172. package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
  173. package/build/ox_modules/module-web/commands/index.js +1 -1
  174. package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
  175. package/build/ox_modules/module-web/commands/isChecked.js +18 -18
  176. package/build/ox_modules/module-web/commands/isExist.js +19 -19
  177. package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
  178. package/build/ox_modules/module-web/commands/isSelected.js +23 -23
  179. package/build/ox_modules/module-web/commands/isVisible.js +19 -19
  180. package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
  181. package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
  182. package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
  183. package/build/ox_modules/module-web/commands/mock.js +20 -20
  184. package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
  185. package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
  186. package/build/ox_modules/module-web/commands/newWindow.js +16 -16
  187. package/build/ox_modules/module-web/commands/open.js +16 -16
  188. package/build/ox_modules/module-web/commands/pause.js +15 -15
  189. package/build/ox_modules/module-web/commands/point.js +21 -21
  190. package/build/ox_modules/module-web/commands/pointJS.js +15 -15
  191. package/build/ox_modules/module-web/commands/refresh.js +15 -15
  192. package/build/ox_modules/module-web/commands/rightClick.js +17 -17
  193. package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
  194. package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
  195. package/build/ox_modules/module-web/commands/select.js +23 -23
  196. package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
  197. package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
  198. package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
  199. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
  200. package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
  201. package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
  202. package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
  203. package/build/ox_modules/module-web/commands/type.js +20 -20
  204. package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
  205. package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
  206. package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
  207. package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
  208. package/build/ox_modules/module-web/commands/verifyText.js +21 -21
  209. package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
  210. package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
  211. package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
  212. package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
  213. package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
  214. package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
  215. package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
  216. package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
  217. package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
  218. package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
  219. package/build/ox_modules/module-web/commands/waitForText.js +20 -20
  220. package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
  221. package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
  222. package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
  223. package/build/ox_modules/module-web.js +94 -94
  224. package/build/ox_modules/module-win/commands/assertText.js +17 -17
  225. package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
  226. package/build/ox_modules/module-win/commands/assertValue.js +14 -14
  227. package/build/ox_modules/module-win/commands/back.js +11 -11
  228. package/build/ox_modules/module-win/commands/clear.js +13 -13
  229. package/build/ox_modules/module-win/commands/click.js +13 -13
  230. package/build/ox_modules/module-win/commands/clickLong.js +14 -14
  231. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
  232. package/build/ox_modules/module-win/commands/findElement.js +15 -15
  233. package/build/ox_modules/module-win/commands/findElements.js +15 -15
  234. package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
  235. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
  236. package/build/ox_modules/module-win/commands/getLocation.js +14 -14
  237. package/build/ox_modules/module-win/commands/getSource.js +12 -12
  238. package/build/ox_modules/module-win/commands/getText.js +14 -14
  239. package/build/ox_modules/module-win/commands/getValue.js +14 -14
  240. package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
  241. package/build/ox_modules/module-win/commands/index.js +1 -1
  242. package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
  243. package/build/ox_modules/module-win/commands/isChecked.js +14 -14
  244. package/build/ox_modules/module-win/commands/isClickable.js +14 -14
  245. package/build/ox_modules/module-win/commands/isExist.js +15 -15
  246. package/build/ox_modules/module-win/commands/isSelected.js +14 -14
  247. package/build/ox_modules/module-win/commands/isVisible.js +15 -15
  248. package/build/ox_modules/module-win/commands/open.js +13 -13
  249. package/build/ox_modules/module-win/commands/pause.js +12 -12
  250. package/build/ox_modules/module-win/commands/rightClick.js +13 -13
  251. package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
  252. package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
  253. package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
  254. package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
  255. package/build/ox_modules/module-win/commands/tap.js +13 -13
  256. package/build/ox_modules/module-win/commands/type.js +16 -16
  257. package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
  258. package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
  259. package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
  260. package/build/ox_modules/module-win.js +47 -47
  261. package/build/ox_modules/utils.js +8 -8
  262. package/build/ox_reporters/excel/template.json +48 -48
  263. package/build/ox_reporters/html/index.ejs +163 -163
  264. package/build/ox_reporters/html/summary.ejs +77 -77
  265. package/build/ox_reporters/html/tests-details.ejs +134 -134
  266. package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
  267. package/build/ox_reporters/reporter-excel.js +1 -1
  268. package/build/ox_reporters/reporter-html.js +1 -1
  269. package/build/ox_reporters/reporter-json.js +1 -1
  270. package/build/ox_reporters/reporter-junit.js +1 -1
  271. package/build/ox_reporters/reporter-pdf.js +1 -1
  272. package/build/ox_reporters/reporter-rp.js +1 -1
  273. package/build/ox_reporters/reporter-xml.js +1 -1
  274. package/build/ox_services/service-devtools/submodule-network.js +1 -1
  275. package/build/ox_services/service-devtools.js +1 -1
  276. package/build/reporter/FileReporterBase.js +1 -1
  277. package/build/reporter/ReportAggregator.js +13 -5
  278. package/build/reporter/ReporterBase.js +1 -1
  279. package/build/reporter/WebSocketReporter.js +1 -1
  280. package/build/runners/WorkerProcess.js +1 -1
  281. package/build/runners/cucumber/CucumberEventListener.js +1 -1
  282. package/build/runners/cucumber/CucumberReporter.js +1 -1
  283. package/build/runners/cucumber/CucumberWorker.js +1 -1
  284. package/build/runners/cucumber/index.js +1 -1
  285. package/build/runners/cucumber/worker.js +1 -1
  286. package/build/runners/index.js +1 -1
  287. package/build/runners/oxygen/OxygenWorker.js +1 -1
  288. package/build/runners/oxygen/index.js +1 -1
  289. package/build/runners/oxygen/worker.js +1 -1
  290. package/config/default.json +6 -6
  291. package/log.txt +1614 -0
  292. package/package.json +139 -137
  293. package/reports/2025-06-08_231627/report.html +440 -0
  294. package/reports/2025-06-09_223615/report.html +440 -0
  295. package/transpiled/mongodb/etc/prepare.js +18 -0
  296. package/transpiled/mongodb/lib/admin.js +182 -0
  297. package/transpiled/mongodb/lib/beta.js +26 -0
  298. package/transpiled/mongodb/lib/bson.js +220 -0
  299. package/transpiled/mongodb/lib/bulk/common.js +1041 -0
  300. package/transpiled/mongodb/lib/bulk/ordered.js +76 -0
  301. package/transpiled/mongodb/lib/bulk/unordered.js +102 -0
  302. package/transpiled/mongodb/lib/change_stream.js +517 -0
  303. package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +329 -0
  304. package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +779 -0
  305. package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +95 -0
  306. package/transpiled/mongodb/lib/client-side-encryption/errors.js +171 -0
  307. package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +98 -0
  308. package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +34 -0
  309. package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +186 -0
  310. package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +29 -0
  311. package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +58 -0
  312. package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +505 -0
  313. package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +63 -0
  314. package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +167 -0
  315. package/transpiled/mongodb/lib/cmap/auth/gssapi.js +207 -0
  316. package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +193 -0
  317. package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +181 -0
  318. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +101 -0
  319. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +81 -0
  320. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +174 -0
  321. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +59 -0
  322. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +58 -0
  323. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +138 -0
  324. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +42 -0
  325. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +71 -0
  326. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +34 -0
  327. package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +111 -0
  328. package/transpiled/mongodb/lib/cmap/auth/plain.js +43 -0
  329. package/transpiled/mongodb/lib/cmap/auth/providers.js +22 -0
  330. package/transpiled/mongodb/lib/cmap/auth/scram.js +318 -0
  331. package/transpiled/mongodb/lib/cmap/auth/x509.js +61 -0
  332. package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +266 -0
  333. package/transpiled/mongodb/lib/cmap/commands.js +605 -0
  334. package/transpiled/mongodb/lib/cmap/connect.js +418 -0
  335. package/transpiled/mongodb/lib/cmap/connection.js +673 -0
  336. package/transpiled/mongodb/lib/cmap/connection_pool.js +688 -0
  337. package/transpiled/mongodb/lib/cmap/connection_pool_events.js +254 -0
  338. package/transpiled/mongodb/lib/cmap/errors.js +128 -0
  339. package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +278 -0
  340. package/transpiled/mongodb/lib/cmap/metrics.js +67 -0
  341. package/transpiled/mongodb/lib/cmap/stream_description.js +74 -0
  342. package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +196 -0
  343. package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +19 -0
  344. package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +144 -0
  345. package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +278 -0
  346. package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +376 -0
  347. package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +49 -0
  348. package/transpiled/mongodb/lib/collection.js +852 -0
  349. package/transpiled/mongodb/lib/connection_string.js +1452 -0
  350. package/transpiled/mongodb/lib/constants.js +162 -0
  351. package/transpiled/mongodb/lib/cursor/abstract_cursor.js +1082 -0
  352. package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +227 -0
  353. package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +136 -0
  354. package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +69 -0
  355. package/transpiled/mongodb/lib/cursor/find_cursor.js +476 -0
  356. package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +48 -0
  357. package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +46 -0
  358. package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +30 -0
  359. package/transpiled/mongodb/lib/cursor/run_command_cursor.js +125 -0
  360. package/transpiled/mongodb/lib/db.js +467 -0
  361. package/transpiled/mongodb/lib/deps.js +174 -0
  362. package/transpiled/mongodb/lib/encrypter.js +129 -0
  363. package/transpiled/mongodb/lib/error.js +1550 -0
  364. package/transpiled/mongodb/lib/explain.js +122 -0
  365. package/transpiled/mongodb/lib/gridfs/download.js +369 -0
  366. package/transpiled/mongodb/lib/gridfs/index.js +240 -0
  367. package/transpiled/mongodb/lib/gridfs/upload.js +446 -0
  368. package/transpiled/mongodb/lib/index.js +975 -0
  369. package/transpiled/mongodb/lib/mongo_client.js +626 -0
  370. package/transpiled/mongodb/lib/mongo_client_auth_providers.js +98 -0
  371. package/transpiled/mongodb/lib/mongo_logger.js +812 -0
  372. package/transpiled/mongodb/lib/mongo_types.js +71 -0
  373. package/transpiled/mongodb/lib/operations/aggregate.js +129 -0
  374. package/transpiled/mongodb/lib/operations/bulk_write.js +48 -0
  375. package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +96 -0
  376. package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +409 -0
  377. package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +5 -0
  378. package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +144 -0
  379. package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +228 -0
  380. package/transpiled/mongodb/lib/operations/collections.js +49 -0
  381. package/transpiled/mongodb/lib/operations/command.js +102 -0
  382. package/transpiled/mongodb/lib/operations/count.js +60 -0
  383. package/transpiled/mongodb/lib/operations/create_collection.js +109 -0
  384. package/transpiled/mongodb/lib/operations/delete.js +134 -0
  385. package/transpiled/mongodb/lib/operations/distinct.js +77 -0
  386. package/transpiled/mongodb/lib/operations/drop.js +102 -0
  387. package/transpiled/mongodb/lib/operations/estimated_document_count.js +47 -0
  388. package/transpiled/mongodb/lib/operations/execute_operation.js +251 -0
  389. package/transpiled/mongodb/lib/operations/find.js +197 -0
  390. package/transpiled/mongodb/lib/operations/find_and_modify.js +191 -0
  391. package/transpiled/mongodb/lib/operations/get_more.js +84 -0
  392. package/transpiled/mongodb/lib/operations/indexes.js +197 -0
  393. package/transpiled/mongodb/lib/operations/insert.js +138 -0
  394. package/transpiled/mongodb/lib/operations/is_capped.js +44 -0
  395. package/transpiled/mongodb/lib/operations/kill_cursors.js +58 -0
  396. package/transpiled/mongodb/lib/operations/list_collections.js +66 -0
  397. package/transpiled/mongodb/lib/operations/list_databases.js +56 -0
  398. package/transpiled/mongodb/lib/operations/operation.js +88 -0
  399. package/transpiled/mongodb/lib/operations/options_operation.js +44 -0
  400. package/transpiled/mongodb/lib/operations/profiling_level.js +42 -0
  401. package/transpiled/mongodb/lib/operations/remove_user.js +35 -0
  402. package/transpiled/mongodb/lib/operations/rename.js +48 -0
  403. package/transpiled/mongodb/lib/operations/run_command.js +64 -0
  404. package/transpiled/mongodb/lib/operations/search_indexes/create.js +41 -0
  405. package/transpiled/mongodb/lib/operations/search_indexes/drop.js +51 -0
  406. package/transpiled/mongodb/lib/operations/search_indexes/update.js +40 -0
  407. package/transpiled/mongodb/lib/operations/set_profiling_level.js +70 -0
  408. package/transpiled/mongodb/lib/operations/stats.js +39 -0
  409. package/transpiled/mongodb/lib/operations/update.js +218 -0
  410. package/transpiled/mongodb/lib/operations/validate_collection.js +49 -0
  411. package/transpiled/mongodb/lib/read_concern.js +92 -0
  412. package/transpiled/mongodb/lib/read_preference.js +215 -0
  413. package/transpiled/mongodb/lib/resource_management.js +74 -0
  414. package/transpiled/mongodb/lib/sdam/common.js +53 -0
  415. package/transpiled/mongodb/lib/sdam/events.js +177 -0
  416. package/transpiled/mongodb/lib/sdam/monitor.js +656 -0
  417. package/transpiled/mongodb/lib/sdam/server.js +463 -0
  418. package/transpiled/mongodb/lib/sdam/server_description.js +196 -0
  419. package/transpiled/mongodb/lib/sdam/server_selection.js +283 -0
  420. package/transpiled/mongodb/lib/sdam/server_selection_events.js +112 -0
  421. package/transpiled/mongodb/lib/sdam/srv_polling.js +139 -0
  422. package/transpiled/mongodb/lib/sdam/topology.js +833 -0
  423. package/transpiled/mongodb/lib/sdam/topology_description.js +447 -0
  424. package/transpiled/mongodb/lib/sessions.js +988 -0
  425. package/transpiled/mongodb/lib/sort.js +123 -0
  426. package/transpiled/mongodb/lib/timeout.js +349 -0
  427. package/transpiled/mongodb/lib/transactions.js +149 -0
  428. package/transpiled/mongodb/lib/utils.js +1502 -0
  429. package/transpiled/mongodb/lib/write_concern.js +115 -0
  430. package/types/index.d.ts +70 -70
  431. package/types/module-eyes.d.ts +39 -39
  432. package/types/module-http.d.ts +163 -163
  433. package/types/module-log.d.ts +34 -34
  434. package/types/module-mob.d.ts +966 -966
  435. package/types/module-pdf.d.ts +40 -40
  436. package/types/module-proxy.d.ts +100 -100
  437. package/types/module-shell.d.ts +24 -24
  438. package/types/module-utils.d.ts +99 -99
  439. package/types/module-web.d.ts +1053 -1053
  440. package/types/module-win.d.ts +352 -352
  441. package/types/oxygen.d.ts +53 -53
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConnectionPoolClearedEvent = exports.ConnectionCheckedInEvent = exports.ConnectionCheckedOutEvent = exports.ConnectionCheckOutFailedEvent = exports.ConnectionCheckOutStartedEvent = exports.ConnectionClosedEvent = exports.ConnectionReadyEvent = exports.ConnectionCreatedEvent = exports.ConnectionPoolClosedEvent = exports.ConnectionPoolReadyEvent = exports.ConnectionPoolCreatedEvent = exports.ConnectionPoolMonitoringEvent = void 0;
7
+
8
+ const constants_1 = require("../constants");
9
+
10
+ const utils_1 = require("../utils");
11
+ /**
12
+ * The base export class for all monitoring events published from the connection pool
13
+ * @public
14
+ * @category Event
15
+ */
16
+
17
+
18
+ class ConnectionPoolMonitoringEvent {
19
+ /** @internal */
20
+ constructor(pool) {
21
+ this.time = new Date();
22
+ this.address = pool.address;
23
+ }
24
+
25
+ }
26
+
27
+ exports.ConnectionPoolMonitoringEvent = ConnectionPoolMonitoringEvent;
28
+ /**
29
+ * An event published when a connection pool is created
30
+ * @public
31
+ * @category Event
32
+ */
33
+
34
+ class ConnectionPoolCreatedEvent extends ConnectionPoolMonitoringEvent {
35
+ /** @internal */
36
+ constructor(pool) {
37
+ super(pool);
38
+ /** @internal */
39
+
40
+ this.name = constants_1.CONNECTION_POOL_CREATED;
41
+ const {
42
+ maxConnecting,
43
+ maxPoolSize,
44
+ minPoolSize,
45
+ maxIdleTimeMS,
46
+ waitQueueTimeoutMS
47
+ } = pool.options;
48
+ this.options = {
49
+ maxConnecting,
50
+ maxPoolSize,
51
+ minPoolSize,
52
+ maxIdleTimeMS,
53
+ waitQueueTimeoutMS
54
+ };
55
+ }
56
+
57
+ }
58
+
59
+ exports.ConnectionPoolCreatedEvent = ConnectionPoolCreatedEvent;
60
+ /**
61
+ * An event published when a connection pool is ready
62
+ * @public
63
+ * @category Event
64
+ */
65
+
66
+ class ConnectionPoolReadyEvent extends ConnectionPoolMonitoringEvent {
67
+ /** @internal */
68
+ constructor(pool) {
69
+ super(pool);
70
+ /** @internal */
71
+
72
+ this.name = constants_1.CONNECTION_POOL_READY;
73
+ }
74
+
75
+ }
76
+
77
+ exports.ConnectionPoolReadyEvent = ConnectionPoolReadyEvent;
78
+ /**
79
+ * An event published when a connection pool is closed
80
+ * @public
81
+ * @category Event
82
+ */
83
+
84
+ class ConnectionPoolClosedEvent extends ConnectionPoolMonitoringEvent {
85
+ /** @internal */
86
+ constructor(pool) {
87
+ super(pool);
88
+ /** @internal */
89
+
90
+ this.name = constants_1.CONNECTION_POOL_CLOSED;
91
+ }
92
+
93
+ }
94
+
95
+ exports.ConnectionPoolClosedEvent = ConnectionPoolClosedEvent;
96
+ /**
97
+ * An event published when a connection pool creates a new connection
98
+ * @public
99
+ * @category Event
100
+ */
101
+
102
+ class ConnectionCreatedEvent extends ConnectionPoolMonitoringEvent {
103
+ /** @internal */
104
+ constructor(pool, connection) {
105
+ super(pool);
106
+ /** @internal */
107
+
108
+ this.name = constants_1.CONNECTION_CREATED;
109
+ this.connectionId = connection.id;
110
+ }
111
+
112
+ }
113
+
114
+ exports.ConnectionCreatedEvent = ConnectionCreatedEvent;
115
+ /**
116
+ * An event published when a connection is ready for use
117
+ * @public
118
+ * @category Event
119
+ */
120
+
121
+ class ConnectionReadyEvent extends ConnectionPoolMonitoringEvent {
122
+ /** @internal */
123
+ constructor(pool, connection, connectionCreatedEventTime) {
124
+ super(pool);
125
+ /** @internal */
126
+
127
+ this.name = constants_1.CONNECTION_READY;
128
+ this.durationMS = (0, utils_1.now)() - connectionCreatedEventTime;
129
+ this.connectionId = connection.id;
130
+ }
131
+
132
+ }
133
+
134
+ exports.ConnectionReadyEvent = ConnectionReadyEvent;
135
+ /**
136
+ * An event published when a connection is closed
137
+ * @public
138
+ * @category Event
139
+ */
140
+
141
+ class ConnectionClosedEvent extends ConnectionPoolMonitoringEvent {
142
+ /** @internal */
143
+ constructor(pool, connection, reason, error) {
144
+ super(pool);
145
+ /** @internal */
146
+
147
+ this.name = constants_1.CONNECTION_CLOSED;
148
+ this.connectionId = connection.id;
149
+ this.reason = reason;
150
+ this.serviceId = connection.serviceId;
151
+ this.error = error ?? null;
152
+ }
153
+
154
+ }
155
+
156
+ exports.ConnectionClosedEvent = ConnectionClosedEvent;
157
+ /**
158
+ * An event published when a request to check a connection out begins
159
+ * @public
160
+ * @category Event
161
+ */
162
+
163
+ class ConnectionCheckOutStartedEvent extends ConnectionPoolMonitoringEvent {
164
+ /** @internal */
165
+ constructor(pool) {
166
+ super(pool);
167
+ /** @internal */
168
+
169
+ this.name = constants_1.CONNECTION_CHECK_OUT_STARTED;
170
+ }
171
+
172
+ }
173
+
174
+ exports.ConnectionCheckOutStartedEvent = ConnectionCheckOutStartedEvent;
175
+ /**
176
+ * An event published when a request to check a connection out fails
177
+ * @public
178
+ * @category Event
179
+ */
180
+
181
+ class ConnectionCheckOutFailedEvent extends ConnectionPoolMonitoringEvent {
182
+ /** @internal */
183
+ constructor(pool, reason, checkoutTime, error) {
184
+ super(pool);
185
+ /** @internal */
186
+
187
+ this.name = constants_1.CONNECTION_CHECK_OUT_FAILED;
188
+ this.durationMS = (0, utils_1.now)() - checkoutTime;
189
+ this.reason = reason;
190
+ this.error = error;
191
+ }
192
+
193
+ }
194
+
195
+ exports.ConnectionCheckOutFailedEvent = ConnectionCheckOutFailedEvent;
196
+ /**
197
+ * An event published when a connection is checked out of the connection pool
198
+ * @public
199
+ * @category Event
200
+ */
201
+
202
+ class ConnectionCheckedOutEvent extends ConnectionPoolMonitoringEvent {
203
+ /** @internal */
204
+ constructor(pool, connection, checkoutTime) {
205
+ super(pool);
206
+ /** @internal */
207
+
208
+ this.name = constants_1.CONNECTION_CHECKED_OUT;
209
+ this.durationMS = (0, utils_1.now)() - checkoutTime;
210
+ this.connectionId = connection.id;
211
+ }
212
+
213
+ }
214
+
215
+ exports.ConnectionCheckedOutEvent = ConnectionCheckedOutEvent;
216
+ /**
217
+ * An event published when a connection is checked into the connection pool
218
+ * @public
219
+ * @category Event
220
+ */
221
+
222
+ class ConnectionCheckedInEvent extends ConnectionPoolMonitoringEvent {
223
+ /** @internal */
224
+ constructor(pool, connection) {
225
+ super(pool);
226
+ /** @internal */
227
+
228
+ this.name = constants_1.CONNECTION_CHECKED_IN;
229
+ this.connectionId = connection.id;
230
+ }
231
+
232
+ }
233
+
234
+ exports.ConnectionCheckedInEvent = ConnectionCheckedInEvent;
235
+ /**
236
+ * An event published when a connection pool is cleared
237
+ * @public
238
+ * @category Event
239
+ */
240
+
241
+ class ConnectionPoolClearedEvent extends ConnectionPoolMonitoringEvent {
242
+ /** @internal */
243
+ constructor(pool, options = {}) {
244
+ super(pool);
245
+ /** @internal */
246
+
247
+ this.name = constants_1.CONNECTION_POOL_CLEARED;
248
+ this.serviceId = options.serviceId;
249
+ this.interruptInUseConnections = options.interruptInUseConnections;
250
+ }
251
+
252
+ }
253
+
254
+ exports.ConnectionPoolClearedEvent = ConnectionPoolClearedEvent;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WaitQueueTimeoutError = exports.PoolClearedOnNetworkError = exports.PoolClearedError = exports.PoolClosedError = void 0;
7
+
8
+ const error_1 = require("../error");
9
+ /**
10
+ * An error indicating a connection pool is closed
11
+ * @category Error
12
+ */
13
+
14
+
15
+ class PoolClosedError extends error_1.MongoDriverError {
16
+ /**
17
+ * **Do not use this constructor!**
18
+ *
19
+ * Meant for internal use only.
20
+ *
21
+ * @remarks
22
+ * This class is only meant to be constructed within the driver. This constructor is
23
+ * not subject to semantic versioning compatibility guarantees and may change at any time.
24
+ *
25
+ * @public
26
+ **/
27
+ constructor(pool) {
28
+ super('Attempted to check out a connection from closed connection pool');
29
+ this.address = pool.address;
30
+ }
31
+
32
+ get name() {
33
+ return 'MongoPoolClosedError';
34
+ }
35
+
36
+ }
37
+
38
+ exports.PoolClosedError = PoolClosedError;
39
+ /**
40
+ * An error indicating a connection pool is currently paused
41
+ * @category Error
42
+ */
43
+
44
+ class PoolClearedError extends error_1.MongoNetworkError {
45
+ /**
46
+ * **Do not use this constructor!**
47
+ *
48
+ * Meant for internal use only.
49
+ *
50
+ * @remarks
51
+ * This class is only meant to be constructed within the driver. This constructor is
52
+ * not subject to semantic versioning compatibility guarantees and may change at any time.
53
+ *
54
+ * @public
55
+ **/
56
+ constructor(pool, message) {
57
+ const errorMessage = message ? message : `Connection pool for ${pool.address} was cleared because another operation failed with: "${pool.serverError?.message}"`;
58
+ super(errorMessage, pool.serverError ? {
59
+ cause: pool.serverError
60
+ } : undefined);
61
+ this.address = pool.address;
62
+ this.addErrorLabel(error_1.MongoErrorLabel.PoolRequstedRetry);
63
+ }
64
+
65
+ get name() {
66
+ return 'MongoPoolClearedError';
67
+ }
68
+
69
+ }
70
+
71
+ exports.PoolClearedError = PoolClearedError;
72
+ /**
73
+ * An error indicating that a connection pool has been cleared after the monitor for that server timed out.
74
+ * @category Error
75
+ */
76
+
77
+ class PoolClearedOnNetworkError extends PoolClearedError {
78
+ /**
79
+ * **Do not use this constructor!**
80
+ *
81
+ * Meant for internal use only.
82
+ *
83
+ * @remarks
84
+ * This class is only meant to be constructed within the driver. This constructor is
85
+ * not subject to semantic versioning compatibility guarantees and may change at any time.
86
+ *
87
+ * @public
88
+ **/
89
+ constructor(pool) {
90
+ super(pool, `Connection to ${pool.address} interrupted due to server monitor timeout`);
91
+ }
92
+
93
+ get name() {
94
+ return 'PoolClearedOnNetworkError';
95
+ }
96
+
97
+ }
98
+
99
+ exports.PoolClearedOnNetworkError = PoolClearedOnNetworkError;
100
+ /**
101
+ * An error thrown when a request to check out a connection times out
102
+ * @category Error
103
+ */
104
+
105
+ class WaitQueueTimeoutError extends error_1.MongoDriverError {
106
+ /**
107
+ * **Do not use this constructor!**
108
+ *
109
+ * Meant for internal use only.
110
+ *
111
+ * @remarks
112
+ * This class is only meant to be constructed within the driver. This constructor is
113
+ * not subject to semantic versioning compatibility guarantees and may change at any time.
114
+ *
115
+ * @public
116
+ **/
117
+ constructor(message, address) {
118
+ super(message);
119
+ this.address = address;
120
+ }
121
+
122
+ get name() {
123
+ return 'MongoWaitQueueTimeoutError';
124
+ }
125
+
126
+ }
127
+
128
+ exports.WaitQueueTimeoutError = WaitQueueTimeoutError;
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LimitedSizeDocument = void 0;
7
+ exports.makeClientMetadata = makeClientMetadata;
8
+ exports.addContainerMetadata = addContainerMetadata;
9
+ exports.getFAASEnv = getFAASEnv;
10
+
11
+ const os = require("os");
12
+
13
+ const process = require("process");
14
+
15
+ const bson_1 = require("../../bson");
16
+
17
+ const error_1 = require("../../error");
18
+
19
+ const utils_1 = require("../../utils"); // eslint-disable-next-line @typescript-eslint/no-require-imports
20
+
21
+
22
+ const NODE_DRIVER_VERSION = require('../../../package.json').version;
23
+ /** @internal */
24
+
25
+
26
+ class LimitedSizeDocument {
27
+ constructor(maxSize) {
28
+ this.maxSize = maxSize;
29
+ this.document = new Map();
30
+ /** BSON overhead: Int32 + Null byte */
31
+
32
+ this.documentSize = 5;
33
+ }
34
+ /** Only adds key/value if the bsonByteLength is less than MAX_SIZE */
35
+
36
+
37
+ ifItFitsItSits(key, value) {
38
+ // The BSON byteLength of the new element is the same as serializing it to its own document
39
+ // subtracting the document size int32 and the null terminator.
40
+ const newElementSize = bson_1.BSON.serialize(new Map().set(key, value)).byteLength - 5;
41
+
42
+ if (newElementSize + this.documentSize > this.maxSize) {
43
+ return false;
44
+ }
45
+
46
+ this.documentSize += newElementSize;
47
+ this.document.set(key, value);
48
+ return true;
49
+ }
50
+
51
+ toObject() {
52
+ return bson_1.BSON.deserialize(bson_1.BSON.serialize(this.document), {
53
+ promoteLongs: false,
54
+ promoteBuffers: false,
55
+ promoteValues: false,
56
+ useBigInt64: false
57
+ });
58
+ }
59
+
60
+ }
61
+
62
+ exports.LimitedSizeDocument = LimitedSizeDocument;
63
+ /**
64
+ * From the specs:
65
+ * Implementors SHOULD cumulatively update fields in the following order until the document is under the size limit:
66
+ * 1. Omit fields from `env` except `env.name`.
67
+ * 2. Omit fields from `os` except `os.type`.
68
+ * 3. Omit the `env` document entirely.
69
+ * 4. Truncate `platform`. -- special we do not truncate this field
70
+ */
71
+
72
+ function makeClientMetadata(options) {
73
+ const metadataDocument = new LimitedSizeDocument(512);
74
+ const {
75
+ appName = ''
76
+ } = options; // Add app name first, it must be sent
77
+
78
+ if (appName.length > 0) {
79
+ const name = Buffer.byteLength(appName, 'utf8') <= 128 ? options.appName : Buffer.from(appName, 'utf8').subarray(0, 128).toString('utf8');
80
+ metadataDocument.ifItFitsItSits('application', {
81
+ name
82
+ });
83
+ }
84
+
85
+ const {
86
+ name = '',
87
+ version = '',
88
+ platform = ''
89
+ } = options.driverInfo;
90
+ const driverInfo = {
91
+ name: name.length > 0 ? `nodejs|${name}` : 'nodejs',
92
+ version: version.length > 0 ? `${NODE_DRIVER_VERSION}|${version}` : NODE_DRIVER_VERSION
93
+ };
94
+
95
+ if (!metadataDocument.ifItFitsItSits('driver', driverInfo)) {
96
+ throw new error_1.MongoInvalidArgumentError('Unable to include driverInfo name and version, metadata cannot exceed 512 bytes');
97
+ }
98
+
99
+ let runtimeInfo = getRuntimeInfo();
100
+
101
+ if (platform.length > 0) {
102
+ runtimeInfo = `${runtimeInfo}|${platform}`;
103
+ }
104
+
105
+ if (!metadataDocument.ifItFitsItSits('platform', runtimeInfo)) {
106
+ throw new error_1.MongoInvalidArgumentError('Unable to include driverInfo platform, metadata cannot exceed 512 bytes');
107
+ } // Note: order matters, os.type is last so it will be removed last if we're at maxSize
108
+
109
+
110
+ const osInfo = new Map().set('name', process.platform).set('architecture', process.arch).set('version', os.release()).set('type', os.type());
111
+
112
+ if (!metadataDocument.ifItFitsItSits('os', osInfo)) {
113
+ for (const key of osInfo.keys()) {
114
+ osInfo.delete(key);
115
+ if (osInfo.size === 0) break;
116
+ if (metadataDocument.ifItFitsItSits('os', osInfo)) break;
117
+ }
118
+ }
119
+
120
+ const faasEnv = getFAASEnv();
121
+
122
+ if (faasEnv != null) {
123
+ if (!metadataDocument.ifItFitsItSits('env', faasEnv)) {
124
+ for (const key of faasEnv.keys()) {
125
+ faasEnv.delete(key);
126
+ if (faasEnv.size === 0) break;
127
+ if (metadataDocument.ifItFitsItSits('env', faasEnv)) break;
128
+ }
129
+ }
130
+ }
131
+
132
+ return metadataDocument.toObject();
133
+ }
134
+
135
+ let dockerPromise;
136
+ /** @internal */
137
+
138
+ async function getContainerMetadata() {
139
+ const containerMetadata = {};
140
+ dockerPromise ??= (0, utils_1.fileIsAccessible)('/.dockerenv');
141
+ const isDocker = await dockerPromise;
142
+ const {
143
+ KUBERNETES_SERVICE_HOST = ''
144
+ } = process.env;
145
+ const isKubernetes = KUBERNETES_SERVICE_HOST.length > 0 ? true : false;
146
+ if (isDocker) containerMetadata.runtime = 'docker';
147
+ if (isKubernetes) containerMetadata.orchestrator = 'kubernetes';
148
+ return containerMetadata;
149
+ }
150
+ /**
151
+ * @internal
152
+ * Re-add each metadata value.
153
+ * Attempt to add new env container metadata, but keep old data if it does not fit.
154
+ */
155
+
156
+
157
+ async function addContainerMetadata(originalMetadata) {
158
+ const containerMetadata = await getContainerMetadata();
159
+ if (Object.keys(containerMetadata).length === 0) return originalMetadata;
160
+ const extendedMetadata = new LimitedSizeDocument(512);
161
+ const extendedEnvMetadata = { ...originalMetadata?.env,
162
+ container: containerMetadata
163
+ };
164
+
165
+ for (const [key, val] of Object.entries(originalMetadata)) {
166
+ if (key !== 'env') {
167
+ extendedMetadata.ifItFitsItSits(key, val);
168
+ } else {
169
+ if (!extendedMetadata.ifItFitsItSits('env', extendedEnvMetadata)) {
170
+ // add in old data if newer / extended metadata does not fit
171
+ extendedMetadata.ifItFitsItSits('env', val);
172
+ }
173
+ }
174
+ }
175
+
176
+ if (!('env' in originalMetadata)) {
177
+ extendedMetadata.ifItFitsItSits('env', extendedEnvMetadata);
178
+ }
179
+
180
+ return extendedMetadata.toObject();
181
+ }
182
+ /**
183
+ * Collects FaaS metadata.
184
+ * - `name` MUST be the last key in the Map returned.
185
+ */
186
+
187
+
188
+ function getFAASEnv() {
189
+ const {
190
+ AWS_EXECUTION_ENV = '',
191
+ AWS_LAMBDA_RUNTIME_API = '',
192
+ FUNCTIONS_WORKER_RUNTIME = '',
193
+ K_SERVICE = '',
194
+ FUNCTION_NAME = '',
195
+ VERCEL = '',
196
+ AWS_LAMBDA_FUNCTION_MEMORY_SIZE = '',
197
+ AWS_REGION = '',
198
+ FUNCTION_MEMORY_MB = '',
199
+ FUNCTION_REGION = '',
200
+ FUNCTION_TIMEOUT_SEC = '',
201
+ VERCEL_REGION = ''
202
+ } = process.env;
203
+ const isAWSFaaS = AWS_EXECUTION_ENV.startsWith('AWS_Lambda_') || AWS_LAMBDA_RUNTIME_API.length > 0;
204
+ const isAzureFaaS = FUNCTIONS_WORKER_RUNTIME.length > 0;
205
+ const isGCPFaaS = K_SERVICE.length > 0 || FUNCTION_NAME.length > 0;
206
+ const isVercelFaaS = VERCEL.length > 0; // Note: order matters, name must always be the last key
207
+
208
+ const faasEnv = new Map(); // When isVercelFaaS is true so is isAWSFaaS; Vercel inherits the AWS env
209
+
210
+ if (isVercelFaaS && !(isAzureFaaS || isGCPFaaS)) {
211
+ if (VERCEL_REGION.length > 0) {
212
+ faasEnv.set('region', VERCEL_REGION);
213
+ }
214
+
215
+ faasEnv.set('name', 'vercel');
216
+ return faasEnv;
217
+ }
218
+
219
+ if (isAWSFaaS && !(isAzureFaaS || isGCPFaaS || isVercelFaaS)) {
220
+ if (AWS_REGION.length > 0) {
221
+ faasEnv.set('region', AWS_REGION);
222
+ }
223
+
224
+ if (AWS_LAMBDA_FUNCTION_MEMORY_SIZE.length > 0 && Number.isInteger(+AWS_LAMBDA_FUNCTION_MEMORY_SIZE)) {
225
+ faasEnv.set('memory_mb', new bson_1.Int32(AWS_LAMBDA_FUNCTION_MEMORY_SIZE));
226
+ }
227
+
228
+ faasEnv.set('name', 'aws.lambda');
229
+ return faasEnv;
230
+ }
231
+
232
+ if (isAzureFaaS && !(isGCPFaaS || isAWSFaaS || isVercelFaaS)) {
233
+ faasEnv.set('name', 'azure.func');
234
+ return faasEnv;
235
+ }
236
+
237
+ if (isGCPFaaS && !(isAzureFaaS || isAWSFaaS || isVercelFaaS)) {
238
+ if (FUNCTION_REGION.length > 0) {
239
+ faasEnv.set('region', FUNCTION_REGION);
240
+ }
241
+
242
+ if (FUNCTION_MEMORY_MB.length > 0 && Number.isInteger(+FUNCTION_MEMORY_MB)) {
243
+ faasEnv.set('memory_mb', new bson_1.Int32(FUNCTION_MEMORY_MB));
244
+ }
245
+
246
+ if (FUNCTION_TIMEOUT_SEC.length > 0 && Number.isInteger(+FUNCTION_TIMEOUT_SEC)) {
247
+ faasEnv.set('timeout_sec', new bson_1.Int32(FUNCTION_TIMEOUT_SEC));
248
+ }
249
+
250
+ faasEnv.set('name', 'gcp.func');
251
+ return faasEnv;
252
+ }
253
+
254
+ return null;
255
+ }
256
+ /**
257
+ * @internal
258
+ * Get current JavaScript runtime platform
259
+ *
260
+ * NOTE: The version information fetching is intentionally written defensively
261
+ * to avoid having a released driver version that becomes incompatible
262
+ * with a future change to these global objects.
263
+ */
264
+
265
+
266
+ function getRuntimeInfo() {
267
+ if ('Deno' in globalThis) {
268
+ const version = typeof Deno?.version?.deno === 'string' ? Deno?.version?.deno : '0.0.0-unknown';
269
+ return `Deno v${version}, ${os.endianness()}`;
270
+ }
271
+
272
+ if ('Bun' in globalThis) {
273
+ const version = typeof Bun?.version === 'string' ? Bun?.version : '0.0.0-unknown';
274
+ return `Bun v${version}, ${os.endianness()}`;
275
+ }
276
+
277
+ return `Node.js ${process.version}, ${os.endianness()}`;
278
+ }