oxygen-cli 1.25.0 → 1.26.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/CHANGELOG.md +6 -0
- package/build/core/OxygenCore.js +266 -37
- package/build/core/OxygenEvents.js +11 -1
- package/build/core/OxygenModule.js +14 -1
- package/build/core/OxygenService.js +12 -1
- package/build/core/OxygenSubModule.js +10 -1
- package/build/core/WebDriverModule.js +30 -1
- package/build/core/utils.js +17 -1
- package/build/errors/HookError.js +7 -1
- package/build/errors/ModuleError.js +7 -1
- package/build/errors/ModuleUnavailableError.js +3 -1
- package/build/errors/OxygenError.js +33 -1
- package/build/errors/ScriptNotFound.js +7 -1
- package/build/errors/helper.js +77 -45
- package/build/index.js +18 -6
- package/build/lib/cli-util.js +90 -28
- package/build/lib/cli.js +23 -1
- package/build/lib/debugger.js +144 -1
- package/build/lib/img-merge.js +15 -1
- package/build/lib/launcher.js +28 -1
- package/build/lib/moduleRequire.js +4 -1
- package/build/lib/param-manager.js +28 -1
- package/build/lib/param-reader-csv.js +15 -1
- package/build/lib/param-reader-excel.js +14 -1
- package/build/lib/param-reader-json.js +10 -1
- package/build/lib/util.js +58 -3
- package/build/model/case-result.js +4 -2
- package/build/model/failure.js +2 -1
- package/build/model/status.js +2 -1
- package/build/model/step-result.js +2 -1
- package/build/model/suite-result.js +2 -1
- package/build/model/test-result.js +2 -1
- package/build/model/testcase.js +2 -1
- package/build/model/testsuite.js +2 -1
- package/build/ox_modules/index.js +33 -13
- package/build/ox_modules/module-assert.js +24 -8
- package/build/ox_modules/module-date.js +8 -3
- package/build/ox_modules/module-db.js +28 -7
- package/build/ox_modules/module-email.js +36 -10
- package/build/ox_modules/module-eyes.js +46 -5
- package/build/ox_modules/module-http.js +102 -41
- package/build/ox_modules/module-log.js +22 -5
- package/build/ox_modules/module-mailinator.js +32 -10
- package/build/ox_modules/module-mob/commands/alertAccept.js +2 -1
- package/build/ox_modules/module-mob/commands/alertDismiss.js +2 -1
- package/build/ox_modules/module-mob/commands/assertAlert.js +6 -1
- package/build/ox_modules/module-mob/commands/assertText.js +3 -1
- package/build/ox_modules/module-mob/commands/assertTitle.js +4 -1
- package/build/ox_modules/module-mob/commands/assertValue.js +15 -9
- package/build/ox_modules/module-mob/commands/back.js +2 -1
- package/build/ox_modules/module-mob/commands/clear.js +4 -1
- package/build/ox_modules/module-mob/commands/click.js +4 -3
- package/build/ox_modules/module-mob/commands/clickHidden.js +9 -3
- package/build/ox_modules/module-mob/commands/clickLong.js +2 -1
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +4 -1
- package/build/ox_modules/module-mob/commands/closeApp.js +2 -1
- package/build/ox_modules/module-mob/commands/debug.js +2 -2
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +2 -1
- package/build/ox_modules/module-mob/commands/enableNetwork.js +12 -4
- package/build/ox_modules/module-mob/commands/execute.js +2 -1
- package/build/ox_modules/module-mob/commands/findElement.js +3 -1
- package/build/ox_modules/module-mob/commands/findElements.js +4 -1
- package/build/ox_modules/module-mob/commands/getAlertText.js +2 -1
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +2 -1
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +10 -1
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +2 -1
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +2 -1
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +9 -1
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +2 -1
- package/build/ox_modules/module-mob/commands/getLocation.js +2 -1
- package/build/ox_modules/module-mob/commands/getSource.js +2 -1
- package/build/ox_modules/module-mob/commands/getText.js +4 -1
- package/build/ox_modules/module-mob/commands/getTitle.js +2 -1
- package/build/ox_modules/module-mob/commands/getUrl.js +2 -1
- package/build/ox_modules/module-mob/commands/getValue.js +9 -5
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +2 -1
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +2 -1
- package/build/ox_modules/module-mob/commands/index.js +94 -19
- package/build/ox_modules/module-mob/commands/installApp.js +2 -1
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +2 -1
- package/build/ox_modules/module-mob/commands/isCheckable.js +2 -1
- package/build/ox_modules/module-mob/commands/isChecked.js +2 -1
- package/build/ox_modules/module-mob/commands/isClickable.js +2 -1
- package/build/ox_modules/module-mob/commands/isExist.js +3 -1
- package/build/ox_modules/module-mob/commands/isSelected.js +2 -1
- package/build/ox_modules/module-mob/commands/isVisible.js +3 -1
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +2 -1
- package/build/ox_modules/module-mob/commands/launchApp.js +2 -1
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +2 -1
- package/build/ox_modules/module-mob/commands/open.js +3 -1
- package/build/ox_modules/module-mob/commands/pause.js +2 -1
- package/build/ox_modules/module-mob/commands/removeApp.js +2 -1
- package/build/ox_modules/module-mob/commands/resetApp.js +2 -1
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +6 -1
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +2 -1
- package/build/ox_modules/module-mob/commands/select.js +4 -1
- package/build/ox_modules/module-mob/commands/selectFrame.js +4 -1
- package/build/ox_modules/module-mob/commands/selectWindow.js +26 -5
- package/build/ox_modules/module-mob/commands/sendKeys.js +9 -6
- package/build/ox_modules/module-mob/commands/setContext.js +2 -1
- package/build/ox_modules/module-mob/commands/setNativeContext.js +2 -1
- package/build/ox_modules/module-mob/commands/setTimeout.js +2 -1
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +6 -3
- package/build/ox_modules/module-mob/commands/shake.js +2 -1
- package/build/ox_modules/module-mob/commands/smsClickLink.js +2 -1
- package/build/ox_modules/module-mob/commands/smsGetText.js +6 -3
- package/build/ox_modules/module-mob/commands/swipe.js +2 -1
- package/build/ox_modules/module-mob/commands/swipeElement.js +2 -1
- package/build/ox_modules/module-mob/commands/swipeScreen.js +2 -1
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +2 -1
- package/build/ox_modules/module-mob/commands/tap.js +2 -1
- package/build/ox_modules/module-mob/commands/type.js +7 -3
- package/build/ox_modules/module-mob/commands/unlockPattern.js +10 -9
- package/build/ox_modules/module-mob/commands/waitForExist.js +2 -1
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +3 -1
- package/build/ox_modules/module-mob/commands/waitForVisible.js +2 -1
- package/build/ox_modules/module-mob.js +139 -67
- package/build/ox_modules/module-pdf.js +62 -23
- package/build/ox_modules/module-proxy.js +68 -8
- package/build/ox_modules/module-serial.js +32 -7
- package/build/ox_modules/module-shell.js +27 -8
- package/build/ox_modules/module-soap.js +47 -14
- package/build/ox_modules/module-twilio.js +53 -10
- package/build/ox_modules/module-utils.js +51 -16
- package/build/ox_modules/module-web/commands/alertAccept.js +2 -1
- package/build/ox_modules/module-web/commands/alertDismiss.js +2 -1
- package/build/ox_modules/module-web/commands/assertAlert.js +6 -1
- package/build/ox_modules/module-web/commands/assertExist.js +2 -1
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +4 -1
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +3 -1
- package/build/ox_modules/module-web/commands/assertText.js +3 -1
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +6 -1
- package/build/ox_modules/module-web/commands/assertTextPresent.js +6 -1
- package/build/ox_modules/module-web/commands/assertTitle.js +3 -1
- package/build/ox_modules/module-web/commands/assertValue.js +3 -1
- package/build/ox_modules/module-web/commands/back.js +2 -1
- package/build/ox_modules/module-web/commands/clear.js +5 -1
- package/build/ox_modules/module-web/commands/click.js +13 -4
- package/build/ox_modules/module-web/commands/clickHidden.js +7 -2
- package/build/ox_modules/module-web/commands/closeWindow.js +2 -1
- package/build/ox_modules/module-web/commands/debug.js +2 -2
- package/build/ox_modules/module-web/commands/deleteCookies.js +2 -1
- package/build/ox_modules/module-web/commands/deselect.js +2 -1
- package/build/ox_modules/module-web/commands/doubleClick.js +9 -3
- package/build/ox_modules/module-web/commands/dragAndDrop.js +2 -1
- package/build/ox_modules/module-web/commands/execute.js +2 -1
- package/build/ox_modules/module-web/commands/fileBrowse.js +10 -4
- package/build/ox_modules/module-web/commands/findElement.js +3 -1
- package/build/ox_modules/module-web/commands/findElements.js +4 -1
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +2 -1
- package/build/ox_modules/module-web/commands/getAlertText.js +2 -1
- package/build/ox_modules/module-web/commands/getAttribute.js +4 -1
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +3 -1
- package/build/ox_modules/module-web/commands/getCookies.js +2 -1
- package/build/ox_modules/module-web/commands/getCssValue.js +4 -1
- package/build/ox_modules/module-web/commands/getElementCount.js +2 -1
- package/build/ox_modules/module-web/commands/getHTML.js +2 -1
- package/build/ox_modules/module-web/commands/getSource.js +2 -1
- package/build/ox_modules/module-web/commands/getText.js +4 -1
- package/build/ox_modules/module-web/commands/getTitle.js +2 -1
- package/build/ox_modules/module-web/commands/getUrl.js +2 -1
- package/build/ox_modules/module-web/commands/getValue.js +5 -1
- package/build/ox_modules/module-web/commands/getWindowHandles.js +2 -1
- package/build/ox_modules/module-web/commands/getWindowSize.js +2 -1
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +5 -1
- package/build/ox_modules/module-web/commands/index.js +100 -19
- package/build/ox_modules/module-web/commands/isAlertPresent.js +2 -1
- package/build/ox_modules/module-web/commands/isChecked.js +2 -1
- package/build/ox_modules/module-web/commands/isExist.js +3 -1
- package/build/ox_modules/module-web/commands/isInteractable.js +2 -1
- package/build/ox_modules/module-web/commands/isSelected.js +2 -1
- package/build/ox_modules/module-web/commands/isVisible.js +3 -1
- package/build/ox_modules/module-web/commands/makeVisible.js +10 -2
- package/build/ox_modules/module-web/commands/maximizeWindow.js +2 -1
- package/build/ox_modules/module-web/commands/minimizeWindow.js +2 -1
- package/build/ox_modules/module-web/commands/newWindow.js +2 -1
- package/build/ox_modules/module-web/commands/open.js +4 -1
- package/build/ox_modules/module-web/commands/pause.js +2 -1
- package/build/ox_modules/module-web/commands/point.js +2 -1
- package/build/ox_modules/module-web/commands/pointJS.js +8 -2
- package/build/ox_modules/module-web/commands/refresh.js +2 -1
- package/build/ox_modules/module-web/commands/rightClick.js +8 -3
- package/build/ox_modules/module-web/commands/rightClickActions.js +2 -1
- package/build/ox_modules/module-web/commands/scrollToElement.js +2 -1
- package/build/ox_modules/module-web/commands/select.js +5 -1
- package/build/ox_modules/module-web/commands/selectFrame.js +3 -1
- package/build/ox_modules/module-web/commands/selectWindow.js +26 -5
- package/build/ox_modules/module-web/commands/sendKeys.js +6 -3
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +2 -2
- package/build/ox_modules/module-web/commands/setTimeout.js +2 -1
- package/build/ox_modules/module-web/commands/setWindowSize.js +2 -1
- package/build/ox_modules/module-web/commands/takeScreenshot.js +5 -3
- package/build/ox_modules/module-web/commands/type.js +5 -1
- package/build/ox_modules/module-web/commands/waitForAngular.js +11 -6
- package/build/ox_modules/module-web/commands/waitForExist.js +2 -1
- package/build/ox_modules/module-web/commands/waitForInteractable.js +2 -1
- package/build/ox_modules/module-web/commands/waitForNotExist.js +8 -1
- package/build/ox_modules/module-web/commands/waitForNotText.js +3 -1
- package/build/ox_modules/module-web/commands/waitForNotValue.js +3 -1
- package/build/ox_modules/module-web/commands/waitForText.js +3 -1
- package/build/ox_modules/module-web/commands/waitForValue.js +3 -1
- package/build/ox_modules/module-web/commands/waitForVisible.js +2 -1
- package/build/ox_modules/module-web/commands/waitForWindow.js +21 -4
- package/build/ox_modules/module-web.js +179 -77
- package/build/ox_modules/module-win/commands/assertText.js +3 -1
- package/build/ox_modules/module-win/commands/assertTitle.js +4 -1
- package/build/ox_modules/module-win/commands/assertValue.js +15 -9
- package/build/ox_modules/module-win/commands/back.js +2 -1
- package/build/ox_modules/module-win/commands/clear.js +4 -1
- package/build/ox_modules/module-win/commands/click.js +2 -1
- package/build/ox_modules/module-win/commands/clickLong.js +2 -1
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +4 -1
- package/build/ox_modules/module-win/commands/findElement.js +3 -1
- package/build/ox_modules/module-win/commands/findElements.js +4 -1
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +2 -1
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +2 -1
- package/build/ox_modules/module-win/commands/getLocation.js +2 -1
- package/build/ox_modules/module-win/commands/getSource.js +2 -1
- package/build/ox_modules/module-win/commands/getText.js +4 -1
- package/build/ox_modules/module-win/commands/getValue.js +9 -5
- package/build/ox_modules/module-win/commands/getWindowHandles.js +2 -1
- package/build/ox_modules/module-win/commands/index.js +43 -5
- package/build/ox_modules/module-win/commands/isCheckable.js +2 -1
- package/build/ox_modules/module-win/commands/isChecked.js +2 -1
- package/build/ox_modules/module-win/commands/isClickable.js +2 -1
- package/build/ox_modules/module-win/commands/isExist.js +3 -1
- package/build/ox_modules/module-win/commands/isSelected.js +2 -1
- package/build/ox_modules/module-win/commands/isVisible.js +3 -1
- package/build/ox_modules/module-win/commands/open.js +2 -1
- package/build/ox_modules/module-win/commands/pause.js +2 -1
- package/build/ox_modules/module-win/commands/rightClick.js +2 -1
- package/build/ox_modules/module-win/commands/selectWindow.js +15 -1
- package/build/ox_modules/module-win/commands/sendKeys.js +4 -1
- package/build/ox_modules/module-win/commands/setTimeout.js +2 -1
- package/build/ox_modules/module-win/commands/takeScreenshot.js +2 -1
- package/build/ox_modules/module-win/commands/tap.js +2 -1
- package/build/ox_modules/module-win/commands/type.js +4 -1
- package/build/ox_modules/module-win/commands/waitForExist.js +2 -1
- package/build/ox_modules/module-win/commands/waitForInteractable.js +4 -1
- package/build/ox_modules/module-win/commands/waitForVisible.js +2 -1
- package/build/ox_modules/module-win.js +87 -48
- package/build/ox_modules/utils.js +76 -22
- package/build/ox_reporters/reporter-excel.js +58 -1
- package/build/ox_reporters/reporter-html.js +28 -1
- package/build/ox_reporters/reporter-json.js +14 -1
- package/build/ox_reporters/reporter-junit.js +24 -1
- package/build/ox_reporters/reporter-pdf.js +19 -1
- package/build/ox_reporters/reporter-xml.js +17 -1
- package/build/ox_services/service-devtools/submodule-network.js +91 -4
- package/build/ox_services/service-devtools.js +23 -1
- package/build/reporter/FileReporterBase.js +44 -5
- package/build/reporter/ReportAggregator.js +65 -1
- package/build/reporter/ReporterBase.js +6 -1
- package/build/runners/WorkerProcess.js +99 -1
- package/build/runners/cucumber/CucumberEventListener.js +29 -4
- package/build/runners/cucumber/CucumberReporter.js +56 -1
- package/build/runners/cucumber/CucumberWorker.js +66 -1
- package/build/runners/cucumber/index.js +30 -1
- package/build/runners/cucumber/worker.js +18 -1
- package/build/runners/index.js +6 -1
- package/build/runners/oxygen/OxygenWorker.js +60 -3
- package/build/runners/oxygen/index.js +178 -17
- package/build/runners/oxygen/worker.js +25 -2
- package/package.json +1 -1
package/build/lib/img-merge.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
+
|
|
4
5
|
var _jimp = _interopRequireDefault(require("jimp"));
|
|
6
|
+
|
|
5
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
+
|
|
6
9
|
function alignImage(total, size, align) {
|
|
7
10
|
if (align === 'center') {
|
|
8
11
|
return (total - size) / 2;
|
|
9
12
|
}
|
|
13
|
+
|
|
10
14
|
if (align === 'end') {
|
|
11
15
|
return total - size;
|
|
12
16
|
}
|
|
17
|
+
|
|
13
18
|
return 0;
|
|
14
19
|
}
|
|
20
|
+
|
|
15
21
|
function calcMargin(obj = {}) {
|
|
16
22
|
if (Number.isInteger(obj)) {
|
|
17
23
|
return {
|
|
@@ -21,6 +27,7 @@ function calcMargin(obj = {}) {
|
|
|
21
27
|
left: obj
|
|
22
28
|
};
|
|
23
29
|
}
|
|
30
|
+
|
|
24
31
|
if (typeof obj === 'string') {
|
|
25
32
|
const [top, right = top, bottom = top, left = right] = obj.split(' ');
|
|
26
33
|
return {
|
|
@@ -30,6 +37,7 @@ function calcMargin(obj = {}) {
|
|
|
30
37
|
left: Number(left)
|
|
31
38
|
};
|
|
32
39
|
}
|
|
40
|
+
|
|
33
41
|
const {
|
|
34
42
|
top = 0,
|
|
35
43
|
right = 0,
|
|
@@ -43,6 +51,7 @@ function calcMargin(obj = {}) {
|
|
|
43
51
|
left
|
|
44
52
|
};
|
|
45
53
|
}
|
|
54
|
+
|
|
46
55
|
module.exports = function mergeImages(images, {
|
|
47
56
|
direction = false,
|
|
48
57
|
color = 0x00000000,
|
|
@@ -53,15 +62,18 @@ module.exports = function mergeImages(images, {
|
|
|
53
62
|
if (!Array.isArray(images)) {
|
|
54
63
|
throw new TypeError('`images` must be an array that contains images');
|
|
55
64
|
}
|
|
65
|
+
|
|
56
66
|
if (images.length < 1) {
|
|
57
67
|
throw new Error('At least `images` must contain more than one image');
|
|
58
68
|
}
|
|
69
|
+
|
|
59
70
|
const processImg = async img => {
|
|
60
71
|
const imgBuffer = await new Buffer.from(img, 'base64');
|
|
61
72
|
return _jimp.default.read(imgBuffer).then(imgObj => ({
|
|
62
73
|
img: imgObj
|
|
63
74
|
}));
|
|
64
75
|
};
|
|
76
|
+
|
|
65
77
|
return Promise.all(images.map(processImg)).then(imgs => {
|
|
66
78
|
let totalX = 0;
|
|
67
79
|
let totalY = 0;
|
|
@@ -127,6 +139,7 @@ module.exports = function mergeImages(images, {
|
|
|
127
139
|
}) => height + offsetY));
|
|
128
140
|
const baseImage = new _jimp.default(totalWidth + marginRightLeft, totalHeight + marginTopBottom, color);
|
|
129
141
|
const imgDataEntries = imgData.map((data, index) => [index, data]);
|
|
142
|
+
|
|
130
143
|
for (const [index, {
|
|
131
144
|
img,
|
|
132
145
|
x,
|
|
@@ -143,7 +156,8 @@ module.exports = function mergeImages(images, {
|
|
|
143
156
|
const [px, py] = direction ? [alignImage(totalWidth, width, align) + offsetX, y + index * offset] : [x + index * offset, alignImage(totalHeight, height, align) + offsetY];
|
|
144
157
|
baseImage.composite(img, px + left, py + top);
|
|
145
158
|
}
|
|
159
|
+
|
|
146
160
|
return baseImage.getBase64Async(_jimp.default.MIME_JPEG);
|
|
147
161
|
});
|
|
148
162
|
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhbGlnbkltYWdlIiwidG90YWwiLCJzaXplIiwiYWxpZ24iLCJjYWxjTWFyZ2luIiwib2JqIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Iiwic3BsaXQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWVyZ2VJbWFnZXMiLCJpbWFnZXMiLCJkaXJlY3Rpb24iLCJjb2xvciIsIm9mZnNldCIsIm1hcmdpbiIsIkFycmF5IiwiaXNBcnJheSIsIlR5cGVFcnJvciIsImxlbmd0aCIsIkVycm9yIiwicHJvY2Vzc0ltZyIsImltZyIsImltZ0J1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJKaW1wIiwicmVhZCIsInRoZW4iLCJpbWdPYmoiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1ncyIsInRvdGFsWCIsInRvdGFsWSIsImltZ0RhdGEiLCJyZWR1Y2UiLCJyZXMiLCJvZmZzZXRYIiwib2Zmc2V0WSIsImJpdG1hcCIsIndpZHRoIiwiaGVpZ2h0IiwicHVzaCIsIngiLCJ5IiwibWFyZ2luVG9wQm90dG9tIiwibWFyZ2luUmlnaHRMZWZ0IiwidG90YWxXaWR0aCIsIk1hdGgiLCJtYXgiLCJpbmRleCIsInRvdGFsSGVpZ2h0IiwiYmFzZUltYWdlIiwiaW1nRGF0YUVudHJpZXMiLCJkYXRhIiwicHgiLCJweSIsImNvbXBvc2l0ZSIsImdldEJhc2U2NEFzeW5jIiwiTUlNRV9KUEVHIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9pbWctbWVyZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZ3JhZy9tZXJnZS1iYXNlNjRcclxuXHJcbmltcG9ydCBKaW1wIGZyb20gJ2ppbXAnO1xyXG5cclxuZnVuY3Rpb24gYWxpZ25JbWFnZSh0b3RhbCwgc2l6ZSwgYWxpZ24pIHtcclxuICAgIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpIHtcclxuICAgICAgICByZXR1cm4gKHRvdGFsIC0gc2l6ZSkgLyAyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbGlnbiA9PT0gJ2VuZCcpIHtcclxuICAgICAgICByZXR1cm4gdG90YWwgLSBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxjTWFyZ2luKG9iaiA9IHt9KSB7XHJcbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihvYmopKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wOiBvYmosXHJcbiAgICAgICAgICAgIHJpZ2h0OiBvYmosXHJcbiAgICAgICAgICAgIGJvdHRvbTogb2JqLFxyXG4gICAgICAgICAgICBsZWZ0OiBvYmpcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IFt0b3AsIHJpZ2h0ID0gdG9wLCBib3R0b20gPSB0b3AsIGxlZnQgPSByaWdodF0gPSBvYmouc3BsaXQoJyAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wOiBOdW1iZXIodG9wKSxcclxuICAgICAgICAgICAgcmlnaHQ6IE51bWJlcihyaWdodCksXHJcbiAgICAgICAgICAgIGJvdHRvbTogTnVtYmVyKGJvdHRvbSksXHJcbiAgICAgICAgICAgIGxlZnQ6IE51bWJlcihsZWZ0KVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyB0b3AgPSAwLCByaWdodCA9IDAsIGJvdHRvbSA9IDAsIGxlZnQgPSAwIH0gPSBvYmo7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0b3AsXHJcbiAgICAgICAgcmlnaHQsXHJcbiAgICAgICAgYm90dG9tLFxyXG4gICAgICAgIGxlZnRcclxuICAgIH07XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbWVyZ2VJbWFnZXMoXHJcbiAgaW1hZ2VzLFxyXG4gIHtcclxuICAgIGRpcmVjdGlvbiA9IGZhbHNlLFxyXG4gICAgY29sb3IgPSAweDAwMDAwMDAwLFxyXG4gICAgYWxpZ24gPSAnc3RhcnQnLFxyXG4gICAgb2Zmc2V0ID0gMCxcclxuICAgIG1hcmdpblxyXG4gIH0gPSB7fVxyXG4pIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShpbWFnZXMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGltYWdlc2AgbXVzdCBiZSBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGltYWdlcycpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbWFnZXMubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3QgYGltYWdlc2AgbXVzdCBjb250YWluIG1vcmUgdGhhbiBvbmUgaW1hZ2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9jZXNzSW1nID0gYXN5bmMgaW1nID0+IHtcclxuICAgICAgICBjb25zdCBpbWdCdWZmZXIgPSBhd2FpdCBuZXcgQnVmZmVyLmZyb20oaW1nLCAnYmFzZTY0Jyk7XHJcbiAgICAgICAgcmV0dXJuIEppbXAucmVhZChpbWdCdWZmZXIpLnRoZW4oaW1nT2JqID0+ICh7IGltZzogaW1nT2JqIH0pKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGltYWdlcy5tYXAocHJvY2Vzc0ltZykpLnRoZW4oaW1ncyA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsWCA9IDA7XHJcbiAgICAgICAgbGV0IHRvdGFsWSA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGltZ0RhdGEgPSBpbWdzLnJlZHVjZSgocmVzLCB7IGltZywgb2Zmc2V0WCA9IDAsIG9mZnNldFkgPSAwIH0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qge1xyXG4gICAgICAgIGJpdG1hcDogeyB3aWR0aCwgaGVpZ2h0IH1cclxuICAgICAgfSA9IGltZztcclxuXHJcbiAgICAgICAgICAgIHJlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGltZyxcclxuICAgICAgICAgICAgICAgIHg6IHRvdGFsWCArIG9mZnNldFgsXHJcbiAgICAgICAgICAgICAgICB5OiB0b3RhbFkgKyBvZmZzZXRZLFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0WCxcclxuICAgICAgICAgICAgICAgIG9mZnNldFlcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0b3RhbFggKz0gd2lkdGggKyBvZmZzZXRYO1xyXG4gICAgICAgICAgICB0b3RhbFkgKz0gaGVpZ2h0ICsgb2Zmc2V0WTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSwgW10pO1xyXG5cclxuICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gY2FsY01hcmdpbihtYXJnaW4pO1xyXG4gICAgICAgIGNvbnN0IG1hcmdpblRvcEJvdHRvbSA9IHRvcCArIGJvdHRvbTtcclxuICAgICAgICBjb25zdCBtYXJnaW5SaWdodExlZnQgPSByaWdodCArIGxlZnQ7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvdGFsV2lkdGggPSBkaXJlY3Rpb25cclxuICAgICAgPyBNYXRoLm1heChcclxuICAgICAgICAgIC4uLmltZ0RhdGEubWFwKFxyXG4gICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IHdpZHRoIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFhcclxuICAgICAgICAgICAgfSkgPT4gd2lkdGggKyBvZmZzZXRYXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICA6IGltZ0RhdGEucmVkdWNlKFxyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICByZXMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpbWc6IHtcclxuICAgICAgICAgICAgICAgIGJpdG1hcDogeyB3aWR0aCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRYXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGluZGV4XHJcbiAgICAgICAgICApID0+IHJlcyArIHdpZHRoICsgb2Zmc2V0WCArIE51bWJlcihpbmRleCA+IDApICogb2Zmc2V0LFxyXG4gICAgICAgICAgMFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvdGFsSGVpZ2h0ID0gZGlyZWN0aW9uXHJcbiAgICAgID8gaW1nRGF0YS5yZWR1Y2UoXHJcbiAgICAgICAgICAoXHJcbiAgICAgICAgICAgIHJlcyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IGhlaWdodCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRZXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGluZGV4XHJcbiAgICAgICAgICApID0+IHJlcyArIGhlaWdodCArIG9mZnNldFkgKyBOdW1iZXIoaW5kZXggPiAwKSAqIG9mZnNldCxcclxuICAgICAgICAgIDBcclxuICAgICAgICApXHJcbiAgICAgIDogTWF0aC5tYXgoXHJcbiAgICAgICAgICAuLi5pbWdEYXRhLm1hcChcclxuICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICBpbWc6IHtcclxuICAgICAgICAgICAgICAgIGJpdG1hcDogeyBoZWlnaHQgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSA9PiBoZWlnaHQgKyBvZmZzZXRZXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgYmFzZUltYWdlID0gbmV3IEppbXAoXHJcbiAgICAgIHRvdGFsV2lkdGggKyBtYXJnaW5SaWdodExlZnQsXHJcbiAgICAgIHRvdGFsSGVpZ2h0ICsgbWFyZ2luVG9wQm90dG9tLFxyXG4gICAgICBjb2xvclxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGYWxsYmFjayBmb3IgYEFycmF5I2VudHJpZXMoKWBcclxuICAgICAgICBjb25zdCBpbWdEYXRhRW50cmllcyA9IGltZ0RhdGEubWFwKChkYXRhLCBpbmRleCkgPT4gW2luZGV4LCBkYXRhXSk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgW2luZGV4LCB7IGltZywgeCwgeSwgb2Zmc2V0WCwgb2Zmc2V0WSB9XSBvZiBpbWdEYXRhRW50cmllcykge1xyXG4gICAgICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgYml0bWFwOiB7IHdpZHRoLCBoZWlnaHQgfVxyXG4gICAgICB9ID0gaW1nO1xyXG4gICAgICAgICAgICBjb25zdCBbcHgsIHB5XSA9IGRpcmVjdGlvblxyXG4gICAgICAgID8gW2FsaWduSW1hZ2UodG90YWxXaWR0aCwgd2lkdGgsIGFsaWduKSArIG9mZnNldFgsIHkgKyBpbmRleCAqIG9mZnNldF1cclxuICAgICAgICA6IFtcclxuICAgICAgICAgICAgeCArIGluZGV4ICogb2Zmc2V0LFxyXG4gICAgICAgICAgICBhbGlnbkltYWdlKHRvdGFsSGVpZ2h0LCBoZWlnaHQsIGFsaWduKSArIG9mZnNldFlcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICAgICAgYmFzZUltYWdlLmNvbXBvc2l0ZShpbWcsIHB4ICsgbGVmdCwgcHkgKyB0b3ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJhc2VJbWFnZS5nZXRCYXNlNjRBc3luYyhKaW1wLk1JTUVfSlBFRyk7XHJcbiAgICAvLyByZXR1cm4gYmFzZUltYWdlO1xyXG4gICAgfSk7XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7QUFBd0I7QUFFeEIsU0FBU0EsVUFBVSxDQUFDQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFO0VBQ3BDLElBQUlBLEtBQUssS0FBSyxRQUFRLEVBQUU7SUFDcEIsT0FBTyxDQUFD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
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW1nLW1lcmdlLmpzIl0sIm5hbWVzIjpbImFsaWduSW1hZ2UiLCJ0b3RhbCIsInNpemUiLCJhbGlnbiIsImNhbGNNYXJnaW4iLCJvYmoiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJzcGxpdCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXJnZUltYWdlcyIsImltYWdlcyIsImRpcmVjdGlvbiIsImNvbG9yIiwib2Zmc2V0IiwibWFyZ2luIiwiQXJyYXkiLCJpc0FycmF5IiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiRXJyb3IiLCJwcm9jZXNzSW1nIiwiaW1nIiwiaW1nQnVmZmVyIiwiQnVmZmVyIiwiZnJvbSIsIkppbXAiLCJyZWFkIiwidGhlbiIsImltZ09iaiIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWdzIiwidG90YWxYIiwidG90YWxZIiwiaW1nRGF0YSIsInJlZHVjZSIsInJlcyIsIm9mZnNldFgiLCJvZmZzZXRZIiwiYml0bWFwIiwid2lkdGgiLCJoZWlnaHQiLCJwdXNoIiwieCIsInkiLCJtYXJnaW5Ub3BCb3R0b20iLCJtYXJnaW5SaWdodExlZnQiLCJ0b3RhbFdpZHRoIiwiTWF0aCIsIm1heCIsImluZGV4IiwidG90YWxIZWlnaHQiLCJiYXNlSW1hZ2UiLCJpbWdEYXRhRW50cmllcyIsImRhdGEiLCJweCIsInB5IiwiY29tcG9zaXRlIiwiZ2V0QmFzZTY0QXN5bmMiLCJNSU1FX0pQRUciXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTs7OztBQUVBLFNBQVNBLFVBQVQsQ0FBb0JDLEtBQXBCLEVBQTJCQyxJQUEzQixFQUFpQ0MsS0FBakMsRUFBd0M7QUFDcEMsTUFBSUEsS0FBSyxLQUFLLFFBQWQsRUFBd0I7QUFDcEIsV0FBTyxDQUFDRixLQUFLLEdBQUdDLElBQVQsSUFBaUIsQ0FBeEI7QUFDSDs7QUFFRCxNQUFJQyxLQUFLLEtBQUssS0FBZCxFQUFxQjtBQUNqQixXQUFPRixL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YjtBQUFzQkMsTUFBQUE7QUFBdEIsS0FBUixDQUFYLElBQXVEZSxjQUF2RCxFQUF1RTtBQUNuRSxZQUFNO0FBQ1ZkLFFBQUFBLE1BQU0sRUFBRTtBQUFFQyxVQUFBQSxLQUFGO0FBQVNDLFVBQUFBO0FBQVQ7QUFERSxVQUVSckIsR0FGRTtBQUdBLFlBQU0sQ0FBQ21DLEVBQUQsRUFBS0MsRUFBTCxJQUFXOUMsU0FBUyxHQUM1QixDQUFDakIsVUFBVSxDQUFDc0QsVUFBRCxFQUFhUCxLQUFiLEVBQW9CNUMsS0FBcEIsQ0FBVixHQUF1Q3lDLE9BQXhDLEVBQWlETyxDQUFDLEdBQUdNLEtBQUssR0FBR3RDLE1BQTdELENBRDRCLEdBRTVCLENBQ0UrQixDQUFDLEdBQUdPLEtBQUssR0FBR3RDLE1BRGQsRUFFRW5CLFVBQVUsQ0FBQzBELFdBQUQsRUFBY1YsTUFBZCxFQUFzQjdDLEtBQXRCLENBQVYsR0FBeUMwQyxPQUYzQyxDQUZFO0FBT0FjLE1BQUFBLFNBQVMsQ0FBQ0ssU0FBVixDQUFvQnJDLEdBQXBCLEVBQXlCbUMsRUFBRSxHQUFHbkQsSUFBOUIsRUFBb0NvRCxFQUFFLEdBQUd2RCxHQUF6QztBQUNIOztBQUVELFdBQU9tRCxTQUFTLENBQUNNLGNBQVYsQ0FBeUJsQyxjQUFLbUMsU0FBOUIsQ0FBUDtBQUVILEdBdEdNLENBQVA7QUF1R0gsQ0E5SEQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vcmFncmFnL21lcmdlLWJhc2U2NFxyXG5cclxuaW1wb3J0IEppbXAgZnJvbSAnamltcCc7XHJcblxyXG5mdW5jdGlvbiBhbGlnbkltYWdlKHRvdGFsLCBzaXplLCBhbGlnbikge1xyXG4gICAgaWYgKGFsaWduID09PSAnY2VudGVyJykge1xyXG4gICAgICAgIHJldHVybiAodG90YWwgLSBzaXplKSAvIDI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsaWduID09PSAnZW5kJykge1xyXG4gICAgICAgIHJldHVybiB0b3RhbCAtIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbGNNYXJnaW4ob2JqID0ge30pIHtcclxuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG9iaikpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b3A6IG9iaixcclxuICAgICAgICAgICAgcmlnaHQ6IG9iaixcclxuICAgICAgICAgICAgYm90dG9tOiBvYmosXHJcbiAgICAgICAgICAgIGxlZnQ6IG9ialxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgW3RvcCwgcmlnaHQgPSB0b3AsIGJvdHRvbSA9IHRvcCwgbGVmdCA9IHJpZ2h0XSA9IG9iai5zcGxpdCgnICcpO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b3A6IE51bWJlcih0b3ApLFxyXG4gICAgICAgICAgICByaWdodDogTnVtYmVyKHJpZ2h0KSxcclxuICAgICAgICAgICAgYm90dG9tOiBOdW1iZXIoYm90dG9tKSxcclxuICAgICAgICAgICAgbGVmdDogTnVtYmVyKGxlZnQpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IHRvcCA9IDAsIHJpZ2h0ID0gMCwgYm90dG9tID0gMCwgbGVmdCA9IDAgfSA9IG9iajtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHRvcCxcclxuICAgICAgICByaWdodCxcclxuICAgICAgICBib3R0b20sXHJcbiAgICAgICAgbGVmdFxyXG4gICAgfTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBtZXJnZUltYWdlcyhcclxuICBpbWFnZXMsXHJcbiAge1xyXG4gICAgZGlyZWN0aW9uID0gZmFsc2UsXHJcbiAgICBjb2xvciA9IDB4MDAwMDAwMDAsXHJcbiAgICBhbGlnbiA9ICdzdGFydCcsXHJcbiAgICBvZmZzZXQgPSAwLFxyXG4gICAgbWFyZ2luXHJcbiAgfSA9IHt9XHJcbikge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdgaW1hZ2VzYCBtdXN0IGJlIGFuIGFycmF5IHRoYXQgY29udGFpbnMgaW1hZ2VzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGltYWdlcy5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBgaW1hZ2VzYCBtdXN0IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBpbWFnZScpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByb2Nlc3NJbWcgPSBhc3luYyBpbWcgPT4ge1xyXG4gICAgICAgIGNvbnN0IGltZ0J1ZmZlciA9IGF3YWl0IG5ldyBCdWZmZXIuZnJvbShpbWcsICdiYXNlNjQnKTtcclxuICAgICAgICByZXR1cm4gSmltcC5yZWFkKGltZ0J1ZmZlcikudGhlbihpbWdPYmogPT4gKHsgaW1nOiBpbWdPYmogfSkpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoaW1hZ2VzLm1hcChwcm9jZXNzSW1nKSkudGhlbihpbWdzID0+IHtcclxuICAgICAgICBsZXQgdG90YWxYID0gMDtcclxuICAgICAgICBsZXQgdG90YWxZID0gMDtcclxuXHJcbiAgICAgICAgY29uc3QgaW1nRGF0YSA9IGltZ3MucmVkdWNlKChyZXMsIHsgaW1nLCBvZmZzZXRYID0gMCwgb2Zmc2V0WSA9IDAgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgYml0bWFwOiB7IHdpZHRoLCBoZWlnaHQgfVxyXG4gICAgICB9ID0gaW1nO1xyXG5cclxuICAgICAgICAgICAgcmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaW1nLFxyXG4gICAgICAgICAgICAgICAgeDogdG90YWxYICsgb2Zmc2V0WCxcclxuICAgICAgICAgICAgICAgIHk6IHRvdGFsWSArIG9mZnNldFksXHJcbiAgICAgICAgICAgICAgICBvZmZzZXRYLFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0WVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRvdGFsWCArPSB3aWR0aCArIG9mZnNldFg7XHJcbiAgICAgICAgICAgIHRvdGFsWSArPSBoZWlnaHQgKyBvZmZzZXRZO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9LCBbXSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSBjYWxjTWFyZ2luKG1hcmdpbik7XHJcbiAgICAgICAgY29uc3QgbWFyZ2luVG9wQm90dG9tID0gdG9wICsgYm90dG9tO1xyXG4gICAgICAgIGNvbnN0IG1hcmdpblJpZ2h0TGVmdCA9IHJpZ2h0ICsgbGVmdDtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGRpcmVjdGlvblxyXG4gICAgICA/IE1hdGgubWF4KFxyXG4gICAgICAgICAgLi4uaW1nRGF0YS5tYXAoXHJcbiAgICAgICAgICAgICh7XHJcbiAgICAgICAgICAgICAgaW1nOiB7XHJcbiAgICAgICAgICAgICAgICBiaXRtYXA6IHsgd2lkdGggfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb2Zmc2V0WFxyXG4gICAgICAgICAgICB9KSA9PiB3aWR0aCArIG9mZnNldFhcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgIDogaW1nRGF0YS5yZWR1Y2UoXHJcbiAgICAgICAgICAoXHJcbiAgICAgICAgICAgIHJlcyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IHdpZHRoIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICkgPT4gcmVzICsgd2lkdGggKyBvZmZzZXRYICsgTnVtYmVyKGluZGV4ID4gMCkgKiBvZmZzZXQsXHJcbiAgICAgICAgICAwXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSBkaXJlY3Rpb25cclxuICAgICAgPyBpbWdEYXRhLnJlZHVjZShcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVzLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaW1nOiB7XHJcbiAgICAgICAgICAgICAgICBiaXRtYXA6IHsgaGVpZ2h0IH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFlcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICkgPT4gcmVzICsgaGVpZ2h0ICsgb2Zmc2V0WSArIE51bWJlcihpbmRleCA+IDApICogb2Zmc2V0LFxyXG4gICAgICAgICAgMFxyXG4gICAgICAgIClcclxuICAgICAgOiBNYXRoLm1heChcclxuICAgICAgICAgIC4uLmltZ0RhdGEubWFwKFxyXG4gICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IGhlaWdodCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRZXHJcbiAgICAgICAgICAgIH0pID0+IGhlaWdodCArIG9mZnNldFlcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBiYXNlSW1hZ2UgPSBuZXcgSmltcChcclxuICAgICAgdG90YWxXaWR0aCArIG1hcmdpblJpZ2h0TGVmdCxcclxuICAgICAgdG90YWxIZWlnaHQgKyBtYXJnaW5Ub3BCb3R0b20sXHJcbiAgICAgIGNvbG9yXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEZhbGxiYWNrIGZvciBgQXJyYXkjZW50cmllcygpYFxyXG4gICAgICAgIGNvbnN0IGltZ0RhdGFFbnRyaWVzID0gaW1nRGF0YS5tYXAoKGRhdGEsIGluZGV4KSA9PiBbaW5kZXgsIGRhdGFdKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIHsgaW1nLCB4LCB5LCBvZmZzZXRYLCBvZmZzZXRZIH1dIG9mIGltZ0RhdGFFbnRyaWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHtcclxuICAgICAgICBiaXRtYXA6IHsgd2lkdGgsIGhlaWdodCB9XHJcbiAgICAgIH0gPSBpbWc7XHJcbiAgICAgICAgICAgIGNvbnN0IFtweCwgcHldID0gZGlyZWN0aW9uXHJcbiAgICAgICAgPyBbYWxpZ25JbWFnZSh0b3RhbFdpZHRoLCB3aWR0aCwgYWxpZ24pICsgb2Zmc2V0WCwgeSArIGluZGV4ICogb2Zmc2V0XVxyXG4gICAgICAgIDogW1xyXG4gICAgICAgICAgICB4ICsgaW5kZXggKiBvZmZzZXQsXHJcbiAgICAgICAgICAgIGFsaWduSW1hZ2UodG90YWxIZWlnaHQsIGhlaWdodCwgYWxpZ24pICsgb2Zmc2V0WVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgICAgICBiYXNlSW1hZ2UuY29tcG9zaXRlKGltZywgcHggKyBsZWZ0LCBweSArIHRvcCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYmFzZUltYWdlLmdldEJhc2U2NEFzeW5jKEppbXAuTUlNRV9KUEVHKTtcclxuICAgIC8vIHJldHVybiBiYXNlSW1hZ2U7XHJcbiAgICB9KTtcclxufTtcclxuIl19
|
package/build/lib/launcher.js
CHANGED
|
@@ -4,13 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
|
|
7
8
|
require("source-map-support/register");
|
|
9
|
+
|
|
8
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
|
+
|
|
9
12
|
var Runners = _interopRequireWildcard(require("../runners"));
|
|
13
|
+
|
|
10
14
|
var _queue = _interopRequireDefault(require("async/queue"));
|
|
15
|
+
|
|
11
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
12
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
13
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
14
22
|
class Launcher {
|
|
15
23
|
constructor(config, reporter) {
|
|
16
24
|
this._config = config;
|
|
@@ -18,49 +26,66 @@ class Launcher {
|
|
|
18
26
|
this._results = [];
|
|
19
27
|
this._queue = null;
|
|
20
28
|
}
|
|
29
|
+
|
|
21
30
|
async run(capsSet) {
|
|
22
31
|
this._queue = (0, _queue.default)((task, cb) => this._launchTest(task, cb), this._config.parallel || this._config.concurrency || 1);
|
|
32
|
+
|
|
23
33
|
this._queue.error((err, task) => {
|
|
24
34
|
console.log('Error in queue:', err);
|
|
25
35
|
});
|
|
36
|
+
|
|
26
37
|
if (!capsSet) {
|
|
27
38
|
this._queue.push(null);
|
|
28
39
|
} else {
|
|
29
40
|
capsSet = Array.isArray(capsSet) ? capsSet : [capsSet];
|
|
41
|
+
|
|
30
42
|
const _this = this;
|
|
43
|
+
|
|
31
44
|
_lodash.default.each(capsSet, function (caps) {
|
|
32
45
|
_this._queue.push(caps);
|
|
33
46
|
});
|
|
34
47
|
}
|
|
48
|
+
|
|
35
49
|
await this._queue.drain();
|
|
36
50
|
}
|
|
51
|
+
|
|
37
52
|
_instantiateRunner(caps) {
|
|
38
53
|
if (this._config.framework && typeof this._config.framework === 'string') {
|
|
39
54
|
if (Object.prototype.hasOwnProperty.call(Runners, this._config.framework)) {
|
|
40
55
|
return new Runners[this._config.framework]();
|
|
41
56
|
}
|
|
57
|
+
|
|
42
58
|
return null;
|
|
43
59
|
}
|
|
60
|
+
|
|
44
61
|
return new Runners.oxygen();
|
|
45
62
|
}
|
|
63
|
+
|
|
46
64
|
async _launchTest(caps, callback) {
|
|
47
65
|
if (!callback) {
|
|
48
66
|
return;
|
|
49
67
|
}
|
|
68
|
+
|
|
50
69
|
const runner = this._instantiateRunner(caps);
|
|
70
|
+
|
|
51
71
|
if (!runner) {
|
|
52
72
|
const framework = this._config.framework;
|
|
53
73
|
callback(new Error(`Cannot find runner for the specified framework: ${framework}.`));
|
|
54
74
|
return;
|
|
55
75
|
}
|
|
76
|
+
|
|
56
77
|
try {
|
|
57
78
|
await runner.init(this._config, caps, this.reporter);
|
|
58
79
|
const result = await runner.run();
|
|
80
|
+
|
|
59
81
|
this._results.push(result);
|
|
82
|
+
|
|
60
83
|
callback();
|
|
61
84
|
} catch (e) {
|
|
62
85
|
console.error('Failed to launch the test:', e);
|
|
86
|
+
|
|
63
87
|
this._queue.kill();
|
|
88
|
+
|
|
64
89
|
if (e.error) {
|
|
65
90
|
var errMsg = '';
|
|
66
91
|
var err = e.error;
|
|
@@ -72,6 +97,8 @@ class Launcher {
|
|
|
72
97
|
}
|
|
73
98
|
}
|
|
74
99
|
}
|
|
100
|
+
|
|
75
101
|
}
|
|
102
|
+
|
|
76
103
|
exports.default = Launcher;
|
|
77
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbGF1bmNoZXIuanMiXSwibmFtZXMiOlsiTGF1bmNoZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInJlcG9ydGVyIiwiX2NvbmZpZyIsIl9yZXN1bHRzIiwiX3F1ZXVlIiwicnVuIiwiY2Fwc1NldCIsInRhc2siLCJjYiIsIl9sYXVuY2hUZXN0IiwicGFyYWxsZWwiLCJjb25jdXJyZW5jeSIsImVycm9yIiwiZXJyIiwiY29uc29sZSIsImxvZyIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJfdGhpcyIsIl8iLCJlYWNoIiwiY2FwcyIsImRyYWluIiwiX2luc3RhbnRpYXRlUnVubmVyIiwiZnJhbWV3b3JrIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiUnVubmVycyIsIm94eWdlbiIsImNhbGxiYWNrIiwicnVubmVyIiwiRXJyb3IiLCJpbml0IiwicmVzdWx0IiwiZSIsImtpbGwiLCJlcnJNc2ciLCJ0eXBlIiwibWVzc2FnZSIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFZSxNQUFNQSxRQUFOLENBQWU7QUFDMUJDLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxRQUFULEVBQW1CO0FBQzFCLFNBQUtDLE9BQUwsR0FBZUYsTUFBZjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0UsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0g7O0FBRVEsUUFBSEMsR0FBRyxDQUFDQyxPQUFELEVBQVU7QUFDZixTQUFLRixNQUFMLEdBQWMsb0JBQU0sQ0FBQ0csSUFBRCxFQUFPQyxFQUFQLEtBQWMsS0FBS0MsV0FBTCxDQUFpQkYsSUFBakIsRUFBdUJDLEVBQXZCLENBQXBCLEVBQWdELEtBQUtOLE9BQUwsQ0FBYVEsUUFBYixJQUF5QixLQUFLUixPQUFMLENBQWFTLFdBQXRDLElB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QUQsQ0FBUjtBQUNILE9BVkQsTUFXSztBQUNEUCxRQUFBQSxRQUFRLENBQUNLLENBQUQsQ0FBUjtBQUNIO0FBQ0o7QUFDSjs7QUFoRnlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgKiBhcyBSdW5uZXJzIGZyb20gJy4uL3J1bm5lcnMnO1xyXG5pbXBvcnQgcXVldWUgZnJvbSAnYXN5bmMvcXVldWUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF1bmNoZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnLCByZXBvcnRlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBydW4oY2Fwc1NldCkge1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gcXVldWUoKHRhc2ssIGNiKSA9PiB0aGlzLl9sYXVuY2hUZXN0KHRhc2ssIGNiKSwgdGhpcy5fY29uZmlnLnBhcmFsbGVsIHx8IHRoaXMuX2NvbmZpZy5jb25jdXJyZW5jeSB8fCAxKTtcclxuICAgICAgICB0aGlzLl9xdWV1ZS5lcnJvcigoZXJyLCB0YXNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiBxdWV1ZTonLCBlcnIpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBpZiBubyBjYXBhYmlsaXRpZXMgYXJlIHNwZWNpZmllZCwgcnVuIHNpbmdsZSBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzXHJcbiAgICAgICAgaWYgKCFjYXBzU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnB1c2gobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2Fwc1NldCBpcyBhbiBhcnJheSBcclxuICAgICAgICAgICAgY2Fwc1NldCA9IEFycmF5LmlzQXJyYXkoY2Fwc1NldCkgPyBjYXBzU2V0IDogW2NhcHNTZXRdO1xyXG4gICAgICAgICAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIF8uZWFjaChjYXBzU2V0LCBmdW5jdGlvbihjYXBzKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5fcXVldWUucHVzaChjYXBzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuX3F1ZXVlLmRyYWluKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgX2luc3RhbnRpYXRlUnVubmVyKGNhcHMpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZyYW1ld29yayAmJiB0eXBlb2YgdGhpcy5fY29uZmlnLmZyYW1ld29yayA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSdW5uZXJzLCB0aGlzLl9jb25maWcuZnJhbWV3b3JrKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdW5uZXJzW3RoaXMuX2NvbmZpZy5mcmFtZXdvcmtdKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUnVubmVycy5veHlnZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBfbGF1bmNoVGVzdChjYXBzLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBydW5uZXIgPSB0aGlzLl9pbnN0YW50aWF0ZVJ1bm5lcihjYXBzKTtcclxuICAgICAgICBpZiAoIXJ1bm5lcikge1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZXdvcmsgPSB0aGlzLl9jb25maWcuZnJhbWV3b3JrO1xyXG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHJ1bm5lciBmb3IgdGhlIHNwZWNpZmllZCBmcmFtZXdvcms6ICR7ZnJhbWV3b3JrfS5gKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBveHlnZW5cclxuICAgICAgICAgICAgYXdhaXQgcnVubmVyLmluaXQodGhpcy5fY29uZmlnLCBjYXBzLCB0aGlzLnJlcG9ydGVyKTtcclxuICAgICAgICAgICAgLy8gcnVuIE94eWdlbiB0ZXN0IFxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5uZXIucnVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbGF1bmNoIHRoZSB0ZXN0OicsIGUpO1xyXG4gICAgICAgICAgICAvLyBzdG9wIHByb2Nlc3NpbmcgdGhlIHF1ZXVlXHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLmtpbGwoKTtcclxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjdXN0b20gZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgICAgICBpZiAoZS5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyck1zZyA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyciA9IGUuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci50eXBlICsgJyAtICc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIGVyck1zZyA9IGVyci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGVyck1zZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSk7ICAgIC8vIGNhbGwgYmFjayB3aXRoIHRoZSBvcmlnaW5hbCBleGNlcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = moduleRequire;
|
|
7
|
+
|
|
7
8
|
require("source-map-support/register");
|
|
9
|
+
|
|
8
10
|
var decache = require('decache');
|
|
11
|
+
|
|
9
12
|
function moduleRequire(moduleName) {
|
|
10
13
|
try {
|
|
11
14
|
decache(moduleName);
|
|
@@ -15,4 +18,4 @@ function moduleRequire(moduleName) {
|
|
|
15
18
|
throw e;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbW9kdWxlUmVxdWlyZS5qcyJdLCJuYW1lcyI6WyJkZWNhY2hlIiwicmVxdWlyZSIsIm1vZHVsZVJlcXVpcmUiLCJtb2R1bGVOYW1lIiwiZSIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBRWUsU0FBU0MsYUFBVCxDQUF1QkMsVUFBdkIsRUFBbUM7QUFDOUMsTUFBSTtBQUNBSCxJQUFBQSxPQUFPLENBQUNHLFVBQUQsQ0FBUDtBQUNBLFdBQU9GLE9BQU8sQ0FBQ0UsVUFBRCxDQUFkO0FBQ0gsR0FIRCxDQUdFLE9BQU9DLENBQVAsRUFBVTtBQUNSQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsQ0FBL0I7QUFDQSxVQUFNQSxDQUFOO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWNhY2hlID0gcmVxdWlyZSgnZGVjYWNoZScpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW9kdWxlUmVxdWlyZShtb2R1bGVOYW1lKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGRlY2FjaGUobW9kdWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUobW9kdWxlTmFtZSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ21vZHVsZVJlcXVpcmUgZScsIGUpO1xyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,24 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
+
|
|
4
5
|
var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
6
|
+
|
|
5
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
+
|
|
6
9
|
module.exports = function (filePath, mode, fileType) {
|
|
7
10
|
var defer = require('when').defer;
|
|
11
|
+
|
|
8
12
|
var path = require('path');
|
|
13
|
+
|
|
9
14
|
var ExcelReader = require('./param-reader-excel');
|
|
15
|
+
|
|
10
16
|
var CsvReader = require('./param-reader-csv');
|
|
17
|
+
|
|
11
18
|
var JsonReader = require('./param-reader-json');
|
|
19
|
+
|
|
12
20
|
var errHelper = require('../errors/helper');
|
|
21
|
+
|
|
13
22
|
var module = {};
|
|
23
|
+
|
|
14
24
|
var _whenInitialized = defer();
|
|
25
|
+
|
|
15
26
|
module.init = function () {
|
|
16
27
|
var ext = path.extname(filePath);
|
|
28
|
+
|
|
17
29
|
if (fileType) {
|
|
18
30
|
ext = fileType;
|
|
19
31
|
}
|
|
32
|
+
|
|
20
33
|
var reader = null;
|
|
21
34
|
var self = this;
|
|
35
|
+
|
|
22
36
|
if (ext === '.xlsx' || ext === '.xls') {
|
|
23
37
|
reader = new ExcelReader();
|
|
24
38
|
} else if (ext === '.csv' || ext === '.txt') {
|
|
@@ -27,12 +41,15 @@ module.exports = function (filePath, mode, fileType) {
|
|
|
27
41
|
reader = new JsonReader();
|
|
28
42
|
} else {
|
|
29
43
|
_whenInitialized.reject(new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, 'Unsupported parameters file type: ' + ext));
|
|
44
|
+
|
|
30
45
|
return _whenInitialized.promise;
|
|
31
46
|
}
|
|
47
|
+
|
|
32
48
|
this.mode = mode;
|
|
33
49
|
reader.read(filePath, fileType || null).then(function (result) {
|
|
34
50
|
self.table = result;
|
|
35
51
|
self.currentRow = self.mode === 'random' ? random(0, self.table.length) : 0;
|
|
52
|
+
|
|
36
53
|
_whenInitialized.resolve(null);
|
|
37
54
|
}).catch(function (err) {
|
|
38
55
|
_whenInitialized.reject(new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, `${errHelper.errorCode.PARAMETERS_ERROR}: Unable to load parameters file.
|
|
@@ -40,37 +57,47 @@ ${err.message}`));
|
|
|
40
57
|
});
|
|
41
58
|
return _whenInitialized.promise;
|
|
42
59
|
};
|
|
60
|
+
|
|
43
61
|
module.getMode = function () {
|
|
44
62
|
return this.mode;
|
|
45
63
|
};
|
|
64
|
+
|
|
46
65
|
module.readNext = function () {
|
|
47
66
|
this.prevRow = this.currentRow;
|
|
67
|
+
|
|
48
68
|
if (this.mode === 'random') {
|
|
49
69
|
this.currentRow = random(0, this.table.length);
|
|
50
70
|
} else {
|
|
51
71
|
this.currentRow++;
|
|
52
72
|
}
|
|
73
|
+
|
|
53
74
|
if (this.currentRow > this.table.length - 1) {
|
|
54
75
|
this.currentRow = 0;
|
|
55
76
|
}
|
|
56
77
|
};
|
|
78
|
+
|
|
57
79
|
module.readPrev = function () {
|
|
58
80
|
if (typeof this.prevRow !== 'undefined') {
|
|
59
81
|
this.currentRow = this.prevRow;
|
|
60
82
|
}
|
|
61
83
|
};
|
|
84
|
+
|
|
62
85
|
module.getValues = function () {
|
|
63
86
|
if (!this.table || this.table.length === 0) {
|
|
64
87
|
throw new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, 'Parameters table is empty');
|
|
65
88
|
}
|
|
89
|
+
|
|
66
90
|
return this.table[this.currentRow];
|
|
67
91
|
};
|
|
92
|
+
|
|
68
93
|
module.__defineGetter__('rows', function () {
|
|
69
94
|
return this.table.length;
|
|
70
95
|
});
|
|
96
|
+
|
|
71
97
|
function random(min, max) {
|
|
72
98
|
return Math.floor(Math.random() * (max - min)) + min;
|
|
73
99
|
}
|
|
100
|
+
|
|
74
101
|
return module;
|
|
75
102
|
};
|
|
76
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tbWFuYWdlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZmlsZVBhdGgiLCJtb2RlIiwiZmlsZVR5cGUiLCJkZWZlciIsInJlcXVpcmUiLCJwYXRoIiwiRXhjZWxSZWFkZXIiLCJDc3ZSZWFkZXIiLCJKc29uUmVhZGVyIiwiZXJySGVscGVyIiwiX3doZW5Jbml0aWFsaXplZCIsImluaXQiLCJleHQiLCJleHRuYW1lIiwicmVhZGVyIiwic2VsZiIsInJlamVjdCIsIk94RXJyb3IiLCJlcnJvckNvZGUiLCJQQVJBTUVURVJTX0VSUk9SIiwicHJvbWlzZSIsInJlYWQiLCJ0aGVuIiwicmVzdWx0IiwidGFibGUiLCJjdXJyZW50Um93IiwicmFuZG9tIiwibGVuZ3RoIiwicmVzb2x2ZSIsImNhdGNoIiwiZXJyIiwibWVzc2FnZSIsImdldE1vZGUiLCJyZWFkTmV4dCIsInByZXZSb3ciLCJyZWFkUHJldiIsImdldFZhbHVlcyIsIl9fZGVmaW5lR2V0dGVyX18iLCJtaW4iLCJtYXgiLCJNYXRoIiwiZmxvb3IiXSwibWFwcGluZ3MiOiI7Ozs7QUFRQTs7OztBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsVUFBVUMsUUFBVixFQUFvQkMsSUFBcEIsRUFBMEJDLFFBQTFCLEVBQWlEO0FBQzlELE1BQUlDLEtBQUssR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBUCxDQUFnQkQsS0FBNUI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFJRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxzQkFBRCxDQUF6Qjs7QUFDQSxNQUFJRyxTQUFTLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUF2Qjs7QUFDQSxNQUFJSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxxQkFBRCxDQUF4Qjs7QUFDQSxNQUFJSyxTQUFTLEdBQUdMLE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxNQUFJTixNQUFNLEdB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QUF3QixXQUE1QixFQUF5QztBQUNyQyxXQUFLVCxVQUFMLEdBQWtCLEtBQUtTLE9BQXZCO0FBQ0g7QUFDSixHQUpEOztBQU1BcEMsRUFBQUEsTUFBTSxDQUFDc0MsU0FBUCxHQUFtQixZQUFXO0FBQzFCLFFBQUksQ0FBQyxLQUFLWixLQUFOLElBQWUsS0FBS0EsS0FBTCxDQUFXRyxNQUFYLEtBQXNCLENBQXpDLEVBQTRDO0FBQ3hDLFlBQU0sSUFBSVYsb0JBQUosQ0FBWVIsU0FBUyxDQUFDUyxTQUFWLENBQW9CQyxnQkFBaEMsRUFBa0QsMkJBQWxELENBQU47QUFDSDs7QUFDRCxXQUFPLEtBQUtLLEtBQUwsQ0FBVyxLQUFLQyxVQUFoQixDQUFQO0FBQ0gsR0FMRDs7QUFPQTNCLEVBQUFBLE1BQU0sQ0FBQ3VDLGdCQUFQLENBQXdCLE1BQXhCLEVBQWdDLFlBQVc7QUFDdkMsV0FBTyxLQUFLYixLQUFMLENBQVdHLE1BQWxCO0FBQ0gsR0FGRDs7QUFJQSxXQUFTRCxNQUFULENBQWdCWSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEI7QUFDdEIsV0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ2QsTUFBTCxNQUFpQmEsR0FBRyxHQUFHRCxHQUF2QixDQUFYLElBQTBDQSxHQUFqRDtBQUNIOztBQUVELFNBQU94QyxNQUFQO0FBQ0gsQ0E5RkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZmlsZVBhdGgsIG1vZGUsIGZpbGVUeXBlIC8qb3B0aW9uYWwqLykge1xyXG4gICAgdmFyIGRlZmVyID0gcmVxdWlyZSgnd2hlbicpLmRlZmVyO1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcbiAgICB2YXIgRXhjZWxSZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1leGNlbCcpO1xyXG4gICAgdmFyIENzdlJlYWRlciA9IHJlcXVpcmUoJy4vcGFyYW0tcmVhZGVyLWNzdicpO1xyXG4gICAgdmFyIEpzb25SZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1qc29uJyk7XHJcbiAgICB2YXIgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgdmFyIF93aGVuSW5pdGlhbGl6ZWQgPSBkZWZlcigpO1xyXG5cclxuICAgIG1vZHVsZS5pbml0ID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgdmFyIGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlVHlwZSkge1xyXG4gICAgICAgICAgICBleHQgPSBmaWxlVHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlYWRlciA9IG51bGw7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIGNob29zZSB0aGUgcmlnaHQgY29udmVydGVyIGJhc2VkIG9uIGVpdGhlciB4bHMgb3IgeGxzeCBmaWxlIGV4dGVuc2lvblxyXG4gICAgICAgIGlmIChleHQgPT09ICcueGxzeCcgfHwgZXh0ID09PSAnLnhscycpIHtcclxuICAgICAgICAgICAgcmVhZGVyID0gbmV3IEV4Y2VsUmVhZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJy5jc3YnIHx8IGV4dCA9PT0gJy50eHQnKSB7XHJcbiAgICAgICAgICAgIHJlYWRlciA9IG5ldyBDc3ZSZWFkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZXh0ID09PSAnLmpzb24nIHx8IGV4dCA9PT0gJy5qcycpIHtcclxuICAgICAgICAgICAgcmVhZGVyID0gbmV3IEpzb25SZWFkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIF93aGVuSW5pdGlhbGl6ZWQucmVqZWN0KG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuUEFSQU1FVEVSU19FUlJPUiwgJ1Vuc3VwcG9ydGVkIHBhcmFtZXRlcnMgZmlsZSB0eXBlOiAnICsgZXh0KSk7XHJcbiAgICAgICAgICAgIHJldHVybiBfd2hlbkluaXRpYWxpemVkLnByb21pc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xyXG5cclxuICAgICAgICByZWFkZXIucmVhZChmaWxlUGF0aCwgZmlsZVR5cGUgfHwgbnVsbClcclxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBjdXJyZW50Um93IGFjY29yZGluZyB3aXRoIHBhcmFtZXRlciByZWFkaW5nIG1vZGUgKHJhbmRvbSBvciBzZXF1ZW50aWFsKVxyXG4gICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50Um93ID0gc2VsZi5tb2RlID09PSAncmFuZG9tJyA/IHJhbmRvbSgwLCBzZWxmLnRhYmxlLmxlbmd0aCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgX3doZW5Jbml0aWFsaXplZC5yZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBfd2hlbkluaXRpYWxpemVkLnJlamVjdChcclxuICAgICAgICAgICAgICAgICAgICBuZXcgT3hFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtlcnJIZWxwZXIuZXJyb3JDb2RlLlBBUkFNRVRFUlNfRVJST1J9OiBVbmFibGUgdG8gbG9hZCBwYXJhbWV0ZXJzIGZpbGUuIFxyXG4ke2Vyci5tZXNzYWdlfWBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIF93aGVuSW5pdGlhbGl6ZWQucHJvbWlzZTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLmdldE1vZGUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUucmVhZE5leHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2Um93ID0gdGhpcy5jdXJyZW50Um93O1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdyYW5kb20nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJhbmRvbSgwLCB0aGlzLnRhYmxlLmxlbmd0aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Um93Kys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50Um93ID4gdGhpcy50YWJsZS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUucmVhZFByZXYgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXZSb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IHRoaXMucHJldlJvdztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5nZXRWYWx1ZXMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBpZiAoIXRoaXMudGFibGUgfHwgdGhpcy50YWJsZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLCAnUGFyYW1ldGVycyB0YWJsZSBpcyBlbXB0eScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy50YWJsZVt0aGlzLmN1cnJlbnRSb3ddO1xyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUuX19kZWZpbmVHZXR0ZXJfXygncm93cycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlLmxlbmd0aDtcclxuICAgIH0pO1xyXG5cclxuICAgIGZ1bmN0aW9uIHJhbmRvbShtaW4sIG1heCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSkgKyBtaW47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|
|
@@ -1,31 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
+
|
|
4
5
|
module.exports = function () {
|
|
5
6
|
var module = {};
|
|
7
|
+
|
|
6
8
|
const parse = require('csv-parse/lib/sync');
|
|
9
|
+
|
|
7
10
|
var fs = require('fs');
|
|
11
|
+
|
|
8
12
|
var path = require('path');
|
|
13
|
+
|
|
9
14
|
module.read = function (filePath, extOverride) {
|
|
10
15
|
return new Promise((resolve, reject) => {
|
|
11
16
|
var ext = path.extname(filePath);
|
|
17
|
+
|
|
12
18
|
if (extOverride) {
|
|
13
19
|
ext = extOverride;
|
|
14
20
|
}
|
|
21
|
+
|
|
15
22
|
if (ext !== '.csv' && ext !== '.txt') {
|
|
16
23
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
17
24
|
}
|
|
25
|
+
|
|
18
26
|
var data;
|
|
27
|
+
|
|
19
28
|
try {
|
|
20
29
|
data = fs.readFileSync(filePath, 'utf8');
|
|
21
30
|
} catch (e) {
|
|
22
31
|
reject(new Error('Unable to read parameters file: ' + e));
|
|
23
32
|
}
|
|
33
|
+
|
|
24
34
|
data = data.replace(/\r\r/g, '\r');
|
|
25
35
|
var bom = false;
|
|
36
|
+
|
|
26
37
|
if (data.charCodeAt(0) === 0xFEFF) {
|
|
27
38
|
bom = true;
|
|
28
39
|
}
|
|
40
|
+
|
|
29
41
|
try {
|
|
30
42
|
var table = parse(data, {
|
|
31
43
|
bom: bom,
|
|
@@ -35,9 +47,11 @@ module.exports = function () {
|
|
|
35
47
|
} catch (e) {
|
|
36
48
|
reject(e);
|
|
37
49
|
}
|
|
50
|
+
|
|
38
51
|
resolve(table);
|
|
39
52
|
});
|
|
40
53
|
};
|
|
54
|
+
|
|
41
55
|
return module;
|
|
42
56
|
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWNzdi5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGFyc2UiLCJyZXF1aXJlIiwiZnMiLCJwYXRoIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImRhdGEiLCJyZWFkRmlsZVN5bmMiLCJlIiwicmVwbGFjZSIsImJvbSIsImNoYXJDb2RlQXQiLCJ0YWJsZSIsImNvbHVtbnMiLCJ0cmltIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLFFBQU1FLEtBQUssR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXJCOztBQUNBLE1BQUlDLEVBQUUsR0FBR0QsT0FBTyxDQUFDLElBQUQsQ0FBaEI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRixPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFFQUgsRUFBQUEsTUFBTSxDQUFDTSxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQkMsV0FBbkIsRUFBZ0M7QUFDMUMsV0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3BDLFVBQUlDLEdBQUcsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLENBQWFOLFFBQWIsQ0FBVjs7QUFDQSxVQUFJQyxXQUFKLEVBQWlCO0FBQ2JJLFFBQUFBLEdBQUcsR0FBR0osV0FBTjtBQUNIOztBQUNELFVBQUlJLEdBQUcsS0FBSyxNQUFSLElBQWtCQSxHQUFHLEtBQUssTUFBOUIsRUFBc0M7QUFDbENELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFKOztBQUNBLFVBQUk7QUFDQUEsUUFBQUEsSUFBSSxHQUFHWCxFQUFFLENBQUNZLFlBQUgsQ0FBZ0JULFFBQWhCLEVBQTBCLE1BQTFCLENBQVA7QUFDSCxPQUZELENBRUUsT0FBT1UsQ0FBUCxFQUFVO0FBQ1JOLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDRyxDQUEvQyxDQUFELENBQU47QUFDSDs7QUFHREYsTUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxPQUFiLEVBQXNCLElBQXRCLENBQVA7QUFHQSxVQUFJQyxHQUFHLEdBQUcsS0FBVjs7QUFHQSxVQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsTUFBdUIsTUFBM0IsRUFBbUM7QUFDL0JELFFBQUFBLEdBQUcsR0FBRyxJQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLFlBQUlFLEtBQUssR0FBR25CLEtBQUssQ0FBQ2EsSUFBRCxFQUFPO0FBQUVJLFVBQUFBLEdBQUcsRUFBRUEsR0FBUDtBQUFZRyxVQUFBQSxPQUFPLEVBQUUsSUFBckI7QUFBMkJDLFVBQUFBLElBQUksRUFBRTtBQUFqQyxTQUFQLENBQWpCO0FBQ0gsT0FGRCxDQUVFLE9BQU9OLENBQVAsRUFBVTtBQUNSTixRQUFBQSxNQUFNLENBQUNNLENBQUQsQ0FBTjtBQUNIOztBQUVEUCxNQUFBQSxPQUFPLENBQUNXLEtBQUQsQ0FBUDtBQUNILEtBbENNLENBQVA7QUFtQ0gsR0FwQ0Q7O0FBc0NBLFNBQU9yQixNQUFQO0FBQ0gsQ0E3Q0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgY29uc3QgcGFyc2UgPSByZXF1aXJlKCdjc3YtcGFyc2UvbGliL3N5bmMnKTtcclxuICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuXHJcbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoLCBleHRPdmVycmlkZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICAgICAgICAgIGV4dCA9IGV4dE92ZXJyaWRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChleHQgIT09ICcuY3N2JyAmJiBleHQgIT09ICcudHh0Jykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGRhdGE7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmFibGUgdG8gcmVhZCBwYXJhbWV0ZXJzIGZpbGU6ICcgKyBlKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIENTVnMgcHJvZHVjZWQgYnkgT1MgWCBFeGNlbCBoYXZlIGhlYWRlciB0ZXJtaW5hdGVkIHdpdGggMGQwZDBhXHJcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xcclxcci9nLCAnXFxyJyk7XHJcblxyXG4gICAgICAgICAgICAvLyBzdHJpcCBCT00gZm9yIFVURi04XHJcbiAgICAgICAgICAgIHZhciBib20gPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gY2F0Y2hlcyAweEVGQkJCRiAoVVRGLTggQk9NKSBiZWNhdXNlIHRoZSBidWZmZXItdG8tc3RyaW5nXHJcbiAgICAgICAgICAgIC8vIGNvbnZlcnNpb24gdHJhbnNsYXRlcyBpdCB0byAweEZFRkYgKFVURi0xNiBCT00pXHJcbiAgICAgICAgICAgIGlmIChkYXRhLmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xyXG4gICAgICAgICAgICAgICAgYm9tID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IHBhcnNlKGRhdGEsIHsgYm9tOiBib20sIGNvbHVtbnM6IHRydWUsIHRyaW06IHRydWUgfSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZSh0YWJsZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBtb2R1bGU7XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,28 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
+
|
|
4
5
|
module.exports = function () {
|
|
5
6
|
var module = {};
|
|
7
|
+
|
|
6
8
|
var xlsx = require('xlsx');
|
|
9
|
+
|
|
7
10
|
var path = require('path');
|
|
11
|
+
|
|
8
12
|
module.read = function (filePath) {
|
|
9
13
|
return new Promise((resolve, reject) => {
|
|
10
14
|
var ext = path.extname(filePath);
|
|
15
|
+
|
|
11
16
|
if (ext !== '.xlsx' && ext !== '.xls') {
|
|
12
17
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
13
18
|
}
|
|
19
|
+
|
|
14
20
|
var json = [];
|
|
21
|
+
|
|
15
22
|
try {
|
|
16
23
|
var workbook = xlsx.readFile(filePath);
|
|
17
24
|
var sheetNameList = workbook.SheetNames;
|
|
18
25
|
var jsonRaw = xlsx.utils.sheet_to_json(workbook.Sheets[sheetNameList[0]], {
|
|
19
26
|
defval: ''
|
|
20
27
|
});
|
|
28
|
+
|
|
21
29
|
for (var paramRaw of jsonRaw) {
|
|
22
30
|
var param = {};
|
|
31
|
+
|
|
23
32
|
for (var propRaw in paramRaw) {
|
|
24
33
|
if (Object.prototype.hasOwnProperty.call(paramRaw, propRaw)) {
|
|
25
34
|
var valueRaw = paramRaw[propRaw];
|
|
35
|
+
|
|
26
36
|
if (typeof valueRaw === 'string' || valueRaw instanceof String) {
|
|
27
37
|
param[propRaw.trim()] = valueRaw.trim();
|
|
28
38
|
} else {
|
|
@@ -30,14 +40,17 @@ module.exports = function () {
|
|
|
30
40
|
}
|
|
31
41
|
}
|
|
32
42
|
}
|
|
43
|
+
|
|
33
44
|
json.push(param);
|
|
34
45
|
}
|
|
35
46
|
} catch (err) {
|
|
36
47
|
reject(err);
|
|
37
48
|
}
|
|
49
|
+
|
|
38
50
|
resolve(json);
|
|
39
51
|
});
|
|
40
52
|
};
|
|
53
|
+
|
|
41
54
|
return module;
|
|
42
55
|
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWV4Y2VsLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ4bHN4IiwicmVxdWlyZSIsInBhdGgiLCJyZWFkIiwiZmlsZVBhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImpzb24iLCJ3b3JrYm9vayIsInJlYWRGaWxlIiwic2hlZXROYW1lTGlzdCIsIlNoZWV0TmFtZXMiLCJqc29uUmF3IiwidXRpbHMiLCJzaGVldF90b19qc29uIiwiU2hlZXRzIiwiZGVmdmFsIiwicGFyYW1SYXciLCJwYXJhbSIsInByb3BSYXciLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ2YWx1ZVJhdyIsIlN0cmluZyIsInRyaW0iLCJwdXNoIiwiZXJyIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBSUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFHQUgsRUFBQUEsTUFBTSxDQUFDSyxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQjtBQUM3QixXQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDcEMsVUFBSUMsR0FBRyxHQUFHTixJQUFJLENBQUNPLE9BQUwsQ0FBYUwsUUFBYixDQUFWOztBQUNBLFVBQUlJLEdBQUcsS0FBSyxPQUFSLElBQW1CQSxHQUFHLEtBQUssTUFBL0IsRUFBdUM7QUFDbkNELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFJLEdBQUcsRUFBWDs7QUFDQSxVQUFJO0FBQ0EsWUFBSUMsUUFBUSxHQUFHWixJQUFJLENBQUNhLFFBQUwsQ0FBY1QsUUFBZCxDQUFmO0FBQ0EsWUFBSVUsYUFBYSxHQUFHRixRQUFRLENBQUNHLFVBQTdCO0FBQ0EsWUFBSUMsT0FBTyxHQUFHaEIsSUFBSSxDQUFDaUIsS0FBTCxDQUFXQyxhQUFYLENBQXlCTixRQUFRLENBQUNPLE1BQVQsQ0FBZ0JMLGFBQWEsQ0FBQyxDQUFELENBQTdCLENBQXpCLEVBQTREO0FBQUVNLFVBQUFBLE1BQU0sRUFBRTtBQUFWLFNBQTVELENBQWQ7O0FBR0EsYUFBSyxJQUFJQyxRQUFULElBQXFCTCxPQUFyQixFQUE4QjtBQUMxQixjQUFJTSxLQUFLLEdBQUcsRUFBWjs7QUFDQSxlQUFLLElBQUlDLE9BQVQsSUFBb0JGLFFBQXBCLEVBQThCO0FBQzFCLGdCQUFJRyxNQUFNLENBQUNDLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sUUFBckMsRUFBK0NFLE9BQS9DLENBQUosRUFBNkQ7QUFDekQsa0JBQUlLLFFBQVEsR0FBR1AsUUFBUSxDQUFDRSxPQUFELENBQXZCOztBQUNBLGtCQUFJLE9BQU9LLFFBQVAsS0FBb0IsUUFBcEIsSUFBZ0NBLFFBQVEsWUFBWUMsTUFBeEQsRUFBZ0U7QUFDNURQLGdCQUFBQSxLQUFLLENBQUNDLE9BQU8sQ0FBQ08sSUFBUixFQUFELENBQUwsR0FBd0JGLFFBQVEsQ0FBQ0UsSUFBVCxFQUF4QjtBQUNILGVBRkQsTUFFTztBQUNIUixnQkFBQUEsS0FBSyxDQUFDQyxPQUFPLENBQUNPLElBQVIsRUFBRCxDQUFMLEdBQXdCRixRQUF4QjtBQUNIO0FBQ0o7QUFDSjs7QUFDRGpCLFVBQUFBLElBQUksQ0FBQ29CLElBQUwsQ0FBVVQsS0FBVjtBQUNIO0FBQ0osT0FwQkQsQ0FvQkUsT0FBT1UsR0FBUCxFQUFZO0FBQ1Z6QixRQUFBQSxNQUFNLENBQUN5QixHQUFELENBQU47QUFDSDs7QUFFRDFCLE1BQUFBLE9BQU8sQ0FBQ0ssSUFBRCxDQUFQO0FBQ0gsS0FoQ00sQ0FBUDtBQWlDSCxHQWxDRDs7QUFvQ0EsU0FBT2IsTUFBUDtBQUNILENBM0NEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBtb2R1bGUgPSB7fTtcclxuICAgIHZhciB4bHN4ID0gcmVxdWlyZSgneGxzeCcpO1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcblxyXG4gICAgLy8gYXN5bmNocm9ub3VzbHkgcmVhZHMgRXhjZWwgZmlsZSBhbmQgcmV0dXJucyBqc29uIHRoYXQgcmVwcmVzZW50cyB0aGUgZmlyc3Qgc2hlZXRcclxuICAgIG1vZHVsZS5yZWFkID0gZnVuY3Rpb24oZmlsZVBhdGgpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgaWYgKGV4dCAhPT0gJy54bHN4JyAmJiBleHQgIT09ICcueGxzJykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGpzb24gPSBbXTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciB3b3JrYm9vayA9IHhsc3gucmVhZEZpbGUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNoZWV0TmFtZUxpc3QgPSB3b3JrYm9vay5TaGVldE5hbWVzO1xyXG4gICAgICAgICAgICAgICAgdmFyIGpzb25SYXcgPSB4bHN4LnV0aWxzLnNoZWV0X3RvX2pzb24od29ya2Jvb2suU2hlZXRzW3NoZWV0TmFtZUxpc3RbMF1dLCB7IGRlZnZhbDogJycgfSk7XHJcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGluIGNhc2UgdGhlcmUgd2VyZSBzb21lIGV4dHJhIGxpbmUgYnJlYWtzIGluIHRoZSBjZWxsc1xyXG4gICAgICAgICAgICAgICAgLy8gcmVjcmVhdGUgdGhlIHBhcmFtZXRlcnMgb2JqZWN0cyB3aXRoIGFsbCB0aGUgXFxyIGFuZCBcXG4gYW5kIHdoaXRlIHNwYWNlcyB0cmltbWVkXHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwYXJhbVJhdyBvZiBqc29uUmF3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmFtID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcFJhdyBpbiBwYXJhbVJhdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtUmF3LCBwcm9wUmF3KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlUmF3ID0gcGFyYW1SYXdbcHJvcFJhd107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlUmF3ID09PSAnc3RyaW5nJyB8fCB2YWx1ZVJhdyBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtW3Byb3BSYXcudHJpbSgpXSA9IHZhbHVlUmF3LnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1bcHJvcFJhdy50cmltKCldID0gdmFsdWVSYXc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAganNvbi5wdXNoKHBhcmFtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShqc29uKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|
|
@@ -1,29 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
+
|
|
4
5
|
module.exports = function () {
|
|
5
6
|
var module = {};
|
|
7
|
+
|
|
6
8
|
var path = require('path');
|
|
9
|
+
|
|
7
10
|
module.read = function (filePath, extOverride) {
|
|
8
11
|
return new Promise((resolve, reject) => {
|
|
9
12
|
var ext = path.extname(filePath);
|
|
13
|
+
|
|
10
14
|
if (extOverride) {
|
|
11
15
|
ext = extOverride;
|
|
12
16
|
}
|
|
17
|
+
|
|
13
18
|
if (ext !== '.json' && ext !== '.js') {
|
|
14
19
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
15
20
|
}
|
|
21
|
+
|
|
16
22
|
try {
|
|
17
23
|
const rows = require(filePath);
|
|
24
|
+
|
|
18
25
|
if (!Array.isArray(rows)) {
|
|
19
26
|
reject(new Error('Unsupported file content'));
|
|
20
27
|
}
|
|
28
|
+
|
|
21
29
|
resolve(rows);
|
|
22
30
|
} catch (e) {
|
|
23
31
|
reject(new Error('Unable to read parameters file: ' + e));
|
|
24
32
|
}
|
|
25
33
|
});
|
|
26
34
|
};
|
|
35
|
+
|
|
27
36
|
return module;
|
|
28
37
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWpzb24uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInBhdGgiLCJyZXF1aXJlIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsInJvd3MiLCJBcnJheSIsImlzQXJyYXkiLCJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBRUFILEVBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxHQUFjLFVBQVNDLFFBQVQsRUFBbUJDLFdBQW5CLEVBQWdDO0FBQzFDLFdBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQyxVQUFJQyxHQUFHLEdBQUdSLElBQUksQ0FBQ1MsT0FBTCxDQUFhTixRQUFiLENBQVY7O0FBQ0EsVUFBSUMsV0FBSixFQUFpQjtBQUNiSSxRQUFBQSxHQUFHLEdBQUdKLFdBQU47QUFDSDs7QUFDRCxVQUFJSSxHQUFHLEtBQUssT0FBUixJQUFtQkEsR0FBRyxLQUFLLEtBQS9CLEVBQXNDO0FBQ2xDRCxRQUFBQSxNQUFNLENBQUMsSUFBSUcsS0FBSixDQUFVLGlDQUFpQ0YsR0FBM0MsQ0FBRCxDQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLGNBQU1HLElBQUksR0FBR1YsT0FBTyxDQUFDRSxRQUFELENBQXBCOztBQUNBLFlBQUksQ0FBQ1MsS0FBSyxDQUFDQyxPQUFOLENBQWNGLElBQWQsQ0FBTCxFQUEwQjtBQUN0QkosVUFBQUEsTUFBTSxDQUFDLElBQUlHLEtBQUosQ0FBVSwwQkFBVixDQUFELENBQU47QUFDSDs7QUFDREosUUFBQUEsT0FBTyxDQUFDSyxJQUFELENBQVA7QUFDSCxPQU5ELENBTUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1JQLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDSSxDQUEvQyxDQUFELENBQU47QUFDSDtBQUNKLEtBbEJNLENBQVA7QUFtQkgsR0FwQkQ7O0FBc0JBLFNBQU9oQixNQUFQO0FBQ0gsQ0EzQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcblxyXG4gICAgbW9kdWxlLnJlYWQgPSBmdW5jdGlvbihmaWxlUGF0aCwgZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgaWYgKGV4dE92ZXJyaWRlKSB7XHJcbiAgICAgICAgICAgICAgICBleHQgPSBleHRPdmVycmlkZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZXh0ICE9PSAnLmpzb24nICYmIGV4dCAhPT0gJy5qcycpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gcmVxdWlyZShmaWxlUGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocm93cykpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbnN1cHBvcnRlZCBmaWxlIGNvbnRlbnQnKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJvd3MpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmFibGUgdG8gcmVhZCBwYXJhbWV0ZXJzIGZpbGU6ICcgKyBlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|