datagrok-tools 4.13.75 → 4.13.76

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.
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -23,13 +22,6 @@ exports.runBrowser = runBrowser;
23
22
  exports.runWithTimeout = runWithTimeout;
24
23
  exports.saveCsvResults = saveCsvResults;
25
24
  exports.timeout = timeout;
26
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
27
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
28
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
29
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
30
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
31
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
32
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
33
25
  var _fs = _interopRequireDefault(require("fs"));
34
26
  var _os = _interopRequireDefault(require("os"));
35
27
  var _path = _interopRequireDefault(require("path"));
@@ -40,302 +32,139 @@ var _puppeteerScreenRecorder = require("puppeteer-screen-recorder");
40
32
  var _puppeteer = _interopRequireDefault(require("puppeteer"));
41
33
  var color = _interopRequireWildcard(require("../utils/color-utils"));
42
34
  var _papaparse = _interopRequireDefault(require("papaparse"));
43
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
44
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
45
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
46
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
47
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
48
- var fetch = require('node-fetch');
49
- var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
50
- var confPath = _path["default"].join(grokDir, 'config.yaml');
51
- var testCollectionTimeout = 100000;
52
- var defaultLaunchParameters = exports.defaultLaunchParameters = {
35
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
36
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
37
+ const fetch = require('node-fetch');
38
+ const grokDir = _path.default.join(_os.default.homedir(), '.grok');
39
+ const confPath = _path.default.join(grokDir, 'config.yaml');
40
+ const testCollectionTimeout = 100000;
41
+ const defaultLaunchParameters = exports.defaultLaunchParameters = {
53
42
  args: ['--disable-dev-shm-usage', '--disable-features=site-per-process', '--window-size=1920,1080', '--js-flags=--expose-gc'],
54
43
  ignoreHTTPSErrors: true,
55
44
  headless: 'new',
56
45
  protocolTimeout: 0
57
46
  };
58
- function getToken(_x, _x2) {
59
- return _getToken.apply(this, arguments);
60
- }
61
- function _getToken() {
62
- _getToken = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(url, key) {
63
- var response, json;
64
- return _regenerator["default"].wrap(function _callee2$(_context2) {
65
- while (1) switch (_context2.prev = _context2.next) {
66
- case 0:
67
- _context2.next = 2;
68
- return fetch("".concat(url, "/users/login/dev/").concat(key), {
69
- method: 'POST'
70
- });
71
- case 2:
72
- response = _context2.sent;
73
- _context2.next = 5;
74
- return response.json();
75
- case 5:
76
- json = _context2.sent;
77
- if (!(json.isSuccess == true)) {
78
- _context2.next = 10;
79
- break;
80
- }
81
- return _context2.abrupt("return", json.token);
82
- case 10:
83
- throw new Error('Unable to login to server. Check your dev key');
84
- case 11:
85
- case "end":
86
- return _context2.stop();
87
- }
88
- }, _callee2);
89
- }));
90
- return _getToken.apply(this, arguments);
91
- }
92
- function getWebUrl(_x3, _x4) {
93
- return _getWebUrl.apply(this, arguments);
47
+ async function getToken(url, key) {
48
+ const response = await fetch(`${url}/users/login/dev/${key}`, {
49
+ method: 'POST'
50
+ });
51
+ const json = await response.json();
52
+ if (json.isSuccess == true) return json.token;else throw new Error('Unable to login to server. Check your dev key');
94
53
  }
95
- function _getWebUrl() {
96
- _getWebUrl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(url, token) {
97
- var response, json;
98
- return _regenerator["default"].wrap(function _callee3$(_context3) {
99
- while (1) switch (_context3.prev = _context3.next) {
100
- case 0:
101
- _context3.next = 2;
102
- return fetch("".concat(url, "/admin/plugins/admin/settings"), {
103
- headers: {
104
- Authorization: token
105
- }
106
- });
107
- case 2:
108
- response = _context3.sent;
109
- _context3.next = 5;
110
- return response.json();
111
- case 5:
112
- json = _context3.sent;
113
- return _context3.abrupt("return", json.settings.webRoot);
114
- case 7:
115
- case "end":
116
- return _context3.stop();
117
- }
118
- }, _callee3);
119
- }));
120
- return _getWebUrl.apply(this, arguments);
54
+ async function getWebUrl(url, token) {
55
+ const response = await fetch(`${url}/admin/plugins/admin/settings`, {
56
+ headers: {
57
+ Authorization: token
58
+ }
59
+ });
60
+ const json = await response.json();
61
+ return json.settings.webRoot;
121
62
  }
122
63
  function getDevKey(hostKey) {
123
- var config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, 'utf8'));
124
- var host = hostKey == '' ? config["default"] : hostKey;
64
+ const config = _jsYaml.default.load(_fs.default.readFileSync(confPath, 'utf8'));
65
+ let host = hostKey == '' ? config.default : hostKey;
125
66
  host = host.trim();
126
- var urls = utils.mapURL(config);
127
- var key = '';
128
- var url = '';
67
+ const urls = utils.mapURL(config);
68
+ let key = '';
69
+ let url = '';
129
70
  try {
130
- var _url = new URL(host).href;
131
- if (_url.endsWith('/')) _url = _url.slice(0, -1);
132
- if (_url in urls) key = config['servers'][urls[_url]]['key'];
71
+ let url = new URL(host).href;
72
+ if (url.endsWith('/')) url = url.slice(0, -1);
73
+ if (url in urls) key = config['servers'][urls[url]]['key'];
133
74
  } catch (error) {
134
- if (config['servers'][host] == null) throw new Error("Unknown server alias. Please add it to ".concat(confPath));
75
+ if (config['servers'][host] == null) throw new Error(`Unknown server alias. Please add it to ${confPath}`);
135
76
  url = config['servers'][host]['url'];
136
77
  key = config['servers'][host]['key'];
137
78
  }
138
79
  return {
139
- url: url,
140
- key: key
80
+ url,
81
+ key
141
82
  };
142
83
  }
