@wdio/browserstack-service 7.24.0 → 7.25.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/README.md +85 -0
- package/build/constants.d.ts +1 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +6 -1
- package/build/launcher.d.ts +9 -1
- package/build/launcher.d.ts.map +1 -1
- package/build/launcher.js +143 -37
- package/build/types.d.ts +21 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -56,6 +56,91 @@ Set this to true to kill the browserstack process on complete, without waiting f
|
|
|
56
56
|
Type: `Boolean`<br />
|
|
57
57
|
Default: `false`
|
|
58
58
|
|
|
59
|
+
### app
|
|
60
|
+
[Appium](https://appium.io/) set this with app file path available locally on your machine to use the app as [application under test](https://www.browserstack.com/docs/app-automate/appium/set-up-tests/specify-app) for Appium sessions.
|
|
61
|
+
|
|
62
|
+
Type: `String` or `JsonObject`<br />
|
|
63
|
+
Default: `undefined`
|
|
64
|
+
|
|
65
|
+
List of available app values:
|
|
66
|
+
|
|
67
|
+
#### path
|
|
68
|
+
|
|
69
|
+
Use local available app file path as application under test for appium.
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
services: [
|
|
73
|
+
['browserstack', {
|
|
74
|
+
app: '/path/to/local/app.apk'
|
|
75
|
+
// OR
|
|
76
|
+
app: {
|
|
77
|
+
path: '/path/to/local/app.apk'
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Pass custom_id while app upload.
|
|
84
|
+
|
|
85
|
+
```js
|
|
86
|
+
services: [
|
|
87
|
+
['browserstack', {
|
|
88
|
+
app: {
|
|
89
|
+
path: '/path/to/local/app.apk',
|
|
90
|
+
custom_id: 'custom_id'
|
|
91
|
+
}
|
|
92
|
+
}]
|
|
93
|
+
]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### id
|
|
97
|
+
|
|
98
|
+
Use app url returned after uploading app to BrowserStack.
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
services: [
|
|
102
|
+
['browserstack', {
|
|
103
|
+
app: 'bs://<app-id>'
|
|
104
|
+
// OR
|
|
105
|
+
app: {
|
|
106
|
+
id: 'bs://<app-id>'
|
|
107
|
+
}
|
|
108
|
+
}]
|
|
109
|
+
]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### custom_id
|
|
113
|
+
|
|
114
|
+
use custom_id of already uploaded apps
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
services: [
|
|
118
|
+
['browserstack', {
|
|
119
|
+
app: 'custom_id'
|
|
120
|
+
// OR
|
|
121
|
+
app: {
|
|
122
|
+
custom_id: 'custom_id'
|
|
123
|
+
}
|
|
124
|
+
}]
|
|
125
|
+
]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### shareable_id
|
|
129
|
+
|
|
130
|
+
use shareable_id of already uploaded apps
|
|
131
|
+
|
|
132
|
+
```js
|
|
133
|
+
services: [
|
|
134
|
+
['browserstack', {
|
|
135
|
+
app: 'username/custom_id'
|
|
136
|
+
// OR
|
|
137
|
+
app: {
|
|
138
|
+
shareable_id: 'username/custom_id'
|
|
139
|
+
}
|
|
140
|
+
}]
|
|
141
|
+
]
|
|
142
|
+
```
|
|
143
|
+
|
|
59
144
|
### opts
|
|
60
145
|
Specified optional will be passed down to BrowserstackLocal.
|
|
61
146
|
|
package/build/constants.d.ts
CHANGED
package/build/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,qHAStB,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,qHAStB,CAAA;AAEV,eAAO,MAAM,mBAAmB,UAI/B,CAAA"}
|
package/build/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BROWSER_DESCRIPTION = void 0;
|
|
3
|
+
exports.VALID_APP_EXTENSION = exports.BROWSER_DESCRIPTION = void 0;
|
|
4
4
|
exports.BROWSER_DESCRIPTION = [
|
|
5
5
|
'device',
|
|
6
6
|
'os',
|
|
@@ -11,3 +11,8 @@ exports.BROWSER_DESCRIPTION = [
|
|
|
11
11
|
'browserVersion',
|
|
12
12
|
'browser_version'
|
|
13
13
|
];
|
|
14
|
+
exports.VALID_APP_EXTENSION = [
|
|
15
|
+
'.apk',
|
|
16
|
+
'.aab',
|
|
17
|
+
'.ipa'
|
|
18
|
+
];
|
package/build/launcher.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as BrowserstackLocalLauncher from 'browserstack-local';
|
|
2
2
|
import type { Capabilities, Services, Options } from '@wdio/types';
|
|
3
|
+
import { App, AppConfig, AppUploadResponse } from './types';
|
|
3
4
|
import { BrowserstackConfig } from './types';
|
|
4
5
|
declare type BrowserstackLocal = BrowserstackLocalLauncher.Local & {
|
|
5
6
|
pid?: number;
|
|
@@ -10,8 +11,15 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
|
|
|
10
11
|
private _config;
|
|
11
12
|
browserstackLocal?: BrowserstackLocal;
|
|
12
13
|
constructor(_options: BrowserstackConfig & Options.Testrunner, capabilities: Capabilities.RemoteCapability, _config: Options.Testrunner);
|
|
13
|
-
onPrepare(config?: Options.Testrunner, capabilities?: Capabilities.RemoteCapabilities):
|
|
14
|
+
onPrepare(config?: Options.Testrunner, capabilities?: Capabilities.RemoteCapabilities): Promise<unknown>;
|
|
14
15
|
onComplete(): true | Promise<unknown> | undefined;
|
|
16
|
+
_uploadApp(app: App): Promise<AppUploadResponse>;
|
|
17
|
+
/**
|
|
18
|
+
* @param {String | AppConfig} appConfig <string>: should be "app file path" or "app_url" or "custom_id" or "shareable_id".
|
|
19
|
+
* <object>: only "path" and "custom_id" should coexist as multiple properties.
|
|
20
|
+
*/
|
|
21
|
+
_validateApp(appConfig: AppConfig | string): Promise<App>;
|
|
22
|
+
_updateCaps(capabilities?: Capabilities.RemoteCapabilities, capType?: string, value?: string): void;
|
|
15
23
|
}
|
|
16
24
|
export {};
|
|
17
25
|
//# sourceMappingURL=launcher.d.ts.map
|
package/build/launcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAK5C,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;IAiCjC,SAAS,CAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IA6E5F,UAAU;IAmCJ,UAAU,CAAC,GAAG,EAAC,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBrD;;;OAGG;IACG,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBhE,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM;CA+C9F"}
|
package/build/launcher.js
CHANGED
|
@@ -26,12 +26,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const got_1 = __importDefault(require("got"));
|
|
30
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
31
|
+
const fs_1 = __importDefault(require("fs"));
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
29
33
|
const util_1 = require("util");
|
|
30
34
|
const perf_hooks_1 = require("perf_hooks");
|
|
35
|
+
const webdriverio_1 = require("webdriverio");
|
|
31
36
|
const BrowserstackLocalLauncher = __importStar(require("browserstack-local"));
|
|
32
37
|
const logger_1 = __importDefault(require("@wdio/logger"));
|
|
33
38
|
// @ts-ignore
|
|
34
39
|
const package_json_1 = require("../package.json");
|
|
40
|
+
const constants_1 = require("./constants");
|
|
35
41
|
const log = (0, logger_1.default)('@wdio/browserstack-service');
|
|
36
42
|
class BrowserstackLauncherService {
|
|
37
43
|
constructor(_options, capabilities, _config) {
|
|
@@ -72,7 +78,40 @@ class BrowserstackLauncherService {
|
|
|
72
78
|
});
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
|
-
onPrepare(config, capabilities) {
|
|
81
|
+
async onPrepare(config, capabilities) {
|
|
82
|
+
/**
|
|
83
|
+
* Upload app to BrowserStack if valid file path to app is given.
|
|
84
|
+
* Update app value of capability directly if app_url, custom_id, shareable_id is given
|
|
85
|
+
*/
|
|
86
|
+
if (!this._options.app) {
|
|
87
|
+
log.info('app is not defined in browserstack-service config, skipping ...');
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
let app = {};
|
|
91
|
+
let appConfig = this._options.app;
|
|
92
|
+
try {
|
|
93
|
+
app = await this._validateApp(appConfig);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw new webdriverio_1.SevereServiceError(error);
|
|
97
|
+
}
|
|
98
|
+
if (constants_1.VALID_APP_EXTENSION.includes(path_1.default.extname(app.app))) {
|
|
99
|
+
if (fs_1.default.existsSync(app.app)) {
|
|
100
|
+
let data;
|
|
101
|
+
data = await this._uploadApp(app);
|
|
102
|
+
log.info(`app upload completed: ${JSON.stringify(data)}`);
|
|
103
|
+
app.app = data.app_url;
|
|
104
|
+
}
|
|
105
|
+
else if (app.customId) {
|
|
106
|
+
app.app = app.customId;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
throw new webdriverio_1.SevereServiceError('[Invalid app path] app path ${app.app} is not correct, Provide correct path to app under test');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
log.info(`Using app: ${app.app}`);
|
|
113
|
+
this._updateCaps(capabilities, 'app', app.app);
|
|
114
|
+
}
|
|
76
115
|
if (!this._options.browserstackLocal) {
|
|
77
116
|
return log.info('browserstackLocal is not enabled - skipping...');
|
|
78
117
|
}
|
|
@@ -81,43 +120,9 @@ class BrowserstackLauncherService {
|
|
|
81
120
|
...this._options.opts
|
|
82
121
|
};
|
|
83
122
|
this.browserstackLocal = new BrowserstackLocalLauncher.Local();
|
|
84
|
-
|
|
85
|
-
capabilities.forEach((capability) => {
|
|
86
|
-
if (!capability['bstack:options']) {
|
|
87
|
-
const extensionCaps = Object.keys(capability).filter((cap) => cap.includes(':'));
|
|
88
|
-
if (extensionCaps.length) {
|
|
89
|
-
capability['bstack:options'] = { local: true };
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
capability['browserstack.local'] = true;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
capability['bstack:options'].local = true;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
else if (typeof capabilities === 'object') {
|
|
101
|
-
Object.entries(capabilities).forEach(([, caps]) => {
|
|
102
|
-
if (!caps.capabilities['bstack:options']) {
|
|
103
|
-
const extensionCaps = Object.keys(caps.capabilities).filter((cap) => cap.includes(':'));
|
|
104
|
-
if (extensionCaps.length) {
|
|
105
|
-
caps.capabilities['bstack:options'] = { local: true };
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
caps.capabilities['browserstack.local'] = true;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
caps.capabilities['bstack:options'].local = true;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
throw TypeError('Capabilities should be an object or Array!');
|
|
118
|
-
}
|
|
123
|
+
this._updateCaps(capabilities, 'local');
|
|
119
124
|
/**
|
|
120
|
-
* measure
|
|
125
|
+
* measure BrowserStack tunnel boot time
|
|
121
126
|
*/
|
|
122
127
|
const obs = new perf_hooks_1.PerformanceObserver((list) => {
|
|
123
128
|
const entry = list.getEntries()[0];
|
|
@@ -174,5 +179,106 @@ class BrowserstackLauncherService {
|
|
|
174
179
|
return Promise.reject(err);
|
|
175
180
|
});
|
|
176
181
|
}
|
|
182
|
+
async _uploadApp(app) {
|
|
183
|
+
log.info(`uploading app ${app.app} ${app.customId ? `and custom_id: ${app.customId}` : ''} to browserstack`);
|
|
184
|
+
const form = new form_data_1.default();
|
|
185
|
+
if (app.app)
|
|
186
|
+
form.append('file', fs_1.default.createReadStream(app.app));
|
|
187
|
+
if (app.customId)
|
|
188
|
+
form.append('custom_id', app.customId);
|
|
189
|
+
const res = await got_1.default.post('https://api-cloud.browserstack.com/app-automate/upload', {
|
|
190
|
+
body: form,
|
|
191
|
+
username: this._config.user,
|
|
192
|
+
password: this._config.key
|
|
193
|
+
}).json().catch((err) => {
|
|
194
|
+
throw new webdriverio_1.SevereServiceError(`app upload failed ${err.message}`);
|
|
195
|
+
});
|
|
196
|
+
return res;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* @param {String | AppConfig} appConfig <string>: should be "app file path" or "app_url" or "custom_id" or "shareable_id".
|
|
200
|
+
* <object>: only "path" and "custom_id" should coexist as multiple properties.
|
|
201
|
+
*/
|
|
202
|
+
async _validateApp(appConfig) {
|
|
203
|
+
let app = {};
|
|
204
|
+
if (typeof appConfig === 'string') {
|
|
205
|
+
app.app = appConfig;
|
|
206
|
+
}
|
|
207
|
+
else if (typeof appConfig === 'object' && Object.keys(appConfig).length) {
|
|
208
|
+
if (Object.keys(appConfig).length > 2 || (Object.keys(appConfig).length === 2 && (!appConfig.path || !appConfig.custom_id))) {
|
|
209
|
+
throw new webdriverio_1.SevereServiceError(`keys ${Object.keys(appConfig)} can't co-exist as app values, use any one property from
|
|
210
|
+
{id<string>, path<string>, custom_id<string>, shareable_id<string>}, only "path" and "custom_id" can co-exist.`);
|
|
211
|
+
}
|
|
212
|
+
app.app = appConfig.id || appConfig.path || appConfig.custom_id || appConfig.shareable_id;
|
|
213
|
+
app.customId = appConfig.custom_id;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
throw new webdriverio_1.SevereServiceError('[Invalid format] app should be string or an object');
|
|
217
|
+
}
|
|
218
|
+
if (!app.app) {
|
|
219
|
+
throw new webdriverio_1.SevereServiceError(`[Invalid app property] supported properties are {id<string>, path<string>, custom_id<string>, shareable_id<string>}.
|
|
220
|
+
For more details please visit https://www.browserstack.com/docs/app-automate/appium/set-up-tests/specify-app ')`);
|
|
221
|
+
}
|
|
222
|
+
return app;
|
|
223
|
+
}
|
|
224
|
+
_updateCaps(capabilities, capType, value) {
|
|
225
|
+
if (Array.isArray(capabilities)) {
|
|
226
|
+
capabilities.forEach((capability) => {
|
|
227
|
+
if (!capability['bstack:options']) {
|
|
228
|
+
const extensionCaps = Object.keys(capability).filter((cap) => cap.includes(':'));
|
|
229
|
+
if (extensionCaps.length) {
|
|
230
|
+
if (capType === 'local') {
|
|
231
|
+
capability['bstack:options'] = { local: true };
|
|
232
|
+
}
|
|
233
|
+
else if (capType === 'app') {
|
|
234
|
+
capability['appium:app'] = value;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else if (capType === 'local') {
|
|
238
|
+
capability['browserstack.local'] = true;
|
|
239
|
+
}
|
|
240
|
+
else if (capType === 'app') {
|
|
241
|
+
capability['app'] = value;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else if (capType === 'local') {
|
|
245
|
+
capability['bstack:options'].local = true;
|
|
246
|
+
}
|
|
247
|
+
else if (capType === 'app') {
|
|
248
|
+
capability['appium:app'] = value;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
else if (typeof capabilities === 'object') {
|
|
253
|
+
Object.entries(capabilities).forEach(([, caps]) => {
|
|
254
|
+
if (!caps.capabilities['bstack:options']) {
|
|
255
|
+
const extensionCaps = Object.keys(caps.capabilities).filter((cap) => cap.includes(':'));
|
|
256
|
+
if (extensionCaps.length) {
|
|
257
|
+
if (capType === 'local') {
|
|
258
|
+
caps.capabilities['bstack:options'] = { local: true };
|
|
259
|
+
}
|
|
260
|
+
else if (capType === 'app') {
|
|
261
|
+
caps.capabilities['appium:app'] = value;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else if (capType === 'local') {
|
|
265
|
+
caps.capabilities['browserstack.local'] = true;
|
|
266
|
+
}
|
|
267
|
+
else if (capType === 'app') {
|
|
268
|
+
caps.capabilities['app'] = value;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else if (capType === 'local') {
|
|
272
|
+
caps.capabilities['bstack:options'].local = true;
|
|
273
|
+
}
|
|
274
|
+
else if (capType === 'app') {
|
|
275
|
+
caps.capabilities['appium:app'] = value;
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
throw new webdriverio_1.SevereServiceError('Capabilities should be an object or Array!');
|
|
281
|
+
}
|
|
282
|
+
}
|
|
177
283
|
}
|
|
178
284
|
exports.default = BrowserstackLauncherService;
|
package/build/types.d.ts
CHANGED
|
@@ -4,12 +4,33 @@ export interface SessionResponse {
|
|
|
4
4
|
};
|
|
5
5
|
}
|
|
6
6
|
export declare type MultiRemoteAction = (sessionId: string, browserName?: string) => Promise<any>;
|
|
7
|
+
export declare type AppConfig = {
|
|
8
|
+
id?: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
custom_id?: string;
|
|
11
|
+
shareable_id?: string;
|
|
12
|
+
};
|
|
13
|
+
export interface AppUploadResponse {
|
|
14
|
+
app_url?: string;
|
|
15
|
+
custom_id?: string;
|
|
16
|
+
shareable_id?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface App {
|
|
19
|
+
app?: string;
|
|
20
|
+
customId?: string;
|
|
21
|
+
}
|
|
7
22
|
export interface BrowserstackConfig {
|
|
8
23
|
/**
|
|
9
24
|
* Set this to true to enable routing connections from Browserstack cloud through your computer.
|
|
10
25
|
* You will also need to set `browserstack.local` to true in browser capabilities.
|
|
11
26
|
*/
|
|
12
27
|
browserstackLocal?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Set this with app file path present locally on your device or
|
|
30
|
+
* app hashed id returned after uploading app to Browserstack or
|
|
31
|
+
* custom_id, sharable_id of the uploaded app
|
|
32
|
+
*/
|
|
33
|
+
app?: string | AppConfig;
|
|
13
34
|
/**
|
|
14
35
|
* Cucumber only. Set this to true to enable updating the session name to the Scenario name if only
|
|
15
36
|
* a single Scenario was ran. Useful when running in parallel
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAE5B,kBAAkB,EAAE;QAEhB,WAAW,EAAE,MAAM,CAAA;KACtB,CAAA;CACJ;AAED,oBAAY,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;CACvD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAE5B,kBAAkB,EAAE;QAEhB,WAAW,EAAE,MAAM,CAAA;KACtB,CAAA;CACJ;AAED,oBAAY,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE1F,oBAAY,SAAS,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,GAAG;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;CACvD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/browserstack-service",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.25.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",
|
|
@@ -25,10 +25,11 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@types/node": "^18.0.0",
|
|
27
27
|
"@wdio/logger": "7.19.0",
|
|
28
|
-
"@wdio/types": "7.
|
|
28
|
+
"@wdio/types": "7.25.0",
|
|
29
29
|
"browserstack-local": "^1.4.5",
|
|
30
|
+
"form-data": "^4.0.0",
|
|
30
31
|
"got": "^11.0.2",
|
|
31
|
-
"webdriverio": "7.
|
|
32
|
+
"webdriverio": "7.25.0"
|
|
32
33
|
},
|
|
33
34
|
"peerDependencies": {
|
|
34
35
|
"@wdio/cli": "^5.0.0 || ^6.0.0 || ^7.0.0"
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"access": "public"
|
|
38
39
|
},
|
|
39
40
|
"types": "./build/index.d.ts",
|
|
40
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "6e619e8d6a97561922c75a6e0ef2e6172e63b720"
|
|
41
42
|
}
|