appium-safari-driver 2.2.1 → 3.0.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/.eslintrc +1 -1
- package/README.md +7 -5
- package/build/index.js +1 -1
- package/build/lib/commands/find.js +3 -3
- package/build/lib/commands/record-screen.js +14 -14
- package/build/lib/driver.js +3 -3
- package/build/lib/logger.js +3 -3
- package/build/lib/safari.js +10 -10
- package/build/lib/server.js +4 -4
- package/build/test/functional/desktop-driver-e2e-specs.js +11 -8
- package/build/test/functional/mobile-driver-e2e-specs.js +11 -8
- package/build/test/utils.js +1 -1
- package/gulpfile.js +3 -2
- package/lib/commands/find.js +1 -1
- package/lib/commands/record-screen.js +1 -1
- package/lib/driver.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/safari.js +2 -2
- package/lib/server.js +3 -1
- package/package.json +15 -8
- package/test/functional/desktop-driver-e2e-specs.js +10 -7
- package/test/functional/mobile-driver-e2e-specs.js +10 -7
package/.eslintrc
CHANGED
package/README.md
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
Appium Safari Driver
|
|
2
2
|
====
|
|
3
3
|
|
|
4
|
-
This is Appium driver for automating Safari on [
|
|
4
|
+
This is Appium driver for automating Safari on [macOS](https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari?language=objc) and iOS [since version 13](https://webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/).
|
|
5
5
|
The driver only supports Safari automation using [W3C WebDriver protocol](https://www.w3.org/TR/webdriver/).
|
|
6
6
|
Under the hood this driver is a wrapper/proxy over Apple's `safaridriver` binary. Check the output of `man safaridriver` command to get more details on the supported features and possible pitfalls.
|
|
7
7
|
|
|
8
8
|
## Usage
|
|
9
9
|
|
|
10
|
-
It is mandatory to run the `safaridriver --enable` command from the
|
|
10
|
+
It is mandatory to run the `safaridriver --enable` command from the macOS terminal and provide your administrator password before any automated session will be executed.
|
|
11
11
|
In order to automate Safari on real devices it is also necessary to enable Remote Automation switch in `Settings → Safari → Advanced → Remote Automation` for these particular devices.
|
|
12
12
|
|
|
13
13
|
Then you need to decide where the automated test is going to be executed. Safari driver supports the following target platforms:
|
|
14
|
-
-
|
|
14
|
+
- macOS (High Sierra or newer)
|
|
15
15
|
- iOS Simulator (iOS version 13 or newer)
|
|
16
16
|
- iOS Real Device (iOS version 13 or newer)
|
|
17
17
|
|
|
18
|
+
Since the version 3.0.0 this driver is only compatible with Appium 2. Use the `appium driver install safari` CLI command to add it to your server dist.
|
|
19
|
+
|
|
18
20
|
Safari driver allows to define multiple criterions for platform selection and also to fine-tune your automation session properties. This could be done via the following session capabilities:
|
|
19
21
|
|
|
20
22
|
Capability Name | Description
|
|
21
23
|
--- | ---
|
|
22
|
-
platformName | safaridriver binary can only create WebDriver sessions for desktop or mobile Safari and can only run on
|
|
24
|
+
platformName | safaridriver binary can only create WebDriver sessions for desktop or mobile Safari and can only run on macOS. Value of platformName could equal to 'Mac' or 'iOS' in order to start Safari driver session for the corresponding platform. Values of platformName are compared case-insensitively.
|
|
23
25
|
automationName | Value of automationName must equal to 'Safari' in order to start Safari driver session. Values of automationName are compared case-insensitively.
|
|
24
26
|
browserName | safaridriver can only create WebDriver sessions for Safari. Any value passed to this capability will be changed to 'Safari'.
|
|
25
27
|
browserVersion | safaridriver will only create a session using hosts whose Safari version matches the value of browserVersion. Browser version numbers are prefix-matched. For example, if the value of browserVersion is '12', this will allow hosts with a Safari version of '12.0.1' or '12.1'.
|
package/build/index.js
CHANGED
|
@@ -11,13 +11,13 @@ Object.defineProperty(exports, "SafariDriver", {
|
|
|
11
11
|
return _driver.default;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
+
exports.default = void 0;
|
|
14
15
|
Object.defineProperty(exports, "startServer", {
|
|
15
16
|
enumerable: true,
|
|
16
17
|
get: function () {
|
|
17
18
|
return _server.startServer;
|
|
18
19
|
}
|
|
19
20
|
});
|
|
20
|
-
exports.default = void 0;
|
|
21
21
|
|
|
22
22
|
require("source-map-support/register");
|
|
23
23
|
|
|
@@ -7,13 +7,13 @@ exports.default = exports.commands = void 0;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _support = require("@appium/support");
|
|
11
11
|
|
|
12
12
|
const commands = {};
|
|
13
13
|
exports.commands = commands;
|
|
14
14
|
|
|
15
15
|
commands.findElOrEls = async function findElOrEls(strategy, selector, mult, context) {
|
|
16
|
-
context =
|
|
16
|
+
context = _support.util.unwrapElement(context);
|
|
17
17
|
const endpoint = `/element${context ? `/${context}/element` : ''}${mult ? 's' : ''}`;
|
|
18
18
|
return await this.safari.proxy.command(endpoint, 'POST', {
|
|
19
19
|
using: strategy,
|
|
@@ -25,4 +25,4 @@ var _default = commands;
|
|
|
25
25
|
exports.default = _default;require('source-map-support').install();
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9maW5kLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZmluZEVsT3JFbHMiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwibXVsdCIsImNvbnRleHQiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsImVuZHBvaW50Iiwic2FmYXJpIiwicHJveHkiLCJjb21tYW5kIiwidXNpbmciLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFHQUEsUUFBUSxDQUFDQyxXQUFULEdBQXVCLGVBQWVBLFdBQWYsQ0FBNEJDLFFBQTVCLEVBQXNDQyxRQUF0QyxFQUFnREMsSUFBaEQsRUFBc0RDLE9BQXRELEVBQStEO0FBQ3BGQSxFQUFBQSxPQUFPLEdBQUdDLGNBQUtDLGFBQUwsQ0FBbUJGLE9BQW5CLENBQVY7QUFDQSxRQUFNRyxRQUFRLEdBQUksV0FBVUgsT0FBTyxHQUFJLElBQUdBLE9BQVEsVUFBZixHQUEyQixFQUFHLEdBQUVELElBQUksR0FBRyxHQUFILEdBQVMsRUFBRyxFQUFuRjtBQUVBLFNBQU8sTUFBTSxLQUFLSyxNQUFMLENBQVlDLEtBQVosQ0FBa0JDLE9BQWxCLENBQTBCSCxRQUExQixFQUFvQyxNQUFwQyxFQUE0QztBQUN2REksSUFBQUEsS0FBSyxFQUFFVixRQURnRDtBQUV2RFcsSUFBQUEsS0FBSyxFQUFFVjtBQUZnRCxHQUE1QyxDQUFiO0FBSUQsQ0FSRDs7ZUFZZUgsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8vIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgbG9va3VwIGJ5IGltYWdlIHdvcmtpbmdcbmNvbW1hbmRzLmZpbmRFbE9yRWxzID0gYXN5bmMgZnVuY3Rpb24gZmluZEVsT3JFbHMgKHN0cmF0ZWd5LCBzZWxlY3RvciwgbXVsdCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gdXRpbC51bndyYXBFbGVtZW50KGNvbnRleHQpO1xuICBjb25zdCBlbmRwb2ludCA9IGAvZWxlbWVudCR7Y29udGV4dCA/IGAvJHtjb250ZXh0fS9lbGVtZW50YCA6ICcnfSR7bXVsdCA/ICdzJyA6ICcnfWA7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuc2FmYXJpLnByb3h5LmNvbW1hbmQoZW5kcG9pbnQsICdQT1NUJywge1xuICAgIHVzaW5nOiBzdHJhdGVneSxcbiAgICB2YWx1ZTogc2VsZWN0b3IsXG4gIH0pO1xufTtcblxuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9maW5kLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
@@ -11,7 +11,7 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _support = require("@appium/support");
|
|
15
15
|
|
|
16
16
|
var _asyncbox = require("asyncbox");
|
|
17
17
|
|
|
@@ -30,11 +30,11 @@ async function uploadRecordedMedia(localFile, remotePath = null, uploadOptions =
|
|
|
30
30
|
if (_lodash.default.isEmpty(remotePath)) {
|
|
31
31
|
const {
|
|
32
32
|
size
|
|
33
|
-
} = await
|
|
33
|
+
} = await _support.fs.stat(localFile);
|
|
34
34
|
|
|
35
|
-
_logger.default.debug(`The size of the resulting screen recording is ${
|
|
35
|
+
_logger.default.debug(`The size of the resulting screen recording is ${_support.util.toReadableSizeString(size)}`);
|
|
36
36
|
|
|
37
|
-
return (await
|
|
37
|
+
return (await _support.util.toInMemoryBase64(localFile)).toString();
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const {
|
|
@@ -59,7 +59,7 @@ async function uploadRecordedMedia(localFile, remotePath = null, uploadOptions =
|
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
await
|
|
62
|
+
await _support.net.uploadFile(localFile, remotePath, options);
|
|
63
63
|
return '';
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -67,7 +67,7 @@ const VIDEO_FILES = new Set();
|
|
|
67
67
|
process.on('exit', () => {
|
|
68
68
|
for (const videoFile of VIDEO_FILES) {
|
|
69
69
|
try {
|
|
70
|
-
|
|
70
|
+
_support.fs.rimrafSync(videoFile);
|
|
71
71
|
} catch (ign) {}
|
|
72
72
|
}
|
|
73
73
|
});
|
|
@@ -85,7 +85,7 @@ class ScreenRecorder {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
async getVideoPath() {
|
|
88
|
-
if (await
|
|
88
|
+
if (await _support.fs.exists(this._videoPath)) {
|
|
89
89
|
VIDEO_FILES.add(this._videoPath);
|
|
90
90
|
return this._videoPath;
|
|
91
91
|
}
|
|
@@ -96,7 +96,7 @@ class ScreenRecorder {
|
|
|
96
96
|
get isRunning() {
|
|
97
97
|
var _this$_process;
|
|
98
98
|
|
|
99
|
-
return !!((_this$_process = this._process)
|
|
99
|
+
return !!((_this$_process = this._process) !== null && _this$_process !== void 0 && _this$_process.isRunning);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
async _enforceTermination() {
|
|
@@ -112,7 +112,7 @@ class ScreenRecorder {
|
|
|
112
112
|
const videoPath = await this.getVideoPath();
|
|
113
113
|
|
|
114
114
|
if (videoPath) {
|
|
115
|
-
await
|
|
115
|
+
await _support.fs.rimraf(videoPath);
|
|
116
116
|
VIDEO_FILES.delete(videoPath);
|
|
117
117
|
}
|
|
118
118
|
|
|
@@ -140,7 +140,7 @@ class ScreenRecorder {
|
|
|
140
140
|
asynchronous: true
|
|
141
141
|
});
|
|
142
142
|
|
|
143
|
-
_logger.default.debug(`Starting video recording with arguments: ${
|
|
143
|
+
_logger.default.debug(`Starting video recording with arguments: ${_support.util.quote(args)}`);
|
|
144
144
|
|
|
145
145
|
this._process.on('output', (stdout, stderr) => {
|
|
146
146
|
const line = _lodash.default.trim(stdout || stderr);
|
|
@@ -262,7 +262,7 @@ commands.startRecordingScreen = async function startRecordingScreen(options = {}
|
|
|
262
262
|
forceRestart = true
|
|
263
263
|
} = options;
|
|
264
264
|
|
|
265
|
-
if ((_this$_screenRecorder = this._screenRecorder)
|
|
265
|
+
if ((_this$_screenRecorder = this._screenRecorder) !== null && _this$_screenRecorder !== void 0 && _this$_screenRecorder.isRunning) {
|
|
266
266
|
_logger.default.info('The screen recording is already running');
|
|
267
267
|
|
|
268
268
|
if (!forceRestart) {
|
|
@@ -283,8 +283,8 @@ commands.startRecordingScreen = async function startRecordingScreen(options = {}
|
|
|
283
283
|
throw new Error('Cannot determine Simulator UDID to record the video from. ' + 'Double check your session capabilities');
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
const videoPath = await
|
|
287
|
-
prefix:
|
|
286
|
+
const videoPath = await _support.tempDir.path({
|
|
287
|
+
prefix: _support.util.uuidV4().substring(0, 8),
|
|
288
288
|
suffix: DEFAULT_EXT
|
|
289
289
|
});
|
|
290
290
|
this._screenRecorder = new ScreenRecorder(udid, videoPath, {
|
|
@@ -326,4 +326,4 @@ var _default = commands;
|
|
|
326
326
|
exports.default = _default;require('source-map-support').install();
|
|
327
327
|
|
|
328
328
|
|
|
329
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiU1RBUlRVUF9JTlRFUlZBTF9NUyIsIlNUQVJUVVBfVElNRU9VVF9NUyIsIkRFRkFVTFRfVElNRV9MSU1JVF9NUyIsIlBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyIsIkRFRkFVTFRfRVhUIiwidXBsb2FkUmVjb3JkZWRNZWRpYSIsImxvY2FsRmlsZSIsInJlbW90ZVBhdGgiLCJ1cGxvYWRPcHRpb25zIiwiXyIsImlzRW1wdHkiLCJzaXplIiwiZnMiLCJzdGF0IiwibG9nIiwiZGVidWciLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJ1c2VyIiwicGFzcyIsIm1ldGhvZCIsImhlYWRlcnMiLCJmaWxlRmllbGROYW1lIiwiZm9ybUZpZWxkcyIsIm9wdGlvbnMiLCJhdXRoIiwibmV0IiwidXBsb2FkRmlsZSIsIlZJREVPX0ZJTEVTIiwiU2V0IiwicHJvY2VzcyIsIm9uIiwidmlkZW9GaWxlIiwicmltcmFmU3luYyIsImlnbiIsIlNjcmVlblJlY29yZGVyIiwiY29uc3RydWN0b3IiLCJ1ZGlkIiwidmlkZW9QYXRoIiwib3B0cyIsIl9wcm9jZXNzIiwiX3VkaWQiLCJfdmlkZW9QYXRoIiwiX2NvZGVjIiwiY29kZWMiLCJfZGlzcGxheSIsImRpc3BsYXkiLCJfbWFzayIsIm1hc2siLCJfdGltZUxpbWl0TXMiLCJ0aW1lTGltaXQiLCJfdGltZXIiLCJnZXRWaWRlb1BhdGgiLCJleGlzdHMiLCJhZGQiLCJpc1J1bm5pbmciLCJfZW5mb3JjZVRlcm1pbmF0aW9uIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIkVycm9yIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImUiLCJlcnJvckFuZFRocm93Iiwic2V0VGltZW91dCIsImVycm9yIiwiaW5mbyIsImZvcmNlIiwiY2xlYXJUaW1lb3V0IiwiZXh0cmFjdFNpbXVsYXRvclVkaWQiLCJjYXBzIiwiYWxsRGV2aWNlcyIsImZsYXRNYXAiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwibmFtZSIsInN0YXRlIiwic2RrIiwidG9Mb3dlciIsInN0YXJ0UmVjb3JkaW5nU2NyZWVuIiwiZm9yY2VSZXN0YXJ0IiwiX3NjcmVlblJlY29yZGVyIiwidGVtcERpciIsInBhdGgiLCJwcmVmaXgiLCJ1dWlkVjQiLCJzdWZmaXgiLCJwYXJzZUludCIsInN0b3BSZWNvcmRpbmdTY3JlZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUEsTUFBTUMsbUJBQW1CLEdBQUcsR0FBNUI7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxLQUFLLElBQWhDO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsS0FBSyxFQUFMLEdBQVUsSUFBeEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxLQUFLLElBQXpDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLE1BQXBCOztBQUdBLGVBQWVDLG1CQUFmLENBQW9DQyxTQUFwQyxFQUErQ0MsVUFBVSxHQUFHLElBQTVELEVBQWtFQyxhQUFhLEdBQUcsRUFBbEYsRUFBc0Y7QUFDcEYsTUFBSUMsZ0JBQUVDLE9BQUYsQ0FBVUgsVUFBVixDQUFKLEVBQTJCO0FBQ3pCLFVBQU07QUFBQ0ksTUFBQUE7QUFBRCxRQUFTLE1BQU1DLGtCQUFHQyxJQUFILENBQVFQLFNBQVIsQ0FBckI7O0FBQ0FRLG9CQUFJQyxLQUFKLENBQVcsaURBQWdEQyxvQkFBS0Msb0JBQUwsQ0FBMEJOLElBQTFCLENBQWdDLEVBQTNGOztBQUNBLFdBQU8sQ0FBQyxNQUFN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Q0FBVSxxQ0FBVjs7QUFDQSxRQUFNeUIsU0FBUyxHQUFHLE1BQU0sS0FBSzRELGVBQUwsQ0FBcUJ6QyxJQUFyQixFQUF4Qjs7QUFDQSxNQUFJLENBQUNuQixTQUFMLEVBQWdCO0FBQ2QxQixvQkFBSXVFLElBQUosQ0FBUyxtREFBVDs7QUFDQSxXQUFPLEVBQVA7QUFDRDs7QUFDRCxTQUFPLE1BQU1oRixtQkFBbUIsQ0FBQ21DLFNBQUQsRUFBWWQsT0FBTyxDQUFDbkIsVUFBcEIsRUFBZ0NtQixPQUFoQyxDQUFoQztBQUNELENBYkQ7O2VBZWUzQixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwsIGZzLCBuZXQsIHRlbXBEaXIgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IFNpbWN0bCBmcm9tICdub2RlLXNpbWN0bCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuY29uc3QgU1RBUlRVUF9JTlRFUlZBTF9NUyA9IDMwMDtcbmNvbnN0IFNUQVJUVVBfVElNRU9VVF9NUyA9IDEwICogMTAwMDtcbmNvbnN0IERFRkFVTFRfVElNRV9MSU1JVF9NUyA9IDYwICogMTAgKiAxMDAwOyAvLyAxMCBtaW51dGVzXG5jb25zdCBQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMgPSAxMCAqIDEwMDA7XG5jb25zdCBERUZBVUxUX0VYVCA9ICcubXA0JztcblxuXG5hc3luYyBmdW5jdGlvbiB1cGxvYWRSZWNvcmRlZE1lZGlhIChsb2NhbEZpbGUsIHJlbW90ZVBhdGggPSBudWxsLCB1cGxvYWRPcHRpb25zID0ge30pIHtcbiAgaWYgKF8uaXNFbXB0eShyZW1vdGVQYXRoKSkge1xuICAgIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQobG9jYWxGaWxlKTtcbiAgICBsb2cuZGVidWcoYFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgc2NyZWVuIHJlY29yZGluZyBpcyAke3V0aWwudG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9YCk7XG4gICAgcmV0dXJuIChhd2FpdCB1dGlsLnRvSW5NZW1vcnlCYXNlNjQobG9jYWxGaWxlKSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IHt1c2VyLCBwYXNzLCBtZXRob2QsIGhlYWRlcnMsIGZpbGVGaWVsZE5hbWUsIGZvcm1GaWVsZHN9ID0gdXBsb2FkT3B0aW9ucztcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBtZXRob2Q6IG1ldGhvZCB8fCAnUFVUJyxcbiAgICBoZWFkZXJzLFxuICAgIGZpbGVGaWVsZE5hbWUsXG4gICAgZm9ybUZpZWxkcyxcbiAgfTtcbiAgaWYgKHVzZXIgJiYgcGFzcykge1xuICAgIG9wdGlvbnMuYXV0aCA9IHt1c2VyLCBwYXNzfTtcbiAgfVxuICBhd2FpdCBuZXQudXBsb2FkRmlsZShsb2NhbEZpbGUsIHJlbW90ZVBhdGgsIG9wdGlvbnMpO1xuICByZXR1cm4gJyc7XG59XG5cbmNvbnN0IFZJREVPX0ZJTEVTID0gbmV3IFNldCgpO1xucHJvY2Vzcy5vbignZXhpdCcsICgpID0+IHtcbiAgZm9yIChjb25zdCB2aWRlb0ZpbGUgb2YgVklERU9fRklMRVMpIHtcbiAgICB0cnkge1xuICAgICAgZnMucmltcmFmU3luYyh2aWRlb0ZpbGUpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxufSk7XG5cbmNsYXNzIFNjcmVlblJlY29yZGVyIHtcbiAgY29uc3RydWN0b3IgKHVkaWQsIHZpZGVvUGF0aCwgb3B0cyA9IHt9KSB7XG4gICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgdGhpcy5fdWRpZCA9IHVkaWQ7XG4gICAgdGhpcy5fdmlkZW9QYXRoID0gdmlkZW9QYXRoO1xuICAgIHRoaXMuX2NvZGVjID0gb3B0cy5jb2RlYztcbiAgICB0aGlzLl9kaXNwbGF5ID0gb3B0cy5kaXNwbGF5O1xuICAgIHRoaXMuX21hc2sgPSBvcHRzLm1hc2s7XG4gICAgdGhpcy5fdGltZUxpbWl0TXMgPSBvcHRzLnRpbWVMaW1pdCA+IDAgPyBvcHRzLnRpbWVMaW1pdCAqIDEwMDAgOiBERUZBVUxUX1RJTUVfTElNSVRfTVM7XG4gICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0VmlkZW9QYXRoICgpIHtcbiAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKHRoaXMuX3ZpZGVvUGF0aCkpIHtcbiAgICAgIFZJREVPX0ZJTEVTLmFkZCh0aGlzLl92aWRlb1BhdGgpO1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZGVvUGF0aDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMuX3Byb2Nlc3M/LmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBfZW5mb3JjZVRlcm1pbmF0aW9uICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5kZWJ1ZygnRm9yY2Utc3RvcHBpbmcgdGhlIGN1cnJlbnRseSBydW5uaW5nIHZpZGVvIHJlY29yZGluZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgaWYgKHZpZGVvUGF0aCkge1xuICAgICAgYXdhaXQgZnMucmltcmFmKHZpZGVvUGF0aCk7XG4gICAgICBWSURFT19GSUxFUy5kZWxldGUodmlkZW9QYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQgKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICB0aGlzLl91ZGlkLCAncmVjb3JkVmlkZW8nXG4gICAgXTtcbiAgICBpZiAodGhpcy5fZGlzcGxheSkge1xuICAgICAgYXJncy5wdXNoKCctLWRpc3BsYXknLCB0aGlzLl9kaXNwbGF5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvZGVjKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY29kZWMnLCB0aGlzLl9jb2RlYyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXNrKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbWFzaycsIHRoaXMuX21hc2spO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tZm9yY2UnLCB0aGlzLl92aWRlb1BhdGgpO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBhd2FpdCBuZXcgU2ltY3RsKCkuZXhlYygnaW8nLCB7XG4gICAgICBhcmdzLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLFxuICAgIH0pO1xuICAgIGxvZy5kZWJ1ZyhgU3RhcnRpbmcgdmlkZW8gcmVjb3JkaW5nIHdpdGggYXJndW1lbnRzOiAke3V0aWwucXVvdGUoYXJncyl9YCk7XG4gICAgdGhpcy5fcHJvY2Vzcy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICBjb25zdCBsaW5lID0gXy50cmltKHN0ZG91dCB8fCBzdGRlcnIpO1xuICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBbcmVjb3JkVmlkZW9AJHt0aGlzLl91ZGlkLnN1YnN0cmluZygwLCA4KX1dICR7bGluZX1gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uY2UoJ2V4aXQnLCBhc3luYyAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgICB0aGlzLl9wcm9jZXNzID0gbnVsbDtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aG91dCBlcnJvcnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgICBsb2cud2FybihgU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLl9wcm9jZXNzLnN0YXJ0KDApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUnVubmluZykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIShhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpKTtcbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICAgIGludGVydmFsTXM6IFNUQVJUVVBfSU5URVJWQUxfTVMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgIGxvZy5lcnJvckFuZFRocm93KGBUaGUgZXhwZWN0ZWQgc2NyZWVuIHJlY29yZCBmaWxlICcke3RoaXMuX3ZpZGVvUGF0aH0nIGRvZXMgbm90IGV4aXN0IGFmdGVyICR7U1RBUlRVUF9USU1FT1VUX01TfW1zLiBgICtcbiAgICAgICAgYENoZWNrIHRoZSBzZXJ2ZXIgbG9nIGZvciBtb3JlIGRldGFpbHNgKTtcbiAgICB9XG4gICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgdGhpcy5fdGltZUxpbWl0TXMpO1xuICAgIGxvZy5pbmZvKGBUaGUgdmlkZW8gcmVjb3JkaW5nIGhhcyBzdGFydGVkLiBXaWxsIHRpbWVvdXQgaW4gJHt0aGlzLl90aW1lTGltaXRNc31tc2ApO1xuICB9XG5cbiAgYXN5bmMgc3RvcCAoZm9yY2UgPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLl90aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZm9yY2UpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICBsb2cuZGVidWcoJ1NjcmVlbiByZWNvcmRpbmcgaXMgbm90IHJ1bm5pbmcuIFJldHVybmluZyB0aGUgcmVjZW50bHkgcmVjb3JkZWQgdmlkZW8nKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9wcm9jZXNzLnN0b3AoJ1NJR0lOVCcsIFBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5fZW5mb3JjZVRlcm1pbmF0aW9uKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjcmVlbiByZWNvcmRpbmcgaGFzIGZhaWxlZCB0byBzdG9wIGFmdGVyICR7UFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TfW1zYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFNpbXVsYXRvclVkaWQgKGNhcHMpIHtcbiAgaWYgKGNhcHNbJ3NhZmFyaTp1c2VTaW11bGF0b3InXSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGFsbERldmljZXMgPSBfLmZsYXRNYXAoXy52YWx1ZXMoYXdhaXQgbmV3IFNpbWN0bCgpLmdldERldmljZXMobnVsbCwgJ2lPUycpKSk7XG4gIGZvciAoY29uc3Qge25hbWUsIHVkaWQsIHN0YXRlLCBzZGt9IG9mIGFsbERldmljZXMpIHtcbiAgICBpZiAoc3RhdGUgIT09ICdCb290ZWQnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoXy50b0xvd2VyKGNhcHNbJ3NhZmFyaTpkZXZpY2VVRElEJ10pID09PSBfLnRvTG93ZXIodWRpZCkpIHtcbiAgICAgIHJldHVybiB1ZGlkO1xuICAgIH1cbiAgICBpZiAoXy50b0xvd2VyKGNhcHNbJ3NhZmFyaTpkZXZpY2VOYW1lJ10pID09PSBfLnRvTG93ZXIobmFtZSkgJiZcbiAgICAgIChjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10gJiYgY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddID09PSBzZGtcbiAgICAgICAgfHwgIWNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSkpIHtcbiAgICAgIHJldHVybiB1ZGlkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhcnRSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb2RlYyBbaGV2Y10gLSBTcGVjaWZpZXMgdGhlIGNvZGVjIHR5cGU6IFwiaDI2NFwiIG9yIFwiaGV2Y1wiXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGRpc3BsYXkgW2ludGVybmFsXSAtIFN1cHBvcnRzIFwiaW50ZXJuYWxcIiBvciBcImV4dGVybmFsXCIuIERlZmF1bHQgaXMgXCJpbnRlcm5hbFwiXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IG1hc2sgLSBGb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzLCBoYW5kbGUgdGhlIG1hc2sgYnkgcG9saWN5OlxuICogLSBpZ25vcmVkOiBUaGUgbWFzayBpcyBpZ25vcmVkIGFuZCB0aGUgdW5tYXNrZWQgZnJhbWVidWZmZXIgaXMgc2F2ZWQuXG4gKiAtIGFscGhhOiBOb3Qgc3VwcG9ydGVkLCBidXQgcmV0YWluZWQgZm9yIGNvbXBhdGliaWxpdHk7IHRoZSBtYXNrIGlzIHJlbmRlcmVkIGJsYWNrLlxuICogLSBibGFjazogVGhlIG1hc2sgaXMgcmVuZGVyZWQgYmxhY2suXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudW1iZXJ9IHRpbWVMaW1pdCBbNjAwXSAtIFRoZSBtYXhpbXVtIHJlY29yZGluZyB0aW1lLCBpbiBzZWNvbmRzLiBUaGUgZGVmYXVsdFxuICogdmFsdWUgaXMgNjAwIHNlY29uZHMgKDEwIG1pbnV0ZXMpLlxuICogQHByb3BlcnR5IHtib29sZWFufSBmb3JjZVJlc3RhcnQgW3RydWVdIC0gV2hldGhlciB0byBpZ25vcmUgdGhlIGNhbGwgaWYgYSBzY3JlZW4gcmVjb3JkaW5nIGlzIGN1cnJlbnRseSBydW5uaW5nXG4gKiAoYGZhbHNlYCkgb3IgdG8gc3RhcnQgYSBuZXcgcmVjb3JkaW5nIGltbWVkaWF0ZWx5IGFuZCB0ZXJtaW5hdGUgdGhlIGV4aXN0aW5nIG9uZSBpZiBydW5uaW5nIChgdHJ1ZWApLlxuICovXG5cbi8qKlxuICogUmVjb3JkIHRoZSBTaW11bGF0b3IncyBkaXNwbGF5IGluIGJhY2tncm91bmQgd2hpbGUgdGhlIGF1dG9tYXRlZCB0ZXN0IGlzIHJ1bm5pbmcuXG4gKiBUaGlzIG1ldGhvZCB1c2VzIGB4Y3J1biBzaW1jdGwgaW8gcmVjb3JkVmlkZW9gIGhlbHBlciB1bmRlciB0aGUgaG9vZC5cbiAqIENoZWNrIHRoZSBvdXRwdXQgb2YgYHhjcnVuIHNpbWN0bCBpb2AgY29tbWFuZCBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBwYXJhbSB7P1N0YXJ0UmVjb3JkaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBzY3JlZW4gcmVjb3JkaW5nIGhhcyBmYWlsZWQgdG8gc3RhcnQgb3IgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIGRldmljZS5cbiAqL1xuY29tbWFuZHMuc3RhcnRSZWNvcmRpbmdTY3JlZW4gPSBhc3luYyBmdW5jdGlvbiBzdGFydFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0aW1lTGltaXQsXG4gICAgY29kZWMsXG4gICAgZGlzcGxheSxcbiAgICBtYXNrLFxuICAgIGZvcmNlUmVzdGFydCA9IHRydWUsXG4gIH0gPSBvcHRpb25zO1xuICBpZiAodGhpcy5fc2NyZWVuUmVjb3JkZXI/LmlzUnVubmluZykge1xuICAgIGxvZy5pbmZvKCdUaGUgc2NyZWVuIHJlY29yZGluZyBpcyBhbHJlYWR5IHJ1bm5pbmcnKTtcbiAgICBpZiAoIWZvcmNlUmVzdGFydCkge1xuICAgICAgbG9nLmluZm8oJ0RvaW5nIG5vdGhpbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbG9nLmluZm8oJ0ZvcmNpbmcgdGhlIGFjdGl2ZSBzY3JlZW4gcmVjb3JkaW5nIHRvIHN0b3AnKTtcbiAgICBhd2FpdCB0aGlzLl9zY3JlZW5SZWNvcmRlci5zdG9wKHRydWUpO1xuICB9XG4gIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcblxuICBjb25zdCB1ZGlkID0gYXdhaXQgZXh0cmFjdFNpbXVsYXRvclVkaWQodGhpcy5jYXBzKTtcbiAgaWYgKCF1ZGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGV0ZXJtaW5lIFNpbXVsYXRvciBVRElEIHRvIHJlY29yZCB0aGUgdmlkZW8gZnJvbS4gJyArXG4gICAgICAnRG91YmxlIGNoZWNrIHlvdXIgc2Vzc2lvbiBjYXBhYmlsaXRpZXMnKTtcbiAgfVxuXG4gIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRlbXBEaXIucGF0aCh7XG4gICAgcHJlZml4OiB1dGlsLnV1aWRWNCgpLnN1YnN0cmluZygwLCA4KSxcbiAgICBzdWZmaXg6IERFRkFVTFRfRVhULFxuICB9KTtcbiAgdGhpcy5fc2NyZWVuUmVjb3JkZXIgPSBuZXcgU2NyZWVuUmVjb3JkZXIodWRpZCwgdmlkZW9QYXRoLCB7XG4gICAgdGltZUxpbWl0OiBwYXJzZUludCh0aW1lTGltaXQsIDEwKSxcbiAgICBjb2RlYyxcbiAgICBkaXNwbGF5LFxuICAgIG1hc2ssXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0YXJ0KCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG4gICAgdGhyb3cgZTtcbiAgfVxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdG9wUmVjb3JkaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcmVtb3RlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSByZW1vdGUgbG9jYXRpb24sIHdoZXJlIHRoZSByZXN1bHRpbmcgdmlkZW8gc2hvdWxkIGJlIHVwbG9hZGVkLlxuICogVGhlIGZvbGxvd2luZyBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZDogaHR0cC9odHRwcywgZnRwLlxuICogTnVsbCBvciBlbXB0eSBzdHJpbmcgdmFsdWUgKHRoZSBkZWZhdWx0IHNldHRpbmcpIG1lYW5zIHRoZSBjb250ZW50IG9mIHJlc3VsdGluZ1xuICogZmlsZSBzaG91bGQgYmUgZW5jb2RlZCBhcyBCYXNlNjQgYW5kIHBhc3NlZCBhcyB0aGUgZW5kcG9pbnQgcmVzcG9uc2UgdmFsdWUuXG4gKiBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgdGhlIGdlbmVyYXRlZCBtZWRpYSBmaWxlIGlzIHRvbyBiaWcgdG9cbiAqIGZpdCBpbnRvIHRoZSBhdmFpbGFibGUgcHJvY2VzcyBtZW1vcnkuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVzZXIgLSBUaGUgbmFtZSBvZiB0aGUgdXNlciBmb3IgdGhlIHJlbW90ZSBhdXRoZW50aWNhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgdGhlIHJlbW90ZSBhdXRoZW50aWNhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWV0aG9kIC0gVGhlIGh0dHAgbXVsdGlwYXJ0IHVwbG9hZCBtZXRob2QgbmFtZS4gVGhlICdQVVQnIG9uZSBpcyB1c2VkIGJ5IGRlZmF1bHQuXG4gKiBAcHJvcGVydHkgez9PYmplY3R9IGhlYWRlcnMgLSBBZGRpdGlvbmFsIGhlYWRlcnMgbWFwcGluZyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBmaWxlRmllbGROYW1lIFtmaWxlXSAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGZpZWxkLCB3aGVyZSB0aGUgZmlsZSBjb250ZW50IEJMT0Igc2hvdWxkIGJlIHN0b3JlZCBmb3JcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwKHMpIHVwbG9hZHNcbiAqIEBwcm9wZXJ0eSB7P09iamVjdHxBcnJheTxQYWlyPn0gZm9ybUZpZWxkcyAtIEFkZGl0aW9uYWwgZm9ybSBmaWVsZHMgZm9yIG11bHRpcGFydCBodHRwKHMpIHVwbG9hZHNcbiAqL1xuXG4vKipcbiAqIFN0b3AgcmVjb3JkaW5nIHRoZSBzY3JlZW4uXG4gKiBJZiBubyBzY3JlZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlIHRoZW4gdGhlIG1ldGhvZCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gez9TdG9wUmVjb3JkaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHJlY29yZGVkIG1lZGlhIGZpbGUgaWYgJ3JlbW90ZVBhdGgnXG4gKiBwYXJhbWV0ZXIgaXMgZmFsc3kgb3IgYW4gZW1wdHkgc3RyaW5nLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBnZXR0aW5nIHRoZSBuYW1lIG9mIGEgbWVkaWEgZmlsZVxuICogb3IgdGhlIGZpbGUgY29udGVudCBjYW5ub3QgYmUgdXBsb2FkZWQgdG8gdGhlIHJlbW90ZSBsb2NhdGlvblxuICogb3Igc2NyZWVuIHJlY29yZGluZyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBkZXZpY2UgdW5kZXIgdGVzdC5cbiAqL1xuY29tbWFuZHMuc3RvcFJlY29yZGluZ1NjcmVlbiA9IGFzeW5jIGZ1bmN0aW9uIHN0b3BSZWNvcmRpbmdTY3JlZW4gKG9wdGlvbnMgPSB7fSkge1xuICBpZiAoIXRoaXMuX3NjcmVlblJlY29yZGVyKSB7XG4gICAgbG9nLmluZm8oJ05vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZC4gRG9pbmcgbm90aGluZycpO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGxvZy5kZWJ1ZygnUmV0cmlldmluZyB0aGUgcmVzdWx0aW5nIHZpZGVvIGRhdGEnKTtcbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCgpO1xuICBpZiAoIXZpZGVvUGF0aCkge1xuICAgIGxvZy5pbmZvKCdObyB2aWRlbyBkYXRhIGlzIGZvdW5kLiBSZXR1cm5pbmcgYW4gZW1wdHkgc3RyaW5nJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBhd2FpdCB1cGxvYWRSZWNvcmRlZE1lZGlhKHZpZGVvUGF0aCwgb3B0aW9ucy5yZW1vdGVQYXRoLCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvcmVjb3JkLXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
329
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiU1RBUlRVUF9JTlRFUlZBTF9NUyIsIlNUQVJUVVBfVElNRU9VVF9NUyIsIkRFRkFVTFRfVElNRV9MSU1JVF9NUyIsIlBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyIsIkRFRkFVTFRfRVhUIiwidXBsb2FkUmVjb3JkZWRNZWRpYSIsImxvY2FsRmlsZSIsInJlbW90ZVBhdGgiLCJ1cGxvYWRPcHRpb25zIiwiXyIsImlzRW1wdHkiLCJzaXplIiwiZnMiLCJzdGF0IiwibG9nIiwiZGVidWciLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJ1c2VyIiwicGFzcyIsIm1ldGhvZCIsImhlYWRlcnMiLCJmaWxlRmllbGROYW1lIiwiZm9ybUZpZWxkcyIsIm9wdGlvbnMiLCJhdXRoIiwibmV0IiwidXBsb2FkRmlsZSIsIlZJREVPX0ZJTEVTIiwiU2V0IiwicHJvY2VzcyIsIm9uIiwidmlkZW9GaWxlIiwicmltcmFmU3luYyIsImlnbiIsIlNjcmVlblJlY29yZGVyIiwiY29uc3RydWN0b3IiLCJ1ZGlkIiwidmlkZW9QYXRoIiwib3B0cyIsIl9wcm9jZXNzIiwiX3VkaWQiLCJfdmlkZW9QYXRoIiwiX2NvZGVjIiwiY29kZWMiLCJfZGlzcGxheSIsImRpc3BsYXkiLCJfbWFzayIsIm1hc2siLCJfdGltZUxpbWl0TXMiLCJ0aW1lTGltaXQiLCJfdGltZXIiLCJnZXRWaWRlb1BhdGgiLCJleGlzdHMiLCJhZGQiLCJpc1J1bm5pbmciLCJfZW5mb3JjZVRlcm1pbmF0aW9uIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIkVycm9yIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImUiLCJlcnJvckFuZFRocm93Iiwic2V0VGltZW91dCIsImVycm9yIiwiaW5mbyIsImZvcmNlIiwiY2xlYXJUaW1lb3V0IiwiZXh0cmFjdFNpbXVsYXRvclVkaWQiLCJjYXBzIiwiYWxsRGV2aWNlcyIsImZsYXRNYXAiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwibmFtZSIsInN0YXRlIiwic2RrIiwidG9Mb3dlciIsInN0YXJ0UmVjb3JkaW5nU2NyZWVuIiwiZm9yY2VSZXN0YXJ0IiwiX3NjcmVlblJlY29yZGVyIiwidGVtcERpciIsInBhdGgiLCJwcmVmaXgiLCJ1dWlkVjQiLCJzdWZmaXgiLCJwYXJzZUludCIsInN0b3BSZWNvcmRpbmdTY3JlZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUEsTUFBTUMsbUJBQW1CLEdBQUcsR0FBNUI7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxLQUFLLElBQWhDO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsS0FBSyxFQUFMLEdBQVUsSUFBeEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxLQUFLLElBQXpDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLE1BQXBCOztBQUdBLGVBQWVDLG1CQUFmLENBQW9DQyxTQUFwQyxFQUErQ0MsVUFBVSxHQUFHLElBQTVELEVBQWtFQyxhQUFhLEdBQUcsRUFBbEYsRUFBc0Y7QUFDcEYsTUFBSUMsZ0JBQUVDLE9BQUYsQ0FBVUgsVUFBVixDQUFKLEVBQTJCO0FBQ3pCLFVBQU07QUFBQ0ksTUFBQUE7QUFBRCxRQUFTLE1BQU1DLFlBQUdDLElBQUgsQ0FBUVAsU0FBUixDQUFyQjs7QUFDQVEsb0JBQUlDLEtBQUosQ0FBVyxpREFBZ0RDLGNBQUtDLG9CQUFMLENBQTBCTixJQUExQixDQUFnQyxFQUEzRjs7QUFDQSxXQUFPLENBQUMsTUFBTUss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QVY7O0FBQ0EsUUFBTXlCLFNBQVMsR0FBRyxNQUFNLEtBQUs0RCxlQUFMLENBQXFCekMsSUFBckIsRUFBeEI7O0FBQ0EsTUFBSSxDQUFDbkIsU0FBTCxFQUFnQjtBQUNkMUIsb0JBQUl1RSxJQUFKLENBQVMsbURBQVQ7O0FBQ0EsV0FBTyxFQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNaEYsbUJBQW1CLENBQUNtQyxTQUFELEVBQVlkLE9BQU8sQ0FBQ25CLFVBQXBCLEVBQWdDbUIsT0FBaEMsQ0FBaEM7QUFDRCxDQWJEOztlQWVlM0IsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsLCBmcywgbmV0LCB0ZW1wRGlyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgU2ltY3RsIGZyb20gJ25vZGUtc2ltY3RsJztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5jb25zdCBTVEFSVFVQX0lOVEVSVkFMX01TID0gMzAwO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9USU1FX0xJTUlUX01TID0gNjAgKiAxMCAqIDEwMDA7IC8vIDEwIG1pbnV0ZXNcbmNvbnN0IFBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyA9IDEwICogMTAwMDtcbmNvbnN0IERFRkFVTFRfRVhUID0gJy5tcDQnO1xuXG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZFJlY29yZGVkTWVkaWEgKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCA9IG51bGwsIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBpZiAoXy5pc0VtcHR5KHJlbW90ZVBhdGgpKSB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdChsb2NhbEZpbGUpO1xuICAgIGxvZy5kZWJ1ZyhgVGhlIHNpemUgb2YgdGhlIHJlc3VsdGluZyBzY3JlZW4gcmVjb3JkaW5nIGlzICR7dXRpbC50b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX1gKTtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qge3VzZXIsIHBhc3MsIG1ldGhvZCwgaGVhZGVycywgZmlsZUZpZWxkTmFtZSwgZm9ybUZpZWxkc30gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogbWV0aG9kIHx8ICdQVVQnLFxuICAgIGhlYWRlcnMsXG4gICAgZmlsZUZpZWxkTmFtZSxcbiAgICBmb3JtRmllbGRzLFxuICB9O1xuICBpZiAodXNlciAmJiBwYXNzKSB7XG4gICAgb3B0aW9ucy5hdXRoID0ge3VzZXIsIHBhc3N9O1xuICB9XG4gIGF3YWl0IG5ldC51cGxvYWRGaWxlKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCwgb3B0aW9ucyk7XG4gIHJldHVybiAnJztcbn1cblxuY29uc3QgVklERU9fRklMRVMgPSBuZXcgU2V0KCk7XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHZpZGVvRmlsZSBvZiBWSURFT19GSUxFUykge1xuICAgIHRyeSB7XG4gICAgICBmcy5yaW1yYWZTeW5jKHZpZGVvRmlsZSk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2NyZWVuUmVjb3JkZXIge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgdmlkZW9QYXRoLCBvcHRzID0ge30pIHtcbiAgICB0aGlzLl9wcm9jZXNzID0gbnVsbDtcbiAgICB0aGlzLl91ZGlkID0gdWRpZDtcbiAgICB0aGlzLl92aWRlb1BhdGggPSB2aWRlb1BhdGg7XG4gICAgdGhpcy5fY29kZWMgPSBvcHRzLmNvZGVjO1xuICAgIHRoaXMuX2Rpc3BsYXkgPSBvcHRzLmRpc3BsYXk7XG4gICAgdGhpcy5fbWFzayA9IG9wdHMubWFzaztcbiAgICB0aGlzLl90aW1lTGltaXRNcyA9IG9wdHMudGltZUxpbWl0ID4gMCA/IG9wdHMudGltZUxpbWl0ICogMTAwMCA6IERFRkFVTFRfVElNRV9MSU1JVF9NUztcbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gIH1cblxuICBhc3luYyBnZXRWaWRlb1BhdGggKCkge1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHModGhpcy5fdmlkZW9QYXRoKSkge1xuICAgICAgVklERU9fRklMRVMuYWRkKHRoaXMuX3ZpZGVvUGF0aCk7XG4gICAgICByZXR1cm4gdGhpcy5fdmlkZW9QYXRoO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5fcHJvY2Vzcz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIF9lbmZvcmNlVGVybWluYXRpb24gKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgbG9nLmRlYnVnKCdGb3JjZS1zdG9wcGluZyB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdmlkZW8gcmVjb3JkaW5nJyk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9wcm9jZXNzLnN0b3AoJ1NJR0tJTEwnKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG4gICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgICBpZiAodmlkZW9QYXRoKSB7XG4gICAgICBhd2FpdCBmcy5yaW1yYWYodmlkZW9QYXRoKTtcbiAgICAgIFZJREVPX0ZJTEVTLmRlbGV0ZSh2aWRlb1BhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBhc3luYyBzdGFydCAoKSB7XG4gICAgY29uc3QgYXJncyA9IFtcbiAgICAgIHRoaXMuX3VkaWQsICdyZWNvcmRWaWRlbydcbiAgICBdO1xuICAgIGlmICh0aGlzLl9kaXNwbGF5KSB7XG4gICAgICBhcmdzLnB1c2goJy0tZGlzcGxheScsIHRoaXMuX2Rpc3BsYXkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fY29kZWMpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1jb2RlYycsIHRoaXMuX2NvZGVjKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX21hc2spIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1tYXNrJywgdGhpcy5fbWFzayk7XG4gICAgfVxuICAgIGFyZ3MucHVzaCgnLS1mb3JjZScsIHRoaXMuX3ZpZGVvUGF0aCk7XG4gICAgdGhpcy5fcHJvY2VzcyA9IGF3YWl0IG5ldyBTaW1jdGwoKS5leGVjKCdpbycsIHtcbiAgICAgIGFyZ3MsXG4gICAgICBhc3luY2hyb25vdXM6IHRydWUsXG4gICAgfSk7XG4gICAgbG9nLmRlYnVnKGBTdGFydGluZyB2aWRlbyByZWNvcmRpbmcgd2l0aCBhcmd1bWVudHM6ICR7dXRpbC5xdW90ZShhcmdzKX1gKTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAobGluZSkge1xuICAgICAgICBsb2cuZGVidWcoYFtyZWNvcmRWaWRlb0Ake3RoaXMuX3VkaWQuc3Vic3RyaW5nKDAsIDgpfV0gJHtsaW5lfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX3Byb2Nlc3Mub25jZSgnZXhpdCcsIGFzeW5jIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgbG9nLmRlYnVnKCdTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRob3V0IGVycm9ycycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZW5mb3JjZVRlcm1pbmF0aW9uKCk7XG4gICAgICAgIGxvZy53YXJuKGBTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RhcnQoMCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCkpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgICAgaW50ZXJ2YWxNczogU1RBUlRVUF9JTlRFUlZBTF9NUyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFRoZSBleHBlY3RlZCBzY3JlZW4gcmVjb3JkIGZpbGUgJyR7dGhpcy5fdmlkZW9QYXRofScgZG9lcyBub3QgZXhpc3QgYWZ0ZXIgJHtTVEFSVFVQX1RJTUVPVVRfTVN9bXMuIGAgK1xuICAgICAgICBgQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlsc2ApO1xuICAgIH1cbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB0aGlzLl90aW1lTGltaXRNcyk7XG4gICAgbG9nLmluZm8oYFRoZSB2aWRlbyByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuIFdpbGwgdGltZW91dCBpbiAke3RoaXMuX3RpbWVMaW1pdE1zfW1zYCk7XG4gIH1cblxuICBhc3luYyBzdG9wIChmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBpcyBub3QgcnVubmluZy4gUmV0dXJuaW5nIHRoZSByZWNlbnRseSByZWNvcmRlZCB2aWRlbycpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RvcCgnU0lHSU5UJywgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0b3AgYWZ0ZXIgJHtQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVN9bXNgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0U2ltdWxhdG9yVWRpZCAoY2Fwcykge1xuICBpZiAoY2Fwc1snc2FmYXJpOnVzZVNpbXVsYXRvciddID09PSBmYWxzZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYWxsRGV2aWNlcyA9IF8uZmxhdE1hcChfLnZhbHVlcyhhd2FpdCBuZXcgU2ltY3RsKCkuZ2V0RGV2aWNlcyhudWxsLCAnaU9TJykpKTtcbiAgZm9yIChjb25zdCB7bmFtZSwgdWRpZCwgc3RhdGUsIHNka30gb2YgYWxsRGV2aWNlcykge1xuICAgIGlmIChzdGF0ZSAhPT0gJ0Jvb3RlZCcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZVVESUQnXSkgPT09IF8udG9Mb3dlcih1ZGlkKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZU5hbWUnXSkgPT09IF8udG9Mb3dlcihuYW1lKSAmJlxuICAgICAgKGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSAmJiBjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10gPT09IHNka1xuICAgICAgICB8fCAhY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFJlY29yZGluZ09wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGNvZGVjIFtoZXZjXSAtIFNwZWNpZmllcyB0aGUgY29kZWMgdHlwZTogXCJoMjY0XCIgb3IgXCJoZXZjXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZGlzcGxheSBbaW50ZXJuYWxdIC0gU3VwcG9ydHMgXCJpbnRlcm5hbFwiIG9yIFwiZXh0ZXJuYWxcIi4gRGVmYXVsdCBpcyBcImludGVybmFsXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWFzayAtIEZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMsIGhhbmRsZSB0aGUgbWFzayBieSBwb2xpY3k6XG4gKiAtIGlnbm9yZWQ6IFRoZSBtYXNrIGlzIGlnbm9yZWQgYW5kIHRoZSB1bm1hc2tlZCBmcmFtZWJ1ZmZlciBpcyBzYXZlZC5cbiAqIC0gYWxwaGE6IE5vdCBzdXBwb3J0ZWQsIGJ1dCByZXRhaW5lZCBmb3IgY29tcGF0aWJpbGl0eTsgdGhlIG1hc2sgaXMgcmVuZGVyZWQgYmxhY2suXG4gKiAtIGJsYWNrOiBUaGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bWJlcn0gdGltZUxpbWl0IFs2MDBdIC0gVGhlIG1heGltdW0gcmVjb3JkaW5nIHRpbWUsIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0XG4gKiB2YWx1ZSBpcyA2MDAgc2Vjb25kcyAoMTAgbWludXRlcykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGZvcmNlUmVzdGFydCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIGlnbm9yZSB0aGUgY2FsbCBpZiBhIHNjcmVlbiByZWNvcmRpbmcgaXMgY3VycmVudGx5IHJ1bm5pbmdcbiAqIChgZmFsc2VgKSBvciB0byBzdGFydCBhIG5ldyByZWNvcmRpbmcgaW1tZWRpYXRlbHkgYW5kIHRlcm1pbmF0ZSB0aGUgZXhpc3Rpbmcgb25lIGlmIHJ1bm5pbmcgKGB0cnVlYCkuXG4gKi9cblxuLyoqXG4gKiBSZWNvcmQgdGhlIFNpbXVsYXRvcidzIGRpc3BsYXkgaW4gYmFja2dyb3VuZCB3aGlsZSB0aGUgYXV0b21hdGVkIHRlc3QgaXMgcnVubmluZy5cbiAqIFRoaXMgbWV0aG9kIHVzZXMgYHhjcnVuIHNpbWN0bCBpbyByZWNvcmRWaWRlb2AgaGVscGVyIHVuZGVyIHRoZSBob29kLlxuICogQ2hlY2sgdGhlIG91dHB1dCBvZiBgeGNydW4gc2ltY3RsIGlvYCBjb21tYW5kIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHs/U3RhcnRSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHRocm93cyB7RXJyb3J9IElmIHNjcmVlbiByZWNvcmRpbmcgaGFzIGZhaWxlZCB0byBzdGFydCBvciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZGVzdGluYXRpb24gZGV2aWNlLlxuICovXG5jb21tYW5kcy5zdGFydFJlY29yZGluZ1NjcmVlbiA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UmVjb3JkaW5nU2NyZWVuIChvcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHRpbWVMaW1pdCxcbiAgICBjb2RlYyxcbiAgICBkaXNwbGF5LFxuICAgIG1hc2ssXG4gICAgZm9yY2VSZXN0YXJ0ID0gdHJ1ZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICh0aGlzLl9zY3JlZW5SZWNvcmRlcj8uaXNSdW5uaW5nKSB7XG4gICAgbG9nLmluZm8oJ1RoZSBzY3JlZW4gcmVjb3JkaW5nIGlzIGFscmVhZHkgcnVubmluZycpO1xuICAgIGlmICghZm9yY2VSZXN0YXJ0KSB7XG4gICAgICBsb2cuaW5mbygnRG9pbmcgbm90aGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsb2cuaW5mbygnRm9yY2luZyB0aGUgYWN0aXZlIHNjcmVlbiByZWNvcmRpbmcgdG8gc3RvcCcpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0b3AodHJ1ZSk7XG4gIH1cbiAgdGhpcy5fc2NyZWVuUmVjb3JkZXIgPSBudWxsO1xuXG4gIGNvbnN0IHVkaWQgPSBhd2FpdCBleHRyYWN0U2ltdWxhdG9yVWRpZCh0aGlzLmNhcHMpO1xuICBpZiAoIXVkaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZXRlcm1pbmUgU2ltdWxhdG9yIFVESUQgdG8gcmVjb3JkIHRoZSB2aWRlbyBmcm9tLiAnICtcbiAgICAgICdEb3VibGUgY2hlY2sgeW91ciBzZXNzaW9uIGNhcGFiaWxpdGllcycpO1xuICB9XG5cbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGVtcERpci5wYXRoKHtcbiAgICBwcmVmaXg6IHV0aWwudXVpZFY0KCkuc3Vic3RyaW5nKDAsIDgpLFxuICAgIHN1ZmZpeDogREVGQVVMVF9FWFQsXG4gIH0pO1xuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG5ldyBTY3JlZW5SZWNvcmRlcih1ZGlkLCB2aWRlb1BhdGgsIHtcbiAgICB0aW1lTGltaXQ6IHBhcnNlSW50KHRpbWVMaW1pdCwgMTApLFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RhcnQoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSByZW1vdGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIHJlbW90ZSBsb2NhdGlvbiwgd2hlcmUgdGhlIHJlc3VsdGluZyB2aWRlbyBzaG91bGQgYmUgdXBsb2FkZWQuXG4gKiBUaGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBodHRwL2h0dHBzLCBmdHAuXG4gKiBOdWxsIG9yIGVtcHR5IHN0cmluZyB2YWx1ZSAodGhlIGRlZmF1bHQgc2V0dGluZykgbWVhbnMgdGhlIGNvbnRlbnQgb2YgcmVzdWx0aW5nXG4gKiBmaWxlIHNob3VsZCBiZSBlbmNvZGVkIGFzIEJhc2U2NCBhbmQgcGFzc2VkIGFzIHRoZSBlbmRwb2ludCByZXNwb25zZSB2YWx1ZS5cbiAqIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgZ2VuZXJhdGVkIG1lZGlhIGZpbGUgaXMgdG9vIGJpZyB0b1xuICogZml0IGludG8gdGhlIGF2YWlsYWJsZSBwcm9jZXNzIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXNlciAtIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXNzIC0gVGhlIHBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtZXRob2QgLSBUaGUgaHR0cCBtdWx0aXBhcnQgdXBsb2FkIG1ldGhvZCBuYW1lLiBUaGUgJ1BVVCcgb25lIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgaGVhZGVycyBtYXBwaW5nIGZvciBtdWx0aXBhcnQgaHR0cChzKSB1cGxvYWRzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQsIHdoZXJlIHRoZSBmaWxlIGNvbnRlbnQgQkxPQiBzaG91bGQgYmUgc3RvcmVkIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/T2JqZWN0fEFycmF5PFBhaXI+fSBmb3JtRmllbGRzIC0gQWRkaXRpb25hbCBmb3JtIGZpZWxkcyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICovXG5cbi8qKlxuICogU3RvcCByZWNvcmRpbmcgdGhlIHNjcmVlbi5cbiAqIElmIG5vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUgdGhlbiB0aGUgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7P1N0b3BSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcmVjb3JkZWQgbWVkaWEgZmlsZSBpZiAncmVtb3RlUGF0aCdcbiAqIHBhcmFtZXRlciBpcyBmYWxzeSBvciBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGdldHRpbmcgdGhlIG5hbWUgb2YgYSBtZWRpYSBmaWxlXG4gKiBvciB0aGUgZmlsZSBjb250ZW50IGNhbm5vdCBiZSB1cGxvYWRlZCB0byB0aGUgcmVtb3RlIGxvY2F0aW9uXG4gKiBvciBzY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICovXG5jb21tYW5kcy5zdG9wUmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RvcFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGlmICghdGhpcy5fc2NyZWVuUmVjb3JkZXIpIHtcbiAgICBsb2cuaW5mbygnTm8gc2NyZWVuIHJlY29yZGluZyBoYXMgYmVlbiBzdGFydGVkLiBEb2luZyBub3RoaW5nJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbG9nLmRlYnVnKCdSZXRyaWV2aW5nIHRoZSByZXN1bHRpbmcgdmlkZW8gZGF0YScpO1xuICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0aGlzLl9zY3JlZW5SZWNvcmRlci5zdG9wKCk7XG4gIGlmICghdmlkZW9QYXRoKSB7XG4gICAgbG9nLmluZm8oJ05vIHZpZGVvIGRhdGEgaXMgZm91bmQuIFJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHVwbG9hZFJlY29yZGVkTWVkaWEodmlkZW9QYXRoLCBvcHRpb25zLnJlbW90ZVBhdGgsIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
package/build/lib/driver.js
CHANGED
|
@@ -11,7 +11,7 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _baseDriver = require("@appium/base-driver");
|
|
15
15
|
|
|
16
16
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
17
17
|
|
|
@@ -25,7 +25,7 @@ var _utils = require("./utils");
|
|
|
25
25
|
|
|
26
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?$')]];
|
|
27
27
|
|
|
28
|
-
class SafariDriver extends
|
|
28
|
+
class SafariDriver extends _baseDriver.BaseDriver {
|
|
29
29
|
constructor(opts = {}) {
|
|
30
30
|
super(opts);
|
|
31
31
|
this.desiredCapConstraints = _desiredCaps.desiredCapConstraints;
|
|
@@ -89,4 +89,4 @@ var _default = SafariDriver;
|
|
|
89
89
|
exports.default = _default;require('source-map-support').install();
|
|
90
90
|
|
|
91
91
|
|
|
92
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwibmFtZXMiOlsiTk9fUFJPWFkiLCJSZWdFeHAiLCJTYWZhcmlEcml2ZXIiLCJCYXNlRHJpdmVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJyZXNldFN0YXRlIiwiY21kIiwiZm4iLCJfIiwidG9QYWlycyIsImNvbW1hbmRzIiwicHJvdG90eXBlIiwic2FmYXJpIiwicHJveHlSZXFSZXMiLCJpc1Byb3h5QWN0aXZlIiwiX3NjcmVlblJlY29yZGVyIiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwiY3JlYXRlU2Vzc2lvbiIsImFyZ3MiLCJzZXNzaW9uSWQiLCJjYXBzIiwiU2FmYXJpRHJpdmVyU2VydmVyIiwic3RhcnQiLCJlIiwiZGVsZXRlU2Vzc2lvbiIsInByb3h5IiwiYmluZCIsImxvZyIsImluZm8iLCJzdG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsQ0FBakI7O0FBT0EsTUFBTUMsWUFBTixTQUEyQkMsc0JBQTNCLENBQXNDO0FBQ3BDQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEIsVUFBTUEsSUFBTjtBQUNBLFNBQUtDLHFCQUFMLEdBQTZCQSxrQ0FBN0I7QUFDQSxTQUFLQyxpQkFBTCxHQUF5QixDQUN2QixPQUR1QixFQUV2QixVQUZ1QixFQUd2QixXQUh1QixFQUl2QixtQkFKdUIsRUFLdkIsY0FMdUIsRUFPdkIsSUFQdUIsRUFRdkIsTUFSdUIsQ0FBekI7QUFVQSxTQUFLQyxVQUFMOztBQUVBLFNBQUssTUFBTSxDQUFDQyxHQUFELEVBQU1DLEVBQU4sQ0FBWCxJQUF3QkMsZ0JBQUVDLE9BQUYsQ0FBVUMsY0FBVixDQUF4QixFQUE2QztBQUMzQ1gsTUFBQUEsWUFBWSxDQUFDWSxTQUFiLENBQXVCTCxHQUF2QixJQUE4QkMsRUFBOUI7QUFDRDtBQUNGOztBQUVERixFQUFBQSxVQUFVLEdBQUk7QUFDWixTQUFLTyxNQUFMLEdBQWMsSUFBZDtBQUNBLFNBQUtDLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEtBQXJCO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QixJQUF2QjtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUk7QUFDYixXQUFPLEtBQUtGLGFBQVo7QUFDRDs7QUFFREcsRUFBQUEsaUJBQWlCLEdBQUk7QUFDbkIsV0FBT3BCLFFBQVA7QUFDRDs7QUFFRHFCLEVBQUFBLFFBQVEsR0FBSTtBQUNWLFdBQU8sSUFBUDtBQUNEOztBQUVrQixRQUFiQyxhQUFhLENBQUUsR0FBR0MsSUFBTCxFQUFXO0FBQzVCLFVBQU0sQ0FBQ0MsU0FBRCxFQUFZQyxJQUFaLElBQW9CLE1BQU0sTUFBTUgsYUFBTixDQUFvQixHQUFHQyxJQUF2QixDQUFoQztBQUNBLFNBQUtSLE1BQUwsR0FBYyxJQUFJVyxlQUFKLEVBQWQ7O0FBQ0EsUUFBSTtBQUNGLFlBQU0sS0FBS1gsTUFBTCxDQUFZWSxLQUFaLENBQWtCLGdDQUFvQkYsSUFBcEIsQ0FBbEIsQ0FBTjtBQUNELEtBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7QUFDVixZQUFNLEtBQUtDLGFBQUwsRUFBTjtBQUNBLFlBQU1ELENBQU47QUFDRDs7QUFDRCxTQUFLWixXQUFMLEdBQW1CLEtBQUtELE1BQUwsQ0FBWWUsS0FBWixDQUFrQmQsV0FBbEIsQ0FBOEJlLElBQTlCLENBQW1DLEtBQUtoQixNQUFMLENBQVllLEtBQS9DLENBQW5CO0FBQ0EsU0FBS2IsYUFBTCxHQUFxQixJQUFyQjtBQUNBLFdBQU8sQ0FBQ08sU0FBRCxFQUFZQyxJQUFaLENBQVA7QUFDRDs7QUFFa0IsUUFBYkksYUFBYSxHQUFJO0FBQUE7O0FBQ3JCRyxvQkFBSUMsSUFBSixDQUFTLHVCQUFUOztBQUNBLG9DQUFNLEtBQUtmLGVBQVgsMERBQU0sc0JBQXNCZ0IsSUFBdEIsQ0FBMkIsSUFBM0IsQ0FBTjtBQUNBLDJCQUFNLEtBQUtuQixNQUFYLGlEQUFNLGFBQWFtQixJQUFiLEVBQU47QUFDQSxTQUFLMUIsVUFBTDtBQUVBLFVBQU0sTUFBTXFCLGFBQU4sRUFBTjtBQUNEOztBQTdEbUM7O2VBZ0V2QjNCLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZURyaXZlciB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgU2FmYXJpRHJpdmVyU2VydmVyIGZyb20gJy4vc2FmYXJpJztcbmltcG9ydCB7IGRlc2lyZWRDYXBDb25zdHJhaW50cyB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCBjb21tYW5kcyBmcm9tICcuL2NvbW1hbmRzL2luZGV4JztcbmltcG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgTk9fUFJPWFkgPSBbXG4gIFsnR0VUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnQvW14vXSsvZWxlbWVudHM/JCcpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnRzPyQnKV0sXG5dO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXIgZXh0ZW5kcyBCYXNlRHJpdmVyIHtcbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKG9wdHMpO1xuICAgIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzID0gZGVzaXJlZENhcENvbnN0cmFpbnRzO1xuICAgIHRoaXMubG9jYXRvclN0cmF0ZWdpZXMgPSBbXG4gICAgICAneHBhdGgnLFxuICAgICAgJ3RhZyBuYW1lJyxcbiAgICAgICdsaW5rIHRleHQnLFxuICAgICAgJ3BhcnRpYWwgbGluayB0ZXh0JyxcbiAgICAgICdjc3Mgc2VsZWN0b3InLFxuICAgICAgLy8gTGV0IHRoZXNlIHR3byByZWFjaCBTYWZhcmkgRHJpdmVyIGFuZCBmYWlsIHRoZXJlIHdpdGggYSBwcm9wZXIgZXJyb3IgbWVzc2FnZVxuICAgICAgJ2lkJyxcbiAgICAgICduYW1lJyxcbiAgICBdO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgZm9yIChjb25zdCBbY21kLCBmbl0gb2YgXy50b1BhaXJzKGNvbW1hbmRzKSkge1xuICAgICAgU2FmYXJpRHJpdmVyLnByb3RvdHlwZVtjbWRdID0gZm47XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTdGF0ZSAoKSB7XG4gICAgdGhpcy5zYWZhcmkgPSBudWxsO1xuICAgIHRoaXMucHJveHlSZXFSZXMgPSBudWxsO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3h5QWN0aXZlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKCkge1xuICAgIHJldHVybiBOT19QUk9YWTtcbiAgfVxuXG4gIGNhblByb3h5ICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oLi4uYXJncyk7XG4gICAgdGhpcy5zYWZhcmkgPSBuZXcgU2FmYXJpRHJpdmVyU2VydmVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2FmYXJpLnN0YXJ0KGZvcm1hdENhcHNGb3JTZXJ2ZXIoY2FwcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuc2FmYXJpLnByb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5zYWZhcmkucHJveHkpO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IHRydWU7XG4gICAgcmV0dXJuIFtzZXNzaW9uSWQsIGNhcHNdO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoKSB7XG4gICAgbG9nLmluZm8oJ0VuZGluZyBTYWZhcmkgc2Vzc2lvbicpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyPy5zdG9wKHRydWUpO1xuICAgIGF3YWl0IHRoaXMuc2FmYXJpPy5zdG9wKCk7XG4gICAgdGhpcy5yZXNldFN0YXRlKCk7XG5cbiAgICBhd2FpdCBzdXBlci5kZWxldGVTZXNzaW9uKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2FmYXJpRHJpdmVyO1xuIl0sImZpbGUiOiJsaWIvZHJpdmVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
package/build/lib/logger.js
CHANGED
|
@@ -7,12 +7,12 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _support = require("@appium/support");
|
|
11
11
|
|
|
12
|
-
const log =
|
|
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,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVo7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdTYWZhcmknKTtcblxuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sImZpbGUiOiJsaWIvbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
package/build/lib/safari.js
CHANGED
|
@@ -13,9 +13,9 @@ var _os = _interopRequireDefault(require("os"));
|
|
|
13
13
|
|
|
14
14
|
var _path = _interopRequireDefault(require("path"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _baseDriver = require("@appium/base-driver");
|
|
17
17
|
|
|
18
|
-
var
|
|
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 =
|
|
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 =
|
|
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
|
|
39
|
+
class SafariProxy extends _baseDriver.JWProxy {
|
|
40
40
|
async proxyCommand(url, method, body = null) {
|
|
41
41
|
if (this.didProcessExit) {
|
|
42
|
-
throw new
|
|
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)
|
|
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
|
|
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)
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zYWZhcmkuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiU0RfQklOQVJZIiwiU1RBUlRVUF9USU1FT1VUIiwiU0FGQVJJX1BPUlRfUkFOR0UiLCJTQUZBUklfU0VSVkVSX0dVQVJEIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwiU2FmYXJpUHJveHkiLCJKV1Byb3h5IiwicHJveHlDb21tYW5kIiwidXJsIiwibWV0aG9kIiwiYm9keSIsImRpZFByb2Nlc3NFeGl0IiwiZXJyb3JzIiwiSW52YWxpZENvbnRleHRFcnJvciIsIlNhZmFyaURyaXZlclByb2Nlc3MiLCJjb25zdHJ1Y3RvciIsInBvcnQiLCJwcm9jIiwiaXNSdW5uaW5nIiwiaW5pdCIsInN0YXJ0UG9ydCIsImVuZFBvcnQiLCJlIiwiRXJyb3IiLCJzYWZhcmlCaW4iLCJmcyIsIndoaWNoIiwiU3ViUHJvY2VzcyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwibGluZSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsImluZm8iLCJzdGFydCIsImtpbGwiLCJzdG9wIiwiaWduIiwiU0FGQVJJX0RSSVZFUl9QUk9DRVNTIiwicHJvY2VzcyIsIm9uY2UiLCJwaWQiLCJTYWZhcmlEcml2ZXJTZXJ2ZXIiLCJwcm94eSIsImNhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwiY29tbWFuZCIsImVyciIsIm1lc3NhZ2UiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwidGVzdCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlC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RUFBRCxDQURBO0FBRVpDLFFBQUFBLFdBQVcsRUFBRVo7QUFGRDtBQUQ2QixLQUF2QyxDQUFOO0FBTUQ7O0FBRVMsUUFBSlIsSUFBSSxHQUFJO0FBQUE7O0FBQ1osUUFBSSxDQUFDLEtBQUtwQixTQUFWLEVBQXFCO0FBQ25CNUIsTUFBQUEsR0FBRyxDQUFDNkMsSUFBSixDQUFVLEdBQUUxQyxTQUFVLCtEQUF0QjtBQUNBO0FBQ0Q7O0FBRUQsdUJBQUksS0FBS29ELEtBQVQsd0NBQUksWUFBWWMsU0FBaEIsRUFBMkI7QUFDekIsVUFBSTtBQUNGLGNBQU0sS0FBS2QsS0FBTCxDQUFXSyxPQUFYLENBQW9CLFlBQVcsS0FBS0wsS0FBTCxDQUFXYyxTQUFVLEVBQXBELEVBQXVELFFBQXZELENBQU47QUFDRCxPQUZELENBRUUsT0FBT3JDLENBQVAsRUFBVTtBQUNWaEMsUUFBQUEsR0FBRyxDQUFDNkMsSUFBSixDQUFVLEdBQUUxQyxTQUFVLCtDQUE4QzZCLENBQUMsQ0FBQzhCLE9BQVEsRUFBOUU7QUFDRDtBQUNGO0FBQ0Y7O0FBeEVzQjs7ZUEyRVZSLGtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSldQcm94eSwgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignU2FmYXJpRHJpdmVyU2VydmVyJyk7XG5cbmNvbnN0IFNEX0JJTkFSWSA9ICdzYWZhcmlkcml2ZXInO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUID0gMTAwMDA7IC8vIHNlY29uZHNcbmNvbnN0IFNBRkFSSV9QT1JUX1JBTkdFID0gWzUxMDAsIDUyMDBdO1xuLy8gVGhpcyBndWFyZCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlXG4vLyB3ZSBuZXZlciBydW4gbXVsdGlwbGUgU2FmYXJpIGRyaXZlciBwcm9jZXNzZXMgZm9yIHRoZSBzYW1lIEFwcGl1bSBwcm9jZXNzXG5jb25zdCBTQUZBUklfU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdzYWZhcmlfc2VydmVyX2d1YXJkLmxvY2snKSxcbiAge3RpbWVvdXQ6IDUsIHRyeVJlY292ZXJ5OiB0cnVlfVxuKTtcblxuXG5jbGFzcyBTYWZhcmlQcm94eSBleHRlbmRzIEpXUHJveHkge1xuICBhc3luYyBwcm94eUNvbW1hbmQgKHVybCwgbWV0aG9kLCBib2R5ID0gbnVsbCkge1xuICAgIGlmICh0aGlzLmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRDb250ZXh0RXJyb3IoXG4gICAgICAgIGAnJHttZXRob2R9ICR7dXJsfScgY2Fubm90IGJlIHByb3hpZWQgdG8gU2FmYXJpIERyaXZlciBzZXJ2ZXIgYmVjYXVzZSBgICtcbiAgICAgICAgJ3RoZSBwcm9jZXNzIGlzIG5vdCBydW5uaW5nIChwcm9iYWJseSBjcmFzaGVkKS4gQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlscycpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIucHJveHlDb21tYW5kKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5cbmNsYXNzIFNhZmFyaURyaXZlclByb2Nlc3Mge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wb3J0ID0gbnVsbDtcbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvYz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQgKCkge1xuICAgIGF3YWl0IFNBRkFSSV9TRVJWRVJfR1VBUkQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW3N0YXJ0UG9ydCwgZW5kUG9ydF0gPSBTQUZBUklfUE9SVF9SQU5HRTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMucG9ydCA9IGF3YWl0IGZpbmRBUG9ydE5vdEluVXNlKHN0YXJ0UG9ydCwgZW5kUG9ydCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGZpbmQgYW55IGZyZWUgcG9ydCBpbiByYW5nZSAke3N0YXJ0UG9ydH0uLiR7ZW5kUG9ydH0uIGAgK1xuICAgICAgICAgIGBEb3VibGUgY2hlY2sgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBsb2NraW5nIHBvcnRzIHdpdGhpbiB0aGlzIHJhbmdlIGFuZCB0ZXJtaW5hdGUgYCArXG4gICAgICAgICAgYHRoZXNlIHdoaWNoIGFyZSBub3QgbmVlZGVkIGFueW1vcmVgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNhZmFyaUJpbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNhZmFyaUJpbiA9IGF3YWl0IGZzLndoaWNoKFNEX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtTRF9CSU5BUll9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgcHJlc2VudCBvbiB5b3VyIHN5c3RlbWApO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3Moc2FmYXJpQmluLCBbJy1wJywgdGhpcy5wb3J0LCAnLS1kaWFnbm9zZSddKTtcbiAgICAgIHRoaXMucHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzdGRvdXQgfHwgc3RkZXJyO1xuICAgICAgICBsb2cuZGVidWcoYFske1NEX0JJTkFSWX1dICR7bGluZX1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICBsb2cuaW5mbyhgJHtTRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH0pO1xuICAgICAgbG9nLmluZm8oYFN0YXJ0aW5nICcke3NhZmFyaUJpbn0nIG9uIHBvcnQgJHt0aGlzLnBvcnR9YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbmdsZSBzZXJ2ZXIgcHJvY2VzcyBwZXIgQXBwaXVtIGluc3RhbmNlXG5jb25zdCBTQUZBUklfRFJJVkVSX1BST0NFU1MgPSBuZXcgU2FmYXJpRHJpdmVyUHJvY2VzcygpO1xucHJvY2Vzcy5vbmNlKCdleGl0JywgKCkgPT4ge1xuICBpZiAoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZykge1xuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyhga2lsbCAke1NBRkFSSV9EUklWRVJfUFJPQ0VTUy5wcm9jLnBpZH1gKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbn0pO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5wcm94eSA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBzdGFydCAoY2Fwcykge1xuICAgIGF3YWl0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pbml0KCk7XG5cbiAgICB0aGlzLnByb3h5ID0gbmV3IFNhZmFyaVByb3h5KHtcbiAgICAgIHNlcnZlcjogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiBTQUZBUklfRFJJVkVSX1BST0NFU1MucG9ydCxcbiAgICAgIGJhc2U6ICcnLFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSBmYWxzZTtcbiAgICBTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1Mua2lsbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmYXJpIERyaXZlciBzZXJ2ZXIgaXMgbm90IGxpc3RlbmluZyB3aXRoaW4gJHtTVEFSVFVQX1RJTUVPVVR9bXMgdGltZW91dC4gYCArXG4gICAgICAgICAgYE1ha2Ugc3VyZSBpdCBoYXMgYmVlbiBleGVjdXRlZCBtYW51YWxseSBhdCBsZWFzdCBvbmNlIHdpdGggJy0tZW5hYmxlJyBjb21tYW5kIGxpbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgICAgICBhbHdheXNNYXRjaDogY2FwcyxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIGxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgc3RvcHBlZCwgYmVjYXVzZSB0aGUgc2VydmVyIGlzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJveHk/LnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKGAvc2Vzc2lvbi8ke3RoaXMucHJveHkuc2Vzc2lvbklkfWAsICdERUxFVEUnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBkZWxldGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlclNlcnZlcjtcbiJdLCJmaWxlIjoibGliL3NhZmFyaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
package/build/lib/server.js
CHANGED
|
@@ -11,7 +11,7 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
13
13
|
|
|
14
|
-
var
|
|
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,
|
|
24
|
-
let server = await (0,
|
|
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,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXIuanMiXSwibmFtZXMiOlsic3RhcnRTZXJ2ZXIiLCJwb3J0IiwiYWRkcmVzcyIsImQiLCJTYWZhcmlEcml2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJzZXJ2ZXIiLCJob3N0bmFtZSIsImxvZyIsImluZm8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBRUEsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLE9BQWxDLEVBQTJDO0FBQ3pDLE1BQUlDLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQWlCO0FBQUNILElBQUFBLElBQUQ7QUFBT0MsSUFBQUE7QUFBUCxHQUFqQixDQUFSO0FBQ0EsTUFBSUcsd0JBQXdCLEdBQUcsMENBQVdGLENBQVgsQ0FBL0I7QUFDQSxNQUFJRyxNQUFNLEdBQUcsTUFBTSx3QkFBVztBQUFDRCxJQUFBQSx3QkFBRDtBQUEyQkosSUFBQUEsSUFBM0I7QUFBaUNNLElBQUFBLFFBQVEsRUFBRUw7QUFBM0MsR0FBWCxDQUFuQjs7QUFDQU0sa0JBQUlDLElBQUosQ0FBVSwyQ0FBMENQLE9BQVEsSUFBR0QsSUFBSyxFQUFwRTs7QUFDQSxTQUFPSyxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIHNlcnZlciBhcyBiYXNlU2VydmVyLCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gYXMgbWFrZVJvdXRlclxufSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBTYWZhcmlEcml2ZXIgZnJvbSAnLi9kcml2ZXInO1xuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAocG9ydCwgYWRkcmVzcykge1xuICBsZXQgZCA9IG5ldyBTYWZhcmlEcml2ZXIoe3BvcnQsIGFkZHJlc3N9KTtcbiAgbGV0IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiA9IG1ha2VSb3V0ZXIoZCk7XG4gIGxldCBzZXJ2ZXIgPSBhd2FpdCBiYXNlU2VydmVyKHtyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIHBvcnQsIGhvc3RuYW1lOiBhZGRyZXNzfSk7XG4gIGxvZy5pbmZvKGBTYWZhcmlEcml2ZXIgc2VydmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHthZGRyZXNzfToke3BvcnR9YCk7XG4gIHJldHVybiBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG4iXSwiZmlsZSI6ImxpYi9zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
|
|
5
5
|
require("source-map-support/register");
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _webdriverio = require("webdriverio");
|
|
8
8
|
|
|
9
9
|
var _ = require("../..");
|
|
10
10
|
|
|
@@ -36,21 +36,24 @@ describe('Desktop SafariDriver', function () {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
beforeEach(async function () {
|
|
39
|
-
driver =
|
|
40
|
-
|
|
39
|
+
driver = await (0, _webdriverio.remote)({
|
|
40
|
+
hostname: _utils.HOST,
|
|
41
|
+
port: _utils.PORT,
|
|
42
|
+
capabilities: CAPS
|
|
43
|
+
});
|
|
41
44
|
});
|
|
42
45
|
afterEach(async function () {
|
|
43
46
|
if (driver) {
|
|
44
|
-
await driver.
|
|
47
|
+
await driver.deleteSession();
|
|
45
48
|
driver = null;
|
|
46
49
|
}
|
|
47
50
|
});
|
|
48
51
|
it('should start and stop a session', async function () {
|
|
49
|
-
await driver.
|
|
50
|
-
const button = await driver
|
|
51
|
-
await button.
|
|
52
|
+
await driver.url('https://appium.io/');
|
|
53
|
+
const button = await driver.$('#downloadLink');
|
|
54
|
+
await button.getText().should.eventually.eql('Download Appium');
|
|
52
55
|
});
|
|
53
56
|
});require('source-map-support').install();
|
|
54
57
|
|
|
55
58
|
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC9kZXNrdG9wLWRyaXZlci1lMmUtc3BlY3MuanMiXSwibmFtZXMiOlsiY2hhaSIsInNob3VsZCIsInVzZSIsImNoYWlBc1Byb21pc2VkIiwiQ0FQUyIsImJyb3dzZXJOYW1lIiwicGxhdGZvcm1OYW1lIiwiZGVzY3JpYmUiLCJ0aW1lb3V0IiwiTU9DSEFfVElNRU9VVCIsInNlcnZlciIsImRyaXZlciIsImJlZm9yZSIsIlBPUlQiLCJIT1NUIiwiYWZ0ZXIiLCJjbG9zZSIsImJlZm9yZUVhY2giLCJob3N0bmFtZSIsInBvcnQiLCJjYXBhYmlsaXRpZXMiLCJhZnRlckVhY2giLCJkZWxldGVTZXNzaW9uIiwiaXQiLCJ1cmwiLCJidXR0b24iLCIkIiwiZ2V0VGV4dCIsImV2ZW50dWFsbHkiLCJlcWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxjQUFLQyxNQUFMOztBQUNBRCxjQUFLRSxHQUFMLENBQVNDLHVCQUFUOztBQUdBLE1BQU1DLElBQUksR0FBRztBQUNYQyxFQUFBQSxXQUFXLEVBQUUsY0FERjtBQUVYQyxFQUFBQSxZQUFZLEVBQUU7QUFGSCxDQUFiO0FBS0FDLFFBQVEsQ0FBQyxzQkFBRCxFQUF5QixZQUFZO0FBQzNDLE9BQUtDLE9BQUwsQ0FBYUMsb0JBQWI7QUFFQSxNQUFJQyxNQUFKO0FBQ0EsTUFBSUMsTUFBSjtBQUNBQyxFQUFBQSxNQUFNLENBQUMsa0JBQWtCO0FBQ3ZCRixJQUFBQSxNQUFNLEdBQUcsTUFBTSxtQkFBWUcsV0FBWixFQUFrQkMsV0FBbEIsQ0FBZjtBQUNELEdBRkssQ0FBTjtBQUdBQyxFQUFBQSxLQUFLLENBQUMsa0JBQWtCO0FBQ3RCLFFBQUlMLE1BQUosRUFBWTtBQUNWLFlBQU1BLE1BQU0sQ0FBQ00sS0FBUCxFQUFOO0FBQ0FOLE1BQUFBLE1BQU0sR0FBRyxJQUFUO0FBQ0Q7QUFDRixHQUxJLENBQUw7QUFNQU8sRUFBQUEsVUFBVSxDQUFDLGtCQUFrQjtBQUMzQk4sSUFBQUEsTUFBTSxHQUFHLE1BQU0seUJBQU87QUFDcEJPLE1BQUFBLFFBQVEsRUFBRUosV0FEVTtBQUVwQkssTUFBQUEsSUFBSSxFQUFFTixXQUZjO0FBR3BCTyxNQUFBQSxZQUFZLEVBQUVoQjtBQUhNLEtBQVAsQ0FBZjtBQUtELEdBTlMsQ0FBVjtBQU9BaUIsRUFBQUEsU0FBUyxDQUFDLGtCQUFrQjtBQUMxQixRQUFJVixNQUFKLEVBQVk7QUFDVixZQUFNQSxNQUFNLENBQUNXLGFBQVAsRUFBTjtBQUNBWCxNQUFBQSxNQUFNLEdBQUcsSUFBVDtBQUNEO0FBQ0YsR0FMUSxDQUFUO0FBT0FZLEVBQUFBLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxrQkFBa0I7QUFDdEQsVUFBTVosTUFBTSxDQUFDYSxHQUFQLENBQVcsb0JBQVgsQ0FBTjtBQUNBLFVBQU1DLE1BQU0sR0FBRyxNQUFNZCxNQUFNLENBQUNlLENBQVAsQ0FBUyxlQUFULENBQXJCO0FBQ0EsVUFBTUQsTUFBTSxDQUFDRSxPQUFQLEdBQWlCMUIsTUFBakIsQ0FBd0IyQixVQUF4QixDQUFtQ0MsR0FBbkMsQ0FBdUMsaUJBQXZDLENBQU47QUFDRCxHQUpDLENBQUY7QUFLRCxDQWpDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3RlIH0gZnJvbSAnd2ViZHJpdmVyaW8nO1xuaW1wb3J0IHsgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgY2hhaUFzUHJvbWlzZWQgZnJvbSAnY2hhaS1hcy1wcm9taXNlZCc7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCB7IEhPU1QsIFBPUlQsIE1PQ0hBX1RJTUVPVVQgfSBmcm9tICcuLi91dGlscyc7XG5cbmNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cblxuY29uc3QgQ0FQUyA9IHtcbiAgYnJvd3Nlck5hbWU6ICdBcHBpdW1TYWZhcmknLFxuICBwbGF0Zm9ybU5hbWU6ICdtYWMnLFxufTtcblxuZGVzY3JpYmUoJ0Rlc2t0b3AgU2FmYXJpRHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnRpbWVvdXQoTU9DSEFfVElNRU9VVCk7XG5cbiAgbGV0IHNlcnZlcjtcbiAgbGV0IGRyaXZlcjtcbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBzZXJ2ZXIgPSBhd2FpdCBzdGFydFNlcnZlcihQT1JULCBIT1NUKTtcbiAgfSk7XG4gIGFmdGVyKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2VydmVyKSB7XG4gICAgICBhd2FpdCBzZXJ2ZXIuY2xvc2UoKTtcbiAgICAgIHNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9KTtcbiAgYmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgZHJpdmVyID0gYXdhaXQgcmVtb3RlKHtcbiAgICAgIGhvc3RuYW1lOiBIT1NULFxuICAgICAgcG9ydDogUE9SVCxcbiAgICAgIGNhcGFiaWxpdGllczogQ0FQUyxcbiAgICB9KTtcbiAgfSk7XG4gIGFmdGVyRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGRyaXZlcikge1xuICAgICAgYXdhaXQgZHJpdmVyLmRlbGV0ZVNlc3Npb24oKTtcbiAgICAgIGRyaXZlciA9IG51bGw7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIHN0YXJ0IGFuZCBzdG9wIGEgc2Vzc2lvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCBkcml2ZXIudXJsKCdodHRwczovL2FwcGl1bS5pby8nKTtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCBkcml2ZXIuJCgnI2Rvd25sb2FkTGluaycpO1xuICAgIGF3YWl0IGJ1dHRvbi5nZXRUZXh0KCkuc2hvdWxkLmV2ZW50dWFsbHkuZXFsKCdEb3dubG9hZCBBcHBpdW0nKTtcbiAgfSk7XG59KTtcblxuXG4iXSwiZmlsZSI6InRlc3QvZnVuY3Rpb25hbC9kZXNrdG9wLWRyaXZlci1lMmUtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
|
|
5
5
|
require("source-map-support/register");
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _webdriverio = require("webdriverio");
|
|
8
8
|
|
|
9
9
|
var _ = require("../..");
|
|
10
10
|
|
|
@@ -63,21 +63,24 @@ describe('Mobile SafariDriver', function () {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
beforeEach(async function () {
|
|
66
|
-
driver =
|
|
67
|
-
|
|
66
|
+
driver = await (0, _webdriverio.remote)({
|
|
67
|
+
hostname: _utils.HOST,
|
|
68
|
+
port: _utils.PORT,
|
|
69
|
+
capabilities: CAPS
|
|
70
|
+
});
|
|
68
71
|
});
|
|
69
72
|
afterEach(async function () {
|
|
70
73
|
if (driver) {
|
|
71
|
-
await driver.
|
|
74
|
+
await driver.deleteSession();
|
|
72
75
|
driver = null;
|
|
73
76
|
}
|
|
74
77
|
});
|
|
75
78
|
it('should start and stop a session', async function () {
|
|
76
|
-
await driver.
|
|
77
|
-
const button = await driver
|
|
78
|
-
await button.
|
|
79
|
+
await driver.url('https://appium.io/');
|
|
80
|
+
const button = await driver.$('#downloadLink');
|
|
81
|
+
await button.getText().should.eventually.eql('Download Appium');
|
|
79
82
|
});
|
|
80
83
|
});require('source-map-support').install();
|
|
81
84
|
|
|
82
85
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC9tb2JpbGUtZHJpdmVyLWUyZS1zcGVjcy5qcyJdLCJuYW1lcyI6WyJjaGFpIiwic2hvdWxkIiwidXNlIiwiY2hhaUFzUHJvbWlzZWQiLCJQTEFURk9STV9WRVJTSU9OIiwicHJvY2VzcyIsImVudiIsIkRFVklDRV9OQU1FIiwiQ0FQUyIsImJyb3dzZXJOYW1lIiwicGxhdGZvcm1OYW1lIiwiZGVzY3JpYmUiLCJ0aW1lb3V0IiwiTU9DSEFfVElNRU9VVCIsInNlcnZlciIsImRyaXZlciIsImJlZm9yZSIsIkNJIiwic2tpcCIsInNpbWN0bCIsIlNpbWN0bCIsImFsbERldmljZXMiLCJnZXREZXZpY2VzIiwiZGV2aWNlIiwiZmluZCIsIm5hbWUiLCJFcnJvciIsInN0YXRlIiwidWRpZCIsImJvb3REZXZpY2UiLCJzdGFydEJvb3RNb25pdG9yIiwiUE9SVCIsIkhPU1QiLCJhZnRlciIsImNsb3NlIiwiYmVmb3JlRWFjaCIsImhvc3RuYW1lIiwicG9ydCIsImNhcGFiaWxpdGllcyIsImFmdGVyRWFjaCIsImRlbGV0ZVNlc3Npb24iLCJpdCIsInVybCIsImJ1dHRvbiIsIiQiLCJnZXRUZXh0IiwiZXZlbnR1YWxseSIsImVxbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLGNBQUtDLE1BQUw7O0FBQ0FELGNBQUtFLEdBQUwsQ0FBU0MsdUJBQVQ7O0FBRUEsTUFBTUMsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRixnQkFBWixJQUFnQyxNQUF6RDtBQUNBLE1BQU1HLFdBQVcsR0FBR0YsT0FBTyxDQUFDQyxHQUFSLENBQVlDLFdBQVosSUFBMkIsbUJBQS9DO0FBQ0EsTUFBTUMsSUFBSSxHQUFHO0FBQ1hDLEVBQUFBLFdBQVcsRUFBRSxjQURGO0FBRVhDLEVBQUFBLFlBQVksRUFBRSxLQUZIO0FBR1gseUJBQXVCLElBSFo7QUFJWCw0QkFBMEJOLGdCQUpmO0FBS1gsdUJBQXFCRztBQUxWLENBQWI7QUFRQUksUUFBUSxDQUFDLHFCQUFELEVBQXdCLFlBQVk7QUFDMUMsT0FBS0MsT0FBTCxDQUFhQyxvQkFBYjtBQUVBLE1BQUlDLE1BQUo7QUFDQSxNQUFJQyxNQUFKO0FBQ0FDLEVBQUFBLE1BQU0sQ0FBQyxrQkFBa0I7QUFDdkIsUUFBSVgsT0FBTyxDQUFDQyxHQUFSLENBQVlXLEVBQWhCLEVBQW9CO0FBSWxCLGFBQU8sS0FBS0MsSUFBTCxFQUFQO0FBQ0Q7O0FBR0QsVUFBTUMsTUFBTSxHQUFHLElBQUlDLG1CQUFKLEVBQWY7QUFDQSxVQUFNQyxVQUFVLEdBQUcsTUFBTUYsTUFBTSxDQUFDRyxVQUFQLENBQWtCbEIsZ0JBQWxCLEVBQW9DLEtBQXBDLENBQXpCO0FBQ0EsVUFBTW1CLE1BQU0sR0FBR0YsVUFBVSxDQUFDRyxJQUFYLENBQWdCLENBQUM7QUFBQ0MsTUFBQUE7QUFBRCxLQUFELEtBQVlBLElBQUksS0FBS2xCLFdBQXJDLENBQWY7O0FBQ0EsUUFBSSxDQUFDZ0IsTUFBTCxFQUFhO0FBQ1gsWUFBTSxJQUFJRyxLQUFKLENBQVcsZ0JBQWVuQixXQUFZLGdCQUFlSCxnQkFBaUIsR0FBdEUsQ0FBTjtBQUNEOztBQUNELFFBQUltQixNQUFNLENBQUNJLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDN0JSLE1BQUFBLE1BQU0sQ0FBQ1MsSUFBUCxHQUFjTCxNQUFNLENBQUNLLElBQXJCO0FBQ0EsWUFBTVQsTUFBTSxDQUFDVSxVQUFQLEVBQU47QUFDQSxZQUFNVixNQUFNLENBQUNXLGdCQUFQLEVBQU47QUFDRDs7QUFFRGhCLElBQUFBLE1BQU0sR0FBRyxNQUFNLG1CQUFZaUIsV0FBWixFQUFrQkMsV0FBbEIsQ0FBZjtBQUNELEdBdEJLLENBQU47QUF1QkFDLEVBQUFBLEtBQUssQ0FBQyxrQkFBa0I7QUFDdEIsUUFBSW5CLE1BQUosRUFBWTtBQUNWLFlBQU1BLE1BQU0sQ0FBQ29CLEtBQVAsRUFBTjtBQUNBcEIsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFDRDtBQUNGLEdBTEksQ0FBTDtBQU1BcUIsRUFBQUEsVUFBVSxDQUFDLGtCQUFrQjtBQUMzQnBCLElBQUFBLE1BQU0sR0FBRyxNQUFNLHlCQUFPO0FBQ3BCcUIsTUFBQUEsUUFBUSxFQUFFSixXQURVO0FBRXBCSyxNQUFBQSxJQUFJLEVBQUVOLFdBRmM7QUFHcEJPLE1BQUFBLFlBQVksRUFBRTlCO0FBSE0sS0FBUCxDQUFmO0FBS0QsR0FOUyxDQUFWO0FBT0ErQixFQUFBQSxTQUFTLENBQUMsa0JBQWtCO0FBQzFCLFFBQUl4QixNQUFKLEVBQVk7QUFDVixZQUFNQSxNQUFNLENBQUN5QixhQUFQLEVBQU47QUFDQXpCLE1BQUFBLE1BQU0sR0FBRyxJQUFUO0FBQ0Q7QUFDRixHQUxRLENBQVQ7QUFPQTBCLEVBQUFBLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxrQkFBa0I7QUFDdEQsVUFBTTFCLE1BQU0sQ0FBQzJCLEdBQVAsQ0FBVyxvQkFBWCxDQUFOO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLE1BQU01QixNQUFNLENBQUM2QixDQUFQLENBQVMsZUFBVCxDQUFyQjtBQUNBLFVBQU1ELE1BQU0sQ0FBQ0UsT0FBUCxHQUFpQjVDLE1BQWpCLENBQXdCNkMsVUFBeEIsQ0FBbUNDLEdBQW5DLENBQXVDLGlCQUF2QyxDQUFOO0FBQ0QsR0FKQyxDQUFGO0FBS0QsQ0FyRE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW90ZSB9IGZyb20gJ3dlYmRyaXZlcmlvJztcbmltcG9ydCB7IHN0YXJ0U2VydmVyIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5pbXBvcnQgU2ltY3RsIGZyb20gJ25vZGUtc2ltY3RsJztcbmltcG9ydCB7IEhPU1QsIFBPUlQsIE1PQ0hBX1RJTUVPVVQgfSBmcm9tICcuLi91dGlscyc7XG5cbmNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbmNvbnN0IFBMQVRGT1JNX1ZFUlNJT04gPSBwcm9jZXNzLmVudi5QTEFURk9STV9WRVJTSU9OIHx8ICcxNC4xJztcbmNvbnN0IERFVklDRV9OQU1FID0gcHJvY2Vzcy5lbnYuREVWSUNFX05BTUUgfHwgJ2lQaG9uZSAxMSBQcm8gTWF4JztcbmNvbnN0IENBUFMgPSB7XG4gIGJyb3dzZXJOYW1lOiAnQXBwaXVtU2FmYXJpJyxcbiAgcGxhdGZvcm1OYW1lOiAnaW9zJyxcbiAgJ3NhZmFyaTp1c2VTaW11bGF0b3InOiB0cnVlLFxuICAnc2FmYXJpOnBsYXRmb3JtVmVyc2lvbic6IFBMQVRGT1JNX1ZFUlNJT04sXG4gICdzYWZhcmk6ZGV2aWNlTmFtZSc6IERFVklDRV9OQU1FLFxufTtcblxuZGVzY3JpYmUoJ01vYmlsZSBTYWZhcmlEcml2ZXInLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMudGltZW91dChNT0NIQV9USU1FT1VUKTtcblxuICBsZXQgc2VydmVyO1xuICBsZXQgZHJpdmVyO1xuICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5DSSkge1xuICAgICAgLy8gSW4gQXp1cmUgQ0kgdGhlIHN0dWZmIHVuZXhwZWN0ZWRseSBmYWlscyB3aXRoXG4gICAgICAvLyBcIlRoZSBkZXZpY2UgaXMgbm90IGNvbmZpZ3VyZWQgdG8gYWxsb3cgcmVtb3RlIGNvbnRyb2wgdmlhIFdlYkRyaXZlci4gVG8gZml4IHRoaXMsIHRvZ2dsZSAnQWxsb3cgUmVtb3RlIEF1dG9tYXRpb24nIGluIFNhZmFyaSdzIHNldHRpbmdzIChTZXR0aW5ncyBBcHAgPiBTYWZhcmkgPiBBZHZhbmNlZCkuXCJcbiAgICAgIC8vIGVycm9yXG4gICAgICByZXR1cm4gdGhpcy5za2lwKCk7XG4gICAgfVxuXG4gICAgLy8gUHJlYm9vdCBTaW11bGF0b3IgdG8gYXZvaWQgdW5leHBlY3RlZCB0aW1lb3V0c1xuICAgIGNvbnN0IHNpbWN0bCA9IG5ldyBTaW1jdGwoKTtcbiAgICBjb25zdCBhbGxEZXZpY2VzID0gYXdhaXQgc2ltY3RsLmdldERldmljZXMoUExBVEZPUk1fVkVSU0lPTiwgJ2lPUycpO1xuICAgIGNvbnN0IGRldmljZSA9IGFsbERldmljZXMuZmluZCgoe25hbWV9KSA9PiBuYW1lID09PSBERVZJQ0VfTkFNRSk7XG4gICAgaWYgKCFkZXZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJyR7REVWSUNFX05BTUV9JyBTaW11bGF0b3IgKCR7UExBVEZPUk1fVkVSU0lPTn0pYCk7XG4gICAgfVxuICAgIGlmIChkZXZpY2Uuc3RhdGUgIT09ICdCb290ZWQnKSB7XG4gICAgICBzaW1jdGwudWRpZCA9IGRldmljZS51ZGlkO1xuICAgICAgYXdhaXQgc2ltY3RsLmJvb3REZXZpY2UoKTtcbiAgICAgIGF3YWl0IHNpbWN0bC5zdGFydEJvb3RNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgc2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIoUE9SVCwgSE9TVCk7XG4gIH0pO1xuICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNlcnZlcikge1xuICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICBzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGRyaXZlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgICBob3N0bmFtZTogSE9TVCxcbiAgICAgIHBvcnQ6IFBPUlQsXG4gICAgICBjYXBhYmlsaXRpZXM6IENBUFMsXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChkcml2ZXIpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5kZWxldGVTZXNzaW9uKCk7XG4gICAgICBkcml2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdGFydCBhbmQgc3RvcCBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgZHJpdmVyLnVybCgnaHR0cHM6Ly9hcHBpdW0uaW8vJyk7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgZHJpdmVyLiQoJyNkb3dubG9hZExpbmsnKTtcbiAgICBhd2FpdCBidXR0b24uZ2V0VGV4dCgpLnNob3VsZC5ldmVudHVhbGx5LmVxbCgnRG93bmxvYWQgQXBwaXVtJyk7XG4gIH0pO1xufSk7XG5cblxuIl0sImZpbGUiOiJ0ZXN0L2Z1bmN0aW9uYWwvbW9iaWxlLWRyaXZlci1lMmUtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
package/build/test/utils.js
CHANGED
package/gulpfile.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
let gulp = require('gulp');
|
|
4
|
-
let boilerplate = require('appium
|
|
4
|
+
let boilerplate = require('@appium/gulp-plugins').boilerplate.use(gulp);
|
|
5
5
|
|
|
6
6
|
boilerplate({
|
|
7
|
-
build: 'appium-
|
|
7
|
+
build: 'appium-safari-driver',
|
|
8
|
+
files: ['index.js', 'lib/**/*.js', 'test/**/*.js', '!gulpfile.js'],
|
|
8
9
|
coverage: {
|
|
9
10
|
files: ['./test/unit/**/*-specs.js', '!./test/functional/**'],
|
|
10
11
|
verbose: true
|
package/lib/commands/find.js
CHANGED
package/lib/driver.js
CHANGED
package/lib/logger.js
CHANGED
package/lib/safari.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { JWProxy, errors } from 'appium
|
|
4
|
-
import { fs, logger, util } from 'appium
|
|
3
|
+
import { JWProxy, errors } from '@appium/base-driver';
|
|
4
|
+
import { fs, logger, util } from '@appium/support';
|
|
5
5
|
import { SubProcess } from 'teen_process';
|
|
6
6
|
import { waitForCondition } from 'asyncbox';
|
|
7
7
|
import { findAPortNotInUse } from 'portscanner';
|
package/lib/server.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import log from './logger';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
server as baseServer, routeConfiguringFunction as makeRouter
|
|
4
|
+
} from '@appium/base-driver';
|
|
3
5
|
import SafariDriver from './driver';
|
|
4
6
|
|
|
5
7
|
async function startServer (port, address) {
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"appium",
|
|
6
6
|
"safari"
|
|
7
7
|
],
|
|
8
|
-
"version": "
|
|
8
|
+
"version": "3.0.0",
|
|
9
9
|
"author": "appium",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"repository": {
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"lib": "lib"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
+
"@appium/base-driver": "^8.0.0",
|
|
37
|
+
"@appium/support": "^2.46.0",
|
|
36
38
|
"@babel/runtime": "^7.0.0",
|
|
37
|
-
"appium-base-driver": "^7.1.0",
|
|
38
|
-
"appium-support": "^2.46.0",
|
|
39
39
|
"asyncbox": "^2.0.2",
|
|
40
40
|
"bluebird": "^3.5.1",
|
|
41
41
|
"lodash": "^4.17.4",
|
|
42
42
|
"node-simctl": "^6.4.0",
|
|
43
43
|
"portscanner": "2.2.0",
|
|
44
|
-
"source-map-support": "^0.
|
|
44
|
+
"source-map-support": "^0.x",
|
|
45
45
|
"teen_process": "^1.15.0"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
@@ -63,14 +63,21 @@
|
|
|
63
63
|
"precommit-test"
|
|
64
64
|
],
|
|
65
65
|
"devDependencies": {
|
|
66
|
+
"@appium/gulp-plugins": "^6.0.0",
|
|
67
|
+
"@appium/eslint-config-appium": "^5.0.0",
|
|
68
|
+
"@babel/core": "^7.16.0",
|
|
69
|
+
"@babel/eslint-parser": "^7.16.3",
|
|
66
70
|
"appium-gulp-plugins": "^5.4.0",
|
|
67
71
|
"chai": "^4.1.2",
|
|
68
72
|
"chai-as-promised": "^7.1.1",
|
|
69
|
-
"eslint
|
|
73
|
+
"eslint": "^7.32.0",
|
|
74
|
+
"eslint-plugin-import": "^2.25.3",
|
|
75
|
+
"eslint-plugin-mocha": "^9.0.0",
|
|
76
|
+
"eslint-plugin-promise": "^6.0.0",
|
|
70
77
|
"gulp": "^4.0.0",
|
|
71
|
-
"mocha": "^
|
|
78
|
+
"mocha": "^9.0.0",
|
|
72
79
|
"pre-commit": "^1.1.3",
|
|
73
|
-
"sinon": "^
|
|
74
|
-
"
|
|
80
|
+
"sinon": "^12.0.0",
|
|
81
|
+
"webdriverio": "^7.0.0"
|
|
75
82
|
}
|
|
76
83
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { remote } from 'webdriverio';
|
|
2
2
|
import { startServer } from '../..';
|
|
3
3
|
import chaiAsPromised from 'chai-as-promised';
|
|
4
4
|
import chai from 'chai';
|
|
@@ -28,20 +28,23 @@ describe('Desktop SafariDriver', function () {
|
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
beforeEach(async function () {
|
|
31
|
-
driver =
|
|
32
|
-
|
|
31
|
+
driver = await remote({
|
|
32
|
+
hostname: HOST,
|
|
33
|
+
port: PORT,
|
|
34
|
+
capabilities: CAPS,
|
|
35
|
+
});
|
|
33
36
|
});
|
|
34
37
|
afterEach(async function () {
|
|
35
38
|
if (driver) {
|
|
36
|
-
await driver.
|
|
39
|
+
await driver.deleteSession();
|
|
37
40
|
driver = null;
|
|
38
41
|
}
|
|
39
42
|
});
|
|
40
43
|
|
|
41
44
|
it('should start and stop a session', async function () {
|
|
42
|
-
await driver.
|
|
43
|
-
const button = await driver
|
|
44
|
-
await button.
|
|
45
|
+
await driver.url('https://appium.io/');
|
|
46
|
+
const button = await driver.$('#downloadLink');
|
|
47
|
+
await button.getText().should.eventually.eql('Download Appium');
|
|
45
48
|
});
|
|
46
49
|
});
|
|
47
50
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { remote } from 'webdriverio';
|
|
2
2
|
import { startServer } from '../..';
|
|
3
3
|
import chaiAsPromised from 'chai-as-promised';
|
|
4
4
|
import chai from 'chai';
|
|
@@ -53,20 +53,23 @@ describe('Mobile SafariDriver', function () {
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
beforeEach(async function () {
|
|
56
|
-
driver =
|
|
57
|
-
|
|
56
|
+
driver = await remote({
|
|
57
|
+
hostname: HOST,
|
|
58
|
+
port: PORT,
|
|
59
|
+
capabilities: CAPS,
|
|
60
|
+
});
|
|
58
61
|
});
|
|
59
62
|
afterEach(async function () {
|
|
60
63
|
if (driver) {
|
|
61
|
-
await driver.
|
|
64
|
+
await driver.deleteSession();
|
|
62
65
|
driver = null;
|
|
63
66
|
}
|
|
64
67
|
});
|
|
65
68
|
|
|
66
69
|
it('should start and stop a session', async function () {
|
|
67
|
-
await driver.
|
|
68
|
-
const button = await driver
|
|
69
|
-
await button.
|
|
70
|
+
await driver.url('https://appium.io/');
|
|
71
|
+
const button = await driver.$('#downloadLink');
|
|
72
|
+
await button.getText().should.eventually.eql('Download Appium');
|
|
70
73
|
});
|
|
71
74
|
});
|
|
72
75
|
|