node-simctl 7.1.12 → 7.1.14

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [7.1.14](https://github.com/appium/node-simctl/compare/v7.1.13...v7.1.14) (2023-05-02)
2
+
3
+
4
+ ### Miscellaneous Chores
5
+
6
+ * **deps:** bump rimraf from 4.4.1 to 5.0.0 ([#178](https://github.com/appium/node-simctl/issues/178)) ([5c40d7d](https://github.com/appium/node-simctl/commit/5c40d7dd3e7d213210a67fd5067f26c0324ff255))
7
+
8
+ ## [7.1.13](https://github.com/appium/node-simctl/compare/v7.1.12...v7.1.13) (2023-05-02)
9
+
10
+
11
+ ### Miscellaneous Chores
12
+
13
+ * **deps:** bump which from 2.0.2 to 3.0.1 ([#180](https://github.com/appium/node-simctl/issues/180)) ([0152093](https://github.com/appium/node-simctl/commit/0152093a7a2d3262d2da4c8f94c3b905bfbafce8))
14
+
1
15
  ## [7.1.12](https://github.com/appium/node-simctl/compare/v7.1.11...v7.1.12) (2023-02-25)
2
16
 
3
17
 
@@ -22,4 +22,4 @@ function getLogger() {
22
22
  const log = getLogger();
23
23
  var _default = log;
24
24
  exports.default = _default;
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnBtbG9nIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJMT0dfUFJFRklYIiwiZXhwb3J0cyIsImdldExvZ2dlciIsImxvZ2dlciIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibnBtbG9nIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJsb2ciLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuXG5jb25zdCBMT0dfUFJFRklYID0gJ3NpbWN0bCc7XG5cbmZ1bmN0aW9uIGdldExvZ2dlciAoKSB7XG4gIGNvbnN0IGxvZ2dlciA9IGdsb2JhbC5fZ2xvYmFsX25wbWxvZyB8fCBucG1sb2c7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxuICByZXR1cm4gbG9nZ2VyO1xufVxuXG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgTE9HX1BSRUZJWCB9O1xuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLE1BQU1DLFVBQVUsR0FBRyxRQUFRO0FBQUNDLE9BQUEsQ0FBQUQsVUFBQSxHQUFBQSxVQUFBO0FBRTVCLFNBQVNFLFNBQVNBLENBQUEsRUFBSTtFQUNwQixNQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsY0FBYyxJQUFJQyxlQUFNO0VBQzlDLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxLQUFLLEVBQUU7SUFDakJKLE1BQU0sQ0FBQ0ssUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7TUFBRUMsRUFBRSxFQUFFLE1BQU07TUFBRUMsRUFBRSxFQUFFO0lBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUNyRTtFQUNBLE9BQU9QLE1BQU07QUFDZjtBQUVBLE1BQU1RLEdBQUcsR0FBR1QsU0FBUyxFQUFFO0FBQUMsSUFBQVUsUUFBQSxHQUdURCxHQUFHO0FBQUFWLE9BQUEsQ0FBQVksT0FBQSxHQUFBRCxRQUFBIn0=
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnBtbG9nIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJMT0dfUFJFRklYIiwiZXhwb3J0cyIsImdldExvZ2dlciIsImxvZ2dlciIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibnBtbG9nIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJsb2ciLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuXG5jb25zdCBMT0dfUFJFRklYID0gJ3NpbWN0bCc7XG5cbmZ1bmN0aW9uIGdldExvZ2dlciAoKSB7XG4gIGNvbnN0IGxvZ2dlciA9IGdsb2JhbC5fZ2xvYmFsX25wbWxvZyB8fCBucG1sb2c7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxuICByZXR1cm4gbG9nZ2VyO1xufVxuXG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgTE9HX1BSRUZJWCB9O1xuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLE1BQU1DLFVBQVUsR0FBRyxRQUFRO0FBQUNDLE9BQUEsQ0FBQUQsVUFBQSxHQUFBQSxVQUFBO0FBRTVCLFNBQVNFLFNBQVNBLENBQUEsRUFBSTtFQUNwQixNQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsY0FBYyxJQUFJQyxlQUFNO0VBQzlDLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxLQUFLLEVBQUU7SUFDakJKLE1BQU0sQ0FBQ0ssUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7TUFBRUMsRUFBRSxFQUFFLE1BQU07TUFBRUMsRUFBRSxFQUFFO0lBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUNyRTtFQUNBLE9BQU9QLE1BQU07QUFDZjtBQUVBLE1BQU1RLEdBQUcsR0FBR1QsU0FBUyxDQUFDLENBQUM7QUFBQyxJQUFBVSxRQUFBLEdBR1RELEdBQUc7QUFBQVYsT0FBQSxDQUFBWSxPQUFBLEdBQUFELFFBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","names":["_npmlog","_interopRequireDefault","require","LOG_PREFIX","exports","getLogger","logger","global","_global_npmlog","npmlog","debug","addLevel","fg","bg","log","_default","default"],"sources":["../../lib/logger.js"],"sourcesContent":["import npmlog from 'npmlog';\n\n\nconst LOG_PREFIX = 'simctl';\n\nfunction getLogger () {\n const logger = global._global_npmlog || npmlog;\n if (!logger.debug) {\n logger.addLevel('debug', 1000, { fg: 'blue', bg: 'black' }, 'dbug');\n }\n return logger;\n}\n\nconst log = getLogger();\n\nexport { LOG_PREFIX };\nexport default log;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,MAAMC,UAAU,GAAG,QAAQ;AAACC,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAE5B,SAASE,SAASA,CAAA,EAAI;EACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,cAAc,IAAIC,eAAM;EAC9C,IAAI,CAACH,MAAM,CAACI,KAAK,EAAE;IACjBJ,MAAM,CAACK,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE;MAAEC,EAAE,EAAE,MAAM;MAAEC,EAAE,EAAE;IAAQ,CAAC,EAAE,MAAM,CAAC;EACrE;EACA,OAAOP,MAAM;AACf;AAEA,MAAMQ,GAAG,GAAGT,SAAS,EAAE;AAAC,IAAAU,QAAA,GAGTD,GAAG;AAAAV,OAAA,CAAAY,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"logger.js","names":["_npmlog","_interopRequireDefault","require","LOG_PREFIX","exports","getLogger","logger","global","_global_npmlog","npmlog","debug","addLevel","fg","bg","log","_default","default"],"sources":["../../lib/logger.js"],"sourcesContent":["import npmlog from 'npmlog';\n\n\nconst LOG_PREFIX = 'simctl';\n\nfunction getLogger () {\n const logger = global._global_npmlog || npmlog;\n if (!logger.debug) {\n logger.addLevel('debug', 1000, { fg: 'blue', bg: 'black' }, 'dbug');\n }\n return logger;\n}\n\nconst log = getLogger();\n\nexport { LOG_PREFIX };\nexport default log;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,MAAMC,UAAU,GAAG,QAAQ;AAACC,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAE5B,SAASE,SAASA,CAAA,EAAI;EACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,cAAc,IAAIC,eAAM;EAC9C,IAAI,CAACH,MAAM,CAACI,KAAK,EAAE;IACjBJ,MAAM,CAACK,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE;MAAEC,EAAE,EAAE,MAAM;MAAEC,EAAE,EAAE;IAAQ,CAAC,EAAE,MAAM,CAAC;EACrE;EACA,OAAOP,MAAM;AACf;AAEA,MAAMQ,GAAG,GAAGT,SAAS,CAAC,CAAC;AAAC,IAAAU,QAAA,GAGTD,GAAG;AAAAV,OAAA,CAAAY,OAAA,GAAAD,QAAA"}
@@ -99,4 +99,4 @@ for (const [fnName, fn] of _lodash.default.toPairs(_index.default)) {
99
99
  }
100
100
  var _default = Simctl;
101
101
  exports.default = _default;
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaW5kZXgiLCJfd2hpY2giLCJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaGVscGVycyIsIl90ZWVuX3Byb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsIl9kZXZpY2VzU2V0UGF0aCIsImRldmljZXNTZXRQYXRoIiwidmFsdWUiLCJyZXF1aXJlVWRpZCIsImNvbW1hbmROYW1lIiwiRXJyb3IiLCJyZXF1aXJlWGNydW4iLCJ4Y3J1bkJpbmFyeSIsImdldFhjcnVuQmluYXJ5Iiwid2hpY2giLCJlIiwiZXhlYyIsInN1YmNvbW1hbmQiLCJhcmdzIiwiZW52IiwiYXN5bmNocm9ub3VzIiwiZW5jb2RpbmciLCJkZWZhdWx0cyIsIm1hcEtleXMiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImV4ZWNPcHRzIiwidGltZW91dCIsIlN1YlByb2Nlc3MiLCJ0cEV4ZWMiLCJzdGRlcnIiLCJtc2ciLCJ0cmltIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwibWVzc2FnZSIsImV4cG9ydHMiLCJmbk5hbWUiLCJmbiIsInRvUGFpcnMiLCJzdWJjb21tYW5kcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3NpbWN0bC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHN1YmNvbW1hbmRzIGZyb20gJy4vc3ViY29tbWFuZHMvaW5kZXguanMnO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBnZXRYY3J1bkJpbmFyeSxcbn0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGV4ZWMgYXMgdHBFeGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3QgU0lNQ1RMX0VOVl9QUkVGSVggPSAnU0lNQ1RMX0NISUxEXyc7XG5jb25zdCBERUZBVUxUX09QVFMgPSB7XG4gIHhjcnVuOiB7XG4gICAgcGF0aDogbnVsbCxcbiAgfSxcbiAgZXhlY1RpbWVvdXQ6IERFRkFVTFRfRVhFQ19USU1FT1VULFxuICBsb2dFcnJvcnM6IHRydWUsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRzXG4gKiBAcHJvcGVydHkge0FycmF5LjxzdHJpbmc+fSBhcmdzIFtbXV0gLSBUaGUgbGlzdCBvZiBhZGRpdGlvbmFsIHN1YmNvbW1hbmQgYXJndW1lbnRzLlxuICogSXQncyBlbXB0eSBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHtPYmplY3R9IGVudiBbe31dIC0gRW52aXJvbm1lbnQgdmFyaWFibGVzIG1hcHBpbmcuIEFsbCB0aGVzZSB2YXJpYWJsZXNcbiAqIHdpbGwgYmUgcGFzc2VkIFNpbXVsYXRvciBhbmQgdXNlZCBpbiB0aGUgZXhlY3V0aW5nIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gU2V0IGl0IHRvIF9mYWxzZV8gdG8gdGhyb3cgZXhlY3V0aW9uIGVycm9yc1xuICogaW1tZWRpYXRlbHkgd2l0aG91dCBsb2dnaW5nIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhc3luY2hyb25vdXMgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gY29tbWFuZFxuICogJ3N5bmNocm9ub3VzbHknIG9yICdhc3luY2hyb25vdXNseScuIEFmZmVjdHMgdGhlIHJldHVybmVkIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGVuY29kaW5nIC0gRXhwbGljaXRseSBzZXRzIHN0cmVhbXMgZW5jb2RpbmcgZm9yIHRoZSBleGVjdXRlZFxuICogY29tbWFuZCBpbnB1dCBhbmQgb3V0cHV0cy5cbiAqL1xuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltY3RsT3B0c1xuICogQHByb3BlcnR5IHs/T2JqZWN0fSB4Y3J1biAtIFRoZSB4Y3J1biBwcm9wZXJ0aWVzLiBDdXJyZW50bHkgb25seSBvbmUgcHJvcGVydHlcbiAqIGlzIHN1cHBvcnRlZCwgd2hpY2ggaXMgYHBhdGhgIGFuZCBpdCBieSBkZWZhdWx0IGNvbnRhaW5zIGBudWxsYCwgd2hpY2ggZW5mb3JjZXNcbiAqIHRoZSBpbnN0YW5jZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aGUgZnVsbCBwYXRoIHRvIGB4Y3J1bmAgdG9vbCBhbmQgdG8gdGhyb3dcbiAqIGFuIGV4Y2VwdGlvbiBpZiBpdCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIElmIHRoZSBwYXRoIGlzIHNldCB1cG9uIGluc3RhbmNlIGNyZWF0aW9uXG4gKiB0aGVuIGl0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgYGV4ZWNgIGFuZCBubyBhdXRvZGV0ZWN0aW9uIHdpbGwgaGFwcGVuLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDAwXSAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHNcbiAqIHRvIHdhaXQgZm9yIHNpbmdsZSBzeW5jaHJvbm91cyB4Y3J1biBjb21tYW5kLlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gbG9nRXJyb3JzIFt0cnVlXSAtIFdoZXRoZXIgdG8gd2lyZSB4Y3J1biBlcnJvciBtZXNzYWdlc1xuICogaW50byBkZWJ1ZyBsb2cgYmVmb3JlIHRocm93aW5nIHRoZW0uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVkaWQgW251bGxdIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXJyZW50IGRldmljZSwgd2hpY2ggaXNcbiAqIGdvaW5nIHRvIGJlIGltcGxpY2l0bHkgcGFzc2VkIHRvIGFsbCBtZXRob2RzLCB3aGljaCByZXF1aXJlIGl0LiBJdCBjYW4gZWl0aGVyIGJlIHNldFxuICogdXBvbiBpbnN0YW5jZSBjcmVhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duIGluIGFkdmFuY2Ugb3IgbGF0ZXIgd2hlbi9pZiBuZWVkZWQgdmlhIHRoZVxuICogY29ycmVzcG9uZGluZyBpbnN0YW5jZSBzZXR0ZXIuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGRldmljZXNTZXRQYXRoIC0gRnVsbCBwYXRoIHRvIHRoZSBzZXQgb2YgZGV2aWNlcyB0aGF0IHlvdSB3YW50IHRvIG1hbmFnZS5cbiAqIEJ5IGRlZmF1bHQgdGhpcyBwYXRoIHVzdWFsbHkgZXF1YWxzIHRvIH4vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9EZXZpY2VzXG4gKi9cblxuXG5jbGFzcyBTaW1jdGwge1xuICAvKipcbiAgICogQHBhcmFtIHs/U2ltY3RsT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIG9wdHMgPSBfLmNsb25lRGVlcChvcHRzKTtcbiAgICBfLmRlZmF1bHRzRGVlcChvcHRzLCBERUZBVUxUX09QVFMpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyhERUZBVUxUX09QVFMpKSB7XG4gICAgICB0aGlzW2tleV0gPSBvcHRzW2tleV07XG4gICAgfVxuICAgIHRoaXMuX3VkaWQgPSBfLmlzTmlsKG9wdHMudWRpZCkgPyBudWxsIDogb3B0cy51ZGlkO1xuICAgIHRoaXMuX2RldmljZXNTZXRQYXRoID0gXy5pc05pbChvcHRzLmRldmljZXNTZXRQYXRoKSA/IG51bGwgOiBvcHRzLmRldmljZXNTZXRQYXRoO1xuICB9XG5cbiAgc2V0IHVkaWQgKHZhbHVlKSB7XG4gICAgdGhpcy5fdWRpZCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHVkaWQgKCkge1xuICAgIHJldHVybiB0aGlzLl91ZGlkO1xuICB9XG5cbiAgc2V0IGRldmljZXNTZXRQYXRoICh2YWx1ZSkge1xuICAgIHRoaXMuX2RldmljZXNTZXRQYXRoID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZGV2aWNlc1NldFBhdGggKCkge1xuICAgIHJldHVybiB0aGlzLl9kZXZpY2VzU2V0UGF0aDtcbiAgfVxuXG4gIHJlcXVpcmVVZGlkIChjb21tYW5kTmFtZSA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMudWRpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1ZGlkIGlzIHJlcXVpcmVkIHRvIGJlIHNldCBmb3IgYCArXG4gICAgICAgIChjb21tYW5kTmFtZSA/IGB0aGUgJyR7Y29tbWFuZE5hbWV9JyBjb21tYW5kYCA6ICd0aGlzIHNpbWN0bCBjb21tYW5kJykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51ZGlkO1xuICB9XG5cbiAgYXN5bmMgcmVxdWlyZVhjcnVuICgpIHtcbiAgICBjb25zdCB4Y3J1bkJpbmFyeSA9IGdldFhjcnVuQmluYXJ5KCk7XG5cbiAgICBpZiAoIXRoaXMueGNydW4ucGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy54Y3J1bi5wYXRoID0gYXdhaXQgd2hpY2goeGNydW5CaW5hcnkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7eGNydW5CaW5hcnl9IHRvb2wgaGFzIG5vdCBiZWVuIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBBcmUgWGNvZGUgZGV2ZWxvcGVycyB0b29scyBpbnN0YWxsZWQ/YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnhjcnVuLnBhdGg7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YmNvbW1hbmQgLSBPbmUgb2YgYXZhaWxhYmxlIHNpbWN0bCBzdWJjb21tYW5kcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRlIGB4Y3J1biBzaW1jdGxgIGluIFRlcm1pbmFsIHRvIHNlZSB0aGUgZnVsbCBsaXN0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYXZhaWxhYmxlIHN1YmNvbW1hbmRzLlxuICAgKiBAcGFyYW0gez9FeGVjT3B0c30gb3B0c1xuICAgKiBAcmV0dXJuIHtFeGVjUmVzdWx0fFN1YlByb2Nlc3N9IEVpdGhlciB0aGUgcmVzdWx0IG9mIHRlZW4gcHJvY2VzcydzIGBleGVjYCBvclxuICAgKiBgU3ViUHJvY2Vzc2AgaW5zdGFuY2UgZGVwZW5kaW5nIG9mIGBvcHRzLmFzeW5jaHJvbm91c2AgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZCByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlYyAoc3ViY29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gICAgbGV0IHtcbiAgICAgIGFyZ3MgPSBbXSxcbiAgICAgIGVudiA9IHt9LFxuICAgICAgYXN5bmNocm9ub3VzID0gZmFsc2UsXG4gICAgICBlbmNvZGluZyxcbiAgICAgIGxvZ0Vycm9ycyA9IHRydWUsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsXG4gICAgICAuLi4odGhpcy5kZXZpY2VzU2V0UGF0aCA/IFsnLS1zZXQnLCB0aGlzLmRldmljZXNTZXRQYXRoXSA6IFtdKSxcbiAgICAgIHN1YmNvbW1hbmQsXG4gICAgICAuLi5hcmdzXG4gICAgXTtcbiAgICAvLyBQcmVmaXggYWxsIHBhc3NlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCAnU0lNQ1RMX0NISUxEXycsIHNpbWN0bFxuICAgIC8vIHdpbGwgdGhlbiBwYXNzIHRoZXNlIHRvIHRoZSBjaGlsZCAoc3Bhd25lZCkgcHJvY2Vzcy5cbiAgICBlbnYgPSBfLmRlZmF1bHRzKFxuICAgICAgXy5tYXBLZXlzKGVudixcbiAgICAgICAgKHZhbHVlLCBrZXkpID0+IF8uc3RhcnRzV2l0aChrZXksIFNJTUNUTF9FTlZfUFJFRklYKSA/IGtleSA6IGAke1NJTUNUTF9FTlZfUFJFRklYfSR7a2V5fWApLFxuICAgICAgcHJvY2Vzcy5lbnYpO1xuXG4gICAgY29uc3QgZXhlY09wdHMgPSB7XG4gICAgICBlbnYsXG4gICAgICBlbmNvZGluZyxcbiAgICB9O1xuICAgIGlmICghYXN5bmNocm9ub3VzKSB7XG4gICAgICBleGVjT3B0cy50aW1lb3V0ID0gdGhpcy5leGVjVGltZW91dDtcbiAgICB9XG4gICAgY29uc3QgeGNydW4gPSBhd2FpdCB0aGlzLnJlcXVpcmVYY3J1bigpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXN5bmNocm9ub3VzID8gbmV3IFN1YlByb2Nlc3MoeGNydW4sIGFyZ3MsIGV4ZWNPcHRzKSA6IGF3YWl0IHRwRXhlYyh4Y3J1biwgYXJncywgZXhlY09wdHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghdGhpcy5sb2dFcnJvcnMgfHwgIWxvZ0Vycm9ycykge1xuICAgICAgICAvLyBpZiB3ZSBkb24ndCB3YW50IHRvIHNlZSB0aGUgZXJyb3JzLCBqdXN0IHRocm93IGFuZCBhbGxvdyB0aGUgY2FsbGluZ1xuICAgICAgICAvLyBjb2RlIGRvIHdoYXQgaXQgd2FudHNcbiAgICAgIH0gZWxzZSBpZiAoZS5zdGRlcnIpIHtcbiAgICAgICAgY29uc3QgbXNnID0gYEVycm9yIHJ1bm5pbmcgJyR7c3ViY29tbWFuZH0nOiAke2Uuc3RkZXJyLnRyaW0oKX1gO1xuICAgICAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgbXNnKTtcbiAgICAgICAgZS5tZXNzYWdlID0gbXNnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIGFkZCBhbGwgdGhlIHN1YmNvbW1hbmRzIHRvIHRoZSBTaW1jdGwgcHJvdG90eXBlXG5mb3IgKGNvbnN0IFtmbk5hbWUsIGZuXSBvZiBfLnRvUGFpcnMoc3ViY29tbWFuZHMpKSB7XG4gIFNpbWN0bC5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaW1jdGw7XG5leHBvcnQgeyBTaW1jdGwgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFBMEQsU0FBQU8seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFB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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaW5kZXgiLCJfd2hpY2giLCJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaGVscGVycyIsIl90ZWVuX3Byb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsIl9kZXZpY2VzU2V0UGF0aCIsImRldmljZXNTZXRQYXRoIiwidmFsdWUiLCJyZXF1aXJlVWRpZCIsImNvbW1hbmROYW1lIiwiRXJyb3IiLCJyZXF1aXJlWGNydW4iLCJ4Y3J1bkJpbmFyeSIsImdldFhjcnVuQmluYXJ5Iiwid2hpY2giLCJlIiwiZXhlYyIsInN1YmNvbW1hbmQiLCJhcmdzIiwiZW52IiwiYXN5bmNocm9ub3VzIiwiZW5jb2RpbmciLCJkZWZhdWx0cyIsIm1hcEtleXMiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImV4ZWNPcHRzIiwidGltZW91dCIsIlN1YlByb2Nlc3MiLCJ0cEV4ZWMiLCJzdGRlcnIiLCJtc2ciLCJ0cmltIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwibWVzc2FnZSIsImV4cG9ydHMiLCJmbk5hbWUiLCJmbiIsInRvUGFpcnMiLCJzdWJjb21tYW5kcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3NpbWN0bC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHN1YmNvbW1hbmRzIGZyb20gJy4vc3ViY29tbWFuZHMvaW5kZXguanMnO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBnZXRYY3J1bkJpbmFyeSxcbn0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGV4ZWMgYXMgdHBFeGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3QgU0lNQ1RMX0VOVl9QUkVGSVggPSAnU0lNQ1RMX0NISUxEXyc7XG5jb25zdCBERUZBVUxUX09QVFMgPSB7XG4gIHhjcnVuOiB7XG4gICAgcGF0aDogbnVsbCxcbiAgfSxcbiAgZXhlY1RpbWVvdXQ6IERFRkFVTFRfRVhFQ19USU1FT1VULFxuICBsb2dFcnJvcnM6IHRydWUsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRzXG4gKiBAcHJvcGVydHkge0FycmF5LjxzdHJpbmc+fSBhcmdzIFtbXV0gLSBUaGUgbGlzdCBvZiBhZGRpdGlvbmFsIHN1YmNvbW1hbmQgYXJndW1lbnRzLlxuICogSXQncyBlbXB0eSBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHtPYmplY3R9IGVudiBbe31dIC0gRW52aXJvbm1lbnQgdmFyaWFibGVzIG1hcHBpbmcuIEFsbCB0aGVzZSB2YXJpYWJsZXNcbiAqIHdpbGwgYmUgcGFzc2VkIFNpbXVsYXRvciBhbmQgdXNlZCBpbiB0aGUgZXhlY3V0aW5nIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gU2V0IGl0IHRvIF9mYWxzZV8gdG8gdGhyb3cgZXhlY3V0aW9uIGVycm9yc1xuICogaW1tZWRpYXRlbHkgd2l0aG91dCBsb2dnaW5nIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhc3luY2hyb25vdXMgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gY29tbWFuZFxuICogJ3N5bmNocm9ub3VzbHknIG9yICdhc3luY2hyb25vdXNseScuIEFmZmVjdHMgdGhlIHJldHVybmVkIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGVuY29kaW5nIC0gRXhwbGljaXRseSBzZXRzIHN0cmVhbXMgZW5jb2RpbmcgZm9yIHRoZSBleGVjdXRlZFxuICogY29tbWFuZCBpbnB1dCBhbmQgb3V0cHV0cy5cbiAqL1xuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltY3RsT3B0c1xuICogQHByb3BlcnR5IHs/T2JqZWN0fSB4Y3J1biAtIFRoZSB4Y3J1biBwcm9wZXJ0aWVzLiBDdXJyZW50bHkgb25seSBvbmUgcHJvcGVydHlcbiAqIGlzIHN1cHBvcnRlZCwgd2hpY2ggaXMgYHBhdGhgIGFuZCBpdCBieSBkZWZhdWx0IGNvbnRhaW5zIGBudWxsYCwgd2hpY2ggZW5mb3JjZXNcbiAqIHRoZSBpbnN0YW5jZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aGUgZnVsbCBwYXRoIHRvIGB4Y3J1bmAgdG9vbCBhbmQgdG8gdGhyb3dcbiAqIGFuIGV4Y2VwdGlvbiBpZiBpdCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIElmIHRoZSBwYXRoIGlzIHNldCB1cG9uIGluc3RhbmNlIGNyZWF0aW9uXG4gKiB0aGVuIGl0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgYGV4ZWNgIGFuZCBubyBhdXRvZGV0ZWN0aW9uIHdpbGwgaGFwcGVuLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDAwXSAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHNcbiAqIHRvIHdhaXQgZm9yIHNpbmdsZSBzeW5jaHJvbm91cyB4Y3J1biBjb21tYW5kLlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gbG9nRXJyb3JzIFt0cnVlXSAtIFdoZXRoZXIgdG8gd2lyZSB4Y3J1biBlcnJvciBtZXNzYWdlc1xuICogaW50byBkZWJ1ZyBsb2cgYmVmb3JlIHRocm93aW5nIHRoZW0uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVkaWQgW251bGxdIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXJyZW50IGRldmljZSwgd2hpY2ggaXNcbiAqIGdvaW5nIHRvIGJlIGltcGxpY2l0bHkgcGFzc2VkIHRvIGFsbCBtZXRob2RzLCB3aGljaCByZXF1aXJlIGl0LiBJdCBjYW4gZWl0aGVyIGJlIHNldFxuICogdXBvbiBpbnN0YW5jZSBjcmVhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duIGluIGFkdmFuY2Ugb3IgbGF0ZXIgd2hlbi9pZiBuZWVkZWQgdmlhIHRoZVxuICogY29ycmVzcG9uZGluZyBpbnN0YW5jZSBzZXR0ZXIuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGRldmljZXNTZXRQYXRoIC0gRnVsbCBwYXRoIHRvIHRoZSBzZXQgb2YgZGV2aWNlcyB0aGF0IHlvdSB3YW50IHRvIG1hbmFnZS5cbiAqIEJ5IGRlZmF1bHQgdGhpcyBwYXRoIHVzdWFsbHkgZXF1YWxzIHRvIH4vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9EZXZpY2VzXG4gKi9cblxuXG5jbGFzcyBTaW1jdGwge1xuICAvKipcbiAgICogQHBhcmFtIHs/U2ltY3RsT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIG9wdHMgPSBfLmNsb25lRGVlcChvcHRzKTtcbiAgICBfLmRlZmF1bHRzRGVlcChvcHRzLCBERUZBVUxUX09QVFMpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyhERUZBVUxUX09QVFMpKSB7XG4gICAgICB0aGlzW2tleV0gPSBvcHRzW2tleV07XG4gICAgfVxuICAgIHRoaXMuX3VkaWQgPSBfLmlzTmlsKG9wdHMudWRpZCkgPyBudWxsIDogb3B0cy51ZGlkO1xuICAgIHRoaXMuX2RldmljZXNTZXRQYXRoID0gXy5pc05pbChvcHRzLmRldmljZXNTZXRQYXRoKSA/IG51bGwgOiBvcHRzLmRldmljZXNTZXRQYXRoO1xuICB9XG5cbiAgc2V0IHVkaWQgKHZhbHVlKSB7XG4gICAgdGhpcy5fdWRpZCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHVkaWQgKCkge1xuICAgIHJldHVybiB0aGlzLl91ZGlkO1xuICB9XG5cbiAgc2V0IGRldmljZXNTZXRQYXRoICh2YWx1ZSkge1xuICAgIHRoaXMuX2RldmljZXNTZXRQYXRoID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZGV2aWNlc1NldFBhdGggKCkge1xuICAgIHJldHVybiB0aGlzLl9kZXZpY2VzU2V0UGF0aDtcbiAgfVxuXG4gIHJlcXVpcmVVZGlkIChjb21tYW5kTmFtZSA9IG51bGwpIHtcbiAgICBpZiAoIXRoaXMudWRpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1ZGlkIGlzIHJlcXVpcmVkIHRvIGJlIHNldCBmb3IgYCArXG4gICAgICAgIChjb21tYW5kTmFtZSA/IGB0aGUgJyR7Y29tbWFuZE5hbWV9JyBjb21tYW5kYCA6ICd0aGlzIHNpbWN0bCBjb21tYW5kJykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51ZGlkO1xuICB9XG5cbiAgYXN5bmMgcmVxdWlyZVhjcnVuICgpIHtcbiAgICBjb25zdCB4Y3J1bkJpbmFyeSA9IGdldFhjcnVuQmluYXJ5KCk7XG5cbiAgICBpZiAoIXRoaXMueGNydW4ucGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy54Y3J1bi5wYXRoID0gYXdhaXQgd2hpY2goeGNydW5CaW5hcnkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7eGNydW5CaW5hcnl9IHRvb2wgaGFzIG5vdCBiZWVuIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBBcmUgWGNvZGUgZGV2ZWxvcGVycyB0b29scyBpbnN0YWxsZWQ/YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnhjcnVuLnBhdGg7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YmNvbW1hbmQgLSBPbmUgb2YgYXZhaWxhYmxlIHNpbWN0bCBzdWJjb21tYW5kcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRlIGB4Y3J1biBzaW1jdGxgIGluIFRlcm1pbmFsIHRvIHNlZSB0aGUgZnVsbCBsaXN0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYXZhaWxhYmxlIHN1YmNvbW1hbmRzLlxuICAgKiBAcGFyYW0gez9FeGVjT3B0c30gb3B0c1xuICAgKiBAcmV0dXJuIHtFeGVjUmVzdWx0fFN1YlByb2Nlc3N9IEVpdGhlciB0aGUgcmVzdWx0IG9mIHRlZW4gcHJvY2VzcydzIGBleGVjYCBvclxuICAgKiBgU3ViUHJvY2Vzc2AgaW5zdGFuY2UgZGVwZW5kaW5nIG9mIGBvcHRzLmFzeW5jaHJvbm91c2AgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZCByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlYyAoc3ViY29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gICAgbGV0IHtcbiAgICAgIGFyZ3MgPSBbXSxcbiAgICAgIGVudiA9IHt9LFxuICAgICAgYXN5bmNocm9ub3VzID0gZmFsc2UsXG4gICAgICBlbmNvZGluZyxcbiAgICAgIGxvZ0Vycm9ycyA9IHRydWUsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsXG4gICAgICAuLi4odGhpcy5kZXZpY2VzU2V0UGF0aCA/IFsnLS1zZXQnLCB0aGlzLmRldmljZXNTZXRQYXRoXSA6IFtdKSxcbiAgICAgIHN1YmNvbW1hbmQsXG4gICAgICAuLi5hcmdzXG4gICAgXTtcbiAgICAvLyBQcmVmaXggYWxsIHBhc3NlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCAnU0lNQ1RMX0NISUxEXycsIHNpbWN0bFxuICAgIC8vIHdpbGwgdGhlbiBwYXNzIHRoZXNlIHRvIHRoZSBjaGlsZCAoc3Bhd25lZCkgcHJvY2Vzcy5cbiAgICBlbnYgPSBfLmRlZmF1bHRzKFxuICAgICAgXy5tYXBLZXlzKGVudixcbiAgICAgICAgKHZhbHVlLCBrZXkpID0+IF8uc3RhcnRzV2l0aChrZXksIFNJTUNUTF9FTlZfUFJFRklYKSA/IGtleSA6IGAke1NJTUNUTF9FTlZfUFJFRklYfSR7a2V5fWApLFxuICAgICAgcHJvY2Vzcy5lbnYpO1xuXG4gICAgY29uc3QgZXhlY09wdHMgPSB7XG4gICAgICBlbnYsXG4gICAgICBlbmNvZGluZyxcbiAgICB9O1xuICAgIGlmICghYXN5bmNocm9ub3VzKSB7XG4gICAgICBleGVjT3B0cy50aW1lb3V0ID0gdGhpcy5leGVjVGltZW91dDtcbiAgICB9XG4gICAgY29uc3QgeGNydW4gPSBhd2FpdCB0aGlzLnJlcXVpcmVYY3J1bigpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXN5bmNocm9ub3VzID8gbmV3IFN1YlByb2Nlc3MoeGNydW4sIGFyZ3MsIGV4ZWNPcHRzKSA6IGF3YWl0IHRwRXhlYyh4Y3J1biwgYXJncywgZXhlY09wdHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghdGhpcy5sb2dFcnJvcnMgfHwgIWxvZ0Vycm9ycykge1xuICAgICAgICAvLyBpZiB3ZSBkb24ndCB3YW50IHRvIHNlZSB0aGUgZXJyb3JzLCBqdXN0IHRocm93IGFuZCBhbGxvdyB0aGUgY2FsbGluZ1xuICAgICAgICAvLyBjb2RlIGRvIHdoYXQgaXQgd2FudHNcbiAgICAgIH0gZWxzZSBpZiAoZS5zdGRlcnIpIHtcbiAgICAgICAgY29uc3QgbXNnID0gYEVycm9yIHJ1bm5pbmcgJyR7c3ViY29tbWFuZH0nOiAke2Uuc3RkZXJyLnRyaW0oKX1gO1xuICAgICAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgbXNnKTtcbiAgICAgICAgZS5tZXNzYWdlID0gbXNnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIGFkZCBhbGwgdGhlIHN1YmNvbW1hbmRzIHRvIHRoZSBTaW1jdGwgcHJvdG90eXBlXG5mb3IgKGNvbnN0IFtmbk5hbWUsIGZuXSBvZiBfLnRvUGFpcnMoc3ViY29tbWFuZHMpKSB7XG4gIFNpbWN0bC5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaW1jdGw7XG5leHBvcnQgeyBTaW1jdGwgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFBMEQsU0FBQU8seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"simctl.js","names":["_lodash","_interopRequireDefault","require","_index","_which","_logger","_interopRequireWildcard","_helpers","_teen_process","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SIMCTL_ENV_PREFIX","DEFAULT_OPTS","xcrun","path","execTimeout","DEFAULT_EXEC_TIMEOUT","logErrors","Simctl","constructor","opts","_","cloneDeep","defaultsDeep","keys","_udid","isNil","udid","_devicesSetPath","devicesSetPath","value","requireUdid","commandName","Error","requireXcrun","xcrunBinary","getXcrunBinary","which","e","exec","subcommand","args","env","asynchronous","encoding","defaults","mapKeys","startsWith","process","execOpts","timeout","SubProcess","tpExec","stderr","msg","trim","log","debug","LOG_PREFIX","message","exports","fnName","fn","toPairs","subcommands","_default"],"sources":["../../lib/simctl.js"],"sourcesContent":["import _ from 'lodash';\nimport subcommands from './subcommands/index.js';\nimport which from 'which';\nimport log, { LOG_PREFIX } from './logger';\nimport {\n DEFAULT_EXEC_TIMEOUT, getXcrunBinary,\n} from './helpers';\nimport { exec as tpExec, SubProcess } from 'teen_process';\n\nconst SIMCTL_ENV_PREFIX = 'SIMCTL_CHILD_';\nconst DEFAULT_OPTS = {\n xcrun: {\n path: null,\n },\n execTimeout: DEFAULT_EXEC_TIMEOUT,\n logErrors: true,\n};\n\n/**\n * @typedef {Object} ExecOpts\n * @property {Array.<string>} args [[]] - The list of additional subcommand arguments.\n * It's empty by default.\n * @property {Object} env [{}] - Environment variables mapping. All these variables\n * will be passed Simulator and used in the executing function.\n * @property {boolean} logErrors [true] - Set it to _false_ to throw execution errors\n * immediately without logging any additional information.\n * @property {boolean} asynchronous [false] - Whether to execute the given command\n * 'synchronously' or 'asynchronously'. Affects the returned result of the function.\n * @property {?string} encoding - Explicitly sets streams encoding for the executed\n * command input and outputs.\n */\n\n\n/**\n * @typedef {Object} SimctlOpts\n * @property {?Object} xcrun - The xcrun properties. Currently only one property\n * is supported, which is `path` and it by default contains `null`, which enforces\n * the instance to automatically detect the full path to `xcrun` tool and to throw\n * an exception if it cannot be detected. If the path is set upon instance creation\n * then it is going to be used by `exec` and no autodetection will happen.\n * @property {?number} execTimeout [600000] - The maximum number of milliseconds\n * to wait for single synchronous xcrun command.\n * @property {?boolean} logErrors [true] - Whether to wire xcrun error messages\n * into debug log before throwing them.\n * @property {?string} udid [null] - The unique identifier of the current device, which is\n * going to be implicitly passed to all methods, which require it. It can either be set\n * upon instance creation if it is already known in advance or later when/if needed via the\n * corresponding instance setter.\n * @property {?string} devicesSetPath - Full path to the set of devices that you want to manage.\n * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices\n */\n\n\nclass Simctl {\n /**\n * @param {?SimctlOpts} opts\n */\n constructor (opts = {}) {\n opts = _.cloneDeep(opts);\n _.defaultsDeep(opts, DEFAULT_OPTS);\n for (const key of _.keys(DEFAULT_OPTS)) {\n this[key] = opts[key];\n }\n this._udid = _.isNil(opts.udid) ? null : opts.udid;\n this._devicesSetPath = _.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;\n }\n\n set udid (value) {\n this._udid = value;\n }\n\n get udid () {\n return this._udid;\n }\n\n set devicesSetPath (value) {\n this._devicesSetPath = value;\n }\n\n get devicesSetPath () {\n return this._devicesSetPath;\n }\n\n requireUdid (commandName = null) {\n if (!this.udid) {\n throw new Error(`udid is required to be set for ` +\n (commandName ? `the '${commandName}' command` : 'this simctl command'));\n }\n return this.udid;\n }\n\n async requireXcrun () {\n const xcrunBinary = getXcrunBinary();\n\n if (!this.xcrun.path) {\n try {\n this.xcrun.path = await which(xcrunBinary);\n } catch (e) {\n throw new Error(`${xcrunBinary} tool has not been found in PATH. ` +\n `Are Xcode developers tools installed?`);\n }\n }\n return this.xcrun.path;\n }\n\n /**\n * Execute the particular simctl command.\n *\n * @param {string} subcommand - One of available simctl subcommands.\n * Execute `xcrun simctl` in Terminal to see the full list\n * of available subcommands.\n * @param {?ExecOpts} opts\n * @return {ExecResult|SubProcess} Either the result of teen process's `exec` or\n * `SubProcess` instance depending of `opts.asynchronous` value.\n * @throws {Error} If the simctl subcommand command returns non-zero return code.\n */\n async exec (subcommand, opts = {}) {\n let {\n args = [],\n env = {},\n asynchronous = false,\n encoding,\n logErrors = true,\n } = opts;\n // run a particular simctl command\n args = ['simctl',\n ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []),\n subcommand,\n ...args\n ];\n // Prefix all passed in environment variables with 'SIMCTL_CHILD_', simctl\n // will then pass these to the child (spawned) process.\n env = _.defaults(\n _.mapKeys(env,\n (value, key) => _.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`),\n process.env);\n\n const execOpts = {\n env,\n encoding,\n };\n if (!asynchronous) {\n execOpts.timeout = this.execTimeout;\n }\n const xcrun = await this.requireXcrun();\n try {\n return asynchronous ? new SubProcess(xcrun, args, execOpts) : await tpExec(xcrun, args, execOpts);\n } catch (e) {\n if (!this.logErrors || !logErrors) {\n // if we don't want to see the errors, just throw and allow the calling\n // code do what it wants\n } else if (e.stderr) {\n const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;\n log.debug(LOG_PREFIX, msg);\n e.message = msg;\n } else {\n log.debug(LOG_PREFIX, e.message);\n }\n throw e;\n }\n }\n}\n\n\n// add all the subcommands to the Simctl prototype\nfor (const [fnName, fn] of _.toPairs(subcommands)) {\n Simctl.prototype[fnName] = fn;\n}\n\nexport default Simctl;\nexport { Simctl };\n"],"mappings":"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"}
1
+ {"version":3,"file":"simctl.js","names":["_lodash","_interopRequireDefault","require","_index","_which","_logger","_interopRequireWildcard","_helpers","_teen_process","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SIMCTL_ENV_PREFIX","DEFAULT_OPTS","xcrun","path","execTimeout","DEFAULT_EXEC_TIMEOUT","logErrors","Simctl","constructor","opts","_","cloneDeep","defaultsDeep","keys","_udid","isNil","udid","_devicesSetPath","devicesSetPath","value","requireUdid","commandName","Error","requireXcrun","xcrunBinary","getXcrunBinary","which","e","exec","subcommand","args","env","asynchronous","encoding","defaults","mapKeys","startsWith","process","execOpts","timeout","SubProcess","tpExec","stderr","msg","trim","log","debug","LOG_PREFIX","message","exports","fnName","fn","toPairs","subcommands","_default"],"sources":["../../lib/simctl.js"],"sourcesContent":["import _ from 'lodash';\nimport subcommands from './subcommands/index.js';\nimport which from 'which';\nimport log, { LOG_PREFIX } from './logger';\nimport {\n DEFAULT_EXEC_TIMEOUT, getXcrunBinary,\n} from './helpers';\nimport { exec as tpExec, SubProcess } from 'teen_process';\n\nconst SIMCTL_ENV_PREFIX = 'SIMCTL_CHILD_';\nconst DEFAULT_OPTS = {\n xcrun: {\n path: null,\n },\n execTimeout: DEFAULT_EXEC_TIMEOUT,\n logErrors: true,\n};\n\n/**\n * @typedef {Object} ExecOpts\n * @property {Array.<string>} args [[]] - The list of additional subcommand arguments.\n * It's empty by default.\n * @property {Object} env [{}] - Environment variables mapping. All these variables\n * will be passed Simulator and used in the executing function.\n * @property {boolean} logErrors [true] - Set it to _false_ to throw execution errors\n * immediately without logging any additional information.\n * @property {boolean} asynchronous [false] - Whether to execute the given command\n * 'synchronously' or 'asynchronously'. Affects the returned result of the function.\n * @property {?string} encoding - Explicitly sets streams encoding for the executed\n * command input and outputs.\n */\n\n\n/**\n * @typedef {Object} SimctlOpts\n * @property {?Object} xcrun - The xcrun properties. Currently only one property\n * is supported, which is `path` and it by default contains `null`, which enforces\n * the instance to automatically detect the full path to `xcrun` tool and to throw\n * an exception if it cannot be detected. If the path is set upon instance creation\n * then it is going to be used by `exec` and no autodetection will happen.\n * @property {?number} execTimeout [600000] - The maximum number of milliseconds\n * to wait for single synchronous xcrun command.\n * @property {?boolean} logErrors [true] - Whether to wire xcrun error messages\n * into debug log before throwing them.\n * @property {?string} udid [null] - The unique identifier of the current device, which is\n * going to be implicitly passed to all methods, which require it. It can either be set\n * upon instance creation if it is already known in advance or later when/if needed via the\n * corresponding instance setter.\n * @property {?string} devicesSetPath - Full path to the set of devices that you want to manage.\n * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices\n */\n\n\nclass Simctl {\n /**\n * @param {?SimctlOpts} opts\n */\n constructor (opts = {}) {\n opts = _.cloneDeep(opts);\n _.defaultsDeep(opts, DEFAULT_OPTS);\n for (const key of _.keys(DEFAULT_OPTS)) {\n this[key] = opts[key];\n }\n this._udid = _.isNil(opts.udid) ? null : opts.udid;\n this._devicesSetPath = _.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;\n }\n\n set udid (value) {\n this._udid = value;\n }\n\n get udid () {\n return this._udid;\n }\n\n set devicesSetPath (value) {\n this._devicesSetPath = value;\n }\n\n get devicesSetPath () {\n return this._devicesSetPath;\n }\n\n requireUdid (commandName = null) {\n if (!this.udid) {\n throw new Error(`udid is required to be set for ` +\n (commandName ? `the '${commandName}' command` : 'this simctl command'));\n }\n return this.udid;\n }\n\n async requireXcrun () {\n const xcrunBinary = getXcrunBinary();\n\n if (!this.xcrun.path) {\n try {\n this.xcrun.path = await which(xcrunBinary);\n } catch (e) {\n throw new Error(`${xcrunBinary} tool has not been found in PATH. ` +\n `Are Xcode developers tools installed?`);\n }\n }\n return this.xcrun.path;\n }\n\n /**\n * Execute the particular simctl command.\n *\n * @param {string} subcommand - One of available simctl subcommands.\n * Execute `xcrun simctl` in Terminal to see the full list\n * of available subcommands.\n * @param {?ExecOpts} opts\n * @return {ExecResult|SubProcess} Either the result of teen process's `exec` or\n * `SubProcess` instance depending of `opts.asynchronous` value.\n * @throws {Error} If the simctl subcommand command returns non-zero return code.\n */\n async exec (subcommand, opts = {}) {\n let {\n args = [],\n env = {},\n asynchronous = false,\n encoding,\n logErrors = true,\n } = opts;\n // run a particular simctl command\n args = ['simctl',\n ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []),\n subcommand,\n ...args\n ];\n // Prefix all passed in environment variables with 'SIMCTL_CHILD_', simctl\n // will then pass these to the child (spawned) process.\n env = _.defaults(\n _.mapKeys(env,\n (value, key) => _.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`),\n process.env);\n\n const execOpts = {\n env,\n encoding,\n };\n if (!asynchronous) {\n execOpts.timeout = this.execTimeout;\n }\n const xcrun = await this.requireXcrun();\n try {\n return asynchronous ? new SubProcess(xcrun, args, execOpts) : await tpExec(xcrun, args, execOpts);\n } catch (e) {\n if (!this.logErrors || !logErrors) {\n // if we don't want to see the errors, just throw and allow the calling\n // code do what it wants\n } else if (e.stderr) {\n const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;\n log.debug(LOG_PREFIX, msg);\n e.message = msg;\n } else {\n log.debug(LOG_PREFIX, e.message);\n }\n throw e;\n }\n }\n}\n\n\n// add all the subcommands to the Simctl prototype\nfor (const [fnName, fn] of _.toPairs(subcommands)) {\n Simctl.prototype[fnName] = fn;\n}\n\nexport default Simctl;\nexport { Simctl };\n"],"mappings":"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"}
@@ -16,4 +16,4 @@ commands.appInfo = async function appInfo(bundleId) {
16
16
  };
17
17
  var _default = commands;
18
18
  exports.default = _default;
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImFwcEluZm8iLCJidW5kbGVJZCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwicmVxdWlyZVVkaWQiLCJ0cmltIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9hcHBpbmZvLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogSW52b2tlIGhpZGRlbiBhcHBpbmZvIHN1YmNvbW1hbmQgdG8gZ2V0IHRoZSBpbmZvcm1hdGlvblxuICogYWJvdXQgYXBwbGljYXRpb25zIGluc3RhbGxlZCBvbiBTaW11bGF0b3IsIGluY2x1ZGluZ1xuICogc3lzdGVtIGFwcGxpY2F0aW9ucyAoe0BsaW5rIGdldEFwcENvbnRhaW5lcn0gZG9lcyBub3QgXCJzZWVcIiBzdWNoIGFwcHMpLlxuICogU2ltdWxhdG9yIHNlcnZlciBzaG91bGQgYmUgaW4gJ2Jvb3RlZCcgc3RhdGUgZm9yIHRoaXMgY2FsbCB0byB3b3JrIHByb3Blcmx5LlxuICogVGhlIHRvb2wgaXMgb25seSBhdmFpbGFibGUgc2luY2UgWGNvZGUgU0RLIDguMVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgaW5mb3JtYXRpb24gYWJvdXQgaW5zdGFsbGVkIGFwcGxpY2F0aW9uLlxuICpcbiAqIEV4YW1wbGUgb3V0cHV0IGZvciBub24tZXhpc3RpbmcgYXBwbGljYXRpb24gY29udGFpbmVyOlxuICogPHByZT5cbiAqIHtcbiAqICAgQ0ZCdW5kbGVJZGVudGlmaWVyID0gXCJjb20uYXBwbGUuTW9iaWxlU2FmYXJpXCI7XG4gKiAgIEdyb3VwQ29udGFpbmVycyA9ICAgICB7XG4gKiAgIH07XG4gKiAgIFNCQXBwVGFncyA9ICAgICAoXG4gKiAgICk7XG4gKiB9XG4gKiA8L3ByZT5cbiAqXG4gKiBFeGFtcGxlIG91dHB1dCBmb3IgYW4gZXhpc3Rpbmcgc3lzdGVtIGFwcGxpY2F0aW9uIGNvbnRhaW5lcjpcbiAqIDxwcmU+XG4gKiB7XG4gKiAgIEFwcGxpY2F0aW9uVHlwZSA9IEhpZGRlbjtcbiAqICAgQnVuZGxlID0gXCJmaWxlOi8vL0FwcGxpY2F0aW9ucy9YY29kZS1iZXRhLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0RldmVsb3Blci9MaWJyYXJ5L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0NvcmVTZXJ2aWNlcy9TcHJpbmdCb2FyZC5hcHBcIjtcbiAqICAgQ0ZCdW5kbGVEaXNwbGF5TmFtZSA9IFNwcmluZ0JvYXJkO1xuICogICBDRkJ1bmRsZUV4ZWN1dGFibGUgPSBTcHJpbmdCb2FyZDtcbiAqICAgQ0ZCdW5kbGVJZGVudGlmaWVyID0gXCJjb20uYXBwbGUuc3ByaW5nYm9hcmRcIjtcbiAqICAgQ0ZCdW5kbGVOYW1lID0gU3ByaW5nQm9hcmQ7XG4gKiAgIENGQnVuZGxlVmVyc2lvbiA9IDUwO1xuICogICBHcm91cENvbnRhaW5lcnMgPSAgICAge1xuICogICB9O1xuICogICBQYXRoID0gXCIvQXBwbGljYXRpb25zL1hjb2RlLWJldGEuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vRGV2ZWxvcGVyL0xpYnJhcnkvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1NwcmluZ0JvYXJkLmFwcFwiO1xuICogICBTQkFwcFRhZ3MgPSAgICAgKFxuICogICApO1xuICogfVxuICogPC9wcmU+XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5hcHBJbmZvID0gYXN5bmMgZnVuY3Rpb24gYXBwSW5mbyAoYnVuZGxlSWQpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2FwcGluZm8nLCB7XG4gICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2FwcGluZm8nKSwgYnVuZGxlSWRdLFxuICB9KTtcbiAgcmV0dXJuIChzdGRvdXQgfHwgJycpLnRyaW0oKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsUUFBUSxHQUFHLENBQUMsQ0FBQztBQTBDbkJBLFFBQVEsQ0FBQ0MsT0FBTyxHQUFHLGVBQWVBLE9BQU9BLENBQUVDLFFBQVEsRUFBRTtFQUNuRCxNQUFNO0lBQUNDO0VBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQzFDQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRUosUUFBUTtFQUM5QyxDQUFDLENBQUM7RUFDRixPQUFPLENBQUNDLE1BQU0sSUFBSSxFQUFFLEVBQUVJLElBQUksRUFBRTtBQUM5QixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhUixRQUFRO0FBQUFTLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImFwcEluZm8iLCJidW5kbGVJZCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwicmVxdWlyZVVkaWQiLCJ0cmltIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9hcHBpbmZvLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogSW52b2tlIGhpZGRlbiBhcHBpbmZvIHN1YmNvbW1hbmQgdG8gZ2V0IHRoZSBpbmZvcm1hdGlvblxuICogYWJvdXQgYXBwbGljYXRpb25zIGluc3RhbGxlZCBvbiBTaW11bGF0b3IsIGluY2x1ZGluZ1xuICogc3lzdGVtIGFwcGxpY2F0aW9ucyAoe0BsaW5rIGdldEFwcENvbnRhaW5lcn0gZG9lcyBub3QgXCJzZWVcIiBzdWNoIGFwcHMpLlxuICogU2ltdWxhdG9yIHNlcnZlciBzaG91bGQgYmUgaW4gJ2Jvb3RlZCcgc3RhdGUgZm9yIHRoaXMgY2FsbCB0byB3b3JrIHByb3Blcmx5LlxuICogVGhlIHRvb2wgaXMgb25seSBhdmFpbGFibGUgc2luY2UgWGNvZGUgU0RLIDguMVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgaW5mb3JtYXRpb24gYWJvdXQgaW5zdGFsbGVkIGFwcGxpY2F0aW9uLlxuICpcbiAqIEV4YW1wbGUgb3V0cHV0IGZvciBub24tZXhpc3RpbmcgYXBwbGljYXRpb24gY29udGFpbmVyOlxuICogPHByZT5cbiAqIHtcbiAqICAgQ0ZCdW5kbGVJZGVudGlmaWVyID0gXCJjb20uYXBwbGUuTW9iaWxlU2FmYXJpXCI7XG4gKiAgIEdyb3VwQ29udGFpbmVycyA9ICAgICB7XG4gKiAgIH07XG4gKiAgIFNCQXBwVGFncyA9ICAgICAoXG4gKiAgICk7XG4gKiB9XG4gKiA8L3ByZT5cbiAqXG4gKiBFeGFtcGxlIG91dHB1dCBmb3IgYW4gZXhpc3Rpbmcgc3lzdGVtIGFwcGxpY2F0aW9uIGNvbnRhaW5lcjpcbiAqIDxwcmU+XG4gKiB7XG4gKiAgIEFwcGxpY2F0aW9uVHlwZSA9IEhpZGRlbjtcbiAqICAgQnVuZGxlID0gXCJmaWxlOi8vL0FwcGxpY2F0aW9ucy9YY29kZS1iZXRhLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0RldmVsb3Blci9MaWJyYXJ5L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0NvcmVTZXJ2aWNlcy9TcHJpbmdCb2FyZC5hcHBcIjtcbiAqICAgQ0ZCdW5kbGVEaXNwbGF5TmFtZSA9IFNwcmluZ0JvYXJkO1xuICogICBDRkJ1bmRsZUV4ZWN1dGFibGUgPSBTcHJpbmdCb2FyZDtcbiAqICAgQ0ZCdW5kbGVJZGVudGlmaWVyID0gXCJjb20uYXBwbGUuc3ByaW5nYm9hcmRcIjtcbiAqICAgQ0ZCdW5kbGVOYW1lID0gU3ByaW5nQm9hcmQ7XG4gKiAgIENGQnVuZGxlVmVyc2lvbiA9IDUwO1xuICogICBHcm91cENvbnRhaW5lcnMgPSAgICAge1xuICogICB9O1xuICogICBQYXRoID0gXCIvQXBwbGljYXRpb25zL1hjb2RlLWJldGEuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vRGV2ZWxvcGVyL0xpYnJhcnkvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1NwcmluZ0JvYXJkLmFwcFwiO1xuICogICBTQkFwcFRhZ3MgPSAgICAgKFxuICogICApO1xuICogfVxuICogPC9wcmU+XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5hcHBJbmZvID0gYXN5bmMgZnVuY3Rpb24gYXBwSW5mbyAoYnVuZGxlSWQpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2FwcGluZm8nLCB7XG4gICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2FwcGluZm8nKSwgYnVuZGxlSWRdLFxuICB9KTtcbiAgcmV0dXJuIChzdGRvdXQgfHwgJycpLnRyaW0oKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsUUFBUSxHQUFHLENBQUMsQ0FBQztBQTBDbkJBLFFBQVEsQ0FBQ0MsT0FBTyxHQUFHLGVBQWVBLE9BQU9BLENBQUVDLFFBQVEsRUFBRTtFQUNuRCxNQUFNO0lBQUNDO0VBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQzFDQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRUosUUFBUTtFQUM5QyxDQUFDLENBQUM7RUFDRixPQUFPLENBQUNDLE1BQU0sSUFBSSxFQUFFLEVBQUVJLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFBQyxJQUFBQyxRQUFBLEdBRWFSLFFBQVE7QUFBQVMsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"appinfo.js","names":["commands","appInfo","bundleId","stdout","exec","args","requireUdid","trim","_default","exports","default"],"sources":["../../../lib/subcommands/appinfo.js"],"sourcesContent":["const commands = {};\n\n/**\n * Invoke hidden appinfo subcommand to get the information\n * about applications installed on Simulator, including\n * system applications ({@link getAppContainer} does not \"see\" such apps).\n * Simulator server should be in 'booted' state for this call to work properly.\n * The tool is only available since Xcode SDK 8.1\n *\n * @param {string} bundleId - The bundle identifier of the target application.\n * @return {string} The information about installed application.\n *\n * Example output for non-existing application container:\n * <pre>\n * {\n * CFBundleIdentifier = \"com.apple.MobileSafari\";\n * GroupContainers = {\n * };\n * SBAppTags = (\n * );\n * }\n * </pre>\n *\n * Example output for an existing system application container:\n * <pre>\n * {\n * ApplicationType = Hidden;\n * Bundle = \"file:///Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SpringBoard.app\";\n * CFBundleDisplayName = SpringBoard;\n * CFBundleExecutable = SpringBoard;\n * CFBundleIdentifier = \"com.apple.springboard\";\n * CFBundleName = SpringBoard;\n * CFBundleVersion = 50;\n * GroupContainers = {\n * };\n * Path = \"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SpringBoard.app\";\n * SBAppTags = (\n * );\n * }\n * </pre>\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.appInfo = async function appInfo (bundleId) {\n const {stdout} = await this.exec('appinfo', {\n args: [this.requireUdid('appinfo'), bundleId],\n });\n return (stdout || '').trim();\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AA0CnBA,QAAQ,CAACC,OAAO,GAAG,eAAeA,OAAOA,CAAEC,QAAQ,EAAE;EACnD,MAAM;IAACC;EAAM,CAAC,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE;IAC1CC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,SAAS,CAAC,EAAEJ,QAAQ;EAC9C,CAAC,CAAC;EACF,OAAO,CAACC,MAAM,IAAI,EAAE,EAAEI,IAAI,EAAE;AAC9B,CAAC;AAAC,IAAAC,QAAA,GAEaR,QAAQ;AAAAS,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"appinfo.js","names":["commands","appInfo","bundleId","stdout","exec","args","requireUdid","trim","_default","exports","default"],"sources":["../../../lib/subcommands/appinfo.js"],"sourcesContent":["const commands = {};\n\n/**\n * Invoke hidden appinfo subcommand to get the information\n * about applications installed on Simulator, including\n * system applications ({@link getAppContainer} does not \"see\" such apps).\n * Simulator server should be in 'booted' state for this call to work properly.\n * The tool is only available since Xcode SDK 8.1\n *\n * @param {string} bundleId - The bundle identifier of the target application.\n * @return {string} The information about installed application.\n *\n * Example output for non-existing application container:\n * <pre>\n * {\n * CFBundleIdentifier = \"com.apple.MobileSafari\";\n * GroupContainers = {\n * };\n * SBAppTags = (\n * );\n * }\n * </pre>\n *\n * Example output for an existing system application container:\n * <pre>\n * {\n * ApplicationType = Hidden;\n * Bundle = \"file:///Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SpringBoard.app\";\n * CFBundleDisplayName = SpringBoard;\n * CFBundleExecutable = SpringBoard;\n * CFBundleIdentifier = \"com.apple.springboard\";\n * CFBundleName = SpringBoard;\n * CFBundleVersion = 50;\n * GroupContainers = {\n * };\n * Path = \"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SpringBoard.app\";\n * SBAppTags = (\n * );\n * }\n * </pre>\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.appInfo = async function appInfo (bundleId) {\n const {stdout} = await this.exec('appinfo', {\n args: [this.requireUdid('appinfo'), bundleId],\n });\n return (stdout || '').trim();\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AA0CnBA,QAAQ,CAACC,OAAO,GAAG,eAAeA,OAAOA,CAAEC,QAAQ,EAAE;EACnD,MAAM;IAACC;EAAM,CAAC,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE;IAC1CC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,SAAS,CAAC,EAAEJ,QAAQ;EAC9C,CAAC,CAAC;EACF,OAAO,CAACC,MAAM,IAAI,EAAE,EAAEI,IAAI,CAAC,CAAC;AAC9B,CAAC;AAAC,IAAAC,QAAA,GAEaR,QAAQ;AAAAS,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -92,4 +92,4 @@ commands.startBootMonitor = async function startBootMonitor(opts = {}) {
92
92
  };
93
93
  var _default = commands;
94
94
  exports.default = _default;
95
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYXN5bmNib3giLCJjb21tYW5kcyIsInN0YXJ0Qm9vdE1vbml0b3IiLCJvcHRzIiwidGltZW91dCIsIm9uV2FpdGluZ0RhdGFNaWdyYXRpb24iLCJvbldhaXRpbmdTeXN0ZW1BcHAiLCJvbkZpbmlzaGVkIiwib25FcnJvciIsInNob3VsZFByZWJvb3QiLCJ1ZGlkIiwicmVxdWlyZVVkaWQiLCJzdGF0dXMiLCJpc0Jvb3RpbmdGaW5pc2hlZCIsImVycm9yIiwidGltZW91dEhhbmRsZXIiLCJhcmdzIiwicHVzaCIsImJvb3RNb25pdG9yIiwiZXhlYyIsImFzeW5jaHJvbm91cyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwiaW5jbHVkZXMiLCJjb2RlIiwic2lnbmFsIiwiY2xlYXJUaW1lb3V0IiwiRXJyb3IiLCJzdGFydCIsInN0b3BNb25pdG9yIiwiaXNSdW5uaW5nIiwic3RvcCIsImUiLCJsb2ciLCJ3YXJuIiwibWVzc2FnZSIsInByb2Nlc3MiLCJocnRpbWUiLCJzZXRUaW1lb3V0Iiwid2FpdEZvckNvbmRpdGlvbiIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnIiLCJzZWNvbmRzIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9ib290c3RhdHVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCb290TW9uaXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gdGltZW91dCBbMjQwMDAwXSAtIFNpbXVsYXRvciBib290aW5nIHRpbWVvdXQgaW4gbXMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nRGF0YU1pZ3JhdGlvbiAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBkYXRhIG1pZ3JhdGlvbiBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nU3lzdGVtQXBwIC0gVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHN5c3RlbSBhcHAgd2FpdCBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25GaW5pc2hlZCAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBTaW11bGF0b3IgaXMgZnVsbHkgYm9vdGVkLlxuICogQHByb3BlcnR5IHs/RnVuY3Rpb259IG9uRXJyb3IgLSBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIG1vbml0b3JpbmcgdGhlIGJvb3RpbmcgcHJvY2Vzc1xuICogb3Igd2hlbiB0aGUgdGltZW91dCBoYXMgZXhwaXJlZC5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IHNob3VsZFByZWJvb3QgW2ZhbHNlXSBXaGV0aGVyIHRvIHByZWJvb3QgdGhlIFNpbXVsYXRvclxuICogaWYgdGhpcyBjb21tYW5kIGlzIGNhbGxlZCBhbmQgaXQgaXMgbm90IGFscmVhZHkgaW4gYm9vdGVkIG9yIGJvb3Rpbmcgc3RhdGUuXG4gKi9cblxuLyoqXG4gKiBTdGFydCBtb25pdG9yaW5nIGZvciBib290IHN0YXR1cyBvZiB0aGUgcGFydGljdWxhciBTaW11bGF0b3IuXG4gKiBJZiBvbkZpbmlzaGVkIHByb3BlcnR5IGlzIG5vdCBzZXQgdGhlbiB0aGUgbWV0aG9kIHdpbGwgYmxvY2tcbiAqIHVudGlsIFNpbXVsYXRvciBib290aW5nIGlzIGNvbXBsZXRlZC5cbiAqIFRoZSBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgc2luY2UgWGNvZGU4LlxuICpcbiAqIEBwYXJhbSB7P0Jvb3RNb25pdG9yT3B0aW9uc30gb3B0cyAtIE1vbml0b3Jpbmcgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHtTdWJQcm9jZXNzfSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcgbW9uaXRvcmluZyBwcm9jZXNzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBTaW11bGF0b3IgZmFpbHMgdG8gZmluaXNoIGJvb3Rpbmcgd2l0aGluIHRoZSBnaXZlbiB0aW1lb3V0IGFuZCBvbkZpbmlzaGVkXG4gKiBwcm9wZXJ0eSBpcyBub3Qgc2V0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc3RhcnRCb290TW9uaXRvciA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0Qm9vdE1vbml0b3IgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZW91dCA9IDI0MDAwMCxcbiAgICBvbldhaXRpbmdEYXRhTWlncmF0aW9uLFxuICAgIG9uV2FpdGluZ1N5c3RlbUFwcCxcbiAgICBvbkZpbmlzaGVkLFxuICAgIG9uRXJyb3IsXG4gICAgc2hvdWxkUHJlYm9vdCxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHVkaWQgPSB0aGlzLnJlcXVpcmVVZGlkKCdib290c3RhdHVzJyk7XG5cbiAgbGV0IHN0YXR1cyA9ICcnO1xuICBsZXQgaXNCb290aW5nRmluaXNoZWQgPSBmYWxzZTtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRIYW5kbGVyID0gbnVsbDtcbiAgY29uc3QgYXJncyA9IFt1ZGlkXTtcbiAgaWYgKHNob3VsZFByZWJvb3QpIHtcbiAgICBhcmdzLnB1c2goJy1iJyk7XG4gIH1cbiAgY29uc3QgYm9vdE1vbml0b3IgPSBhd2FpdCB0aGlzLmV4ZWMoJ2Jvb3RzdGF0dXMnLCB7XG4gICAgYXJncyxcbiAgICBhc3luY2hyb25vdXM6IHRydWUsXG4gIH0pO1xuICBib290TW9uaXRvci5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgc3RhdHVzICs9IHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgaWYgKHN0ZG91dC5pbmNsdWRlcygnV2FpdGluZyBvbiBEYXRhIE1pZ3JhdGlvbicpICYmIG9uV2FpdGluZ0RhdGFNaWdyYXRpb24pIHtcbiAgICAgICAgb25XYWl0aW5nRGF0YU1pZ3JhdGlvbigpO1xuICAgICAgfSBlbHNlIGlmIChzdGRvdXQuaW5jbHVkZXMoJ1dhaXRpbmcgb24gU3lzdGVtIEFwcCcpICYmIG9uV2FpdGluZ1N5c3RlbUFwcCkge1xuICAgICAgICBvbldhaXRpbmdTeXN0ZW1BcHAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBib290TW9uaXRvci5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICBpZiAodGltZW91dEhhbmRsZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICBpZiAob25GaW5pc2hlZCkge1xuICAgICAgICBvbkZpbmlzaGVkKCk7XG4gICAgICB9XG4gICAgICBpc0Jvb3RpbmdGaW5pc2hlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1cyA9IHN0YXR1cyB8fCBzaWduYWw7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihzdGF0dXMpO1xuICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgYXdhaXQgYm9vdE1vbml0b3Iuc3RhcnQoMCk7XG4gIGNvbnN0IHN0b3BNb25pdG9yID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChib290TW9uaXRvci5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGJvb3RNb25pdG9yLnN0b3AoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLndhcm4oZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IHN0YXJ0ID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgaWYgKG9uRmluaXNoZWQpIHtcbiAgICB0aW1lb3V0SGFuZGxlciA9IHNldFRpbWVvdXQoc3RvcE1vbml0b3IsIHRpbWVvdXQpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQm9vdGluZ0ZpbmlzaGVkO1xuICAgICAgfSwge3dhaXRNczogdGltZW91dCwgaW50ZXJ2YWxNczogNTAwfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCBzdG9wTW9uaXRvcigpO1xuICAgICAgY29uc3QgW3NlY29uZHNdID0gcHJvY2Vzcy5ocnRpbWUoc3RhcnQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIHNpbXVsYXRvciAke3VkaWR9IGhhcyBmYWlsZWQgdG8gZmluaXNoIGJvb3RpbmcgYWZ0ZXIgJHtzZWNvbmRzfXMuIGAgK1xuICAgICAgICBgT3JpZ2luYWwgc3RhdHVzOiAke3N0YXR1c31gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJvb3RNb25pdG9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBR0EsTUFBTUUsUUFBUSxHQUFHLENBQUMsQ0FBQztBQTBCbkJBLFFBQVEsQ0FBQ0MsZ0JBQWdCLEdBQUcsZUFBZUEsZ0JBQWdCQSxDQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDdEUsTUFBTTtJQUNKQyxPQUFPLEdBQUcsTUFBTTtJQUNoQkMsc0JBQXNCO0lBQ3RCQyxrQkFBa0I7SUFDbEJDLFVBQVU7SUFDVkMsT0FBTztJ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
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYXN5bmNib3giLCJjb21tYW5kcyIsInN0YXJ0Qm9vdE1vbml0b3IiLCJvcHRzIiwidGltZW91dCIsIm9uV2FpdGluZ0RhdGFNaWdyYXRpb24iLCJvbldhaXRpbmdTeXN0ZW1BcHAiLCJvbkZpbmlzaGVkIiwib25FcnJvciIsInNob3VsZFByZWJvb3QiLCJ1ZGlkIiwicmVxdWlyZVVkaWQiLCJzdGF0dXMiLCJpc0Jvb3RpbmdGaW5pc2hlZCIsImVycm9yIiwidGltZW91dEhhbmRsZXIiLCJhcmdzIiwicHVzaCIsImJvb3RNb25pdG9yIiwiZXhlYyIsImFzeW5jaHJvbm91cyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwiaW5jbHVkZXMiLCJjb2RlIiwic2lnbmFsIiwiY2xlYXJUaW1lb3V0IiwiRXJyb3IiLCJzdGFydCIsInN0b3BNb25pdG9yIiwiaXNSdW5uaW5nIiwic3RvcCIsImUiLCJsb2ciLCJ3YXJuIiwibWVzc2FnZSIsInByb2Nlc3MiLCJocnRpbWUiLCJzZXRUaW1lb3V0Iiwid2FpdEZvckNvbmRpdGlvbiIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnIiLCJzZWNvbmRzIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9ib290c3RhdHVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCb290TW9uaXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gdGltZW91dCBbMjQwMDAwXSAtIFNpbXVsYXRvciBib290aW5nIHRpbWVvdXQgaW4gbXMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nRGF0YU1pZ3JhdGlvbiAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBkYXRhIG1pZ3JhdGlvbiBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nU3lzdGVtQXBwIC0gVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHN5c3RlbSBhcHAgd2FpdCBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25GaW5pc2hlZCAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBTaW11bGF0b3IgaXMgZnVsbHkgYm9vdGVkLlxuICogQHByb3BlcnR5IHs/RnVuY3Rpb259IG9uRXJyb3IgLSBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIG1vbml0b3JpbmcgdGhlIGJvb3RpbmcgcHJvY2Vzc1xuICogb3Igd2hlbiB0aGUgdGltZW91dCBoYXMgZXhwaXJlZC5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IHNob3VsZFByZWJvb3QgW2ZhbHNlXSBXaGV0aGVyIHRvIHByZWJvb3QgdGhlIFNpbXVsYXRvclxuICogaWYgdGhpcyBjb21tYW5kIGlzIGNhbGxlZCBhbmQgaXQgaXMgbm90IGFscmVhZHkgaW4gYm9vdGVkIG9yIGJvb3Rpbmcgc3RhdGUuXG4gKi9cblxuLyoqXG4gKiBTdGFydCBtb25pdG9yaW5nIGZvciBib290IHN0YXR1cyBvZiB0aGUgcGFydGljdWxhciBTaW11bGF0b3IuXG4gKiBJZiBvbkZpbmlzaGVkIHByb3BlcnR5IGlzIG5vdCBzZXQgdGhlbiB0aGUgbWV0aG9kIHdpbGwgYmxvY2tcbiAqIHVudGlsIFNpbXVsYXRvciBib290aW5nIGlzIGNvbXBsZXRlZC5cbiAqIFRoZSBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgc2luY2UgWGNvZGU4LlxuICpcbiAqIEBwYXJhbSB7P0Jvb3RNb25pdG9yT3B0aW9uc30gb3B0cyAtIE1vbml0b3Jpbmcgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHtTdWJQcm9jZXNzfSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcgbW9uaXRvcmluZyBwcm9jZXNzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBTaW11bGF0b3IgZmFpbHMgdG8gZmluaXNoIGJvb3Rpbmcgd2l0aGluIHRoZSBnaXZlbiB0aW1lb3V0IGFuZCBvbkZpbmlzaGVkXG4gKiBwcm9wZXJ0eSBpcyBub3Qgc2V0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc3RhcnRCb290TW9uaXRvciA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0Qm9vdE1vbml0b3IgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZW91dCA9IDI0MDAwMCxcbiAgICBvbldhaXRpbmdEYXRhTWlncmF0aW9uLFxuICAgIG9uV2FpdGluZ1N5c3RlbUFwcCxcbiAgICBvbkZpbmlzaGVkLFxuICAgIG9uRXJyb3IsXG4gICAgc2hvdWxkUHJlYm9vdCxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHVkaWQgPSB0aGlzLnJlcXVpcmVVZGlkKCdib290c3RhdHVzJyk7XG5cbiAgbGV0IHN0YXR1cyA9ICcnO1xuICBsZXQgaXNCb290aW5nRmluaXNoZWQgPSBmYWxzZTtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRIYW5kbGVyID0gbnVsbDtcbiAgY29uc3QgYXJncyA9IFt1ZGlkXTtcbiAgaWYgKHNob3VsZFByZWJvb3QpIHtcbiAgICBhcmdzLnB1c2goJy1iJyk7XG4gIH1cbiAgY29uc3QgYm9vdE1vbml0b3IgPSBhd2FpdCB0aGlzLmV4ZWMoJ2Jvb3RzdGF0dXMnLCB7XG4gICAgYXJncyxcbiAgICBhc3luY2hyb25vdXM6IHRydWUsXG4gIH0pO1xuICBib290TW9uaXRvci5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgc3RhdHVzICs9IHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgaWYgKHN0ZG91dC5pbmNsdWRlcygnV2FpdGluZyBvbiBEYXRhIE1pZ3JhdGlvbicpICYmIG9uV2FpdGluZ0RhdGFNaWdyYXRpb24pIHtcbiAgICAgICAgb25XYWl0aW5nRGF0YU1pZ3JhdGlvbigpO1xuICAgICAgfSBlbHNlIGlmIChzdGRvdXQuaW5jbHVkZXMoJ1dhaXRpbmcgb24gU3lzdGVtIEFwcCcpICYmIG9uV2FpdGluZ1N5c3RlbUFwcCkge1xuICAgICAgICBvbldhaXRpbmdTeXN0ZW1BcHAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBib290TW9uaXRvci5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICBpZiAodGltZW91dEhhbmRsZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICBpZiAob25GaW5pc2hlZCkge1xuICAgICAgICBvbkZpbmlzaGVkKCk7XG4gICAgICB9XG4gICAgICBpc0Jvb3RpbmdGaW5pc2hlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1cyA9IHN0YXR1cyB8fCBzaWduYWw7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihzdGF0dXMpO1xuICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgYXdhaXQgYm9vdE1vbml0b3Iuc3RhcnQoMCk7XG4gIGNvbnN0IHN0b3BNb25pdG9yID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChib290TW9uaXRvci5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGJvb3RNb25pdG9yLnN0b3AoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLndhcm4oZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IHN0YXJ0ID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgaWYgKG9uRmluaXNoZWQpIHtcbiAgICB0aW1lb3V0SGFuZGxlciA9IHNldFRpbWVvdXQoc3RvcE1vbml0b3IsIHRpbWVvdXQpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQm9vdGluZ0ZpbmlzaGVkO1xuICAgICAgfSwge3dhaXRNczogdGltZW91dCwgaW50ZXJ2YWxNczogNTAwfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCBzdG9wTW9uaXRvcigpO1xuICAgICAgY29uc3QgW3NlY29uZHNdID0gcHJvY2Vzcy5ocnRpbWUoc3RhcnQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIHNpbXVsYXRvciAke3VkaWR9IGhhcyBmYWlsZWQgdG8gZmluaXNoIGJvb3RpbmcgYWZ0ZXIgJHtzZWNvbmRzfXMuIGAgK1xuICAgICAgICBgT3JpZ2luYWwgc3RhdHVzOiAke3N0YXR1c31gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJvb3RNb25pdG9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBR0EsTUFBTUUsUUFBUSxHQUFHLENBQUMsQ0FBQztBQTBCbkJBLFFBQVEsQ0FBQ0MsZ0JBQWdCLEdBQUcsZUFBZUEsZ0JBQWdCQSxDQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDdEUsTUFBTTtJQUNKQyxPQUFPLEdBQUcsTUFBTTtJQUNoQkMsc0JBQXNCO0lBQ3RCQyxrQkFBa0I7SUFDbEJDLFVBQVU7SUFDVkMsT0FBTztJ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
@@ -1 +1 @@
1
- {"version":3,"file":"bootstatus.js","names":["_logger","_interopRequireDefault","require","_asyncbox","commands","startBootMonitor","opts","timeout","onWaitingDataMigration","onWaitingSystemApp","onFinished","onError","shouldPreboot","udid","requireUdid","status","isBootingFinished","error","timeoutHandler","args","push","bootMonitor","exec","asynchronous","on","stdout","stderr","includes","code","signal","clearTimeout","Error","start","stopMonitor","isRunning","stop","e","log","warn","message","process","hrtime","setTimeout","waitForCondition","waitMs","intervalMs","err","seconds","_default","exports","default"],"sources":["../../../lib/subcommands/bootstatus.js"],"sourcesContent":["import log from '../logger';\nimport { waitForCondition } from 'asyncbox';\n\n\nconst commands = {};\n\n/**\n * @typedef {Object} BootMonitorOptions\n * @property {?number} timeout [240000] - Simulator booting timeout in ms.\n * @property {?Function} onWaitingDataMigration - This event is fired when data migration stage starts.\n * @property {?Function} onWaitingSystemApp - This event is fired when system app wait stage starts.\n * @property {?Function} onFinished - This event is fired when Simulator is fully booted.\n * @property {?Function} onError - This event is fired when there was an error while monitoring the booting process\n * or when the timeout has expired.\n * @property {?boolean} shouldPreboot [false] Whether to preboot the Simulator\n * if this command is called and it is not already in booted or booting state.\n */\n\n/**\n * Start monitoring for boot status of the particular Simulator.\n * If onFinished property is not set then the method will block\n * until Simulator booting is completed.\n * The method is only available since Xcode8.\n *\n * @param {?BootMonitorOptions} opts - Monitoring options.\n * @returns {SubProcess} The instance of the corresponding monitoring process.\n * @throws {Error} If the Simulator fails to finish booting within the given timeout and onFinished\n * property is not set.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.startBootMonitor = async function startBootMonitor (opts = {}) {\n const {\n timeout = 240000,\n onWaitingDataMigration,\n onWaitingSystemApp,\n onFinished,\n onError,\n shouldPreboot,\n } = opts;\n const udid = this.requireUdid('bootstatus');\n\n let status = '';\n let isBootingFinished = false;\n let error = null;\n let timeoutHandler = null;\n const args = [udid];\n if (shouldPreboot) {\n args.push('-b');\n }\n const bootMonitor = await this.exec('bootstatus', {\n args,\n asynchronous: true,\n });\n bootMonitor.on('output', (stdout, stderr) => {\n status += stdout || stderr;\n if (stdout) {\n if (stdout.includes('Waiting on Data Migration') && onWaitingDataMigration) {\n onWaitingDataMigration();\n } else if (stdout.includes('Waiting on System App') && onWaitingSystemApp) {\n onWaitingSystemApp();\n }\n }\n });\n bootMonitor.on('exit', (code, signal) => {\n if (timeoutHandler) {\n clearTimeout(timeoutHandler);\n }\n if (code === 0) {\n if (onFinished) {\n onFinished();\n }\n isBootingFinished = true;\n } else {\n status = status || signal;\n error = new Error(status);\n if (onError) {\n onError(error);\n }\n }\n });\n await bootMonitor.start(0);\n const stopMonitor = async () => {\n if (bootMonitor.isRunning) {\n try {\n await bootMonitor.stop();\n } catch (e) {\n log.warn(e.message);\n }\n }\n };\n const start = process.hrtime();\n if (onFinished) {\n timeoutHandler = setTimeout(stopMonitor, timeout);\n } else {\n try {\n await waitForCondition(() => {\n if (error) {\n throw error;\n }\n return isBootingFinished;\n }, {waitMs: timeout, intervalMs: 500});\n } catch (err) {\n await stopMonitor();\n const [seconds] = process.hrtime(start);\n throw new Error(\n `The simulator ${udid} has failed to finish booting after ${seconds}s. ` +\n `Original status: ${status}`);\n }\n }\n return bootMonitor;\n};\n\nexport default commands;\n"],"mappings":"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"}
1
+ {"version":3,"file":"bootstatus.js","names":["_logger","_interopRequireDefault","require","_asyncbox","commands","startBootMonitor","opts","timeout","onWaitingDataMigration","onWaitingSystemApp","onFinished","onError","shouldPreboot","udid","requireUdid","status","isBootingFinished","error","timeoutHandler","args","push","bootMonitor","exec","asynchronous","on","stdout","stderr","includes","code","signal","clearTimeout","Error","start","stopMonitor","isRunning","stop","e","log","warn","message","process","hrtime","setTimeout","waitForCondition","waitMs","intervalMs","err","seconds","_default","exports","default"],"sources":["../../../lib/subcommands/bootstatus.js"],"sourcesContent":["import log from '../logger';\nimport { waitForCondition } from 'asyncbox';\n\n\nconst commands = {};\n\n/**\n * @typedef {Object} BootMonitorOptions\n * @property {?number} timeout [240000] - Simulator booting timeout in ms.\n * @property {?Function} onWaitingDataMigration - This event is fired when data migration stage starts.\n * @property {?Function} onWaitingSystemApp - This event is fired when system app wait stage starts.\n * @property {?Function} onFinished - This event is fired when Simulator is fully booted.\n * @property {?Function} onError - This event is fired when there was an error while monitoring the booting process\n * or when the timeout has expired.\n * @property {?boolean} shouldPreboot [false] Whether to preboot the Simulator\n * if this command is called and it is not already in booted or booting state.\n */\n\n/**\n * Start monitoring for boot status of the particular Simulator.\n * If onFinished property is not set then the method will block\n * until Simulator booting is completed.\n * The method is only available since Xcode8.\n *\n * @param {?BootMonitorOptions} opts - Monitoring options.\n * @returns {SubProcess} The instance of the corresponding monitoring process.\n * @throws {Error} If the Simulator fails to finish booting within the given timeout and onFinished\n * property is not set.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.startBootMonitor = async function startBootMonitor (opts = {}) {\n const {\n timeout = 240000,\n onWaitingDataMigration,\n onWaitingSystemApp,\n onFinished,\n onError,\n shouldPreboot,\n } = opts;\n const udid = this.requireUdid('bootstatus');\n\n let status = '';\n let isBootingFinished = false;\n let error = null;\n let timeoutHandler = null;\n const args = [udid];\n if (shouldPreboot) {\n args.push('-b');\n }\n const bootMonitor = await this.exec('bootstatus', {\n args,\n asynchronous: true,\n });\n bootMonitor.on('output', (stdout, stderr) => {\n status += stdout || stderr;\n if (stdout) {\n if (stdout.includes('Waiting on Data Migration') && onWaitingDataMigration) {\n onWaitingDataMigration();\n } else if (stdout.includes('Waiting on System App') && onWaitingSystemApp) {\n onWaitingSystemApp();\n }\n }\n });\n bootMonitor.on('exit', (code, signal) => {\n if (timeoutHandler) {\n clearTimeout(timeoutHandler);\n }\n if (code === 0) {\n if (onFinished) {\n onFinished();\n }\n isBootingFinished = true;\n } else {\n status = status || signal;\n error = new Error(status);\n if (onError) {\n onError(error);\n }\n }\n });\n await bootMonitor.start(0);\n const stopMonitor = async () => {\n if (bootMonitor.isRunning) {\n try {\n await bootMonitor.stop();\n } catch (e) {\n log.warn(e.message);\n }\n }\n };\n const start = process.hrtime();\n if (onFinished) {\n timeoutHandler = setTimeout(stopMonitor, timeout);\n } else {\n try {\n await waitForCondition(() => {\n if (error) {\n throw error;\n }\n return isBootingFinished;\n }, {waitMs: timeout, intervalMs: 500});\n } catch (err) {\n await stopMonitor();\n const [seconds] = process.hrtime(start);\n throw new Error(\n `The simulator ${udid} has failed to finish booting after ${seconds}s. ` +\n `Original status: ${status}`);\n }\n }\n return bootMonitor;\n};\n\nexport default commands;\n"],"mappings":"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"}
@@ -74,4 +74,4 @@ commands.createDevice = async function createDevice(name, deviceTypeId, platform
74
74
  };
75
75
  var _default = commands;
76
76
  exports.default = _default;
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYXN5bmNib3giLCJfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJTSU1fUlVOVElNRV9OQU1FX1NVRkZJWF9JT1MiLCJERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVCIsImNvbW1hbmRzIiwiY3JlYXRlRGV2aWNlIiwibmFtZSIsImRldmljZVR5cGVJZCIsInBsYXRmb3JtVmVyc2lvbiIsIm9wdHMiLCJwbGF0Zm9ybSIsInRpbWVvdXQiLCJydW50aW1lSWRzIiwicHVzaCIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIiwiaWduIiwiXyIsImlzRW1wdHkiLCJydW50aW1lSWQiLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uIiwiZXJyIiwibG9nIiwid2FybiIsInBvdGVudGlhbFJ1bnRpbWVJZHMiLCJub3JtYWxpemVWZXJzaW9uIiwic3BsaXQiLCJsZW5ndGgiLCJtYXAiLCJpZCIsIlNJTV9SVU5USU1FX05BTUUiLCJyZXBsYWNlIiwidWRpZCIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwidHJpbSIsIkVycm9yIiwiam9pbiIsInJldHJpZXMiLCJwYXJzZUludCIsInJldHJ5SW50ZXJ2YWwiLCJkZXZpY2VzIiwidmFsdWVzIiwiZ2V0RGV2aWNlcyIsImRldmljZUFyciIsImRldmljZSIsInN0YXRlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3N1YmNvbW1hbmRzL2NyZWF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cblxuY29uc3QgU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TID0gJ2lPUyc7XG5jb25zdCBERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVCA9IDEwMDAwO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbUNyZWF0aW9uT3B0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHBsYXRmb3JtIFtpT1NdIC0gUGxhdGZvcm0gbmFtZSBpbiBvcmRlciB0byBzcGVjaWZ5IHJ1bnRpbWUgc3VjaCBhcyAnaU9TJywgJ3R2T1MnLCAnd2F0Y2hPUydcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lb3V0IFsxMDAwMF0gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IGRldmljZSBjcmVhdGlvbiBpcyBjb21wbGV0ZWQuXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgU2ltdWxhdG9yIGRldmljZSB3aXRoIGdpdmVuIG5hbWUgZm9yIHRoZSBwYXJ0aWN1bGFyXG4gKiBwbGF0Zm9ybSB0eXBlIGFuZCB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGRldmljZSBuYW1lIHRvIGJlIGNyZWF0ZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGV2aWNlVHlwZUlkIC0gRGV2aWNlIHR5cGUsIGZvciBleGFtcGxlICdpUGhvbmUgNicuXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gUGxhdGZvcm0gdmVyc2lvbiwgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/U2ltQ3JlYXRpb25PcHRzfSBvcHRzIC0gU2ltdWxhdG9yIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGRldmljZXMuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVRElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGRldmljZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqL1xuY29tbWFuZHMuY3JlYXRlRGV2aWNlID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGV2aWNlIChuYW1lLCBkZXZpY2VUeXBlSWQsIHBsYXRmb3JtVmVyc2lvbiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBwbGF0Zm9ybSA9IFNJTV9SVU5USU1FX05BTUVfU1VGRklYX0lPUyxcbiAgICB0aW1lb3V0ID0gREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVRcbiAgfSA9IG9wdHM7XG5cbiAgbGV0IHJ1bnRpbWVJZHMgPSBbXTtcblxuICAvLyBUcnkgZ2V0dGluZyBydW50aW1lSWQgdXNpbmcgSlNPTiBmbGFnXG4gIHRyeSB7XG4gICAgcnVudGltZUlkcy5wdXNoKGF3YWl0IHRoaXMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24ocGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSkpO1xuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgaWYgKF8uaXNFbXB0eShydW50aW1lSWRzKSkge1xuICAgIC8vIGF0IGZpcnN0IG1ha2Ugc3VyZSB0aGF0IHRoZSBydW50aW1lIGlkIGlzIHRoZSByaWdodCBvbmVcbiAgICAvLyBpbiBzb21lIHZlcnNpb25zIG9mIFhjb2RlIGl0IHdpbGwgYmUgYSBwYXRjaCB2ZXJzaW9uXG4gICAgbGV0IHJ1bnRpbWVJZDtcbiAgICB0cnkge1xuICAgICAgcnVudGltZUlkID0gYXdhaXQgdGhpcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uKHBsYXRmb3JtVmVyc2lvbiwgcGxhdGZvcm0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLndhcm4oYFVuYWJsZSB0byBmaW5kIHJ1bnRpbWUgZm9yIGlPUyAnJHtwbGF0Zm9ybVZlcnNpb259Jy4gQ29udGludWluZ2ApO1xuICAgICAgcnVudGltZUlkID0gcGxhdGZvcm1WZXJzaW9uO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgcG9zc2libGUgcnVudGltZXMsIHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQgb3ZlclxuXG4gICAgLy8gc3RhcnQgd2l0aCBtYWpvci1taW5vciB2ZXJzaW9uXG4gICAgbGV0IHBvdGVudGlhbFJ1bnRpbWVJZHMgPSBbbm9ybWFsaXplVmVyc2lvbihydW50aW1lSWQpXTtcbiAgICBpZiAocnVudGltZUlkLnNwbGl0KCcuJykubGVuZ3RoID09PSAzKSB7XG4gICAgICAvLyBhZGQgcGF0Y2ggdmVyc2lvbiBpZiBpdCBleGlzdHNcbiAgICAgIHBvdGVudGlhbFJ1bnRpbWVJZHMucHVzaChydW50aW1lSWQpO1xuICAgIH1cblxuICAgIC8vIGFkZCBtb2RpZmllZCB2ZXJzaW9ucywgc2luY2UgbW9kZXJuIFhjb2RlcyB1c2UgdGhpcywgdGhlbiB0aGUgYmFyZVxuICAgIC8vIHZlcnNpb25zLCB0byBhY2NvbW9kYXRlIG9sZGVyIFhjb2Rlc1xuICAgIHJ1bnRpbWVJZHMucHVzaChcbiAgICAgIC4uLihwb3RlbnRpYWxSdW50aW1lSWRzLm1hcCgoaWQpID0+IGAke1NJTV9SVU5USU1FX05BTUV9JHtwbGF0Zm9ybX0tJHtpZC5yZXBsYWNlKC9cXC4vZywgJy0nKX1gKSksXG4gICAgICAuLi5wb3RlbnRpYWxSdW50aW1lSWRzXG4gICAgKTtcbiAgfVxuXG4gIC8vIGdvIHRocm91Z2ggdGhlIHJ1bnRpbWUgaWRzIGFuZCB0cnkgdG8gY3JlYXRlIGEgc2ltdWxhdG9yIHdpdGggZWFjaFxuICBsZXQgdWRpZDtcbiAgZm9yIChjb25zdCBydW50aW1lSWQgb2YgcnVudGltZUlkcykge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLFxuICAgICAgYENyZWF0aW5nIHNpbXVsYXRvciB3aXRoIG5hbWUgJyR7bmFtZX0nLCBkZXZpY2UgdHlwZSBpZCAnJHtkZXZpY2VUeXBlSWR9JyBhbmQgcnVudGltZSBpZCAnJHtydW50aW1lSWR9J2ApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnY3JlYXRlJywge1xuICAgICAgICBhcmdzOiBbbmFtZSwgZGV2aWNlVHlwZUlkLCBydW50aW1lSWRdXG4gICAgICB9KTtcbiAgICAgIHVkaWQgPSBzdGRvdXQudHJpbSgpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAvLyB0aGUgZXJyb3IgZ2V0cyBsb2dnZWQgaW4gYHNpbUV4ZWNgXG4gICAgfVxuICB9XG5cbiAgaWYgKCF1ZGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIHNpbXVsYXRvciB3aXRoIG5hbWUgJyR7bmFtZX0nLCBkZXZpY2UgYCArXG4gICAgICBgdHlwZSBpZCAnJHtkZXZpY2VUeXBlSWR9Jywgd2l0aCBydW50aW1lIGlkcyBgICtcbiAgICAgIGAke3J1bnRpbWVJZHMubWFwKChpZCkgPT4gYCcke2lkfSdgKS5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgLy8gbWFrZSBzdXJlIHRoYXQgaXQgZ2V0cyBvdXQgb2YgdGhlIFwiQ3JlYXRpbmdcIiBzdGF0ZVxuICBjb25zdCByZXRyaWVzID0gcGFyc2VJbnQodGltZW91dCAvIDEwMDAsIDEwKTtcbiAgYXdhaXQgcmV0cnlJbnRlcnZhbChyZXRyaWVzLCAxMDAwLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGV2aWNlcyA9IF8udmFsdWVzKGF3YWl0IHRoaXMuZ2V0RGV2aWNlcygpKTtcbiAgICBmb3IgKGNvbnN0IGRldmljZUFyciBvZiBfLnZhbHVlcyhkZXZpY2VzKSkge1xuICAgICAgZm9yIChjb25zdCBkZXZpY2Ugb2YgZGV2aWNlQXJyKSB7XG4gICAgICAgIGlmIChkZXZpY2UudWRpZCA9PT0gdWRpZCkge1xuICAgICAgICAgIGlmIChkZXZpY2Uuc3RhdGUgPT09ICdDcmVhdGluZycpIHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gcmV0cnlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGV2aWNlIHdpdGggdWRpZCAnJHt1ZGlkfScgc3RpbGwgYmVpbmcgY3JlYXRlZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzdG9wIGxvb2tpbmcsIHdlJ3JlIGRvbmVcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXZpY2Ugd2l0aCB1ZGlkICcke3VkaWR9JyBub3QgeWV0IGNyZWF0ZWRgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHVkaWQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFBZ0UsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFB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
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYXN5bmNib3giLCJfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJTSU1fUlVOVElNRV9OQU1FX1NVRkZJWF9JT1MiLCJERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVCIsImNvbW1hbmRzIiwiY3JlYXRlRGV2aWNlIiwibmFtZSIsImRldmljZVR5cGVJZCIsInBsYXRmb3JtVmVyc2lvbiIsIm9wdHMiLCJwbGF0Zm9ybSIsInRpbWVvdXQiLCJydW50aW1lSWRzIiwicHVzaCIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIiwiaWduIiwiXyIsImlzRW1wdHkiLCJydW50aW1lSWQiLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uIiwiZXJyIiwibG9nIiwid2FybiIsInBvdGVudGlhbFJ1bnRpbWVJZHMiLCJub3JtYWxpemVWZXJzaW9uIiwic3BsaXQiLCJsZW5ndGgiLCJtYXAiLCJpZCIsIlNJTV9SVU5USU1FX05BTUUiLCJyZXBsYWNlIiwidWRpZCIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwidHJpbSIsIkVycm9yIiwiam9pbiIsInJldHJpZXMiLCJwYXJzZUludCIsInJldHJ5SW50ZXJ2YWwiLCJkZXZpY2VzIiwidmFsdWVzIiwiZ2V0RGV2aWNlcyIsImRldmljZUFyciIsImRldmljZSIsInN0YXRlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3N1YmNvbW1hbmRzL2NyZWF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cblxuY29uc3QgU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TID0gJ2lPUyc7XG5jb25zdCBERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVCA9IDEwMDAwO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbUNyZWF0aW9uT3B0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHBsYXRmb3JtIFtpT1NdIC0gUGxhdGZvcm0gbmFtZSBpbiBvcmRlciB0byBzcGVjaWZ5IHJ1bnRpbWUgc3VjaCBhcyAnaU9TJywgJ3R2T1MnLCAnd2F0Y2hPUydcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lb3V0IFsxMDAwMF0gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IGRldmljZSBjcmVhdGlvbiBpcyBjb21wbGV0ZWQuXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgU2ltdWxhdG9yIGRldmljZSB3aXRoIGdpdmVuIG5hbWUgZm9yIHRoZSBwYXJ0aWN1bGFyXG4gKiBwbGF0Zm9ybSB0eXBlIGFuZCB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGRldmljZSBuYW1lIHRvIGJlIGNyZWF0ZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGV2aWNlVHlwZUlkIC0gRGV2aWNlIHR5cGUsIGZvciBleGFtcGxlICdpUGhvbmUgNicuXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gUGxhdGZvcm0gdmVyc2lvbiwgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/U2ltQ3JlYXRpb25PcHRzfSBvcHRzIC0gU2ltdWxhdG9yIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGRldmljZXMuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVRElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGRldmljZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqL1xuY29tbWFuZHMuY3JlYXRlRGV2aWNlID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGV2aWNlIChuYW1lLCBkZXZpY2VUeXBlSWQsIHBsYXRmb3JtVmVyc2lvbiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBwbGF0Zm9ybSA9IFNJTV9SVU5USU1FX05BTUVfU1VGRklYX0lPUyxcbiAgICB0aW1lb3V0ID0gREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVRcbiAgfSA9IG9wdHM7XG5cbiAgbGV0IHJ1bnRpbWVJZHMgPSBbXTtcblxuICAvLyBUcnkgZ2V0dGluZyBydW50aW1lSWQgdXNpbmcgSlNPTiBmbGFnXG4gIHRyeSB7XG4gICAgcnVudGltZUlkcy5wdXNoKGF3YWl0IHRoaXMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24ocGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSkpO1xuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgaWYgKF8uaXNFbXB0eShydW50aW1lSWRzKSkge1xuICAgIC8vIGF0IGZpcnN0IG1ha2Ugc3VyZSB0aGF0IHRoZSBydW50aW1lIGlkIGlzIHRoZSByaWdodCBvbmVcbiAgICAvLyBpbiBzb21lIHZlcnNpb25zIG9mIFhjb2RlIGl0IHdpbGwgYmUgYSBwYXRjaCB2ZXJzaW9uXG4gICAgbGV0IHJ1bnRpbWVJZDtcbiAgICB0cnkge1xuICAgICAgcnVudGltZUlkID0gYXdhaXQgdGhpcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uKHBsYXRmb3JtVmVyc2lvbiwgcGxhdGZvcm0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLndhcm4oYFVuYWJsZSB0byBmaW5kIHJ1bnRpbWUgZm9yIGlPUyAnJHtwbGF0Zm9ybVZlcnNpb259Jy4gQ29udGludWluZ2ApO1xuICAgICAgcnVudGltZUlkID0gcGxhdGZvcm1WZXJzaW9uO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgcG9zc2libGUgcnVudGltZXMsIHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQgb3ZlclxuXG4gICAgLy8gc3RhcnQgd2l0aCBtYWpvci1taW5vciB2ZXJzaW9uXG4gICAgbGV0IHBvdGVudGlhbFJ1bnRpbWVJZHMgPSBbbm9ybWFsaXplVmVyc2lvbihydW50aW1lSWQpXTtcbiAgICBpZiAocnVudGltZUlkLnNwbGl0KCcuJykubGVuZ3RoID09PSAzKSB7XG4gICAgICAvLyBhZGQgcGF0Y2ggdmVyc2lvbiBpZiBpdCBleGlzdHNcbiAgICAgIHBvdGVudGlhbFJ1bnRpbWVJZHMucHVzaChydW50aW1lSWQpO1xuICAgIH1cblxuICAgIC8vIGFkZCBtb2RpZmllZCB2ZXJzaW9ucywgc2luY2UgbW9kZXJuIFhjb2RlcyB1c2UgdGhpcywgdGhlbiB0aGUgYmFyZVxuICAgIC8vIHZlcnNpb25zLCB0byBhY2NvbW9kYXRlIG9sZGVyIFhjb2Rlc1xuICAgIHJ1bnRpbWVJZHMucHVzaChcbiAgICAgIC4uLihwb3RlbnRpYWxSdW50aW1lSWRzLm1hcCgoaWQpID0+IGAke1NJTV9SVU5USU1FX05BTUV9JHtwbGF0Zm9ybX0tJHtpZC5yZXBsYWNlKC9cXC4vZywgJy0nKX1gKSksXG4gICAgICAuLi5wb3RlbnRpYWxSdW50aW1lSWRzXG4gICAgKTtcbiAgfVxuXG4gIC8vIGdvIHRocm91Z2ggdGhlIHJ1bnRpbWUgaWRzIGFuZCB0cnkgdG8gY3JlYXRlIGEgc2ltdWxhdG9yIHdpdGggZWFjaFxuICBsZXQgdWRpZDtcbiAgZm9yIChjb25zdCBydW50aW1lSWQgb2YgcnVudGltZUlkcykge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLFxuICAgICAgYENyZWF0aW5nIHNpbXVsYXRvciB3aXRoIG5hbWUgJyR7bmFtZX0nLCBkZXZpY2UgdHlwZSBpZCAnJHtkZXZpY2VUeXBlSWR9JyBhbmQgcnVudGltZSBpZCAnJHtydW50aW1lSWR9J2ApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnY3JlYXRlJywge1xuICAgICAgICBhcmdzOiBbbmFtZSwgZGV2aWNlVHlwZUlkLCBydW50aW1lSWRdXG4gICAgICB9KTtcbiAgICAgIHVkaWQgPSBzdGRvdXQudHJpbSgpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAvLyB0aGUgZXJyb3IgZ2V0cyBsb2dnZWQgaW4gYHNpbUV4ZWNgXG4gICAgfVxuICB9XG5cbiAgaWYgKCF1ZGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIHNpbXVsYXRvciB3aXRoIG5hbWUgJyR7bmFtZX0nLCBkZXZpY2UgYCArXG4gICAgICBgdHlwZSBpZCAnJHtkZXZpY2VUeXBlSWR9Jywgd2l0aCBydW50aW1lIGlkcyBgICtcbiAgICAgIGAke3J1bnRpbWVJZHMubWFwKChpZCkgPT4gYCcke2lkfSdgKS5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgLy8gbWFrZSBzdXJlIHRoYXQgaXQgZ2V0cyBvdXQgb2YgdGhlIFwiQ3JlYXRpbmdcIiBzdGF0ZVxuICBjb25zdCByZXRyaWVzID0gcGFyc2VJbnQodGltZW91dCAvIDEwMDAsIDEwKTtcbiAgYXdhaXQgcmV0cnlJbnRlcnZhbChyZXRyaWVzLCAxMDAwLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGV2aWNlcyA9IF8udmFsdWVzKGF3YWl0IHRoaXMuZ2V0RGV2aWNlcygpKTtcbiAgICBmb3IgKGNvbnN0IGRldmljZUFyciBvZiBfLnZhbHVlcyhkZXZpY2VzKSkge1xuICAgICAgZm9yIChjb25zdCBkZXZpY2Ugb2YgZGV2aWNlQXJyKSB7XG4gICAgICAgIGlmIChkZXZpY2UudWRpZCA9PT0gdWRpZCkge1xuICAgICAgICAgIGlmIChkZXZpY2Uuc3RhdGUgPT09ICdDcmVhdGluZycpIHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gcmV0cnlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGV2aWNlIHdpdGggdWRpZCAnJHt1ZGlkfScgc3RpbGwgYmVpbmcgY3JlYXRlZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzdG9wIGxvb2tpbmcsIHdlJ3JlIGRvbmVcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXZpY2Ugd2l0aCB1ZGlkICcke3VkaWR9JyBub3QgeWV0IGNyZWF0ZWRgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHVkaWQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFBZ0UsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","names":["_lodash","_interopRequireDefault","require","_logger","_interopRequireWildcard","_asyncbox","_helpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SIM_RUNTIME_NAME_SUFFIX_IOS","DEFAULT_CREATE_SIMULATOR_TIMEOUT","commands","createDevice","name","deviceTypeId","platformVersion","opts","platform","timeout","runtimeIds","push","getRuntimeForPlatformVersionViaJson","ign","_","isEmpty","runtimeId","getRuntimeForPlatformVersion","err","log","warn","potentialRuntimeIds","normalizeVersion","split","length","map","id","SIM_RUNTIME_NAME","replace","udid","debug","LOG_PREFIX","stdout","exec","args","trim","Error","join","retries","parseInt","retryInterval","devices","values","getDevices","deviceArr","device","state","_default","exports"],"sources":["../../../lib/subcommands/create.js"],"sourcesContent":["import _ from 'lodash';\nimport log, { LOG_PREFIX } from '../logger';\nimport { retryInterval } from 'asyncbox';\nimport { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';\n\n\nconst SIM_RUNTIME_NAME_SUFFIX_IOS = 'iOS';\nconst DEFAULT_CREATE_SIMULATOR_TIMEOUT = 10000;\n\nconst commands = {};\n\n/**\n * @typedef {Object} SimCreationOpts\n * @property {string} platform [iOS] - Platform name in order to specify runtime such as 'iOS', 'tvOS', 'watchOS'\n * @property {number} timeout [10000] - The maximum number of milliseconds to wait\n * unit device creation is completed.\n */\n\n/**\n * Create Simulator device with given name for the particular\n * platform type and version.\n *\n * @param {string} name - The device name to be created.\n * @param {string} deviceTypeId - Device type, for example 'iPhone 6'.\n * @param {string} platformVersion - Platform version, for example '10.3'.\n * @param {?SimCreationOpts} opts - Simulator options for creating devices.\n * @return {string} The UDID of the newly created device.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n */\ncommands.createDevice = async function createDevice (name, deviceTypeId, platformVersion, opts = {}) {\n const {\n platform = SIM_RUNTIME_NAME_SUFFIX_IOS,\n timeout = DEFAULT_CREATE_SIMULATOR_TIMEOUT\n } = opts;\n\n let runtimeIds = [];\n\n // Try getting runtimeId using JSON flag\n try {\n runtimeIds.push(await this.getRuntimeForPlatformVersionViaJson(platformVersion, platform));\n } catch (ign) {}\n\n if (_.isEmpty(runtimeIds)) {\n // at first make sure that the runtime id is the right one\n // in some versions of Xcode it will be a patch version\n let runtimeId;\n try {\n runtimeId = await this.getRuntimeForPlatformVersion(platformVersion, platform);\n } catch (err) {\n log.warn(`Unable to find runtime for iOS '${platformVersion}'. Continuing`);\n runtimeId = platformVersion;\n }\n\n // get the possible runtimes, which will be iterated over\n\n // start with major-minor version\n let potentialRuntimeIds = [normalizeVersion(runtimeId)];\n if (runtimeId.split('.').length === 3) {\n // add patch version if it exists\n potentialRuntimeIds.push(runtimeId);\n }\n\n // add modified versions, since modern Xcodes use this, then the bare\n // versions, to accomodate older Xcodes\n runtimeIds.push(\n ...(potentialRuntimeIds.map((id) => `${SIM_RUNTIME_NAME}${platform}-${id.replace(/\\./g, '-')}`)),\n ...potentialRuntimeIds\n );\n }\n\n // go through the runtime ids and try to create a simulator with each\n let udid;\n for (const runtimeId of runtimeIds) {\n log.debug(LOG_PREFIX,\n `Creating simulator with name '${name}', device type id '${deviceTypeId}' and runtime id '${runtimeId}'`);\n try {\n const {stdout} = await this.exec('create', {\n args: [name, deviceTypeId, runtimeId]\n });\n udid = stdout.trim();\n break;\n } catch (ign) {\n // the error gets logged in `simExec`\n }\n }\n\n if (!udid) {\n throw new Error(`Could not create simulator with name '${name}', device ` +\n `type id '${deviceTypeId}', with runtime ids ` +\n `${runtimeIds.map((id) => `'${id}'`).join(', ')}`);\n }\n\n // make sure that it gets out of the \"Creating\" state\n const retries = parseInt(timeout / 1000, 10);\n await retryInterval(retries, 1000, async () => {\n const devices = _.values(await this.getDevices());\n for (const deviceArr of _.values(devices)) {\n for (const device of deviceArr) {\n if (device.udid === udid) {\n if (device.state === 'Creating') {\n // need to retry\n throw new Error(`Device with udid '${udid}' still being created`);\n } else {\n // stop looking, we're done\n return;\n }\n }\n }\n }\n throw new Error(`Device with udid '${udid}' not yet created`);\n });\n\n return udid;\n};\n\nexport default commands;\n"],"mappings":"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"}
1
+ {"version":3,"file":"create.js","names":["_lodash","_interopRequireDefault","require","_logger","_interopRequireWildcard","_asyncbox","_helpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SIM_RUNTIME_NAME_SUFFIX_IOS","DEFAULT_CREATE_SIMULATOR_TIMEOUT","commands","createDevice","name","deviceTypeId","platformVersion","opts","platform","timeout","runtimeIds","push","getRuntimeForPlatformVersionViaJson","ign","_","isEmpty","runtimeId","getRuntimeForPlatformVersion","err","log","warn","potentialRuntimeIds","normalizeVersion","split","length","map","id","SIM_RUNTIME_NAME","replace","udid","debug","LOG_PREFIX","stdout","exec","args","trim","Error","join","retries","parseInt","retryInterval","devices","values","getDevices","deviceArr","device","state","_default","exports"],"sources":["../../../lib/subcommands/create.js"],"sourcesContent":["import _ from 'lodash';\nimport log, { LOG_PREFIX } from '../logger';\nimport { retryInterval } from 'asyncbox';\nimport { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';\n\n\nconst SIM_RUNTIME_NAME_SUFFIX_IOS = 'iOS';\nconst DEFAULT_CREATE_SIMULATOR_TIMEOUT = 10000;\n\nconst commands = {};\n\n/**\n * @typedef {Object} SimCreationOpts\n * @property {string} platform [iOS] - Platform name in order to specify runtime such as 'iOS', 'tvOS', 'watchOS'\n * @property {number} timeout [10000] - The maximum number of milliseconds to wait\n * unit device creation is completed.\n */\n\n/**\n * Create Simulator device with given name for the particular\n * platform type and version.\n *\n * @param {string} name - The device name to be created.\n * @param {string} deviceTypeId - Device type, for example 'iPhone 6'.\n * @param {string} platformVersion - Platform version, for example '10.3'.\n * @param {?SimCreationOpts} opts - Simulator options for creating devices.\n * @return {string} The UDID of the newly created device.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n */\ncommands.createDevice = async function createDevice (name, deviceTypeId, platformVersion, opts = {}) {\n const {\n platform = SIM_RUNTIME_NAME_SUFFIX_IOS,\n timeout = DEFAULT_CREATE_SIMULATOR_TIMEOUT\n } = opts;\n\n let runtimeIds = [];\n\n // Try getting runtimeId using JSON flag\n try {\n runtimeIds.push(await this.getRuntimeForPlatformVersionViaJson(platformVersion, platform));\n } catch (ign) {}\n\n if (_.isEmpty(runtimeIds)) {\n // at first make sure that the runtime id is the right one\n // in some versions of Xcode it will be a patch version\n let runtimeId;\n try {\n runtimeId = await this.getRuntimeForPlatformVersion(platformVersion, platform);\n } catch (err) {\n log.warn(`Unable to find runtime for iOS '${platformVersion}'. Continuing`);\n runtimeId = platformVersion;\n }\n\n // get the possible runtimes, which will be iterated over\n\n // start with major-minor version\n let potentialRuntimeIds = [normalizeVersion(runtimeId)];\n if (runtimeId.split('.').length === 3) {\n // add patch version if it exists\n potentialRuntimeIds.push(runtimeId);\n }\n\n // add modified versions, since modern Xcodes use this, then the bare\n // versions, to accomodate older Xcodes\n runtimeIds.push(\n ...(potentialRuntimeIds.map((id) => `${SIM_RUNTIME_NAME}${platform}-${id.replace(/\\./g, '-')}`)),\n ...potentialRuntimeIds\n );\n }\n\n // go through the runtime ids and try to create a simulator with each\n let udid;\n for (const runtimeId of runtimeIds) {\n log.debug(LOG_PREFIX,\n `Creating simulator with name '${name}', device type id '${deviceTypeId}' and runtime id '${runtimeId}'`);\n try {\n const {stdout} = await this.exec('create', {\n args: [name, deviceTypeId, runtimeId]\n });\n udid = stdout.trim();\n break;\n } catch (ign) {\n // the error gets logged in `simExec`\n }\n }\n\n if (!udid) {\n throw new Error(`Could not create simulator with name '${name}', device ` +\n `type id '${deviceTypeId}', with runtime ids ` +\n `${runtimeIds.map((id) => `'${id}'`).join(', ')}`);\n }\n\n // make sure that it gets out of the \"Creating\" state\n const retries = parseInt(timeout / 1000, 10);\n await retryInterval(retries, 1000, async () => {\n const devices = _.values(await this.getDevices());\n for (const deviceArr of _.values(devices)) {\n for (const device of deviceArr) {\n if (device.udid === udid) {\n if (device.state === 'Creating') {\n // need to retry\n throw new Error(`Device with udid '${udid}' still being created`);\n } else {\n // stop looking, we're done\n return;\n }\n }\n }\n }\n throw new Error(`Device with udid '${udid}' not yet created`);\n });\n\n return udid;\n};\n\nexport default commands;\n"],"mappings":"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"}
@@ -15,4 +15,4 @@ commands.eraseDevice = async function eraseDevice(timeout = 1000) {
15
15
  };
16
16
  var _default = commands;
17
17
  exports.default = _default;
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXN5bmNib3giLCJyZXF1aXJlIiwiY29tbWFuZHMiLCJlcmFzZURldmljZSIsInRpbWVvdXQiLCJyZXRyaWVzIiwicGFyc2VJbnQiLCJyZXRyeUludGVydmFsIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvZXJhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBSZXNldCB0aGUgY29udGVudCBhbmQgc2V0dGluZ3Mgb2YgdGhlIHBhcnRpY3VsYXIgU2ltdWxhdG9yLlxuICogSXQgaXMgcmVxdWlyZWQgdGhhdCBTaW11bGF0b3IgaXMgaW4gX3NodXRkb3duXyBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZW91dCBbMTAwMDBdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCBkZXZpY2UgcmVzZXQgaXMgY29tcGxldGVkLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuZXJhc2VEZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBlcmFzZURldmljZSAodGltZW91dCA9IDEwMDApIHtcbiAgLy8gcmV0cnkgZXJhc2Ugd2l0aCBhIHNsZWVwIGluIGJldHdlZW4gYmVjYXVzZSBpdCdzIGZsYWtleVxuICBjb25zdCByZXRyaWVzID0gcGFyc2VJbnQodGltZW91dCAvIDIwMCwgMTApO1xuICBhd2FpdCByZXRyeUludGVydmFsKHJldHJpZXMsIDIwMCxcbiAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmV4ZWMoJ2VyYXNlJywge1xuICAgICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2VyYXNlJyldXG4gICAgfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUEsTUFBTUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQVluQkEsUUFBUSxDQUFDQyxXQUFXLEdBQUcsZUFBZUEsV0FBV0EsQ0FBRUMsT0FBTyxHQUFHLElBQUksRUFBRTtFQUVqRSxNQUFNQyxPQUFPLEdBQUdDLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7RUFDM0MsTUFBTSxJQUFBRyx1QkFBYSxFQUFDRixPQUFPLEVBQUUsR0FBRyxFQUM5QixZQUFZLE1BQU0sSUFBSSxDQUFDRyxJQUFJLENBQUMsT0FBTyxFQUFFO0lBQ25DQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxPQUFPLENBQUM7RUFDbEMsQ0FBQyxDQUFDLENBQ0g7QUFDSCxDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhVCxRQUFRO0FBQUFVLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXN5bmNib3giLCJyZXF1aXJlIiwiY29tbWFuZHMiLCJlcmFzZURldmljZSIsInRpbWVvdXQiLCJyZXRyaWVzIiwicGFyc2VJbnQiLCJyZXRyeUludGVydmFsIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvZXJhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBSZXNldCB0aGUgY29udGVudCBhbmQgc2V0dGluZ3Mgb2YgdGhlIHBhcnRpY3VsYXIgU2ltdWxhdG9yLlxuICogSXQgaXMgcmVxdWlyZWQgdGhhdCBTaW11bGF0b3IgaXMgaW4gX3NodXRkb3duXyBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZW91dCBbMTAwMDBdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCBkZXZpY2UgcmVzZXQgaXMgY29tcGxldGVkLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuZXJhc2VEZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBlcmFzZURldmljZSAodGltZW91dCA9IDEwMDApIHtcbiAgLy8gcmV0cnkgZXJhc2Ugd2l0aCBhIHNsZWVwIGluIGJldHdlZW4gYmVjYXVzZSBpdCdzIGZsYWtleVxuICBjb25zdCByZXRyaWVzID0gcGFyc2VJbnQodGltZW91dCAvIDIwMCwgMTApO1xuICBhd2FpdCByZXRyeUludGVydmFsKHJldHJpZXMsIDIwMCxcbiAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmV4ZWMoJ2VyYXNlJywge1xuICAgICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2VyYXNlJyldXG4gICAgfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUEsTUFBTUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQVluQkEsUUFBUSxDQUFDQyxXQUFXLEdBQUcsZUFBZUEsV0FBV0EsQ0FBRUMsT0FBTyxHQUFHLElBQUksRUFBRTtFQUVqRSxNQUFNQyxPQUFPLEdBQUdDLFFBQVEsQ0FBQ0YsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7RUFDM0MsTUFBTSxJQUFBRyx1QkFBYSxFQUFDRixPQUFPLEVBQUUsR0FBRyxFQUM5QixZQUFZLE1BQU0sSUFBSSxDQUFDRyxJQUFJLENBQUMsT0FBTyxFQUFFO0lBQ25DQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxPQUFPLENBQUM7RUFDbEMsQ0FBQyxDQUNILENBQUM7QUFDSCxDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhVCxRQUFRO0FBQUFVLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"erase.js","names":["_asyncbox","require","commands","eraseDevice","timeout","retries","parseInt","retryInterval","exec","args","requireUdid","_default","exports","default"],"sources":["../../../lib/subcommands/erase.js"],"sourcesContent":["import { retryInterval } from 'asyncbox';\n\nconst commands = {};\n\n/**\n * Reset the content and settings of the particular Simulator.\n * It is required that Simulator is in _shutdown_ state.\n *\n * @param {number} timeout [10000] - The maximum number of milliseconds to wait\n * unit device reset is completed.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.eraseDevice = async function eraseDevice (timeout = 1000) {\n // retry erase with a sleep in between because it's flakey\n const retries = parseInt(timeout / 200, 10);\n await retryInterval(retries, 200,\n async () => await this.exec('erase', {\n args: [this.requireUdid('erase')]\n })\n );\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AAYnBA,QAAQ,CAACC,WAAW,GAAG,eAAeA,WAAWA,CAAEC,OAAO,GAAG,IAAI,EAAE;EAEjE,MAAMC,OAAO,GAAGC,QAAQ,CAACF,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;EAC3C,MAAM,IAAAG,uBAAa,EAACF,OAAO,EAAE,GAAG,EAC9B,YAAY,MAAM,IAAI,CAACG,IAAI,CAAC,OAAO,EAAE;IACnCC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,OAAO,CAAC;EAClC,CAAC,CAAC,CACH;AACH,CAAC;AAAC,IAAAC,QAAA,GAEaT,QAAQ;AAAAU,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"erase.js","names":["_asyncbox","require","commands","eraseDevice","timeout","retries","parseInt","retryInterval","exec","args","requireUdid","_default","exports","default"],"sources":["../../../lib/subcommands/erase.js"],"sourcesContent":["import { retryInterval } from 'asyncbox';\n\nconst commands = {};\n\n/**\n * Reset the content and settings of the particular Simulator.\n * It is required that Simulator is in _shutdown_ state.\n *\n * @param {number} timeout [10000] - The maximum number of milliseconds to wait\n * unit device reset is completed.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.eraseDevice = async function eraseDevice (timeout = 1000) {\n // retry erase with a sleep in between because it's flakey\n const retries = parseInt(timeout / 200, 10);\n await retryInterval(retries, 200,\n async () => await this.exec('erase', {\n args: [this.requireUdid('erase')]\n })\n );\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AAYnBA,QAAQ,CAACC,WAAW,GAAG,eAAeA,WAAWA,CAAEC,OAAO,GAAG,IAAI,EAAE;EAEjE,MAAMC,OAAO,GAAGC,QAAQ,CAACF,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;EAC3C,MAAM,IAAAG,uBAAa,EAACF,OAAO,EAAE,GAAG,EAC9B,YAAY,MAAM,IAAI,CAACG,IAAI,CAAC,OAAO,EAAE;IACnCC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,OAAO,CAAC;EAClC,CAAC,CACH,CAAC;AACH,CAAC;AAAC,IAAAC,QAAA,GAEaT,QAAQ;AAAAU,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -20,4 +20,4 @@ commands.getAppContainer = async function getAppContainer(bundleId, containerTyp
20
20
  };
21
21
  var _default = commands;
22
22
  exports.default = _default;
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImdldEFwcENvbnRhaW5lciIsImJ1bmRsZUlkIiwiY29udGFpbmVyVHlwZSIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsInB1c2giLCJzdGRvdXQiLCJleGVjIiwidHJpbSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvZ2V0X2FwcF9jb250YWluZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bGwgcGF0aCB0byB0aGUgcGFydGljdWxhciBhcHBsaWNhdGlvbiBjb250YWluZXJcbiAqIG9uIHRoZSBsb2NhbCBmaWxlIHN5c3RlbS4gTm90ZSwgdGhhdCB0aGlzIHN1YmNvbW1hbmQgdGhyb3dzXG4gKiBhbiBlcnJvciBpZiBidW5kbGUgaWQgb2YgYSBzeXN0ZW0gYXBwbGljYXRpb24gaXMgcHJvdmlkZWQsXG4gKiBsaWtlICdjb20uYXBwbGUuc3ByaW5nYm9hcmQnLlxuICogSXQgaXMgcmVxdWlyZWQgdGhhdCBTaW11bGF0b3IgaXMgaW4gX2Jvb3RlZF8gc3RhdGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJ1bmRsZUlkIC0gQnVuZGxlIGlkZW50aWZpZXIgb2YgYW4gYXBwbGljYXRpb24uXG4gKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRhaW5lclR5cGUgLSBXaGljaCBjb250YWluZXIgdHlwZSB0byByZXR1cm4uIFBvc3NpYmxlIHZhbHVlc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlICdhcHAnLCAnZGF0YScsICdncm91cHMnLCAnPEEgc3BlY2lmaWMgQXBwIEdyb3VwIGNvbnRhaW5lcj4nLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2FwcCcuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEZ1bGwgcGF0aCB0byB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gY29udGFpbmVyIG9uIHRoZSBsb2NhbFxuICogICAgICAgICAgICAgICAgICBmaWxlIHN5c3RlbS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYHVkaWRgIGluc3RhbmNlIHByb3BlcnR5IGlzIHVuc2V0XG4gKi9cbmNvbW1hbmRzLmdldEFwcENvbnRhaW5lciA9IGFzeW5jIGZ1bmN0aW9uIGdldEFwcENvbnRhaW5lciAoYnVuZGxlSWQsIGNvbnRhaW5lclR5cGUgPSBudWxsKSB7XG4gIGNvbnN0IGFyZ3MgPSBbdGhpcy5yZXF1aXJlVWRpZCgnZ2V0X2FwcF9jb250YWluZXInKSwgYnVuZGxlSWRdO1xuICBpZiAoY29udGFpbmVyVHlwZSkge1xuICAgIGFyZ3MucHVzaChjb250YWluZXJUeXBlKTtcbiAgfVxuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnZ2V0X2FwcF9jb250YWluZXInLCB7YXJnc30pO1xuICByZXR1cm4gKHN0ZG91dCB8fCAnJykudHJpbSgpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBbUJuQkEsUUFBUSxDQUFDQyxlQUFlLEdBQUcsZUFBZUEsZUFBZUEsQ0FBRUMsUUFBUSxFQUFFQyxhQUFhLEdBQUcsSUFBSSxFQUFFO0VBQ3pGLE1BQU1DLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLG1CQUFtQixDQUFDLEVBQUVILFFBQVEsQ0FBQztFQUM5RCxJQUFJQyxhQUFhLEVBQUU7SUFDakJDLElBQUksQ0FBQ0UsSUFBSSxDQUFDSCxhQUFhLENBQUM7RUFDMUI7RUFDQSxNQUFNO0lBQUNJO0VBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7SUFBQ0o7RUFBSSxDQUFDLENBQUM7RUFDN0QsT0FBTyxDQUFDRyxNQUFNLElBQUksRUFBRSxFQUFFRSxJQUFJLEVBQUU7QUFDOUIsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFYVYsUUFBUTtBQUFBVyxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImdldEFwcENvbnRhaW5lciIsImJ1bmRsZUlkIiwiY29udGFpbmVyVHlwZSIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsInB1c2giLCJzdGRvdXQiLCJleGVjIiwidHJpbSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvZ2V0X2FwcF9jb250YWluZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bGwgcGF0aCB0byB0aGUgcGFydGljdWxhciBhcHBsaWNhdGlvbiBjb250YWluZXJcbiAqIG9uIHRoZSBsb2NhbCBmaWxlIHN5c3RlbS4gTm90ZSwgdGhhdCB0aGlzIHN1YmNvbW1hbmQgdGhyb3dzXG4gKiBhbiBlcnJvciBpZiBidW5kbGUgaWQgb2YgYSBzeXN0ZW0gYXBwbGljYXRpb24gaXMgcHJvdmlkZWQsXG4gKiBsaWtlICdjb20uYXBwbGUuc3ByaW5nYm9hcmQnLlxuICogSXQgaXMgcmVxdWlyZWQgdGhhdCBTaW11bGF0b3IgaXMgaW4gX2Jvb3RlZF8gc3RhdGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJ1bmRsZUlkIC0gQnVuZGxlIGlkZW50aWZpZXIgb2YgYW4gYXBwbGljYXRpb24uXG4gKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRhaW5lclR5cGUgLSBXaGljaCBjb250YWluZXIgdHlwZSB0byByZXR1cm4uIFBvc3NpYmxlIHZhbHVlc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlICdhcHAnLCAnZGF0YScsICdncm91cHMnLCAnPEEgc3BlY2lmaWMgQXBwIEdyb3VwIGNvbnRhaW5lcj4nLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2FwcCcuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEZ1bGwgcGF0aCB0byB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gY29udGFpbmVyIG9uIHRoZSBsb2NhbFxuICogICAgICAgICAgICAgICAgICBmaWxlIHN5c3RlbS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYHVkaWRgIGluc3RhbmNlIHByb3BlcnR5IGlzIHVuc2V0XG4gKi9cbmNvbW1hbmRzLmdldEFwcENvbnRhaW5lciA9IGFzeW5jIGZ1bmN0aW9uIGdldEFwcENvbnRhaW5lciAoYnVuZGxlSWQsIGNvbnRhaW5lclR5cGUgPSBudWxsKSB7XG4gIGNvbnN0IGFyZ3MgPSBbdGhpcy5yZXF1aXJlVWRpZCgnZ2V0X2FwcF9jb250YWluZXInKSwgYnVuZGxlSWRdO1xuICBpZiAoY29udGFpbmVyVHlwZSkge1xuICAgIGFyZ3MucHVzaChjb250YWluZXJUeXBlKTtcbiAgfVxuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnZ2V0X2FwcF9jb250YWluZXInLCB7YXJnc30pO1xuICByZXR1cm4gKHN0ZG91dCB8fCAnJykudHJpbSgpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBbUJuQkEsUUFBUSxDQUFDQyxlQUFlLEdBQUcsZUFBZUEsZUFBZUEsQ0FBRUMsUUFBUSxFQUFFQyxhQUFhLEdBQUcsSUFBSSxFQUFFO0VBQ3pGLE1BQU1DLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLG1CQUFtQixDQUFDLEVBQUVILFFBQVEsQ0FBQztFQUM5RCxJQUFJQyxhQUFhLEVBQUU7SUFDakJDLElBQUksQ0FBQ0UsSUFBSSxDQUFDSCxhQUFhLENBQUM7RUFDMUI7RUFDQSxNQUFNO0lBQUNJO0VBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7SUFBQ0o7RUFBSSxDQUFDLENBQUM7RUFDN0QsT0FBTyxDQUFDRyxNQUFNLElBQUksRUFBRSxFQUFFRSxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhVixRQUFRO0FBQUFXLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"get_app_container.js","names":["commands","getAppContainer","bundleId","containerType","args","requireUdid","push","stdout","exec","trim","_default","exports","default"],"sources":["../../../lib/subcommands/get_app_container.js"],"sourcesContent":["const commands = {};\n\n/**\n * Get the full path to the particular application container\n * on the local file system. Note, that this subcommand throws\n * an error if bundle id of a system application is provided,\n * like 'com.apple.springboard'.\n * It is required that Simulator is in _booted_ state.\n *\n * @param {string} bundleId - Bundle identifier of an application.\n * @param {?string} containerType - Which container type to return. Possible values\n * are 'app', 'data', 'groups', '<A specific App Group container>'.\n * The default value is 'app'.\n * @return {string} Full path to the given application container on the local\n * file system.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.getAppContainer = async function getAppContainer (bundleId, containerType = null) {\n const args = [this.requireUdid('get_app_container'), bundleId];\n if (containerType) {\n args.push(containerType);\n }\n const {stdout} = await this.exec('get_app_container', {args});\n return (stdout || '').trim();\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AAmBnBA,QAAQ,CAACC,eAAe,GAAG,eAAeA,eAAeA,CAAEC,QAAQ,EAAEC,aAAa,GAAG,IAAI,EAAE;EACzF,MAAMC,IAAI,GAAG,CAAC,IAAI,CAACC,WAAW,CAAC,mBAAmB,CAAC,EAAEH,QAAQ,CAAC;EAC9D,IAAIC,aAAa,EAAE;IACjBC,IAAI,CAACE,IAAI,CAACH,aAAa,CAAC;EAC1B;EACA,MAAM;IAACI;EAAM,CAAC,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,mBAAmB,EAAE;IAACJ;EAAI,CAAC,CAAC;EAC7D,OAAO,CAACG,MAAM,IAAI,EAAE,EAAEE,IAAI,EAAE;AAC9B,CAAC;AAAC,IAAAC,QAAA,GAEaV,QAAQ;AAAAW,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"get_app_container.js","names":["commands","getAppContainer","bundleId","containerType","args","requireUdid","push","stdout","exec","trim","_default","exports","default"],"sources":["../../../lib/subcommands/get_app_container.js"],"sourcesContent":["const commands = {};\n\n/**\n * Get the full path to the particular application container\n * on the local file system. Note, that this subcommand throws\n * an error if bundle id of a system application is provided,\n * like 'com.apple.springboard'.\n * It is required that Simulator is in _booted_ state.\n *\n * @param {string} bundleId - Bundle identifier of an application.\n * @param {?string} containerType - Which container type to return. Possible values\n * are 'app', 'data', 'groups', '<A specific App Group container>'.\n * The default value is 'app'.\n * @return {string} Full path to the given application container on the local\n * file system.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.getAppContainer = async function getAppContainer (bundleId, containerType = null) {\n const args = [this.requireUdid('get_app_container'), bundleId];\n if (containerType) {\n args.push(containerType);\n }\n const {stdout} = await this.exec('get_app_container', {args});\n return (stdout || '').trim();\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AAmBnBA,QAAQ,CAACC,eAAe,GAAG,eAAeA,eAAeA,CAAEC,QAAQ,EAAEC,aAAa,GAAG,IAAI,EAAE;EACzF,MAAMC,IAAI,GAAG,CAAC,IAAI,CAACC,WAAW,CAAC,mBAAmB,CAAC,EAAEH,QAAQ,CAAC;EAC9D,IAAIC,aAAa,EAAE;IACjBC,IAAI,CAACE,IAAI,CAACH,aAAa,CAAC;EAC1B;EACA,MAAM;IAACI;EAAM,CAAC,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,mBAAmB,EAAE;IAACJ;EAAI,CAAC,CAAC;EAC7D,OAAO,CAACG,MAAM,IAAI,EAAE,EAAEE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAAC,IAAAC,QAAA,GAEaV,QAAQ;AAAAW,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -34,4 +34,4 @@ var _location = _interopRequireDefault(require("./location"));
34
34
  const subcommands = Object.assign({}, _addmedia.default, _appinfo.default, _boot.default, _bootstatus.default, _create.default, _delete.default, _erase.default, _get_app_container.default, _install.default, _io.default, _keychain.default, _launch.default, _list.default, _openurl.default, _pbcopy.default, _pbpaste.default, _privacy.default, _push.default, _getenv.default, _shutdown.default, _spawn.default, _terminate.default, _ui.default, _uninstall.default, _location.default);
35
35
  var _default = subcommands;
36
36
  exports.default = _default;
37
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWRkbWVkaWEiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hcHBpbmZvIiwiX2Jvb3QiLCJfYm9vdHN0YXR1cyIsIl9jcmVhdGUiLCJfZGVsZXRlIiwiX2VyYXNlIiwiX2dldF9hcHBfY29udGFpbmVyIiwiX2luc3RhbGwiLCJfaW8iLCJfa2V5Y2hhaW4iLCJfbGF1bmNoIiwiX2xpc3QiLCJfb3BlbnVybCIsIl9wYmNvcHkiLCJfcGJwYXN0ZSIsIl9wcml2YWN5IiwiX3B1c2giLCJfZ2V0ZW52IiwiX3NodXRkb3duIiwiX3NwYXduIiwiX3Rlcm1pbmF0ZSIsIl91aSIsIl91bmluc3RhbGwiLCJfbG9jYXRpb24iLCJzdWJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImFkZG1lZGlhQ29tbWFuZHMiLCJhcHBpbmZvQ29tbWFuZHMiLCJib290Q29tbWFuZHMiLCJib290c3RhdHVzQ29tbWFuZHMiLCJjcmVhdGVDb21tYW5kcyIsImRlbGV0ZUNvbW1hbmRzIiwiZXJhc2VDb21tYW5kcyIsImdldGFwcGNvbnRhaW5lckNvbW1hbmRzIiwiaW5zdGFsbENvbW1hbmRzIiwiaW9Db21tYW5kcyIsImtleWNoYWluQ29tbWFuZHMiLCJsYXVuY2hDb21tYW5kcyIsImxpc3RDb21tYW5kcyIsIm9wZW51cmxDb21tYW5kcyIsInBiY29weUNvbW1hbmRzIiwicGJwYXN0ZUNvbW1hbmRzIiwicHJpdmFjeUNvbW1hbmRzIiwicHVzaENvbW1hbmRzIiwiZW52Q29tbWFuZHMiLCJzaHV0ZG93bkNvbW1hbmRzIiwic3Bhd25Db21tYW5kcyIsInRlcm1pbmF0ZUNvbW1hbmRzIiwidWlDb21tYW5kcyIsInVuaW5zdGFsbENvbW1hbmRzIiwibG9jYXRpb25Db21tYW5kcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFkZG1lZGlhQ29tbWFuZHMgZnJvbSAnLi9hZGRtZWRpYSc7XG5pbXBvcnQgYXBwaW5mb0NvbW1hbmRzIGZyb20gJy4vYXBwaW5mbyc7XG5pbXBvcnQgYm9vdENvbW1hbmRzIGZyb20gJy4vYm9vdCc7XG5pbXBvcnQgYm9vdHN0YXR1c0NvbW1hbmRzIGZyb20gJy4vYm9vdHN0YXR1cyc7XG5pbXBvcnQgY3JlYXRlQ29tbWFuZHMgZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IGRlbGV0ZUNvbW1hbmRzIGZyb20gJy4vZGVsZXRlJztcbmltcG9ydCBlcmFzZUNvbW1hbmRzIGZyb20gJy4vZXJhc2UnO1xuaW1wb3J0IGdldGFwcGNvbnRhaW5lckNvbW1hbmRzIGZyb20gJy4vZ2V0X2FwcF9jb250YWluZXInO1xuaW1wb3J0IGluc3RhbGxDb21tYW5kcyBmcm9tICcuL2luc3RhbGwnO1xuaW1wb3J0IGlvQ29tbWFuZHMgZnJvbSAnLi9pbyc7XG5pbXBvcnQga2V5Y2hhaW5Db21tYW5kcyBmcm9tICcuL2tleWNoYWluJztcbmltcG9ydCBsYXVuY2hDb21tYW5kcyBmcm9tICcuL2xhdW5jaCc7XG5pbXBvcnQgbGlzdENvbW1hbmRzIGZyb20gJy4vbGlzdCc7XG5pbXBvcnQgb3BlbnVybENvbW1hbmRzIGZyb20gJy4vb3BlbnVybCc7XG5pbXBvcnQgcGJjb3B5Q29tbWFuZHMgZnJvbSAnLi9wYmNvcHknO1xuaW1wb3J0IHBicGFzdGVDb21tYW5kcyBmcm9tICcuL3BicGFzdGUnO1xuaW1wb3J0IHByaXZhY3lDb21tYW5kcyBmcm9tICcuL3ByaXZhY3knO1xuaW1wb3J0IHB1c2hDb21tYW5kcyBmcm9tICcuL3B1c2gnO1xuaW1wb3J0IGVudkNvbW1hbmRzIGZyb20gJy4vZ2V0ZW52JztcbmltcG9ydCBzaHV0ZG93bkNvbW1hbmRzIGZyb20gJy4vc2h1dGRvd24nO1xuaW1wb3J0IHNwYXduQ29tbWFuZHMgZnJvbSAnLi9zcGF3bic7XG5pbXBvcnQgdGVybWluYXRlQ29tbWFuZHMgZnJvbSAnLi90ZXJtaW5hdGUnO1xuaW1wb3J0IHVpQ29tbWFuZHMgZnJvbSAnLi91aSc7XG5pbXBvcnQgdW5pbnN0YWxsQ29tbWFuZHMgZnJvbSAnLi91bmluc3RhbGwnO1xuaW1wb3J0IGxvY2F0aW9uQ29tbWFuZHMgZnJvbSAnLi9sb2NhdGlvbic7XG5cbi8vIHhjcnVuIHNpbWN0bCAtLWhlbHBcbmNvbnN0IHN1YmNvbW1hbmRzID0gT2JqZWN0LmFzc2lnbih7fSxcbiAgICBhZGRtZWRpYUNvbW1hbmRzLFxuICAgIGFwcGluZm9Db21tYW5kcyxcbiAgICBib290Q29tbWFuZHMsXG4gICAgYm9vdHN0YXR1c0NvbW1hbmRzLFxuICAgIGNyZWF0ZUNvbW1hbmRzLFxuICAgIGRlbGV0ZUNvbW1hbmRzLFxuICAgIGVyYXNlQ29tbWFuZHMsXG4gICAgZ2V0YXBwY29udGFpbmVyQ29tbWFuZHMsXG4gICAgaW5zdGFsbENvbW1hbmRzLFxuICAgIGlvQ29tbWFuZHMsXG4gICAga2V5Y2hhaW5Db21tYW5kcyxcbiAgICBsYXVuY2hDb21tYW5kcyxcbiAgICBsaXN0Q29tbWFuZHMsXG4gICAgb3BlbnVybENvbW1hbmRzLFxuICAgIHBiY29weUNvbW1hbmRzLFxuICAgIHBicGFzdGVDb21tYW5kcyxcbiAgICBwcml2YWN5Q29tbWFuZHMsXG4gICAgcHVzaENvbW1hbmRzLFxuICAgIGVudkNvbW1hbmRzLFxuICAgIHNodXRkb3duQ29tbWFuZHMsXG4gICAgc3Bhd25Db21tYW5kcyxcbiAgICB0ZXJtaW5hdGVDb21tYW5kcyxcbiAgICB1aUNvbW1hbmRzLFxuICAgIHVuaW5zdGFsbENvbW1hbmRzLFxuICAgIGxvY2F0aW9uQ29tbWFuZHMsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBzdWJjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsR0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsT0FBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksS0FBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWEsUUFBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsT0FBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixRQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLEtBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBa0IsT0FBQSxHQUFBbkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFtQixTQUFBLEdBQUFwQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW9CLE1BQUEsR0FBQXJCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBcUIsVUFBQSxHQUFBdEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFzQixHQUFBLEdBQUF2QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXVCLFVBQUEsR0FBQXhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBd0IsU0FBQSxHQUFBekIsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLE1BQU15QixXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNoQ0MsaUJBQWdCLEVBQ2hCQyxnQkFBZSxFQUNmQyxhQUFZLEVBQ1pDLG1CQUFrQixFQUNsQkMsZUFBYyxFQUNkQyxlQUFjLEVBQ2RDLGNBQWEsRUFDYkMsMEJBQXVCLEVBQ3ZCQyxnQkFBZSxFQUNmQyxXQUFVLEVBQ1ZDLGlCQUFnQixFQUNoQkMsZUFBYyxFQUNkQyxhQUFZLEVBQ1pDLGdCQUFlLEVBQ2ZDLGVBQWMsRUFDZEMsZ0JBQWUsRUFDZkMsZ0JBQWUsRUFDZkMsYUFBWSxFQUNaQyxlQUFXLEVBQ1hDLGlCQUFnQixFQUNoQkMsY0FBYSxFQUNiQyxrQkFBaUIsRUFDakJDLFdBQVUsRUFDVkMsa0JBQWlCLEVBQ2pCQyxpQkFBZ0IsQ0FDbkI7QUFBQyxJQUFBQyxRQUFBLEdBRWE1QixXQUFXO0FBQUE2QixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWRkbWVkaWEiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hcHBpbmZvIiwiX2Jvb3QiLCJfYm9vdHN0YXR1cyIsIl9jcmVhdGUiLCJfZGVsZXRlIiwiX2VyYXNlIiwiX2dldF9hcHBfY29udGFpbmVyIiwiX2luc3RhbGwiLCJfaW8iLCJfa2V5Y2hhaW4iLCJfbGF1bmNoIiwiX2xpc3QiLCJfb3BlbnVybCIsIl9wYmNvcHkiLCJfcGJwYXN0ZSIsIl9wcml2YWN5IiwiX3B1c2giLCJfZ2V0ZW52IiwiX3NodXRkb3duIiwiX3NwYXduIiwiX3Rlcm1pbmF0ZSIsIl91aSIsIl91bmluc3RhbGwiLCJfbG9jYXRpb24iLCJzdWJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImFkZG1lZGlhQ29tbWFuZHMiLCJhcHBpbmZvQ29tbWFuZHMiLCJib290Q29tbWFuZHMiLCJib290c3RhdHVzQ29tbWFuZHMiLCJjcmVhdGVDb21tYW5kcyIsImRlbGV0ZUNvbW1hbmRzIiwiZXJhc2VDb21tYW5kcyIsImdldGFwcGNvbnRhaW5lckNvbW1hbmRzIiwiaW5zdGFsbENvbW1hbmRzIiwiaW9Db21tYW5kcyIsImtleWNoYWluQ29tbWFuZHMiLCJsYXVuY2hDb21tYW5kcyIsImxpc3RDb21tYW5kcyIsIm9wZW51cmxDb21tYW5kcyIsInBiY29weUNvbW1hbmRzIiwicGJwYXN0ZUNvbW1hbmRzIiwicHJpdmFjeUNvbW1hbmRzIiwicHVzaENvbW1hbmRzIiwiZW52Q29tbWFuZHMiLCJzaHV0ZG93bkNvbW1hbmRzIiwic3Bhd25Db21tYW5kcyIsInRlcm1pbmF0ZUNvbW1hbmRzIiwidWlDb21tYW5kcyIsInVuaW5zdGFsbENvbW1hbmRzIiwibG9jYXRpb25Db21tYW5kcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFkZG1lZGlhQ29tbWFuZHMgZnJvbSAnLi9hZGRtZWRpYSc7XG5pbXBvcnQgYXBwaW5mb0NvbW1hbmRzIGZyb20gJy4vYXBwaW5mbyc7XG5pbXBvcnQgYm9vdENvbW1hbmRzIGZyb20gJy4vYm9vdCc7XG5pbXBvcnQgYm9vdHN0YXR1c0NvbW1hbmRzIGZyb20gJy4vYm9vdHN0YXR1cyc7XG5pbXBvcnQgY3JlYXRlQ29tbWFuZHMgZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IGRlbGV0ZUNvbW1hbmRzIGZyb20gJy4vZGVsZXRlJztcbmltcG9ydCBlcmFzZUNvbW1hbmRzIGZyb20gJy4vZXJhc2UnO1xuaW1wb3J0IGdldGFwcGNvbnRhaW5lckNvbW1hbmRzIGZyb20gJy4vZ2V0X2FwcF9jb250YWluZXInO1xuaW1wb3J0IGluc3RhbGxDb21tYW5kcyBmcm9tICcuL2luc3RhbGwnO1xuaW1wb3J0IGlvQ29tbWFuZHMgZnJvbSAnLi9pbyc7XG5pbXBvcnQga2V5Y2hhaW5Db21tYW5kcyBmcm9tICcuL2tleWNoYWluJztcbmltcG9ydCBsYXVuY2hDb21tYW5kcyBmcm9tICcuL2xhdW5jaCc7XG5pbXBvcnQgbGlzdENvbW1hbmRzIGZyb20gJy4vbGlzdCc7XG5pbXBvcnQgb3BlbnVybENvbW1hbmRzIGZyb20gJy4vb3BlbnVybCc7XG5pbXBvcnQgcGJjb3B5Q29tbWFuZHMgZnJvbSAnLi9wYmNvcHknO1xuaW1wb3J0IHBicGFzdGVDb21tYW5kcyBmcm9tICcuL3BicGFzdGUnO1xuaW1wb3J0IHByaXZhY3lDb21tYW5kcyBmcm9tICcuL3ByaXZhY3knO1xuaW1wb3J0IHB1c2hDb21tYW5kcyBmcm9tICcuL3B1c2gnO1xuaW1wb3J0IGVudkNvbW1hbmRzIGZyb20gJy4vZ2V0ZW52JztcbmltcG9ydCBzaHV0ZG93bkNvbW1hbmRzIGZyb20gJy4vc2h1dGRvd24nO1xuaW1wb3J0IHNwYXduQ29tbWFuZHMgZnJvbSAnLi9zcGF3bic7XG5pbXBvcnQgdGVybWluYXRlQ29tbWFuZHMgZnJvbSAnLi90ZXJtaW5hdGUnO1xuaW1wb3J0IHVpQ29tbWFuZHMgZnJvbSAnLi91aSc7XG5pbXBvcnQgdW5pbnN0YWxsQ29tbWFuZHMgZnJvbSAnLi91bmluc3RhbGwnO1xuaW1wb3J0IGxvY2F0aW9uQ29tbWFuZHMgZnJvbSAnLi9sb2NhdGlvbic7XG5cbi8vIHhjcnVuIHNpbWN0bCAtLWhlbHBcbmNvbnN0IHN1YmNvbW1hbmRzID0gT2JqZWN0LmFzc2lnbih7fSxcbiAgICBhZGRtZWRpYUNvbW1hbmRzLFxuICAgIGFwcGluZm9Db21tYW5kcyxcbiAgICBib290Q29tbWFuZHMsXG4gICAgYm9vdHN0YXR1c0NvbW1hbmRzLFxuICAgIGNyZWF0ZUNvbW1hbmRzLFxuICAgIGRlbGV0ZUNvbW1hbmRzLFxuICAgIGVyYXNlQ29tbWFuZHMsXG4gICAgZ2V0YXBwY29udGFpbmVyQ29tbWFuZHMsXG4gICAgaW5zdGFsbENvbW1hbmRzLFxuICAgIGlvQ29tbWFuZHMsXG4gICAga2V5Y2hhaW5Db21tYW5kcyxcbiAgICBsYXVuY2hDb21tYW5kcyxcbiAgICBsaXN0Q29tbWFuZHMsXG4gICAgb3BlbnVybENvbW1hbmRzLFxuICAgIHBiY29weUNvbW1hbmRzLFxuICAgIHBicGFzdGVDb21tYW5kcyxcbiAgICBwcml2YWN5Q29tbWFuZHMsXG4gICAgcHVzaENvbW1hbmRzLFxuICAgIGVudkNvbW1hbmRzLFxuICAgIHNodXRkb3duQ29tbWFuZHMsXG4gICAgc3Bhd25Db21tYW5kcyxcbiAgICB0ZXJtaW5hdGVDb21tYW5kcyxcbiAgICB1aUNvbW1hbmRzLFxuICAgIHVuaW5zdGFsbENvbW1hbmRzLFxuICAgIGxvY2F0aW9uQ29tbWFuZHMsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBzdWJjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsR0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsT0FBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksS0FBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWEsUUFBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsT0FBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixRQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLEtBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBa0IsT0FBQSxHQUFBbkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFtQixTQUFBLEdBQUFwQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW9CLE1BQUEsR0FBQXJCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBcUIsVUFBQSxHQUFBdEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFzQixHQUFBLEdBQUF2QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXVCLFVBQUEsR0FBQXhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBd0IsU0FBQSxHQUFBekIsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLE1BQU15QixXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNoQ0MsaUJBQWdCLEVBQ2hCQyxnQkFBZSxFQUNmQyxhQUFZLEVBQ1pDLG1CQUFrQixFQUNsQkMsZUFBYyxFQUNkQyxlQUFjLEVBQ2RDLGNBQWEsRUFDYkMsMEJBQXVCLEVBQ3ZCQyxnQkFBZSxFQUNmQyxXQUFVLEVBQ1ZDLGlCQUFnQixFQUNoQkMsZUFBYyxFQUNkQyxhQUFZLEVBQ1pDLGdCQUFlLEVBQ2ZDLGVBQWMsRUFDZEMsZ0JBQWUsRUFDZkMsZ0JBQWUsRUFDZkMsYUFBWSxFQUNaQyxlQUFXLEVBQ1hDLGlCQUFnQixFQUNoQkMsY0FBYSxFQUNiQyxrQkFBaUIsRUFDakJDLFdBQVUsRUFDVkMsa0JBQWlCLEVBQ2pCQyxpQkFDSixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhNUIsV0FBVztBQUFBNkIsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_addmedia","_interopRequireDefault","require","_appinfo","_boot","_bootstatus","_create","_delete","_erase","_get_app_container","_install","_io","_keychain","_launch","_list","_openurl","_pbcopy","_pbpaste","_privacy","_push","_getenv","_shutdown","_spawn","_terminate","_ui","_uninstall","_location","subcommands","Object","assign","addmediaCommands","appinfoCommands","bootCommands","bootstatusCommands","createCommands","deleteCommands","eraseCommands","getappcontainerCommands","installCommands","ioCommands","keychainCommands","launchCommands","listCommands","openurlCommands","pbcopyCommands","pbpasteCommands","privacyCommands","pushCommands","envCommands","shutdownCommands","spawnCommands","terminateCommands","uiCommands","uninstallCommands","locationCommands","_default","exports","default"],"sources":["../../../lib/subcommands/index.js"],"sourcesContent":["import addmediaCommands from './addmedia';\nimport appinfoCommands from './appinfo';\nimport bootCommands from './boot';\nimport bootstatusCommands from './bootstatus';\nimport createCommands from './create';\nimport deleteCommands from './delete';\nimport eraseCommands from './erase';\nimport getappcontainerCommands from './get_app_container';\nimport installCommands from './install';\nimport ioCommands from './io';\nimport keychainCommands from './keychain';\nimport launchCommands from './launch';\nimport listCommands from './list';\nimport openurlCommands from './openurl';\nimport pbcopyCommands from './pbcopy';\nimport pbpasteCommands from './pbpaste';\nimport privacyCommands from './privacy';\nimport pushCommands from './push';\nimport envCommands from './getenv';\nimport shutdownCommands from './shutdown';\nimport spawnCommands from './spawn';\nimport terminateCommands from './terminate';\nimport uiCommands from './ui';\nimport uninstallCommands from './uninstall';\nimport locationCommands from './location';\n\n// xcrun simctl --help\nconst subcommands = Object.assign({},\n addmediaCommands,\n appinfoCommands,\n bootCommands,\n bootstatusCommands,\n createCommands,\n deleteCommands,\n eraseCommands,\n getappcontainerCommands,\n installCommands,\n ioCommands,\n keychainCommands,\n launchCommands,\n listCommands,\n openurlCommands,\n pbcopyCommands,\n pbpasteCommands,\n privacyCommands,\n pushCommands,\n envCommands,\n shutdownCommands,\n spawnCommands,\n terminateCommands,\n uiCommands,\n uninstallCommands,\n locationCommands,\n);\n\nexport default subcommands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,kBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,QAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,KAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,QAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,OAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,QAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,KAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,OAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,SAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,MAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,UAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,GAAA,GAAAvB,sBAAA,CAAAC,OAAA;AACA,IAAAuB,UAAA,GAAAxB,sBAAA,CAAAC,OAAA;AACA,IAAAwB,SAAA,GAAAzB,sBAAA,CAAAC,OAAA;AAGA,MAAMyB,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAChCC,iBAAgB,EAChBC,gBAAe,EACfC,aAAY,EACZC,mBAAkB,EAClBC,eAAc,EACdC,eAAc,EACdC,cAAa,EACbC,0BAAuB,EACvBC,gBAAe,EACfC,WAAU,EACVC,iBAAgB,EAChBC,eAAc,EACdC,aAAY,EACZC,gBAAe,EACfC,eAAc,EACdC,gBAAe,EACfC,gBAAe,EACfC,aAAY,EACZC,eAAW,EACXC,iBAAgB,EAChBC,cAAa,EACbC,kBAAiB,EACjBC,WAAU,EACVC,kBAAiB,EACjBC,iBAAgB,CACnB;AAAC,IAAAC,QAAA,GAEa5B,WAAW;AAAA6B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"index.js","names":["_addmedia","_interopRequireDefault","require","_appinfo","_boot","_bootstatus","_create","_delete","_erase","_get_app_container","_install","_io","_keychain","_launch","_list","_openurl","_pbcopy","_pbpaste","_privacy","_push","_getenv","_shutdown","_spawn","_terminate","_ui","_uninstall","_location","subcommands","Object","assign","addmediaCommands","appinfoCommands","bootCommands","bootstatusCommands","createCommands","deleteCommands","eraseCommands","getappcontainerCommands","installCommands","ioCommands","keychainCommands","launchCommands","listCommands","openurlCommands","pbcopyCommands","pbpasteCommands","privacyCommands","pushCommands","envCommands","shutdownCommands","spawnCommands","terminateCommands","uiCommands","uninstallCommands","locationCommands","_default","exports","default"],"sources":["../../../lib/subcommands/index.js"],"sourcesContent":["import addmediaCommands from './addmedia';\nimport appinfoCommands from './appinfo';\nimport bootCommands from './boot';\nimport bootstatusCommands from './bootstatus';\nimport createCommands from './create';\nimport deleteCommands from './delete';\nimport eraseCommands from './erase';\nimport getappcontainerCommands from './get_app_container';\nimport installCommands from './install';\nimport ioCommands from './io';\nimport keychainCommands from './keychain';\nimport launchCommands from './launch';\nimport listCommands from './list';\nimport openurlCommands from './openurl';\nimport pbcopyCommands from './pbcopy';\nimport pbpasteCommands from './pbpaste';\nimport privacyCommands from './privacy';\nimport pushCommands from './push';\nimport envCommands from './getenv';\nimport shutdownCommands from './shutdown';\nimport spawnCommands from './spawn';\nimport terminateCommands from './terminate';\nimport uiCommands from './ui';\nimport uninstallCommands from './uninstall';\nimport locationCommands from './location';\n\n// xcrun simctl --help\nconst subcommands = Object.assign({},\n addmediaCommands,\n appinfoCommands,\n bootCommands,\n bootstatusCommands,\n createCommands,\n deleteCommands,\n eraseCommands,\n getappcontainerCommands,\n installCommands,\n ioCommands,\n keychainCommands,\n launchCommands,\n listCommands,\n openurlCommands,\n pbcopyCommands,\n pbpasteCommands,\n privacyCommands,\n pushCommands,\n envCommands,\n shutdownCommands,\n spawnCommands,\n terminateCommands,\n uiCommands,\n uninstallCommands,\n locationCommands,\n);\n\nexport default subcommands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,kBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,QAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,KAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,QAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,OAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,QAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,KAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,OAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,SAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,MAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,UAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,GAAA,GAAAvB,sBAAA,CAAAC,OAAA;AACA,IAAAuB,UAAA,GAAAxB,sBAAA,CAAAC,OAAA;AACA,IAAAwB,SAAA,GAAAzB,sBAAA,CAAAC,OAAA;AAGA,MAAMyB,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAChCC,iBAAgB,EAChBC,gBAAe,EACfC,aAAY,EACZC,mBAAkB,EAClBC,eAAc,EACdC,eAAc,EACdC,cAAa,EACbC,0BAAuB,EACvBC,gBAAe,EACfC,WAAU,EACVC,iBAAgB,EAChBC,eAAc,EACdC,aAAY,EACZC,gBAAe,EACfC,eAAc,EACdC,gBAAe,EACfC,gBAAe,EACfC,aAAY,EACZC,eAAW,EACXC,iBAAgB,EAChBC,cAAa,EACbC,kBAAiB,EACjBC,WAAU,EACVC,kBAAiB,EACjBC,iBACJ,CAAC;AAAC,IAAAC,QAAA,GAEa5B,WAAW;AAAA6B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  require("source-map-support/register");
9
- var _rimraf = _interopRequireDefault(require("rimraf"));
9
+ var _rimraf = require("rimraf");
10
10
  var _uuid = require("uuid");
11
11
  var _path = _interopRequireDefault(require("path"));
12
12
  var _os = _interopRequireDefault(require("os"));
@@ -21,9 +21,9 @@ commands.getScreenshot = async function getScreenshot() {
21
21
  });
22
22
  return (await _promises.default.readFile(pathToScreenshotPng)).toString('base64');
23
23
  } finally {
24
- await (0, _rimraf.default)(pathToScreenshotPng);
24
+ await (0, _rimraf.rimraf)(pathToScreenshotPng);
25
25
  }
26
26
  };
27
27
  var _default = commands;
28
28
  exports.default = _default;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmltcmFmIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfdXVpZCIsIl9wYXRoIiwiX29zIiwiX3Byb21pc2VzIiwiY29tbWFuZHMiLCJnZXRTY3JlZW5zaG90IiwidWRpZCIsInJlcXVpcmVVZGlkIiwicGF0aFRvU2NyZWVuc2hvdFBuZyIsInBhdGgiLCJyZXNvbHZlIiwib3MiLCJ0bXBkaXIiLCJ1dWlkVjQiLCJleGVjIiwiYXJncyIsImZzIiwicmVhZEZpbGUiLCJ0b1N0cmluZyIsInJpbXJhZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvaW8uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJpbXJhZiBmcm9tICdyaW1yYWYnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZFY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEdldHMgYmFzZTY0IHNjcmVlbnNob3QgZm9yIGRldmljZVxuICogSXQgaXMgcmVxdWlyZWQgdGhhdCBTaW11bGF0b3IgaXMgaW4gX2Jvb3RlZF8gc3RhdGUuXG4gKlxuICogQHNpbmNlIFhjb2RlIFNESyA4LjFcbiAqIEByZXR1cm4ge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgU2ltdWxhdG9yIHNjcmVlbnNob3QuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5nZXRTY3JlZW5zaG90ID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2NyZWVuc2hvdCAoKSB7XG4gIGNvbnN0IHVkaWQgPSB0aGlzLnJlcXVpcmVVZGlkKCdpbyBzY3JlZW5zaG90Jyk7XG4gIGNvbnN0IHBhdGhUb1NjcmVlbnNob3RQbmcgPSBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksIGAke3V1aWRWNCgpfS5wbmdgKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ2lvJywge1xuICAgICAgYXJnczogW3VkaWQsICdzY3JlZW5zaG90JywgcGF0aFRvU2NyZWVuc2hvdFBuZ10sXG4gICAgfSk7XG4gICAgcmV0dXJuIChhd2FpdCBmcy5yZWFkRmlsZShwYXRoVG9TY3JlZW5zaG90UG5nKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJpbXJhZihwYXRoVG9TY3JlZW5zaG90UG5nKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsR0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTUssUUFBUSxHQUFHLENBQUMsQ0FBQztBQVluQkEsUUFBUSxDQUFDQyxhQUFhLEdBQUcsZUFBZUEsYUFBYUEsQ0FBQSxFQUFJO0VBQ3ZELE1BQU1DLElBQUksR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxlQUFlLENBQUM7RUFDOUMsTUFBTUMsbUJBQW1CLEdBQUdDLGFBQUksQ0FBQ0MsT0FBTyxDQUFDQyxXQUFFLENBQUNDLE1BQU0sRUFBRSxFQUFHLEdBQUUsSUFBQUMsUUFBTSxHQUFHLE1BQUssQ0FBQztFQUN4RSxJQUFJO0lBQ0YsTUFBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxJQUFJLEVBQUU7TUFDcEJDLElBQUksRUFBRSxDQUFDVCxJQUFJLEVBQUUsWUFBWSxFQUFFRSxtQkFBbUI7SUFDaEQsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLE1BQU1RLGlCQUFFLENBQUNDLFFBQVEsQ0FBQ1QsbUJBQW1CLENBQUMsRUFBRVUsUUFBUSxDQUFDLFFBQVEsQ0FBQztFQUNwRSxDQUFDLFNBQVM7SUFDUixNQUFNLElBQUFDLGVBQU0sRUFBQ1gsbUJBQW1CLENBQUM7RUFDbkM7QUFDRixDQUFDO0FBQUMsSUFBQVksUUFBQSxHQUVhaEIsUUFBUTtBQUFBaUIsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmltcmFmIiwicmVxdWlyZSIsIl91dWlkIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX29zIiwiX3Byb21pc2VzIiwiY29tbWFuZHMiLCJnZXRTY3JlZW5zaG90IiwidWRpZCIsInJlcXVpcmVVZGlkIiwicGF0aFRvU2NyZWVuc2hvdFBuZyIsInBhdGgiLCJyZXNvbHZlIiwib3MiLCJ0bXBkaXIiLCJ1dWlkVjQiLCJleGVjIiwiYXJncyIsImZzIiwicmVhZEZpbGUiLCJ0b1N0cmluZyIsInJpbXJhZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvaW8uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmltcmFmIH0gZnJvbSAncmltcmFmJztcbmltcG9ydCB7IHY0IGFzIHV1aWRWNCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBHZXRzIGJhc2U2NCBzY3JlZW5zaG90IGZvciBkZXZpY2VcbiAqIEl0IGlzIHJlcXVpcmVkIHRoYXQgU2ltdWxhdG9yIGlzIGluIF9ib290ZWRfIHN0YXRlLlxuICpcbiAqIEBzaW5jZSBYY29kZSBTREsgOC4xXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEJhc2U2NC1lbmNvZGVkIFNpbXVsYXRvciBzY3JlZW5zaG90LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuZ2V0U2NyZWVuc2hvdCA9IGFzeW5jIGZ1bmN0aW9uIGdldFNjcmVlbnNob3QgKCkge1xuICBjb25zdCB1ZGlkID0gdGhpcy5yZXF1aXJlVWRpZCgnaW8gc2NyZWVuc2hvdCcpO1xuICBjb25zdCBwYXRoVG9TY3JlZW5zaG90UG5nID0gcGF0aC5yZXNvbHZlKG9zLnRtcGRpcigpLCBgJHt1dWlkVjQoKX0ucG5nYCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5leGVjKCdpbycsIHtcbiAgICAgIGFyZ3M6IFt1ZGlkLCAnc2NyZWVuc2hvdCcsIHBhdGhUb1NjcmVlbnNob3RQbmddLFxuICAgIH0pO1xuICAgIHJldHVybiAoYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvU2NyZWVuc2hvdFBuZykpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCByaW1yYWYocGF0aFRvU2NyZWVuc2hvdFBuZyk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEdBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLE1BQU1NLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFZbkJBLFFBQVEsQ0FBQ0MsYUFBYSxHQUFHLGVBQWVBLGFBQWFBLENBQUEsRUFBSTtFQUN2RCxNQUFNQyxJQUFJLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUMsZUFBZSxDQUFDO0VBQzlDLE1BQU1DLG1CQUFtQixHQUFHQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBRSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFHLEdBQUUsSUFBQUMsUUFBTSxFQUFDLENBQUUsTUFBSyxDQUFDO0VBQ3hFLElBQUk7SUFDRixNQUFNLElBQUksQ0FBQ0MsSUFBSSxDQUFDLElBQUksRUFBRTtNQUNwQkMsSUFBSSxFQUFFLENBQUNULElBQUksRUFBRSxZQUFZLEVBQUVFLG1CQUFtQjtJQUNoRCxDQUFDLENBQUM7SUFDRixPQUFPLENBQUMsTUFBTVEsaUJBQUUsQ0FBQ0MsUUFBUSxDQUFDVCxtQkFBbUIsQ0FBQyxFQUFFVSxRQUFRLENBQUMsUUFBUSxDQUFDO0VBQ3BFLENBQUMsU0FBUztJQUNSLE1BQU0sSUFBQUMsY0FBTSxFQUFDWCxtQkFBbUIsQ0FBQztFQUNuQztBQUNGLENBQUM7QUFBQyxJQUFBWSxRQUFBLEdBRWFoQixRQUFRO0FBQUFpQixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","names":["_rimraf","_interopRequireDefault","require","_uuid","_path","_os","_promises","commands","getScreenshot","udid","requireUdid","pathToScreenshotPng","path","resolve","os","tmpdir","uuidV4","exec","args","fs","readFile","toString","rimraf","_default","exports","default"],"sources":["../../../lib/subcommands/io.js"],"sourcesContent":["import rimraf from 'rimraf';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport os from 'os';\nimport fs from 'fs/promises';\n\nconst commands = {};\n\n/**\n * Gets base64 screenshot for device\n * It is required that Simulator is in _booted_ state.\n *\n * @since Xcode SDK 8.1\n * @return {string} Base64-encoded Simulator screenshot.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.getScreenshot = async function getScreenshot () {\n const udid = this.requireUdid('io screenshot');\n const pathToScreenshotPng = path.resolve(os.tmpdir(), `${uuidV4()}.png`);\n try {\n await this.exec('io', {\n args: [udid, 'screenshot', pathToScreenshotPng],\n });\n return (await fs.readFile(pathToScreenshotPng)).toString('base64');\n } finally {\n await rimraf(pathToScreenshotPng);\n }\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,QAAQ,GAAG,CAAC,CAAC;AAYnBA,QAAQ,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAA,EAAI;EACvD,MAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAAC,eAAe,CAAC;EAC9C,MAAMC,mBAAmB,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,EAAE,EAAG,GAAE,IAAAC,QAAM,GAAG,MAAK,CAAC;EACxE,IAAI;IACF,MAAM,IAAI,CAACC,IAAI,CAAC,IAAI,EAAE;MACpBC,IAAI,EAAE,CAACT,IAAI,EAAE,YAAY,EAAEE,mBAAmB;IAChD,CAAC,CAAC;IACF,OAAO,CAAC,MAAMQ,iBAAE,CAACC,QAAQ,CAACT,mBAAmB,CAAC,EAAEU,QAAQ,CAAC,QAAQ,CAAC;EACpE,CAAC,SAAS;IACR,MAAM,IAAAC,eAAM,EAACX,mBAAmB,CAAC;EACnC;AACF,CAAC;AAAC,IAAAY,QAAA,GAEahB,QAAQ;AAAAiB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"io.js","names":["_rimraf","require","_uuid","_path","_interopRequireDefault","_os","_promises","commands","getScreenshot","udid","requireUdid","pathToScreenshotPng","path","resolve","os","tmpdir","uuidV4","exec","args","fs","readFile","toString","rimraf","_default","exports","default"],"sources":["../../../lib/subcommands/io.js"],"sourcesContent":["import { rimraf } from 'rimraf';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport os from 'os';\nimport fs from 'fs/promises';\n\nconst commands = {};\n\n/**\n * Gets base64 screenshot for device\n * It is required that Simulator is in _booted_ state.\n *\n * @since Xcode SDK 8.1\n * @return {string} Base64-encoded Simulator screenshot.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.getScreenshot = async function getScreenshot () {\n const udid = this.requireUdid('io screenshot');\n const pathToScreenshotPng = path.resolve(os.tmpdir(), `${uuidV4()}.png`);\n try {\n await this.exec('io', {\n args: [udid, 'screenshot', pathToScreenshotPng],\n });\n return (await fs.readFile(pathToScreenshotPng)).toString('base64');\n } finally {\n await rimraf(pathToScreenshotPng);\n }\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,GAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,SAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,MAAMM,QAAQ,GAAG,CAAC,CAAC;AAYnBA,QAAQ,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAA,EAAI;EACvD,MAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAAC,eAAe,CAAC;EAC9C,MAAMC,mBAAmB,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,CAAC,CAAC,EAAG,GAAE,IAAAC,QAAM,EAAC,CAAE,MAAK,CAAC;EACxE,IAAI;IACF,MAAM,IAAI,CAACC,IAAI,CAAC,IAAI,EAAE;MACpBC,IAAI,EAAE,CAACT,IAAI,EAAE,YAAY,EAAEE,mBAAmB;IAChD,CAAC,CAAC;IACF,OAAO,CAAC,MAAMQ,iBAAE,CAACC,QAAQ,CAACT,mBAAmB,CAAC,EAAEU,QAAQ,CAAC,QAAQ,CAAC;EACpE,CAAC,SAAS;IACR,MAAM,IAAAC,cAAM,EAACX,mBAAmB,CAAC;EACnC;AACF,CAAC;AAAC,IAAAY,QAAA,GAEahB,QAAQ;AAAAiB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -11,7 +11,7 @@ var _promises = _interopRequireDefault(require("fs/promises"));
11
11
  var _uuid = require("uuid");
12
12
  var _path = _interopRequireDefault(require("path"));
13
13
  var _lodash = _interopRequireDefault(require("lodash"));
14
- var _rimraf = _interopRequireDefault(require("rimraf"));
14
+ var _rimraf = require("rimraf");
15
15
  const commands = {};
16
16
  async function handleRawPayload(payload, onPayloadStored) {
17
17
  const filePath = _path.default.resolve(_os.default.tmpdir(), `${(0, _uuid.v4)()}.pem`);
@@ -23,7 +23,7 @@ async function handleRawPayload(payload, onPayloadStored) {
23
23
  }
24
24
  await onPayloadStored(filePath);
25
25
  } finally {
26
- await (0, _rimraf.default)(filePath);
26
+ await (0, _rimraf.rimraf)(filePath);
27
27
  }
28
28
  }
29
29
  commands.addRootCertificate = async function addRootCertificate(cert, opts = {}) {
@@ -59,4 +59,4 @@ commands.resetKeychain = async function resetKeychain() {
59
59
  };
60
60
  var _default = commands;
61
61
  exports.default = _default;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9taXNlcyIsIl91dWlkIiwiX3BhdGgiLCJfbG9kYXNoIiwiX3JpbXJhZiIsImNvbW1hbmRzIiwiaGFuZGxlUmF3UGF5bG9hZCIsInBheWxvYWQiLCJvblBheWxvYWRTdG9yZWQiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwib3MiLCJ0bXBkaXIiLCJ1dWlkVjQiLCJfIiwiaXNCdWZmZXIiLCJmcyIsIndyaXRlRmlsZSIsInJpbXJhZiIsImFkZFJvb3RDZXJ0aWZpY2F0ZSIsImNlcnQiLCJvcHRzIiwicmF3IiwiZXhlY01ldGhvZCIsImNlcnRQYXRoIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImFkZENlcnRpZmljYXRlIiwicmVzZXRLZXljaGFpbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMva2V5Y2hhaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCByaW1yYWYgZnJvbSAncmltcmFmJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmF3UGF5bG9hZCAocGF5bG9hZCwgb25QYXlsb2FkU3RvcmVkKSB7XG4gIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKG9zLnRtcGRpcigpLCBgJHt1dWlkVjQoKX0ucGVtYCk7XG4gIHRyeSB7XG4gICAgaWYgKF8uaXNCdWZmZXIocGF5bG9hZCkpIHtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgcGF5bG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgcGF5bG9hZCwgJ3V0ZjgnKTtcbiAgICB9XG4gICAgYXdhaXQgb25QYXlsb2FkU3RvcmVkKGZpbGVQYXRoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCByaW1yYWYoZmlsZVBhdGgpO1xuICB9XG59XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBDZXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSByYXcgW2ZhbHNlXSAtIHdoZXRoZXIgdGhlIGBjZXJ0YCBhcmd1bWVudFxuICogaXMgdGhlIHBhdGggdG8gdGhlIGNlcnRpZmljYXRlIG9uIHRoZSBsb2NhbCBmaWxlIHN5c3RlbSBvclxuICogYSByYXcgY2VydGlmaWNhdGUgY29udGVudFxuICovXG5cbi8qKlxuICogQWRkcyB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgdG8gdGhlIFRydXN0ZWQgUm9vdCBTdG9yZSBvbiB0aGUgc2ltdWxhdG9yXG4gKlxuICogQHNpbmNlIFhjb2RlIDExLjQgU0RLXG4gKiBAcGFyYW0ge3N0cmluZ30gY2VydCB0aGUgZnVsbCBwYXRoIHRvIGEgdmFsaWQgLmNlcnQgZmlsZSBjb250YWluaW5nXG4gKiB0aGUgY2VydGlmaWNhdGUgY29udGVudCBvciB0aGUgY2VydGlmaWNhdGUgY29udGVudCBpdHNlbGYsIGRlcGVuZGluZyBvblxuICogb3B0aW9uc1xuICogQHBhcmFtIHtDZXJ0T3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBjdXJyZW50IFNESyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNvbW1hbmRcbiAqIG9yIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBhZGRpbmcgdGhlIGNlcnRpZmljYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5hZGRSb290Q2VydGlmaWNhdGUgPSBhc3luYyBmdW5jdGlvbiBhZGRSb290Q2VydGlmaWNhdGUgKGNlcnQsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgcmF3ID0gZmFsc2UsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBleGVjTWV0aG9kID0gYXN5bmMgKGNlcnRQYXRoKSA9PiBhd2FpdCB0aGlzLmV4ZWMoJ2tleWNoYWluJywge1xuICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdrZXljaGFpbiBhZGQtcm9vdC1jZXJ0JyksICdhZGQtcm9vdC1jZXJ0JywgY2VydFBhdGhdLFxuICB9KTtcbiAgaWYgKHJhdykge1xuICAgIGF3YWl0IGhhbmRsZVJhd1BheWxvYWQoY2VydCwgZXhlY01ldGhvZCk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgZXhlY01ldGhvZChjZXJ0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGRzIHRoZSBnaXZlbiBjZXJ0aWZpY2F0ZSB0byB0aGUgS2V5Y2hhaW4gU3RvcmUgb24gdGhlIHNpbXVsYXRvclxuICpcbiAqIEBzaW5jZSBYY29kZSAxMS40IFNES1xuICogQHBhcmFtIHtzdHJpbmd9IGNlcnQgdGhlIGZ1bGwgcGF0aCB0byBhIHZhbGlkIC5jZXJ0IGZpbGUgY29udGFpbmluZ1xuICogdGhlIGNlcnRpZmljYXRlIGNvbnRlbnQgb3IgdGhlIGNlcnRpZmljYXRlIGNvbnRlbnQgaXRzZWxmLCBkZXBlbmRpbmcgb25cbiAqIG9wdGlvbnNcbiAqIEBwYXJhbSB7Q2VydE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjb21tYW5kXG4gKiBvciB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgYWRkaW5nIHRoZSBjZXJ0aWZpY2F0ZVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuYWRkQ2VydGlmaWNhdGUgPSBhc3luYyBmdW5jdGlvbiBhZGRDZXJ0aWZpY2F0ZSAoY2VydCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICByYXcgPSBmYWxzZSxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IGV4ZWNNZXRob2QgPSBhc3luYyAoY2VydFBhdGgpID0+IGF3YWl0IHRoaXMuZXhlYygna2V5Y2hhaW4nLCB7XG4gICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2tleWNoYWluIGFkZC1jZXJ0JyksICdhZGQtY2VydCcsIGNlcnRQYXRoXSxcbiAgfSk7XG4gIGlmIChyYXcpIHtcbiAgICBhd2FpdCBoYW5kbGVSYXdQYXlsb2FkKGNlcnQsIGV4ZWNNZXRob2QpO1xuICB9IGVsc2Uge1xuICAgIGF3YWl0IGV4ZWNNZXRob2QoY2VydCk7XG4gIH1cbn07XG5cbi8qKlxuICogUmVzZXRzIHRoZSBzaW11bGF0b3Iga2V5Y2hhaW5cbiAqXG4gKiBAc2luY2UgWGNvZGUgMTEuNCBTREtcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjb21tYW5kXG4gKiBvciB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcmVzZXR0aW5nIHRoZSBrZXljaGFpblxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMucmVzZXRLZXljaGFpbiA9IGFzeW5jIGZ1bmN0aW9uIHJlc2V0S2V5Y2hhaW4gKCkge1xuICBhd2FpdCB0aGlzLmV4ZWMoJ2tleWNoYWluJywge1xuICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdrZXljaGFpbiByZXNldCcpLCAncmVzZXQnXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRW5CLGVBQWVDLGdCQUFnQkEsQ0FBRUMsT0FBTyxFQUFFQyxlQUFlLEVBQUU7RUFDekQsTUFBTUMsUUFBUSxHQUFHQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBRSxDQUFDQyxNQUFNLEVBQUUsRUFBRyxHQUFFLElBQUFDLFFBQU0sR0FBRyxNQUFLLENBQUM7RUFDN0QsSUFBSTtJQUNGLElBQUlDLGVBQUMsQ0FBQ0MsUUFBUSxDQUFDVCxPQUFPLENBQUMsRUFBRTtNQUN2QixNQUFNVSxpQkFBRSxDQUFDQyxTQUFTLENBQUNULFFBQVEsRUFBRUYsT0FBTyxDQUFDO0lBQ3ZDLENBQUMsTUFBTTtNQUNMLE1BQU1VLGlCQUFFLENBQUNDLFNBQVMsQ0FBQ1QsUUFBUSxFQUFFRixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQy9DO0lBQ0EsTUFBTUMsZUFBZSxDQUFDQyxRQUFRLENBQUM7RUFDakMsQ0FBQyxTQUFTO0lBQ1IsTUFBTSxJQUFBVSxlQUFNLEVBQUNWLFFBQVEsQ0FBQztFQUN4QjtBQUNGO0FBc0JBSixRQUFRLENBQUNlLGtCQUFrQixHQUFHLGVBQWVBLGtCQUFrQkEsQ0FBRUMsSUFBSSxFQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDaEYsTUFBTTtJQUNKQyxHQUFHLEdBQUc7RUFDUixDQUFDLEdBQUdELElBQUk7RUFDUixNQUFNRSxVQUFVLEdBQUcsTUFBT0MsUUFBUSxJQUFLLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsVUFBVSxFQUFFO0lBQ2pFQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLGVBQWUsRUFBRUgsUUFBUTtFQUM5RSxDQUFDLENBQUM7RUFDRixJQUFJRixHQUFHLEVBQUU7SUFDUCxNQUFNakIsZ0JBQWdCLENBQUNlLElBQUksRUFBRUcsVUFBVSxDQUFDO0VBQzFDLENBQUMsTUFBTTtJQUNMLE1BQU1BLFVBQVUsQ0FBQ0gsSUFBSSxDQUFDO0VBQ3hCO0FBQ0YsQ0FBQztBQWNEaEIsUUFBUSxDQUFDd0IsY0FBYyxHQUFHLGVBQWVBLGNBQWNBLENBQUVSLElBQUksRUFBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ3hFLE1BQU07SUFDSkMsR0FBRyxHQUFHO0VBQ1IsQ0FBQyxHQUFHRCxJQUFJO0VBQ1IsTUFBTUUsVUFBVSxHQUFHLE1BQU9DLFFBQVEsSUFBSyxNQUFNLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsRUFBRTtJQUNqRUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsRUFBRSxVQUFVLEVBQUVILFFBQVE7RUFDcEUsQ0FBQyxDQUFDO0VBQ0YsSUFBSUYsR0FBRyxFQUFFO0lBQ1AsTUFBTWpCLGdCQUFnQixDQUFDZSxJQUFJLEVBQUVHLFVBQVUsQ0FBQztFQUMxQyxDQUFDLE1BQU07SUFDTCxNQUFNQSxVQUFVLENBQUNILElBQUksQ0FBQztFQUN4QjtBQUNGLENBQUM7QUFVRGhCLFFBQVEsQ0FBQ3lCLGFBQWEsR0FBRyxlQUFlQSxhQUFhQSxDQUFBLEVBQUk7RUFDdkQsTUFBTSxJQUFJLENBQUNKLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDMUJDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTztFQUNwRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUMsSUFBQUcsUUFBQSxHQUVhMUIsUUFBUTtBQUFBMkIsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9taXNlcyIsIl91dWlkIiwiX3BhdGgiLCJfbG9kYXNoIiwiX3JpbXJhZiIsImNvbW1hbmRzIiwiaGFuZGxlUmF3UGF5bG9hZCIsInBheWxvYWQiLCJvblBheWxvYWRTdG9yZWQiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwib3MiLCJ0bXBkaXIiLCJ1dWlkVjQiLCJfIiwiaXNCdWZmZXIiLCJmcyIsIndyaXRlRmlsZSIsInJpbXJhZiIsImFkZFJvb3RDZXJ0aWZpY2F0ZSIsImNlcnQiLCJvcHRzIiwicmF3IiwiZXhlY01ldGhvZCIsImNlcnRQYXRoIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImFkZENlcnRpZmljYXRlIiwicmVzZXRLZXljaGFpbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMva2V5Y2hhaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHJpbXJhZiB9IGZyb20gJ3JpbXJhZic7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJhd1BheWxvYWQgKHBheWxvYWQsIG9uUGF5bG9hZFN0b3JlZCkge1xuICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShvcy50bXBkaXIoKSwgYCR7dXVpZFY0KCl9LnBlbWApO1xuICB0cnkge1xuICAgIGlmIChfLmlzQnVmZmVyKHBheWxvYWQpKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIHBheWxvYWQsICd1dGY4Jyk7XG4gICAgfVxuICAgIGF3YWl0IG9uUGF5bG9hZFN0b3JlZChmaWxlUGF0aCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcmltcmFmKGZpbGVQYXRoKTtcbiAgfVxufVxuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQ2VydE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcmF3IFtmYWxzZV0gLSB3aGV0aGVyIHRoZSBgY2VydGAgYXJndW1lbnRcbiAqIGlzIHRoZSBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBvbiB0aGUgbG9jYWwgZmlsZSBzeXN0ZW0gb3JcbiAqIGEgcmF3IGNlcnRpZmljYXRlIGNvbnRlbnRcbiAqL1xuXG4vKipcbiAqIEFkZHMgdGhlIGdpdmVuIGNlcnRpZmljYXRlIHRvIHRoZSBUcnVzdGVkIFJvb3QgU3RvcmUgb24gdGhlIHNpbXVsYXRvclxuICpcbiAqIEBzaW5jZSBYY29kZSAxMS40IFNES1xuICogQHBhcmFtIHtzdHJpbmd9IGNlcnQgdGhlIGZ1bGwgcGF0aCB0byBhIHZhbGlkIC5jZXJ0IGZpbGUgY29udGFpbmluZ1xuICogdGhlIGNlcnRpZmljYXRlIGNvbnRlbnQgb3IgdGhlIGNlcnRpZmljYXRlIGNvbnRlbnQgaXRzZWxmLCBkZXBlbmRpbmcgb25cbiAqIG9wdGlvbnNcbiAqIEBwYXJhbSB7Q2VydE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjb21tYW5kXG4gKiBvciB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgYWRkaW5nIHRoZSBjZXJ0aWZpY2F0ZVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuYWRkUm9vdENlcnRpZmljYXRlID0gYXN5bmMgZnVuY3Rpb24gYWRkUm9vdENlcnRpZmljYXRlIChjZXJ0LCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHJhdyA9IGZhbHNlLFxuICB9ID0gb3B0cztcbiAgY29uc3QgZXhlY01ldGhvZCA9IGFzeW5jIChjZXJ0UGF0aCkgPT4gYXdhaXQgdGhpcy5leGVjKCdrZXljaGFpbicsIHtcbiAgICBhcmdzOiBbdGhpcy5yZXF1aXJlVWRpZCgna2V5Y2hhaW4gYWRkLXJvb3QtY2VydCcpLCAnYWRkLXJvb3QtY2VydCcsIGNlcnRQYXRoXSxcbiAgfSk7XG4gIGlmIChyYXcpIHtcbiAgICBhd2FpdCBoYW5kbGVSYXdQYXlsb2FkKGNlcnQsIGV4ZWNNZXRob2QpO1xuICB9IGVsc2Uge1xuICAgIGF3YWl0IGV4ZWNNZXRob2QoY2VydCk7XG4gIH1cbn07XG5cbi8qKlxuICogQWRkcyB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgdG8gdGhlIEtleWNoYWluIFN0b3JlIG9uIHRoZSBzaW11bGF0b3JcbiAqXG4gKiBAc2luY2UgWGNvZGUgMTEuNCBTREtcbiAqIEBwYXJhbSB7c3RyaW5nfSBjZXJ0IHRoZSBmdWxsIHBhdGggdG8gYSB2YWxpZCAuY2VydCBmaWxlIGNvbnRhaW5pbmdcbiAqIHRoZSBjZXJ0aWZpY2F0ZSBjb250ZW50IG9yIHRoZSBjZXJ0aWZpY2F0ZSBjb250ZW50IGl0c2VsZiwgZGVwZW5kaW5nIG9uXG4gKiBvcHRpb25zXG4gKiBAcGFyYW0ge0NlcnRPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGN1cnJlbnQgU0RLIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29tbWFuZFxuICogb3IgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGFkZGluZyB0aGUgY2VydGlmaWNhdGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYHVkaWRgIGluc3RhbmNlIHByb3BlcnR5IGlzIHVuc2V0XG4gKi9cbmNvbW1hbmRzLmFkZENlcnRpZmljYXRlID0gYXN5bmMgZnVuY3Rpb24gYWRkQ2VydGlmaWNhdGUgKGNlcnQsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgcmF3ID0gZmFsc2UsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBleGVjTWV0aG9kID0gYXN5bmMgKGNlcnRQYXRoKSA9PiBhd2FpdCB0aGlzLmV4ZWMoJ2tleWNoYWluJywge1xuICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdrZXljaGFpbiBhZGQtY2VydCcpLCAnYWRkLWNlcnQnLCBjZXJ0UGF0aF0sXG4gIH0pO1xuICBpZiAocmF3KSB7XG4gICAgYXdhaXQgaGFuZGxlUmF3UGF5bG9hZChjZXJ0LCBleGVjTWV0aG9kKTtcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBleGVjTWV0aG9kKGNlcnQpO1xuICB9XG59O1xuXG4vKipcbiAqIFJlc2V0cyB0aGUgc2ltdWxhdG9yIGtleWNoYWluXG4gKlxuICogQHNpbmNlIFhjb2RlIDExLjQgU0RLXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGN1cnJlbnQgU0RLIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29tbWFuZFxuICogb3IgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHJlc2V0dGluZyB0aGUga2V5Y2hhaW5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYHVkaWRgIGluc3RhbmNlIHByb3BlcnR5IGlzIHVuc2V0XG4gKi9cbmNvbW1hbmRzLnJlc2V0S2V5Y2hhaW4gPSBhc3luYyBmdW5jdGlvbiByZXNldEtleWNoYWluICgpIHtcbiAgYXdhaXQgdGhpcy5leGVjKCdrZXljaGFpbicsIHtcbiAgICBhcmdzOiBbdGhpcy5yZXF1aXJlVWRpZCgna2V5Y2hhaW4gcmVzZXQnKSwgJ3Jlc2V0J10sXG4gIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRixzQkFB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
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.js","names":["_os","_interopRequireDefault","require","_promises","_uuid","_path","_lodash","_rimraf","commands","handleRawPayload","payload","onPayloadStored","filePath","path","resolve","os","tmpdir","uuidV4","_","isBuffer","fs","writeFile","rimraf","addRootCertificate","cert","opts","raw","execMethod","certPath","exec","args","requireUdid","addCertificate","resetKeychain","_default","exports","default"],"sources":["../../../lib/subcommands/keychain.js"],"sourcesContent":["import os from 'os';\nimport fs from 'fs/promises';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport _ from 'lodash';\nimport rimraf from 'rimraf';\n\nconst commands = {};\n\nasync function handleRawPayload (payload, onPayloadStored) {\n const filePath = path.resolve(os.tmpdir(), `${uuidV4()}.pem`);\n try {\n if (_.isBuffer(payload)) {\n await fs.writeFile(filePath, payload);\n } else {\n await fs.writeFile(filePath, payload, 'utf8');\n }\n await onPayloadStored(filePath);\n } finally {\n await rimraf(filePath);\n }\n}\n\n\n/**\n * @typedef {Object} CertOptions\n * @property {boolean} raw [false] - whether the `cert` argument\n * is the path to the certificate on the local file system or\n * a raw certificate content\n */\n\n/**\n * Adds the given certificate to the Trusted Root Store on the simulator\n *\n * @since Xcode 11.4 SDK\n * @param {string} cert the full path to a valid .cert file containing\n * the certificate content or the certificate content itself, depending on\n * options\n * @param {CertOptions} opts\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while adding the certificate\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.addRootCertificate = async function addRootCertificate (cert, opts = {}) {\n const {\n raw = false,\n } = opts;\n const execMethod = async (certPath) => await this.exec('keychain', {\n args: [this.requireUdid('keychain add-root-cert'), 'add-root-cert', certPath],\n });\n if (raw) {\n await handleRawPayload(cert, execMethod);\n } else {\n await execMethod(cert);\n }\n};\n\n/**\n * Adds the given certificate to the Keychain Store on the simulator\n *\n * @since Xcode 11.4 SDK\n * @param {string} cert the full path to a valid .cert file containing\n * the certificate content or the certificate content itself, depending on\n * options\n * @param {CertOptions} opts\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while adding the certificate\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.addCertificate = async function addCertificate (cert, opts = {}) {\n const {\n raw = false,\n } = opts;\n const execMethod = async (certPath) => await this.exec('keychain', {\n args: [this.requireUdid('keychain add-cert'), 'add-cert', certPath],\n });\n if (raw) {\n await handleRawPayload(cert, execMethod);\n } else {\n await execMethod(cert);\n }\n};\n\n/**\n * Resets the simulator keychain\n *\n * @since Xcode 11.4 SDK\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while resetting the keychain\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.resetKeychain = async function resetKeychain () {\n await this.exec('keychain', {\n args: [this.requireUdid('keychain reset'), 'reset'],\n });\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,MAAMM,QAAQ,GAAG,CAAC,CAAC;AAEnB,eAAeC,gBAAgBA,CAAEC,OAAO,EAAEC,eAAe,EAAE;EACzD,MAAMC,QAAQ,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,EAAE,EAAG,GAAE,IAAAC,QAAM,GAAG,MAAK,CAAC;EAC7D,IAAI;IACF,IAAIC,eAAC,CAACC,QAAQ,CAACT,OAAO,CAAC,EAAE;MACvB,MAAMU,iBAAE,CAACC,SAAS,CAACT,QAAQ,EAAEF,OAAO,CAAC;IACvC,CAAC,MAAM;MACL,MAAMU,iBAAE,CAACC,SAAS,CAACT,QAAQ,EAAEF,OAAO,EAAE,MAAM,CAAC;IAC/C;IACA,MAAMC,eAAe,CAACC,QAAQ,CAAC;EACjC,CAAC,SAAS;IACR,MAAM,IAAAU,eAAM,EAACV,QAAQ,CAAC;EACxB;AACF;AAsBAJ,QAAQ,CAACe,kBAAkB,GAAG,eAAeA,kBAAkBA,CAAEC,IAAI,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EAChF,MAAM;IACJC,GAAG,GAAG;EACR,CAAC,GAAGD,IAAI;EACR,MAAME,UAAU,GAAG,MAAOC,QAAQ,IAAK,MAAM,IAAI,CAACC,IAAI,CAAC,UAAU,EAAE;IACjEC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,wBAAwB,CAAC,EAAE,eAAe,EAAEH,QAAQ;EAC9E,CAAC,CAAC;EACF,IAAIF,GAAG,EAAE;IACP,MAAMjB,gBAAgB,CAACe,IAAI,EAAEG,UAAU,CAAC;EAC1C,CAAC,MAAM;IACL,MAAMA,UAAU,CAACH,IAAI,CAAC;EACxB;AACF,CAAC;AAcDhB,QAAQ,CAACwB,cAAc,GAAG,eAAeA,cAAcA,CAAER,IAAI,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACxE,MAAM;IACJC,GAAG,GAAG;EACR,CAAC,GAAGD,IAAI;EACR,MAAME,UAAU,GAAG,MAAOC,QAAQ,IAAK,MAAM,IAAI,CAACC,IAAI,CAAC,UAAU,EAAE;IACjEC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAEH,QAAQ;EACpE,CAAC,CAAC;EACF,IAAIF,GAAG,EAAE;IACP,MAAMjB,gBAAgB,CAACe,IAAI,EAAEG,UAAU,CAAC;EAC1C,CAAC,MAAM;IACL,MAAMA,UAAU,CAACH,IAAI,CAAC;EACxB;AACF,CAAC;AAUDhB,QAAQ,CAACyB,aAAa,GAAG,eAAeA,aAAaA,CAAA,EAAI;EACvD,MAAM,IAAI,CAACJ,IAAI,CAAC,UAAU,EAAE;IAC1BC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO;EACpD,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAG,QAAA,GAEa1B,QAAQ;AAAA2B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"keychain.js","names":["_os","_interopRequireDefault","require","_promises","_uuid","_path","_lodash","_rimraf","commands","handleRawPayload","payload","onPayloadStored","filePath","path","resolve","os","tmpdir","uuidV4","_","isBuffer","fs","writeFile","rimraf","addRootCertificate","cert","opts","raw","execMethod","certPath","exec","args","requireUdid","addCertificate","resetKeychain","_default","exports","default"],"sources":["../../../lib/subcommands/keychain.js"],"sourcesContent":["import os from 'os';\nimport fs from 'fs/promises';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport _ from 'lodash';\nimport { rimraf } from 'rimraf';\n\nconst commands = {};\n\nasync function handleRawPayload (payload, onPayloadStored) {\n const filePath = path.resolve(os.tmpdir(), `${uuidV4()}.pem`);\n try {\n if (_.isBuffer(payload)) {\n await fs.writeFile(filePath, payload);\n } else {\n await fs.writeFile(filePath, payload, 'utf8');\n }\n await onPayloadStored(filePath);\n } finally {\n await rimraf(filePath);\n }\n}\n\n\n/**\n * @typedef {Object} CertOptions\n * @property {boolean} raw [false] - whether the `cert` argument\n * is the path to the certificate on the local file system or\n * a raw certificate content\n */\n\n/**\n * Adds the given certificate to the Trusted Root Store on the simulator\n *\n * @since Xcode 11.4 SDK\n * @param {string} cert the full path to a valid .cert file containing\n * the certificate content or the certificate content itself, depending on\n * options\n * @param {CertOptions} opts\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while adding the certificate\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.addRootCertificate = async function addRootCertificate (cert, opts = {}) {\n const {\n raw = false,\n } = opts;\n const execMethod = async (certPath) => await this.exec('keychain', {\n args: [this.requireUdid('keychain add-root-cert'), 'add-root-cert', certPath],\n });\n if (raw) {\n await handleRawPayload(cert, execMethod);\n } else {\n await execMethod(cert);\n }\n};\n\n/**\n * Adds the given certificate to the Keychain Store on the simulator\n *\n * @since Xcode 11.4 SDK\n * @param {string} cert the full path to a valid .cert file containing\n * the certificate content or the certificate content itself, depending on\n * options\n * @param {CertOptions} opts\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while adding the certificate\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.addCertificate = async function addCertificate (cert, opts = {}) {\n const {\n raw = false,\n } = opts;\n const execMethod = async (certPath) => await this.exec('keychain', {\n args: [this.requireUdid('keychain add-cert'), 'add-cert', certPath],\n });\n if (raw) {\n await handleRawPayload(cert, execMethod);\n } else {\n await execMethod(cert);\n }\n};\n\n/**\n * Resets the simulator keychain\n *\n * @since Xcode 11.4 SDK\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while resetting the keychain\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.resetKeychain = async function resetKeychain () {\n await this.exec('keychain', {\n args: [this.requireUdid('keychain reset'), 'reset'],\n });\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA,MAAMM,QAAQ,GAAG,CAAC,CAAC;AAEnB,eAAeC,gBAAgBA,CAAEC,OAAO,EAAEC,eAAe,EAAE;EACzD,MAAMC,QAAQ,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,CAAC,CAAC,EAAG,GAAE,IAAAC,QAAM,EAAC,CAAE,MAAK,CAAC;EAC7D,IAAI;IACF,IAAIC,eAAC,CAACC,QAAQ,CAACT,OAAO,CAAC,EAAE;MACvB,MAAMU,iBAAE,CAACC,SAAS,CAACT,QAAQ,EAAEF,OAAO,CAAC;IACvC,CAAC,MAAM;MACL,MAAMU,iBAAE,CAACC,SAAS,CAACT,QAAQ,EAAEF,OAAO,EAAE,MAAM,CAAC;IAC/C;IACA,MAAMC,eAAe,CAACC,QAAQ,CAAC;EACjC,CAAC,SAAS;IACR,MAAM,IAAAU,cAAM,EAACV,QAAQ,CAAC;EACxB;AACF;AAsBAJ,QAAQ,CAACe,kBAAkB,GAAG,eAAeA,kBAAkBA,CAAEC,IAAI,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EAChF,MAAM;IACJC,GAAG,GAAG;EACR,CAAC,GAAGD,IAAI;EACR,MAAME,UAAU,GAAG,MAAOC,QAAQ,IAAK,MAAM,IAAI,CAACC,IAAI,CAAC,UAAU,EAAE;IACjEC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,wBAAwB,CAAC,EAAE,eAAe,EAAEH,QAAQ;EAC9E,CAAC,CAAC;EACF,IAAIF,GAAG,EAAE;IACP,MAAMjB,gBAAgB,CAACe,IAAI,EAAEG,UAAU,CAAC;EAC1C,CAAC,MAAM;IACL,MAAMA,UAAU,CAACH,IAAI,CAAC;EACxB;AACF,CAAC;AAcDhB,QAAQ,CAACwB,cAAc,GAAG,eAAeA,cAAcA,CAAER,IAAI,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACxE,MAAM;IACJC,GAAG,GAAG;EACR,CAAC,GAAGD,IAAI;EACR,MAAME,UAAU,GAAG,MAAOC,QAAQ,IAAK,MAAM,IAAI,CAACC,IAAI,CAAC,UAAU,EAAE;IACjEC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAEH,QAAQ;EACpE,CAAC,CAAC;EACF,IAAIF,GAAG,EAAE;IACP,MAAMjB,gBAAgB,CAACe,IAAI,EAAEG,UAAU,CAAC;EAC1C,CAAC,MAAM;IACL,MAAMA,UAAU,CAACH,IAAI,CAAC;EACxB;AACF,CAAC;AAUDhB,QAAQ,CAACyB,aAAa,GAAG,eAAeA,aAAaA,CAAA,EAAI;EACvD,MAAM,IAAI,CAACJ,IAAI,CAAC,UAAU,EAAE;IAC1BC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO;EACpD,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAG,QAAA,GAEa1B,QAAQ;AAAA2B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -154,4 +154,4 @@ commands.list = async function list() {
154
154
  };
155
155
  var _default = commands;
156
156
  exports.default = _default;
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVscGVycyIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjb21tYW5kcyIsImdldERldmljZXNCeVBhcnNpbmciLCJwbGF0Zm9ybSIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwiZGV2aWNlU2VjdGlvblJlIiwiXyIsImlzRW1wdHkiLCJSZWdFeHAiLCJlc2NhcGVSZWdFeHAiLCJtYXRjaGVzIiwibWF0Y2giLCJwdXNoIiwiRXJyb3IiLCJsaW5lUmUiLCJkZXZpY2VzIiwic2RrIiwibGluZSIsInNwbGl0Iiwic2xpY2UiLCJpbmNsdWRlcyIsImxpbmVNYXRjaCIsIm5hbWUiLCJ1ZGlkIiwic3RhdGUiLCJnZXREZXZpY2VzIiwiZm9yU2RrIiwidmVyc2lvbk1hdGNoUmUiLCJzZGtOYW1lIiwiZW50cmllcyIsInRvUGFpcnMiLCJKU09OIiwicGFyc2UiLCJyZXBsYWNlIiwiU0lNX1JVTlRJTUVfTkFNRSIsInZlcnNpb25NYXRjaCIsImZpbHRlciIsImVsIiwiaXNVbmRlZmluZWQiLCJpc0F2YWlsYWJsZSIsIm1hcCIsImF2YWlsYWJpbGl0eSIsImVyciIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0YWNrIiwiZXJyTXNnIiwiYXZhaWxhYmxlU0RLcyIsImtleXMiLCJsZW5ndGgiLCJqb2luIiwiZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24iLCJwbGF0Zm9ybVZlcnNpb24iLCJ2ZXJzaW9uIiwiaWRlbnRpZmllciIsInJ1bnRpbWVzIiwibm9ybWFsaXplVmVyc2lvbiIsInRvTG93ZXJDYXNlIiwic3RhcnRzV2l0aCIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24iLCJydW50aW1lUmUiLCJpZ24iLCJnZXREZXZpY2VUeXBlcyIsImRldmljZVR5cGVzIiwidHJpbSIsImRldmljZXR5cGVzIiwidHlwZSIsIm1lc3NhZ2UiLCJsaXN0IiwiZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlSW5mb1xuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdWRpZCAtIFRoZSBkZXZpY2UgVURJRC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdGF0ZSAtIFRoZSBjdXJyZW50IFNpbXVsYXRvciBzdGF0ZSwgZm9yIGV4YW1wbGUgJ2Jvb3RlZCcgb3IgJ3NodXRkb3duJy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZGsgLSBUaGUgU0RLIHZlcnNpb24sIGZvciBleGFtcGxlICcxMC4zJy5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIG1hcHBpbmcuIEVhY2gga2V5IGlzIHBsYXRmb3JtIHZlcnNpb24sXG4gKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgYW5cbiAqICAgICAgICAgICAgICAgICAgYXJyYXkgb2YgdGhlIG1hdGNoaW5nIHtAbGluayBEZXZpY2VJbmZvfSBpbnN0YW5jZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKi9cbmNvbW1hbmRzLmdldERldmljZXNCeVBhcnNpbmcgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VzQnlQYXJzaW5nIChwbGF0Zm9ybSkge1xuICAvLyBnZXQgdGhlIGxpc3Qgb2YgZGV2aWNlc1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICBhcmdzOiBbJ2RldmljZXMnXSxcbiAgfSk7XG5cbiAgLy8gZXhwZWN0IHRvIGdldCBhIGxpc3RpbmcgbGlrZVxuICAvLyAtLSBpT1MgOC4xIC0tXG4gIC8vICAgICBpUGhvbmUgNHMgKDNDQTZFN0RELTIyMEUtNDVFNS1CNzE2LTFFOTkyQjNBNDI5QykgKFNodXRkb3duKVxuICAvLyAgICAgLi4uXG4gIC8vIC0tIGlPUyA4LjIgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gc28sIGdldCB0aGUgYC0tIGlPUyBYLlggLS1gIGxpbmUgdG8gZmluZCB0aGUgc2RrIChYLlgpXG4gIC8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgbGlzdGluZyBpbiBvcmRlciB0byBsYXRlciBmaW5kIHRoZSBkZXZpY2VzXG4gIGNvbnN0IGRldmljZVNlY3Rpb25SZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICA/IG5ldyBSZWdFeHAoYFxcXFwtXFxcXC1cXFxccysoXFxcXFMrKVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKVxuICAgIDogbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyR7Xy5lc2NhcGVSZWdFeHAocGxhdGZvcm0pfVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKTtcbiAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICBsZXQgbWF0Y2g7XG4gIC8vIG1ha2UgYW4gZW50cnkgZm9yIGVhY2ggc2RrIHZlcnNpb25cbiAgd2hpbGUgKChtYXRjaCA9IGRldmljZVNlY3Rpb25SZS5leGVjKHN0ZG91dCkpKSB7XG4gICAgbWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KG1hdGNoZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZXZpY2Ugc2VjdGlvbicpO1xuICB9XG5cbiAgY29uc3QgbGluZVJlID0gLyhbXlxcc10uKykgXFwoKFxcdystLitcXHcrKVxcKSBcXCgoXFx3K1xccz9cXHcrKVxcKS87IC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvbEc3bUs2LzNcbiAgLy8gZ2V0IGFsbCB0aGUgZGV2aWNlcyBmb3IgZWFjaCBzZGtcbiAgY29uc3QgZGV2aWNlcyA9IHt9O1xuICBmb3IgKG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICBjb25zdCBzZGsgPSBwbGF0Zm9ybSA/IG1hdGNoWzFdIDogbWF0Y2hbMl07XG4gICAgZGV2aWNlc1tzZGtdID0gZGV2aWNlc1tzZGtdIHx8IFtdO1xuICAgIC8vIHNwbGl0IHRoZSBmdWxsIG1hdGNoIGludG8gbGluZXMgYW5kIHJlbW92ZSB0aGUgZmlyc3RcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbWF0Y2hbMF0uc3BsaXQoJ1xcbicpLnNsaWNlKDEpKSB7XG4gICAgICBpZiAobGluZS5pbmNsdWRlcygnKHVuYXZhaWxhYmxlLCAnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGEgbGluZSBpcyBzb21ldGhpbmcgbGlrZVxuICAgICAgLy8gICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgICAgIC8vIHJldHJpZXZlOlxuICAgICAgLy8gICBpUGhvbmUgNHNcbiAgICAgIC8vICAgQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFXG4gICAgICAvLyAgIFNodXRkb3duXG4gICAgICBjb25zdCBsaW5lTWF0Y2ggPSBsaW5lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbGluZU1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG1hdGNoIGxpbmU6ICR7bGluZX1gKTtcbiAgICAgIH1cbiAgICAgIC8vIHNhdmUgdGhlIHdob2xlIHRoaW5nIGFzIGFiIG9iamVjdCBpbiB0aGUgbGlzdCBmb3IgdGhpcyBzZGtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKHtcbiAgICAgICAgbmFtZTogbGluZU1hdGNoWzFdLFxuICAgICAgICB1ZGlkOiBsaW5lTWF0Y2hbMl0sXG4gICAgICAgIHN0YXRlOiBsaW5lTWF0Y2hbM10sXG4gICAgICAgIHNkayxcbiAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IG1hdGNoWzFdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZXZpY2VzO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbGlzdCBvZiBleGlzdGluZyBTaW11bGF0b3IgZGV2aWNlcyB0byByZXByZXNlbnRcbiAqIGl0IGFzIGNvbnZlbmllbnQgbWFwcGluZyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGZvclNkayAtIFRoZSBzZGsgdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHdoaWNoIHRoZSBkZXZpY2VzIGxpc3Qgc2hvdWxkIGJlIHBhcnNlZCxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R8QXJyYXk8RGV2aWNlSW5mbz59IElmIF9mb3JTZGtfIGlzIHNldCB0aGVuIHRoZSBsaXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGRldmljZXMgZm9yIHRoZSBwYXJ0aWN1bGFyIHBsYXRmb3JtIHZlcnNpb24uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSB0aGUgc2FtZSByZXN1bHQgYXMgZm9yIHtAbGluayBnZXREZXZpY2VzQnlQYXJzaW5nfVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbi5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZSBvciBpZiBubyBtYXRjaGluZ1xuICogICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24gaXMgZm91bmQgaW4gdGhlIHN5c3RlbS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXMgKGZvclNkaywgcGxhdGZvcm0pIHtcbiAgbGV0IGRldmljZXMgPSB7fTtcbiAgdHJ5IHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICAgIGFyZ3M6IFsnZGV2aWNlcycsICctaiddLFxuICAgIH0pO1xuICAgIC8qIEpTT04gc2hvdWxkIGJlXG4gICAgICoge1xuICAgICAqICAgXCJkZXZpY2VzXCIgOiB7XG4gICAgICogICAgIFwiaU9TIDxzZGs+XCIgOiBbIC8vIG9yXG4gICAgICogICAgIFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtPHNkaz4gOiBbXG4gICAgICogICAgICAge1xuICAgICAqICAgICAgICAgXCJzdGF0ZVwiIDogXCJCb290ZWRcIixcbiAgICAgKiAgICAgICAgIFwiYXZhaWxhYmlsaXR5XCIgOiBcIihhdmFpbGFibGUpXCIsXG4gICAgICogICAgICAgICBcImlzQXZhaWxhYmxlXCIgOiB0cnVlLFxuICAgICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA2XCIsXG4gICAgICogICAgICAgICBcInVkaWRcIiA6IFwiNzVFMzQxNDAtMThFOC00RDFBLTlGNDUtQUFDNzM1REY3NURGXCJcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIF1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgY29uc3QgdmVyc2lvbk1hdGNoUmUgPSBfLmlzRW1wdHkocGxhdGZvcm0pXG4gICAgICA/IG5ldyBSZWdFeHAoYF4oW15cXFxccy1dKylbXFxcXHMtXShcXFxcUyspYCwgJ2knKVxuICAgICAgOiBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9W1xcXFxzLV0oXFxcXFMrKWAsICdpJyk7XG4gICAgZm9yIChsZXQgW3Nka05hbWUsIGVudHJpZXNdIG9mIF8udG9QYWlycyhKU09OLnBhcnNlKHN0ZG91dCkuZGV2aWNlcykpIHtcbiAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGEgbG9uZ2VyIG5hbWUsIHNvIHJlbW92ZSBpdFxuICAgICAgc2RrTmFtZSA9IHNka05hbWUucmVwbGFjZShTSU1fUlVOVElNRV9OQU1FLCAnJyk7XG4gICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSB2ZXJzaW9uTWF0Y2hSZS5leGVjKHNka05hbWUpO1xuICAgICAgaWYgKCF2ZXJzaW9uTWF0Y2gpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBzZGsgY2FuIGhhdmUgZGFzaGVzIChgMTItMmApIG9yIGRvdHMgKGAxMi4xYClcbiAgICAgIGNvbnN0IHNkayA9IChwbGF0Zm9ybSA/IHZlcnNpb25NYXRjaFsxXSA6IHZlcnNpb25NYXRjaFsyXSkucmVwbGFjZSgnLScsICcuJyk7XG4gICAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgICBkZXZpY2VzW3Nka10ucHVzaCguLi5lbnRyaWVzLmZpbHRlcigoZWwpID0+IF8uaXNVbmRlZmluZWQoZWwuaXNBdmFpbGFibGUpIHx8IGVsLmlzQXZhaWxhYmxlKVxuICAgICAgICAubWFwKChlbCkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBlbC5hdmFpbGFiaWxpdHk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNkayxcbiAgICAgICAgICAgIC4uLmVsLFxuICAgICAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IHZlcnNpb25NYXRjaFsxXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgVW5hYmxlIHRvIGdldCBKU09OIGRldmljZSBsaXN0OiAke2Vyci5zdGFja31gKTtcbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgJ0ZhbGxpbmcgYmFjayB0byBtYW51YWwgcGFyc2luZycpO1xuICAgIGRldmljZXMgPSBhd2FpdCB0aGlzLmdldERldmljZXNCeVBhcnNpbmcocGxhdGZvcm0pO1xuICB9XG5cbiAgaWYgKCFmb3JTZGspIHtcbiAgICByZXR1cm4gZGV2aWNlcztcbiAgfVxuICAvLyBpZiBhIGBmb3JTZGtgIHdhcyBwYXNzZWQgaW4sIHJldHVybiBvbmx5IHRoZSBjb3JyZXNwb25kaW5nIGxpc3RcbiAgaWYgKGRldmljZXNbZm9yU2RrXSkge1xuICAgIHJldHVybiBkZXZpY2VzW2ZvclNka107XG4gIH1cblxuICBsZXQgZXJyTXNnID0gYCcke2ZvclNka30nIGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IG9mIHNpbWN0bCBTREtzLmA7XG4gIGNvbnN0IGF2YWlsYWJsZVNES3MgPSBfLmtleXMoZGV2aWNlcyk7XG4gIGVyck1zZyArPSBhdmFpbGFibGVTREtzLmxlbmd0aFxuICAgID8gYCBPbmx5IHRoZSBmb2xsb3dpbmcgU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtOiAke2F2YWlsYWJsZVNES3Muam9pbignLCAnKX1gXG4gICAgOiBgIE5vIFNpbXVsYXRvciBTREsgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbS4gUGxlYXNlIGluc3RhbGwgc29tZSB2aWEgWGNvZGUgcHJlZmVyZW5jZXMuYDtcbiAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbiB1c2luZyAtLWpzb24gZmxhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIChcbiAgcGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSA9ICdpT1MnKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsncnVudGltZXMnLCAnLS1qc29uJ10sXG4gIH0pO1xuICBmb3IgKGNvbnN0IHt2ZXJzaW9uLCBpZGVudGlmaWVyLCBuYW1lfSBvZiBKU09OLnBhcnNlKHN0ZG91dCkucnVudGltZXMpIHtcbiAgICBpZiAobm9ybWFsaXplVmVyc2lvbih2ZXJzaW9uKSA9PT0gbm9ybWFsaXplVmVyc2lvbihwbGF0Zm9ybVZlcnNpb24pXG4gICAgICAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwbGF0Zm9ybS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHVzZSAtLWpzb24gZmxhZyB0byBwYXJzZSBwbGF0Zm9ybSB2ZXJzaW9uYCk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gVGhlIHBsYXRmb3JtIHZlcnNpb24gbmFtZSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvcnJlc3BvbmRpbmcgcnVudGltZSBuYW1lIGZvciB0aGUgZ2l2ZW5cbiAqICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbi5cbiAqL1xuY29tbWFuZHMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgLy8gVHJ5IHdpdGggcGFyc2luZ1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydydW50aW1lcyddLFxuICAgIH0pO1xuICAgIC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvVXlralFaLzFcbiAgICBjb25zdCBydW50aW1lUmUgPVxuICAgICAgbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxkK1xcXFwuXFxcXGQrKVxcXFxzK1xcXFwoKFxcXFxkK1xcXFwuXFxcXGQrXFxcXC4qXFxcXGQqKWAsICdpJyk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIHN0ZG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcnVudGltZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gPT09IHBsYXRmb3JtVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMl07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgLy8gaWYgbm90aGluZyB3YXMgZm91bmQsIHBhc3MgcGxhdGZvcm0gdmVyc2lvbiBiYWNrXG4gIHJldHVybiBwbGF0Zm9ybVZlcnNpb247XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBkZXZpY2UgdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IFhjb2RlIGluc3RhbGxhdGlvblxuICpcbiAqIEByZXR1cm4ge0FycmF5PHN0cmluZz59IExpc3Qgb2YgdGhlIHR5cGVzIG9mIGRldmljZXMgYXZhaWxhYmxlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIGNvbW1hbmQgZmFpbHNcbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlVHlwZXMgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUeXBlcyAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNldHlwZXMnLCAnLWonXSxcbiAgfSk7XG4gIC8qXG4gICAqIEpTT04gd2lsbCBiZSBsaWtlOlxuICAgKiAgIHtcbiAgICogICAgIFwiZGV2aWNldHlwZXNcIiA6IFtcbiAgICogICAgICAge1xuICAgKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAgICogICAgICAgICBcImlkZW50aWZpZXJcIiA6IFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtNHNcIlxuICAgKiAgICAgICB9LFxuICAgKiAgICAgICAuLi5cbiAgICogICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZVR5cGVzID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICByZXR1cm4gZGV2aWNlVHlwZXMuZGV2aWNldHlwZXMubWFwKCh0eXBlKSA9PiB0eXBlLm5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBnZXQgbGlzdCBvZiBkZXZpY2UgdHlwZXM6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdWxsIGxpc3Qgb2YgcnVudGltZXMsIGRldmljZXR5cGVzLCBkZXZpY2VzIGFuZCBwYWlycyBhcyBPYmplY3RcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nIGRldmljZSB0eXBlcywgcnVudGltZXMgZGV2aWNlcyBhbmQgcGFpcnMuXG4gKiBUaGUgcmVzdWx0aW5nIEpTT04gd2lsbCBiZSBsaWtlOlxuICogICB7XG4gKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDRzXCIsXG4gKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIF0sXG4gKiAgICAgXCJydW50aW1lc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcInZlcnNpb25cIiA6ICcxMy4wJyxcbiAqICAgICAgICAgXCJidW5kbGVQYXRoXCIgOiAnL0FwcGxpY2F0aW9ucy9YY29kZTExYmV0YTQuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZScsXG4gKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gKiAgICAgICAgIFwibmFtZVwiIDogJ2lPUyAxMy4wJyxcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCcsXG4gKiAgICAgICAgIFwiYnVpbGR2ZXJzaW9uXCIgOiAnMTdBNTUzNGQnXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIH0sXG4gKiAgICAgXCJkZXZpY2VzXCIgOlxuICogICAgICAge1xuICogICAgICAgICAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCc6IFsgW09iamVjdF0sIFtPYmplY3RdIF0gfSxcbiAqICAgICAgICAgLi4uXG4gKiAgICAgICB9LFxuICogICAgIFwicGFpcnNcIiA6IHt9IH1cbiAqXG4gKiAgIH1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5saXN0ID0gYXN5bmMgZnVuY3Rpb24gbGlzdCAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnLWonXSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnRyaW0oKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBzaW1jdGwgbGlzdDogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUE0QyxTQUFBSSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBRix3QkFBQU0sR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLEdBQUEsRUFBQVcsR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWCxHQUFBLENBQUFXLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFGLEdBQUEsTUFBQUcsS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWhCLEdBQUEsRUFBQU0sTUFBQSxZQUFBQSxNQUFBO0FBRzVDLE1BQU1XLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFxQm5CQSxRQUFRLENBQUNDLG1CQUFtQixHQUFHLGVBQWVBLG1CQUFtQkEsQ0FBRUMsUUFBUSxFQUFFO0VBRTNFLE1BQU07SUFBQ0M7RUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxNQUFNLEVBQUU7SUFDdkNDLElBQUksRUFBRSxDQUFDLFNBQVM7RUFDbEIsQ0FBQyxDQUFDO0VBV0YsTUFBTUMsZUFBZSxHQUFHQyxlQUFDLENBQUNDLE9BQU8sQ0FBQ04sUUFBUSxDQUFDLEdBQ3ZDLElBQUlPLE1BQU0sQ0FBRSxvREFBbUQsRUFBRSxLQUFLLENBQUMsR0FDdkUsSUFBSUEsTUFBTSxDQUFFLGFBQVlGLGVBQUMsQ0FBQ0csWUFBWSxDQUFDUixRQUFRLENBQUUsb0NBQW1DLEVBQUUsS0FBSyxDQUFDO0VBQ2hHLE1BQU1TLE9BQU8sR0FBRyxFQUFFO0VBQ2xCLElBQUlDLEtBQUs7RUFFVCxPQUFRQSxLQUFLLEdBQUdOLGVBQWUsQ0FBQ0YsSUFBSSxDQUFDRCxNQUFNLENBQUMsRUFBRztJQUM3Q1EsT0FBTyxDQUFDRSxJQUFJLENBQUNELEtBQUssQ0FBQztFQUNyQjtFQUNBLElBQUlMLGVBQUMsQ0FBQ0MsT0FBTyxDQUFDRyxPQUFPLENBQUMsRUFBRTtJQUN0QixNQUFNLElBQUlHLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztFQUNsRDtFQUVBLE1BQU1DLE1BQU0sR0FBRywyQ0FBMkM7RUFFMUQsTUFBTUMsT0FBTyxHQUFHLENBQUMsQ0FBQztFQUNsQixLQUFLSixLQUFLLElBQUlELE9BQU8sRUFBRTtJQUNyQixNQUFNTSxHQUFHLEdBQUdmLFFBQVEsR0FBR1UsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFDSSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxHQUFHRCxPQUFPLENBQUNDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7SUFFakMsS0FBSyxNQUFNQyxJQUFJLElBQUlOLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ08sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDaEQsSUFBSUYsSUFBSSxDQUFDRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUNuQztNQUNGO01BT0EsTUFBTUMsU0FBUyxHQUFHUCxNQUFNLENBQUNYLElBQUksQ0FBQ2MsSUFBSSxDQUFDO01BQ25DLElBQUksQ0FBQ0ksU0FBUyxFQUFFO1FBQ2QsTUFBTSxJQUFJUixLQUFLLENBQUUseUJBQXdCSSxJQUFLLEVBQUMsQ0FBQztNQUNsRDtNQUVBRixPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixJQUFJLENBQUM7UUFDaEJVLElBQUksRUFBRUQsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsQkUsSUFBSSxFQUFFRixTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xCRyxLQUFLLEVBQUVILFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkJMLEdBQUc7UUFDSGYsUUFBUSxFQUFFQSxRQUFRLElBQUlVLEtBQUssQ0FBQyxDQUFDO01BQy9CLENBQUMsQ0FBQztJQUNKO0VBQ0Y7RUFDQSxPQUFPSSxPQUFPO0FBQ2hCLENBQUM7QUFrQkRoQixRQUFRLENBQUMwQixVQUFVLEdBQUcsZUFBZUEsVUFBVUEsQ0FBRUMsTUFBTSxFQUFFekIsUUFBUSxFQUFFO0VBQ2pFLElBQUljLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFDaEIsSUFBSTtJQUNGLE1BQU07TUFBQ2I7SUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxNQUFNLEVBQUU7TUFDdkNDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJO0lBQ3hCLENBQUMsQ0FBQztJQWlCRixNQUFNdUIsY0FBYyxHQUFHckIsZUFBQyxDQUFDQyxPQUFPLENBQUNOLFFBQVEsQ0FBQyxHQUN0QyxJQUFJTyxNQUFNLENBQUUseUJBQXdCLEVBQUUsR0FBRyxDQUFDLEdBQzFDLElBQUlBLE1BQU0sQ0FBRSxJQUFHRixlQUFDLENBQUNHLFlBQVksQ0FBQ1IsUUFBUSxDQUFFLGNBQWEsRUFBRSxHQUFHLENBQUM7SUFDL0QsS0FBSyxJQUFJLENBQUMyQixPQUFPLEVBQUVDLE9BQU8sQ0FBQyxJQUFJdkIsZUFBQyxDQUFDd0IsT0FBTyxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQzlCLE1BQU0sQ0FBQyxDQUFDYSxPQUFPLENBQUMsRUFBRTtNQUVwRWEsT0FBTyxHQUFHQSxPQUFPLENBQUNLLE9BQU8sQ0FBQ0MseUJBQWdCLEVBQUUsRUFBRSxDQUFDO01BQy9DLE1BQU1DLFlBQVksR0FBR1IsY0FBYyxDQUFDeEIsSUFBSSxDQUFDeUIsT0FBTyxDQUFDO01BQ2pELElBQUksQ0FBQ08sWUFBWSxFQUFFO1FBQ2pCO01BQ0Y7TUFHQSxNQUFNbkIsR0FBRyxHQUFHLENBQUNmLFFBQVEsR0FBR2tDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBR0EsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFRixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUM1RWxCLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLEdBQUdELE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLElBQUksRUFBRTtNQUNqQ0QsT0FBTyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0osSUFBSSxDQUFDLEdBQUdpQixPQUFPLENBQUNPLE1BQU0sQ0FBRUMsRUFBRSxJQUFLL0IsZUFBQyxDQUFDZ0MsV0FBVyxDQUFDRCxFQUFFLENBQUNFLFdBQVcsQ0FBQyxJQUFJRixFQUFFLENBQUNFLFdBQVcsQ0FBQyxDQUN6RkMsR0FBRyxDQUFFSCxFQUFFLElBQUs7UUFDWCxPQUFPQSxFQUFFLENBQUNJLFlBQVk7UUFDdEIsT0FBTztVQUNMekIsR0FBRztVQUNILEdBQUdxQixFQUFFO1VBQ0xwQyxRQUFRLEVBQUVBLFFBQVEsSUFBSWtDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7TUFDSCxDQUFDLENBQUMsQ0FDSDtJQUNIO0VBQ0YsQ0FBQyxDQUFDLE9BQU9PLEdBQUcsRUFBRTtJQUNaQyxlQUFHLENBQUNDLEtBQUssQ0FBQ0Msa0JBQVUsRUFBRyxtQ0FBa0NILEdBQUcsQ0FBQ0ksS0FBTSxFQUFDLENBQUM7SUFDckVILGVBQUcsQ0FBQ0MsS0FBSyxDQUFDQyxrQkFBVSxFQUFFLGdDQUFnQyxDQUFDO0lBQ3ZEOUIsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDZixtQkFBbUIsQ0FBQ0MsUUFBUSxDQUFDO0VBQ3BEO0VBRUEsSUFBSSxDQUFDeUIsTUFBTSxFQUFFO0lBQ1gsT0FBT1gsT0FBTztFQUNoQjtFQUVBLElBQUlBLE9BQU8sQ0FBQ1csTUFBTSxDQUFDLEVBQUU7SUFDbkIsT0FBT1gsT0FBTyxDQUFDVyxNQUFNLENBQUM7RUFDeEI7RUFFQSxJQUFJcUIsTUFBTSxHQUFJLElBQUdyQixNQUFPLDhDQUE2QztFQUNyRSxNQUFNc0IsYUFBYSxHQUFHMUMsZUFBQyxDQUFDMkMsSUFBSSxDQUFDbEMsT0FBTyxDQUFDO0VBQ3JDZ0MsTUFBTSxJQUFJQyxhQUFhLENBQUNFLE1BQU0sR0FDekIsNEVBQTJFRixhQUFhLENBQUNHLElBQUksQ0FBQyxJQUFJLENBQUUsRUFBQyxHQUNyRyxxR0FBb0c7RUFDekcsTUFBTSxJQUFJdEMsS0FBSyxDQUFDa0MsTUFBTSxDQUFDO0FBQ3pCLENBQUM7QUFXRGhELFFBQVEsQ0FBQ3FELG1DQUFtQyxHQUFHLGVBQWVBLG1DQUFtQ0EsQ0FDL0ZDLGVBQWUsRUFBRXBELFFBQVEsR0FBRyxLQUFLLEVBQUU7RUFDbkMsTUFBTTtJQUFDQztFQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtJQUN2Q0MsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVE7RUFDN0IsQ0FBQyxDQUFDO0VBQ0YsS0FBSyxNQUFNO0lBQUNrRCxPQUFPO0lBQUVDLFVBQVU7SUFBRWpDO0VBQUksQ0FBQyxJQUFJUyxJQUFJLENBQUNDLEtBQUssQ0FBQzlCLE1BQU0sQ0FBQyxDQUFDc0QsUUFBUSxFQUFFO0lBQ3JFLElBQUksSUFBQUMseUJBQWdCLEVBQUNILE9BQU8sQ0FBQyxLQUFLLElBQUFHLHlCQUFnQixFQUFDSixlQUFlLENBQUMsSUFDOUQvQixJQUFJLENBQUNvQyxXQUFXLEVBQUUsQ0FBQ0MsVUFBVSxDQUFDMUQsUUFBUSxDQUFDeUQsV0FBVyxFQUFFLENBQUMsRUFBRTtNQUMxRCxPQUFPSCxVQUFVO0lBQ25CO0VBQ0Y7RUFDQSxNQUFNLElBQUkxQyxLQUFLLENBQUUscURBQW9ELENBQUM7QUFDeEUsQ0FBQztBQVdEZCxRQUFRLENBQUM2RCw0QkFBNEIsR0FBRyxlQUFlQSw0QkFBNEJBLENBQ2pGUCxlQUFlLEVBQUVwRCxRQUFRLEdBQUcsS0FBSyxFQUFFO0VBRW5DLElBQUk7SUFDRixNQUFNO01BQUNDO0lBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsTUFBTSxFQUFFO01BQ3ZDQyxJQUFJLEVBQUUsQ0FBQyxVQUFVO0lBQ25CLENBQUMsQ0FBQztJQUVGLE1BQU15RCxTQUFTLEdBQ2IsSUFBSXJELE1BQU0sQ0FBRSxHQUFFRixlQUFDLENBQUNHLFlBQVksQ0FBQ1IsUUFBUSxDQUFFLCtDQUE4QyxFQUFFLEdBQUcsQ0FBQztJQUM3RixLQUFLLE1BQU1nQixJQUFJLElBQUlmLE1BQU0sQ0FBQ2dCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtNQUNyQyxNQUFNUCxLQUFLLEdBQUdrRCxTQUFTLENBQUMxRCxJQUFJLENBQUNjLElBQUksQ0FBQztNQUNsQyxJQUFJTixLQUFLLElBQUlBLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSzBDLGVBQWUsRUFBRTtRQUN6QyxPQUFPMUMsS0FBSyxDQUFDLENBQUMsQ0FBQztNQUNqQjtJQUNGO0VBQ0YsQ0FBQyxDQUFDLE9BQU9tRCxHQUFHLEVBQUUsQ0FBQztFQUdmLE9BQU9ULGVBQWU7QUFDeEIsQ0FBQztBQVFEdEQsUUFBUSxDQUFDZ0UsY0FBYyxHQUFHLGVBQWVBLGNBQWNBLENBQUEsRUFBSTtFQUN6RCxNQUFNO0lBQUM3RDtFQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtJQUN2Q0MsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUk7RUFDNUIsQ0FBQyxDQUFDO0VBWUYsSUFBSTtJQUNGLE1BQU00RCxXQUFXLEdBQUdqQyxJQUFJLENBQUNDLEtBQUssQ0FBQzlCLE1BQU0sQ0FBQytELElBQUksRUFBRSxDQUFDO0lBQzdDLE9BQU9ELFdBQVcsQ0FBQ0UsV0FBVyxDQUFDMUIsR0FBRyxDQUFFMkIsSUFBSSxJQUFLQSxJQUFJLENBQUM3QyxJQUFJLENBQUM7RUFDekQsQ0FBQyxDQUFDLE9BQU9vQixHQUFHLEVBQUU7SUFDWixNQUFNLElBQUk3QixLQUFLLENBQUUsdUNBQXNDNkIsR0FBRyxDQUFDMEIsT0FBUSxFQUFDLENBQUM7RUFDdkU7QUFDRixDQUFDO0FBb0NEckUsUUFBUSxDQUFDc0UsSUFBSSxHQUFHLGVBQWVBLElBQUlBLENBQUEsRUFBSTtFQUNyQyxNQUFNO0lBQUNuRTtFQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtJQUN2Q0MsSUFBSSxFQUFFLENBQUMsSUFBSTtFQUNiLENBQUMsQ0FBQztFQUNGLElBQUk7SUFDRixPQUFPMkIsSUFBSSxDQUFDQyxLQUFLLENBQUM5QixNQUFNLENBQUMrRCxJQUFJLEVBQUUsQ0FBQztFQUNsQyxDQUFDLENBQUMsT0FBT0ssQ0FBQyxFQUFFO0lBQ1YsTUFBTSxJQUFJekQsS0FBSyxDQUFFLGdDQUErQnlELENBQUMsQ0FBQ0YsT0FBUSxFQUFDLENBQUM7RUFDOUQ7QUFDRixDQUFDO0FBQUMsSUFBQUcsUUFBQSxHQUVheEUsUUFBUTtBQUFBeUUsT0FBQSxDQUFBeEYsT0FBQSxHQUFBdUYsUUFBQSJ9
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVscGVycyIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjb21tYW5kcyIsImdldERldmljZXNCeVBhcnNpbmciLCJwbGF0Zm9ybSIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwiZGV2aWNlU2VjdGlvblJlIiwiXyIsImlzRW1wdHkiLCJSZWdFeHAiLCJlc2NhcGVSZWdFeHAiLCJtYXRjaGVzIiwibWF0Y2giLCJwdXNoIiwiRXJyb3IiLCJsaW5lUmUiLCJkZXZpY2VzIiwic2RrIiwibGluZSIsInNwbGl0Iiwic2xpY2UiLCJpbmNsdWRlcyIsImxpbmVNYXRjaCIsIm5hbWUiLCJ1ZGlkIiwic3RhdGUiLCJnZXREZXZpY2VzIiwiZm9yU2RrIiwidmVyc2lvbk1hdGNoUmUiLCJzZGtOYW1lIiwiZW50cmllcyIsInRvUGFpcnMiLCJKU09OIiwicGFyc2UiLCJyZXBsYWNlIiwiU0lNX1JVTlRJTUVfTkFNRSIsInZlcnNpb25NYXRjaCIsImZpbHRlciIsImVsIiwiaXNVbmRlZmluZWQiLCJpc0F2YWlsYWJsZSIsIm1hcCIsImF2YWlsYWJpbGl0eSIsImVyciIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0YWNrIiwiZXJyTXNnIiwiYXZhaWxhYmxlU0RLcyIsImtleXMiLCJsZW5ndGgiLCJqb2luIiwiZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24iLCJwbGF0Zm9ybVZlcnNpb24iLCJ2ZXJzaW9uIiwiaWRlbnRpZmllciIsInJ1bnRpbWVzIiwibm9ybWFsaXplVmVyc2lvbiIsInRvTG93ZXJDYXNlIiwic3RhcnRzV2l0aCIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24iLCJydW50aW1lUmUiLCJpZ24iLCJnZXREZXZpY2VUeXBlcyIsImRldmljZVR5cGVzIiwidHJpbSIsImRldmljZXR5cGVzIiwidHlwZSIsIm1lc3NhZ2UiLCJsaXN0IiwiZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlSW5mb1xuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdWRpZCAtIFRoZSBkZXZpY2UgVURJRC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdGF0ZSAtIFRoZSBjdXJyZW50IFNpbXVsYXRvciBzdGF0ZSwgZm9yIGV4YW1wbGUgJ2Jvb3RlZCcgb3IgJ3NodXRkb3duJy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZGsgLSBUaGUgU0RLIHZlcnNpb24sIGZvciBleGFtcGxlICcxMC4zJy5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIG1hcHBpbmcuIEVhY2gga2V5IGlzIHBsYXRmb3JtIHZlcnNpb24sXG4gKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgYW5cbiAqICAgICAgICAgICAgICAgICAgYXJyYXkgb2YgdGhlIG1hdGNoaW5nIHtAbGluayBEZXZpY2VJbmZvfSBpbnN0YW5jZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKi9cbmNvbW1hbmRzLmdldERldmljZXNCeVBhcnNpbmcgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VzQnlQYXJzaW5nIChwbGF0Zm9ybSkge1xuICAvLyBnZXQgdGhlIGxpc3Qgb2YgZGV2aWNlc1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICBhcmdzOiBbJ2RldmljZXMnXSxcbiAgfSk7XG5cbiAgLy8gZXhwZWN0IHRvIGdldCBhIGxpc3RpbmcgbGlrZVxuICAvLyAtLSBpT1MgOC4xIC0tXG4gIC8vICAgICBpUGhvbmUgNHMgKDNDQTZFN0RELTIyMEUtNDVFNS1CNzE2LTFFOTkyQjNBNDI5QykgKFNodXRkb3duKVxuICAvLyAgICAgLi4uXG4gIC8vIC0tIGlPUyA4LjIgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gc28sIGdldCB0aGUgYC0tIGlPUyBYLlggLS1gIGxpbmUgdG8gZmluZCB0aGUgc2RrIChYLlgpXG4gIC8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgbGlzdGluZyBpbiBvcmRlciB0byBsYXRlciBmaW5kIHRoZSBkZXZpY2VzXG4gIGNvbnN0IGRldmljZVNlY3Rpb25SZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICA/IG5ldyBSZWdFeHAoYFxcXFwtXFxcXC1cXFxccysoXFxcXFMrKVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKVxuICAgIDogbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyR7Xy5lc2NhcGVSZWdFeHAocGxhdGZvcm0pfVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKTtcbiAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICBsZXQgbWF0Y2g7XG4gIC8vIG1ha2UgYW4gZW50cnkgZm9yIGVhY2ggc2RrIHZlcnNpb25cbiAgd2hpbGUgKChtYXRjaCA9IGRldmljZVNlY3Rpb25SZS5leGVjKHN0ZG91dCkpKSB7XG4gICAgbWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KG1hdGNoZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZXZpY2Ugc2VjdGlvbicpO1xuICB9XG5cbiAgY29uc3QgbGluZVJlID0gLyhbXlxcc10uKykgXFwoKFxcdystLitcXHcrKVxcKSBcXCgoXFx3K1xccz9cXHcrKVxcKS87IC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvbEc3bUs2LzNcbiAgLy8gZ2V0IGFsbCB0aGUgZGV2aWNlcyBmb3IgZWFjaCBzZGtcbiAgY29uc3QgZGV2aWNlcyA9IHt9O1xuICBmb3IgKG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICBjb25zdCBzZGsgPSBwbGF0Zm9ybSA/IG1hdGNoWzFdIDogbWF0Y2hbMl07XG4gICAgZGV2aWNlc1tzZGtdID0gZGV2aWNlc1tzZGtdIHx8IFtdO1xuICAgIC8vIHNwbGl0IHRoZSBmdWxsIG1hdGNoIGludG8gbGluZXMgYW5kIHJlbW92ZSB0aGUgZmlyc3RcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbWF0Y2hbMF0uc3BsaXQoJ1xcbicpLnNsaWNlKDEpKSB7XG4gICAgICBpZiAobGluZS5pbmNsdWRlcygnKHVuYXZhaWxhYmxlLCAnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGEgbGluZSBpcyBzb21ldGhpbmcgbGlrZVxuICAgICAgLy8gICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgICAgIC8vIHJldHJpZXZlOlxuICAgICAgLy8gICBpUGhvbmUgNHNcbiAgICAgIC8vICAgQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFXG4gICAgICAvLyAgIFNodXRkb3duXG4gICAgICBjb25zdCBsaW5lTWF0Y2ggPSBsaW5lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbGluZU1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG1hdGNoIGxpbmU6ICR7bGluZX1gKTtcbiAgICAgIH1cbiAgICAgIC8vIHNhdmUgdGhlIHdob2xlIHRoaW5nIGFzIGFiIG9iamVjdCBpbiB0aGUgbGlzdCBmb3IgdGhpcyBzZGtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKHtcbiAgICAgICAgbmFtZTogbGluZU1hdGNoWzFdLFxuICAgICAgICB1ZGlkOiBsaW5lTWF0Y2hbMl0sXG4gICAgICAgIHN0YXRlOiBsaW5lTWF0Y2hbM10sXG4gICAgICAgIHNkayxcbiAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IG1hdGNoWzFdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZXZpY2VzO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbGlzdCBvZiBleGlzdGluZyBTaW11bGF0b3IgZGV2aWNlcyB0byByZXByZXNlbnRcbiAqIGl0IGFzIGNvbnZlbmllbnQgbWFwcGluZyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGZvclNkayAtIFRoZSBzZGsgdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHdoaWNoIHRoZSBkZXZpY2VzIGxpc3Qgc2hvdWxkIGJlIHBhcnNlZCxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R8QXJyYXk8RGV2aWNlSW5mbz59IElmIF9mb3JTZGtfIGlzIHNldCB0aGVuIHRoZSBsaXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGRldmljZXMgZm9yIHRoZSBwYXJ0aWN1bGFyIHBsYXRmb3JtIHZlcnNpb24uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSB0aGUgc2FtZSByZXN1bHQgYXMgZm9yIHtAbGluayBnZXREZXZpY2VzQnlQYXJzaW5nfVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbi5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZSBvciBpZiBubyBtYXRjaGluZ1xuICogICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24gaXMgZm91bmQgaW4gdGhlIHN5c3RlbS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXMgKGZvclNkaywgcGxhdGZvcm0pIHtcbiAgbGV0IGRldmljZXMgPSB7fTtcbiAgdHJ5IHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICAgIGFyZ3M6IFsnZGV2aWNlcycsICctaiddLFxuICAgIH0pO1xuICAgIC8qIEpTT04gc2hvdWxkIGJlXG4gICAgICoge1xuICAgICAqICAgXCJkZXZpY2VzXCIgOiB7XG4gICAgICogICAgIFwiaU9TIDxzZGs+XCIgOiBbIC8vIG9yXG4gICAgICogICAgIFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtPHNkaz4gOiBbXG4gICAgICogICAgICAge1xuICAgICAqICAgICAgICAgXCJzdGF0ZVwiIDogXCJCb290ZWRcIixcbiAgICAgKiAgICAgICAgIFwiYXZhaWxhYmlsaXR5XCIgOiBcIihhdmFpbGFibGUpXCIsXG4gICAgICogICAgICAgICBcImlzQXZhaWxhYmxlXCIgOiB0cnVlLFxuICAgICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA2XCIsXG4gICAgICogICAgICAgICBcInVkaWRcIiA6IFwiNzVFMzQxNDAtMThFOC00RDFBLTlGNDUtQUFDNzM1REY3NURGXCJcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIF1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgY29uc3QgdmVyc2lvbk1hdGNoUmUgPSBfLmlzRW1wdHkocGxhdGZvcm0pXG4gICAgICA/IG5ldyBSZWdFeHAoYF4oW15cXFxccy1dKylbXFxcXHMtXShcXFxcUyspYCwgJ2knKVxuICAgICAgOiBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9W1xcXFxzLV0oXFxcXFMrKWAsICdpJyk7XG4gICAgZm9yIChsZXQgW3Nka05hbWUsIGVudHJpZXNdIG9mIF8udG9QYWlycyhKU09OLnBhcnNlKHN0ZG91dCkuZGV2aWNlcykpIHtcbiAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGEgbG9uZ2VyIG5hbWUsIHNvIHJlbW92ZSBpdFxuICAgICAgc2RrTmFtZSA9IHNka05hbWUucmVwbGFjZShTSU1fUlVOVElNRV9OQU1FLCAnJyk7XG4gICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSB2ZXJzaW9uTWF0Y2hSZS5leGVjKHNka05hbWUpO1xuICAgICAgaWYgKCF2ZXJzaW9uTWF0Y2gpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBzZGsgY2FuIGhhdmUgZGFzaGVzIChgMTItMmApIG9yIGRvdHMgKGAxMi4xYClcbiAgICAgIGNvbnN0IHNkayA9IChwbGF0Zm9ybSA/IHZlcnNpb25NYXRjaFsxXSA6IHZlcnNpb25NYXRjaFsyXSkucmVwbGFjZSgnLScsICcuJyk7XG4gICAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgICBkZXZpY2VzW3Nka10ucHVzaCguLi5lbnRyaWVzLmZpbHRlcigoZWwpID0+IF8uaXNVbmRlZmluZWQoZWwuaXNBdmFpbGFibGUpIHx8IGVsLmlzQXZhaWxhYmxlKVxuICAgICAgICAubWFwKChlbCkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBlbC5hdmFpbGFiaWxpdHk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNkayxcbiAgICAgICAgICAgIC4uLmVsLFxuICAgICAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IHZlcnNpb25NYXRjaFsxXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgVW5hYmxlIHRvIGdldCBKU09OIGRldmljZSBsaXN0OiAke2Vyci5zdGFja31gKTtcbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgJ0ZhbGxpbmcgYmFjayB0byBtYW51YWwgcGFyc2luZycpO1xuICAgIGRldmljZXMgPSBhd2FpdCB0aGlzLmdldERldmljZXNCeVBhcnNpbmcocGxhdGZvcm0pO1xuICB9XG5cbiAgaWYgKCFmb3JTZGspIHtcbiAgICByZXR1cm4gZGV2aWNlcztcbiAgfVxuICAvLyBpZiBhIGBmb3JTZGtgIHdhcyBwYXNzZWQgaW4sIHJldHVybiBvbmx5IHRoZSBjb3JyZXNwb25kaW5nIGxpc3RcbiAgaWYgKGRldmljZXNbZm9yU2RrXSkge1xuICAgIHJldHVybiBkZXZpY2VzW2ZvclNka107XG4gIH1cblxuICBsZXQgZXJyTXNnID0gYCcke2ZvclNka30nIGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IG9mIHNpbWN0bCBTREtzLmA7XG4gIGNvbnN0IGF2YWlsYWJsZVNES3MgPSBfLmtleXMoZGV2aWNlcyk7XG4gIGVyck1zZyArPSBhdmFpbGFibGVTREtzLmxlbmd0aFxuICAgID8gYCBPbmx5IHRoZSBmb2xsb3dpbmcgU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtOiAke2F2YWlsYWJsZVNES3Muam9pbignLCAnKX1gXG4gICAgOiBgIE5vIFNpbXVsYXRvciBTREsgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbS4gUGxlYXNlIGluc3RhbGwgc29tZSB2aWEgWGNvZGUgcHJlZmVyZW5jZXMuYDtcbiAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbiB1c2luZyAtLWpzb24gZmxhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIChcbiAgcGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSA9ICdpT1MnKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsncnVudGltZXMnLCAnLS1qc29uJ10sXG4gIH0pO1xuICBmb3IgKGNvbnN0IHt2ZXJzaW9uLCBpZGVudGlmaWVyLCBuYW1lfSBvZiBKU09OLnBhcnNlKHN0ZG91dCkucnVudGltZXMpIHtcbiAgICBpZiAobm9ybWFsaXplVmVyc2lvbih2ZXJzaW9uKSA9PT0gbm9ybWFsaXplVmVyc2lvbihwbGF0Zm9ybVZlcnNpb24pXG4gICAgICAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwbGF0Zm9ybS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHVzZSAtLWpzb24gZmxhZyB0byBwYXJzZSBwbGF0Zm9ybSB2ZXJzaW9uYCk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gVGhlIHBsYXRmb3JtIHZlcnNpb24gbmFtZSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvcnJlc3BvbmRpbmcgcnVudGltZSBuYW1lIGZvciB0aGUgZ2l2ZW5cbiAqICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbi5cbiAqL1xuY29tbWFuZHMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgLy8gVHJ5IHdpdGggcGFyc2luZ1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydydW50aW1lcyddLFxuICAgIH0pO1xuICAgIC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvVXlralFaLzFcbiAgICBjb25zdCBydW50aW1lUmUgPVxuICAgICAgbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxkK1xcXFwuXFxcXGQrKVxcXFxzK1xcXFwoKFxcXFxkK1xcXFwuXFxcXGQrXFxcXC4qXFxcXGQqKWAsICdpJyk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIHN0ZG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcnVudGltZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gPT09IHBsYXRmb3JtVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMl07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgLy8gaWYgbm90aGluZyB3YXMgZm91bmQsIHBhc3MgcGxhdGZvcm0gdmVyc2lvbiBiYWNrXG4gIHJldHVybiBwbGF0Zm9ybVZlcnNpb247XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBkZXZpY2UgdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IFhjb2RlIGluc3RhbGxhdGlvblxuICpcbiAqIEByZXR1cm4ge0FycmF5PHN0cmluZz59IExpc3Qgb2YgdGhlIHR5cGVzIG9mIGRldmljZXMgYXZhaWxhYmxlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIGNvbW1hbmQgZmFpbHNcbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlVHlwZXMgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUeXBlcyAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNldHlwZXMnLCAnLWonXSxcbiAgfSk7XG4gIC8qXG4gICAqIEpTT04gd2lsbCBiZSBsaWtlOlxuICAgKiAgIHtcbiAgICogICAgIFwiZGV2aWNldHlwZXNcIiA6IFtcbiAgICogICAgICAge1xuICAgKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAgICogICAgICAgICBcImlkZW50aWZpZXJcIiA6IFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtNHNcIlxuICAgKiAgICAgICB9LFxuICAgKiAgICAgICAuLi5cbiAgICogICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZVR5cGVzID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICByZXR1cm4gZGV2aWNlVHlwZXMuZGV2aWNldHlwZXMubWFwKCh0eXBlKSA9PiB0eXBlLm5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBnZXQgbGlzdCBvZiBkZXZpY2UgdHlwZXM6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdWxsIGxpc3Qgb2YgcnVudGltZXMsIGRldmljZXR5cGVzLCBkZXZpY2VzIGFuZCBwYWlycyBhcyBPYmplY3RcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nIGRldmljZSB0eXBlcywgcnVudGltZXMgZGV2aWNlcyBhbmQgcGFpcnMuXG4gKiBUaGUgcmVzdWx0aW5nIEpTT04gd2lsbCBiZSBsaWtlOlxuICogICB7XG4gKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDRzXCIsXG4gKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIF0sXG4gKiAgICAgXCJydW50aW1lc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcInZlcnNpb25cIiA6ICcxMy4wJyxcbiAqICAgICAgICAgXCJidW5kbGVQYXRoXCIgOiAnL0FwcGxpY2F0aW9ucy9YY29kZTExYmV0YTQuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZScsXG4gKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gKiAgICAgICAgIFwibmFtZVwiIDogJ2lPUyAxMy4wJyxcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCcsXG4gKiAgICAgICAgIFwiYnVpbGR2ZXJzaW9uXCIgOiAnMTdBNTUzNGQnXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIH0sXG4gKiAgICAgXCJkZXZpY2VzXCIgOlxuICogICAgICAge1xuICogICAgICAgICAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCc6IFsgW09iamVjdF0sIFtPYmplY3RdIF0gfSxcbiAqICAgICAgICAgLi4uXG4gKiAgICAgICB9LFxuICogICAgIFwicGFpcnNcIiA6IHt9IH1cbiAqXG4gKiAgIH1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5saXN0ID0gYXN5bmMgZnVuY3Rpb24gbGlzdCAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnLWonXSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnRyaW0oKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBzaW1jdGwgbGlzdDogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUE0QyxTQUFBSSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBRix3QkFBQU0sR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtB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
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","names":["_lodash","_interopRequireDefault","require","_helpers","_logger","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","commands","getDevicesByParsing","platform","stdout","exec","args","deviceSectionRe","_","isEmpty","RegExp","escapeRegExp","matches","match","push","Error","lineRe","devices","sdk","line","split","slice","includes","lineMatch","name","udid","state","getDevices","forSdk","versionMatchRe","sdkName","entries","toPairs","JSON","parse","replace","SIM_RUNTIME_NAME","versionMatch","filter","el","isUndefined","isAvailable","map","availability","err","log","debug","LOG_PREFIX","stack","errMsg","availableSDKs","keys","length","join","getRuntimeForPlatformVersionViaJson","platformVersion","version","identifier","runtimes","normalizeVersion","toLowerCase","startsWith","getRuntimeForPlatformVersion","runtimeRe","ign","getDeviceTypes","deviceTypes","trim","devicetypes","type","message","list","e","_default","exports"],"sources":["../../../lib/subcommands/list.js"],"sourcesContent":["import _ from 'lodash';\nimport { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';\nimport log, { LOG_PREFIX } from '../logger';\n\n\nconst commands = {};\n\n/**\n * @typedef {Object} DeviceInfo\n * @property {string} name - The device name.\n * @property {string} udid - The device UDID.\n * @property {string} state - The current Simulator state, for example 'booted' or 'shutdown'.\n * @property {string} sdk - The SDK version, for example '10.3'.\n */\n\n/**\n * Parse the list of existing Simulator devices to represent\n * it as convenient mapping.\n *\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {Object} The resulting mapping. Each key is platform version,\n * for example '10.3' and the corresponding value is an\n * array of the matching {@link DeviceInfo} instances.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n */\ncommands.getDevicesByParsing = async function getDevicesByParsing (platform) {\n // get the list of devices\n const {stdout} = await this.exec('list', {\n args: ['devices'],\n });\n\n // expect to get a listing like\n // -- iOS 8.1 --\n // iPhone 4s (3CA6E7DD-220E-45E5-B716-1E992B3A429C) (Shutdown)\n // ...\n // -- iOS 8.2 --\n // iPhone 4s (A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E) (Shutdown)\n // ...\n // so, get the `-- iOS X.X --` line to find the sdk (X.X)\n // and the rest of the listing in order to later find the devices\n const deviceSectionRe = _.isEmpty(platform)\n ? new RegExp(`\\\\-\\\\-\\\\s+(\\\\S+)\\\\s+(\\\\S+)\\\\s+\\\\-\\\\-(\\\\n\\\\s{4}.+)*`, 'mgi')\n : new RegExp(`\\\\-\\\\-\\\\s+${_.escapeRegExp(platform)}\\\\s+(\\\\S+)\\\\s+\\\\-\\\\-(\\\\n\\\\s{4}.+)*`, 'mgi');\n const matches = [];\n let match;\n // make an entry for each sdk version\n while ((match = deviceSectionRe.exec(stdout))) {\n matches.push(match);\n }\n if (_.isEmpty(matches)) {\n throw new Error('Could not find device section');\n }\n\n const lineRe = /([^\\s].+) \\((\\w+-.+\\w+)\\) \\((\\w+\\s?\\w+)\\)/; // https://regex101.com/r/lG7mK6/3\n // get all the devices for each sdk\n const devices = {};\n for (match of matches) {\n const sdk = platform ? match[1] : match[2];\n devices[sdk] = devices[sdk] || [];\n // split the full match into lines and remove the first\n for (const line of match[0].split('\\n').slice(1)) {\n if (line.includes('(unavailable, ')) {\n continue;\n }\n // a line is something like\n // iPhone 4s (A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E) (Shutdown)\n // retrieve:\n // iPhone 4s\n // A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E\n // Shutdown\n const lineMatch = lineRe.exec(line);\n if (!lineMatch) {\n throw new Error(`Could not match line: ${line}`);\n }\n // save the whole thing as ab object in the list for this sdk\n devices[sdk].push({\n name: lineMatch[1],\n udid: lineMatch[2],\n state: lineMatch[3],\n sdk,\n platform: platform || match[1],\n });\n }\n }\n return devices;\n};\n\n/**\n * Parse the list of existing Simulator devices to represent\n * it as convenient mapping for the particular platform version.\n *\n * @param {?string} forSdk - The sdk version,\n * for which the devices list should be parsed,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {Object|Array<DeviceInfo>} If _forSdk_ is set then the list\n * of devices for the particular platform version.\n * Otherwise the same result as for {@link getDevicesByParsing}\n * function.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code or if no matching\n * platform version is found in the system.\n */\ncommands.getDevices = async function getDevices (forSdk, platform) {\n let devices = {};\n try {\n const {stdout} = await this.exec('list', {\n args: ['devices', '-j'],\n });\n /* JSON should be\n * {\n * \"devices\" : {\n * \"iOS <sdk>\" : [ // or\n * \"com.apple.CoreSimulator.SimRuntime.iOS-<sdk> : [\n * {\n * \"state\" : \"Booted\",\n * \"availability\" : \"(available)\",\n * \"isAvailable\" : true,\n * \"name\" : \"iPhone 6\",\n * \"udid\" : \"75E34140-18E8-4D1A-9F45-AAC735DF75DF\"\n * }\n * ]\n * }\n * }\n */\n const versionMatchRe = _.isEmpty(platform)\n ? new RegExp(`^([^\\\\s-]+)[\\\\s-](\\\\S+)`, 'i')\n : new RegExp(`^${_.escapeRegExp(platform)}[\\\\s-](\\\\S+)`, 'i');\n for (let [sdkName, entries] of _.toPairs(JSON.parse(stdout).devices)) {\n // there could be a longer name, so remove it\n sdkName = sdkName.replace(SIM_RUNTIME_NAME, '');\n const versionMatch = versionMatchRe.exec(sdkName);\n if (!versionMatch) {\n continue;\n }\n\n // the sdk can have dashes (`12-2`) or dots (`12.1`)\n const sdk = (platform ? versionMatch[1] : versionMatch[2]).replace('-', '.');\n devices[sdk] = devices[sdk] || [];\n devices[sdk].push(...entries.filter((el) => _.isUndefined(el.isAvailable) || el.isAvailable)\n .map((el) => {\n delete el.availability;\n return {\n sdk,\n ...el,\n platform: platform || versionMatch[1],\n };\n })\n );\n }\n } catch (err) {\n log.debug(LOG_PREFIX, `Unable to get JSON device list: ${err.stack}`);\n log.debug(LOG_PREFIX, 'Falling back to manual parsing');\n devices = await this.getDevicesByParsing(platform);\n }\n\n if (!forSdk) {\n return devices;\n }\n // if a `forSdk` was passed in, return only the corresponding list\n if (devices[forSdk]) {\n return devices[forSdk];\n }\n\n let errMsg = `'${forSdk}' does not exist in the list of simctl SDKs.`;\n const availableSDKs = _.keys(devices);\n errMsg += availableSDKs.length\n ? ` Only the following Simulator SDK versions are available on your system: ${availableSDKs.join(', ')}`\n : ` No Simulator SDK versions are available on your system. Please install some via Xcode preferences.`;\n throw new Error(errMsg);\n};\n\n/**\n * Get the runtime for the particular platform version using --json flag\n *\n * @param {string} platformVersion - The platform version name,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {string} The corresponding runtime name for the given\n * platform version.\n */\ncommands.getRuntimeForPlatformVersionViaJson = async function getRuntimeForPlatformVersionViaJson (\n platformVersion, platform = 'iOS') {\n const {stdout} = await this.exec('list', {\n args: ['runtimes', '--json'],\n });\n for (const {version, identifier, name} of JSON.parse(stdout).runtimes) {\n if (normalizeVersion(version) === normalizeVersion(platformVersion)\n && name.toLowerCase().startsWith(platform.toLowerCase())) {\n return identifier;\n }\n }\n throw new Error(`Could not use --json flag to parse platform version`);\n};\n\n/**\n * Get the runtime for the particular platform version.\n *\n * @param {string} platformVersion - The platform version name,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {string} The corresponding runtime name for the given\n * platform version.\n */\ncommands.getRuntimeForPlatformVersion = async function getRuntimeForPlatformVersion (\n platformVersion, platform = 'iOS') {\n // Try with parsing\n try {\n const {stdout} = await this.exec('list', {\n args: ['runtimes'],\n });\n // https://regex101.com/r/UykjQZ/1\n const runtimeRe =\n new RegExp(`${_.escapeRegExp(platform)}\\\\s+(\\\\d+\\\\.\\\\d+)\\\\s+\\\\((\\\\d+\\\\.\\\\d+\\\\.*\\\\d*)`, 'i');\n for (const line of stdout.split('\\n')) {\n const match = runtimeRe.exec(line);\n if (match && match[1] === platformVersion) {\n return match[2];\n }\n }\n } catch (ign) {}\n\n // if nothing was found, pass platform version back\n return platformVersion;\n};\n\n/**\n * Get the list of device types available in the current Xcode installation\n *\n * @return {Array<string>} List of the types of devices available\n * @throws {Error} If the corresponding simctl command fails\n */\ncommands.getDeviceTypes = async function getDeviceTypes () {\n const {stdout} = await this.exec('list', {\n args: ['devicetypes', '-j'],\n });\n /*\n * JSON will be like:\n * {\n * \"devicetypes\" : [\n * {\n * \"name\" : \"iPhone 4s\",\n * \"identifier\" : \"com.apple.CoreSimulator.SimDeviceType.iPhone-4s\"\n * },\n * ...\n * }\n */\n try {\n const deviceTypes = JSON.parse(stdout.trim());\n return deviceTypes.devicetypes.map((type) => type.name);\n } catch (err) {\n throw new Error(`Unable to get list of device types: ${err.message}`);\n }\n};\n\n/**\n * Get the full list of runtimes, devicetypes, devices and pairs as Object\n *\n * @return {Object} Object containing device types, runtimes devices and pairs.\n * The resulting JSON will be like:\n * {\n * \"devicetypes\" : [\n * {\n * \"name\" : \"iPhone 4s\",\n * \"identifier\" : \"com.apple.CoreSimulator.SimDeviceType.iPhone-4s\"\n * },\n * ...\n * ],\n * \"runtimes\" : [\n * {\n * \"version\" : '13.0',\n * \"bundlePath\" : '/Applications/Xcode11beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime',\n * \"isAvailable\" : true,\n * \"name\" : 'iOS 13.0',\n * \"identifier\" : 'com.apple.CoreSimulator.SimRuntime.iOS-13-0',\n * \"buildversion\" : '17A5534d'\n * },\n * ...\n * },\n * \"devices\" :\n * {\n * 'com.apple.CoreSimulator.SimRuntime.iOS-13-0': [ [Object], [Object] ] },\n * ...\n * },\n * \"pairs\" : {} }\n *\n * }\n * @throws {Error} If the corresponding simctl command fails\n */\ncommands.list = async function list () {\n const {stdout} = await this.exec('list', {\n args: ['-j'],\n });\n try {\n return JSON.parse(stdout.trim());\n } catch (e) {\n throw new Error(`Unable to parse simctl list: ${e.message}`);\n }\n};\n\nexport default commands;\n"],"mappings":"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"}
1
+ {"version":3,"file":"list.js","names":["_lodash","_interopRequireDefault","require","_helpers","_logger","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","commands","getDevicesByParsing","platform","stdout","exec","args","deviceSectionRe","_","isEmpty","RegExp","escapeRegExp","matches","match","push","Error","lineRe","devices","sdk","line","split","slice","includes","lineMatch","name","udid","state","getDevices","forSdk","versionMatchRe","sdkName","entries","toPairs","JSON","parse","replace","SIM_RUNTIME_NAME","versionMatch","filter","el","isUndefined","isAvailable","map","availability","err","log","debug","LOG_PREFIX","stack","errMsg","availableSDKs","keys","length","join","getRuntimeForPlatformVersionViaJson","platformVersion","version","identifier","runtimes","normalizeVersion","toLowerCase","startsWith","getRuntimeForPlatformVersion","runtimeRe","ign","getDeviceTypes","deviceTypes","trim","devicetypes","type","message","list","e","_default","exports"],"sources":["../../../lib/subcommands/list.js"],"sourcesContent":["import _ from 'lodash';\nimport { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';\nimport log, { LOG_PREFIX } from '../logger';\n\n\nconst commands = {};\n\n/**\n * @typedef {Object} DeviceInfo\n * @property {string} name - The device name.\n * @property {string} udid - The device UDID.\n * @property {string} state - The current Simulator state, for example 'booted' or 'shutdown'.\n * @property {string} sdk - The SDK version, for example '10.3'.\n */\n\n/**\n * Parse the list of existing Simulator devices to represent\n * it as convenient mapping.\n *\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {Object} The resulting mapping. Each key is platform version,\n * for example '10.3' and the corresponding value is an\n * array of the matching {@link DeviceInfo} instances.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n */\ncommands.getDevicesByParsing = async function getDevicesByParsing (platform) {\n // get the list of devices\n const {stdout} = await this.exec('list', {\n args: ['devices'],\n });\n\n // expect to get a listing like\n // -- iOS 8.1 --\n // iPhone 4s (3CA6E7DD-220E-45E5-B716-1E992B3A429C) (Shutdown)\n // ...\n // -- iOS 8.2 --\n // iPhone 4s (A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E) (Shutdown)\n // ...\n // so, get the `-- iOS X.X --` line to find the sdk (X.X)\n // and the rest of the listing in order to later find the devices\n const deviceSectionRe = _.isEmpty(platform)\n ? new RegExp(`\\\\-\\\\-\\\\s+(\\\\S+)\\\\s+(\\\\S+)\\\\s+\\\\-\\\\-(\\\\n\\\\s{4}.+)*`, 'mgi')\n : new RegExp(`\\\\-\\\\-\\\\s+${_.escapeRegExp(platform)}\\\\s+(\\\\S+)\\\\s+\\\\-\\\\-(\\\\n\\\\s{4}.+)*`, 'mgi');\n const matches = [];\n let match;\n // make an entry for each sdk version\n while ((match = deviceSectionRe.exec(stdout))) {\n matches.push(match);\n }\n if (_.isEmpty(matches)) {\n throw new Error('Could not find device section');\n }\n\n const lineRe = /([^\\s].+) \\((\\w+-.+\\w+)\\) \\((\\w+\\s?\\w+)\\)/; // https://regex101.com/r/lG7mK6/3\n // get all the devices for each sdk\n const devices = {};\n for (match of matches) {\n const sdk = platform ? match[1] : match[2];\n devices[sdk] = devices[sdk] || [];\n // split the full match into lines and remove the first\n for (const line of match[0].split('\\n').slice(1)) {\n if (line.includes('(unavailable, ')) {\n continue;\n }\n // a line is something like\n // iPhone 4s (A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E) (Shutdown)\n // retrieve:\n // iPhone 4s\n // A99FFFC3-8E19-4DCF-B585-7D9D46B4C16E\n // Shutdown\n const lineMatch = lineRe.exec(line);\n if (!lineMatch) {\n throw new Error(`Could not match line: ${line}`);\n }\n // save the whole thing as ab object in the list for this sdk\n devices[sdk].push({\n name: lineMatch[1],\n udid: lineMatch[2],\n state: lineMatch[3],\n sdk,\n platform: platform || match[1],\n });\n }\n }\n return devices;\n};\n\n/**\n * Parse the list of existing Simulator devices to represent\n * it as convenient mapping for the particular platform version.\n *\n * @param {?string} forSdk - The sdk version,\n * for which the devices list should be parsed,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {Object|Array<DeviceInfo>} If _forSdk_ is set then the list\n * of devices for the particular platform version.\n * Otherwise the same result as for {@link getDevicesByParsing}\n * function.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code or if no matching\n * platform version is found in the system.\n */\ncommands.getDevices = async function getDevices (forSdk, platform) {\n let devices = {};\n try {\n const {stdout} = await this.exec('list', {\n args: ['devices', '-j'],\n });\n /* JSON should be\n * {\n * \"devices\" : {\n * \"iOS <sdk>\" : [ // or\n * \"com.apple.CoreSimulator.SimRuntime.iOS-<sdk> : [\n * {\n * \"state\" : \"Booted\",\n * \"availability\" : \"(available)\",\n * \"isAvailable\" : true,\n * \"name\" : \"iPhone 6\",\n * \"udid\" : \"75E34140-18E8-4D1A-9F45-AAC735DF75DF\"\n * }\n * ]\n * }\n * }\n */\n const versionMatchRe = _.isEmpty(platform)\n ? new RegExp(`^([^\\\\s-]+)[\\\\s-](\\\\S+)`, 'i')\n : new RegExp(`^${_.escapeRegExp(platform)}[\\\\s-](\\\\S+)`, 'i');\n for (let [sdkName, entries] of _.toPairs(JSON.parse(stdout).devices)) {\n // there could be a longer name, so remove it\n sdkName = sdkName.replace(SIM_RUNTIME_NAME, '');\n const versionMatch = versionMatchRe.exec(sdkName);\n if (!versionMatch) {\n continue;\n }\n\n // the sdk can have dashes (`12-2`) or dots (`12.1`)\n const sdk = (platform ? versionMatch[1] : versionMatch[2]).replace('-', '.');\n devices[sdk] = devices[sdk] || [];\n devices[sdk].push(...entries.filter((el) => _.isUndefined(el.isAvailable) || el.isAvailable)\n .map((el) => {\n delete el.availability;\n return {\n sdk,\n ...el,\n platform: platform || versionMatch[1],\n };\n })\n );\n }\n } catch (err) {\n log.debug(LOG_PREFIX, `Unable to get JSON device list: ${err.stack}`);\n log.debug(LOG_PREFIX, 'Falling back to manual parsing');\n devices = await this.getDevicesByParsing(platform);\n }\n\n if (!forSdk) {\n return devices;\n }\n // if a `forSdk` was passed in, return only the corresponding list\n if (devices[forSdk]) {\n return devices[forSdk];\n }\n\n let errMsg = `'${forSdk}' does not exist in the list of simctl SDKs.`;\n const availableSDKs = _.keys(devices);\n errMsg += availableSDKs.length\n ? ` Only the following Simulator SDK versions are available on your system: ${availableSDKs.join(', ')}`\n : ` No Simulator SDK versions are available on your system. Please install some via Xcode preferences.`;\n throw new Error(errMsg);\n};\n\n/**\n * Get the runtime for the particular platform version using --json flag\n *\n * @param {string} platformVersion - The platform version name,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {string} The corresponding runtime name for the given\n * platform version.\n */\ncommands.getRuntimeForPlatformVersionViaJson = async function getRuntimeForPlatformVersionViaJson (\n platformVersion, platform = 'iOS') {\n const {stdout} = await this.exec('list', {\n args: ['runtimes', '--json'],\n });\n for (const {version, identifier, name} of JSON.parse(stdout).runtimes) {\n if (normalizeVersion(version) === normalizeVersion(platformVersion)\n && name.toLowerCase().startsWith(platform.toLowerCase())) {\n return identifier;\n }\n }\n throw new Error(`Could not use --json flag to parse platform version`);\n};\n\n/**\n * Get the runtime for the particular platform version.\n *\n * @param {string} platformVersion - The platform version name,\n * for example '10.3'.\n * @param {?string} platform - The platform name, for example 'watchOS'.\n * @return {string} The corresponding runtime name for the given\n * platform version.\n */\ncommands.getRuntimeForPlatformVersion = async function getRuntimeForPlatformVersion (\n platformVersion, platform = 'iOS') {\n // Try with parsing\n try {\n const {stdout} = await this.exec('list', {\n args: ['runtimes'],\n });\n // https://regex101.com/r/UykjQZ/1\n const runtimeRe =\n new RegExp(`${_.escapeRegExp(platform)}\\\\s+(\\\\d+\\\\.\\\\d+)\\\\s+\\\\((\\\\d+\\\\.\\\\d+\\\\.*\\\\d*)`, 'i');\n for (const line of stdout.split('\\n')) {\n const match = runtimeRe.exec(line);\n if (match && match[1] === platformVersion) {\n return match[2];\n }\n }\n } catch (ign) {}\n\n // if nothing was found, pass platform version back\n return platformVersion;\n};\n\n/**\n * Get the list of device types available in the current Xcode installation\n *\n * @return {Array<string>} List of the types of devices available\n * @throws {Error} If the corresponding simctl command fails\n */\ncommands.getDeviceTypes = async function getDeviceTypes () {\n const {stdout} = await this.exec('list', {\n args: ['devicetypes', '-j'],\n });\n /*\n * JSON will be like:\n * {\n * \"devicetypes\" : [\n * {\n * \"name\" : \"iPhone 4s\",\n * \"identifier\" : \"com.apple.CoreSimulator.SimDeviceType.iPhone-4s\"\n * },\n * ...\n * }\n */\n try {\n const deviceTypes = JSON.parse(stdout.trim());\n return deviceTypes.devicetypes.map((type) => type.name);\n } catch (err) {\n throw new Error(`Unable to get list of device types: ${err.message}`);\n }\n};\n\n/**\n * Get the full list of runtimes, devicetypes, devices and pairs as Object\n *\n * @return {Object} Object containing device types, runtimes devices and pairs.\n * The resulting JSON will be like:\n * {\n * \"devicetypes\" : [\n * {\n * \"name\" : \"iPhone 4s\",\n * \"identifier\" : \"com.apple.CoreSimulator.SimDeviceType.iPhone-4s\"\n * },\n * ...\n * ],\n * \"runtimes\" : [\n * {\n * \"version\" : '13.0',\n * \"bundlePath\" : '/Applications/Xcode11beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime',\n * \"isAvailable\" : true,\n * \"name\" : 'iOS 13.0',\n * \"identifier\" : 'com.apple.CoreSimulator.SimRuntime.iOS-13-0',\n * \"buildversion\" : '17A5534d'\n * },\n * ...\n * },\n * \"devices\" :\n * {\n * 'com.apple.CoreSimulator.SimRuntime.iOS-13-0': [ [Object], [Object] ] },\n * ...\n * },\n * \"pairs\" : {} }\n *\n * }\n * @throws {Error} If the corresponding simctl command fails\n */\ncommands.list = async function list () {\n const {stdout} = await this.exec('list', {\n args: ['-j'],\n });\n try {\n return JSON.parse(stdout.trim());\n } catch (e) {\n throw new Error(`Unable to parse simctl list: ${e.message}`);\n }\n};\n\nexport default commands;\n"],"mappings":"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"}
@@ -21,4 +21,4 @@ commands.setPasteboard = async function setPasteboard(content, encoding = 'utf8'
21
21
  };
22
22
  var _default = commands;
23
23
  exports.default = _default;
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsInNldFBhc3RlYm9hcmQiLCJjb250ZW50IiwiZW5jb2RpbmciLCJwYkNvcHlTdWJwcm9jZXNzIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImFzeW5jaHJvbm91cyIsInN0YXJ0IiwiZXhpdENvZGVWZXJpZmllciIsImpvaW4iLCJzdGRpbiIsInByb2MiLCJzZXRFbmNvZGluZyIsIndyaXRlIiwiZW5kIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9wYmNvcHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBTZXQgdGhlIGNvbnRlbnQgb2YgU2ltdWxhdG9yIHBhc3RlYm9hcmQuXG4gKiBJdCBpcyByZXF1aXJlZCB0aGF0IFNpbXVsYXRvciBpcyBpbiBfYm9vdGVkXyBzdGF0ZS5cbiAqXG4gKiBAc2luY2UgWGNvZGUgU0RLIDguMVxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgLSBUaGUgYWN0dWFsIHN0cmluZyBjb250ZW50IHRvIGJlIHNldC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBlbmNvZGluZyBbdXRmJ10gLSBUaGUgZW5jb2Rpbmcgb2YgdGhlIGdpdmVuIHBhc3RlYm9hcmQgY29udGVudC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYtOCBieSBkZWZhdWx0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc2V0UGFzdGVib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIHNldFBhc3RlYm9hcmQgKGNvbnRlbnQsIGVuY29kaW5nID0gJ3V0ZjgnKSB7XG4gIGNvbnN0IHBiQ29weVN1YnByb2Nlc3MgPSBhd2FpdCB0aGlzLmV4ZWMoJ3BiY29weScsIHtcbiAgICBhcmdzOiBbdGhpcy5yZXF1aXJlVWRpZCgncGJjb3B5JyldLFxuICAgIGFzeW5jaHJvbm91czogdHJ1ZSxcbiAgfSk7XG4gIGF3YWl0IHBiQ29weVN1YnByb2Nlc3Muc3RhcnQoMCk7XG4gIGNvbnN0IGV4aXRDb2RlVmVyaWZpZXIgPSBwYkNvcHlTdWJwcm9jZXNzLmpvaW4oKTtcbiAgY29uc3Qgc3RkaW4gPSBwYkNvcHlTdWJwcm9jZXNzLnByb2Muc3RkaW47XG4gIHN0ZGluLnNldEVuY29kaW5nKGVuY29kaW5nKTtcbiAgc3RkaW4ud3JpdGUoY29udGVudCk7XG4gIHN0ZGluLmVuZCgpO1xuICBhd2FpdCBleGl0Q29kZVZlcmlmaWVyO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBY25CQSxRQUFRLENBQUNDLGFBQWEsR0FBRyxlQUFlQSxhQUFhQSxDQUFFQyxPQUFPLEVBQUVDLFFBQVEsR0FBRyxNQUFNLEVBQUU7RUFDakYsTUFBTUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxRQUFRLEVBQUU7SUFDakRDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDQyxZQUFZLEVBQUU7RUFDaEIsQ0FBQyxDQUFDO0VBQ0YsTUFBTUosZ0JBQWdCLENBQUNLLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDL0IsTUFBTUMsZ0JBQWdCLEdBQUdOLGdCQUFnQixDQUFDTyxJQUFJLEVBQUU7RUFDaEQsTUFBTUMsS0FBSyxHQUFHUixnQkFBZ0IsQ0FBQ1MsSUFBSSxDQUFDRCxLQUFLO0VBQ3pDQSxLQUFLLENBQUNFLFdBQVcsQ0FBQ1gsUUFBUSxDQUFDO0VBQzNCUyxLQUFLLENBQUNHLEtBQUssQ0FBQ2IsT0FBTyxDQUFDO0VBQ3BCVSxLQUFLLENBQUNJLEdBQUcsRUFBRTtFQUNYLE1BQU1OLGdCQUFnQjtBQUN4QixDQUFDO0FBQUMsSUFBQU8sUUFBQSxHQUVhakIsUUFBUTtBQUFBa0IsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsInNldFBhc3RlYm9hcmQiLCJjb250ZW50IiwiZW5jb2RpbmciLCJwYkNvcHlTdWJwcm9jZXNzIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImFzeW5jaHJvbm91cyIsInN0YXJ0IiwiZXhpdENvZGVWZXJpZmllciIsImpvaW4iLCJzdGRpbiIsInByb2MiLCJzZXRFbmNvZGluZyIsIndyaXRlIiwiZW5kIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdWJjb21tYW5kcy9wYmNvcHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBTZXQgdGhlIGNvbnRlbnQgb2YgU2ltdWxhdG9yIHBhc3RlYm9hcmQuXG4gKiBJdCBpcyByZXF1aXJlZCB0aGF0IFNpbXVsYXRvciBpcyBpbiBfYm9vdGVkXyBzdGF0ZS5cbiAqXG4gKiBAc2luY2UgWGNvZGUgU0RLIDguMVxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgLSBUaGUgYWN0dWFsIHN0cmluZyBjb250ZW50IHRvIGJlIHNldC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBlbmNvZGluZyBbdXRmJ10gLSBUaGUgZW5jb2Rpbmcgb2YgdGhlIGdpdmVuIHBhc3RlYm9hcmQgY29udGVudC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYtOCBieSBkZWZhdWx0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc2V0UGFzdGVib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIHNldFBhc3RlYm9hcmQgKGNvbnRlbnQsIGVuY29kaW5nID0gJ3V0ZjgnKSB7XG4gIGNvbnN0IHBiQ29weVN1YnByb2Nlc3MgPSBhd2FpdCB0aGlzLmV4ZWMoJ3BiY29weScsIHtcbiAgICBhcmdzOiBbdGhpcy5yZXF1aXJlVWRpZCgncGJjb3B5JyldLFxuICAgIGFzeW5jaHJvbm91czogdHJ1ZSxcbiAgfSk7XG4gIGF3YWl0IHBiQ29weVN1YnByb2Nlc3Muc3RhcnQoMCk7XG4gIGNvbnN0IGV4aXRDb2RlVmVyaWZpZXIgPSBwYkNvcHlTdWJwcm9jZXNzLmpvaW4oKTtcbiAgY29uc3Qgc3RkaW4gPSBwYkNvcHlTdWJwcm9jZXNzLnByb2Muc3RkaW47XG4gIHN0ZGluLnNldEVuY29kaW5nKGVuY29kaW5nKTtcbiAgc3RkaW4ud3JpdGUoY29udGVudCk7XG4gIHN0ZGluLmVuZCgpO1xuICBhd2FpdCBleGl0Q29kZVZlcmlmaWVyO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBY25CQSxRQUFRLENBQUNDLGFBQWEsR0FBRyxlQUFlQSxhQUFhQSxDQUFFQyxPQUFPLEVBQUVDLFFBQVEsR0FBRyxNQUFNLEVBQUU7RUFDakYsTUFBTUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxRQUFRLEVBQUU7SUFDakRDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDQyxZQUFZLEVBQUU7RUFDaEIsQ0FBQyxDQUFDO0VBQ0YsTUFBTUosZ0JBQWdCLENBQUNLLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDL0IsTUFBTUMsZ0JBQWdCLEdBQUdOLGdCQUFnQixDQUFDTyxJQUFJLENBQUMsQ0FBQztFQUNoRCxNQUFNQyxLQUFLLEdBQUdSLGdCQUFnQixDQUFDUyxJQUFJLENBQUNELEtBQUs7RUFDekNBLEtBQUssQ0FBQ0UsV0FBVyxDQUFDWCxRQUFRLENBQUM7RUFDM0JTLEtBQUssQ0FBQ0csS0FBSyxDQUFDYixPQUFPLENBQUM7RUFDcEJVLEtBQUssQ0FBQ0ksR0FBRyxDQUFDLENBQUM7RUFDWCxNQUFNTixnQkFBZ0I7QUFDeEIsQ0FBQztBQUFDLElBQUFPLFFBQUEsR0FFYWpCLFFBQVE7QUFBQWtCLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"pbcopy.js","names":["commands","setPasteboard","content","encoding","pbCopySubprocess","exec","args","requireUdid","asynchronous","start","exitCodeVerifier","join","stdin","proc","setEncoding","write","end","_default","exports","default"],"sources":["../../../lib/subcommands/pbcopy.js"],"sourcesContent":["const commands = {};\n\n/**\n * Set the content of Simulator pasteboard.\n * It is required that Simulator is in _booted_ state.\n *\n * @since Xcode SDK 8.1\n * @param {string} content - The actual string content to be set.\n * @param {string} encoding [utf'] - The encoding of the given pasteboard content.\n * UTF-8 by default.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.setPasteboard = async function setPasteboard (content, encoding = 'utf8') {\n const pbCopySubprocess = await this.exec('pbcopy', {\n args: [this.requireUdid('pbcopy')],\n asynchronous: true,\n });\n await pbCopySubprocess.start(0);\n const exitCodeVerifier = pbCopySubprocess.join();\n const stdin = pbCopySubprocess.proc.stdin;\n stdin.setEncoding(encoding);\n stdin.write(content);\n stdin.end();\n await exitCodeVerifier;\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AAcnBA,QAAQ,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAEC,OAAO,EAAEC,QAAQ,GAAG,MAAM,EAAE;EACjF,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,QAAQ,EAAE;IACjDC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClCC,YAAY,EAAE;EAChB,CAAC,CAAC;EACF,MAAMJ,gBAAgB,CAACK,KAAK,CAAC,CAAC,CAAC;EAC/B,MAAMC,gBAAgB,GAAGN,gBAAgB,CAACO,IAAI,EAAE;EAChD,MAAMC,KAAK,GAAGR,gBAAgB,CAACS,IAAI,CAACD,KAAK;EACzCA,KAAK,CAACE,WAAW,CAACX,QAAQ,CAAC;EAC3BS,KAAK,CAACG,KAAK,CAACb,OAAO,CAAC;EACpBU,KAAK,CAACI,GAAG,EAAE;EACX,MAAMN,gBAAgB;AACxB,CAAC;AAAC,IAAAO,QAAA,GAEajB,QAAQ;AAAAkB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"pbcopy.js","names":["commands","setPasteboard","content","encoding","pbCopySubprocess","exec","args","requireUdid","asynchronous","start","exitCodeVerifier","join","stdin","proc","setEncoding","write","end","_default","exports","default"],"sources":["../../../lib/subcommands/pbcopy.js"],"sourcesContent":["const commands = {};\n\n/**\n * Set the content of Simulator pasteboard.\n * It is required that Simulator is in _booted_ state.\n *\n * @since Xcode SDK 8.1\n * @param {string} content - The actual string content to be set.\n * @param {string} encoding [utf'] - The encoding of the given pasteboard content.\n * UTF-8 by default.\n * @throws {Error} If the corresponding simctl subcommand command\n * returns non-zero return code.\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.setPasteboard = async function setPasteboard (content, encoding = 'utf8') {\n const pbCopySubprocess = await this.exec('pbcopy', {\n args: [this.requireUdid('pbcopy')],\n asynchronous: true,\n });\n await pbCopySubprocess.start(0);\n const exitCodeVerifier = pbCopySubprocess.join();\n const stdin = pbCopySubprocess.proc.stdin;\n stdin.setEncoding(encoding);\n stdin.write(content);\n stdin.end();\n await exitCodeVerifier;\n};\n\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AAcnBA,QAAQ,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAEC,OAAO,EAAEC,QAAQ,GAAG,MAAM,EAAE;EACjF,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,QAAQ,EAAE;IACjDC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClCC,YAAY,EAAE;EAChB,CAAC,CAAC;EACF,MAAMJ,gBAAgB,CAACK,KAAK,CAAC,CAAC,CAAC;EAC/B,MAAMC,gBAAgB,GAAGN,gBAAgB,CAACO,IAAI,CAAC,CAAC;EAChD,MAAMC,KAAK,GAAGR,gBAAgB,CAACS,IAAI,CAACD,KAAK;EACzCA,KAAK,CAACE,WAAW,CAACX,QAAQ,CAAC;EAC3BS,KAAK,CAACG,KAAK,CAACb,OAAO,CAAC;EACpBU,KAAK,CAACI,GAAG,CAAC,CAAC;EACX,MAAMN,gBAAgB;AACxB,CAAC;AAAC,IAAAO,QAAA,GAEajB,QAAQ;AAAAkB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  require("source-map-support/register");
9
- var _rimraf = _interopRequireDefault(require("rimraf"));
9
+ var _rimraf = require("rimraf");
10
10
  var _uuid = require("uuid");
11
11
  var _path = _interopRequireDefault(require("path"));
12
12
  var _os = _interopRequireDefault(require("os"));
@@ -20,9 +20,9 @@ commands.pushNotification = async function pushNotification(payload) {
20
20
  args: [this.requireUdid('push'), dstPath]
21
21
  });
22
22
  } finally {
23
- await (0, _rimraf.default)(dstPath);
23
+ await (0, _rimraf.rimraf)(dstPath);
24
24
  }
25
25
  };
26
26
  var _default = commands;
27
27
  exports.default = _default;
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmltcmFmIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfdXVpZCIsIl9wYXRoIiwiX29zIiwiX3Byb21pc2VzIiwiY29tbWFuZHMiLCJwdXNoTm90aWZpY2F0aW9uIiwicGF5bG9hZCIsImRzdFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidXVpZFY0IiwiZnMiLCJ3cml0ZUZpbGUiLCJKU09OIiwic3RyaW5naWZ5IiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsInJpbXJhZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvcHVzaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmltcmFmIGZyb20gJ3JpbXJhZic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogU2VuZCBhIHNpbXVsYXRlZCBwdXNoIG5vdGlmaWNhdGlvblxuICpcbiAqIEBzaW5jZSBYY29kZSAxMS40IFNES1xuICogQHBhcmFtIHtPYmplY3R9IHBheWxvYWQgLSBUaGUgb2JqZWN0IHRoYXQgZGVzY3JpYmVzIEFwcGxlIHB1c2ggbm90aWZpY2F0aW9uIGNvbnRlbnQuXG4gKiBJdCBtdXN0IGNvbnRhaW4gYSB0b3AtbGV2ZWwgXCJTaW11bGF0b3IgVGFyZ2V0IEJ1bmRsZVwiIGtleSB3aXRoIGEgc3RyaW5nIHZhbHVlIG1hdGNoaW5nXG4gKiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9u4oCYcyBidW5kbGUgaWRlbnRpZmllciBhbmQgXCJhcHNcIiBrZXkgd2l0aCB2YWxpZCBBcHBsZSBQdXNoIE5vdGlmaWNhdGlvbiB2YWx1ZXMuXG4gKiBGb3IgZXhhbXBsZTpcbiAqIHtcbiAqICAgXCJTaW11bGF0b3IgVGFyZ2V0IEJ1bmRsZVwiOiBcImNvbS5hcHBsZS5QcmVmZXJlbmNlc1wiLFxuICogICBcImFwc1wiOiB7XG4gKiAgICAgXCJhbGVydFwiOiBcIlRoaXMgaXMgYSBzaW11bGF0ZWQgbm90aWZpY2F0aW9uIVwiLFxuICogICAgIFwiYmFkZ2VcIjogMyxcbiAqICAgICBcInNvdW5kXCI6IFwiZGVmYXVsdFwiXG4gKiAgIH1cbiAqIH1cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjb21tYW5kXG4gKiBvciB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcHVzaGluZyB0aGUgbm90aWZpY2F0aW9uXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5wdXNoTm90aWZpY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gcHVzaE5vdGlmaWNhdGlvbiAocGF5bG9hZCkge1xuICBjb25zdCBkc3RQYXRoID0gcGF0aC5yZXNvbHZlKG9zLnRtcGRpcigpLCBgJHt1dWlkVjQoKX0uanNvbmApO1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShkc3RQYXRoLCBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSwgJ3V0ZjgnKTtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ3B1c2gnLCB7XG4gICAgICBhcmdzOiBbdGhpcy5yZXF1aXJlVWRpZCgncHVzaCcpLCBkc3RQYXRoXSxcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCByaW1yYWYoZHN0UGF0aCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLE1BQU1LLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFzQm5CQSxRQUFRLENBQUNDLGdCQUFnQixHQUFHLGVBQWVBLGdCQUFnQkEsQ0FBRUMsT0FBTyxFQUFFO0VBQ3BFLE1BQU1DLE9BQU8sR0FBR0MsYUFBSSxDQUFDQyxPQUFPLENBQUNDLFdBQUUsQ0FBQ0MsTUFBTSxFQUFFLEVBQUcsR0FBRSxJQUFBQyxRQUFNLEdBQUcsT0FBTSxDQUFDO0VBQzdELElBQUk7SUFDRixNQUFNQyxpQkFBRSxDQUFDQyxTQUFTLENBQUNQLE9BQU8sRUFBRVEsSUFBSSxDQUFDQyxTQUFTLENBQUNWLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1RCxNQUFNLElBQUksQ0FBQ1csSUFBSSxDQUFDLE1BQU0sRUFBRTtNQUN0QkMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUVaLE9BQU87SUFDMUMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxTQUFTO0lBQ1IsTUFBTSxJQUFBYSxlQUFNLEVBQUNiLE9BQU8sQ0FBQztFQUN2QjtBQUNGLENBQUM7QUFBQyxJQUFBYyxRQUFBLEdBRWFqQixRQUFRO0FBQUFrQixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmltcmFmIiwicmVxdWlyZSIsIl91dWlkIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX29zIiwiX3Byb21pc2VzIiwiY29tbWFuZHMiLCJwdXNoTm90aWZpY2F0aW9uIiwicGF5bG9hZCIsImRzdFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidXVpZFY0IiwiZnMiLCJ3cml0ZUZpbGUiLCJKU09OIiwic3RyaW5naWZ5IiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsInJpbXJhZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ViY29tbWFuZHMvcHVzaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByaW1yYWYgfSBmcm9tICdyaW1yYWYnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZFY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIFNlbmQgYSBzaW11bGF0ZWQgcHVzaCBub3RpZmljYXRpb25cbiAqXG4gKiBAc2luY2UgWGNvZGUgMTEuNCBTREtcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXlsb2FkIC0gVGhlIG9iamVjdCB0aGF0IGRlc2NyaWJlcyBBcHBsZSBwdXNoIG5vdGlmaWNhdGlvbiBjb250ZW50LlxuICogSXQgbXVzdCBjb250YWluIGEgdG9wLWxldmVsIFwiU2ltdWxhdG9yIFRhcmdldCBCdW5kbGVcIiBrZXkgd2l0aCBhIHN0cmluZyB2YWx1ZSBtYXRjaGluZ1xuICogdGhlIHRhcmdldCBhcHBsaWNhdGlvbuKAmHMgYnVuZGxlIGlkZW50aWZpZXIgYW5kIFwiYXBzXCIga2V5IHdpdGggdmFsaWQgQXBwbGUgUHVzaCBOb3RpZmljYXRpb24gdmFsdWVzLlxuICogRm9yIGV4YW1wbGU6XG4gKiB7XG4gKiAgIFwiU2ltdWxhdG9yIFRhcmdldCBCdW5kbGVcIjogXCJjb20uYXBwbGUuUHJlZmVyZW5jZXNcIixcbiAqICAgXCJhcHNcIjoge1xuICogICAgIFwiYWxlcnRcIjogXCJUaGlzIGlzIGEgc2ltdWxhdGVkIG5vdGlmaWNhdGlvbiFcIixcbiAqICAgICBcImJhZGdlXCI6IDMsXG4gKiAgICAgXCJzb3VuZFwiOiBcImRlZmF1bHRcIlxuICogICB9XG4gKiB9XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGN1cnJlbnQgU0RLIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29tbWFuZFxuICogb3IgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHB1c2hpbmcgdGhlIG5vdGlmaWNhdGlvblxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMucHVzaE5vdGlmaWNhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIHB1c2hOb3RpZmljYXRpb24gKHBheWxvYWQpIHtcbiAgY29uc3QgZHN0UGF0aCA9IHBhdGgucmVzb2x2ZShvcy50bXBkaXIoKSwgYCR7dXVpZFY0KCl9Lmpzb25gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZHN0UGF0aCwgSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksICd1dGY4Jyk7XG4gICAgYXdhaXQgdGhpcy5leGVjKCdwdXNoJywge1xuICAgICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ3B1c2gnKSwgZHN0UGF0aF0sXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcmltcmFmKGRzdFBhdGgpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxHQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFFQSxNQUFNTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBc0JuQkEsUUFBUSxDQUFDQyxnQkFBZ0IsR0FBRyxlQUFlQSxnQkFBZ0JBLENBQUVDLE9BQU8sRUFBRTtFQUNwRSxNQUFNQyxPQUFPLEdBQUdDLGFBQUksQ0FBQ0MsT0FBTyxDQUFDQyxXQUFFLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUcsR0FBRSxJQUFBQyxRQUFNLEVBQUMsQ0FBRSxPQUFNLENBQUM7RUFDN0QsSUFBSTtJQUNGLE1BQU1DLGlCQUFFLENBQUNDLFNBQVMsQ0FBQ1AsT0FBTyxFQUFFUSxJQUFJLENBQUNDLFNBQVMsQ0FBQ1YsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVELE1BQU0sSUFBSSxDQUFDVyxJQUFJLENBQUMsTUFBTSxFQUFFO01BQ3RCQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRVosT0FBTztJQUMxQyxDQUFDLENBQUM7RUFDSixDQUFDLFNBQVM7SUFDUixNQUFNLElBQUFhLGNBQU0sRUFBQ2IsT0FBTyxDQUFDO0VBQ3ZCO0FBQ0YsQ0FBQztBQUFDLElBQUFjLFFBQUEsR0FFYWpCLFFBQVE7QUFBQWtCLE9BQUEsQ0FBQUMsT0FBQSxHQUFBRixRQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","names":["_rimraf","_interopRequireDefault","require","_uuid","_path","_os","_promises","commands","pushNotification","payload","dstPath","path","resolve","os","tmpdir","uuidV4","fs","writeFile","JSON","stringify","exec","args","requireUdid","rimraf","_default","exports","default"],"sources":["../../../lib/subcommands/push.js"],"sourcesContent":["import rimraf from 'rimraf';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport os from 'os';\nimport fs from 'fs/promises';\n\nconst commands = {};\n\n/**\n * Send a simulated push notification\n *\n * @since Xcode 11.4 SDK\n * @param {Object} payload - The object that describes Apple push notification content.\n * It must contain a top-level \"Simulator Target Bundle\" key with a string value matching\n * the target application‘s bundle identifier and \"aps\" key with valid Apple Push Notification values.\n * For example:\n * {\n * \"Simulator Target Bundle\": \"com.apple.Preferences\",\n * \"aps\": {\n * \"alert\": \"This is a simulated notification!\",\n * \"badge\": 3,\n * \"sound\": \"default\"\n * }\n * }\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while pushing the notification\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.pushNotification = async function pushNotification (payload) {\n const dstPath = path.resolve(os.tmpdir(), `${uuidV4()}.json`);\n try {\n await fs.writeFile(dstPath, JSON.stringify(payload), 'utf8');\n await this.exec('push', {\n args: [this.requireUdid('push'), dstPath],\n });\n } finally {\n await rimraf(dstPath);\n }\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,QAAQ,GAAG,CAAC,CAAC;AAsBnBA,QAAQ,CAACC,gBAAgB,GAAG,eAAeA,gBAAgBA,CAAEC,OAAO,EAAE;EACpE,MAAMC,OAAO,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,EAAE,EAAG,GAAE,IAAAC,QAAM,GAAG,OAAM,CAAC;EAC7D,IAAI;IACF,MAAMC,iBAAE,CAACC,SAAS,CAACP,OAAO,EAAEQ,IAAI,CAACC,SAAS,CAACV,OAAO,CAAC,EAAE,MAAM,CAAC;IAC5D,MAAM,IAAI,CAACW,IAAI,CAAC,MAAM,EAAE;MACtBC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,MAAM,CAAC,EAAEZ,OAAO;IAC1C,CAAC,CAAC;EACJ,CAAC,SAAS;IACR,MAAM,IAAAa,eAAM,EAACb,OAAO,CAAC;EACvB;AACF,CAAC;AAAC,IAAAc,QAAA,GAEajB,QAAQ;AAAAkB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"push.js","names":["_rimraf","require","_uuid","_path","_interopRequireDefault","_os","_promises","commands","pushNotification","payload","dstPath","path","resolve","os","tmpdir","uuidV4","fs","writeFile","JSON","stringify","exec","args","requireUdid","rimraf","_default","exports","default"],"sources":["../../../lib/subcommands/push.js"],"sourcesContent":["import { rimraf } from 'rimraf';\nimport { v4 as uuidV4 } from 'uuid';\nimport path from 'path';\nimport os from 'os';\nimport fs from 'fs/promises';\n\nconst commands = {};\n\n/**\n * Send a simulated push notification\n *\n * @since Xcode 11.4 SDK\n * @param {Object} payload - The object that describes Apple push notification content.\n * It must contain a top-level \"Simulator Target Bundle\" key with a string value matching\n * the target application‘s bundle identifier and \"aps\" key with valid Apple Push Notification values.\n * For example:\n * {\n * \"Simulator Target Bundle\": \"com.apple.Preferences\",\n * \"aps\": {\n * \"alert\": \"This is a simulated notification!\",\n * \"badge\": 3,\n * \"sound\": \"default\"\n * }\n * }\n * @throws {Error} if the current SDK version does not support the command\n * or there was an error while pushing the notification\n * @throws {Error} If the `udid` instance property is unset\n */\ncommands.pushNotification = async function pushNotification (payload) {\n const dstPath = path.resolve(os.tmpdir(), `${uuidV4()}.json`);\n try {\n await fs.writeFile(dstPath, JSON.stringify(payload), 'utf8');\n await this.exec('push', {\n args: [this.requireUdid('push'), dstPath],\n });\n } finally {\n await rimraf(dstPath);\n }\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,GAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,SAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,MAAMM,QAAQ,GAAG,CAAC,CAAC;AAsBnBA,QAAQ,CAACC,gBAAgB,GAAG,eAAeA,gBAAgBA,CAAEC,OAAO,EAAE;EACpE,MAAMC,OAAO,GAAGC,aAAI,CAACC,OAAO,CAACC,WAAE,CAACC,MAAM,CAAC,CAAC,EAAG,GAAE,IAAAC,QAAM,EAAC,CAAE,OAAM,CAAC;EAC7D,IAAI;IACF,MAAMC,iBAAE,CAACC,SAAS,CAACP,OAAO,EAAEQ,IAAI,CAACC,SAAS,CAACV,OAAO,CAAC,EAAE,MAAM,CAAC;IAC5D,MAAM,IAAI,CAACW,IAAI,CAAC,MAAM,EAAE;MACtBC,IAAI,EAAE,CAAC,IAAI,CAACC,WAAW,CAAC,MAAM,CAAC,EAAEZ,OAAO;IAC1C,CAAC,CAAC;EACJ,CAAC,SAAS;IACR,MAAM,IAAAa,cAAM,EAACb,OAAO,CAAC;EACvB;AACF,CAAC;AAAC,IAAAc,QAAA,GAEajB,QAAQ;AAAAkB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1,4 +1,4 @@
1
- import rimraf from 'rimraf';
1
+ import { rimraf } from 'rimraf';
2
2
  import { v4 as uuidV4 } from 'uuid';
3
3
  import path from 'path';
4
4
  import os from 'os';
@@ -3,7 +3,7 @@ import fs from 'fs/promises';
3
3
  import { v4 as uuidV4 } from 'uuid';
4
4
  import path from 'path';
5
5
  import _ from 'lodash';
6
- import rimraf from 'rimraf';
6
+ import { rimraf } from 'rimraf';
7
7
 
8
8
  const commands = {};
9
9
 
@@ -1,4 +1,4 @@
1
- import rimraf from 'rimraf';
1
+ import { rimraf } from 'rimraf';
2
2
  import { v4 as uuidV4 } from 'uuid';
3
3
  import path from 'path';
4
4
  import os from 'os';
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "ios",
7
7
  "simctl"
8
8
  ],
9
- "version": "7.1.12",
9
+ "version": "7.1.14",
10
10
  "author": "Appium Contributors",
11
11
  "license": "Apache-2.0",
12
12
  "repository": {
@@ -38,12 +38,12 @@
38
38
  "bluebird": "^3.5.1",
39
39
  "lodash": "^4.2.1",
40
40
  "npmlog": "^6.0.0",
41
- "rimraf": "^4.0.4",
41
+ "rimraf": "^5.0.0",
42
42
  "semver": "^7.0.0",
43
43
  "source-map-support": "^0.x",
44
44
  "teen_process": "^2.0.0",
45
45
  "uuid": "^9.0.0",
46
- "which": "^2.0.0"
46
+ "which": "^3.0.1"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "rm -rf build && babel --out-dir=build/lib lib && babel --out-dir=build index.js",