@wdio/browserstack-service 7.21.0 → 8.0.0-alpha.239

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/README.md CHANGED
@@ -6,7 +6,7 @@ WebdriverIO Browserstack Service
6
6
  ## Installation
7
7
 
8
8
 
9
- The easiest way is to keep `@wdio/browserstack-service` as a devDependency in your `package.json`, via:
9
+ The easiest way is to keep `@wdio/browserstack-service` as a devDependency in your `package.json`, via:
10
10
 
11
11
  ```sh
12
12
  npm install @wdio/browserstack-service --save-dev
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BROWSER_DESCRIPTION = void 0;
4
- exports.BROWSER_DESCRIPTION = [
1
+ export const BROWSER_DESCRIPTION = [
5
2
  'device',
6
3
  'os',
7
4
  'osVersion',
package/build/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import BrowserstackLauncher from './launcher';
2
- import BrowserstackService from './service';
1
+ import BrowserstackLauncher from './launcher.js';
2
+ import BrowserstackService from './service.js';
3
3
  import type { BrowserstackConfig } from './types';
4
4
  export default BrowserstackService;
5
5
  export declare const launcher: typeof BrowserstackLauncher;
6
- export * from './types';
6
+ export * from './types.js';
7
7
  declare global {
8
8
  namespace WebdriverIO {
9
9
  interface ServiceOption extends BrowserstackConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,MAAM,YAAY,CAAA;AAC7C,OAAO,mBAAmB,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAe,mBAAmB,CAAA;AAClC,eAAO,MAAM,QAAQ,6BAAuB,CAAA;AAC5C,cAAc,SAAS,CAAA;AAEvB,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,aAAc,SAAQ,kBAAkB;SAAG;KACxD;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,MAAM,eAAe,CAAA;AAChD,OAAO,mBAAmB,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAe,mBAAmB,CAAA;AAClC,eAAO,MAAM,QAAQ,6BAAuB,CAAA;AAC5C,cAAc,YAAY,CAAA;AAE1B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,aAAc,SAAQ,kBAAkB;SAAG;KACxD;CACJ"}
package/build/index.js CHANGED
@@ -1,26 +1,6 @@
1
- "use strict";
2
1
  /* istanbul ignore file */
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
- };
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.launcher = void 0;
22
- const launcher_1 = __importDefault(require("./launcher"));
23
- const service_1 = __importDefault(require("./service"));
24
- exports.default = service_1.default;
25
- exports.launcher = launcher_1.default;
26
- __exportStar(require("./types"), exports);
2
+ import BrowserstackLauncher from './launcher.js';
3
+ import BrowserstackService from './service.js';
4
+ export default BrowserstackService;
5
+ export const launcher = BrowserstackLauncher;
6
+ export * from './types.js';
@@ -1,6 +1,6 @@
1
1
  import * as BrowserstackLocalLauncher from 'browserstack-local';
2
2
  import type { Capabilities, Services, Options } from '@wdio/types';
3
- import { BrowserstackConfig } from './types';
3
+ import type { BrowserstackConfig } from './types';
4
4
  declare type BrowserstackLocal = BrowserstackLocalLauncher.Local & {
5
5
  pid?: number;
6
6
  stop(callback: (err?: any) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAIlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAI5C,aAAK,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,GAAG;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,QAAQ,CAAC,eAAe;IAI5E,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,OAAO;IALnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;gBAGzB,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACzD,YAAY,EAAE,YAAY,CAAC,gBAAgB,EACnC,OAAO,EAAE,OAAO,CAAC,UAAU;IAiCvC,SAAS,CAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IAyEtF,UAAU;CAkCb"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAOjD,aAAK,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,GAAG;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,QAAQ,CAAC,eAAe;IAI5E,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,OAAO;IALnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;gBAGzB,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACzD,YAAY,EAAE,YAAY,CAAC,gBAAgB,EACnC,OAAO,EAAE,OAAO,CAAC,UAAU;IAiCvC,SAAS,CAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IAyEtF,UAAU;CAkCb"}
package/build/launcher.js CHANGED
@@ -1,39 +1,12 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const util_1 = require("util");
30
- const perf_hooks_1 = require("perf_hooks");
31
- const BrowserstackLocalLauncher = __importStar(require("browserstack-local"));
32
- const logger_1 = __importDefault(require("@wdio/logger"));
33
- // @ts-ignore
34
- const package_json_1 = require("../package.json");
35
- const log = (0, logger_1.default)('@wdio/browserstack-service');
36
- class BrowserstackLauncherService {
1
+ import { createRequire } from 'node:module';
2
+ import { promisify } from 'node:util';
3
+ import { performance, PerformanceObserver } from 'node:perf_hooks';
4
+ import * as BrowserstackLocalLauncher from 'browserstack-local';
5
+ import logger from '@wdio/logger';
6
+ const require = createRequire(import.meta.url);
7
+ const { version: bstackServiceVersion } = require('../package.json');
8
+ const log = logger('@wdio/browserstack-service');
9
+ export default class BrowserstackLauncherService {
37
10
  constructor(_options, capabilities, _config) {
38
11
  this._options = _options;
39
12
  this._config = _config;
@@ -44,14 +17,14 @@ class BrowserstackLauncherService {
44
17
  if (!capability['bstack:options']) {
45
18
  const extensionCaps = Object.keys(capability).filter((cap) => cap.includes(':'));
46
19
  if (extensionCaps.length) {
47
- capability['bstack:options'] = { wdioService: package_json_1.version };
20
+ capability['bstack:options'] = { wdioService: bstackServiceVersion };
48
21
  }
49
22
  else {
50
- capability['browserstack.wdioService'] = package_json_1.version;
23
+ capability['browserstack.wdioService'] = bstackServiceVersion;
51
24
  }
52
25
  }
53
26
  else {
54
- capability['bstack:options'].wdioService = package_json_1.version;
27
+ capability['bstack:options'].wdioService = bstackServiceVersion;
55
28
  }
56
29
  });
57
30
  }
@@ -60,14 +33,14 @@ class BrowserstackLauncherService {
60
33
  if (!caps.capabilities['bstack:options']) {
61
34
  const extensionCaps = Object.keys(caps.capabilities).filter((cap) => cap.includes(':'));
62
35
  if (extensionCaps.length) {
63
- caps.capabilities['bstack:options'] = { wdioService: package_json_1.version };
36
+ caps.capabilities['bstack:options'] = { wdioService: bstackServiceVersion };
64
37
  }
65
38
  else {
66
- caps.capabilities['browserstack.wdioService'] = package_json_1.version;
39
+ caps.capabilities['browserstack.wdioService'] = bstackServiceVersion;
67
40
  }
68
41
  }
69
42
  else {
70
- caps.capabilities['bstack:options'].wdioService = package_json_1.version;
43
+ caps.capabilities['bstack:options'].wdioService = bstackServiceVersion;
71
44
  }
72
45
  });
73
46
  }
@@ -119,15 +92,15 @@ class BrowserstackLauncherService {
119
92
  /**
120
93
  * measure TestingBot tunnel boot time
121
94
  */
122
- const obs = new perf_hooks_1.PerformanceObserver((list) => {
95
+ const obs = new PerformanceObserver((list) => {
123
96
  const entry = list.getEntries()[0];
124
97
  log.info(`Browserstack Local successfully started after ${entry.duration}ms`);
125
98
  });
126
99
  obs.observe({ entryTypes: ['measure'] });
127
100
  let timer;
128
- perf_hooks_1.performance.mark('tbTunnelStart');
101
+ performance.mark('tbTunnelStart');
129
102
  return Promise.race([
130
- (0, util_1.promisify)(this.browserstackLocal.start.bind(this.browserstackLocal))(opts),
103
+ promisify(this.browserstackLocal.start.bind(this.browserstackLocal))(opts),
131
104
  new Promise((resolve, reject) => {
132
105
  /* istanbul ignore next */
133
106
  timer = setTimeout(function () {
@@ -136,8 +109,8 @@ class BrowserstackLauncherService {
136
109
  })
137
110
  ]).then(function (result) {
138
111
  clearTimeout(timer);
139
- perf_hooks_1.performance.mark('tbTunnelEnd');
140
- perf_hooks_1.performance.measure('bootTime', 'tbTunnelStart', 'tbTunnelEnd');
112
+ performance.mark('tbTunnelEnd');
113
+ performance.measure('bootTime', 'tbTunnelStart', 'tbTunnelEnd');
141
114
  return Promise.resolve(result);
142
115
  }, function (err) {
143
116
  clearTimeout(timer);
@@ -154,8 +127,7 @@ class BrowserstackLauncherService {
154
127
  let timer;
155
128
  return Promise.race([
156
129
  new Promise((resolve, reject) => {
157
- var _a;
158
- (_a = this.browserstackLocal) === null || _a === void 0 ? void 0 : _a.stop((err) => {
130
+ this.browserstackLocal?.stop((err) => {
159
131
  if (err) {
160
132
  return reject(err);
161
133
  }
@@ -175,4 +147,3 @@ class BrowserstackLauncherService {
175
147
  });
176
148
  }
177
149
  }
178
- exports.default = BrowserstackLauncherService;
@@ -1,6 +1,6 @@
1
1
  import type { Services, Capabilities, Options, Frameworks } from '@wdio/types';
2
2
  import type { Browser, MultiRemoteBrowser } from 'webdriverio';
3
- import { BrowserstackConfig, MultiRemoteAction } from './types';
3
+ import type { BrowserstackConfig, MultiRemoteAction } from './types';
4
4
  export default class BrowserstackService implements Services.ServiceInstance {
5
5
  private _options;
6
6
  private _caps;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAG9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,SAAS,CAAA;AAIhF,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ,CAAC,eAAe;IASpE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAVnB,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,gBAAgB,CAA4D;IACpF,OAAO,CAAC,QAAQ,CAAC,CAAgD;IACjE,OAAO,CAAC,UAAU,CAAC,CAAQ;gBAGf,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACjD,KAAK,EAAE,YAAY,CAAC,gBAAgB,EACpC,OAAO,EAAE,OAAO,CAAC,UAAU;IAYvC,WAAW,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,mBAAmB,KAAK,IAAI;IAU7F;;;;OAIG;IACH,aAAa,CAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAYzC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAepH,WAAW,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAIpC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAKrD,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU;IAqB/E,KAAK,CAAE,MAAM,EAAE,MAAM;IAgBrB;;OAEG;IACH,aAAa,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAmBhC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA2BzD,cAAc,IAAI,OAAO;IAOzB,UAAU,CAAE,WAAW,EAAE,GAAG;IAU5B,kBAAkB,CAAE,MAAM,EAAE,iBAAiB;IAqB7C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;IAUrC,gBAAgB;CAsBzB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,SAAS,CAAA;AAIrF,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ,CAAC,eAAe;IASpE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAVnB,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,gBAAgB,CAA4D;IACpF,OAAO,CAAC,QAAQ,CAAC,CAAgD;IACjE,OAAO,CAAC,UAAU,CAAC,CAAQ;gBAGf,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACjD,KAAK,EAAE,YAAY,CAAC,gBAAgB,EACpC,OAAO,EAAE,OAAO,CAAC,UAAU;IAYvC,WAAW,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,mBAAmB,KAAK,IAAI;IAU7F;;;;OAIG;IACH,aAAa,CAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAYzC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAepH,WAAW,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAIpC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAKrD,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU;IAqB/E,KAAK,CAAE,MAAM,EAAE,MAAM;IAgBrB;;OAEG;IACH,aAAa,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAmBhC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA2BzD,cAAc,IAAI,OAAO;IAOzB,UAAU,CAAE,WAAW,EAAE,GAAG;IAU5B,kBAAkB,CAAE,MAAM,EAAE,iBAAiB;IAqB7C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;IAUrC,gBAAgB;CAsBzB"}
package/build/service.js CHANGED
@@ -1,13 +1,8 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const logger_1 = __importDefault(require("@wdio/logger"));
7
- const got_1 = __importDefault(require("got"));
8
- const util_1 = require("./util");
9
- const log = (0, logger_1.default)('@wdio/browserstack-service');
10
- class BrowserstackService {
1
+ import logger from '@wdio/logger';
2
+ import got from 'got';
3
+ import { getBrowserDescription, getBrowserCapabilities, isBrowserstackCapability, getParentSuiteName } from './util.js';
4
+ const log = logger('@wdio/browserstack-service');
5
+ export default class BrowserstackService {
11
6
  constructor(_options, _caps, _config) {
12
7
  this._options = _options;
13
8
  this._caps = _caps;
@@ -73,7 +68,7 @@ class BrowserstackService {
73
68
  this._fullTitle = testSuiteName;
74
69
  }
75
70
  else if (this._fullTitle) {
76
- this._fullTitle = (0, util_1.getParentSuiteName)(this._fullTitle, testSuiteName);
71
+ this._fullTitle = getParentSuiteName(this._fullTitle, testSuiteName);
77
72
  }
78
73
  }
79
74
  else {
@@ -101,8 +96,7 @@ class BrowserstackService {
101
96
  * For CucumberJS
102
97
  */
103
98
  afterScenario(world) {
104
- var _a;
105
- const status = (_a = world.result) === null || _a === void 0 ? void 0 : _a.status.toLowerCase();
99
+ const status = world.result?.status.toLowerCase();
106
100
  if (status !== 'skipped') {
107
101
  this._scenariosThatRan.push(world.pickle.name || 'unknown pickle name');
108
102
  }
@@ -138,9 +132,8 @@ class BrowserstackService {
138
132
  await this._printSessionURL();
139
133
  }
140
134
  _isAppAutomate() {
141
- var _a, _b, _c;
142
- const browserDesiredCapabilities = ((_b = (_a = this._browser) === null || _a === void 0 ? void 0 : _a.capabilities) !== null && _b !== void 0 ? _b : {});
143
- const desiredCapabilities = ((_c = this._caps) !== null && _c !== void 0 ? _c : {});
135
+ const browserDesiredCapabilities = (this._browser?.capabilities ?? {});
136
+ const desiredCapabilities = (this._caps ?? {});
144
137
  return !!browserDesiredCapabilities['appium:app'] || !!desiredCapabilities['appium:app'] || !!browserDesiredCapabilities.app || !!desiredCapabilities.app;
145
138
  }
146
139
  _updateJob(requestBody) {
@@ -160,16 +153,16 @@ class BrowserstackService {
160
153
  return action(_browser.sessionId);
161
154
  }
162
155
  return Promise.all(_browser.instances
163
- .filter(browserName => {
164
- const cap = (0, util_1.getBrowserCapabilities)(_browser, this._caps, browserName);
165
- return (0, util_1.isBrowserstackCapability)(cap);
156
+ .filter((browserName) => {
157
+ const cap = getBrowserCapabilities(_browser, this._caps, browserName);
158
+ return isBrowserstackCapability(cap);
166
159
  })
167
160
  .map((browserName) => (action(_browser[browserName].sessionId, browserName))));
168
161
  }
169
162
  _update(sessionId, requestBody) {
170
163
  const sessionUrl = `${this._sessionBaseUrl}/${sessionId}.json`;
171
164
  log.debug(`Updating Browserstack session at ${sessionUrl} with request body: `, requestBody);
172
- return got_1.default.put(sessionUrl, {
165
+ return got.put(sessionUrl, {
173
166
  json: requestBody,
174
167
  username: this._config.user,
175
168
  password: this._config.key
@@ -182,7 +175,7 @@ class BrowserstackService {
182
175
  await this._multiRemoteAction(async (sessionId, browserName) => {
183
176
  const sessionUrl = `${this._sessionBaseUrl}/${sessionId}.json`;
184
177
  log.debug(`Requesting Browserstack session URL at ${sessionUrl}`);
185
- const response = await (0, got_1.default)(sessionUrl, {
178
+ const response = await got(sessionUrl, {
186
179
  username: this._config.user,
187
180
  password: this._config.key,
188
181
  responseType: 'json'
@@ -190,10 +183,9 @@ class BrowserstackService {
190
183
  if (!this._browser) {
191
184
  return;
192
185
  }
193
- const capabilities = (0, util_1.getBrowserCapabilities)(this._browser, this._caps, browserName);
194
- const browserString = (0, util_1.getBrowserDescription)(capabilities);
186
+ const capabilities = getBrowserCapabilities(this._browser, this._caps, browserName);
187
+ const browserString = getBrowserDescription(capabilities);
195
188
  log.info(`${browserString} session: ${response.body.automation_session.browser_url}`);
196
189
  });
197
190
  }
198
191
  }
199
- exports.default = BrowserstackService;
package/build/types.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
package/build/util.js CHANGED
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getParentSuiteName = exports.isBrowserstackCapability = exports.getBrowserCapabilities = exports.getBrowserDescription = void 0;
4
- const constants_1 = require("./constants");
1
+ import { BROWSER_DESCRIPTION } from './constants.js';
5
2
  /**
6
3
  * get browser description for Browserstack service
7
4
  * @param cap browser capablities
8
5
  */
9
- function getBrowserDescription(cap) {
6
+ export function getBrowserDescription(cap) {
10
7
  cap = cap || {};
11
8
  if (cap['bstack:options']) {
12
9
  cap = { ...cap, ...cap['bstack:options'] };
@@ -14,19 +11,18 @@ function getBrowserDescription(cap) {
14
11
  /**
15
12
  * These keys describe the browser the test was run on
16
13
  */
17
- return constants_1.BROWSER_DESCRIPTION
14
+ return BROWSER_DESCRIPTION
18
15
  .map((k) => cap[k])
19
16
  .filter(Boolean)
20
17
  .join(' ');
21
18
  }
22
- exports.getBrowserDescription = getBrowserDescription;
23
19
  /**
24
20
  * get correct browser capabilities object in both multiremote and normal setups
25
21
  * @param browser browser object
26
22
  * @param caps browser capbilities object. In case of multiremote, the object itself should have a property named 'capabilities'
27
23
  * @param browserName browser name in case of multiremote
28
24
  */
29
- function getBrowserCapabilities(browser, caps, browserName) {
25
+ export function getBrowserCapabilities(browser, caps, browserName) {
30
26
  if (!browser.isMultiremote) {
31
27
  return { ...browser.capabilities, ...caps };
32
28
  }
@@ -35,12 +31,11 @@ function getBrowserCapabilities(browser, caps, browserName) {
35
31
  const cap = browserName && multiCaps[browserName] ? multiCaps[browserName].capabilities : {};
36
32
  return { ...globalCap, ...cap };
37
33
  }
38
- exports.getBrowserCapabilities = getBrowserCapabilities;
39
34
  /**
40
35
  * check for browserstack W3C capabilities. Does not support legacy capabilities
41
36
  * @param cap browser capabilities
42
37
  */
43
- function isBrowserstackCapability(cap) {
38
+ export function isBrowserstackCapability(cap) {
44
39
  return Boolean(cap &&
45
40
  cap['bstack:options'] &&
46
41
  // return false if the only cap in bstack:options is wdioService,
@@ -48,8 +43,7 @@ function isBrowserstackCapability(cap) {
48
43
  !(Object.keys(cap['bstack:options']).length === 1 &&
49
44
  cap['bstack:options'].wdioService));
50
45
  }
51
- exports.isBrowserstackCapability = isBrowserstackCapability;
52
- function getParentSuiteName(fullTitle, testSuiteTitle) {
46
+ export function getParentSuiteName(fullTitle, testSuiteTitle) {
53
47
  const fullTitleWords = fullTitle.split(' ');
54
48
  const testSuiteTitleWords = testSuiteTitle.split(' ');
55
49
  const shortestLength = Math.min(fullTitleWords.length, testSuiteTitleWords.length);
@@ -60,4 +54,3 @@ function getParentSuiteName(fullTitle, testSuiteTitle) {
60
54
  }
61
55
  return parentSuiteName.trim();
62
56
  }
63
- exports.getParentSuiteName = getParentSuiteName;
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "@wdio/browserstack-service",
3
- "version": "7.21.0",
3
+ "version": "8.0.0-alpha.239+00a68ded0",
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",
7
7
  "license": "MIT",
8
- "main": "./build",
9
8
  "engines": {
10
- "node": ">=12.0.0"
9
+ "node": "^16.13 || >=18"
11
10
  },
12
11
  "repository": {
13
12
  "type": "git",
@@ -22,13 +21,17 @@
22
21
  "bugs": {
23
22
  "url": "https://github.com/webdriverio/webdriverio/issues"
24
23
  },
24
+ "type": "module",
25
+ "exports": "./build/index.js",
26
+ "types": "./build/index.d.ts",
27
+ "typeScriptVersion": "3.8.3",
25
28
  "dependencies": {
26
29
  "@types/node": "^18.0.0",
27
30
  "@wdio/logger": "7.19.0",
28
- "@wdio/types": "7.21.0",
29
- "browserstack-local": "^1.4.5",
30
- "got": "^11.0.2",
31
- "webdriverio": "7.21.0"
31
+ "@wdio/types": "7.20.7",
32
+ "browserstack-local": "^1.5.1",
33
+ "got": "^12.1.0",
34
+ "webdriverio": "8.0.0-alpha.239+00a68ded0"
32
35
  },
33
36
  "peerDependencies": {
34
37
  "@wdio/cli": "^5.0.0 || ^6.0.0 || ^7.0.0"
@@ -36,6 +39,5 @@
36
39
  "publishConfig": {
37
40
  "access": "public"
38
41
  },
39
- "types": "./build/index.d.ts",
40
- "gitHead": "808149cc5875529a2c0b3592dc5e255796e8ece4"
42
+ "gitHead": "00a68ded03fea7b5f348eff0ca1d9b771f90fa75"
41
43
  }