node-simctl 7.2.2 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/build/index.js +9 -17
  3. package/build/lib/helpers.d.ts +13 -0
  4. package/build/lib/helpers.d.ts.map +1 -0
  5. package/build/lib/helpers.js +22 -16
  6. package/build/lib/helpers.js.map +1 -1
  7. package/build/lib/logger.d.ts +4 -0
  8. package/build/lib/logger.d.ts.map +1 -0
  9. package/build/lib/logger.js +13 -19
  10. package/build/lib/logger.js.map +1 -1
  11. package/build/lib/simctl.d.ts +131 -0
  12. package/build/lib/simctl.d.ts.map +1 -0
  13. package/build/lib/simctl.js +170 -94
  14. package/build/lib/simctl.js.map +1 -1
  15. package/build/lib/subcommands/addmedia.d.ts +16 -0
  16. package/build/lib/subcommands/addmedia.d.ts.map +1 -0
  17. package/build/lib/subcommands/addmedia.js +17 -12
  18. package/build/lib/subcommands/addmedia.js.map +1 -1
  19. package/build/lib/subcommands/appinfo.d.ts +45 -0
  20. package/build/lib/subcommands/appinfo.d.ts.map +1 -0
  21. package/build/lib/subcommands/appinfo.js +47 -15
  22. package/build/lib/subcommands/appinfo.js.map +1 -1
  23. package/build/lib/subcommands/boot.d.ts +12 -0
  24. package/build/lib/subcommands/boot.d.ts.map +1 -0
  25. package/build/lib/subcommands/boot.js +47 -22
  26. package/build/lib/subcommands/boot.js.map +1 -1
  27. package/build/lib/subcommands/bootstatus.d.ts +56 -0
  28. package/build/lib/subcommands/bootstatus.d.ts.map +1 -0
  29. package/build/lib/subcommands/bootstatus.js +102 -87
  30. package/build/lib/subcommands/bootstatus.js.map +1 -1
  31. package/build/lib/subcommands/create.d.ts +34 -0
  32. package/build/lib/subcommands/create.d.ts.map +1 -0
  33. package/build/lib/subcommands/create.js +115 -65
  34. package/build/lib/subcommands/create.js.map +1 -1
  35. package/build/lib/subcommands/delete.d.ts +12 -0
  36. package/build/lib/subcommands/delete.d.ts.map +1 -0
  37. package/build/lib/subcommands/delete.js +13 -12
  38. package/build/lib/subcommands/delete.js.map +1 -1
  39. package/build/lib/subcommands/erase.d.ts +15 -0
  40. package/build/lib/subcommands/erase.d.ts.map +1 -0
  41. package/build/lib/subcommands/erase.js +19 -14
  42. package/build/lib/subcommands/erase.js.map +1 -1
  43. package/build/lib/subcommands/get_app_container.d.ts +22 -0
  44. package/build/lib/subcommands/get_app_container.d.ts.map +1 -0
  45. package/build/lib/subcommands/get_app_container.js +26 -19
  46. package/build/lib/subcommands/get_app_container.js.map +1 -1
  47. package/build/lib/subcommands/getenv.d.ts +14 -0
  48. package/build/lib/subcommands/getenv.d.ts.map +1 -0
  49. package/build/lib/subcommands/getenv.js +17 -17
  50. package/build/lib/subcommands/getenv.js.map +1 -1
  51. package/build/lib/subcommands/index.d.ts +3 -0
  52. package/build/lib/subcommands/index.d.ts.map +1 -0
  53. package/build/lib/subcommands/index.js +33 -36
  54. package/build/lib/subcommands/index.js.map +1 -1
  55. package/build/lib/subcommands/install.d.ts +15 -0
  56. package/build/lib/subcommands/install.d.ts.map +1 -0
  57. package/build/lib/subcommands/install.js +16 -12
  58. package/build/lib/subcommands/install.js.map +1 -1
  59. package/build/lib/subcommands/io.d.ts +15 -0
  60. package/build/lib/subcommands/io.d.ts.map +1 -0
  61. package/build/lib/subcommands/io.js +32 -25
  62. package/build/lib/subcommands/io.js.map +1 -1
  63. package/build/lib/subcommands/keychain.d.ts +53 -0
  64. package/build/lib/subcommands/keychain.d.ts.map +1 -0
  65. package/build/lib/subcommands/keychain.js +85 -51
  66. package/build/lib/subcommands/keychain.js.map +1 -1
  67. package/build/lib/subcommands/launch.d.ts +19 -0
  68. package/build/lib/subcommands/launch.d.ts.map +1 -0
  69. package/build/lib/subcommands/launch.js +28 -19
  70. package/build/lib/subcommands/launch.js.map +1 -1
  71. package/build/lib/subcommands/list.d.ts +120 -0
  72. package/build/lib/subcommands/list.d.ts.map +1 -0
  73. package/build/lib/subcommands/list.js +296 -138
  74. package/build/lib/subcommands/list.js.map +1 -1
  75. package/build/lib/subcommands/location.d.ts +20 -0
  76. package/build/lib/subcommands/location.d.ts.map +1 -0
  77. package/build/lib/subcommands/location.js +37 -22
  78. package/build/lib/subcommands/location.js.map +1 -1
  79. package/build/lib/subcommands/openurl.d.ts +17 -0
  80. package/build/lib/subcommands/openurl.d.ts.map +1 -0
  81. package/build/lib/subcommands/openurl.js +18 -12
  82. package/build/lib/subcommands/openurl.js.map +1 -1
  83. package/build/lib/subcommands/pbcopy.d.ts +17 -0
  84. package/build/lib/subcommands/pbcopy.d.ts.map +1 -0
  85. package/build/lib/subcommands/pbcopy.js +26 -20
  86. package/build/lib/subcommands/pbcopy.js.map +1 -1
  87. package/build/lib/subcommands/pbpaste.d.ts +17 -0
  88. package/build/lib/subcommands/pbpaste.d.ts.map +1 -0
  89. package/build/lib/subcommands/pbpaste.js +20 -16
  90. package/build/lib/subcommands/pbpaste.js.map +1 -1
  91. package/build/lib/subcommands/privacy.d.ts +55 -0
  92. package/build/lib/subcommands/privacy.d.ts.map +1 -0
  93. package/build/lib/subcommands/privacy.js +60 -18
  94. package/build/lib/subcommands/privacy.js.map +1 -1
  95. package/build/lib/subcommands/push.d.ts +25 -0
  96. package/build/lib/subcommands/push.d.ts.map +1 -0
  97. package/build/lib/subcommands/push.js +41 -24
  98. package/build/lib/subcommands/push.js.map +1 -1
  99. package/build/lib/subcommands/shutdown.d.ts +12 -0
  100. package/build/lib/subcommands/shutdown.d.ts.map +1 -0
  101. package/build/lib/subcommands/shutdown.js +47 -22
  102. package/build/lib/subcommands/shutdown.js.map +1 -1
  103. package/build/lib/subcommands/spawn.d.ts +26 -0
  104. package/build/lib/subcommands/spawn.d.ts.map +1 -0
  105. package/build/lib/subcommands/spawn.js +42 -26
  106. package/build/lib/subcommands/spawn.js.map +1 -1
  107. package/build/lib/subcommands/terminate.d.ts +15 -0
  108. package/build/lib/subcommands/terminate.d.ts.map +1 -0
  109. package/build/lib/subcommands/terminate.js +16 -12
  110. package/build/lib/subcommands/terminate.js.map +1 -1
  111. package/build/lib/subcommands/ui.d.ts +24 -0
  112. package/build/lib/subcommands/ui.d.ts.map +1 -0
  113. package/build/lib/subcommands/ui.js +32 -20
  114. package/build/lib/subcommands/ui.js.map +1 -1
  115. package/build/lib/subcommands/uninstall.d.ts +16 -0
  116. package/build/lib/subcommands/uninstall.d.ts.map +1 -0
  117. package/build/lib/subcommands/uninstall.js +17 -12
  118. package/build/lib/subcommands/uninstall.js.map +1 -1
  119. package/lib/simctl.js +13 -3
  120. package/lib/subcommands/addmedia.js +1 -1
  121. package/lib/subcommands/bootstatus.js +2 -2
  122. package/lib/subcommands/create.js +2 -2
  123. package/lib/subcommands/erase.js +1 -1
  124. package/lib/subcommands/keychain.js +2 -2
  125. package/lib/subcommands/launch.js +1 -0
  126. package/lib/subcommands/list.js +6 -6
  127. package/lib/subcommands/location.js +1 -1
  128. package/lib/subcommands/openurl.js +1 -1
  129. package/lib/subcommands/spawn.js +2 -2
  130. package/package.json +28 -17
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [7.3.0](https://github.com/appium/node-simctl/compare/v7.2.2...v7.3.0) (2023-08-18)
2
+
3
+
4
+ ### Features
5
+
6
+ * Switch from babel to typescript ([#190](https://github.com/appium/node-simctl/issues/190)) ([bed549f](https://github.com/appium/node-simctl/commit/bed549f4be5c0261ebc2e479fdbed68db963fc15))
7
+
1
8
  ## [7.2.2](https://github.com/appium/node-simctl/compare/v7.2.1...v7.2.2) (2023-08-14)
2
9
 
3
10
 
package/build/index.js CHANGED
@@ -1,18 +1,10 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "Simctl", {
8
- enumerable: true,
9
- get: function () {
10
- return _simctl.default;
11
- }
12
- });
13
- exports.default = void 0;
14
- require("source-map-support/register");
15
- var _simctl = _interopRequireDefault(require("./lib/simctl"));
16
- var _default = _simctl.default;
17
- exports.default = _default;
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2ltY3RsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVmYXVsdCIsIlNpbWN0bCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNpbWN0bCBmcm9tICcuL2xpYi9zaW1jdGwnO1xuXG5leHBvcnQgeyBTaW1jdGwgfTtcbmV4cG9ydCBkZWZhdWx0IFNpbWN0bDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBa0MsSUFBQUMsUUFBQSxHQUduQkMsZUFBTTtBQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FBQUgsUUFBQSJ9
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Simctl = void 0;
7
+ const simctl_1 = __importDefault(require("./lib/simctl"));
8
+ exports.Simctl = simctl_1.default;
9
+ exports.default = simctl_1.default;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ export function getXcrunBinary(): string;
2
+ export const DEFAULT_EXEC_TIMEOUT: number;
3
+ export const SIM_RUNTIME_NAME: "com.apple.CoreSimulator.SimRuntime.";
4
+ /**
5
+ * "Normalize" the version, since iOS uses 'major.minor' but the runtimes can
6
+ * be 'major.minor.patch'
7
+ *
8
+ * @param {string} version - the string version
9
+ * @return {string} The version in 'major.minor' form
10
+ * @throws {Error} If the version not parseable by the `semver` package
11
+ */
12
+ export function normalizeVersion(version: string): string;
13
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../lib/helpers.js"],"names":[],"mappings":"AA0BO,yCAAgE;AAxBvE,0CAA4C;AAC5C,qEAA+D;AAE/D;;;;;;;GAOG;AACH,0CAJW,MAAM,GACL,MAAM,CASjB"}
@@ -1,24 +1,30 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getXcrunBinary = exports.SIM_RUNTIME_NAME = exports.DEFAULT_EXEC_TIMEOUT = void 0;
8
- exports.normalizeVersion = normalizeVersion;
9
- require("source-map-support/register");
10
- var _semver = _interopRequireDefault(require("semver"));
11
- const DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getXcrunBinary = exports.normalizeVersion = exports.SIM_RUNTIME_NAME = exports.DEFAULT_EXEC_TIMEOUT = void 0;
7
+ const semver_1 = __importDefault(require("semver"));
8
+ const DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000; // ms
12
9
  exports.DEFAULT_EXEC_TIMEOUT = DEFAULT_EXEC_TIMEOUT;
13
10
  const SIM_RUNTIME_NAME = 'com.apple.CoreSimulator.SimRuntime.';
14
11
  exports.SIM_RUNTIME_NAME = SIM_RUNTIME_NAME;
12
+ /**
13
+ * "Normalize" the version, since iOS uses 'major.minor' but the runtimes can
14
+ * be 'major.minor.patch'
15
+ *
16
+ * @param {string} version - the string version
17
+ * @return {string} The version in 'major.minor' form
18
+ * @throws {Error} If the version not parseable by the `semver` package
19
+ */
15
20
  function normalizeVersion(version) {
16
- const semverVersion = _semver.default.coerce(version);
17
- if (!semverVersion) {
18
- throw new Error(`Unable to parse version '${version}'`);
19
- }
20
- return `${semverVersion.major}.${semverVersion.minor}`;
21
+ const semverVersion = semver_1.default.coerce(version);
22
+ if (!semverVersion) {
23
+ throw new Error(`Unable to parse version '${version}'`);
24
+ }
25
+ return `${semverVersion.major}.${semverVersion.minor}`;
21
26
  }
27
+ exports.normalizeVersion = normalizeVersion;
22
28
  const getXcrunBinary = () => process.env.XCRUN_BINARY || 'xcrun';
23
29
  exports.getXcrunBinary = getXcrunBinary;
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2VtdmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJERUZBVUxUX0VYRUNfVElNRU9VVCIsImV4cG9ydHMiLCJTSU1fUlVOVElNRV9OQU1FIiwibm9ybWFsaXplVmVyc2lvbiIsInZlcnNpb24iLCJzZW12ZXJWZXJzaW9uIiwic2VtdmVyIiwiY29lcmNlIiwiRXJyb3IiLCJtYWpvciIsIm1pbm9yIiwiZ2V0WGNydW5CaW5hcnkiLCJwcm9jZXNzIiwiZW52IiwiWENSVU5fQklOQVJZIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2hlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5jb25zdCBERUZBVUxUX0VYRUNfVElNRU9VVCA9IDEwICogNjAgKiAxMDAwOyAvLyBtc1xuY29uc3QgU0lNX1JVTlRJTUVfTkFNRSA9ICdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLic7XG5cbi8qKlxuICogXCJOb3JtYWxpemVcIiB0aGUgdmVyc2lvbiwgc2luY2UgaU9TIHVzZXMgJ21ham9yLm1pbm9yJyBidXQgdGhlIHJ1bnRpbWVzIGNhblxuICogYmUgJ21ham9yLm1pbm9yLnBhdGNoJ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gdGhlIHN0cmluZyB2ZXJzaW9uXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSB2ZXJzaW9uIGluICdtYWpvci5taW5vcicgZm9ybVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB2ZXJzaW9uIG5vdCBwYXJzZWFibGUgYnkgdGhlIGBzZW12ZXJgIHBhY2thZ2VcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplVmVyc2lvbiAodmVyc2lvbikge1xuICBjb25zdCBzZW12ZXJWZXJzaW9uID0gc2VtdmVyLmNvZXJjZSh2ZXJzaW9uKTtcbiAgaWYgKCFzZW12ZXJWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgdmVyc2lvbiAnJHt2ZXJzaW9ufSdgKTtcbiAgfVxuICByZXR1cm4gYCR7c2VtdmVyVmVyc2lvbi5tYWpvcn0uJHtzZW12ZXJWZXJzaW9uLm1pbm9yfWA7XG59XG5cbmV4cG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBTSU1fUlVOVElNRV9OQU1FLFxuICBub3JtYWxpemVWZXJzaW9uLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldFhjcnVuQmluYXJ5ID0gKCkgPT4gcHJvY2Vzcy5lbnYuWENSVU5fQklOQVJZIHx8ICd4Y3J1bic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLE1BQU1DLG9CQUFvQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtBQUFDQyxPQUFBLENBQUFELG9CQUFBLEdBQUFBLG9CQUFBO0FBQzVDLE1BQU1FLGdCQUFnQixHQUFHLHFDQUFxQztBQUFDRCxPQUFBLENBQUFDLGdCQUFBLEdBQUFBLGdCQUFBO0FBVS9ELFNBQVNDLGdCQUFnQkEsQ0FBRUMsT0FBTyxFQUFFO0VBQ2xDLE1BQU1DLGFBQWEsR0FBR0MsZUFBTSxDQUFDQyxNQUFNLENBQUNILE9BQU8sQ0FBQztFQUM1QyxJQUFJLENBQUNDLGFBQWEsRUFBRTtJQUNsQixNQUFNLElBQUlHLEtBQUssQ0FBRSw0QkFBMkJKLE9BQVEsR0FBRSxDQUFDO0VBQ3pEO0VBQ0EsT0FBUSxHQUFFQyxhQUFhLENBQUNJLEtBQU0sSUFBR0osYUFBYSxDQUFDSyxLQUFNLEVBQUM7QUFDeEQ7QUFPTyxNQUFNQyxjQUFjLEdBQUdBLENBQUEsS0FBTUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFlBQVksSUFBSSxPQUFPO0FBQUNiLE9BQUEsQ0FBQVUsY0FBQSxHQUFBQSxjQUFBIn0=
30
+ //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["_semver","_interopRequireDefault","require","DEFAULT_EXEC_TIMEOUT","exports","SIM_RUNTIME_NAME","normalizeVersion","version","semverVersion","semver","coerce","Error","major","minor","getXcrunBinary","process","env","XCRUN_BINARY"],"sources":["../../lib/helpers.js"],"sourcesContent":["import semver from 'semver';\n\nconst DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000; // ms\nconst SIM_RUNTIME_NAME = 'com.apple.CoreSimulator.SimRuntime.';\n\n/**\n * \"Normalize\" the version, since iOS uses 'major.minor' but the runtimes can\n * be 'major.minor.patch'\n *\n * @param {string} version - the string version\n * @return {string} The version in 'major.minor' form\n * @throws {Error} If the version not parseable by the `semver` package\n */\nfunction normalizeVersion (version) {\n const semverVersion = semver.coerce(version);\n if (!semverVersion) {\n throw new Error(`Unable to parse version '${version}'`);\n }\n return `${semverVersion.major}.${semverVersion.minor}`;\n}\n\nexport {\n DEFAULT_EXEC_TIMEOUT, SIM_RUNTIME_NAME,\n normalizeVersion,\n};\n\nexport const getXcrunBinary = () => process.env.XCRUN_BINARY || 'xcrun';\n"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,MAAMC,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAACC,OAAA,CAAAD,oBAAA,GAAAA,oBAAA;AAC5C,MAAME,gBAAgB,GAAG,qCAAqC;AAACD,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAU/D,SAASC,gBAAgBA,CAAEC,OAAO,EAAE;EAClC,MAAMC,aAAa,GAAGC,eAAM,CAACC,MAAM,CAACH,OAAO,CAAC;EAC5C,IAAI,CAACC,aAAa,EAAE;IAClB,MAAM,IAAIG,KAAK,CAAE,4BAA2BJ,OAAQ,GAAE,CAAC;EACzD;EACA,OAAQ,GAAEC,aAAa,CAACI,KAAM,IAAGJ,aAAa,CAACK,KAAM,EAAC;AACxD;AAOO,MAAMC,cAAc,GAAGA,CAAA,KAAMC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,OAAO;AAACb,OAAA,CAAAU,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.js"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK;AAoBhD,oDAAoB;AAnBtB,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAmBvC,4CAAgB;AAjBxC;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAE,OAAO;IAChC,MAAM,aAAa,GAAG,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,GAAG,CAAC,CAAC;KACzD;IACD,OAAO,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC;AAIC,4CAAgB;AAGX,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC;AAA3D,QAAA,cAAc,kBAA6C"}
@@ -0,0 +1,4 @@
1
+ export default log;
2
+ export const LOG_PREFIX: "simctl";
3
+ declare const log: any;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAGA,kCAA4B;AAU5B,uBAAwB"}
@@ -1,25 +1,19 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.LOG_PREFIX = void 0;
8
- require("source-map-support/register");
9
- var _npmlog = _interopRequireDefault(require("npmlog"));
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LOG_PREFIX = void 0;
7
+ const npmlog_1 = __importDefault(require("npmlog"));
10
8
  const LOG_PREFIX = 'simctl';
11
9
  exports.LOG_PREFIX = LOG_PREFIX;
12
10
  function getLogger() {
13
- const logger = global._global_npmlog || _npmlog.default;
14
- if (!logger.debug) {
15
- logger.addLevel('debug', 1000, {
16
- fg: 'blue',
17
- bg: 'black'
18
- }, 'dbug');
19
- }
20
- return logger;
11
+ const logger = global._global_npmlog || npmlog_1.default;
12
+ if (!logger.debug) {
13
+ logger.addLevel('debug', 1000, { fg: 'blue', bg: 'black' }, 'dbug');
14
+ }
15
+ return logger;
21
16
  }
22
17
  const log = getLogger();
23
- var _default = log;
24
- exports.default = _default;
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnBtbG9nIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJMT0dfUFJFRklYIiwiZXhwb3J0cyIsImdldExvZ2dlciIsImxvZ2dlciIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibnBtbG9nIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJsb2ciLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuXG5jb25zdCBMT0dfUFJFRklYID0gJ3NpbWN0bCc7XG5cbmZ1bmN0aW9uIGdldExvZ2dlciAoKSB7XG4gIGNvbnN0IGxvZ2dlciA9IGdsb2JhbC5fZ2xvYmFsX25wbWxvZyB8fCBucG1sb2c7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxuICByZXR1cm4gbG9nZ2VyO1xufVxuXG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgTE9HX1BSRUZJWCB9O1xuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLE1BQU1DLFVBQVUsR0FBRyxRQUFRO0FBQUNDLE9BQUEsQ0FBQUQsVUFBQSxHQUFBQSxVQUFBO0FBRTVCLFNBQVNFLFNBQVNBLENBQUEsRUFBSTtFQUNwQixNQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsY0FBYyxJQUFJQyxlQUFNO0VBQzlDLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxLQUFLLEVBQUU7SUFDakJKLE1BQU0sQ0FBQ0ssUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7TUFBRUMsRUFBRSxFQUFFLE1BQU07TUFBRUMsRUFBRSxFQUFFO0lBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUNyRTtFQUNBLE9BQU9QLE1BQU07QUFDZjtBQUVBLE1BQU1RLEdBQUcsR0FBR1QsU0FBUyxDQUFDLENBQUM7QUFBQyxJQUFBVSxRQUFBLEdBR1RELEdBQUc7QUFBQVYsT0FBQSxDQUFBWSxPQUFBLEdBQUFELFFBQUEifQ==
18
+ exports.default = log;
19
+ //# sourceMappingURL=logger.js.map
@@ -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,CAAC,CAAC;AAAC,IAAAU,QAAA,GAGTD,GAAG;AAAAV,OAAA,CAAAY,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAG5B,MAAM,UAAU,GAAG,QAAQ,CAAC;AAYnB,gCAAU;AAVnB,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,gBAAM,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;KACrE;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAGxB,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,131 @@
1
+ export default Simctl;
2
+ export type ExecOpts = {
3
+ /**
4
+ * [[]] - The list of additional subcommand arguments.
5
+ * It's empty by default.
6
+ */
7
+ args: string[];
8
+ /**
9
+ * [{}] - Environment variables mapping. All these variables
10
+ * will be passed Simulator and used in the executing function.
11
+ */
12
+ env: any;
13
+ /**
14
+ * [true] - Set it to _false_ to throw execution errors
15
+ * immediately without logging any additional information.
16
+ */
17
+ logErrors: boolean;
18
+ /**
19
+ * [false] - Whether to execute the given command
20
+ * 'synchronously' or 'asynchronously'. Affects the returned result of the function.
21
+ */
22
+ asynchronous: boolean;
23
+ /**
24
+ * - Explicitly sets streams encoding for the executed
25
+ * command input and outputs.
26
+ */
27
+ encoding: string | null;
28
+ /**
29
+ * - One or more architecture names to be enforced while
30
+ * executing xcrun. See https://github.com/appium/appium/issues/18966 for more details.
31
+ */
32
+ architectures: string | string[];
33
+ };
34
+ export type SimctlOpts = {
35
+ /**
36
+ * - The xcrun properties. Currently only one property
37
+ * is supported, which is `path` and it by default contains `null`, which enforces
38
+ * the instance to automatically detect the full path to `xcrun` tool and to throw
39
+ * an exception if it cannot be detected. If the path is set upon instance creation
40
+ * then it is going to be used by `exec` and no autodetection will happen.
41
+ */
42
+ xcrun: any | null;
43
+ /**
44
+ * [600000] - The maximum number of milliseconds
45
+ * to wait for single synchronous xcrun command.
46
+ */
47
+ execTimeout: number;
48
+ /**
49
+ * [true] - Whether to wire xcrun error messages
50
+ * into debug log before throwing them.
51
+ */
52
+ logErrors: boolean;
53
+ /**
54
+ * - The unique identifier of the current device, which is
55
+ * going to be implicitly passed to all methods, which require it. It can either be set
56
+ * upon instance creation if it is already known in advance or later when/if needed via the
57
+ * corresponding instance setter.
58
+ */
59
+ udid: string | null;
60
+ /**
61
+ * - Full path to the set of devices that you want to manage.
62
+ * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
63
+ */
64
+ devicesSetPath: string | null;
65
+ };
66
+ /**
67
+ * @typedef {Object} ExecOpts
68
+ * @property {string[]} args [[]] - The list of additional subcommand arguments.
69
+ * It's empty by default.
70
+ * @property {Object} env [{}] - Environment variables mapping. All these variables
71
+ * will be passed Simulator and used in the executing function.
72
+ * @property {boolean} logErrors [true] - Set it to _false_ to throw execution errors
73
+ * immediately without logging any additional information.
74
+ * @property {boolean} asynchronous [false] - Whether to execute the given command
75
+ * 'synchronously' or 'asynchronously'. Affects the returned result of the function.
76
+ * @property {string?} encoding - Explicitly sets streams encoding for the executed
77
+ * command input and outputs.
78
+ * @property {string|string[]} architectures - One or more architecture names to be enforced while
79
+ * executing xcrun. See https://github.com/appium/appium/issues/18966 for more details.
80
+ */
81
+ /**
82
+ * @typedef {Object} SimctlOpts
83
+ * @property {Object?} xcrun - The xcrun properties. Currently only one property
84
+ * is supported, which is `path` and it by default contains `null`, which enforces
85
+ * the instance to automatically detect the full path to `xcrun` tool and to throw
86
+ * an exception if it cannot be detected. If the path is set upon instance creation
87
+ * then it is going to be used by `exec` and no autodetection will happen.
88
+ * @property {number} execTimeout [600000] - The maximum number of milliseconds
89
+ * to wait for single synchronous xcrun command.
90
+ * @property {boolean} logErrors [true] - Whether to wire xcrun error messages
91
+ * into debug log before throwing them.
92
+ * @property {string?} udid - The unique identifier of the current device, which is
93
+ * going to be implicitly passed to all methods, which require it. It can either be set
94
+ * upon instance creation if it is already known in advance or later when/if needed via the
95
+ * corresponding instance setter.
96
+ * @property {string?} devicesSetPath - Full path to the set of devices that you want to manage.
97
+ * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
98
+ */
99
+ export class Simctl {
100
+ /**
101
+ * @param {Partial<SimctlOpts>} opts
102
+ */
103
+ constructor(opts?: Partial<SimctlOpts>);
104
+ /** @type {any?} */
105
+ xcrun: any | null;
106
+ /** @type {number} */
107
+ execTimeout: number;
108
+ /** @type {boolean} */
109
+ logErrors: boolean;
110
+ _udid: string | null;
111
+ _devicesSetPath: string | null;
112
+ set udid(arg: string | null);
113
+ get udid(): string | null;
114
+ set devicesSetPath(arg: string | null);
115
+ get devicesSetPath(): string | null;
116
+ requireUdid(commandName?: null): string;
117
+ requireXcrun(): Promise<any>;
118
+ /**
119
+ * Execute the particular simctl command.
120
+ *
121
+ * @param {string} subcommand - One of available simctl subcommands.
122
+ * Execute `xcrun simctl` in Terminal to see the full list
123
+ * of available subcommands.
124
+ * @param {Partial<ExecOpts>} opts
125
+ * @return {Promise<import('teen_process').TeenProcessExecResult|import('teen_process').SubProcess>} Either the result of teen process's `exec` or
126
+ * `SubProcess` instance depending of `opts.asynchronous` value.
127
+ * @throws {Error} If the simctl subcommand command returns non-zero return code.
128
+ */
129
+ exec(subcommand: string, opts?: Partial<ExecOpts>): Promise<import("teen_process").TeenProcessExecResult<any> | import('teen_process').SubProcess>;
130
+ }
131
+ //# sourceMappingURL=simctl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../../lib/simctl.js"],"names":[],"mappings":";;;;;;UAoBc,MAAM,EAAE;;;;;;;;;;eAIR,OAAO;;;;;kBAEP,OAAO;;;;;cAEP,MAAM;;;;;mBAEN,MAAM,GAAC,MAAM,EAAE;;;;;;;;;;;;;;;iBAYf,MAAM;;;;;eAEN,OAAO;;;;;;;UAEP,MAAM;;;;;oBAIN,MAAM;;AAhCpB;;;;;;;;;;;;;;GAcG;AAGH;;;;;;;;;;;;;;;;;GAiBG;AAGH;IAUE;;OAEG;IACH,mBAFW,QAAQ,UAAU,CAAC,EAU7B;IApBD,mBAAmB;IACnB,OADW,GAAG,QACR;IAEN,qBAAqB;IACrB,aADW,MAAM,CACL;IAEZ,sBAAsB;IACtB,WADW,OAAO,CACR;IAWR,qBAAkD;IAClD,+BAAgF;IAGlF,6BAEC;IAED,0BAEC;IAED,uCAEC;IAED,oCAEC;IAED,wCAMC;IAED,6BAYC;IAED;;;;;;;;;;OAUG;IACH,iBARW,MAAM,SAGN,QAAQ,QAAQ,CAAC,GAChB,QAAQ,oDAA6C,OAAO,cAAc,EAAE,UAAU,CAAC,CAyDlG;CACF"}
@@ -1,108 +1,184 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
6
17
  });
