@wdio/utils 8.20.3 → 8.21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"envDetector.d.ts","sourceRoot":"","sources":["../src/envDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ/C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,mBAAmB,WAwCpE;AA4JD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM;;;;;;;;EAIjH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,EAC9E;IAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAAC,qBAAqB,EAAE,YAAY,CAAC,gBAAgB,CAAA;CAAE;;;;;;;;;;EAexG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,YAAY;;;;;;;;;;;EAapF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY;;;;;;;;EAUlF"}
1
+ {"version":3,"file":"envDetector.d.ts","sourceRoot":"","sources":["../src/envDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ/C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,mBAAmB,WAwCpE;AAwKD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM;;;;;;;;EAIjH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,EAC9E;IAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAAC,qBAAqB,EAAE,YAAY,CAAC,gBAAgB,CAAA;CAAE;;;;;;;;;;EAexG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,YAAY;;;;;;;;;;;EAapF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY;;;;;;;;EAUlF"}
@@ -76,6 +76,8 @@ function isFirefox(capabilities) {
76
76
  */
77
77
  function isMobile(capabilities) {
78
78
  const browserName = (capabilities.browserName || '').toLowerCase();
79
+ const bsOptions = capabilities['bstack:options'] || {};
80
+ const browserstackBrowserName = (bsOptions.browserName || '').toLowerCase();
79
81
  /**
80
82
  * we have mobile capabilities if
81
83
  */
@@ -86,6 +88,9 @@ function isMobile(capabilities) {
86
88
  capabilities.platformName && capabilities.platformName.match(/ios/i) ||
87
89
  capabilities.platformName && capabilities.platformName.match(/tvos/i) ||
88
90
  capabilities.platformName && capabilities.platformName.match(/android/i) ||
91
+ /ios/i.test(bsOptions.platformName || '') ||
92
+ /tvos/i.test(bsOptions.platformName || '') ||
93
+ /android/i.test(bsOptions.platformName || '') ||
89
94
  /**
90
95
  * capabilities contain mobile only specific capabilities
91
96
  */
@@ -94,10 +99,12 @@ function isMobile(capabilities) {
94
99
  * browserName is empty (and eventually app is defined)
95
100
  */
96
101
  capabilities.browserName === '' ||
102
+ bsOptions.browserName === '' ||
97
103
  /**
98
104
  * browserName is a mobile browser
99
105
  */
100
- MOBILE_BROWSER_NAMES.includes(browserName));
106
+ MOBILE_BROWSER_NAMES.includes(browserName) ||
107
+ MOBILE_BROWSER_NAMES.includes(browserstackBrowserName));
101
108
  }
102
109
  /**
103
110
  * check if session is run on iOS device
@@ -105,11 +112,14 @@ function isMobile(capabilities) {
105
112
  * @return {Boolean} true if run on iOS device
106
113
  */
107
114
  function isIOS(capabilities) {
115
+ const bsOptions = capabilities?.['bstack:options'] || {};
108
116
  if (!capabilities) {
109
117
  return false;
110
118
  }
111
119
  return Boolean((capabilities.platformName && capabilities.platformName.match(/iOS/i)) ||
112
- (capabilities.deviceName && capabilities.deviceName.match(/(iPad|iPhone)/i)));
120
+ (capabilities.deviceName && capabilities.deviceName.match(/(iPad|iPhone)/i)) ||
121
+ (/iOS/i.test(bsOptions.platformName || '')) ||
122
+ (/(iPad|iPhone)/i.test(bsOptions.deviceName || '')));
113
123
  }
114
124
  /**
115
125
  * check if session is run on Android device
@@ -117,10 +127,13 @@ function isIOS(capabilities) {
117
127
  * @return {Boolean} true if run on Android device
118
128
  */
119
129
  function isAndroid(capabilities) {
130
+ const bsOptions = capabilities?.['bstack:options'] || {};
120
131
  if (!capabilities) {
121
132
  return false;
122
133
  }
123
134
  return Boolean((capabilities.platformName && capabilities.platformName.match(/Android/i)) ||
135
+ (/Android/i.test(bsOptions.platformName || '')) ||
136
+ (/Android/i.test(bsOptions.browserName || '')) ||
124
137
  (capabilities.browserName && capabilities.browserName.match(/Android/i)));
125
138
  }
126
139
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/utils",
3
- "version": "8.20.3",
3
+ "version": "8.21.0",
4
4
  "description": "A WDIO helper utility to provide several utility functions used across the project.",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-utils",
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@puppeteer/browsers": "^1.6.0",
41
41
  "@wdio/logger": "8.16.17",
42
- "@wdio/types": "8.20.0",
42
+ "@wdio/types": "8.21.0",
43
43
  "decamelize": "^6.0.0",
44
44
  "deepmerge-ts": "^5.1.0",
45
45
  "edgedriver": "^5.3.5",
@@ -55,5 +55,5 @@
55
55
  "publishConfig": {
56
56
  "access": "public"
57
57
  },
58
- "gitHead": "963b578edcfd5636994662122ebac35b0bd641f1"
58
+ "gitHead": "92a7474463e872223ee26c99112e79ad7d8eb8d3"
59
59
  }