appium-safari-driver 2.2.0 → 3.0.4

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.
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
14
+ var _support = require("@appium/support");
15
+
16
+ var _asyncbox = require("asyncbox");
17
+
18
+ var _logger = _interopRequireDefault(require("../logger"));
19
+
20
+ var _nodeSimctl = _interopRequireDefault(require("node-simctl"));
21
+
22
+ const commands = {};
23
+ const STARTUP_INTERVAL_MS = 300;
24
+ const STARTUP_TIMEOUT_MS = 10 * 1000;
25
+ const DEFAULT_TIME_LIMIT_MS = 60 * 10 * 1000;
26
+ const PROCESS_SHUTDOWN_TIMEOUT_MS = 10 * 1000;
27
+ const DEFAULT_EXT = '.mp4';
28
+
29
+ async function uploadRecordedMedia(localFile, remotePath = null, uploadOptions = {}) {
30
+ if (_lodash.default.isEmpty(remotePath)) {
31
+ const {
32
+ size
33
+ } = await _support.fs.stat(localFile);
34
+
35
+ _logger.default.debug(`The size of the resulting screen recording is ${_support.util.toReadableSizeString(size)}`);
36
+
37
+ return (await _support.util.toInMemoryBase64(localFile)).toString();
38
+ }
39
+
40
+ const {
41
+ user,
42
+ pass,
43
+ method,
44
+ headers,
45
+ fileFieldName,
46
+ formFields
47
+ } = uploadOptions;
48
+ const options = {
49
+ method: method || 'PUT',
50
+ headers,
51
+ fileFieldName,
52
+ formFields
53
+ };
54
+
55
+ if (user && pass) {
56
+ options.auth = {
57
+ user,
58
+ pass
59
+ };
60
+ }
61
+
62
+ await _support.net.uploadFile(localFile, remotePath, options);
63
+ return '';
64
+ }
65
+
66
+ const VIDEO_FILES = new Set();
67
+ process.on('exit', () => {
68
+ for (const videoFile of VIDEO_FILES) {
69
+ try {
70
+ _support.fs.rimrafSync(videoFile);
71
+ } catch (ign) {}
72
+ }
73
+ });
74
+
75
+ class ScreenRecorder {
76
+ constructor(udid, videoPath, opts = {}) {
77
+ this._process = null;
78
+ this._udid = udid;
79
+ this._videoPath = videoPath;
80
+ this._codec = opts.codec;
81
+ this._display = opts.display;
82
+ this._mask = opts.mask;
83
+ this._timeLimitMs = opts.timeLimit > 0 ? opts.timeLimit * 1000 : DEFAULT_TIME_LIMIT_MS;
84
+ this._timer = null;
85
+ }
86
+
87
+ async getVideoPath() {
88
+ if (await _support.fs.exists(this._videoPath)) {
89
+ VIDEO_FILES.add(this._videoPath);
90
+ return this._videoPath;
91
+ }
92
+
93
+ return '';
94
+ }
95
+
96
+ get isRunning() {
97
+ var _this$_process;
98
+
99
+ return !!((_this$_process = this._process) !== null && _this$_process !== void 0 && _this$_process.isRunning);
100
+ }
101
+
102
+ async _enforceTermination() {
103
+ if (this.isRunning) {
104
+ _logger.default.debug('Force-stopping the currently running video recording');
105
+
106
+ try {
107
+ await this._process.stop('SIGKILL');
108
+ } catch (ign) {}
109
+ }
110
+
111
+ this._process = null;
112
+ const videoPath = await this.getVideoPath();
113
+
114
+ if (videoPath) {
115
+ await _support.fs.rimraf(videoPath);
116
+ VIDEO_FILES.delete(videoPath);
117
+ }
118
+
119
+ return '';
120
+ }
121
+
122
+ async start() {
123
+ const args = [this._udid, 'recordVideo'];
124
+
125
+ if (this._display) {
126
+ args.push('--display', this._display);
127
+ }
128
+
129
+ if (this._codec) {
130
+ args.push('--codec', this._codec);
131
+ }
132
+
133
+ if (this._mask) {
134
+ args.push('--mask', this._mask);
135
+ }
136
+
137
+ args.push('--force', this._videoPath);
138
+ this._process = await new _nodeSimctl.default().exec('io', {
139
+ args,
140
+ asynchronous: true
141
+ });
142
+
143
+ _logger.default.debug(`Starting video recording with arguments: ${_support.util.quote(args)}`);
144
+
145
+ this._process.on('output', (stdout, stderr) => {
146
+ const line = _lodash.default.trim(stdout || stderr);
147
+
148
+ if (line) {
149
+ _logger.default.debug(`[recordVideo@${this._udid.substring(0, 8)}] ${line}`);
150
+ }
151
+ });
152
+
153
+ this._process.once('exit', async (code, signal) => {
154
+ this._process = null;
155
+
156
+ if (code === 0) {
157
+ _logger.default.debug('Screen recording exited without errors');
158
+ } else {
159
+ await this._enforceTermination();
160
+
161
+ _logger.default.warn(`Screen recording exited with error code ${code}, signal ${signal}`);
162
+ }
163
+ });
164
+
165
+ await this._process.start(0);
166
+
167
+ try {
168
+ await (0, _asyncbox.waitForCondition)(async () => {
169
+ if (!this.isRunning) {
170
+ throw new Error();
171
+ }
172
+
173
+ return !!(await this.getVideoPath());
174
+ }, {
175
+ waitMs: STARTUP_TIMEOUT_MS,
176
+ intervalMs: STARTUP_INTERVAL_MS
177
+ });
178
+ } catch (e) {
179
+ await this._enforceTermination();
180
+
181
+ _logger.default.errorAndThrow(`The expected screen record file '${this._videoPath}' does not exist after ${STARTUP_TIMEOUT_MS}ms. ` + `Check the server log for more details`);
182
+ }
183
+
184
+ this._timer = setTimeout(async () => {
185
+ if (this.isRunning) {
186
+ try {
187
+ await this.stop();
188
+ } catch (e) {
189
+ _logger.default.error(e);
190
+ }
191
+ }
192
+ }, this._timeLimitMs);
193
+
194
+ _logger.default.info(`The video recording has started. Will timeout in ${this._timeLimitMs}ms`);
195
+ }
196
+
197
+ async stop(force = false) {
198
+ if (this._timer) {
199
+ clearTimeout(this._timer);
200
+ this._timer = null;
201
+ }
202
+
203
+ if (force) {
204
+ return await this._enforceTermination();
205
+ }
206
+
207
+ if (!this.isRunning) {
208
+ _logger.default.debug('Screen recording is not running. Returning the recently recorded video');
209
+
210
+ return await this.getVideoPath();
211
+ }
212
+
213
+ try {
214
+ await this._process.stop('SIGINT', PROCESS_SHUTDOWN_TIMEOUT_MS);
215
+ } catch (e) {
216
+ await this._enforceTermination();
217
+ throw new Error(`Screen recording has failed to stop after ${PROCESS_SHUTDOWN_TIMEOUT_MS}ms`);
218
+ }
219
+
220
+ return await this.getVideoPath();
221
+ }
222
+
223
+ }
224
+
225
+ async function extractSimulatorUdid(caps) {
226
+ if (caps['safari:useSimulator'] === false) {
227
+ return null;
228
+ }
229
+
230
+ const allDevices = _lodash.default.flatMap(_lodash.default.values(await new _nodeSimctl.default().getDevices(null, 'iOS')));
231
+
232
+ for (const {
233
+ name,
234
+ udid,
235
+ state,
236
+ sdk
237
+ } of allDevices) {
238
+ if (state !== 'Booted') {
239
+ continue;
240
+ }
241
+
242
+ if (_lodash.default.toLower(caps['safari:deviceUDID']) === _lodash.default.toLower(udid)) {
243
+ return udid;
244
+ }
245
+
246
+ if (_lodash.default.toLower(caps['safari:deviceName']) === _lodash.default.toLower(name) && (caps['safari:platformVersion'] && caps['safari:platformVersion'] === sdk || !caps['safari:platformVersion'])) {
247
+ return udid;
248
+ }
249
+ }
250
+
251
+ return null;
252
+ }
253
+
254
+ commands.startRecordingScreen = async function startRecordingScreen(options = {}) {
255
+ var _this$_screenRecorder;
256
+
257
+ const {
258
+ timeLimit,
259
+ codec,
260
+ display,
261
+ mask,
262
+ forceRestart = true
263
+ } = options;
264
+
265
+ if ((_this$_screenRecorder = this._screenRecorder) !== null && _this$_screenRecorder !== void 0 && _this$_screenRecorder.isRunning) {
266
+ _logger.default.info('The screen recording is already running');
267
+
268
+ if (!forceRestart) {
269
+ _logger.default.info('Doing nothing');
270
+
271
+ return;
272
+ }
273
+
274
+ _logger.default.info('Forcing the active screen recording to stop');
275
+
276
+ await this._screenRecorder.stop(true);
277
+ }
278
+
279
+ this._screenRecorder = null;
280
+ const udid = await extractSimulatorUdid(this.caps);
281
+
282
+ if (!udid) {
283
+ throw new Error('Cannot determine Simulator UDID to record the video from. ' + 'Double check your session capabilities');
284
+ }
285
+
286
+ const videoPath = await _support.tempDir.path({
287
+ prefix: _support.util.uuidV4().substring(0, 8),
288
+ suffix: DEFAULT_EXT
289
+ });
290
+ this._screenRecorder = new ScreenRecorder(udid, videoPath, {
291
+ timeLimit: parseInt(timeLimit, 10),
292
+ codec,
293
+ display,
294
+ mask
295
+ });
296
+
297
+ try {
298
+ await this._screenRecorder.start();
299
+ } catch (e) {
300
+ this._screenRecorder = null;
301
+ throw e;
302
+ }
303
+ };
304
+
305
+ commands.stopRecordingScreen = async function stopRecordingScreen(options = {}) {
306
+ if (!this._screenRecorder) {
307
+ _logger.default.info('No screen recording has been started. Doing nothing');
308
+
309
+ return '';
310
+ }
311
+
312
+ _logger.default.debug('Retrieving the resulting video data');
313
+
314
+ const videoPath = await this._screenRecorder.stop();
315
+
316
+ if (!videoPath) {
317
+ _logger.default.info('No video data is found. Returning an empty string');
318
+
319
+ return '';
320
+ }
321
+
322
+ return await uploadRecordedMedia(videoPath, options.remotePath, options);
323
+ };
324
+
325
+ var _default = commands;
326
+ exports.default = _default;require('source-map-support').install();
327
+
328
+
329
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiU1RBUlRVUF9JTlRFUlZBTF9NUyIsIlNUQVJUVVBfVElNRU9VVF9NUyIsIkRFRkFVTFRfVElNRV9MSU1JVF9NUyIsIlBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyIsIkRFRkFVTFRfRVhUIiwidXBsb2FkUmVjb3JkZWRNZWRpYSIsImxvY2FsRmlsZSIsInJlbW90ZVBhdGgiLCJ1cGxvYWRPcHRpb25zIiwiXyIsImlzRW1wdHkiLCJzaXplIiwiZnMiLCJzdGF0IiwibG9nIiwiZGVidWciLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJ1c2VyIiwicGFzcyIsIm1ldGhvZCIsImhlYWRlcnMiLCJmaWxlRmllbGROYW1lIiwiZm9ybUZpZWxkcyIsIm9wdGlvbnMiLCJhdXRoIiwibmV0IiwidXBsb2FkRmlsZSIsIlZJREVPX0ZJTEVTIiwiU2V0IiwicHJvY2VzcyIsIm9uIiwidmlkZW9GaWxlIiwicmltcmFmU3luYyIsImlnbiIsIlNjcmVlblJlY29yZGVyIiwiY29uc3RydWN0b3IiLCJ1ZGlkIiwidmlkZW9QYXRoIiwib3B0cyIsIl9wcm9jZXNzIiwiX3VkaWQiLCJfdmlkZW9QYXRoIiwiX2NvZGVjIiwiY29kZWMiLCJfZGlzcGxheSIsImRpc3BsYXkiLCJfbWFzayIsIm1hc2siLCJfdGltZUxpbWl0TXMiLCJ0aW1lTGltaXQiLCJfdGltZXIiLCJnZXRWaWRlb1BhdGgiLCJleGlzdHMiLCJhZGQiLCJpc1J1bm5pbmciLCJfZW5mb3JjZVRlcm1pbmF0aW9uIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIkVycm9yIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImUiLCJlcnJvckFuZFRocm93Iiwic2V0VGltZW91dCIsImVycm9yIiwiaW5mbyIsImZvcmNlIiwiY2xlYXJUaW1lb3V0IiwiZXh0cmFjdFNpbXVsYXRvclVkaWQiLCJjYXBzIiwiYWxsRGV2aWNlcyIsImZsYXRNYXAiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwibmFtZSIsInN0YXRlIiwic2RrIiwidG9Mb3dlciIsInN0YXJ0UmVjb3JkaW5nU2NyZWVuIiwiZm9yY2VSZXN0YXJ0IiwiX3NjcmVlblJlY29yZGVyIiwidGVtcERpciIsInBhdGgiLCJwcmVmaXgiLCJ1dWlkVjQiLCJzdWZmaXgiLCJwYXJzZUludCIsInN0b3BSZWNvcmRpbmdTY3JlZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUEsTUFBTUMsbUJBQW1CLEdBQUcsR0FBNUI7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxLQUFLLElBQWhDO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsS0FBSyxFQUFMLEdBQVUsSUFBeEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxLQUFLLElBQXpDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLE1BQXBCOztBQUdBLGVBQWVDLG1CQUFmLENBQW9DQyxTQUFwQyxFQUErQ0MsVUFBVSxHQUFHLElBQTVELEVBQWtFQyxhQUFhLEdBQUcsRUFBbEYsRUFBc0Y7QUFDcEYsTUFBSUMsZ0JBQUVDLE9BQUYsQ0FBVUgsVUFBVixDQUFKLEVBQTJCO0FBQ3pCLFVBQU07QUFBQ0ksTUFBQUE7QUFBRCxRQUFTLE1BQU1DLFlBQUdDLElBQUgsQ0FBUVAsU0FBUixDQUFyQjs7QUFDQVEsb0JBQUlDLEtBQUosQ0FBVyxpREFBZ0RDLGNBQUtDLG9CQUFMLENBQTBCTixJQUExQixDQUFnQyxFQUEzRjs7QUFDQSxXQUFPLENBQUMsTUFBTUss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QVY7O0FBQ0EsUUFBTXlCLFNBQVMsR0FBRyxNQUFNLEtBQUs0RCxlQUFMLENBQXFCekMsSUFBckIsRUFBeEI7O0FBQ0EsTUFBSSxDQUFDbkIsU0FBTCxFQUFnQjtBQUNkMUIsb0JBQUl1RSxJQUFKLENBQVMsbURBQVQ7O0FBQ0EsV0FBTyxFQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNaEYsbUJBQW1CLENBQUNtQyxTQUFELEVBQVlkLE9BQU8sQ0FBQ25CLFVBQXBCLEVBQWdDbUIsT0FBaEMsQ0FBaEM7QUFDRCxDQWJEOztlQWVlM0IsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsLCBmcywgbmV0LCB0ZW1wRGlyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgU2ltY3RsIGZyb20gJ25vZGUtc2ltY3RsJztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5jb25zdCBTVEFSVFVQX0lOVEVSVkFMX01TID0gMzAwO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9USU1FX0xJTUlUX01TID0gNjAgKiAxMCAqIDEwMDA7IC8vIDEwIG1pbnV0ZXNcbmNvbnN0IFBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyA9IDEwICogMTAwMDtcbmNvbnN0IERFRkFVTFRfRVhUID0gJy5tcDQnO1xuXG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZFJlY29yZGVkTWVkaWEgKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCA9IG51bGwsIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBpZiAoXy5pc0VtcHR5KHJlbW90ZVBhdGgpKSB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdChsb2NhbEZpbGUpO1xuICAgIGxvZy5kZWJ1ZyhgVGhlIHNpemUgb2YgdGhlIHJlc3VsdGluZyBzY3JlZW4gcmVjb3JkaW5nIGlzICR7dXRpbC50b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX1gKTtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qge3VzZXIsIHBhc3MsIG1ldGhvZCwgaGVhZGVycywgZmlsZUZpZWxkTmFtZSwgZm9ybUZpZWxkc30gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogbWV0aG9kIHx8ICdQVVQnLFxuICAgIGhlYWRlcnMsXG4gICAgZmlsZUZpZWxkTmFtZSxcbiAgICBmb3JtRmllbGRzLFxuICB9O1xuICBpZiAodXNlciAmJiBwYXNzKSB7XG4gICAgb3B0aW9ucy5hdXRoID0ge3VzZXIsIHBhc3N9O1xuICB9XG4gIGF3YWl0IG5ldC51cGxvYWRGaWxlKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCwgb3B0aW9ucyk7XG4gIHJldHVybiAnJztcbn1cblxuY29uc3QgVklERU9fRklMRVMgPSBuZXcgU2V0KCk7XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHZpZGVvRmlsZSBvZiBWSURFT19GSUxFUykge1xuICAgIHRyeSB7XG4gICAgICBmcy5yaW1yYWZTeW5jKHZpZGVvRmlsZSk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2NyZWVuUmVjb3JkZXIge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgdmlkZW9QYXRoLCBvcHRzID0ge30pIHtcbiAgICB0aGlzLl9wcm9jZXNzID0gbnVsbDtcbiAgICB0aGlzLl91ZGlkID0gdWRpZDtcbiAgICB0aGlzLl92aWRlb1BhdGggPSB2aWRlb1BhdGg7XG4gICAgdGhpcy5fY29kZWMgPSBvcHRzLmNvZGVjO1xuICAgIHRoaXMuX2Rpc3BsYXkgPSBvcHRzLmRpc3BsYXk7XG4gICAgdGhpcy5fbWFzayA9IG9wdHMubWFzaztcbiAgICB0aGlzLl90aW1lTGltaXRNcyA9IG9wdHMudGltZUxpbWl0ID4gMCA/IG9wdHMudGltZUxpbWl0ICogMTAwMCA6IERFRkFVTFRfVElNRV9MSU1JVF9NUztcbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gIH1cblxuICBhc3luYyBnZXRWaWRlb1BhdGggKCkge1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHModGhpcy5fdmlkZW9QYXRoKSkge1xuICAgICAgVklERU9fRklMRVMuYWRkKHRoaXMuX3ZpZGVvUGF0aCk7XG4gICAgICByZXR1cm4gdGhpcy5fdmlkZW9QYXRoO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5fcHJvY2Vzcz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIF9lbmZvcmNlVGVybWluYXRpb24gKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgbG9nLmRlYnVnKCdGb3JjZS1zdG9wcGluZyB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdmlkZW8gcmVjb3JkaW5nJyk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9wcm9jZXNzLnN0b3AoJ1NJR0tJTEwnKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG4gICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgICBpZiAodmlkZW9QYXRoKSB7XG4gICAgICBhd2FpdCBmcy5yaW1yYWYodmlkZW9QYXRoKTtcbiAgICAgIFZJREVPX0ZJTEVTLmRlbGV0ZSh2aWRlb1BhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBhc3luYyBzdGFydCAoKSB7XG4gICAgY29uc3QgYXJncyA9IFtcbiAgICAgIHRoaXMuX3VkaWQsICdyZWNvcmRWaWRlbydcbiAgICBdO1xuICAgIGlmICh0aGlzLl9kaXNwbGF5KSB7XG4gICAgICBhcmdzLnB1c2goJy0tZGlzcGxheScsIHRoaXMuX2Rpc3BsYXkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fY29kZWMpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1jb2RlYycsIHRoaXMuX2NvZGVjKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX21hc2spIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1tYXNrJywgdGhpcy5fbWFzayk7XG4gICAgfVxuICAgIGFyZ3MucHVzaCgnLS1mb3JjZScsIHRoaXMuX3ZpZGVvUGF0aCk7XG4gICAgdGhpcy5fcHJvY2VzcyA9IGF3YWl0IG5ldyBTaW1jdGwoKS5leGVjKCdpbycsIHtcbiAgICAgIGFyZ3MsXG4gICAgICBhc3luY2hyb25vdXM6IHRydWUsXG4gICAgfSk7XG4gICAgbG9nLmRlYnVnKGBTdGFydGluZyB2aWRlbyByZWNvcmRpbmcgd2l0aCBhcmd1bWVudHM6ICR7dXRpbC5xdW90ZShhcmdzKX1gKTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAobGluZSkge1xuICAgICAgICBsb2cuZGVidWcoYFtyZWNvcmRWaWRlb0Ake3RoaXMuX3VkaWQuc3Vic3RyaW5nKDAsIDgpfV0gJHtsaW5lfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX3Byb2Nlc3Mub25jZSgnZXhpdCcsIGFzeW5jIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgbG9nLmRlYnVnKCdTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRob3V0IGVycm9ycycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZW5mb3JjZVRlcm1pbmF0aW9uKCk7XG4gICAgICAgIGxvZy53YXJuKGBTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RhcnQoMCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCkpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgICAgaW50ZXJ2YWxNczogU1RBUlRVUF9JTlRFUlZBTF9NUyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFRoZSBleHBlY3RlZCBzY3JlZW4gcmVjb3JkIGZpbGUgJyR7dGhpcy5fdmlkZW9QYXRofScgZG9lcyBub3QgZXhpc3QgYWZ0ZXIgJHtTVEFSVFVQX1RJTUVPVVRfTVN9bXMuIGAgK1xuICAgICAgICBgQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlsc2ApO1xuICAgIH1cbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB0aGlzLl90aW1lTGltaXRNcyk7XG4gICAgbG9nLmluZm8oYFRoZSB2aWRlbyByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuIFdpbGwgdGltZW91dCBpbiAke3RoaXMuX3RpbWVMaW1pdE1zfW1zYCk7XG4gIH1cblxuICBhc3luYyBzdG9wIChmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBpcyBub3QgcnVubmluZy4gUmV0dXJuaW5nIHRoZSByZWNlbnRseSByZWNvcmRlZCB2aWRlbycpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RvcCgnU0lHSU5UJywgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0b3AgYWZ0ZXIgJHtQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVN9bXNgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0U2ltdWxhdG9yVWRpZCAoY2Fwcykge1xuICBpZiAoY2Fwc1snc2FmYXJpOnVzZVNpbXVsYXRvciddID09PSBmYWxzZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYWxsRGV2aWNlcyA9IF8uZmxhdE1hcChfLnZhbHVlcyhhd2FpdCBuZXcgU2ltY3RsKCkuZ2V0RGV2aWNlcyhudWxsLCAnaU9TJykpKTtcbiAgZm9yIChjb25zdCB7bmFtZSwgdWRpZCwgc3RhdGUsIHNka30gb2YgYWxsRGV2aWNlcykge1xuICAgIGlmIChzdGF0ZSAhPT0gJ0Jvb3RlZCcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZVVESUQnXSkgPT09IF8udG9Mb3dlcih1ZGlkKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZU5hbWUnXSkgPT09IF8udG9Mb3dlcihuYW1lKSAmJlxuICAgICAgKGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSAmJiBjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10gPT09IHNka1xuICAgICAgICB8fCAhY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFJlY29yZGluZ09wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGNvZGVjIFtoZXZjXSAtIFNwZWNpZmllcyB0aGUgY29kZWMgdHlwZTogXCJoMjY0XCIgb3IgXCJoZXZjXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZGlzcGxheSBbaW50ZXJuYWxdIC0gU3VwcG9ydHMgXCJpbnRlcm5hbFwiIG9yIFwiZXh0ZXJuYWxcIi4gRGVmYXVsdCBpcyBcImludGVybmFsXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWFzayAtIEZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMsIGhhbmRsZSB0aGUgbWFzayBieSBwb2xpY3k6XG4gKiAtIGlnbm9yZWQ6IFRoZSBtYXNrIGlzIGlnbm9yZWQgYW5kIHRoZSB1bm1hc2tlZCBmcmFtZWJ1ZmZlciBpcyBzYXZlZC5cbiAqIC0gYWxwaGE6IE5vdCBzdXBwb3J0ZWQsIGJ1dCByZXRhaW5lZCBmb3IgY29tcGF0aWJpbGl0eTsgdGhlIG1hc2sgaXMgcmVuZGVyZWQgYmxhY2suXG4gKiAtIGJsYWNrOiBUaGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bWJlcn0gdGltZUxpbWl0IFs2MDBdIC0gVGhlIG1heGltdW0gcmVjb3JkaW5nIHRpbWUsIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0XG4gKiB2YWx1ZSBpcyA2MDAgc2Vjb25kcyAoMTAgbWludXRlcykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGZvcmNlUmVzdGFydCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIGlnbm9yZSB0aGUgY2FsbCBpZiBhIHNjcmVlbiByZWNvcmRpbmcgaXMgY3VycmVudGx5IHJ1bm5pbmdcbiAqIChgZmFsc2VgKSBvciB0byBzdGFydCBhIG5ldyByZWNvcmRpbmcgaW1tZWRpYXRlbHkgYW5kIHRlcm1pbmF0ZSB0aGUgZXhpc3Rpbmcgb25lIGlmIHJ1bm5pbmcgKGB0cnVlYCkuXG4gKi9cblxuLyoqXG4gKiBSZWNvcmQgdGhlIFNpbXVsYXRvcidzIGRpc3BsYXkgaW4gYmFja2dyb3VuZCB3aGlsZSB0aGUgYXV0b21hdGVkIHRlc3QgaXMgcnVubmluZy5cbiAqIFRoaXMgbWV0aG9kIHVzZXMgYHhjcnVuIHNpbWN0bCBpbyByZWNvcmRWaWRlb2AgaGVscGVyIHVuZGVyIHRoZSBob29kLlxuICogQ2hlY2sgdGhlIG91dHB1dCBvZiBgeGNydW4gc2ltY3RsIGlvYCBjb21tYW5kIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHs/U3RhcnRSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHRocm93cyB7RXJyb3J9IElmIHNjcmVlbiByZWNvcmRpbmcgaGFzIGZhaWxlZCB0byBzdGFydCBvciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZGVzdGluYXRpb24gZGV2aWNlLlxuICovXG5jb21tYW5kcy5zdGFydFJlY29yZGluZ1NjcmVlbiA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UmVjb3JkaW5nU2NyZWVuIChvcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHRpbWVMaW1pdCxcbiAgICBjb2RlYyxcbiAgICBkaXNwbGF5LFxuICAgIG1hc2ssXG4gICAgZm9yY2VSZXN0YXJ0ID0gdHJ1ZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICh0aGlzLl9zY3JlZW5SZWNvcmRlcj8uaXNSdW5uaW5nKSB7XG4gICAgbG9nLmluZm8oJ1RoZSBzY3JlZW4gcmVjb3JkaW5nIGlzIGFscmVhZHkgcnVubmluZycpO1xuICAgIGlmICghZm9yY2VSZXN0YXJ0KSB7XG4gICAgICBsb2cuaW5mbygnRG9pbmcgbm90aGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsb2cuaW5mbygnRm9yY2luZyB0aGUgYWN0aXZlIHNjcmVlbiByZWNvcmRpbmcgdG8gc3RvcCcpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0b3AodHJ1ZSk7XG4gIH1cbiAgdGhpcy5fc2NyZWVuUmVjb3JkZXIgPSBudWxsO1xuXG4gIGNvbnN0IHVkaWQgPSBhd2FpdCBleHRyYWN0U2ltdWxhdG9yVWRpZCh0aGlzLmNhcHMpO1xuICBpZiAoIXVkaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZXRlcm1pbmUgU2ltdWxhdG9yIFVESUQgdG8gcmVjb3JkIHRoZSB2aWRlbyBmcm9tLiAnICtcbiAgICAgICdEb3VibGUgY2hlY2sgeW91ciBzZXNzaW9uIGNhcGFiaWxpdGllcycpO1xuICB9XG5cbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGVtcERpci5wYXRoKHtcbiAgICBwcmVmaXg6IHV0aWwudXVpZFY0KCkuc3Vic3RyaW5nKDAsIDgpLFxuICAgIHN1ZmZpeDogREVGQVVMVF9FWFQsXG4gIH0pO1xuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG5ldyBTY3JlZW5SZWNvcmRlcih1ZGlkLCB2aWRlb1BhdGgsIHtcbiAgICB0aW1lTGltaXQ6IHBhcnNlSW50KHRpbWVMaW1pdCwgMTApLFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RhcnQoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSByZW1vdGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIHJlbW90ZSBsb2NhdGlvbiwgd2hlcmUgdGhlIHJlc3VsdGluZyB2aWRlbyBzaG91bGQgYmUgdXBsb2FkZWQuXG4gKiBUaGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBodHRwL2h0dHBzLCBmdHAuXG4gKiBOdWxsIG9yIGVtcHR5IHN0cmluZyB2YWx1ZSAodGhlIGRlZmF1bHQgc2V0dGluZykgbWVhbnMgdGhlIGNvbnRlbnQgb2YgcmVzdWx0aW5nXG4gKiBmaWxlIHNob3VsZCBiZSBlbmNvZGVkIGFzIEJhc2U2NCBhbmQgcGFzc2VkIGFzIHRoZSBlbmRwb2ludCByZXNwb25zZSB2YWx1ZS5cbiAqIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgZ2VuZXJhdGVkIG1lZGlhIGZpbGUgaXMgdG9vIGJpZyB0b1xuICogZml0IGludG8gdGhlIGF2YWlsYWJsZSBwcm9jZXNzIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXNlciAtIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXNzIC0gVGhlIHBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtZXRob2QgLSBUaGUgaHR0cCBtdWx0aXBhcnQgdXBsb2FkIG1ldGhvZCBuYW1lLiBUaGUgJ1BVVCcgb25lIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgaGVhZGVycyBtYXBwaW5nIGZvciBtdWx0aXBhcnQgaHR0cChzKSB1cGxvYWRzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQsIHdoZXJlIHRoZSBmaWxlIGNvbnRlbnQgQkxPQiBzaG91bGQgYmUgc3RvcmVkIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/T2JqZWN0fEFycmF5PFBhaXI+fSBmb3JtRmllbGRzIC0gQWRkaXRpb25hbCBmb3JtIGZpZWxkcyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICovXG5cbi8qKlxuICogU3RvcCByZWNvcmRpbmcgdGhlIHNjcmVlbi5cbiAqIElmIG5vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUgdGhlbiB0aGUgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7P1N0b3BSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcmVjb3JkZWQgbWVkaWEgZmlsZSBpZiAncmVtb3RlUGF0aCdcbiAqIHBhcmFtZXRlciBpcyBmYWxzeSBvciBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGdldHRpbmcgdGhlIG5hbWUgb2YgYSBtZWRpYSBmaWxlXG4gKiBvciB0aGUgZmlsZSBjb250ZW50IGNhbm5vdCBiZSB1cGxvYWRlZCB0byB0aGUgcmVtb3RlIGxvY2F0aW9uXG4gKiBvciBzY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICovXG5jb21tYW5kcy5zdG9wUmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RvcFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGlmICghdGhpcy5fc2NyZWVuUmVjb3JkZXIpIHtcbiAgICBsb2cuaW5mbygnTm8gc2NyZWVuIHJlY29yZGluZyBoYXMgYmVlbiBzdGFydGVkLiBEb2luZyBub3RoaW5nJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbG9nLmRlYnVnKCdSZXRyaWV2aW5nIHRoZSByZXN1bHRpbmcgdmlkZW8gZGF0YScpO1xuICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0aGlzLl9zY3JlZW5SZWNvcmRlci5zdG9wKCk7XG4gIGlmICghdmlkZW9QYXRoKSB7XG4gICAgbG9nLmluZm8oJ05vIHZpZGVvIGRhdGEgaXMgZm91bmQuIFJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHVwbG9hZFJlY29yZGVkTWVkaWEodmlkZW9QYXRoLCBvcHRpb25zLnJlbW90ZVBhdGgsIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _appiumBaseDriver = require("appium-base-driver");
14
+ var _baseDriver = require("@appium/base-driver");
15
15
 
