appium-xcuitest-driver 4.3.5 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -507,9 +507,11 @@ Either `true` if the app was successfully terminated, otherwise `false`
507
507
 
508
508
  ### mobile: killApp
509
509
 
510
- 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.
510
+ Kill the given app on the real device under test by instruments service.
511
511
  If the app is not running or failed to kill, then nothing is done.
512
- 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`.
512
+
513
+ XCUITest driver 4.4 and higher does not require [py-ios-device](https://github.com/YueChen-C/py-ios-device).
514
+ XCUITest driver 4.3 requires [py-ios-device](https://github.com/YueChen-C/py-ios-device).
513
515
 
514
516
  #### Arguments
515
517
 
@@ -1355,5 +1357,5 @@ the tests locally. These include:
1355
1357
  the root directory of the repo with the extension "xcconfig")
1356
1358
  * `UICATALOG_REAL_DEVICE` - path to the real device build of UICatalog, in case
1357
1359
  the npm installed one is not built for real device
1358
-
1359
-
1360
+
1361
+
@@ -17,8 +17,6 @@ var _baseDriver = require("@appium/base-driver");
17
17
 
18
18
  var _appiumIosDevice = require("appium-ios-device");
19
19
 
20
- var _pyIosDeviceClient = _interopRequireDefault(require("../py-ios-device-client"));
21
-
22
20
  const commands = {};
23
21
 
24
22
  function requireOptions(opts = {}, reqKeys = []) {
@@ -103,22 +101,42 @@ commands.mobileKillApp = async function mobileKillApp(opts = {}) {
103
101
  const {
104
102
  bundleId
105
103
  } = requireOptions(opts, ['bundleId']);
104
+ let instrumentService;
105
+ let installProxyService;
106
106
 
107
107
  try {
108
- const {
109
- stdout,
110
- stderr
111
- } = await new _pyIosDeviceClient.default(this.opts.device.udid).killApp(bundleId);
108
+ installProxyService = await _appiumIosDevice.services.startInstallationProxyService(this.opts.device.udid);
109
+ const apps = await installProxyService.listApplications();
110
+
111
+ if (!apps[bundleId]) {
112
+ this.log.info(`The bundle id '${bundleId}' did not exist`);
113
+ return false;
114
+ }
115
+
116
+ const executableName = apps[bundleId].CFBundleExecutable;
117
+ this.log.debug(`The executable name for the bundle id '${bundleId}' was '${executableName}'`);
118
+ instrumentService = await _appiumIosDevice.services.startInstrumentService(this.opts.device.udid);
119
+ const processes = await instrumentService.callChannel(_appiumIosDevice.INSTRUMENT_CHANNEL.DEVICE_INFO, 'runningProcesses');
120
+ const process = processes.selector.find(process => process.name === executableName);
112
121
 
113
- if ((stdout + stderr).includes('did not start')) {
114
- this.log.info(`The bundle id '${bundleId}' did not start or it was already killed`);
122
+ if (!process) {
123
+ this.log.info(`The process of the bundle id '${bundleId}' was not running`);
115
124
  return false;
116
125
  }
117
126
 
127
+ await instrumentService.callChannel(_appiumIosDevice.INSTRUMENT_CHANNEL.PROCESS_CONTROL, 'killPid:', `${process.pid}`);
118
128
  return true;
119
129
  } catch (err) {
120
130
  this.log.warn(`Failed to kill '${bundleId}'. Original error: ${err.stderr || err.message}`);
121
131
  return false;
132
+ } finally {
133
+ if (installProxyService) {
134
+ installProxyService.close();
135
+ }
136
+
137
+ if (instrumentService) {
138
+ instrumentService.close();
139
+ }
122
140
  }
123
141
  };
124
142
 
@@ -179,4 +197,4 @@ var _default = commands;
179
197
  exports.default = _default;require('source-map-support').install();
180
198
 
181
199
 
182
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVLaWxsQXBwIiwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvciIsInN0ZG91dCIsInN0ZGVyciIsIlB5aWRldmljZSIsImtpbGxBcHAiLCJpbmNsdWRlcyIsIm1vYmlsZVF1ZXJ5QXBwU3RhdGUiLCJhcHBQYXRoIiwiaXNQbGFpbk9iamVjdCIsImFjdGl2YXRlQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsIm1vYmlsZUxpc3RBcHBzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImFwcGxpY2F0aW9uVHlwZSIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwibGlzdEFwcGxpY2F0aW9ucyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFFQSxTQUFTQyxjQUFULENBQXlCQyxJQUFJLEdBQUcsRUFBaEMsRUFBb0NDLE9BQU8sR0FBRyxFQUE5QyxFQUFrRDtBQUNoRCxPQUFLLE1BQU1DLEdBQVgsSUFBa0JELE9BQWxCLEVBQTJCO0FBQ3pCLFFBQUksQ0FBQ0UsZ0JBQUVDLFFBQUYsQ0FBV0osSUFBSSxDQUFDRSxHQUFELENBQWYsQ0FBRCxJQUEwQkMsZ0JBQUVFLE9BQUYsQ0FBVUwsSUFBSSxDQUFDRSxHQUFELENBQWQsQ0FBOUIsRUFBb0Q7QUFDbEQsWUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FDSCxJQUFHTCxHQUFJLHdDQUF1Q0YsSUFBSSxDQUFDRSxHQUFELENBQU0sb0JBRHJELENBQU47QUFHRDtBQUNGOztBQUNELFNBQU9GLElBQVA7QUFDRDs7QUFFREYsUUFBUSxDQUFDVSxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ1IsSUFBSSxHQUFHLEVBQXhDLEVBQTRDO0FBQ3RFLFFBQU07QUFBRVMsSUFBQUEsR0FBRjtBQUFPQyxJQUFBQSxTQUFQO0FBQWtCQyxJQUFBQTtBQUFsQixNQUErQlosY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxLQUFELENBQVAsQ0FBbkQ7QUFDQSxRQUFNWSxVQUFVLEdBQUcsTUFBTSxLQUFLQyxPQUFMLENBQWFDLFlBQWIsQ0FBMEJMLEdBQTFCLEVBQStCLE1BQS9CLENBQXpCO0FBQ0EsT0FBS00sR0FBTCxDQUFTQyxJQUFULENBQWUsZUFBY0osVUFBVyxZQUFXLEtBQUtLLFlBQUwsS0FBc0IsYUFBdEIsR0FBc0MsV0FBWSxHQUF2RixHQUNYLGNBQWEsS0FBS2pCLElBQUwsQ0FBVWtCLE1BQVYsQ0FBaUJDLElBQUssR0FE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S0FBS0Qsb0JBQUwsQ0FBMEI7QUFBQ0MsSUFBQUE7QUFBRCxHQUExQixDQUFiO0FBQ0QsQ0FGRDs7QUFJQTdCLFFBQVEsQ0FBQzBELFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QjdCLFFBQTdCLEVBQXVDO0FBQzdELFNBQU8sTUFBTSxLQUFLYyxrQkFBTCxDQUF3QjtBQUFDZCxJQUFBQTtBQUFELEdBQXhCLENBQWI7QUFDRCxDQUZEOztBQUlBN0IsUUFBUSxDQUFDMkQsYUFBVCxHQUF5QixlQUFlQSxhQUFmLENBQThCOUIsUUFBOUIsRUFBd0M7QUFDL0QsU0FBTyxNQUFNLEtBQUt1QixtQkFBTCxDQUF5QjtBQUFDdkIsSUFBQUE7QUFBRCxHQUF6QixDQUFiO0FBQ0QsQ0FGRDs7QUFnQkE3QixRQUFRLENBQUM0RCxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0IxRCxJQUFJLEdBQUcsRUFBdEMsRUFBMEM7QUFDbEUsTUFBSSxDQUFDLEtBQUtpQixZQUFMLEVBQUwsRUFBMEI7QUFDeEIsVUFBTSxJQUFJWCxtQkFBT3FELG1CQUFYLENBQWdDLGtEQUFoQyxDQUFOO0FBQ0Q7O0FBRUQsUUFBTTtBQUNKQyxJQUFBQSxlQUFlLEdBQUc7QUFEZCxNQUVGNUQsSUFGSjtBQUdBLFFBQU02RCxPQUFPLEdBQUcsTUFBTUMsMEJBQVNDLDZCQUFULENBQXVDLEtBQUsvRCxJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUF4RCxDQUF0Qjs7QUFDQSxNQUFJO0FBQ0YsV0FBTyxNQUFNMEMsT0FBTyxDQUFDRyxnQkFBUixDQUF5QjtBQUFDSixNQUFBQTtBQUFELEtBQXpCLENBQWI7QUFDRCxHQUZELFNBRVU7QUFDUkMsSUFBQUEsT0FBTyxDQUFDSSxLQUFSO0FBQ0Q7QUFDRixDQWREOztlQWdCZW5FLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyBzZXJ2aWNlcyB9IGZyb20gJ2FwcGl1bS1pb3MtZGV2aWNlJztcbmltcG9ydCBQeWlkZXZpY2UgZnJvbSAnLi4vcHktaW9zLWRldmljZS1jbGllbnQnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cyA9IHt9LCByZXFLZXlzID0gW10pIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgcmVxS2V5cykge1xuICAgIGlmICghXy5pc1N0cmluZyhvcHRzW2tleV0pIHx8IF8uaXNFbXB0eShvcHRzW2tleV0pKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgJyR7a2V5fScgaXMgZXhwZWN0ZWQgdG8gYmUgYSB2YWxpZCBzdHJpbmcuICcke29wdHNba2V5XX0nIGlzIGdpdmVuIGluc3RlYWRgXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3B0cztcbn1cblxuY29tbWFuZHMubW9iaWxlSW5zdGFsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGFwcCwgdGltZW91dE1zLCBzdHJhdGVneSB9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydhcHAnXSk7XG4gIGNvbnN0IHNyY0FwcFBhdGggPSBhd2FpdCB0aGlzLmhlbHBlcnMuY29uZmlndXJlQXBwKGFwcCwgJy5hcHAnKTtcbiAgdGhpcy5sb2cuaW5mbyhgSW5zdGFsbGluZyAnJHtzcmNBcHBQYXRofScgdG8gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gYCArXG4gICAgYHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzcmNBcHBQYXRoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBhcHBsaWNhdGlvbiBhdCAnJHtzcmNBcHBQYXRofScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgfVxuICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmluc3RhbGxBcHAoXG4gICAgc3JjQXBwUGF0aCwgdGltZW91dE1zID8/IHRoaXMub3B0cy5hcHBQdXNoVGltZW91dCwgc3RyYXRlZ3kgPz8gdGhpcy5vcHRzLmFwcEluc3RhbGxTdHJhdGVneVxuICApO1xuICB0aGlzLmxvZy5pbmZvKGBJbnN0YWxsYXRpb24gb2YgJyR7c3JjQXBwUGF0aH0nIHN1Y2NlZWRlZGApO1xufTtcblxuY29tbWFuZHMubW9iaWxlSXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVJc0FwcEluc3RhbGxlZCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBjb25zdCBpbnN0YWxsZWQgPSBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmlzQXBwSW5zdGFsbGVkKGJ1bmRsZUlkKTtcbiAgdGhpcy5sb2cuaW5mbyhgQXBwICcke2J1bmRsZUlkfScgaXMke2luc3RhbGxlZCA/ICcnIDogJyBub3QnfSBpbnN0YWxsZWRgKTtcbiAgcmV0dXJuIGluc3RhbGxlZDtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVJlbW92ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlbW92ZUFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICB0aGlzLmxvZy5pbmZvKGBVbmluc3RhbGxpbmcgdGhlIGFwcGxpY2F0aW9uIHdpdGggYnVuZGxlIGlkZW50aWZpZXIgJyR7YnVuZGxlSWR9JyBgICtcbiAgICBgZnJvbSB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSB3aXRoIFVESUQgJyR7dGhpcy5vcHRzLmRldmljZS51ZGlkfSdgKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnJlbW92ZUFwcChidW5kbGVJZCk7XG4gICAgdGhpcy5sb2cuaW5mbyhgUmVtb3ZhbCBvZiAnJHtidW5kbGVJZH0nIHN1Y2NlZWRlZGApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBDYW5ub3QgcmVtb3ZlICcke2J1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY29tbWFuZHMubW9iaWxlTGF1bmNoQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGF1bmNoQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3QgbGF1bmNoT3B0aW9ucyA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGlmIChvcHRzLmFyZ3VtZW50cykge1xuICAgIGxhdW5jaE9wdGlvbnMuYXJndW1lbnRzID0gXy5pc0FycmF5KG9wdHMuYXJndW1lbnRzKSA/IG9wdHMuYXJndW1lbnRzIDogW29wdHMuYXJndW1lbnRzXTtcbiAgfVxuICBpZiAob3B0cy5lbnZpcm9ubWVudCkge1xuICAgIGxhdW5jaE9wdGlvbnMuZW52aXJvbm1lbnQgPSBvcHRzLmVudmlyb25tZW50O1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2xhdW5jaCcsICdQT1NUJywgbGF1bmNoT3B0aW9ucyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVUZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUZXJtaW5hdGVBcHAgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy90ZXJtaW5hdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlQWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVBY3RpdmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2FjdGl2YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbi8qKlxuICogS2lsbCB0aGUgZ2l2ZW4gYnVuZGxlIGlkIHByb2Nlc3MgdmlhIGluc3RydW1lbnRzIHNlcnZpY2UuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2UvYmxvYi81MWY0NjgzYzVjM2MzODVhMDE1ODU4YWRhMDdhNWYxYzYyZDNjZjU3L2lvc19kZXZpY2UvY2xpL2Jhc2UucHkjTDIyMFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyBzZXQsIHdoaWNoIG11c3QgY29udGFpbiBgYnVuZGxlSWRgIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBidW5kbGUgaWQgcHJvY2VzcyB3YXMga2lsbGVkLiBPdGhlcndpc2UgZmFsc2UuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUtpbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVLaWxsQXBwIChvcHRzID0ge30pIHtcbiAgaWYgKCF0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yKCdBIHJlYWwgZGV2aWNlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBjb25zdCB7YnVuZGxlSWR9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgdHJ5IHtcbiAgICAvLyBUT0RPOiBldmVudHVhbGx5IHdlJ2QgbGlrZSB0byBjYWxsIHRoZSBpbnN0cnVtZW50cyBraWxsIG1ldGhvZCB2aWEgYXBwaXVtLWlvcy1kZXZpY2UuXG4gICAgY29uc3Qge3N0ZG91dCwgc3RkZXJyfSA9IGF3YWl0IG5ldyBQeWlkZXZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKS5raWxsQXBwKGJ1bmRsZUlkKTtcbiAgICBpZiAoKHN0ZG91dCArIHN0ZGVycikuaW5jbHVkZXMoJ2RpZCBub3Qgc3RhcnQnKSkge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgVGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIGRpZCBub3Qgc3RhcnQgb3IgaXQgd2FzIGFscmVhZHkga2lsbGVkYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBGYWlsZWQgdG8ga2lsbCAnJHtidW5kbGVJZH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIuc3RkZXJyIHx8IGVyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBPcHRpb25zIHNldCwgd2hpY2ggbXVzdCBjb250YWluIGBidW5kbGVJZGAgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBhY3R1YWwgYXBwbGljYXRpb24gc3RhdGUgY29kZS4gU2VlXG4gKiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWFwcGxpY2F0aW9uc3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICogdG8gZ2V0IHRoZSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy5cbiAqL1xuY29tbWFuZHMubW9iaWxlUXVlcnlBcHBTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVF1ZXJ5QXBwU3RhdGUgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy9zdGF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG5jb21tYW5kcy5pbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFwcCAoYXBwUGF0aCwgb3B0cyA9IHt9KSB7XG4gIGF3YWl0IHRoaXMubW9iaWxlSW5zdGFsbEFwcCh7XG4gICAgLi4uKF8uaXNQbGFpbk9iamVjdChvcHRzKSA/IG9wdHMgOiB7fSksXG4gICAgYXBwOiBhcHBQYXRoLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmFjdGl2YXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gYWN0aXZhdGVBcHAgKGJ1bmRsZUlkLCBvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlTGF1bmNoQXBwKE9iamVjdC5hc3NpZ24oe30sIG9wdHMsIHtidW5kbGVJZH0pKTtcbn07XG5cbmNvbW1hbmRzLmlzQXBwSW5zdGFsbGVkID0gYXN5bmMgZnVuY3Rpb24gaXNBcHBJbnN0YWxsZWQgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZUlzQXBwSW5zdGFsbGVkKHtidW5kbGVJZH0pO1xufTtcblxuY29tbWFuZHMudGVybWluYXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gdGVybWluYXRlQXBwIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVUZXJtaW5hdGVBcHAoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy5xdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gcXVlcnlBcHBTdGF0ZSAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlUXVlcnlBcHBTdGF0ZSh7YnVuZGxlSWR9KTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTGlzdEFwcHNPcHRpb25zXG4gKiBAcHJvcGVydHkgeydTeXN0ZW0nfCdVc2VyJ30gYXBwbGljYXRpb25UeXBlIFtVc2VyXSBUaGUgdHlwZSBvZiBhcHBsaWNhdGlvbnMgdG8gbGlzdFxuICovXG5cbi8qKlxuICogTGlzdCBhcHBsaWNhdGlvbnMgaW5zdGFsbGVkIG9uIHRoZSByZWFsIGRldmljZSB1bmRlciB0ZXN0XG4gKlxuICogQHBhcmFtIHtMaXN0QXBwc09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtBcnJheTxPYmplY3Q+fSBBIGxpc3Qgb2YgYXBwcywgd2hlcmUgZWFjaCBpdGVtIGlzIGEgbWFwIHdoZXJlIGtleXMgYXJlXG4gKiBidW5kbGUgaWRlbnRpZmllcnMgYW5kIHZhbHVlcyBhcmUgbWFwcyBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBhcHAgcHJvcGVydGllcy5cbiAqL1xuY29tbWFuZHMubW9iaWxlTGlzdEFwcHMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMaXN0QXBwcyAob3B0cyA9IHt9KSB7XG4gIGlmICghdGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcihgVGhpcyBleHRlbnNpb24gaXMgb25seSBzdXBwb3J0ZWQgb24gcmVhbCBkZXZpY2VzYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgYXBwbGljYXRpb25UeXBlID0gJ1VzZXInLFxuICB9ID0gb3B0cztcbiAgY29uc3Qgc2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHNlcnZpY2UubGlzdEFwcGxpY2F0aW9ucyh7YXBwbGljYXRpb25UeXBlfSk7XG4gIH0gZmluYWxseSB7XG4gICAgc2VydmljZS5jbG9zZSgpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
200
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVLaWxsQXBwIiwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvciIsImluc3RydW1lbnRTZXJ2aWNlIiwiaW5zdGFsbFByb3h5U2VydmljZSIsInNlcnZpY2VzIiwic3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UiLCJhcHBzIiwibGlzdEFwcGxpY2F0aW9ucyIsImV4ZWN1dGFibGVOYW1lIiwiQ0ZCdW5kbGVFeGVjdXRhYmxlIiwiZGVidWciLCJzdGFydEluc3RydW1lbnRTZXJ2aWNlIiwicHJvY2Vzc2VzIiwiY2FsbENoYW5uZWwiLCJJTlNUUlVNRU5UX0NIQU5ORUwiLCJERVZJQ0VfSU5GTyIsInByb2Nlc3MiLCJzZWxlY3RvciIsImZpbmQiLCJuYW1lIiwiUFJPQ0VTU19DT05UUk9MIiwicGlkIiwic3RkZXJyIiwiY2xvc2UiLCJtb2JpbGVRdWVyeUFwcFN0YXRlIiwiYXBwUGF0aCIsImlzUGxhaW5PYmplY3QiLCJhY3RpdmF0ZUFwcCIsIk9iamVjdCIsImFzc2lnbiIsInRlcm1pbmF0ZUFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJtb2JpbGVMaXN0QXBwcyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJhcHBsaWNhdGlvblR5cGUiLCJzZXJ2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFFQSxTQUFTQyxjQUFULENBQXlCQyxJQUFJLEdBQUcsRUFBaEMsRUFBb0NDLE9BQU8sR0FBRyxFQUE5QyxFQUFrRDtBQUNoRCxPQUFLLE1BQU1DLEdBQVgsSUFBa0JELE9BQWxCLEVBQTJCO0FBQ3pCLFFBQUksQ0FBQ0UsZ0JBQUVDLFFBQUYsQ0FBV0osSUFBSSxDQUFDRSxHQUFELENBQWYsQ0FBRCxJQUEwQkMsZ0JBQUVFLE9BQUYsQ0FBVUwsSUFBSSxDQUFDRSxHQUFELENBQWQsQ0FBOUIsRUFBb0Q7QUFDbEQsWUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FDSCxJQUFHTCxHQUFJLHdDQUF1Q0YsSUFBSSxDQUFDRSxHQUFELENBQU0sb0JBRHJELENBQU47QUFHRDtBQUNGOztBQUNELFNBQU9GLElBQVA7QUFDRDs7QUFFREYsUUFBUSxDQUFDVSxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ1IsSUFBSSxHQUFHLEVBQXhDLEVBQTRDO0FBQ3RFLFFBQU07QUFBRVMsSUFBQUEsR0FBRjtBQUFPQyxJQUFBQSxTQUFQO0FBQWtCQyxJQUFBQTtBQUFsQixNQUErQlosY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxLQUFELENBQVAsQ0FBbkQ7QUFDQSxRQUFNWSxVQUFVLEdBQUcsTUFB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cyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHNlcnZpY2VzLCBJTlNUUlVNRU5UX0NIQU5ORUwgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHJlcXVpcmVPcHRpb25zIChvcHRzID0ge30sIHJlcUtleXMgPSBbXSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiByZXFLZXlzKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKG9wdHNba2V5XSkgfHwgXy5pc0VtcHR5KG9wdHNba2V5XSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGAnJHtrZXl9JyBpcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIHN0cmluZy4gJyR7b3B0c1trZXldfScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRzO1xufVxuXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSW5zdGFsbEFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgYXBwLCB0aW1lb3V0TXMsIHN0cmF0ZWd5IH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2FwcCddKTtcbiAgY29uc3Qgc3JjQXBwUGF0aCA9IGF3YWl0IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCAnLmFwcCcpO1xuICB0aGlzLmxvZy5pbmZvKGBJbnN0YWxsaW5nICcke3NyY0FwcFBhdGh9JyB0byB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSBgICtcbiAgICBgd2l0aCBVRElEICcke3RoaXMub3B0cy5kZXZpY2UudWRpZH0nYCk7XG4gIGlmICghYXdhaXQgZnMuZXhpc3RzKHNyY0FwcFBhdGgpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGFwcGxpY2F0aW9uIGF0ICcke3NyY0FwcFBhdGh9JyBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYWNjZXNzaWJsZWApO1xuICB9XG4gIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaW5zdGFsbEFwcChcbiAgICBzcmNBcHBQYXRoLCB0aW1lb3V0TXMgPz8gdGhpcy5vcHRzLmFwcFB1c2hUaW1lb3V0LCBzdHJhdGVneSA/PyB0aGlzLm9wdHMuYXBwSW5zdGFsbFN0cmF0ZWd5XG4gICk7XG4gIHRoaXMubG9nLmluZm8oYEluc3RhbGxhdGlvbiBvZiAnJHtzcmNBcHBQYXRofScgc3VjY2VlZGVkYCk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzQXBwSW5zdGFsbGVkIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGNvbnN0IGluc3RhbGxlZCA9IGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaXNBcHBJbnN0YWxsZWQoYnVuZGxlSWQpO1xuICB0aGlzLmxvZy5pbmZvKGBBcHAgJyR7YnVuZGxlSWR9JyBpcyR7aW5zdGFsbGVkID8gJycgOiAnIG5vdCd9IGluc3RhbGxlZGApO1xuICByZXR1cm4gaW5zdGFsbGVkO1xufTtcblxuY29tbWFuZHMubW9iaWxlUmVtb3ZlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUmVtb3ZlQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIHRoaXMubG9nLmluZm8oYFVuaW5zdGFsbGluZyB0aGUgYXBwbGljYXRpb24gd2l0aCBidW5kbGUgaWRlbnRpZmllciAnJHtidW5kbGVJZH0nIGAgK1xuICAgIGBmcm9tIHRoZSAke3RoaXMuaXNSZWFsRGV2aWNlKCkgPyAncmVhbCBkZXZpY2UnIDogJ1NpbXVsYXRvcid9IHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UucmVtb3ZlQXBwKGJ1bmRsZUlkKTtcbiAgICB0aGlzLmxvZy5pbmZvKGBSZW1vdmFsIG9mICcke2J1bmRsZUlkfScgc3VjY2VlZGVkYCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMubG9nLndhcm4oYENhbm5vdCByZW1vdmUgJyR7YnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5jb21tYW5kcy5tb2JpbGVMYXVuY2hBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMYXVuY2hBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBsYXVuY2hPcHRpb25zID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgaWYgKG9wdHMuYXJndW1lbnRzKSB7XG4gICAgbGF1bmNoT3B0aW9ucy5hcmd1bWVudHMgPSBfLmlzQXJyYXkob3B0cy5hcmd1bWVudHMpID8gb3B0cy5hcmd1bWVudHMgOiBbb3B0cy5hcmd1bWVudHNdO1xuICB9XG4gIGlmIChvcHRzLmVudmlyb25tZW50KSB7XG4gICAgbGF1bmNoT3B0aW9ucy5lbnZpcm9ubWVudCA9IG9wdHMuZW52aXJvbm1lbnQ7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvbGF1bmNoJywgJ1BPU1QnLCBsYXVuY2hPcHRpb25zKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRlcm1pbmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3Rlcm1pbmF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVBY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUFjdGl2YXRlQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvYWN0aXZhdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuLyoqXG4gKiBLaWxsIHRoZSBnaXZlbiBidW5kbGUgaWQgcHJvY2VzcyB2aWEgaW5zdHJ1bWVudHMgc2VydmljZS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZS9ibG9iLzUxZjQ2ODNjNWMzYzM4NWEwMTU4NThhZGEwN2E1ZjFjNjJkM2NmNTcvaW9zX2RldmljZS9jbGkvYmFzZS5weSNMMjIwXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBPcHRpb25zIHNldCwgd2hpY2ggbXVzdCBjb250YWluIGBidW5kbGVJZGAgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1bmRsZSBpZCBwcm9jZXNzIHdhcyBraWxsZWQuIE90aGVyd2lzZSBmYWxzZS5cbiAqL1xuY29tbWFuZHMubW9iaWxlS2lsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUtpbGxBcHAgKG9wdHMgPSB7fSkge1xuICBpZiAoIXRoaXMuaXNSZWFsRGV2aWNlKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ0EgcmVhbCBkZXZpY2UgaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBsZXQgaW5zdHJ1bWVudFNlcnZpY2U7XG4gIGxldCBpbnN0YWxsUHJveHlTZXJ2aWNlO1xuICB0cnkge1xuICAgIGluc3RhbGxQcm94eVNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpO1xuICAgIGNvbnN0IGFwcHMgPSBhd2FpdCBpbnN0YWxsUHJveHlTZXJ2aWNlLmxpc3RBcHBsaWNhdGlvbnMoKTtcbiAgICBpZiAoIWFwcHNbYnVuZGxlSWRdKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBUaGUgYnVuZGxlIGlkICcke2J1bmRsZUlkfScgZGlkIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBleGVjdXRhYmxlTmFtZSA9IGFwcHNbYnVuZGxlSWRdLkNGQnVuZGxlRXhlY3V0YWJsZTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgVGhlIGV4ZWN1dGFibGUgbmFtZSBmb3IgdGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIHdhcyAnJHtleGVjdXRhYmxlTmFtZX0nYCk7XG4gICAgaW5zdHJ1bWVudFNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RydW1lbnRTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gICAgY29uc3QgcHJvY2Vzc2VzID0gYXdhaXQgaW5zdHJ1bWVudFNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkRFVklDRV9JTkZPLCAncnVubmluZ1Byb2Nlc3NlcycpO1xuICAgIGNvbnN0IHByb2Nlc3MgPSBwcm9jZXNzZXMuc2VsZWN0b3IuZmluZCgocHJvY2VzcykgPT4gcHJvY2Vzcy5uYW1lID09PSBleGVjdXRhYmxlTmFtZSk7XG4gICAgaWYgKCFwcm9jZXNzKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBUaGUgcHJvY2VzcyBvZiB0aGUgYnVuZGxlIGlkICcke2J1bmRsZUlkfScgd2FzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGF3YWl0IGluc3RydW1lbnRTZXJ2aWNlLmNhbGxDaGFubmVsKElOU1RSVU1FTlRfQ0hBTk5FTC5QUk9DRVNTX0NPTlRST0wsICdraWxsUGlkOicsIGAke3Byb2Nlc3MucGlkfWApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBGYWlsZWQgdG8ga2lsbCAnJHtidW5kbGVJZH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIuc3RkZXJyIHx8IGVyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoaW5zdGFsbFByb3h5U2VydmljZSkge1xuICAgICAgaW5zdGFsbFByb3h5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cbiAgICBpZiAoaW5zdHJ1bWVudFNlcnZpY2UpIHtcbiAgICAgIGluc3RydW1lbnRTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgc2V0LCB3aGljaCBtdXN0IGNvbnRhaW4gYGJ1bmRsZUlkYCBwcm9wZXJ0eVxuICogQHJldHVybnMge251bWJlcn0gVGhlIGFjdHVhbCBhcHBsaWNhdGlvbiBzdGF0ZSBjb2RlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpYXBwbGljYXRpb25zdGF0ZT9sYW5ndWFnZT1vYmpjXG4gKiB0byBnZXQgdGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVRdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUXVlcnlBcHBTdGF0ZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3N0YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLmluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQXBwIChhcHBQYXRoLCBvcHRzID0ge30pIHtcbiAgYXdhaXQgdGhpcy5tb2JpbGVJbnN0YWxsQXBwKHtcbiAgICAuLi4oXy5pc1BsYWluT2JqZWN0KG9wdHMpID8gb3B0cyA6IHt9KSxcbiAgICBhcHA6IGFwcFBhdGgsXG4gIH0pO1xufTtcblxuY29tbWFuZHMuYWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmF0ZUFwcCAoYnVuZGxlSWQsIG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVMYXVuY2hBcHAoT2JqZWN0LmFzc2lnbih7fSwgb3B0cywge2J1bmRsZUlkfSkpO1xufTtcblxuY29tbWFuZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBpc0FwcEluc3RhbGxlZCAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlSXNBcHBJbnN0YWxsZWQoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy50ZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiB0ZXJtaW5hdGVBcHAgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZVRlcm1pbmF0ZUFwcCh7YnVuZGxlSWR9KTtcbn07XG5cbmNvbW1hbmRzLnF1ZXJ5QXBwU3RhdGUgPSBhc3luYyBmdW5jdGlvbiBxdWVyeUFwcFN0YXRlIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVRdWVyeUFwcFN0YXRlKHtidW5kbGVJZH0pO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMaXN0QXBwc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7J1N5c3RlbSd8J1VzZXInfSBhcHBsaWNhdGlvblR5cGUgW1VzZXJdIFRoZSB0eXBlIG9mIGFwcGxpY2F0aW9ucyB0byBsaXN0XG4gKi9cblxuLyoqXG4gKiBMaXN0IGFwcGxpY2F0aW9ucyBpbnN0YWxsZWQgb24gdGhlIHJlYWwgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge0xpc3RBcHBzT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge0FycmF5PE9iamVjdD59IEEgbGlzdCBvZiBhcHBzLCB3aGVyZSBlYWNoIGl0ZW0gaXMgYSBtYXAgd2hlcmUga2V5cyBhcmVcbiAqIGJ1bmRsZSBpZGVudGlmaWVycyBhbmQgdmFsdWVzIGFyZSBtYXBzIG9mIHBsYXRmb3JtLXNwZWNpZmljIGFwcCBwcm9wZXJ0aWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0QXBwcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUxpc3RBcHBzIChvcHRzID0ge30pIHtcbiAgaWYgKCF0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKGBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHN1cHBvcnRlZCBvbiByZWFsIGRldmljZXNgKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBhcHBsaWNhdGlvblR5cGUgPSAnVXNlcicsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgc2VydmljZS5saXN0QXBwbGljYXRpb25zKHthcHBsaWNhdGlvblR5cGV9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvYXBwLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -145,14 +145,6 @@ 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
-
156
148
  }
157
149
 
158
150
  exports.Pyidevice = Pyidevice;
@@ -160,4 +152,4 @@ var _default = Pyidevice;
160
152
  exports.default = _default;require('source-map-support').install();
161
153
 
162
154
 
163
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyJdLCJuYW1lcyI6WyJCSU5BUllfTkFNRSIsIlB5aWRldmljZSIsImNvbnN0cnVjdG9yIiwidWRpZCIsImJpbmFyeVBhdGgiLCJhc3NlcnRFeGlzdHMiLCJpc1N0cmljdCIsImZzIiwid2hpY2giLCJlIiwiRXJyb3IiLCJleGVjdXRlIiwiYXJncyIsIm9wdHMiLCJjd2QiLCJmb3JtYXQiLCJsb2dTdGRvdXQiLCJhc3luY2hyb25vdXMiLCJmaW5hbEFyZ3MiLCJwdXNoIiwiY21kU3RyIiwidXRpbCIsInF1b3RlIiwibG9nIiwiZGVidWciLCJyZXN1bHQiLCJTdWJQcm9jZXNzIiwic3RhcnQiLCJzdGRvdXQiLCJzdGRlcnIiLCJtZXNzYWdlIiwibGlzdFByb2ZpbGVzIiwiSlNPTiIsInBhcnNlIiwiaW5zdGFsbFByb2ZpbGUiLCJwcm9maWxlUGF0aCIsInBheWxvYWQiLCJ0bXBSb290Iiwic3JjUGF0aCIsInRlbXBEaXIiLCJvcGVuRGlyIiwicGF0aCIsImpvaW4iLCJ3cml0ZUZpbGUiLCJyaW1yYWYiLCJyZW1vdmVQcm9maWxlIiwibmFtZSIsImxpc3RDcmFzaGVzIiwicmVwbGFjZSIsImZpbHRlciIsIngiLCJpbmNsdWRlcyIsImV4cG9ydENyYXNoIiwiZHN0Rm9sZGVyIiwiY29sbGVjdFBjYXAiLCJkc3RGaWxlIiwia2lsbEFwcCIsImJ1bmRsZUlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLE1BQU1BLFdBQVcsR0FBRyxXQUFwQjs7QUFFQSxNQUFNQyxTQUFOLENBQWdCO0FBQ2RDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBQ2pCLFNBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDRDs7QUFFaUIsUUFBWkMsWUFBWSxDQUFFQyxRQUFRLEdBQUcsSUFBYixFQUFtQjtBQUNuQyxRQUFJLEtBQUtGLFVB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QUcsRUFBRXVDO0FBSGlELEtBQWxELENBQU47QUFLRDs7QUFFZ0IsUUFBWEMsV0FBVyxDQUFFQyxPQUFGLEVBQVc7QUFDMUIsV0FBTyxNQUFNLEtBQUs1QyxPQUFMLENBQWEsQ0FBQyxPQUFELEVBQVU0QyxPQUFWLENBQWIsRUFBaUM7QUFDNUN4QyxNQUFBQSxNQUFNLEVBQUUsSUFEb0M7QUFFNUNFLE1BQUFBLFlBQVksRUFBRTtBQUY4QixLQUFqQyxDQUFiO0FBSUQ7O0FBRVksUUFBUHVDLE9BQU8sQ0FBRUMsUUFBRixFQUFZO0FBQ3ZCLFFBQUksQ0FBQ0EsUUFBTCxFQUFlO0FBQ2IsWUFBTSxJQUFJL0MsS0FBSixDQUFVLHNCQUFWLENBQU47QUFDRDs7QUFDRCxXQUFPLE1BQU0sS0FBS0MsT0FBTCxDQUFhLENBQUMsTUFBRCxFQUFTLE1BQVQsRUFBaUIsYUFBakIsRUFBZ0M4QyxRQUFoQyxDQUFiLENBQWI7QUFDRDs7QUFoSGE7OztlQW9IRHhELFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZzLCB1dGlsLCB0ZW1wRGlyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZVxuXG5jb25zdCBCSU5BUllfTkFNRSA9ICdweWlkZXZpY2UnO1xuXG5jbGFzcyBQeWlkZXZpY2Uge1xuICBjb25zdHJ1Y3RvciAodWRpZCkge1xuICAgIHRoaXMudWRpZCA9IHVkaWQ7XG4gICAgdGhpcy5iaW5hcnlQYXRoID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGFzc2VydEV4aXN0cyAoaXNTdHJpY3QgPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuYmluYXJ5UGF0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuYmluYXJ5UGF0aCA9IGF3YWl0IGZzLndoaWNoKEJJTkFSWV9OQU1FKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7QklOQVJZX05BTUV9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgaW5zdGFsbGVkLiBWaXNpdCBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2UgZm9yIGAgK1xuICAgICAgICAgIGBtb3JlIGRldGFpbHMuYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZSAoYXJncywgb3B0cyA9IHt9KSB7XG4gICAgYXdhaXQgdGhpcy5hc3NlcnRFeGlzdHMoKTtcbiAgICBjb25zdCB7XG4gICAgICBjd2QsXG4gICAgICBmb3JtYXQgPSAnanNvbicsXG4gICAgICBsb2dTdGRvdXQgPSBmYWxzZSxcbiAgICAgIGFzeW5jaHJvbm91cyA9IGZhbHNlLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgY29uc3QgZmluYWxBcmdzID0gWy4uLmFyZ3MsICctLXVkaWQnLCB0aGlzLnVkaWRdO1xuICAgIGlmIChmb3JtYXQpIHtcbiAgICAgIGZpbmFsQXJncy5wdXNoKCctLWZvcm1hdCcsIGZvcm1hdCk7XG4gICAgfVxuICAgIGNvbnN0IGNtZFN0ciA9IHV0aWwucXVvdGUoW3RoaXMuYmluYXJ5UGF0aCwgLi4uZmluYWxBcmdzXSk7XG4gICAgbG9nLmRlYnVnKGBFeGVjdXRpbmcgJHtjbWRTdHJ9YCk7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhc3luY2hyb25vdXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFN1YlByb2Nlc3ModGhpcy5iaW5hcnlQYXRoLCBmaW5hbEFyZ3MsIHtjd2R9KTtcbiAgICAgICAgYXdhaXQgcmVzdWx0LnN0YXJ0KDApO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmJpbmFyeVBhdGgsIGZpbmFsQXJncywge2N3ZH0pO1xuICAgICAgaWYgKGxvZ1N0ZG91dCkge1xuICAgICAgICBsb2cuZGVidWcoYENvbW1hbmQgb3V0cHV0OiAke3Jlc3VsdC5zdGRvdXR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7Y21kU3RyfScgZmFpbGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLnN0ZGVyciB8fCBlLnN0ZG91dCB8fCBlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbGlzdFByb2ZpbGVzICgpIHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3Byb2ZpbGVzJywgJ2xpc3QnXSk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGxQcm9maWxlICh7cHJvZmlsZVBhdGgsIHBheWxvYWR9ID0ge30pIHtcbiAgICBpZiAoIXByb2ZpbGVQYXRoICYmICFwYXlsb2FkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciB0aGUgZnVsbCBwYXRoIHRvIHRoZSBwcm9maWxlIG9yIGl0cyBwYXlsb2FkIG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgdG1wUm9vdDtcbiAgICBsZXQgc3JjUGF0aCA9IHByb2ZpbGVQYXRoO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXNyY1BhdGgpIHtcbiAgICAgICAgdG1wUm9vdCA9IGF3YWl0IHRlbXBEaXIub3BlbkRpcigpO1xuICAgICAgICBzcmNQYXRoID0gcGF0aC5qb2luKHRtcFJvb3QsICdjZXJ0LnBlbScpO1xuICAgICAgICBhd2FpdCBmcy53cml0ZUZpbGUoc3JjUGF0aCwgcGF5bG9hZCwgJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3Byb2ZpbGVzJywgJ2luc3RhbGwnLCAnLS1wYXRoJywgc3JjUGF0aF0sIHtcbiAgICAgICAgbG9nU3Rkb3V0OiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRtcFJvb3QpIHtcbiAgICAgICAgYXdhaXQgZnMucmltcmFmKHRtcFJvb3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVByb2ZpbGUgKG5hbWUpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdyZW1vdmUnLCBuYW1lXSwge2xvZ1N0ZG91dDogdHJ1ZX0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdENyYXNoZXMgKCkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjdXRlKFsnY3Jhc2gnLCAnbGlzdCddKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdGRvdXQucmVwbGFjZSgvJy9nLCAnXCInKSkuZmlsdGVyKCh4KSA9PiAhWycuJywgJy4uJ10uaW5jbHVkZXMoeCkpO1xuICB9XG5cbiAgYXN5bmMgZXhwb3J0Q3Jhc2ggKG5hbWUsIGRzdEZvbGRlcikge1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2NyYXNoJywgJ2V4cG9ydCcsICctLW5hbWUnLCBuYW1lXSwge1xuICAgICAgbG9nU3Rkb3V0OiB0cnVlLFxuICAgICAgLy8gVGhlIHRvb2wgZXhwb3J0cyBjcmFzaCByZXBvcnRzIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyXG4gICAgICBjd2Q6IGRzdEZvbGRlclxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29sbGVjdFBjYXAgKGRzdEZpbGUpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlKFsncGNhcGQnLCBkc3RGaWxlXSwge1xuICAgICAgZm9ybWF0OiBudWxsLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsQXBwIChidW5kbGVJZCkge1xuICAgIGlmICghYnVuZGxlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVuZGxlSWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2FwcHMnLCAna2lsbCcsICctLWJ1bmRsZV9pZCcsIGJ1bmRsZUlkXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUHlpZGV2aWNlIH07XG5leHBvcnQgZGVmYXVsdCBQeWlkZXZpY2U7XG4iXSwiZmlsZSI6ImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
155
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9weS1pb3MtZGV2aWNlLWNsaWVudC5qcyJdLCJuYW1lcyI6WyJCSU5BUllfTkFNRSIsIlB5aWRldmljZSIsImNvbnN0cnVjdG9yIiwidWRpZCIsImJpbmFyeVBhdGgiLCJhc3NlcnRFeGlzdHMiLCJpc1N0cmljdCIsImZzIiwid2hpY2giLCJlIiwiRXJyb3IiLCJleGVjdXRlIiwiYXJncyIsIm9wdHMiLCJjd2QiLCJmb3JtYXQiLCJsb2dTdGRvdXQiLCJhc3luY2hyb25vdXMiLCJmaW5hbEFyZ3MiLCJwdXNoIiwiY21kU3RyIiwidXRpbCIsInF1b3RlIiwibG9nIiwiZGVidWciLCJyZXN1bHQiLCJTdWJQcm9jZXNzIiwic3RhcnQiLCJzdGRvdXQiLCJzdGRlcnIiLCJtZXNzYWdlIiwibGlzdFByb2ZpbGVzIiwiSlNPTiIsInBhcnNlIiwiaW5zdGFsbFByb2ZpbGUiLCJwcm9maWxlUGF0aCIsInBheWxvYWQiLCJ0bXBSb290Iiwic3JjUGF0aCIsInRlbXBEaXIiLCJvcGVuRGlyIiwicGF0aCIsImpvaW4iLCJ3cml0ZUZpbGUiLCJyaW1yYWYiLCJyZW1vdmVQcm9maWxlIiwibmFtZSIsImxpc3RDcmFzaGVzIiwicmVwbGFjZSIsImZpbHRlciIsIngiLCJpbmNsdWRlcyIsImV4cG9ydENyYXNoIiwiZHN0Rm9sZGVyIiwiY29sbGVjdFBjYXAiLCJkc3RGaWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLE1BQU1BLFdBQVcsR0FBRyxXQUFwQjs7QUFFQSxNQUFNQyxTQUFOLENBQWdCO0FBQ2RDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBQ2pCLFNBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDRDs7QUFFaUIsUUFBWkMsWUFBWSxDQUFFQyxRQUFRLEdBQUcsSUFBYixFQUFtQjtBQUNuQyxRQUFJLEtBQUtGLFVBQVQsRUFBcUI7QUFDbkIsYUFBTyxJ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LENBQU47QUFLRDs7QUFFZ0IsUUFBWEMsV0FBVyxDQUFFQyxPQUFGLEVBQVc7QUFDMUIsV0FBTyxNQUFNLEtBQUs1QyxPQUFMLENBQWEsQ0FBQyxPQUFELEVBQVU0QyxPQUFWLENBQWIsRUFBaUM7QUFDNUN4QyxNQUFBQSxNQUFNLEVBQUUsSUFEb0M7QUFFNUNFLE1BQUFBLFlBQVksRUFBRTtBQUY4QixLQUFqQyxDQUFiO0FBSUQ7O0FBekdhOzs7ZUE2R0RoQixTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyBmcywgdXRpbCwgdGVtcERpciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2VcblxuY29uc3QgQklOQVJZX05BTUUgPSAncHlpZGV2aWNlJztcblxuY2xhc3MgUHlpZGV2aWNlIHtcbiAgY29uc3RydWN0b3IgKHVkaWQpIHtcbiAgICB0aGlzLnVkaWQgPSB1ZGlkO1xuICAgIHRoaXMuYmluYXJ5UGF0aCA9IG51bGw7XG4gIH1cblxuICBhc3luYyBhc3NlcnRFeGlzdHMgKGlzU3RyaWN0ID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLmJpbmFyeVBhdGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmJpbmFyeVBhdGggPSBhd2FpdCBmcy53aGljaChCSU5BUllfTkFNRSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0JJTkFSWV9OQU1FfSBiaW5hcnkgY2Fubm90IGJlIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGluc3RhbGxlZC4gVmlzaXQgaHR0cHM6Ly9naXRodWIuY29tL1l1ZUNoZW4tQy9weS1pb3MtZGV2aWNlIGZvciBgICtcbiAgICAgICAgICBgbW9yZSBkZXRhaWxzLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUgKGFyZ3MsIG9wdHMgPSB7fSkge1xuICAgIGF3YWl0IHRoaXMuYXNzZXJ0RXhpc3RzKCk7XG4gICAgY29uc3Qge1xuICAgICAgY3dkLFxuICAgICAgZm9ybWF0ID0gJ2pzb24nLFxuICAgICAgbG9nU3Rkb3V0ID0gZmFsc2UsXG4gICAgICBhc3luY2hyb25vdXMgPSBmYWxzZSxcbiAgICB9ID0gb3B0cztcblxuICAgIGNvbnN0IGZpbmFsQXJncyA9IFsuLi5hcmdzLCAnLS11ZGlkJywgdGhpcy51ZGlkXTtcbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBmaW5hbEFyZ3MucHVzaCgnLS1mb3JtYXQnLCBmb3JtYXQpO1xuICAgIH1cbiAgICBjb25zdCBjbWRTdHIgPSB1dGlsLnF1b3RlKFt0aGlzLmJpbmFyeVBhdGgsIC4uLmZpbmFsQXJnc10pO1xuICAgIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nICR7Y21kU3RyfWApO1xuICAgIHRyeSB7XG4gICAgICBpZiAoYXN5bmNocm9ub3VzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTdWJQcm9jZXNzKHRoaXMuYmluYXJ5UGF0aCwgZmluYWxBcmdzLCB7Y3dkfSk7XG4gICAgICAgIGF3YWl0IHJlc3VsdC5zdGFydCgwKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWModGhpcy5iaW5hcnlQYXRoLCBmaW5hbEFyZ3MsIHtjd2R9KTtcbiAgICAgIGlmIChsb2dTdGRvdXQpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBDb21tYW5kIG91dHB1dDogJHtyZXN1bHQuc3Rkb3V0fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke2NtZFN0cn0nIGZhaWxlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5zdGRvdXQgfHwgZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxpc3RQcm9maWxlcyAoKSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdsaXN0J10pO1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN0ZG91dCk7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsUHJvZmlsZSAoe3Byb2ZpbGVQYXRoLCBwYXlsb2FkfSA9IHt9KSB7XG4gICAgaWYgKCFwcm9maWxlUGF0aCAmJiAhcGF5bG9hZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgdGhlIGZ1bGwgcGF0aCB0byB0aGUgcHJvZmlsZSBvciBpdHMgcGF5bG9hZCBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgbGV0IHRtcFJvb3Q7XG4gICAgbGV0IHNyY1BhdGggPSBwcm9maWxlUGF0aDtcbiAgICB0cnkge1xuICAgICAgaWYgKCFzcmNQYXRoKSB7XG4gICAgICAgIHRtcFJvb3QgPSBhd2FpdCB0ZW1wRGlyLm9wZW5EaXIoKTtcbiAgICAgICAgc3JjUGF0aCA9IHBhdGguam9pbih0bXBSb290LCAnY2VydC5wZW0nKTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHNyY1BhdGgsIHBheWxvYWQsICd1dGY4Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydwcm9maWxlcycsICdpbnN0YWxsJywgJy0tcGF0aCcsIHNyY1BhdGhdLCB7XG4gICAgICAgIGxvZ1N0ZG91dDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0bXBSb290KSB7XG4gICAgICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVQcm9maWxlIChuYW1lKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsncHJvZmlsZXMnLCAncmVtb3ZlJywgbmFtZV0sIHtsb2dTdGRvdXQ6IHRydWV9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RDcmFzaGVzICgpIHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2NyYXNoJywgJ2xpc3QnXSk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnJlcGxhY2UoLycvZywgJ1wiJykpLmZpbHRlcigoeCkgPT4gIVsnLicsICcuLiddLmluY2x1ZGVzKHgpKTtcbiAgfVxuXG4gIGFzeW5jIGV4cG9ydENyYXNoIChuYW1lLCBkc3RGb2xkZXIpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoWydjcmFzaCcsICdleHBvcnQnLCAnLS1uYW1lJywgbmFtZV0sIHtcbiAgICAgIGxvZ1N0ZG91dDogdHJ1ZSxcbiAgICAgIC8vIFRoZSB0b29sIGV4cG9ydHMgY3Jhc2ggcmVwb3J0cyB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpclxuICAgICAgY3dkOiBkc3RGb2xkZXJcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbGxlY3RQY2FwIChkc3RGaWxlKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ3BjYXBkJywgZHN0RmlsZV0sIHtcbiAgICAgIGZvcm1hdDogbnVsbCxcbiAgICAgIGFzeW5jaHJvbm91czogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IFB5aWRldmljZSB9O1xuZXhwb3J0IGRlZmF1bHQgUHlpZGV2aWNlO1xuIl0sImZpbGUiOiJsaWIvcHktaW9zLWRldmljZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
@@ -1,8 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import { fs } from '@appium/support';
3
3
  import { errors } from '@appium/base-driver';
4
- import { services } from 'appium-ios-device';
5
- import Pyidevice from '../py-ios-device-client';
4
+ import { services, INSTRUMENT_CHANNEL } from 'appium-ios-device';
6
5
 
7
6
  const commands = {};
8
7
 
@@ -84,17 +83,36 @@ commands.mobileKillApp = async function mobileKillApp (opts = {}) {
84
83
  }
85
84
 
86
85
  const {bundleId} = requireOptions(opts, ['bundleId']);
86
+ let instrumentService;
87
+ let installProxyService;
87
88
  try {
88
- // TODO: eventually we'd like to call the instruments kill method via appium-ios-device.
89
- const {stdout, stderr} = await new Pyidevice(this.opts.device.udid).killApp(bundleId);
90
- if ((stdout + stderr).includes('did not start')) {
91
- this.log.info(`The bundle id '${bundleId}' did not start or it was already killed`);
89
+ installProxyService = await services.startInstallationProxyService(this.opts.device.udid);
90
+ const apps = await installProxyService.listApplications();
91
+ if (!apps[bundleId]) {
92
+ this.log.info(`The bundle id '${bundleId}' did not exist`);
92
93
  return false;
93
94
  }
95
+ const executableName = apps[bundleId].CFBundleExecutable;
96
+ this.log.debug(`The executable name for the bundle id '${bundleId}' was '${executableName}'`);
97
+ instrumentService = await services.startInstrumentService(this.opts.device.udid);
98
+ const processes = await instrumentService.callChannel(INSTRUMENT_CHANNEL.DEVICE_INFO, 'runningProcesses');
99
+ const process = processes.selector.find((process) => process.name === executableName);
100
+ if (!process) {
101
+ this.log.info(`The process of the bundle id '${bundleId}' was not running`);
102
+ return false;
103
+ }
104
+ await instrumentService.callChannel(INSTRUMENT_CHANNEL.PROCESS_CONTROL, 'killPid:', `${process.pid}`);
94
105
  return true;
95
106
  } catch (err) {
96
107
  this.log.warn(`Failed to kill '${bundleId}'. Original error: ${err.stderr || err.message}`);
97
108
  return false;
109
+ } finally {
110
+ if (installProxyService) {
111
+ installProxyService.close();
112
+ }
113
+ if (instrumentService) {
114
+ instrumentService.close();
115
+ }
98
116
  }
99
117
  };
100
118
 
@@ -113,13 +113,6 @@ 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
- }
123
116
  }
124
117
 
125
118
  export { Pyidevice };
@@ -1,61 +1,40 @@
1
1
  {
2
2
  "name": "appium-xcuitest-driver",
3
- "version": "4.3.5",
3
+ "version": "4.4.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
7
7
  "@appium/base-driver": {
8
- "version": "8.3.1",
9
- "resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-8.3.1.tgz",
10
- "integrity": "sha512-4URUwQ5Kx2rWFRltDG7couH7PBBGGzuAq2U9Q6g1obQfRbzfTYEYaNV9jSi1SRlwFfhRn7IvNtU7adslVZEqLw==",
8
+ "version": "8.4.2",
9
+ "resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-8.4.2.tgz",
10
+ "integrity": "sha512-by+hZalinv61A5USBX4JWdXDGrSYVd4r51sg4y6wi8zSlQS1rosHalIHTDh2CkHzq/BcvktFjHLNelkOKfKAJQ==",
11
11
  "requires": {
12
- "@appium/support": "^2.56.1",
13
- "@babel/runtime": "7.17.8",
12
+ "@appium/support": "^2.57.1",
13
+ "@babel/runtime": "7.17.9",
14
14
  "@colors/colors": "1.5.0",
15
15
  "async-lock": "1.3.1",
16
16
  "asyncbox": "2.9.2",
17
17
  "axios": "0.26.1",
18
18
  "bluebird": "3.7.2",
19
- "body-parser": "1.19.2",
19
+ "body-parser": "1.20.0",
20
20
  "es6-error": "4.1.1",
21
21
  "express": "4.17.3",
22
22
  "http-status-codes": "2.2.0",
23
23
  "lodash": "4.17.21",
24
- "lru-cache": "7.7.1",
24
+ "lru-cache": "7.8.1",
25
25
  "method-override": "3.0.0",
26
26
  "morgan": "1.10.0",
27
27
  "serve-favicon": "2.5.0",
28
28
  "source-map-support": "0.5.21",
29
- "validate.js": "0.13.1",
30
- "ws": "7.5.7"
31
- },
32
- "dependencies": {
33
- "@babel/runtime": {
34
- "version": "7.17.8",
35
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
36
- "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
37
- "requires": {
38
- "regenerator-runtime": "^0.13.4"
39
- }
40
- },
41
- "lru-cache": {
42
- "version": "7.7.1",
43
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.1.tgz",
44
- "integrity": "sha512-cRffBiTW8s73eH4aTXqBcTLU0xQnwGV3/imttRHGWCrbergmnK4D6JXQd8qin5z43HnDwRI+o7mVW0LEB+tpAw=="
45
- },
46
- "ws": {
47
- "version": "7.5.7",
48
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
49
- "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A=="
50
- }
29
+ "validate.js": "0.13.1"
51
30
  }
52
31
  },
53
32
  "@appium/support": {
54
- "version": "2.56.1",
55
- "resolved": "https://registry.npmjs.org/@appium/support/-/support-2.56.1.tgz",
56
- "integrity": "sha512-7RvFxkK94MDeisvj15j8DCoOuj2H/RO9MW1kAePc3UJISA/be+wO2yndoeZeRgvvpHonfO57u2s+xzxQCxCfBA==",
33
+ "version": "2.57.1",
34
+ "resolved": "https://registry.npmjs.org/@appium/support/-/support-2.57.1.tgz",
35
+ "integrity": "sha512-H+ejLELc3WXb0f8buRQDOxLsgtPn1R9pzFtPHS0EhnCSYvQbTwVszpX7/8i/DrhsmkiDV/arh0J2PhvlmnbiOg==",
57
36
  "requires": {
58
- "@babel/runtime": "7.17.8",
37
+ "@babel/runtime": "7.17.9",
59
38
  "archiver": "5.3.0",
60
39
  "axios": "0.26.1",
61
40
  "base64-stream": "1.0.0",
@@ -70,20 +49,20 @@
70
49
  "klaw": "3.0.0",
71
50
  "lockfile": "1.0.4",
72
51
  "lodash": "4.17.21",
73
- "moment": "2.29.1",
52
+ "moment": "2.29.2",
74
53
  "mv": "2.1.1",
75
54
  "ncp": "2.0.0",
76
55
  "npmlog": "6.0.1",
77
56
  "opencv-bindings": "4.5.5",
78
57
  "pkg-dir": "5.0.0",
79
- "plist": "3.0.4",
58
+ "plist": "3.0.5",
80
59
  "pluralize": "8.0.0",
81
60
  "pngjs": "6.0.0",
82
61
  "read-pkg": "5.2.0",
83
62
  "resolve-from": "5.0.0",
84
63
  "rimraf": "3.0.2",
85
64
  "sanitize-filename": "1.6.3",
86
- "semver": "7.3.5",
65
+ "semver": "7.3.6",
87
66
  "shell-quote": "1.7.3",
88
67
  "source-map-support": "0.5.21",
89
68
  "teen_process": "1.16.0",
@@ -92,33 +71,25 @@
92
71
  "yauzl": "2.10.0"
93
72
  },
94
73
  "dependencies": {
95
- "@babel/runtime": {
96
- "version": "7.17.8",
97
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
98
- "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
99
- "requires": {
100
- "regenerator-runtime": "^0.13.4"
101
- }
102
- },
103
- "lru-cache": {
104
- "version": "6.0.0",
105
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
106
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
74
+ "glob": {
75
+ "version": "7.2.0",
76
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
77
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
107
78
  "requires": {
108
- "yallist": "^4.0.0"
79
+ "fs.realpath": "^1.0.0",
80
+ "inflight": "^1.0.4",
81
+ "inherits": "2",
82
+ "minimatch": "^3.0.4",
83
+ "once": "^1.3.0",
84
+ "path-is-absolute": "^1.0.0"
109
85
  }
110
86
  },
111
- "moment": {
112
- "version": "2.29.1",
113
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
114
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
115
- },
116
87
  "semver": {
117
- "version": "7.3.5",
118
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
119
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
88
+ "version": "7.3.6",
89
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz",
90
+ "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==",
120
91
  "requires": {
121
- "lru-cache": "^6.0.0"
92
+ "lru-cache": "^7.4.0"
122
93
  }
123
94
  }
124
95
  }
@@ -544,9 +515,9 @@
544
515
  }
545
516
  },
546
517
  "appium-ios-device": {
547
- "version": "2.3.1",
548
- "resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.3.1.tgz",
549
- "integrity": "sha512-hjXiSDX+suSL7mJtWyLF3U5bxl3pJbZKQqxZ39mJ8qS2FEKfIYeUOFcaEf5agEfShnHj56OVv4BiiUjet28iwA==",
518
+ "version": "2.4.0",
519
+ "resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.4.0.tgz",
520
+ "integrity": "sha512-lt3IHfAh/3uB5wk59pZYFhpegtTml7YvvYg0y3X/OrdryNf1O7VoMdf8fJFaVnwR//IEknt4pULhyjfjNAc1iQ==",
550
521
  "requires": {
551
522
  "@appium/support": "^2.55.3",
552
523
  "@babel/runtime": "^7.0.0",
@@ -561,9 +532,9 @@
561
532
  }
562
533
  },
563
534
  "appium-ios-simulator": {
564
- "version": "4.0.1",
565
- "resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-4.0.1.tgz",
566
- "integrity": "sha512-KPsrAaVsfkOBo6VyI1L7czLSMbBIoZwQWHrn0Zf88sdTQqFYDBkJcBZGi9FT20+QH1IBwKIxTDYRNK5jfI3ZhA==",
535
+ "version": "4.0.2",
536
+ "resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-4.0.2.tgz",
537
+ "integrity": "sha512-Okyq4TJGf0rWxoufFf7YuJBIxstmru+Yd4Cudd0FBgWDmyeUSxPUVTKqvZNh/TO1BiCo3zL7ElQefVkTlKw3Tw==",
567
538
  "requires": {
568
539
  "@appium/support": "^2.55.3",
569
540
  "@babel/runtime": "^7.0.0",
@@ -665,6 +636,19 @@
665
636
  "readable-stream": "^2.0.0"
666
637
  },
667
638
  "dependencies": {
639
+ "glob": {
640
+ "version": "7.2.0",
641
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
642
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
643
+ "requires": {
644
+ "fs.realpath": "^1.0.0",
645
+ "inflight": "^1.0.4",
646
+ "inherits": "2",
647
+ "minimatch": "^3.0.4",
648
+ "once": "^1.3.0",
649
+ "path-is-absolute": "^1.0.0"
650
+ }
651
+ },
668
652
  "readable-stream": {
669
653
  "version": "2.3.7",
670
654
  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -779,20 +763,22 @@
779
763
  "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM="
780
764
  },
781
765
  "body-parser": {
782
- "version": "1.19.2",
783
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
784
- "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
766
+ "version": "1.20.0",
767
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
768
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
785
769
  "requires": {
786
770
  "bytes": "3.1.2",
787
771
  "content-type": "~1.0.4",
788
772
  "debug": "2.6.9",
789
- "depd": "~1.1.2",
790
- "http-errors": "1.8.1",
773
+ "depd": "2.0.0",
774
+ "destroy": "1.2.0",
775
+ "http-errors": "2.0.0",
791
776
  "iconv-lite": "0.4.24",
792
- "on-finished": "~2.3.0",
793
- "qs": "6.9.7",
794
- "raw-body": "2.4.3",
795
- "type-is": "~1.6.18"
777
+ "on-finished": "2.4.1",
778
+ "qs": "6.10.3",
779
+ "raw-body": "2.5.1",
780
+ "type-is": "~1.6.18",
781
+ "unpipe": "1.0.0"
796
782
  },
797
783
  "dependencies": {
798
784
  "debug": {
@@ -864,6 +850,15 @@
864
850
  "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
865
851
  "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
866
852
  },
853
+ "call-bind": {
854
+ "version": "1.0.2",
855
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
856
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
857
+ "requires": {
858
+ "function-bind": "^1.1.1",
859
+ "get-intrinsic": "^1.0.2"
860
+ }
861
+ },
867
862
  "chalk": {
868
863
  "version": "2.4.2",
869
864
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -994,14 +989,14 @@
994
989
  "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
995
990
  },
996
991
  "depd": {
997
- "version": "1.1.2",
998
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
999
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
992
+ "version": "2.0.0",
993
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
994
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1000
995
  },
1001
996
  "destroy": {
1002
- "version": "1.0.4",
1003
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
1004
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
997
+ "version": "1.2.0",
998
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
999
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
1005
1000
  },
1006
1001
  "dom-walk": {
1007
1002
  "version": "0.1.2",
@@ -1114,6 +1109,23 @@
1114
1109
  "vary": "~1.1.2"
1115
1110
  },
1116
1111
  "dependencies": {
1112
+ "body-parser": {
1113
+ "version": "1.19.2",
1114
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
1115
+ "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
1116
+ "requires": {
1117
+ "bytes": "3.1.2",
1118
+ "content-type": "~1.0.4",
1119
+ "debug": "2.6.9",
1120
+ "depd": "~1.1.2",
1121
+ "http-errors": "1.8.1",
1122
+ "iconv-lite": "0.4.24",
1123
+ "on-finished": "~2.3.0",
1124
+ "qs": "6.9.7",
1125
+ "raw-body": "2.4.3",
1126
+ "type-is": "~1.6.18"
1127
+ }
1128
+ },
1117
1129
  "debug": {
1118
1130
  "version": "2.6.9",
1119
1131
  "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -1122,15 +1134,61 @@
1122
1134
  "ms": "2.0.0"
1123
1135
  }
1124
1136
  },
1137
+ "depd": {
1138
+ "version": "1.1.2",
1139
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1140
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1141
+ },
1142
+ "http-errors": {
1143
+ "version": "1.8.1",
1144
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
1145
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
1146
+ "requires": {
1147
+ "depd": "~1.1.2",
1148
+ "inherits": "2.0.4",
1149
+ "setprototypeof": "1.2.0",
1150
+ "statuses": ">= 1.5.0 < 2",
1151
+ "toidentifier": "1.0.1"
1152
+ }
1153
+ },
1125
1154
  "ms": {
1126
1155
  "version": "2.0.0",
1127
1156
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1128
1157
  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1129
1158
  },
1159
+ "on-finished": {
1160
+ "version": "2.3.0",
1161
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1162
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1163
+ "requires": {
1164
+ "ee-first": "1.1.1"
1165
+ }
1166
+ },
1167
+ "qs": {
1168
+ "version": "6.9.7",
1169
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
1170
+ "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
1171
+ },
1172
+ "raw-body": {
1173
+ "version": "2.4.3",
1174
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
1175
+ "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
1176
+ "requires": {
1177
+ "bytes": "3.1.2",
1178
+ "http-errors": "1.8.1",
1179
+ "iconv-lite": "0.4.24",
1180
+ "unpipe": "1.0.0"
1181
+ }
1182
+ },
1130
1183
  "safe-buffer": {
1131
1184
  "version": "5.2.1",
1132
1185
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1133
1186
  "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1187
+ },
1188
+ "statuses": {
1189
+ "version": "1.5.0",
1190
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1191
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1134
1192
  }
1135
1193
  }
1136
1194
  },
@@ -1173,6 +1231,19 @@
1173
1231
  "version": "2.0.0",
1174
1232
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1175
1233
  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1234
+ },
1235
+ "on-finished": {
1236
+ "version": "2.3.0",
1237
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1238
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1239
+ "requires": {
1240
+ "ee-first": "1.1.1"
1241
+ }
1242
+ },
1243
+ "statuses": {
1244
+ "version": "1.5.0",
1245
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1246
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1176
1247
  }
1177
1248
  }
1178
1249
  },
@@ -1271,6 +1342,16 @@
1271
1342
  "wide-align": "^1.1.5"
1272
1343
  }
1273
1344
  },
1345
+ "get-intrinsic": {
1346
+ "version": "1.1.1",
1347
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1348
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1349
+ "requires": {
1350
+ "function-bind": "^1.1.1",
1351
+ "has": "^1.0.3",
1352
+ "has-symbols": "^1.0.1"
1353
+ }
1354
+ },
1274
1355
  "get-stream": {
1275
1356
  "version": "6.0.1",
1276
1357
  "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
@@ -1285,19 +1366,6 @@
1285
1366
  "omggif": "^1.0.10"
1286
1367
  }
1287
1368
  },
1288
- "glob": {
1289
- "version": "7.2.0",
1290
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
1291
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
1292
- "requires": {
1293
- "fs.realpath": "^1.0.0",
1294
- "inflight": "^1.0.4",
1295
- "inherits": "2",
1296
- "minimatch": "^3.0.4",
1297
- "once": "^1.3.0",
1298
- "path-is-absolute": "^1.0.0"
1299
- }
1300
- },
1301
1369
  "global": {
1302
1370
  "version": "4.4.0",
1303
1371
  "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
@@ -1325,6 +1393,11 @@
1325
1393
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1326
1394
  "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
1327
1395
  },
1396
+ "has-symbols": {
1397
+ "version": "1.0.3",
1398
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1399
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1400
+ },
1328
1401
  "has-unicode": {
1329
1402
  "version": "2.0.1",
1330
1403
  "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
@@ -1336,14 +1409,14 @@
1336
1409
  "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
1337
1410
  },
1338
1411
  "http-errors": {
1339
- "version": "1.8.1",
1340
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
1341
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
1412
+ "version": "2.0.0",
1413
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1414
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1342
1415
  "requires": {
1343
- "depd": "~1.1.2",
1416
+ "depd": "2.0.0",
1344
1417
  "inherits": "2.0.4",
1345
1418
  "setprototypeof": "1.2.0",
1346
- "statuses": ">= 1.5.0 < 2",
1419
+ "statuses": "2.0.1",
1347
1420
  "toidentifier": "1.0.1"
1348
1421
  }
1349
1422
  },
@@ -1582,9 +1655,9 @@
1582
1655
  "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg="
1583
1656
  },
1584
1657
  "lru-cache": {
1585
- "version": "7.7.3",
1586
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.7.3.tgz",
1587
- "integrity": "sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw=="
1658
+ "version": "7.8.1",
1659
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz",
1660
+ "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg=="
1588
1661
  },
1589
1662
  "media-typer": {
1590
1663
  "version": "0.3.0",
@@ -1707,15 +1780,18 @@
1707
1780
  "ms": "2.0.0"
1708
1781
  }
1709
1782
  },
1710
- "depd": {
1711
- "version": "2.0.0",
1712
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1713
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1714
- },
1715
1783
  "ms": {
1716
1784
  "version": "2.0.0",
1717
1785
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1718
1786
  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1787
+ },
1788
+ "on-finished": {
1789
+ "version": "2.3.0",
1790
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1791
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1792
+ "requires": {
1793
+ "ee-first": "1.1.1"
1794
+ }
1719
1795
  }
1720
1796
  }
1721
1797
  },
@@ -1818,15 +1894,20 @@
1818
1894
  "set-blocking": "^2.0.0"
1819
1895
  }
1820
1896
  },
1897
+ "object-inspect": {
1898
+ "version": "1.12.0",
1899
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
1900
+ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
1901
+ },
1821
1902
  "omggif": {
1822
1903
  "version": "1.0.10",
1823
1904
  "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
1824
1905
  "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
1825
1906
  },
1826
1907
  "on-finished": {
1827
- "version": "2.3.0",
1828
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1829
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1908
+ "version": "2.4.1",
1909
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1910
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1830
1911
  "requires": {
1831
1912
  "ee-first": "1.1.1"
1832
1913
  }
@@ -1969,9 +2050,9 @@
1969
2050
  }
1970
2051
  },
1971
2052
  "plist": {
1972
- "version": "3.0.4",
1973
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
1974
- "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
2053
+ "version": "3.0.5",
2054
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz",
2055
+ "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==",
1975
2056
  "requires": {
1976
2057
  "base64-js": "^1.5.1",
1977
2058
  "xmlbuilder": "^9.0.7"
@@ -2004,9 +2085,9 @@
2004
2085
  },
2005
2086
  "dependencies": {
2006
2087
  "async": {
2007
- "version": "2.6.3",
2008
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
2009
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
2088
+ "version": "2.6.4",
2089
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
2090
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
2010
2091
  "requires": {
2011
2092
  "lodash": "^4.17.14"
2012
2093
  }
@@ -2033,9 +2114,12 @@
2033
2114
  }
2034
2115
  },
2035
2116
  "qs": {
2036
- "version": "6.9.7",
2037
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
2038
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
2117
+ "version": "6.10.3",
2118
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
2119
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
2120
+ "requires": {
2121
+ "side-channel": "^1.0.4"
2122
+ }
2039
2123
  },
2040
2124
  "range-parser": {
2041
2125
  "version": "1.2.1",
@@ -2043,12 +2127,12 @@
2043
2127
  "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
2044
2128
  },
2045
2129
  "raw-body": {
2046
- "version": "2.4.3",
2047
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
2048
- "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
2130
+ "version": "2.5.1",
2131
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
2132
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
2049
2133
  "requires": {
2050
2134
  "bytes": "3.1.2",
2051
- "http-errors": "1.8.1",
2135
+ "http-errors": "2.0.0",
2052
2136
  "iconv-lite": "0.4.24",
2053
2137
  "unpipe": "1.0.0"
2054
2138
  }
@@ -2108,6 +2192,21 @@
2108
2192
  "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2109
2193
  "requires": {
2110
2194
  "glob": "^7.1.3"
2195
+ },
2196
+ "dependencies": {
2197
+ "glob": {
2198
+ "version": "7.2.0",
2199
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
2200
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
2201
+ "requires": {
2202
+ "fs.realpath": "^1.0.0",
2203
+ "inflight": "^1.0.4",
2204
+ "inherits": "2",
2205
+ "minimatch": "^3.0.4",
2206
+ "once": "^1.3.0",
2207
+ "path-is-absolute": "^1.0.0"
2208
+ }
2209
+ }
2111
2210
  }
2112
2211
  },
2113
2212
  "safe-buffer": {
@@ -2134,11 +2233,21 @@
2134
2233
  "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
2135
2234
  },
2136
2235
  "semver": {
2137
- "version": "7.3.6",
2138
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz",
2139
- "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==",
2236
+ "version": "7.3.7",
2237
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2238
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2140
2239
  "requires": {
2141
- "lru-cache": "^7.4.0"
2240
+ "lru-cache": "^6.0.0"
2241
+ },
2242
+ "dependencies": {
2243
+ "lru-cache": {
2244
+ "version": "6.0.0",
2245
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2246
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2247
+ "requires": {
2248
+ "yallist": "^4.0.0"
2249
+ }
2250
+ }
2142
2251
  }
2143
2252
  },
2144
2253
  "send": {
@@ -2175,6 +2284,41 @@
2175
2284
  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
2176
2285
  }
2177
2286
  }
2287
+ },
2288
+ "depd": {
2289
+ "version": "1.1.2",
2290
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
2291
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
2292
+ },
2293
+ "destroy": {
2294
+ "version": "1.0.4",
2295
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
2296
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
2297
+ },
2298
+ "http-errors": {
2299
+ "version": "1.8.1",
2300
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
2301
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
2302
+ "requires": {
2303
+ "depd": "~1.1.2",
2304
+ "inherits": "2.0.4",
2305
+ "setprototypeof": "1.2.0",
2306
+ "statuses": ">= 1.5.0 < 2",
2307
+ "toidentifier": "1.0.1"
2308
+ }
2309
+ },
2310
+ "on-finished": {
2311
+ "version": "2.3.0",
2312
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
2313
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
2314
+ "requires": {
2315
+ "ee-first": "1.1.1"
2316
+ }
2317
+ },
2318
+ "statuses": {
2319
+ "version": "1.5.0",
2320
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2321
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
2178
2322
  }
2179
2323
  }
2180
2324
  },
@@ -2228,6 +2372,16 @@
2228
2372
  "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
2229
2373
  "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw=="
2230
2374
  },
2375
+ "side-channel": {
2376
+ "version": "1.0.4",
2377
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2378
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2379
+ "requires": {
2380
+ "call-bind": "^1.0.0",
2381
+ "get-intrinsic": "^1.0.2",
2382
+ "object-inspect": "^1.9.0"
2383
+ }
2384
+ },
2231
2385
  "signal-exit": {
2232
2386
  "version": "3.0.7",
2233
2387
  "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
@@ -2276,9 +2430,9 @@
2276
2430
  "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
2277
2431
  },
2278
2432
  "statuses": {
2279
- "version": "1.5.0",
2280
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2281
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
2433
+ "version": "2.0.1",
2434
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2435
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
2282
2436
  },
2283
2437
  "stream-buffers": {
2284
2438
  "version": "2.2.0",
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "4.3.5",
11
+ "version": "4.4.0",
12
12
  "author": "appium",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {
@@ -72,12 +72,12 @@
72
72
  "!.DS_Store"
73
73
  ],
74
74
  "dependencies": {
75
- "@appium/base-driver": "^8.3.0",
75
+ "@appium/base-driver": "^8.4.0",
76
76
  "@appium/support": "^2.55.3",
77
77
  "@babel/runtime": "^7.0.0",
78
78
  "@xmldom/xmldom": "^0.x",
79
79
  "appium-idb": "^1.0.0",
80
- "appium-ios-device": "^2.3.1",
80
+ "appium-ios-device": "^2.4.0",
81
81
  "appium-ios-simulator": "^4.0.0",
82
82
  "appium-remote-debugger": "^9.0.0",
83
83
  "appium-webdriveragent": "^4.4.0",
@@ -132,7 +132,7 @@
132
132
  "chai": "^4.1.2",
133
133
  "chai-as-promised": "^7.1.1",
134
134
  "chai-subset": "^1.6.0",
135
- "glob": "^7.1.0",
135
+ "glob": "^8.0.1",
136
136
  "gulp": "^4.0.0",
137
137
  "ios-test-app": "^3.0.0",
138
138
  "ios-uicatalog": "^3.5.0",