appium-ios-device 2.2.0 → 2.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
@@ -3,10 +3,8 @@ appium-ios-device
3
3
 
4
4
  [![NPM version](http://img.shields.io/npm/v/appium-ios-device.svg)](https://npmjs.org/package/appium-ios-device)
5
5
  [![Downloads](http://img.shields.io/npm/dm/appium-ios-device.svg)](https://npmjs.org/package/appium-ios-device)
6
- [![Dependency Status](https://david-dm.org/appium/appium-ios-device/master.svg)](https://david-dm.org/appium/appium-ios-device/master)
7
- [![devDependency Status](https://david-dm.org/appium/appium-ios-device/master/dev-status.svg)](https://david-dm.org/appium/appium-ios-device/master#info=devDependencies)
8
6
 
9
- [![Build Status](https://api.travis-ci.org/appium/appium-ios-device.png?branch=master)](https://travis-ci.org/appium/appium-ios-device)
7
+ [![Release](https://github.com/appium/appium-ios-device/actions/workflows/publish.js.yml/badge.svg)](https://github.com/appium/appium-ios-device/actions/workflows/publish.js.yml)
10
8
 
11
9
  Appium API for dealing with iOS devices. This is mainly a rewrite of libimobiledevice in nodejs. The APIs allow Appium to talk directly to the phone over usbmuxd
12
10
 
@@ -34,6 +32,7 @@ More information can be found at the links below:
34
32
  - `services.startNotificationProxyService`
35
33
  - `services.startHouseArrestService`
36
34
  - `services.startInstrumentService`
35
+ - `services.startMCInstallService`
37
36
 
38
37
  ### Usage
39
38
 
package/build/index.js CHANGED
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "INSTRUMENT_CHANNEL", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _instrument.INSTRUMENT_CHANNEL;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "Usbmux", {
9
15
  enumerable: true,
10
16
  get: function () {
@@ -25,6 +31,8 @@ var services = _interopRequireWildcard(require("./lib/services"));
25
31
 
26
32
  exports.services = services;
27
33
 
34
+ var _instrument = require("./lib/instrument");
35
+
28
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
37
 
30
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -33,4 +41,4 @@ var _default = _usbmux.default;
33
41
  exports.default = _default;require('source-map-support').install();
34
42
 
35
43
 
36
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIlVzYm11eCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOzs7Ozs7OztlQUllQSxlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBVc2JtdXggfSBmcm9tICcuL2xpYi91c2JtdXgnO1xuaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJy4vbGliL3V0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBzZXJ2aWNlcyBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5cblxuZXhwb3J0IHsgVXNibXV4LCB1dGlsaXRpZXMsIHNlcnZpY2VzIH07XG5leHBvcnQgZGVmYXVsdCBVc2JtdXg7XG4iXSwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uIn0=
44
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIlVzYm11eCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztlQUllQSxlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBVc2JtdXggfSBmcm9tICcuL2xpYi91c2JtdXgnO1xuaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJy4vbGliL3V0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBzZXJ2aWNlcyBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJTlNUUlVNRU5UX0NIQU5ORUwgfSBmcm9tICcuL2xpYi9pbnN0cnVtZW50JztcblxuXG5leHBvcnQgeyBVc2JtdXgsIHV0aWxpdGllcywgc2VydmljZXMsIElOU1RSVU1FTlRfQ0hBTk5FTCB9O1xuZXhwb3J0IGRlZmF1bHQgVXNibXV4O1xuIl0sImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLiJ9
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SERVICE = exports.InstrumentService = exports.INSTRUMENT_SERVICE_NAME_VERSION_14 = exports.INSTRUMENT_SERVICE_NAME = void 0;
8
+ exports.InstrumentService = exports.INSTRUMENT_SERVICE_NAME_VERSION_14 = exports.INSTRUMENT_SERVICE_NAME = exports.INSTRUMENT_CHANNEL = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -32,7 +32,7 @@ const INSTRUMENT_SERVICE_NAME_VERSION_14 = 'com.apple.instruments.remoteserver.D
32
32
  exports.INSTRUMENT_SERVICE_NAME_VERSION_14 = INSTRUMENT_SERVICE_NAME_VERSION_14;
33
33
  const INSTRUMENT_SERVICE_NAME = 'com.apple.instruments.remoteserver';
34
34
  exports.INSTRUMENT_SERVICE_NAME = INSTRUMENT_SERVICE_NAME;
35
- const SERVICE = Object.freeze({
35
+ const INSTRUMENT_CHANNEL = Object.freeze({
36
36
  DEVICE_INFO: 'com.apple.instruments.server.services.deviceinfo',
37
37
  PROCESS_CONTROL: 'com.apple.instruments.server.services.processcontrol',
38
38
  SYSMONTAP: 'com.apple.instruments.server.services.sysmontap',
@@ -42,7 +42,7 @@ const SERVICE = Object.freeze({
42
42
  APPLICATION_LISTING: 'com.apple.instruments.server.services.device.applictionListing',
43
43
  CONDITION_INDUCER: 'com.apple.instruments.server.services.ConditionInducer'
44
44
  });
45
- exports.SERVICE = SERVICE;
45
+ exports.INSTRUMENT_CHANNEL = INSTRUMENT_CHANNEL;
46
46
 
47
47
  function defaultDict(createValue) {
48
48
  return new Proxy(Object.create(null), {
@@ -184,4 +184,4 @@ class InstrumentService extends _baseService.BaseServiceSocket {
184
184
  exports.InstrumentService = InstrumentService;require('source-map-support').install();
185
185
 
186
186
 
187
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pbnN0cnVtZW50L2luZGV4LmpzIl0sIm5hbWVzIjpbIkNIRUNLX0ZSRVFfTVMiLCJXQUlUX1JFUExZX1RJTUVfTVMiLCJFTVBUWV9NRVNTQUdFX1NJWkUiLCJDSEFOTkVMX0NBTkNFTEVEIiwiQ0hBTk5FTF9PRkZTRVQiLCJJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0IiwiSU5TVFJVTUVOVF9TRVJWSUNFX05BTUUiLCJTRVJWSUNFIiwiT2JqZWN0IiwiZnJlZXplIiwiREVWSUNFX0lORk8iLCJQUk9DRVNTX0NPTlRST0wiLCJTWVNNT05UQVAiLCJORVRXT1JLSU5HIiwiTU9CSUxFX05PVElGSUNBVElPTlMiLCJHUkFQSElDU19PUEVOR0wiLCJBUFBMSUNBVElPTl9MSVNUSU5HIiwiQ09ORElUSU9OX0lORFVDRVIiLCJkZWZhdWx0RGljdCIsImNyZWF0ZVZhbHVlIiwiUHJveHkiLCJjcmVhdGUiLCJnZXQiLCJzdG9yYWdlIiwicHJvcGVydHkiLCJJbnN0cnVtZW50U2VydmljZSIsIkJhc2VTZXJ2aWNlU29ja2V0IiwiY29uc3RydWN0b3IiLCJzb2NrZXRDbGllbnQiLCJldmVudCIsIl91bmRlZmluZWRDYWxsYmFjayIsIl9jYWxsYmFja3MiLCJldmVudHMiLCJFdmVudEVtaXR0ZXIiLCJfY2hhbm5lbENhbGxiYWNrcyIsIl9yZXBseVF1ZXVlcyIsIl9jaGFubmVscyIsIl9uZXh0SWRlbnRpZmllciIsIl9lbmNvZGVyIiwiRFRYRW5jb2RlciIsInBpcGUiLCJfc29ja2V0Q2xpZW50IiwiX2Fzc2lnbkNsaWVudEZhaWx1cmVIYW5kbGVycyIsIl9kZWNvZGVyIiwiRFRYRGVjb2RlciIsIm9uIiwiX2hhbmRsZURhdGEiLCJiaW5kIiwicmVnaXN0ZXJTZWxlY3RvckNhbGxiYWNrIiwic2VsZWN0b3IiLCJhZGRMaXN0ZW5lciIsInJlZ2lzdGVyVW5kZWZpbmVkQ2FsbGJhY2siLCJyZWdpc3RlckNoYW5uZWxDYWxsYmFjayIsImNoYW5uZWwiLCJjaGFubmVsSWQiLCJtYWtlQ2hhbm5lbCIsImNoYW5uZWxDb2RlIiwia2V5cyIsImxlbmd0aCIsIl9jYWxsQ2hhbm5lbCIsImNhbGxDaGFubmVsIiwiYXV4aWxpYXJpZXMiLCJzeW5jIiwiaWRlbnRpZmllciIsIndyaXRlIiwicXVldWUiLCJkYXRhIiwic2hpZnQiLCJfIiwiaXNVbmRlZmluZWQiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZXJyb3IiLCJlcnIiLCJjbG9zZSIsIkVycm9yIiwiaW5jbHVkZXMiLCJjb252ZXJzYXRpb25JbmRleCIsInB1c2giLCJsaXN0ZW5lckNvdW50IiwiZW1pdCIsImlzU3RyaW5nIiwiZXhwZWN0c1JlcGx5IiwiX3JlcGx5QWNrIiwicmVwbHkiLCJEVFhNZXNzYWdlIiwiQnVmZmVyIiwiYWxsb2MiLCJmbGFncyIsIkZMQUdfVFlQRVMiLCJidWlsZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxhQUFhLEdBQUcsR0FBdEI7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxLQUEzQjtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLEVBQTNCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsa0JBQXpCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLEtBQUssRUFBNUI7QUFFQSxNQUFNQyxrQ0FBa0MsR0FBRyx5REFBM0M7O0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcsb0NBQWhDOztBQUVPLE1BQU1DLE9BQU8sR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDbkNDLEVBQUFBLFdBQVcsRUFBRSxrREFEc0I7QUFFbkNDLEVBQUFBLGVBQWUsRUFBRSxzREFGa0I7QUFHbkNDLEVBQUFBLFNBQVMsRUFBRSxpREFId0I7QUFJbkNDLEVBQUFBLFVBQVUsRUFBRSxrREFKdUI7QUFLbkNDLEVBQUFBLG9CQUFvQixFQUFFLDJEQUxhO0FBTW5DQyxFQUFBQSxlQUFlLEVBQUUsdURBTmtCO0FBT25DQyxFQUFBQSxt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QVcsRUFBRVUsSUFBSSxDQUFDVixXQUZTO0FBRzNCUCxNQUFBQSxRQUFRLEVBQUVxQyxNQUFNLENBQUNDLEtBQVAsQ0FBYXJGLGtCQUFiLENBSGlCO0FBSTNCMkUsTUFBQUEsaUJBQWlCLEVBQUVYLElBQUksQ0FBQ1csaUJBQUwsR0FBeUIsQ0FKakI7QUFLM0JXLE1BQUFBLEtBQUssRUFBRUMsb0JBQVdMO0FBTFMsS0FBZixDQUFkOztBQU9BLFNBQUszQyxhQUFMLENBQW1CdUIsS0FBbkIsQ0FBeUJvQixLQUFLLENBQUNNLEtBQU4sRUFBekI7QUFDRDs7QUF2SStDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZVxuXG5pbXBvcnQge0Jhc2VTZXJ2aWNlU29ja2V0fSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuaW1wb3J0IHtEVFhNZXNzYWdlLCBGTEFHX1RZUEVTfSBmcm9tICcuL2hlYWRlcnMnO1xuaW1wb3J0IHtEVFhFbmNvZGVyfSBmcm9tICcuL3RyYW5zZm9ybWVyL2R0eC1lbmNvZGUnO1xuaW1wb3J0IHtEVFhEZWNvZGVyfSBmcm9tICcuL3RyYW5zZm9ybWVyL2R0eC1kZWNvZGUnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICdldmVudHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7d2FpdEZvckNvbmRpdGlvbn0gZnJvbSAnYXN5bmNib3gnO1xuXG5jb25zdCBDSEVDS19GUkVRX01TID0gNTAwO1xuY29uc3QgV0FJVF9SRVBMWV9USU1FX01TID0gMTAwMDA7XG5jb25zdCBFTVBUWV9NRVNTQUdFX1NJWkUgPSAxNjtcbmNvbnN0IENIQU5ORUxfQ0FOQ0VMRUQgPSAnX2NoYW5uZWxDYW5jZWxlZCc7XG5jb25zdCBDSEFOTkVMX09GRlNFVCA9IDIgKiogMzI7XG5cbmNvbnN0IElOU1RSVU1FTlRfU0VSVklDRV9OQU1FX1ZFUlNJT05fMTQgPSAnY29tLmFwcGxlLmluc3RydW1lbnRzLnJlbW90ZXNlcnZlci5EVlRTZWN1cmVTb2NrZXRQcm94eSc7XG5jb25zdCBJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRSA9ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMucmVtb3Rlc2VydmVyJztcblxuZXhwb3J0IGNvbnN0IFNFUlZJQ0UgPSBPYmplY3QuZnJlZXplKHtcbiAgREVWSUNFX0lORk86ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLmRldmljZWluZm8nLFxuICBQUk9DRVNTX0NPTlRST0w6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLnByb2Nlc3Njb250cm9sJyxcbiAgU1lTTU9OVEFQOiAnY29tLmFwcGxlLmluc3RydW1lbnRzLnNlcnZlci5zZXJ2aWNlcy5zeXNtb250YXAnLFxuICBORVRXT1JLSU5HOiAnY29tLmFwcGxlLmluc3RydW1lbnRzLnNlcnZlci5zZXJ2aWNlcy5uZXR3b3JraW5nJyxcbiAgTU9CSUxFX05PVElGSUNBVElPTlM6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLm1vYmlsZW5vdGlmaWNhdGlvbnMnLFxuICBHUkFQSElDU19PUEVOR0w6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLmdyYXBoaWNzLm9wZW5nbCcsXG4gIEFQUExJQ0FUSU9OX0xJU1RJTkc6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLmRldmljZS5hcHBsaWN0aW9uTGlzdGluZycsXG4gIENPTkRJVElPTl9JTkRVQ0VSOiAnY29tLmFwcGxlLmluc3RydW1lbnRzLnNlcnZlci5zZXJ2aWNlcy5Db25kaXRpb25JbmR1Y2VyJ1xufSk7XG5cbmZ1bmN0aW9uIGRlZmF1bHREaWN0IChjcmVhdGVWYWx1ZSkge1xuICByZXR1cm4gbmV3IFByb3h5KE9iamVjdC5jcmVhdGUobnVsbCksIHtcbiAgICBnZXQgKHN0b3JhZ2UsIHByb3BlcnR5KSB7XG4gICAgICBpZiAoIShwcm9wZXJ0eSBpbiBzdG9yYWdlKSkge1xuICAgICAgICBzdG9yYWdlW3Byb3BlcnR5XSA9IGNyZWF0ZVZhbHVlKHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdG9yYWdlW3Byb3BlcnR5XTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKiogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyB0aGUgZGF0YSB0cmFuc21pc3Npb24gaW4gaW5zdHJ1bWVudCBzZXJ2ZVxuICogQG5hbWUgRFRYQ2FsbGJhY2tcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtEVFhNZXNzYWdlfSBvYmplY3RcbiovXG5cbi8qKlxuICogQHBhcmFtIHtTb2NrZXR9IHNvY2tldENsaWVudCAgRFRYTWVzc2FnZS5zZWxlY3RvclxuICogQHBhcmFtIHs/RFRYQ2FsbGJhY2t9IGV2ZW50IGlmIGVtcHR5IHdpbGwgaWdub3JlIGFueSBtZXNzYWdlc1xuICovXG5jbGFzcyBJbnN0cnVtZW50U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlU29ja2V0IHtcbiAgY29uc3RydWN0b3IgKHNvY2tldENsaWVudCwgZXZlbnQpIHtcbiAgICBzdXBlcihzb2NrZXRDbGllbnQpO1xuICAgIHRoaXMuX3VuZGVmaW5lZENhbGxiYWNrID0gZXZlbnQ7XG4gICAgdGhpcy5fY2FsbGJhY2tzID0gbmV3IGV2ZW50cy5FdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLl9jaGFubmVsQ2FsbGJhY2tzID0gbmV3IGV2ZW50cy5FdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLl9yZXBseVF1ZXVlcyA9IGRlZmF1bHREaWN0KCgpID0+IFtdKTtcbiAgICB0aGlzLl9jaGFubmVscyA9IHt9O1xuICAgIHRoaXMuX25leHRJZGVudGlmaWVyID0gMTtcbiAgICB0aGlzLl9lbmNvZGVyID0gbmV3IERUWEVuY29kZXIoKTtcbiAgICB0aGlzLl9lbmNvZGVyLnBpcGUodGhpcy5fc29ja2V0Q2xpZW50KTtcbiAgICB0aGlzLl9hc3NpZ25DbGllbnRGYWlsdXJlSGFuZGxlcnModGhpcy5fZW5jb2Rlcik7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBEVFhEZWNvZGVyKCk7XG4gICAgdGhpcy5fc29ja2V0Q2xpZW50LnBpcGUodGhpcy5fZGVjb2Rlcik7XG4gICAgdGhpcy5fZGVjb2Rlci5vbignZGF0YScsIHRoaXMuX2hhbmRsZURhdGEuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIHNlbGVjdG9yIGlzIHJlZ2lzdGVyZWQsIFRoZSBtZXNzYWdlIG9mIHRoZSBzZWxlY3RvciBldmVudCB3aWxsIGJlIHJldHVybmVkLiByZWZlciB0byB0aGlzLl9oYW5kbGVEYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvciAgTGlzdGVuIGZvciByZXR1cm4gRFRYTWVzc2FnZS5zZWxlY3RvciBkYXRhXG4gICAqIEBwYXJhbSB7RFRYQ2FsbGJhY2t9IGV2ZW50XG4gICAqL1xuICByZWdpc3RlclNlbGVjdG9yQ2FsbGJhY2sgKHNlbGVjdG9yLCBldmVudCkge1xuICAgIHRoaXMuX2NhbGxiYWNrcy5hZGRMaXN0ZW5lcihzZWxlY3RvciwgZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBldmVudCBpcyByZWdpc3RlcmVkLCBhbGwgdW5yZWdpc3RlcmVkIG1lc3NhZ2VzIHdpbGwgYmUgcmV0dXJuZWQgdG8gZXZlbnQuIHJlZmVyIHRvIHRoaXMuX2hhbmRsZURhdGFcbiAgICogQHBhcmFtIHtEVFhDYWxsYmFja30gZXZlbnRcbiAgICovXG4gIHJlZ2lzdGVyVW5kZWZpbmVkQ2FsbGJhY2sgKGV2ZW50KSB7XG4gICAgdGhpcy5fdW5kZWZpbmVkQ2FsbGJhY2sgPSBldmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgZXZlbnQgaXMgcmVnaXN0ZXJlZCwgdGhpcyBjaGFubmVsIHtTRVJWSUNFfSBtZXNzYWdlcyB3aWxsIGJlIHJldHVybmVkIHRvIGV2ZW50LiByZWZlciB0byB0aGlzLl9oYW5kbGVEYXRhXG4gICAqIEl0J3MgYWN0dWFsbHkgbGlzdGVuaW5nIGZvciBpbnQgY2hhbm5lbENvZGUuIEluIHRoaXMuX2NoYW5uZWwgb2JqZWN0IHRvIHJlY29yZCBjaGFubmVsIGtleSBhbmQgaW50IHZhbHVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsIGluc3RydW1lbnRzIHNlcnZpY2UgY2hhbm5lbCBlLmc6IFNFUlZJQ0UuREVWSUNFX0lORk8uXG4gICAqIEBwYXJhbSB7RFRYQ2FsbGJhY2t9IGV2ZW50XG4gICAqL1xuICBhc3luYyByZWdpc3RlckNoYW5uZWxDYWxsYmFjayAoY2hhbm5lbCwgZXZlbnQpIHtcbiAgICBjb25zdCBjaGFubmVsSWQgPSBhd2FpdCB0aGlzLm1ha2VDaGFubmVsKGNoYW5uZWwpO1xuICAgIHRoaXMuX2NoYW5uZWxDYWxsYmFja3MuYWRkTGlzdGVuZXIoY2hhbm5lbElkLCBldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2VydmljZSBjaGFubmVsLCBkYXRhIHRyYW5zbWlzc2lvbiBvZiB0aGUgc2VydmljZSB3aWxsIHVzZSB0aGlzIGNoYW5uZWxDb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsICBpbnN0cnVtZW50cyBzZXJ2aWNlIGNoYW5uZWwgZS5nOiBTRVJWSUNFLkRFVklDRV9JTkZPXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcnwqPn0gaW5zdHJ1bWVudHMgc2VydmljZSBjaGFubmVsIGNvZGUgZm9yIGRhdGEgdHJhbnNtaXNzaW9uXG4gICAqL1xuICBhc3luYyBtYWtlQ2hhbm5lbCAoY2hhbm5lbCkge1xuICAgIGlmIChjaGFubmVsIGluIHRoaXMuX2NoYW5uZWxzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hhbm5lbHNbY2hhbm5lbF07XG4gICAgfVxuICAgIGNvbnN0IGNoYW5uZWxDb2RlID0gT2JqZWN0LmtleXModGhpcy5fY2hhbm5lbHMpLmxlbmd0aCArIDE7XG4gICAgYXdhaXQgdGhpcy5fY2FsbENoYW5uZWwodHJ1ZSwgMCwgJ19yZXF1ZXN0Q2hhbm5lbFdpdGhDb2RlOmlkZW50aWZpZXI6JywgY2hhbm5lbENvZGUsIGNoYW5uZWwpO1xuICAgIHRoaXMuX2NoYW5uZWxzW2NoYW5uZWxdID0gY2hhbm5lbENvZGU7XG4gICAgcmV0dXJuIGNoYW5uZWxDb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGdlbmVyYWwsIHdlIGNhbGwgdGhpcyBtZXRob2QgdG8gc3RhcnQgdGhlIGluc3RydW1lbnQgZHR4IHNlcnZpY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWwgaW5zdHJ1bWVudCBkdHggc2VydmljZSBlLmc6IFNFUlZJQ0UuREVWSUNFX0lORk9cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yIGluc3RydW1lbnQgc2VydmljZSBtZXRob2QgbmFtZSAocmVmbGVjdGlvbiBjYWxscylcbiAgICogQHBhcmFtIHsuLi5hbnl9IGF1eGlsaWFyaWVzIHBhcmFtZXRlcnMgcmVxdWlyZWQgYnkgc2VsZWN0b3JcbiAgICogQHJldHVybnMge1Byb21pc2U8RFRYTWVzc2FnZT59XG4gICAqIGV4YW1wbGXvvJpcbiAgICogaW5zdHJ1bWVudFNlcnZpY2UuY2FsbENoYW5uZWwoU0VSVklDRS5QUk9DRVNTX0NPTlRST0wsXG4gICAgICAgICdsYXVuY2hTdXNwZW5kZWRQcm9jZXNzV2l0aERldmljZVBhdGg6YnVuZGxlSWRlbnRpZmllcjplbnZpcm9ubWVudDphcmd1bWVudHM6b3B0aW9uczonLCAnJyxcbiAgICAgICAgYnVuZGxlSUQsIHt9LCBbXSwgeydTdGFydFN1c3BlbmRlZEtleSc6IDAsICdLaWxsRXhpc3RpbmcnOiAxfVxuICAgKi9cbiAgYXN5bmMgY2FsbENoYW5uZWwgKGNoYW5uZWwsIHNlbGVjdG9yLCAuLi5hdXhpbGlhcmllcykge1xuICAgIGNvbnN0IGNoYW5uZWxDb2RlID0gYXdhaXQgdGhpcy5tYWtlQ2hhbm5lbChjaGFubmVsKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2FsbENoYW5uZWwodHJ1ZSwgY2hhbm5lbENvZGUsIHNlbGVjdG9yLCAuLi5hdXhpbGlhcmllcyk7XG4gIH1cblxuICBhc3luYyBfY2FsbENoYW5uZWwgKHN5bmMsIGNoYW5uZWxDb2RlLCBzZWxlY3RvciwgLi4uYXV4aWxpYXJpZXMpIHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy5fbmV4dElkZW50aWZpZXI7XG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZSh7c3luYywgY2hhbm5lbENvZGUsIHNlbGVjdG9yLCBhdXhpbGlhcmllcywgaWRlbnRpZmllcn0pO1xuICAgICsrdGhpcy5fbmV4dElkZW50aWZpZXI7XG4gICAgaWYgKHN5bmMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBxdWV1ZSA9IHRoaXMuX3JlcGx5UXVldWVzW2lkZW50aWZpZXJdO1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBxdWV1ZS5zaGlmdCgpO1xuICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChkYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7d2FpdE1zOiBXQUlUX1JFUExZX1RJTUVfTVMsIGludGVydmFsTXM6IENIRUNLX0ZSRVFfTVMsIGVycm9yOiAncmVwbHkgY2hhbm5lbCBkYXRhIHRpbWVvdXQnfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxpbmcgcmVnaXN0ZXJlZCBhc3luY2hyb25vdXMgbWVzc2FnZSBjYWxsYmFja3NcbiAgICogQHBhcmFtIHtEVFhNZXNzYWdlfSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfaGFuZGxlRGF0YSAoZGF0YSkge1xuICAgIGlmIChfLmluY2x1ZGVzKGRhdGEuc2VsZWN0b3IsIENIQU5ORUxfQ0FOQ0VMRUQpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICAgIGlmIChkYXRhLmNvbnZlcnNhdGlvbkluZGV4ID09PSAxKSB7XG4gICAgICB0aGlzLl9yZXBseVF1ZXVlc1tkYXRhLmlkZW50aWZpZXJdLnB1c2goZGF0YSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jaGFubmVsQ2FsbGJhY2tzLmxpc3RlbmVyQ291bnQoQ0hBTk5FTF9PRkZTRVQgLSBkYXRhLmNoYW5uZWxDb2RlKSA+IDApIHtcbiAgICAgIHRoaXMuX2NoYW5uZWxDYWxsYmFja3MuZW1pdChDSEFOTkVMX09GRlNFVCAtIGRhdGEuY2hhbm5lbENvZGUsIGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZWxlY3RvciA9IGRhdGEuc2VsZWN0b3I7XG4gICAgICBpZiAoXy5pc1N0cmluZyhzZWxlY3RvcikgJiYgdGhpcy5fY2FsbGJhY2tzLmxpc3RlbmVyQ291bnQoc2VsZWN0b3IpID4gMCkge1xuICAgICAgICB0aGlzLl9jYWxsYmFja3MuZW1pdChzZWxlY3RvciwgZGF0YSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3VuZGVmaW5lZENhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuX3VuZGVmaW5lZENhbGxiYWNrKGRhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEuZXhwZWN0c1JlcGx5KSB7XG4gICAgICAgIHRoaXMuX3JlcGx5QWNrKGRhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gYSBlbXB0eSBhY2sgbWVzc2FnZVxuICAgKiBAcGFyYW0ge0RUWE1lc3NhZ2V9IGRhdGFcbiAgICovXG4gIF9yZXBseUFjayAoZGF0YSkge1xuICAgIGNvbnN0IHJlcGx5ID0gbmV3IERUWE1lc3NhZ2Uoe1xuICAgICAgaWRlbnRpZmllcjogZGF0YS5pZGVudGlmaWVyLFxuICAgICAgY2hhbm5lbENvZGU6IGRhdGEuY2hhbm5lbENvZGUsXG4gICAgICBzZWxlY3RvcjogQnVmZmVyLmFsbG9jKEVNUFRZX01FU1NBR0VfU0laRSksXG4gICAgICBjb252ZXJzYXRpb25JbmRleDogZGF0YS5jb252ZXJzYXRpb25JbmRleCArIDEsXG4gICAgICBmbGFnczogRkxBR19UWVBFUy5yZXBseVxuICAgIH0pO1xuICAgIHRoaXMuX3NvY2tldENsaWVudC53cml0ZShyZXBseS5idWlsZCgpKTtcbiAgfVxufVxuXG5leHBvcnQgeyBJbnN0cnVtZW50U2VydmljZSwgSU5TVFJVTUVOVF9TRVJWSUNFX05BTUVfVkVSU0lPTl8xNCwgSU5TVFJVTUVOVF9TRVJWSUNFX05BTUUgfTtcbiJdLCJmaWxlIjoibGliL2luc3RydW1lbnQvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
187
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pbnN0cnVtZW50L2luZGV4LmpzIl0sIm5hbWVzIjpbIkNIRUNLX0ZSRVFfTVMiLCJXQUlUX1JFUExZX1RJTUVfTVMiLCJFTVBUWV9NRVNTQUdFX1NJWkUiLCJDSEFOTkVMX0NBTkNFTEVEIiwiQ0hBTk5FTF9PRkZTRVQiLCJJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0IiwiSU5TVFJVTUVOVF9TRVJWSUNFX05BTUUiLCJJTlNUUlVNRU5UX0NIQU5ORUwiLCJPYmplY3QiLCJmcmVlemUiLCJERVZJQ0VfSU5GTyIsIlBST0NFU1NfQ09OVFJPTCIsIlNZU01PTlRBUCIsIk5FVFdPUktJTkciLCJNT0JJTEVfTk9USUZJQ0FUSU9OUyIsIkdSQVBISUNTX09QRU5HTCIsIkFQUExJQ0FUSU9OX0xJU1RJTkciLCJDT05ESVRJT05fSU5EVUNFUiIsImRlZmF1bHREaWN0IiwiY3JlYXRlVmFsdWUiLCJQcm94eSIsImNyZWF0ZSIsImdldCIsInN0b3JhZ2UiLCJwcm9wZXJ0eSIsIkluc3RydW1lbnRTZXJ2aWNlIiwiQmFzZVNlcnZpY2VTb2NrZXQiLCJjb25zdHJ1Y3RvciIsInNvY2tldENsaWVudCIsImV2ZW50IiwiX3VuZGVmaW5lZENhbGxiYWNrIiwiX2NhbGxiYWNrcyIsImV2ZW50cyIsIkV2ZW50RW1pdHRlciIsIl9jaGFubmVsQ2FsbGJhY2tzIiwiX3JlcGx5UXVldWVzIiwiX2NoYW5uZWxzIiwiX25leHRJZGVudGlmaWVyIiwiX2VuY29kZXIiLCJEVFhFbmNvZGVyIiwicGlwZSIsIl9zb2NrZXRDbGllbnQiLCJfYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzIiwiX2RlY29kZXIiLCJEVFhEZWNvZGVyIiwib24iLCJfaGFuZGxlRGF0YSIsImJpbmQiLCJyZWdpc3RlclNlbGVjdG9yQ2FsbGJhY2siLCJzZWxlY3RvciIsImFkZExpc3RlbmVyIiwicmVnaXN0ZXJVbmRlZmluZWRDYWxsYmFjayIsInJlZ2lzdGVyQ2hhbm5lbENhbGxiYWNrIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsIm1ha2VDaGFubmVsIiwiY2hhbm5lbENvZGUiLCJrZXlzIiwibGVuZ3RoIiwiX2NhbGxDaGFubmVsIiwiY2FsbENoYW5uZWwiLCJhdXhpbGlhcmllcyIsInN5bmMiLCJpZGVudGlmaWVyIiwid3JpdGUiLCJxdWV1ZSIsImRhdGEiLCJzaGlmdCIsIl8iLCJpc1VuZGVmaW5lZCIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnJvciIsImVyciIsImNsb3NlIiwiRXJyb3IiLCJpbmNsdWRlcyIsImNvbnZlcnNhdGlvbkluZGV4IiwicHVzaCIsImxpc3RlbmVyQ291bnQiLCJlbWl0IiwiaXNTdHJpbmciLCJleHBlY3RzUmVwbHkiLCJfcmVwbHlBY2siLCJyZXBseSIsIkRUWE1lc3NhZ2UiLCJCdWZmZXIiLCJhbGxvYyIsImZsYWdzIiwiRkxBR19UWVBFUyIsImJ1aWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGFBQWEsR0FBRyxHQUF0QjtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLEtBQTNCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxrQkFBekI7QUFDQSxNQUFNQyxjQUFjLEdBQUcsS0FBSyxFQUE1QjtBQUVBLE1BQU1DLGtDQUFrQyxHQUFHLHlEQUEzQzs7QUFDQSxNQUFNQyx1QkFBdUIsR0FBRyxvQ0FBaEM7O0FBRU8sTUFBTUMsa0JBQWtCLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQzlDQyxFQUFBQSxXQUFXLEVBQUUsa0RBRGlDO0FBRTlDQyxFQUFBQSxlQUFlLEVBQUUsc0RBRjZCO0FBRzlDQyxFQUFBQSxTQUFTLEVBQUUsaURBSG1DO0FBSTlDQyxFQUFBQSxVQUFVLEVBQUUsa0RBSmtDO0FBSzlDQyxFQUFBQSxvQkFBb0IsRUFBRSwyREFMd0I7QUFNOUNDLEVBQUFBLGVBQWUsRUFBRSx1REFONkI7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QUFFM0JQLE1BQUFBLFdBQVcsRUFBRVUsSUFBSSxDQUFDVixXQUZTO0FBRzNCUCxNQUFBQSxRQUFRLEVBQUVxQyxNQUFNLENBQUNDLEtBQVAsQ0FBYXJGLGtCQUFiLENBSGlCO0FBSTNCMkUsTUFBQUEsaUJBQWlCLEVBQUVYLElBQUksQ0FBQ1csaUJBQUwsR0FBeUIsQ0FKakI7QUFLM0JXLE1BQUFBLEtBQUssRUFBRUMsb0JBQVdMO0FBTFMsS0FBZixDQUFkOztBQU9BLFNBQUszQyxhQUFMLENBQW1CdUIsS0FBbkIsQ0FBeUJvQixLQUFLLENBQUNNLEtBQU4sRUFBekI7QUFDRDs7QUF2SStDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZVxuXG5pbXBvcnQge0Jhc2VTZXJ2aWNlU29ja2V0fSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuaW1wb3J0IHtEVFhNZXNzYWdlLCBGTEFHX1RZUEVTfSBmcm9tICcuL2hlYWRlcnMnO1xuaW1wb3J0IHtEVFhFbmNvZGVyfSBmcm9tICcuL3RyYW5zZm9ybWVyL2R0eC1lbmNvZGUnO1xuaW1wb3J0IHtEVFhEZWNvZGVyfSBmcm9tICcuL3RyYW5zZm9ybWVyL2R0eC1kZWNvZGUnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICdldmVudHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7d2FpdEZvckNvbmRpdGlvbn0gZnJvbSAnYXN5bmNib3gnO1xuXG5jb25zdCBDSEVDS19GUkVRX01TID0gNTAwO1xuY29uc3QgV0FJVF9SRVBMWV9USU1FX01TID0gMTAwMDA7XG5jb25zdCBFTVBUWV9NRVNTQUdFX1NJWkUgPSAxNjtcbmNvbnN0IENIQU5ORUxfQ0FOQ0VMRUQgPSAnX2NoYW5uZWxDYW5jZWxlZCc7XG5jb25zdCBDSEFOTkVMX09GRlNFVCA9IDIgKiogMzI7XG5cbmNvbnN0IElOU1RSVU1FTlRfU0VSVklDRV9OQU1FX1ZFUlNJT05fMTQgPSAnY29tLmFwcGxlLmluc3RydW1lbnRzLnJlbW90ZXNlcnZlci5EVlRTZWN1cmVTb2NrZXRQcm94eSc7XG5jb25zdCBJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRSA9ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMucmVtb3Rlc2VydmVyJztcblxuZXhwb3J0IGNvbnN0IElOU1RSVU1FTlRfQ0hBTk5FTCA9IE9iamVjdC5mcmVlemUoe1xuICBERVZJQ0VfSU5GTzogJ2NvbS5hcHBsZS5pbnN0cnVtZW50cy5zZXJ2ZXIuc2VydmljZXMuZGV2aWNlaW5mbycsXG4gIFBST0NFU1NfQ09OVFJPTDogJ2NvbS5hcHBsZS5pbnN0cnVtZW50cy5zZXJ2ZXIuc2VydmljZXMucHJvY2Vzc2NvbnRyb2wnLFxuICBTWVNNT05UQVA6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLnN5c21vbnRhcCcsXG4gIE5FVFdPUktJTkc6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLm5ldHdvcmtpbmcnLFxuICBNT0JJTEVfTk9USUZJQ0FUSU9OUzogJ2NvbS5hcHBsZS5pbnN0cnVtZW50cy5zZXJ2ZXIuc2VydmljZXMubW9iaWxlbm90aWZpY2F0aW9ucycsXG4gIEdSQVBISUNTX09QRU5HTDogJ2NvbS5hcHBsZS5pbnN0cnVtZW50cy5zZXJ2ZXIuc2VydmljZXMuZ3JhcGhpY3Mub3BlbmdsJyxcbiAgQVBQTElDQVRJT05fTElTVElORzogJ2NvbS5hcHBsZS5pbnN0cnVtZW50cy5zZXJ2ZXIuc2VydmljZXMuZGV2aWNlLmFwcGxpY3Rpb25MaXN0aW5nJyxcbiAgQ09ORElUSU9OX0lORFVDRVI6ICdjb20uYXBwbGUuaW5zdHJ1bWVudHMuc2VydmVyLnNlcnZpY2VzLkNvbmRpdGlvbkluZHVjZXInXG59KTtcblxuZnVuY3Rpb24gZGVmYXVsdERpY3QgKGNyZWF0ZVZhbHVlKSB7XG4gIHJldHVybiBuZXcgUHJveHkoT2JqZWN0LmNyZWF0ZShudWxsKSwge1xuICAgIGdldCAoc3RvcmFnZSwgcHJvcGVydHkpIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHN0b3JhZ2UpKSB7XG4gICAgICAgIHN0b3JhZ2VbcHJvcGVydHldID0gY3JlYXRlVmFsdWUocHJvcGVydHkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0b3JhZ2VbcHJvcGVydHldO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZSBkYXRhIHRyYW5zbWlzc2lvbiBpbiBpbnN0cnVtZW50IHNlcnZlXG4gKiBAbmFtZSBEVFhDYWxsYmFja1xuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge0RUWE1lc3NhZ2V9IG9iamVjdFxuKi9cblxuLyoqXG4gKiBAcGFyYW0ge1NvY2tldH0gc29ja2V0Q2xpZW50ICBEVFhNZXNzYWdlLnNlbGVjdG9yXG4gKiBAcGFyYW0gez9EVFhDYWxsYmFja30gZXZlbnQgaWYgZW1wdHkgd2lsbCBpZ25vcmUgYW55IG1lc3NhZ2VzXG4gKi9cbmNsYXNzIEluc3RydW1lbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2VTb2NrZXQge1xuICBjb25zdHJ1Y3RvciAoc29ja2V0Q2xpZW50LCBldmVudCkge1xuICAgIHN1cGVyKHNvY2tldENsaWVudCk7XG4gICAgdGhpcy5fdW5kZWZpbmVkQ2FsbGJhY2sgPSBldmVudDtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSBuZXcgZXZlbnRzLkV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMuX2NoYW5uZWxDYWxsYmFja3MgPSBuZXcgZXZlbnRzLkV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMuX3JlcGx5UXVldWVzID0gZGVmYXVsdERpY3QoKCkgPT4gW10pO1xuICAgIHRoaXMuX2NoYW5uZWxzID0ge307XG4gICAgdGhpcy5fbmV4dElkZW50aWZpZXIgPSAxO1xuICAgIHRoaXMuX2VuY29kZXIgPSBuZXcgRFRYRW5jb2RlcigpO1xuICAgIHRoaXMuX2VuY29kZXIucGlwZSh0aGlzLl9zb2NrZXRDbGllbnQpO1xuICAgIHRoaXMuX2Fzc2lnbkNsaWVudEZhaWx1cmVIYW5kbGVycyh0aGlzLl9lbmNvZGVyKTtcbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IERUWERlY29kZXIoKTtcbiAgICB0aGlzLl9zb2NrZXRDbGllbnQucGlwZSh0aGlzLl9kZWNvZGVyKTtcbiAgICB0aGlzLl9kZWNvZGVyLm9uKCdkYXRhJywgdGhpcy5faGFuZGxlRGF0YS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2VsZWN0b3IgaXMgcmVnaXN0ZXJlZCwgVGhlIG1lc3NhZ2Ugb2YgdGhlIHNlbGVjdG9yIGV2ZW50IHdpbGwgYmUgcmV0dXJuZWQuIHJlZmVyIHRvIHRoaXMuX2hhbmRsZURhdGFcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yICBMaXN0ZW4gZm9yIHJldHVybiBEVFhNZXNzYWdlLnNlbGVjdG9yIGRhdGFcbiAgICogQHBhcmFtIHtEVFhDYWxsYmFja30gZXZlbnRcbiAgICovXG4gIHJlZ2lzdGVyU2VsZWN0b3JDYWxsYmFjayAoc2VsZWN0b3IsIGV2ZW50KSB7XG4gICAgdGhpcy5fY2FsbGJhY2tzLmFkZExpc3RlbmVyKHNlbGVjdG9yLCBldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGV2ZW50IGlzIHJlZ2lzdGVyZWQsIGFsbCB1bnJlZ2lzdGVyZWQgbWVzc2FnZXMgd2lsbCBiZSByZXR1cm5lZCB0byBldmVudC4gcmVmZXIgdG8gdGhpcy5faGFuZGxlRGF0YVxuICAgKiBAcGFyYW0ge0RUWENhbGxiYWNrfSBldmVudFxuICAgKi9cbiAgcmVnaXN0ZXJVbmRlZmluZWRDYWxsYmFjayAoZXZlbnQpIHtcbiAgICB0aGlzLl91bmRlZmluZWRDYWxsYmFjayA9IGV2ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBldmVudCBpcyByZWdpc3RlcmVkLCB0aGlzIGNoYW5uZWwge0NIQU5ORUx9IG1lc3NhZ2VzIHdpbGwgYmUgcmV0dXJuZWQgdG8gZXZlbnQuIHJlZmVyIHRvIHRoaXMuX2hhbmRsZURhdGFcbiAgICogSXQncyBhY3R1YWxseSBsaXN0ZW5pbmcgZm9yIGludCBjaGFubmVsQ29kZS4gSW4gdGhpcy5fY2hhbm5lbCBvYmplY3QgdG8gcmVjb3JkIGNoYW5uZWwga2V5IGFuZCBpbnQgdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWwgaW5zdHJ1bWVudHMgc2VydmljZSBjaGFubmVsIGUuZzogSU5TVFJVTUVOVF9DSEFOTkVMLkRFVklDRV9JTkZPLlxuICAgKiBAcGFyYW0ge0RUWENhbGxiYWNrfSBldmVudFxuICAgKi9cbiAgYXN5bmMgcmVnaXN0ZXJDaGFubmVsQ2FsbGJhY2sgKGNoYW5uZWwsIGV2ZW50KSB7XG4gICAgY29uc3QgY2hhbm5lbElkID0gYXdhaXQgdGhpcy5tYWtlQ2hhbm5lbChjaGFubmVsKTtcbiAgICB0aGlzLl9jaGFubmVsQ2FsbGJhY2tzLmFkZExpc3RlbmVyKGNoYW5uZWxJZCwgZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNlcnZpY2UgY2hhbm5lbCwgZGF0YSB0cmFuc21pc3Npb24gb2YgdGhlIHNlcnZpY2Ugd2lsbCB1c2UgdGhpcyBjaGFubmVsQ29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbCAgaW5zdHJ1bWVudHMgc2VydmljZSBjaGFubmVsIGUuZzogSU5TVFJVTUVOVF9DSEFOTkVMLkRFVklDRV9JTkZPXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcnwqPn0gaW5zdHJ1bWVudHMgc2VydmljZSBjaGFubmVsIGNvZGUgZm9yIGRhdGEgdHJhbnNtaXNzaW9uXG4gICAqL1xuICBhc3luYyBtYWtlQ2hhbm5lbCAoY2hhbm5lbCkge1xuICAgIGlmIChjaGFubmVsIGluIHRoaXMuX2NoYW5uZWxzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hhbm5lbHNbY2hhbm5lbF07XG4gICAgfVxuICAgIGNvbnN0IGNoYW5uZWxDb2RlID0gT2JqZWN0LmtleXModGhpcy5fY2hhbm5lbHMpLmxlbmd0aCArIDE7XG4gICAgYXdhaXQgdGhpcy5fY2FsbENoYW5uZWwodHJ1ZSwgMCwgJ19yZXF1ZXN0Q2hhbm5lbFdpdGhDb2RlOmlkZW50aWZpZXI6JywgY2hhbm5lbENvZGUsIGNoYW5uZWwpO1xuICAgIHRoaXMuX2NoYW5uZWxzW2NoYW5uZWxdID0gY2hhbm5lbENvZGU7XG4gICAgcmV0dXJuIGNoYW5uZWxDb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGdlbmVyYWwsIHdlIGNhbGwgdGhpcyBtZXRob2QgdG8gc3RhcnQgdGhlIGluc3RydW1lbnQgZHR4IHNlcnZpY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWwgaW5zdHJ1bWVudCBkdHggc2VydmljZSBlLmc6IElOU1RSVU1FTlRfQ0hBTk5FTC5ERVZJQ0VfSU5GT1xuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3IgaW5zdHJ1bWVudCBzZXJ2aWNlIG1ldGhvZCBuYW1lIChyZWZsZWN0aW9uIGNhbGxzKVxuICAgKiBAcGFyYW0gey4uLmFueX0gYXV4aWxpYXJpZXMgcGFyYW1ldGVycyByZXF1aXJlZCBieSBzZWxlY3RvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEVFhNZXNzYWdlPn1cbiAgICogZXhhbXBsZe+8mlxuICAgKiBpbnN0cnVtZW50U2VydmljZS5jYWxsQ2hhbm5lbChJTlNUUlVNRU5UX0NIQU5ORUwuUFJPQ0VTU19DT05UUk9MLFxuICAgICAgICAnbGF1bmNoU3VzcGVuZGVkUHJvY2Vzc1dpdGhEZXZpY2VQYXRoOmJ1bmRsZUlkZW50aWZpZXI6ZW52aXJvbm1lbnQ6YXJndW1lbnRzOm9wdGlvbnM6JywgJycsXG4gICAgICAgIGJ1bmRsZUlELCB7fSwgW10sIHsnU3RhcnRTdXNwZW5kZWRLZXknOiAwLCAnS2lsbEV4aXN0aW5nJzogMX1cbiAgICovXG4gIGFzeW5jIGNhbGxDaGFubmVsIChjaGFubmVsLCBzZWxlY3RvciwgLi4uYXV4aWxpYXJpZXMpIHtcbiAgICBjb25zdCBjaGFubmVsQ29kZSA9IGF3YWl0IHRoaXMubWFrZUNoYW5uZWwoY2hhbm5lbCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NhbGxDaGFubmVsKHRydWUsIGNoYW5uZWxDb2RlLCBzZWxlY3RvciwgLi4uYXV4aWxpYXJpZXMpO1xuICB9XG5cbiAgYXN5bmMgX2NhbGxDaGFubmVsIChzeW5jLCBjaGFubmVsQ29kZSwgc2VsZWN0b3IsIC4uLmF1eGlsaWFyaWVzKSB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IHRoaXMuX25leHRJZGVudGlmaWVyO1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoe3N5bmMsIGNoYW5uZWxDb2RlLCBzZWxlY3RvciwgYXV4aWxpYXJpZXMsIGlkZW50aWZpZXJ9KTtcbiAgICArK3RoaXMuX25leHRJZGVudGlmaWVyO1xuICAgIGlmIChzeW5jKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcXVldWUgPSB0aGlzLl9yZXBseVF1ZXVlc1tpZGVudGlmaWVyXTtcbiAgICAgICAgICBjb25zdCBkYXRhID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge3dhaXRNczogV0FJVF9SRVBMWV9USU1FX01TLCBpbnRlcnZhbE1zOiBDSEVDS19GUkVRX01TLCBlcnJvcjogJ3JlcGx5IGNoYW5uZWwgZGF0YSB0aW1lb3V0J30pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsaW5nIHJlZ2lzdGVyZWQgYXN5bmNocm9ub3VzIG1lc3NhZ2UgY2FsbGJhY2tzXG4gICAqIEBwYXJhbSB7RFRYTWVzc2FnZX0gZGF0YVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2hhbmRsZURhdGEgKGRhdGEpIHtcbiAgICBpZiAoXy5pbmNsdWRlcyhkYXRhLnNlbGVjdG9yLCBDSEFOTkVMX0NBTkNFTEVEKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgICBpZiAoZGF0YS5jb252ZXJzYXRpb25JbmRleCA9PT0gMSkge1xuICAgICAgdGhpcy5fcmVwbHlRdWV1ZXNbZGF0YS5pZGVudGlmaWVyXS5wdXNoKGRhdGEpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY2hhbm5lbENhbGxiYWNrcy5saXN0ZW5lckNvdW50KENIQU5ORUxfT0ZGU0VUIC0gZGF0YS5jaGFubmVsQ29kZSkgPiAwKSB7XG4gICAgICB0aGlzLl9jaGFubmVsQ2FsbGJhY2tzLmVtaXQoQ0hBTk5FTF9PRkZTRVQgLSBkYXRhLmNoYW5uZWxDb2RlLCBkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBkYXRhLnNlbGVjdG9yO1xuICAgICAgaWYgKF8uaXNTdHJpbmcoc2VsZWN0b3IpICYmIHRoaXMuX2NhbGxiYWNrcy5saXN0ZW5lckNvdW50KHNlbGVjdG9yKSA+IDApIHtcbiAgICAgICAgdGhpcy5fY2FsbGJhY2tzLmVtaXQoc2VsZWN0b3IsIGRhdGEpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl91bmRlZmluZWRDYWxsYmFjaykge1xuICAgICAgICB0aGlzLl91bmRlZmluZWRDYWxsYmFjayhkYXRhKTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhLmV4cGVjdHNSZXBseSkge1xuICAgICAgICB0aGlzLl9yZXBseUFjayhkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGEgZW1wdHkgYWNrIG1lc3NhZ2VcbiAgICogQHBhcmFtIHtEVFhNZXNzYWdlfSBkYXRhXG4gICAqL1xuICBfcmVwbHlBY2sgKGRhdGEpIHtcbiAgICBjb25zdCByZXBseSA9IG5ldyBEVFhNZXNzYWdlKHtcbiAgICAgIGlkZW50aWZpZXI6IGRhdGEuaWRlbnRpZmllcixcbiAgICAgIGNoYW5uZWxDb2RlOiBkYXRhLmNoYW5uZWxDb2RlLFxuICAgICAgc2VsZWN0b3I6IEJ1ZmZlci5hbGxvYyhFTVBUWV9NRVNTQUdFX1NJWkUpLFxuICAgICAgY29udmVyc2F0aW9uSW5kZXg6IGRhdGEuY29udmVyc2F0aW9uSW5kZXggKyAxLFxuICAgICAgZmxhZ3M6IEZMQUdfVFlQRVMucmVwbHlcbiAgICB9KTtcbiAgICB0aGlzLl9zb2NrZXRDbGllbnQud3JpdGUocmVwbHkuYnVpbGQoKSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgSW5zdHJ1bWVudFNlcnZpY2UsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FX1ZFUlNJT05fMTQsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FIH07XG4iXSwiZmlsZSI6ImxpYi9pbnN0cnVtZW50L2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.MC_INSTALL_SERVICE_NAME = exports.MCInstallProxyService = void 0;
7
+
8
+ require("source-map-support/register");
9
+
10
+ var _baseService = require("../base-service");
11
+
12
+ var _support = require("@appium/support");
13
+
14
+ const MC_INSTALL_SERVICE_NAME = 'com.apple.mobile.MCInstall';
15
+ exports.MC_INSTALL_SERVICE_NAME = MC_INSTALL_SERVICE_NAME;
16
+ const ACKNOWLEDGED = 'Acknowledged';
17
+
18
+ function checkACK(res, name) {
19
+ if (res.Status !== ACKNOWLEDGED) {
20
+ throw new Error(`${name} error: ${JSON.stringify(res)}`);
21
+ }
22
+
23
+ return res;
24
+ }
25
+
26
+ class MCInstallProxyService extends _baseService.BaseServicePlist {
27
+ constructor(socketClient) {
28
+ super(socketClient);
29
+ }
30
+
31
+ async getProfileList() {
32
+ const res = await this._plistService.sendPlistAndReceive({
33
+ RequestType: 'GetProfileList'
34
+ });
35
+ return checkACK(res, 'getProfileList');
36
+ }
37
+
38
+ async installProfile(path) {
39
+ const payload = await _support.fs.readFile(path);
40
+ const res = await this._plistService.sendPlistAndReceive({
41
+ 'RequestType': 'InstallProfile',
42
+ 'Payload': payload
43
+ });
44
+ return checkACK(res, 'installProfile');
45
+ }
46
+
47
+ async removeProfile(ident) {
48
+ const profiles = await this.getProfileList();
49
+ const meta = profiles.ProfileMetadata[ident];
50
+
51
+ if (!meta) {
52
+ throw new Error(`not find installed profile ident:${ident}`);
53
+ }
54
+
55
+ const data = _support.plist.createBinaryPlist({
56
+ 'PayloadType': 'Configuration',
57
+ 'PayloadIdentifier': ident,
58
+ 'PayloadUUID': meta.PayloadUUID,
59
+ 'PayloadVersion': meta.PayloadVersion
60
+ });
61
+
62
+ const res = await this._plistService.sendPlistAndReceive({
63
+ 'RequestType': 'RemoveProfile',
64
+ 'ProfileIdentifier': data
65
+ });
66
+ return checkACK(res, 'removeProfile');
67
+ }
68
+
69
+ }
70
+
71
+ exports.MCInstallProxyService = MCInstallProxyService;
72
+ var _default = MCInstallProxyService;
73
+ exports.default = _default;require('source-map-support').install();
74
+
75
+
76
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9tY2luc3RhbGwvaW5kZXguanMiXSwibmFtZXMiOlsiTUNfSU5TVEFMTF9TRVJWSUNFX05BTUUiLCJBQ0tOT1dMRURHRUQiLCJjaGVja0FDSyIsInJlcyIsIm5hbWUiLCJTdGF0dXMiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJNQ0luc3RhbGxQcm94eVNlcnZpY2UiLCJCYXNlU2VydmljZVBsaXN0IiwiY29uc3RydWN0b3IiLCJzb2NrZXRDbGllbnQiLCJnZXRQcm9maWxlTGlzdCIsIl9wbGlzdFNlcnZpY2UiLCJzZW5kUGxpc3RBbmRSZWNlaXZlIiwiUmVxdWVzdFR5cGUiLCJpbnN0YWxsUHJvZmlsZSIsInBhdGgiLCJwYXlsb2FkIiwiZnMiLCJyZWFkRmlsZSIsInJlbW92ZVByb2ZpbGUiLCJpZGVudCIsInByb2ZpbGVzIiwibWV0YSIsIlByb2ZpbGVNZXRhZGF0YSIsImRhdGEiLCJwbGlzdCIsImNyZWF0ZUJpbmFyeVBsaXN0IiwiUGF5bG9hZFVVSUQiLCJQYXlsb2FkVmVyc2lvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0EsTUFBTUEsdUJBQXVCLEdBQUcsNEJBQWhDOztBQUNBLE1BQU1DLFlBQVksR0FBRyxjQUFyQjs7QUFFQSxTQUFTQyxRQUFULENBQW1CQyxHQUFuQixFQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsTUFBSUQsR0FBRyxDQUFDRSxNQUFKLEtBQWVKLFlBQW5CLEVBQWlDO0FBQy9CLFVBQU0sSUFBSUssS0FBSixDQUFXLEdBQUVGLElBQUssV0FBVUcsSUFBSSxDQUFDQyxTQUFMLENBQWVMLEdBQWYsQ0FBb0IsRUFBaEQsQ0FBTjtBQUNEOztBQUNELFNBQU9BLEdBQVA7QUFDRDs7QUFFRCxNQUFNTSxxQkFBTixTQUFvQ0MsNkJBQXBDLENBQXFEO0FBQ25EQyxFQUFBQSxXQUFXLENBQUVDLFlBQUYsRUFBZ0I7QUFDekIsVUFBTUEsWUFBTjtBQUNEOztBQWlDbUIsUUFBZEMsY0FBYyxHQUFJO0FBQ3RCLFVBQU1WLEdBQUcsR0FBRyxNQUFNLEtBQUtXLGFBQUwsQ0FBbUJDLG1CQUFuQixDQUF1QztBQUFDQyxNQUFBQSxXQUFXLEVBQUU7QUFBZCxLQUF2QyxDQUFsQjtBQUNBLFdBQU9kLFFBQVEsQ0FBQ0MsR0FBRCxFQUFNLGdCQUFOLENBQWY7QUFDRDs7QUFRbUIsUUFBZGMsY0FBYyxDQUFFQyxJQUFGLEVBQVE7QUFDMUIsVUFBTUMsT0FBTyxHQUFHLE1BQU1DLFlBQUdDLFFBQUgsQ0FBWUgsSUFBWixDQUF0QjtBQUNBLFVBQU1mLEdBQUcsR0FBRyxNQUFNLEtBQUtXLGFBQUwsQ0FBbUJDLG1CQUFuQixDQUF1QztBQUFDLHFCQUFlLGdCQUFoQjtBQUFrQyxpQkFBV0k7QUFBN0MsS0FBdkMsQ0FBbEI7QUFDQSxXQUFPakIsUUFBUSxDQUFDQyxHQUFELEVBQU0sZ0JBQU4sQ0FBZjtBQUNEOztBQU9rQixRQUFibUIsYUFBYSxDQUFFQyxLQUFGLEVBQVM7QUFDMUIsVUFBTUMsUUFBUSxHQUFHLE1BQU0sS0FBS1gsY0FBTCxFQUF2QjtBQUNBLFVBQU1ZLElBQUksR0FBR0QsUUFBUSxDQUFDRSxlQUFULENBQXlCSCxLQUF6QixDQUFiOztBQUNBLFFBQUksQ0FBQ0UsSUFBTCxFQUFXO0FBQ1QsWUFBTSxJQUFJbkIsS0FBSixDQUFXLG9DQUFtQ2lCLEtBQU0sRUFBcEQsQ0FBTjtBQUNEOztBQUNELFVBQU1JLElBQUksR0FBR0MsZUFBTUMsaUJBQU4sQ0FBd0I7QUFBQyxxQkFBZSxlQUFoQjtBQUNDLDJCQUFxQk4sS0FEdEI7QUFFQyxxQkFBZUUsSUFBSSxDQUFDSyxXQUZyQjtBQUdDLHdCQUFrQkwsSUFBSSxDQUFDTTtBQUh4QixLQUF4QixDQUFiOztBQUlBLFVBQU01QixHQUFHLEdBQUcsTUFBTSxLQUFLVyxhQUFMLENBQW1CQyxtQkFBbkIsQ0FBdUM7QUFBQyxxQkFBZSxlQUFoQjtBQUFpQywyQkFBcUJZO0FBQXRELEtBQXZDLENBQWxCO0FBQ0EsV0FBT3pCLFFBQVEsQ0FBQ0MsR0FBRCxFQUFNLGVBQU4sQ0FBZjtBQUNEOztBQXRFa0Q7OztlQTBFdENNLHFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYXNlU2VydmljZVBsaXN0fSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuaW1wb3J0IHtmcywgcGxpc3R9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgTUNfSU5TVEFMTF9TRVJWSUNFX05BTUUgPSAnY29tLmFwcGxlLm1vYmlsZS5NQ0luc3RhbGwnO1xuY29uc3QgQUNLTk9XTEVER0VEID0gJ0Fja25vd2xlZGdlZCc7XG5cbmZ1bmN0aW9uIGNoZWNrQUNLIChyZXMsIG5hbWUpIHtcbiAgaWYgKHJlcy5TdGF0dXMgIT09IEFDS05PV0xFREdFRCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBlcnJvcjogJHtKU09OLnN0cmluZ2lmeShyZXMpfWApO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmNsYXNzIE1DSW5zdGFsbFByb3h5U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlUGxpc3Qge1xuICBjb25zdHJ1Y3RvciAoc29ja2V0Q2xpZW50KSB7XG4gICAgc3VwZXIoc29ja2V0Q2xpZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBQcm9maWxlTGlzdFxuICAgKiBAcHJvcGVydHkge0FycmF5fSBPcmRlcmVkSWRlbnRpZmllcnMgbGlzdCBvZiBhbGwgcHJvZmlsZSBpZGVudFxuICAgKiBAcHJvcGVydHkge09iamVjdH0gUHJvZmlsZU1hbmlmZXN0XG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBQcm9maWxlTWV0YWRhdGFcbiAgICogQHByb3BlcnR5IHtTdHJpbmd9IFN0YXR1c1xuICAgKi9cblxuICAvKipcbiAgICogR2V0IGFsbCBwcm9maWxlcyBvZiBpT1MgZGV2aWNlc1xuICAgKiBAcmV0dXJucyB7UHJvZmlsZUxpc3R9XG4gICAqIGUuZy5cbiAgICoge1xuICAgKiAgIE9yZGVyZWRJZGVudGlmaWVyczogWyAnMmZhYzFjMmIzZDY4NDg0MzE4OWIyOTgxYzcxOGIwMTMyODU0YTg0N2EnIF0sXG4gICAqICAgUHJvZmlsZU1hbmlmZXN0OiB7XG4gICAqICAgICAnMmZhYzFjMmIzZDY4NDg0MzE4OWIyOTgxYzcxOGIwMTMyODU0YTg0N2EnOiB7XG4gICAqICAgICAgIERlc2NyaXB0aW9uOiAnQ2hhcmxlcyBQcm94eSBDQSAoNyBEZWMgMjAyMCwgTWFjQm9vay1Qcm8ubG9jYWwpJyxcbiAgICogICAgICAgSXNBY3RpdmU6IHRydWVcbiAgICogICAgIH1cbiAgICogICB9LFxuICAgKiAgIFByb2ZpbGVNZXRhZGF0YToge1xuICAgKiAgICAgJzJmYWMxYzJiM2Q2ODQ4NDMxODliMjk4MWM3MThiMDEzMjg1NGE4NDdhJzoge1xuICAgKiAgICAgICBQYXlsb2FkRGlzcGxheU5hbWU6ICdDaGFybGVzIFByb3h5IENBICg3IERlYyAyMDIwLCBNYWNCb29rLVByby5sb2NhbCknLFxuICAgKiAgICAgICBQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQ6IGZhbHNlLFxuICAgKiAgICAgICBQYXlsb2FkVVVJRDogJ0IzMDAwNUNDLUJDNzMtNEU0Mi04NTQ1LThEQTZDNDRBOEE3MScsXG4gICAqICAgICAgIFBheWxvYWRWZXJzaW9uOiAxXG4gICAqICAgICB9XG4gICAqICAgfSxcbiAgICogICBTdGF0dXM6ICdBY2tub3dsZWRnZWQnXG4gICAqIH1cbiAgICovXG4gIGFzeW5jIGdldFByb2ZpbGVMaXN0ICgpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7UmVxdWVzdFR5cGU6ICdHZXRQcm9maWxlTGlzdCd9KTtcbiAgICByZXR1cm4gY2hlY2tBQ0socmVzLCAnZ2V0UHJvZmlsZUxpc3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0YWxsIHByb2ZpbGUgdG8gaU9TIGRldmljZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCAgbXVzdCBiZSBhIGNlcnRpZmljYXRlIGZpbGUgLlBFTSAuQ0VSIGFuZCBtb3JlIGZvcm1hdHNcbiAgICogZS5nOiAvRG93bmxvYWRzL2NoYXJsZXMtY2VydGlmaWNhdGUucGVtXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IGUuZy4ge1N0YXR1czogJ0Fja25vd2xlZGdlZCd9XG4gICAqL1xuICBhc3luYyBpbnN0YWxsUHJvZmlsZSAocGF0aCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7J1JlcXVlc3RUeXBlJzogJ0luc3RhbGxQcm9maWxlJywgJ1BheWxvYWQnOiBwYXlsb2FkfSk7XG4gICAgcmV0dXJuIGNoZWNrQUNLKHJlcywgJ2luc3RhbGxQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHByb2ZpbGUgZnJvbSBpT1MgZGV2aWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBpZGVudCAgUXVlcnkgaWRlbnRpZmllciBsaXN0IHRocm91Z2ggZ2V0UHJvZmlsZUxpc3QgbWV0aG9kXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IGUuZy4ge1N0YXR1czogJ0Fja25vd2xlZGdlZCd9XG4gICAqL1xuICBhc3luYyByZW1vdmVQcm9maWxlIChpZGVudCkge1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgdGhpcy5nZXRQcm9maWxlTGlzdCgpO1xuICAgIGNvbnN0IG1ldGEgPSBwcm9maWxlcy5Qcm9maWxlTWV0YWRhdGFbaWRlbnRdO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBub3QgZmluZCBpbnN0YWxsZWQgcHJvZmlsZSBpZGVudDoke2lkZW50fWApO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0gcGxpc3QuY3JlYXRlQmluYXJ5UGxpc3QoeydQYXlsb2FkVHlwZSc6ICdDb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQYXlsb2FkSWRlbnRpZmllcic6IGlkZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BheWxvYWRVVUlEJzogbWV0YS5QYXlsb2FkVVVJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQYXlsb2FkVmVyc2lvbic6IG1ldGEuUGF5bG9hZFZlcnNpb259KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9wbGlzdFNlcnZpY2Uuc2VuZFBsaXN0QW5kUmVjZWl2ZSh7J1JlcXVlc3RUeXBlJzogJ1JlbW92ZVByb2ZpbGUnLCAnUHJvZmlsZUlkZW50aWZpZXInOiBkYXRhfSk7XG4gICAgcmV0dXJuIGNoZWNrQUNLKHJlcywgJ3JlbW92ZVByb2ZpbGUnKTtcbiAgfVxufVxuXG5leHBvcnQgeyBNQ0luc3RhbGxQcm94eVNlcnZpY2UsIE1DX0lOU1RBTExfU0VSVklDRV9OQU1FIH07XG5leHBvcnQgZGVmYXVsdCBNQ0luc3RhbGxQcm94eVNlcnZpY2U7XG4iXSwiZmlsZSI6ImxpYi9tY2luc3RhbGwvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -10,6 +10,7 @@ exports.startCrashLogService = startCrashLogService;
10
10
  exports.startHouseArrestService = startHouseArrestService;
11
11
  exports.startInstallationProxyService = startInstallationProxyService;
12
12
  exports.startInstrumentService = startInstrumentService;
13
+ exports.startMCInstallService = startMCInstallService;
13
14
  exports.startNotificationProxyService = startNotificationProxyService;
14
15
  exports.startSimulateLocationService = startSimulateLocationService;
15
16
  exports.startSyslogService = startSyslogService;
@@ -35,6 +36,8 @@ var _houseArrest = require("./house-arrest");
35
36
 
36
37
  var _instrument = require("./instrument");
37
38
 
39
+ var _mcinstall = require("./mcinstall");
40
+
38
41
  var _plistService = _interopRequireDefault(require("./plist-service"));
39
42
 
40
43
  var _semver = _interopRequireDefault(require("semver"));
@@ -120,6 +123,11 @@ async function startInstrumentService(udid, opts = {}) {
120
123
  return new _instrument.InstrumentService(parseInt(osVersion.split('.')[0], 10) < INSTRUMENT_HANDSHAKE_VERSION ? await startService(udid, _instrument.INSTRUMENT_SERVICE_NAME, opts.socket, true) : await startService(udid, _instrument.INSTRUMENT_SERVICE_NAME_VERSION_14, opts.socket));
121
124
  }
122
125
 
126
+ async function startMCInstallService(udid, opts = {}) {
127
+ const socket = await startService(udid, _mcinstall.MC_INSTALL_SERVICE_NAME, opts.socket);
128
+ return new _mcinstall.MCInstallProxyService(new _plistService.default(socket));
129
+ }
130
+
123
131
  async function startService(udid, serviceName, socket, handshakeOnly = false) {
124
132
  const lockdown = await (0, _utilities.startLockdownSession)(udid, socket);
125
133
 
@@ -137,4 +145,4 @@ async function startService(udid, serviceName, socket, handshakeOnly = false) {
137
145
  }require('source-map-support').install();
138
146
 
139
147
 
140
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy5qcyJdLCJuYW1lcyI6WyJDUkFTSF9MT0dfU0VSVklDRV9OQU1FIiwiSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTiIsInN0YXJ0U3lzbG9nU2VydmljZSIsInVkaWQiLCJvcHRzIiwic29ja2V0Iiwic3RhcnRTZXJ2aWNlIiwiU1lTTE9HX1NFUlZJQ0VfTkFNRSIsIlN5c2xvZ1NlcnZpY2UiLCJzdGFydFNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlIiwiU0lNVUxBVEVfTE9DQVRJT05fU0VSVklDRV9OQU1FIiwiU2ltdWxhdGVMb2NhdGlvblNlcnZpY2UiLCJzdGFydFdlYkluc3BlY3RvclNlcnZpY2UiLCJvc1ZlcnNpb24iLCJpc1NpbXVsYXRvciIsInZlcmJvc2UiLCJ2ZXJib3NlSGV4RHVtcCIsInNvY2tldENodW5rU2l6ZSIsIm1heEZyYW1lTGVuZ3RoIiwic2VtdmVyVmVyc2lvbiIsInNlbXZlciIsImNvZXJjZSIsIkVycm9yIiwiV2ViSW5zcGVjdG9yU2VydmljZSIsIm1ham9yT3NWZXJzaW9uIiwibWFqb3IiLCJzb2NrZXRDbGllbnQiLCJXRUJfSU5TUEVDVE9SX1NFUlZJQ0VfTkFNRSIsInVuZGVmaW5lZCIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwiSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSIsIkluc3RhbGxhdGlvblByb3h5U2VydmljZSIsIlBsaXN0U2VydmljZSIsInN0YXJ0QWZjU2VydmljZSIsIkFGQ19TRVJWSUNFX05BTUUiLCJBZmNTZXJ2aWNlIiwic3RhcnRDcmFzaExvZ1NlcnZpY2UiLCJzdGFydE5vdGlmaWNhdGlvblByb3h5U2VydmljZSIsIk5PVElGSUNBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUiLCJOb3RpZmljYXRpb25Qcm94eVNlcnZpY2UiLCJzdGFydEhvdXNlQXJyZXN0U2VydmljZSIsIkhPVVNFX0FSUkVTVF9TRVJWSUNFX05BTUUiLCJIb3VzZUFycmVzdFNlcnZpY2UiLCJzdGFydEluc3RydW1lbnRTZXJ2aWNlIiwiSW5zdHJ1bWVudFNlcnZpY2UiLCJwYXJzZUludCIsInNwbGl0IiwiSU5TVFJVTUVOVF9TRVJWSUNFX05BTUUiLCJJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0Iiwic2VydmljZU5hbWUiLCJoYW5kc2hha2VPbmx5IiwibG9ja2Rvd24iLCJzZXJ2aWNlIiwiRW5hYmxlU2VydmljZVNTTCIsIlBvcnQiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLHNCQUFzQixHQUFHLGlDQUEvQjtBQUNBLE1BQU1DLDRCQUE0QixHQUFHLEVBQXJDOztBQUVBLGVBQWVDLGtCQUFmLENBQW1DQyxJQUFuQyxFQUF5Q0MsSUFBSSxHQUFHLEVBQWhELEVBQW9EO0FBQ2xELFFBQU1DLE1BQU0sR0FBRyxNQUFNQyxZQUFZLENBQUNILElBQUQsRUFBT0ksMkJBQVAsRUFBNEJILElBQUksQ0FBQ0MsTUFBakMsQ0FBakM7QUFDQSxTQUFPLElBQUlHLHFCQUFKLENBQWtCSCxNQUFsQixDQUFQO0FBQ0Q7O0FBRUQsZUFBZUksNEJBQWYsQ0FBNkNOLElBQTdDLEVBQW1EQyxJQUFJLEdBQUcsRUFBMUQsRUFBOEQ7QUFDNUQsUUFBTUMsTUFBTSxHQUFHLE1BQU1DLFlBQVksQ0FBQ0gsSUFBRCxFQUFPTyxnREFBUCxFQUF1Q04sSUFBSSxDQUFDQyxNQUE1QyxDQUFqQztBQUNBLFNBQU8sSUFBSU0seUNBQUosQ0FBNEJOLE1BQTVCLENBQVA7QUFDRDs7QUFFRCxlQUFlTyx3QkFBZixDQUF5Q1QsSUFBekMsRUFBK0NDLElBQUksR0FBRyxFQUF0RCxFQUEwRDtBQUN4RCxRQUFNUyxTQUFTLEdBQUdULElBQUksQ0FBQ1MsU0FBTCxLQUFrQixNQUFNLDZCQUFhVixJQUFiLEVBQW1CQyxJQUFJLENBQUNDLE1BQXhC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YjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sTUFBTSw0QkFBWS9DLElBQVosRUFBa0JpRCxPQUFPLENBQUNFLElBQTFCLEVBQWdDakQsTUFBaEMsQ0FBYjtBQUNEO0FBQ0YsR0FQRCxTQU9VO0FBQ1I4QyxJQUFBQSxRQUFRLENBQUNJLEtBQVQ7QUFDRDtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29ubmVjdFBvcnQsIGNvbm5lY3RQb3J0U1NMLCBzdGFydExvY2tkb3duU2Vzc2lvbiwgZ2V0T1NWZXJzaW9uIH0gZnJvbSAnLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgU3lzbG9nU2VydmljZSwgU1lTTE9HX1NFUlZJQ0VfTkFNRSB9IGZyb20gJy4vc3lzbG9nJztcbmltcG9ydCB7IFNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlLCBTSU1VTEFURV9MT0NBVElPTl9TRVJWSUNFX05BTUUgfSBmcm9tICcuL3NpbXVsYXRlbG9jYXRpb24nO1xuaW1wb3J0IHsgV2ViSW5zcGVjdG9yU2VydmljZSwgV0VCX0lOU1BFQ1RPUl9TRVJWSUNFX05BTUUgfSBmcm9tICcuL3dlYmluc3BlY3Rvcic7XG5pbXBvcnQgeyBJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UsIElOU1RBTExBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUgfSBmcm9tICcuL2luc3RhbGxhdGlvbi1wcm94eSc7XG5pbXBvcnQgeyBBZmNTZXJ2aWNlLCBBRkNfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9hZmMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uUHJveHlTZXJ2aWNlLCBOT1RJRklDQVRJT05fUFJPWFlfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcHJveHknO1xuaW1wb3J0IHsgSG91c2VBcnJlc3RTZXJ2aWNlLCBIT1VTRV9BUlJFU1RfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9ob3VzZS1hcnJlc3QnO1xuaW1wb3J0IHsgSW5zdHJ1bWVudFNlcnZpY2UsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FX1ZFUlNJT05fMTQsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FfSBmcm9tICcuL2luc3RydW1lbnQnO1xuaW1wb3J0IFBsaXN0U2VydmljZSBmcm9tICcuL3BsaXN0LXNlcnZpY2UnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5jb25zdCBDUkFTSF9MT0dfU0VSVklDRV9OQU1FID0gJ2NvbS5hcHBsZS5jcmFzaHJlcG9ydGNvcHltb2JpbGUnO1xuY29uc3QgSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTiA9IDE0O1xuXG5hc3luYyBmdW5jdGlvbiBzdGFydFN5c2xvZ1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgU1lTTE9HX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IFN5c2xvZ1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTaW11bGF0ZUxvY2F0aW9uU2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBTSU1VTEFURV9MT0NBVElPTl9TRVJWSUNFX05BTUUsIG9wdHMuc29ja2V0KTtcbiAgcmV0dXJuIG5ldyBTaW11bGF0ZUxvY2F0aW9uU2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFdlYkluc3BlY3RvclNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBvc1ZlcnNpb24gPSBvcHRzLm9zVmVyc2lvbiB8fCBhd2FpdCBnZXRPU1ZlcnNpb24odWRpZCwgb3B0cy5zb2NrZXQpO1xuICBjb25zdCBpc1NpbXVsYXRvciA9ICEhb3B0cy5pc1NpbXVsYXRvcjtcbiAgY29uc3QgdmVyYm9zZSA9ICEhb3B0cy52ZXJib3NlO1xuICBjb25zdCB2ZXJib3NlSGV4RHVtcCA9ICEhb3B0cy52ZXJib3NlSGV4RHVtcDtcbiAgY29uc3Qgc29ja2V0Q2h1bmtTaXplID0gb3B0cy5zb2NrZXRDaHVua1NpemU7XG4gIGNvbnN0IG1heEZyYW1lTGVuZ3RoID0gb3B0cy5tYXhGcmFtZUxlbmd0aDtcbiAgY29uc3Qgc2VtdmVyVmVyc2lvbiA9IHNlbXZlci5jb2VyY2Uob3NWZXJzaW9uKTtcbiAgaWYgKCFzZW12ZXJWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGEgc2VtdmVyIHZlcnNpb24gb3V0IG9mICcke29zVmVyc2lvbn0nYCk7XG4gIH1cbiAgaWYgKG9wdHMuc29ja2V0KSB7XG4gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3JTZXJ2aWNlKHtcbiAgICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgICAgaXNTaW11bGF0b3IsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICB2ZXJib3NlLFxuICAgICAgdmVyYm9zZUhleER1bXAsXG4gICAgICBzb2NrZXRDbGllbnQ6IG9wdHMuc29ja2V0LFxuICAgICAgbWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gIH1cbiAgY29uc3Qgc29ja2V0ID0gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FLCB1bmRlZmluZWQpO1xuICByZXR1cm4gbmV3IFdlYkluc3BlY3RvclNlcnZpY2Uoe1xuICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgIGlzU2ltdWxhdG9yLFxuICAgIHNvY2tldENodW5rU2l6ZSxcbiAgICB2ZXJib3NlLFxuICAgIHZlcmJvc2VIZXhEdW1wLFxuICAgIHNvY2tldENsaWVudDogc29ja2V0LFxuICAgIG1heEZyYW1lTGVuZ3RoLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEluc3RhbGxhdGlvblByb3h5U2VydmljZShuZXcgUGxpc3RTZXJ2aWNlKHNvY2tldCkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEFmY1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgQUZDX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEFmY1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRDcmFzaExvZ1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgQ1JBU0hfTE9HX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEFmY1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnROb3RpZmljYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgTk9USUZJQ0FUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvblByb3h5U2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEhvdXNlQXJyZXN0U2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBIT1VTRV9BUlJFU1RfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCk7XG4gIHJldHVybiBuZXcgSG91c2VBcnJlc3RTZXJ2aWNlKHNvY2tldCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0SW5zdHJ1bWVudFNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBvc1ZlcnNpb24gPSBvcHRzLm9zVmVyc2lvbiB8fCBhd2FpdCBnZXRPU1ZlcnNpb24odWRpZCwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEluc3RydW1lbnRTZXJ2aWNlKFxuICBwYXJzZUludChvc1ZlcnNpb24uc3BsaXQoJy4nKVswXSwgMTApIDwgSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTlxuICAgID8gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCwgdHJ1ZSlcbiAgICA6IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0LCBvcHRzLnNvY2tldClcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2aWNlICh1ZGlkLCBzZXJ2aWNlTmFtZSwgc29ja2V0LCBoYW5kc2hha2VPbmx5ID0gZmFsc2UpIHtcbiAgY29uc3QgbG9ja2Rvd24gPSBhd2FpdCBzdGFydExvY2tkb3duU2Vzc2lvbih1ZGlkLCBzb2NrZXQpO1xuICB0cnkge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBhd2FpdCBsb2NrZG93bi5zdGFydFNlcnZpY2Uoc2VydmljZU5hbWUpO1xuICAgIGlmIChzZXJ2aWNlLkVuYWJsZVNlcnZpY2VTU0wpIHtcbiAgICAgIHJldHVybiBhd2FpdCBjb25uZWN0UG9ydFNTTCh1ZGlkLCBzZXJ2aWNlLlBvcnQsIHNvY2tldCwgaGFuZHNoYWtlT25seSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBjb25uZWN0UG9ydCh1ZGlkLCBzZXJ2aWNlLlBvcnQsIHNvY2tldCk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGxvY2tkb3duLmNsb3NlKCk7XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgc3RhcnRTeXNsb2dTZXJ2aWNlLCBzdGFydFdlYkluc3BlY3RvclNlcnZpY2UsXG4gIHN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlLCBzdGFydFNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlLFxuICBzdGFydEFmY1NlcnZpY2UsIHN0YXJ0Q3Jhc2hMb2dTZXJ2aWNlLCBzdGFydE5vdGlmaWNhdGlvblByb3h5U2VydmljZSxcbiAgc3RhcnRIb3VzZUFycmVzdFNlcnZpY2UsIHN0YXJ0SW5zdHJ1bWVudFNlcnZpY2Vcbn07XG4iXSwiZmlsZSI6ImxpYi9zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
148
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy5qcyJdLCJuYW1lcyI6WyJDUkFTSF9MT0dfU0VSVklDRV9OQU1FIiwiSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTiIsInN0YXJ0U3lzbG9nU2VydmljZSIsInVkaWQiLCJvcHRzIiwic29ja2V0Iiwic3RhcnRTZXJ2aWNlIiwiU1lTTE9HX1NFUlZJQ0VfTkFNRSIsIlN5c2xvZ1NlcnZpY2UiLCJzdGFydFNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlIiwiU0lNVUxBVEVfTE9DQVRJT05fU0VSVklDRV9OQU1FIiwiU2ltdWxhdGVMb2NhdGlvblNlcnZpY2UiLCJzdGFydFdlYkluc3BlY3RvclNlcnZpY2UiLCJvc1ZlcnNpb24iLCJpc1NpbXVsYXRvciIsInZlcmJvc2UiLCJ2ZXJib3NlSGV4RHVtcCIsInNvY2tldENodW5rU2l6ZSIsIm1heEZyYW1lTGVuZ3RoIiwic2VtdmVyVmVyc2lvbiIsInNlbXZlciIsImNvZXJjZSIsIkVycm9yIiwiV2ViSW5zcGVjdG9yU2VydmljZSIsIm1ham9yT3NWZXJzaW9uIiwibWFqb3IiLCJzb2NrZXRDbGllbnQiLCJXRUJfSU5TUEVDVE9SX1NFUlZJQ0VfTkFNRSIsInVuZGVmaW5lZCIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwiSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSIsIkluc3RhbGxhdGlvblByb3h5U2VydmljZSIsIlBsaXN0U2VydmljZSIsInN0YXJ0QWZjU2VydmljZSIsIkFGQ19TRVJWSUNFX05BTUUiLCJBZmNTZXJ2aWNlIiwic3RhcnRDcmFzaExvZ1NlcnZpY2UiLCJzdGFydE5vdGlmaWNhdGlvblByb3h5U2VydmljZSIsIk5PVElGSUNBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUiLCJOb3RpZmljYXRpb25Qcm94eVNlcnZpY2UiLCJzdGFydEhvdXNlQXJyZXN0U2VydmljZSIsIkhPVVNFX0FSUkVTVF9TRVJWSUNFX05BTUUiLCJIb3VzZUFycmVzdFNlcnZpY2UiLCJzdGFydEluc3RydW1lbnRTZXJ2aWNlIiwiSW5zdHJ1bWVudFNlcnZpY2UiLCJwYXJzZUludCIsInNwbGl0IiwiSU5TVFJVTUVOVF9TRVJWSUNFX05BTUUiLCJJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0Iiwic3RhcnRNQ0luc3RhbGxTZXJ2aWNlIiwiTUNfSU5TVEFMTF9TRVJWSUNFX05BTUUiLCJNQ0luc3RhbGxQcm94eVNlcnZpY2UiLCJzZXJ2aWNlTmFtZSIsImhhbmRzaGFrZU9ubHkiLCJsb2NrZG93biIsInNlcnZpY2UiLCJFbmFibGVTZXJ2aWNlU1NMIiwiUG9ydCIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLHNCQUFzQixHQUFHLGlDQUEvQjtBQUNBLE1BQU1DLDRCQUE0QixHQUFHLEVBQXJDOztBQUVBLGVBQWVDLGtCQUFmLENBQW1DQyxJQUFuQyxFQUF5Q0MsSUFBSSxHQUFHLEVBQWhELEVBQW9EO0FBQ2xELFFBQU1DLE1BQU0sR0FBRyxNQUFNQyxZQUFZLENBQUNILElBQUQsRUFBT0ksMkJBQVAsRUFBNEJILElBQUksQ0FBQ0MsTUFBakMsQ0FBakM7QUFDQSxTQUFPLElBQUlHLHFCQUFKLENBQWtCSCxNQUFsQixDQUFQO0FBQ0Q7O0FBRUQsZUFBZUksNEJBQWYsQ0FBNkNOLElBQTdDLEVBQW1EQyxJQUFJLEdBQUcsRUFBMUQsRUFBOEQ7QUFDNUQsUUFBTUMsTUFBTSxHQUFHLE1BQU1DLFlBQVksQ0FBQ0gsSUFBRCxFQUFPTyxnREFBUCxFQUF1Q04sSUFBSSxDQUFDQyxNQUE1QyxDQUFqQztBQUNBLFNBQU8sSUFBSU0seUNBQUosQ0FBNEJOLE1BQTVCLENBQVA7QUFDRDs7QUFFRCxlQUFlTyx3QkFBZixDQUF5Q1QsSUFBekMsRUFBK0NDLElBQUksR0FBRyxFQUF0RCxFQUEwRDtBQUN4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QyxFQUFnRC9DLE1BQWhELEVBQXdEZ0QsYUFBYSxHQUFHLEtBQXhFLEVBQStFO0FBQzdFLFFBQU1DLFFBQVEsR0FBRyxNQUFNLHFDQUFxQm5ELElBQXJCLEVBQTJCRSxNQUEzQixDQUF2Qjs7QUFDQSxNQUFJO0FBQ0YsVUFBTWtELE9BQU8sR0FBRyxNQUFNRCxRQUFRLENBQUNoRCxZQUFULENBQXNCOEMsV0FBdEIsQ0FBdEI7O0FBQ0EsUUFBSUcsT0FBTyxDQUFDQyxnQkFBWixFQUE4QjtBQUM1QixhQUFPLE1BQU0sK0JBQWVyRCxJQUFmLEVBQXFCb0QsT0FBTyxDQUFDRSxJQUE3QixFQUFtQ3BELE1BQW5DLEVBQTJDZ0QsYUFBM0MsQ0FBYjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sTUFBTSw0QkFBWWxELElBQVosRUFBa0JvRCxPQUFPLENBQUNFLElBQTFCLEVBQWdDcEQsTUFBaEMsQ0FBYjtBQUNEO0FBQ0YsR0FQRCxTQU9VO0FBQ1JpRCxJQUFBQSxRQUFRLENBQUNJLEtBQVQ7QUFDRDtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29ubmVjdFBvcnQsIGNvbm5lY3RQb3J0U1NMLCBzdGFydExvY2tkb3duU2Vzc2lvbiwgZ2V0T1NWZXJzaW9uIH0gZnJvbSAnLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgU3lzbG9nU2VydmljZSwgU1lTTE9HX1NFUlZJQ0VfTkFNRSB9IGZyb20gJy4vc3lzbG9nJztcbmltcG9ydCB7IFNpbXVsYXRlTG9jYXRpb25TZXJ2aWNlLCBTSU1VTEFURV9MT0NBVElPTl9TRVJWSUNFX05BTUUgfSBmcm9tICcuL3NpbXVsYXRlbG9jYXRpb24nO1xuaW1wb3J0IHsgV2ViSW5zcGVjdG9yU2VydmljZSwgV0VCX0lOU1BFQ1RPUl9TRVJWSUNFX05BTUUgfSBmcm9tICcuL3dlYmluc3BlY3Rvcic7XG5pbXBvcnQgeyBJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UsIElOU1RBTExBVElPTl9QUk9YWV9TRVJWSUNFX05BTUUgfSBmcm9tICcuL2luc3RhbGxhdGlvbi1wcm94eSc7XG5pbXBvcnQgeyBBZmNTZXJ2aWNlLCBBRkNfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9hZmMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uUHJveHlTZXJ2aWNlLCBOT1RJRklDQVRJT05fUFJPWFlfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcHJveHknO1xuaW1wb3J0IHsgSG91c2VBcnJlc3RTZXJ2aWNlLCBIT1VTRV9BUlJFU1RfU0VSVklDRV9OQU1FIH0gZnJvbSAnLi9ob3VzZS1hcnJlc3QnO1xuaW1wb3J0IHsgSW5zdHJ1bWVudFNlcnZpY2UsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FX1ZFUlNJT05fMTQsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FfSBmcm9tICcuL2luc3RydW1lbnQnO1xuaW1wb3J0IHsgTUNJbnN0YWxsUHJveHlTZXJ2aWNlLCBNQ19JTlNUQUxMX1NFUlZJQ0VfTkFNRX0gZnJvbSAnLi9tY2luc3RhbGwnO1xuaW1wb3J0IFBsaXN0U2VydmljZSBmcm9tICcuL3BsaXN0LXNlcnZpY2UnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5jb25zdCBDUkFTSF9MT0dfU0VSVklDRV9OQU1FID0gJ2NvbS5hcHBsZS5jcmFzaHJlcG9ydGNvcHltb2JpbGUnO1xuY29uc3QgSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTiA9IDE0O1xuXG5hc3luYyBmdW5jdGlvbiBzdGFydFN5c2xvZ1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgU1lTTE9HX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IFN5c2xvZ1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTaW11bGF0ZUxvY2F0aW9uU2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBTSU1VTEFURV9MT0NBVElPTl9TRVJWSUNFX05BTUUsIG9wdHMuc29ja2V0KTtcbiAgcmV0dXJuIG5ldyBTaW11bGF0ZUxvY2F0aW9uU2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFdlYkluc3BlY3RvclNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBvc1ZlcnNpb24gPSBvcHRzLm9zVmVyc2lvbiB8fCBhd2FpdCBnZXRPU1ZlcnNpb24odWRpZCwgb3B0cy5zb2NrZXQpO1xuICBjb25zdCBpc1NpbXVsYXRvciA9ICEhb3B0cy5pc1NpbXVsYXRvcjtcbiAgY29uc3QgdmVyYm9zZSA9ICEhb3B0cy52ZXJib3NlO1xuICBjb25zdCB2ZXJib3NlSGV4RHVtcCA9ICEhb3B0cy52ZXJib3NlSGV4RHVtcDtcbiAgY29uc3Qgc29ja2V0Q2h1bmtTaXplID0gb3B0cy5zb2NrZXRDaHVua1NpemU7XG4gIGNvbnN0IG1heEZyYW1lTGVuZ3RoID0gb3B0cy5tYXhGcmFtZUxlbmd0aDtcbiAgY29uc3Qgc2VtdmVyVmVyc2lvbiA9IHNlbXZlci5jb2VyY2Uob3NWZXJzaW9uKTtcbiAgaWYgKCFzZW12ZXJWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGEgc2VtdmVyIHZlcnNpb24gb3V0IG9mICcke29zVmVyc2lvbn0nYCk7XG4gIH1cbiAgaWYgKG9wdHMuc29ja2V0KSB7XG4gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3JTZXJ2aWNlKHtcbiAgICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgICAgaXNTaW11bGF0b3IsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICB2ZXJib3NlLFxuICAgICAgdmVyYm9zZUhleER1bXAsXG4gICAgICBzb2NrZXRDbGllbnQ6IG9wdHMuc29ja2V0LFxuICAgICAgbWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gIH1cbiAgY29uc3Qgc29ja2V0ID0gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIFdFQl9JTlNQRUNUT1JfU0VSVklDRV9OQU1FLCB1bmRlZmluZWQpO1xuICByZXR1cm4gbmV3IFdlYkluc3BlY3RvclNlcnZpY2Uoe1xuICAgIG1ham9yT3NWZXJzaW9uOiBzZW12ZXJWZXJzaW9uLm1ham9yLFxuICAgIGlzU2ltdWxhdG9yLFxuICAgIHNvY2tldENodW5rU2l6ZSxcbiAgICB2ZXJib3NlLFxuICAgIHZlcmJvc2VIZXhEdW1wLFxuICAgIHNvY2tldENsaWVudDogc29ja2V0LFxuICAgIG1heEZyYW1lTGVuZ3RoLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgSU5TVEFMTEFUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEluc3RhbGxhdGlvblByb3h5U2VydmljZShuZXcgUGxpc3RTZXJ2aWNlKHNvY2tldCkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEFmY1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgQUZDX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEFmY1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRDcmFzaExvZ1NlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgQ1JBU0hfTE9HX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEFmY1NlcnZpY2Uoc29ja2V0KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnROb3RpZmljYXRpb25Qcm94eVNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzdGFydFNlcnZpY2UodWRpZCwgTk9USUZJQ0FUSU9OX1BST1hZX1NFUlZJQ0VfTkFNRSwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvblByb3h5U2VydmljZShzb2NrZXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydEhvdXNlQXJyZXN0U2VydmljZSAodWRpZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHNvY2tldCA9IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBIT1VTRV9BUlJFU1RfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCk7XG4gIHJldHVybiBuZXcgSG91c2VBcnJlc3RTZXJ2aWNlKHNvY2tldCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0SW5zdHJ1bWVudFNlcnZpY2UgKHVkaWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBvc1ZlcnNpb24gPSBvcHRzLm9zVmVyc2lvbiB8fCBhd2FpdCBnZXRPU1ZlcnNpb24odWRpZCwgb3B0cy5zb2NrZXQpO1xuICByZXR1cm4gbmV3IEluc3RydW1lbnRTZXJ2aWNlKFxuICBwYXJzZUludChvc1ZlcnNpb24uc3BsaXQoJy4nKVswXSwgMTApIDwgSU5TVFJVTUVOVF9IQU5EU0hBS0VfVkVSU0lPTlxuICAgID8gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIElOU1RSVU1FTlRfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCwgdHJ1ZSlcbiAgICA6IGF3YWl0IHN0YXJ0U2VydmljZSh1ZGlkLCBJTlNUUlVNRU5UX1NFUlZJQ0VfTkFNRV9WRVJTSU9OXzE0LCBvcHRzLnNvY2tldClcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRNQ0luc3RhbGxTZXJ2aWNlICh1ZGlkLCBvcHRzID0ge30pIHtcbiAgY29uc3Qgc29ja2V0ID0gYXdhaXQgc3RhcnRTZXJ2aWNlKHVkaWQsIE1DX0lOU1RBTExfU0VSVklDRV9OQU1FLCBvcHRzLnNvY2tldCk7XG4gIHJldHVybiBuZXcgTUNJbnN0YWxsUHJveHlTZXJ2aWNlKG5ldyBQbGlzdFNlcnZpY2Uoc29ja2V0KSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0U2VydmljZSAodWRpZCwgc2VydmljZU5hbWUsIHNvY2tldCwgaGFuZHNoYWtlT25seSA9IGZhbHNlKSB7XG4gIGNvbnN0IGxvY2tkb3duID0gYXdhaXQgc3RhcnRMb2NrZG93blNlc3Npb24odWRpZCwgc29ja2V0KTtcbiAgdHJ5IHtcbiAgICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgbG9ja2Rvd24uc3RhcnRTZXJ2aWNlKHNlcnZpY2VOYW1lKTtcbiAgICBpZiAoc2VydmljZS5FbmFibGVTZXJ2aWNlU1NMKSB7XG4gICAgICByZXR1cm4gYXdhaXQgY29ubmVjdFBvcnRTU0wodWRpZCwgc2VydmljZS5Qb3J0LCBzb2NrZXQsIGhhbmRzaGFrZU9ubHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgY29ubmVjdFBvcnQodWRpZCwgc2VydmljZS5Qb3J0LCBzb2NrZXQpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBsb2NrZG93bi5jbG9zZSgpO1xuICB9XG59XG5cbmV4cG9ydCB7XG4gIHN0YXJ0U3lzbG9nU2VydmljZSwgc3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlLFxuICBzdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSwgc3RhcnRTaW11bGF0ZUxvY2F0aW9uU2VydmljZSxcbiAgc3RhcnRBZmNTZXJ2aWNlLCBzdGFydENyYXNoTG9nU2VydmljZSwgc3RhcnROb3RpZmljYXRpb25Qcm94eVNlcnZpY2UsXG4gIHN0YXJ0SG91c2VBcnJlc3RTZXJ2aWNlLCBzdGFydEluc3RydW1lbnRTZXJ2aWNlLCBzdGFydE1DSW5zdGFsbFNlcnZpY2Vcbn07XG4iXSwiZmlsZSI6ImxpYi9zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
@@ -16,7 +16,6 @@ var _net = _interopRequireDefault(require("net"));
16
16
 
17
17
  var _bluebird = _interopRequireDefault(require("bluebird"));
18
18
 
19
- const TLS_VERSION = 'TLSv1_method';
20
19
  const HANDSHAKE_TIMEOUT_MS = 10000;
21
20
 
22
21
  function upgradeToSSL(socket, key, cert) {
@@ -24,8 +23,7 @@ function upgradeToSSL(socket, key, cert) {
24
23
  rejectUnauthorized: false,
25
24
  secureContext: _tls.default.createSecureContext({
26
25
  key,
27
- cert,
28
- secureProtocol: TLS_VERSION
26
+ cert
29
27
  })
30
28
  });
31
29
  }
@@ -35,8 +33,7 @@ async function enableSSLHandshakeOnly(socket, key, cert) {
35
33
  socket,
36
34
  secureContext: _tls.default.createSecureContext({
37
35
  key,
38
- cert,
39
- secureProtocol: TLS_VERSION
36
+ cert
40
37
  }),
41
38
  rejectUnauthorized: false
42
39
  });
@@ -63,4 +60,4 @@ async function enableSSLHandshakeOnly(socket, key, cert) {
63
60
  }require('source-map-support').install();
64
61
 
65
62
 
66
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zc2wtaGVscGVyLmpzIl0sIm5hbWVzIjpbIlRMU19WRVJTSU9OIiwiSEFORFNIQUtFX1RJTUVPVVRfTVMiLCJ1cGdyYWRlVG9TU0wiLCJzb2NrZXQiLCJrZXkiLCJjZXJ0IiwidGxzIiwiVExTU29ja2V0IiwicmVqZWN0VW5hdXRob3JpemVkIiwic2VjdXJlQ29udGV4dCIsImNyZWF0ZVNlY3VyZUNvbnRleHQiLCJzZWN1cmVQcm90b2NvbCIsImVuYWJsZVNTTEhhbmRzaGFrZU9ubHkiLCJzc2xTb2NrZXQiLCJjb25uZWN0IiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJ0aW1lb3V0SGFuZGxlciIsInNldFRpbWVvdXQiLCJkZXN0cm95ZWQiLCJlbmQiLCJFcnJvciIsIm9uY2UiLCJjbGVhclRpbWVvdXQiLCJfaGFuZGxlIiwicmVhZFN0b3AiLCJuZXQiLCJTb2NrZXQiLCJmZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsV0FBVyxHQUFHLGNBQXBCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsS0FBN0I7O0FBRUEsU0FBU0MsWUFBVCxDQUF1QkMsTUFBdkIsRUFBK0JDLEdBQS9CLEVBQW9DQyxJQUFwQyxFQUEwQztBQUN4QyxTQUFPLElBQUlDLGFBQUlDLFNBQVIsQ0FBa0JKLE1BQWxCLEVBQTBCO0FBQy9CSyxJQUFBQSxrQkFBa0IsRUFBRSxLQURXO0FBRS9CQyxJQUFBQSxhQUFhLEVBQUVILGFBQUlJLG1CQUFKLENBQXdCO0FBQ3JDTixNQUFBQSxHQURxQztBQUVyQ0MsTUFBQUEsSUFGcUM7QUFHckNNLE1BQUFBLGNBQWMsRUFBRVg7QUFIcUIsS0FBeEI7QUFGZ0IsR0FBMUIsQ0FBUDtBQVFEOztBQVNELGVBQWVZLHNCQUFmLENBQXVDVCxNQUF2QyxFQUErQ0MsR0FBL0MsRUFBb0RDLElBQXBELEVBQTBEO0FBQ3hELFFBQU1RLFNBQVMsR0FBR1AsYUFBSVEsT0FBSixDQUFZO0FBQzVCWCxJQUFBQSxNQUQ0QjtBQUU1Qk0sSUFBQUEsYUFBYSxFQUFFSCxhQUFJSSxtQkFBSixDQUF3QjtBQUNyQ04sTUFBQUEsR0FEcUM7QUFFckNDLE1BQUFBLElBRnFDO0FBR3JDTSxNQUFBQSxjQUFjLEVBQUVYO0FBSHFCLEtBQXhCLENBRmE7QUFPNUJRLElBQUFBLGtCQUFrQixFQUFFO0FBUFEsR0FBWixDQUFsQjs7QUFXQSxRQUFNLElBQUlPLGlCQUFKLENBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQy9CLFVBQU1DLGNBQWMsR0FBR0MsVUFBVSxDQUFDLE1BQU07QUFDdEMsVUFBSSxDQUFDTixTQUFTLENBQUNPLFNBQWYsRUFBMEI7QUFDeEJQLFFBQUFBLFNBQVMsQ0FBQ1EsR0FBVjtBQUNEOztBQUNELGFBQU9KLE1BQU0sQ0FBQyxJQUFJSyxLQUFKLENBQVUscUJBQVYsQ0FBRCxDQUFiO0FBQ0QsS0FMZ0MsRUFLOUJyQixvQkFMOEIsQ0FBakM7QUFPQVksSUFBQUEsU0FBUyxDQUFDVSxJQUFWLENBQWUsZUFBZixFQUFnQyxNQUFNO0FBQ3BDQyxNQUFBQSxZQUFZLENBQUNOLGNBQUQsQ0FBWjs7QUFDQUwsTUFBQUEsU0FBUyxDQUFDWSxPQUFWLENBQWtCQyxRQUFsQjs7QUFDQSxhQUFPVixPQUFPLEVBQWQ7QUFDRCxLQUpEO0FBS0QsR0FiSyxDQUFOO0FBZUEsU0FBT1csYUFBSUMsTUFBSixDQUFXO0FBQUNDLElBQUFBLEVBQUUsRUFBRTFCLE1BQU0sQ0FBQ3NCLE9BQVAsQ0FBZUk7QUFBcEIsR0FBWCxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cbmNvbnN0IFRMU19WRVJTSU9OID0gJ1RMU3YxX21ldGhvZCc7XG5jb25zdCBIQU5EU0hBS0VfVElNRU9VVF9NUyA9IDEwMDAwO1xuXG5mdW5jdGlvbiB1cGdyYWRlVG9TU0wgKHNvY2tldCwga2V5LCBjZXJ0KSB7XG4gIHJldHVybiBuZXcgdGxzLlRMU1NvY2tldChzb2NrZXQsIHtcbiAgICByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlLFxuICAgIHNlY3VyZUNvbnRleHQ6IHRscy5jcmVhdGVTZWN1cmVDb250ZXh0KHtcbiAgICAgIGtleSxcbiAgICAgIGNlcnQsXG4gICAgICBzZWN1cmVQcm90b2NvbDogVExTX1ZFUlNJT05cbiAgICB9KVxuICB9KTtcbn1cblxuLyoqXG4gKiBBZnRlciB0aGUgc3NsIHByb3RvY29sIGlzIHN1Y2Nlc3NmdWxseSBoYW5kc2hha2UsIGNsb3NlIHRoZSBzc2wgcHJvdG9jb2wgY2hhbm5lbCBhbmQgdXNlIHRleHQgdHJhbnNtaXNzaW9uXG4gKiBAcGFyYW0gc29ja2V0XG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gY2VydFxuICogQHJldHVybnMge1Byb21pc2U8U29ja2V0Pn0gRHVwbGljYXRlIHRoZSBpbnB1dCBzb2NrZXRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZW5hYmxlU1NMSGFuZHNoYWtlT25seSAoc29ja2V0LCBrZXksIGNlcnQpIHtcbiAgY29uc3Qgc3NsU29ja2V0ID0gdGxzLmNvbm5lY3Qoe1xuICAgIHNvY2tldCxcbiAgICBzZWN1cmVDb250ZXh0OiB0bHMuY3JlYXRlU2VjdXJlQ29udGV4dCh7XG4gICAgICBrZXksXG4gICAgICBjZXJ0LFxuICAgICAgc2VjdXJlUHJvdG9jb2w6IFRMU19WRVJTSU9OXG4gICAgfSksXG4gICAgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZSxcbiAgfSk7XG5cbiAgLy8gc3RvcCByZWNlaXZpbmcgZGF0YSBhZnRlciBzdWNjZXNzZnVsIGhhbmRzaGFrZVxuICBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgdGltZW91dEhhbmRsZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghc3NsU29ja2V0LmRlc3Ryb3llZCkge1xuICAgICAgICBzc2xTb2NrZXQuZW5kKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcignc3NsIGhhbmRzaGFrZSBlcnJvcicpKTtcbiAgICB9LCBIQU5EU0hBS0VfVElNRU9VVF9NUyk7XG5cbiAgICBzc2xTb2NrZXQub25jZSgnc2VjdXJlQ29ubmVjdCcsICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlcik7XG4gICAgICBzc2xTb2NrZXQuX2hhbmRsZS5yZWFkU3RvcCgpO1xuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG4gIC8vIER1cGxpY2F0ZSB0aGUgc29ja2V0LiBSZXR1cm4gYSBuZXcgc29ja2V0IG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgc3lzdGVtIHJlc291cmNlXG4gIHJldHVybiBuZXQuU29ja2V0KHtmZDogc29ja2V0Ll9oYW5kbGUuZmR9KTtcbn1cblxuXG5leHBvcnQgeyB1cGdyYWRlVG9TU0wsIGVuYWJsZVNTTEhhbmRzaGFrZU9ubHkgfTtcbiJdLCJmaWxlIjoibGliL3NzbC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
63
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zc2wtaGVscGVyLmpzIl0sIm5hbWVzIjpbIkhBTkRTSEFLRV9USU1FT1VUX01TIiwidXBncmFkZVRvU1NMIiwic29ja2V0Iiwia2V5IiwiY2VydCIsInRscyIsIlRMU1NvY2tldCIsInJlamVjdFVuYXV0aG9yaXplZCIsInNlY3VyZUNvbnRleHQiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiZW5hYmxlU1NMSGFuZHNoYWtlT25seSIsInNzbFNvY2tldCIsImNvbm5lY3QiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsInRpbWVvdXRIYW5kbGVyIiwic2V0VGltZW91dCIsImRlc3Ryb3llZCIsImVuZCIsIkVycm9yIiwib25jZSIsImNsZWFyVGltZW91dCIsIl9oYW5kbGUiLCJyZWFkU3RvcCIsIm5ldCIsIlNvY2tldCIsImZkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxvQkFBb0IsR0FBRyxLQUE3Qjs7QUFFQSxTQUFTQyxZQUFULENBQXVCQyxNQUF2QixFQUErQkMsR0FBL0IsRUFBb0NDLElBQXBDLEVBQTBDO0FBQ3hDLFNBQU8sSUFBSUMsYUFBSUMsU0FBUixDQUFrQkosTUFBbEIsRUFBMEI7QUFDL0JLLElBQUFBLGtCQUFrQixFQUFFLEtBRFc7QUFFL0JDLElBQUFBLGFBQWEsRUFBRUgsYUFBSUksbUJBQUosQ0FBd0I7QUFDckNOLE1BQUFBLEdBRHFDO0FBRXJDQyxNQUFBQTtBQUZxQyxLQUF4QjtBQUZnQixHQUExQixDQUFQO0FBT0Q7O0FBU0QsZUFBZU0sc0JBQWYsQ0FBdUNSLE1BQXZDLEVBQStDQyxHQUEvQyxFQUFvREMsSUFBcEQsRUFBMEQ7QUFDeEQsUUFBTU8sU0FBUyxHQUFHTixhQUFJTyxPQUFKLENBQVk7QUFDNUJWLElBQUFBLE1BRDRCO0FBRTVCTSxJQUFBQSxhQUFhLEVBQUVILGFBQUlJLG1CQUFKLENBQXdCO0FBQ3JDTixNQUFBQSxHQURxQztBQUVyQ0MsTUFBQUE7QUFGcUMsS0FBeEIsQ0FGYTtBQU01QkcsSUFBQUEsa0JBQWtCLEVBQUU7QUFOUSxHQUFaLENBQWxCOztBQVVBLFFBQU0sSUFBSU0saUJBQUosQ0FBTSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDL0IsVUFBTUMsY0FBYyxHQUFHQyxVQUFVLENBQUMsTUFBTTtBQUN0QyxVQUFJLENBQUNOLFNBQVMsQ0FBQ08sU0FBZixFQUEwQjtBQUN4QlAsUUFBQUEsU0FBUyxDQUFDUSxHQUFWO0FBQ0Q7O0FBQ0QsYUFBT0osTUFBTSxDQUFDLElBQUlLLEtBQUosQ0FBVSxxQkFBVixDQUFELENBQWI7QUFDRCxLQUxnQyxFQUs5QnBCLG9CQUw4QixDQUFqQztBQU9BVyxJQUFBQSxTQUFTLENBQUNVLElBQVYsQ0FBZSxlQUFmLEVBQWdDLE1BQU07QUFDcENDLE1BQUFBLFlBQVksQ0FBQ04sY0FBRCxDQUFaOztBQUNBTCxNQUFBQSxTQUFTLENBQUNZLE9BQVYsQ0FBa0JDLFFBQWxCOztBQUNBLGFBQU9WLE9BQU8sRUFBZDtBQUNELEtBSkQ7QUFLRCxHQWJLLENBQU47QUFlQSxTQUFPVyxhQUFJQyxNQUFKLENBQVc7QUFBQ0MsSUFBQUEsRUFBRSxFQUFFekIsTUFBTSxDQUFDcUIsT0FBUCxDQUFlSTtBQUFwQixHQUFYLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0bHMgZnJvbSAndGxzJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgSEFORFNIQUtFX1RJTUVPVVRfTVMgPSAxMDAwMDtcblxuZnVuY3Rpb24gdXBncmFkZVRvU1NMIChzb2NrZXQsIGtleSwgY2VydCkge1xuICByZXR1cm4gbmV3IHRscy5UTFNTb2NrZXQoc29ja2V0LCB7XG4gICAgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZSxcbiAgICBzZWN1cmVDb250ZXh0OiB0bHMuY3JlYXRlU2VjdXJlQ29udGV4dCh7XG4gICAgICBrZXksXG4gICAgICBjZXJ0XG4gICAgfSlcbiAgfSk7XG59XG5cbi8qKlxuICogQWZ0ZXIgdGhlIHNzbCBwcm90b2NvbCBpcyBzdWNjZXNzZnVsbHkgaGFuZHNoYWtlLCBjbG9zZSB0aGUgc3NsIHByb3RvY29sIGNoYW5uZWwgYW5kIHVzZSB0ZXh0IHRyYW5zbWlzc2lvblxuICogQHBhcmFtIHNvY2tldFxuICogQHBhcmFtIGtleVxuICogQHBhcmFtIGNlcnRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNvY2tldD59IER1cGxpY2F0ZSB0aGUgaW5wdXQgc29ja2V0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVuYWJsZVNTTEhhbmRzaGFrZU9ubHkgKHNvY2tldCwga2V5LCBjZXJ0KSB7XG4gIGNvbnN0IHNzbFNvY2tldCA9IHRscy5jb25uZWN0KHtcbiAgICBzb2NrZXQsXG4gICAgc2VjdXJlQ29udGV4dDogdGxzLmNyZWF0ZVNlY3VyZUNvbnRleHQoe1xuICAgICAga2V5LFxuICAgICAgY2VydFxuICAgIH0pLFxuICAgIHJlamVjdFVuYXV0aG9yaXplZDogZmFsc2UsXG4gIH0pO1xuXG4gIC8vIHN0b3AgcmVjZWl2aW5nIGRhdGEgYWZ0ZXIgc3VjY2Vzc2Z1bCBoYW5kc2hha2VcbiAgYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHRpbWVvdXRIYW5kbGVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXNzbFNvY2tldC5kZXN0cm95ZWQpIHtcbiAgICAgICAgc3NsU29ja2V0LmVuZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoJ3NzbCBoYW5kc2hha2UgZXJyb3InKSk7XG4gICAgfSwgSEFORFNIQUtFX1RJTUVPVVRfTVMpO1xuXG4gICAgc3NsU29ja2V0Lm9uY2UoJ3NlY3VyZUNvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dEhhbmRsZXIpO1xuICAgICAgc3NsU29ja2V0Ll9oYW5kbGUucmVhZFN0b3AoKTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xuICAvLyBEdXBsaWNhdGUgdGhlIHNvY2tldC4gUmV0dXJuIGEgbmV3IHNvY2tldCBvYmplY3QgY29ubmVjdGVkIHRvIHRoZSBzYW1lIHN5c3RlbSByZXNvdXJjZVxuICByZXR1cm4gbmV0LlNvY2tldCh7ZmQ6IHNvY2tldC5faGFuZGxlLmZkfSk7XG59XG5cblxuZXhwb3J0IHsgdXBncmFkZVRvU1NMLCBlbmFibGVTU0xIYW5kc2hha2VPbmx5IH07XG4iXSwiZmlsZSI6ImxpYi9zc2wtaGVscGVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
package/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { default as Usbmux } from './lib/usbmux';
2
2
  import * as utilities from './lib/utilities';
3
3
  import * as services from './lib/services';
4
+ import { INSTRUMENT_CHANNEL } from './lib/instrument';
4
5
 
5
6
 
6
- export { Usbmux, utilities, services };
7
+ export { Usbmux, utilities, services, INSTRUMENT_CHANNEL };
7
8
  export default Usbmux;
@@ -17,7 +17,7 @@ const CHANNEL_OFFSET = 2 ** 32;
17
17
  const INSTRUMENT_SERVICE_NAME_VERSION_14 = 'com.apple.instruments.remoteserver.DVTSecureSocketProxy';
18
18
  const INSTRUMENT_SERVICE_NAME = 'com.apple.instruments.remoteserver';
19
19
 
20
- export const SERVICE = Object.freeze({
20
+ export const INSTRUMENT_CHANNEL = Object.freeze({
21
21
  DEVICE_INFO: 'com.apple.instruments.server.services.deviceinfo',
22
22
  PROCESS_CONTROL: 'com.apple.instruments.server.services.processcontrol',
23
23
  SYSMONTAP: 'com.apple.instruments.server.services.sysmontap',
@@ -84,9 +84,9 @@ class InstrumentService extends BaseServiceSocket {
84
84
  }
85
85
 
86
86
  /**
87
- * If the event is registered, this channel {SERVICE} messages will be returned to event. refer to this._handleData
87
+ * If the event is registered, this channel {CHANNEL} messages will be returned to event. refer to this._handleData
88
88
  * It's actually listening for int channelCode. In this._channel object to record channel key and int value
89
- * @param {string} channel instruments service channel e.g: SERVICE.DEVICE_INFO.
89
+ * @param {string} channel instruments service channel e.g: INSTRUMENT_CHANNEL.DEVICE_INFO.
90
90
  * @param {DTXCallback} event
91
91
  */
92
92
  async registerChannelCallback (channel, event) {
@@ -96,7 +96,7 @@ class InstrumentService extends BaseServiceSocket {
96
96
 
97
97
  /**
98
98
  * Create a service channel, data transmission of the service will use this channelCode
99
- * @param {string} channel instruments service channel e.g: SERVICE.DEVICE_INFO
99
+ * @param {string} channel instruments service channel e.g: INSTRUMENT_CHANNEL.DEVICE_INFO
100
100
  * @returns {Promise<number|*>} instruments service channel code for data transmission
101
101
  */
102
102
  async makeChannel (channel) {
@@ -111,12 +111,12 @@ class InstrumentService extends BaseServiceSocket {
111
111
 
112
112
  /**
113
113
  * In general, we call this method to start the instrument dtx service
114
- * @param {string} channel instrument dtx service e.g: SERVICE.DEVICE_INFO
114
+ * @param {string} channel instrument dtx service e.g: INSTRUMENT_CHANNEL.DEVICE_INFO
115
115
  * @param {string} selector instrument service method name (reflection calls)
116
116
  * @param {...any} auxiliaries parameters required by selector
117
117
  * @returns {Promise<DTXMessage>}
118
118
  * example:
119
- * instrumentService.callChannel(SERVICE.PROCESS_CONTROL,
119
+ * instrumentService.callChannel(INSTRUMENT_CHANNEL.PROCESS_CONTROL,
120
120
  'launchSuspendedProcessWithDevicePath:bundleIdentifier:environment:arguments:options:', '',
121
121
  bundleID, {}, [], {'StartSuspendedKey': 0, 'KillExisting': 1}
122
122
  */
@@ -0,0 +1,89 @@
1
+ import {BaseServicePlist} from '../base-service';
2
+ import {fs, plist} from '@appium/support';
3
+
4
+
5
+ const MC_INSTALL_SERVICE_NAME = 'com.apple.mobile.MCInstall';
6
+ const ACKNOWLEDGED = 'Acknowledged';
7
+
8
+ function checkACK (res, name) {
9
+ if (res.Status !== ACKNOWLEDGED) {
10
+ throw new Error(`${name} error: ${JSON.stringify(res)}`);
11
+ }
12
+ return res;
13
+ }
14
+
15
+ class MCInstallProxyService extends BaseServicePlist {
16
+ constructor (socketClient) {
17
+ super(socketClient);
18
+ }
19
+
20
+ /**
21
+ * @typedef {Object} ProfileList
22
+ * @property {Array} OrderedIdentifiers list of all profile ident
23
+ * @property {Object} ProfileManifest
24
+ * @property {Object} ProfileMetadata
25
+ * @property {String} Status
26
+ */
27
+
28
+ /**
29
+ * Get all profiles of iOS devices
30
+ * @returns {ProfileList}
31
+ * e.g.
32
+ * {
33
+ * OrderedIdentifiers: [ '2fac1c2b3d684843189b2981c718b0132854a847a' ],
34
+ * ProfileManifest: {
35
+ * '2fac1c2b3d684843189b2981c718b0132854a847a': {
36
+ * Description: 'Charles Proxy CA (7 Dec 2020, MacBook-Pro.local)',
37
+ * IsActive: true
38
+ * }
39
+ * },
40
+ * ProfileMetadata: {
41
+ * '2fac1c2b3d684843189b2981c718b0132854a847a': {
42
+ * PayloadDisplayName: 'Charles Proxy CA (7 Dec 2020, MacBook-Pro.local)',
43
+ * PayloadRemovalDisallowed: false,
44
+ * PayloadUUID: 'B30005CC-BC73-4E42-8545-8DA6C44A8A71',
45
+ * PayloadVersion: 1
46
+ * }
47
+ * },
48
+ * Status: 'Acknowledged'
49
+ * }
50
+ */
51
+ async getProfileList () {
52
+ const res = await this._plistService.sendPlistAndReceive({RequestType: 'GetProfileList'});
53
+ return checkACK(res, 'getProfileList');
54
+ }
55
+
56
+ /**
57
+ * Install profile to iOS device
58
+ * @param {String} path must be a certificate file .PEM .CER and more formats
59
+ * e.g: /Downloads/charles-certificate.pem
60
+ * @returns {Object} e.g. {Status: 'Acknowledged'}
61
+ */
62
+ async installProfile (path) {
63
+ const payload = await fs.readFile(path);
64
+ const res = await this._plistService.sendPlistAndReceive({'RequestType': 'InstallProfile', 'Payload': payload});
65
+ return checkACK(res, 'installProfile');
66
+ }
67
+
68
+ /**
69
+ * Remove profile from iOS device
70
+ * @param {String} ident Query identifier list through getProfileList method
71
+ * @returns {Object} e.g. {Status: 'Acknowledged'}
72
+ */
73
+ async removeProfile (ident) {
74
+ const profiles = await this.getProfileList();
75
+ const meta = profiles.ProfileMetadata[ident];
76
+ if (!meta) {
77
+ throw new Error(`not find installed profile ident:${ident}`);
78
+ }
79
+ const data = plist.createBinaryPlist({'PayloadType': 'Configuration',
80
+ 'PayloadIdentifier': ident,
81
+ 'PayloadUUID': meta.PayloadUUID,
82
+ 'PayloadVersion': meta.PayloadVersion});
83
+ const res = await this._plistService.sendPlistAndReceive({'RequestType': 'RemoveProfile', 'ProfileIdentifier': data});
84
+ return checkACK(res, 'removeProfile');
85
+ }
86
+ }
87
+
88
+ export { MCInstallProxyService, MC_INSTALL_SERVICE_NAME };
89
+ export default MCInstallProxyService;
package/lib/services.js CHANGED
@@ -7,6 +7,7 @@ import { AfcService, AFC_SERVICE_NAME } from './afc';
7
7
  import { NotificationProxyService, NOTIFICATION_PROXY_SERVICE_NAME } from './notification-proxy';
8
8
  import { HouseArrestService, HOUSE_ARREST_SERVICE_NAME } from './house-arrest';
9
9
  import { InstrumentService, INSTRUMENT_SERVICE_NAME_VERSION_14, INSTRUMENT_SERVICE_NAME} from './instrument';
10
+ import { MCInstallProxyService, MC_INSTALL_SERVICE_NAME} from './mcinstall';
10
11
  import PlistService from './plist-service';
11
12
  import semver from 'semver';
12
13
 
@@ -91,6 +92,11 @@ async function startInstrumentService (udid, opts = {}) {
91
92
  );
92
93
  }
93
94
 
95
+ async function startMCInstallService (udid, opts = {}) {
96
+ const socket = await startService(udid, MC_INSTALL_SERVICE_NAME, opts.socket);
97
+ return new MCInstallProxyService(new PlistService(socket));
98
+ }
99
+
94
100
  async function startService (udid, serviceName, socket, handshakeOnly = false) {
95
101
  const lockdown = await startLockdownSession(udid, socket);
96
102
  try {
@@ -109,5 +115,5 @@ export {
109
115
  startSyslogService, startWebInspectorService,
110
116
  startInstallationProxyService, startSimulateLocationService,
111
117
  startAfcService, startCrashLogService, startNotificationProxyService,
112
- startHouseArrestService, startInstrumentService
118
+ startHouseArrestService, startInstrumentService, startMCInstallService
113
119
  };
package/lib/ssl-helper.js CHANGED
@@ -2,7 +2,6 @@ import tls from 'tls';
2
2
  import net from 'net';
3
3
  import B from 'bluebird';
4
4
 
5
- const TLS_VERSION = 'TLSv1_method';
6
5
  const HANDSHAKE_TIMEOUT_MS = 10000;
7
6
 
8
7
  function upgradeToSSL (socket, key, cert) {
@@ -10,8 +9,7 @@ function upgradeToSSL (socket, key, cert) {
10
9
  rejectUnauthorized: false,
11
10
  secureContext: tls.createSecureContext({
12
11
  key,
13
- cert,
14
- secureProtocol: TLS_VERSION
12
+ cert
15
13
  })
16
14
  });
17
15
  }
@@ -28,8 +26,7 @@ async function enableSSLHandshakeOnly (socket, key, cert) {
28
26
  socket,
29
27
  secureContext: tls.createSecureContext({
30
28
  key,
31
- cert,
32
- secureProtocol: TLS_VERSION
29
+ cert
33
30
  }),
34
31
  rejectUnauthorized: false,
35
32
  });
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "keywords": [
5
5
  "appium"
6
6
  ],
7
- "version": "2.2.0",
7
+ "version": "2.4.0",
8
8
  "author": "appium",
9
9
  "license": "Apache-2.0",
10
10
  "repository": {