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.
- package/CHANGELOG.md +1742 -1742
- package/LICENSE +672 -672
- package/README.md +37 -37
- package/build/core/OxygenCore.js +1 -1
- package/build/core/OxygenEvents.js +1 -1
- package/build/core/OxygenModule.js +1 -1
- package/build/core/OxygenService.js +1 -1
- package/build/core/OxygenSubModule.js +1 -1
- package/build/core/WebDriverModule.js +1 -1
- package/build/core/utils.js +1 -1
- package/build/errors/HookError.js +1 -1
- package/build/errors/ModuleError.js +1 -1
- package/build/errors/ModuleUnavailableError.js +1 -1
- package/build/errors/OxygenError.js +1 -1
- package/build/errors/ScriptNotFound.js +1 -1
- package/build/errors/helper.js +2 -1
- package/build/index.js +1 -1
- package/build/lib/cli-util.js +5 -1
- package/build/lib/debugger.js +1 -1
- package/build/lib/img-merge.js +1 -1
- package/build/lib/launcher.js +1 -1
- package/build/lib/logger.js +43 -43
- package/build/lib/moduleRequire.js +1 -1
- package/build/lib/parallel-launcher.js +1 -1
- package/build/lib/param-manager.js +1 -1
- package/build/lib/param-reader-csv.js +1 -1
- package/build/lib/param-reader-excel.js +1 -1
- package/build/lib/param-reader-json.js +1 -1
- package/build/lib/text-to-image.js +1 -1
- package/build/lib/util.js +1 -1
- package/build/model/case-result.js +1 -1
- package/build/model/failure.js +1 -1
- package/build/model/status.js +1 -1
- package/build/model/step-result.js +1 -1
- package/build/model/suite-result.js +1 -1
- package/build/model/test-result.js +1 -1
- package/build/model/testcase.js +1 -1
- package/build/model/testsuite.js +1 -1
- package/build/ox_modules/index.js +9 -1
- package/build/ox_modules/module-assert.js +37 -37
- package/build/ox_modules/module-date.js +24 -24
- package/build/ox_modules/module-db.js +52 -52
- package/build/ox_modules/module-email.js +59 -59
- package/build/ox_modules/module-eyes.js +34 -34
- package/build/ox_modules/module-http/ntlm-util.js +10 -10
- package/build/ox_modules/module-http/ntlm.js +15 -15
- package/build/ox_modules/module-http.js +132 -132
- package/build/ox_modules/module-log.js +27 -27
- package/build/ox_modules/module-mailinator.js +87 -87
- package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-mob/commands/assertText.js +21 -21
- package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
- package/build/ox_modules/module-mob/commands/back.js +16 -16
- package/build/ox_modules/module-mob/commands/clear.js +19 -19
- package/build/ox_modules/module-mob/commands/click.js +17 -17
- package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
- package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
- package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/debug.js +16 -16
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
- package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
- package/build/ox_modules/module-mob/commands/execute.js +21 -21
- package/build/ox_modules/module-mob/commands/findElement.js +20 -20
- package/build/ox_modules/module-mob/commands/findElements.js +23 -23
- package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
- package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
- package/build/ox_modules/module-mob/commands/getSource.js +16 -16
- package/build/ox_modules/module-mob/commands/getText.js +18 -18
- package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
- package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
- package/build/ox_modules/module-mob/commands/getValue.js +18 -18
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
- package/build/ox_modules/module-mob/commands/index.js +1 -1
- package/build/ox_modules/module-mob/commands/installApp.js +16 -16
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
- package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
- package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
- package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
- package/build/ox_modules/module-mob/commands/isExist.js +19 -19
- package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
- package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
- package/build/ox_modules/module-mob/commands/open.js +17 -17
- package/build/ox_modules/module-mob/commands/pause.js +16 -16
- package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
- package/build/ox_modules/module-mob/commands/select.js +24 -24
- package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
- package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
- package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
- package/build/ox_modules/module-mob/commands/setContext.js +16 -16
- package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
- package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/shake.js +16 -16
- package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
- package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
- package/build/ox_modules/module-mob/commands/swipe.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-mob/commands/tap.js +17 -17
- package/build/ox_modules/module-mob/commands/type.js +20 -20
- package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
- package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-mob.js +74 -74
- package/build/ox_modules/module-mongo.js +302 -0
- package/build/ox_modules/module-pdf.js +35 -35
- package/build/ox_modules/module-proxy.js +77 -77
- package/build/ox_modules/module-serial.js +55 -55
- package/build/ox_modules/module-shell.js +25 -25
- package/build/ox_modules/module-soap.js +72 -72
- package/build/ox_modules/module-twilio.js +41 -41
- package/build/ox_modules/module-utils.js +91 -91
- package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-web/commands/assertExist.js +17 -17
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/assertText.js +21 -21
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-web/commands/assertValue.js +20 -20
- package/build/ox_modules/module-web/commands/back.js +16 -16
- package/build/ox_modules/module-web/commands/clear.js +18 -18
- package/build/ox_modules/module-web/commands/click.js +25 -25
- package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
- package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
- package/build/ox_modules/module-web/commands/debug.js +15 -15
- package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
- package/build/ox_modules/module-web/commands/deselect.js +22 -22
- package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
- package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
- package/build/ox_modules/module-web/commands/execute.js +24 -24
- package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
- package/build/ox_modules/module-web/commands/findElement.js +19 -19
- package/build/ox_modules/module-web/commands/findElements.js +22 -22
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
- package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
- package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
- package/build/ox_modules/module-web/commands/getCookies.js +13 -13
- package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
- package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
- package/build/ox_modules/module-web/commands/getHTML.js +17 -17
- package/build/ox_modules/module-web/commands/getSource.js +16 -16
- package/build/ox_modules/module-web/commands/getText.js +18 -18
- package/build/ox_modules/module-web/commands/getTitle.js +12 -12
- package/build/ox_modules/module-web/commands/getUrl.js +16 -16
- package/build/ox_modules/module-web/commands/getValue.js +18 -18
- package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
- package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
- package/build/ox_modules/module-web/commands/index.js +1 -1
- package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
- package/build/ox_modules/module-web/commands/isChecked.js +18 -18
- package/build/ox_modules/module-web/commands/isExist.js +19 -19
- package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
- package/build/ox_modules/module-web/commands/isSelected.js +23 -23
- package/build/ox_modules/module-web/commands/isVisible.js +19 -19
- package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
- package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/mock.js +20 -20
- package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
- package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
- package/build/ox_modules/module-web/commands/newWindow.js +16 -16
- package/build/ox_modules/module-web/commands/open.js +16 -16
- package/build/ox_modules/module-web/commands/pause.js +15 -15
- package/build/ox_modules/module-web/commands/point.js +21 -21
- package/build/ox_modules/module-web/commands/pointJS.js +15 -15
- package/build/ox_modules/module-web/commands/refresh.js +15 -15
- package/build/ox_modules/module-web/commands/rightClick.js +17 -17
- package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
- package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
- package/build/ox_modules/module-web/commands/select.js +23 -23
- package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
- package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
- package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
- package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
- package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-web/commands/type.js +20 -20
- package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
- package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
- package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/verifyText.js +21 -21
- package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
- package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
- package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
- package/build/ox_modules/module-web.js +94 -94
- package/build/ox_modules/module-win/commands/assertText.js +17 -17
- package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
- package/build/ox_modules/module-win/commands/assertValue.js +14 -14
- package/build/ox_modules/module-win/commands/back.js +11 -11
- package/build/ox_modules/module-win/commands/clear.js +13 -13
- package/build/ox_modules/module-win/commands/click.js +13 -13
- package/build/ox_modules/module-win/commands/clickLong.js +14 -14
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
- package/build/ox_modules/module-win/commands/findElement.js +15 -15
- package/build/ox_modules/module-win/commands/findElements.js +15 -15
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
- package/build/ox_modules/module-win/commands/getLocation.js +14 -14
- package/build/ox_modules/module-win/commands/getSource.js +12 -12
- package/build/ox_modules/module-win/commands/getText.js +14 -14
- package/build/ox_modules/module-win/commands/getValue.js +14 -14
- package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
- package/build/ox_modules/module-win/commands/index.js +1 -1
- package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
- package/build/ox_modules/module-win/commands/isChecked.js +14 -14
- package/build/ox_modules/module-win/commands/isClickable.js +14 -14
- package/build/ox_modules/module-win/commands/isExist.js +15 -15
- package/build/ox_modules/module-win/commands/isSelected.js +14 -14
- package/build/ox_modules/module-win/commands/isVisible.js +15 -15
- package/build/ox_modules/module-win/commands/open.js +13 -13
- package/build/ox_modules/module-win/commands/pause.js +12 -12
- package/build/ox_modules/module-win/commands/rightClick.js +13 -13
- package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
- package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
- package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
- package/build/ox_modules/module-win/commands/tap.js +13 -13
- package/build/ox_modules/module-win/commands/type.js +16 -16
- package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
- package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
- package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
- package/build/ox_modules/module-win.js +47 -47
- package/build/ox_modules/utils.js +8 -8
- package/build/ox_reporters/excel/template.json +48 -48
- package/build/ox_reporters/html/index.ejs +163 -163
- package/build/ox_reporters/html/summary.ejs +77 -77
- package/build/ox_reporters/html/tests-details.ejs +134 -134
- package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
- package/build/ox_reporters/reporter-excel.js +1 -1
- package/build/ox_reporters/reporter-html.js +1 -1
- package/build/ox_reporters/reporter-json.js +1 -1
- package/build/ox_reporters/reporter-junit.js +1 -1
- package/build/ox_reporters/reporter-pdf.js +1 -1
- package/build/ox_reporters/reporter-rp.js +1 -1
- package/build/ox_reporters/reporter-xml.js +1 -1
- package/build/ox_services/service-devtools/submodule-network.js +1 -1
- package/build/ox_services/service-devtools.js +1 -1
- package/build/reporter/FileReporterBase.js +1 -1
- package/build/reporter/ReportAggregator.js +13 -5
- package/build/reporter/ReporterBase.js +1 -1
- package/build/reporter/WebSocketReporter.js +1 -1
- package/build/runners/WorkerProcess.js +1 -1
- package/build/runners/cucumber/CucumberEventListener.js +1 -1
- package/build/runners/cucumber/CucumberReporter.js +1 -1
- package/build/runners/cucumber/CucumberWorker.js +1 -1
- package/build/runners/cucumber/index.js +1 -1
- package/build/runners/cucumber/worker.js +1 -1
- package/build/runners/index.js +1 -1
- package/build/runners/oxygen/OxygenWorker.js +1 -1
- package/build/runners/oxygen/index.js +1 -1
- package/build/runners/oxygen/worker.js +1 -1
- package/config/default.json +6 -6
- package/log.txt +1614 -0
- package/package.json +139 -137
- package/reports/2025-06-08_231627/report.html +440 -0
- package/reports/2025-06-09_223615/report.html +440 -0
- package/transpiled/mongodb/etc/prepare.js +18 -0
- package/transpiled/mongodb/lib/admin.js +182 -0
- package/transpiled/mongodb/lib/beta.js +26 -0
- package/transpiled/mongodb/lib/bson.js +220 -0
- package/transpiled/mongodb/lib/bulk/common.js +1041 -0
- package/transpiled/mongodb/lib/bulk/ordered.js +76 -0
- package/transpiled/mongodb/lib/bulk/unordered.js +102 -0
- package/transpiled/mongodb/lib/change_stream.js +517 -0
- package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +329 -0
- package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +779 -0
- package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +95 -0
- package/transpiled/mongodb/lib/client-side-encryption/errors.js +171 -0
- package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +98 -0
- package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +34 -0
- package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +186 -0
- package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +29 -0
- package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +58 -0
- package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +505 -0
- package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +63 -0
- package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +167 -0
- package/transpiled/mongodb/lib/cmap/auth/gssapi.js +207 -0
- package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +193 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +181 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +101 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +81 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +174 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +59 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +58 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +138 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +42 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +71 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +34 -0
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +111 -0
- package/transpiled/mongodb/lib/cmap/auth/plain.js +43 -0
- package/transpiled/mongodb/lib/cmap/auth/providers.js +22 -0
- package/transpiled/mongodb/lib/cmap/auth/scram.js +318 -0
- package/transpiled/mongodb/lib/cmap/auth/x509.js +61 -0
- package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +266 -0
- package/transpiled/mongodb/lib/cmap/commands.js +605 -0
- package/transpiled/mongodb/lib/cmap/connect.js +418 -0
- package/transpiled/mongodb/lib/cmap/connection.js +673 -0
- package/transpiled/mongodb/lib/cmap/connection_pool.js +688 -0
- package/transpiled/mongodb/lib/cmap/connection_pool_events.js +254 -0
- package/transpiled/mongodb/lib/cmap/errors.js +128 -0
- package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +278 -0
- package/transpiled/mongodb/lib/cmap/metrics.js +67 -0
- package/transpiled/mongodb/lib/cmap/stream_description.js +74 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +196 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +19 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +144 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +278 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +376 -0
- package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +49 -0
- package/transpiled/mongodb/lib/collection.js +852 -0
- package/transpiled/mongodb/lib/connection_string.js +1452 -0
- package/transpiled/mongodb/lib/constants.js +162 -0
- package/transpiled/mongodb/lib/cursor/abstract_cursor.js +1082 -0
- package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +227 -0
- package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +136 -0
- package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +69 -0
- package/transpiled/mongodb/lib/cursor/find_cursor.js +476 -0
- package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +48 -0
- package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +46 -0
- package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +30 -0
- package/transpiled/mongodb/lib/cursor/run_command_cursor.js +125 -0
- package/transpiled/mongodb/lib/db.js +467 -0
- package/transpiled/mongodb/lib/deps.js +174 -0
- package/transpiled/mongodb/lib/encrypter.js +129 -0
- package/transpiled/mongodb/lib/error.js +1550 -0
- package/transpiled/mongodb/lib/explain.js +122 -0
- package/transpiled/mongodb/lib/gridfs/download.js +369 -0
- package/transpiled/mongodb/lib/gridfs/index.js +240 -0
- package/transpiled/mongodb/lib/gridfs/upload.js +446 -0
- package/transpiled/mongodb/lib/index.js +975 -0
- package/transpiled/mongodb/lib/mongo_client.js +626 -0
- package/transpiled/mongodb/lib/mongo_client_auth_providers.js +98 -0
- package/transpiled/mongodb/lib/mongo_logger.js +812 -0
- package/transpiled/mongodb/lib/mongo_types.js +71 -0
- package/transpiled/mongodb/lib/operations/aggregate.js +129 -0
- package/transpiled/mongodb/lib/operations/bulk_write.js +48 -0
- package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +96 -0
- package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +409 -0
- package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +5 -0
- package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +144 -0
- package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +228 -0
- package/transpiled/mongodb/lib/operations/collections.js +49 -0
- package/transpiled/mongodb/lib/operations/command.js +102 -0
- package/transpiled/mongodb/lib/operations/count.js +60 -0
- package/transpiled/mongodb/lib/operations/create_collection.js +109 -0
- package/transpiled/mongodb/lib/operations/delete.js +134 -0
- package/transpiled/mongodb/lib/operations/distinct.js +77 -0
- package/transpiled/mongodb/lib/operations/drop.js +102 -0
- package/transpiled/mongodb/lib/operations/estimated_document_count.js +47 -0
- package/transpiled/mongodb/lib/operations/execute_operation.js +251 -0
- package/transpiled/mongodb/lib/operations/find.js +197 -0
- package/transpiled/mongodb/lib/operations/find_and_modify.js +191 -0
- package/transpiled/mongodb/lib/operations/get_more.js +84 -0
- package/transpiled/mongodb/lib/operations/indexes.js +197 -0
- package/transpiled/mongodb/lib/operations/insert.js +138 -0
- package/transpiled/mongodb/lib/operations/is_capped.js +44 -0
- package/transpiled/mongodb/lib/operations/kill_cursors.js +58 -0
- package/transpiled/mongodb/lib/operations/list_collections.js +66 -0
- package/transpiled/mongodb/lib/operations/list_databases.js +56 -0
- package/transpiled/mongodb/lib/operations/operation.js +88 -0
- package/transpiled/mongodb/lib/operations/options_operation.js +44 -0
- package/transpiled/mongodb/lib/operations/profiling_level.js +42 -0
- package/transpiled/mongodb/lib/operations/remove_user.js +35 -0
- package/transpiled/mongodb/lib/operations/rename.js +48 -0
- package/transpiled/mongodb/lib/operations/run_command.js +64 -0
- package/transpiled/mongodb/lib/operations/search_indexes/create.js +41 -0
- package/transpiled/mongodb/lib/operations/search_indexes/drop.js +51 -0
- package/transpiled/mongodb/lib/operations/search_indexes/update.js +40 -0
- package/transpiled/mongodb/lib/operations/set_profiling_level.js +70 -0
- package/transpiled/mongodb/lib/operations/stats.js +39 -0
- package/transpiled/mongodb/lib/operations/update.js +218 -0
- package/transpiled/mongodb/lib/operations/validate_collection.js +49 -0
- package/transpiled/mongodb/lib/read_concern.js +92 -0
- package/transpiled/mongodb/lib/read_preference.js +215 -0
- package/transpiled/mongodb/lib/resource_management.js +74 -0
- package/transpiled/mongodb/lib/sdam/common.js +53 -0
- package/transpiled/mongodb/lib/sdam/events.js +177 -0
- package/transpiled/mongodb/lib/sdam/monitor.js +656 -0
- package/transpiled/mongodb/lib/sdam/server.js +463 -0
- package/transpiled/mongodb/lib/sdam/server_description.js +196 -0
- package/transpiled/mongodb/lib/sdam/server_selection.js +283 -0
- package/transpiled/mongodb/lib/sdam/server_selection_events.js +112 -0
- package/transpiled/mongodb/lib/sdam/srv_polling.js +139 -0
- package/transpiled/mongodb/lib/sdam/topology.js +833 -0
- package/transpiled/mongodb/lib/sdam/topology_description.js +447 -0
- package/transpiled/mongodb/lib/sessions.js +988 -0
- package/transpiled/mongodb/lib/sort.js +123 -0
- package/transpiled/mongodb/lib/timeout.js +349 -0
- package/transpiled/mongodb/lib/transactions.js +149 -0
- package/transpiled/mongodb/lib/utils.js +1502 -0
- package/transpiled/mongodb/lib/write_concern.js +115 -0
- package/types/index.d.ts +70 -70
- package/types/module-eyes.d.ts +39 -39
- package/types/module-http.d.ts +163 -163
- package/types/module-log.d.ts +34 -34
- package/types/module-mob.d.ts +966 -966
- package/types/module-pdf.d.ts +40 -40
- package/types/module-proxy.d.ts +100 -100
- package/types/module-shell.d.ts +24 -24
- package/types/module-utils.d.ts +99 -99
- package/types/module-web.d.ts +1053 -1053
- package/types/module-win.d.ts +352 -352
- package/types/oxygen.d.ts +53 -53
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SetProfilingLevelOperation = exports.ProfilingLevel = void 0;
|
|
7
|
+
|
|
8
|
+
const error_1 = require("../error");
|
|
9
|
+
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
|
|
12
|
+
const command_1 = require("./command");
|
|
13
|
+
|
|
14
|
+
const levelValues = new Set(['off', 'slow_only', 'all']);
|
|
15
|
+
/** @public */
|
|
16
|
+
|
|
17
|
+
exports.ProfilingLevel = Object.freeze({
|
|
18
|
+
off: 'off',
|
|
19
|
+
slowOnly: 'slow_only',
|
|
20
|
+
all: 'all'
|
|
21
|
+
});
|
|
22
|
+
/** @internal */
|
|
23
|
+
|
|
24
|
+
class SetProfilingLevelOperation extends command_1.CommandOperation {
|
|
25
|
+
constructor(db, level, options) {
|
|
26
|
+
super(db, options);
|
|
27
|
+
this.options = options;
|
|
28
|
+
|
|
29
|
+
switch (level) {
|
|
30
|
+
case exports.ProfilingLevel.off:
|
|
31
|
+
this.profile = 0;
|
|
32
|
+
break;
|
|
33
|
+
|
|
34
|
+
case exports.ProfilingLevel.slowOnly:
|
|
35
|
+
this.profile = 1;
|
|
36
|
+
break;
|
|
37
|
+
|
|
38
|
+
case exports.ProfilingLevel.all:
|
|
39
|
+
this.profile = 2;
|
|
40
|
+
break;
|
|
41
|
+
|
|
42
|
+
default:
|
|
43
|
+
this.profile = 0;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
this.level = level;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get commandName() {
|
|
51
|
+
return 'profile';
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async execute(server, session, timeoutContext) {
|
|
55
|
+
const level = this.level;
|
|
56
|
+
|
|
57
|
+
if (!levelValues.has(level)) {
|
|
58
|
+
throw new error_1.MongoInvalidArgumentError(`Profiling level must be one of "${(0, utils_1.enumToString)(exports.ProfilingLevel)}"`);
|
|
59
|
+
} // TODO(NODE-3483): Determine error to put here
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
await super.executeCommand(server, session, {
|
|
63
|
+
profile: this.profile
|
|
64
|
+
}, timeoutContext);
|
|
65
|
+
return level;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
exports.SetProfilingLevelOperation = SetProfilingLevelOperation;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DbStatsOperation = void 0;
|
|
7
|
+
|
|
8
|
+
const command_1 = require("./command");
|
|
9
|
+
|
|
10
|
+
const operation_1 = require("./operation");
|
|
11
|
+
/** @internal */
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DbStatsOperation extends command_1.CommandOperation {
|
|
15
|
+
constructor(db, options) {
|
|
16
|
+
super(db, options);
|
|
17
|
+
this.options = options;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get commandName() {
|
|
21
|
+
return 'dbStats';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async execute(server, session, timeoutContext) {
|
|
25
|
+
const command = {
|
|
26
|
+
dbStats: true
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
if (this.options.scale != null) {
|
|
30
|
+
command.scale = this.options.scale;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return await super.executeCommand(server, session, command, timeoutContext);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.DbStatsOperation = DbStatsOperation;
|
|
39
|
+
(0, operation_1.defineAspects)(DbStatsOperation, [operation_1.Aspect.READ_OPERATION]);
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ReplaceOneOperation = exports.UpdateManyOperation = exports.UpdateOneOperation = exports.UpdateOperation = void 0;
|
|
7
|
+
exports.makeUpdateStatement = makeUpdateStatement;
|
|
8
|
+
|
|
9
|
+
const error_1 = require("../error");
|
|
10
|
+
|
|
11
|
+
const sort_1 = require("../sort");
|
|
12
|
+
|
|
13
|
+
const utils_1 = require("../utils");
|
|
14
|
+
|
|
15
|
+
const command_1 = require("./command");
|
|
16
|
+
|
|
17
|
+
const operation_1 = require("./operation");
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
* UpdateOperation is used in bulk write, while UpdateOneOperation and UpdateManyOperation are only used in the collections API
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class UpdateOperation extends command_1.CommandOperation {
|
|
25
|
+
constructor(ns, statements, options) {
|
|
26
|
+
super(undefined, options);
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.ns = ns;
|
|
29
|
+
this.statements = statements;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
get commandName() {
|
|
33
|
+
return 'update';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get canRetryWrite() {
|
|
37
|
+
if (super.canRetryWrite === false) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return this.statements.every(op => op.multi == null || op.multi === false);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async execute(server, session, timeoutContext) {
|
|
45
|
+
const options = this.options ?? {};
|
|
46
|
+
const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
|
|
47
|
+
const command = {
|
|
48
|
+
update: this.ns.collection,
|
|
49
|
+
updates: this.statements,
|
|
50
|
+
ordered
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
if (typeof options.bypassDocumentValidation === 'boolean') {
|
|
54
|
+
command.bypassDocumentValidation = options.bypassDocumentValidation;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (options.let) {
|
|
58
|
+
command.let = options.let;
|
|
59
|
+
} // we check for undefined specifically here to allow falsy values
|
|
60
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if (options.comment !== undefined) {
|
|
64
|
+
command.comment = options.comment;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const unacknowledgedWrite = this.writeConcern && this.writeConcern.w === 0;
|
|
68
|
+
|
|
69
|
+
if (unacknowledgedWrite) {
|
|
70
|
+
if (this.statements.find(o => o.hint)) {
|
|
71
|
+
// TODO(NODE-3541): fix error for hint with unacknowledged writes
|
|
72
|
+
throw new error_1.MongoCompatibilityError(`hint is not supported with unacknowledged writes`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const res = await super.executeCommand(server, session, command, timeoutContext);
|
|
77
|
+
return res;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
exports.UpdateOperation = UpdateOperation;
|
|
83
|
+
/** @internal */
|
|
84
|
+
|
|
85
|
+
class UpdateOneOperation extends UpdateOperation {
|
|
86
|
+
constructor(collection, filter, update, options) {
|
|
87
|
+
super(collection.s.namespace, [makeUpdateStatement(filter, update, { ...options,
|
|
88
|
+
multi: false
|
|
89
|
+
})], options);
|
|
90
|
+
|
|
91
|
+
if (!(0, utils_1.hasAtomicOperators)(update, options)) {
|
|
92
|
+
throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async execute(server, session, timeoutContext) {
|
|
97
|
+
const res = await super.execute(server, session, timeoutContext);
|
|
98
|
+
if (this.explain != null) return res;
|
|
99
|
+
if (res.code) throw new error_1.MongoServerError(res);
|
|
100
|
+
if (res.writeErrors) throw new error_1.MongoServerError(res.writeErrors[0]);
|
|
101
|
+
return {
|
|
102
|
+
acknowledged: this.writeConcern?.w !== 0,
|
|
103
|
+
modifiedCount: res.nModified ?? res.n,
|
|
104
|
+
upsertedId: Array.isArray(res.upserted) && res.upserted.length > 0 ? res.upserted[0]._id : null,
|
|
105
|
+
upsertedCount: Array.isArray(res.upserted) && res.upserted.length ? res.upserted.length : 0,
|
|
106
|
+
matchedCount: Array.isArray(res.upserted) && res.upserted.length > 0 ? 0 : res.n
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
exports.UpdateOneOperation = UpdateOneOperation;
|
|
113
|
+
/** @internal */
|
|
114
|
+
|
|
115
|
+
class UpdateManyOperation extends UpdateOperation {
|
|
116
|
+
constructor(collection, filter, update, options) {
|
|
117
|
+
super(collection.s.namespace, [makeUpdateStatement(filter, update, { ...options,
|
|
118
|
+
multi: true
|
|
119
|
+
})], options);
|
|
120
|
+
|
|
121
|
+
if (!(0, utils_1.hasAtomicOperators)(update, options)) {
|
|
122
|
+
throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
async execute(server, session, timeoutContext) {
|
|
127
|
+
const res = await super.execute(server, session, timeoutContext);
|
|
128
|
+
if (this.explain != null) return res;
|
|
129
|
+
if (res.code) throw new error_1.MongoServerError(res);
|
|
130
|
+
if (res.writeErrors) throw new error_1.MongoServerError(res.writeErrors[0]);
|
|
131
|
+
return {
|
|
132
|
+
acknowledged: this.writeConcern?.w !== 0,
|
|
133
|
+
modifiedCount: res.nModified ?? res.n,
|
|
134
|
+
upsertedId: Array.isArray(res.upserted) && res.upserted.length > 0 ? res.upserted[0]._id : null,
|
|
135
|
+
upsertedCount: Array.isArray(res.upserted) && res.upserted.length ? res.upserted.length : 0,
|
|
136
|
+
matchedCount: Array.isArray(res.upserted) && res.upserted.length > 0 ? 0 : res.n
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
exports.UpdateManyOperation = UpdateManyOperation;
|
|
143
|
+
/** @internal */
|
|
144
|
+
|
|
145
|
+
class ReplaceOneOperation extends UpdateOperation {
|
|
146
|
+
constructor(collection, filter, replacement, options) {
|
|
147
|
+
super(collection.s.namespace, [makeUpdateStatement(filter, replacement, { ...options,
|
|
148
|
+
multi: false
|
|
149
|
+
})], options);
|
|
150
|
+
|
|
151
|
+
if ((0, utils_1.hasAtomicOperators)(replacement)) {
|
|
152
|
+
throw new error_1.MongoInvalidArgumentError('Replacement document must not contain atomic operators');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
async execute(server, session, timeoutContext) {
|
|
157
|
+
const res = await super.execute(server, session, timeoutContext);
|
|
158
|
+
if (this.explain != null) return res;
|
|
159
|
+
if (res.code) throw new error_1.MongoServerError(res);
|
|
160
|
+
if (res.writeErrors) throw new error_1.MongoServerError(res.writeErrors[0]);
|
|
161
|
+
return {
|
|
162
|
+
acknowledged: this.writeConcern?.w !== 0,
|
|
163
|
+
modifiedCount: res.nModified ?? res.n,
|
|
164
|
+
upsertedId: Array.isArray(res.upserted) && res.upserted.length > 0 ? res.upserted[0]._id : null,
|
|
165
|
+
upsertedCount: Array.isArray(res.upserted) && res.upserted.length ? res.upserted.length : 0,
|
|
166
|
+
matchedCount: Array.isArray(res.upserted) && res.upserted.length > 0 ? 0 : res.n
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
exports.ReplaceOneOperation = ReplaceOneOperation;
|
|
173
|
+
|
|
174
|
+
function makeUpdateStatement(filter, update, options) {
|
|
175
|
+
if (filter == null || typeof filter !== 'object') {
|
|
176
|
+
throw new error_1.MongoInvalidArgumentError('Selector must be a valid JavaScript object');
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (update == null || typeof update !== 'object') {
|
|
180
|
+
throw new error_1.MongoInvalidArgumentError('Document must be a valid JavaScript object');
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const op = {
|
|
184
|
+
q: filter,
|
|
185
|
+
u: update
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
if (typeof options.upsert === 'boolean') {
|
|
189
|
+
op.upsert = options.upsert;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (options.multi) {
|
|
193
|
+
op.multi = options.multi;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (options.hint) {
|
|
197
|
+
op.hint = options.hint;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (options.arrayFilters) {
|
|
201
|
+
op.arrayFilters = options.arrayFilters;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (options.collation) {
|
|
205
|
+
op.collation = options.collation;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (!options.multi && options.sort != null) {
|
|
209
|
+
op.sort = (0, sort_1.formatSort)(options.sort);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return op;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
(0, operation_1.defineAspects)(UpdateOperation, [operation_1.Aspect.RETRYABLE, operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.SKIP_COLLATION]);
|
|
216
|
+
(0, operation_1.defineAspects)(UpdateOneOperation, [operation_1.Aspect.RETRYABLE, operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.EXPLAINABLE, operation_1.Aspect.SKIP_COLLATION]);
|
|
217
|
+
(0, operation_1.defineAspects)(UpdateManyOperation, [operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.EXPLAINABLE, operation_1.Aspect.SKIP_COLLATION]);
|
|
218
|
+
(0, operation_1.defineAspects)(ReplaceOneOperation, [operation_1.Aspect.RETRYABLE, operation_1.Aspect.WRITE_OPERATION, operation_1.Aspect.SKIP_COLLATION]);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ValidateCollectionOperation = void 0;
|
|
7
|
+
|
|
8
|
+
const error_1 = require("../error");
|
|
9
|
+
|
|
10
|
+
const command_1 = require("./command");
|
|
11
|
+
/** @internal */
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ValidateCollectionOperation extends command_1.CommandOperation {
|
|
15
|
+
constructor(admin, collectionName, options) {
|
|
16
|
+
// Decorate command with extra options
|
|
17
|
+
const command = {
|
|
18
|
+
validate: collectionName
|
|
19
|
+
};
|
|
20
|
+
const keys = Object.keys(options);
|
|
21
|
+
|
|
22
|
+
for (let i = 0; i < keys.length; i++) {
|
|
23
|
+
if (Object.prototype.hasOwnProperty.call(options, keys[i]) && keys[i] !== 'session') {
|
|
24
|
+
command[keys[i]] = options[keys[i]];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
super(admin.s.db, options);
|
|
29
|
+
this.options = options;
|
|
30
|
+
this.command = command;
|
|
31
|
+
this.collectionName = collectionName;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get commandName() {
|
|
35
|
+
return 'validate';
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async execute(server, session, timeoutContext) {
|
|
39
|
+
const collectionName = this.collectionName;
|
|
40
|
+
const doc = await super.executeCommand(server, session, this.command, timeoutContext);
|
|
41
|
+
if (doc.result != null && typeof doc.result !== 'string') throw new error_1.MongoUnexpectedServerResponseError('Error with validation data');
|
|
42
|
+
if (doc.result != null && doc.result.match(/exception|corrupt/) != null) throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
|
|
43
|
+
if (doc.valid != null && !doc.valid) throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
|
|
44
|
+
return doc;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.ValidateCollectionOperation = ValidateCollectionOperation;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ReadConcern = exports.ReadConcernLevel = void 0;
|
|
7
|
+
/** @public */
|
|
8
|
+
|
|
9
|
+
exports.ReadConcernLevel = Object.freeze({
|
|
10
|
+
local: 'local',
|
|
11
|
+
majority: 'majority',
|
|
12
|
+
linearizable: 'linearizable',
|
|
13
|
+
available: 'available',
|
|
14
|
+
snapshot: 'snapshot'
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* The MongoDB ReadConcern, which allows for control of the consistency and isolation properties
|
|
18
|
+
* of the data read from replica sets and replica set shards.
|
|
19
|
+
* @public
|
|
20
|
+
*
|
|
21
|
+
* @see https://www.mongodb.com/docs/manual/reference/read-concern/index.html
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class ReadConcern {
|
|
25
|
+
/** Constructs a ReadConcern from the read concern level.*/
|
|
26
|
+
constructor(level) {
|
|
27
|
+
/**
|
|
28
|
+
* A spec test exists that allows level to be any string.
|
|
29
|
+
* "invalid readConcern with out stage"
|
|
30
|
+
* @see ./test/spec/crud/v2/aggregate-out-readConcern.json
|
|
31
|
+
* @see https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.md#unknown-levels-and-additional-options-for-string-based-readconcerns
|
|
32
|
+
*/
|
|
33
|
+
this.level = exports.ReadConcernLevel[level] ?? level;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Construct a ReadConcern given an options object.
|
|
37
|
+
*
|
|
38
|
+
* @param options - The options object from which to extract the write concern.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
static fromOptions(options) {
|
|
43
|
+
if (options == null) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (options.readConcern) {
|
|
48
|
+
const {
|
|
49
|
+
readConcern
|
|
50
|
+
} = options;
|
|
51
|
+
|
|
52
|
+
if (readConcern instanceof ReadConcern) {
|
|
53
|
+
return readConcern;
|
|
54
|
+
} else if (typeof readConcern === 'string') {
|
|
55
|
+
return new ReadConcern(readConcern);
|
|
56
|
+
} else if ('level' in readConcern && readConcern.level) {
|
|
57
|
+
return new ReadConcern(readConcern.level);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (options.level) {
|
|
62
|
+
return new ReadConcern(options.level);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static get MAJORITY() {
|
|
69
|
+
return exports.ReadConcernLevel.majority;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static get AVAILABLE() {
|
|
73
|
+
return exports.ReadConcernLevel.available;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static get LINEARIZABLE() {
|
|
77
|
+
return exports.ReadConcernLevel.linearizable;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static get SNAPSHOT() {
|
|
81
|
+
return exports.ReadConcernLevel.snapshot;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
toJSON() {
|
|
85
|
+
return {
|
|
86
|
+
level: this.level
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
exports.ReadConcern = ReadConcern;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ReadPreference = exports.ReadPreferenceMode = void 0;
|
|
7
|
+
|
|
8
|
+
const error_1 = require("./error");
|
|
9
|
+
/** @public */
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.ReadPreferenceMode = Object.freeze({
|
|
13
|
+
primary: 'primary',
|
|
14
|
+
primaryPreferred: 'primaryPreferred',
|
|
15
|
+
secondary: 'secondary',
|
|
16
|
+
secondaryPreferred: 'secondaryPreferred',
|
|
17
|
+
nearest: 'nearest'
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* The **ReadPreference** class is a class that represents a MongoDB ReadPreference and is
|
|
21
|
+
* used to construct connections.
|
|
22
|
+
* @public
|
|
23
|
+
*
|
|
24
|
+
* @see https://www.mongodb.com/docs/manual/core/read-preference/
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
class ReadPreference {
|
|
28
|
+
/**
|
|
29
|
+
* @param mode - A string describing the read preference mode (primary|primaryPreferred|secondary|secondaryPreferred|nearest)
|
|
30
|
+
* @param tags - A tag set used to target reads to members with the specified tag(s). tagSet is not available if using read preference mode primary.
|
|
31
|
+
* @param options - Additional read preference options
|
|
32
|
+
*/
|
|
33
|
+
constructor(mode, tags, options) {
|
|
34
|
+
if (!ReadPreference.isValid(mode)) {
|
|
35
|
+
throw new error_1.MongoInvalidArgumentError(`Invalid read preference mode ${JSON.stringify(mode)}`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (options == null && typeof tags === 'object' && !Array.isArray(tags)) {
|
|
39
|
+
options = tags;
|
|
40
|
+
tags = undefined;
|
|
41
|
+
} else if (tags && !Array.isArray(tags)) {
|
|
42
|
+
throw new error_1.MongoInvalidArgumentError('ReadPreference tags must be an array');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.mode = mode;
|
|
46
|
+
this.tags = tags;
|
|
47
|
+
this.hedge = options?.hedge;
|
|
48
|
+
this.maxStalenessSeconds = undefined;
|
|
49
|
+
this.minWireVersion = undefined;
|
|
50
|
+
options = options ?? {};
|
|
51
|
+
|
|
52
|
+
if (options.maxStalenessSeconds != null) {
|
|
53
|
+
if (options.maxStalenessSeconds <= 0) {
|
|
54
|
+
throw new error_1.MongoInvalidArgumentError('maxStalenessSeconds must be a positive integer');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this.maxStalenessSeconds = options.maxStalenessSeconds; // NOTE: The minimum required wire version is 5 for this read preference. If the existing
|
|
58
|
+
// topology has a lower value then a MongoError will be thrown during server selection.
|
|
59
|
+
|
|
60
|
+
this.minWireVersion = 5;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (this.mode === ReadPreference.PRIMARY) {
|
|
64
|
+
if (this.tags && Array.isArray(this.tags) && this.tags.length > 0) {
|
|
65
|
+
throw new error_1.MongoInvalidArgumentError('Primary read preference cannot be combined with tags');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (this.maxStalenessSeconds) {
|
|
69
|
+
throw new error_1.MongoInvalidArgumentError('Primary read preference cannot be combined with maxStalenessSeconds');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (this.hedge) {
|
|
73
|
+
throw new error_1.MongoInvalidArgumentError('Primary read preference cannot be combined with hedge');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
} // Support the deprecated `preference` property introduced in the porcelain layer
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
get preference() {
|
|
80
|
+
return this.mode;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static fromString(mode) {
|
|
84
|
+
return new ReadPreference(mode);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Construct a ReadPreference given an options object.
|
|
88
|
+
*
|
|
89
|
+
* @param options - The options object from which to extract the read preference.
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
static fromOptions(options) {
|
|
94
|
+
if (!options) return;
|
|
95
|
+
const readPreference = options.readPreference ?? options.session?.transaction.options.readPreference;
|
|
96
|
+
const readPreferenceTags = options.readPreferenceTags;
|
|
97
|
+
|
|
98
|
+
if (readPreference == null) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (typeof readPreference === 'string') {
|
|
103
|
+
return new ReadPreference(readPreference, readPreferenceTags, {
|
|
104
|
+
maxStalenessSeconds: options.maxStalenessSeconds,
|
|
105
|
+
hedge: options.hedge
|
|
106
|
+
});
|
|
107
|
+
} else if (!(readPreference instanceof ReadPreference) && typeof readPreference === 'object') {
|
|
108
|
+
const mode = readPreference.mode || readPreference.preference;
|
|
109
|
+
|
|
110
|
+
if (mode && typeof mode === 'string') {
|
|
111
|
+
return new ReadPreference(mode, readPreference.tags ?? readPreferenceTags, {
|
|
112
|
+
maxStalenessSeconds: readPreference.maxStalenessSeconds,
|
|
113
|
+
hedge: options.hedge
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (readPreferenceTags) {
|
|
119
|
+
readPreference.tags = readPreferenceTags;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return readPreference;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Replaces options.readPreference with a ReadPreference instance
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
static translate(options) {
|
|
130
|
+
if (options.readPreference == null) return options;
|
|
131
|
+
const r = options.readPreference;
|
|
132
|
+
|
|
133
|
+
if (typeof r === 'string') {
|
|
134
|
+
options.readPreference = new ReadPreference(r);
|
|
135
|
+
} else if (r && !(r instanceof ReadPreference) && typeof r === 'object') {
|
|
136
|
+
const mode = r.mode || r.preference;
|
|
137
|
+
|
|
138
|
+
if (mode && typeof mode === 'string') {
|
|
139
|
+
options.readPreference = new ReadPreference(mode, r.tags, {
|
|
140
|
+
maxStalenessSeconds: r.maxStalenessSeconds
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
} else if (!(r instanceof ReadPreference)) {
|
|
144
|
+
throw new error_1.MongoInvalidArgumentError(`Invalid read preference: ${r}`);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return options;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Validate if a mode is legal
|
|
151
|
+
*
|
|
152
|
+
* @param mode - The string representing the read preference mode.
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
static isValid(mode) {
|
|
157
|
+
const VALID_MODES = new Set([ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST, null]);
|
|
158
|
+
return VALID_MODES.has(mode);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Validate if a mode is legal
|
|
162
|
+
*
|
|
163
|
+
* @param mode - The string representing the read preference mode.
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
isValid(mode) {
|
|
168
|
+
return ReadPreference.isValid(typeof mode === 'string' ? mode : this.mode);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Indicates that this readPreference needs the "SecondaryOk" bit when sent over the wire
|
|
172
|
+
* @see https://www.mongodb.com/docs/manual/reference/mongodb-wire-protocol/#op-query
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
secondaryOk() {
|
|
177
|
+
const NEEDS_SECONDARYOK = new Set([ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST]);
|
|
178
|
+
return NEEDS_SECONDARYOK.has(this.mode);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Check if the two ReadPreferences are equivalent
|
|
182
|
+
*
|
|
183
|
+
* @param readPreference - The read preference with which to check equality
|
|
184
|
+
*/
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
equals(readPreference) {
|
|
188
|
+
return readPreference.mode === this.mode;
|
|
189
|
+
}
|
|
190
|
+
/** Return JSON representation */
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
toJSON() {
|
|
194
|
+
const readPreference = {
|
|
195
|
+
mode: this.mode
|
|
196
|
+
};
|
|
197
|
+
if (Array.isArray(this.tags)) readPreference.tags = this.tags;
|
|
198
|
+
if (this.maxStalenessSeconds) readPreference.maxStalenessSeconds = this.maxStalenessSeconds;
|
|
199
|
+
if (this.hedge) readPreference.hedge = this.hedge;
|
|
200
|
+
return readPreference;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
exports.ReadPreference = ReadPreference;
|
|
206
|
+
ReadPreference.PRIMARY = exports.ReadPreferenceMode.primary;
|
|
207
|
+
ReadPreference.PRIMARY_PREFERRED = exports.ReadPreferenceMode.primaryPreferred;
|
|
208
|
+
ReadPreference.SECONDARY = exports.ReadPreferenceMode.secondary;
|
|
209
|
+
ReadPreference.SECONDARY_PREFERRED = exports.ReadPreferenceMode.secondaryPreferred;
|
|
210
|
+
ReadPreference.NEAREST = exports.ReadPreferenceMode.nearest;
|
|
211
|
+
ReadPreference.primary = new ReadPreference(exports.ReadPreferenceMode.primary);
|
|
212
|
+
ReadPreference.primaryPreferred = new ReadPreference(exports.ReadPreferenceMode.primaryPreferred);
|
|
213
|
+
ReadPreference.secondary = new ReadPreference(exports.ReadPreferenceMode.secondary);
|
|
214
|
+
ReadPreference.secondaryPreferred = new ReadPreference(exports.ReadPreferenceMode.secondaryPreferred);
|
|
215
|
+
ReadPreference.nearest = new ReadPreference(exports.ReadPreferenceMode.nearest);
|