7
- exports.default = exports.Simctl = void 0;
8
- require("source-map-support/register");
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
- var _index = _interopRequireDefault(require("./subcommands/index.js"));
11
- var _which = _interopRequireDefault(require("which"));
12
- var _logger = _interopRequireWildcard(require("./logger"));
13
- var _helpers = require("./helpers");
14
- var _teen_process = require("teen_process");
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Simctl = void 0;
30
+ const lodash_1 = __importDefault(require("lodash"));
31
+ const index_js_1 = __importDefault(require("./subcommands/index.js"));
32
+ const which_1 = __importDefault(require("which"));
33
+ const logger_1 = __importStar(require("./logger"));
34
+ const helpers_1 = require("./helpers");
35
+ const teen_process_1 = require("teen_process");
17
36
  const SIMCTL_ENV_PREFIX = 'SIMCTL_CHILD_';
18
37
  const DEFAULT_OPTS = {
19
- xcrun: {
20
- path: null
21
- },
22
- execTimeout: _helpers.DEFAULT_EXEC_TIMEOUT,
23
- logErrors: true
38
+ xcrun: {
39
+ path: null,
40
+ },
41
+ execTimeout: helpers_1.DEFAULT_EXEC_TIMEOUT,
42
+ logErrors: true,
24
43
  };
