oxygen-cli 1.25.0-beta.2 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/.husky/pre-commit +4 -0
  2. package/CHANGELOG.md +65 -0
  3. package/build/core/OxygenCore.js +36 -257
  4. package/build/core/OxygenEvents.js +1 -11
  5. package/build/core/OxygenModule.js +1 -14
  6. package/build/core/OxygenService.js +1 -12
  7. package/build/core/OxygenSubModule.js +1 -10
  8. package/build/core/WebDriverModule.js +1 -30
  9. package/build/core/utils.js +1 -17
  10. package/build/errors/HookError.js +1 -7
  11. package/build/errors/ModuleError.js +1 -7
  12. package/build/errors/ModuleUnavailableError.js +1 -3
  13. package/build/errors/OxygenError.js +1 -33
  14. package/build/errors/ScriptNotFound.js +1 -7
  15. package/build/errors/helper.js +46 -77
  16. package/build/index.js +6 -18
  17. package/build/lib/cli-util.js +28 -90
  18. package/build/lib/cli.js +1 -23
  19. package/build/lib/debugger.js +1 -144
  20. package/build/lib/img-merge.js +1 -15
  21. package/build/lib/launcher.js +1 -28
  22. package/build/lib/moduleRequire.js +1 -4
  23. package/build/lib/param-manager.js +1 -28
  24. package/build/lib/param-reader-csv.js +1 -15
  25. package/build/lib/param-reader-excel.js +1 -14
  26. package/build/lib/param-reader-json.js +1 -10
  27. package/build/lib/util.js +3 -58
  28. package/build/model/case-result.js +1 -2
  29. package/build/model/failure.js +1 -2
  30. package/build/model/status.js +1 -2
  31. package/build/model/step-result.js +1 -2
  32. package/build/model/suite-result.js +1 -2
  33. package/build/model/test-result.js +1 -2
  34. package/build/model/testcase.js +1 -2
  35. package/build/model/testsuite.js +1 -2
  36. package/build/ox_modules/index.js +13 -33
  37. package/build/ox_modules/module-assert.js +8 -24
  38. package/build/ox_modules/module-date.js +3 -8
  39. package/build/ox_modules/module-db.js +7 -28
  40. package/build/ox_modules/module-email.js +10 -36
  41. package/build/ox_modules/module-eyes.js +5 -46
  42. package/build/ox_modules/module-http.js +42 -104
  43. package/build/ox_modules/module-log.js +5 -22
  44. package/build/ox_modules/module-mailinator.js +10 -32
  45. package/build/ox_modules/module-mob/commands/alertAccept.js +1 -2
  46. package/build/ox_modules/module-mob/commands/alertDismiss.js +1 -2
  47. package/build/ox_modules/module-mob/commands/assertAlert.js +1 -6
  48. package/build/ox_modules/module-mob/commands/assertText.js +1 -3
  49. package/build/ox_modules/module-mob/commands/assertTitle.js +1 -4
  50. package/build/ox_modules/module-mob/commands/assertValue.js +9 -15
  51. package/build/ox_modules/module-mob/commands/back.js +1 -2
  52. package/build/ox_modules/module-mob/commands/clear.js +1 -4
  53. package/build/ox_modules/module-mob/commands/click.js +3 -4
  54. package/build/ox_modules/module-mob/commands/clickHidden.js +3 -9
  55. package/build/ox_modules/module-mob/commands/clickLong.js +1 -2
  56. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +1 -4
  57. package/build/ox_modules/module-mob/commands/closeApp.js +1 -2
  58. package/build/ox_modules/module-mob/commands/debug.js +2 -2
  59. package/build/ox_modules/module-mob/commands/dragAndDrop.js +1 -2
  60. package/build/ox_modules/module-mob/commands/enableNetwork.js +4 -12
  61. package/build/ox_modules/module-mob/commands/execute.js +1 -2
  62. package/build/ox_modules/module-mob/commands/findElement.js +1 -3
  63. package/build/ox_modules/module-mob/commands/findElements.js +1 -4
  64. package/build/ox_modules/module-mob/commands/getAlertText.js +1 -2
  65. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +1 -2
  66. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +1 -10
  67. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +1 -2
  68. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +1 -2
  69. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +1 -9
  70. package/build/ox_modules/module-mob/commands/getDeviceTime.js +1 -2
  71. package/build/ox_modules/module-mob/commands/getLocation.js +1 -2
  72. package/build/ox_modules/module-mob/commands/getSource.js +1 -2
  73. package/build/ox_modules/module-mob/commands/getText.js +1 -4
  74. package/build/ox_modules/module-mob/commands/getTitle.js +1 -2
  75. package/build/ox_modules/module-mob/commands/getUrl.js +1 -2
  76. package/build/ox_modules/module-mob/commands/getValue.js +5 -9
  77. package/build/ox_modules/module-mob/commands/getWindowHandles.js +1 -2
  78. package/build/ox_modules/module-mob/commands/hideKeyboard.js +1 -2
  79. package/build/ox_modules/module-mob/commands/index.js +19 -94
  80. package/build/ox_modules/module-mob/commands/installApp.js +1 -2
  81. package/build/ox_modules/module-mob/commands/isAppInstalled.js +1 -2
  82. package/build/ox_modules/module-mob/commands/isCheckable.js +1 -2
  83. package/build/ox_modules/module-mob/commands/isChecked.js +1 -2
  84. package/build/ox_modules/module-mob/commands/isClickable.js +1 -2
  85. package/build/ox_modules/module-mob/commands/isExist.js +1 -3
  86. package/build/ox_modules/module-mob/commands/isSelected.js +1 -2
  87. package/build/ox_modules/module-mob/commands/isVisible.js +1 -3
  88. package/build/ox_modules/module-mob/commands/isWebViewContext.js +1 -2
  89. package/build/ox_modules/module-mob/commands/launchApp.js +1 -2
  90. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +1 -2
  91. package/build/ox_modules/module-mob/commands/open.js +1 -3
  92. package/build/ox_modules/module-mob/commands/pause.js +1 -2
  93. package/build/ox_modules/module-mob/commands/removeApp.js +1 -2
  94. package/build/ox_modules/module-mob/commands/resetApp.js +1 -2
  95. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +1 -6
  96. package/build/ox_modules/module-mob/commands/scrollIntoView.js +1 -2
  97. package/build/ox_modules/module-mob/commands/select.js +1 -4
  98. package/build/ox_modules/module-mob/commands/selectFrame.js +1 -4
  99. package/build/ox_modules/module-mob/commands/selectWindow.js +5 -26
  100. package/build/ox_modules/module-mob/commands/sendKeys.js +6 -9
  101. package/build/ox_modules/module-mob/commands/setContext.js +1 -2
  102. package/build/ox_modules/module-mob/commands/setNativeContext.js +1 -2
  103. package/build/ox_modules/module-mob/commands/setTimeout.js +1 -2
  104. package/build/ox_modules/module-mob/commands/setWebViewContext.js +3 -6
  105. package/build/ox_modules/module-mob/commands/shake.js +1 -2
  106. package/build/ox_modules/module-mob/commands/smsClickLink.js +1 -2
  107. package/build/ox_modules/module-mob/commands/smsGetText.js +3 -6
  108. package/build/ox_modules/module-mob/commands/swipe.js +1 -2
  109. package/build/ox_modules/module-mob/commands/swipeElement.js +1 -2
  110. package/build/ox_modules/module-mob/commands/swipeScreen.js +1 -2
  111. package/build/ox_modules/module-mob/commands/takeScreenshot.js +1 -2
  112. package/build/ox_modules/module-mob/commands/tap.js +1 -2
  113. package/build/ox_modules/module-mob/commands/type.js +3 -7
  114. package/build/ox_modules/module-mob/commands/unlockPattern.js +9 -10
  115. package/build/ox_modules/module-mob/commands/waitForExist.js +1 -2
  116. package/build/ox_modules/module-mob/commands/waitForInteractable.js +1 -3
  117. package/build/ox_modules/module-mob/commands/waitForVisible.js +1 -2
  118. package/build/ox_modules/module-mob.js +72 -142
  119. package/build/ox_modules/module-pdf.js +23 -62
  120. package/build/ox_modules/module-proxy.js +8 -68
  121. package/build/ox_modules/module-serial.js +7 -32
  122. package/build/ox_modules/module-shell.js +8 -27
  123. package/build/ox_modules/module-soap.js +14 -47
  124. package/build/ox_modules/module-twilio.js +10 -53
  125. package/build/ox_modules/module-utils.js +16 -51
  126. package/build/ox_modules/module-web/commands/alertAccept.js +1 -2
  127. package/build/ox_modules/module-web/commands/alertDismiss.js +1 -2
  128. package/build/ox_modules/module-web/commands/assertAlert.js +1 -6
  129. package/build/ox_modules/module-web/commands/assertExist.js +1 -2
  130. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +1 -4
  131. package/build/ox_modules/module-web/commands/assertSelectedValue.js +1 -3
  132. package/build/ox_modules/module-web/commands/assertText.js +1 -3
  133. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +1 -6
  134. package/build/ox_modules/module-web/commands/assertTextPresent.js +1 -6
  135. package/build/ox_modules/module-web/commands/assertTitle.js +1 -3
  136. package/build/ox_modules/module-web/commands/assertValue.js +1 -3
  137. package/build/ox_modules/module-web/commands/back.js +1 -2
  138. package/build/ox_modules/module-web/commands/clear.js +1 -5
  139. package/build/ox_modules/module-web/commands/click.js +4 -13
  140. package/build/ox_modules/module-web/commands/clickHidden.js +2 -7
  141. package/build/ox_modules/module-web/commands/closeWindow.js +1 -2
  142. package/build/ox_modules/module-web/commands/debug.js +2 -2
  143. package/build/ox_modules/module-web/commands/deleteCookies.js +1 -2
  144. package/build/ox_modules/module-web/commands/deselect.js +1 -2
  145. package/build/ox_modules/module-web/commands/doubleClick.js +3 -9
  146. package/build/ox_modules/module-web/commands/dragAndDrop.js +1 -2
  147. package/build/ox_modules/module-web/commands/execute.js +1 -2
  148. package/build/ox_modules/module-web/commands/fileBrowse.js +4 -10
  149. package/build/ox_modules/module-web/commands/findElement.js +1 -3
  150. package/build/ox_modules/module-web/commands/findElements.js +1 -4
  151. package/build/ox_modules/module-web/commands/fullscreenWindow.js +1 -2
  152. package/build/ox_modules/module-web/commands/getAlertText.js +1 -2
  153. package/build/ox_modules/module-web/commands/getAttribute.js +1 -4
  154. package/build/ox_modules/module-web/commands/getBrowserLogs.js +1 -3
  155. package/build/ox_modules/module-web/commands/getCookies.js +1 -2
  156. package/build/ox_modules/module-web/commands/getCssValue.js +1 -4
  157. package/build/ox_modules/module-web/commands/getElementCount.js +1 -2
  158. package/build/ox_modules/module-web/commands/getHTML.js +1 -2
  159. package/build/ox_modules/module-web/commands/getSource.js +1 -2
  160. package/build/ox_modules/module-web/commands/getText.js +1 -4
  161. package/build/ox_modules/module-web/commands/getTitle.js +1 -2
  162. package/build/ox_modules/module-web/commands/getUrl.js +1 -2
  163. package/build/ox_modules/module-web/commands/getValue.js +1 -5
  164. package/build/ox_modules/module-web/commands/getWindowHandles.js +1 -2
  165. package/build/ox_modules/module-web/commands/getWindowSize.js +1 -2
  166. package/build/ox_modules/module-web/commands/getXMLPageSource.js +1 -5
  167. package/build/ox_modules/module-web/commands/index.js +26 -99
  168. package/build/ox_modules/module-web/commands/isAlertPresent.js +1 -2
  169. package/build/ox_modules/module-web/commands/isChecked.js +1 -2
  170. package/build/ox_modules/module-web/commands/isExist.js +1 -3
  171. package/build/ox_modules/module-web/commands/isInteractable.js +33 -0
  172. package/build/ox_modules/module-web/commands/isSelected.js +1 -2
  173. package/build/ox_modules/module-web/commands/isVisible.js +1 -3
  174. package/build/ox_modules/module-web/commands/makeVisible.js +2 -10
  175. package/build/ox_modules/module-web/commands/maximizeWindow.js +1 -2
  176. package/build/ox_modules/module-web/commands/minimizeWindow.js +1 -2
  177. package/build/ox_modules/module-web/commands/newWindow.js +1 -2
  178. package/build/ox_modules/module-web/commands/open.js +1 -4
  179. package/build/ox_modules/module-web/commands/pause.js +1 -2
  180. package/build/ox_modules/module-web/commands/point.js +1 -2
  181. package/build/ox_modules/module-web/commands/pointJS.js +2 -8
  182. package/build/ox_modules/module-web/commands/refresh.js +1 -2
  183. package/build/ox_modules/module-web/commands/rightClick.js +3 -8
  184. package/build/ox_modules/module-web/commands/rightClickActions.js +1 -2
  185. package/build/ox_modules/module-web/commands/scrollToElement.js +1 -2
  186. package/build/ox_modules/module-web/commands/select.js +1 -5
  187. package/build/ox_modules/module-web/commands/selectFrame.js +1 -3
  188. package/build/ox_modules/module-web/commands/selectWindow.js +5 -26
  189. package/build/ox_modules/module-web/commands/sendKeys.js +3 -6
  190. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +2 -2
  191. package/build/ox_modules/module-web/commands/setTimeout.js +1 -2
  192. package/build/ox_modules/module-web/commands/setWindowSize.js +1 -2
  193. package/build/ox_modules/module-web/commands/takeScreenshot.js +3 -5
  194. package/build/ox_modules/module-web/commands/type.js +1 -5
  195. package/build/ox_modules/module-web/commands/waitForAngular.js +6 -11
  196. package/build/ox_modules/module-web/commands/waitForExist.js +1 -2
  197. package/build/ox_modules/module-web/commands/waitForInteractable.js +1 -2
  198. package/build/ox_modules/module-web/commands/waitForNotExist.js +1 -8
  199. package/build/ox_modules/module-web/commands/waitForNotText.js +3 -5
  200. package/build/ox_modules/module-web/commands/waitForNotValue.js +3 -5
  201. package/build/ox_modules/module-web/commands/waitForText.js +3 -5
  202. package/build/ox_modules/module-web/commands/waitForValue.js +3 -5
  203. package/build/ox_modules/module-web/commands/waitForVisible.js +1 -2
  204. package/build/ox_modules/module-web/commands/waitForWindow.js +4 -21
  205. package/build/ox_modules/module-web.js +86 -192
  206. package/build/ox_modules/module-win/commands/assertText.js +1 -3
  207. package/build/ox_modules/module-win/commands/assertTitle.js +1 -4
  208. package/build/ox_modules/module-win/commands/assertValue.js +9 -15
  209. package/build/ox_modules/module-win/commands/back.js +1 -2
  210. package/build/ox_modules/module-win/commands/clear.js +1 -4
  211. package/build/ox_modules/module-win/commands/click.js +1 -2
  212. package/build/ox_modules/module-win/commands/clickLong.js +1 -2
  213. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +1 -4
  214. package/build/ox_modules/module-win/commands/findElement.js +1 -3
  215. package/build/ox_modules/module-win/commands/findElements.js +1 -4
  216. package/build/ox_modules/module-win/commands/getAppiumLogs.js +1 -2
  217. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +1 -2
  218. package/build/ox_modules/module-win/commands/getLocation.js +1 -2
  219. package/build/ox_modules/module-win/commands/getSource.js +1 -2
  220. package/build/ox_modules/module-win/commands/getText.js +1 -4
  221. package/build/ox_modules/module-win/commands/getValue.js +5 -9
  222. package/build/ox_modules/module-win/commands/getWindowHandles.js +1 -2
  223. package/build/ox_modules/module-win/commands/index.js +5 -43
  224. package/build/ox_modules/module-win/commands/isCheckable.js +1 -2
  225. package/build/ox_modules/module-win/commands/isChecked.js +1 -2
  226. package/build/ox_modules/module-win/commands/isClickable.js +1 -2
  227. package/build/ox_modules/module-win/commands/isExist.js +1 -3
  228. package/build/ox_modules/module-win/commands/isSelected.js +1 -2
  229. package/build/ox_modules/module-win/commands/isVisible.js +1 -3
  230. package/build/ox_modules/module-win/commands/open.js +1 -2
  231. package/build/ox_modules/module-win/commands/pause.js +1 -2
  232. package/build/ox_modules/module-win/commands/rightClick.js +1 -2
  233. package/build/ox_modules/module-win/commands/selectWindow.js +1 -15
  234. package/build/ox_modules/module-win/commands/sendKeys.js +1 -4
  235. package/build/ox_modules/module-win/commands/setTimeout.js +1 -2
  236. package/build/ox_modules/module-win/commands/takeScreenshot.js +1 -2
  237. package/build/ox_modules/module-win/commands/tap.js +1 -2
  238. package/build/ox_modules/module-win/commands/type.js +1 -4
  239. package/build/ox_modules/module-win/commands/waitForExist.js +1 -2
  240. package/build/ox_modules/module-win/commands/waitForInteractable.js +1 -4
  241. package/build/ox_modules/module-win/commands/waitForVisible.js +1 -2
  242. package/build/ox_modules/module-win.js +48 -87
  243. package/build/ox_modules/utils.js +22 -76
  244. package/build/ox_reporters/reporter-excel.js +1 -58
  245. package/build/ox_reporters/reporter-html.js +1 -28
  246. package/build/ox_reporters/reporter-json.js +1 -14
  247. package/build/ox_reporters/reporter-junit.js +1 -24
  248. package/build/ox_reporters/reporter-pdf.js +1 -19
  249. package/build/ox_reporters/reporter-xml.js +1 -17
  250. package/build/ox_services/service-devtools/submodule-network.js +3 -84
  251. package/build/ox_services/service-devtools.js +1 -23
  252. package/build/reporter/FileReporterBase.js +5 -44
  253. package/build/reporter/ReportAggregator.js +1 -65
  254. package/build/reporter/ReporterBase.js +1 -6
  255. package/build/runners/WorkerProcess.js +1 -99
  256. package/build/runners/cucumber/CucumberEventListener.js +4 -29
  257. package/build/runners/cucumber/CucumberReporter.js +1 -56
  258. package/build/runners/cucumber/CucumberWorker.js +1 -66
  259. package/build/runners/cucumber/index.js +1 -30
  260. package/build/runners/cucumber/worker.js +1 -18
  261. package/build/runners/index.js +1 -6
  262. package/build/runners/oxygen/OxygenWorker.js +20 -54
  263. package/build/runners/oxygen/index.js +17 -177
  264. package/build/runners/oxygen/worker.js +2 -25
  265. package/package.json +28 -29
