@wdio/browserstack-service 7.38.1 → 7.40.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.
@@ -10,6 +10,10 @@ declare class Percy {
10
10
  _isApp: boolean;
11
11
  _projectName: string | undefined;
12
12
  isProcessRunning: boolean;
13
+ percyCaptureMode?: string;
14
+ buildId: number | null;
15
+ percyAutoEnabled: boolean;
16
+ percy: boolean;
13
17
  constructor(options: BrowserstackConfig & Options.Testrunner, config: Options.Testrunner, bsConfig: UserConfig);
14
18
  private getBinaryPath;
15
19
  private sleep;
@@ -1 +1 @@
1
- {"version":3,"file":"Percy.d.ts","sourceRoot":"","sources":["../../src/Percy/Percy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,cAAM,KAAK;IACP,QAAQ,EAAE,MAAM,CAAiC;IACjD,QAAQ,EAAE,MAAM,CAA8D;IAE9E,WAAW,EAAE,MAAM,GAAG,GAAG,CAAO;IAChC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAA;IACjD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,KAAK,EAAE,GAAG,CAAO;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,MAAM,GAAG,SAAS,CAAY;IAE5C,gBAAgB,UAAQ;gBAEZ,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU;YAOhG,aAAa;YAQb,KAAK;IAIb,WAAW;IAWX,KAAK;IA4CL,IAAI;IAWV,SAAS;IAIH,eAAe;IAsBf,iBAAiB;CA8B1B;AAED,eAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"Percy.d.ts","sourceRoot":"","sources":["../../src/Percy/Percy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,cAAM,KAAK;IACP,QAAQ,EAAE,MAAM,CAAiC;IACjD,QAAQ,EAAE,MAAM,CAA8D;IAE9E,WAAW,EAAE,MAAM,GAAG,GAAG,CAAO;IAChC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAA;IACjD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAA;IAC3B,KAAK,EAAE,GAAG,CAAO;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,MAAM,GAAG,SAAS,CAAY;IAE5C,gBAAgB,UAAQ;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAO;IAC7B,gBAAgB,UAAQ;IACxB,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU;YAShG,aAAa;YAQb,KAAK;IAIb,WAAW;IAaX,KAAK;IA2CL,IAAI;IAWV,SAAS;IAIH,eAAe;IAoCf,iBAAiB;CA8B1B;AAED,eAAe,KAAK,CAAA"}
@@ -13,16 +13,21 @@ const PercyBinary_1 = __importDefault(require("./PercyBinary"));
13
13
  const logDir = 'logs';
14
14
  class Percy {
15
15
  constructor(options, config, bsConfig) {
16
+ var _a;
16
17
  this._logfile = node_path_1.default.join(logDir, 'percy.log');
17
18
  this._address = process.env.PERCY_SERVER_ADDRESS || 'http://127.0.0.1:5338';
18
19
  this._binaryPath = null;
19
20
  this._proc = null;
20
21
  this._projectName = undefined;
21
22
  this.isProcessRunning = false;
23
+ this.buildId = null;
24
+ this.percyAutoEnabled = false;
22
25
  this._options = options;
23
26
  this._config = config;
24
27
  this._isApp = Boolean(options.app);
25
28
  this._projectName = bsConfig.projectName;
29
+ this.percyCaptureMode = options.percyCaptureMode;
30
+ this.percy = (_a = options.percy) !== null && _a !== void 0 ? _a : false;
26
31
  }
27
32
  async getBinaryPath() {
28
33
  if (!this._binaryPath) {
@@ -38,6 +43,8 @@ class Percy {
38
43
  try {
39
44
  const resp = await (0, util_1.nodeRequest)('GET', 'percy/healthcheck', null, this._address);
40
45
  if (resp) {
46
+ // @ts-ignore
47
+ this.buildId = resp.build.id;
41
48
  return true;
42
49
  }
43
50
  }
@@ -92,11 +99,28 @@ class Percy {
92
99
  const projectName = this._projectName;
93
100
  try {
94
101
  const type = this._isApp ? 'app' : 'automate';
95
- const response = await (0, util_1.nodeRequest)('GET', `api/app_percy/get_project_token?name=${projectName}&type=${type}`, {
102
+ const params = new URLSearchParams();
103
+ if (projectName) {
104
+ params.set('name', projectName);
105
+ }
106
+ if (type) {
107
+ params.set('type', type);
108
+ }
109
+ if (this._options.percyCaptureMode) {
110
+ params.set('percy_capture_mode', this._options.percyCaptureMode);
111
+ }
112
+ params.set('percy', String(this._options.percy));
113
+ const query = `api/app_percy/get_project_token?${params.toString()}`;
114
+ const response = await (0, util_1.nodeRequest)('GET', query, {
96
115
  username: (0, util_1.getBrowserStackUser)(this._config),
97
116
  password: (0, util_1.getBrowserStackKey)(this._config)
98
117
  }, 'https://api.browserstack.com');
99
118
  PercyLogger_1.PercyLogger.debug('Percy fetch token success : ' + response.token);
119
+ if (!this._options.percy && response.success) {
120
+ this.percyAutoEnabled = response.success;
121
+ }
122
+ this.percyCaptureMode = response.percy_capture_mode;
123
+ this.percy = response.success;
100
124
  return response.token;
101
125
  }
102
126
  catch (err) {
package/build/config.d.ts CHANGED
@@ -10,11 +10,14 @@ declare class BrowserStackConfig {
10
10
  buildIdentifier?: string;
11
11
  testObservability: TestOpsConfig;
12
12
  percy: boolean;
13
+ percyCaptureMode?: string;
13
14
  accessibility: boolean;
14
15
  app?: string | AppConfig;
15
16
  private static _instance;
16
17
  appAutomate: boolean;
17
18
  automate: boolean;
19
+ percyBuildId?: number | null;
20
+ isPercyAutoEnabled: boolean;
18
21
  funnelDataSent: boolean;
19
22
  constructor(options: BrowserstackConfig & Options.Testrunner, config: Options.Testrunner);
20
23
  sentFunnelData(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,aAAa,MAAM,yBAAyB,CAAA;AAGnD,cAAM,kBAAkB;IACpB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,GAAG,kBAAkB;IAO/G,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,aAAa,CAAA;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,GAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoB;IACrC,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAQ;gBAE1B,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAaxF,cAAc;CAIjB;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,aAAa,MAAM,yBAAyB,CAAA;AAGnD,cAAM,kBAAkB;IACpB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,GAAG,kBAAkB;IAO/G,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,aAAa,CAAA;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,GAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoB;IACrC,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,kBAAkB,UAAQ;IAC1B,cAAc,EAAE,OAAO,CAAQ;gBAE1B,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAaxF,cAAc;CAIjB;AAED,eAAe,kBAAkB,CAAA"}
package/build/config.js CHANGED
@@ -13,6 +13,7 @@ class BrowserStackConfig {
13
13
  return this._instance;
14
14
  }
15
15
  constructor(options, config) {
16
+ this.isPercyAutoEnabled = false;
16
17
  this.funnelDataSent = false;
17
18
  this.framework = config.framework;
18
19
  this.userName = config.user;
@@ -2,7 +2,7 @@ import type { Capabilities, Frameworks } from '@wdio/types';
2
2
  import type { Browser, MultiRemoteBrowser } from 'webdriverio';
3
3
  import type { BeforeCommandArgs, AfterCommandArgs } from '@wdio/reporter';
4
4
  import type { Feature, Scenario, CucumberHook, CucumberHookParams, Pickle, ITestCaseHookParameter } from './cucumber-types';
5
- import type { TestData, TestMeta, CurrentRunInfo, StdLog } from './types';
5
+ import type { TestData, TestMeta, CurrentRunInfo, StdLog, BrowserstackConfig, BrowserstackOptions } from './types';
6
6
  declare class _InsightsHandler {
7
7
  private _browser;
8
8
  private _framework?;
@@ -16,7 +16,8 @@ declare class _InsightsHandler {
16
16
  private _cucumberData;
17
17
  private _userCaps?;
18
18
  private listener;
19
- constructor(_browser: Browser<'async'> | MultiRemoteBrowser<'async'>, browserCaps?: Capabilities.Capabilities, isAppAutomate?: boolean, sessionId?: string, _framework?: string | undefined, _userCaps?: Capabilities.RemoteCapability);
19
+ constructor(_browser: Browser<'async'> | MultiRemoteBrowser<'async'>, browserCaps?: Capabilities.Capabilities, sessionId?: string, _framework?: string | undefined, _userCaps?: Capabilities.RemoteCapability, _options?: BrowserstackConfig & BrowserstackOptions);
20
+ _isAppAutomate(): boolean;
20
21
  registerListeners(): void;
21
22
  before(): Promise<void>;
22
23
  beforeHook(test: Frameworks.Test | CucumberHook | undefined, context: any): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"insights-handler.d.ts","sourceRoot":"","sources":["../src/insights-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights-handler.d.ts","sourceRoot":"","sources":["../src/insights-handler.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ const listener_1 = __importDefault(require("./testOps/listener"));
12
12
  const constants_1 = require("./constants");
13
13
  const log = (0, logger_1.default)('@wdio/browserstack-service');
14
14
  class _InsightsHandler {
15
- constructor(_browser, browserCaps, isAppAutomate, sessionId, _framework, _userCaps) {
15
+ constructor(_browser, browserCaps, sessionId, _framework, _userCaps, _options) {
16
16
  this._browser = _browser;
17
17
  this._framework = _framework;
18
18
  this._tests = {};
@@ -43,17 +43,23 @@ class _InsightsHandler {
43
43
  log.debug(`Exception in uploading log data to Observability with error : ${error}`);
44
44
  }
45
45
  };
46
+ this._userCaps = _userCaps;
46
47
  this._platformMeta = {
47
48
  browserName: browserCaps === null || browserCaps === void 0 ? void 0 : browserCaps.browserName,
48
49
  browserVersion: browserCaps === null || browserCaps === void 0 ? void 0 : browserCaps.browserVersion,
49
50
  platformName: browserCaps === null || browserCaps === void 0 ? void 0 : browserCaps.platformName,
50
51
  caps: browserCaps,
51
52
  sessionId: sessionId,
52
- product: isAppAutomate ? 'app-automate' : 'automate'
53
+ product: (0, util_1.getObservabilityProduct)(_options, this._isAppAutomate())
53
54
  };
54
- this._userCaps = _userCaps;
55
55
  this.registerListeners();
56
56
  }
57
+ _isAppAutomate() {
58
+ var _a, _b, _c, _d;
59
+ const browserDesiredCapabilities = ((_b = (_a = this._browser) === null || _a === void 0 ? void 0 : _a.capabilities) !== null && _b !== void 0 ? _b : {});
60
+ const desiredCapabilities = ((_c = this._userCaps) !== null && _c !== void 0 ? _c : {});
61
+ return !!browserDesiredCapabilities['appium:app'] || !!desiredCapabilities['appium:app'] || !!browserDesiredCapabilities.app || !!desiredCapabilities.app || !!((_d = desiredCapabilities['appium:options']) === null || _d === void 0 ? void 0 : _d.app);
62
+ }
57
63
  registerListeners() {
58
64
  if (!(this._framework === 'mocha' || this._framework === 'cucumber')) {
59
65
  return;
@@ -535,7 +541,7 @@ class _InsightsHandler {
535
541
  if (!passed) {
536
542
  testData.result = (error && error.message && error.message.includes('sync skip; aborting execution')) ? 'ignore' : 'failed';
537
543
  if (error && testData.result != 'skipped') {
538
- testData.failure = [{ backtrace: [(0, util_1.removeAnsiColors)(error.message)] }]; // add all errors here
544
+ testData.failure = [{ backtrace: [(0, util_1.removeAnsiColors)(error.message), (0, util_1.removeAnsiColors)(error.stack || '')] }]; // add all errors here
539
545
  testData.failure_reason = (0, util_1.removeAnsiColors)(error.message);
540
546
  testData.failure_type = (0, util_1.isUndefined)(error.message) ? null : error.message.toString().match(/AssertionError/) ? 'AssertionError' : 'UnhandledError'; //verify if this is working
541
547
  }
@@ -4,5 +4,6 @@ export declare function sendStart(config: BrowserStackConfig): Promise<void>;
4
4
  export declare function sendFinish(config: BrowserStackConfig): Promise<void>;
5
5
  export declare function saveFunnelData(eventType: string, config: BrowserStackConfig): string;
6
6
  export declare function fireFunnelRequest(data: any): Promise<void>;
7
+ export declare function getProductMap(config: BrowserStackConfig): any;
7
8
  export declare function handleHealingInstrumentation(authResult: BrowserstackHealing.InitErrorResponse | BrowserstackHealing.InitSuccessResponse, config: BrowserStackConfig, isSelfHealEnabled: boolean | undefined): void;
8
9
  //# sourceMappingURL=funnelInstrumentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"funnelInstrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation/funnelInstrumentation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,WAAW,CAAA;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAoBpE,wBAAsB,SAAS,CAAC,MAAM,EAAE,kBAAkB,iBAEzD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,iBAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOpF;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AAwJD,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB,EAC3F,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,OAAO,GAAG,SAAS,QAiCzC"}
1
+ {"version":3,"file":"funnelInstrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation/funnelInstrumentation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,WAAW,CAAA;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAoBpE,wBAAsB,SAAS,CAAC,MAAM,EAAE,kBAAkB,iBAEzD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,iBAE1D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOpF;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,GAAG,CAQ7D;AAwHD,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB,EAC3F,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,OAAO,GAAG,SAAS,QAiCzC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.handleHealingInstrumentation = exports.fireFunnelRequest = exports.saveFunnelData = exports.sendFinish = exports.sendStart = void 0;
6
+ exports.handleHealingInstrumentation = exports.getProductMap = exports.fireFunnelRequest = exports.saveFunnelData = exports.sendFinish = exports.sendStart = void 0;
7
7
  const node_os_1 = __importDefault(require("node:os"));
8
8
  const node_util_1 = __importDefault(require("node:util"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
@@ -84,6 +84,7 @@ function getProductMap(config) {
84
84
  'app_automate': config.appAutomate
85
85
  };
86
86
  }
87
+ exports.getProductMap = getProductMap;
87
88
  function buildEventData(eventType, config) {
88
89
  const eventProperties = {
89
90
  // Framework Details
@@ -103,6 +104,8 @@ function buildEventData(eventType, config) {
103
104
  };
104
105
  if (eventType === 'SDKTestSuccessful') {
105
106
  const workerData = (0, data_store_1.getDataFromWorkers)();
107
+ eventProperties.isPercyAutoEnabled = config.isPercyAutoEnabled;
108
+ eventProperties.percyBuildId = config.percyBuildId;
106
109
  eventProperties.productUsage = getProductUsage(workerData);
107
110
  }
108
111
  return {
@@ -34,6 +34,7 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
34
34
  }): void;
35
35
  _updateCaps(capabilities?: Capabilities.RemoteCapabilities, capType?: string, value?: string): void;
36
36
  _handleBuildIdentifier(capabilities?: Capabilities.RemoteCapabilities): void;
37
+ _updateBrowserStackPercyConfig(): void;
37
38
  /**
38
39
  * @return {string} if buildName doesn't exist in json file, it will return 1
39
40
  * else returns corresponding value in json file (e.g. { "wdio-build": { "identifier" : 2 } } => 2 in this case)
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAMlE,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAiCrH,KAAK,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,GAAG;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,QAAQ,CAAC,eAAe;IAY5E,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,OAAO;IAbnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,OAAO,CAAC,wBAAwB,CAAC,CAAS;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAO;IACtB,OAAO,CAAC,sBAAsB,CAAC,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAG3C,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,EAC1D,YAAY,EAAE,YAAY,CAAC,gBAAgB,EACnC,OAAO,EAAE,OAAO,CAAC,UAAU;IA4GjC,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAalC,SAAS,CAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,kBAAkB;IAmLpF,UAAU;IAqEV,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU;IAuB7G,SAAS;IAYT,UAAU,CAAC,GAAG,EAAC,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqBrD;;;OAGG;IACG,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBhE,qBAAqB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE;IAiFvH,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM;IAoF3F,sBAAsB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IAyCrE;;;OAGG;IACH,oBAAoB;IA6BpB,sBAAsB,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,SAAS,CAAC,EAAC,MAAM,EAAE,eAAe,CAAC,EAAC,MAAM;CAQtF"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAMlE,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAkCrH,KAAK,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,GAAG;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,QAAQ,CAAC,eAAe;IAY5E,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,OAAO;IAbnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,OAAO,CAAC,wBAAwB,CAAC,CAAS;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAO;IACtB,OAAO,CAAC,sBAAsB,CAAC,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAG3C,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,EAC1D,YAAY,EAAE,YAAY,CAAC,gBAAgB,EACnC,OAAO,EAAE,OAAO,CAAC,UAAU;IA4GjC,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAalC,SAAS,CAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,kBAAkB;IAwLpF,UAAU;IAoEV,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU;IAuB7G,SAAS;IAYT,UAAU,CAAC,GAAG,EAAC,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqBrD;;;OAGG;IACG,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBhE,qBAAqB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE;IAiFvH,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IA4G5F,sBAAsB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IAyCrE,8BAA8B;IAgB9B;;;OAGG;IACH,oBAAoB;IA6BpB,sBAAsB,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,SAAS,CAAC,EAAC,MAAM,EAAE,eAAe,CAAC,EAAC,MAAM;CAQtF"}
package/build/launcher.js CHANGED
@@ -49,6 +49,8 @@ const config_1 = __importDefault(require("./config"));
49
49
  const funnelInstrumentation_1 = require("./instrumentation/funnelInstrumentation");
50
50
  const ai_handler_1 = __importDefault(require("./ai-handler"));
51
51
  const bstackLogger_1 = require("./bstackLogger");
52
+ const funnelInstrumentation_2 = require("./instrumentation/funnelInstrumentation");
53
+ const testOpsConfig_1 = __importDefault(require("./testOps/testOpsConfig"));
52
54
  const log = (0, logger_1.default)('@wdio/browserstack-service');
53
55
  class BrowserstackLauncherService {
54
56
  constructor(_options, capabilities, _config) {
@@ -285,18 +287,22 @@ class BrowserstackLauncherService {
285
287
  buildIdentifier: this._buildIdentifier
286
288
  });
287
289
  }
288
- if (this._options.percy) {
290
+ const shouldSetupPercy = this._options.percy || ((0, util_2.isUndefined)(this._options.percy) && this._options.app);
291
+ if (shouldSetupPercy) {
289
292
  try {
290
293
  const bestPlatformPercyCaps = (0, PercyHelper_1.getBestPlatformForPercySnapshot)(capabilities);
291
294
  this._percyBestPlatformCaps = bestPlatformPercyCaps;
292
295
  await this.setupPercy(this._options, this._config, {
293
296
  projectName: this._projectName
294
297
  });
298
+ this._updateBrowserStackPercyConfig();
295
299
  }
296
300
  catch (err) {
297
301
  PercyLogger_1.PercyLogger.error(`Error while setting up Percy ${err}`);
298
302
  }
299
303
  }
304
+ this._updateCaps(capabilities, 'testhubBuildUuid');
305
+ this._updateCaps(capabilities, 'buildProductMap');
300
306
  if (!this._options.browserstackLocal) {
301
307
  return log.info('browserstackLocal is not enabled - skipping...');
302
308
  }
@@ -362,8 +368,8 @@ class BrowserstackLauncherService {
362
368
  }
363
369
  if (this._options.percy) {
364
370
  await this.stopPercy();
371
+ PercyLogger_1.PercyLogger.clearLogger();
365
372
  }
366
- PercyLogger_1.PercyLogger.clearLogger();
367
373
  await (0, funnelInstrumentation_1.sendFinish)(this.browserStackConfig);
368
374
  if (!this.browserstackLocal || !this.browserstackLocal.isRunning()) {
369
375
  return;
@@ -579,6 +585,12 @@ class BrowserstackLauncherService {
579
585
  else if (capType === 'buildIdentifier' && value) {
580
586
  capability['bstack:options'] = { buildIdentifier: value };
581
587
  }
588
+ else if (capType === 'testhubBuildUuid') {
589
+ capability['bstack:options'] = { testhubBuildUuid: testOpsConfig_1.default.getInstance().buildHashedId };
590
+ }
591
+ else if (capType === 'buildProductMap') {
592
+ capability['bstack:options'] = { buildProductMap: (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig) };
593
+ }
582
594
  }
583
595
  else if (capType === 'local') {
584
596
  capability['browserstack.local'] = true;
@@ -597,6 +609,12 @@ class BrowserstackLauncherService {
597
609
  else if (capType === 'localIdentifier') {
598
610
  capability['browserstack.localIdentifier'] = value;
599
611
  }
612
+ else if (capType === 'testhubBuildUuid') {
613
+ capability['browserstack.testhubBuildUuid'] = testOpsConfig_1.default.getInstance().buildHashedId;
614
+ }
615
+ else if (capType === 'buildProductMap') {
616
+ capability['browserstack.buildProductMap'] = (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig);
617
+ }
600
618
  }
601
619
  else if (capType === 'local') {
602
620
  capability['bstack:options'].local = true;
@@ -615,6 +633,12 @@ class BrowserstackLauncherService {
615
633
  else if (capType === 'localIdentifier') {
616
634
  capability['bstack:options'].localIdentifier = value;
617
635
  }
636
+ else if (capType === 'testhubBuildUuid') {
637
+ capability['bstack:options'].testhubBuildUuid = testOpsConfig_1.default.getInstance().buildHashedId;
638
+ }
639
+ else if (capType === 'buildProductMap') {
640
+ capability['bstack:options'].buildProductMap = (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig);
641
+ }
618
642
  });
619
643
  }
620
644
  else if (typeof capabilities === 'object') {
@@ -631,6 +655,12 @@ class BrowserstackLauncherService {
631
655
  else if (capType === 'buildIdentifier' && value) {
632
656
  caps.capabilities['bstack:options'] = { buildIdentifier: value };
633
657
  }
658
+ else if (capType === 'testhubBuildUuid') {
659
+ caps.capabilities['bstack:options'] = { testhubBuildUuid: testOpsConfig_1.default.getInstance().buildHashedId };
660
+ }
661
+ else if (capType === 'buildProductMap') {
662
+ caps.capabilities['bstack:options'] = { buildProductMap: (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig) };
663
+ }
634
664
  }
635
665
  else if (capType === 'local') {
636
666
  caps.capabilities['browserstack.local'] = true;
@@ -649,6 +679,12 @@ class BrowserstackLauncherService {
649
679
  else if (capType === 'localIdentifier') {
650
680
  caps.capabilities['browserstack.localIdentifier'] = value;
651
681
  }
682
+ else if (capType === 'testhubBuildUuid') {
683
+ caps.capabilities['browserstack.testhubBuildUuid'] = testOpsConfig_1.default.getInstance().buildHashedId;
684
+ }
685
+ else if (capType === 'buildProductMap') {
686
+ caps.capabilities['browserstack.buildProductMap'] = (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig);
687
+ }
652
688
  }
653
689
  else if (capType === 'local') {
654
690
  caps.capabilities['bstack:options'].local = true;
@@ -667,6 +703,12 @@ class BrowserstackLauncherService {
667
703
  else if (capType === 'localIdentifier') {
668
704
  caps.capabilities['bstack:options'].localIdentifier = value;
669
705
  }
706
+ else if (capType === 'testhubBuildUuid') {
707
+ caps.capabilities['bstack:options'].testhubBuildUuid = testOpsConfig_1.default.getInstance().buildHashedId;
708
+ }
709
+ else if (capType === 'buildProductMap') {
710
+ caps.capabilities['bstack:options'].buildProductMap = (0, funnelInstrumentation_2.getProductMap)(this.browserStackConfig);
711
+ }
670
712
  });
671
713
  }
672
714
  else {
@@ -711,6 +753,18 @@ class BrowserstackLauncherService {
711
753
  }
712
754
  }
713
755
  }
756
+ _updateBrowserStackPercyConfig() {
757
+ const { percyAutoEnabled = false, percyCaptureMode, buildId, percy } = this._percy || {};
758
+ // Setting to browserStackConfig for populating data in funnel instrumentaion
759
+ this.browserStackConfig.percyCaptureMode = percyCaptureMode;
760
+ this.browserStackConfig.percyBuildId = buildId;
761
+ this.browserStackConfig.isPercyAutoEnabled = percyAutoEnabled;
762
+ // To handle stop percy build
763
+ this._options.percy = percy;
764
+ // To pass data to workers
765
+ process.env.BROWSERSTACK_PERCY = String(percy);
766
+ process.env.BROWSERSTACK_PERCY_CAPTURE_MODE = percyCaptureMode;
767
+ }
714
768
  /**
715
769
  * @return {string} if buildName doesn't exist in json file, it will return 1
716
770
  * else returns corresponding value in json file (e.g. { "wdio-build": { "identifier" : 2 } } => 2 in this case)
package/build/reporter.js CHANGED
@@ -226,7 +226,7 @@ class _TestReporter extends reporter_1.default {
226
226
  if (failed) {
227
227
  testData.result = (error && error.message && error.message.includes('sync skip; aborting execution')) ? 'ignore' : 'failed';
228
228
  if (error && testData.result != 'skipped') {
229
- testData.failure = [{ backtrace: [(0, util_1.removeAnsiColors)(error.message)] }]; // add all errors here
229
+ testData.failure = [{ backtrace: [(0, util_1.removeAnsiColors)(error.message), (0, util_1.removeAnsiColors)(error.stack || '')] }]; // add all errors here
230
230
  testData.failure_reason = (0, util_1.removeAnsiColors)(error.message);
231
231
  testData.failure_type = error.message == null ? null : error.message.toString().match(/AssertionError/) ? 'AssertionError' : 'UnhandledError'; //verify if this is working
232
232
  }
@@ -17,6 +17,7 @@ export default class BrowserstackService implements Services.ServiceInstance {
17
17
  private _observability;
18
18
  private _currentTest?;
19
19
  private _insightsHandler?;
20
+ private _percyCaptureMode;
20
21
  private _accessibility;
21
22
  private _accessibilityHandler?;
22
23
  private _turboScale;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/build/service.js CHANGED
@@ -29,12 +29,14 @@ class BrowserstackService {
29
29
  this._scenariosThatRan = [];
30
30
  this._failureStatuses = ['failed', 'ambiguous', 'undefined', 'unknown'];
31
31
  this._specsRan = false;
32
+ this._percyCaptureMode = undefined;
32
33
  this._options = { ...constants_1.DEFAULT_OPTIONS, ...options };
33
34
  // added to maintain backward compatibility with webdriverIO v5
34
35
  this._config || (this._config = this._options);
35
36
  this._observability = this._options.testObservability;
36
37
  this._accessibility = this._options.accessibility;
37
- this._percy = this._options.percy;
38
+ this._percy = process.env.BROWSERSTACK_PERCY === 'true';
39
+ this._percyCaptureMode = process.env.BROWSERSTACK_PERCY_CAPTURE_MODE;
38
40
  this._turboScale = this._options.turboScale;
39
41
  if (this._observability) {
40
42
  (_a = this._config.reporters) === null || _a === void 0 ? void 0 : _a.push(reporter_1.default);
@@ -45,6 +47,7 @@ class BrowserstackService {
45
47
  if (process.env.BROWSERSTACK_TURBOSCALE) {
46
48
  this._turboScale = process.env.BROWSERSTACK_TURBOSCALE === 'true';
47
49
  }
50
+ process.env.BROWSERSTACK_TURBOSCALE_INTERNAL = String(this._turboScale);
48
51
  // Cucumber specific
49
52
  const strict = Boolean(this._config.cucumberOpts && this._config.cucumberOpts.strict);
50
53
  // See https://github.com/cucumber/cucumber-js/blob/master/src/runtime/index.ts#L136
@@ -100,13 +103,13 @@ class BrowserstackService {
100
103
  this._scenariosThatRan = [];
101
104
  if (this._browser) {
102
105
  if (this._percy) {
103
- this._percyHandler = new Percy_Handler_1.default(this._options.percyCaptureMode, this._browser, this._caps, this._isAppAutomate(), this._config.framework);
106
+ this._percyHandler = new Percy_Handler_1.default(this._percyCaptureMode, this._browser, this._caps, this._isAppAutomate(), this._config.framework);
104
107
  this._percyHandler.before();
105
108
  }
106
109
  try {
107
110
  if (this._observability) {
108
111
  (0, util_1.patchConsoleLogs)();
109
- this._insightsHandler = new insights_handler_1.default(this._browser, this._browser.capabilities, this._isAppAutomate(), this._browser.sessionId, this._config.framework, this._caps);
112
+ this._insightsHandler = new insights_handler_1.default(this._browser, this._browser.capabilities, this._browser.sessionId, this._config.framework, this._caps, this._options);
110
113
  await this._insightsHandler.before();
111
114
  }
112
115
  if (this._browser && (0, util_1.isBrowserstackSession)(this._browser)) {
package/build/util.d.ts CHANGED
@@ -165,5 +165,7 @@ export declare const hasBrowserName: (cap: WebdriverIO.Config) => boolean;
165
165
  export declare const isValidCapsForHealing: (caps: {
166
166
  [key: string]: Options.Testrunner;
167
167
  }) => boolean;
168
+ export declare function isTurboScale(options: (BrowserstackConfig & Options.Testrunner) | undefined): boolean;
169
+ export declare function getObservabilityProduct(options: (BrowserstackConfig & Options.Testrunner) | undefined, isAppAutomate: boolean | undefined): string;
168
170
  export {};
169
171
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/build/util.js CHANGED
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.isObject = exports.isTrue = exports.isUndefined = exports.getBrowserStackKey = exports.getBrowserStackUser = exports.stopAccessibilityTestRun = exports.getA11yResultsSummary = exports.getA11yResults = exports.performA11yScan = exports.createAccessibilityTestRun = exports.isAccessibilityAutomationSession = exports.shouldScanTestForAccessibility = exports.validateCapsWithA11y = exports.sleep = exports.patchConsoleLogs = exports.getFailureObject = exports.frameworkSupportsHook = exports.getObservabilityBuildTags = exports.getObservabilityBuild = exports.getObservabilityProject = exports.getObservabilityKey = exports.getObservabilityUser = exports.batchAndPostEvents = exports.shouldAddServiceVersion = exports.getBrowserStackUserAndKey = exports.isBrowserstackInfra = exports.isBStackSession = exports.isScreenshotCommand = exports.getHookType = exports.getHierarchy = exports.getLogTag = exports.removeAnsiColors = exports.getScenarioExamples = exports.isBrowserstackSession = exports.getCloudProvider = exports.getUniqueIdentifierForCucumber = exports.getUniqueIdentifier = exports.getGitMetaData = exports.nodeRequest = exports.getCiInfo = exports.stopBuildUpstream = exports.launchTestSession = exports.o11yClassErrorHandler = exports.o11yErrorHandler = exports.errorHandler = exports.getParentSuiteName = exports.isBrowserstackCapability = exports.getBrowserCapabilities = exports.getBrowserDescription = exports.DEFAULT_REQUEST_CONFIG = void 0;
30
- exports.isValidCapsForHealing = exports.hasBrowserName = exports.checkAndTruncateVCSInfo = exports.getSizeOfJsonObjectInBytes = exports.truncateString = exports.getErrorString = exports.isObjectEmpty = exports.getPlatformVersion = exports.ObjectsAreEqual = void 0;
30
+ exports.getObservabilityProduct = exports.isTurboScale = exports.isValidCapsForHealing = exports.hasBrowserName = exports.checkAndTruncateVCSInfo = exports.getSizeOfJsonObjectInBytes = exports.truncateString = exports.getErrorString = exports.isObjectEmpty = exports.getPlatformVersion = exports.ObjectsAreEqual = void 0;
31
31
  const os_1 = require("os");
32
32
  const util_1 = require("util");
33
33
  const http_1 = __importDefault(require("http"));
@@ -1270,3 +1270,13 @@ const isValidCapsForHealing = (caps) => {
1270
1270
  return capValues.length > 0 && capValues.some(exports.hasBrowserName);
1271
1271
  };
1272
1272
  exports.isValidCapsForHealing = isValidCapsForHealing;
1273
+ function isTurboScale(options) {
1274
+ return Boolean(options === null || options === void 0 ? void 0 : options.turboScale);
1275
+ }
1276
+ exports.isTurboScale = isTurboScale;
1277
+ function getObservabilityProduct(options, isAppAutomate) {
1278
+ return isAppAutomate
1279
+ ? 'app-automate'
1280
+ : (isTurboScale(options) ? 'turboscale' : 'automate');
1281
+ }
1282
+ exports.getObservabilityProduct = getObservabilityProduct;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/browserstack-service",
3
- "version": "7.38.1",
3
+ "version": "7.40.0",
4
4
  "description": "WebdriverIO service for better Browserstack integration",
5
5
  "author": "Adam Bjerstedt <abjerstedt@gmail.com>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -29,7 +29,7 @@
29
29
  "@types/gitconfiglocal": "^2.0.1",
30
30
  "@wdio/logger": "7.26.0",
31
31
  "@wdio/reporter": "7.25.4",
32
- "@wdio/types": "7.33.0",
32
+ "@wdio/types": "7.40.0",
33
33
  "browserstack-local": "^1.4.5",
34
34
  "csv-writer": "^1.6.0",
35
35
  "form-data": "^4.0.0",
@@ -37,7 +37,7 @@
37
37
  "gitconfiglocal": "^2.1.0",
38
38
  "got": "^11.0.2",
39
39
  "uuid": "^9.0.1",
40
- "webdriverio": "7.36.0",
40
+ "webdriverio": "7.40.0",
41
41
  "winston-transport": "^4.5.0",
42
42
  "yauzl": "^2.10.0"
43
43
  },
@@ -48,5 +48,5 @@
48
48
  "access": "public"
49
49
  },
50
50
  "types": "./build/index.d.ts",
51
- "gitHead": "c4de09f154e6f4f7550743f1e4acc8063d052942"
51
+ "gitHead": "6d44a39b17edb7c45c88a780bf1dbefe388550fb"
52
52
  }