143
- function getBrowserPage(_x5) {
144
- return _getBrowserPage.apply(this, arguments);
145
- }
146
- function _getBrowserPage() {
147
- _getBrowserPage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(puppeteer) {
148
- var _process$env$HOST;
149
- var params,
150
- url,
151
- cfg,
152
- key,
153
- token,
154
- browser,
155
- targets,
156
- devtoolsTarget,
157
- client,
158
- page,
159
- _args4 = arguments;
160
- return _regenerator["default"].wrap(function _callee4$(_context4) {
161
- while (1) switch (_context4.prev = _context4.next) {
162
- case 0:
163
- params = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : defaultLaunchParameters;
164
- url = (_process$env$HOST = process.env.HOST) !== null && _process$env$HOST !== void 0 ? _process$env$HOST : '';
165
- cfg = getDevKey(url);
166
- url = cfg.url;
167
- key = cfg.key;
168
- _context4.next = 7;
169
- return getToken(url, key);
170
- case 7:
171
- token = _context4.sent;
172
- _context4.next = 10;
173
- return getWebUrl(url, token);
174
- case 10:
175
- url = _context4.sent;
176
- console.log("Using web root: ".concat(url));
177
- _context4.next = 14;
178
- return puppeteer.launch(params);
179
- case 14:
180
- browser = _context4.sent;
181
- if (!params.debug) {
182
- _context4.next = 28;
183
- break;
184
- }
185
- _context4.next = 18;
186
- return browser.targets();
187
- case 18:
188
- targets = _context4.sent;
189
- devtoolsTarget = targets.find(function (t) {
190
- return t.type() === 'other' && t.url().startsWith('devtools://');
191
- });
192
- if (!devtoolsTarget) {
193
- _context4.next = 28;
194
- break;
195
- }
196
- _context4.next = 23;
197
- return devtoolsTarget.createCDPSession();
198
- case 23:
199
- client = _context4.sent;
200
- _context4.next = 26;
201
- return client.send('Runtime.enable');
202
- case 26:
203
- _context4.next = 28;
204
- return client.send('Runtime.evaluate', {
205
- expression: "\n window.UI.viewManager.showView('network');\n window.UI.dockController.setDockSide('bottom')\n "
206
- });
207
- case 28:
208
- _context4.next = 30;
209
- return browser.newPage();
210
- case 30:
211
- page = _context4.sent;
212
- _context4.next = 33;
213
- return page.setViewport({
214
- width: 1920,
215
- height: 1080
216
- });
217
- case 33:
218
- page.setDefaultNavigationTimeout(0);
219
- _context4.next = 36;
220
- return page["goto"]("".concat(url, "/oauth/"));
221
- case 36:
222
- _context4.next = 38;
223
- return page.setCookie({
224
- name: 'auth',
225
- value: token
226
- });
227
- case 38:
228
- _context4.next = 40;
229
- return page.evaluate(function (token) {
230
- window.localStorage.setItem('auth', token);
231
- }, token);
232
- case 40:
233
- _context4.next = 42;
234
- return page["goto"](url);
235
- case 42:
236
- _context4.prev = 42;
237
- _context4.next = 45;
238
- return page.waitForFunction(function () {
239
- return document.querySelector('.grok-preloader') == null;
240
- }, {
241
- timeout: 3600000
242
- });
243
- case 45:
244
- _context4.next = 50;
245
- break;
246
- case 47:
247
- _context4.prev = 47;
248
- _context4.t0 = _context4["catch"](42);
249
- throw _context4.t0;
250
- case 50:
251
- return _context4.abrupt("return", {
252
- browser: browser,
253
- page: page
254
- });
255
- case 51:
256
- case "end":
257
- return _context4.stop();
258
- }
259
- }, _callee4, null, [[42, 47]]);
260
- }));
261
- return _getBrowserPage.apply(this, arguments);
84
+ async function getBrowserPage(puppeteer, params = defaultLaunchParameters) {
85
+ let url = process.env.HOST ?? '';
86
+ const cfg = getDevKey(url);
87
+ url = cfg.url;
88
+ const key = cfg.key;
89
+ const token = await getToken(url, key);
90
+ url = await getWebUrl(url, token);
91
+ console.log(`Using web root: ${url}`);
92
+ const browser = await puppeteer.launch(params);
93
+ if (params.debug) {
94
+ const targets = await browser.targets();
95
+ const devtoolsTarget = targets.find(t => {
96
+ return t.type() === 'other' && t.url().startsWith('devtools://');
97
+ });
98
+ if (devtoolsTarget) {
99
+ const client = await devtoolsTarget.createCDPSession();
100
+ await client.send('Runtime.enable');
101
+ await client.send('Runtime.evaluate', {
102
+ expression: `
103
+ window.UI.viewManager.showView('network');
104
+ window.UI.dockController.setDockSide('bottom')
105
+ `
106
+ });
107
+ }
108
+ }
109
+ const page = await browser.newPage();
110
+ await page.setViewport({
111
+ width: 1920,
112
+ height: 1080
113
+ });
114
+ page.setDefaultNavigationTimeout(0);
115
+ await page.goto(`${url}/oauth/`);
116
+ await page.setCookie({
117
+ name: 'auth',
118
+ value: token
119
+ });
120
+ await page.evaluate(token => {
121
+ window.localStorage.setItem('auth', token);
122
+ }, token);
123
+ await page.goto(url);
124
+ try {
125
+ // await page.waitForSelector('.grok-preloader', { timeout: 1800000 });
126
+ await page.waitForFunction(() => document.querySelector('.grok-preloader') == null, {
127
+ timeout: 3600000
128
+ });
129
+ } catch (error) {
130
+ throw error;
131
+ }
132
+ return {
133
+ browser,
134
+ page
135
+ };
262
136
  }
