@testim/testim-cli 3.205.0 → 3.211.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cli.js CHANGED
@@ -34,6 +34,15 @@ async function checkNodeVersion() {
34
34
  if (!semver.satisfies(process.version, version)) {
35
35
  throw new ArgError(`Required node version ${version} not satisfied with current version ${process.version}`);
36
36
  }
37
+
38
+ if (process.version.startsWith('v10.')) {
39
+ // give one day grace period.
40
+ const limitDate = new Date('2021-12-13T00:00:00.000z');
41
+ if (limitDate < new Date()) {
42
+ throw new ArgError('Node.js v10 is no longer supported, please upgrade to Node.js 12, 14 or 16.');
43
+ }
44
+ console.warn('Node.js v10 is no longer supported by the Testim CLI. Please upgrade to Node.js 12, 14 or 16.');
45
+ }
37
46
  }
38
47
 
39
48
  function main() {
@@ -48,13 +48,14 @@ class FeatureFlagsService {
48
48
  useJsInputCodeInSafari: new Rox.Flag(),
49
49
  autoSaveDownloadFileFireFox: new Rox.Flag(true),
50
50
  safariSelectOptionDispatchEventOnSelectElement: new Rox.Flag(true),
51
- experimentalPreCodeCompilation: new Rox.Flag(false),
51
+ experimentalPreCodeCompilation: new Rox.Flag(true),
52
52
  /** Enables using top level await inside custom actions for non-IE browsers */
53
53
  experimentalAsyncCustomCode: new Rox.Flag(),
54
54
  useSameBrowserForMultiTests: new LabFeatureFlag('labs'),
55
55
  highSpeedMode: new LabFeatureFlag(),
56
56
  usePortedHtml5DragDrop: new Rox.Flag(),
57
57
  applitoolsNewIntegration: new Rox.Flag(),
58
+ testNamesToBeforeSuiteHook: new Rox.Flag(),
58
59
  };
59
60
  Rox.register('default', this.flags);
60
61
  }
@@ -8,6 +8,7 @@ const logger = require('./logger').getLogger('testimNgrok');
8
8
  const WHITELISTED_TUNNEL_DOMAIN_SUFFIX = '.whitelisted-ngrok.testim.io';
9
9
 
10
10
  let ngrokTunnelUrl = '';
11
+ let statsTimeout;
11
12
 
12
13
  const connectTunnel = async (options, authData) => {
13
14
  if (!authData.ngrokToken) {
@@ -28,6 +29,9 @@ const connectTunnel = async (options, authData) => {
28
29
  if (options.tunnelHostHeader) {
29
30
  connectOpt.host_header = options.tunnelHostHeader;
30
31
  }
32
+ if (options.tunnelRegion) {
33
+ connectOpt.region = options.tunnelRegion;
34
+ }
31
35
 
32
36
  const ngrok = await lazyRequire('ngrok');
33
37
  const url = await ngrok.connect(connectOpt);
@@ -41,14 +45,39 @@ const connectTunnel = async (options, authData) => {
41
45
  ngrokTunnelUrl = url;
42
46
  }
43
47
 
48
+ if (options.tunnelDiagnostics) {
49
+ collectNgrokStats();
50
+ }
44
51
  options.baseUrl = ngrokTunnelUrl;
45
52
  };
46
53
 
47
- const disconnectTunnel = async () => {
54
+ const collectNgrokStats = async (rerun = true) => {
55
+ try {
56
+ const ngrok = await lazyRequire('ngrok');
57
+ const api = ngrok.getApi();
58
+ const { tunnels } = await api.get({ url: 'api/tunnels', json: true });
59
+ const tunnel = tunnels.find(t => t.public_url === ngrokTunnelUrl);
60
+
61
+ // eslint-disable-next-line no-console
62
+ console.log('ngrok stats', tunnel);
63
+ logger.info('ngrok stats', { tunnel });
64
+ } catch (err) {
65
+ logger.error('error collecting ngrok stats', { err });
66
+ }
67
+ if (rerun) {
68
+ statsTimeout = setTimeout(() => collectNgrokStats(), 10000);
69
+ }
70
+ };
71
+
72
+ const disconnectTunnel = async (options) => {
48
73
  if (!ngrokTunnelUrl) {
49
74
  return;
50
75
  }
51
76
 
77
+ clearTimeout(statsTimeout);
78
+ if (options.tunnelDiagnostics) {
79
+ await collectNgrokStats(false);
80
+ }
52
81
  const ngrok = await lazyRequire('ngrok');
53
82
  await ngrok.disconnect(ngrokTunnelUrl);
54
83
  };
@@ -41,7 +41,7 @@ const disconnect = async (options) => {
41
41
  if (shouldUseLambdatestTunnel(options)) {
42
42
  await LambdatestService.disconnectTunnel(options);
43
43
  } else {
44
- await testimNgrok.disconnectTunnel();
44
+ await testimNgrok.disconnectTunnel(options);
45
45
  }
46
46
  } catch (err) {
47
47
  const msg = 'catch error - failed to close tunnel';
@@ -278,19 +278,19 @@
278
278
  "dev": true
279
279
  },
280
280
  "@babel/core": {
281
- "version": "7.16.0",
282
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz",
283
- "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==",
281
+ "version": "7.16.5",
282
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz",
283
+ "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==",
284
284
  "dev": true,
285
285
  "requires": {
286
286
  "@babel/code-frame": "^7.16.0",
287
- "@babel/generator": "^7.16.0",
288
- "@babel/helper-compilation-targets": "^7.16.0",
289
- "@babel/helper-module-transforms": "^7.16.0",
290
- "@babel/helpers": "^7.16.0",
291
- "@babel/parser": "^7.16.0",
287
+ "@babel/generator": "^7.16.5",
288
+ "@babel/helper-compilation-targets": "^7.16.3",
289
+ "@babel/helper-module-transforms": "^7.16.5",
290
+ "@babel/helpers": "^7.16.5",
291
+ "@babel/parser": "^7.16.5",
292
292
  "@babel/template": "^7.16.0",
293
- "@babel/traverse": "^7.16.0",
293
+ "@babel/traverse": "^7.16.5",
294
294
  "@babel/types": "^7.16.0",
295
295
  "convert-source-map": "^1.7.0",
296
296
  "debug": "^4.1.0",
@@ -330,9 +330,9 @@
330
330
  }
331
331
  },
332
332
  "@babel/generator": {
333
- "version": "7.16.0",
334
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz",
335
- "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==",
333
+ "version": "7.16.5",
334
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz",
335
+ "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==",
336
336
  "dev": true,
337
337
  "requires": {
338
338
  "@babel/types": "^7.16.0",
@@ -368,6 +368,15 @@
368
368
  }
369
369
  }
370
370
  },
371
+ "@babel/helper-environment-visitor": {
372
+ "version": "7.16.5",
373
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz",
374
+ "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==",
375
+ "dev": true,
376
+ "requires": {
377
+ "@babel/types": "^7.16.0"
378
+ }
379
+ },
371
380
  "@babel/helper-function-name": {
372
381
  "version": "7.16.0",
373
382
  "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz",
@@ -397,15 +406,6 @@
397
406
  "@babel/types": "^7.16.0"
398
407
  }
399
408
  },
400
- "@babel/helper-member-expression-to-functions": {
401
- "version": "7.16.0",
402
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz",
403
- "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==",
404
- "dev": true,
405
- "requires": {
406
- "@babel/types": "^7.16.0"
407
- }
408
- },
409
409
  "@babel/helper-module-imports": {
410
410
  "version": "7.16.0",
411
411
  "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz",
@@ -416,39 +416,18 @@
416
416
  }
417
417
  },