44
+ /**
45
+ * @typedef {Object} ExecOpts
46
+ * @property {string[]} args [[]] - The list of additional subcommand arguments.
47
+ * It's empty by default.
48
+ * @property {Object} env [{}] - Environment variables mapping. All these variables
49
+ * will be passed Simulator and used in the executing function.
50
+ * @property {boolean} logErrors [true] - Set it to _false_ to throw execution errors
51
+ * immediately without logging any additional information.
52
+ * @property {boolean} asynchronous [false] - Whether to execute the given command
53
+ * 'synchronously' or 'asynchronously'. Affects the returned result of the function.
54
+ * @property {string?} encoding - Explicitly sets streams encoding for the executed
55
+ * command input and outputs.
56
+ * @property {string|string[]} architectures - One or more architecture names to be enforced while
57
+ * executing xcrun. See https://github.com/appium/appium/issues/18966 for more details.
58
+ */
59
+ /**
60
+ * @typedef {Object} SimctlOpts
61
+ * @property {Object?} xcrun - The xcrun properties. Currently only one property
62
+ * is supported, which is `path` and it by default contains `null`, which enforces
63
+ * the instance to automatically detect the full path to `xcrun` tool and to throw
64
+ * an exception if it cannot be detected. If the path is set upon instance creation
65
+ * then it is going to be used by `exec` and no autodetection will happen.
66
+ * @property {number} execTimeout [600000] - The maximum number of milliseconds
67
+ * to wait for single synchronous xcrun command.
68
+ * @property {boolean} logErrors [true] - Whether to wire xcrun error messages
69
+ * into debug log before throwing them.
70
+ * @property {string?} udid - The unique identifier of the current device, which is
71
+ * going to be implicitly passed to all methods, which require it. It can either be set
72
+ * upon instance creation if it is already known in advance or later when/if needed via the
73
+ * corresponding instance setter.
74
+ * @property {string?} devicesSetPath - Full path to the set of devices that you want to manage.
75
+ * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
76
+ */
25
77
  class Simctl {
26
- constructor(opts = {}) {
27
- opts = _lodash.default.cloneDeep(opts);
28
- _lodash.default.defaultsDeep(opts, DEFAULT_OPTS);
29
- for (const key of _lodash.default.keys(DEFAULT_OPTS)) {
30
- this[key] = opts[key];
78
+ /**
79
+ * @param {Partial<SimctlOpts>} opts
80
+ */
81
+ constructor(opts = {}) {
82
+ opts = lodash_1.default.cloneDeep(opts);
83
+ lodash_1.default.defaultsDeep(opts, DEFAULT_OPTS);
84
+ for (const key of lodash_1.default.keys(DEFAULT_OPTS)) {
85
+ this[key] = opts[key];
86
+ }
87
+ this._udid = lodash_1.default.isNil(opts.udid) ? null : opts.udid;
88
+ this._devicesSetPath = lodash_1.default.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;
89
+ }
90
+ set udid(value) {
91
+ this._udid = value;
92
+ }
93
+ get udid() {
94
+ return this._udid;
95
+ }
96
+ set devicesSetPath(value) {
97
+ this._devicesSetPath = value;
31
98
  }
32
- this._udid = _lodash.default.isNil(opts.udid) ? null : opts.udid;
33
- this._devicesSetPath = _lodash.default.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;
34
- }
35
- set udid(value) {
36
- this._udid = value;
37
- }
38
- get udid() {
39
- return this._udid;
40
- }
41
- set devicesSetPath(value) {
42
- this._devicesSetPath = value;
43
- }
44
- get devicesSetPath() {
45
- return this._devicesSetPath;
46
- }
47
- requireUdid(commandName = null) {
48
- if (!this.udid) {
49
- throw new Error(`udid is required to be set for ` + (commandName ? `the '${commandName}' command` : 'this simctl command'));
99
+ get devicesSetPath() {
100
+ return this._devicesSetPath;
50
101
  }
51
- return this.udid;
52
- }
53
- async requireXcrun() {
54
- const xcrunBinary = (0, _helpers.getXcrunBinary)();
55
- if (!this.xcrun.path) {
56
- try {
57
- this.xcrun.path = await (0, _which.default)(xcrunBinary);
58
- } catch (e) {
59
- throw new Error(`${xcrunBinary} tool has not been found in PATH. ` + `Are Xcode developers tools installed?`);
60
- }
102
+ requireUdid(commandName = null) {
103
+ if (!this.udid) {
104
+ throw new Error(`udid is required to be set for ` +
105
+ (commandName ? `the '${commandName}' command` : 'this simctl command'));
106
+ }
107
+ return this.udid;
61
108
  }
62
- return this.xcrun.path;
63
- }
64
- async exec(subcommand, opts = {}) {
65
- let {
66
- args = [],
67
- env = {},
68
- asynchronous = false,
69
- encoding,
70
- logErrors = true,
71
- architectures
72
- } = opts;
73
- args = ['simctl', ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []), subcommand, ...args];
74
- env = _lodash.default.defaults(_lodash.default.mapKeys(env, (value, key) => _lodash.default.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`), process.env);
75
- const execOpts = {
76
- env,
77
- encoding
78
- };
79
- if (!asynchronous) {
80
- execOpts.timeout = this.execTimeout;
109
+ async requireXcrun() {
110
+ const xcrunBinary = (0, helpers_1.getXcrunBinary)();
111
+ if (!this.xcrun.path) {
112
+ try {
113
+ this.xcrun.path = await (0, which_1.default)(xcrunBinary);
114
+ }
115
+ catch (e) {
116
+ throw new Error(`${xcrunBinary} tool has not been found in PATH. ` +
117
+ `Are Xcode developers tools installed?`);
118
+ }
119
+ }
120
+ return this.xcrun.path;
81
121
  }
82
- const xcrun = await this.requireXcrun();
83
- try {
84
- let execArgs = [xcrun, args, execOpts];
85
- if (!_lodash.default.isEmpty(architectures)) {
86
- const archArgs = _lodash.default.flatMap((_lodash.default.isArray(architectures) ? architectures : [architectures]).map(arch => ['-arch', arch]));
87
- execArgs = ['arch', [...archArgs, xcrun, ...args], execOpts];
88
- }
89
- return asynchronous ? new _teen_process.SubProcess(...execArgs) : await (0, _teen_process.exec)(...execArgs);
90
- } catch (e) {
91
- if (!this.logErrors || !logErrors) {} else if (e.stderr) {
92
- const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
93
- _logger.default.debug(_logger.LOG_PREFIX, msg);
94
- e.message = msg;
95
- } else {
96
- _logger.default.debug(_logger.LOG_PREFIX, e.message);
97
- }
98
- throw e;
122
+ /**
123
+ * Execute the particular simctl command.
124
+ *
125
+ * @param {string} subcommand - One of available simctl subcommands.
126
+ * Execute `xcrun simctl` in Terminal to see the full list
127
+ * of available subcommands.
128
+ * @param {Partial<ExecOpts>} opts
129
+ * @return {Promise<import('teen_process').TeenProcessExecResult|import('teen_process').SubProcess>} Either the result of teen process's `exec` or
130
+ * `SubProcess` instance depending of `opts.asynchronous` value.
131
+ * @throws {Error} If the simctl subcommand command returns non-zero return code.
132
+ */
133
+ async exec(subcommand, opts = {}) {
134
+ let { args = [], env = {}, asynchronous = false, encoding, logErrors = true, architectures, } = opts;
135
+ // run a particular simctl command
136
+ args = ['simctl',
137
+ ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []),
138
+ subcommand,
139
+ ...args
140
+ ];
141
+ // Prefix all passed in environment variables with 'SIMCTL_CHILD_', simctl
142
+ // will then pass these to the child (spawned) process.
143
+ env = lodash_1.default.defaults(lodash_1.default.mapKeys(env, (value, key) => lodash_1.default.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`), process.env);
144
+ const execOpts = {
145
+ env,
146
+ encoding,
147
+ };
148
+ if (!asynchronous) {
149
+ execOpts.timeout = this.execTimeout;
150
+ }
151
+ const xcrun = await this.requireXcrun();
152
+ try {
153
+ let execArgs = [xcrun, args, execOpts];
154
+ if (!lodash_1.default.isEmpty(architectures)) {
155
+ const archArgs = lodash_1.default.flatMap((lodash_1.default.isArray(architectures) ? architectures : [architectures]).map((arch) => ['-arch', arch]));
156
+ execArgs = ['arch', [...archArgs, xcrun, ...args], execOpts];
157
+ }
158
+ // @ts-ignore We know what we are doing here
159
+ return asynchronous ? new teen_process_1.SubProcess(...execArgs) : await (0, teen_process_1.exec)(...execArgs);
160
+ }
161
+ catch (e) {
162
+ if (!this.logErrors || !logErrors) {
163
+ // if we don't want to see the errors, just throw and allow the calling
164
+ // code do what it wants
165
+ }
166
+ else if (e.stderr) {
167
+ const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
168
+ logger_1.default.debug(logger_1.LOG_PREFIX, msg);
169
+ e.message = msg;
170
+ }
171
+ else {
172
+ logger_1.default.debug(logger_1.LOG_PREFIX, e.message);
173
+ }
174
+ throw e;
175
+ }
99
176
  }
100
- }
101
177
  }
102
178
  exports.Simctl = Simctl;
103
- for (const [fnName, fn] of _lodash.default.toPairs(_index.default)) {
104
- Simctl.prototype[fnName] = fn;
179
+ // add all the subcommands to the Simctl prototype
180
+ for (const [fnName, fn] of lodash_1.default.toPairs(index_js_1.default)) {
181
+ Simctl.prototype[fnName] = fn;
105
182
  }
106
- var _default = Simctl;
107
- exports.default = _default;
108
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaW5kZXgiLCJfd2hpY2giLCJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaGVscGVycyIsIl90ZWVuX3Byb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsIl9kZXZpY2VzU2V0UGF0aCIsImRldmljZXNTZXRQYXRoIiwidmFsdWUiLCJyZXF1aXJlVWRpZCIsImNvbW1hbmROYW1lIiwiRXJyb3IiLCJyZXF1aXJlWGNydW4iLCJ4Y3J1bkJpbmFyeSIsImdldFhjcnVuQmluYXJ5Iiwid2hpY2giLCJlIiwiZXhlYyIsInN1YmNvbW1hbmQiLCJhcmdzIiwiZW52IiwiYXN5bmNocm9ub3VzIiwiZW5jb2RpbmciLCJhcmNoaXRlY3R1cmVzIiwiZGVmYXVsdHMiLCJtYXBLZXlzIiwic3RhcnRzV2l0aCIsInByb2Nlc3MiLCJleGVjT3B0cyIsInRpbWVvdXQiLCJleGVjQXJncyIsImlzRW1wdHkiLCJhcmNoQXJncyIsImZsYXRNYXAiLCJpc0FycmF5IiwibWFwIiwiYXJjaCIsIlN1YlByb2Nlc3MiLCJ0cEV4ZWMiLCJzdGRlcnIiLCJtc2ciLCJ0cmltIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwibWVzc2FnZSIsImV4cG9ydHMiLCJmbk5hbWUiLCJmbiIsInRvUGFpcnMiLCJzdWJjb21tYW5kcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3NpbWN0bC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHN1YmNvbW1hbmRzIGZyb20gJy4vc3ViY29tbWFuZHMvaW5kZXguanMnO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBnZXRYY3J1bkJpbmFyeSxcbn0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGV4ZWMgYXMgdHBFeGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3QgU0lNQ1RMX0VOVl9QUkVGSVggPSAnU0lNQ1RMX0NISUxEXyc7XG5jb25zdCBERUZBVUxUX09QVFMgPSB7XG4gIHhjcnVuOiB7XG4gICAgcGF0aDogbnVsbCxcbiAgfSxcbiAgZXhlY1RpbWVvdXQ6IERFRkFVTFRfRVhFQ19USU1FT1VULFxuICBsb2dFcnJvcnM6IHRydWUsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBhcmdzIFtbXV0gLSBUaGUgbGlzdCBvZiBhZGRpdGlvbmFsIHN1YmNvbW1hbmQgYXJndW1lbnRzLlxuICogSXQncyBlbXB0eSBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHtPYmplY3R9IGVudiBbe31dIC0gRW52aXJvbm1lbnQgdmFyaWFibGVzIG1hcHBpbmcuIEFsbCB0aGVzZSB2YXJpYWJsZXNcbiAqIHdpbGwgYmUgcGFzc2VkIFNpbXVsYXRvciBhbmQgdXNlZCBpbiB0aGUgZXhlY3V0aW5nIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gU2V0IGl0IHRvIF9mYWxzZV8gdG8gdGhyb3cgZXhlY3V0aW9uIGVycm9yc1xuICogaW1tZWRpYXRlbHkgd2l0aG91dCBsb2dnaW5nIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhc3luY2hyb25vdXMgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gY29tbWFuZFxuICogJ3N5bmNocm9ub3VzbHknIG9yICdhc3luY2hyb25vdXNseScuIEFmZmVjdHMgdGhlIHJldHVybmVkIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkge3N0cmluZz99IGVuY29kaW5nIC0gRXhwbGljaXRseSBzZXRzIHN0cmVhbXMgZW5jb2RpbmcgZm9yIHRoZSBleGVjdXRlZFxuICogY29tbWFuZCBpbnB1dCBhbmQgb3V0cHV0cy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfHN0cmluZ1tdfSBhcmNoaXRlY3R1cmVzIC0gT25lIG9yIG1vcmUgYXJjaGl0ZWN0dXJlIG5hbWVzIHRvIGJlIGVuZm9yY2VkIHdoaWxlXG4gKiBleGVjdXRpbmcgeGNydW4uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS9pc3N1ZXMvMTg5NjYgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltY3RsT3B0c1xuICogQHByb3BlcnR5IHtPYmplY3Q/fSB4Y3J1biAtIFRoZSB4Y3J1biBwcm9wZXJ0aWVzLiBDdXJyZW50bHkgb25seSBvbmUgcHJvcGVydHlcbiAqIGlzIHN1cHBvcnRlZCwgd2hpY2ggaXMgYHBhdGhgIGFuZCBpdCBieSBkZWZhdWx0IGNvbnRhaW5zIGBudWxsYCwgd2hpY2ggZW5mb3JjZXNcbiAqIHRoZSBpbnN0YW5jZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aGUgZnVsbCBwYXRoIHRvIGB4Y3J1bmAgdG9vbCBhbmQgdG8gdGhyb3dcbiAqIGFuIGV4Y2VwdGlvbiBpZiBpdCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIElmIHRoZSBwYXRoIGlzIHNldCB1cG9uIGluc3RhbmNlIGNyZWF0aW9uXG4gKiB0aGVuIGl0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgYGV4ZWNgIGFuZCBubyBhdXRvZGV0ZWN0aW9uIHdpbGwgaGFwcGVuLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGV4ZWNUaW1lb3V0IFs2MDAwMDBdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbGxpc2Vjb25kc1xuICogdG8gd2FpdCBmb3Igc2luZ2xlIHN5bmNocm9ub3VzIHhjcnVuIGNvbW1hbmQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvZ0Vycm9ycyBbdHJ1ZV0gLSBXaGV0aGVyIHRvIHdpcmUgeGNydW4gZXJyb3IgbWVzc2FnZXNcbiAqIGludG8gZGVidWcgbG9nIGJlZm9yZSB0aHJvd2luZyB0aGVtLlxuICogQHByb3BlcnR5IHtzdHJpbmc/fSB1ZGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXJyZW50IGRldmljZSwgd2hpY2ggaXNcbiAqIGdvaW5nIHRvIGJlIGltcGxpY2l0bHkgcGFzc2VkIHRvIGFsbCBtZXRob2RzLCB3aGljaCByZXF1aXJlIGl0LiBJdCBjYW4gZWl0aGVyIGJlIHNldFxuICogdXBvbiBpbnN0YW5jZSBjcmVhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duIGluIGFkdmFuY2Ugb3IgbGF0ZXIgd2hlbi9pZiBuZWVkZWQgdmlhIHRoZVxuICogY29ycmVzcG9uZGluZyBpbnN0YW5jZSBzZXR0ZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZz99IGRldmljZXNTZXRQYXRoIC0gRnVsbCBwYXRoIHRvIHRoZSBzZXQgb2YgZGV2aWNlcyB0aGF0IHlvdSB3YW50IHRvIG1hbmFnZS5cbiAqIEJ5IGRlZmF1bHQgdGhpcyBwYXRoIHVzdWFsbHkgZXF1YWxzIHRvIH4vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9EZXZpY2VzXG4gKi9cblxuXG5jbGFzcyBTaW1jdGwge1xuICAvKipcbiAgICogQHBhcmFtIHtTaW1jdGxPcHRzfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgb3B0cyA9IF8uY2xvbmVEZWVwKG9wdHMpO1xuICAgIF8uZGVmYXVsdHNEZWVwKG9wdHMsIERFRkFVTFRfT1BUUyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgXy5rZXlzKERFRkFVTFRfT1BUUykpIHtcbiAgICAgIHRoaXNba2V5XSA9IG9wdHNba2V5XTtcbiAgICB9XG4gICAgdGhpcy5fdWRpZCA9IF8uaXNOaWwob3B0cy51ZGlkKSA/IG51bGwgOiBvcHRzLnVkaWQ7XG4gICAgdGhpcy5fZGV2aWNlc1NldFBhdGggPSBfLmlzTmlsKG9wdHMuZGV2aWNlc1NldFBhdGgpID8gbnVsbCA6IG9wdHMuZGV2aWNlc1NldFBhdGg7XG4gIH1cblxuICBzZXQgdWRpZCAodmFsdWUpIHtcbiAgICB0aGlzLl91ZGlkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdWRpZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VkaWQ7XG4gIH1cblxuICBzZXQgZGV2aWNlc1NldFBhdGggKHZhbHVlKSB7XG4gICAgdGhpcy5fZGV2aWNlc1NldFBhdGggPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBkZXZpY2VzU2V0UGF0aCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RldmljZXNTZXRQYXRoO1xuICB9XG5cbiAgcmVxdWlyZVVkaWQgKGNvbW1hbmROYW1lID0gbnVsbCkge1xuICAgIGlmICghdGhpcy51ZGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVkaWQgaXMgcmVxdWlyZWQgdG8gYmUgc2V0IGZvciBgICtcbiAgICAgICAgKGNvbW1hbmROYW1lID8gYHRoZSAnJHtjb21tYW5kTmFtZX0nIGNvbW1hbmRgIDogJ3RoaXMgc2ltY3RsIGNvbW1hbmQnKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVkaWQ7XG4gIH1cblxuICBhc3luYyByZXF1aXJlWGNydW4gKCkge1xuICAgIGNvbnN0IHhjcnVuQmluYXJ5ID0gZ2V0WGNydW5CaW5hcnkoKTtcblxuICAgIGlmICghdGhpcy54Y3J1bi5wYXRoKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnhjcnVuLnBhdGggPSBhd2FpdCB3aGljaCh4Y3J1bkJpbmFyeSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt4Y3J1bkJpbmFyeX0gdG9vbCBoYXMgbm90IGJlZW4gZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYEFyZSBYY29kZSBkZXZlbG9wZXJzIHRvb2xzIGluc3RhbGxlZD9gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMueGNydW4ucGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBwYXJ0aWN1bGFyIHNpbWN0bCBjb21tYW5kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3ViY29tbWFuZCAtIE9uZSBvZiBhdmFpbGFibGUgc2ltY3RsIHN1YmNvbW1hbmRzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4ZWN1dGUgYHhjcnVuIHNpbWN0bGAgaW4gVGVybWluYWwgdG8gc2VlIHRoZSBmdWxsIGxpc3RcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhdmFpbGFibGUgc3ViY29tbWFuZHMuXG4gICAqIEBwYXJhbSB7RXhlY09wdHM/fSBvcHRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8RXhlY1Jlc3VsdHxTdWJQcm9jZXNzPn0gRWl0aGVyIHRoZSByZXN1bHQgb2YgdGVlbiBwcm9jZXNzJ3MgYGV4ZWNgIG9yXG4gICAqIGBTdWJQcm9jZXNzYCBpbnN0YW5jZSBkZXBlbmRpbmcgb2YgYG9wdHMuYXN5bmNocm9ub3VzYCB2YWx1ZS5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gICAqL1xuICBhc3luYyBleGVjIChzdWJjb21tYW5kLCBvcHRzID0ge30pIHtcbiAgICBsZXQge1xuICAgICAgYXJncyA9IFtdLFxuICAgICAgZW52ID0ge30sXG4gICAgICBhc3luY2hyb25vdXMgPSBmYWxzZSxcbiAgICAgIGVuY29kaW5nLFxuICAgICAgbG9nRXJyb3JzID0gdHJ1ZSxcbiAgICAgIGFyY2hpdGVjdHVyZXMsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsXG4gICAgICAuLi4odGhpcy5kZXZpY2VzU2V0UGF0aCA/IFsnLS1zZXQnLCB0aGlzLmRldmljZXNTZXRQYXRoXSA6IFtdKSxcbiAgICAgIHN1YmNvbW1hbmQsXG4gICAgICAuLi5hcmdzXG4gICAgXTtcbiAgICAvLyBQcmVmaXggYWxsIHBhc3NlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCAnU0lNQ1RMX0NISUxEXycsIHNpbWN0bFxuICAgIC8vIHdpbGwgdGhlbiBwYXNzIHRoZXNlIHRvIHRoZSBjaGlsZCAoc3Bhd25lZCkgcHJvY2Vzcy5cbiAgICBlbnYgPSBfLmRlZmF1bHRzKFxuICAgICAgXy5tYXBLZXlzKGVudixcbiAgICAgICAgKHZhbHVlLCBrZXkpID0+IF8uc3RhcnRzV2l0aChrZXksIFNJTUNUTF9FTlZfUFJFRklYKSA/IGtleSA6IGAke1NJTUNUTF9FTlZfUFJFRklYfSR7a2V5fWApLFxuICAgICAgcHJvY2Vzcy5lbnYpO1xuXG4gICAgY29uc3QgZXhlY09wdHMgPSB7XG4gICAgICBlbnYsXG4gICAgICBlbmNvZGluZyxcbiAgICB9O1xuICAgIGlmICghYXN5bmNocm9ub3VzKSB7XG4gICAgICBleGVjT3B0cy50aW1lb3V0ID0gdGhpcy5leGVjVGltZW91dDtcbiAgICB9XG4gICAgY29uc3QgeGNydW4gPSBhd2FpdCB0aGlzLnJlcXVpcmVYY3J1bigpO1xuICAgIHRyeSB7XG4gICAgICBsZXQgZXhlY0FyZ3MgPSBbeGNydW4sIGFyZ3MsIGV4ZWNPcHRzXTtcbiAgICAgIGlmICghXy5pc0VtcHR5KGFyY2hpdGVjdHVyZXMpKSB7XG4gICAgICAgIGNvbnN0IGFyY2hBcmdzID0gXy5mbGF0TWFwKFxuICAgICAgICAgIChfLmlzQXJyYXkoYXJjaGl0ZWN0dXJlcykgPyBhcmNoaXRlY3R1cmVzIDogW2FyY2hpdGVjdHVyZXNdKS5tYXAoKGFyY2gpID0+IFsnLWFyY2gnLCBhcmNoXSlcbiAgICAgICAgKTtcbiAgICAgICAgZXhlY0FyZ3MgPSBbJ2FyY2gnLCBbLi4uYXJjaEFyZ3MsIHhjcnVuLCAuLi5hcmdzXSwgZXhlY09wdHNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFzeW5jaHJvbm91cyA/IG5ldyBTdWJQcm9jZXNzKC4uLmV4ZWNBcmdzKSA6IGF3YWl0IHRwRXhlYyguLi5leGVjQXJncyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCF0aGlzLmxvZ0Vycm9ycyB8fCAhbG9nRXJyb3JzKSB7XG4gICAgICAgIC8vIGlmIHdlIGRvbid0IHdhbnQgdG8gc2VlIHRoZSBlcnJvcnMsIGp1c3QgdGhyb3cgYW5kIGFsbG93IHRoZSBjYWxsaW5nXG4gICAgICAgIC8vIGNvZGUgZG8gd2hhdCBpdCB3YW50c1xuICAgICAgfSBlbHNlIGlmIChlLnN0ZGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSBgRXJyb3IgcnVubmluZyAnJHtzdWJjb21tYW5kfSc6ICR7ZS5zdGRlcnIudHJpbSgpfWA7XG4gICAgICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBtc2cpO1xuICAgICAgICBlLm1lc3NhZ2UgPSBtc2c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gYWRkIGFsbCB0aGUgc3ViY29tbWFuZHMgdG8gdGhlIFNpbWN0bCBwcm90b3R5cGVcbmZvciAoY29uc3QgW2ZuTmFtZSwgZm5dIG9mIF8udG9QYWlycyhzdWJjb21tYW5kcykpIHtcbiAgU2ltY3RsLnByb3RvdHlwZVtmbk5hbWVdID0gZm47XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbWN0bDtcbmV4cG9ydCB7IFNpbWN0bCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUdBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUEwRCxTQUFBTyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEs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
183
+ exports.default = Simctl;
184
+ //# sourceMappingURL=simctl.js.map