@@ -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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
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbGF1bmNoZXIuanMiXSwibmFtZXMiOlsiTGF1bmNoZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInJlcG9ydGVyIiwiX2NvbmZpZyIsIl9yZXN1bHRzIiwiX3F1ZXVlIiwicnVuIiwiY2Fwc1NldCIsInRhc2siLCJjYiIsIl9sYXVuY2hUZXN0IiwicGFyYWxsZWwiLCJjb25jdXJyZW5jeSIsImVycm9yIiwiZXJyIiwiY29uc29sZSIsImxvZyIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJfdGhpcyIsIl8iLCJlYWNoIiwiY2FwcyIsImRyYWluIiwiX2luc3RhbnRpYXRlUnVubmVyIiwiZnJhbWV3b3JrIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiUnVubmVycyIsIm94eWdlbiIsImNhbGxiYWNrIiwicnVubmVyIiwiRXJyb3IiLCJpbml0IiwicmVzdWx0IiwiZSIsImtpbGwiLCJlcnJNc2ciLCJ0eXBlIiwibWVzc2FnZSIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFZSxNQUFNQSxRQUFOLENBQWU7QUFDMUJDLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxRQUFULEVBQW1CO0FBQzFCLFNBQUtDLE9BQUwsR0FBZUYsTUFBZjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0UsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0g7O0FBRVEsUUFBSEMsR0FBRyxDQUFDQyxPQUFELEVBQVU7QUFDZixTQUFLRixNQUFMLEdBQWMsb0JBQU0sQ0FBQ0csSUFBRCxFQUFPQyxFQUFQLEtBQWMsS0FBS0MsV0FBTCxDQUFpQkYsSUFBakIsRUFBdUJDLEVBQXZCLENBQXBCLEVBQWdELEtBQUtOLE9BQUwsQ0FBYVEsUUFBYixJQUF5QixLQUFLUixPQUFMLENBQWFTLFdBQXRDLElB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QUQsQ0FBUjtBQUNILE9BVkQsTUFXSztBQUNEUCxRQUFBQSxRQUFRLENBQUNLLENBQUQsQ0FBUjtBQUNIO0FBQ0o7QUFDSjs7QUFoRnlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgKiBhcyBSdW5uZXJzIGZyb20gJy4uL3J1bm5lcnMnO1xyXG5pbXBvcnQgcXVldWUgZnJvbSAnYXN5bmMvcXVldWUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF1bmNoZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnLCByZXBvcnRlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBydW4oY2Fwc1NldCkge1xyXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gcXVldWUoKHRhc2ssIGNiKSA9PiB0aGlzLl9sYXVuY2hUZXN0KHRhc2ssIGNiKSwgdGhpcy5fY29uZmlnLnBhcmFsbGVsIHx8IHRoaXMuX2NvbmZpZy5jb25jdXJyZW5jeSB8fCAxKTtcclxuICAgICAgICB0aGlzLl9xdWV1ZS5lcnJvcigoZXJyLCB0YXNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiBxdWV1ZTonLCBlcnIpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBpZiBubyBjYXBhYmlsaXRpZXMgYXJlIHNwZWNpZmllZCwgcnVuIHNpbmdsZSBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzXHJcbiAgICAgICAgaWYgKCFjYXBzU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnB1c2gobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2Fwc1NldCBpcyBhbiBhcnJheSBcclxuICAgICAgICAgICAgY2Fwc1NldCA9IEFycmF5LmlzQXJyYXkoY2Fwc1NldCkgPyBjYXBzU2V0IDogW2NhcHNTZXRdO1xyXG4gICAgICAgICAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIF8uZWFjaChjYXBzU2V0LCBmdW5jdGlvbihjYXBzKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5fcXVldWUucHVzaChjYXBzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuX3F1ZXVlLmRyYWluKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gICAgX2luc3RhbnRpYXRlUnVubmVyKGNhcHMpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZyYW1ld29yayAmJiB0eXBlb2YgdGhpcy5fY29uZmlnLmZyYW1ld29yayA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSdW5uZXJzLCB0aGlzLl9jb25maWcuZnJhbWV3b3JrKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdW5uZXJzW3RoaXMuX2NvbmZpZy5mcmFtZXdvcmtdKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUnVubmVycy5veHlnZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBfbGF1bmNoVGVzdChjYXBzLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBydW5uZXIgPSB0aGlzLl9pbnN0YW50aWF0ZVJ1bm5lcihjYXBzKTtcclxuICAgICAgICBpZiAoIXJ1bm5lcikge1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZXdvcmsgPSB0aGlzLl9jb25maWcuZnJhbWV3b3JrO1xyXG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHJ1bm5lciBmb3IgdGhlIHNwZWNpZmllZCBmcmFtZXdvcms6ICR7ZnJhbWV3b3JrfS5gKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBveHlnZW5cclxuICAgICAgICAgICAgYXdhaXQgcnVubmVyLmluaXQodGhpcy5fY29uZmlnLCBjYXBzLCB0aGlzLnJlcG9ydGVyKTtcclxuICAgICAgICAgICAgLy8gcnVuIE94eWdlbiB0ZXN0IFxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5uZXIucnVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbGF1bmNoIHRoZSB0ZXN0OicsIGUpO1xyXG4gICAgICAgICAgICAvLyBzdG9wIHByb2Nlc3NpbmcgdGhlIHF1ZXVlXHJcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLmtpbGwoKTtcclxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjdXN0b20gZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgICAgICBpZiAoZS5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyck1zZyA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyciA9IGUuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci50eXBlICsgJyAtICc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIGVyck1zZyA9IGVyci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGVyck1zZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSk7ICAgIC8vIGNhbGwgYmFjayB3aXRoIHRoZSBvcmlnaW5hbCBleGNlcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbW9kdWxlUmVxdWlyZS5qcyJdLCJuYW1lcyI6WyJkZWNhY2hlIiwicmVxdWlyZSIsIm1vZHVsZVJlcXVpcmUiLCJtb2R1bGVOYW1lIiwiZSIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBRWUsU0FBU0MsYUFBVCxDQUF1QkMsVUFBdkIsRUFBbUM7QUFDOUMsTUFBSTtBQUNBSCxJQUFBQSxPQUFPLENBQUNHLFVBQUQsQ0FBUDtBQUNBLFdBQU9GLE9BQU8sQ0FBQ0UsVUFBRCxDQUFkO0FBQ0gsR0FIRCxDQUdFLE9BQU9DLENBQVAsRUFBVTtBQUNSQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsQ0FBL0I7QUFDQSxVQUFNQSxDQUFOO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWNhY2hlID0gcmVxdWlyZSgnZGVjYWNoZScpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW9kdWxlUmVxdWlyZShtb2R1bGVOYW1lKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGRlY2FjaGUobW9kdWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUobW9kdWxlTmFtZSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ21vZHVsZVJlcXVpcmUgZScsIGUpO1xyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbn0iXX0=
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tbWFuYWdlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZmlsZVBhdGgiLCJtb2RlIiwiZmlsZVR5cGUiLCJkZWZlciIsInJlcXVpcmUiLCJwYXRoIiwiRXhjZWxSZWFkZXIiLCJDc3ZSZWFkZXIiLCJKc29uUmVhZGVyIiwiZXJySGVscGVyIiwiX3doZW5Jbml0aWFsaXplZCIsImluaXQiLCJleHQiLCJleHRuYW1lIiwicmVhZGVyIiwic2VsZiIsInJlamVjdCIsIk94RXJyb3IiLCJlcnJvckNvZGUiLCJQQVJBTUVURVJTX0VSUk9SIiwicHJvbWlzZSIsInJlYWQiLCJ0aGVuIiwicmVzdWx0IiwidGFibGUiLCJjdXJyZW50Um93IiwicmFuZG9tIiwibGVuZ3RoIiwicmVzb2x2ZSIsImNhdGNoIiwiZXJyIiwibWVzc2FnZSIsImdldE1vZGUiLCJyZWFkTmV4dCIsInByZXZSb3ciLCJyZWFkUHJldiIsImdldFZhbHVlcyIsIl9fZGVmaW5lR2V0dGVyX18iLCJtaW4iLCJtYXgiLCJNYXRoIiwiZmxvb3IiXSwibWFwcGluZ3MiOiI7Ozs7QUFRQTs7OztBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsVUFBVUMsUUFBVixFQUFvQkMsSUFBcEIsRUFBMEJDLFFBQTFCLEVBQWlEO0FBQzlELE1BQUlDLEtBQUssR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBUCxDQUFnQkQsS0FBNUI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFJRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxzQkFBRCxDQUF6Qjs7QUFDQSxNQUFJRyxTQUFTLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUF2Qjs7QUFDQSxNQUFJSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxxQkFBRCxDQUF4Qjs7QUFDQSxNQUFJSyxTQUFTLEdBQUdMLE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxNQUFJTixNQUFNLEdB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QUF3QixXQUE1QixFQUF5QztBQUNyQyxXQUFLVCxVQUFMLEdBQWtCLEtBQUtTLE9BQXZCO0FBQ0g7QUFDSixHQUpEOztBQU1BcEMsRUFBQUEsTUFBTSxDQUFDc0MsU0FBUCxHQUFtQixZQUFXO0FBQzFCLFFBQUksQ0FBQyxLQUFLWixLQUFOLElBQWUsS0FBS0EsS0FBTCxDQUFXRyxNQUFYLEtBQXNCLENBQXpDLEVBQTRDO0FBQ3hDLFlBQU0sSUFBSVYsb0JBQUosQ0FBWVIsU0FBUyxDQUFDUyxTQUFWLENBQW9CQyxnQkFBaEMsRUFBa0QsMkJBQWxELENBQU47QUFDSDs7QUFDRCxXQUFPLEtBQUtLLEtBQUwsQ0FBVyxLQUFLQyxVQUFoQixDQUFQO0FBQ0gsR0FMRDs7QUFPQTNCLEVBQUFBLE1BQU0sQ0FBQ3VDLGdCQUFQLENBQXdCLE1BQXhCLEVBQWdDLFlBQVc7QUFDdkMsV0FBTyxLQUFLYixLQUFMLENBQVdHLE1BQWxCO0FBQ0gsR0FGRDs7QUFJQSxXQUFTRCxNQUFULENBQWdCWSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEI7QUFDdEIsV0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ2QsTUFBTCxNQUFpQmEsR0FBRyxHQUFHRCxHQUF2QixDQUFYLElBQTBDQSxHQUFqRDtBQUNIOztBQUVELFNBQU94QyxNQUFQO0FBQ0gsQ0E5RkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZmlsZVBhdGgsIG1vZGUsIGZpbGVUeXBlIC8qb3B0aW9uYWwqLykge1xyXG4gICAgdmFyIGRlZmVyID0gcmVxdWlyZSgnd2hlbicpLmRlZmVyO1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcbiAgICB2YXIgRXhjZWxSZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1leGNlbCcpO1xyXG4gICAgdmFyIENzdlJlYWRlciA9IHJlcXVpcmUoJy4vcGFyYW0tcmVhZGVyLWNzdicpO1xyXG4gICAgdmFyIEpzb25SZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1qc29uJyk7XHJcbiAgICB2YXIgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgdmFyIF93aGVuSW5pdGlhbGl6ZWQgPSBkZWZlcigpO1xyXG5cclxuICAgIG1vZHVsZS5pbml0ID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgdmFyIGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlVHlwZSkge1xyXG4gICAgICAgICAgICBleHQgPSBmaWxlVHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlYWRlciA9IG51bGw7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIGNob29zZSB0aGUgcmlnaHQgY29udmVydGVyIGJhc2VkIG9uIGVpdGhlciB4bHMgb3IgeGxzeCBmaWxlIGV4dGVuc2lvblxyXG4gICAgICAgIGlmIChleHQgPT09ICcueGxzeCcgfHwgZXh0ID09PSAnLnhscycpIHtcclxuICAgICAgICAgICAgcmVhZGVyID0gbmV3IEV4Y2VsUmVhZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJy5jc3YnIHx8IGV4dCA9PT0gJy50eHQnKSB7XHJcbiAgICAgICAgICAgIHJlYWRlciA9IG5ldyBDc3ZSZWFkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZXh0ID09PSAnLmpzb24nIHx8IGV4dCA9PT0gJy5qcycpIHtcclxuICAgICAgICAgICAgcmVhZGVyID0gbmV3IEpzb25SZWFkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIF93aGVuSW5pdGlhbGl6ZWQucmVqZWN0KG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuUEFSQU1FVEVSU19FUlJPUiwgJ1Vuc3VwcG9ydGVkIHBhcmFtZXRlcnMgZmlsZSB0eXBlOiAnICsgZXh0KSk7XHJcbiAgICAgICAgICAgIHJldHVybiBfd2hlbkluaXRpYWxpemVkLnByb21pc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xyXG5cclxuICAgICAgICByZWFkZXIucmVhZChmaWxlUGF0aCwgZmlsZVR5cGUgfHwgbnVsbClcclxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBjdXJyZW50Um93IGFjY29yZGluZyB3aXRoIHBhcmFtZXRlciByZWFkaW5nIG1vZGUgKHJhbmRvbSBvciBzZXF1ZW50aWFsKVxyXG4gICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50Um93ID0gc2VsZi5tb2RlID09PSAncmFuZG9tJyA/IHJhbmRvbSgwLCBzZWxmLnRhYmxlLmxlbmd0aCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgX3doZW5Jbml0aWFsaXplZC5yZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBfd2hlbkluaXRpYWxpemVkLnJlamVjdChcclxuICAgICAgICAgICAgICAgICAgICBuZXcgT3hFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtlcnJIZWxwZXIuZXJyb3JDb2RlLlBBUkFNRVRFUlNfRVJST1J9OiBVbmFibGUgdG8gbG9hZCBwYXJhbWV0ZXJzIGZpbGUuIFxyXG4ke2Vyci5tZXNzYWdlfWBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIF93aGVuSW5pdGlhbGl6ZWQucHJvbWlzZTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLmdldE1vZGUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUucmVhZE5leHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2Um93ID0gdGhpcy5jdXJyZW50Um93O1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdyYW5kb20nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJhbmRvbSgwLCB0aGlzLnRhYmxlLmxlbmd0aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Um93Kys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50Um93ID4gdGhpcy50YWJsZS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUucmVhZFByZXYgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXZSb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdyA9IHRoaXMucHJldlJvdztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZHVsZS5nZXRWYWx1ZXMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBpZiAoIXRoaXMudGFibGUgfHwgdGhpcy50YWJsZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLCAnUGFyYW1ldGVycyB0YWJsZSBpcyBlbXB0eScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy50YWJsZVt0aGlzLmN1cnJlbnRSb3ddO1xyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUuX19kZWZpbmVHZXR0ZXJfXygncm93cycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlLmxlbmd0aDtcclxuICAgIH0pO1xyXG5cclxuICAgIGZ1bmN0aW9uIHJhbmRvbShtaW4sIG1heCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSkgKyBtaW47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWNzdi5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGFyc2UiLCJyZXF1aXJlIiwiZnMiLCJwYXRoIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImRhdGEiLCJyZWFkRmlsZVN5bmMiLCJlIiwicmVwbGFjZSIsImJvbSIsImNoYXJDb2RlQXQiLCJ0YWJsZSIsImNvbHVtbnMiLCJ0cmltIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLFFBQU1FLEtBQUssR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXJCOztBQUNBLE1BQUlDLEVBQUUsR0FBR0QsT0FBTyxDQUFDLElBQUQsQ0FBaEI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRixPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFFQUgsRUFBQUEsTUFBTSxDQUFDTSxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQkMsV0FBbkIsRUFBZ0M7QUFDMUMsV0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3BDLFVBQUlDLEdBQUcsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLENBQWFOLFFBQWIsQ0FBVjs7QUFDQSxVQUFJQyxXQUFKLEVBQWlCO0FBQ2JJLFFBQUFBLEdBQUcsR0FBR0osV0FBTjtBQUNIOztBQUNELFVBQUlJLEdBQUcsS0FBSyxNQUFSLElBQWtCQSxHQUFHLEtBQUssTUFBOUIsRUFBc0M7QUFDbENELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFKOztBQUNBLFVBQUk7QUFDQUEsUUFBQUEsSUFBSSxHQUFHWCxFQUFFLENBQUNZLFlBQUgsQ0FBZ0JULFFBQWhCLEVBQTBCLE1BQTFCLENBQVA7QUFDSCxPQUZELENBRUUsT0FBT1UsQ0FBUCxFQUFVO0FBQ1JOLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDRyxDQUEvQyxDQUFELENBQU47QUFDSDs7QUFHREYsTUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxPQUFiLEVBQXNCLElBQXRCLENBQVA7QUFHQSxVQUFJQyxHQUFHLEdBQUcsS0FBVjs7QUFHQSxVQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsTUFBdUIsTUFBM0IsRUFBbUM7QUFDL0JELFFBQUFBLEdBQUcsR0FBRyxJQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLFlBQUlFLEtBQUssR0FBR25CLEtBQUssQ0FBQ2EsSUFBRCxFQUFPO0FBQUVJLFVBQUFBLEdBQUcsRUFBRUEsR0FBUDtBQUFZRyxVQUFBQSxPQUFPLEVBQUUsSUFBckI7QUFBMkJDLFVBQUFBLElBQUksRUFBRTtBQUFqQyxTQUFQLENBQWpCO0FBQ0gsT0FGRCxDQUVFLE9BQU9OLENBQVAsRUFBVTtBQUNSTixRQUFBQSxNQUFNLENBQUNNLENBQUQsQ0FBTjtBQUNIOztBQUVEUCxNQUFBQSxPQUFPLENBQUNXLEtBQUQsQ0FBUDtBQUNILEtBbENNLENBQVA7QUFtQ0gsR0FwQ0Q7O0FBc0NBLFNBQU9yQixNQUFQO0FBQ0gsQ0E3Q0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgY29uc3QgcGFyc2UgPSByZXF1aXJlKCdjc3YtcGFyc2UvbGliL3N5bmMnKTtcclxuICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuXHJcbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoLCBleHRPdmVycmlkZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICAgICAgICAgIGV4dCA9IGV4dE92ZXJyaWRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChleHQgIT09ICcuY3N2JyAmJiBleHQgIT09ICcudHh0Jykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGRhdGE7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmFibGUgdG8gcmVhZCBwYXJhbWV0ZXJzIGZpbGU6ICcgKyBlKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIENTVnMgcHJvZHVjZWQgYnkgT1MgWCBFeGNlbCBoYXZlIGhlYWRlciB0ZXJtaW5hdGVkIHdpdGggMGQwZDBhXHJcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xcclxcci9nLCAnXFxyJyk7XHJcblxyXG4gICAgICAgICAgICAvLyBzdHJpcCBCT00gZm9yIFVURi04XHJcbiAgICAgICAgICAgIHZhciBib20gPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gY2F0Y2hlcyAweEVGQkJCRiAoVVRGLTggQk9NKSBiZWNhdXNlIHRoZSBidWZmZXItdG8tc3RyaW5nXHJcbiAgICAgICAgICAgIC8vIGNvbnZlcnNpb24gdHJhbnNsYXRlcyBpdCB0byAweEZFRkYgKFVURi0xNiBCT00pXHJcbiAgICAgICAgICAgIGlmIChkYXRhLmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xyXG4gICAgICAgICAgICAgICAgYm9tID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IHBhcnNlKGRhdGEsIHsgYm9tOiBib20sIGNvbHVtbnM6IHRydWUsIHRyaW06IHRydWUgfSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZSh0YWJsZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBtb2R1bGU7XHJcbn07XHJcbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWV4Y2VsLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ4bHN4IiwicmVxdWlyZSIsInBhdGgiLCJyZWFkIiwiZmlsZVBhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImpzb24iLCJ3b3JrYm9vayIsInJlYWRGaWxlIiwic2hlZXROYW1lTGlzdCIsIlNoZWV0TmFtZXMiLCJqc29uUmF3IiwidXRpbHMiLCJzaGVldF90b19qc29uIiwiU2hlZXRzIiwiZGVmdmFsIiwicGFyYW1SYXciLCJwYXJhbSIsInByb3BSYXciLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ2YWx1ZVJhdyIsIlN0cmluZyIsInRyaW0iLCJwdXNoIiwiZXJyIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBSUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFHQUgsRUFBQUEsTUFBTSxDQUFDSyxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQjtBQUM3QixXQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDcEMsVUFBSUMsR0FBRyxHQUFHTixJQUFJLENBQUNPLE9BQUwsQ0FBYUwsUUFBYixDQUFWOztBQUNBLFVBQUlJLEdBQUcsS0FBSyxPQUFSLElBQW1CQSxHQUFHLEtBQUssTUFBL0IsRUFBdUM7QUFDbkNELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFJLEdBQUcsRUFBWDs7QUFDQSxVQUFJO0FBQ0EsWUFBSUMsUUFBUSxHQUFHWixJQUFJLENBQUNhLFFBQUwsQ0FBY1QsUUFBZCxDQUFmO0FBQ0EsWUFBSVUsYUFBYSxHQUFHRixRQUFRLENBQUNHLFVBQTdCO0FBQ0EsWUFBSUMsT0FBTyxHQUFHaEIsSUFBSSxDQUFDaUIsS0FBTCxDQUFXQyxhQUFYLENBQXlCTixRQUFRLENBQUNPLE1BQVQsQ0FBZ0JMLGFBQWEsQ0FBQyxDQUFELENBQTdCLENBQXpCLEVBQTREO0FBQUVNLFVBQUFBLE1BQU0sRUFBRTtBQUFWLFNBQTVELENBQWQ7O0FBR0EsYUFBSyxJQUFJQyxRQUFULElBQXFCTCxPQUFyQixFQUE4QjtBQUMxQixjQUFJTSxLQUFLLEdBQUcsRUFBWjs7QUFDQSxlQUFLLElBQUlDLE9BQVQsSUFBb0JGLFFBQXBCLEVBQThCO0FBQzFCLGdCQUFJRyxNQUFNLENBQUNDLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sUUFBckMsRUFBK0NFLE9BQS9DLENBQUosRUFBNkQ7QUFDekQsa0JBQUlLLFFBQVEsR0FBR1AsUUFBUSxDQUFDRSxPQUFELENBQXZCOztBQUNBLGtCQUFJLE9BQU9LLFFBQVAsS0FBb0IsUUFBcEIsSUFBZ0NBLFFBQVEsWUFBWUMsTUFBeEQsRUFBZ0U7QUFDNURQLGdCQUFBQSxLQUFLLENBQUNDLE9BQU8sQ0FBQ08sSUFBUixFQUFELENBQUwsR0FBd0JGLFFBQVEsQ0FBQ0UsSUFBVCxFQUF4QjtBQUNILGVBRkQsTUFFTztBQUNIUixnQkFBQUEsS0FBSyxDQUFDQyxPQUFPLENBQUNPLElBQVIsRUFBRCxDQUFMLEdBQXdCRixRQUF4QjtBQUNIO0FBQ0o7QUFDSjs7QUFDRGpCLFVBQUFBLElBQUksQ0FBQ29CLElBQUwsQ0FBVVQsS0FBVjtBQUNIO0FBQ0osT0FwQkQsQ0FvQkUsT0FBT1UsR0FBUCxFQUFZO0FBQ1Z6QixRQUFBQSxNQUFNLENBQUN5QixHQUFELENBQU47QUFDSDs7QUFFRDFCLE1BQUFBLE9BQU8sQ0FBQ0ssSUFBRCxDQUFQO0FBQ0gsS0FoQ00sQ0FBUDtBQWlDSCxHQWxDRDs7QUFvQ0EsU0FBT2IsTUFBUDtBQUNILENBM0NEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBtb2R1bGUgPSB7fTtcclxuICAgIHZhciB4bHN4ID0gcmVxdWlyZSgneGxzeCcpO1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcblxyXG4gICAgLy8gYXN5bmNocm9ub3VzbHkgcmVhZHMgRXhjZWwgZmlsZSBhbmQgcmV0dXJucyBqc29uIHRoYXQgcmVwcmVzZW50cyB0aGUgZmlyc3Qgc2hlZXRcclxuICAgIG1vZHVsZS5yZWFkID0gZnVuY3Rpb24oZmlsZVBhdGgpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgaWYgKGV4dCAhPT0gJy54bHN4JyAmJiBleHQgIT09ICcueGxzJykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGpzb24gPSBbXTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciB3b3JrYm9vayA9IHhsc3gucmVhZEZpbGUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNoZWV0TmFtZUxpc3QgPSB3b3JrYm9vay5TaGVldE5hbWVzO1xyXG4gICAgICAgICAgICAgICAgdmFyIGpzb25SYXcgPSB4bHN4LnV0aWxzLnNoZWV0X3RvX2pzb24od29ya2Jvb2suU2hlZXRzW3NoZWV0TmFtZUxpc3RbMF1dLCB7IGRlZnZhbDogJycgfSk7XHJcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGluIGNhc2UgdGhlcmUgd2VyZSBzb21lIGV4dHJhIGxpbmUgYnJlYWtzIGluIHRoZSBjZWxsc1xyXG4gICAgICAgICAgICAgICAgLy8gcmVjcmVhdGUgdGhlIHBhcmFtZXRlcnMgb2JqZWN0cyB3aXRoIGFsbCB0aGUgXFxyIGFuZCBcXG4gYW5kIHdoaXRlIHNwYWNlcyB0cmltbWVkXHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwYXJhbVJhdyBvZiBqc29uUmF3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmFtID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcFJhdyBpbiBwYXJhbVJhdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtUmF3LCBwcm9wUmF3KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlUmF3ID0gcGFyYW1SYXdbcHJvcFJhd107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlUmF3ID09PSAnc3RyaW5nJyB8fCB2YWx1ZVJhdyBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtW3Byb3BSYXcudHJpbSgpXSA9IHZhbHVlUmF3LnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1bcHJvcFJhdy50cmltKCldID0gdmFsdWVSYXc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAganNvbi5wdXNoKHBhcmFtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShqc29uKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWpzb24uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInBhdGgiLCJyZXF1aXJlIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsInJvd3MiLCJBcnJheSIsImlzQXJyYXkiLCJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBRUFILEVBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxHQUFjLFVBQVNDLFFBQVQsRUFBbUJDLFdBQW5CLEVBQWdDO0FBQzFDLFdBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQyxVQUFJQyxHQUFHLEdBQUdSLElBQUksQ0FBQ1MsT0FBTCxDQUFhTixRQUFiLENBQVY7O0FBQ0EsVUFBSUMsV0FBSixFQUFpQjtBQUNiSSxRQUFBQSxHQUFHLEdBQUdKLFdBQU47QUFDSDs7QUFDRCxVQUFJSSxHQUFHLEtBQUssT0FBUixJQUFtQkEsR0FBRyxLQUFLLEtBQS9CLEVBQXNDO0FBQ2xDRCxRQUFBQSxNQUFNLENBQUMsSUFBSUcsS0FBSixDQUFVLGlDQUFpQ0YsR0FBM0MsQ0FBRCxDQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLGNBQU1HLElBQUksR0FBR1YsT0FBTyxDQUFDRSxRQUFELENBQXBCOztBQUNBLFlBQUksQ0FBQ1MsS0FBSyxDQUFDQyxPQUFOLENBQWNGLElBQWQsQ0FBTCxFQUEwQjtBQUN0QkosVUFBQUEsTUFBTSxDQUFDLElBQUlHLEtBQUosQ0FBVSwwQkFBVixDQUFELENBQU47QUFDSDs7QUFDREosUUFBQUEsT0FBTyxDQUFDSyxJQUFELENBQVA7QUFDSCxPQU5ELENBTUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1JQLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDSSxDQUEvQyxDQUFELENBQU47QUFDSDtBQUNKLEtBbEJNLENBQVA7QUFtQkgsR0FwQkQ7O0FBc0JBLFNBQU9oQixNQUFQO0FBQ0gsQ0EzQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZHVsZSA9IHt9O1xyXG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcblxyXG4gICAgbW9kdWxlLnJlYWQgPSBmdW5jdGlvbihmaWxlUGF0aCwgZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgaWYgKGV4dE92ZXJyaWRlKSB7XHJcbiAgICAgICAgICAgICAgICBleHQgPSBleHRPdmVycmlkZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZXh0ICE9PSAnLmpzb24nICYmIGV4dCAhPT0gJy5qcycpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gcmVxdWlyZShmaWxlUGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocm93cykpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbnN1cHBvcnRlZCBmaWxlIGNvbnRlbnQnKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJvd3MpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmFibGUgdG8gcmVhZCBwYXJhbWV0ZXJzIGZpbGU6ICcgKyBlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGF0aCIsInJlcXVpcmUiLCJyZWFkIiwiZmlsZVBhdGgiLCJleHRPdmVycmlkZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXh0IiwiZXh0bmFtZSIsIkVycm9yIiwicm93cyIsIkFycmF5IiwiaXNBcnJheSIsImUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3BhcmFtLXJlYWRlci1qc29uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kdWxlID0ge307XHJcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuXHJcbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoLCBleHRPdmVycmlkZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoZXh0T3ZlcnJpZGUpIHtcclxuICAgICAgICAgICAgICAgIGV4dCA9IGV4dE92ZXJyaWRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChleHQgIT09ICcuanNvbicgJiYgZXh0ICE9PSAnLmpzJykge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvd3MgPSByZXF1aXJlKGZpbGVQYXRoKTtcclxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb3dzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgY29udGVudCcpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlc29sdmUocm93cyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1VuYWJsZSB0byByZWFkIHBhcmFtZXRlcnMgZmlsZTogJyArIGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7OztBQVNBQSxNQUFNLENBQUNDLE9BQU8sR0FBRyxZQUFZO0VBQ3pCLElBQUlELE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDZixJQUFJRSxJQUFJLEdBQUdDLE9BQU8sQ0FBQyxNQUFNLENBQUM7RUFFMUJILE1BQU0sQ0FBQ0ksSUFBSSxHQUFHLFVBQVNDLFFBQVEsRUFBRUMsV0FBVyxFQUFFO0lBQzFDLE9BQU8sSUFBSUMsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQ3BDLElBQUlDLEdBQUcsR0FBR1IsSUFBSSxDQUFDUyxPQUFPLENBQUNOLFFBQVEsQ0FBQztNQUNoQyxJQUFJQyxXQUFXLEVBQUU7UUFDYkksR0FBRyxHQUFHSixXQUFXO01BQ3JCO01BQ0EsSUFBSUksR0FBRyxLQUFLLE9BQU8sSUFBSUEsR0FBRyxLQUFLLEtBQUssRUFBRTtRQUNsQ0QsTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQyw4QkFBOEIsR0FBR0YsR0FBRyxDQUFDLENBQUM7TUFDM0Q7TUFFQSxJQUFJO1FBQ0EsTUFBTUcsSUFBSSxHQUFHVixPQUFPLENBQUNFLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUNTLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixJQUFJLENBQUMsRUFBRTtVQUN0QkosTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2pEO1FBQ0FKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDO01BQ2pCLENBQUMsQ0FBQyxPQUFPRyxDQUFDLEVBQUU7UUFDUlAsTUFBTSxDQUFDLElBQUlHLEtBQUssQ0FBQyxrQ0FBa0MsR0FBR0ksQ0FBQyxDQUFDLENBQUM7TUFDN0Q7SUFDSixDQUFDLENBQUM7RUFDTixDQUFDO0VBRUQsT0FBT2hCLE1BQU07QUFDakIsQ0FBQyJ9