263
137
  function runWithTimeout(timeout, f) {
264
- return new Promise( /*#__PURE__*/function () {
265
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve, reject) {
266
- var timeoutId, resolveValue;
267
- return _regenerator["default"].wrap(function _callee$(_context) {
268
- while (1) switch (_context.prev = _context.next) {
269
- case 0:
270
- timeoutId = setTimeout(function () {
271
- return reject(new Error("Timeout exceeded: ".concat(timeout, " ms")));
272
- }, timeout);
273
- _context.prev = 1;
274
- _context.next = 4;
275
- return f();
276
- case 4:
277
- resolveValue = _context.sent;
278
- clearTimeout(timeoutId);
279
- resolve(resolveValue);
280
- _context.next = 12;
281
- break;
282
- case 9:
283
- _context.prev = 9;
284
- _context.t0 = _context["catch"](1);
285
- reject(_context.t0);
286
- case 12:
287
- case "end":
288
- return _context.stop();
289
- }
290
- }, _callee, null, [[1, 9]]);
291
- }));
292
- return function (_x6, _x7) {
293
- return _ref.apply(this, arguments);
294
- };
295
- }());
296
- }
297
- function timeout(_x8, _x9) {
298
- return _timeout.apply(this, arguments);
138
+ return new Promise(async (resolve, reject) => {
139
+ const timeoutId = setTimeout(() => reject(new Error(`Timeout exceeded: ${timeout} ms`)), timeout);
140
+ try {
141
+ const resolveValue = await f();
142
+ clearTimeout(timeoutId);
143
+ resolve(resolveValue);
144
+ } catch (e) {
145
+ reject(e);
146
+ }
147
+ });
299
148
  }
300
- function _timeout() {
301
- _timeout = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(func, testTimeout) {
302
- var timeoutReason,
303
- timeout,
304
- timeoutPromise,
305
- _args5 = arguments;
306
- return _regenerator["default"].wrap(function _callee5$(_context5) {
307
- while (1) switch (_context5.prev = _context5.next) {
308
- case 0:
309
- timeoutReason = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : 'EXECUTION TIMEOUT';
310
- timeout = null;
311
- timeoutPromise = new Promise(function (_, reject) {
312
- timeout = setTimeout(function () {
313
- // eslint-disable-next-line prefer-promise-reject-errors
314
- reject(timeoutReason);
315
- }, testTimeout);
316
- });
317
- _context5.prev = 3;
318
- _context5.next = 6;
319
- return Promise.race([func(), timeoutPromise]);
320
- case 6:
321
- return _context5.abrupt("return", _context5.sent);
322
- case 7:
323
- _context5.prev = 7;
324
- if (timeout) clearTimeout(timeout);
325
- return _context5.finish(7);
326
- case 10:
327
- case "end":
328
- return _context5.stop();
329
- }
330
- }, _callee5, null, [[3,, 7, 10]]);
331
- }));
332
- return _timeout.apply(this, arguments);
149
+ async function timeout(func, testTimeout, timeoutReason = 'EXECUTION TIMEOUT') {
150
+ let timeout = null;
151
+ const timeoutPromise = new Promise((_, reject) => {
152
+ timeout = setTimeout(() => {
153
+ // eslint-disable-next-line prefer-promise-reject-errors
154
+ reject(timeoutReason);
155
+ }, testTimeout);
156
+ });
157
+ try {
158
+ return await Promise.race([func(), timeoutPromise]);
159
+ } finally {
160
+ if (timeout) clearTimeout(timeout);
161
+ }
333
162
  }
334
163
  function exitWithCode(code) {
335
- console.log("Exiting with code ".concat(code));
164
+ console.log(`Exiting with code ${code}`);
336
165
  process.exit(code);
337
166
  }