418
418
  "@babel/helper-module-transforms": {
419
- "version": "7.16.0",
420
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz",
421
- "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==",
419
+ "version": "7.16.5",
420
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz",
421
+ "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==",
422
422
  "dev": true,
423
423
  "requires": {
424
+ "@babel/helper-environment-visitor": "^7.16.5",
424
425
  "@babel/helper-module-imports": "^7.16.0",
425
- "@babel/helper-replace-supers": "^7.16.0",
426
426
  "@babel/helper-simple-access": "^7.16.0",
427
427
  "@babel/helper-split-export-declaration": "^7.16.0",
428
428
  "@babel/helper-validator-identifier": "^7.15.7",
429
429
  "@babel/template": "^7.16.0",
430
- "@babel/traverse": "^7.16.0",
431
- "@babel/types": "^7.16.0"
432
- }
433
- },
434
- "@babel/helper-optimise-call-expression": {
435
- "version": "7.16.0",
436
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz",
437
- "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==",
438
- "dev": true,
439
- "requires": {
440
- "@babel/types": "^7.16.0"
441
- }
442
- },
443
- "@babel/helper-replace-supers": {
444
- "version": "7.16.0",
445
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz",
446
- "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==",
447
- "dev": true,
448
- "requires": {
449
- "@babel/helper-member-expression-to-functions": "^7.16.0",
450
- "@babel/helper-optimise-call-expression": "^7.16.0",
451
- "@babel/traverse": "^7.16.0",
430
+ "@babel/traverse": "^7.16.5",
452
431
  "@babel/types": "^7.16.0"
453
432
  }
454
433
  },
@@ -482,13 +461,13 @@
482
461
  "dev": true
483
462
  },
484
463
  "@babel/helpers": {
485
- "version": "7.16.3",
486
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz",
487
- "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==",
464
+ "version": "7.16.5",
465
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz",
466
+ "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==",
488
467
  "dev": true,
489
468
  "requires": {
490
469
  "@babel/template": "^7.16.0",
491
- "@babel/traverse": "^7.16.3",
470
+ "@babel/traverse": "^7.16.5",
492
471
  "@babel/types": "^7.16.0"
493
472
  }
494
473
  },
@@ -549,15 +528,15 @@
549
528
  }
550
529
  },
551
530
  "@babel/parser": {
552
- "version": "7.16.4",
553
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz",
554
- "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==",
531
+ "version": "7.16.6",
532
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz",
533
+ "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==",
555
534
  "dev": true
556
535
  },
557
536
  "@babel/runtime": {
558
- "version": "7.16.3",
559
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz",
560
- "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==",
537
+ "version": "7.16.5",
538
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz",
539
+ "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==",
561
540
  "requires": {
562
541
  "regenerator-runtime": "^0.13.4"
563
542
  },
@@ -581,17 +560,18 @@
581
560
  }
582
561
  },
583
562
  "@babel/traverse": {
584
- "version": "7.16.3",
585
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz",
586
- "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==",
563
+ "version": "7.16.5",
564
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz",
565
+ "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==",
587
566
  "dev": true,
588
567
  "requires": {
589
568
  "@babel/code-frame": "^7.16.0",
590
- "@babel/generator": "^7.16.0",
569
+ "@babel/generator": "^7.16.5",
570
+ "@babel/helper-environment-visitor": "^7.16.5",
591
571
  "@babel/helper-function-name": "^7.16.0",
592
572
  "@babel/helper-hoist-variables": "^7.16.0",
593
573
  "@babel/helper-split-export-declaration": "^7.16.0",
594
- "@babel/parser": "^7.16.3",
574
+ "@babel/parser": "^7.16.5",
595
575
  "@babel/types": "^7.16.0",
596
576
  "debug": "^4.1.0",
597
577
  "globals": "^11.1.0"
@@ -1167,9 +1147,9 @@
1167
1147
  }
1168
1148
  },
