appium-xcuitest-driver 4.2.0 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -4
- package/build/lib/commands/app-management.js +32 -1
- package/build/lib/commands/execute.js +2 -1
- package/build/lib/py-ios-device-client.js +9 -1
- package/lib/commands/app-management.js +28 -0
- package/lib/commands/execute.js +1 -0
- package/lib/py-ios-device-client.js +7 -0
- package/npm-shrinkwrap.json +2327 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://npmjs.org/package/appium-xcuitest-driver)
|
|
4
4
|
[](https://npmjs.org/package/appium-xcuitest-driver)
|
|
5
|
-
[](https://david-dm.org/appium/appium-xcuitest-driver)
|
|
6
|
-
[](https://david-dm.org/appium/appium-xcuitest-driver#info=devDependencies)
|
|
7
5
|
|
|
8
|
-
[](https://github.com/appium/appium-xcuitest-driver/actions/workflows/publish.js.yml)
|
|
9
7
|
|
|
10
8
|
Appium XCUITest Driver is a combined solution, which allows to perform automated black-box testing of iOS and tvOS native applications and WebKit web views.
|
|
11
9
|
The native testing is based on Apple's [XCTest](https://developer.apple.com/documentation/xctest) framework and the fork of Facebook's [WebDriverAgent](https://github.com/appium/WebDriverAgent) server (the [original](https://github.com/facebookarchive/WebDriverAgent) project is not supported anymore).
|
|
@@ -493,7 +491,7 @@ environment | dict | no | Environment variables mapping for the app. If the app
|
|
|
493
491
|
|
|
494
492
|
### mobile: terminateApp
|
|
495
493
|
|
|
496
|
-
Terminates the given app on the device under test. If the app is not installed an exception is thrown. If the app is not running then nothing is done.
|
|
494
|
+
Terminates the given app on the device under test via [XCTest's terminate](https://developer.apple.com/documentation/xctest/xcuiapplication/1500637-terminate) API. If the app is not installed an exception is thrown. If the app is not running then nothing is done.
|
|
497
495
|
|
|
498
496
|
#### Arguments
|
|
499
497
|
|
|
@@ -505,6 +503,22 @@ bundleId | string | yes | The bundle identifier of the application to be termina
|
|
|
505
503
|
|
|
506
504
|
Either `true` if the app was successfully terminated, otherwise `false`
|
|
507
505
|
|
|
506
|
+
### mobile: killApp
|
|
507
|
+
|
|
508
|
+
Kill the given app on the real device under test by instruments service via [py-ios-device](https://github.com/YueChen-C/py-ios-device) if it is installed on the server machine since XCUITest driver 4.3.0.
|
|
509
|
+
If the app is not running or failed to kill, then nothing is done.
|
|
510
|
+
Note that this method takes a few more time than `mobile:terminateApp` for now since it calls the instruments service via external command, `py-ios-device`.
|
|
511
|
+
|
|
512
|
+
#### Arguments
|
|
513
|
+
|
|
514
|
+
Name | Type | Required | Description | Example
|
|
515
|
+
--- | --- | --- | --- | ---
|
|
516
|
+
bundleId | string | yes | The bundle identifier of the application to be terminated | com.mycompany.myapp
|
|
517
|
+
|
|
518
|
+
#### Returned Result
|
|
519
|
+
|
|
520
|
+
Either `true` if the app was successfully killed, otherwise `false`
|
|
521
|
+
|
|
508
522
|
### mobile: queryAppState
|
|
509
523
|
|
|
510
524
|
Queries the state of an installed application from the device under test. An exception will be thrown if the app with given identifier is not installed.
|
|
@@ -1339,3 +1353,5 @@ the tests locally. These include:
|
|
|
1339
1353
|
the root directory of the repo with the extension "xcconfig")
|
|
1340
1354
|
* `UICATALOG_REAL_DEVICE` - path to the real device build of UICatalog, in case
|
|
1341
1355
|
the npm installed one is not built for real device
|
|
1356
|
+
|
|
1357
|
+
|
|
@@ -19,6 +19,8 @@ var _baseDriver = require("@appium/base-driver");
|
|
|
19
19
|
|
|
20
20
|
var _appiumIosDevice = require("appium-ios-device");
|
|
21
21
|
|
|
22
|
+
var _pyIosDeviceClient = _interopRequireDefault(require("../py-ios-device-client"));
|
|
23
|
+
|
|
22
24
|
const commands = {};
|
|
23
25
|
|
|
24
26
|
function requireOptions(opts = {}, reqKeys = []) {
|
|
@@ -103,6 +105,35 @@ commands.mobileActivateApp = async function mobileActivateApp(opts = {}) {
|
|
|
103
105
|
return await this.proxyCommand('/wda/apps/activate', 'POST', requireOptions(opts, ['bundleId']));
|
|
104
106
|
};
|
|
105
107
|
|
|
108
|
+
commands.mobileKillApp = async function mobileKillApp(opts = {}) {
|
|
109
|
+
if (!this.isRealDevice()) {
|
|
110
|
+
throw new _baseDriver.errors.UnsupportedOperationError('A real device is required');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const {
|
|
114
|
+
bundleId
|
|
115
|
+
} = requireOptions(opts, ['bundleId']);
|
|
116
|
+
|
|
117
|
+
try {
|
|
118
|
+
const {
|
|
119
|
+
stdout,
|
|
120
|
+
stderr
|
|
121
|
+
} = await new _pyIosDeviceClient.default(this.opts.device.udid).killApp(bundleId);
|
|
122
|
+
|
|
123
|
+
if ((stdout + stderr).includes('did not start')) {
|
|
124
|
+
_logger.default.info(`The bundle id '${bundleId}' did not start or it was already killed`);
|
|
125
|
+
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return true;
|
|
130
|
+
} catch (err) {
|
|
131
|
+
_logger.default.warn(`Failed to kill '${bundleId}'. Original error: ${err.stderr || err.message}`);
|
|
132
|
+
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
|
|
106
137
|
commands.mobileQueryAppState = async function mobileQueryAppState(opts = {}) {
|
|
107
138
|
return await this.proxyCommand('/wda/apps/state', 'POST', requireOptions(opts, ['bundleId']));
|
|
108
139
|
};
|
|
@@ -160,4 +191,4 @@ var _default = commands;
|
|
|
160
191
|
exports.default = _default;require('source-map-support').install();
|
|
161
192
|
|
|
162
193
|
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVRdWVyeUFwcFN0YXRlIiwiYXBwUGF0aCIsImlzUGxhaW5PYmplY3QiLCJhY3RpdmF0ZUFwcCIsIk9iamVjdCIsImFzc2lnbiIsInRlcm1pbmF0ZUFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJtb2JpbGVMaXN0QXBwcyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJhcHBsaWNhdGlvblR5cGUiLCJzZXJ2aWNlIiwic2VydmljZXMiLCJzdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSIsImxpc3RBcHBsaWNhdGlvbnMiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7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LFFBQS9CLEVBQXlDO0FBQ2pFLFNBQU8sTUFBTSxLQUFLRCxvQkFBTCxDQUEwQjtBQUFDQyxJQUFBQTtBQUFELEdBQTFCLENBQWI7QUFDRCxDQUZEOztBQUlBN0IsUUFBUSxDQUFDbUQsWUFBVCxHQUF3QixlQUFlQSxZQUFmLENBQTZCdEIsUUFBN0IsRUFBdUM7QUFDN0QsU0FBTyxNQUFNLEtBQUtjLGtCQUFMLENBQXdCO0FBQUNkLElBQUFBO0FBQUQsR0FBeEIsQ0FBYjtBQUNELENBRkQ7O0FBSUE3QixRQUFRLENBQUNvRCxhQUFULEdBQXlCLGVBQWVBLGFBQWYsQ0FBOEJ2QixRQUE5QixFQUF3QztBQUMvRCxTQUFPLE1BQU0sS0FBS2dCLG1CQUFMLENBQXlCO0FBQUNoQixJQUFBQTtBQUFELEdBQXpCLENBQWI7QUFDRCxDQUZEOztBQWdCQTdCLFFBQVEsQ0FBQ3FELGNBQVQsR0FBMEIsZUFBZUEsY0FBZixDQUErQm5ELElBQUksR0FBRyxFQUF0QyxFQUEwQztBQUNsRSxNQUFJLENBQUMsS0FBS2lCLFlBQUwsRUFBTCxFQUEwQjtBQUN4QixVQUFNLElBQUlYLG1CQUFPOEMsbUJBQVgsQ0FBZ0Msa0RBQWhDLENBQU47QUFDRDs7QUFFRCxRQUFNO0FBQ0pDLElBQUFBLGVBQWUsR0FBRztBQURkLE1BRUZyRCxJQUZKO0FBR0EsUUFBTXNELE9BQU8sR0FBRyxNQUFNQywwQkFBU0MsNkJBQVQsQ0FBdUMsS0FBS3hELElBQUwsQ0FBVWtCLE1BQVYsQ0FBaUJDLElBQXhELENBQXRCOztBQUNBLE1BQUk7QUFDRixXQUFPLE1BQU1tQyxPQUFPLENBQUNHLGdCQUFSLENBQXlCO0FBQUNKLE1BQUFBO0FBQUQsS0FBekIsQ0FBYjtBQUNELEdBRkQsU0FFVTtBQUNSQyxJQUFBQSxPQUFPLENBQUNJLEtBQVI7QUFDRDtBQUNGLENBZEQ7O2VBZ0JlNUQsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cyA9IHt9LCByZXFLZXlzID0gW10pIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgcmVxS2V5cykge1xuICAgIGlmICghXy5pc1N0cmluZyhvcHRzW2tleV0pIHx8IF8uaXNFbXB0eShvcHRzW2tleV0pKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgJyR7a2V5fScgaXMgZXhwZWN0ZWQgdG8gYmUgYSB2YWxpZCBzdHJpbmcuICcke29wdHNba2V5XX0nIGlzIGdpdmVuIGluc3RlYWRgXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3B0cztcbn1cblxuY29tbWFuZHMubW9iaWxlSW5zdGFsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGFwcCwgdGltZW91dE1zLCBzdHJhdGVneSB9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydhcHAnXSk7XG4gIGNvbnN0IHNyY0FwcFBhdGggPSBhd2FpdCB0aGlzLmhlbHBlcnMuY29uZmlndXJlQXBwKGFwcCwgJy5hcHAnKTtcbiAgbG9nLmluZm8oYEluc3RhbGxpbmcgJyR7c3JjQXBwUGF0aH0nIHRvIHRoZSAke3RoaXMuaXNSZWFsRGV2aWNlKCkgPyAncmVhbCBkZXZpY2UnIDogJ1NpbXVsYXRvcid9IGAgK1xuICAgIGB3aXRoIFVESUQgJyR7dGhpcy5vcHRzLmRldmljZS51ZGlkfSdgKTtcbiAgaWYgKCFhd2FpdCBmcy5leGlzdHMoc3JjQXBwUGF0aCkpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGFwcGxpY2F0aW9uIGF0ICcke3NyY0FwcFBhdGh9JyBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYWNjZXNzaWJsZWApO1xuICB9XG4gIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaW5zdGFsbEFwcChcbiAgICBzcmNBcHBQYXRoLCB0aW1lb3V0TXMgPz8gdGhpcy5vcHRzLmFwcFB1c2hUaW1lb3V0LCBzdHJhdGVneSA/PyB0aGlzLm9wdHMuYXBwSW5zdGFsbFN0cmF0ZWd5XG4gICk7XG4gIGxvZy5pbmZvKGBJbnN0YWxsYXRpb24gb2YgJyR7c3JjQXBwUGF0aH0nIHN1Y2NlZWRlZGApO1xufTtcblxuY29tbWFuZHMubW9iaWxlSXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVJc0FwcEluc3RhbGxlZCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBjb25zdCBpbnN0YWxsZWQgPSBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmlzQXBwSW5zdGFsbGVkKGJ1bmRsZUlkKTtcbiAgbG9nLmluZm8oYEFwcCAnJHtidW5kbGVJZH0nIGlzJHtpbnN0YWxsZWQgPyAnJyA6ICcgbm90J30gaW5zdGFsbGVkYCk7XG4gIHJldHVybiBpbnN0YWxsZWQ7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVSZW1vdmVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVSZW1vdmVBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YnVuZGxlSWR9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgbG9nLmluZm8oYFVuaW5zdGFsbGluZyB0aGUgYXBwbGljYXRpb24gd2l0aCBidW5kbGUgaWRlbnRpZmllciAnJHtidW5kbGVJZH0nIGAgK1xuICAgIGBmcm9tIHRoZSAke3RoaXMuaXNSZWFsRGV2aWNlKCkgPyAncmVhbCBkZXZpY2UnIDogJ1NpbXVsYXRvcid9IHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UucmVtb3ZlQXBwKGJ1bmRsZUlkKTtcbiAgICBsb2cuaW5mbyhgUmVtb3ZhbCBvZiAnJHtidW5kbGVJZH0nIHN1Y2NlZWRlZGApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cud2FybihgQ2Fubm90IHJlbW92ZSAnJHtidW5kbGVJZH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmNvbW1hbmRzLm1vYmlsZUxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUxhdW5jaEFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IGxhdW5jaE9wdGlvbnMgPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBpZiAob3B0cy5hcmd1bWVudHMpIHtcbiAgICBsYXVuY2hPcHRpb25zLmFyZ3VtZW50cyA9IF8uaXNBcnJheShvcHRzLmFyZ3VtZW50cykgPyBvcHRzLmFyZ3VtZW50cyA6IFtvcHRzLmFyZ3VtZW50c107XG4gIH1cbiAgaWYgKG9wdHMuZW52aXJvbm1lbnQpIHtcbiAgICBsYXVuY2hPcHRpb25zLmVudmlyb25tZW50ID0gb3B0cy5lbnZpcm9ubWVudDtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy9sYXVuY2gnLCAnUE9TVCcsIGxhdW5jaE9wdGlvbnMpO1xufTtcblxuY29tbWFuZHMubW9iaWxlVGVybWluYXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVGVybWluYXRlQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvdGVybWluYXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUFjdGl2YXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQWN0aXZhdGVBcHAgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy9hY3RpdmF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgc2V0LCB3aGljaCBtdXN0IGNvbnRhaW4gYGJ1bmRsZUlkYCBwcm9wZXJ0eVxuICogQHJldHVybnMge251bWJlcn0gVGhlIGFjdHVhbCBhcHBsaWNhdGlvbiBzdGF0ZSBjb2RlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpYXBwbGljYXRpb25zdGF0ZT9sYW5ndWFnZT1vYmpjXG4gKiB0byBnZXQgdGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVRdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUXVlcnlBcHBTdGF0ZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3N0YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLmluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQXBwIChhcHBQYXRoLCBvcHRzID0ge30pIHtcbiAgYXdhaXQgdGhpcy5tb2JpbGVJbnN0YWxsQXBwKHtcbiAgICAuLi4oXy5pc1BsYWluT2JqZWN0KG9wdHMpID8gb3B0cyA6IHt9KSxcbiAgICBhcHA6IGFwcFBhdGgsXG4gIH0pO1xufTtcblxuY29tbWFuZHMuYWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmF0ZUFwcCAoYnVuZGxlSWQsIG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVMYXVuY2hBcHAoT2JqZWN0LmFzc2lnbih7fSwgb3B0cywge2J1bmRsZUlkfSkpO1xufTtcblxuY29tbWFuZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBpc0FwcEluc3RhbGxlZCAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlSXNBcHBJbnN0YWxsZWQoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy50ZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiB0ZXJtaW5hdGVBcHAgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZVRlcm1pbmF0ZUFwcCh7YnVuZGxlSWR9KTtcbn07XG5cbmNvbW1hbmRzLnF1ZXJ5QXBwU3RhdGUgPSBhc3luYyBmdW5jdGlvbiBxdWVyeUFwcFN0YXRlIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVRdWVyeUFwcFN0YXRlKHtidW5kbGVJZH0pO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMaXN0QXBwc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7J1N5c3RlbSd8J1VzZXInfSBhcHBsaWNhdGlvblR5cGUgW1VzZXJdIFRoZSB0eXBlIG9mIGFwcGxpY2F0aW9ucyB0byBsaXN0XG4gKi9cblxuLyoqXG4gKiBMaXN0IGFwcGxpY2F0aW9ucyBpbnN0YWxsZWQgb24gdGhlIHJlYWwgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge0xpc3RBcHBzT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge0FycmF5PE9iamVjdD59IEEgbGlzdCBvZiBhcHBzLCB3aGVyZSBlYWNoIGl0ZW0gaXMgYSBtYXAgd2hlcmUga2V5cyBhcmVcbiAqIGJ1bmRsZSBpZGVudGlmaWVycyBhbmQgdmFsdWVzIGFyZSBtYXBzIG9mIHBsYXRmb3JtLXNwZWNpZmljIGFwcCBwcm9wZXJ0aWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0QXBwcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUxpc3RBcHBzIChvcHRzID0ge30pIHtcbiAgaWYgKCF0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKGBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHN1cHBvcnRlZCBvbiByZWFsIGRldmljZXNgKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBhcHBsaWNhdGlvblR5cGUgPSAnVXNlcicsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgc2VydmljZS5saXN0QXBwbGljYXRpb25zKHthcHBsaWNhdGlvblR5cGV9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvYXBwLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVLaWxsQXBwIiwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvciIsInN0ZG91dCIsInN0ZGVyciIsIlB5aWRldmljZSIsImtpbGxBcHAiLCJpbmNsdWRlcyIsIm1vYmlsZVF1ZXJ5QXBwU3RhdGUiLCJhcHBQYXRoIiwiaXNQbGFpbk9iamVjdCIsImFjdGl2YXRlQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsIm1vYmlsZUxpc3RBcHBzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImFwcGxpY2F0aW9uVHlwZSIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwibGlzdEFwcGxpY2F0aW9ucyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFFQSxTQUFTQyxjQUFULENBQXlCQyxJQUFJLEdBQUcsRUFBaEMsRUFBb0NDLE9BQU8sR0FBRyxFQUE5QyxFQUFrRDtBQUNoRCxPQUFLLE1BQU1DLEdBQVgsSUFBa0JELE9BQWxCLEVBQTJCO0FBQ3pCLFFBQUksQ0FBQ0UsZ0JBQUVDLFFBQUYsQ0FBV0osSUFBSSxDQUFDRSxHQUFELENBQWYsQ0FBRCxJQUEwQkMsZ0JBQUVFLE9BQUYsQ0FBVUwsSUFBSSxDQUFDRSxHQUFELENBQWQsQ0FBOUIsRUFBb0Q7QUFDbEQsWUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FDSCxJQUFHTCxHQUFJLHdDQUF1Q0YsSUFBSSxDQUFDRSxHQUFELENBQU0sb0JBRHJELENBQU47QUFHRDtBQUNGOztBQUNELFNBQU9GLElBQVA7QUFDRDs7QUFFREYsUUFBUSxDQUFDVSxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ1IsSUFBSSxHQUFHLEVBQXhDLEVBQTRDO0FBQ3RFLFFBQU07QUFBRVMsSUFBQUEsR0FBRjtBQUFPQyxJQUFBQSxTQUFQO0FBQWtCQyxJQUFBQTtBQUFsQixNQUErQlosY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxLQUFELENBQVAsQ0FBbkQ7QUFDQSxRQUFNWSxVQUFVLEdBQUcsTUFBTSxLQUFLQyxPQUFMLENBQWFDLFlBQWIsQ0FBMEJMLEdBQTFCLEVBQStCLE1BQS9CLENBQXpCOztBQUNBTSxrQkFBSUMsSUFBSixDQUFVLGVBQWNKLFVBQVcsWUFBVyxLQUFLSyxZQUFMLEtBQXNCLGFBQXRCLEdBQXNDLFdBQVksR0FBdkYsR0FDTixjQUFhLEtBQUtqQixJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUFLLEdBRHRD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QUFRLENBQUMwRCxZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkI3QixRQUE3QixFQUF1QztBQUM3RCxTQUFPLE1BQU0sS0FBS2Msa0JBQUwsQ0FBd0I7QUFBQ2QsSUFBQUE7QUFBRCxHQUF4QixDQUFiO0FBQ0QsQ0FGRDs7QUFJQTdCLFFBQVEsQ0FBQzJELGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QjlCLFFBQTlCLEVBQXdDO0FBQy9ELFNBQU8sTUFBTSxLQUFLdUIsbUJBQUwsQ0FBeUI7QUFBQ3ZCLElBQUFBO0FBQUQsR0FBekIsQ0FBYjtBQUNELENBRkQ7O0FBZ0JBN0IsUUFBUSxDQUFDNEQsY0FBVCxHQUEwQixlQUFlQSxjQUFmLENBQStCMUQsSUFBSSxHQUFHLEVBQXRDLEVBQTBDO0FBQ2xFLE1BQUksQ0FBQyxLQUFLaUIsWUFBTCxFQUFMLEVBQTBCO0FBQ3hCLFVBQU0sSUFBSVgsbUJBQU9xRCxtQkFBWCxDQUFnQyxrREFBaEMsQ0FBTjtBQUNEOztBQUVELFFBQU07QUFDSkMsSUFBQUEsZUFBZSxHQUFHO0FBRGQsTUFFRjVELElBRko7QUFHQSxRQUFNNkQsT0FBTyxHQUFHLE1BQU1DLDBCQUFTQyw2QkFBVCxDQUF1QyxLQUFLL0QsSUFBTCxDQUFVa0IsTUFBVixDQUFpQkMsSUFBeEQsQ0FBdEI7O0FBQ0EsTUFBSTtBQUNGLFdBQU8sTUFBTTBDLE9BQU8sQ0FBQ0csZ0JBQVIsQ0FBeUI7QUFBQ0osTUFBQUE7QUFBRCxLQUF6QixDQUFiO0FBQ0QsR0FGRCxTQUVVO0FBQ1JDLElBQUFBLE9BQU8sQ0FBQ0ksS0FBUjtBQUNEO0FBQ0YsQ0FkRDs7ZUFnQmVuRSxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5pbXBvcnQgUHlpZGV2aWNlIGZyb20gJy4uL3B5LWlvcy1kZXZpY2UtY2xpZW50JztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuZnVuY3Rpb24gcmVxdWlyZU9wdGlvbnMgKG9wdHMgPSB7fSwgcmVxS2V5cyA9IFtdKSB7XG4gIGZvciAoY29uc3Qga2V5IG9mIHJlcUtleXMpIHtcbiAgICBpZiAoIV8uaXNTdHJpbmcob3B0c1trZXldKSB8fCBfLmlzRW1wdHkob3B0c1trZXldKSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICAgYCcke2tleX0nIGlzIGV4cGVjdGVkIHRvIGJlIGEgdmFsaWQgc3RyaW5nLiAnJHtvcHRzW2tleV19JyBpcyBnaXZlbiBpbnN0ZWFkYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdHM7XG59XG5cbmNvbW1hbmRzLm1vYmlsZUluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVJbnN0YWxsQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3QgeyBhcHAsIHRpbWVvdXRNcywgc3RyYXRlZ3kgfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYXBwJ10pO1xuICBjb25zdCBzcmNBcHBQYXRoID0gYXdhaXQgdGhpcy5oZWxwZXJzLmNvbmZpZ3VyZUFwcChhcHAsICcuYXBwJyk7XG4gIGxvZy5pbmZvKGBJbnN0YWxsaW5nICcke3NyY0FwcFBhdGh9JyB0byB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSBgICtcbiAgICBgd2l0aCBVRElEICcke3RoaXMub3B0cy5kZXZpY2UudWRpZH0nYCk7XG4gIGlmICghYXdhaXQgZnMuZXhpc3RzKHNyY0FwcFBhdGgpKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYFRoZSBhcHBsaWNhdGlvbiBhdCAnJHtzcmNBcHBQYXRofScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgfVxuICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmluc3RhbGxBcHAoXG4gICAgc3JjQXBwUGF0aCwgdGltZW91dE1zID8/IHRoaXMub3B0cy5hcHBQdXNoVGltZW91dCwgc3RyYXRlZ3kgPz8gdGhpcy5vcHRzLmFwcEluc3RhbGxTdHJhdGVneVxuICApO1xuICBsb2cuaW5mbyhgSW5zdGFsbGF0aW9uIG9mICcke3NyY0FwcFBhdGh9JyBzdWNjZWVkZWRgKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUlzQXBwSW5zdGFsbGVkID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSXNBcHBJbnN0YWxsZWQgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YnVuZGxlSWR9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgY29uc3QgaW5zdGFsbGVkID0gYXdhaXQgdGhpcy5vcHRzLmRldmljZS5pc0FwcEluc3RhbGxlZChidW5kbGVJZCk7XG4gIGxvZy5pbmZvKGBBcHAgJyR7YnVuZGxlSWR9JyBpcyR7aW5zdGFsbGVkID8gJycgOiAnIG5vdCd9IGluc3RhbGxlZGApO1xuICByZXR1cm4gaW5zdGFsbGVkO1xufTtcblxuY29tbWFuZHMubW9iaWxlUmVtb3ZlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUmVtb3ZlQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGxvZy5pbmZvKGBVbmluc3RhbGxpbmcgdGhlIGFwcGxpY2F0aW9uIHdpdGggYnVuZGxlIGlkZW50aWZpZXIgJyR7YnVuZGxlSWR9JyBgICtcbiAgICBgZnJvbSB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSB3aXRoIFVESUQgJyR7dGhpcy5vcHRzLmRldmljZS51ZGlkfSdgKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnJlbW92ZUFwcChidW5kbGVJZCk7XG4gICAgbG9nLmluZm8oYFJlbW92YWwgb2YgJyR7YnVuZGxlSWR9JyBzdWNjZWVkZWRgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLndhcm4oYENhbm5vdCByZW1vdmUgJyR7YnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5jb21tYW5kcy5tb2JpbGVMYXVuY2hBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMYXVuY2hBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBsYXVuY2hPcHRpb25zID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgaWYgKG9wdHMuYXJndW1lbnRzKSB7XG4gICAgbGF1bmNoT3B0aW9ucy5hcmd1bWVudHMgPSBfLmlzQXJyYXkob3B0cy5hcmd1bWVudHMpID8gb3B0cy5hcmd1bWVudHMgOiBbb3B0cy5hcmd1bWVudHNdO1xuICB9XG4gIGlmIChvcHRzLmVudmlyb25tZW50KSB7XG4gICAgbGF1bmNoT3B0aW9ucy5lbnZpcm9ubWVudCA9IG9wdHMuZW52aXJvbm1lbnQ7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvbGF1bmNoJywgJ1BPU1QnLCBsYXVuY2hPcHRpb25zKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRlcm1pbmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3Rlcm1pbmF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVBY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUFjdGl2YXRlQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvYWN0aXZhdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuLyoqXG4gKiBLaWxsIHRoZSBnaXZlbiBidW5kbGUgaWQgcHJvY2VzcyB2aWEgaW5zdHJ1bWVudHMgc2VydmljZS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZS9ibG9iLzUxZjQ2ODNjNWMzYzM4NWEwMTU4NThhZGEwN2E1ZjFjNjJkM2NmNTcvaW9zX2RldmljZS9jbGkvYmFzZS5weSNMMjIwXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBPcHRpb25zIHNldCwgd2hpY2ggbXVzdCBjb250YWluIGBidW5kbGVJZGAgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1bmRsZSBpZCBwcm9jZXNzIHdhcyBraWxsZWQuIE90aGVyd2lzZSBmYWxzZS5cbiAqL1xuY29tbWFuZHMubW9iaWxlS2lsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUtpbGxBcHAgKG9wdHMgPSB7fSkge1xuICBpZiAoIXRoaXMuaXNSZWFsRGV2aWNlKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ0EgcmVhbCBkZXZpY2UgaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICB0cnkge1xuICAgIC8vIFRPRE86IGV2ZW50dWFsbHkgd2UnZCBsaWtlIHRvIGNhbGwgdGhlIGluc3RydW1lbnRzIGtpbGwgbWV0aG9kIHZpYSBhcHBpdW0taW9zLWRldmljZS5cbiAgICBjb25zdCB7c3Rkb3V0LCBzdGRlcnJ9ID0gYXdhaXQgbmV3IFB5aWRldmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpLmtpbGxBcHAoYnVuZGxlSWQpO1xuICAgIGlmICgoc3Rkb3V0ICsgc3RkZXJyKS5pbmNsdWRlcygnZGlkIG5vdCBzdGFydCcpKSB7XG4gICAgICBsb2cuaW5mbyhgVGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIGRpZCBub3Qgc3RhcnQgb3IgaXQgd2FzIGFscmVhZHkga2lsbGVkYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cud2FybihgRmFpbGVkIHRvIGtpbGwgJyR7YnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLnN0ZGVyciB8fCBlcnIubWVzc2FnZX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBzdGF0ZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyBzZXQsIHdoaWNoIG11c3QgY29udGFpbiBgYnVuZGxlSWRgIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgYWN0dWFsIGFwcGxpY2F0aW9uIHN0YXRlIGNvZGUuIFNlZVxuICogaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWlhcHBsaWNhdGlvbnN0YXRlP2xhbmd1YWdlPW9iamNcbiAqIHRvIGdldCB0aGUgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVF1ZXJ5QXBwU3RhdGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVRdWVyeUFwcFN0YXRlIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvc3RhdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuY29tbWFuZHMuaW5zdGFsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGluc3RhbGxBcHAgKGFwcFBhdGgsIG9wdHMgPSB7fSkge1xuICBhd2FpdCB0aGlzLm1vYmlsZUluc3RhbGxBcHAoe1xuICAgIC4uLihfLmlzUGxhaW5PYmplY3Qob3B0cykgPyBvcHRzIDoge30pLFxuICAgIGFwcDogYXBwUGF0aCxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5hY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlQXBwIChidW5kbGVJZCwgb3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZUxhdW5jaEFwcChPYmplY3QuYXNzaWduKHt9LCBvcHRzLCB7YnVuZGxlSWR9KSk7XG59O1xuXG5jb21tYW5kcy5pc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIGlzQXBwSW5zdGFsbGVkIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVJc0FwcEluc3RhbGxlZCh7YnVuZGxlSWR9KTtcbn07XG5cbmNvbW1hbmRzLnRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIHRlcm1pbmF0ZUFwcCAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlVGVybWluYXRlQXBwKHtidW5kbGVJZH0pO1xufTtcblxuY29tbWFuZHMucXVlcnlBcHBTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5QXBwU3RhdGUgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZVF1ZXJ5QXBwU3RhdGUoe2J1bmRsZUlkfSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IExpc3RBcHBzT3B0aW9uc1xuICogQHByb3BlcnR5IHsnU3lzdGVtJ3wnVXNlcid9IGFwcGxpY2F0aW9uVHlwZSBbVXNlcl0gVGhlIHR5cGUgb2YgYXBwbGljYXRpb25zIHRvIGxpc3RcbiAqL1xuXG4vKipcbiAqIExpc3QgYXBwbGljYXRpb25zIGluc3RhbGxlZCBvbiB0aGUgcmVhbCBkZXZpY2UgdW5kZXIgdGVzdFxuICpcbiAqIEBwYXJhbSB7TGlzdEFwcHNPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7QXJyYXk8T2JqZWN0Pn0gQSBsaXN0IG9mIGFwcHMsIHdoZXJlIGVhY2ggaXRlbSBpcyBhIG1hcCB3aGVyZSBrZXlzIGFyZVxuICogYnVuZGxlIGlkZW50aWZpZXJzIGFuZCB2YWx1ZXMgYXJlIG1hcHMgb2YgcGxhdGZvcm0tc3BlY2lmaWMgYXBwIHByb3BlcnRpZXMuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RBcHBzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdEFwcHMgKG9wdHMgPSB7fSkge1xuICBpZiAoIXRoaXMuaXNSZWFsRGV2aWNlKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoYFRoaXMgZXh0ZW5zaW9uIGlzIG9ubHkgc3VwcG9ydGVkIG9uIHJlYWwgZGV2aWNlc2ApO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGFwcGxpY2F0aW9uVHlwZSA9ICdVc2VyJyxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBzZXJ2aWNlLmxpc3RBcHBsaWNhdGlvbnMoe2FwcGxpY2F0aW9uVHlwZX0pO1xuICB9IGZpbmFsbHkge1xuICAgIHNlcnZpY2UuY2xvc2UoKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
@@ -86,6 +86,7 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
86
86
|
removeApp: 'mobileRemoveApp',
|
|
87
87
|
launchApp: 'mobileLaunchApp',
|
|
88
88
|
terminateApp: 'mobileTerminateApp',
|
|
89
|
+
killApp: 'mobileKillApp',
|
|
89
90
|
queryAppState: 'mobileQueryAppState',
|
|
90
91
|
activateApp: 'mobileActivateApp',
|
|
91
92
|
listApps: 'mobileListApps',
|
|
@@ -140,4 +141,4 @@ var _default = extensions;
|
|
|
140
141
|
exports.default = _default;require('source-map-support').install();
|
|
141
142
|
|
|
142
143
|
|
|
143
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJyZWNlaXZlQXN5bmNSZXNwb25zZSIsInN0YXR1cyIsInZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwidXRpbCIsImhhc1ZhbHVlIiwiYXN5bmNQcm9taXNlIiwid2FybiIsInJlamVjdCIsIm1lc3NhZ2UiLCJfIiwiaXNTdHJpbmciLCJlcnJvciIsInN0YWNrdHJhY2UiLCJyZXNvbHZlIiwiZXhlY3V0ZSIsInNjcmlwdCIsImFyZ3MiLCJtYXRjaCIsInJlcGxhY2UiLCJ0cmltIiwiZXhlY3V0ZU1vYmlsZSIsImlzQXJyYXkiLCJpc1dlYkNvbnRleHQiLCJjb252ZXJ0RWxlbWVudHNGb3JBdG9tcyIsInJlc3VsdCIsImV4ZWN1dGVBdG9tIiwiY2FjaGVXZWJFbGVtZW50cyIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJleGVjdXRlQXN5bmMiLCJhc3luY1dhaXRNcyIsInByb21pc2UiLCJyZW1vdGUiLCJleGVjdXRlQXRvbUFzeW5jIiwiY3VyV2ViRnJhbWVzIiwid2FpdEZvckF0b20iLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsImNvbW1hbmRNYXAiLCJ0YXAiLCJzY3JvbGwiLCJzZWxlY3RQaWNrZXJXaGVlbFZhbHVlIiwic3dpcGUiLCJwaW5jaCIsImRvdWJsZVRhcCIsInR3b0ZpbmdlclRhcCIsInRhcFdpdGhOdW1iZXJPZlRhcHMiLCJ0b3VjaEFuZEhvbGQiLCJkcmFnRnJvbVRvRm9yRHVyYXRpb24iLCJyb3RhdGVFbGVtZW50IiwiYWxlcnQiLCJzZXRQYXN0ZWJvYXJkIiwiZ2V0UGFzdGVib2FyZCIsInNvdXJjZSIsImdldENvbnRleHRzIiwiaW5zdGFsbEFwcCIsImlzQXBwSW5zdGFsbGVkIiwicmVtb3ZlQXBwIiwibGF1bmNoQXBwIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwibGlzdEFwcHMiLCJ2aWV3cG9ydFNjcmVlbnNob3QiLCJ2aWV3cG9ydFJlY3QiLCJzdGFydFBlcmZSZWNvcmQiLCJzdG9wUGVyZlJlY29yZCIsImluc3RhbGxDZXJ0aWZpY2F0ZSIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiYmF0dGVyeUluZm8iLCJkZXZpY2VJbmZvIiwiZ2V0RGV2aWNlVGltZSIsImFjdGl2ZUFwcEluZm8iLCJkZXZpY2VTY3JlZW5JbmZvIiwicHJlc3NCdXR0b24iLCJlbnJvbGxCaW9tZXRyaWMiLCJzZW5kQmlvbWV0cmljTWF0Y2giLCJpc0Jpb21ldHJpY0Vucm9sbGVkIiwiY2xlYXJLZXljaGFpbnMiLCJnZXRQZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsInJlc2V0UGVybWlzc2lvbiIsImdldEFwcGVhcmFuY2UiLCJzZXRBcHBlYXJhbmNlIiwic2lyaUNvbW1hbmQiLCJkZWxldGVGaWxlIiwiZGVsZXRlRm9sZGVyIiwic3RhcnRBdWRpb1JlY29yZGluZyIsInN0b3BBdWRpb1JlY29yZGluZyIsInJ1blhDVGVzdCIsImluc3RhbGxYQ1Rlc3RCdW5kbGUiLCJsaXN0WENUZXN0QnVuZGxlcyIsImxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlIiwicHVzaE5vdGlmaWNhdGlvbiIsImV4cGVjdE5vdGlmaWNhdGlvbiIsInBlcmZvcm1Jb0hpZEV2ZW50IiwiY29uZmlndXJlTG9jYWxpemF0aW9uIiwicmVzZXRMb2NhdGlvblNlcnZpY2UiLCJzdGFydFBjYXAiLCJzdG9wUGNhcCIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUFBLFVBQVUsQ0FBQ0Msb0JBQVgsR0FBa0MsZUFBZUEsb0JBQWYsQ0FBcUNDLE1BQXJDLEVBQTZDQyxLQUE3QyxFQUFvRDtBQUNwRkMsa0JBQUlDLEtBQUosQ0FB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SUFBQUEsaUJBQWlCLEVBQUUseUJBOUZGO0FBZ0dqQkMsSUFBQUEscUJBQXFCLEVBQUUsNkJBaEdOO0FBa0dqQkMsSUFBQUEsb0JBQW9CLEVBQUUsNEJBbEdMO0FBb0dqQkMsSUFBQUEsU0FBUyxFQUFFLGlCQXBHTTtBQXFHakJDLElBQUFBLFFBQVEsRUFBRTtBQXJHTyxHQUFuQjs7QUF3R0EsTUFBSSxDQUFDM0YsZ0JBQUU0RixHQUFGLENBQU0vRCxVQUFOLEVBQWtCRixhQUFsQixDQUFMLEVBQXVDO0FBQ3JDLFVBQU0sSUFBSVQsbUJBQU8yRSxtQkFBWCxDQUFnQywyQkFBMEJsRSxhQUFjLFdBQVUzQixnQkFBRThGLElBQUYsQ0FBT2pFLFVBQVAsRUFBbUJrRSxJQUFuQixDQUF3QixJQUF4QixDQUE4QiwwQkFBaEgsQ0FBTjtBQUNEOztBQUNELFNBQU8sTUFBTSxLQUFLbEUsVUFBVSxDQUFDRixhQUFELENBQWYsRUFBZ0NDLElBQWhDLENBQWI7QUFDRCxDQTdHRDs7ZUErR2UxQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIGVycm9ycywgZXJyb3JGcm9tQ29kZSwgZXJyb3JGcm9tVzNDSnNvbkNvZGVcbn0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLnJlY2VpdmVBc3luY1Jlc3BvbnNlID0gYXN5bmMgZnVuY3Rpb24gcmVjZWl2ZUFzeW5jUmVzcG9uc2UgKHN0YXR1cywgdmFsdWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgYXN5bmMgcmVzcG9uc2U6ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICBpZiAoIXV0aWwuaGFzVmFsdWUodGhpcy5hc3luY1Byb21pc2UpKSB7XG4gICAgbG9nLndhcm4oYFJlY2VpdmVkIGFzeW5jIHJlc3BvbnNlIHdoZW4gd2Ugd2VyZSBub3QgZXhwZWN0aW5nIG9uZSEgYCArXG4gICAgICBgUmVzcG9uc2Ugd2FzOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHN0YXR1cyAhPT0gMCkge1xuICAgIC8vIE1KU09OV1BcbiAgICByZXR1cm4gdGhpcy5hc3luY1Byb21pc2UucmVqZWN0KGVycm9yRnJvbUNvZGUoc3RhdHVzLCB2YWx1ZS5tZXNzYWdlKSk7XG4gIH1cbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKHN0YXR1cykgJiYgdmFsdWUgJiYgXy5pc1N0cmluZyh2YWx1ZS5lcnJvcikpIHtcbiAgICAvLyBXM0NcbiAgICByZXR1cm4gdGhpcy5hc3luY1Byb21pc2UucmVqZWN0KGVycm9yRnJvbVczQ0pzb25Db2RlKHZhbHVlLmVycm9yLCB2YWx1ZS5tZXNzYWdlLCB2YWx1ZS5zdGFja3RyYWNlKSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlc29sdmUodmFsdWUpO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZSAoc2NyaXB0LCBhcmdzKSB7XG4gIGlmIChzY3JpcHQubWF0Y2goL15tb2JpbGU6LykpIHtcbiAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZSgvXm1vYmlsZTovLCAnJykudHJpbSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVNb2JpbGUoc2NyaXB0LCBfLmlzQXJyYXkoYXJncykgPyBhcmdzWzBdIDogYXJncyk7XG4gIH0gZWxzZSBpZiAodGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIGFyZ3MgPSB0aGlzLmNvbnZlcnRFbGVtZW50c0ZvckF0b21zKGFyZ3MpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgYXJnc10pO1xuICAgIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMocmVzdWx0KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlQXN5bmMgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlQXN5bmMgKHNjcmlwdCwgYXJncykge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGFyZ3MgPSB0aGlzLmNvbnZlcnRFbGVtZW50c0ZvckF0b21zKGFyZ3MpO1xuICB0aGlzLmFzeW5jV2FpdE1zID0gdGhpcy5hc3luY1dhaXRNcyB8fCAwO1xuICBjb25zdCBwcm9taXNlID0gdGhpcy5yZW1vdGUuZXhlY3V0ZUF0b21Bc3luYygnZXhlY3V0ZV9hc3luY19zY3JpcHQnLCBbc2NyaXB0LCBhcmdzLCB0aGlzLmFzeW5jV2FpdE1zXSwgdGhpcy5jdXJXZWJGcmFtZXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBjb21tYW5kTWFwID0ge1xuICAgIC8vcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICB0YXA6ICdtb2JpbGVUYXAnLFxuICAgIHNjcm9sbDogJ21vYmlsZVNjcm9sbCcsXG4gICAgc2VsZWN0UGlja2VyV2hlZWxWYWx1ZTogJ21vYmlsZVNlbGVjdFBpY2tlcldoZWVsVmFsdWUnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY4LXN3aXBlbGVmdD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzQtc3dpcGVyaWdodD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2Njctc3dpcGV1cD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjQtc3dpcGVkb3duP2xhbmd1YWdlPW9iamNcbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OS1waW5jaHdpdGhzY2FsZT9sYW5ndWFnZT1vYmpjXG4gICAgcGluY2g6ICdtb2JpbGVQaW5jaCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzMtZG91YmxldGFwP2xhbmd1YWdlPW9iamNcbiAgICBkb3VibGVUYXA6ICdtb2JpbGVEb3VibGVUYXAnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc1LXR3b2ZpbmdlcnRhcD9sYW5ndWFnZT1vYmpjXG4gICAgdHdvRmluZ2VyVGFwOiAnbW9iaWxlVHdvRmluZ2VyVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3MS10YXB3aXRobnVtYmVyb2Z0YXBzP2xhbmd1YWdlPW9iamNcbiAgICB0YXBXaXRoTnVtYmVyT2ZUYXBzOiAnbW9iaWxlVGFwV2l0aE51bWJlck9mVGFwcycsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjMtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgdG91Y2hBbmRIb2xkOiAnbW9iaWxlVG91Y2hBbmRIb2xkJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3MC1wcmVzc2ZvcmR1cmF0aW9uP2xhbmd1YWdlPW9iamNcbiAgICBkcmFnRnJvbVRvRm9yRHVyYXRpb246ICdtb2JpbGVEcmFnRnJvbVRvRm9yRHVyYXRpb24nLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY1LXJvdGF0ZT9sYW5ndWFnZT1vYmpjXG4gICAgcm90YXRlRWxlbWVudDogJ21vYmlsZVJvdGF0ZUVsZW1lbnQnLFxuXG4gICAgLy9lbmRyZWdpb24gZ2VzdHVyZXMgc3VwcG9ydFxuICAgIGFsZXJ0OiAnbW9iaWxlSGFuZGxlQWxlcnQnLFxuXG4gICAgc2V0UGFzdGVib2FyZDogJ21vYmlsZVNldFBhc3RlYm9hcmQnLFxuICAgIGdldFBhc3RlYm9hcmQ6ICdtb2JpbGVHZXRQYXN0ZWJvYXJkJyxcblxuICAgIHNvdXJjZTogJ21vYmlsZUdldFNvdXJjZScsXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICAvL3JlZ2lvbiBtdWx0aXBsZSBhcHBzIG1hbmFnZW1lbnRcbiAgICBpbnN0YWxsQXBwOiAnbW9iaWxlSW5zdGFsbEFwcCcsXG4gICAgaXNBcHBJbnN0YWxsZWQ6ICdtb2JpbGVJc0FwcEluc3RhbGxlZCcsXG4gICAgcmVtb3ZlQXBwOiAnbW9iaWxlUmVtb3ZlQXBwJyxcbiAgICBsYXVuY2hBcHA6ICdtb2JpbGVMYXVuY2hBcHAnLFxuICAgIHRlcm1pbmF0ZUFwcDogJ21vYmlsZVRlcm1pbmF0ZUFwcCcsXG4gICAgcXVlcnlBcHBTdGF0ZTogJ21vYmlsZVF1ZXJ5QXBwU3RhdGUnLFxuICAgIGFjdGl2YXRlQXBwOiAnbW9iaWxlQWN0aXZhdGVBcHAnLFxuICAgIGxpc3RBcHBzOiAnbW9iaWxlTGlzdEFwcHMnLFxuICAgIC8vZW5kcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuXG4gICAgdmlld3BvcnRTY3JlZW5zaG90OiAnZ2V0Vmlld3BvcnRTY3JlZW5zaG90JyxcbiAgICB2aWV3cG9ydFJlY3Q6ICdnZXRWaWV3cG9ydFJlY3QnLFxuXG4gICAgc3RhcnRQZXJmUmVjb3JkOiAnbW9iaWxlU3RhcnRQZXJmUmVjb3JkJyxcbiAgICBzdG9wUGVyZlJlY29yZDogJ21vYmlsZVN0b3BQZXJmUmVjb3JkJyxcblxuICAgIGluc3RhbGxDZXJ0aWZpY2F0ZTogJ21vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZScsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgYmF0dGVyeUluZm86ICdtb2JpbGVHZXRCYXR0ZXJ5SW5mbycsXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcbiAgICBhY3RpdmVBcHBJbmZvOiAnbW9iaWxlR2V0QWN0aXZlQXBwSW5mbycsXG4gICAgZGV2aWNlU2NyZWVuSW5mbzogJ2dldFNjcmVlbkluZm8nLFxuXG4gICAgcHJlc3NCdXR0b246ICdtb2JpbGVQcmVzc0J1dHRvbicsXG5cbiAgICBlbnJvbGxCaW9tZXRyaWM6ICdtb2JpbGVFbnJvbGxCaW9tZXRyaWMnLFxuICAgIHNlbmRCaW9tZXRyaWNNYXRjaDogJ21vYmlsZVNlbmRCaW9tZXRyaWNNYXRjaCcsXG4gICAgaXNCaW9tZXRyaWNFbnJvbGxlZDogJ21vYmlsZUlzQmlvbWV0cmljRW5yb2xsZWQnLFxuXG4gICAgY2xlYXJLZXljaGFpbnM6ICdtb2JpbGVDbGVhcktleWNoYWlucycsXG5cbiAgICBnZXRQZXJtaXNzaW9uOiAnbW9iaWxlR2V0UGVybWlzc2lvbicsXG4gICAgc2V0UGVybWlzc2lvbjogJ21vYmlsZVNldFBlcm1pc3Npb25zJyxcbiAgICByZXNldFBlcm1pc3Npb246ICdtb2JpbGVSZXNldFBlcm1pc3Npb24nLFxuXG4gICAgZ2V0QXBwZWFyYW5jZTogJ21vYmlsZUdldEFwcGVhcmFuY2UnLFxuICAgIHNldEFwcGVhcmFuY2U6ICdtb2JpbGVTZXRBcHBlYXJhbmNlJyxcblxuICAgIHNpcmlDb21tYW5kOiAnbW9iaWxlU2lyaUNvbW1hbmQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuICAgIGRlbGV0ZUZvbGRlcjogJ21vYmlsZURlbGV0ZUZvbGRlcicsXG5cbiAgICBzdGFydEF1ZGlvUmVjb3JkaW5nOiAnc3RhcnRBdWRpb1JlY29yZGluZycsXG4gICAgc3RvcEF1ZGlvUmVjb3JkaW5nOiAnc3RvcEF1ZGlvUmVjb3JkaW5nJyxcblxuICAgIC8vIFhDVGVzdFxuICAgIHJ1blhDVGVzdDogJ21vYmlsZVJ1blhDVGVzdCcsXG4gICAgaW5zdGFsbFhDVGVzdEJ1bmRsZTogJ21vYmlsZUluc3RhbGxYQ1Rlc3RCdW5kbGUnLFxuICAgIGxpc3RYQ1Rlc3RCdW5kbGVzOiAnbW9iaWxlTGlzdFhDVGVzdEJ1bmRsZXMnLFxuICAgIGxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlOiAnbW9iaWxlTGlzdFhDVGVzdHNJblRlc3RCdW5kbGUnLFxuXG4gICAgcHVzaE5vdGlmaWNhdGlvbjogJ21vYmlsZVB1c2hOb3RpZmljYXRpb24nLFxuICAgIGV4cGVjdE5vdGlmaWNhdGlvbjogJ21vYmlsZUV4cGVjdE5vdGlmaWNhdGlvbicsXG5cbiAgICBwZXJmb3JtSW9IaWRFdmVudDogJ21vYmlsZVBlcmZvcm1Jb0hpZEV2ZW50JyxcblxuICAgIGNvbmZpZ3VyZUxvY2FsaXphdGlvbjogJ21vYmlsZUNvbmZpZ3VyZUxvY2FsaXphdGlvbicsXG5cbiAgICByZXNldExvY2F0aW9uU2VydmljZTogJ21vYmlsZVJlc2V0TG9jYXRpb25TZXJ2aWNlJyxcblxuICAgIHN0YXJ0UGNhcDogJ21vYmlsZVN0YXJ0UGNhcCcsXG4gICAgc3RvcFBjYXA6ICdtb2JpbGVTdG9wUGNhcCcsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhjb21tYW5kTWFwLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCAnJHttb2JpbGVDb21tYW5kfScuIE9ubHkgJHtfLmtleXMoY29tbWFuZE1hcCkuam9pbignLCAnKX0gY29tbWFuZHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpc1tjb21tYW5kTWFwW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJyZWNlaXZlQXN5bmNSZXNwb25zZSIsInN0YXR1cyIsInZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwidXRpbCIsImhhc1ZhbHVlIiwiYXN5bmNQcm9taXNlIiwid2FybiIsInJlamVjdCIsIm1lc3NhZ2UiLCJfIiwiaXNTdHJpbmciLCJlcnJvciIsInN0YWNrdHJhY2UiLCJyZXNvbHZlIiwiZXhlY3V0ZSIsInNjcmlwdCIsImFyZ3MiLCJtYXRjaCIsInJlcGxhY2UiLCJ0cmltIiwiZXhlY3V0ZU1vYmlsZSIsImlzQXJyYXkiLCJpc1dlYkNvbnRleHQiLCJjb252ZXJ0RWxlbWVudHNGb3JBdG9tcyIsInJlc3VsdCIsImV4ZWN1dGVBdG9tIiwiY2FjaGVXZWJFbGVtZW50cyIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJleGVjdXRlQXN5bmMiLCJhc3luY1dhaXRNcyIsInByb21pc2UiLCJyZW1vdGUiLCJleGVjdXRlQXRvbUFzeW5jIiwiY3VyV2ViRnJhbWVzIiwid2FpdEZvckF0b20iLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsImNvbW1hbmRNYXAiLCJ0YXAiLCJzY3JvbGwiLCJzZWxlY3RQaWNrZXJXaGVlbFZhbHVlIiwic3dpcGUiLCJwaW5jaCIsImRvdWJsZVRhcCIsInR3b0ZpbmdlclRhcCIsInRhcFdpdGhOdW1iZXJPZlRhcHMiLCJ0b3VjaEFuZEhvbGQiLCJkcmFnRnJvbVRvRm9yRHVyYXRpb24iLCJyb3RhdGVFbGVtZW50IiwiYWxlcnQiLCJzZXRQYXN0ZWJvYXJkIiwiZ2V0UGFzdGVib2FyZCIsInNvdXJjZSIsImdldENvbnRleHRzIiwiaW5zdGFsbEFwcCIsImlzQXBwSW5zdGFsbGVkIiwicmVtb3ZlQXBwIiwibGF1bmNoQXBwIiwidGVybWluYXRlQXBwIiwia2lsbEFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsImxpc3RBcHBzIiwidmlld3BvcnRTY3JlZW5zaG90Iiwidmlld3BvcnRSZWN0Iiwic3RhcnRQZXJmUmVjb3JkIiwic3RvcFBlcmZSZWNvcmQiLCJpbnN0YWxsQ2VydGlmaWNhdGUiLCJzdGFydExvZ3NCcm9hZGNhc3QiLCJzdG9wTG9nc0Jyb2FkY2FzdCIsImJhdHRlcnlJbmZvIiwiZGV2aWNlSW5mbyIsImdldERldmljZVRpbWUiLCJhY3RpdmVBcHBJbmZvIiwiZGV2aWNlU2NyZWVuSW5mbyIsInByZXNzQnV0dG9uIiwiZW5yb2xsQmlvbWV0cmljIiwic2VuZEJpb21ldHJpY01hdGNoIiwiaXNCaW9tZXRyaWNFbnJvbGxlZCIsImNsZWFyS2V5Y2hhaW5zIiwiZ2V0UGVybWlzc2lvbiIsInNldFBlcm1pc3Npb24iLCJyZXNldFBlcm1pc3Npb24iLCJnZXRBcHBlYXJhbmNlIiwic2V0QXBwZWFyYW5jZSIsInNpcmlDb21tYW5kIiwiZGVsZXRlRmlsZSIsImRlbGV0ZUZvbGRlciIsInN0YXJ0QXVkaW9SZWNvcmRpbmciLCJzdG9wQXVkaW9SZWNvcmRpbmciLCJydW5YQ1Rlc3QiLCJpbnN0YWxsWENUZXN0QnVuZGxlIiwibGlzdFhDVGVzdEJ1bmRsZXMiLCJsaXN0WENUZXN0c0luVGVzdEJ1bmRsZSIsInB1c2hOb3RpZmljYXRpb24iLCJleHBlY3ROb3RpZmljYXRpb24iLCJwZXJmb3JtSW9IaWRFdmVudCIsImNvbmZpZ3VyZUxvY2FsaXphdGlvbiIsInJlc2V0TG9jYXRpb25TZXJ2aWNlIiwic3RhcnRQY2FwIiwic3RvcFBjYXAiLCJoYXMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHLEVBQW5COztBQUVBQSxVQUFVLENBQUNDLG9CQUFYLEdBQWtDLGVBQWVBLG9CQUFmLENBQXFDQyxNQUFyQyxFQUE2Q0MsS0FBN0MsRUFBb0Q7QUFDcEZDLGtCQUFJ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QTZGakJDLElBQUFBLGtCQUFrQixFQUFFLDBCQTdGSDtBQStGakJDLElBQUFBLGlCQUFpQixFQUFFLHlCQS9GRjtBQWlHakJDLElBQUFBLHFCQUFxQixFQUFFLDZCQWpHTjtBQW1HakJDLElBQUFBLG9CQUFvQixFQUFFLDRCQW5HTDtBQXFHakJDLElBQUFBLFNBQVMsRUFBRSxpQkFyR007QUFzR2pCQyxJQUFBQSxRQUFRLEVBQUU7QUF0R08sR0FBbkI7O0FBeUdBLE1BQUksQ0FBQzVGLGdCQUFFNkYsR0FBRixDQUFNaEUsVUFBTixFQUFrQkYsYUFBbEIsQ0FBTCxFQUF1QztBQUNyQyxVQUFNLElBQUlULG1CQUFPNEUsbUJBQVgsQ0FBZ0MsMkJBQTBCbkUsYUFBYyxXQUFVM0IsZ0JBQUUrRixJQUFGLENBQU9sRSxVQUFQLEVBQW1CbUUsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBOEIsMEJBQWhILENBQU47QUFDRDs7QUFDRCxTQUFPLE1BQU0sS0FBS25FLFVBQVUsQ0FBQ0YsYUFBRCxDQUFmLEVBQWdDQyxJQUFoQyxDQUFiO0FBQ0QsQ0E5R0Q7O2VBZ0hlMUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBlcnJvcnMsIGVycm9yRnJvbUNvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlXG59IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5yZWNlaXZlQXN5bmNSZXNwb25zZSA9IGFzeW5jIGZ1bmN0aW9uIHJlY2VpdmVBc3luY1Jlc3BvbnNlIChzdGF0dXMsIHZhbHVlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBsb2cuZGVidWcoYFJlY2VpdmVkIGFzeW5jIHJlc3BvbnNlOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKHRoaXMuYXN5bmNQcm9taXNlKSkge1xuICAgIGxvZy53YXJuKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZSB3aGVuIHdlIHdlcmUgbm90IGV4cGVjdGluZyBvbmUhIGAgK1xuICAgICAgYFJlc3BvbnNlIHdhczogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiBzdGF0dXMgIT09IDApIHtcbiAgICAvLyBNSlNPTldQXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21Db2RlKHN0YXR1cywgdmFsdWUubWVzc2FnZSkpO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHZhbHVlICYmIF8uaXNTdHJpbmcodmFsdWUuZXJyb3IpKSB7XG4gICAgLy8gVzNDXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21XM0NKc29uQ29kZSh2YWx1ZS5lcnJvciwgdmFsdWUubWVzc2FnZSwgdmFsdWUuc3RhY2t0cmFjZSkpO1xuICB9XG4gIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtzY3JpcHQsIGFyZ3NdKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZUFzeW5jID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUFzeW5jIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgdGhpcy5hc3luY1dhaXRNcyA9IHRoaXMuYXN5bmNXYWl0TXMgfHwgMDtcbiAgY29uc3QgcHJvbWlzZSA9IHRoaXMucmVtb3RlLmV4ZWN1dGVBdG9tQXN5bmMoJ2V4ZWN1dGVfYXN5bmNfc2NyaXB0JywgW3NjcmlwdCwgYXJncywgdGhpcy5hc3luY1dhaXRNc10sIHRoaXMuY3VyV2ViRnJhbWVzKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMud2FpdEZvckF0b20ocHJvbWlzZSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgY29tbWFuZE1hcCA9IHtcbiAgICAvL3JlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgdGFwOiAnbW9iaWxlVGFwJyxcbiAgICBzY3JvbGw6ICdtb2JpbGVTY3JvbGwnLFxuICAgIHNlbGVjdFBpY2tlcldoZWVsVmFsdWU6ICdtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OC1zd2lwZWxlZnQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc0LXN3aXBlcmlnaHQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY3LXN3aXBldXA/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY0LXN3aXBlZG93bj9sYW5ndWFnZT1vYmpjXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjktcGluY2h3aXRoc2NhbGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHBpbmNoOiAnbW9iaWxlUGluY2gnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjczLWRvdWJsZXRhcD9sYW5ndWFnZT1vYmpjXG4gICAgZG91YmxlVGFwOiAnbW9iaWxlRG91YmxlVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NS10d29maW5nZXJ0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIHR3b0ZpbmdlclRhcDogJ21vYmlsZVR3b0ZpbmdlclRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzEtdGFwd2l0aG51bWJlcm9mdGFwcz9sYW5ndWFnZT1vYmpjXG4gICAgdGFwV2l0aE51bWJlck9mVGFwczogJ21vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjYzLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIHRvdWNoQW5kSG9sZDogJ21vYmlsZVRvdWNoQW5kSG9sZCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzAtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uOiAnbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NS1yb3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHJvdGF0ZUVsZW1lbnQ6ICdtb2JpbGVSb3RhdGVFbGVtZW50JyxcblxuICAgIC8vZW5kcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICBhbGVydDogJ21vYmlsZUhhbmRsZUFsZXJ0JyxcblxuICAgIHNldFBhc3RlYm9hcmQ6ICdtb2JpbGVTZXRQYXN0ZWJvYXJkJyxcbiAgICBnZXRQYXN0ZWJvYXJkOiAnbW9iaWxlR2V0UGFzdGVib2FyZCcsXG5cbiAgICBzb3VyY2U6ICdtb2JpbGVHZXRTb3VyY2UnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgLy9yZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgbGF1bmNoQXBwOiAnbW9iaWxlTGF1bmNoQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGtpbGxBcHA6ICdtb2JpbGVLaWxsQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgbGlzdEFwcHM6ICdtb2JpbGVMaXN0QXBwcycsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ2dldFZpZXdwb3J0UmVjdCcsXG5cbiAgICBzdGFydFBlcmZSZWNvcmQ6ICdtb2JpbGVTdGFydFBlcmZSZWNvcmQnLFxuICAgIHN0b3BQZXJmUmVjb3JkOiAnbW9iaWxlU3RvcFBlcmZSZWNvcmQnLFxuXG4gICAgaW5zdGFsbENlcnRpZmljYXRlOiAnbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBiYXR0ZXJ5SW5mbzogJ21vYmlsZUdldEJhdHRlcnlJbmZvJyxcbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuICAgIGFjdGl2ZUFwcEluZm86ICdtb2JpbGVHZXRBY3RpdmVBcHBJbmZvJyxcbiAgICBkZXZpY2VTY3JlZW5JbmZvOiAnZ2V0U2NyZWVuSW5mbycsXG5cbiAgICBwcmVzc0J1dHRvbjogJ21vYmlsZVByZXNzQnV0dG9uJyxcblxuICAgIGVucm9sbEJpb21ldHJpYzogJ21vYmlsZUVucm9sbEJpb21ldHJpYycsXG4gICAgc2VuZEJpb21ldHJpY01hdGNoOiAnbW9iaWxlU2VuZEJpb21ldHJpY01hdGNoJyxcbiAgICBpc0Jpb21ldHJpY0Vucm9sbGVkOiAnbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCcsXG5cbiAgICBjbGVhcktleWNoYWluczogJ21vYmlsZUNsZWFyS2V5Y2hhaW5zJyxcblxuICAgIGdldFBlcm1pc3Npb246ICdtb2JpbGVHZXRQZXJtaXNzaW9uJyxcbiAgICBzZXRQZXJtaXNzaW9uOiAnbW9iaWxlU2V0UGVybWlzc2lvbnMnLFxuICAgIHJlc2V0UGVybWlzc2lvbjogJ21vYmlsZVJlc2V0UGVybWlzc2lvbicsXG5cbiAgICBnZXRBcHBlYXJhbmNlOiAnbW9iaWxlR2V0QXBwZWFyYW5jZScsXG4gICAgc2V0QXBwZWFyYW5jZTogJ21vYmlsZVNldEFwcGVhcmFuY2UnLFxuXG4gICAgc2lyaUNvbW1hbmQ6ICdtb2JpbGVTaXJpQ29tbWFuZCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG4gICAgZGVsZXRlRm9sZGVyOiAnbW9iaWxlRGVsZXRlRm9sZGVyJyxcblxuICAgIHN0YXJ0QXVkaW9SZWNvcmRpbmc6ICdzdGFydEF1ZGlvUmVjb3JkaW5nJyxcbiAgICBzdG9wQXVkaW9SZWNvcmRpbmc6ICdzdG9wQXVkaW9SZWNvcmRpbmcnLFxuXG4gICAgLy8gWENUZXN0XG4gICAgcnVuWENUZXN0OiAnbW9iaWxlUnVuWENUZXN0JyxcbiAgICBpbnN0YWxsWENUZXN0QnVuZGxlOiAnbW9iaWxlSW5zdGFsbFhDVGVzdEJ1bmRsZScsXG4gICAgbGlzdFhDVGVzdEJ1bmRsZXM6ICdtb2JpbGVMaXN0WENUZXN0QnVuZGxlcycsXG4gICAgbGlzdFhDVGVzdHNJblRlc3RCdW5kbGU6ICdtb2JpbGVMaXN0WENUZXN0c0luVGVzdEJ1bmRsZScsXG5cbiAgICBwdXNoTm90aWZpY2F0aW9uOiAnbW9iaWxlUHVzaE5vdGlmaWNhdGlvbicsXG4gICAgZXhwZWN0Tm90aWZpY2F0aW9uOiAnbW9iaWxlRXhwZWN0Tm90aWZpY2F0aW9uJyxcblxuICAgIHBlcmZvcm1Jb0hpZEV2ZW50OiAnbW9iaWxlUGVyZm9ybUlvSGlkRXZlbnQnLFxuXG4gICAgY29uZmlndXJlTG9jYWxpemF0aW9uOiAnbW9iaWxlQ29uZmlndXJlTG9jYWxpemF0aW9uJyxcblxuICAgIHJlc2V0TG9jYXRpb25TZXJ2aWNlOiAnbW9iaWxlUmVzZXRMb2NhdGlvblNlcnZpY2UnLFxuXG4gICAgc3RhcnRQY2FwOiAnbW9iaWxlU3RhcnRQY2FwJyxcbiAgICBzdG9wUGNhcDogJ21vYmlsZVN0b3BQY2FwJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKGNvbW1hbmRNYXAsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kICcke21vYmlsZUNvbW1hbmR9Jy4gT25seSAke18ua2V5cyhjb21tYW5kTWFwKS5qb2luKCcsICcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW2NvbW1hbmRNYXBbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
@@ -145,6 +145,14 @@ class Pyidevice {
|
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
async killApp(bundleId) {
|
|
149
|
+
if (!bundleId) {
|
|
150
|
+
throw new Error('bundleId is required');
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return await this.execute(['apps', 'kill', '--bundle_id', bundleId]);
|
|
154
|
+
}
|
|
155
|
+
|
|
148
156
|
}
|
|
149
157
|
|
|
150
158
|
exports.Pyidevice = Pyidevice;
|
|
@@ -152,4 +160,4 @@ var _default = Pyidevice;
|
|
|
152
160
|
exports.default = _default;require('source-map-support').install();
|
|
153
161
|
|
|
154
162
|
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyJdLCJuYW1lcyI6WyJCSU5BUllfTkFNRSIsIlB5aWRldmljZSIsImNvbnN0cnVjdG9yIiwidWRpZCIsImJpbmFyeVBhdGgiLCJhc3NlcnRFeGlzdHMiLCJpc1N0cmljdCIsImZzIiwid2hpY2giLCJlIiwiRXJyb3IiLCJleGVjdXRlIiwiYXJncyIsIm9wdHMiLCJjd2QiLCJmb3JtYXQiLCJsb2dTdGRvdXQiLCJhc3luY2hyb25vdXMiLCJmaW5hbEFyZ3MiLCJwdXNoIiwiY21kU3RyIiwidXRpbCIsInF1b3RlIiwibG9nIiwiZGVidWciLCJyZXN1bHQiLCJTdWJQcm9jZXNzIiwic3RhcnQiLCJzdGRvdXQiLCJzdGRlcnIiLCJtZXNzYWdlIiwibGlzdFByb2ZpbGVzIiwiSlNPTiIsInBhcnNlIiwiaW5zdGFsbFByb2ZpbGUiLCJwcm9maWxlUGF0aCIsInBheWxvYWQiLCJ0bXBSb290Iiwic3JjUGF0aCIsInRlbXBEaXIiLCJvcGVuRGlyIiwicGF0aCIsImpvaW4iLCJ3cml0ZUZpbGUiLCJyaW1yYWYiLCJyZW1vdmVQcm9maWxlIiwibmFtZSIsImxpc3RDcmFzaGVzIiwicmVwbGFjZSIsImZpbHRlciIsIngiLCJpbmNsdWRlcyIsImV4cG9ydENyYXNoIiwiZHN0Rm9sZGVyIiwiY29sbGVjdFBjYXAiLCJkc3RGaWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLE1BQU1BLFdBQVcsR0FBRyxXQUFwQjs7QUFFQSxNQUFNQyxTQUFOLENBQWdCO0FBQ2RDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBQ2pCLFNBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDRDs7QUFFaUIsUUFBWkMsWUFBWSxDQUFFQyxRQUFRLEdBQUcsSUFBYixFQUFtQjtBQUNuQyxRQUFJLEtBQUtGLFVBQVQsRUFBcUI7QUFDbkIsYUFBTyxJ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LENBQU47QUFLRDs7QUFFZ0IsUUFBWEMsV0FBVyxDQUFFQyxPQUFGLEVBQVc7QUFDMUIsV0FBTyxNQUFNLEtBQUs1QyxPQUFMLENBQWEsQ0FBQyxPQUFELEVBQVU0QyxPQUFWLENBQWIsRUFBaUM7QUFDNUN4QyxNQUFBQSxNQUFNLEVBQUUsSUFEb0M7QUFFNUNFLE1BQUFBLFlBQVksRUFBRTtBQUY4QixLQUFqQyxDQUFiO0FBSUQ7O0FBekdhOzs7ZUE2R0RoQixTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyBmcywgdXRpbCwgdGVtcERpciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2VcblxuY29uc3QgQklOQVJZX05BTUUgPSAncHlpZGV2aWNlJztcblxuY2xhc3MgUHlpZGV2aWNlIHtcbiAgY29uc3RydWN0b3IgKHVkaWQpIHtcbiAgICB0aGlzLnVkaWQgPSB1ZGlkO1xuICAgIHRoaXMuYmluYXJ5UGF0aCA9IG51bGw7XG4gIH1cblxuICBhc3luYyBhc3NlcnRFeGlzdHMgKGlzU3RyaWN0ID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLmJpbmFyeVBhdGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmJpbmFyeVBhdGggPSBhd2FpdCBmcy53aGljaChCSU5BUllfTkFNRSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0JJTkFSWV9OQU1FfSBiaW5hcnkgY2Fubm90IGJlIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluc3RhbGxlZC4gVmlzaXQgaHR0cHM6Ly9naXRodWIuY29tL1l1ZUNoZW4tQy9weS1pb3MtZGV2aWNlIGZvciBgICtcbiAgICAgICAgICBgbW9yZSBkZXRhaWxzLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUgKGFyZ3MsIG9wdHMgPSB7fSkge1xuICAgIGF3YWl0IHRoaXMuYXNzZXJ0RXhpc3RzKCk7XG4gICAgY29uc3Qge1xuICAgICAgY3dkLFxuICAgICAgZm9ybWF0ID0gJ2pzb24nLFxuICAgICAgbG9nU3Rkb3V0ID0gZmFsc2UsXG4gICAgICBhc3luY2hyb25vdXMgPSBmYWxzZSxcbiAgICB9ID0gb3B0cztcblxuICAgIGNvbnN0IGZpbmFsQXJncyA9IFsuLi5hcmdzLCAnLS11ZGlkJywgdGhpcy51ZGlkXTtcbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBmaW5hbEFyZ3MucHVzaCgnLS1mb3JtYXQnLCBmb3JtYXQpO1xuICAgIH1cbiAgICBjb25zdCBjbWRTdHIgPSB1dGlsLnF1b3RlKFt0aGlzLmJpbmFyeVBhdGgsIC4uLmZpbmFsQXJnc10pO1xuICAgIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nICR7Y21kU3RyfWApO1xuICAgIHRyeSB7XG4gICAgICBpZiAoYXN5bmNocm9ub3VzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTdWJQcm9jZXNzKHRoaXMuYmluYXJ5UGF0aCwgZmluYWxBcmdzLCB7Y3dkfSk7XG4gICAgICAgIGF3YWl0IHJlc3VsdC5zdGFydCgwKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWModGhpcy5iaW5hcnlQYXRoLCBmaW5hbEFyZ3MsIHtjd2R9KTtcbiAgICAgIGlmIChsb2dTdGRvdXQpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBDb21tYW5kIG91dHB1dDogJHtyZXN1bHQuc3Rkb3V0fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke2NtZFN0cn0nIGZhaWxlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5zdGRvdXQgfHwgZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxpc3RQcm9maWxlcyAoKSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdsaXN0J10pO1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN0ZG91dCk7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsUHJvZmlsZSAoe3Byb2ZpbGVQYXRoLCBwYXlsb2FkfSA9IHt9KSB7XG4gICAgaWYgKCFwcm9maWxlUGF0aCAmJiAhcGF5bG9hZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgdGhlIGZ1bGwgcGF0aCB0byB0aGUgcHJvZmlsZSBvciBpdHMgcGF5bG9hZCBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgbGV0IHRtcFJvb3Q7XG4gICAgbGV0IHNyY1BhdGggPSBwcm9maWxlUGF0aDtcbiAgICB0cnkge1xuICAgICAgaWYgKCFzcmNQYXRoKSB7XG4gICAgICAgIHRtcFJvb3QgPSBhd2FpdCB0ZW1wRGlyLm9wZW5EaXIoKTtcbiAgICAgICAgc3JjUGF0aCA9IHBhdGguam9pbih0bXBSb290LCAnY2VydC5wZW0nKTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHNyY1BhdGgsIHBheWxvYWQsICd1dGY4Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdpbnN0YWxsJywgJy0tcGF0aCcsIHNyY1BhdGhdLCB7XG4gICAgICAgIGxvZ1N0ZG91dDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0bXBSb290KSB7XG4gICAgICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVQcm9maWxlIChuYW1lKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsncHJvZmlsZXMnLCAncmVtb3ZlJywgbmFtZV0sIHtsb2dTdGRvdXQ6IHRydWV9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RDcmFzaGVzICgpIHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2NyYXNoJywgJ2xpc3QnXSk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnJlcGxhY2UoLycvZywgJ1wiJykpLmZpbHRlcigoeCkgPT4gIVsnLicsICcuLiddLmluY2x1ZGVzKHgpKTtcbiAgfVxuXG4gIGFzeW5jIGV4cG9ydENyYXNoIChuYW1lLCBkc3RGb2xkZXIpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydjcmFzaCcsICdleHBvcnQnLCAnLS1uYW1lJywgbmFtZV0sIHtcbiAgICAgIGxvZ1N0ZG91dDogdHJ1ZSxcbiAgICAgIC8vIFRoZSB0b29sIGV4cG9ydHMgY3Jhc2ggcmVwb3J0cyB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpclxuICAgICAgY3dkOiBkc3RGb2xkZXJcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbGxlY3RQY2FwIChkc3RGaWxlKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3BjYXBkJywgZHN0RmlsZV0sIHtcbiAgICAgIGZvcm1hdDogbnVsbCxcbiAgICAgIGFzeW5jaHJvbm91czogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IFB5aWRldmljZSB9O1xuZXhwb3J0IGRlZmF1bHQgUHlpZGV2aWNlO1xuIl0sImZpbGUiOiJsaWIvcHktaW9zLWRldmljZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyJdLCJuYW1lcyI6WyJCSU5BUllfTkFNRSIsIlB5aWRldmljZSIsImNvbnN0cnVjdG9yIiwidWRpZCIsImJpbmFyeVBhdGgiLCJhc3NlcnRFeGlzdHMiLCJpc1N0cmljdCIsImZzIiwid2hpY2giLCJlIiwiRXJyb3IiLCJleGVjdXRlIiwiYXJncyIsIm9wdHMiLCJjd2QiLCJmb3JtYXQiLCJsb2dTdGRvdXQiLCJhc3luY2hyb25vdXMiLCJmaW5hbEFyZ3MiLCJwdXNoIiwiY21kU3RyIiwidXRpbCIsInF1b3RlIiwibG9nIiwiZGVidWciLCJyZXN1bHQiLCJTdWJQcm9jZXNzIiwic3RhcnQiLCJzdGRvdXQiLCJzdGRlcnIiLCJtZXNzYWdlIiwibGlzdFByb2ZpbGVzIiwiSlNPTiIsInBhcnNlIiwiaW5zdGFsbFByb2ZpbGUiLCJwcm9maWxlUGF0aCIsInBheWxvYWQiLCJ0bXBSb290Iiwic3JjUGF0aCIsInRlbXBEaXIiLCJvcGVuRGlyIiwicGF0aCIsImpvaW4iLCJ3cml0ZUZpbGUiLCJyaW1yYWYiLCJyZW1vdmVQcm9maWxlIiwibmFtZSIsImxpc3RDcmFzaGVzIiwicmVwbGFjZSIsImZpbHRlciIsIngiLCJpbmNsdWRlcyIsImV4cG9ydENyYXNoIiwiZHN0Rm9sZGVyIiwiY29sbGVjdFBjYXAiLCJkc3RGaWxlIiwia2lsbEFwcCIsImJ1bmRsZUlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLE1BQU1BLFdBQVcsR0FBRyxXQUFwQjs7QUFFQSxNQUFNQyxTQUFOLENBQWdCO0FBQ2RDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBQ2pCLFNBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDRDs7QUFFaUIsUUFBWkMsWUFBWSxDQUFFQyxRQUFRLEdBQUcsSUFBYixFQUFtQjtBQUNuQyxRQUFJLEtBQUtGLFVB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QUcsRUFBRXVDO0FBSGlELEtBQWxELENBQU47QUFLRDs7QUFFZ0IsUUFBWEMsV0FBVyxDQUFFQyxPQUFGLEVBQVc7QUFDMUIsV0FBTyxNQUFNLEtBQUs1QyxPQUFMLENBQWEsQ0FBQyxPQUFELEVBQVU0QyxPQUFWLENBQWIsRUFBaUM7QUFDNUN4QyxNQUFBQSxNQUFNLEVBQUUsSUFEb0M7QUFFNUNFLE1BQUFBLFlBQVksRUFBRTtBQUY4QixLQUFqQyxDQUFiO0FBSUQ7O0FBRVksUUFBUHVDLE9BQU8sQ0FBRUMsUUFBRixFQUFZO0FBQ3ZCLFFBQUksQ0FBQ0EsUUFBTCxFQUFlO0FBQ2IsWUFBTSxJQUFJL0MsS0FBSixDQUFVLHNCQUFWLENBQU47QUFDRDs7QUFDRCxXQUFPLE1BQU0sS0FBS0MsT0FBTCxDQUFhLENBQUMsTUFBRCxFQUFTLE1BQVQsRUFBaUIsYUFBakIsRUFBZ0M4QyxRQUFoQyxDQUFiLENBQWI7QUFDRDs7QUFoSGE7OztlQW9IRHhELFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZzLCB1dGlsLCB0ZW1wRGlyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZVxuXG5jb25zdCBCSU5BUllfTkFNRSA9ICdweWlkZXZpY2UnO1xuXG5jbGFzcyBQeWlkZXZpY2Uge1xuICBjb25zdHJ1Y3RvciAodWRpZCkge1xuICAgIHRoaXMudWRpZCA9IHVkaWQ7XG4gICAgdGhpcy5iaW5hcnlQYXRoID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGFzc2VydEV4aXN0cyAoaXNTdHJpY3QgPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuYmluYXJ5UGF0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuYmluYXJ5UGF0aCA9IGF3YWl0IGZzLndoaWNoKEJJTkFSWV9OQU1FKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7QklOQVJZX05BTUV9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW5zdGFsbGVkLiBWaXNpdCBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2UgZm9yIGAgK1xuICAgICAgICAgIGBtb3JlIGRldGFpbHMuYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZSAoYXJncywgb3B0cyA9IHt9KSB7XG4gICAgYXdhaXQgdGhpcy5hc3NlcnRFeGlzdHMoKTtcbiAgICBjb25zdCB7XG4gICAgICBjd2QsXG4gICAgICBmb3JtYXQgPSAnanNvbicsXG4gICAgICBsb2dTdGRvdXQgPSBmYWxzZSxcbiAgICAgIGFzeW5jaHJvbm91cyA9IGZhbHNlLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgY29uc3QgZmluYWxBcmdzID0gWy4uLmFyZ3MsICctLXVkaWQnLCB0aGlzLnVkaWRdO1xuICAgIGlmIChmb3JtYXQpIHtcbiAgICAgIGZpbmFsQXJncy5wdXNoKCctLWZvcm1hdCcsIGZvcm1hdCk7XG4gICAgfVxuICAgIGNvbnN0IGNtZFN0ciA9IHV0aWwucXVvdGUoW3RoaXMuYmluYXJ5UGF0aCwgLi4uZmluYWxBcmdzXSk7XG4gICAgbG9nLmRlYnVnKGBFeGVjdXRpbmcgJHtjbWRTdHJ9YCk7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhc3luY2hyb25vdXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFN1YlByb2Nlc3ModGhpcy5iaW5hcnlQYXRoLCBmaW5hbEFyZ3MsIHtjd2R9KTtcbiAgICAgICAgYXdhaXQgcmVzdWx0LnN0YXJ0KDApO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmJpbmFyeVBhdGgsIGZpbmFsQXJncywge2N3ZH0pO1xuICAgICAgaWYgKGxvZ1N0ZG91dCkge1xuICAgICAgICBsb2cuZGVidWcoYENvbW1hbmQgb3V0cHV0OiAke3Jlc3VsdC5zdGRvdXR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7Y21kU3RyfScgZmFpbGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLnN0ZGVyciB8fCBlLnN0ZG91dCB8fCBlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbGlzdFByb2ZpbGVzICgpIHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3Byb2ZpbGVzJywgJ2xpc3QnXSk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGxQcm9maWxlICh7cHJvZmlsZVBhdGgsIHBheWxvYWR9ID0ge30pIHtcbiAgICBpZiAoIXByb2ZpbGVQYXRoICYmICFwYXlsb2FkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciB0aGUgZnVsbCBwYXRoIHRvIHRoZSBwcm9maWxlIG9yIGl0cyBwYXlsb2FkIG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgdG1wUm9vdDtcbiAgICBsZXQgc3JjUGF0aCA9IHByb2ZpbGVQYXRoO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXNyY1BhdGgpIHtcbiAgICAgICAgdG1wUm9vdCA9IGF3YWl0IHRlbXBEaXIub3BlbkRpcigpO1xuICAgICAgICBzcmNQYXRoID0gcGF0aC5qb2luKHRtcFJvb3QsICdjZXJ0LnBlbScpO1xuICAgICAgICBhd2FpdCBmcy53cml0ZUZpbGUoc3JjUGF0aCwgcGF5bG9hZCwgJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3Byb2ZpbGVzJywgJ2luc3RhbGwnLCAnLS1wYXRoJywgc3JjUGF0aF0sIHtcbiAgICAgICAgbG9nU3Rkb3V0OiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRtcFJvb3QpIHtcbiAgICAgICAgYXdhaXQgZnMucmltcmFmKHRtcFJvb3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVByb2ZpbGUgKG5hbWUpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdyZW1vdmUnLCBuYW1lXSwge2xvZ1N0ZG91dDogdHJ1ZX0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdENyYXNoZXMgKCkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjdXRlKFsnY3Jhc2gnLCAnbGlzdCddKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdGRvdXQucmVwbGFjZSgvJy9nLCAnXCInKSkuZmlsdGVyKCh4KSA9PiAhWycuJywgJy4uJ10uaW5jbHVkZXMoeCkpO1xuICB9XG5cbiAgYXN5bmMgZXhwb3J0Q3Jhc2ggKG5hbWUsIGRzdEZvbGRlcikge1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2NyYXNoJywgJ2V4cG9ydCcsICctLW5hbWUnLCBuYW1lXSwge1xuICAgICAgbG9nU3Rkb3V0OiB0cnVlLFxuICAgICAgLy8gVGhlIHRvb2wgZXhwb3J0cyBjcmFzaCByZXBvcnRzIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyXG4gICAgICBjd2Q6IGRzdEZvbGRlclxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29sbGVjdFBjYXAgKGRzdEZpbGUpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlKFsncGNhcGQnLCBkc3RGaWxlXSwge1xuICAgICAgZm9ybWF0OiBudWxsLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsQXBwIChidW5kbGVJZCkge1xuICAgIGlmICghYnVuZGxlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVuZGxlSWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2FwcHMnLCAna2lsbCcsICctLWJ1bmRsZV9pZCcsIGJ1bmRsZUlkXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUHlpZGV2aWNlIH07XG5leHBvcnQgZGVmYXVsdCBQeWlkZXZpY2U7XG4iXSwiZmlsZSI6ImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
|
@@ -3,6 +3,7 @@ import { fs } from '@appium/support';
|
|
|
3
3
|
import log from '../logger';
|
|
4
4
|
import { errors } from '@appium/base-driver';
|
|
5
5
|
import { services } from 'appium-ios-device';
|
|
6
|
+
import Pyidevice from '../py-ios-device-client';
|
|
6
7
|
|
|
7
8
|
const commands = {};
|
|
8
9
|
|
|
@@ -71,6 +72,33 @@ commands.mobileActivateApp = async function mobileActivateApp (opts = {}) {
|
|
|
71
72
|
return await this.proxyCommand('/wda/apps/activate', 'POST', requireOptions(opts, ['bundleId']));
|
|
72
73
|
};
|
|
73
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Kill the given bundle id process via instruments service.
|
|
77
|
+
* https://github.com/YueChen-C/py-ios-device/blob/51f4683c5c3c385a015858ada07a5f1c62d3cf57/ios_device/cli/base.py#L220
|
|
78
|
+
*
|
|
79
|
+
* @param {Object} opts - Options set, which must contain `bundleId` property
|
|
80
|
+
* @returns {boolean} Returns true if the bundle id process was killed. Otherwise false.
|
|
81
|
+
*/
|
|
82
|
+
commands.mobileKillApp = async function mobileKillApp (opts = {}) {
|
|
83
|
+
if (!this.isRealDevice()) {
|
|
84
|
+
throw new errors.UnsupportedOperationError('A real device is required');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const {bundleId} = requireOptions(opts, ['bundleId']);
|
|
88
|
+
try {
|
|
89
|
+
// TODO: eventually we'd like to call the instruments kill method via appium-ios-device.
|
|
90
|
+
const {stdout, stderr} = await new Pyidevice(this.opts.device.udid).killApp(bundleId);
|
|
91
|
+
if ((stdout + stderr).includes('did not start')) {
|
|
92
|
+
log.info(`The bundle id '${bundleId}' did not start or it was already killed`);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
} catch (err) {
|
|
97
|
+
log.warn(`Failed to kill '${bundleId}'. Original error: ${err.stderr || err.message}`);
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
74
102
|
/**
|
|
75
103
|
* Returns the current application state
|
|
76
104
|
*
|
package/lib/commands/execute.js
CHANGED
|
@@ -91,6 +91,7 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
|
|
|
91
91
|
removeApp: 'mobileRemoveApp',
|
|
92
92
|
launchApp: 'mobileLaunchApp',
|
|
93
93
|
terminateApp: 'mobileTerminateApp',
|
|
94
|
+
killApp: 'mobileKillApp',
|
|
94
95
|
queryAppState: 'mobileQueryAppState',
|
|
95
96
|
activateApp: 'mobileActivateApp',
|
|
96
97
|
listApps: 'mobileListApps',
|
|
@@ -113,6 +113,13 @@ class Pyidevice {
|
|
|
113
113
|
asynchronous: true
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
+
|
|
117
|
+
async killApp (bundleId) {
|
|
118
|
+
if (!bundleId) {
|
|
119
|
+
throw new Error('bundleId is required');
|
|
120
|
+
}
|
|
121
|
+
return await this.execute(['apps', 'kill', '--bundle_id', bundleId]);
|
|
122
|
+
}
|
|
116
123
|
}
|
|
117
124
|
|
|
118
125
|
export { Pyidevice };
|