338
- var recorderConfig = exports.recorderConfig = {
167
+ const recorderConfig = exports.recorderConfig = {
339
168
  followNewTab: true,
340
169
  fps: 25,
341
170
  ffmpeg_Path: null,
@@ -352,282 +181,131 @@ var recorderConfig = exports.recorderConfig = {
352
181
  }
353
182
  // aspectRatio: '16:9',
354
183
  };
355
- function loadPackages(_x10, _x11, _x12, _x13, _x14, _x15, _x16) {
356
- return _loadPackages.apply(this, arguments);
357
- }
358
- function _loadPackages() {
359
- _loadPackages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(packagesDir, packagesToLoad, host, skipPublish, skipBuild, linkPackage, release) {
360
- var packagesToRun, hostString, _iterator, _step, pacakgeName, _iterator2, _step2, dirName, packageDir, _packagesToRun$get, _spaceToCamelCase$toL, _ref6, _ref7, _packageJsonData$frie, packageJsonData, packageFriendlyName;
361
- return _regenerator["default"].wrap(function _callee6$(_context6) {
362
- while (1) switch (_context6.prev = _context6.next) {
363
- case 0:
364
- packagesToRun = new Map();
365
- hostString = host === undefined ? "" : "".concat(host);
366
- if (packagesToLoad !== "all") {
367
- _iterator = _createForOfIteratorHelper((packagesToLoad !== null && packagesToLoad !== void 0 ? packagesToLoad : "").split(' '));
368
- try {
369
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
370
- pacakgeName = _step.value;
371
- if ((pacakgeName !== null && pacakgeName !== void 0 ? pacakgeName : '').length !== 0) packagesToRun.set((0, _utils.spaceToCamelCase)(pacakgeName).toLocaleLowerCase(), false);
372
- }
373
- } catch (err) {
374
- _iterator.e(err);
375
- } finally {
376
- _iterator.f();
184
+ async function loadPackages(packagesDir, packagesToLoad, host, skipPublish, skipBuild, linkPackage, release) {
185
+ let packagesToRun = new Map();
186
+ let hostString = host === undefined ? `` : `${host}`;
187
+ if (packagesToLoad !== "all") {
188
+ for (let pacakgeName of (packagesToLoad ?? "").split(' ')) {
189
+ if ((pacakgeName ?? '').length !== 0) packagesToRun.set((0, _utils.spaceToCamelCase)(pacakgeName).toLocaleLowerCase(), false);
190
+ }
191
+ }
192
+ for (let dirName of _fs.default.readdirSync(packagesDir)) {
193
+ let packageDir = _path.default.join(packagesDir, dirName);
194
+ if (!_fs.default.lstatSync(packageDir).isFile()) {
195
+ try {
196
+ const packageJsonData = JSON.parse(_fs.default.readFileSync(_path.default.join(packageDir, 'package.json'), {
197
+ encoding: 'utf-8'
198
+ }));
199
+ const packageFriendlyName = packagesToRun.get((0, _utils.spaceToCamelCase)(packageJsonData["friendlyName"] ?? packageJsonData["name"].split("/")[1] ?? packageJsonData["name"] ?? '').toLocaleLowerCase() ?? "") ?? packagesToRun.get(dirName);
200
+ if (utils.isPackageDir(packageDir) && (packageFriendlyName !== undefined || packagesToLoad === "all")) {
201
+ try {
202
+ process.stdout.write(`Building and publishing ${dirName}...`);
203
+ if (skipPublish != true) {
204
+ await utils.runScript(`npm install`, packageDir);
205
+ if (linkPackage) await utils.runScript(`grok link`, packageDir);
206
+ if (skipBuild != true) await utils.runScript(`npm run build`, packageDir);
207
+ await utils.runScript(`grok publish ${hostString}${release ? ' --release' : ''}`, packageDir);
377
208
  }
209
+ packagesToRun.set(dirName, true);
210
+ process.stdout.write(` success!\n`);
211
+ } catch (e) {
212
+ process.stdout.write(` fail!\n`);
378
213
  }
379
- _iterator2 = _createForOfIteratorHelper(_fs["default"].readdirSync(packagesDir));
380
- _context6.prev = 4;
381
- _iterator2.s();
382
- case 6:
383
- if ((_step2 = _iterator2.n()).done) {
384
- _context6.next = 41;
385
- break;
386
- }
387
- dirName = _step2.value;
388
- packageDir = _path["default"].join(packagesDir, dirName);
389
- if (_fs["default"].lstatSync(packageDir).isFile()) {
390
- _context6.next = 39;
391
- break;
392
- }
393
- _context6.prev = 10;
394
- packageJsonData = JSON.parse(_fs["default"].readFileSync(_path["default"].join(packageDir, 'package.json'), {
395
- encoding: 'utf-8'
396
- }));
397
- packageFriendlyName = (_packagesToRun$get = packagesToRun.get((_spaceToCamelCase$toL = (0, _utils.spaceToCamelCase)((_ref6 = (_ref7 = (_packageJsonData$frie = packageJsonData["friendlyName"]) !== null && _packageJsonData$frie !== void 0 ? _packageJsonData$frie : packageJsonData["name"].split("/")[1]) !== null && _ref7 !== void 0 ? _ref7 : packageJsonData["name"]) !== null && _ref6 !== void 0 ? _ref6 : '').toLocaleLowerCase()) !== null && _spaceToCamelCase$toL !== void 0 ? _spaceToCamelCase$toL : "")) !== null && _packagesToRun$get !== void 0 ? _packagesToRun$get : packagesToRun.get(dirName);
398
- if (!(utils.isPackageDir(packageDir) && (packageFriendlyName !== undefined || packagesToLoad === "all"))) {
399
- _context6.next = 34;
400
- break;
401
- }
402
- _context6.prev = 14;
403
- process.stdout.write("Building and publishing ".concat(dirName, "..."));
404
- if (!(skipPublish != true)) {
405
- _context6.next = 27;
406
- break;
407
- }
408
- _context6.next = 19;
409
- return utils.runScript("npm install", packageDir);
410
- case 19:
411
- if (!linkPackage) {
412
- _context6.next = 22;
413
- break;
414
- }
415
- _context6.next = 22;
416
- return utils.runScript("grok link", packageDir);
417
- case 22:
418
- if (!(skipBuild != true)) {
419
- _context6.next = 25;
420
- break;
421
- }
422
- _context6.next = 25;
423
- return utils.runScript("npm run build", packageDir);
424
- case 25:
425
- _context6.next = 27;
426
- return utils.runScript("grok publish ".concat(hostString).concat(release ? ' --release' : ''), packageDir);
427
- case 27:
428
- packagesToRun.set(dirName, true);
429
- process.stdout.write(" success!\n");
430
- _context6.next = 34;
431
- break;
432
- case 31:
433
- _context6.prev = 31;
434
- _context6.t0 = _context6["catch"](14);
435
- process.stdout.write(" fail!\n");
436
- case 34:
437
- _context6.next = 39;
438
- break;
439
- case 36:
440
- _context6.prev = 36;
441
- _context6.t1 = _context6["catch"](10);
442
- if (utils.isPackageDir(packageDir) && (packagesToRun.get((0, _utils.spaceToCamelCase)(dirName).toLocaleLowerCase()) !== undefined || packagesToLoad === "all")) console.log("Couldn't read package.json ".concat(dirName));
443
- case 39:
444
- _context6.next = 6;
445
- break;
446
- case 41:
447
- _context6.next = 46;
448
- break;
449
- case 43:
450
- _context6.prev = 43;
451
- _context6.t2 = _context6["catch"](4);
452
- _iterator2.e(_context6.t2);
453
- case 46:
454
- _context6.prev = 46;
455
- _iterator2.f();
456
- return _context6.finish(46);
457
- case 49:
458
- console.log();
459
- return _context6.abrupt("return", Array.from(packagesToRun).filter(function (_ref2) {
460
- var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
461
- key = _ref3[0],
462
- value = _ref3[1];
463
- return value === true;
464
- }).map(function (_ref4) {
465
- var _ref5 = (0, _slicedToArray2["default"])(_ref4, 1),
466
- key = _ref5[0];
467
- return key;
468
- }));
469
- case 52:
470
- case "end":
471
- return _context6.stop();
214
+ }
215
+ } catch (e) {
216
+ if (utils.isPackageDir(packageDir) && (packagesToRun.get((0, _utils.spaceToCamelCase)(dirName).toLocaleLowerCase()) !== undefined || packagesToLoad === "all")) console.log(`Couldn't read package.json ${dirName}`);
472
217
  }
473
- }, _callee6, null, [[4, 43, 46, 49], [10, 36], [14, 31]]);
474
- }));
475
- return _loadPackages.apply(this, arguments);
476
- }
477
- function loadTestsList(_x17) {
478
- return _loadTestsList.apply(this, arguments);
218
+ }
219
+ }
220
+ console.log();
221
+ return Array.from(packagesToRun).filter(([key, value]) => value === true).map(([key]) => key);
222
+ ;
479
223
  }
480
- function _loadTestsList() {
481
- _loadTestsList = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(packages) {
482
- var core,
483
- packageTestsData,
484
- testsList,
485
- _iterator3,
486
- _step3,
487
- testPackage,
488
- _key,
489
- _iterator4,
490
- _step4,
491
- testValue,
492
- _args8 = arguments;
493
- return _regenerator["default"].wrap(function _callee8$(_context8) {
494
- while (1) switch (_context8.prev = _context8.next) {
495
- case 0:
496
- core = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : false;
497
- _context8.next = 3;
498
- return timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
499
- var params, out, browser, page, r;
500
- return _regenerator["default"].wrap(function _callee7$(_context7) {
501
- while (1) switch (_context7.prev = _context7.next) {
502
- case 0:
503
- params = Object.assign({}, defaultLaunchParameters); // params['headless'] = false;
504
- _context7.next = 3;
505
- return getBrowserPage(_puppeteer["default"], params);
506
- case 3:
507
- out = _context7.sent;
508
- browser = out.browser;
509
- page = out.page;
510
- _context7.next = 8;
511
- return page.evaluate(function (packages, coreTests) {
512
- return new Promise(function (resolve, reject) {
513
- var promises = [];
514
- try {
515
- packages.map(function (packageName) {
516
- var _DG$Func$find$;
517
- var p = (_DG$Func$find$ = window.DG.Func.find({
518
- "package": packageName,
519
- name: 'test'
520
- })[0]) === null || _DG$Func$find$ === void 0 ? void 0 : _DG$Func$find$["package"];
521
- if (p) {
522
- try {
523
- promises.push(p.getTests(coreTests)["catch"](function (e) {
524
- console.error('something else went wrong with collecting package tests');
525
- console.error(e === null || e === void 0 ? void 0 : e.message);
526
- }).then(function (ts) {
527
- return {
528
- packageName: packageName,
529
- tests: ts
530
- };
531
- }));
532
- } catch (e) {
533
- console.error('something went wrong while adding test collection promise');
534
- console.error(e.message);
535
- }
536
- }
537
- });
538
- } catch (err) {
539
- console.error("Error during evaluation in browser context:", err);
540
- reject();
541
- }
542
- Promise.all(promises).then(function (results) {
543
- resolve(results);
544
- })["catch"](function (e) {
545
- var stack = window.DG.Logger.translateStackTrace(e.stack).then(function () {
546
- resolve({
547
- failReport: "".concat(e.message, "\n").concat(stack)
548
- });
549
- });
550
- });
551
- });
552
- }, packages, core);
553
- case 8:
554
- r = _context7.sent;
555
- if (!(browser != null)) {
556
- _context7.next = 12;
557
- break;
558
- }
559
- _context7.next = 12;
560
- return browser.close();
561
- case 12:
562
- return _context7.abrupt("return", r);
563
- case 13:
564
- case "end":
565
- return _context7.stop();
566
- }
567
- }, _callee7);
568
- })), testCollectionTimeout);
569
- case 3:
570
- packageTestsData = _context8.sent;
571
- testsList = [];
572
- _iterator3 = _createForOfIteratorHelper(packageTestsData);
573
- try {
574
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
575
- testPackage = _step3.value;
576
- for (_key in testPackage.tests) {
577
- if (testPackage.tests.hasOwnProperty(_key)) {
578
- _iterator4 = _createForOfIteratorHelper(testPackage.tests[_key].tests);
579
- try {
580
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
581
- testValue = _step4.value;
582
- testValue.packageName = testPackage.packageName;
583
- testsList.push(testValue);
584
- }
585
- } catch (err) {
586
- _iterator4.e(err);
587
- } finally {
588
- _iterator4.f();
589
- }
590
- }
224
+ async function loadTestsList(packages, core = false) {
225
+ var packageTestsData = await timeout(async () => {
226
+ const params = Object.assign({}, defaultLaunchParameters);
227
+ // params['headless'] = false;
228
+ const out = await getBrowserPage(_puppeteer.default, params);
229
+ const browser = out.browser;
230
+ const page = out.page;
231
+ const r = await page.evaluate((packages, coreTests) => {
232
+ return new Promise((resolve, reject) => {
233
+ const promises = [];
234
+ try {
235
+ packages.map(packageName => {
236
+ const p = window.DG.Func.find({
237
+ package: packageName,
238
+ name: 'test'
239
+ })[0]?.package;
240
+ if (p) {
241
+ try {
242
+ promises.push(p.getTests(coreTests).catch(e => {
243
+ console.error('something else went wrong with collecting package tests');
244
+ console.error(e?.message);
245
+ }).then(ts => ({
246
+ packageName: packageName,
247
+ tests: ts
248
+ })));
249
+ } catch (e) {
250
+ console.error('something went wrong while adding test collection promise');
251
+ console.error(e.message);
591
252
  }
592
253
  }
593
- } catch (err) {
594
- _iterator3.e(err);
595
- } finally {
596
- _iterator3.f();
597
- }
598
- return _context8.abrupt("return", testsList);
599
- case 8:
600
- case "end":
601
- return _context8.stop();
254
+ });
255
+ } catch (err) {
256
+ console.error("Error during evaluation in browser context:", err);
257
+ reject();
258
+ }
259
+ Promise.all(promises).then(results => {
260
+ resolve(results);
261
+ }).catch(e => {
262
+ const stack = window.DG.Logger.translateStackTrace(e.stack).then(() => {
263
+ resolve({
264
+ failReport: `${e.message}\n${stack}`
265
+ });
266
+ });
267
+ });
268
+ });
269
+ }, packages, core);
270
+ if (browser != null) {
271
+ await browser.close();
272
+ }
273
+ return r;
274
+ }, testCollectionTimeout);
275
+ let testsList = [];
276
+ for (let testPackage of packageTestsData) {
277
+ for (const key in testPackage.tests) {
278
+ if (testPackage.tests.hasOwnProperty(key)) {
279
+ for (let testValue of testPackage.tests[key].tests) {
280
+ testValue.packageName = testPackage.packageName;
281
+ testsList.push(testValue);
282
+ }
602
283
  }
603
- }, _callee8);
604
- }));
605
- return _loadTestsList.apply(this, arguments);
284
+ }
285
+ }
286
+ return testsList;
606
287
  }