1169
1149
  "@testim/webdriverio": {
1170
- "version": "0.0.3",
1171
- "resolved": "https://registry.npmjs.org/@testim/webdriverio/-/webdriverio-0.0.3.tgz",
1172
- "integrity": "sha512-EyajBTIA8YeGC0SfsUwLAB05pqErSOz8hxv1OO/G5cm93gTLPWYU9P30Ds0skLayO7rjxs4npvAzO+rFiYSpeg==",
1150
+ "version": "0.0.4",
1151
+ "resolved": "https://registry.npmjs.org/@testim/webdriverio/-/webdriverio-0.0.4.tgz",
1152
+ "integrity": "sha512-FkuPaDHxg/42MhQ/PSAurx4IroEQaWOGH8BVmIcGFjAz7BpYVNQhX7txppDTiHUGGxpeOQiqM3VvxawBfW6Qcg==",
1173
1153
  "requires": {
1174
1154
  "archiver": "~2.1.0",
1175
1155
  "babel-runtime": "^6.26.0",
@@ -1182,7 +1162,7 @@
1182
1162
  "grapheme-splitter": "^1.0.2",
1183
1163
  "inquirer": "~3.3.0",
1184
1164
  "json-stringify-safe": "~5.0.1",
1185
- "mkdirp": "~0.5.1",
1165
+ "mkdirp": "1.0.4",
1186
1166
  "npm-install-package": "~2.1.0",
1187
1167
  "optimist": "~0.6.1",
1188
1168
  "q": "~1.5.0",
@@ -1220,14 +1200,6 @@
1220
1200
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
1221
1201
  "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
1222
1202
  },
1223
- "mkdirp": {
1224
- "version": "0.5.5",
1225
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1226
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1227
- "requires": {
1228
- "minimist": "^1.2.5"
1229
- }
1230
- },
1231
1203
  "safe-buffer": {
1232
1204
  "version": "5.1.2",
1233
1205
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -1566,12 +1538,6 @@
1566
1538
  }
1567
1539
  }
1568
1540
  },
1569
- "aproba": {
1570
- "version": "1.2.0",
1571
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
1572
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
1573
- "optional": true
1574
- },
1575
1541
  "archiver": {
1576
1542
  "version": "3.1.1",
1577
1543
  "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
@@ -1728,16 +1694,6 @@
1728
1694
  "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
1729
1695
  "dev": true
1730
1696
  },
1731
- "are-we-there-yet": {
1732
- "version": "1.1.7",
1733
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
1734
- "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
1735
- "optional": true,
1736
- "requires": {
1737
- "delegates": "^1.0.0",
1738
- "readable-stream": "^2.0.6"
1739
- }
1740
- },
1741
1697
  "arg": {
1742
1698
  "version": "4.1.3",
1743
1699
  "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
@@ -2236,13 +2192,13 @@
2236
2192
  "dev": true
2237
2193
  },
