oxygen-cli 1.25.0-beta.1 → 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 +6 -47
- 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 -16
- 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/lib/img-merge.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
var _jimp = _interopRequireDefault(require("jimp"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
6
|
function alignImage(total, size, align) {
|
|
10
7
|
if (align === 'center') {
|
|
11
8
|
return (total - size) / 2;
|
|
12
9
|
}
|
|
13
|
-
|
|
14
10
|
if (align === 'end') {
|
|
15
11
|
return total - size;
|
|
16
12
|
}
|
|
17
|
-
|
|
18
13
|
return 0;
|
|
19
14
|
}
|
|
20
|
-
|
|
21
15
|
function calcMargin(obj = {}) {
|
|
22
16
|
if (Number.isInteger(obj)) {
|
|
23
17
|
return {
|
|
@@ -27,7 +21,6 @@ function calcMargin(obj = {}) {
|
|
|
27
21
|
left: obj
|
|
28
22
|
};
|
|
29
23
|
}
|
|
30
|
-
|
|
31
24
|
if (typeof obj === 'string') {
|
|
32
25
|
const [top, right = top, bottom = top, left = right] = obj.split(' ');
|
|
33
26
|
return {
|
|
@@ -37,7 +30,6 @@ function calcMargin(obj = {}) {
|
|
|
37
30
|
left: Number(left)
|
|
38
31
|
};
|
|
39
32
|
}
|
|
40
|
-
|
|
41
33
|
const {
|
|
42
34
|
top = 0,
|
|
43
35
|
right = 0,
|
|
@@ -51,7 +43,6 @@ function calcMargin(obj = {}) {
|
|
|
51
43
|
left
|
|
52
44
|
};
|
|
53
45
|
}
|
|
54
|
-
|
|
55
46
|
module.exports = function mergeImages(images, {
|
|
56
47
|
direction = false,
|
|
57
48
|
color = 0x00000000,
|
|
@@ -62,18 +53,15 @@ module.exports = function mergeImages(images, {
|
|
|
62
53
|
if (!Array.isArray(images)) {
|
|
63
54
|
throw new TypeError('`images` must be an array that contains images');
|
|
64
55
|
}
|
|
65
|
-
|
|
66
56
|
if (images.length < 1) {
|
|
67
57
|
throw new Error('At least `images` must contain more than one image');
|
|
68
58
|
}
|
|
69
|
-
|
|
70
59
|
const processImg = async img => {
|
|
71
60
|
const imgBuffer = await new Buffer.from(img, 'base64');
|
|
72
61
|
return _jimp.default.read(imgBuffer).then(imgObj => ({
|
|
73
62
|
img: imgObj
|
|
74
63
|
}));
|
|
75
64
|
};
|
|
76
|
-
|
|
77
65
|
return Promise.all(images.map(processImg)).then(imgs => {
|
|
78
66
|
let totalX = 0;
|
|
79
67
|
let totalY = 0;
|
|
@@ -139,7 +127,6 @@ module.exports = function mergeImages(images, {
|
|
|
139
127
|
}) => height + offsetY));
|
|
140
128
|
const baseImage = new _jimp.default(totalWidth + marginRightLeft, totalHeight + marginTopBottom, color);
|
|
141
129
|
const imgDataEntries = imgData.map((data, index) => [index, data]);
|
|
142
|
-
|
|
143
130
|
for (const [index, {
|
|
144
131
|
img,
|
|
145
132
|
x,
|
|
@@ -156,8 +143,7 @@ module.exports = function mergeImages(images, {
|
|
|
156
143
|
const [px, py] = direction ? [alignImage(totalWidth, width, align) + offsetX, y + index * offset] : [x + index * offset, alignImage(totalHeight, height, align) + offsetY];
|
|
157
144
|
baseImage.composite(img, px + left, py + top);
|
|
158
145
|
}
|
|
159
|
-
|
|
160
146
|
return baseImage.getBase64Async(_jimp.default.MIME_JPEG);
|
|
161
147
|
});
|
|
162
148
|
};
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW1nLW1lcmdlLmpzIl0sIm5hbWVzIjpbImFsaWduSW1hZ2UiLCJ0b3RhbCIsInNpemUiLCJhbGlnbiIsImNhbGNNYXJnaW4iLCJvYmoiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJzcGxpdCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXJnZUltYWdlcyIsImltYWdlcyIsImRpcmVjdGlvbiIsImNvbG9yIiwib2Zmc2V0IiwibWFyZ2luIiwiQXJyYXkiLCJpc0FycmF5IiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiRXJyb3IiLCJwcm9jZXNzSW1nIiwiaW1nIiwiaW1nQnVmZmVyIiwiQnVmZmVyIiwiZnJvbSIsIkppbXAiLCJyZWFkIiwidGhlbiIsImltZ09iaiIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWdzIiwidG90YWxYIiwidG90YWxZIiwiaW1nRGF0YSIsInJlZHVjZSIsInJlcyIsIm9mZnNldFgiLCJvZmZzZXRZIiwiYml0bWFwIiwid2lkdGgiLCJoZWlnaHQiLCJwdXNoIiwieCIsInkiLCJtYXJnaW5Ub3BCb3R0b20iLCJtYXJnaW5SaWdodExlZnQiLCJ0b3RhbFdpZHRoIiwiTWF0aCIsIm1heCIsImluZGV4IiwidG90YWxIZWlnaHQiLCJiYXNlSW1hZ2UiLCJpbWdEYXRhRW50cmllcyIsImRhdGEiLCJweCIsInB5IiwiY29tcG9zaXRlIiwiZ2V0QmFzZTY0QXN5bmMiLCJNSU1FX0pQRUciXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTs7OztBQUVBLFNBQVNBLFVBQVQsQ0FBb0JDLEtBQXBCLEVBQTJCQyxJQUEzQixFQUFpQ0MsS0FBakMsRUFBd0M7QUFDcEMsTUFBSUEsS0FBSyxLQUFLLFFBQWQsRUFBd0I7QUFDcEIsV0FBTyxDQUFDRixLQUFLLEdBQUdDLElBQVQsSUFBaUIsQ0FBeEI7QUFDSDs7QUFFRCxNQUFJQyxLQUFLLEtBQUssS0FBZCxFQUFxQjtBQUNqQixXQUFPRixL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YjtBQUFzQkMsTUFBQUE7QUFBdEIsS0FBUixDQUFYLElBQXVEZSxjQUF2RCxFQUF1RTtBQUNuRSxZQUFNO0FBQ1ZkLFFBQUFBLE1BQU0sRUFBRTtBQUFFQyxVQUFBQSxLQUFGO0FBQVNDLFVBQUFBO0FBQVQ7QUFERSxVQUVSckIsR0FGRTtBQUdBLFlBQU0sQ0FBQ21DLEVBQUQsRUFBS0MsRUFBTCxJQUFXOUMsU0FBUyxHQUM1QixDQUFDakIsVUFBVSxDQUFDc0QsVUFBRCxFQUFhUCxLQUFiLEVBQW9CNUMsS0FBcEIsQ0FBVixHQUF1Q3lDLE9BQXhDLEVBQWlETyxDQUFDLEdBQUdNLEtBQUssR0FBR3RDLE1BQTdELENBRDRCLEdBRTVCLENBQ0UrQixDQUFDLEdBQUdPLEtBQUssR0FBR3RDLE1BRGQsRUFFRW5CLFVBQVUsQ0FBQzBELFdBQUQsRUFBY1YsTUFBZCxFQUFzQjdDLEtBQXRCLENBQVYsR0FBeUMwQyxPQUYzQyxDQUZFO0FBT0FjLE1BQUFBLFNBQVMsQ0FBQ0ssU0FBVixDQUFvQnJDLEdBQXBCLEVBQXlCbUMsRUFBRSxHQUFHbkQsSUFBOUIsRUFBb0NvRCxFQUFFLEdBQUd2RCxHQUF6QztBQUNIOztBQUVELFdBQU9tRCxTQUFTLENBQUNNLGNBQVYsQ0FBeUJsQyxjQUFLbUMsU0FBOUIsQ0FBUDtBQUVILEdBdEdNLENBQVA7QUF1R0gsQ0E5SEQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vcmFncmFnL21lcmdlLWJhc2U2NFxyXG5cclxuaW1wb3J0IEppbXAgZnJvbSAnamltcCc7XHJcblxyXG5mdW5jdGlvbiBhbGlnbkltYWdlKHRvdGFsLCBzaXplLCBhbGlnbikge1xyXG4gICAgaWYgKGFsaWduID09PSAnY2VudGVyJykge1xyXG4gICAgICAgIHJldHVybiAodG90YWwgLSBzaXplKSAvIDI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsaWduID09PSAnZW5kJykge1xyXG4gICAgICAgIHJldHVybiB0b3RhbCAtIHNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbGNNYXJnaW4ob2JqID0ge30pIHtcclxuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG9iaikpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b3A6IG9iaixcclxuICAgICAgICAgICAgcmlnaHQ6IG9iaixcclxuICAgICAgICAgICAgYm90dG9tOiBvYmosXHJcbiAgICAgICAgICAgIGxlZnQ6IG9ialxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgW3RvcCwgcmlnaHQgPSB0b3AsIGJvdHRvbSA9IHRvcCwgbGVmdCA9IHJpZ2h0XSA9IG9iai5zcGxpdCgnICcpO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b3A6IE51bWJlcih0b3ApLFxyXG4gICAgICAgICAgICByaWdodDogTnVtYmVyKHJpZ2h0KSxcclxuICAgICAgICAgICAgYm90dG9tOiBOdW1iZXIoYm90dG9tKSxcclxuICAgICAgICAgICAgbGVmdDogTnVtYmVyKGxlZnQpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IHRvcCA9IDAsIHJpZ2h0ID0gMCwgYm90dG9tID0gMCwgbGVmdCA9IDAgfSA9IG9iajtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHRvcCxcclxuICAgICAgICByaWdodCxcclxuICAgICAgICBib3R0b20sXHJcbiAgICAgICAgbGVmdFxyXG4gICAgfTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBtZXJnZUltYWdlcyhcclxuICBpbWFnZXMsXHJcbiAge1xyXG4gICAgZGlyZWN0aW9uID0gZmFsc2UsXHJcbiAgICBjb2xvciA9IDB4MDAwMDAwMDAsXHJcbiAgICBhbGlnbiA9ICdzdGFydCcsXHJcbiAgICBvZmZzZXQgPSAwLFxyXG4gICAgbWFyZ2luXHJcbiAgfSA9IHt9XHJcbikge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGltYWdlcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdgaW1hZ2VzYCBtdXN0IGJlIGFuIGFycmF5IHRoYXQgY29udGFpbnMgaW1hZ2VzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGltYWdlcy5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBgaW1hZ2VzYCBtdXN0IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBpbWFnZScpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByb2Nlc3NJbWcgPSBhc3luYyBpbWcgPT4ge1xyXG4gICAgICAgIGNvbnN0IGltZ0J1ZmZlciA9IGF3YWl0IG5ldyBCdWZmZXIuZnJvbShpbWcsICdiYXNlNjQnKTtcclxuICAgICAgICByZXR1cm4gSmltcC5yZWFkKGltZ0J1ZmZlcikudGhlbihpbWdPYmogPT4gKHsgaW1nOiBpbWdPYmogfSkpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoaW1hZ2VzLm1hcChwcm9jZXNzSW1nKSkudGhlbihpbWdzID0+IHtcclxuICAgICAgICBsZXQgdG90YWxYID0gMDtcclxuICAgICAgICBsZXQgdG90YWxZID0gMDtcclxuXHJcbiAgICAgICAgY29uc3QgaW1nRGF0YSA9IGltZ3MucmVkdWNlKChyZXMsIHsgaW1nLCBvZmZzZXRYID0gMCwgb2Zmc2V0WSA9IDAgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgYml0bWFwOiB7IHdpZHRoLCBoZWlnaHQgfVxyXG4gICAgICB9ID0gaW1nO1xyXG5cclxuICAgICAgICAgICAgcmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaW1nLFxyXG4gICAgICAgICAgICAgICAgeDogdG90YWxYICsgb2Zmc2V0WCxcclxuICAgICAgICAgICAgICAgIHk6IHRvdGFsWSArIG9mZnNldFksXHJcbiAgICAgICAgICAgICAgICBvZmZzZXRYLFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0WVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRvdGFsWCArPSB3aWR0aCArIG9mZnNldFg7XHJcbiAgICAgICAgICAgIHRvdGFsWSArPSBoZWlnaHQgKyBvZmZzZXRZO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9LCBbXSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSBjYWxjTWFyZ2luKG1hcmdpbik7XHJcbiAgICAgICAgY29uc3QgbWFyZ2luVG9wQm90dG9tID0gdG9wICsgYm90dG9tO1xyXG4gICAgICAgIGNvbnN0IG1hcmdpblJpZ2h0TGVmdCA9IHJpZ2h0ICsgbGVmdDtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGRpcmVjdGlvblxyXG4gICAgICA/IE1hdGgubWF4KFxyXG4gICAgICAgICAgLi4uaW1nRGF0YS5tYXAoXHJcbiAgICAgICAgICAgICh7XHJcbiAgICAgICAgICAgICAgaW1nOiB7XHJcbiAgICAgICAgICAgICAgICBiaXRtYXA6IHsgd2lkdGggfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb2Zmc2V0WFxyXG4gICAgICAgICAgICB9KSA9PiB3aWR0aCArIG9mZnNldFhcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgIDogaW1nRGF0YS5yZWR1Y2UoXHJcbiAgICAgICAgICAoXHJcbiAgICAgICAgICAgIHJlcyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IHdpZHRoIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFhcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICkgPT4gcmVzICsgd2lkdGggKyBvZmZzZXRYICsgTnVtYmVyKGluZGV4ID4gMCkgKiBvZmZzZXQsXHJcbiAgICAgICAgICAwXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSBkaXJlY3Rpb25cclxuICAgICAgPyBpbWdEYXRhLnJlZHVjZShcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVzLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaW1nOiB7XHJcbiAgICAgICAgICAgICAgICBiaXRtYXA6IHsgaGVpZ2h0IH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFlcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICkgPT4gcmVzICsgaGVpZ2h0ICsgb2Zmc2V0WSArIE51bWJlcihpbmRleCA+IDApICogb2Zmc2V0LFxyXG4gICAgICAgICAgMFxyXG4gICAgICAgIClcclxuICAgICAgOiBNYXRoLm1heChcclxuICAgICAgICAgIC4uLmltZ0RhdGEubWFwKFxyXG4gICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IGhlaWdodCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRZXHJcbiAgICAgICAgICAgIH0pID0+IGhlaWdodCArIG9mZnNldFlcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBiYXNlSW1hZ2UgPSBuZXcgSmltcChcclxuICAgICAgdG90YWxXaWR0aCArIG1hcmdpblJpZ2h0TGVmdCxcclxuICAgICAgdG90YWxIZWlnaHQgKyBtYXJnaW5Ub3BCb3R0b20sXHJcbiAgICAgIGNvbG9yXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEZhbGxiYWNrIGZvciBgQXJyYXkjZW50cmllcygpYFxyXG4gICAgICAgIGNvbnN0IGltZ0RhdGFFbnRyaWVzID0gaW1nRGF0YS5tYXAoKGRhdGEsIGluZGV4KSA9PiBbaW5kZXgsIGRhdGFdKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIHsgaW1nLCB4LCB5LCBvZmZzZXRYLCBvZmZzZXRZIH1dIG9mIGltZ0RhdGFFbnRyaWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHtcclxuICAgICAgICBiaXRtYXA6IHsgd2lkdGgsIGhlaWdodCB9XHJcbiAgICAgIH0gPSBpbWc7XHJcbiAgICAgICAgICAgIGNvbnN0IFtweCwgcHldID0gZGlyZWN0aW9uXHJcbiAgICAgICAgPyBbYWxpZ25JbWFnZSh0b3RhbFdpZHRoLCB3aWR0aCwgYWxpZ24pICsgb2Zmc2V0WCwgeSArIGluZGV4ICogb2Zmc2V0XVxyXG4gICAgICAgIDogW1xyXG4gICAgICAgICAgICB4ICsgaW5kZXggKiBvZmZzZXQsXHJcbiAgICAgICAgICAgIGFsaWduSW1hZ2UodG90YWxIZWlnaHQsIGhlaWdodCwgYWxpZ24pICsgb2Zmc2V0WVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgICAgICBiYXNlSW1hZ2UuY29tcG9zaXRlKGltZywgcHggKyBsZWZ0LCBweSArIHRvcCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYmFzZUltYWdlLmdldEJhc2U2NEFzeW5jKEppbXAuTUlNRV9KUEVHKTtcclxuICAgIC8vIHJldHVybiBiYXNlSW1hZ2U7XHJcbiAgICB9KTtcclxufTtcclxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhbGlnbkltYWdlIiwidG90YWwiLCJzaXplIiwiYWxpZ24iLCJjYWxjTWFyZ2luIiwib2JqIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Iiwic3BsaXQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWVyZ2VJbWFnZXMiLCJpbWFnZXMiLCJkaXJlY3Rpb24iLCJjb2xvciIsIm9mZnNldCIsIm1hcmdpbiIsIkFycmF5IiwiaXNBcnJheSIsIlR5cGVFcnJvciIsImxlbmd0aCIsIkVycm9yIiwicHJvY2Vzc0ltZyIsImltZyIsImltZ0J1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJKaW1wIiwicmVhZCIsInRoZW4iLCJpbWdPYmoiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1ncyIsInRvdGFsWCIsInRvdGFsWSIsImltZ0RhdGEiLCJyZWR1Y2UiLCJyZXMiLCJvZmZzZXRYIiwib2Zmc2V0WSIsImJpdG1hcCIsIndpZHRoIiwiaGVpZ2h0IiwicHVzaCIsIngiLCJ5IiwibWFyZ2luVG9wQm90dG9tIiwibWFyZ2luUmlnaHRMZWZ0IiwidG90YWxXaWR0aCIsIk1hdGgiLCJtYXgiLCJpbmRleCIsInRvdGFsSGVpZ2h0IiwiYmFzZUltYWdlIiwiaW1nRGF0YUVudHJpZXMiLCJkYXRhIiwicHgiLCJweSIsImNvbXBvc2l0ZSIsImdldEJhc2U2NEFzeW5jIiwiTUlNRV9KUEVHIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9pbWctbWVyZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZ3JhZy9tZXJnZS1iYXNlNjRcclxuXHJcbmltcG9ydCBKaW1wIGZyb20gJ2ppbXAnO1xyXG5cclxuZnVuY3Rpb24gYWxpZ25JbWFnZSh0b3RhbCwgc2l6ZSwgYWxpZ24pIHtcclxuICAgIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpIHtcclxuICAgICAgICByZXR1cm4gKHRvdGFsIC0gc2l6ZSkgLyAyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbGlnbiA9PT0gJ2VuZCcpIHtcclxuICAgICAgICByZXR1cm4gdG90YWwgLSBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxjTWFyZ2luKG9iaiA9IHt9KSB7XHJcbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihvYmopKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wOiBvYmosXHJcbiAgICAgICAgICAgIHJpZ2h0OiBvYmosXHJcbiAgICAgICAgICAgIGJvdHRvbTogb2JqLFxyXG4gICAgICAgICAgICBsZWZ0OiBvYmpcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IFt0b3AsIHJpZ2h0ID0gdG9wLCBib3R0b20gPSB0b3AsIGxlZnQgPSByaWdodF0gPSBvYmouc3BsaXQoJyAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG9wOiBOdW1iZXIodG9wKSxcclxuICAgICAgICAgICAgcmlnaHQ6IE51bWJlcihyaWdodCksXHJcbiAgICAgICAgICAgIGJvdHRvbTogTnVtYmVyKGJvdHRvbSksXHJcbiAgICAgICAgICAgIGxlZnQ6IE51bWJlcihsZWZ0KVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyB0b3AgPSAwLCByaWdodCA9IDAsIGJvdHRvbSA9IDAsIGxlZnQgPSAwIH0gPSBvYmo7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0b3AsXHJcbiAgICAgICAgcmlnaHQsXHJcbiAgICAgICAgYm90dG9tLFxyXG4gICAgICAgIGxlZnRcclxuICAgIH07XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbWVyZ2VJbWFnZXMoXHJcbiAgaW1hZ2VzLFxyXG4gIHtcclxuICAgIGRpcmVjdGlvbiA9IGZhbHNlLFxyXG4gICAgY29sb3IgPSAweDAwMDAwMDAwLFxyXG4gICAgYWxpZ24gPSAnc3RhcnQnLFxyXG4gICAgb2Zmc2V0ID0gMCxcclxuICAgIG1hcmdpblxyXG4gIH0gPSB7fVxyXG4pIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShpbWFnZXMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGltYWdlc2AgbXVzdCBiZSBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGltYWdlcycpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbWFnZXMubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3QgYGltYWdlc2AgbXVzdCBjb250YWluIG1vcmUgdGhhbiBvbmUgaW1hZ2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9jZXNzSW1nID0gYXN5bmMgaW1nID0+IHtcclxuICAgICAgICBjb25zdCBpbWdCdWZmZXIgPSBhd2FpdCBuZXcgQnVmZmVyLmZyb20oaW1nLCAnYmFzZTY0Jyk7XHJcbiAgICAgICAgcmV0dXJuIEppbXAucmVhZChpbWdCdWZmZXIpLnRoZW4oaW1nT2JqID0+ICh7IGltZzogaW1nT2JqIH0pKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGltYWdlcy5tYXAocHJvY2Vzc0ltZykpLnRoZW4oaW1ncyA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsWCA9IDA7XHJcbiAgICAgICAgbGV0IHRvdGFsWSA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGltZ0RhdGEgPSBpbWdzLnJlZHVjZSgocmVzLCB7IGltZywgb2Zmc2V0WCA9IDAsIG9mZnNldFkgPSAwIH0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qge1xyXG4gICAgICAgIGJpdG1hcDogeyB3aWR0aCwgaGVpZ2h0IH1cclxuICAgICAgfSA9IGltZztcclxuXHJcbiAgICAgICAgICAgIHJlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGltZyxcclxuICAgICAgICAgICAgICAgIHg6IHRvdGFsWCArIG9mZnNldFgsXHJcbiAgICAgICAgICAgICAgICB5OiB0b3RhbFkgKyBvZmZzZXRZLFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0WCxcclxuICAgICAgICAgICAgICAgIG9mZnNldFlcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0b3RhbFggKz0gd2lkdGggKyBvZmZzZXRYO1xyXG4gICAgICAgICAgICB0b3RhbFkgKz0gaGVpZ2h0ICsgb2Zmc2V0WTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSwgW10pO1xyXG5cclxuICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gY2FsY01hcmdpbihtYXJnaW4pO1xyXG4gICAgICAgIGNvbnN0IG1hcmdpblRvcEJvdHRvbSA9IHRvcCArIGJvdHRvbTtcclxuICAgICAgICBjb25zdCBtYXJnaW5SaWdodExlZnQgPSByaWdodCArIGxlZnQ7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvdGFsV2lkdGggPSBkaXJlY3Rpb25cclxuICAgICAgPyBNYXRoLm1heChcclxuICAgICAgICAgIC4uLmltZ0RhdGEubWFwKFxyXG4gICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IHdpZHRoIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9mZnNldFhcclxuICAgICAgICAgICAgfSkgPT4gd2lkdGggKyBvZmZzZXRYXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICA6IGltZ0RhdGEucmVkdWNlKFxyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICByZXMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpbWc6IHtcclxuICAgICAgICAgICAgICAgIGJpdG1hcDogeyB3aWR0aCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRYXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGluZGV4XHJcbiAgICAgICAgICApID0+IHJlcyArIHdpZHRoICsgb2Zmc2V0WCArIE51bWJlcihpbmRleCA+IDApICogb2Zmc2V0LFxyXG4gICAgICAgICAgMFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvdGFsSGVpZ2h0ID0gZGlyZWN0aW9uXHJcbiAgICAgID8gaW1nRGF0YS5yZWR1Y2UoXHJcbiAgICAgICAgICAoXHJcbiAgICAgICAgICAgIHJlcyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGltZzoge1xyXG4gICAgICAgICAgICAgICAgYml0bWFwOiB7IGhlaWdodCB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvZmZzZXRZXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGluZGV4XHJcbiAgICAgICAgICApID0+IHJlcyArIGhlaWdodCArIG9mZnNldFkgKyBOdW1iZXIoaW5kZXggPiAwKSAqIG9mZnNldCxcclxuICAgICAgICAgIDBcclxuICAgICAgICApXHJcbiAgICAgIDogTWF0aC5tYXgoXHJcbiAgICAgICAgICAuLi5pbWdEYXRhLm1hcChcclxuICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICBpbWc6IHtcclxuICAgICAgICAgICAgICAgIGJpdG1hcDogeyBoZWlnaHQgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSA9PiBoZWlnaHQgKyBvZmZzZXRZXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgYmFzZUltYWdlID0gbmV3IEppbXAoXHJcbiAgICAgIHRvdGFsV2lkdGggKyBtYXJnaW5SaWdodExlZnQsXHJcbiAgICAgIHRvdGFsSGVpZ2h0ICsgbWFyZ2luVG9wQm90dG9tLFxyXG4gICAgICBjb2xvclxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGYWxsYmFjayBmb3IgYEFycmF5I2VudHJpZXMoKWBcclxuICAgICAgICBjb25zdCBpbWdEYXRhRW50cmllcyA9IGltZ0RhdGEubWFwKChkYXRhLCBpbmRleCkgPT4gW2luZGV4LCBkYXRhXSk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgW2luZGV4LCB7IGltZywgeCwgeSwgb2Zmc2V0WCwgb2Zmc2V0WSB9XSBvZiBpbWdEYXRhRW50cmllcykge1xyXG4gICAgICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgYml0bWFwOiB7IHdpZHRoLCBoZWlnaHQgfVxyXG4gICAgICB9ID0gaW1nO1xyXG4gICAgICAgICAgICBjb25zdCBbcHgsIHB5XSA9IGRpcmVjdGlvblxyXG4gICAgICAgID8gW2FsaWduSW1hZ2UodG90YWxXaWR0aCwgd2lkdGgsIGFsaWduKSArIG9mZnNldFgsIHkgKyBpbmRleCAqIG9mZnNldF1cclxuICAgICAgICA6IFtcclxuICAgICAgICAgICAgeCArIGluZGV4ICogb2Zmc2V0LFxyXG4gICAgICAgICAgICBhbGlnbkltYWdlKHRvdGFsSGVpZ2h0LCBoZWlnaHQsIGFsaWduKSArIG9mZnNldFlcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICAgICAgYmFzZUltYWdlLmNvbXBvc2l0ZShpbWcsIHB4ICsgbGVmdCwgcHkgKyB0b3ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJhc2VJbWFnZS5nZXRCYXNlNjRBc3luYyhKaW1wLk1JTUVfSlBFRyk7XHJcbiAgICAvLyByZXR1cm4gYmFzZUltYWdlO1xyXG4gICAgfSk7XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7QUFBd0I7QUFFeEIsU0FBU0EsVUFBVSxDQUFDQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFO0VBQ3BDLElBQUlBLEtBQUssS0FBSyxRQUFRLEVBQUU7SUFDcEIsT0FBTyxDQUFD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
|
package/build/lib/launcher.js
CHANGED
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
require("source-map-support/register");
|
|
9
|
-
|
|
10
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
|
-
|
|
12
9
|
var Runners = _interopRequireWildcard(require("../runners"));
|
|
13
|
-
|
|
14
10
|
var _queue = _interopRequireDefault(require("async/queue"));
|
|
15
|
-
|
|
16
11
|
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
|
-
|
|
18
12
|
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
|
-
|
|
20
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
14
|
class Launcher {
|
|
23
15
|
constructor(config, reporter) {
|
|
24
16
|
this._config = config;
|
|
@@ -26,66 +18,49 @@ class Launcher {
|
|
|
26
18
|
this._results = [];
|
|
27
19
|
this._queue = null;
|
|
28
20
|
}
|
|
29
|
-
|
|
30
21
|
async run(capsSet) {
|
|
31
22
|
this._queue = (0, _queue.default)((task, cb) => this._launchTest(task, cb), this._config.parallel || this._config.concurrency || 1);
|
|
32
|
-
|
|
33
23
|
this._queue.error((err, task) => {
|
|
34
24
|
console.log('Error in queue:', err);
|
|
35
25
|
});
|
|
36
|
-
|
|
37
26
|
if (!capsSet) {
|
|
38
27
|
this._queue.push(null);
|
|
39
28
|
} else {
|
|
40
29
|
capsSet = Array.isArray(capsSet) ? capsSet : [capsSet];
|
|
41
|
-
|
|
42
30
|
const _this = this;
|
|
43
|
-
|
|
44
31
|
_lodash.default.each(capsSet, function (caps) {
|
|
45
32
|
_this._queue.push(caps);
|
|
46
33
|
});
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
await this._queue.drain();
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
_instantiateRunner(caps) {
|
|
53
38
|
if (this._config.framework && typeof this._config.framework === 'string') {
|
|
54
39
|
if (Object.prototype.hasOwnProperty.call(Runners, this._config.framework)) {
|
|
55
40
|
return new Runners[this._config.framework]();
|
|
56
41
|
}
|
|
57
|
-
|
|
58
42
|
return null;
|
|
59
43
|
}
|
|
60
|
-
|
|
61
44
|
return new Runners.oxygen();
|
|
62
45
|
}
|
|
63
|
-
|
|
64
46
|
async _launchTest(caps, callback) {
|
|
65
47
|
if (!callback) {
|
|
66
48
|
return;
|
|
67
49
|
}
|
|
68
|
-
|
|
69
50
|
const runner = this._instantiateRunner(caps);
|
|
70
|
-
|
|
71
51
|
if (!runner) {
|
|
72
52
|
const framework = this._config.framework;
|
|
73
53
|
callback(new Error(`Cannot find runner for the specified framework: ${framework}.`));
|
|
74
54
|
return;
|
|
75
55
|
}
|
|
76
|
-
|
|
77
56
|
try {
|
|
78
57
|
await runner.init(this._config, caps, this.reporter);
|
|
79
58
|
const result = await runner.run();
|
|
80
|
-
|
|
81
59
|
this._results.push(result);
|
|
82
|
-
|
|
83
60
|
callback();
|
|
84
61
|
} catch (e) {
|
|
85
62
|
console.error('Failed to launch the test:', e);
|
|
86
|
-
|
|
87
63
|
this._queue.kill();
|
|
88
|
-
|
|
89
64
|
if (e.error) {
|
|
90
65
|
var errMsg = '';
|
|
91
66
|
var err = e.error;
|
|
@@ -97,8 +72,6 @@ class Launcher {
|
|
|
97
72
|
}
|
|
98
73
|
}
|
|
99
74
|
}
|
|
100
|
-
|
|
101
75
|
}
|
|
102
|
-
|
|
103
76
|
exports.default = Launcher;
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMYXVuY2hlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwicmVwb3J0ZXIiLCJfY29uZmlnIiwiX3Jlc3VsdHMiLCJfcXVldWUiLCJydW4iLCJjYXBzU2V0IiwicXVldWUiLCJ0YXNrIiwiY2IiLCJfbGF1bmNoVGVzdCIsInBhcmFsbGVsIiwiY29uY3VycmVuY3kiLCJlcnJvciIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5IiwiX3RoaXMiLCJfIiwiZWFjaCIsImNhcHMiLCJkcmFpbiIsIl9pbnN0YW50aWF0ZVJ1bm5lciIsImZyYW1ld29yayIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlJ1bm5lcnMiLCJveHlnZW4iLCJjYWxsYmFjayIsInJ1bm5lciIsIkVycm9yIiwiaW5pdCIsInJlc3VsdCIsImUiLCJraWxsIiwiZXJyTXNnIiwidHlwZSIsIm1lc3NhZ2UiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbGF1bmNoZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgKiBhcyBSdW5uZXJzIGZyb20gJy4uL3J1bm5lcnMnO1xyXG5pbXBvcnQgcXVldWUgZnJvbSAnYXN5bmMvcXVldWUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF1bmNoZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnLCByZXBvcnRlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBydW4oY2Fwc1NldCkge1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gcXVldWUoKHRhc2ssIGNiKSA9PiB0aGlzLl9sYXVuY2hUZXN0KHRhc2ssIGNiKSwgdGhpcy5fY29uZmlnLnBhcmFsbGVsIHx8IHRoaXMuX2NvbmZpZy5jb25jdXJyZW5jeSB8fCAxKTtcclxuICAgICAgICB0aGlzLl9xdWV1ZS5lcnJvcigoZXJyLCB0YXNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiBxdWV1ZTonLCBlcnIpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBpZiBubyBjYXBhYmlsaXRpZXMgYXJlIHNwZWNpZmllZCwgcnVuIHNpbmdsZSBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzXHJcbiAgICAgICAgaWYgKCFjYXBzU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnB1c2gobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2Fwc1NldCBpcyBhbiBhcnJheSBcclxuICAgICAgICAgICAgY2Fwc1NldCA9IEFycmF5LmlzQXJyYXkoY2Fwc1NldCkgPyBjYXBzU2V0IDogW2NhcHNTZXRdO1xyXG4gICAgICAgICAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIF8uZWFjaChjYXBzU2V0LCBmdW5jdGlvbihjYXBzKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5fcXVldWUucHVzaChjYXBzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuX3F1ZXVlLmRyYWluKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgX2luc3RhbnRpYXRlUnVubmVyKGNhcHMpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZyYW1ld29yayAmJiB0eXBlb2YgdGhpcy5fY29uZmlnLmZyYW1ld29yayA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSdW5uZXJzLCB0aGlzLl9jb25maWcuZnJhbWV3b3JrKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdW5uZXJzW3RoaXMuX2NvbmZpZy5mcmFtZXdvcmtdKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUnVubmVycy5veHlnZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBfbGF1bmNoVGVzdChjYXBzLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBydW5uZXIgPSB0aGlzLl9pbnN0YW50aWF0ZVJ1bm5lcihjYXBzKTtcclxuICAgICAgICBpZiAoIXJ1bm5lcikge1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZXdvcmsgPSB0aGlzLl9jb25maWcuZnJhbWV3b3JrO1xyXG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHJ1bm5lciBmb3IgdGhlIHNwZWNpZmllZCBmcmFtZXdvcms6ICR7ZnJhbWV3b3JrfS5gKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBveHlnZW5cclxuICAgICAgICAgICAgYXdhaXQgcnVubmVyLmluaXQodGhpcy5fY29uZmlnLCBjYXBzLCB0aGlzLnJlcG9ydGVyKTtcclxuICAgICAgICAgICAgLy8gcnVuIE94eWdlbiB0ZXN0IFxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5uZXIucnVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbGF1bmNoIHRoZSB0ZXN0OicsIGUpO1xyXG4gICAgICAgICAgICAvLyBzdG9wIHByb2Nlc3NpbmcgdGhlIHF1ZXVlXHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLmtpbGwoKTtcclxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjdXN0b20gZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgICAgICBpZiAoZS5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyck1zZyA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyciA9IGUuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci50eXBlICsgJyAtICc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIGVyck1zZyA9IGVyci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGVyck1zZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSk7ICAgIC8vIGNhbGwgYmFjayB3aXRoIHRoZSBvcmlnaW5hbCBleGNlcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQTtBQUNBO0FBQ0E7QUFBZ0M7QUFBQTtBQUFBO0FBRWpCLE1BQU1BLFFBQVEsQ0FBQztFQUMxQkMsV0FBVyxDQUFDQyxNQUFNLEVBQUVDLFFBQVEsRUFBRTtJQUMxQixJQUFJLENBQUNDLE9BQU8sR0FBR0YsTUFBTTtJQUNyQixJQUFJLENBQUNDLFFBQVEsR0FBR0EsUUFBUTtJQUN4QixJQUFJLENBQUNFLFFBQVEsR0FBRyxFQUFFO0lBQ2xCLElBQUksQ0FBQ0MsTUFBTSxHQUFHLElBQUk7RUFDdEI7RUFFQSxNQUFNQyxHQUFHLENBQUNDLE9BQU8sRUFBRTtJQUNmLElBQUksQ0FBQ0YsTUFBTSxHQUFHLElBQUFHLGNBQUssRUFBQyxDQUFDQyxJQUFJLEVBQUVDLEVBQUUsS0FBSyxJQUFJLENBQUNDLFdBQVcsQ0FBQ0YsSUFBSSxFQUFFQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUNQLE9BQU8sQ0FBQ1MsUUFBUSxJQUFJLElBQUksQ0FBQ1QsT0FBTyxDQUFDVSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ3JILElBQUksQ0FBQ1IsTUFBTSxDQUFDUyxLQUFLLENBQUMsQ0FBQ0MsR0FBRyxFQUFFTixJQUFJLEtBQUs7TUFDN0JPLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGlCQUFpQixFQUFFRixHQUFHLENBQUM7SUFD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
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = moduleRequire;
|
|
7
|
-
|
|
8
7
|
require("source-map-support/register");
|
|
9
|
-
|
|
10
8
|
var decache = require('decache');
|
|
11
|
-
|
|
12
9
|
function moduleRequire(moduleName) {
|
|
13
10
|
try {
|
|
14
11
|
decache(moduleName);
|
|
@@ -18,4 +15,4 @@ function moduleRequire(moduleName) {
|
|
|
18
15
|
throw e;
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWNhY2hlIiwicmVxdWlyZSIsIm1vZHVsZVJlcXVpcmUiLCJtb2R1bGVOYW1lIiwiZSIsImNvbnNvbGUiLCJsb2ciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL21vZHVsZVJlcXVpcmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlY2FjaGUgPSByZXF1aXJlKCdkZWNhY2hlJyk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2R1bGVSZXF1aXJlKG1vZHVsZU5hbWUpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgZGVjYWNoZShtb2R1bGVOYW1lKTtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZShtb2R1bGVOYW1lKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnbW9kdWxlUmVxdWlyZSBlJywgZSk7XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgIH1cclxufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUVqQixTQUFTQyxhQUFhLENBQUNDLFVBQVUsRUFBRTtFQUM5QyxJQUFJO0lBQ0FILE9BQU8sQ0FBQ0csVUFBVSxDQUFDO0lBQ25CLE9BQU9GLE9BQU8sQ0FBQ0UsVUFBVSxDQUFDO0VBQzlCLENBQUMsQ0FBQyxPQUFPQyxDQUFDLEVBQUU7SUFDUkMsT0FBTyxDQUFDQyxHQUFHLENBQUMsaUJBQWlCLEVBQUVGLENBQUMsQ0FBQztJQUNqQyxNQUFNQSxDQUFDO0VBQ1g7QUFDSiJ9
|
|
@@ -1,38 +1,24 @@
|
|
|
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
|
module.exports = function (filePath, mode, fileType) {
|
|
10
7
|
var defer = require('when').defer;
|
|
11
|
-
|
|
12
8
|
var path = require('path');
|
|
13
|
-
|
|
14
9
|
var ExcelReader = require('./param-reader-excel');
|
|
15
|
-
|
|
16
10
|
var CsvReader = require('./param-reader-csv');
|
|
17
|
-
|
|
18
11
|
var JsonReader = require('./param-reader-json');
|
|
19
|
-
|
|
20
12
|
var errHelper = require('../errors/helper');
|
|
21
|
-
|
|
22
13
|
var module = {};
|
|
23
|
-
|
|
24
14
|
var _whenInitialized = defer();
|
|
25
|
-
|
|
26
15
|
module.init = function () {
|
|
27
16
|
var ext = path.extname(filePath);
|
|
28
|
-
|
|
29
17
|
if (fileType) {
|
|
30
18
|
ext = fileType;
|
|
31
19
|
}
|
|
32
|
-
|
|
33
20
|
var reader = null;
|
|
34
21
|
var self = this;
|
|
35
|
-
|
|
36
22
|
if (ext === '.xlsx' || ext === '.xls') {
|
|
37
23
|
reader = new ExcelReader();
|
|
38
24
|
} else if (ext === '.csv' || ext === '.txt') {
|
|
@@ -41,15 +27,12 @@ module.exports = function (filePath, mode, fileType) {
|
|
|
41
27
|
reader = new JsonReader();
|
|
42
28
|
} else {
|
|
43
29
|
_whenInitialized.reject(new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, 'Unsupported parameters file type: ' + ext));
|
|
44
|
-
|
|
45
30
|
return _whenInitialized.promise;
|
|
46
31
|
}
|
|
47
|
-
|
|
48
32
|
this.mode = mode;
|
|
49
33
|
reader.read(filePath, fileType || null).then(function (result) {
|
|
50
34
|
self.table = result;
|
|
51
35
|
self.currentRow = self.mode === 'random' ? random(0, self.table.length) : 0;
|
|
52
|
-
|
|
53
36
|
_whenInitialized.resolve(null);
|
|
54
37
|
}).catch(function (err) {
|
|
55
38
|
_whenInitialized.reject(new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, `${errHelper.errorCode.PARAMETERS_ERROR}: Unable to load parameters file.
|
|
@@ -57,47 +40,37 @@ ${err.message}`));
|
|
|
57
40
|
});
|
|
58
41
|
return _whenInitialized.promise;
|
|
59
42
|
};
|
|
60
|
-
|
|
61
43
|
module.getMode = function () {
|
|
62
44
|
return this.mode;
|
|
63
45
|
};
|
|
64
|
-
|
|
65
46
|
module.readNext = function () {
|
|
66
47
|
this.prevRow = this.currentRow;
|
|
67
|
-
|
|
68
48
|
if (this.mode === 'random') {
|
|
69
49
|
this.currentRow = random(0, this.table.length);
|
|
70
50
|
} else {
|
|
71
51
|
this.currentRow++;
|
|
72
52
|
}
|
|
73
|
-
|
|
74
53
|
if (this.currentRow > this.table.length - 1) {
|
|
75
54
|
this.currentRow = 0;
|
|
76
55
|
}
|
|
77
56
|
};
|
|
78
|
-
|
|
79
57
|
module.readPrev = function () {
|
|
80
58
|
if (typeof this.prevRow !== 'undefined') {
|
|
81
59
|
this.currentRow = this.prevRow;
|
|
82
60
|
}
|
|
83
61
|
};
|
|
84
|
-
|
|
85
62
|
module.getValues = function () {
|
|
86
63
|
if (!this.table || this.table.length === 0) {
|
|
87
64
|
throw new _OxygenError.default(errHelper.errorCode.PARAMETERS_ERROR, 'Parameters table is empty');
|
|
88
65
|
}
|
|
89
|
-
|
|
90
66
|
return this.table[this.currentRow];
|
|
91
67
|
};
|
|
92
|
-
|
|
93
68
|
module.__defineGetter__('rows', function () {
|
|
94
69
|
return this.table.length;
|
|
95
70
|
});
|
|
96
|
-
|
|
97
71
|
function random(min, max) {
|
|
98
72
|
return Math.floor(Math.random() * (max - min)) + min;
|
|
99
73
|
}
|
|
100
|
-
|
|
101
74
|
return module;
|
|
102
75
|
};
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZmlsZVBhdGgiLCJtb2RlIiwiZmlsZVR5cGUiLCJkZWZlciIsInJlcXVpcmUiLCJwYXRoIiwiRXhjZWxSZWFkZXIiLCJDc3ZSZWFkZXIiLCJKc29uUmVhZGVyIiwiZXJySGVscGVyIiwiX3doZW5Jbml0aWFsaXplZCIsImluaXQiLCJleHQiLCJleHRuYW1lIiwicmVhZGVyIiwic2VsZiIsInJlamVjdCIsIk94RXJyb3IiLCJlcnJvckNvZGUiLCJQQVJBTUVURVJTX0VSUk9SIiwicHJvbWlzZSIsInJlYWQiLCJ0aGVuIiwicmVzdWx0IiwidGFibGUiLCJjdXJyZW50Um93IiwicmFuZG9tIiwibGVuZ3RoIiwicmVzb2x2ZSIsImNhdGNoIiwiZXJyIiwibWVzc2FnZSIsImdldE1vZGUiLCJyZWFkTmV4dCIsInByZXZSb3ciLCJyZWFkUHJldiIsImdldFZhbHVlcyIsIl9fZGVmaW5lR2V0dGVyX18iLCJtaW4iLCJtYXgiLCJNYXRoIiwiZmxvb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3BhcmFtLW1hbmFnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcbmltcG9ydCBPeEVycm9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZpbGVQYXRoLCBtb2RlLCBmaWxlVHlwZSAvKm9wdGlvbmFsKi8pIHtcclxuICAgIHZhciBkZWZlciA9IHJlcXVpcmUoJ3doZW4nKS5kZWZlcjtcclxuICAgIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG4gICAgdmFyIEV4Y2VsUmVhZGVyID0gcmVxdWlyZSgnLi9wYXJhbS1yZWFkZXItZXhjZWwnKTtcclxuICAgIHZhciBDc3ZSZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1jc3YnKTtcclxuICAgIHZhciBKc29uUmVhZGVyID0gcmVxdWlyZSgnLi9wYXJhbS1yZWFkZXItanNvbicpO1xyXG4gICAgdmFyIGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcclxuICAgIHZhciBtb2R1bGUgPSB7fTtcclxuICAgIHZhciBfd2hlbkluaXRpYWxpemVkID0gZGVmZXIoKTtcclxuXHJcbiAgICBtb2R1bGUuaW5pdCA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZVR5cGUpIHtcclxuICAgICAgICAgICAgZXh0ID0gZmlsZVR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByZWFkZXIgPSBudWxsO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICAvLyBjaG9vc2UgdGhlIHJpZ2h0IGNvbnZlcnRlciBiYXNlZCBvbiBlaXRoZXIgeGxzIG9yIHhsc3ggZmlsZSBleHRlbnNpb25cclxuICAgICAgICBpZiAoZXh0ID09PSAnLnhsc3gnIHx8IGV4dCA9PT0gJy54bHMnKSB7XHJcbiAgICAgICAgICAgIHJlYWRlciA9IG5ldyBFeGNlbFJlYWRlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChleHQgPT09ICcuY3N2JyB8fCBleHQgPT09ICcudHh0Jykge1xyXG4gICAgICAgICAgICByZWFkZXIgPSBuZXcgQ3N2UmVhZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJy5qc29uJyB8fCBleHQgPT09ICcuanMnKSB7XHJcbiAgICAgICAgICAgIHJlYWRlciA9IG5ldyBKc29uUmVhZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBfd2hlbkluaXRpYWxpemVkLnJlamVjdChuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLlBBUkFNRVRFUlNfRVJST1IsICdVbnN1cHBvcnRlZCBwYXJhbWV0ZXJzIGZpbGUgdHlwZTogJyArIGV4dCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gX3doZW5Jbml0aWFsaXplZC5wcm9taXNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlID0gbW9kZTtcclxuXHJcbiAgICAgICAgcmVhZGVyLnJlYWQoZmlsZVBhdGgsIGZpbGVUeXBlIHx8IG51bGwpXHJcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgc2VsZi50YWJsZSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgY3VycmVudFJvdyBhY2NvcmRpbmcgd2l0aCBwYXJhbWV0ZXIgcmVhZGluZyBtb2RlIChyYW5kb20gb3Igc2VxdWVudGlhbClcclxuICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudFJvdyA9IHNlbGYubW9kZSA9PT0gJ3JhbmRvbScgPyByYW5kb20oMCwgc2VsZi50YWJsZS5sZW5ndGgpIDogMDtcclxuICAgICAgICAgICAgICAgIF93aGVuSW5pdGlhbGl6ZWQucmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGVycikge1xyXG4gICAgICAgICAgICAgICAgX3doZW5Jbml0aWFsaXplZC5yZWplY3QoXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IE94RXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVyckhlbHBlci5lcnJvckNvZGUuUEFSQU1FVEVSU19FUlJPUixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SfTogVW5hYmxlIHRvIGxvYWQgcGFyYW1ldGVycyBmaWxlLiBcclxuJHtlcnIubWVzc2FnZX1gXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBfd2hlbkluaXRpYWxpemVkLnByb21pc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5nZXRNb2RlID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLnJlYWROZXh0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMucHJldlJvdyA9IHRoaXMuY3VycmVudFJvdztcclxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAncmFuZG9tJykge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSb3cgPSByYW5kb20oMCwgdGhpcy50YWJsZS5sZW5ndGgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdysrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFJvdyA+IHRoaXMudGFibGUubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSb3cgPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLnJlYWRQcmV2ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmV2Um93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSb3cgPSB0aGlzLnByZXZSb3c7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUuZ2V0VmFsdWVzID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlIHx8IHRoaXMudGFibGUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuUEFSQU1FVEVSU19FUlJPUiwgJ1BhcmFtZXRlcnMgdGFibGUgaXMgZW1wdHknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVbdGhpcy5jdXJyZW50Um93XTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLl9fZGVmaW5lR2V0dGVyX18oJ3Jvd3MnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50YWJsZS5sZW5ndGg7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmdW5jdGlvbiByYW5kb20obWluLCBtYXgpIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikpICsgbWluO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtb2R1bGU7XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7QUFBNEM7QUFDNUNBLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHLFVBQVVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQWU7RUFDOUQsSUFBSUMsS0FBSyxHQUFHQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUNELEtBQUs7RUFDakMsSUFBSUUsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBTSxDQUFDO0VBQzFCLElBQUlFLFdBQVcsR0FBR0YsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0VBQ2pELElBQUlHLFNBQVMsR0FBR0gsT0FBTyxDQUFDLG9CQUFvQixDQUFDO0VBQzdDLElBQUlJLFVBQVUsR0FBR0osT0FBTyxD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
|
|
@@ -1,43 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
module.exports = function () {
|
|
6
5
|
var module = {};
|
|
7
|
-
|
|
8
6
|
const parse = require('csv-parse/lib/sync');
|
|
9
|
-
|
|
10
7
|
var fs = require('fs');
|
|
11
|
-
|
|
12
8
|
var path = require('path');
|
|
13
|
-
|
|
14
9
|
module.read = function (filePath, extOverride) {
|
|
15
10
|
return new Promise((resolve, reject) => {
|
|
16
11
|
var ext = path.extname(filePath);
|
|
17
|
-
|
|
18
12
|
if (extOverride) {
|
|
19
13
|
ext = extOverride;
|
|
20
14
|
}
|
|
21
|
-
|
|
22
15
|
if (ext !== '.csv' && ext !== '.txt') {
|
|
23
16
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
24
17
|
}
|
|
25
|
-
|
|
26
18
|
var data;
|
|
27
|
-
|
|
28
19
|
try {
|
|
29
20
|
data = fs.readFileSync(filePath, 'utf8');
|
|
30
21
|
} catch (e) {
|
|
31
22
|
reject(new Error('Unable to read parameters file: ' + e));
|
|
32
23
|
}
|
|
33
|
-
|
|
34
24
|
data = data.replace(/\r\r/g, '\r');
|
|
35
25
|
var bom = false;
|
|
36
|
-
|
|
37
26
|
if (data.charCodeAt(0) === 0xFEFF) {
|
|
38
27
|
bom = true;
|
|
39
28
|
}
|
|
40
|
-
|
|
41
29
|
try {
|
|
42
30
|
var table = parse(data, {
|
|
43
31
|
bom: bom,
|
|
@@ -47,11 +35,9 @@ module.exports = function () {
|
|
|
47
35
|
} catch (e) {
|
|
48
36
|
reject(e);
|
|
49
37
|
}
|
|
50
|
-
|
|
51
38
|
resolve(table);
|
|
52
39
|
});
|
|
53
40
|
};
|
|
54
|
-
|
|
55
41
|
return module;
|
|
56
42
|
};
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGFyc2UiLCJyZXF1aXJlIiwiZnMiLCJwYXRoIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImRhdGEiLCJyZWFkRmlsZVN5bmMiLCJlIiwicmVwbGFjZSIsImJvbSIsImNoYXJDb2RlQXQiLCJ0YWJsZSIsImNvbHVtbnMiLCJ0cmltIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9wYXJhbS1yZWFkZXItY3N2LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kdWxlID0ge307XHJcbiAgICBjb25zdCBwYXJzZSA9IHJlcXVpcmUoJ2Nzdi1wYXJzZS9saWIvc3luYycpO1xyXG4gICAgdmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcclxuICAgIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5cclxuICAgIG1vZHVsZS5yZWFkID0gZnVuY3Rpb24oZmlsZVBhdGgsIGV4dE92ZXJyaWRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdmFyIGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChleHRPdmVycmlkZSkge1xyXG4gICAgICAgICAgICAgICAgZXh0ID0gZXh0T3ZlcnJpZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGV4dCAhPT0gJy5jc3YnICYmIGV4dCAhPT0gJy50eHQnKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbnN1cHBvcnRlZCBmaWxlIGV4dGVuc2lvbjogJyArIGV4dCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgZGF0YTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1VuYWJsZSB0byByZWFkIHBhcmFtZXRlcnMgZmlsZTogJyArIGUpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQ1NWcyBwcm9kdWNlZCBieSBPUyBYIEV4Y2VsIGhhdmUgaGVhZGVyIHRlcm1pbmF0ZWQgd2l0aCAwZDBkMGFcclxuICAgICAgICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvXFxyXFxyL2csICdcXHInKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHN0cmlwIEJPTSBmb3IgVVRGLThcclxuICAgICAgICAgICAgdmFyIGJvbSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBjYXRjaGVzIDB4RUZCQkJGIChVVEYtOCBCT00pIGJlY2F1c2UgdGhlIGJ1ZmZlci10by1zdHJpbmdcclxuICAgICAgICAgICAgLy8gY29udmVyc2lvbiB0cmFuc2xhdGVzIGl0IHRvIDB4RkVGRiAoVVRGLTE2IEJPTSlcclxuICAgICAgICAgICAgaWYgKGRhdGEuY2hhckNvZGVBdCgwKSA9PT0gMHhGRUZGKSB7XHJcbiAgICAgICAgICAgICAgICBib20gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gcGFyc2UoZGF0YSwgeyBib206IGJvbSwgY29sdW1uczogdHJ1ZSwgdHJpbTogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKHRhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7QUFTQUEsTUFBTSxDQUFDQyxPQUFPLEdBQUcsWUFBWTtFQUN6QixJQUFJRCxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBQ2YsTUFBTUUsS0FBSyxHQUFHQyxPQUFPLENBQUMsb0JBQW9CLENBQUM7RUFDM0MsSUFBSUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsSUFBSSxDQUFDO0VBQ3RCLElBQUlFLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQU0sQ0FBQztFQUUxQkgsTUFBTSxDQUFDTSxJQUFJLEdBQUcsVUFBU0MsUUFBUSxFQUFFQyxXQUFXLEVBQUU7SUFDMUMsT0FBTyxJQUFJQyxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDcEMsSUFBSUMsR0FBRyxHQUFHUCxJQUFJLENBQUNRLE9BQU8sQ0FBQ04sUUFBUSxDQUFDO01BQ2hDLElBQUlDLFdBQVcsRUFBRTtRQUNiSSxHQUFHLEdBQUdKLFdBQVc7TUFDckI7TUFDQSxJQUFJSSxHQUFHLEtBQUssTUFBTSxJQUFJQSxHQUFHLEtBQUssTUFBTSxFQUFFO1FBQ2xDRCxNQUFNLENBQUMsSUFBSUcsS0FBSyxDQUFDLDhCQUE4QixHQUFHRixHQUFHLENBQUMsQ0FBQztNQUMzRDtNQUVBLElBQUlHLElBQUk7TUFDUixJQUFJO1FBQ0FBLElBQUksR0FBR1gsRUFBRSxDQUFDWSxZQUFZLENBQUNULFFBQVEsRUFBRSxNQUFNLENBQUM7TUFDNUMsQ0FBQyxDQUFDLE9BQU9VLENBQUMsRUFBRTtRQUNSTixNQUFNLENBQUMsSUFBSUcsS0FBSyxDQUFDLGtDQUFrQyxHQUFHRyxDQUFDLENBQUMsQ0FBQztNQUM3RDtNQUdBRixJQUFJLEdBQUdBLElBQUksQ0FBQ0csT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7TUFHbEMsSUFBSUMsR0FBRyxHQUFHLEtBQUs7TUFHZixJQUFJSixJQUFJLENBQUNLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLEVBQUU7UUFDL0JELEdBQUcsR0FBRyxJQUFJO01BQ2Q7TUFFQSxJQUFJO1FBQ0EsSUFBSUUsS0FBSyxHQUFHbkIsS0FBSyxDQUFDYSxJQUFJLEVBQUU7VUFBRUksR0FBRyxFQUFFQSxHQUFHO1VBQUVHLE9BQU8sRUFBRSxJQUFJO1VBQUVDLElBQUksRUFBRTtRQUFLLENBQUMsQ0FBQztNQUNwRSxDQUFDLENBQUMsT0FBT04sQ0FBQyxFQUFFO1FBQ1JOLE1BQU0sQ0FBQ00sQ0FBQyxDQUFDO01BQ2I7TUFFQVAsT0FBTyxDQUFDVyxLQUFLLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELE9BQU9yQixNQUFNO0FBQ2pCLENBQUMifQ==
|
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
module.exports = function () {
|
|
6
5
|
var module = {};
|
|
7
|
-
|
|
8
6
|
var xlsx = require('xlsx');
|
|
9
|
-
|
|
10
7
|
var path = require('path');
|
|
11
|
-
|
|
12
8
|
module.read = function (filePath) {
|
|
13
9
|
return new Promise((resolve, reject) => {
|
|
14
10
|
var ext = path.extname(filePath);
|
|
15
|
-
|
|
16
11
|
if (ext !== '.xlsx' && ext !== '.xls') {
|
|
17
12
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
18
13
|
}
|
|
19
|
-
|
|
20
14
|
var json = [];
|
|
21
|
-
|
|
22
15
|
try {
|
|
23
16
|
var workbook = xlsx.readFile(filePath);
|
|
24
17
|
var sheetNameList = workbook.SheetNames;
|
|
25
18
|
var jsonRaw = xlsx.utils.sheet_to_json(workbook.Sheets[sheetNameList[0]], {
|
|
26
19
|
defval: ''
|
|
27
20
|
});
|
|
28
|
-
|
|
29
21
|
for (var paramRaw of jsonRaw) {
|
|
30
22
|
var param = {};
|
|
31
|
-
|
|
32
23
|
for (var propRaw in paramRaw) {
|
|
33
24
|
if (Object.prototype.hasOwnProperty.call(paramRaw, propRaw)) {
|
|
34
25
|
var valueRaw = paramRaw[propRaw];
|
|
35
|
-
|
|
36
26
|
if (typeof valueRaw === 'string' || valueRaw instanceof String) {
|
|
37
27
|
param[propRaw.trim()] = valueRaw.trim();
|
|
38
28
|
} else {
|
|
@@ -40,17 +30,14 @@ module.exports = function () {
|
|
|
40
30
|
}
|
|
41
31
|
}
|
|
42
32
|
}
|
|
43
|
-
|
|
44
33
|
json.push(param);
|
|
45
34
|
}
|
|
46
35
|
} catch (err) {
|
|
47
36
|
reject(err);
|
|
48
37
|
}
|
|
49
|
-
|
|
50
38
|
resolve(json);
|
|
51
39
|
});
|
|
52
40
|
};
|
|
53
|
-
|
|
54
41
|
return module;
|
|
55
42
|
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwieGxzeCIsInJlcXVpcmUiLCJwYXRoIiwicmVhZCIsImZpbGVQYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJleHQiLCJleHRuYW1lIiwiRXJyb3IiLCJqc29uIiwid29ya2Jvb2siLCJyZWFkRmlsZSIsInNoZWV0TmFtZUxpc3QiLCJTaGVldE5hbWVzIiwianNvblJhdyIsInV0aWxzIiwic2hlZXRfdG9fanNvbiIsIlNoZWV0cyIsImRlZnZhbCIsInBhcmFtUmF3IiwicGFyYW0iLCJwcm9wUmF3IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidmFsdWVSYXciLCJTdHJpbmciLCJ0cmltIiwicHVzaCIsImVyciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWV4Y2VsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kdWxlID0ge307XHJcbiAgICB2YXIgeGxzeCA9IHJlcXVpcmUoJ3hsc3gnKTtcclxuICAgIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5cclxuICAgIC8vIGFzeW5jaHJvbm91c2x5IHJlYWRzIEV4Y2VsIGZpbGUgYW5kIHJldHVybnMganNvbiB0aGF0IHJlcHJlc2VudHMgdGhlIGZpcnN0IHNoZWV0XHJcbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdmFyIGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChleHQgIT09ICcueGxzeCcgJiYgZXh0ICE9PSAnLnhscycpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBqc29uID0gW107XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgd29ya2Jvb2sgPSB4bHN4LnJlYWRGaWxlKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgICAgIHZhciBzaGVldE5hbWVMaXN0ID0gd29ya2Jvb2suU2hlZXROYW1lcztcclxuICAgICAgICAgICAgICAgIHZhciBqc29uUmF3ID0geGxzeC51dGlscy5zaGVldF90b19qc29uKHdvcmtib29rLlNoZWV0c1tzaGVldE5hbWVMaXN0WzBdXSwgeyBkZWZ2YWw6ICcnIH0pO1xyXG4gICAgICAgICAgICAgICAgLy8ganVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgc29tZSBleHRyYSBsaW5lIGJyZWFrcyBpbiB0aGUgY2VsbHNcclxuICAgICAgICAgICAgICAgIC8vIHJlY3JlYXRlIHRoZSBwYXJhbWV0ZXJzIG9iamVjdHMgd2l0aCBhbGwgdGhlIFxcciBhbmQgXFxuIGFuZCB3aGl0ZSBzcGFjZXMgdHJpbW1lZFxyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgcGFyYW1SYXcgb2YganNvblJhdykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXJhbSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3BSYXcgaW4gcGFyYW1SYXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbVJhdywgcHJvcFJhdykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZVJhdyA9IHBhcmFtUmF3W3Byb3BSYXddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVJhdyA9PT0gJ3N0cmluZycgfHwgdmFsdWVSYXcgaW5zdGFuY2VvZiBTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbVtwcm9wUmF3LnRyaW0oKV0gPSB2YWx1ZVJhdy50cmltKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtW3Byb3BSYXcudHJpbSgpXSA9IHZhbHVlUmF3O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGpzb24ucHVzaChwYXJhbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoanNvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBtb2R1bGU7XHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHLFlBQVk7RUFDekIsSUFBSUQsTUFBTSxHQUFHLENBQUMsQ0FBQztFQUNmLElBQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQU0sQ0FBQztFQUMxQixJQUFJQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFNLENBQUM7RUFHMUJILE1BQU0sQ0FBQ0ssSUFBSSxHQUFHLFVBQVNDLFFBQVEsRUFBRTtJQUM3QixPQUFPLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUNwQyxJQUFJQyxHQUFHLEdBQUdOLElBQUksQ0FBQ08sT0FBTyxDQUFDTCxRQUFRLENBQUM7TUFDaEMsSUFBSUksR0FBRyxLQUFLLE9BQU8sSUFBSUEsR0FBRyxLQUFLLE1BQU0sRUFBRTtRQUNuQ0QsTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQyw4QkFBOEIsR0FBR0YsR0FBRyxDQUFDLENBQUM7TUFDM0Q7TUFFQSxJQUFJRyxJQUFJLEdBQUcsRUFBRTtNQUNiLElBQUk7UUFDQSxJQUFJQyxRQUFRLEdBQUdaLElBQUksQ0FBQ2EsUUFBUSxDQUFDVCxRQUFRLENBQUM7UUFDdEMsSUFBSVUsYUFBYSxHQUFHRixRQUFRLENBQUNHLFVBQVU7UUFDdkMsSUFBSUMsT0FBTyxHQUFHaEIsSUFBSSxDQUFDaUIsS0FBSyxDQUFDQyxhQUFhLENBQUNOLFFBQVEsQ0FBQ08sTUFBTSxDQUFDTCxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUFFTSxNQUFNLEVBQUU7UUFBRyxDQUFDLENBQUM7UUFHekYsS0FBSyxJQUFJQyxRQUFRLElBQUlMLE9BQU8sRUFBRTtVQUMxQixJQUFJTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1VBQ2QsS0FBSyxJQUFJQyxPQUFPLElBQUlGLFFBQVEsRUFBRTtZQUMxQixJQUFJRyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNOLFFBQVEsRUFBRUUsT0FBTyxDQUFDLEVBQUU7Y0FDekQsSUFBSUssUUFBUSxHQUFHUCxRQUFRLENBQUNFLE9BQU8sQ0FBQztjQUNoQyxJQUFJLE9BQU9LLFFBQVEsS0FBSyxRQUFRLElBQUlBLFFBQVEsWUFBWUMsTUFBTSxFQUFFO2dCQUM1RFAsS0FBSyxDQUFDQyxPQUFPLENBQUNPLElBQUksRUFBRSxDQUFDLEdBQUdGLFFBQVEsQ0FBQ0UsSUFBSSxFQUFFO2NBQzNDLENBQUMsTUFBTTtnQkFDSFIsS0FBSyxDQUFDQyxPQUFPLENBQUNPLElBQUksRUFBRSxDQUFDLEdBQUdGLFFBQVE7Y0FDcEM7WUFDSjtVQUNKO1VBQ0FqQixJQUFJLENBQUNvQixJQUFJLENBQUNULEtBQUssQ0FBQztRQUNwQjtNQUNKLENBQUMsQ0FBQyxPQUFPVSxHQUFHLEVBQUU7UUFDVnpCLE1BQU0sQ0FBQ3lCLEdBQUcsQ0FBQztNQUNmO01BRUExQixPQUFPLENBQUNLLElBQUksQ0FBQztJQUNqQixDQUFDLENBQUM7RUFDTixDQUFDO0VBRUQsT0FBT2IsTUFBTTtBQUNqQixDQUFDIn0=
|
|
@@ -1,38 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("source-map-support/register");
|
|
4
|
-
|
|
5
4
|
module.exports = function () {
|
|
6
5
|
var module = {};
|
|
7
|
-
|
|
8
6
|
var path = require('path');
|
|
9
|
-
|
|
10
7
|
module.read = function (filePath, extOverride) {
|
|
11
8
|
return new Promise((resolve, reject) => {
|
|
12
9
|
var ext = path.extname(filePath);
|
|
13
|
-
|
|
14
10
|
if (extOverride) {
|
|
15
11
|
ext = extOverride;
|
|
16
12
|
}
|
|
17
|
-
|
|
18
13
|
if (ext !== '.json' && ext !== '.js') {
|
|
19
14
|
reject(new Error('Unsupported file extension: ' + ext));
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
try {
|
|
23
17
|
const rows = require(filePath);
|
|
24
|
-
|
|
25
18
|
if (!Array.isArray(rows)) {
|
|
26
19
|
reject(new Error('Unsupported file content'));
|
|
27
20
|
}
|
|
28
|
-
|
|
29
21
|
resolve(rows);
|
|
30
22
|
} catch (e) {
|
|
31
23
|
reject(new Error('Unable to read parameters file: ' + e));
|
|
32
24
|
}
|
|
33
25
|
});
|
|
34
26
|
};
|
|
35
|
-
|
|
36
27
|
return module;
|
|
37
28
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGF0aCIsInJlcXVpcmUiLCJyZWFkIiwiZmlsZVBhdGgiLCJleHRPdmVycmlkZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXh0IiwiZXh0bmFtZSIsIkVycm9yIiwicm93cyIsIkFycmF5IiwiaXNBcnJheSIsImUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3BhcmFtLXJlYWRlci1qc29uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kdWxlID0ge307XHJcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuXHJcbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoLCBleHRPdmVycmlkZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICAgICAgICAgIGV4dCA9IGV4dE92ZXJyaWRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChleHQgIT09ICcuanNvbicgJiYgZXh0ICE9PSAnLmpzJykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvd3MgPSByZXF1aXJlKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb3dzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgY29udGVudCcpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlc29sdmUocm93cyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1VuYWJsZSB0byByZWFkIHBhcmFtZXRlcnMgZmlsZTogJyArIGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQVNBQSxNQUFNLENBQUNDLE9BQU8sR0FBRyxZQUFZO0VBQ3pCLElBQUlELE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDZixJQUFJRSxJQUFJLEdBQUdDLE9BQU8sQ0FBQyxNQUFNLENBQUM7RUFFMUJILE1BQU0sQ0FBQ0ksSUFBSSxHQUFHLFVBQVNDLFFBQVEsRUFBRUMsV0FBVyxFQUFFO0lBQzFDLE9BQU8sSUFBSUMsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQ3BDLElBQUlDLEdBQUcsR0FBR1IsSUFBSSxDQUFDUyxPQUFPLENBQUNOLFFBQVEsQ0FBQztNQUNoQyxJQUFJQyxXQUFXLEVBQUU7UUFDYkksR0FBRyxHQUFHSixXQUFXO01BQ3JCO01BQ0EsSUFBSUksR0FBRyxLQUFLLE9BQU8sSUFBSUEsR0FBRyxLQUFLLEtBQUssRUFBRTtRQUNsQ0QsTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQyw4QkFBOEIsR0FBR0YsR0FBRyxDQUFDLENBQUM7TUFDM0Q7TUFFQSxJQUFJO1FBQ0EsTUFBTUcsSUFBSSxHQUFHVixPQUFPLENBQUNFLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUNTLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUMsRUFBRTtVQUN0QkosTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2pEO1FBQ0FKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDO01BQ2pCLENBQUMsQ0FBQyxPQUFPRyxDQUFDLEVBQUU7UUFDUlAsTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQyxrQ0FBa0MsR0FBR0ksQ0FBQyxDQUFDLENBQUM7TUFDN0Q7SUFDSixDQUFDLENBQUM7RUFDTixDQUFDO0VBRUQsT0FBT2hCLE1BQU07QUFDakIsQ0FBQyJ9
|