607
288
  function addLogsToFile(filePath, stringToSave) {
608
- _fs["default"].appendFileSync(filePath, "".concat(stringToSave));
289
+ _fs.default.appendFileSync(filePath, `${stringToSave}`);
609
290
  }
610
- function printBrowsersResult(browserResult) {
611
- var _browserResult$failed, _browserResult$verbos3;
612
- var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
291
+ function printBrowsersResult(browserResult, verbose = false) {
613
292
  if (verbose) {
614
- var _browserResult$passed, _browserResult$verbos, _browserResult$skippe, _browserResult$verbos2;
615
- if (((_browserResult$passed = browserResult.passedAmount) !== null && _browserResult$passed !== void 0 ? _browserResult$passed : 0) > 0 && ((_browserResult$verbos = browserResult.verbosePassed) !== null && _browserResult$verbos !== void 0 ? _browserResult$verbos : []).length > 0) {
293
+ if ((browserResult.passedAmount ?? 0) > 0 && (browserResult.verbosePassed ?? []).length > 0) {
616
294
  console.log("Passed: ");
617
295
  console.log(browserResult.verbosePassed);
618
296
  }
619
- if (((_browserResult$skippe = browserResult.skippedAmount) !== null && _browserResult$skippe !== void 0 ? _browserResult$skippe : 0) > 0 && ((_browserResult$verbos2 = browserResult.verboseSkipped) !== null && _browserResult$verbos2 !== void 0 ? _browserResult$verbos2 : []).length > 0) {
297
+ if ((browserResult.skippedAmount ?? 0) > 0 && (browserResult.verboseSkipped ?? []).length > 0) {
620
298
  console.log("Skipped: ");
621
299
  console.log(browserResult.verboseSkipped);
622
300
  }
623
301
  }
624
- if (((_browserResult$failed = browserResult.failedAmount) !== null && _browserResult$failed !== void 0 ? _browserResult$failed : 0) > 0 && ((_browserResult$verbos3 = browserResult.verboseFailed) !== null && _browserResult$verbos3 !== void 0 ? _browserResult$verbos3 : []).length > 0) {
302
+ if ((browserResult.failedAmount ?? 0) > 0 && (browserResult.verboseFailed ?? []).length > 0) {
625
303
  console.log("Failed: ");
626
304
  console.log(browserResult.verboseFailed);
627
305
  }
628
- console.log("Passed amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.passedAmount));
629
- console.log("Skipped amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.skippedAmount));
630
- console.log("Failed amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.failedAmount));
306
+ console.log("Passed amount: " + browserResult?.passedAmount);
307
+ console.log("Skipped amount: " + browserResult?.skippedAmount);
308
+ console.log("Failed amount: " + browserResult?.failedAmount);
631
309
  if (browserResult.failed) {
632
310
  if (browserResult.verboseFailed === 'Package not found') color.fail('Tests not found');else color.fail('Tests failed.');
633
311
  } else {
@@ -635,228 +313,122 @@ function printBrowsersResult(browserResult) {
635
313
  }
636
314
  }
637
315
  function saveCsvResults(stringToSave, csvReportDir) {
638
- var modifiedStrings = stringToSave.map(function (str, index) {
316
+ const modifiedStrings = stringToSave.map((str, index) => {
639
317
  if (index === 0) return str;
640
318
  return str.split('\n').slice(1).join('\n');
641
319
  });
642
- _fs["default"].writeFileSync(csvReportDir, modifiedStrings.join('\n'), 'utf8');
320
+ _fs.default.writeFileSync(csvReportDir, modifiedStrings.join('\n'), 'utf8');
643
321
  color.info('Saved `test-report.csv`\n');
644
322
  }
645
- function runBrowser(_x18, _x19, _x20) {
646
- return _runBrowser.apply(this, arguments);
647
- }
648
- function _runBrowser() {
649
- _runBrowser = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(testExecutionData, browserOptions, browsersId) {
650
- var testInvocationTimeout,
651
- _args10 = arguments;
652
- return _regenerator["default"].wrap(function _callee10$(_context10) {
653
- while (1) switch (_context10.prev = _context10.next) {
654
- case 0:
655
- testInvocationTimeout = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : 3600000;
656
- _context10.next = 3;
657
- return timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
658
- var params, out, browser, page, recorder, currentBrowserNum, logsDir, recordDir, testingResults;
659
- return _regenerator["default"].wrap(function _callee9$(_context9) {
660
- while (1) switch (_context9.prev = _context9.next) {
661
- case 0:
662
- params = Object.assign({
663
- devtools: browserOptions.debug
664
- }, defaultLaunchParameters);
665
- if (browserOptions.gui) params['headless'] = false;
666
- _context9.next = 4;
667
- return getBrowserPage(_puppeteer["default"], params);
668
- case 4:
669
- out = _context9.sent;
670
- browser = out.browser;
671
- page = out.page;
672
- recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, recorderConfig);
673
- currentBrowserNum = browsersId;
674
- logsDir = "./test-console-output-".concat(currentBrowserNum, ".log");
675
- recordDir = "./test-record-".concat(currentBrowserNum, ".mp4");
676
- if (!browserOptions.record) {
677
- _context9.next = 20;
678
- break;
679
- }
680
- _context9.next = 14;
681
- return recorder.start(recordDir);
682
- case 14:
683
- _context9.next = 16;
684
- return page.exposeFunction("addLogsToFile", addLogsToFile);
685
- case 16:
686
- _fs["default"].writeFileSync(logsDir, "");
687
- page.on('console', function (msg) {
688
- addLogsToFile(logsDir, "CONSOLE LOG ENTRY: ".concat(msg.text(), "\n"));
689
- });
690
- page.on('pageerror', function (error) {
691
- addLogsToFile(logsDir, "CONSOLE LOG ERROR: ".concat(error.message, "\n"));
692
- });
693
- page.on('response', function (response) {
694
- addLogsToFile(logsDir, "CONSOLE LOG REQUEST: ".concat(response.status(), ", ").concat(response.url(), "\n"));
695
- });
696
- case 20:
697
- _context9.next = 22;
698
- return page.evaluate(function (testData, options) {
699
- if (options.benchmark) window.DG.Test.isInBenchmark = true;
700
- if (options.reproduce) window.DG.Test.isReproducing = true;
701
- if (options.ciCd) window.DG.Test.isCiCd = true;
702
- if (options.debug) window.DG.Test.isInDebug = true;
703
- return new Promise(function (resolve, reject) {
704
- window.DG.Utils.executeTests(testData, options.stopOnTimeout).then(function (results) {
705
- resolve(results);
706
- })["catch"](function (e) {
707
- resolve({
708
- failed: true,
709
- verbosePassed: "",
710
- verboseSkipped: "",
711
- verboseFailed: "Tests execution failed",
712
- error: JSON.stringify(e),
713
- passedAmount: 0,
714
- skippedAmount: 0,
715
- failedAmount: 1,
716
- csv: "",
717
- df: undefined
718
- });
719
- });
720
- });
721
- }, testExecutionData, browserOptions);
722
- case 22:
723
- testingResults = _context9.sent;
724
- if (!browserOptions.record) {
725
- _context9.next = 26;
726
- break;
727
- }
728
- _context9.next = 26;
729
- return recorder.stop();
730
- case 26:
731
- if (!(browser != null)) {
732
- _context9.next = 29;
733
- break;
734
- }
735
- _context9.next = 29;
736
- return browser.close();
737
- case 29:
738
- return _context9.abrupt("return", testingResults);
739
- case 30:
740
- case "end":
741
- return _context9.stop();
742
- }
743
- }, _callee9);
744
- })), testInvocationTimeout);
745
- case 3:
746
- return _context10.abrupt("return", _context10.sent);
747
- case 4:
748
- case "end":
749
- return _context10.stop();
323
+ async function runBrowser(testExecutionData, browserOptions, browsersId, testInvocationTimeout = 3600000) {
324
+ return await timeout(async () => {
325
+ const params = Object.assign({
326
+ devtools: browserOptions.debug
327
+ }, defaultLaunchParameters);
328
+ if (browserOptions.gui) params['headless'] = false;
329
+ const out = await getBrowserPage(_puppeteer.default, params);
330
+ const browser = out.browser;
331
+ const page = out.page;
332
+ const recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, recorderConfig);
333
+ const currentBrowserNum = browsersId;
334
+ const logsDir = `./test-console-output-${currentBrowserNum}.log`;
335
+ const recordDir = `./test-record-${currentBrowserNum}.mp4`;
336
+ if (browserOptions.record) {
337
+ await recorder.start(recordDir);
338
+ await page.exposeFunction("addLogsToFile", addLogsToFile);
339
+ _fs.default.writeFileSync(logsDir, ``);
340
+ page.on('console', msg => {
341
+ addLogsToFile(logsDir, `CONSOLE LOG ENTRY: ${msg.text()}\n`);
342
+ });
343
+ page.on('pageerror', error => {
344
+ addLogsToFile(logsDir, `CONSOLE LOG ERROR: ${error.message}\n`);
345
+ });
346
+ page.on('response', response => {
347
+ addLogsToFile(logsDir, `CONSOLE LOG REQUEST: ${response.status()}, ${response.url()}\n`);
348
+ });
349
+ }
350
+ const testingResults = await page.evaluate(async (testData, options) => {
351
+ try {
352
+ if (options.benchmark) window.DG.Test.isInBenchmark = true;
353
+ if (options.reproduce) window.DG.Test.isReproducing = true;
354
+ if (options.ciCd) window.DG.Test.isCiCd = true;
355
+ if (options.debug) window.DG.Test.isInDebug = true;
356
+ const results = await window.DG.Utils.executeTests(testData, options.stopOnTimeout);
357
+ return results;
358
+ } catch (e) {
359
+ return {
360
+ failed: true,
361
+ verbosePassed: "",
362
+ verboseSkipped: "",
363
+ verboseFailed: "Tests execution failed",
364
+ error: JSON.stringify(e),
365
+ passedAmount: 0,
366
+ skippedAmount: 0,
367
+ failedAmount: 1,
368
+ csv: "",
369
+ df: undefined
370
+ };
750
371
  }
751
- }, _callee10);
752
- }));
753
- return _runBrowser.apply(this, arguments);
754
- }
755
- function mergeBrowsersResults(_x21) {
756
- return _mergeBrowsersResults.apply(this, arguments);
372
+ }, testExecutionData, browserOptions);
373
+ if (browserOptions.record) {
374
+ await recorder.stop();
375
+ }
376
+ if (browser != null) {
377
+ await browser.close();
378
+ }
379
+ return testingResults;
380
+ }, testInvocationTimeout);
757
381
  }
758
- function _mergeBrowsersResults() {
759
- _mergeBrowsersResults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(browsersResults) {
760
- var mergedResult, _iterator5, _step5, browsersResult, resultToMerdge1, resultToMerdge2, header;
761
- return _regenerator["default"].wrap(function _callee11$(_context11) {
762
- while (1) switch (_context11.prev = _context11.next) {
763
- case 0:
764
- mergedResult = {
765
- failed: browsersResults[0].failed,
766
- verbosePassed: browsersResults[0].verbosePassed,
767
- verboseSkipped: browsersResults[0].verboseSkipped,
768
- verboseFailed: browsersResults[0].verboseFailed,
769
- passedAmount: browsersResults[0].passedAmount,
770
- skippedAmount: browsersResults[0].skippedAmount,
771
- failedAmount: browsersResults[0].failedAmount,
772
- csv: browsersResults[0].csv
773
- };
774
- _iterator5 = _createForOfIteratorHelper(browsersResults);
775
- _context11.prev = 2;
776
- _iterator5.s();
777
- case 4:
778
- if ((_step5 = _iterator5.n()).done) {
779
- _context11.next = 21;
780
- break;
781
- }
782
- browsersResult = _step5.value;
783
- if (!(mergedResult.csv === browsersResult.csv)) {
784
- _context11.next = 8;
785
- break;
786
- }
787
- return _context11.abrupt("continue", 19);
788
- case 8:
789
- mergedResult.failed = mergedResult.failed || browsersResult.failed;
790
- mergedResult.verbosePassed = "".concat(mergedResult.verbosePassed.trim(), "\n").concat(browsersResult.verbosePassed.trim());
791
- mergedResult.verboseFailed = "".concat(mergedResult.verboseFailed.trim(), "\n").concat(browsersResult.verboseFailed.trim());
792
- mergedResult.verboseSkipped = "".concat(mergedResult.verboseSkipped.trim(), "\n").concat(browsersResult.verboseSkipped.trim());
793
- mergedResult.passedAmount += browsersResult.passedAmount;
794
- mergedResult.failedAmount += browsersResult.failedAmount;
795
- mergedResult.skippedAmount += browsersResult.skippedAmount;
796
- resultToMerdge1 = mergedResult.csv.trim().split('\n');
797
- resultToMerdge2 = browsersResult.csv.trim().split('\n');
798
- header = resultToMerdge1[0];
799
- mergedResult.csv = [header].concat((0, _toConsumableArray2["default"])(resultToMerdge1.slice(1)), (0, _toConsumableArray2["default"])(resultToMerdge2.slice(1))).join('\n');
800
- case 19:
801
- _context11.next = 4;
802
- break;
803
- case 21:
804
- _context11.next = 26;
805
- break;
806
- case 23:
807
- _context11.prev = 23;
808
- _context11.t0 = _context11["catch"](2);
809
- _iterator5.e(_context11.t0);
810
- case 26:
811
- _context11.prev = 26;
812
- _iterator5.f();
813
- return _context11.finish(26);
814
- case 29:
815
- return _context11.abrupt("return", mergedResult);
816
- case 30:
817
- case "end":
818
- return _context11.stop();
819
- }
820
- }, _callee11, null, [[2, 23, 26, 29]]);
821
- }));
822
- return _mergeBrowsersResults.apply(this, arguments);
382
+ async function mergeBrowsersResults(browsersResults) {
383
+ let mergedResult = {
384
+ failed: browsersResults[0].failed,
385
+ verbosePassed: browsersResults[0].verbosePassed,
386
+ verboseSkipped: browsersResults[0].verboseSkipped,
387
+ verboseFailed: browsersResults[0].verboseFailed,
388
+ passedAmount: browsersResults[0].passedAmount,
389
+ skippedAmount: browsersResults[0].skippedAmount,
390
+ failedAmount: browsersResults[0].failedAmount,
391
+ csv: browsersResults[0].csv
392
+ };
393
+ for (let browsersResult of browsersResults) {
394
+ if (mergedResult.csv === browsersResult.csv) continue;
395
+ mergedResult.failed = mergedResult.failed || browsersResult.failed;
396
+ mergedResult.verbosePassed = `${mergedResult.verbosePassed.trim()}\n${browsersResult.verbosePassed.trim()}`;
397
+ mergedResult.verboseFailed = `${mergedResult.verboseFailed.trim()}\n${browsersResult.verboseFailed.trim()}`;
398
+ mergedResult.verboseSkipped = `${mergedResult.verboseSkipped.trim()}\n${browsersResult.verboseSkipped.trim()}`;
399
+ mergedResult.passedAmount += browsersResult.passedAmount;
400
+ mergedResult.failedAmount += browsersResult.failedAmount;
401
+ mergedResult.skippedAmount += browsersResult.skippedAmount;
402
+ const resultToMerdge1 = mergedResult.csv.trim().split('\n');
403
+ const resultToMerdge2 = browsersResult.csv.trim().split('\n');
404
+ const header = resultToMerdge1[0];
405
+ mergedResult.csv = [header, ...resultToMerdge1.slice(1), ...resultToMerdge2.slice(1)].join('\n');
406
+ }
407
+ return mergedResult;
823
408
  }
824
- var TestContext = exports.TestContext = /*#__PURE__*/(0, _createClass2["default"])(function TestContext(catchUnhandled, report) {
825
- (0, _classCallCheck2["default"])(this, TestContext);
826
- (0, _defineProperty2["default"])(this, "catchUnhandled", true);
827
- (0, _defineProperty2["default"])(this, "report", false);
828
- if (catchUnhandled !== undefined) this.catchUnhandled = catchUnhandled;
829
- if (report !== undefined) this.report = report;
830
- });
831
- function addColumnToCsv(_x22, _x23, _x24) {
832
- return _addColumnToCsv.apply(this, arguments);
409
+ class TestContext {
410
+ catchUnhandled = true;
411
+ report = false;
412
+ constructor(catchUnhandled, report) {
413
+ if (catchUnhandled !== undefined) this.catchUnhandled = catchUnhandled;
414
+ if (report !== undefined) this.report = report;
415
+ }
833
416
  }
834
- function _addColumnToCsv() {
835
- _addColumnToCsv = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(csv, columnName, defaultValue) {
836
- var result;
837
- return _regenerator["default"].wrap(function _callee12$(_context12) {
838
- while (1) switch (_context12.prev = _context12.next) {
839
- case 0:
840
- result = csv;
841
- _papaparse["default"].parse(csv, {
842
- header: true,
843
- skipEmptyLines: true,
844
- complete: function complete(results) {
845
- var dataWithDefaultColumn = results.data.map(function (row) {
846
- row[columnName] = defaultValue;
847
- return row;
848
- });
849
- result = _papaparse["default"].unparse(dataWithDefaultColumn, {
850
- header: true
851
- });
852
- }
853
- });
854
- return _context12.abrupt("return", result);
855
- case 3:
856
- case "end":
857
- return _context12.stop();
858
- }
859
- }, _callee12);
860
- }));
861
- return _addColumnToCsv.apply(this, arguments);
417
+ exports.TestContext = TestContext;
418
+ async function addColumnToCsv(csv, columnName, defaultValue) {
419
+ let result = csv;
420
+ _papaparse.default.parse(csv, {
421
+ header: true,
422
+ skipEmptyLines: true,
423
+ complete: function (results) {
424
+ const dataWithDefaultColumn = results.data.map(row => {
425
+ row[columnName] = defaultValue;
426
+ return row;
427
+ });
428
+ result = _papaparse.default.unparse(dataWithDefaultColumn, {
429
+ header: true
430
+ });
431
+ }
432
+ });
433
+ return result;
862
434
  }