2238
2194
  "browserslist": {
2239
- "version": "4.18.1",
2240
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz",
2241
- "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==",
2195
+ "version": "4.19.1",
2196
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
2197
+ "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
2242
2198
  "dev": true,
2243
2199
  "requires": {
2244
- "caniuse-lite": "^1.0.30001280",
2245
- "electron-to-chromium": "^1.3.896",
2200
+ "caniuse-lite": "^1.0.30001286",
2201
+ "electron-to-chromium": "^1.4.17",
2246
2202
  "escalade": "^3.1.1",
2247
2203
  "node-releases": "^2.0.1",
2248
2204
  "picocolors": "^1.0.0"
@@ -2294,7 +2250,8 @@
2294
2250
  "buffer-from": {
2295
2251
  "version": "1.1.2",
2296
2252
  "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
2297
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
2253
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
2254
+ "dev": true
2298
2255
  },
2299
2256
  "builtins": {
2300
2257
  "version": "1.0.3",
@@ -2380,9 +2337,9 @@
2380
2337
  "dev": true
2381
2338
  },
2382
2339
  "caniuse-lite": {
2383
- "version": "1.0.30001283",
2384
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz",
2385
- "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==",
2340
+ "version": "1.0.30001291",
2341
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz",
2342
+ "integrity": "sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA==",
2386
2343
  "dev": true
2387
2344
  },
2388
2345
  "caseless": {
@@ -2552,9 +2509,9 @@
2552
2509
  },
2553
2510
  "dependencies": {
2554
2511
  "@types/node": {
2555
- "version": "16.11.10",
2556
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
2557
- "integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA=="
2512
+ "version": "17.0.2",
2513
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.2.tgz",
2514
+ "integrity": "sha512-JepeIUPFDARgIs0zD/SKPgFsJEAF0X5/qO80llx59gOxFTboS9Amv3S+QfB7lqBId5sFXJ99BN0J6zFRvL9dDA=="
2558
2515
  },
2559
2516
  "mkdirp": {
2560
2517
  "version": "0.5.5",
@@ -2697,7 +2654,8 @@
2697
2654
  "code-point-at": {
2698
2655
  "version": "1.1.0",
2699
2656
  "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
2700
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
2657
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
2658
+ "dev": true
2701
2659
  },
2702
2660
  "collection-map": {
2703
2661
  "version": "1.0.0",
@@ -2758,9 +2716,9 @@
2758
2716
  "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2759
2717
  },
2760
2718
  "color-string": {
2761
- "version": "1.7.4",
2762
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.7.4.tgz",
2763
- "integrity": "sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg==",
2719
+ "version": "1.9.0",
2720
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz",
2721
+ "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==",
2764
2722
  "requires": {
2765
2723
  "color-name": "^1.0.0",
2766
2724
  "simple-swizzle": "^0.2.2"
@@ -2919,6 +2877,7 @@
2919
2877
  "version": "1.6.2",
2920
2878
  "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
2921
2879
  "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
2880
+ "dev": true,
2922
2881
  "requires": {
2923
2882
  "buffer-from": "^1.0.0",
2924
2883
  "inherits": "^2.0.3",
@@ -2936,12 +2895,6 @@
2936
2895
  "proto-list": "~1.2.1"
2937
2896
  }
2938
2897
  },
2939
- "console-control-strings": {
2940
- "version": "1.1.0",
2941
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
2942
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
2943
- "optional": true
2944
- },
2945
2898
  "content-disposition": {
2946
2899
  "version": "0.5.3",
2947
2900
  "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
@@ -3424,12 +3377,6 @@
3424
3377
  "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3425
3378
  "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
3426
3379
  },
3427
- "delegates": {
3428
- "version": "1.0.0",
3429
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
3430
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
3431
- "optional": true
3432
- },
3433
3380
  "depd": {
3434
3381
  "version": "1.1.2",
3435
3382
  "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -3554,9 +3501,9 @@
3554
3501
  "integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ=="
3555
3502
  },
3556
3503
  "electron-to-chromium": {
3557
- "version": "1.4.4",
3558
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz",
3559
- "integrity": "sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg==",
3504
+ "version": "1.4.25",
3505
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz",
3506
+ "integrity": "sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg==",
3560
3507
  "dev": true
3561
3508
  },
3562
3509
  "emoji-regex": {
@@ -4391,9 +4338,9 @@
4391
4338
  "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
4392
4339
  },
4393
4340
  "follow-redirects": {
4394
- "version": "1.14.5",
4395
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz",
4396
- "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA=="
4341
+ "version": "1.14.6",
4342
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz",
4343
+ "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A=="
4397
4344
  },
4398
4345
  "for-in": {
4399
4346
  "version": "1.0.2",
@@ -4541,60 +4488,8 @@
4541
4488
  "function-bind": {
4542
4489
  "version": "1.1.1",
4543
4490
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
4544
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
4545
- },
4546
- "gauge": {
4547
- "version": "2.7.4",
4548
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
4549
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
4550
- "optional": true,
4551
- "requires": {
4552
- "aproba": "^1.0.3",
4553
- "console-control-strings": "^1.0.0",
4554
- "has-unicode": "^2.0.0",
4555
- "object-assign": "^4.1.0",
4556
- "signal-exit": "^3.0.0",
4557
- "string-width": "^1.0.1",
4558
- "strip-ansi": "^3.0.1",
4559
- "wide-align": "^1.1.0"
4560
- },
4561
- "dependencies": {
4562
- "ansi-regex": {
4563
- "version": "2.1.1",
4564
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
4565
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
4566
- "optional": true
4567
- },
4568
- "is-fullwidth-code-point": {
4569
- "version": "1.0.0",
4570
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
4571
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
4572
- "optional": true,
4573
- "requires": {
4574
- "number-is-nan": "^1.0.0"
4575
- }
4576
- },
4577
- "string-width": {
4578
- "version": "1.0.2",
4579
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4580
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4581
- "optional": true,
4582
- "requires": {
4583
- "code-point-at": "^1.0.0",
4584
- "is-fullwidth-code-point": "^1.0.0",
4585
- "strip-ansi": "^3.0.0"
4586
- }
4587
- },
4588
- "strip-ansi": {
4589
- "version": "3.0.1",
4590
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
4591
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
4592
- "optional": true,
4593
- "requires": {
4594
- "ansi-regex": "^2.0.0"
4595
- }
4596
- }
4597
- }
4491
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
4492
+ "dev": true
4598
4493
  },
4599
4494
  "gaze": {
4600
4495
  "version": "1.1.3",
@@ -4980,6 +4875,7 @@
4980
4875
  "version": "1.0.3",
4981
4876
  "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
4982
4877
  "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
4878
+ "dev": true,
4983
4879
  "requires": {
4984
4880
  "function-bind": "^1.1.1"
4985
4881
  }
@@ -5030,12 +4926,6 @@
5030
4926
  "has-symbols": "^1.0.2"
5031
4927
  }
5032
4928
  },
5033
- "has-unicode": {
5034
- "version": "2.0.1",
5035
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
5036
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
5037
- "optional": true
5038
- },
5039
4929
  "has-value": {
5040
4930
  "version": "1.0.0",
5041
4931
  "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -5109,7 +4999,8 @@
5109
4999
  "hosted-git-info": {
5110
5000
  "version": "2.8.9",
5111
5001
  "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
5112
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
5002
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
5003
+ "dev": true
5113
5004
  },
5114
5005
  "html-encoding-sniffer": {
5115
5006
  "version": "1.0.2",
@@ -5479,6 +5370,7 @@
5479
5370
  "version": "2.8.0",
5480
5371
  "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
5481
5372
  "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
5373
+ "dev": true,
5482
5374
  "requires": {
5483
5375
  "has": "^1.0.3"
5484
5376
  }
@@ -5584,9 +5476,9 @@
5584
5476
  "dev": true
5585
5477
  },
5586
5478
  "is-negative-zero": {
5587
- "version": "2.0.1",
5588
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
5589
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
5479
+ "version": "2.0.2",
5480
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
5481
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
5590
5482
  "dev": true
5591
5483
  },
5592
5484
  "is-number": {
@@ -5718,12 +5610,12 @@
5718
5610
  "dev": true
5719
5611
  },
5720
5612
  "is-weakref": {
5721
- "version": "1.0.1",
5722
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz",
5723
- "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==",
5613
+ "version": "1.0.2",
5614
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
5615
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
5724
5616
  "dev": true,
5725
5617
  "requires": {
5726
- "call-bind": "^1.0.0"
5618
+ "call-bind": "^1.0.2"
5727
5619
  }
5728
5620
  },
5729
5621
  "is-windows": {
@@ -6116,9 +6008,9 @@
6116
6008
  "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
6117
6009
  },
6118
6010
  "json-schema": {
6119
- "version": "0.2.3",
6120
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
6121
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
6011
+ "version": "0.4.0",
6012
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
6013
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
6122
6014
  },
6123
6015
  "json-schema-traverse": {
6124
6016
  "version": "0.4.1",
@@ -6178,13 +6070,13 @@
6178
6070
  }
6179
6071
  },
6180
6072
  "jsprim": {
6181
- "version": "1.4.1",
6182
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
6183
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
6073
+ "version": "1.4.2",
6074
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
6075
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
6184
6076
  "requires": {
6185
6077
  "assert-plus": "1.0.0",
6186
6078
  "extsprintf": "1.3.0",
6187
- "json-schema": "0.2.3",
6079
+ "json-schema": "0.4.0",
6188
6080
  "verror": "1.10.0"
6189
6081
  }
6190
6082
  },
@@ -6880,19 +6772,6 @@
6880
6772
  "string-width": "^3.1.0",
6881
6773
  "strip-ansi": "^5.2.0",
6882
6774
  "wrap-ansi": "^5.1.0"
6883
- },
6884
- "dependencies": {
6885
- "string-width": {
6886
- "version": "3.1.0",
6887
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
6888
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
6889
- "dev": true,
6890
- "requires": {
6891
- "emoji-regex": "^7.0.1",
6892
- "is-fullwidth-code-point": "^2.0.0",
6893
- "strip-ansi": "^5.1.0"
6894
- }
6895
- }
6896
6775
  }
6897
6776
  },
6898
6777
  "color-convert": {
@@ -7076,6 +6955,17 @@
7076
6955
  "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
7077
6956
  "dev": true
7078
6957
  },
6958
+ "string-width": {
6959
+ "version": "3.1.0",
6960
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
6961
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
6962
+ "dev": true,
6963
+ "requires": {
6964
+ "emoji-regex": "^7.0.1",
6965
+ "is-fullwidth-code-point": "^2.0.0",
6966
+ "strip-ansi": "^5.1.0"
6967
+ }
6968
+ },
7079
6969
  "strip-ansi": {
7080
6970
  "version": "5.2.0",
7081
6971
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -7118,15 +7008,6 @@
7118
7008
  "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
7119
7009
  "dev": true
7120
7010
  },
7121
- "wide-align": {
7122
- "version": "1.1.3",
7123
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
7124
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
7125
- "dev": true,
7126
- "requires": {
7127
- "string-width": "^1.0.2 || 2"
7128
- }
7129
- },
7130
7011
  "wrap-ansi": {
7131
7012
  "version": "5.1.0",
7132
7013
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
@@ -7136,19 +7017,6 @@
7136
7017
  "ansi-styles": "^3.2.0",
7137
7018
  "string-width": "^3.0.0",
7138
7019
  "strip-ansi": "^5.0.0"
7139
- },
7140
- "dependencies": {
7141
- "string-width": {
7142
- "version": "3.1.0",
7143
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
7144
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
7145
- "dev": true,
7146
- "requires": {
7147
- "emoji-regex": "^7.0.1",
7148
- "is-fullwidth-code-point": "^2.0.0",
7149
- "strip-ansi": "^5.1.0"
7150
- }
7151
- }
7152
7020
  }
7153
7021
  },
7154
7022
  "y18n": {
@@ -7173,19 +7041,6 @@
7173
7041
  "which-module": "^2.0.0",
7174
7042
  "y18n": "^4.0.0",
7175
7043
  "yargs-parser": "^13.1.2"
7176
- },
7177
- "dependencies": {
7178
- "string-width": {
7179
- "version": "3.1.0",
7180
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
7181
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
7182
- "dev": true,
7183
- "requires": {
7184
- "emoji-regex": "^7.0.1",
7185
- "is-fullwidth-code-point": "^2.0.0",
7186
- "strip-ansi": "^5.1.0"
7187
- }
7188
- }
7189
7044
  }
7190
7045
  },
7191
7046
  "yargs-parser": {
@@ -7358,6 +7213,7 @@
7358
7213
  "version": "2.5.0",
7359
7214
  "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
7360
7215
  "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
7216
+ "dev": true,
7361
7217
  "requires": {
7362
7218
  "hosted-git-info": "^2.1.4",
7363
7219
  "resolve": "^1.10.0",
@@ -7368,7 +7224,8 @@
7368
7224
  "semver": {
7369
7225
  "version": "5.7.1",
7370
7226
  "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
7371
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
7227
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
7228
+ "dev": true
7372
7229
  }
7373
7230
  }
7374
7231
  },
@@ -10488,50 +10345,6 @@
10488
10345
  "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz",
10489
10346
  "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU="
10490
10347
  },
