oxygen-cli 1.25.0-beta.2 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/pre-commit +4 -0
- package/CHANGELOG.md +65 -0
- package/build/core/OxygenCore.js +36 -257
- package/build/core/OxygenEvents.js +1 -11
- package/build/core/OxygenModule.js +1 -14
- package/build/core/OxygenService.js +1 -12
- package/build/core/OxygenSubModule.js +1 -10
- package/build/core/WebDriverModule.js +1 -30
- package/build/core/utils.js +1 -17
- package/build/errors/HookError.js +1 -7
- package/build/errors/ModuleError.js +1 -7
- package/build/errors/ModuleUnavailableError.js +1 -3
- package/build/errors/OxygenError.js +1 -33
- package/build/errors/ScriptNotFound.js +1 -7
- package/build/errors/helper.js +46 -77
- package/build/index.js +6 -18
- package/build/lib/cli-util.js +28 -90
- package/build/lib/cli.js +1 -23
- package/build/lib/debugger.js +1 -144
- package/build/lib/img-merge.js +1 -15
- package/build/lib/launcher.js +1 -28
- package/build/lib/moduleRequire.js +1 -4
- package/build/lib/param-manager.js +1 -28
- package/build/lib/param-reader-csv.js +1 -15
- package/build/lib/param-reader-excel.js +1 -14
- package/build/lib/param-reader-json.js +1 -10
- package/build/lib/util.js +3 -58
- package/build/model/case-result.js +1 -2
- package/build/model/failure.js +1 -2
- package/build/model/status.js +1 -2
- package/build/model/step-result.js +1 -2
- package/build/model/suite-result.js +1 -2
- package/build/model/test-result.js +1 -2
- package/build/model/testcase.js +1 -2
- package/build/model/testsuite.js +1 -2
- package/build/ox_modules/index.js +13 -33
- package/build/ox_modules/module-assert.js +8 -24
- package/build/ox_modules/module-date.js +3 -8
- package/build/ox_modules/module-db.js +7 -28
- package/build/ox_modules/module-email.js +10 -36
- package/build/ox_modules/module-eyes.js +5 -46
- package/build/ox_modules/module-http.js +42 -104
- package/build/ox_modules/module-log.js +5 -22
- package/build/ox_modules/module-mailinator.js +10 -32
- package/build/ox_modules/module-mob/commands/alertAccept.js +1 -2
- package/build/ox_modules/module-mob/commands/alertDismiss.js +1 -2
- package/build/ox_modules/module-mob/commands/assertAlert.js +1 -6
- package/build/ox_modules/module-mob/commands/assertText.js +1 -3
- package/build/ox_modules/module-mob/commands/assertTitle.js +1 -4
- package/build/ox_modules/module-mob/commands/assertValue.js +9 -15
- package/build/ox_modules/module-mob/commands/back.js +1 -2
- package/build/ox_modules/module-mob/commands/clear.js +1 -4
- package/build/ox_modules/module-mob/commands/click.js +3 -4
- package/build/ox_modules/module-mob/commands/clickHidden.js +3 -9
- package/build/ox_modules/module-mob/commands/clickLong.js +1 -2
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +1 -4
- package/build/ox_modules/module-mob/commands/closeApp.js +1 -2
- package/build/ox_modules/module-mob/commands/debug.js +2 -2
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +1 -2
- package/build/ox_modules/module-mob/commands/enableNetwork.js +4 -12
- package/build/ox_modules/module-mob/commands/execute.js +1 -2
- package/build/ox_modules/module-mob/commands/findElement.js +1 -3
- package/build/ox_modules/module-mob/commands/findElements.js +1 -4
- package/build/ox_modules/module-mob/commands/getAlertText.js +1 -2
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +1 -2
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +1 -10
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +1 -2
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +1 -2
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +1 -9
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +1 -2
- package/build/ox_modules/module-mob/commands/getLocation.js +1 -2
- package/build/ox_modules/module-mob/commands/getSource.js +1 -2
- package/build/ox_modules/module-mob/commands/getText.js +1 -4
- package/build/ox_modules/module-mob/commands/getTitle.js +1 -2
- package/build/ox_modules/module-mob/commands/getUrl.js +1 -2
- package/build/ox_modules/module-mob/commands/getValue.js +5 -9
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +1 -2
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +1 -2
- package/build/ox_modules/module-mob/commands/index.js +19 -94
- package/build/ox_modules/module-mob/commands/installApp.js +1 -2
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +1 -2
- package/build/ox_modules/module-mob/commands/isCheckable.js +1 -2
- package/build/ox_modules/module-mob/commands/isChecked.js +1 -2
- package/build/ox_modules/module-mob/commands/isClickable.js +1 -2
- package/build/ox_modules/module-mob/commands/isExist.js +1 -3
- package/build/ox_modules/module-mob/commands/isSelected.js +1 -2
- package/build/ox_modules/module-mob/commands/isVisible.js +1 -3
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +1 -2
- package/build/ox_modules/module-mob/commands/launchApp.js +1 -2
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +1 -2
- package/build/ox_modules/module-mob/commands/open.js +1 -3
- package/build/ox_modules/module-mob/commands/pause.js +1 -2
- package/build/ox_modules/module-mob/commands/removeApp.js +1 -2
- package/build/ox_modules/module-mob/commands/resetApp.js +1 -2
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +1 -6
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +1 -2
- package/build/ox_modules/module-mob/commands/select.js +1 -4
- package/build/ox_modules/module-mob/commands/selectFrame.js +1 -4
- package/build/ox_modules/module-mob/commands/selectWindow.js +5 -26
- package/build/ox_modules/module-mob/commands/sendKeys.js +6 -9
- package/build/ox_modules/module-mob/commands/setContext.js +1 -2
- package/build/ox_modules/module-mob/commands/setNativeContext.js +1 -2
- package/build/ox_modules/module-mob/commands/setTimeout.js +1 -2
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +3 -6
- package/build/ox_modules/module-mob/commands/shake.js +1 -2
- package/build/ox_modules/module-mob/commands/smsClickLink.js +1 -2
- package/build/ox_modules/module-mob/commands/smsGetText.js +3 -6
- package/build/ox_modules/module-mob/commands/swipe.js +1 -2
- package/build/ox_modules/module-mob/commands/swipeElement.js +1 -2
- package/build/ox_modules/module-mob/commands/swipeScreen.js +1 -2
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +1 -2
- package/build/ox_modules/module-mob/commands/tap.js +1 -2
- package/build/ox_modules/module-mob/commands/type.js +3 -7
- package/build/ox_modules/module-mob/commands/unlockPattern.js +9 -10
- package/build/ox_modules/module-mob/commands/waitForExist.js +1 -2
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +1 -3
- package/build/ox_modules/module-mob/commands/waitForVisible.js +1 -2
- package/build/ox_modules/module-mob.js +72 -142
- package/build/ox_modules/module-pdf.js +23 -62
- package/build/ox_modules/module-proxy.js +8 -68
- package/build/ox_modules/module-serial.js +7 -32
- package/build/ox_modules/module-shell.js +8 -27
- package/build/ox_modules/module-soap.js +14 -47
- package/build/ox_modules/module-twilio.js +10 -53
- package/build/ox_modules/module-utils.js +16 -51
- package/build/ox_modules/module-web/commands/alertAccept.js +1 -2
- package/build/ox_modules/module-web/commands/alertDismiss.js +1 -2
- package/build/ox_modules/module-web/commands/assertAlert.js +1 -6
- package/build/ox_modules/module-web/commands/assertExist.js +1 -2
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +1 -4
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +1 -3
- package/build/ox_modules/module-web/commands/assertText.js +1 -3
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +1 -6
- package/build/ox_modules/module-web/commands/assertTextPresent.js +1 -6
- package/build/ox_modules/module-web/commands/assertTitle.js +1 -3
- package/build/ox_modules/module-web/commands/assertValue.js +1 -3
- package/build/ox_modules/module-web/commands/back.js +1 -2
- package/build/ox_modules/module-web/commands/clear.js +1 -5
- package/build/ox_modules/module-web/commands/click.js +4 -13
- package/build/ox_modules/module-web/commands/clickHidden.js +2 -7
- package/build/ox_modules/module-web/commands/closeWindow.js +1 -2
- package/build/ox_modules/module-web/commands/debug.js +2 -2
- package/build/ox_modules/module-web/commands/deleteCookies.js +1 -2
- package/build/ox_modules/module-web/commands/deselect.js +1 -2
- package/build/ox_modules/module-web/commands/doubleClick.js +3 -9
- package/build/ox_modules/module-web/commands/dragAndDrop.js +1 -2
- package/build/ox_modules/module-web/commands/execute.js +1 -2
- package/build/ox_modules/module-web/commands/fileBrowse.js +4 -10
- package/build/ox_modules/module-web/commands/findElement.js +1 -3
- package/build/ox_modules/module-web/commands/findElements.js +1 -4
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +1 -2
- package/build/ox_modules/module-web/commands/getAlertText.js +1 -2
- package/build/ox_modules/module-web/commands/getAttribute.js +1 -4
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +1 -3
- package/build/ox_modules/module-web/commands/getCookies.js +1 -2
- package/build/ox_modules/module-web/commands/getCssValue.js +1 -4
- package/build/ox_modules/module-web/commands/getElementCount.js +1 -2
- package/build/ox_modules/module-web/commands/getHTML.js +1 -2
- package/build/ox_modules/module-web/commands/getSource.js +1 -2
- package/build/ox_modules/module-web/commands/getText.js +1 -4
- package/build/ox_modules/module-web/commands/getTitle.js +1 -2
- package/build/ox_modules/module-web/commands/getUrl.js +1 -2
- package/build/ox_modules/module-web/commands/getValue.js +1 -5
- package/build/ox_modules/module-web/commands/getWindowHandles.js +1 -2
- package/build/ox_modules/module-web/commands/getWindowSize.js +1 -2
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +1 -5
- package/build/ox_modules/module-web/commands/index.js +26 -99
- package/build/ox_modules/module-web/commands/isAlertPresent.js +1 -2
- package/build/ox_modules/module-web/commands/isChecked.js +1 -2
- package/build/ox_modules/module-web/commands/isExist.js +1 -3
- package/build/ox_modules/module-web/commands/isInteractable.js +33 -0
- package/build/ox_modules/module-web/commands/isSelected.js +1 -2
- package/build/ox_modules/module-web/commands/isVisible.js +1 -3
- package/build/ox_modules/module-web/commands/makeVisible.js +2 -10
- package/build/ox_modules/module-web/commands/maximizeWindow.js +1 -2
- package/build/ox_modules/module-web/commands/minimizeWindow.js +1 -2
- package/build/ox_modules/module-web/commands/newWindow.js +1 -2
- package/build/ox_modules/module-web/commands/open.js +1 -4
- package/build/ox_modules/module-web/commands/pause.js +1 -2
- package/build/ox_modules/module-web/commands/point.js +1 -2
- package/build/ox_modules/module-web/commands/pointJS.js +2 -8
- package/build/ox_modules/module-web/commands/refresh.js +1 -2
- package/build/ox_modules/module-web/commands/rightClick.js +3 -8
- package/build/ox_modules/module-web/commands/rightClickActions.js +1 -2
- package/build/ox_modules/module-web/commands/scrollToElement.js +1 -2
- package/build/ox_modules/module-web/commands/select.js +1 -5
- package/build/ox_modules/module-web/commands/selectFrame.js +1 -3
- package/build/ox_modules/module-web/commands/selectWindow.js +5 -26
- package/build/ox_modules/module-web/commands/sendKeys.js +3 -6
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +2 -2
- package/build/ox_modules/module-web/commands/setTimeout.js +1 -2
- package/build/ox_modules/module-web/commands/setWindowSize.js +1 -2
- package/build/ox_modules/module-web/commands/takeScreenshot.js +3 -5
- package/build/ox_modules/module-web/commands/type.js +1 -5
- package/build/ox_modules/module-web/commands/waitForAngular.js +6 -11
- package/build/ox_modules/module-web/commands/waitForExist.js +1 -2
- package/build/ox_modules/module-web/commands/waitForInteractable.js +1 -2
- package/build/ox_modules/module-web/commands/waitForNotExist.js +1 -8
- package/build/ox_modules/module-web/commands/waitForNotText.js +3 -5
- package/build/ox_modules/module-web/commands/waitForNotValue.js +3 -5
- package/build/ox_modules/module-web/commands/waitForText.js +3 -5
- package/build/ox_modules/module-web/commands/waitForValue.js +3 -5
- package/build/ox_modules/module-web/commands/waitForVisible.js +1 -2
- package/build/ox_modules/module-web/commands/waitForWindow.js +4 -21
- package/build/ox_modules/module-web.js +86 -192
- package/build/ox_modules/module-win/commands/assertText.js +1 -3
- package/build/ox_modules/module-win/commands/assertTitle.js +1 -4
- package/build/ox_modules/module-win/commands/assertValue.js +9 -15
- package/build/ox_modules/module-win/commands/back.js +1 -2
- package/build/ox_modules/module-win/commands/clear.js +1 -4
- package/build/ox_modules/module-win/commands/click.js +1 -2
- package/build/ox_modules/module-win/commands/clickLong.js +1 -2
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +1 -4
- package/build/ox_modules/module-win/commands/findElement.js +1 -3
- package/build/ox_modules/module-win/commands/findElements.js +1 -4
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +1 -2
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +1 -2
- package/build/ox_modules/module-win/commands/getLocation.js +1 -2
- package/build/ox_modules/module-win/commands/getSource.js +1 -2
- package/build/ox_modules/module-win/commands/getText.js +1 -4
- package/build/ox_modules/module-win/commands/getValue.js +5 -9
- package/build/ox_modules/module-win/commands/getWindowHandles.js +1 -2
- package/build/ox_modules/module-win/commands/index.js +5 -43
- package/build/ox_modules/module-win/commands/isCheckable.js +1 -2
- package/build/ox_modules/module-win/commands/isChecked.js +1 -2
- package/build/ox_modules/module-win/commands/isClickable.js +1 -2
- package/build/ox_modules/module-win/commands/isExist.js +1 -3
- package/build/ox_modules/module-win/commands/isSelected.js +1 -2
- package/build/ox_modules/module-win/commands/isVisible.js +1 -3
- package/build/ox_modules/module-win/commands/open.js +1 -2
- package/build/ox_modules/module-win/commands/pause.js +1 -2
- package/build/ox_modules/module-win/commands/rightClick.js +1 -2
- package/build/ox_modules/module-win/commands/selectWindow.js +1 -15
- package/build/ox_modules/module-win/commands/sendKeys.js +1 -4
- package/build/ox_modules/module-win/commands/setTimeout.js +1 -2
- package/build/ox_modules/module-win/commands/takeScreenshot.js +1 -2
- package/build/ox_modules/module-win/commands/tap.js +1 -2
- package/build/ox_modules/module-win/commands/type.js +1 -4
- package/build/ox_modules/module-win/commands/waitForExist.js +1 -2
- package/build/ox_modules/module-win/commands/waitForInteractable.js +1 -4
- package/build/ox_modules/module-win/commands/waitForVisible.js +1 -2
- package/build/ox_modules/module-win.js +48 -87
- package/build/ox_modules/utils.js +22 -76
- package/build/ox_reporters/reporter-excel.js +1 -58
- package/build/ox_reporters/reporter-html.js +1 -28
- package/build/ox_reporters/reporter-json.js +1 -14
- package/build/ox_reporters/reporter-junit.js +1 -24
- package/build/ox_reporters/reporter-pdf.js +1 -19
- package/build/ox_reporters/reporter-xml.js +1 -17
- package/build/ox_services/service-devtools/submodule-network.js +3 -84
- package/build/ox_services/service-devtools.js +1 -23
- package/build/reporter/FileReporterBase.js +5 -44
- package/build/reporter/ReportAggregator.js +1 -65
- package/build/reporter/ReporterBase.js +1 -6
- package/build/runners/WorkerProcess.js +1 -99
- package/build/runners/cucumber/CucumberEventListener.js +4 -29
- package/build/runners/cucumber/CucumberReporter.js +1 -56
- package/build/runners/cucumber/CucumberWorker.js +1 -66
- package/build/runners/cucumber/index.js +1 -30
- package/build/runners/cucumber/worker.js +1 -18
- package/build/runners/index.js +1 -6
- package/build/runners/oxygen/OxygenWorker.js +20 -54
- package/build/runners/oxygen/index.js +17 -177
- package/build/runners/oxygen/worker.js +2 -25
- package/package.json +28 -29
package/build/model/testsuite.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
module.exports = function () {
|
|
6
5
|
return {
|
|
7
6
|
name: null,
|
|
@@ -12,4 +11,4 @@ module.exports = function () {
|
|
|
12
11
|
poManager: null
|
|
13
12
|
};
|
|
14
13
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibmFtZSIsImlkIiwiaXRlcmF0aW9uQ291bnQiLCJjYXNlcyIsInBhcmFtTWFuYWdlciIsInBvTWFuYWdlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC90ZXN0c3VpdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogbnVsbCxcclxuICAgICAgICBpZDogbnVsbCxcclxuICAgICAgICBpdGVyYXRpb25Db3VudDogMSxcclxuICAgICAgICBjYXNlczogW10sXHJcbiAgICAgICAgcGFyYW1NYW5hZ2VyOiBudWxsLFxyXG4gICAgICAgIHBvTWFuYWdlcjogbnVsbFxyXG4gICAgfTtcclxufTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7QUFTQUEsTUFBTSxDQUFDQyxPQUFPLEdBQUcsWUFBWTtFQUN6QixPQUFPO0lBQ0hDLElBQUksRUFBRSxJQUFJO0lBQ1ZDLEVBQUUsRUFBRSxJQUFJO0lBQ1JDLGNBQWMsRUFBRSxDQUFDO0lBQ2pCQyxLQUFLLEVBQUUsRUFBRTtJQUNUQyxZQUFZLEVBQUUsSUFBSTtJQUNsQkMsU0FBUyxFQUFFO0VBQ2YsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -63,6 +63,12 @@ Object.defineProperty(exports, "pdf", {
|
|
|
63
63
|
return _modulePdf.default;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
+
Object.defineProperty(exports, "proxy", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _moduleProxy.default;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
66
72
|
Object.defineProperty(exports, "serial", {
|
|
67
73
|
enumerable: true,
|
|
68
74
|
get: function () {
|
|
@@ -87,68 +93,42 @@ Object.defineProperty(exports, "twilio", {
|
|
|
87
93
|
return _moduleTwilio.default;
|
|
88
94
|
}
|
|
89
95
|
});
|
|
90
|
-
Object.defineProperty(exports, "
|
|
91
|
-
enumerable: true,
|
|
92
|
-
get: function () {
|
|
93
|
-
return _moduleWeb.default;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
Object.defineProperty(exports, "win", {
|
|
96
|
+
Object.defineProperty(exports, "utils", {
|
|
97
97
|
enumerable: true,
|
|
98
98
|
get: function () {
|
|
99
|
-
return
|
|
99
|
+
return _moduleUtils.default;
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
|
-
Object.defineProperty(exports, "
|
|
102
|
+
Object.defineProperty(exports, "web", {
|
|
103
103
|
enumerable: true,
|
|
104
104
|
get: function () {
|
|
105
|
-
return
|
|
105
|
+
return _moduleWeb.default;
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
|
-
Object.defineProperty(exports, "
|
|
108
|
+
Object.defineProperty(exports, "win", {
|
|
109
109
|
enumerable: true,
|
|
110
110
|
get: function () {
|
|
111
|
-
return
|
|
111
|
+
return _moduleWin.default;
|
|
112
112
|
}
|
|
113
113
|
});
|
|
114
|
-
|
|
115
114
|
require("source-map-support/register");
|
|
116
|
-
|
|
117
115
|
var _moduleAssert = _interopRequireDefault(require("./module-assert"));
|
|
118
|
-
|
|
119
116
|
var _moduleDate = _interopRequireDefault(require("./module-date"));
|
|
120
|
-
|
|
121
117
|
var _moduleDb = _interopRequireDefault(require("./module-db"));
|
|
122
|
-
|
|
123
118
|
var _moduleEmail = _interopRequireDefault(require("./module-email"));
|
|
124
|
-
|
|
125
119
|
var _moduleEyes = _interopRequireDefault(require("./module-eyes"));
|
|
126
|
-
|
|
127
120
|
var _moduleHttp = _interopRequireDefault(require("./module-http"));
|
|
128
|
-
|
|
129
121
|
var _moduleLog = _interopRequireDefault(require("./module-log"));
|
|
130
|
-
|
|
131
122
|
var _moduleMailinator = _interopRequireDefault(require("./module-mailinator"));
|
|
132
|
-
|
|
133
123
|
var _moduleMob = _interopRequireDefault(require("./module-mob"));
|
|
134
|
-
|
|
135
124
|
var _modulePdf = _interopRequireDefault(require("./module-pdf"));
|
|
136
|
-
|
|
137
125
|
var _moduleSerial = _interopRequireDefault(require("./module-serial"));
|
|
138
|
-
|
|
139
126
|
var _moduleShell = _interopRequireDefault(require("./module-shell"));
|
|
140
|
-
|
|
141
127
|
var _moduleSoap = _interopRequireDefault(require("./module-soap"));
|
|
142
|
-
|
|
143
128
|
var _moduleTwilio = _interopRequireDefault(require("./module-twilio"));
|
|
144
|
-
|
|
145
129
|
var _moduleWeb = _interopRequireDefault(require("./module-web"));
|
|
146
|
-
|
|
147
130
|
var _moduleWin = _interopRequireDefault(require("./module-win"));
|
|
148
|
-
|
|
149
131
|
var _moduleProxy = _interopRequireDefault(require("./module-proxy"));
|
|
150
|
-
|
|
151
132
|
var _moduleUtils = _interopRequireDefault(require("./module-utils"));
|
|
152
|
-
|
|
153
133
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
154
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL294X21vZHVsZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtkZWZhdWx0IGFzIGFzc2VydH0gZnJvbSAnLi9tb2R1bGUtYXNzZXJ0JztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIGRhdGV9IGZyb20gJy4vbW9kdWxlLWRhdGUnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgZGJ9IGZyb20gJy4vbW9kdWxlLWRiJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIGVtYWlsfSBmcm9tICcuL21vZHVsZS1lbWFpbCc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBleWVzfSBmcm9tICcuL21vZHVsZS1leWVzJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIGh0dHB9IGZyb20gJy4vbW9kdWxlLWh0dHAnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgbG9nfSBmcm9tICcuL21vZHVsZS1sb2cnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgbWFpbGluYXRvcn0gZnJvbSAnLi9tb2R1bGUtbWFpbGluYXRvcic7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBtb2J9IGZyb20gJy4vbW9kdWxlLW1vYic7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwZGZ9IGZyb20gJy4vbW9kdWxlLXBkZic7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzZXJpYWx9IGZyb20gJy4vbW9kdWxlLXNlcmlhbCc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzaGVsbH0gZnJvbSAnLi9tb2R1bGUtc2hlbGwnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgc29hcH0gZnJvbSAnLi9tb2R1bGUtc29hcCc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyB0d2lsaW99IGZyb20gJy4vbW9kdWxlLXR3aWxpbyc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyB3ZWJ9IGZyb20gJy4vbW9kdWxlLXdlYic7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyB3aW59IGZyb20gJy4vbW9kdWxlLXdpbic7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBwcm94eX0gZnJvbSAnLi9tb2R1bGUtcHJveHknO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgdXRpbHN9IGZyb20gJy4vbW9kdWxlLXV0aWxzJzsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFnRCJ9
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
6
|
/*
|
|
10
7
|
* Copyright (C) 2015-present CloudBeat Limited
|
|
11
8
|
*
|
|
@@ -19,20 +16,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
16
|
* @name assert
|
|
20
17
|
* @description Provides generic assertion methods.
|
|
21
18
|
*/
|
|
22
|
-
const chai = require('chai');
|
|
23
19
|
|
|
20
|
+
const chai = require('chai');
|
|
24
21
|
const errHelper = require('../errors/helper');
|
|
25
|
-
/*global ox*/
|
|
26
22
|
|
|
23
|
+
/*global ox*/
|
|
27
24
|
|
|
28
25
|
module.exports = function () {
|
|
29
26
|
module.isInitialized = function () {
|
|
30
27
|
return true;
|
|
31
28
|
};
|
|
32
|
-
|
|
33
29
|
module._takeScreenshotSilent = function (name) {
|
|
34
30
|
var mod;
|
|
35
|
-
|
|
36
31
|
if (ox && ox.modules && ox.modules.mob && ox.modules.mob.getDriver && ox.modules.mob.getDriver()) {
|
|
37
32
|
mod = ox.modules.mob;
|
|
38
33
|
} else if (ox && ox.modules && ox.modules.web && ox.modules.web.getDriver && ox.modules.web.getDriver()) {
|
|
@@ -40,18 +35,16 @@ module.exports = function () {
|
|
|
40
35
|
} else if (ox && ox.modules && ox.modules.win && ox.modules.win.getDriver && ox.modules.win.getDriver()) {
|
|
41
36
|
mod = ox.modules.win;
|
|
42
37
|
}
|
|
43
|
-
|
|
44
38
|
if (mod && mod._takeScreenshotSilent) {
|
|
45
39
|
return mod._takeScreenshotSilent();
|
|
46
40
|
} else {
|
|
47
41
|
return null;
|
|
48
42
|
}
|
|
49
|
-
};
|
|
50
|
-
|
|
43
|
+
};
|
|
51
44
|
|
|
45
|
+
// take screenshot on error if either web, mob, or win module is initialized
|
|
52
46
|
module._takeScreenshot = function (name) {
|
|
53
47
|
var mod;
|
|
54
|
-
|
|
55
48
|
if (ox && ox.modules && ox.modules.mob && ox.modules.mob.getDriver && ox.modules.mob.getDriver()) {
|
|
56
49
|
mod = ox.modules.mob;
|
|
57
50
|
} else if (ox && ox.modules && ox.modules.web && ox.modules.web.getDriver && ox.modules.web.getDriver()) {
|
|
@@ -59,9 +52,9 @@ module.exports = function () {
|
|
|
59
52
|
} else if (ox && ox.modules && ox.modules.win && ox.modules.win.getDriver && ox.modules.win.getDriver()) {
|
|
60
53
|
mod = ox.modules.win;
|
|
61
54
|
}
|
|
62
|
-
|
|
63
55
|
return mod ? mod.takeScreenshot() : null;
|
|
64
56
|
};
|
|
57
|
+
|
|
65
58
|
/**
|
|
66
59
|
* @summary Asserts that the string value contains a substring.
|
|
67
60
|
* @function contain
|
|
@@ -69,8 +62,6 @@ module.exports = function () {
|
|
|
69
62
|
* @param {String} contains - Verbatim string to be contained.
|
|
70
63
|
* @param {String=} message - Message to throw if assertion fails.
|
|
71
64
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
65
|
module.contain = function (actual, contains, message) {
|
|
75
66
|
try {
|
|
76
67
|
chai.expect(actual).to.contain(contains, message);
|
|
@@ -78,6 +69,7 @@ module.exports = function () {
|
|
|
78
69
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, e.message);
|
|
79
70
|
}
|
|
80
71
|
};
|
|
72
|
+
|
|
81
73
|
/**
|
|
82
74
|
* @summary Asserts that two values are equal (non-strict equality).
|
|
83
75
|
* @function equal
|
|
@@ -85,8 +77,6 @@ module.exports = function () {
|
|
|
85
77
|
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
86
78
|
* @param {String=} message - Message to throw if assertion fails.
|
|
87
79
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
80
|
module.equal = function (actual, expected, message) {
|
|
91
81
|
try {
|
|
92
82
|
if (expected && typeof expected === 'string' && expected.indexOf('regex:') === 0) {
|
|
@@ -106,8 +96,6 @@ module.exports = function () {
|
|
|
106
96
|
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
107
97
|
* @param {String=} message - Message to throw if assertion fails.
|
|
108
98
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
99
|
module.notEqual = function (actual, expected, message) {
|
|
112
100
|
try {
|
|
113
101
|
if (expected && typeof expected === 'string' && expected.indexOf('regex:') === 0) {
|
|
@@ -125,22 +113,18 @@ module.exports = function () {
|
|
|
125
113
|
* @function fail
|
|
126
114
|
* @param {String=} message - Error message to return.
|
|
127
115
|
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
116
|
module.fail = function (message) {
|
|
131
117
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, message);
|
|
132
118
|
};
|
|
119
|
+
|
|
133
120
|
/**
|
|
134
121
|
* @summary Passes the test with the given message.
|
|
135
122
|
* @function pass
|
|
136
123
|
* @param {String=} message - Message to return.
|
|
137
124
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
125
|
module.pass = function (message) {
|
|
141
126
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_PASSED, message);
|
|
142
127
|
};
|
|
143
|
-
|
|
144
128
|
return module;
|
|
145
129
|
};
|
|
146
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1hc3NlcnQuanMiXSwibmFtZXMiOlsiY2hhaSIsInJlcXVpcmUiLCJlcnJIZWxwZXIiLCJtb2R1bGUiLCJleHBvcnRzIiwiaXNJbml0aWFsaXplZCIsIl90YWtlU2NyZWVuc2hvdFNpbGVudCIsIm5hbWUiLCJtb2QiLCJveCIsIm1vZHVsZXMiLCJtb2IiLCJnZXREcml2ZXIiLCJ3ZWIiLCJ3aW4iLCJfdGFrZVNjcmVlbnNob3QiLCJ0YWtlU2NyZWVuc2hvdCIsImNvbnRhaW4iLCJhY3R1YWwiLCJjb250YWlucyIsIm1lc3NhZ2UiLCJleHBlY3QiLCJ0byIsImUiLCJPeEVycm9yIiwiZXJyb3JDb2RlIiwiQVNTRVJUX0VSUk9SIiwiZXF1YWwiLCJleHBlY3RlZCIsImluZGV4T2YiLCJyZWdleCIsIlJlZ0V4cCIsInN1YnN0cmluZyIsImxlbmd0aCIsImFzc2VydCIsIm1hdGNoIiwibm90RXF1YWwiLCJub3RNYXRjaCIsImZhaWwiLCJwYXNzIiwiQVNTRVJUX1BBU1NFRCJdLCJtYXBwaW5ncyI6Ijs7OztBQWVBOzs7O0FBZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBRUEsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUMsa0JBQUQsQ0FBekI7QUFFQTs7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFXO0FBQ3hCRCxFQUFBQSxNQUFNLENBQUNFLGFBQVAsR0FBdUIsWUFBVztBQUM5QixXQUFPLElBQVA7QUFDSCxHQUZEOztBQUlBRixFQUFBQSxNQUFNLENBQUNHLHFCQUFQLEdBQStCLFVBQVNDLElBQVQsRUFBZTtBQUMxQyxRQUFJQyxHQUFKOztBQUNBLFFBQUlDLEVBQUUsSUFBSUEsRUFBRSxDQUFDQyxPQUFULElBQW9CRCxFQUFFLENBQUNDLE9BQUgsQ0FB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Q29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBhc3NlcnRcclxuICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIGdlbmVyaWMgYXNzZXJ0aW9uIG1ldGhvZHMuXHJcbiAqL1xyXG5cclxuY29uc3QgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxuY29uc3QgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG5cclxuLypnbG9iYWwgb3gqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5fdGFrZVNjcmVlbnNob3RTaWxlbnQgPSBmdW5jdGlvbihuYW1lKSB7XHJcbiAgICAgICAgdmFyIG1vZDtcclxuICAgICAgICBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLm1vYiAmJiBveC5tb2R1bGVzLm1vYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy5tb2I7XHJcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2ViICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndlYjtcclxuICAgICAgICB9IGVsc2UgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy53aW4gJiYgb3gubW9kdWxlcy53aW4uZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMud2luO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX3Rha2VTY3JlZW5zaG90U2lsZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2QuX3Rha2VTY3JlZW5zaG90U2lsZW50KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyB0YWtlIHNjcmVlbnNob3Qgb24gZXJyb3IgaWYgZWl0aGVyIHdlYiwgbW9iLCBvciB3aW4gbW9kdWxlIGlzIGluaXRpYWxpemVkXHJcbiAgICBtb2R1bGUuX3Rha2VTY3JlZW5zaG90ID0gZnVuY3Rpb24obmFtZSkge1xyXG4gICAgICAgIHZhciBtb2Q7XHJcbiAgICAgICAgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy5tb2IgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMubW9iLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMubW9iO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLndlYiAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy53ZWIuZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy53ZWI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2luICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndpbi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndpbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1vZCA/IG1vZC50YWtlU2NyZWVuc2hvdCgpIDogbnVsbDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnRzIHRoYXQgdGhlIHN0cmluZyB2YWx1ZSBjb250YWlucyBhIHN1YnN0cmluZy5cclxuICAgICAqIEBmdW5jdGlvbiBjb250YWluXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gYWN0dWFsIC0gQWN0dWFsIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGNvbnRhaW5zIC0gVmVyYmF0aW0gc3RyaW5nIHRvIGJlIGNvbnRhaW5lZC4gXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHRocm93IGlmIGFzc2VydGlvbiBmYWlscy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmNvbnRhaW4gPSBmdW5jdGlvbihhY3R1YWwsIGNvbnRhaW5zLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY2hhaS5leHBlY3QoYWN0dWFsKS50by5jb250YWluKGNvbnRhaW5zLCBtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBlcXVhbCAobm9uLXN0cmljdCBlcXVhbGl0eSkuXHJcbiAgICAgKiBAZnVuY3Rpb24gZXF1YWxcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY3R1YWwgLSBBY3R1YWwgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXhwZWN0ZWQgLSBFeHBlY3RlZCB2YWx1ZS4gRWl0aGVyIGFuIG9iamVjdCBvciBhIHN0cmluZyBwcmVmaXhlZCB3aXRoIGByZWdleDpgLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byB0aHJvdyBpZiBhc3NlcnRpb24gZmFpbHMuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5lcXVhbCA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWQgJiYgdHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiBleHBlY3RlZC5pbmRleE9mKCdyZWdleDonKSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleHBlY3RlZC5zdWJzdHJpbmcoJ3JlZ2V4OicubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICBjaGFpLmFzc2VydC5tYXRjaChhY3R1YWwsIHJlZ2V4LCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0LmVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBub3QgZXF1YWwgKG5vbi1zdHJpY3QgaW5lcXVhbGl0eSkuXHJcbiAgICAgKiBAZnVuY3Rpb24gbm90RXF1YWxcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY3R1YWwgLSBBY3R1YWwgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXhwZWN0ZWQgLSBFeHBlY3RlZCB2YWx1ZS4gRWl0aGVyIGFuIG9iamVjdCBvciBhIHN0cmluZyBwcmVmaXhlZCB3aXRoIGByZWdleDpgLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byB0aHJvdyBpZiBhc3NlcnRpb24gZmFpbHMuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5ub3RFcXVhbCA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWQgJiYgdHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiBleHBlY3RlZC5pbmRleE9mKCdyZWdleDonKSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleHBlY3RlZC5zdWJzdHJpbmcoJ3JlZ2V4OicubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICBjaGFpLmFzc2VydC5ub3RNYXRjaChhY3R1YWwsIHJlZ2V4LCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0Lm5vdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEZhaWxzIHRlc3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS5cclxuICAgICAqIEBmdW5jdGlvbiBmYWlsXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlIHRvIHJldHVybi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmZhaWwgPSBmdW5jdGlvbihtZXNzYWdlKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIG1lc3NhZ2UpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBhc3NlcyB0aGUgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLlxyXG4gICAgICogQGZ1bmN0aW9uIHBhc3NcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gbWVzc2FnZSAtIE1lc3NhZ2UgdG8gcmV0dXJuLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUucGFzcyA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcclxuICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9QQVNTRUQsIG1lc3NhZ2UpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFpIiwicmVxdWlyZSIsImVyckhlbHBlciIsIm1vZHVsZSIsImV4cG9ydHMiLCJpc0luaXRpYWxpemVkIiwiX3Rha2VTY3JlZW5zaG90U2lsZW50IiwibmFtZSIsIm1vZCIsIm94IiwibW9kdWxlcyIsIm1vYiIsImdldERyaXZlciIsIndlYiIsIndpbiIsIl90YWtlU2NyZWVuc2hvdCIsInRha2VTY3JlZW5zaG90IiwiY29udGFpbiIsImFjdHVhbCIsImNvbnRhaW5zIiwibWVzc2FnZSIsImV4cGVjdCIsInRvIiwiZSIsIk94RXJyb3IiLCJlcnJvckNvZGUiLCJBU1NFUlRfRVJST1IiLCJlcXVhbCIsImV4cGVjdGVkIiwiaW5kZXhPZiIsInJlZ2V4IiwiUmVnRXhwIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiYXNzZXJ0IiwibWF0Y2giLCJub3RFcXVhbCIsIm5vdE1hdGNoIiwiZmFpbCIsInBhc3MiLCJBU1NFUlRfUEFTU0VEIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL294X21vZHVsZXMvbW9kdWxlLWFzc2VydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBhc3NlcnRcclxuICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIGdlbmVyaWMgYXNzZXJ0aW9uIG1ldGhvZHMuXHJcbiAqL1xyXG5cclxuY29uc3QgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxuY29uc3QgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG5cclxuLypnbG9iYWwgb3gqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5fdGFrZVNjcmVlbnNob3RTaWxlbnQgPSBmdW5jdGlvbihuYW1lKSB7XHJcbiAgICAgICAgdmFyIG1vZDtcclxuICAgICAgICBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLm1vYiAmJiBveC5tb2R1bGVzLm1vYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy5tb2I7XHJcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2ViICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndlYjtcclxuICAgICAgICB9IGVsc2UgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy53aW4gJiYgb3gubW9kdWxlcy53aW4uZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMud2luO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX3Rha2VTY3JlZW5zaG90U2lsZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2QuX3Rha2VTY3JlZW5zaG90U2lsZW50KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyB0YWtlIHNjcmVlbnNob3Qgb24gZXJyb3IgaWYgZWl0aGVyIHdlYiwgbW9iLCBvciB3aW4gbW9kdWxlIGlzIGluaXRpYWxpemVkXHJcbiAgICBtb2R1bGUuX3Rha2VTY3JlZW5zaG90ID0gZnVuY3Rpb24obmFtZSkge1xyXG4gICAgICAgIHZhciBtb2Q7XHJcbiAgICAgICAgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy5tb2IgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMubW9iLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMubW9iO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLndlYiAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy53ZWIuZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy53ZWI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2luICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndpbi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndpbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1vZCA/IG1vZC50YWtlU2NyZWVuc2hvdCgpIDogbnVsbDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnRzIHRoYXQgdGhlIHN0cmluZyB2YWx1ZSBjb250YWlucyBhIHN1YnN0cmluZy5cclxuICAgICAqIEBmdW5jdGlvbiBjb250YWluXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gYWN0dWFsIC0gQWN0dWFsIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGNvbnRhaW5zIC0gVmVyYmF0aW0gc3RyaW5nIHRvIGJlIGNvbnRhaW5lZC4gXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHRocm93IGlmIGFzc2VydGlvbiBmYWlscy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmNvbnRhaW4gPSBmdW5jdGlvbihhY3R1YWwsIGNvbnRhaW5zLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY2hhaS5leHBlY3QoYWN0dWFsKS50by5jb250YWluKGNvbnRhaW5zLCBtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBlcXVhbCAobm9uLXN0cmljdCBlcXVhbGl0eSkuXHJcbiAgICAgKiBAZnVuY3Rpb24gZXF1YWxcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY3R1YWwgLSBBY3R1YWwgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXhwZWN0ZWQgLSBFeHBlY3RlZCB2YWx1ZS4gRWl0aGVyIGFuIG9iamVjdCBvciBhIHN0cmluZyBwcmVmaXhlZCB3aXRoIGByZWdleDpgLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byB0aHJvdyBpZiBhc3NlcnRpb24gZmFpbHMuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5lcXVhbCA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWQgJiYgdHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiBleHBlY3RlZC5pbmRleE9mKCdyZWdleDonKSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleHBlY3RlZC5zdWJzdHJpbmcoJ3JlZ2V4OicubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICBjaGFpLmFzc2VydC5tYXRjaChhY3R1YWwsIHJlZ2V4LCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0LmVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBub3QgZXF1YWwgKG5vbi1zdHJpY3QgaW5lcXVhbGl0eSkuXHJcbiAgICAgKiBAZnVuY3Rpb24gbm90RXF1YWxcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY3R1YWwgLSBBY3R1YWwgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXhwZWN0ZWQgLSBFeHBlY3RlZCB2YWx1ZS4gRWl0aGVyIGFuIG9iamVjdCBvciBhIHN0cmluZyBwcmVmaXhlZCB3aXRoIGByZWdleDpgLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byB0aHJvdyBpZiBhc3NlcnRpb24gZmFpbHMuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5ub3RFcXVhbCA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWQgJiYgdHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiBleHBlY3RlZC5pbmRleE9mKCdyZWdleDonKSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleHBlY3RlZC5zdWJzdHJpbmcoJ3JlZ2V4OicubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICBjaGFpLmFzc2VydC5ub3RNYXRjaChhY3R1YWwsIHJlZ2V4LCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0Lm5vdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEZhaWxzIHRlc3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS5cclxuICAgICAqIEBmdW5jdGlvbiBmYWlsXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlIHRvIHJldHVybi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmZhaWwgPSBmdW5jdGlvbihtZXNzYWdlKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIG1lc3NhZ2UpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBhc3NlcyB0aGUgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLlxyXG4gICAgICogQGZ1bmN0aW9uIHBhc3NcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gbWVzc2FnZSAtIE1lc3NhZ2UgdG8gcmV0dXJuLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUucGFzcyA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcclxuICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9QQVNTRUQsIG1lc3NhZ2UpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQWVBO0FBQTRDO0FBZjVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBRTVCLE1BQU1DLFNBQVMsR0FBR0QsT0FBTyxDQUFDLGtCQUFrQixDQUFDOztBQUU3Qzs7QUFFQUUsTUFBTSxDQUFDQyxPQUFPLEdBQUcsWUFBVztFQUN4QkQsTUFBTSxDQUFDRSxhQUFhLEdBQUcsWUFBVztJQUM5QixPQUFPLElBQUk7RUFDZixDQUFDO0VBRURGLE1BQU0sQ0FBQ0cscUJBQXFCLEdBQUcsVUFBU0MsSUFBSSxFQUFFO0lBQzFDLElBQUlDLEdBQUc7SUFDUCxJQUFJQyxFQUFFLElBQUlBLEVBQUUsQ0FBQ0MsT0FBTyxJQUFJRCxFQUFFLENBQUNDLE9BQU8sQ0FBQ0MsR0FBRyxJQUFJRixFQUFFLENBQUNDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxTQUFTLElBQUlILEVBQUUsQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFNBQVMsRUFBRSxFQUFFO01BQzlGSixHQUFHLEdBQUdDLEVBQUUsQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHO0lBQ3hCLENBQUMsTUFBTSxJQUFJRixFQUFFLElBQUlBLEVBQUUsQ0FBQ0MsT0FBTyxJQUFJRCxFQUFFLENB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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
/*
|
|
6
5
|
* Copyright (C) 2015-2018 CloudBeat Limited
|
|
7
6
|
*
|
|
@@ -19,8 +18,8 @@ module.exports = function () {
|
|
|
19
18
|
module.isInitialized = function () {
|
|
20
19
|
return true;
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
var moment = require('moment');
|
|
22
|
+
|
|
24
23
|
/**
|
|
25
24
|
* @summary Returns current date and time
|
|
26
25
|
* @description See http://momentjs.com/docs/#/displaying/format/ for supported format strings.
|
|
@@ -28,11 +27,10 @@ module.exports = function () {
|
|
|
28
27
|
* @param {String} format - Format string.
|
|
29
28
|
* @return {String} Date formatted according to the specified format string.
|
|
30
29
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
30
|
module.now = function (format) {
|
|
34
31
|
return moment().format(format);
|
|
35
32
|
};
|
|
33
|
+
|
|
36
34
|
/**
|
|
37
35
|
* @summary Returns a future or a past date
|
|
38
36
|
* @function fromNow
|
|
@@ -41,8 +39,6 @@ module.exports = function () {
|
|
|
41
39
|
* @param {String} format - Format string.
|
|
42
40
|
* @return {String} Date formatted according to the specified format string.
|
|
43
41
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
42
|
module.fromNow = function (unit, value, format) {
|
|
47
43
|
if (value < 0) {
|
|
48
44
|
return moment().subtract(-value, unit).format(format);
|
|
@@ -50,7 +46,6 @@ module.exports = function () {
|
|
|
50
46
|
return moment().add(value, unit).format(format);
|
|
51
47
|
}
|
|
52
48
|
};
|
|
53
|
-
|
|
54
49
|
return module;
|
|
55
50
|
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiaXNJbml0aWFsaXplZCIsIm1vbWVudCIsInJlcXVpcmUiLCJub3ciLCJmb3JtYXQiLCJmcm9tTm93IiwidW5pdCIsInZhbHVlIiwic3VidHJhY3QiLCJhZGQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvb3hfbW9kdWxlcy9tb2R1bGUtZGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBkYXRlXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggZGF0ZXMuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgbW9kdWxlLmlzSW5pdGlhbGl6ZWQgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcblxyXG4gICAgdmFyIG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBjdXJyZW50IGRhdGUgYW5kIHRpbWVcclxuICAgICAqIEBkZXNjcmlwdGlvbiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9kb2NzLyMvZGlzcGxheWluZy9mb3JtYXQvIGZvciBzdXBwb3J0ZWQgZm9ybWF0IHN0cmluZ3MuXHJcbiAgICAgKiBAZnVuY3Rpb24gbm93XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IC0gRm9ybWF0IHN0cmluZy5cclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gRGF0ZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLm5vdyA9IGZ1bmN0aW9uKGZvcm1hdCkge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoKS5mb3JtYXQoZm9ybWF0KTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgZnV0dXJlIG9yIGEgcGFzdCBkYXRlXHJcbiAgICAgKiBAZnVuY3Rpb24gZnJvbU5vd1xyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVuaXQgLSBVbml0IHR5cGUuIFNlZSBodHRwOi8vbW9tZW50anMuY29tL2RvY3MvIy9tYW5pcHVsYXRpbmcvYWRkL1xyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHZhbHVlIC0gTnVtYmVyIG9mIG1pbnV0ZXMvZGF5cy9tb250aHMvZXRjIHRvIGFkZCBvciBzdWJ0cmFjdCBmcm9tIHRoZSBjdXJyZW50IGRhdGUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IC0gRm9ybWF0IHN0cmluZy5cclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gRGF0ZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmZyb21Ob3cgPSBmdW5jdGlvbih1bml0LCB2YWx1ZSwgZm9ybWF0KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KCkuc3VidHJhY3QoLXZhbHVlLCB1bml0KS5mb3JtYXQoZm9ybWF0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KCkuYWRkKHZhbHVlLCB1bml0KS5mb3JtYXQoZm9ybWF0KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBtb2R1bGU7XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQU8sR0FBRyxZQUFXO0VBQ3hCRCxNQUFNLENBQUNFLGFBQWEsR0FBRyxZQUFXO0lBQzlCLE9BQU8sSUFBSTtFQUNmLENBQUM7RUFFRCxJQUFJQyxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFRLENBQUM7O0VBRTlCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0lKLE1BQU0sQ0FBQ0ssR0FBRyxHQUFHLFVBQVNDLE1BQU0sRUFBRTtJQUMxQixPQUFPSCxNQUFNLEVBQUUsQ0FBQ0csTUFBTSxDQUFDQSxNQUFNLENBQUM7RUFDbEMsQ0FBQzs7RUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0lOLE1BQU0sQ0FBQ08sT0FBTyxHQUFHLFVBQVNDLElBQUksRUFBRUMsS0FBSyxFQUFFSCxNQUFNLEVBQUU7SUFDM0MsSUFBSUcsS0FBSyxHQUFHLENBQUMsRUFBRTtNQUNYLE9BQU9OLE1BQU0sRUFBRSxDQUFDTyxRQUFRLENBQUMsQ0FBQ0QsS0FBSyxFQUFFRCxJQUFJLENBQUMsQ0FBQ0YsTUFBTSxDQUFDQSxNQUFNLENBQUM7SUFDekQsQ0FBQyxNQUFNO01BQ0gsT0FBT0gsTUFBTSxFQUFFLENBQUNRLEdBQUcsQ0FBQ0YsS0FBSyxFQUFFRCxJQUFJLENBQUMsQ0FBQ0YsTUFBTSxDQUFDQSxNQUFNLENBQUM7SUFDbkQ7RUFDSixDQUFDO0VBRUQsT0FBT04sTUFBTTtBQUNqQixDQUFDIn0=
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
6
|
/*
|
|
10
7
|
* Copyright (C) 2015-present CloudBeat Limited
|
|
11
8
|
*
|
|
@@ -23,39 +20,34 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
23
20
|
* * OS X - `brew install unixodbc`
|
|
24
21
|
* * Linux - `sudo apt-get install unixodbc unixodbc-dev` or `sudo dnf install unixODBC unixODBC-devel`
|
|
25
22
|
*/
|
|
26
|
-
var connection;
|
|
27
23
|
|
|
24
|
+
var connection;
|
|
28
25
|
var errHelper = require('../errors/helper');
|
|
29
|
-
|
|
30
26
|
module.exports = function () {
|
|
31
27
|
// FIXME: change setConnectionString to init and add hadnling in here
|
|
32
28
|
module.isInitialized = function () {
|
|
33
29
|
return true;
|
|
34
30
|
};
|
|
35
|
-
|
|
36
31
|
module._openDbConn = async function () {
|
|
37
32
|
if (!this.connString) {
|
|
38
33
|
throw new _OxygenError.default(errHelper.errorCode.DB_CONNECTION_ERROR, 'No connection string specified. Use db.setConnectionString().');
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
try {
|
|
42
36
|
// ignore this module if odbc wasn't installed
|
|
43
37
|
var db;
|
|
44
|
-
|
|
45
38
|
try {
|
|
46
39
|
db = require('odbc');
|
|
47
40
|
} catch (e) {
|
|
48
41
|
// could happen only on unix due to missing unixodbc binaries
|
|
49
42
|
const ModuleUnavailableError = require('../errors/ModuleUnavailableError');
|
|
50
|
-
|
|
51
43
|
throw new ModuleUnavailableError('Unable to load DB module. ' + e.message);
|
|
52
44
|
}
|
|
53
|
-
|
|
54
45
|
connection = await db.connect(this.connString);
|
|
55
46
|
} catch (e) {
|
|
56
47
|
throw new _OxygenError.default(errHelper.errorCode.DB_CONNECTION_ERROR, errHelper.getDbErrorMessage(e));
|
|
57
48
|
}
|
|
58
49
|
};
|
|
50
|
+
|
|
59
51
|
/**
|
|
60
52
|
* @summary Sets DB connection string to be used by other methods.
|
|
61
53
|
* @description This method doesn't actually open the connection as it's opened/closed
|
|
@@ -68,11 +60,10 @@ module.exports = function () {
|
|
|
68
60
|
* @function setConnectionString
|
|
69
61
|
* @param {String} connString - ODBC connection string.
|
|
70
62
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
63
|
module.setConnectionString = function (connString) {
|
|
74
64
|
module.connString = connString;
|
|
75
65
|
};
|
|
66
|
+
|
|
76
67
|
/**
|
|
77
68
|
* @summary Executes SQL query and returns the first column of the first row in the result set.
|
|
78
69
|
* @function getScalar
|
|
@@ -80,18 +71,13 @@ module.exports = function () {
|
|
|
80
71
|
* @return {Object} The first column of the first row in the result set, or null if the result
|
|
81
72
|
* set is empty.
|
|
82
73
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
74
|
module.getScalar = async function (query) {
|
|
86
75
|
await module._openDbConn();
|
|
87
|
-
|
|
88
76
|
try {
|
|
89
77
|
var resultSet = await connection.query(query);
|
|
90
|
-
|
|
91
78
|
if (resultSet.length === 0) {
|
|
92
79
|
return null;
|
|
93
80
|
}
|
|
94
|
-
|
|
95
81
|
var firstRow = resultSet[0];
|
|
96
82
|
var firstCol = firstRow[Object.keys(firstRow)[0]];
|
|
97
83
|
return firstCol;
|
|
@@ -101,17 +87,15 @@ module.exports = function () {
|
|
|
101
87
|
await connection.close();
|
|
102
88
|
}
|
|
103
89
|
};
|
|
90
|
+
|
|
104
91
|
/**
|
|
105
92
|
* @summary Executes SQL query and returns the result set.
|
|
106
93
|
* @function executeQuery
|
|
107
94
|
* @param {String} query - The query to execute.
|
|
108
95
|
* @return {Object} The result set.
|
|
109
96
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
97
|
module.executeQuery = async function (query) {
|
|
113
98
|
await module._openDbConn();
|
|
114
|
-
|
|
115
99
|
try {
|
|
116
100
|
const querySyncRetval = await connection.query(query);
|
|
117
101
|
return querySyncRetval;
|
|
@@ -121,17 +105,15 @@ module.exports = function () {
|
|
|
121
105
|
await connection.close();
|
|
122
106
|
}
|
|
123
107
|
};
|
|
108
|
+
|
|
124
109
|
/**
|
|
125
110
|
* @summary Executes SQL statement.
|
|
126
111
|
* @description Any results from the query are discarded.
|
|
127
112
|
* @function executeNonQuery
|
|
128
113
|
* @param {String} query - The query to execute.
|
|
129
114
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
115
|
module.executeNonQuery = async function (query) {
|
|
133
116
|
await module._openDbConn();
|
|
134
|
-
|
|
135
117
|
try {
|
|
136
118
|
await connection.query(query);
|
|
137
119
|
} catch (e) {
|
|
@@ -140,6 +122,7 @@ module.exports = function () {
|
|
|
140
122
|
await connection.close();
|
|
141
123
|
}
|
|
142
124
|
};
|
|
125
|
+
|
|
143
126
|
/**
|
|
144
127
|
* @summary Calls a stored procedure.
|
|
145
128
|
* @function callProcedure
|
|
@@ -151,11 +134,8 @@ module.exports = function () {
|
|
|
151
134
|
* var result = db.callProcedure('test', 3, 4, undefined);
|
|
152
135
|
* log.info(result);
|
|
153
136
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
137
|
module.callProcedure = async function (name, ...args) {
|
|
157
138
|
await module._openDbConn();
|
|
158
|
-
|
|
159
139
|
try {
|
|
160
140
|
const querySyncRetval = await connection.callProcedure(null, null, name, [...args]);
|
|
161
141
|
return querySyncRetval;
|
|
@@ -165,7 +145,6 @@ module.exports = function () {
|
|
|
165
145
|
await connection.close();
|
|
166
146
|
}
|
|
167
147
|
};
|
|
168
|
-
|
|
169
148
|
return module;
|
|
170
149
|
};
|
|
171
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1kYi5qcyJdLCJuYW1lcyI6WyJjb25uZWN0aW9uIiwiZXJySGVscGVyIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJpc0luaXRpYWxpemVkIiwiX29wZW5EYkNvbm4iLCJjb25uU3RyaW5nIiwiT3hFcnJvciIsImVycm9yQ29kZSIsIkRCX0NPTk5FQ1RJT05fRVJST1IiLCJkYiIsImUiLCJNb2R1bGVVbmF2YWlsYWJsZUVycm9yIiwibWVzc2FnZSIsImNvbm5lY3QiLCJnZXREYkVycm9yTWVzc2FnZSIsInNldENvbm5lY3Rpb25TdHJpbmciLCJnZXRTY2FsYXIiLCJxdWVyeSIsInJlc3VsdFNldCIsImxlbmd0aCIsImZpcnN0Um93IiwiZmlyc3RDb2wiLCJPYmplY3QiLCJrZXlzIiwiREJfUVVFUllfRVJST1IiLCJjbG9zZSIsImV4ZWN1dGVRdWVyeSIsInF1ZXJ5U3luY1JldHZhbCIsImV4ZWN1dGVOb25RdWVyeSIsImNhbGxQcm9jZWR1cmUiLCJuYW1lIiwiYXJncyJdLCJtYXBwaW5ncyI6Ijs7OztBQW9CQTs7OztBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxVQUFKOztBQUdBLElBQUlDLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUIsWUFBVztBQUN4QjtBQUNBRCxFQUFBQSxNQUFNLENBQUNFLGFBQVAsR0FBdUIsWUFBVztBQUM5QixXQUFPLElBQVA7QUFDSCxHQUZEOztBQUlBRixFQUFBQSxNQUFNLENBQUNHLFdBQVAsR0FBcUIsa0JBQWlCO0FBQ2xDLFFBQUksQ0FBQyxLQUFLQyxVQUFWLEVBQXNCO0FBQ2xCLFlBQU0sSUFBSUMsb0JBQUosQ0FBWVAsU0FBUyxDQUFDUSxTQUFWLENBQW9CQyxtQkFBaEMs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Q0EsWUFBTU4sVUFBVSxDQUFDbUIsS0FBWCxDQUFpQkEsS0FBakIsQ0FBTjtBQUNILEtBRkQsQ0FFRSxPQUFPUCxDQUFQLEVBQVU7QUFDUixZQUFNLElBQUlKLG9CQUFKLENBQVlQLFNBQVMsQ0FBQ1EsU0FBVixDQUFvQmlCLGNBQWhDLEVBQWdEekIsU0FBUyxDQUFDZSxpQkFBVixDQUE0QkosQ0FBNUIsQ0FBaEQsQ0FBTjtBQUNILEtBSkQsU0FJVTtBQUNOLFlBQU1aLFVBQVUsQ0FBQzJCLEtBQVgsRUFBTjtBQUNIO0FBQ0osR0FURDtBQVdBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNJeEIsRUFBQUEsTUFBTSxDQUFDNEIsYUFBUCxHQUF1QixnQkFBZUMsSUFBZixFQUFxQixHQUFHQyxJQUF4QixFQUE4QjtBQUNqRCxVQUFNOUIsTUFBTSxDQUFDRyxXQUFQLEVBQU47O0FBRUEsUUFBSTtBQUNBLFlBQU11QixlQUFlLEdBQUcsTUFBTTdCLFVBQVUsQ0FBQytCLGFBQVgsQ0FBeUIsSUFBekIsRUFBK0IsSUFBL0IsRUFBcUNDLElBQXJDLEVBQTJDLENBQUMsR0FBR0MsSUFBSixDQUEzQyxDQUE5QjtBQUNBLGFBQU9KLGVBQVA7QUFDSCxLQUhELENBR0UsT0FBT2pCLENBQVAsRUFBVTtBQUNSLFlBQU0sSUFBSUosb0JBQUosQ0FBWVAsU0FBUyxDQUFDUSxTQUFWLENBQW9CaUIsY0FBaEMsRUFBZ0R6QixTQUFTLENBQUNlLGlCQUFWLENBQTRCSixDQUE1QixDQUFoRCxDQUFOO0FBQ0gsS0FMRCxTQUtVO0FBQ04sWUFBTVosVUFBVSxDQUFDMkIsS0FBWCxFQUFOO0FBQ0g7QUFDSixHQVhEOztBQWFBLFNBQU94QixNQUFQO0FBQ0gsQ0FoSUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBkYlxyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIERhdGEgQmFzZXMgdGhyb3VnaCBPREJDLlxyXG4gKiBAbm90ZSBCZWZvcmUgdXNpbmcgdGhpcyBtb2R1bGUsIG1ha2Ugc3VyZSB0byBpbnN0YWxsIGB1bml4b2RiY2A6ICBcclxuICogICAqIFdpbmRvd3MgLSBJbnN0YWxsIGBXaW5kb3dzIFNES2AgIFxyXG4gKiAgICogT1MgWCAtICBgYnJldyBpbnN0YWxsIHVuaXhvZGJjYCAgXHJcbiAqICAgKiBMaW51eCAtIGBzdWRvIGFwdC1nZXQgaW5zdGFsbCB1bml4b2RiYyB1bml4b2RiYy1kZXZgIG9yIGBzdWRvIGRuZiBpbnN0YWxsIHVuaXhPREJDIHVuaXhPREJDLWRldmVsYFxyXG4gKi9cclxuXHJcbnZhciBjb25uZWN0aW9uO1xyXG5cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxudmFyIGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICAvLyBGSVhNRTogY2hhbmdlIHNldENvbm5lY3Rpb25TdHJpbmcgdG8gaW5pdCBhbmQgYWRkIGhhZG5saW5nIGluIGhlcmVcclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5fb3BlbkRiQ29ubiA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jb25uU3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuREJfQ09OTkVDVElPTl9FUlJPUiwgJ05vIGNvbm5lY3Rpb24gc3RyaW5nIHNwZWNpZmllZC4gVXNlIGRiLnNldENvbm5lY3Rpb25TdHJpbmcoKS4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGlnbm9yZSB0aGlzIG1vZHVsZSBpZiBvZGJjIHdhc24ndCBpbnN0YWxsZWRcclxuICAgICAgICAgICAgdmFyIGRiO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgZGIgPSByZXF1aXJlKCdvZGJjJyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvdWxkIGhhcHBlbiBvbmx5IG9uIHVuaXggZHVlIHRvIG1pc3NpbmcgdW5peG9kYmMgYmluYXJpZXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IE1vZHVsZVVuYXZhaWxhYmxlRXJyb3IgPSByZXF1aXJlKCcuLi9lcnJvcnMvTW9kdWxlVW5hdmFpbGFibGVFcnJvcicpO1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1vZHVsZVVuYXZhaWxhYmxlRXJyb3IoJ1VuYWJsZSB0byBsb2FkIERCIG1vZHVsZS4gJytlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25uZWN0aW9uID0gYXdhaXQgZGIuY29ubmVjdCh0aGlzLmNvbm5TdHJpbmcpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9DT05ORUNUSU9OX0VSUk9SLCBlcnJIZWxwZXIuZ2V0RGJFcnJvck1lc3NhZ2UoZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEBzdW1tYXJ5IFNldHMgREIgY29ubmVjdGlvbiBzdHJpbmcgdG8gYmUgdXNlZCBieSBvdGhlciBtZXRob2RzLlxyXG4gICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgZG9lc24ndCBhY3R1YWxseSBvcGVuIHRoZSBjb25uZWN0aW9uIGFzIGl0J3Mgb3BlbmVkL2Nsb3NlZFxyXG4gICAgKiAgICAgICAgICAgICAgYXV0b21hdGljYWxseSBieSBxdWVyeSBtZXRob2RzLiAgXHJcbiAgICAqICAgICAgICAgICAgICBFeGFtcGxlIGNvbm5lY3Rpb24gc3RyaW5nczogIFxyXG4gICAgKiAgICAgICAgICAgICAgLSBgRHJpdmVyPXtNeVNRTCBPREJDIDUuMyBVTklDT0RFIERyaXZlcn07U2VydmVyPWxvY2FsaG9zdDtEYXRhYmFzZT1teURhdGFiYXNlO1xyXG4gICAgKiAgICAgICAgICAgICAgICBVc2VyPW15VXNlcm5hbWU7UGFzc3dvcmQ9bXlQYXNzd29yZDtPcHRpb249MztgICBcclxuICAgICogICAgICAgICAgICAgIC0gYERyaXZlcj17T3JhY2xlIGluIGluc3RhbnRjbGllbnRfMTFfMn07ZGJxPTEyNy4wLjAuMToxNTIxL1hFO3VpZD1teVVzZXJuYW1lO1xyXG4gICAgKiAgICAgICAgICAgICAgICBwd2Q9bXlQYXNzd29yZDtgXHJcbiAgICAqIEBmdW5jdGlvbiBzZXRDb25uZWN0aW9uU3RyaW5nXHJcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSBjb25uU3RyaW5nIC0gT0RCQyBjb25uZWN0aW9uIHN0cmluZy5cclxuICAgICovXHJcbiAgICBtb2R1bGUuc2V0Q29ubmVjdGlvblN0cmluZyA9IGZ1bmN0aW9uKGNvbm5TdHJpbmcpIHtcclxuICAgICAgICBtb2R1bGUuY29ublN0cmluZyA9IGNvbm5TdHJpbmc7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgU1FMIHF1ZXJ5IGFuZCByZXR1cm5zIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIGZpcnN0IHJvdyBpbiB0aGUgcmVzdWx0IHNldC5cclxuICAgICAqIEBmdW5jdGlvbiBnZXRTY2FsYXJcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSAtIFRoZSBxdWVyeSB0byBleGVjdXRlLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgZmlyc3QgY29sdW1uIG9mIHRoZSBmaXJzdCByb3cgaW4gdGhlIHJlc3VsdCBzZXQsIG9yIG51bGwgaWYgdGhlIHJlc3VsdFxyXG4gICAgICogICAgICAgICAgICAgICAgICBzZXQgaXMgZW1wdHkuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXRTY2FsYXIgPSBhc3luYyBmdW5jdGlvbihxdWVyeSkge1xyXG4gICAgICAgIGF3YWl0IG1vZHVsZS5fb3BlbkRiQ29ubigpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KHF1ZXJ5KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdFNldC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBmaXJzdFJvdyA9IHJlc3VsdFNldFswXTtcclxuICAgICAgICAgICAgdmFyIGZpcnN0Q29sID0gZmlyc3RSb3dbT2JqZWN0LmtleXMoZmlyc3RSb3cpWzBdXTtcclxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q29sO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIFNRTCBxdWVyeSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IHNldC5cclxuICAgICAqIEBmdW5jdGlvbiBleGVjdXRlUXVlcnlcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSAtIFRoZSBxdWVyeSB0byBleGVjdXRlLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0IHNldC5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmV4ZWN1dGVRdWVyeSA9IGFzeW5jIGZ1bmN0aW9uKHF1ZXJ5KSB7XHJcbiAgICAgICAgYXdhaXQgbW9kdWxlLl9vcGVuRGJDb25uKCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcXVlcnlTeW5jUmV0dmFsID0gYXdhaXQgY29ubmVjdGlvbi5xdWVyeShxdWVyeSk7XHJcbiAgICAgICAgICAgIHJldHVybiBxdWVyeVN5bmNSZXR2YWw7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkRCX1FVRVJZX0VSUk9SLCBlcnJIZWxwZXIuZ2V0RGJFcnJvck1lc3NhZ2UoZSkpO1xyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGNvbm5lY3Rpb24uY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgU1FMIHN0YXRlbWVudC5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBBbnkgcmVzdWx0cyBmcm9tIHRoZSBxdWVyeSBhcmUgZGlzY2FyZGVkLlxyXG4gICAgICogQGZ1bmN0aW9uIGV4ZWN1dGVOb25RdWVyeVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGUuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5leGVjdXRlTm9uUXVlcnkgPSBhc3luYyBmdW5jdGlvbihxdWVyeSkge1xyXG4gICAgICAgIGF3YWl0IG1vZHVsZS5fb3BlbkRiQ29ubigpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucXVlcnkocXVlcnkpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IENhbGxzIGEgc3RvcmVkIHByb2NlZHVyZS5cclxuICAgICAqIEBmdW5jdGlvbiBjYWxsUHJvY2VkdXJlXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIE5hbWUgb2YgdGhlIHByb2NlZHVyZSB0byBjYWxsLlxyXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IGFyZ3MgLSBQcm9jZWR1cmUgYXJndW1lbnRzLiBJZiBwcm9jZWR1cmUgcHJvZHVjZXMgb3V0cHV0IHBhcmFtZXRlcnMgdGhlbiB0aGVzZSBuZWVkIHRvIGJlIHNwZWNpZmllZCB1c2luZyBgdW5kZWZpbmVkYC5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUHJvY2VkdXJlIG91dHB1dCBpZiBhbnkuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIGNhbGxzIGEgcHJvY2VkdXJlIHdoaWNoIGV4cGVjdHMgdHdvIGlucHV0IHBhcmFtZXRlcnMgYW5kIG9uZSBvdXRwdXQgcGFyYW1ldGVyLlxyXG4gICAgICogdmFyIHJlc3VsdCA9IGRiLmNhbGxQcm9jZWR1cmUoJ3Rlc3QnLCAzLCA0LCB1bmRlZmluZWQpO1xyXG4gICAgICogbG9nLmluZm8ocmVzdWx0KTtcclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmNhbGxQcm9jZWR1cmUgPSBhc3luYyBmdW5jdGlvbihuYW1lLCAuLi5hcmdzKSB7XHJcbiAgICAgICAgYXdhaXQgbW9kdWxlLl9vcGVuRGJDb25uKCk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5U3luY1JldHZhbCA9IGF3YWl0IGNvbm5lY3Rpb24uY2FsbFByb2NlZHVyZShudWxsLCBudWxsLCBuYW1lLCBbLi4uYXJnc10pO1xyXG4gICAgICAgICAgICByZXR1cm4gcXVlcnlTeW5jUmV0dmFsO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25uZWN0aW9uIiwiZXJySGVscGVyIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJpc0luaXRpYWxpemVkIiwiX29wZW5EYkNvbm4iLCJjb25uU3RyaW5nIiwiT3hFcnJvciIsImVycm9yQ29kZSIsIkRCX0NPTk5FQ1RJT05fRVJST1IiLCJkYiIsImUiLCJNb2R1bGVVbmF2YWlsYWJsZUVycm9yIiwibWVzc2FnZSIsImNvbm5lY3QiLCJnZXREYkVycm9yTWVzc2FnZSIsInNldENvbm5lY3Rpb25TdHJpbmciLCJnZXRTY2FsYXIiLCJxdWVyeSIsInJlc3VsdFNldCIsImxlbmd0aCIsImZpcnN0Um93IiwiZmlyc3RDb2wiLCJPYmplY3QiLCJrZXlzIiwiREJfUVVFUllfRVJST1IiLCJjbG9zZSIsImV4ZWN1dGVRdWVyeSIsInF1ZXJ5U3luY1JldHZhbCIsImV4ZWN1dGVOb25RdWVyeSIsImNhbGxQcm9jZWR1cmUiLCJuYW1lIiwiYXJncyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1kYi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBkYlxyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIERhdGEgQmFzZXMgdGhyb3VnaCBPREJDLlxyXG4gKiBAbm90ZSBCZWZvcmUgdXNpbmcgdGhpcyBtb2R1bGUsIG1ha2Ugc3VyZSB0byBpbnN0YWxsIGB1bml4b2RiY2A6ICBcclxuICogICAqIFdpbmRvd3MgLSBJbnN0YWxsIGBXaW5kb3dzIFNES2AgIFxyXG4gKiAgICogT1MgWCAtICBgYnJldyBpbnN0YWxsIHVuaXhvZGJjYCAgXHJcbiAqICAgKiBMaW51eCAtIGBzdWRvIGFwdC1nZXQgaW5zdGFsbCB1bml4b2RiYyB1bml4b2RiYy1kZXZgIG9yIGBzdWRvIGRuZiBpbnN0YWxsIHVuaXhPREJDIHVuaXhPREJDLWRldmVsYFxyXG4gKi9cclxuXHJcbnZhciBjb25uZWN0aW9uO1xyXG5cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxudmFyIGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICAvLyBGSVhNRTogY2hhbmdlIHNldENvbm5lY3Rpb25TdHJpbmcgdG8gaW5pdCBhbmQgYWRkIGhhZG5saW5nIGluIGhlcmVcclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5fb3BlbkRiQ29ubiA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jb25uU3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuREJfQ09OTkVDVElPTl9FUlJPUiwgJ05vIGNvbm5lY3Rpb24gc3RyaW5nIHNwZWNpZmllZC4gVXNlIGRiLnNldENvbm5lY3Rpb25TdHJpbmcoKS4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGlnbm9yZSB0aGlzIG1vZHVsZSBpZiBvZGJjIHdhc24ndCBpbnN0YWxsZWRcclxuICAgICAgICAgICAgdmFyIGRiO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgZGIgPSByZXF1aXJlKCdvZGJjJyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNvdWxkIGhhcHBlbiBvbmx5IG9uIHVuaXggZHVlIHRvIG1pc3NpbmcgdW5peG9kYmMgYmluYXJpZXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IE1vZHVsZVVuYXZhaWxhYmxlRXJyb3IgPSByZXF1aXJlKCcuLi9lcnJvcnMvTW9kdWxlVW5hdmFpbGFibGVFcnJvcicpO1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1vZHVsZVVuYXZhaWxhYmxlRXJyb3IoJ1VuYWJsZSB0byBsb2FkIERCIG1vZHVsZS4gJytlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25uZWN0aW9uID0gYXdhaXQgZGIuY29ubmVjdCh0aGlzLmNvbm5TdHJpbmcpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9DT05ORUNUSU9OX0VSUk9SLCBlcnJIZWxwZXIuZ2V0RGJFcnJvck1lc3NhZ2UoZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEBzdW1tYXJ5IFNldHMgREIgY29ubmVjdGlvbiBzdHJpbmcgdG8gYmUgdXNlZCBieSBvdGhlciBtZXRob2RzLlxyXG4gICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgZG9lc24ndCBhY3R1YWxseSBvcGVuIHRoZSBjb25uZWN0aW9uIGFzIGl0J3Mgb3BlbmVkL2Nsb3NlZFxyXG4gICAgKiAgICAgICAgICAgICAgYXV0b21hdGljYWxseSBieSBxdWVyeSBtZXRob2RzLiAgXHJcbiAgICAqICAgICAgICAgICAgICBFeGFtcGxlIGNvbm5lY3Rpb24gc3RyaW5nczogIFxyXG4gICAgKiAgICAgICAgICAgICAgLSBgRHJpdmVyPXtNeVNRTCBPREJDIDUuMyBVTklDT0RFIERyaXZlcn07U2VydmVyPWxvY2FsaG9zdDtEYXRhYmFzZT1teURhdGFiYXNlO1xyXG4gICAgKiAgICAgICAgICAgICAgICBVc2VyPW15VXNlcm5hbWU7UGFzc3dvcmQ9bXlQYXNzd29yZDtPcHRpb249MztgICBcclxuICAgICogICAgICAgICAgICAgIC0gYERyaXZlcj17T3JhY2xlIGluIGluc3RhbnRjbGllbnRfMTFfMn07ZGJxPTEyNy4wLjAuMToxNTIxL1hFO3VpZD1teVVzZXJuYW1lO1xyXG4gICAgKiAgICAgICAgICAgICAgICBwd2Q9bXlQYXNzd29yZDtgXHJcbiAgICAqIEBmdW5jdGlvbiBzZXRDb25uZWN0aW9uU3RyaW5nXHJcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSBjb25uU3RyaW5nIC0gT0RCQyBjb25uZWN0aW9uIHN0cmluZy5cclxuICAgICovXHJcbiAgICBtb2R1bGUuc2V0Q29ubmVjdGlvblN0cmluZyA9IGZ1bmN0aW9uKGNvbm5TdHJpbmcpIHtcclxuICAgICAgICBtb2R1bGUuY29ublN0cmluZyA9IGNvbm5TdHJpbmc7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgU1FMIHF1ZXJ5IGFuZCByZXR1cm5zIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIGZpcnN0IHJvdyBpbiB0aGUgcmVzdWx0IHNldC5cclxuICAgICAqIEBmdW5jdGlvbiBnZXRTY2FsYXJcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSAtIFRoZSBxdWVyeSB0byBleGVjdXRlLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgZmlyc3QgY29sdW1uIG9mIHRoZSBmaXJzdCByb3cgaW4gdGhlIHJlc3VsdCBzZXQsIG9yIG51bGwgaWYgdGhlIHJlc3VsdFxyXG4gICAgICogICAgICAgICAgICAgICAgICBzZXQgaXMgZW1wdHkuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXRTY2FsYXIgPSBhc3luYyBmdW5jdGlvbihxdWVyeSkge1xyXG4gICAgICAgIGF3YWl0IG1vZHVsZS5fb3BlbkRiQ29ubigpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRTZXQgPSBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KHF1ZXJ5KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdFNldC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBmaXJzdFJvdyA9IHJlc3VsdFNldFswXTtcclxuICAgICAgICAgICAgdmFyIGZpcnN0Q29sID0gZmlyc3RSb3dbT2JqZWN0LmtleXMoZmlyc3RSb3cpWzBdXTtcclxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q29sO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIFNRTCBxdWVyeSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IHNldC5cclxuICAgICAqIEBmdW5jdGlvbiBleGVjdXRlUXVlcnlcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSAtIFRoZSBxdWVyeSB0byBleGVjdXRlLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0IHNldC5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmV4ZWN1dGVRdWVyeSA9IGFzeW5jIGZ1bmN0aW9uKHF1ZXJ5KSB7XHJcbiAgICAgICAgYXdhaXQgbW9kdWxlLl9vcGVuRGJDb25uKCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcXVlcnlTeW5jUmV0dmFsID0gYXdhaXQgY29ubmVjdGlvbi5xdWVyeShxdWVyeSk7XHJcbiAgICAgICAgICAgIHJldHVybiBxdWVyeVN5bmNSZXR2YWw7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkRCX1FVRVJZX0VSUk9SLCBlcnJIZWxwZXIuZ2V0RGJFcnJvck1lc3NhZ2UoZSkpO1xyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGNvbm5lY3Rpb24uY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgU1FMIHN0YXRlbWVudC5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBBbnkgcmVzdWx0cyBmcm9tIHRoZSBxdWVyeSBhcmUgZGlzY2FyZGVkLlxyXG4gICAgICogQGZ1bmN0aW9uIGV4ZWN1dGVOb25RdWVyeVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGUuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5leGVjdXRlTm9uUXVlcnkgPSBhc3luYyBmdW5jdGlvbihxdWVyeSkge1xyXG4gICAgICAgIGF3YWl0IG1vZHVsZS5fb3BlbkRiQ29ubigpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucXVlcnkocXVlcnkpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IENhbGxzIGEgc3RvcmVkIHByb2NlZHVyZS5cclxuICAgICAqIEBmdW5jdGlvbiBjYWxsUHJvY2VkdXJlXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIE5hbWUgb2YgdGhlIHByb2NlZHVyZSB0byBjYWxsLlxyXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IGFyZ3MgLSBQcm9jZWR1cmUgYXJndW1lbnRzLiBJZiBwcm9jZWR1cmUgcHJvZHVjZXMgb3V0cHV0IHBhcmFtZXRlcnMgdGhlbiB0aGVzZSBuZWVkIHRvIGJlIHNwZWNpZmllZCB1c2luZyBgdW5kZWZpbmVkYC5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUHJvY2VkdXJlIG91dHB1dCBpZiBhbnkuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIGNhbGxzIGEgcHJvY2VkdXJlIHdoaWNoIGV4cGVjdHMgdHdvIGlucHV0IHBhcmFtZXRlcnMgYW5kIG9uZSBvdXRwdXQgcGFyYW1ldGVyLlxyXG4gICAgICogdmFyIHJlc3VsdCA9IGRiLmNhbGxQcm9jZWR1cmUoJ3Rlc3QnLCAzLCA0LCB1bmRlZmluZWQpO1xyXG4gICAgICogbG9nLmluZm8ocmVzdWx0KTtcclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmNhbGxQcm9jZWR1cmUgPSBhc3luYyBmdW5jdGlvbihuYW1lLCAuLi5hcmdzKSB7XHJcbiAgICAgICAgYXdhaXQgbW9kdWxlLl9vcGVuRGJDb25uKCk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5U3luY1JldHZhbCA9IGF3YWl0IGNvbm5lY3Rpb24uY2FsbFByb2NlZHVyZShudWxsLCBudWxsLCBuYW1lLCBbLi4uYXJnc10pO1xyXG4gICAgICAgICAgICByZXR1cm4gcXVlcnlTeW5jUmV0dmFsO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5EQl9RVUVSWV9FUlJPUiwgZXJySGVscGVyLmdldERiRXJyb3JNZXNzYWdlKGUpKTtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBhd2FpdCBjb25uZWN0aW9uLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQW9CQTtBQUE0QztBQXBCNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUlBLFVBQVU7QUFHZCxJQUFJQyxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQUUzQ0MsTUFBTSxDQUFDQyxPQUFPLEdBQUcsWUFBVztFQUN4QjtFQUNBRCxNQUFNLENBQUNFLGFBQWEsR0FBRyxZQUFXO0lBQzlCLE9BQU8sSUFBSTtFQUNmLENBQUM7RUFFREYsTUFBTSxDQUFDRyxXQUFXLEdBQUcsa0JBQWlCO0lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUNDLFVBQVUsRUFBRTtNQUNsQixNQUFNLElBQUlDLG9CQUFPLENBQUNQLFNBQVMsQ0FBQ1EsU0FBUyxDQUFDQyxtQkFBbUIsRUFBRSwrREFBK0QsQ0FBQztJQUMvSDtJQUVBLElBQUk7TUFDQTtNQUNBLElBQUlDLEVBQUU7TUFDTixJQUFJO1FBQ0FBLEVBQUUsR0FBR1QsT0FBTyxDQUFDLE1BQU0sQ0FBQztNQUN4QixDQUFDLENBQUMsT0FBT1UsQ0FBQyxF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
|