16
16
  var _logger = _interopRequireDefault(require("./logger"));
17
17
 
@@ -23,9 +23,9 @@ var _index = _interopRequireDefault(require("./commands/index"));
23
23
 
24
24
  var _utils = require("./utils");
25
25
 
26
- const NO_PROXY = [['GET', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/element/[^/]+/elements?$')], ['POST', new RegExp('^/session/[^/]+/elements?$')]];
26
+ const NO_PROXY = [['GET', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/element/[^/]+/elements?$')], ['POST', new RegExp('^/session/[^/]+/elements?$')], ['DELETE', new RegExp('^/session/[^/]+/cookie$')]];
27
27
 
28
- class SafariDriver extends _appiumBaseDriver.BaseDriver {
28
+ class SafariDriver extends _baseDriver.BaseDriver {
29
29
  constructor(opts = {}) {
30
30
  super(opts);
31
31
  this.desiredCapConstraints = _desiredCaps.desiredCapConstraints;
@@ -41,6 +41,7 @@ class SafariDriver extends _appiumBaseDriver.BaseDriver {
41
41
  this.safari = null;
42
42
  this.proxyReqRes = null;
43
43
  this.isProxyActive = false;
44
+ this._screenRecorder = null;
44
45
  }
45
46
 
46
47
  proxyActive() {
@@ -72,9 +73,12 @@ class SafariDriver extends _appiumBaseDriver.BaseDriver {
72
73
  }
73
74
 
74
75
  async deleteSession() {
76
+ var _this$_screenRecorder, _this$safari;
77
+
75
78
  _logger.default.info('Ending Safari session');
76
79
 
77
- await this.safari.stop();
80
+ await ((_this$_screenRecorder = this._screenRecorder) === null || _this$_screenRecorder === void 0 ? void 0 : _this$_screenRecorder.stop(true));
81
+ await ((_this$safari = this.safari) === null || _this$safari === void 0 ? void 0 : _this$safari.stop());
78
82
  this.resetState();
79
83
  await super.deleteSession();
80
84
  }
@@ -85,4 +89,4 @@ var _default = SafariDriver;
85
89
  exports.default = _default;require('source-map-support').install();
86
90
 
87
91
 
88
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwibmFtZXMiOlsiTk9fUFJPWFkiLCJSZWdFeHAiLCJTYWZhcmlEcml2ZXIiLCJCYXNlRHJpdmVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJyZXNldFN0YXRlIiwiY21kIiwiZm4iLCJfIiwidG9QYWlycyIsImNvbW1hbmRzIiwicHJvdG90eXBlIiwic2FmYXJpIiwicHJveHlSZXFSZXMiLCJpc1Byb3h5QWN0aXZlIiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwiY3JlYXRlU2Vzc2lvbiIsImFyZ3MiLCJzZXNzaW9uSWQiLCJjYXBzIiwiU2FmYXJpRHJpdmVyU2VydmVyIiwic3RhcnQiLCJlIiwiZGVsZXRlU2Vzc2lvbiIsInByb3h5IiwiYmluZCIsImxvZyIsImluZm8iLCJzdG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsQ0FBakI7O0FBT0EsTUFBTUMsWUFBTixTQUEyQkMsNEJBQTNCLENBQXNDO0FBQ3BDQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEIsVUFBTUEsSUFBTjtBQUNBLFNBQUtDLHFCQUFMLEdBQTZCQSxrQ0FBN0I7QUFDQSxTQUFLQyxpQkFBTCxHQUF5QixDQUN2QixPQUR1QixFQUV2QixVQUZ1QixFQUd2QixXQUh1QixFQUl2QixtQkFKdUIsRUFLdkIsY0FMdUIsRUFPdkIsSUFQdUIsRUFRdkIsTUFSdUIsQ0FBekI7QUFVQSxTQUFLQyxVQUFMOztBQUVBLFNBQUssTUFBTSxDQUFDQyxHQUFELEVBQU1DLEVBQU4sQ0FBWCxJQUF3QkMsZ0JBQUVDLE9BQUYsQ0FBVUMsY0FBVixDQUF4QixFQUE2QztBQUMzQ1gsTUFBQUEsWUFBWSxDQUFDWSxTQUFiLENBQXVCTCxHQUF2QixJQUE4QkMsRUFBOUI7QUFDRDtBQUNGOztBQUVERixFQUFBQSxVQUFVLEdBQUk7QUFDWixTQUFLTyxNQUFMLEdBQWMsSUFBZDtBQUNBLFNBQUtDLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEtBQXJCO0FBQ0Q7O0FBRURDLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFdBQU8sS0FBS0QsYUFBWjtBQUNEOztBQUVERSxFQUFBQSxpQkFBaUIsR0FBSTtBQUNuQixXQUFPbkIsUUFBUDtBQUNEOztBQUVEb0IsRUFBQUEsUUFBUSxHQUFJO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBTUMsYUFBTixDQUFxQixHQUFHQyxJQUF4QixFQUE4QjtBQUM1QixVQUFNLENBQUNDLFNBQUQsRUFBWUMsSUFBWixJQUFvQixNQUFNLE1BQU1ILGFBQU4sQ0FBb0IsR0FBR0MsSUFBdkIsQ0FBaEM7QUFDQSxTQUFLUCxNQUFMLEdBQWMsSUFBSVUsZUFBSixFQUFkOztBQUNBLFFBQUk7QUFDRixZQUFNLEtBQUtWLE1BQUwsQ0FBWVcsS0FBWixDQUFrQixnQ0FBb0JGLElBQXBCLENBQWxCLENBQU47QUFDRCxLQUZELENBRUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1YsWUFBTSxLQUFLQyxhQUFMLEVBQU47QUFDQSxZQUFNRCxDQUFOO0FBQ0Q7O0FBQ0QsU0FBS1gsV0FBTCxHQUFtQixLQUFLRCxNQUFMLENBQVljLEtBQVosQ0FBa0JiLFdBQWxCLENBQThCYyxJQUE5QixDQUFtQyxLQUFLZixNQUFMLENBQVljLEtBQS9DLENBQW5CO0FBQ0EsU0FBS1osYUFBTCxHQUFxQixJQUFyQjtBQUNBLFdBQU8sQ0FBQ00sU0FBRCxFQUFZQyxJQUFaLENBQVA7QUFDRDs7QUFFRCxRQUFNSSxhQUFOLEdBQXVCO0FBQ3JCRyxvQkFBSUMsSUFBSixDQUFTLHVCQUFUOztBQUNBLFVBQU0sS0FBS2pCLE1BQUwsQ0FBWWtCLElBQVosRUFBTjtBQUNBLFNBQUt6QixVQUFMO0FBRUEsVUFBTSxNQUFNb0IsYUFBTixFQUFOO0FBQ0Q7O0FBM0RtQzs7ZUE4RHZCMUIsWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCYXNlRHJpdmVyIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlciBmcm9tICcuL3NhZmFyaSc7XG5pbXBvcnQgeyBkZXNpcmVkQ2FwQ29uc3RyYWludHMgfSBmcm9tICcuL2Rlc2lyZWQtY2Fwcyc7XG5pbXBvcnQgY29tbWFuZHMgZnJvbSAnLi9jb21tYW5kcy9pbmRleCc7XG5pbXBvcnQgeyBmb3JtYXRDYXBzRm9yU2VydmVyIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IE5PX1BST1hZID0gW1xuICBbJ0dFVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9hcHBpdW0nKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9hcHBpdW0nKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9lbGVtZW50L1teL10rL2VsZW1lbnRzPyQnKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9lbGVtZW50cz8kJyldLFxuXTtcblxuY2xhc3MgU2FmYXJpRHJpdmVyIGV4dGVuZHMgQmFzZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihvcHRzKTtcbiAgICB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cyA9IGRlc2lyZWRDYXBDb25zdHJhaW50cztcbiAgICB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzID0gW1xuICAgICAgJ3hwYXRoJyxcbiAgICAgICd0YWcgbmFtZScsXG4gICAgICAnbGluayB0ZXh0JyxcbiAgICAgICdwYXJ0aWFsIGxpbmsgdGV4dCcsXG4gICAgICAnY3NzIHNlbGVjdG9yJyxcbiAgICAgIC8vIExldCB0aGVzZSB0d28gcmVhY2ggU2FmYXJpIERyaXZlciBhbmQgZmFpbCB0aGVyZSB3aXRoIGEgcHJvcGVyIGVycm9yIG1lc3NhZ2VcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgXTtcbiAgICB0aGlzLnJlc2V0U3RhdGUoKTtcblxuICAgIGZvciAoY29uc3QgW2NtZCwgZm5dIG9mIF8udG9QYWlycyhjb21tYW5kcykpIHtcbiAgICAgIFNhZmFyaURyaXZlci5wcm90b3R5cGVbY21kXSA9IGZuO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0U3RhdGUgKCkge1xuICAgIHRoaXMuc2FmYXJpID0gbnVsbDtcbiAgICB0aGlzLnByb3h5UmVxUmVzID0gbnVsbDtcbiAgICB0aGlzLmlzUHJveHlBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3h5QWN0aXZlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKCkge1xuICAgIHJldHVybiBOT19QUk9YWTtcbiAgfVxuXG4gIGNhblByb3h5ICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oLi4uYXJncyk7XG4gICAgdGhpcy5zYWZhcmkgPSBuZXcgU2FmYXJpRHJpdmVyU2VydmVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2FmYXJpLnN0YXJ0KGZvcm1hdENhcHNGb3JTZXJ2ZXIoY2FwcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuc2FmYXJpLnByb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5zYWZhcmkucHJveHkpO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IHRydWU7XG4gICAgcmV0dXJuIFtzZXNzaW9uSWQsIGNhcHNdO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoKSB7XG4gICAgbG9nLmluZm8oJ0VuZGluZyBTYWZhcmkgc2Vzc2lvbicpO1xuICAgIGF3YWl0IHRoaXMuc2FmYXJpLnN0b3AoKTtcbiAgICB0aGlzLnJlc2V0U3RhdGUoKTtcblxuICAgIGF3YWl0IHN1cGVyLmRlbGV0ZVNlc3Npb24oKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTYWZhcmlEcml2ZXI7XG4iXSwiZmlsZSI6ImxpYi9kcml2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
92
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwibmFtZXMiOlsiTk9fUFJPWFkiLCJSZWdFeHAiLCJTYWZhcmlEcml2ZXIiLCJCYXNlRHJpdmVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJyZXNldFN0YXRlIiwiY21kIiwiZm4iLCJfIiwidG9QYWlycyIsImNvbW1hbmRzIiwicHJvdG90eXBlIiwic2FmYXJpIiwicHJveHlSZXFSZXMiLCJpc1Byb3h5QWN0aXZlIiwiX3NjcmVlblJlY29yZGVyIiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwiY3JlYXRlU2Vzc2lvbiIsImFyZ3MiLCJzZXNzaW9uSWQiLCJjYXBzIiwiU2FmYXJpRHJpdmVyU2VydmVyIiwic3RhcnQiLCJlIiwiZGVsZXRlU2Vzc2lvbiIsInByb3h5IiwiYmluZCIsImxvZyIsImluZm8iLCJzdG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsRUFNZixDQUFDLFFBQUQsRUFBVyxJQUFJQSxNQUFKLENBQVcseUJBQVgsQ0FBWCxDQU5lLENBQWpCOztBQVNBLE1BQU1DLFlBQU4sU0FBMkJDLHNCQUEzQixDQUFzQztBQUNwQ0MsRUFBQUEsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0FBQ3RCLFVBQU1BLElBQU47QUFDQSxTQUFLQyxxQkFBTCxHQUE2QkEsa0NBQTdCO0FBQ0EsU0FBS0MsaUJBQUwsR0FBeUIsQ0FDdkIsT0FEdUIsRUFFdkIsVUFGdUIsRUFHdkIsV0FIdUIsRUFJdkIsbUJBSnVCLEVBS3ZCLGNBTHVCLEVBT3ZCLElBUHVCLEVBUXZCLE1BUnVCLENBQXpCO0FBVUEsU0FBS0MsVUFBTDs7QUFFQSxTQUFLLE1BQU0sQ0FBQ0MsR0FBRCxFQUFNQyxFQUFOLENBQVgsSUFBd0JDLGdCQUFFQyxPQUFGLENBQVVDLGNBQVYsQ0FBeEIsRUFBNkM7QUFDM0NYLE1BQUFBLFlBQVksQ0FBQ1ksU0FBYixDQUF1QkwsR0FBdkIsSUFBOEJDLEVBQTlCO0FBQ0Q7QUFDRjs7QUFFREYsRUFBQUEsVUFBVSxHQUFJO0FBQ1osU0FBS08sTUFBTCxHQUFjLElBQWQ7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLElBQW5CO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixLQUFyQjtBQUNBLFNBQUtDLGVBQUwsR0FBdUIsSUFBdkI7QUFDRDs7QUFFREMsRUFBQUEsV0FBVyxHQUFJO0FBQ2IsV0FBTyxLQUFLRixhQUFaO0FBQ0Q7O0FBRURHLEVBQUFBLGlCQUFpQixHQUFJO0FBQ25CLFdBQU9wQixRQUFQO0FBQ0Q7O0FBRURxQixFQUFBQSxRQUFRLEdBQUk7QUFDVixXQUFPLElBQVA7QUFDRDs7QUFFa0IsUUFBYkMsYUFBYSxDQUFFLEdBQUdDLElBQUwsRUFBVztBQUM1QixVQUFNLENBQUNDLFNBQUQsRUFBWUMsSUFBWixJQUFvQixNQUFNLE1BQU1ILGFBQU4sQ0FBb0IsR0FBR0MsSUFBdkIsQ0FBaEM7QUFDQSxTQUFLUixNQUFMLEdBQWMsSUFBSVcsZUFBSixFQUFkOztBQUNBLFFBQUk7QUFDRixZQUFNLEtBQUtYLE1BQUwsQ0FBWVksS0FBWixDQUFrQixnQ0FBb0JGLElBQXBCLENBQWxCLENBQU47QUFDRCxLQUZELENBRUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1YsWUFBTSxLQUFLQyxhQUFMLEVBQU47QUFDQSxZQUFNRCxDQUFOO0FBQ0Q7O0FBQ0QsU0FBS1osV0FBTCxHQUFtQixLQUFLRCxNQUFMLENBQVllLEtBQVosQ0FBa0JkLFdBQWxCLENBQThCZSxJQUE5QixDQUFtQyxLQUFLaEIsTUFBTCxDQUFZZSxLQUEvQyxDQUFuQjtBQUNBLFNBQUtiLGFBQUwsR0FBcUIsSUFBckI7QUFDQSxXQUFPLENBQUNPLFNBQUQsRUFBWUMsSUFBWixDQUFQO0FBQ0Q7O0FBRWtCLFFBQWJJLGFBQWEsR0FBSTtBQUFBOztBQUNyQkcsb0JBQUlDLElBQUosQ0FBUyx1QkFBVDs7QUFDQSxvQ0FBTSxLQUFLZixlQUFYLDBEQUFNLHNCQUFzQmdCLElBQXRCLENBQTJCLElBQTNCLENBQU47QUFDQSwyQkFBTSxLQUFLbkIsTUFBWCxpREFBTSxhQUFhbUIsSUFBYixFQUFOO0FBQ0EsU0FBSzFCLFVBQUw7QUFFQSxVQUFNLE1BQU1xQixhQUFOLEVBQU47QUFDRDs7QUE3RG1DOztlQWdFdkIzQixZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlciBmcm9tICcuL3NhZmFyaSc7XG5pbXBvcnQgeyBkZXNpcmVkQ2FwQ29uc3RyYWludHMgfSBmcm9tICcuL2Rlc2lyZWQtY2Fwcyc7XG5pbXBvcnQgY29tbWFuZHMgZnJvbSAnLi9jb21tYW5kcy9pbmRleCc7XG5pbXBvcnQgeyBmb3JtYXRDYXBzRm9yU2VydmVyIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IE5PX1BST1hZID0gW1xuICBbJ0dFVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9hcHBpdW0nKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9hcHBpdW0nKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9lbGVtZW50L1teL10rL2VsZW1lbnRzPyQnKV0sXG4gIFsnUE9TVCcsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9lbGVtZW50cz8kJyldLFxuXG4gIFsnREVMRVRFJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2Nvb2tpZSQnKV0sXG5dO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXIgZXh0ZW5kcyBCYXNlRHJpdmVyIHtcbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKG9wdHMpO1xuICAgIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzID0gZGVzaXJlZENhcENvbnN0cmFpbnRzO1xuICAgIHRoaXMubG9jYXRvclN0cmF0ZWdpZXMgPSBbXG4gICAgICAneHBhdGgnLFxuICAgICAgJ3RhZyBuYW1lJyxcbiAgICAgICdsaW5rIHRleHQnLFxuICAgICAgJ3BhcnRpYWwgbGluayB0ZXh0JyxcbiAgICAgICdjc3Mgc2VsZWN0b3InLFxuICAgICAgLy8gTGV0IHRoZXNlIHR3byByZWFjaCBTYWZhcmkgRHJpdmVyIGFuZCBmYWlsIHRoZXJlIHdpdGggYSBwcm9wZXIgZXJyb3IgbWVzc2FnZVxuICAgICAgJ2lkJyxcbiAgICAgICduYW1lJyxcbiAgICBdO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgZm9yIChjb25zdCBbY21kLCBmbl0gb2YgXy50b1BhaXJzKGNvbW1hbmRzKSkge1xuICAgICAgU2FmYXJpRHJpdmVyLnByb3RvdHlwZVtjbWRdID0gZm47XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTdGF0ZSAoKSB7XG4gICAgdGhpcy5zYWZhcmkgPSBudWxsO1xuICAgIHRoaXMucHJveHlSZXFSZXMgPSBudWxsO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3h5QWN0aXZlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKCkge1xuICAgIHJldHVybiBOT19QUk9YWTtcbiAgfVxuXG4gIGNhblByb3h5ICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oLi4uYXJncyk7XG4gICAgdGhpcy5zYWZhcmkgPSBuZXcgU2FmYXJpRHJpdmVyU2VydmVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2FmYXJpLnN0YXJ0KGZvcm1hdENhcHNGb3JTZXJ2ZXIoY2FwcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuc2FmYXJpLnByb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5zYWZhcmkucHJveHkpO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IHRydWU7XG4gICAgcmV0dXJuIFtzZXNzaW9uSWQsIGNhcHNdO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoKSB7XG4gICAgbG9nLmluZm8oJ0VuZGluZyBTYWZhcmkgc2Vzc2lvbicpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyPy5zdG9wKHRydWUpO1xuICAgIGF3YWl0IHRoaXMuc2FmYXJpPy5zdG9wKCk7XG4gICAgdGhpcy5yZXNldFN0YXRlKCk7XG5cbiAgICBhd2FpdCBzdXBlci5kZWxldGVTZXNzaW9uKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2FmYXJpRHJpdmVyO1xuIl0sImZpbGUiOiJsaWIvZHJpdmVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -7,12 +7,12 @@ exports.default = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _appiumSupport = require("appium-support");
10
+ var _support = require("@appium/support");
11
11
 
12
- const log = _appiumSupport.logger.getLogger('Safari');
12
+ const log = _support.logger.getLogger('Safari');
13
13
 
14
14
  var _default = log;
15
15
  exports.default = _default;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLHNCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVo7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1NhZmFyaScpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwiZmlsZSI6ImxpYi9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVo7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdTYWZhcmknKTtcblxuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sImZpbGUiOiJsaWIvbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -13,9 +13,9 @@ var _os = _interopRequireDefault(require("os"));
13
13
 
14
14
  var _path = _interopRequireDefault(require("path"));
15
15
 
16
- var _appiumBaseDriver = require("appium-base-driver");
16
+ var _baseDriver = require("@appium/base-driver");
17
17
 
18
- var _appiumSupport = require("appium-support");
18
+ var _support = require("@appium/support");
19
19
 
20
20
  var _teen_process = require("teen_process");
21
21
 
@@ -25,21 +25,21 @@ var _portscanner = require("portscanner");
25
25
 
26
26
  var _child_process = require("child_process");
27
27
 
28
- const log = _appiumSupport.logger.getLogger('SafariDriverServer');
28
+ const log = _support.logger.getLogger('SafariDriverServer');
29
29
 
30
30
  const SD_BINARY = 'safaridriver';
31
31
  const STARTUP_TIMEOUT = 10000;
32
32
  const SAFARI_PORT_RANGE = [5100, 5200];
33
33
 
34
- const SAFARI_SERVER_GUARD = _appiumSupport.util.getLockFileGuard(_path.default.resolve(_os.default.tmpdir(), 'safari_server_guard.lock'), {
34
+ const SAFARI_SERVER_GUARD = _support.util.getLockFileGuard(_path.default.resolve(_os.default.tmpdir(), 'safari_server_guard.lock'), {
35
35
  timeout: 5,
36
36
  tryRecovery: true
37
37
  });
38
38
 
39
- class SafariProxy extends _appiumBaseDriver.JWProxy {
39
+ class SafariProxy extends _baseDriver.JWProxy {
40
40
  async proxyCommand(url, method, body = null) {
41
41
  if (this.didProcessExit) {
42
- throw new _appiumBaseDriver.errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Safari Driver server because ` + 'the process is not running (probably crashed). Check the server log for more details');
42
+ throw new _baseDriver.errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Safari Driver server because ` + 'the process is not running (probably crashed). Check the server log for more details');
43
43
  }
44
44
 
45
45
  return await super.proxyCommand(url, method, body);
@@ -56,7 +56,7 @@ class SafariDriverProcess {
56
56
  get isRunning() {
57
57
  var _this$proc;
58
58
 
59
- return !!((_this$proc = this.proc) === null || _this$proc === void 0 ? void 0 : _this$proc.isRunning);
59
+ return !!((_this$proc = this.proc) !== null && _this$proc !== void 0 && _this$proc.isRunning);
60
60
  }
61
61
 
62
62
  async init() {
@@ -76,7 +76,7 @@ class SafariDriverProcess {
76
76
  let safariBin;
77
77
 
78
78
  try {
79
- safariBin = await _appiumSupport.fs.which(SD_BINARY);
79
+ safariBin = await _support.fs.which(SD_BINARY);
80
80
  } catch (e) {
81
81
  throw new Error(`${SD_BINARY} binary cannot be found in PATH. ` + `Please make sure it is present on your system`);
82
82
  }
@@ -179,7 +179,7 @@ class SafariDriverServer {
179
179
  return;
180
180
  }
181
181
 
182
- if ((_this$proxy = this.proxy) === null || _this$proxy === void 0 ? void 0 : _this$proxy.sessionId) {
182
+ if ((_this$proxy = this.proxy) !== null && _this$proxy !== void 0 && _this$proxy.sessionId) {
183
183
  try {
184
184
  await this.proxy.command(`/session/${this.proxy.sessionId}`, 'DELETE');
185
185
  } catch (e) {
@@ -194,4 +194,4 @@ var _default = SafariDriverServer;
194
194
  exports.default = _default;require('source-map-support').install();
195
195
 
196
196
 
197
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zYWZhcmkuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiU0RfQklOQVJZIiwiU1RBUlRVUF9USU1FT1VUIiwiU0FGQVJJX1BPUlRfUkFOR0UiLCJTQUZBUklfU0VSVkVSX0dVQVJEIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwiU2FmYXJpUHJveHkiLCJKV1Byb3h5IiwicHJveHlDb21tYW5kIiwidXJsIiwibWV0aG9kIiwiYm9keSIsImRpZFByb2Nlc3NFeGl0IiwiZXJyb3JzIiwiSW52YWxpZENvbnRleHRFcnJvciIsIlNhZmFyaURyaXZlclByb2Nlc3MiLCJjb25zdHJ1Y3RvciIsInBvcnQiLCJwcm9jIiwiaXNSdW5uaW5nIiwiaW5pdCIsInN0YXJ0UG9ydCIsImVuZFBvcnQiLCJlIiwiRXJyb3IiLCJzYWZhcmlCaW4iLCJmcyIsIndoaWNoIiwiU3ViUHJvY2VzcyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwibGluZSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsImluZm8iLCJzdGFydCIsImtpbGwiLCJzdG9wIiwiaWduIiwiU0FGQVJJX0RSSVZFUl9QUk9DRVNTIiwicHJvY2VzcyIsIm9uY2UiLCJwaWQiLCJTYWZhcmlEcml2ZXJTZXJ2ZXIiLCJwcm94eSIsImNhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwiY29tbWFuZCIsImVyciIsIm1lc3NhZ2UiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwidGVzdCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLHNCQUFPQyxTQUFQLENBQWlC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LEVBQUUsQ0FBQyxFQUFELENBREE7QUFFWkMsUUFBQUEsV0FBVyxFQUFFWjtBQUZEO0FBRDZCLEtBQXZDLENBQU47QUFNRDs7QUFFRCxRQUFNUixJQUFOLEdBQWM7QUFBQTs7QUFDWixRQUFJLENBQUMsS0FBS3BCLFNBQVYsRUFBcUI7QUFDbkI1QixNQUFBQSxHQUFHLENBQUM2QyxJQUFKLENBQVUsR0FBRTFDLFNBQVUsK0RBQXRCO0FBQ0E7QUFDRDs7QUFFRCx1QkFBSSxLQUFLb0QsS0FBVCxnREFBSSxZQUFZYyxTQUFoQixFQUEyQjtBQUN6QixVQUFJO0FBQ0YsY0FBTSxLQUFLZCxLQUFMLENBQVdLLE9BQVgsQ0FBb0IsWUFBVyxLQUFLTCxLQUFMLENBQVdjLFNBQVUsRUFBcEQsRUFBdUQsUUFBdkQsQ0FBTjtBQUNELE9BRkQsQ0FFRSxPQUFPckMsQ0FBUCxFQUFVO0FBQ1ZoQyxRQUFBQSxHQUFHLENBQUM2QyxJQUFKLENBQVUsR0FBRTFDLFNBQVUsK0NBQThDNkIsQ0FBQyxDQUFDOEIsT0FBUSxFQUE5RTtBQUNEO0FBQ0Y7QUFDRjs7QUF4RXNCOztlQTJFVlIsa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBKV1Byb3h5LCBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciwgdXRpbCB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCB7IFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignU2FmYXJpRHJpdmVyU2VydmVyJyk7XG5cbmNvbnN0IFNEX0JJTkFSWSA9ICdzYWZhcmlkcml2ZXInO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUID0gMTAwMDA7IC8vIHNlY29uZHNcbmNvbnN0IFNBRkFSSV9QT1JUX1JBTkdFID0gWzUxMDAsIDUyMDBdO1xuLy8gVGhpcyBndWFyZCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlXG4vLyB3ZSBuZXZlciBydW4gbXVsdGlwbGUgU2FmYXJpIGRyaXZlciBwcm9jZXNzZXMgZm9yIHRoZSBzYW1lIEFwcGl1bSBwcm9jZXNzXG5jb25zdCBTQUZBUklfU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdzYWZhcmlfc2VydmVyX2d1YXJkLmxvY2snKSxcbiAge3RpbWVvdXQ6IDUsIHRyeVJlY292ZXJ5OiB0cnVlfVxuKTtcblxuXG5jbGFzcyBTYWZhcmlQcm94eSBleHRlbmRzIEpXUHJveHkge1xuICBhc3luYyBwcm94eUNvbW1hbmQgKHVybCwgbWV0aG9kLCBib2R5ID0gbnVsbCkge1xuICAgIGlmICh0aGlzLmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRDb250ZXh0RXJyb3IoXG4gICAgICAgIGAnJHttZXRob2R9ICR7dXJsfScgY2Fubm90IGJlIHByb3hpZWQgdG8gU2FmYXJpIERyaXZlciBzZXJ2ZXIgYmVjYXVzZSBgICtcbiAgICAgICAgJ3RoZSBwcm9jZXNzIGlzIG5vdCBydW5uaW5nIChwcm9iYWJseSBjcmFzaGVkKS4gQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlscycpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIucHJveHlDb21tYW5kKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5cbmNsYXNzIFNhZmFyaURyaXZlclByb2Nlc3Mge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wb3J0ID0gbnVsbDtcbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvYz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQgKCkge1xuICAgIGF3YWl0IFNBRkFSSV9TRVJWRVJfR1VBUkQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW3N0YXJ0UG9ydCwgZW5kUG9ydF0gPSBTQUZBUklfUE9SVF9SQU5HRTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMucG9ydCA9IGF3YWl0IGZpbmRBUG9ydE5vdEluVXNlKHN0YXJ0UG9ydCwgZW5kUG9ydCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGZpbmQgYW55IGZyZWUgcG9ydCBpbiByYW5nZSAke3N0YXJ0UG9ydH0uLiR7ZW5kUG9ydH0uIGAgK1xuICAgICAgICAgIGBEb3VibGUgY2hlY2sgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBsb2NraW5nIHBvcnRzIHdpdGhpbiB0aGlzIHJhbmdlIGFuZCB0ZXJtaW5hdGUgYCArXG4gICAgICAgICAgYHRoZXNlIHdoaWNoIGFyZSBub3QgbmVlZGVkIGFueW1vcmVgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNhZmFyaUJpbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNhZmFyaUJpbiA9IGF3YWl0IGZzLndoaWNoKFNEX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtTRF9CSU5BUll9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgcHJlc2VudCBvbiB5b3VyIHN5c3RlbWApO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3Moc2FmYXJpQmluLCBbJy1wJywgdGhpcy5wb3J0LCAnLS1kaWFnbm9zZSddKTtcbiAgICAgIHRoaXMucHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzdGRvdXQgfHwgc3RkZXJyO1xuICAgICAgICBsb2cuZGVidWcoYFske1NEX0JJTkFSWX1dICR7bGluZX1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICBsb2cuaW5mbyhgJHtTRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH0pO1xuICAgICAgbG9nLmluZm8oYFN0YXJ0aW5nICcke3NhZmFyaUJpbn0nIG9uIHBvcnQgJHt0aGlzLnBvcnR9YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbmdsZSBzZXJ2ZXIgcHJvY2VzcyBwZXIgQXBwaXVtIGluc3RhbmNlXG5jb25zdCBTQUZBUklfRFJJVkVSX1BST0NFU1MgPSBuZXcgU2FmYXJpRHJpdmVyUHJvY2VzcygpO1xucHJvY2Vzcy5vbmNlKCdleGl0JywgKCkgPT4ge1xuICBpZiAoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZykge1xuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyhga2lsbCAke1NBRkFSSV9EUklWRVJfUFJPQ0VTUy5wcm9jLnBpZH1gKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbn0pO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wcm94eSA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBzdGFydCAoY2Fwcykge1xuICAgIGF3YWl0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pbml0KCk7XG5cbiAgICB0aGlzLnByb3h5ID0gbmV3IFNhZmFyaVByb3h5KHtcbiAgICAgIHNlcnZlcjogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiBTQUZBUklfRFJJVkVSX1BST0NFU1MucG9ydCxcbiAgICAgIGJhc2U6ICcnLFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSBmYWxzZTtcbiAgICBTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1Mua2lsbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmYXJpIERyaXZlciBzZXJ2ZXIgaXMgbm90IGxpc3RlbmluZyB3aXRoaW4gJHtTVEFSVFVQX1RJTUVPVVR9bXMgdGltZW91dC4gYCArXG4gICAgICAgICAgYE1ha2Ugc3VyZSBpdCBoYXMgYmVlbiBleGVjdXRlZCBtYW51YWxseSBhdCBsZWFzdCBvbmNlIHdpdGggJy0tZW5hYmxlJyBjb21tYW5kIGxpbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgICAgICBhbHdheXNNYXRjaDogY2FwcyxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgc3RvcHBlZCwgYmVjYXVzZSB0aGUgc2VydmVyIGlzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJveHk/LnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKGAvc2Vzc2lvbi8ke3RoaXMucHJveHkuc2Vzc2lvbklkfWAsICdERUxFVEUnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBkZWxldGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlclNlcnZlcjtcbiJdLCJmaWxlIjoibGliL3NhZmFyaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
197
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zYWZhcmkuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiU0RfQklOQVJZIiwiU1RBUlRVUF9USU1FT1VUIiwiU0FGQVJJX1BPUlRfUkFOR0UiLCJTQUZBUklfU0VSVkVSX0dVQVJEIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwiU2FmYXJpUHJveHkiLCJKV1Byb3h5IiwicHJveHlDb21tYW5kIiwidXJsIiwibWV0aG9kIiwiYm9keSIsImRpZFByb2Nlc3NFeGl0IiwiZXJyb3JzIiwiSW52YWxpZENvbnRleHRFcnJvciIsIlNhZmFyaURyaXZlclByb2Nlc3MiLCJjb25zdHJ1Y3RvciIsInBvcnQiLCJwcm9jIiwiaXNSdW5uaW5nIiwiaW5pdCIsInN0YXJ0UG9ydCIsImVuZFBvcnQiLCJlIiwiRXJyb3IiLCJzYWZhcmlCaW4iLCJmcyIsIndoaWNoIiwiU3ViUHJvY2VzcyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwibGluZSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsImluZm8iLCJzdGFydCIsImtpbGwiLCJzdG9wIiwiaWduIiwiU0FGQVJJX0RSSVZFUl9QUk9DRVNTIiwicHJvY2VzcyIsIm9uY2UiLCJwaWQiLCJTYWZhcmlEcml2ZXJTZXJ2ZXIiLCJwcm94eSIsImNhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwiY29tbWFuZCIsImVyciIsIm1lc3NhZ2UiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwidGVzdCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLG9CQUFqQixDQUFaOztBQUVBLE1BQU1DLFNBQVMsR0FBRyxjQUFsQjtBQUNBLE1BQU1DLGVBQWUsR0FBRyxLQUF4QjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBMUI7O0FBR0EsTUFBTUMsbUJBQW1CLEdBQUdDLGNBQUtDLGdCQUFMLENBQzFCQyxjQUFLQyxPQUFMLENBQWFDLFlBQUdDLE1BQUgsRUFBYixFQUEwQiwwQkFBMUIsQ0FEMEIsRUFFMUI7QUFBQ0MsRUFBQUEsT0FBTyxFQUFFLENBQVY7QUFBYUMsRUFBQUEsV0FBVyxFQUFFO0FBQTFCLENBRjBCLENBQTVCOztBQU1BLE1BQU1DLFdBQU4sU0FBMEJDLG1CQUExQixDQUFrQztBQUNkLFFBQVpDLFlBQVksQ0FBRUMsR0FBRixFQUFPQyxNQUFQLEVBQWVDLElBQUksR0FBRyxJQUF0QixFQUE0QjtBQUM1QyxRQUFJLEtBQUtDLGNBQVQsRUFBeUI7QUFDdkIsWUFBTSxJQUFJQyxtQkFBT0MsbUJBQVgsQ0FDSCxJQUFHSixNQUFPLElBQUdELEdBQUksc0RBQWxCLEdBQ0Esc0ZBRkksQ0FBTjtBQUdEOztBQUNELFdBQU8sTUFBTSxNQUFNRCxZQUFOLENBQW1CQyxHQUFuQixFQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLENBQWI7QUFDRDs7QUFSK0I7O0FBWWxDLE1BQU1JLG1CQUFOLENBQTBCO0FBQ3hCQyxFQUFBQSxXQUFXLEdBQUk7QUFDYixTQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNBLFNBQUtDLElBQUwsR0FBWSxJQUFaO0FBQ0Q7O0FBRVksTUFBVEMsU0FBUyxHQUFJO0FBQUE7O0FBQ2YsV0FBTyxDQUFDLGdCQUFFLEtBQUtELElBQVAsdUNBQUUsV0FBV0MsU0FBYixDQUFSO0FBQ0Q7O0FBRVMsUUFBSkMsSUFBSSxHQUFJO0FBQ1osVUFBTXZCLG1CQUFtQixDQUFDLFlBQVk7QUFDcEMsVUFBSSxLQUFLc0IsU0FBVCxFQUFvQjtBQUNsQjtBQUNEOztBQUVELFlBQU0sQ0FBQ0UsU0FBRCxFQUFZQyxPQUFaLElBQXVCMUIsaUJBQTdCOztBQUNBLFVBQUk7QUFDRixhQUFLcUIsSUFBTCxHQUFZLE1BQU0sb0NBQWtCSSxTQUFsQixFQUE2QkMsT0FBN0IsQ0FBbEI7QUFDRCxPQUZELENBRUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsY0FBTSxJQUFJQyxLQUFKLENBQ0gsc0NBQXFDSCxTQUFVLEtBQUlDLE9BQVEsSUFBNUQsR0FDQyxvRkFERCxHQUVDLG9DQUhHLENBQU47QUFJRDs7QUFFRCxVQUFJRyxTQUFKOztBQUNBLFVBQUk7QUFDRkEsUUFBQUEsU0FBUyxHQUFHLE1BQU1DLFlBQUdDLEtBQUgsQ0FBU2pDLFNBQVQsQ0FBbEI7QUFDRCxPQUZELENBRUUsT0FBTzZCLENBQVAsRUFBVTtBQUNWLGNBQU0sSUFBSUMsS0FBSixDQUFXLEdBQUU5QixTQUFVLG1DQUFiLEdBQ2IsK0NBREcsQ0FBTjtBQUVEOztBQUNELFdBQUt3QixJQUFMLEdBQVksSUFBSVUsd0JBQUosQ0FBZUgsU0FBZixFQUEwQixDQUFDLElBQUQsRUFBTyxLQUFLUixJQUFaLEVBQWtCLFlBQWxCLENBQTFCLENBQVo7QUFDQSxXQUFLQyxJQUFMLENBQVVXLEVBQVYsQ0FBYSxRQUFiLEVBQXVCLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxLQUFvQjtBQUN6QyxjQUFNQyxJQUFJLEdBQUdGLE1BQU0sSUFBSUMsTUFBdkI7QUFDQXhDLFFBQUFBLEdBQUcsQ0FBQzBDLEtBQUosQ0FBVyxJQUFHdkMsU0FBVSxLQUFJc0MsSUFBSyxFQUFqQztBQUNELE9BSEQ7QUFJQSxXQUFLZCxJQUFMLENBQVVXLEVBQVYsQ0FBYSxNQUFiLEVBQXFCLENBQUNLLElBQUQsRUFBT0MsTUFBUCxLQUFrQjtBQUNyQzVDLFFBQUFBLEdBQUcsQ0FBQzZDLElBQUosQ0FBVSxHQUFFMUMsU0FBVSx5QkFBd0J3QyxJQUFLLFlBQVdDLE1BQU8sRUFBckU7QUFDRCxPQUZEO0FBR0E1QyxNQUFBQSxHQUFHLENBQUM2QyxJQUFKLENBQVUsYUFBWVgsU0FBVSxhQUFZLEtBQUtSLElBQUssRUFBdEQ7QUFDQSxZQUFNLEtBQUtDLElBQUwsQ0FBVW1CLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBTjtBQUNELEtBaEN3QixDQUF6QjtBQWlDRDs7QUFFUyxRQUFKQyxJQUFJLEdBQUk7QUFDWixRQUFJLEtBQUtuQixTQUFULEVBQW9CO0FBQ2xCLFVBQUk7QUFDRixjQUFNLEtBQUtELElBQUwsQ0FBVXFCLElBQVYsQ0FBZSxTQUFmLENBQU47QUFDRCxPQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZLENBQUU7QUFDakI7QUFDRjs7QUFwRHVCOztBQXdEMUIsTUFBTUMscUJBQXFCLEdBQUcsSUFBSTFCLG1CQUFKLEVBQTlCO0FBQ0EyQixPQUFPLENBQUNDLElBQVIsQ0FBYSxNQUFiLEVBQXFCLE1BQU07QUFDekIsTUFBSUYscUJBQXFCLENBQUN0QixTQUExQixFQUFxQztBQUNuQyxRQUFJO0FBQ0YsbUNBQVUsUUFBT3NCLHFCQUFxQixDQUFDdkIsSUFBdEIsQ0FBMkIwQixHQUFJLEVBQWhEO0FBQ0QsS0FGRCxDQUVFLE9BQU9KLEdBQVAsRUFBWSxDQUFFO0FBQ2pCO0FBQ0YsQ0FORDs7QUFRQSxNQUFNSyxrQkFBTixDQUF5QjtBQUN2QjdCLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFNBQUs4QixLQUFMLEdBQWEsSUFBYjtBQUNEOztBQUVZLE1BQVQzQixTQUFTLEdBQUk7QUFDZixXQUFPLENBQUMsQ0FBRXNCLHFCQUFxQixDQUFDdEIsU0FBaEM7QUFDRDs7QUFFVSxRQUFMa0IsS0FBSyxDQUFFVSxJQUFGLEVBQVE7QUFDakIsVUFBTU4scUJBQXFCLENBQUNyQixJQUF0QixFQUFOO0FBRUEsU0FBSzBCLEtBQUwsR0FBYSxJQUFJeEMsV0FBSixDQUFnQjtBQUMzQjBDLE1BQUFBLE1BQU0sRUFBRSxXQURtQjtBQUUzQi9CLE1BQUFBLElBQUksRUFBRXdCLHFCQUFxQixDQUFDeEIsSUFGRDtBQUczQmdDLE1BQUFBLElBQUksRUFBRSxFQUhxQjtBQUkzQkMsTUFBQUEsU0FBUyxFQUFFO0FBSmdCLEtBQWhCLENBQWI7QUFNQSxTQUFLSixLQUFMLENBQVdsQyxjQUFYLEdBQTRCLEtBQTVCO0FBQ0E2QixJQUFBQSxxQkFBcUIsQ0FBQ3ZCLElBQXRCLENBQTJCVyxFQUEzQixDQUE4QixNQUE5QixFQUFzQyxNQUFNO0FBQzFDLFdBQUtpQixLQUFMLENBQVdsQyxjQUFYLEdBQTRCLElBQTVCO0FBQ0QsS0FGRDs7QUFJQSxRQUFJO0FBQ0YsWUFBTSxnQ0FBaUIsWUFBWTtBQUNqQyxZQUFJO0FBQ0YsZ0JBQU0sS0FBS2tDLEtBQUwsQ0FBV0ssT0FBWCxDQUFtQixTQUFuQixFQUE4QixLQUE5QixDQUFOO0FBQ0EsaUJBQU8sSUFBUDtBQUNELFNBSEQsQ0FHRSxPQUFPQyxHQUFQLEVBQVk7QUFDWixjQUFJLEtBQUtOLEtBQUwsQ0FBV2xDLGNBQWYsRUFBK0I7QUFDN0Isa0JBQU0sSUFBSVksS0FBSixDQUFVNEIsR0FBRyxDQUFDQyxPQUFkLENBQU47QUFDRDs7QUFDRCxpQkFBTyxLQUFQO0FBQ0Q7QUFDRixPQVZLLEVBVUg7QUFDREMsUUFBQUEsTUFBTSxFQUFFM0QsZUFEUDtBQUVENEQsUUFBQUEsVUFBVSxFQUFFO0FBRlgsT0FWRyxDQUFOO0FBY0QsS0FmRCxDQWVFLE9BQU9oQyxDQUFQLEVBQVU7QUFDVixVQUFJLGtCQUFrQmlDLElBQWxCLENBQXVCakMsQ0FBQyxDQUFDOEIsT0FBekIsQ0FBSixFQUF1QztBQUNyQyxZQUFJWixxQkFBcUIsQ0FBQ3RCLFNBQTFCLEVBQXFDO0FBRW5DLGdCQUFNc0IscUJBQXFCLENBQUNILElBQXRCLEVBQU47QUFDRDs7QUFDRCxjQUFNLElBQUlkLEtBQUosQ0FBVyxnREFBK0M3QixlQUFnQixjQUFoRSxHQUNiLCtGQURhLEdBRWIsdUNBRkcsQ0FBTjtBQUdEOztBQUNELFlBQU00QixDQUFOO0FBQ0Q7O0FBRUQsVUFBTSxLQUFLdUIsS0FBTCxDQUFXSyxPQUFYLENBQW1CLFVBQW5CLEVBQStCLE1BQS9CLEVBQXVDO0FBQzNDTSxNQUFBQSxZQUFZLEVBQUU7QUFDWkMsUUFBQUEsVUFBVSxFQUFFLENBQUMsRUFBRCxDQURBO0FBRVpDLFFBQUFBLFdBQVcsRUFBRVo7QUFGRDtBQUQ2QixLQUF2QyxDQUFOO0FBTUQ7O0FBRVMsUUFBSlIsSUFBSSxHQUFJO0FBQUE7O0FBQ1osUUFBSSxDQUFDLEtBQUtwQixTQUFWLEVBQXFCO0FBQ25CNUIsTUFBQUEsR0FBRyxDQUFDNkMsSUFBSixDQUFVLEdBQUUxQyxTQUFVLCtEQUF0QjtBQUNBO0FBQ0Q7O0FBRUQsdUJBQUksS0FBS29ELEtBQVQsd0NBQUksWUFBWWMsU0FBaEIsRUFBMkI7QUFDekIsVUFBSTtBQUNGLGNBQU0sS0FBS2QsS0FBTCxDQUFXSyxPQUFYLENBQW9CLFlBQVcsS0FBS0wsS0FBTCxDQUFXYyxTQUFVLEVBQXBELEVBQXVELFFBQXZELENBQU47QUFDRCxPQUZELENBRUUsT0FBT3JDLENBQVAsRUFBVTtBQUNWaEMsUUFBQUEsR0FBRyxDQUFDNkMsSUFBSixDQUFVLEdBQUUxQyxTQUFVLCtDQUE4QzZCLENBQUMsQ0FBQzhCLE9BQVEsRUFBOUU7QUFDRDtBQUNGO0FBQ0Y7O0FBeEVzQjs7ZUEyRVZSLGtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSldQcm94eSwgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignU2FmYXJpRHJpdmVyU2VydmVyJyk7XG5cbmNvbnN0IFNEX0JJTkFSWSA9ICdzYWZhcmlkcml2ZXInO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUID0gMTAwMDA7IC8vIHNlY29uZHNcbmNvbnN0IFNBRkFSSV9QT1JUX1JBTkdFID0gWzUxMDAsIDUyMDBdO1xuLy8gVGhpcyBndWFyZCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlXG4vLyB3ZSBuZXZlciBydW4gbXVsdGlwbGUgU2FmYXJpIGRyaXZlciBwcm9jZXNzZXMgZm9yIHRoZSBzYW1lIEFwcGl1bSBwcm9jZXNzXG5jb25zdCBTQUZBUklfU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdzYWZhcmlfc2VydmVyX2d1YXJkLmxvY2snKSxcbiAge3RpbWVvdXQ6IDUsIHRyeVJlY292ZXJ5OiB0cnVlfVxuKTtcblxuXG5jbGFzcyBTYWZhcmlQcm94eSBleHRlbmRzIEpXUHJveHkge1xuICBhc3luYyBwcm94eUNvbW1hbmQgKHVybCwgbWV0aG9kLCBib2R5ID0gbnVsbCkge1xuICAgIGlmICh0aGlzLmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRDb250ZXh0RXJyb3IoXG4gICAgICAgIGAnJHttZXRob2R9ICR7dXJsfScgY2Fubm90IGJlIHByb3hpZWQgdG8gU2FmYXJpIERyaXZlciBzZXJ2ZXIgYmVjYXVzZSBgICtcbiAgICAgICAgJ3RoZSBwcm9jZXNzIGlzIG5vdCBydW5uaW5nIChwcm9iYWJseSBjcmFzaGVkKS4gQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlscycpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIucHJveHlDb21tYW5kKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5cbmNsYXNzIFNhZmFyaURyaXZlclByb2Nlc3Mge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wb3J0ID0gbnVsbDtcbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvYz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQgKCkge1xuICAgIGF3YWl0IFNBRkFSSV9TRVJWRVJfR1VBUkQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW3N0YXJ0UG9ydCwgZW5kUG9ydF0gPSBTQUZBUklfUE9SVF9SQU5HRTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMucG9ydCA9IGF3YWl0IGZpbmRBUG9ydE5vdEluVXNlKHN0YXJ0UG9ydCwgZW5kUG9ydCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGZpbmQgYW55IGZyZWUgcG9ydCBpbiByYW5nZSAke3N0YXJ0UG9ydH0uLiR7ZW5kUG9ydH0uIGAgK1xuICAgICAgICAgIGBEb3VibGUgY2hlY2sgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBsb2NraW5nIHBvcnRzIHdpdGhpbiB0aGlzIHJhbmdlIGFuZCB0ZXJtaW5hdGUgYCArXG4gICAgICAgICAgYHRoZXNlIHdoaWNoIGFyZSBub3QgbmVlZGVkIGFueW1vcmVgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNhZmFyaUJpbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNhZmFyaUJpbiA9IGF3YWl0IGZzLndoaWNoKFNEX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtTRF9CSU5BUll9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgcHJlc2VudCBvbiB5b3VyIHN5c3RlbWApO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3Moc2FmYXJpQmluLCBbJy1wJywgdGhpcy5wb3J0LCAnLS1kaWFnbm9zZSddKTtcbiAgICAgIHRoaXMucHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzdGRvdXQgfHwgc3RkZXJyO1xuICAgICAgICBsb2cuZGVidWcoYFske1NEX0JJTkFSWX1dICR7bGluZX1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICBsb2cuaW5mbyhgJHtTRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH0pO1xuICAgICAgbG9nLmluZm8oYFN0YXJ0aW5nICcke3NhZmFyaUJpbn0nIG9uIHBvcnQgJHt0aGlzLnBvcnR9YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbmdsZSBzZXJ2ZXIgcHJvY2VzcyBwZXIgQXBwaXVtIGluc3RhbmNlXG5jb25zdCBTQUZBUklfRFJJVkVSX1BST0NFU1MgPSBuZXcgU2FmYXJpRHJpdmVyUHJvY2VzcygpO1xucHJvY2Vzcy5vbmNlKCdleGl0JywgKCkgPT4ge1xuICBpZiAoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZykge1xuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyhga2lsbCAke1NBRkFSSV9EUklWRVJfUFJPQ0VTUy5wcm9jLnBpZH1gKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbn0pO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wcm94eSA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBzdGFydCAoY2Fwcykge1xuICAgIGF3YWl0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pbml0KCk7XG5cbiAgICB0aGlzLnByb3h5ID0gbmV3IFNhZmFyaVByb3h5KHtcbiAgICAgIHNlcnZlcjogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiBTQUZBUklfRFJJVkVSX1BST0NFU1MucG9ydCxcbiAgICAgIGJhc2U6ICcnLFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSBmYWxzZTtcbiAgICBTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1Mua2lsbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmYXJpIERyaXZlciBzZXJ2ZXIgaXMgbm90IGxpc3RlbmluZyB3aXRoaW4gJHtTVEFSVFVQX1RJTUVPVVR9bXMgdGltZW91dC4gYCArXG4gICAgICAgICAgYE1ha2Ugc3VyZSBpdCBoYXMgYmVlbiBleGVjdXRlZCBtYW51YWxseSBhdCBsZWFzdCBvbmNlIHdpdGggJy0tZW5hYmxlJyBjb21tYW5kIGxpbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgICAgICBhbHdheXNNYXRjaDogY2FwcyxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgc3RvcHBlZCwgYmVjYXVzZSB0aGUgc2VydmVyIGlzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJveHk/LnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKGAvc2Vzc2lvbi8ke3RoaXMucHJveHkuc2Vzc2lvbklkfWAsICdERUxFVEUnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBkZWxldGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlclNlcnZlcjtcbiJdLCJmaWxlIjoibGliL3NhZmFyaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _logger = _interopRequireDefault(require("./logger"));
13
13
 
14
- var _appiumBaseDriver = require("appium-base-driver");
14
+ var _baseDriver = require("@appium/base-driver");
15
15
 
16
16
  var _driver = _interopRequireDefault(require("./driver"));
17
17
 
@@ -20,8 +20,8 @@ async function startServer(port, address) {
20
20
  port,
21
21
  address
22
22
  });
23
- let routeConfiguringFunction = (0, _appiumBaseDriver.routeConfiguringFunction)(d);
24
- let server = await (0, _appiumBaseDriver.server)({
23
+ let routeConfiguringFunction = (0, _baseDriver.routeConfiguringFunction)(d);
24
+ let server = await (0, _baseDriver.server)({
25
25
  routeConfiguringFunction,
26
26
  port,
27
27
  hostname: address
@@ -33,4 +33,4 @@ async function startServer(port, address) {
33
33
  }require('source-map-support').install();
34
34
 
35
35
 
36
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXIuanMiXSwibmFtZXMiOlsic3RhcnRTZXJ2ZXIiLCJwb3J0IiwiYWRkcmVzcyIsImQiLCJTYWZhcmlEcml2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJzZXJ2ZXIiLCJob3N0bmFtZSIsImxvZyIsImluZm8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLE9BQWxDLEVBQTJDO0FBQ3pDLE1BQUlDLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQWlCO0FBQUNILElBQUFBLElBQUQ7QUFBT0MsSUFBQUE7QUFBUCxHQUFqQixDQUFSO0FBQ0EsTUFBSUcsd0JBQXdCLEdBQUcsZ0RBQVdGLENBQVgsQ0FBL0I7QUFDQSxNQUFJRyxNQUFNLEdBQUcsTUFBTSw4QkFBVztBQUFDRCxJQUFBQSx3QkFBRDtBQUEyQkosSUFBQUEsSUFBM0I7QUFBaUNNLElBQUFBLFFBQVEsRUFBRUw7QUFBM0MsR0FBWCxDQUFuQjs7QUFDQU0sa0JBQUlDLElBQUosQ0FBVSwyQ0FBMENQLE9BQVEsSUFBR0QsSUFBSyxFQUFwRTs7QUFDQSxTQUFPSyxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IHNlcnZlciBhcyBiYXNlU2VydmVyLCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gYXMgbWFrZVJvdXRlciB9IGZyb20gJ2FwcGl1bS1iYXNlLWRyaXZlcic7XG5pbXBvcnQgU2FmYXJpRHJpdmVyIGZyb20gJy4vZHJpdmVyJztcblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIgKHBvcnQsIGFkZHJlc3MpIHtcbiAgbGV0IGQgPSBuZXcgU2FmYXJpRHJpdmVyKHtwb3J0LCBhZGRyZXNzfSk7XG4gIGxldCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gPSBtYWtlUm91dGVyKGQpO1xuICBsZXQgc2VydmVyID0gYXdhaXQgYmFzZVNlcnZlcih7cm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCBwb3J0LCBob3N0bmFtZTogYWRkcmVzc30pO1xuICBsb2cuaW5mbyhgU2FmYXJpRHJpdmVyIHNlcnZlciBsaXN0ZW5pbmcgb24gaHR0cDovLyR7YWRkcmVzc306JHtwb3J0fWApO1xuICByZXR1cm4gc2VydmVyO1xufVxuXG5leHBvcnQgeyBzdGFydFNlcnZlciB9O1xuIl0sImZpbGUiOiJsaWIvc2VydmVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
36
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXIuanMiXSwibmFtZXMiOlsic3RhcnRTZXJ2ZXIiLCJwb3J0IiwiYWRkcmVzcyIsImQiLCJTYWZhcmlEcml2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJzZXJ2ZXIiLCJob3N0bmFtZSIsImxvZyIsImluZm8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBRUEsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLE9BQWxDLEVBQTJDO0FBQ3pDLE1BQUlDLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQWlCO0FBQUNILElBQUFBLElBQUQ7QUFBT0MsSUFBQUE7QUFBUCxHQUFqQixDQUFSO0FBQ0EsTUFBSUcsd0JBQXdCLEdBQUcsMENBQVdGLENBQVgsQ0FBL0I7QUFDQSxNQUFJRyxNQUFNLEdBQUcsTUFBTSx3QkFBVztBQUFDRCxJQUFBQSx3QkFBRDtBQUEyQkosSUFBQUEsSUFBM0I7QUFBaUNNLElBQUFBLFFBQVEsRUFBRUw7QUFBM0MsR0FBWCxDQUFuQjs7QUFDQU0sa0JBQUlDLElBQUosQ0FBVSwyQ0FBMENQLE9BQVEsSUFBR0QsSUFBSyxFQUFwRTs7QUFDQSxTQUFPSyxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIHNlcnZlciBhcyBiYXNlU2VydmVyLCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gYXMgbWFrZVJvdXRlclxufSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBTYWZhcmlEcml2ZXIgZnJvbSAnLi9kcml2ZXInO1xuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAocG9ydCwgYWRkcmVzcykge1xuICBsZXQgZCA9IG5ldyBTYWZhcmlEcml2ZXIoe3BvcnQsIGFkZHJlc3N9KTtcbiAgbGV0IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiA9IG1ha2VSb3V0ZXIoZCk7XG4gIGxldCBzZXJ2ZXIgPSBhd2FpdCBiYXNlU2VydmVyKHtyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIHBvcnQsIGhvc3RuYW1lOiBhZGRyZXNzfSk7XG4gIGxvZy5pbmZvKGBTYWZhcmlEcml2ZXIgc2VydmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHthZGRyZXNzfToke3BvcnR9YCk7XG4gIHJldHVybiBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG4iXSwiZmlsZSI6ImxpYi9zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==