10491
- "npm-package-arg": {
10492
- "version": "6.1.1",
10493
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz",
10494
- "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==",
10495
- "requires": {
10496
- "hosted-git-info": "^2.7.1",
10497
- "osenv": "^0.1.5",
10498
- "semver": "^5.6.0",
10499
- "validate-npm-package-name": "^3.0.0"
10500
- },
10501
- "dependencies": {
10502
- "semver": {
10503
- "version": "5.7.1",
10504
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
10505
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
10506
- }
10507
- }
10508
- },
10509
- "npm-registry-client": {
10510
- "version": "8.6.0",
10511
- "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz",
10512
- "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==",
10513
- "requires": {
10514
- "concat-stream": "^1.5.2",
10515
- "graceful-fs": "^4.1.6",
10516
- "normalize-package-data": "~1.0.1 || ^2.0.0",
10517
- "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
10518
- "npmlog": "2 || ^3.1.0 || ^4.0.0",
10519
- "once": "^1.3.3",
10520
- "request": "^2.74.0",
10521
- "retry": "^0.10.0",
10522
- "safe-buffer": "^5.1.1",
10523
- "semver": "2 >=2.2.1 || 3.x || 4 || 5",
10524
- "slide": "^1.1.3",
10525
- "ssri": "^5.2.4"
10526
- },
10527
- "dependencies": {
10528
- "semver": {
10529
- "version": "5.7.1",
10530
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
10531
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
10532
- }
10533
- }
10534
- },
10535
10348
  "npm-run-path": {
10536
10349
  "version": "4.0.1",
10537
10350
  "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@@ -10540,22 +10353,11 @@
10540
10353
  "path-key": "^3.0.0"
10541
10354
  }
10542
10355
  },
10543
- "npmlog": {
10544
- "version": "4.1.2",
10545
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
10546
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
10547
- "optional": true,
10548
- "requires": {
10549
- "are-we-there-yet": "~1.1.2",
10550
- "console-control-strings": "~1.1.0",
10551
- "gauge": "~2.7.3",
10552
- "set-blocking": "~2.0.0"
10553
- }
10554
- },
10555
10356
  "number-is-nan": {
10556
10357
  "version": "1.0.1",
10557
10358
  "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
10558
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
10359
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
10360
+ "dev": true
10559
10361
  },
