appium-ios-simulator 5.0.2 → 5.0.4

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
+ ## [5.0.4](https://github.com/appium/appium-ios-simulator/compare/v5.0.3...v5.0.4) (2023-01-08)
2
+
3
+
4
+ ### Miscellaneous Chores
5
+
6
+ * update links for set-simulator-location ([#353](https://github.com/appium/appium-ios-simulator/issues/353)) ([1db8818](https://github.com/appium/appium-ios-simulator/commit/1db88187647c354af523336d151a3dccde2193af))
7
+
8
+ ## [5.0.3](https://github.com/appium/appium-ios-simulator/compare/v5.0.2...v5.0.3) (2023-01-04)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * retrieve an appropriate unix socket path ([#352](https://github.com/appium/appium-ios-simulator/issues/352)) ([de11bfc](https://github.com/appium/appium-ios-simulator/commit/de11bfc13b9f66252fe6f14865f6970c8950db63))
14
+
1
15
  ## [5.0.2](https://github.com/appium/appium-ios-simulator/compare/v5.0.1...v5.0.2) (2022-12-19)
2
16
 
3
17
 
package/README.md CHANGED
@@ -35,7 +35,7 @@ assert.equal('Shutdown', (await sim.stat()).state);
35
35
 
36
36
  The following tools and utilities are not mandatory, but could be used by the appium-ios-simulator, if installed locally, to extend its functionality:
37
37
 
38
- - [Lyft](https://github.com/lyft)
38
+ - [Mobile Native Foundation](https://github.com/MobileNativeFoundation)
39
39
  - [IDB](https://github.com/facebook/idb)
40
40
  - [AppleSimulatorUtils](https://github.com/wix/AppleSimulatorUtils)
41
41
 
@@ -24,7 +24,7 @@ async function setLocationWithLyft(udid, latitude, longitude) {
24
24
  try {
25
25
  await _support.fs.which(LYFT_SET_LOCATION);
26
26
  } catch (e) {
27
- throw new Error(`'${LYFT_SET_LOCATION}' binary has not been found in your PATH. ` + 'Please install it as "brew install lyft/formulae/set-simulator-location" by brew or ' + 'read https://github.com/lyft/set-simulator-location to set the binary by manual to ' + 'be able to set geolocation by the library.');
27
+ throw new Error(`'${LYFT_SET_LOCATION}' binary has not been found in your PATH. ` + 'Please install it as "brew install lyft/formulae/set-simulator-location" by brew or ' + 'read https://github.com/MobileNativeFoundation/set-simulator-location to set ' + 'the binary by manual to be able to set geolocation by the library.');
28
28
  }
29
29
  try {
30
30
  await (0, _teen_process.exec)(LYFT_SET_LOCATION, ['-c', latitude, longitude, '-u', udid]);
@@ -88,4 +88,4 @@ extensions.setGeolocation = async function setGeolocation(latitude, longitude) {
88
88
  };
89
89
  var _default = extensions;
90
90
  exports.default = _default;
91
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMWUZUX1NFVF9MT0NBVElPTiIsIkRFQ0lNQUxfU0VQQVJBVE9SX1NDUklQVCIsInNldExvY2F0aW9uV2l0aEx5ZnQiLCJ1ZGlkIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmcyIsIndoaWNoIiwiZSIsIkVycm9yIiwiZXhlYyIsInN0ZGVyciIsIm1lc3NhZ2UiLCJzZXRMb2NhdGlvbldpdGhJZGIiLCJpZGIiLCJzZXRMb2NhdGlvbiIsInNldExvY2F0aW9uV2l0aEFwcGxlU2NyaXB0Iiwic2ltIiwibWVudSIsInN0ZG91dCIsImRlY2ltYWxTZXBhcmF0b3IiLCJfIiwidHJpbSIsImxhdGl0dWRlU3RyIiwibG9uZ2l0dWRlU3RyIiwibWFwIiwiY29vcmQiLCJyZXBsYWNlIiwib3V0cHV0IiwiZXhlY3V0ZVVJQ2xpZW50U2NyaXB0IiwibG9nIiwiZGVidWciLCJleHRlbnNpb25zIiwic2V0R2VvbG9jYXRpb24iLCJsb2NhdGlvblNldHRlcnMiLCJfbG9jYXRpb25NZW51IiwibGFzdEVycm9yIiwic2V0dGVyIiwiaW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb25zL2dlb2xvY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmc30gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG5jb25zdCBMWUZUX1NFVF9MT0NBVElPTiA9ICdzZXQtc2ltdWxhdG9yLWxvY2F0aW9uJztcbmNvbnN0IERFQ0lNQUxfU0VQQVJBVE9SX1NDUklQVCA9IGBcbnVzZSBmcmFtZXdvcmsgXCJGb3VuZGF0aW9uXCJcbnVzZSBmcmFtZXdvcmsgXCJBcHBLaXRcIlxudXNlIHNjcmlwdGluZyBhZGRpdGlvbnNcblxuc2V0IHRoZUZvcm1hdHRlciB0byBjdXJyZW50IGFwcGxpY2F0aW9uJ3MgTlNOdW1iZXJGb3JtYXR0ZXIncyBuZXcoKVxuc2V0IHJlc3VsdCB0byB0aGVGb3JtYXR0ZXIncyBkZWNpbWFsU2VwYXJhdG9yKClcbmxvZyByZXN1bHQgYXMgc3RyaW5nXG5gO1xuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBMWUZUX1NFVF9MT0NBVElPTi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCAtIFRoZSB1ZGlkIHRvIHNldCB0aGUgZ2l2ZW4gZ2VvbG9jYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMzksMDAwNicuXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxvbmdpdHVkZSAtIFRoZSBsb25naXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMTksMDA2OCcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaXQgZmFpbGVkIHRvIHNldCB0aGUgbG9jYXRpb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb25XaXRoTHlmdCAodWRpZCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndoaWNoKExZRlRfU0VUX0xPQ0FUSU9OKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7TFlGVF9TRVRfTE9DQVRJT059JyBiaW5hcnkgaGFzIG5vdCBiZWVuIGZvdW5kIGluIHlvdXIgUEFUSC4gYCArXG4gICAgICAnUGxlYXNlIGluc3RhbGwgaXQgYXMgXCJicmV3IGluc3RhbGwgbHlmdC9mb3JtdWxhZS9zZXQtc2ltdWxhdG9yLWxvY2F0aW9uXCIgYnkgYnJldyBvciAnICtcbiAgICAgICdyZWFkIGh0dHBzOi8vZ2l0aHViLmNvbS9seWZ0L3NldC1zaW11bGF0b3ItbG9jYXRpb24gdG8gc2V0IHRoZSBiaW5hcnkgYnkgbWFudWFsIHRvICcgK1xuICAgICAgJ2JlIGFibGUgdG8gc2V0IGdlb2xvY2F0aW9uIGJ5IHRoZSBsaWJyYXJ5LicpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKExZRlRfU0VUX0xPQ0FUSU9OLCBbXG4gICAgICAnLWMnLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLFxuICAgICAgJy11JywgdWRpZFxuICAgIF0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggJyR7TFlGVF9TRVRfTE9DQVRJT059Jy4gYCArXG4gICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICB9XG59XG5cbi8qKlxuICogU2V0IGN1c3RvbSBnZW9sb2NhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgZ2l2ZW4gU2ltdWxhdG9yIHVzaW5nIGlkYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaWRiIC0gVGhlIElEQiBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICczOSwwMDA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICcxOSwwMDY4Jy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlsZWQgdG8gc2V0IHRoZSBsb2NhdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRMb2NhdGlvbldpdGhJZGIgKGlkYiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICBpZiAoIWlkYikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHNldCBnZW9sb2NhdGlvbiB3aXRoIGlkYiBiZWNhdXNlIGl0IGlzIG5vdCBpbnN0YWxsZWQgb3IgdGhlIFwibGF1bmNoV2l0aElEQlwiIGNhcGFiaWxpdHkgd2FzIG5vdCBzZXQnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgaWRiLnNldExvY2F0aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggaWRiLiBPcmlnaW5hbCBlcnJvcjogJHtlLnN0ZGVyciB8fCBlLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgY3VzdG9tIGdlb2xvY2F0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBnaXZlbiBTaW11bGF0b3IgdXNpbmcgQXBwbGVTY3JpcHRcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2ltIC0gVGhlIFNpbXVsYXRvclhjb2RlIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICczOSwwMDA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICcxOSwwMDY4Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVudT1EZWJ1Z10gLSBUaGUgbWVudSBmaWVsZCBpbiB3aGljaCB0aGUgJ0xvY2F0aW9uJyBmZWF0dXJlIGlzIGZvdW5kXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaXQgZmFpbGVkIHRvIHNldCB0aGUgbG9jYXRpb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb25XaXRoQXBwbGVTY3JpcHQgKHNpbSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgbWVudSA9ICdEZWJ1ZycpIHtcbiAgLy8gTWFrZSBzdXJlIHN5c3RlbS13aWRlIGRlY2ltYWwgc2VwYXJhdG9yIGlzIHVzZWRcbiAgY29uc3Qge3N0ZG91dCwgc3RkZXJyfSA9IGF3YWl0IGV4ZWMoJ29zYXNjcmlwdCcsIFsnLWUnLCBERUNJTUFMX1NFUEFSQVRPUl9TQ1JJUFRdKTtcbiAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IF8udHJpbShzdGRvdXQgfHwgc3RkZXJyKTtcbiAgY29uc3QgW2xhdGl0dWRlU3RyLCBsb25naXR1ZGVTdHJdID0gW2xhdGl0dWRlLCBsb25naXR1ZGVdXG4gICAgLm1hcCgoY29vcmQpID0+IGAke2Nvb3JkfWAucmVwbGFjZSgvWy4sXS8sIGRlY2ltYWxTZXBhcmF0b3IpKTtcblxuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzaW0uZXhlY3V0ZVVJQ2xpZW50U2NyaXB0KGBcbiAgICB0ZWxsIGFwcGxpY2F0aW9uIFwiU3lzdGVtIEV2ZW50c1wiXG4gICAgICB0ZWxsIHByb2Nlc3MgXCJTaW11bGF0b3JcIlxuICAgICAgICBzZXQgZmVhdHVyZU5hbWUgdG8gXCJDdXN0b20gTG9jYXRpb25cIlxuICAgICAgICBzZXQgZHN0TWVudUl0ZW0gdG8gbWVudSBpdGVtIChmZWF0dXJlTmFtZSAmIFwi4oCmXCIpIG9mIG1lbnUgMSBvZiBtZW51IGl0ZW0gXCJMb2NhdGlvblwiIG9mIG1lbnUgMSBvZiBtZW51IGJhciBpdGVtIFwiJHttZW51fVwiIG9mIG1lbnUgYmFyIDFcbiAgICAgICAgY2xpY2sgZHN0TWVudUl0ZW1cbiAgICAgICAgZGVsYXkgMVxuICAgICAgICBzZXQgdmFsdWUgb2YgdGV4dCBmaWVsZCAxIG9mIHdpbmRvdyBmZWF0dXJlTmFtZSB0byBcIiR7bGF0aXR1ZGVTdHJ9XCJcbiAgICAgICAgZGVsYXkgMC41XG4gICAgICAgIHNldCB2YWx1ZSBvZiB0ZXh0IGZpZWxkIDIgb2Ygd2luZG93IGZlYXR1cmVOYW1lIHRvIFwiJHtsb25naXR1ZGVTdHJ9XCJcbiAgICAgICAgZGVsYXkgMC41XG4gICAgICAgIGNsaWNrIGJ1dHRvbiBcIk9LXCIgb2Ygd2luZG93IGZlYXR1cmVOYW1lXG4gICAgICAgIGRlbGF5IDAuNVxuICAgICAgICBzZXQgaXNJbnZpc2libGUgdG8gKG5vdCAoZXhpc3RzICh3aW5kb3cgZmVhdHVyZU5hbWUpKSlcbiAgICAgIGVuZCB0ZWxsXG4gICAgZW5kIHRlbGxcbiAgYCk7XG4gIGxvZy5kZWJ1ZyhgR2VvbG9jYXRpb24gcGFyYW1ldGVycyBkaWFsb2cgYWNjZXB0ZWQ6ICR7b3V0cHV0fWApO1xuICBpZiAoXy50cmltKG91dHB1dCkgIT09ICd0cnVlJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNldCBnZW9sb2NhdGlvbiB3aXRoIEFwcGxlU2NyaXB0LiBPcmlnaW5hbCBlcnJvcjogJHtvdXRwdXR9YCk7XG4gIH1cbn1cblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBBcHBsZVNjcmlwdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxhdGl0dWRlIC0gVGhlIGxhdGl0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzM5LDAwMDYnLlxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsb25naXR1ZGUgLSBUaGUgbG9uZ2l0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzE5LDAwNjgnLlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGdpdmVuIHBhcmFtZXRlcnMgaGF2ZSBjb3JyZWN0IGZvcm1hdCBhbmQgd2VyZSBzdWNjZXNzZnVsbHkgYWNjZXB0ZWQuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHNldHRpbmcgdGhlIGxvY2F0aW9uXG4gKi9cbmV4dGVuc2lvbnMuc2V0R2VvbG9jYXRpb24gPSBhc3luYyBmdW5jdGlvbiBzZXRHZW9sb2NhdGlvbiAobGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICBjb25zdCBsb2NhdGlvblNldHRlcnMgPSBbXG4gICAgYXN5bmMgKCkgPT4gYXdhaXQgc2V0TG9jYXRpb25XaXRoTHlmdCh0aGlzLnVkaWQsIGxhdGl0dWRlLCBsb25naXR1ZGUpLFxuICAgIGFzeW5jICgpID0+IGF3YWl0IHNldExvY2F0aW9uV2l0aElkYih0aGlzLmlkYiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSksXG4gICAgYXN5bmMgKCkgPT4gYXdhaXQgc2V0TG9jYXRpb25XaXRoQXBwbGVTY3JpcHQodGhpcywgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgdGhpcy5fbG9jYXRpb25NZW51KSxcbiAgXTtcblxuICBsZXQgbGFzdEVycm9yO1xuICBmb3IgKGNvbnN0IHNldHRlciBvZiBsb2NhdGlvblNldHRlcnMpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0dGVyKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2cuaW5mbyhlLm1lc3NhZ2UpO1xuICAgICAgbGFzdEVycm9yID0gZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbGFzdEVy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
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMWUZUX1NFVF9MT0NBVElPTiIsIkRFQ0lNQUxfU0VQQVJBVE9SX1NDUklQVCIsInNldExvY2F0aW9uV2l0aEx5ZnQiLCJ1ZGlkIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmcyIsIndoaWNoIiwiZSIsIkVycm9yIiwiZXhlYyIsInN0ZGVyciIsIm1lc3NhZ2UiLCJzZXRMb2NhdGlvbldpdGhJZGIiLCJpZGIiLCJzZXRMb2NhdGlvbiIsInNldExvY2F0aW9uV2l0aEFwcGxlU2NyaXB0Iiwic2ltIiwibWVudSIsInN0ZG91dCIsImRlY2ltYWxTZXBhcmF0b3IiLCJfIiwidHJpbSIsImxhdGl0dWRlU3RyIiwibG9uZ2l0dWRlU3RyIiwibWFwIiwiY29vcmQiLCJyZXBsYWNlIiwib3V0cHV0IiwiZXhlY3V0ZVVJQ2xpZW50U2NyaXB0IiwibG9nIiwiZGVidWciLCJleHRlbnNpb25zIiwic2V0R2VvbG9jYXRpb24iLCJsb2NhdGlvblNldHRlcnMiLCJfbG9jYXRpb25NZW51IiwibGFzdEVycm9yIiwic2V0dGVyIiwiaW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb25zL2dlb2xvY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmc30gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG5jb25zdCBMWUZUX1NFVF9MT0NBVElPTiA9ICdzZXQtc2ltdWxhdG9yLWxvY2F0aW9uJztcbmNvbnN0IERFQ0lNQUxfU0VQQVJBVE9SX1NDUklQVCA9IGBcbnVzZSBmcmFtZXdvcmsgXCJGb3VuZGF0aW9uXCJcbnVzZSBmcmFtZXdvcmsgXCJBcHBLaXRcIlxudXNlIHNjcmlwdGluZyBhZGRpdGlvbnNcblxuc2V0IHRoZUZvcm1hdHRlciB0byBjdXJyZW50IGFwcGxpY2F0aW9uJ3MgTlNOdW1iZXJGb3JtYXR0ZXIncyBuZXcoKVxuc2V0IHJlc3VsdCB0byB0aGVGb3JtYXR0ZXIncyBkZWNpbWFsU2VwYXJhdG9yKClcbmxvZyByZXN1bHQgYXMgc3RyaW5nXG5gO1xuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBMWUZUX1NFVF9MT0NBVElPTi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCAtIFRoZSB1ZGlkIHRvIHNldCB0aGUgZ2l2ZW4gZ2VvbG9jYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMzksMDAwNicuXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxvbmdpdHVkZSAtIFRoZSBsb25naXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMTksMDA2OCcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaXQgZmFpbGVkIHRvIHNldCB0aGUgbG9jYXRpb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb25XaXRoTHlmdCAodWRpZCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndoaWNoKExZRlRfU0VUX0xPQ0FUSU9OKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7TFlGVF9TRVRfTE9DQVRJT059JyBiaW5hcnkgaGFzIG5vdCBiZWVuIGZvdW5kIGluIHlvdXIgUEFUSC4gYCArXG4gICAgICAnUGxlYXNlIGluc3RhbGwgaXQgYXMgXCJicmV3IGluc3RhbGwgbHlmdC9mb3JtdWxhZS9zZXQtc2ltdWxhdG9yLWxvY2F0aW9uXCIgYnkgYnJldyBvciAnICtcbiAgICAgICdyZWFkIGh0dHBzOi8vZ2l0aHViLmNvbS9Nb2JpbGVOYXRpdmVGb3VuZGF0aW9uL3NldC1zaW11bGF0b3ItbG9jYXRpb24gdG8gc2V0ICcgK1xuICAgICAgJ3RoZSBiaW5hcnkgYnkgbWFudWFsIHRvIGJlIGFibGUgdG8gc2V0IGdlb2xvY2F0aW9uIGJ5IHRoZSBsaWJyYXJ5LicpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKExZRlRfU0VUX0xPQ0FUSU9OLCBbXG4gICAgICAnLWMnLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLFxuICAgICAgJy11JywgdWRpZFxuICAgIF0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggJyR7TFlGVF9TRVRfTE9DQVRJT059Jy4gYCArXG4gICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICB9XG59XG5cbi8qKlxuICogU2V0IGN1c3RvbSBnZW9sb2NhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgZ2l2ZW4gU2ltdWxhdG9yIHVzaW5nIGlkYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaWRiIC0gVGhlIElEQiBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICczOSwwMDA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICcxOSwwMDY4Jy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlsZWQgdG8gc2V0IHRoZSBsb2NhdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRMb2NhdGlvbldpdGhJZGIgKGlkYiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICBpZiAoIWlkYikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHNldCBnZW9sb2NhdGlvbiB3aXRoIGlkYiBiZWNhdXNlIGl0IGlzIG5vdCBpbnN0YWxsZWQgb3IgdGhlIFwibGF1bmNoV2l0aElEQlwiIGNhcGFiaWxpdHkgd2FzIG5vdCBzZXQnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgaWRiLnNldExvY2F0aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggaWRiLiBPcmlnaW5hbCBlcnJvcjogJHtlLnN0ZGVyciB8fCBlLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgY3VzdG9tIGdlb2xvY2F0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBnaXZlbiBTaW11bGF0b3IgdXNpbmcgQXBwbGVTY3JpcHRcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2ltIC0gVGhlIFNpbXVsYXRvclhjb2RlIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICczOSwwMDA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICcxOSwwMDY4Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVudT1EZWJ1Z10gLSBUaGUgbWVudSBmaWVsZCBpbiB3aGljaCB0aGUgJ0xvY2F0aW9uJyBmZWF0dXJlIGlzIGZvdW5kXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaXQgZmFpbGVkIHRvIHNldCB0aGUgbG9jYXRpb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb25XaXRoQXBwbGVTY3JpcHQgKHNpbSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgbWVudSA9ICdEZWJ1ZycpIHtcbiAgLy8gTWFrZSBzdXJlIHN5c3RlbS13aWRlIGRlY2ltYWwgc2VwYXJhdG9yIGlzIHVzZWRcbiAgY29uc3Qge3N0ZG91dCwgc3RkZXJyfSA9IGF3YWl0IGV4ZWMoJ29zYXNjcmlwdCcsIFsnLWUnLCBERUNJTUFMX1NFUEFSQVRPUl9TQ1JJUFRdKTtcbiAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IF8udHJpbShzdGRvdXQgfHwgc3RkZXJyKTtcbiAgY29uc3QgW2xhdGl0dWRlU3RyLCBsb25naXR1ZGVTdHJdID0gW2xhdGl0dWRlLCBsb25naXR1ZGVdXG4gICAgLm1hcCgoY29vcmQpID0+IGAke2Nvb3JkfWAucmVwbGFjZSgvWy4sXS8sIGRlY2ltYWxTZXBhcmF0b3IpKTtcblxuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzaW0uZXhlY3V0ZVVJQ2xpZW50U2NyaXB0KGBcbiAgICB0ZWxsIGFwcGxpY2F0aW9uIFwiU3lzdGVtIEV2ZW50c1wiXG4gICAgICB0ZWxsIHByb2Nlc3MgXCJTaW11bGF0b3JcIlxuICAgICAgICBzZXQgZmVhdHVyZU5hbWUgdG8gXCJDdXN0b20gTG9jYXRpb25cIlxuICAgICAgICBzZXQgZHN0TWVudUl0ZW0gdG8gbWVudSBpdGVtIChmZWF0dXJlTmFtZSAmIFwi4oCmXCIpIG9mIG1lbnUgMSBvZiBtZW51IGl0ZW0gXCJMb2NhdGlvblwiIG9mIG1lbnUgMSBvZiBtZW51IGJhciBpdGVtIFwiJHttZW51fVwiIG9mIG1lbnUgYmFyIDFcbiAgICAgICAgY2xpY2sgZHN0TWVudUl0ZW1cbiAgICAgICAgZGVsYXkgMVxuICAgICAgICBzZXQgdmFsdWUgb2YgdGV4dCBmaWVsZCAxIG9mIHdpbmRvdyBmZWF0dXJlTmFtZSB0byBcIiR7bGF0aXR1ZGVTdHJ9XCJcbiAgICAgICAgZGVsYXkgMC41XG4gICAgICAgIHNldCB2YWx1ZSBvZiB0ZXh0IGZpZWxkIDIgb2Ygd2luZG93IGZlYXR1cmVOYW1lIHRvIFwiJHtsb25naXR1ZGVTdHJ9XCJcbiAgICAgICAgZGVsYXkgMC41XG4gICAgICAgIGNsaWNrIGJ1dHRvbiBcIk9LXCIgb2Ygd2luZG93IGZlYXR1cmVOYW1lXG4gICAgICAgIGRlbGF5IDAuNVxuICAgICAgICBzZXQgaXNJbnZpc2libGUgdG8gKG5vdCAoZXhpc3RzICh3aW5kb3cgZmVhdHVyZU5hbWUpKSlcbiAgICAgIGVuZCB0ZWxsXG4gICAgZW5kIHRlbGxcbiAgYCk7XG4gIGxvZy5kZWJ1ZyhgR2VvbG9jYXRpb24gcGFyYW1ldGVycyBkaWFsb2cgYWNjZXB0ZWQ6ICR7b3V0cHV0fWApO1xuICBpZiAoXy50cmltKG91dHB1dCkgIT09ICd0cnVlJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNldCBnZW9sb2NhdGlvbiB3aXRoIEFwcGxlU2NyaXB0LiBPcmlnaW5hbCBlcnJvcjogJHtvdXRwdXR9YCk7XG4gIH1cbn1cblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBBcHBsZVNjcmlwdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxhdGl0dWRlIC0gVGhlIGxhdGl0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzM5LDAwMDYnLlxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsb25naXR1ZGUgLSBUaGUgbG9uZ2l0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzE5LDAwNjgnLlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGdpdmVuIHBhcmFtZXRlcnMgaGF2ZSBjb3JyZWN0IGZvcm1hdCBhbmQgd2VyZSBzdWNjZXNzZnVsbHkgYWNjZXB0ZWQuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHNldHRpbmcgdGhlIGxvY2F0aW9uXG4gKi9cbmV4dGVuc2lvbnMuc2V0R2VvbG9jYXRpb24gPSBhc3luYyBmdW5jdGlvbiBzZXRHZW9sb2NhdGlvbiAobGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICBjb25zdCBsb2NhdGlvblNldHRlcnMgPSBbXG4gICAgYXN5bmMgKCkgPT4gYXdhaXQgc2V0TG9jYXRpb25XaXRoTHlmdCh0aGlzLnVkaWQsIGxhdGl0dWRlLCBsb25naXR1ZGUpLFxuICAgIGFzeW5jICgpID0+IGF3YWl0IHNldExvY2F0aW9uV2l0aElkYih0aGlzLmlkYiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSksXG4gICAgYXN5bmMgKCkgPT4gYXdhaXQgc2V0TG9jYXRpb25XaXRoQXBwbGVTY3JpcHQodGhpcywgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgdGhpcy5fbG9jYXRpb25NZW51KSxcbiAgXTtcblxuICBsZXQgbGFzdEVycm9yO1xuICBmb3IgKGNvbnN0IHNldHRlciBvZiBsb2NhdGlvblNldHRlcnMpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0dGVyKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2cuaW5mbyhlLm1lc3NhZ2UpO1xuICAgICAgbGFzdEVycm9yID0gZTtcbiAgICB9XG4g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
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.js","names":["LYFT_SET_LOCATION","DECIMAL_SEPARATOR_SCRIPT","setLocationWithLyft","udid","latitude","longitude","fs","which","e","Error","exec","stderr","message","setLocationWithIdb","idb","setLocation","setLocationWithAppleScript","sim","menu","stdout","decimalSeparator","_","trim","latitudeStr","longitudeStr","map","coord","replace","output","executeUIClientScript","log","debug","extensions","setGeolocation","locationSetters","_locationMenu","lastError","setter","info"],"sources":["../../../lib/extensions/geolocation.js"],"sourcesContent":["import _ from 'lodash';\nimport { fs} from '@appium/support';\nimport log from '../logger';\nimport { exec } from 'teen_process';\n\nconst LYFT_SET_LOCATION = 'set-simulator-location';\nconst DECIMAL_SEPARATOR_SCRIPT = `\nuse framework \"Foundation\"\nuse framework \"AppKit\"\nuse scripting additions\n\nset theFormatter to current application's NSNumberFormatter's new()\nset result to theFormatter's decimalSeparator()\nlog result as string\n`;\n\n/**\n * Set custom geolocation parameters for the given Simulator using LYFT_SET_LOCATION.\n *\n * @param {string} udid - The udid to set the given geolocation\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithLyft (udid, latitude, longitude) {\n try {\n await fs.which(LYFT_SET_LOCATION);\n } catch (e) {\n throw new Error(`'${LYFT_SET_LOCATION}' binary has not been found in your PATH. ` +\n 'Please install it as \"brew install lyft/formulae/set-simulator-location\" by brew or ' +\n 'read https://github.com/lyft/set-simulator-location to set the binary by manual to ' +\n 'be able to set geolocation by the library.');\n }\n\n try {\n await exec(LYFT_SET_LOCATION, [\n '-c', latitude, longitude,\n '-u', udid\n ]);\n } catch (e) {\n throw new Error(`Failed to set geolocation with '${LYFT_SET_LOCATION}'. ` +\n `Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Set custom geolocation parameters for the given Simulator using idb.\n *\n * @param {Object} idb - The IDB instance\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithIdb (idb, latitude, longitude) {\n if (!idb) {\n throw new Error('Failed to set geolocation with idb because it is not installed or the \"launchWithIDB\" capability was not set');\n }\n\n try {\n await idb.setLocation(latitude, longitude);\n } catch (e) {\n throw new Error(`Failed to set geolocation with idb. Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Set custom geolocation parameters for the given Simulator using AppleScript\n *\n * @param {Object} sim - The SimulatorXcode object\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @param {string} [menu=Debug] - The menu field in which the 'Location' feature is found\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithAppleScript (sim, latitude, longitude, menu = 'Debug') {\n // Make sure system-wide decimal separator is used\n const {stdout, stderr} = await exec('osascript', ['-e', DECIMAL_SEPARATOR_SCRIPT]);\n const decimalSeparator = _.trim(stdout || stderr);\n const [latitudeStr, longitudeStr] = [latitude, longitude]\n .map((coord) => `${coord}`.replace(/[.,]/, decimalSeparator));\n\n const output = await sim.executeUIClientScript(`\n tell application \"System Events\"\n tell process \"Simulator\"\n set featureName to \"Custom Location\"\n set dstMenuItem to menu item (featureName & \"…\") of menu 1 of menu item \"Location\" of menu 1 of menu bar item \"${menu}\" of menu bar 1\n click dstMenuItem\n delay 1\n set value of text field 1 of window featureName to \"${latitudeStr}\"\n delay 0.5\n set value of text field 2 of window featureName to \"${longitudeStr}\"\n delay 0.5\n click button \"OK\" of window featureName\n delay 0.5\n set isInvisible to (not (exists (window featureName)))\n end tell\n end tell\n `);\n log.debug(`Geolocation parameters dialog accepted: ${output}`);\n if (_.trim(output) !== 'true') {\n throw new Error(`Failed to set geolocation with AppleScript. Original error: ${output}`);\n }\n}\n\nconst extensions = {};\n\n/**\n * Set custom geolocation parameters for the given Simulator using AppleScript.\n *\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @returns {boolean} True if the given parameters have correct format and were successfully accepted.\n * @throws {Error} If there was an error while setting the location\n */\nextensions.setGeolocation = async function setGeolocation (latitude, longitude) {\n const locationSetters = [\n async () => await setLocationWithLyft(this.udid, latitude, longitude),\n async () => await setLocationWithIdb(this.idb, latitude, longitude),\n async () => await setLocationWithAppleScript(this, latitude, longitude, this._locationMenu),\n ];\n\n let lastError;\n for (const setter of locationSetters) {\n try {\n await setter();\n return true;\n } catch (e) {\n log.info(e.message);\n lastError = e;\n }\n }\n throw lastError;\n};\n\nexport default extensions;\n"],"mappings":"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"}
1
+ {"version":3,"file":"geolocation.js","names":["LYFT_SET_LOCATION","DECIMAL_SEPARATOR_SCRIPT","setLocationWithLyft","udid","latitude","longitude","fs","which","e","Error","exec","stderr","message","setLocationWithIdb","idb","setLocation","setLocationWithAppleScript","sim","menu","stdout","decimalSeparator","_","trim","latitudeStr","longitudeStr","map","coord","replace","output","executeUIClientScript","log","debug","extensions","setGeolocation","locationSetters","_locationMenu","lastError","setter","info"],"sources":["../../../lib/extensions/geolocation.js"],"sourcesContent":["import _ from 'lodash';\nimport { fs} from '@appium/support';\nimport log from '../logger';\nimport { exec } from 'teen_process';\n\nconst LYFT_SET_LOCATION = 'set-simulator-location';\nconst DECIMAL_SEPARATOR_SCRIPT = `\nuse framework \"Foundation\"\nuse framework \"AppKit\"\nuse scripting additions\n\nset theFormatter to current application's NSNumberFormatter's new()\nset result to theFormatter's decimalSeparator()\nlog result as string\n`;\n\n/**\n * Set custom geolocation parameters for the given Simulator using LYFT_SET_LOCATION.\n *\n * @param {string} udid - The udid to set the given geolocation\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithLyft (udid, latitude, longitude) {\n try {\n await fs.which(LYFT_SET_LOCATION);\n } catch (e) {\n throw new Error(`'${LYFT_SET_LOCATION}' binary has not been found in your PATH. ` +\n 'Please install it as \"brew install lyft/formulae/set-simulator-location\" by brew or ' +\n 'read https://github.com/MobileNativeFoundation/set-simulator-location to set ' +\n 'the binary by manual to be able to set geolocation by the library.');\n }\n\n try {\n await exec(LYFT_SET_LOCATION, [\n '-c', latitude, longitude,\n '-u', udid\n ]);\n } catch (e) {\n throw new Error(`Failed to set geolocation with '${LYFT_SET_LOCATION}'. ` +\n `Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Set custom geolocation parameters for the given Simulator using idb.\n *\n * @param {Object} idb - The IDB instance\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithIdb (idb, latitude, longitude) {\n if (!idb) {\n throw new Error('Failed to set geolocation with idb because it is not installed or the \"launchWithIDB\" capability was not set');\n }\n\n try {\n await idb.setLocation(latitude, longitude);\n } catch (e) {\n throw new Error(`Failed to set geolocation with idb. Original error: ${e.stderr || e.message}`);\n }\n}\n\n/**\n * Set custom geolocation parameters for the given Simulator using AppleScript\n *\n * @param {Object} sim - The SimulatorXcode object\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @param {string} [menu=Debug] - The menu field in which the 'Location' feature is found\n * @throws {Error} If it failed to set the location\n */\nasync function setLocationWithAppleScript (sim, latitude, longitude, menu = 'Debug') {\n // Make sure system-wide decimal separator is used\n const {stdout, stderr} = await exec('osascript', ['-e', DECIMAL_SEPARATOR_SCRIPT]);\n const decimalSeparator = _.trim(stdout || stderr);\n const [latitudeStr, longitudeStr] = [latitude, longitude]\n .map((coord) => `${coord}`.replace(/[.,]/, decimalSeparator));\n\n const output = await sim.executeUIClientScript(`\n tell application \"System Events\"\n tell process \"Simulator\"\n set featureName to \"Custom Location\"\n set dstMenuItem to menu item (featureName & \"…\") of menu 1 of menu item \"Location\" of menu 1 of menu bar item \"${menu}\" of menu bar 1\n click dstMenuItem\n delay 1\n set value of text field 1 of window featureName to \"${latitudeStr}\"\n delay 0.5\n set value of text field 2 of window featureName to \"${longitudeStr}\"\n delay 0.5\n click button \"OK\" of window featureName\n delay 0.5\n set isInvisible to (not (exists (window featureName)))\n end tell\n end tell\n `);\n log.debug(`Geolocation parameters dialog accepted: ${output}`);\n if (_.trim(output) !== 'true') {\n throw new Error(`Failed to set geolocation with AppleScript. Original error: ${output}`);\n }\n}\n\nconst extensions = {};\n\n/**\n * Set custom geolocation parameters for the given Simulator using AppleScript.\n *\n * @param {string|number} latitude - The latitude value, which is going to be entered\n * into the corresponding edit field, for example '39,0006'.\n * @param {string|number} longitude - The longitude value, which is going to be entered\n * into the corresponding edit field, for example '19,0068'.\n * @returns {boolean} True if the given parameters have correct format and were successfully accepted.\n * @throws {Error} If there was an error while setting the location\n */\nextensions.setGeolocation = async function setGeolocation (latitude, longitude) {\n const locationSetters = [\n async () => await setLocationWithLyft(this.udid, latitude, longitude),\n async () => await setLocationWithIdb(this.idb, latitude, longitude),\n async () => await setLocationWithAppleScript(this, latitude, longitude, this._locationMenu),\n ];\n\n let lastError;\n for (const setter of locationSetters) {\n try {\n await setter();\n return true;\n } catch (e) {\n log.info(e.message);\n lastError = e;\n }\n }\n throw lastError;\n};\n\nexport default extensions;\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  require("source-map-support/register");
9
9
  var _simulatorXcode = _interopRequireDefault(require("./simulator-xcode-9"));
10
10
  var _teen_process = require("teen_process");
11
- const WEBINSPECTOR_SOCKET_REGEXP = /\s+(\S+com\.apple\.webinspectord_sim\.socket)/;
11
+ var _logger = _interopRequireDefault(require("./logger"));
12
12
  class SimulatorXcode93 extends _simulatorXcode.default {
13
13
  constructor(udid, xcodeVersion) {
14
14
  super(udid, xcodeVersion);
@@ -18,23 +18,25 @@ class SimulatorXcode93 extends _simulatorXcode.default {
18
18
  if (this.webInspectorSocket) {
19
19
  return this.webInspectorSocket;
20
20
  }
21
- let {
21
+ const {
22
22
  stdout
23
23
  } = await (0, _teen_process.exec)('lsof', ['-aUc', 'launchd_sim']);
24
- for (let record of stdout.split('com.apple.CoreSimulator.SimDevice.')) {
25
- if (!record.includes(this.udid)) {
26
- continue;
27
- }
28
- const match = WEBINSPECTOR_SOCKET_REGEXP.exec(record);
29
- if (!match) {
30
- return null;
31
- }
32
- this.webInspectorSocket = match[1];
33
- return this.webInspectorSocket;
24
+ const udidPattern = `([0-9]{1,5}).+${this.udid}`;
25
+ const udidMatch = stdout.match(new RegExp(udidPattern));
26
+ if (!udidMatch) {
27
+ _logger.default.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
28
+ return null;
29
+ }
30
+ const pidPattern = `${udidMatch[1]}.+\\s+(\\S+com\\.apple\\.webinspectord_sim\\.socket)`;
31
+ const pidMatch = stdout.match(new RegExp(pidPattern));
32
+ if (!pidMatch) {
33
+ _logger.default.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
34
+ return null;
34
35
  }
35
- return null;
36
+ this.webInspectorSocket = pidMatch[1];
37
+ return this.webInspectorSocket;
36
38
  }
37
39
  }
38
40
  var _default = SimulatorXcode93;
39
41
  exports.default = _default;
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXRUJJTlNQRUNUT1JfU09DS0VUX1JFR0VYUCIsIlNpbXVsYXRvclhjb2RlOTMiLCJTaW11bGF0b3JYY29kZTkiLCJjb25zdHJ1Y3RvciIsInVkaWQiLCJ4Y29kZVZlcnNpb24iLCJ3ZWJJbnNwZWN0b3JTb2NrZXQiLCJnZXRXZWJJbnNwZWN0b3JTb2NrZXQiLCJzdGRvdXQiLCJleGVjIiwicmVjb3JkIiwic3BsaXQiLCJpbmNsdWRlcyIsIm1hdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3NpbXVsYXRvci14Y29kZS05LjMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNpbXVsYXRvclhjb2RlOSBmcm9tICcuL3NpbXVsYXRvci14Y29kZS05JztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG5cbi8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvTUVMNTV0LzFcbmNvbnN0IFdFQklOU1BFQ1RPUl9TT0NLRVRfUkVHRVhQID0gL1xccysoXFxTK2NvbVxcLmFwcGxlXFwud2ViaW5zcGVjdG9yZF9zaW1cXC5zb2NrZXQpLztcblxuY2xhc3MgU2ltdWxhdG9yWGNvZGU5MyBleHRlbmRzIFNpbXVsYXRvclhjb2RlOSB7XG4gIGNvbnN0cnVjdG9yICh1ZGlkLCB4Y29kZVZlcnNpb24pIHtcbiAgICBzdXBlcih1ZGlkLCB4Y29kZVZlcnNpb24pO1xuXG4gICAgdGhpcy53ZWJJbnNwZWN0b3JTb2NrZXQgPSBudWxsO1xuICB9XG5cbiAgLypcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBhc3luYyBnZXRXZWJJbnNwZWN0b3JTb2NrZXQgKCkge1xuICAgIGlmICh0aGlzLndlYkluc3BlY3RvclNvY2tldCkge1xuICAgICAgcmV0dXJuIHRoaXMud2ViSW5zcGVjdG9yU29ja2V0O1xuICAgIH1cblxuICAgIC8vIGxzb2YgLWFVYyBsYXVuY2hkX3NpbVxuICAgIC8vIGdpdmVzIGEgc2V0IG9mIHJlY29yZHMgbGlrZTpcbiAgICAvLyAgIGxhdW5jaGRfcyA2OTc2MCBpc2FhYyAgICAzdSAgdW5peCAweDU3YWE0ZmNlZWEzOTM3ZjMgICAgICAwdDAgICAgICAvcHJpdmF0ZS90bXAvY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlLkQ3MDgyQTVDLTM0QjUtNDc1Qy05OTRFLUEyMTUzNDQyM0I5RS9zeXNsb2dzb2NrXG4gICAgLy8gICBsYXVuY2hkX3MgNjk3NjAgaXNhYWMgICAgNXUgIHVuaXggMHg1N2FhNGZjZWVhMzk1ZjAzICAgICAgMHQwICAgICAgL3ByaXZhdGUvdG1wL2NvbS5hcHBsZS5sYXVuY2hkLjJCMnU4Q2tOOFMvTGlzdGVuZXJzXG4gICAgLy8gICBsYXVuY2hkX3MgNjk3NjAgaXNhYWMgICAgNnUgIHVuaXggMHg1N2FhNGZjZWVhMzkzNzJiICAgICAgMHQwICAgICAgLT4weDU3YWE0ZmNlZWEzOTM3ZjNcbiAgICAvLyAgIGxhdW5jaGRfcyA2OTc2MCBpc2FhYyAgICA4dSAgdW5peCAweDU3YWE0ZmNlZWEzOTU5OGIgICAgICAwdDAgICAgICAvcHJpdmF0ZS90bXAvY29tLmFwcGxlLmxhdW5jaGQuMmo1azFUTWg2aS9jb20uYXBwbGUud2ViaW5zcGVjdG9yZF9zaW0uc29ja2V0XG4gICAgLy8gICBsYXVuY2hkX3MgNjk3NjAgaXNhYWMgICAgOXUgIHVuaXggMHg1N2FhNGZjZWVhMzk0YzQzICAgICAgMHQwICAgICAgL3ByaXZhdGUvdG1wL2NvbS5hcHBsZS5sYXVuY2hkLjR6bTlKTzlLRXMvY29tLmFwcGxlLnRlc3RtYW5hZ2VyZC51bml4LWRvbWFpbi5zb2NrZXRcbiAgICAvLyAgIGxhdW5jaGRfcyA2OTc2MCBpc2FhYyAgIDEwdSAgdW5peCAweDU3YWE0ZmNlZWEzOTVmMDMgICAgICAwdDAgICAgICAvcHJpdmF0ZS90bXAvY29tLmFwcGxlLmxhdW5jaGQuMkIydThDa044Uy9MaXN0ZW5lcnNcbiAgICAvLyAgIGxhdW5jaGRfcyA2OTc2MCBpc2FhYyAgIDExdSAgdW5peCAweDU3YWE0ZmNlZWEzOTU5OGIgICAgICAwdDAgICAgICAvcHJpdmF0ZS90bXAvY29tLmFwcGxlLmxhdW5jaGQuMmo1azFUTWg2aS9jb20uYXBwbGUud2ViaW5zcGVjdG9yZF9zaW0uc29ja2V0XG4gICAgLy8gICBsYXVuY2hkX3MgNjk3NjAgaXNhYWMgICAxMnUgIHVuaXggMHg1N2FhNGZjZWVhMzk0YzQzICAgICAgMHQwICAgICAgL3ByaXZhdGUvdG1wL2NvbS5hcHBsZS5sYXVuY2hkLjR6bTlKTzlLRXMvY29tLmFwcGxlLnRlc3RtYW5hZ2VyZC51bml4LWRvbWFpbi5zb2NrZXRcbiAgICAvLyB0aGVzZSBfYXBwZWFyXyB0byBhbHdheXMgYmUgZ3JvdXBlZCB0b2dldGhlciAoc28sIHRoZSByZWNvcmRzIGZvciB0aGUgcGFydGljdWxhciBzaW0gYXJlIGFsbCBpbiBhIGdyb3VwLCBiZWZvcmUgdGhlIG5leHQgc2ltLCBldGMuKVxuICAgIC8vIHNvIHN0YXJ0aW5nIGZyb20gdGhlIGNvcnJlY3QgVURJRCwgd2Ugb3VnaHQgdG8gYmUgYWJsZSB0byBwdWxsIHRoZSBuZXh0IHJlY29yZCB3aXRoIGBjb20uYXBwbGUud2ViaW5zcGVjdG9yZF9zaW0uc29ja2V0YCB0byBnZXQgdGhlIGNvcnJlY3Qgc29ja2V0XG4gICAgbGV0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygnbHNvZicsIFsnLWFVYycsICdsYXVuY2hkX3NpbSddKTtcbiAgICBmb3IgKGxldCByZWNvcmQgb2Ygc3Rkb3V0LnNwbGl0KCdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2UuJykpIHtcbiAgICAgIGlmICghcmVjb3JkLmluY2x1ZGVzKHRoaXMudWRpZCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXRjaCA9IFdFQklOU1BFQ1RPUl9TT0NLRVRfUkVHRVhQLmV4ZWMocmVjb3JkKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLndlYkluc3BlY3RvclNvY2tldCA9IG1hdGNoWzFdO1xuICAgICAgcmV0dXJuIHRoaXMud2ViSW5zcGVjdG9yU29ja2V0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbXVsYXRvclhjb2RlOTM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUlBLE1BQU1BLDBCQUEwQixHQUFHLCtDQUErQztBQUVsRixNQUFNQyxnQkFBZ0IsU0FBU0MsdUJBQWUsQ0FBQztFQUM3Q0MsV0FBVyxDQUFFQyxJQUFJLEVBQUVDLFlBQVksRUFBRTtJQUMvQixLQUFLLENBQUNELElBQUksRUFBRUMsWUFBWSxDQUFDO0lBRXpCLElBQUksQ0FBQ0Msa0JBQWtCLEdBQUcsSUFBSTtFQUNoQztFQUtBLE1BQU1DLHFCQUFxQixHQUFJO0lBQzdCLElBQUksSUFBSSxDQUFDRCxrQkFBa0IsRUFBRTtNQUMzQixPQUFPLElBQUksQ0FBQ0Esa0JBQWtCO0lBQ2hDO0lBY0EsSUFBSTtNQUFDRTtJQUFNLENBQUMsR0FBRyxNQUFNLElBQUFDLGtCQUFJLEVBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzFELEtBQUssSUFBSUMsTUFBTSxJQUFJRixNQUFNLENBQUNHLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFO01BQ3JFLElBQUksQ0FBQ0QsTUFBTSxDQUFDRSxRQUFRLENBQUMsSUFBSSxDQUFDUixJQUFJLENBQUMsRUFBRTtRQUMvQjtNQUNGO01BQ0EsTUFBTVMsS0FBSyxHQUFHYiwwQkFBMEIsQ0FBQ1MsSUFBSSxDQUFDQyxNQUFNLENBQUM7TUFDckQsSUFBSSxDQUFDRyxLQUFLLEVBQUU7UUFDVixPQUFPLElBQUk7TUFDYjtNQUNBLElBQUksQ0FBQ1Asa0JBQWtCLEdBQUdPLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDbEMsT0FBTyxJQUFJLENBQUNQLGtCQUFrQjtJQUNoQztJQUVBLE9BQU8sSUFBSTtFQUNiO0FBQ0Y7QUFBQyxlQUVjTCxnQkFBZ0I7QUFBQSJ9
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaW11bGF0b3JYY29kZTkzIiwiU2ltdWxhdG9yWGNvZGU5IiwiY29uc3RydWN0b3IiLCJ1ZGlkIiwieGNvZGVWZXJzaW9uIiwid2ViSW5zcGVjdG9yU29ja2V0IiwiZ2V0V2ViSW5zcGVjdG9yU29ja2V0Iiwic3Rkb3V0IiwiZXhlYyIsInVkaWRQYXR0ZXJuIiwidWRpZE1hdGNoIiwibWF0Y2giLCJSZWdFeHAiLCJsb2ciLCJkZWJ1ZyIsInBpZFBhdHRlcm4iLCJwaWRNYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zaW11bGF0b3IteGNvZGUtOS4zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTaW11bGF0b3JYY29kZTkgZnJvbSAnLi9zaW11bGF0b3IteGNvZGUtOSc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNsYXNzIFNpbXVsYXRvclhjb2RlOTMgZXh0ZW5kcyBTaW11bGF0b3JYY29kZTkge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgeGNvZGVWZXJzaW9uKSB7XG4gICAgc3VwZXIodWRpZCwgeGNvZGVWZXJzaW9uKTtcblxuICAgIHRoaXMud2ViSW5zcGVjdG9yU29ja2V0ID0gbnVsbDtcbiAgfVxuXG4gIC8qXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgYXN5bmMgZ2V0V2ViSW5zcGVjdG9yU29ja2V0ICgpIHtcbiAgICBpZiAodGhpcy53ZWJJbnNwZWN0b3JTb2NrZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLndlYkluc3BlY3RvclNvY2tldDtcbiAgICB9XG5cbiAgICAvLyBsc29mIC1hVWMgbGF1bmNoZF9zaW0gZ2l2ZXMgYSBzZXQgb2YgcmVjb3JkcyBsaWtlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0taW9zLXNpbXVsYXRvci9jb21taXQvYzAwOTAxYTlkZGVhMTc4YzU1ODFhN2E1N2Q5NmQ4Y2VlM2YxN2M1OSNkaWZmLTJiZTA5ZGQyZWEwMWNmZDZiYmJkNzNlMTBiYzQ2OGRhNzgyYTI5NzM2NWVlYzcwNjk5OWZjMzcwOWMwMTQ3OGRSMTAyXG4gICAgLy8gdGhlc2UgX2FwcGVhcl8gdG8gYWx3YXlzIGJlIGdyb3VwZWQgdG9nZXRoZXIgYnkgUElEIGZvciBlYWNoIHNpbXVsYXRvci5cbiAgICAvLyBUaGVyZWZvcmUsIGJ5IG9idGFpbmluZyBzaW11bGF0b3IgUElEIHdpdGggYW4gZXhwZWN0ZWQgc2ltdWxhdG9yIFVESUQsXG4gICAgLy8gd2UgY2FuIGdldCB0aGUgY29ycmVjdCBgY29tLmFwcGxlLndlYmluc3BlY3RvcmRfc2ltLnNvY2tldGBcbiAgICAvLyB3aXRob3V0IGRlcGVuZGluZyBvbiB0aGUgb3JkZXIgb2YgYGxzb2YgLWFVYyBsYXVuY2hkX3NpbWAgcmVzdWx0LlxuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygnbHNvZicsIFsnLWFVYycsICdsYXVuY2hkX3NpbSddKTtcbiAgICBjb25zdCB1ZGlkUGF0dGVybiA9IGAoWzAtOV17MSw1fSkuKyR7dGhpcy51ZGlkfWA7XG4gICAgY29uc3QgdWRpZE1hdGNoID0gc3Rkb3V0Lm1hdGNoKG5ldyBSZWdFeHAodWRpZFBhdHRlcm4pKTtcbiAgICBpZiAoIXVkaWRNYXRjaCkge1xuICAgICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gZ2V0IFdlYiBJbnNwZWN0b3Igc29ja2V0LiBsc29mIHJlc3VsdDogJHtzdGRvdXR9YCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwaWRQYXR0ZXJuID0gYCR7dWRpZE1hdGNoWzFdfS4rXFxcXHMrKFxcXFxTK2NvbVxcXFwuYXBwbGVcXFxcLndlYmluc3BlY3RvcmRfc2ltXFxcXC5zb2NrZXQpYDtcbiAgICBjb25zdCBwaWRNYXRjaCA9IHN0ZG91dC5tYXRjaChuZXcgUmVnRXhwKHBpZFBhdHRlcm4pKTtcbiAgICBpZiAoIXBpZE1hdGNoKSB7XG4gICAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBnZXQgV2ViIEluc3BlY3RvciBzb2NrZXQuIGxzb2YgcmVzdWx0OiAke3N0ZG91dH1gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0aGlzLndlYkluc3BlY3RvclNvY2tldCA9IHBpZE1hdGNoWzFdO1xuICAgIHJldHVybiB0aGlzLndlYkluc3BlY3RvclNvY2tldDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaW11bGF0b3JYY29kZTkzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBLE1BQU1BLGdCQUFnQixTQUFTQyx1QkFBZSxDQUFDO0VBQzdDQyxXQUFXLENBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFO0lBQy9CLEtBQUssQ0FBQ0QsSUFBSSxFQUFFQyxZQUFZLENBQUM7SUFFekIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBRyxJQUFJO0VBQ2hDO0VBS0EsTUFBTUMscUJBQXFCLEdBQUk7SUFDN0IsSUFBSSxJQUFJLENBQUNELGtCQUFrQixFQUFFO01BQzNCLE9BQU8sSUFBSSxDQUFDQSxrQkFBa0I7SUFDaEM7SUFRQSxNQUFNO01BQUNFO0lBQU0sQ0FBQyxHQUFHLE1BQU0sSUFBQUMsa0JBQUksRUFBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUQsTUFBTUMsV0FBVyxHQUFJLGlCQUFnQixJQUFJLENBQUNOLElBQUssRUFBQztJQUNoRCxNQUFNTyxTQUFTLEdBQUdILE1BQU0sQ0FBQ0ksS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0gsV0FBVyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDQyxTQUFTLEVBQUU7TUFDZEcsZUFBRyxDQUFDQyxLQUFLLENBQUUsb0RBQW1EUCxNQUFPLEVBQUMsQ0FBQztNQUN2RSxPQUFPLElBQUk7SUFDYjtJQUVBLE1BQU1RLFVBQVUsR0FBSSxHQUFFTCxTQUFTLENBQUMsQ0FBQyxDQUFFLHNEQUFxRDtJQUN4RixNQUFNTSxRQUFRLEdBQUdULE1BQU0sQ0FBQ0ksS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0csVUFBVSxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDQyxRQUFRLEVBQUU7TUFDYkgsZUFBRyxDQUFDQyxLQUFLLENBQUUsb0RBQW1EUCxNQUFPLEVBQUMsQ0FBQztNQUN2RSxPQUFPLElBQUk7SUFDYjtJQUNBLElBQUksQ0FBQ0Ysa0JBQWtCLEdBQUdXLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUNYLGtCQUFrQjtFQUNoQztBQUNGO0FBQUMsZUFFY0wsZ0JBQWdCO0FBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"simulator-xcode-9.3.js","names":["WEBINSPECTOR_SOCKET_REGEXP","SimulatorXcode93","SimulatorXcode9","constructor","udid","xcodeVersion","webInspectorSocket","getWebInspectorSocket","stdout","exec","record","split","includes","match"],"sources":["../../lib/simulator-xcode-9.3.js"],"sourcesContent":["import SimulatorXcode9 from './simulator-xcode-9';\nimport { exec } from 'teen_process';\n\n\n// https://regex101.com/r/MEL55t/1\nconst WEBINSPECTOR_SOCKET_REGEXP = /\\s+(\\S+com\\.apple\\.webinspectord_sim\\.socket)/;\n\nclass SimulatorXcode93 extends SimulatorXcode9 {\n constructor (udid, xcodeVersion) {\n super(udid, xcodeVersion);\n\n this.webInspectorSocket = null;\n }\n\n /*\n * @override\n */\n async getWebInspectorSocket () {\n if (this.webInspectorSocket) {\n return this.webInspectorSocket;\n }\n\n // lsof -aUc launchd_sim\n // gives a set of records like:\n // launchd_s 69760 isaac 3u unix 0x57aa4fceea3937f3 0t0 /private/tmp/com.apple.CoreSimulator.SimDevice.D7082A5C-34B5-475C-994E-A21534423B9E/syslogsock\n // launchd_s 69760 isaac 5u unix 0x57aa4fceea395f03 0t0 /private/tmp/com.apple.launchd.2B2u8CkN8S/Listeners\n // launchd_s 69760 isaac 6u unix 0x57aa4fceea39372b 0t0 ->0x57aa4fceea3937f3\n // launchd_s 69760 isaac 8u unix 0x57aa4fceea39598b 0t0 /private/tmp/com.apple.launchd.2j5k1TMh6i/com.apple.webinspectord_sim.socket\n // launchd_s 69760 isaac 9u unix 0x57aa4fceea394c43 0t0 /private/tmp/com.apple.launchd.4zm9JO9KEs/com.apple.testmanagerd.unix-domain.socket\n // launchd_s 69760 isaac 10u unix 0x57aa4fceea395f03 0t0 /private/tmp/com.apple.launchd.2B2u8CkN8S/Listeners\n // launchd_s 69760 isaac 11u unix 0x57aa4fceea39598b 0t0 /private/tmp/com.apple.launchd.2j5k1TMh6i/com.apple.webinspectord_sim.socket\n // launchd_s 69760 isaac 12u unix 0x57aa4fceea394c43 0t0 /private/tmp/com.apple.launchd.4zm9JO9KEs/com.apple.testmanagerd.unix-domain.socket\n // these _appear_ to always be grouped together (so, the records for the particular sim are all in a group, before the next sim, etc.)\n // so starting from the correct UDID, we ought to be able to pull the next record with `com.apple.webinspectord_sim.socket` to get the correct socket\n let {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);\n for (let record of stdout.split('com.apple.CoreSimulator.SimDevice.')) {\n if (!record.includes(this.udid)) {\n continue;\n }\n const match = WEBINSPECTOR_SOCKET_REGEXP.exec(record);\n if (!match) {\n return null;\n }\n this.webInspectorSocket = match[1];\n return this.webInspectorSocket;\n }\n\n return null;\n }\n}\n\nexport default SimulatorXcode93;\n"],"mappings":";;;;;;;;AAAA;AACA;AAIA,MAAMA,0BAA0B,GAAG,+CAA+C;AAElF,MAAMC,gBAAgB,SAASC,uBAAe,CAAC;EAC7CC,WAAW,CAAEC,IAAI,EAAEC,YAAY,EAAE;IAC/B,KAAK,CAACD,IAAI,EAAEC,YAAY,CAAC;IAEzB,IAAI,CAACC,kBAAkB,GAAG,IAAI;EAChC;EAKA,MAAMC,qBAAqB,GAAI;IAC7B,IAAI,IAAI,CAACD,kBAAkB,EAAE;MAC3B,OAAO,IAAI,CAACA,kBAAkB;IAChC;IAcA,IAAI;MAACE;IAAM,CAAC,GAAG,MAAM,IAAAC,kBAAI,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1D,KAAK,IAAIC,MAAM,IAAIF,MAAM,CAACG,KAAK,CAAC,oCAAoC,CAAC,EAAE;MACrE,IAAI,CAACD,MAAM,CAACE,QAAQ,CAAC,IAAI,CAACR,IAAI,CAAC,EAAE;QAC/B;MACF;MACA,MAAMS,KAAK,GAAGb,0BAA0B,CAACS,IAAI,CAACC,MAAM,CAAC;MACrD,IAAI,CAACG,KAAK,EAAE;QACV,OAAO,IAAI;MACb;MACA,IAAI,CAACP,kBAAkB,GAAGO,KAAK,CAAC,CAAC,CAAC;MAClC,OAAO,IAAI,CAACP,kBAAkB;IAChC;IAEA,OAAO,IAAI;EACb;AACF;AAAC,eAEcL,gBAAgB;AAAA"}
1
+ {"version":3,"file":"simulator-xcode-9.3.js","names":["SimulatorXcode93","SimulatorXcode9","constructor","udid","xcodeVersion","webInspectorSocket","getWebInspectorSocket","stdout","exec","udidPattern","udidMatch","match","RegExp","log","debug","pidPattern","pidMatch"],"sources":["../../lib/simulator-xcode-9.3.js"],"sourcesContent":["import SimulatorXcode9 from './simulator-xcode-9';\nimport { exec } from 'teen_process';\nimport log from './logger';\n\n\nclass SimulatorXcode93 extends SimulatorXcode9 {\n constructor (udid, xcodeVersion) {\n super(udid, xcodeVersion);\n\n this.webInspectorSocket = null;\n }\n\n /*\n * @override\n */\n async getWebInspectorSocket () {\n if (this.webInspectorSocket) {\n return this.webInspectorSocket;\n }\n\n // lsof -aUc launchd_sim gives a set of records like\n // https://github.com/appium/appium-ios-simulator/commit/c00901a9ddea178c5581a7a57d96d8cee3f17c59#diff-2be09dd2ea01cfd6bbbd73e10bc468da782a297365eec706999fc3709c01478dR102\n // these _appear_ to always be grouped together by PID for each simulator.\n // Therefore, by obtaining simulator PID with an expected simulator UDID,\n // we can get the correct `com.apple.webinspectord_sim.socket`\n // without depending on the order of `lsof -aUc launchd_sim` result.\n const {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);\n const udidPattern = `([0-9]{1,5}).+${this.udid}`;\n const udidMatch = stdout.match(new RegExp(udidPattern));\n if (!udidMatch) {\n log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);\n return null;\n }\n\n const pidPattern = `${udidMatch[1]}.+\\\\s+(\\\\S+com\\\\.apple\\\\.webinspectord_sim\\\\.socket)`;\n const pidMatch = stdout.match(new RegExp(pidPattern));\n if (!pidMatch) {\n log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);\n return null;\n }\n this.webInspectorSocket = pidMatch[1];\n return this.webInspectorSocket;\n }\n}\n\nexport default SimulatorXcode93;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAGA,MAAMA,gBAAgB,SAASC,uBAAe,CAAC;EAC7CC,WAAW,CAAEC,IAAI,EAAEC,YAAY,EAAE;IAC/B,KAAK,CAACD,IAAI,EAAEC,YAAY,CAAC;IAEzB,IAAI,CAACC,kBAAkB,GAAG,IAAI;EAChC;EAKA,MAAMC,qBAAqB,GAAI;IAC7B,IAAI,IAAI,CAACD,kBAAkB,EAAE;MAC3B,OAAO,IAAI,CAACA,kBAAkB;IAChC;IAQA,MAAM;MAACE;IAAM,CAAC,GAAG,MAAM,IAAAC,kBAAI,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAMC,WAAW,GAAI,iBAAgB,IAAI,CAACN,IAAK,EAAC;IAChD,MAAMO,SAAS,GAAGH,MAAM,CAACI,KAAK,CAAC,IAAIC,MAAM,CAACH,WAAW,CAAC,CAAC;IACvD,IAAI,CAACC,SAAS,EAAE;MACdG,eAAG,CAACC,KAAK,CAAE,oDAAmDP,MAAO,EAAC,CAAC;MACvE,OAAO,IAAI;IACb;IAEA,MAAMQ,UAAU,GAAI,GAAEL,SAAS,CAAC,CAAC,CAAE,sDAAqD;IACxF,MAAMM,QAAQ,GAAGT,MAAM,CAACI,KAAK,CAAC,IAAIC,MAAM,CAACG,UAAU,CAAC,CAAC;IACrD,IAAI,CAACC,QAAQ,EAAE;MACbH,eAAG,CAACC,KAAK,CAAE,oDAAmDP,MAAO,EAAC,CAAC;MACvE,OAAO,IAAI;IACb;IACA,IAAI,CAACF,kBAAkB,GAAGW,QAAQ,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,CAACX,kBAAkB;EAChC;AACF;AAAC,eAEcL,gBAAgB;AAAA"}
@@ -30,8 +30,8 @@ async function setLocationWithLyft (udid, latitude, longitude) {
30
30
  } catch (e) {
31
31
  throw new Error(`'${LYFT_SET_LOCATION}' binary has not been found in your PATH. ` +
32
32
  'Please install it as "brew install lyft/formulae/set-simulator-location" by brew or ' +
33
- 'read https://github.com/lyft/set-simulator-location to set the binary by manual to ' +
34
- 'be able to set geolocation by the library.');
33
+ 'read https://github.com/MobileNativeFoundation/set-simulator-location to set ' +
34
+ 'the binary by manual to be able to set geolocation by the library.');
35
35
  }
36
36
 
37
37
  try {
@@ -1,10 +1,8 @@
1
1
  import SimulatorXcode9 from './simulator-xcode-9';
2
2
  import { exec } from 'teen_process';
3
+ import log from './logger';
3
4
 
4
5
 
5
- // https://regex101.com/r/MEL55t/1
6
- const WEBINSPECTOR_SOCKET_REGEXP = /\s+(\S+com\.apple\.webinspectord_sim\.socket)/;
7
-
8
6
  class SimulatorXcode93 extends SimulatorXcode9 {
9
7
  constructor (udid, xcodeVersion) {
10
8
  super(udid, xcodeVersion);
@@ -20,32 +18,28 @@ class SimulatorXcode93 extends SimulatorXcode9 {
20
18
  return this.webInspectorSocket;
21
19
  }
22
20
 
23
- // lsof -aUc launchd_sim
24
- // gives a set of records like:
25
- // launchd_s 69760 isaac 3u unix 0x57aa4fceea3937f3 0t0 /private/tmp/com.apple.CoreSimulator.SimDevice.D7082A5C-34B5-475C-994E-A21534423B9E/syslogsock
26
- // launchd_s 69760 isaac 5u unix 0x57aa4fceea395f03 0t0 /private/tmp/com.apple.launchd.2B2u8CkN8S/Listeners
27
- // launchd_s 69760 isaac 6u unix 0x57aa4fceea39372b 0t0 ->0x57aa4fceea3937f3
28
- // launchd_s 69760 isaac 8u unix 0x57aa4fceea39598b 0t0 /private/tmp/com.apple.launchd.2j5k1TMh6i/com.apple.webinspectord_sim.socket
29
- // launchd_s 69760 isaac 9u unix 0x57aa4fceea394c43 0t0 /private/tmp/com.apple.launchd.4zm9JO9KEs/com.apple.testmanagerd.unix-domain.socket
30
- // launchd_s 69760 isaac 10u unix 0x57aa4fceea395f03 0t0 /private/tmp/com.apple.launchd.2B2u8CkN8S/Listeners
31
- // launchd_s 69760 isaac 11u unix 0x57aa4fceea39598b 0t0 /private/tmp/com.apple.launchd.2j5k1TMh6i/com.apple.webinspectord_sim.socket
32
- // launchd_s 69760 isaac 12u unix 0x57aa4fceea394c43 0t0 /private/tmp/com.apple.launchd.4zm9JO9KEs/com.apple.testmanagerd.unix-domain.socket
33
- // these _appear_ to always be grouped together (so, the records for the particular sim are all in a group, before the next sim, etc.)
34
- // so starting from the correct UDID, we ought to be able to pull the next record with `com.apple.webinspectord_sim.socket` to get the correct socket
35
- let {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);
36
- for (let record of stdout.split('com.apple.CoreSimulator.SimDevice.')) {
37
- if (!record.includes(this.udid)) {
38
- continue;
39
- }
40
- const match = WEBINSPECTOR_SOCKET_REGEXP.exec(record);
41
- if (!match) {
42
- return null;
43
- }
44
- this.webInspectorSocket = match[1];
45
- return this.webInspectorSocket;
21
+ // lsof -aUc launchd_sim gives a set of records like
22
+ // https://github.com/appium/appium-ios-simulator/commit/c00901a9ddea178c5581a7a57d96d8cee3f17c59#diff-2be09dd2ea01cfd6bbbd73e10bc468da782a297365eec706999fc3709c01478dR102
23
+ // these _appear_ to always be grouped together by PID for each simulator.
24
+ // Therefore, by obtaining simulator PID with an expected simulator UDID,
25
+ // we can get the correct `com.apple.webinspectord_sim.socket`
26
+ // without depending on the order of `lsof -aUc launchd_sim` result.
27
+ const {stdout} = await exec('lsof', ['-aUc', 'launchd_sim']);
28
+ const udidPattern = `([0-9]{1,5}).+${this.udid}`;
29
+ const udidMatch = stdout.match(new RegExp(udidPattern));
30
+ if (!udidMatch) {
31
+ log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
32
+ return null;
46
33
  }
47
34
 
48
- return null;
35
+ const pidPattern = `${udidMatch[1]}.+\\s+(\\S+com\\.apple\\.webinspectord_sim\\.socket)`;
36
+ const pidMatch = stdout.match(new RegExp(pidPattern));
37
+ if (!pidMatch) {
38
+ log.debug(`Failed to get Web Inspector socket. lsof result: ${stdout}`);
39
+ return null;
40
+ }
41
+ this.webInspectorSocket = pidMatch[1];
42
+ return this.webInspectorSocket;
49
43
  }
50
44
  }
51
45
 
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "ios",
8
8
  "simctl"
9
9
  ],
10
- "version": "5.0.2",
10
+ "version": "5.0.4",
11
11
  "author": "Appium Contributors",
12
12
  "license": "Apache-2.0",
13
13
  "repository": {