10560
10362
  "nwsapi": {
10561
10363
  "version": "2.2.0",
@@ -10844,9 +10646,9 @@
10844
10646
  "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg=="
10845
10647
  },
10846
10648
  "object-inspect": {
10847
- "version": "1.11.0",
10848
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
10849
- "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
10649
+ "version": "1.12.0",
10650
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
10651
+ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
10850
10652
  "dev": true
10851
10653
  },
10852
10654
  "object-keys": {
@@ -11093,11 +10895,6 @@
11093
10895
  "readable-stream": "^2.0.1"
11094
10896
  }
11095
10897
  },
11096
- "os-homedir": {
11097
- "version": "1.0.2",
11098
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
11099
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
11100
- },
11101
10898
  "os-locale": {
11102
10899
  "version": "1.4.0",
11103
10900
  "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
@@ -11112,15 +10909,6 @@
11112
10909
  "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
11113
10910
  "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
11114
10911
  },
11115
- "osenv": {
11116
- "version": "0.1.5",
11117
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
11118
- "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
11119
- "requires": {
11120
- "os-homedir": "^1.0.0",
11121
- "os-tmpdir": "^1.0.0"
11122
- }
11123
- },
11124
10912
  "p-finally": {
11125
10913
  "version": "1.0.0",
11126
10914
  "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@@ -11322,7 +11110,8 @@
11322
11110
  "path-parse": {
11323
11111
  "version": "1.0.7",
11324
11112
  "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
11325
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
11113
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
11114
+ "dev": true
11326
11115
  },
11327
11116
  "path-root": {
11328
11117
  "version": "0.1.1",
@@ -12060,6 +11849,7 @@
12060
11849
  "version": "1.20.0",
12061
11850
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
12062
11851
  "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
11852
+ "dev": true,
12063
11853
  "requires": {
12064
11854
  "is-core-module": "^2.2.0",
12065
11855
  "path-parse": "^1.0.6"
@@ -12109,11 +11899,6 @@
12109
11899
  "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
12110
11900
  "dev": true
12111
11901
  },
12112
- "retry": {
12113
- "version": "0.10.1",
12114
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
12115
- "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q="
12116
- },
12117
11902
  "rgb2hex": {
12118
11903
  "version": "0.1.10",
12119
11904
  "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz",
@@ -12293,7 +12078,8 @@
12293
12078
  "set-blocking": {
12294
12079
  "version": "2.0.0",
12295
12080
  "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
12296
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
12081
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
12082
+ "dev": true
12297
12083
  },
12298
12084
  "set-value": {
12299
12085
  "version": "2.0.1",
@@ -12413,11 +12199,6 @@
12413
12199
  "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
12414
12200
  "dev": true
12415
12201
  },
12416
- "slide": {
12417
- "version": "1.1.6",
12418
- "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
12419
- "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
12420
- },
12421
12202
  "smart-buffer": {
12422
12203
  "version": "4.2.0",
12423
12204
  "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
@@ -12706,6 +12487,7 @@
12706
12487
  "version": "3.1.1",
12707
12488
  "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
12708
12489
  "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
12490
+ "dev": true,
12709
12491
  "requires": {
12710
12492
  "spdx-expression-parse": "^3.0.0",
12711
12493
  "spdx-license-ids": "^3.0.0"
@@ -12714,12 +12496,14 @@
12714
12496
  "spdx-exceptions": {
12715
12497
  "version": "2.3.0",
12716
12498
  "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
12717
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
12499
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
12500
+ "dev": true
12718
12501
  },
12719
12502
  "spdx-expression-parse": {
12720
12503
  "version": "3.0.1",
12721
12504
  "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
12722
12505
  "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
12506
+ "dev": true,
12723
12507
  "requires": {
12724
12508
  "spdx-exceptions": "^2.1.0",
12725
12509
  "spdx-license-ids": "^3.0.0"
@@ -12728,7 +12512,8 @@
12728
12512
  "spdx-license-ids": {
12729
12513
  "version": "3.0.11",
12730
12514
  "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
12731
- "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
12515
+ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==",
12516
+ "dev": true
12732
12517
  },
12733
12518
  "split-string": {
12734
12519
  "version": "3.1.0",
@@ -12761,14 +12546,6 @@
12761
12546
  "tweetnacl": "~0.14.0"
12762
12547
  }
12763
12548
  },
12764
- "ssri": {
12765
- "version": "5.3.0",
12766
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
12767
- "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
12768
- "requires": {
12769
- "safe-buffer": "^5.1.1"
12770
- }
12771
- },
12772
12549
  "stack-trace": {
12773
12550
  "version": "0.0.10",
12774
12551
  "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
@@ -13349,7 +13126,8 @@
13349
13126
  "typedarray": {
13350
13127
  "version": "0.0.6",
13351
13128
  "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
13352
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
13129
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
13130
+ "dev": true
13353
13131
  },
13354
13132
  "typedarray-to-buffer": {
13355
13133
  "version": "3.1.5",
@@ -13579,6 +13357,7 @@
13579
13357
  "version": "3.0.4",
13580
13358
  "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
13581
13359
  "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
13360
+ "dev": true,
13582
13361
  "requires": {
13583
13362
  "spdx-correct": "^3.0.0",
13584
13363
  "spdx-expression-parse": "^3.0.0"
@@ -13806,12 +13585,12 @@
13806
13585
  "dev": true
13807
13586
  },
13808
13587
  "wide-align": {
13809
- "version": "1.1.5",
13810
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
13811
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
13812
- "optional": true,
13588
+ "version": "1.1.3",
13589
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
13590
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
13591
+ "dev": true,
13813
13592
  "requires": {
13814
- "string-width": "^1.0.2 || 2 || 3 || 4"
13593
+ "string-width": "^1.0.2 || 2"
13815
13594
  }
13816
13595
  },
13817
13596
  "winston": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testim/testim-cli",
3
- "version": "3.205.0",
3
+ "version": "3.211.0",
4
4
  "description": "Command line interface for running Testing on your CI",
5
5
  "author": "Oren Rubin",
6
6
  "contributors": [{
@@ -51,7 +51,7 @@
51
51
  "@applitools/eyes-sdk-core": "12.23.12",
52
52
  "@applitools/visual-grid-client": "15.8.31",
53
53
  "@testim/coralogix-logger": "1.1.27-beta",
54
- "@testim/webdriverio": "0.0.3",
54
+ "@testim/webdriverio": "0.0.4",
55
55
  "abort-controller": "3.0.0",
56
56
  "ajv": "6.12.2",
57
57
  "analytics-node": "5.0.0",
@@ -60,8 +60,6 @@
60
60
  "bluebird": "3.7.2",
61
61
  "bluebird-retry": "0.11.0",
62
62
  "body-parser": "1.19.0",
63
- "winston": "3.3.3",
64
- "winston-transport": "4.4.0",
65
63
  "chalk": "4.1.0",
66
64
  "chrome-launcher": "0.13.4",
67
65
  "combine-source-map": "0.8.0",
@@ -89,7 +87,6 @@
89
87
  "moment": "2.25.3",
90
88
  "ms": "2.1.2",
91
89
  "npm": "6.14.11",
92
- "npm-registry-client": "8.6.0",
93
90
  "object-hash": "2.0.3",
94
91
  "ora": "4.0.4",
95
92
  "pako": "1.0.11",
@@ -107,6 +104,8 @@
107
104
  "threads": "0.12.0",
108
105
  "ua-parser-js": "0.7.28",
109
106
  "validate-npm-package-name": "3.0.0",
107
+ "winston": "3.3.3",
108
+ "winston-transport": "4.4.0",
110
109
  "ws": "8.2.3",
111
110
  "xml2js": "0.4.23",
112
111
  "yaml": "1.10.0"
@@ -4,7 +4,6 @@ const TabService = require('./services/tabService');
4
4
  const PortSelector = require('./services/portSelector');
5
5
  const windowCreationListener = require('./services/windowCreationListener');
6
6
  const CookieUtils = require('./utils/cookieUtils');
7
- const downloadsApiUtils = require('./utils/downloadsApiUtils');
8
7
  const FrameLocator = require('./services/frameLocator');
9
8
  const Promise = require('bluebird');
10
9
  const { isDebuggerConnected } = require('../commons/detectDebugger');
@@ -46,11 +45,21 @@ class SeleniumTestPlayer {
46
45
 
47
46
  this.tabService.createSesion(id);
48
47
 
49
- this.sessionPlayer = new player(id, this.tabService, CookieUtils(this.driver),
50
- windowCreationListener, FrameLocator(this.driver), PortSelector,
51
- null, downloadsApiUtils, stepActionUtils,
52
- this.stepActionFactory, this.playbackTimeoutCalculator, testResultService.getSocket(),
53
- automationMode);
48
+ this.sessionPlayer = new player(
49
+ id,
50
+ this.tabService,
51
+ CookieUtils(this.driver),
52
+ windowCreationListener,
53
+ FrameLocator(this.driver),
54
+ PortSelector,
55
+ null,
56
+ null /* Not in use, placeholder for the order of arguments */,
57
+ stepActionUtils,
58
+ this.stepActionFactory,
59
+ this.playbackTimeoutCalculator,
60
+ testResultService.getSocket(),
61
+ automationMode,
62
+ );
54
63
 
55
64
  if (this.sessionPlayer.setShouldMonitorPerformance) {
56
65
  this.sessionPlayer.setShouldMonitorPerformance(shouldMonitorPerformance);
@@ -290,7 +290,7 @@ ImageCaptureUtils.prototype = {
290
290
  }
291
291
 
292
292
  return Promise.all([windowUtil.getFullPageSize(), windowUtil.getViewportSize()])
293
- .spread((fullPageSize, viewPortSize) => createStitchImage(fullPageSize, viewPortSize));
293
+ .then(([fullPageSize, viewPortSize]) => createStitchImage(fullPageSize, viewPortSize));
294
294
  },
295
295
  };
296
296
 
@@ -1,10 +1,10 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  const Promise = require('bluebird');
4
4
  const utils = require('../../utils');
5
5
 
6
6
  class ScreenshotUtils {
7
- constructor(tabId, driver, options = { takeScreenshots: true}){
7
+ constructor(tabId, driver, options = { takeScreenshots: true }) {
8
8
  this.tabId = tabId;
9
9
  this.driver = driver;
10
10
  this.options = options;
@@ -30,12 +30,12 @@ class ScreenshotUtils {
30
30
  const devicePixelRatioPromise = this.currentDevicePixelRatio ? Promise.resolve(this.currentDevicePixelRatio) : this.getDevicePixelRatio();
31
31
  const getScreenshot = () => Promise.all([devicePixelRatioPromise, this.driver.takeScreenshot()]);
32
32
  return utils.runWithRetries(getScreenshot, MAX_RETRY_COUNT, SCREENSHOT_RETRY_DELAY)
33
- .spread((devicePixelRatio, image) => {
33
+ .then(([devicePixelRatio, image]) => {
34
34
  const base64 = image ? image.value : '';
35
- const dataUrl = "data:image/png;base64," + this.base64AddPadding(base64.replace(/[\r\n]/g, ''));
35
+ const dataUrl = `data:image/png;base64,${this.base64AddPadding(base64.replace(/[\r\n]/g, ''))}`;
36
36
  return {
37
37
  image: dataUrl,
38
- devicePixelRatio: devicePixelRatio
38
+ devicePixelRatio,
39
39
  };
40
40
  });
41
41
  }
@@ -52,7 +52,7 @@ class ScreenshotUtils {
52
52
  return this.driver.executeJS(devicePixelRatioJS).then(result => Promise.resolve(result.value));
53
53
  }
54
54
 
55
- forcePixelRatio(forceRatio = 1){
55
+ forcePixelRatio(forceRatio = 1) {
56
56
  this.currentDevicePixelRatio = forceRatio;
57
57
  return Promise.resolve();
58
58
  }
@@ -74,8 +74,8 @@ class StepActionUtils {
74
74
  return this.cookieUtils.set(cookieObject).then(cookie => [cookie]);
75
75
  }
76
76
 
77
- getNextDynamicParent(frameHandler, parentId, contextMatchThreshold, nextParentId, firstChildValues) {
78
- const code = `return ${codeSnippets.getNextDynamicParent(parentId, firstChildValues, contextMatchThreshold, nextParentId)}`;
77
+ getNextDynamicParent(frameHandler, dynamicParentOptions) {
78
+ const code = `return ${codeSnippets.getNextDynamicParent(dynamicParentOptions)}`;
79
79
  return this.driver.executeJS(code).then(res => res.value);
80
80
  }
81
81
  }
package/runOptions.js CHANGED
@@ -287,6 +287,8 @@ program
287
287
  .option('--tunnel [tunnel]', 'enable tunnel')
288
288
  .option('--tunnel-port [tunnel-port]', 'tunnel port address')
289
289
  .option('--tunnel-host-header [tunnel-host-header]', 'tunnel host header')
290
+ .option('--tunnel-region [tunnel-region]', 'ngrok tunnel region')
291
+ .option('--tunnel-diagnostics', 'collect ngrok tunnel diagnostics')
290
292
  .option('--tunnel-use-http-address [tunnel-use-http-address]', 'use http:// address instead of https://', false)
291
293
  .option('--external-lambdatest-tunnel-id [tunnel-id]', 'use existing lambdatest tunnel id')
292
294
  .option('--external-lambdatest-use-wss', 'use wss instead of ssh for LT', false)
@@ -527,14 +529,9 @@ module.exports = {
527
529
  return Promise.reject(new ArgError('missing --tunnel parameter'));
528
530
  }
529
531
 
530
- if (!program.tunnel && program.tunnelPort) {
532
+ if (!program.tunnel && [program.tunnelPort, program.tunnelHostHeader, program.tunnelRegion, program.tunnelDiagnostics].some(Boolean)) {
531
533
  return Promise.reject(new ArgError('missing --tunnel parameter'));
532
534
  }
533
-
534
- if (!program.tunnel && program.tunnelHostHeader) {
535
- return Promise.reject(new ArgError('missing --tunnel parameter'));
536
- }
537
-
538
535
  if (program.chromeExtraPrefs) {
539
536
  try {
540
537
  chromeExtraPrefs = require(path.join(process.cwd(), program.chromeExtraPrefs));
@@ -1089,6 +1086,8 @@ module.exports = {
1089
1086
  tunnel: program.tunnel,
1090
1087
  tunnelPort: program.tunnelPort,
1091
1088
  tunnelHostHeader: program.tunnelHostHeader,
1089
+ tunnelRegion: program.tunnelRegion,
1090
+ tunnelDiagnostics: program.tunnelDiagnostics,
1092
1091
  tunnelUseHttpAddress: program.tunnelUseHttpAddress,
1093
1092
  externalLambdatestTunnelId: program.externalLambdatestTunnelId,
1094
1093
  externalLambdatestUseWss: program.externalLambdatestUseWss || false,
@@ -178,10 +178,11 @@ class TestPlanRunner {
178
178
  const configName = configs && configs.length === 1 ? configs[0] : null;
179
179
 
180
180
  const isCodeMode = tpOptions.files.length > 0;
181
+ const testNames = tpOptions.lightweightMode && tpOptions.lightweightMode.onlyTestIdsNoSuite ? [] : _.concat(beforeTests, tests, afterTests).map(test => test.name);
181
182
 
182
183
  const testListInfoPromise = tpOptions.lightweightMode && tpOptions.lightweightMode.onlyTestIdsNoSuite ?
183
184
  { beforeTests, tests, afterTests } :
184
- testStatus.executionStart(executionId, projectId, this.startTime, testPlanName);
185
+ testStatus.executionStart(executionId, projectId, this.startTime, testPlanName, testNames);
185
186
  let childTestResults;
186
187
  if (isCodeMode) {
187
188
  childTestResults = Bluebird.try(async () => {
package/testRunStatus.js CHANGED
@@ -15,6 +15,7 @@ const _ = require('lodash');
15
15
  const { registerExitHook } = require('./processHandler');
16
16
  const { calculateCoverage } = require('./coverage/jsCoverage');
17
17
  const featureAvailabilityService = require('./commons/featureAvailabilityService');
18
+ const featureFlags = require('./commons/featureFlags');
18
19
  const { mapFilesToLocalDrive } = require('./services/localRCASaver');
19
20
 
20
21
  const gitBranch = utils.getEnvironmentGitBranch();
@@ -333,7 +334,7 @@ RunStatus.prototype.calcTestRunStatus = function () {
333
334
  }, {});
334
335
  };
335
336
 
336
- RunStatus.prototype.executionStart = function (executionId, projectId, startTime, testPlanName) {
337
+ RunStatus.prototype.executionStart = function (executionId, projectId, startTime, testPlanName, testNames) {
337
338
  logger.info('execution started', { executionId });
338
339
  const { options } = this;
339
340
  const { remoteRunId, projectData } = options;
@@ -352,8 +353,11 @@ RunStatus.prototype.executionStart = function (executionId, projectId, startTime
352
353
  ]));
353
354
 
354
355
  this.startTime = startTime || Date.now();
355
-
356
- return runHook(options.beforeSuite, { projectId, executionId })
356
+ const runHooksProps = { projectId, executionId };
357
+ if (featureFlags.flags.testNamesToBeforeSuiteHook.isEnabled()) {
358
+ runHooksProps.testNames = testNames;
359
+ }
360
+ return runHook(options.beforeSuite, runHooksProps)
357
361
  .then(params => {
358
362
  const overrideTestDataBuilder = new OverrideTestDataBuilder(params, _.cloneDeep(this.testInfoList), projectId);
359
363
  this.testInfoList = overrideTestDataBuilder.overrideTestData();
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- const Promise = require('bluebird');
4
-
5
- // Only for extension mode
6
- class DownloadsApiUtils {
7
-
8
- removeAndErase() {
9
- return Promise.resolve();
10
- }
11
- }
12
-
13
- module.exports = new DownloadsApiUtils();