appium-ios-simulator 3.26.1 → 3.27.2
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/build/lib/defaults-utils.js +139 -0
- package/build/lib/geolocation.js +10 -11
- package/build/lib/simulator-xcode-10.js +27 -5
- package/build/lib/simulator-xcode-6.js +5 -32
- package/build/lib/simulator-xcode-9.js +67 -38
- package/lib/defaults-utils.js +154 -0
- package/lib/geolocation.js +17 -10
- package/lib/simulator-xcode-10.js +24 -7
- package/lib/simulator-xcode-6.js +1 -45
- package/lib/simulator-xcode-9.js +73 -35
- package/package.json +4 -4
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.toXmlArg = toXmlArg;
|
|
9
|
+
exports.generateUpdateCommandArgs = generateUpdateCommandArgs;
|
|
10
|
+
exports.NSUserDefaults = void 0;
|
|
11
|
+
|
|
12
|
+
require("source-map-support/register");
|
|
13
|
+
|
|
14
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
15
|
+
|
|
16
|
+
var _xmldom = require("xmldom");
|
|
17
|
+
|
|
18
|
+
var _teen_process = require("teen_process");
|
|
19
|
+
|
|
20
|
+
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
21
|
+
|
|
22
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
|
23
|
+
|
|
24
|
+
function toXmlArg(value, serialize = true) {
|
|
25
|
+
let xmlDoc = null;
|
|
26
|
+
|
|
27
|
+
if (_lodash.default.isPlainObject(value)) {
|
|
28
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString('<dict></dict>', 'text/xml');
|
|
29
|
+
|
|
30
|
+
for (const [subKey, subValue] of _lodash.default.toPairs(value)) {
|
|
31
|
+
const keyEl = xmlDoc.createElement('key');
|
|
32
|
+
const keyTextEl = xmlDoc.createTextNode(subKey);
|
|
33
|
+
keyEl.appendChild(keyTextEl);
|
|
34
|
+
xmlDoc.documentElement.appendChild(keyEl);
|
|
35
|
+
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
36
|
+
xmlDoc.documentElement.appendChild(subValueEl);
|
|
37
|
+
}
|
|
38
|
+
} else if (_lodash.default.isArray(value)) {
|
|
39
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString('<array></array>', 'text/xml');
|
|
40
|
+
|
|
41
|
+
for (const subValue of value) {
|
|
42
|
+
const subValueEl = xmlDoc.importNode(toXmlArg(subValue, false), true);
|
|
43
|
+
xmlDoc.documentElement.appendChild(subValueEl);
|
|
44
|
+
}
|
|
45
|
+
} else if (_lodash.default.isBoolean(value)) {
|
|
46
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString(value ? '<true/>' : '<false/>', 'text/xml');
|
|
47
|
+
} else if (_lodash.default.isInteger(value)) {
|
|
48
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString(`<integer>${value}</integer>`, 'text/xml');
|
|
49
|
+
} else if (_lodash.default.isNumber(value)) {
|
|
50
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString(`<real>${value}</real>`, 'text/xml');
|
|
51
|
+
} else if (_lodash.default.isString(value)) {
|
|
52
|
+
xmlDoc = new _xmldom.DOMParser().parseFromString(`<string></string>`, 'text/xml');
|
|
53
|
+
const valueTextEl = xmlDoc.createTextNode(value);
|
|
54
|
+
xmlDoc.documentElement.appendChild(valueTextEl);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (!xmlDoc) {
|
|
58
|
+
throw new TypeError(`The defaults value ${JSON.stringify(value)} cannot be written, ` + `because it is not known how to handle its type`);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return serialize ? new _xmldom.XMLSerializer().serializeToString(xmlDoc.documentElement) : xmlDoc.documentElement;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function generateUpdateCommandArgs(valuesMap) {
|
|
65
|
+
const resultArgs = [];
|
|
66
|
+
|
|
67
|
+
for (const [key, value] of _lodash.default.toPairs(valuesMap)) {
|
|
68
|
+
try {
|
|
69
|
+
if (_lodash.default.isPlainObject(value)) {
|
|
70
|
+
const dictArgs = [key, '-dict-add'];
|
|
71
|
+
|
|
72
|
+
for (const [subKey, subValue] of _lodash.default.toPairs(value)) {
|
|
73
|
+
dictArgs.push(subKey, toXmlArg(subValue));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
resultArgs.push(dictArgs);
|
|
77
|
+
} else if (_lodash.default.isArray(value)) {
|
|
78
|
+
const arrayArgs = [key, '-array-add'];
|
|
79
|
+
|
|
80
|
+
for (const subValue of arrayArgs) {
|
|
81
|
+
arrayArgs.push(toXmlArg(subValue));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
resultArgs.push(arrayArgs);
|
|
85
|
+
} else {
|
|
86
|
+
resultArgs.push([key, toXmlArg(value)]);
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
if (e instanceof TypeError) {
|
|
90
|
+
_logger.default.warn(e.message);
|
|
91
|
+
} else {
|
|
92
|
+
throw e;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return resultArgs;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
class NSUserDefaults {
|
|
101
|
+
constructor(plist) {
|
|
102
|
+
this.plist = plist;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async asJson() {
|
|
106
|
+
try {
|
|
107
|
+
const {
|
|
108
|
+
stdout
|
|
109
|
+
} = await (0, _teen_process.exec)('plutil', ['-convert', 'json', '-o', '-', this.plist]);
|
|
110
|
+
return JSON.parse(stdout);
|
|
111
|
+
} catch (e) {
|
|
112
|
+
throw new Error(`'${this.plist}' cannot be converted to JSON. Original error: ${e.stderr || e.message}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async update(valuesMap) {
|
|
117
|
+
if (!_lodash.default.isPlainObject(valuesMap)) {
|
|
118
|
+
throw new TypeError(`plist values must be a map. '${valuesMap}' is given instead`);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (_lodash.default.isEmpty(valuesMap)) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const commandArgs = generateUpdateCommandArgs(valuesMap);
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
await _bluebird.default.all(commandArgs.map(args => (0, _teen_process.exec)('defaults', ['write', this.plist, ...args])));
|
|
129
|
+
} catch (e) {
|
|
130
|
+
throw new Error(`Could not write defaults into '${this.plist}'. Original error: ${e.stderr || e.message}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
exports.NSUserDefaults = NSUserDefaults;require('source-map-support').install();
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kZWZhdWx0cy11dGlscy5qcyJdLCJuYW1lcyI6WyJ0b1htbEFyZyIsInZhbHVlIiwic2VyaWFsaXplIiwieG1sRG9jIiwiXyIsImlzUGxhaW5PYmplY3QiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJzdWJLZXkiLCJzdWJWYWx1ZSIsInRvUGFpcnMiLCJrZXlFbCIsImNyZWF0ZUVsZW1lbnQiLCJrZXlUZXh0RWwiLCJjcmVhdGVUZXh0Tm9kZSIsImFwcGVuZENoaWxkIiwiZG9jdW1lbnRFbGVtZW50Iiwic3ViVmFsdWVFbCIsImltcG9ydE5vZGUiLCJpc0FycmF5IiwiaXNCb29sZWFuIiwiaXNJbnRlZ2VyIiwiaXNOdW1iZXIiLCJpc1N0cmluZyIsInZhbHVlVGV4dEVsIiwiVHlwZUVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsIlhNTFNlcmlhbGl6ZXIiLCJzZXJpYWxpemVUb1N0cmluZyIsImdlbmVyYXRlVXBkYXRlQ29tbWFuZEFyZ3MiLCJ2YWx1ZXNNYXAiLCJyZXN1bHRBcmdzIiwia2V5IiwiZGljdEFyZ3MiLCJwdXNoIiwiYXJyYXlBcmdzIiwiZSIsImxvZyIsIndhcm4iLCJtZXNzYWdlIiwiTlNVc2VyRGVmYXVsdHMiLCJjb25zdHJ1Y3RvciIsInBsaXN0IiwiYXNKc29uIiwic3Rkb3V0IiwicGFyc2UiLCJFcnJvciIsInN0ZGVyciIsInVwZGF0ZSIsImlzRW1wdHkiLCJjb21tYW5kQXJncyIsIkIiLCJhbGwiLCJtYXAiLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBY0EsU0FBU0EsUUFBVCxDQUFtQkMsS0FBbkIsRUFBMEJDLFNBQVMsR0FBRyxJQUF0QyxFQUE0QztBQUMxQyxNQUFJQyxNQUFNLEdBQUcsSUFBYjs7QUFFQSxNQUFJQyxnQkFBRUMsYUFBRixDQUFnQkosS0FBaEIsQ0FBSixFQUE0QjtBQUMxQkUsSUFBQUEsTUFBTSxHQUFHLElBQUlHLGlC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O0FBQ0QsS0FGRCxDQUVFLE9BQU9sQixDQUFQLEVBQVU7QUFDVixZQUFNLElBQUlVLEtBQUosQ0FBVyxrQ0FBaUMsS0FBS0osS0FBTSxzQkFBcUJOLENBQUMsQ0FBQ1csTUFBRixJQUFZWCxDQUFDLENBQUNHLE9BQVEsRUFBbEcsQ0FBTjtBQUNEO0FBQ0Y7O0FBOUNrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBET01QYXJzZXIsIFhNTFNlcmlhbGl6ZXIgfSBmcm9tICd4bWxkb20nO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiB2YWx1ZSB0byBwbGlzdC1jb21wYXRpYmxlXG4gKiBYTUwgcmVwcmVzZW50YXRpb24sIHdoaWNoIGlzIHJlYWR5IGZvciBmdXJ0aGVyIHVzYWdlXG4gKiB3aXRoIGBkZWZhdWx0c2AgY29tbWFuZCBsaW5lIHRvb2wgYXJndW1lbnRzXG4gKlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgc2VyaWFsaXplZFxuICogQHBhcmFtIHtib29sZWFufSBzZXJpYWxpemUgW3RydWVdIFdoZXRoZXIgdG8gc2VyaWFsaXplIHRoZSByZXN1bHRpbmdcbiAqIFhNTCB0byBzdHJpbmcgb3IgdG8gcmV0dXJuIHJhdyBIVE1MRWxlbWVudCBpbnN0YW5jZVxuICogQHJldHVybnMge0hUTUxFbGVtZW50fHN0cmluZ30gRWl0aGVyIHN0cmluZyBvciByYXcgbm9kZSByZXByZXNlbnRhdGlvbiBvZlxuICogdGhlIGdpdmVuIHZhbHVlXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IElmIGl0IGlzIG5vdCBrbm93biBob3cgdG8gc2VyaWFsaXplIHRoZSBnaXZlbiB2YWx1ZVxuICovXG5mdW5jdGlvbiB0b1htbEFyZyAodmFsdWUsIHNlcmlhbGl6ZSA9IHRydWUpIHtcbiAgbGV0IHhtbERvYyA9IG51bGw7XG5cbiAgaWYgKF8uaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB4bWxEb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKCc8ZGljdD48L2RpY3Q+JywgJ3RleHQveG1sJyk7XG4gICAgZm9yIChjb25zdCBbc3ViS2V5LCBzdWJWYWx1ZV0gb2YgXy50b1BhaXJzKHZhbHVlKSkge1xuICAgICAgY29uc3Qga2V5RWwgPSB4bWxEb2MuY3JlYXRlRWxlbWVudCgna2V5Jyk7XG4gICAgICBjb25zdCBrZXlUZXh0RWwgPSB4bWxEb2MuY3JlYXRlVGV4dE5vZGUoc3ViS2V5KTtcbiAgICAgIGtleUVsLmFwcGVuZENoaWxkKGtleVRleHRFbCk7XG4gICAgICB4bWxEb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGtleUVsKTtcbiAgICAgIGNvbnN0IHN1YlZhbHVlRWwgPSB4bWxEb2MuaW1wb3J0Tm9kZSh0b1htbEFyZyhzdWJWYWx1ZSwgZmFsc2UpLCB0cnVlKTtcbiAgICAgIHhtbERvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoc3ViVmFsdWVFbCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB4bWxEb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKCc8YXJyYXk+PC9hcnJheT4nLCAndGV4dC94bWwnKTtcbiAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICBjb25zdCBzdWJWYWx1ZUVsID0geG1sRG9jLmltcG9ydE5vZGUodG9YbWxBcmcoc3ViVmFsdWUsIGZhbHNlKSwgdHJ1ZSk7XG4gICAgICB4bWxEb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHN1YlZhbHVlRWwpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfLmlzQm9vbGVhbih2YWx1ZSkpIHtcbiAgICB4bWxEb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHZhbHVlID8gJzx0cnVlLz4nIDogJzxmYWxzZS8+JywgJ3RleHQveG1sJyk7XG4gIH0gZWxzZSBpZiAoXy5pc0ludGVnZXIodmFsdWUpKSB7XG4gICAgeG1sRG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPGludGVnZXI+JHt2YWx1ZX08L2ludGVnZXI+YCwgJ3RleHQveG1sJyk7XG4gIH0gZWxzZSBpZiAoXy5pc051bWJlcih2YWx1ZSkpIHtcbiAgICB4bWxEb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8cmVhbD4ke3ZhbHVlfTwvcmVhbD5gLCAndGV4dC94bWwnKTtcbiAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHZhbHVlKSkge1xuICAgIHhtbERvYyA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxzdHJpbmc+PC9zdHJpbmc+YCwgJ3RleHQveG1sJyk7XG4gICAgY29uc3QgdmFsdWVUZXh0RWwgPSB4bWxEb2MuY3JlYXRlVGV4dE5vZGUodmFsdWUpO1xuICAgIHhtbERvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodmFsdWVUZXh0RWwpO1xuICB9XG5cbiAgaWYgKCF4bWxEb2MpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgZGVmYXVsdHMgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9IGNhbm5vdCBiZSB3cml0dGVuLCBgICtcbiAgICAgIGBiZWNhdXNlIGl0IGlzIG5vdCBrbm93biBob3cgdG8gaGFuZGxlIGl0cyB0eXBlYCk7XG4gIH1cblxuICByZXR1cm4gc2VyaWFsaXplXG4gICAgPyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbERvYy5kb2N1bWVudEVsZW1lbnQpXG4gICAgOiB4bWxEb2MuZG9jdW1lbnRFbGVtZW50O1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBjb21tYW5kIGxpbmUgYXJncyBmb3IgdGhlIGBkZWZhdWx0c2BcbiAqIGNvbW1hbmQgbGluZSB1dGlsaXR5IGJhc2VkIG9uIHRoZSBnaXZlbiBwcmVmZXJlbmNlIHZhbHVlcyBtYXBwaW5nLlxuICogU2VlIGh0dHBzOi8vc2hhZG93ZmlsZS5pbm9kZS5saW5rL2Jsb2cvMjAxOC8wNi9hZHZhbmNlZC1kZWZhdWx0czEtdXNhZ2UvXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXNNYXAgUHJlZmVyZW5jZXMgbWFwcGluZ1xuICogQHJldHVybnMge0FycmF5PEFycmF5PHN0cmluZz4+fSBFYWNoIGl0ZW0gaW4gdGhlIGFycmF5XG4gKiBpcyB0aGUgYGRlZmF1bHRzIHdyaXRlIDxwbGlzdD5gIGNvbW1hbmQgc3VmZml4XG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlVXBkYXRlQ29tbWFuZEFyZ3MgKHZhbHVlc01hcCkge1xuICBjb25zdCByZXN1bHRBcmdzID0gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyh2YWx1ZXNNYXApKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChfLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IGRpY3RBcmdzID0gW2tleSwgJy1kaWN0LWFkZCddO1xuICAgICAgICBmb3IgKGNvbnN0IFtzdWJLZXksIHN1YlZhbHVlXSBvZiBfLnRvUGFpcnModmFsdWUpKSB7XG4gICAgICAgICAgZGljdEFyZ3MucHVzaChzdWJLZXksIHRvWG1sQXJnKHN1YlZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0QXJncy5wdXNoKGRpY3RBcmdzKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBjb25zdCBhcnJheUFyZ3MgPSBba2V5LCAnLWFycmF5LWFkZCddO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIGFycmF5QXJncykge1xuICAgICAgICAgIGFycmF5QXJncy5wdXNoKHRvWG1sQXJnKHN1YlZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0QXJncy5wdXNoKGFycmF5QXJncyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRBcmdzLnB1c2goW2tleSwgdG9YbWxBcmcodmFsdWUpXSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgbG9nLndhcm4oZS5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRBcmdzO1xufVxuXG5cbmNsYXNzIE5TVXNlckRlZmF1bHRzIHtcbiAgY29uc3RydWN0b3IgKHBsaXN0KSB7XG4gICAgdGhpcy5wbGlzdCA9IHBsaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBjb250ZW50IG9mIHRoZSBnaXZlbiBwbGlzdCBmaWxlIHVzaW5nIHBsdXRpbCBjb21tYW5kIGxpbmUgdG9vbFxuICAgKiBhbmQgc2VyaWFsaXplcyBpdCB0byBhIEpTT04gcmVwcmVzZW50YXRpb25cbiAgICpcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHNlcmlhbGl6ZWQgcGxpc3QgY29udGVudFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyBzZXJpYWxpemF0aW9uXG4gICAqL1xuICBhc3luYyBhc0pzb24gKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ3BsdXRpbCcsIFsnLWNvbnZlcnQnLCAnanNvbicsICctbycsICctJywgdGhpcy5wbGlzdF0pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3RoaXMucGxpc3R9JyBjYW5ub3QgYmUgY29udmVydGVkIHRvIEpTT04uIE9yaWdpbmFsIGVycm9yOiAke2Uuc3RkZXJyIHx8IGUubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY29udGVudCBvZiB0aGUgZ2l2ZW4gcGxpc3QgZmlsZS5cbiAgICogSWYgdGhlIHBsaXN0IGRvZXMgbm90IGV4aXN0IHlldCB0aGVuIGl0IGlzIGdvaW5nIHRvIGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXNNYXAgTWFwcGluZyBvZiBwcmVmZXJlbmNlIHZhbHVlcyB0byB1cGRhdGUuXG4gICAqIElmIGFueSBvZiBpdGVtIHZhbHVlcyBhcmUgb2YgZGljdGlvbmFyeSB0eXBlIHRoZW4gb25seSB0aGUgZmlyc3QgbGV2ZWwgZGljdGlvbmFyeSBnZXRzXG4gICAqIHVwZGF0ZWQuIEV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBsZXZlbCB3aWxsIGJlIHJlcGxhY2VkLiBUaGlzIGlzIHRoZSBrbm93biBsaW1pdGF0aW9uXG4gICAqIG9mIHRoZSBgZGVmYXVsdHNgIGNvbW1hbmQgbGluZSB0b29sLiBBIHdvcmthcm91bmQgZm9yIGl0IHdvdWxkIGJlIHRvIHJlYWQgdGhlIGN1cnJlbnRcbiAgICogcHJlZmVyZW5jZXMgbWFwcGluZyBmaXJzdCBhbmQgbWVyZ2UgaXQgd2l0aCB0aGlzIHZhbHVlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHVwZGF0aW5nIHRoZSBwbGlzdFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlICh2YWx1ZXNNYXApIHtcbiAgICBpZiAoIV8uaXNQbGFpbk9iamVjdCh2YWx1ZXNNYXApKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBwbGlzdCB2YWx1ZXMgbXVzdCBiZSBhIG1hcC4gJyR7dmFsdWVzTWFwfScgaXMgZ2l2ZW4gaW5zdGVhZGApO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHZhbHVlc01hcCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21tYW5kQXJncyA9IGdlbmVyYXRlVXBkYXRlQ29tbWFuZEFyZ3ModmFsdWVzTWFwKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgQi5hbGwoY29tbWFuZEFyZ3MubWFwKChhcmdzKSA9PiBleGVjKCdkZWZhdWx0cycsIFsnd3JpdGUnLCB0aGlzLnBsaXN0LCAuLi5hcmdzXSkpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCB3cml0ZSBkZWZhdWx0cyBpbnRvICcke3RoaXMucGxpc3R9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuXG5cbmV4cG9ydCB7XG4gIE5TVXNlckRlZmF1bHRzLFxuICB0b1htbEFyZywgZ2VuZXJhdGVVcGRhdGVDb21tYW5kQXJncyxcbn07XG4iXSwiZmlsZSI6ImxpYi9kZWZhdWx0cy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
package/build/lib/geolocation.js
CHANGED
|
@@ -36,21 +36,20 @@ async function setLocationWithLyft(udid, latitude, longitude) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
async function setLocationWithIdb(idb, latitude, longitude) {
|
|
39
|
-
if (idb) {
|
|
40
|
-
|
|
41
|
-
await idb.setLocation(latitude, longitude);
|
|
42
|
-
} catch (e) {
|
|
43
|
-
throw new Error(`Failed to set geolocation with idb. Original error: ${e.stderr || e.message}`);
|
|
44
|
-
}
|
|
39
|
+
if (!idb) {
|
|
40
|
+
throw new Error('Failed to set geolocation with idb because it is not installed or the "launchWithIDB" capability was not set');
|
|
45
41
|
}
|
|
46
42
|
|
|
47
|
-
|
|
43
|
+
try {
|
|
44
|
+
await idb.setLocation(latitude, longitude);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
throw new Error(`Failed to set geolocation with idb. Original error: ${e.stderr || e.message}`);
|
|
47
|
+
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
async function setLocationWithAppleScript(sim, latitude, longitude, menu = 'Debug') {
|
|
51
|
-
const decimalSeparator = 0.
|
|
52
|
-
const latitudeStr = `${
|
|
53
|
-
const longitudeStr = `${longitude}`.replace(/\D/g, decimalSeparator);
|
|
51
|
+
const decimalSeparator = (await (0, _teen_process.exec)('/usr/bin/python', ['-c', 'from AppKit import NSNumberFormatter;' + 'import sys;' + 'sys.stdout.write(NSNumberFormatter.alloc().init().decimalSeparator())'])).stdout;
|
|
52
|
+
const [latitudeStr, longitudeStr] = [latitude, longitude].map(coord => `${coord}`.replace(/\D/g, decimalSeparator));
|
|
54
53
|
const output = await sim.executeUIClientScript(`
|
|
55
54
|
tell application "System Events"
|
|
56
55
|
tell process "Simulator"
|
|
@@ -77,4 +76,4 @@ async function setLocationWithAppleScript(sim, latitude, longitude, menu = 'Debu
|
|
|
77
76
|
}require('source-map-support').install();
|
|
78
77
|
|
|
79
78
|
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9nZW9sb2NhdGlvbi5qcyJdLCJuYW1lcyI6WyJMWUZUX1NFVF9MT0NBVElPTiIsInNldExvY2F0aW9uV2l0aEx5ZnQiLCJ1ZGlkIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmcyIsIndoaWNoIiwiZSIsIkVycm9yIiwic3RkZXJyIiwibWVzc2FnZSIsInNldExvY2F0aW9uV2l0aElkYiIsImlkYiIsInNldExvY2F0aW9uIiwic2V0TG9jYXRpb25XaXRoQXBwbGVTY3JpcHQiLCJzaW0iLCJtZW51IiwiZGVjaW1hbFNlcGFyYXRvciIsInN0ZG91dCIsImxhdGl0dWRlU3RyIiwibG9uZ2l0dWRlU3RyIiwibWFwIiwiY29vcmQiLCJyZXBsYWNlIiwib3V0cHV0IiwiZXhlY3V0ZVVJQ2xpZW50U2NyaXB0IiwibG9nIiwiZGVidWciLCJfIiwidHJpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLHdCQUExQjs7QUFZQSxlQUFlQyxtQkFBZixDQUFvQ0MsSUFBcEMsRUFBMENDLFFBQTFDLEVBQW9EQyxTQUFwRCxFQUErRDtBQUM3RCxNQUFJO0FBQ0YsVUFBTUMsa0JBQUdDLEtBQUgsQ0FBU04saUJBQVQsQ0FBTjtBQUNELEdBRkQsQ0FFRSxPQUFPTyxDQUFQLEVBQVU7QUFDVixVQUFNLElBQUlDLEtBQUosQ0FBVyxJQUFHUixpQkFBa0IsNENBQXRCLEdBQ2Qsc0ZBRGMsR0FFZCxxRkFGYyxHQUdkLDRDQUhJLENBQU47QUFJRDs7QUFFRCxNQUFJO0FBQ0YsVUFBTSx3QkFBS0EsaUJBQUwsRUFBd0IsQ0FDNUIsSUFENEIsRUFDdEJHLFFBRHNCLEVBQ1pDLFNBRFksRUFFNUIsSUFGNEIsRUFFdEJGLElBRnNCLENBQXhCLENBQU47QUFJRCxHQUxELENBS0UsT0FBT0ssQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJQyxLQUFKLENBQVcsbUNBQWtDUixpQkFBa0IsS0FBckQsR0FDYixtQkFBa0JPLENBQUMsQ0FBQ0UsTUFBRixJQUFZRixDQUFDLENBQUNHLE9BQVEsRUFEckMsQ0FBTjtBQUVEO0FBQ0Y7O0FBWUQsZUFBZUMsa0JBQWYsQ0FBbUNDLEdBQW5DLEVBQXdDVCxRQUF4QyxFQUFrREMsU0FBbEQsRUFBNkQ7QUFDM0QsTUFBSSxDQUFDUSxHQUFMLEVBQVU7QUFDUixVQUFNLElBQUlKLEtBQUosQ0FBVSw4R0FBVixDQUFOO0FBQ0Q7O0FBRUQsTUFBSTtBQUNGLFVBQU1JLEdBQUcsQ0FBQ0MsV0FBSixDQUFnQlYsUUFBaEIsRUFBMEJDLFNBQTFCLENBQU47QUFDRCxHQUZELENBRUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJQyxLQUFKLENBQVcsdURBQXNERCxDQUFDLENBQUNFLE1BQUYsSUFBWUYsQ0FBQyxDQUFDRyxPQUFRLEVBQXZGLENBQU47QUFDRDtBQUNGOztBQWNELGVBQWVJLDBCQUFmLENBQTJDQyxHQUEzQyxFQUFnRFosUUFBaEQsRUFBMERDLFNBQTFELEVBQXFFWSxJQUFJLEdBQUcsT0FBNUUsRUFBcUY7QUFFbkYsUUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLHdCQUFLLGlCQUFMLEVBQXdCLENBQ3RELElBRHNELEVBRXRELDBDQUNBLGFBREEsR0FFQSx1RUFKc0QsQ0FBeEIsQ0FBUCxFQUtyQkMsTUFMSjtBQU9BLFFBQU0sQ0FBQ0MsV0FBRCxFQUFjQyxZQUFkLElBQThCLENBQUNqQixRQUFELEVBQVdDLFNBQVgsRUFBc0JpQixHQUF0QixDQUEyQkMsS0FBRCxJQUFZLEdBQUVBLEtBQU0sRUFBVCxDQUFXQyxPQUFYLENBQW1CLEtBQW5CLEVBQTBCTixnQkFBMUIsQ0FBckMsQ0FBcEM7QUFFQSxRQUFNTyxNQUFNLEdBQUcsTUFBTVQsR0FBRyxDQUFDVSxxQkFBSixDQUEyQjs7Ozt5SEFJdUVULElBQUs7Ozs4REFHaEVHLFdBQVk7OzhEQUVaQyxZQUFhOzs7Ozs7O0dBVHBELENBQXJCOztBQWlCQU0sa0JBQUlDLEtBQUosQ0FBVywyQ0FBMENILE1BQU8sRUFBNUQ7O0FBQ0EsTUFBSUksZ0JBQUVDLElBQUYsQ0FBT0wsTUFBUCxNQUFtQixNQUF2QixFQUErQjtBQUM3QixVQUFNLElBQUloQixLQUFKLENBQVcsK0RBQThEZ0IsTUFBTyxFQUFoRixDQUFOO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5cbmNvbnN0IExZRlRfU0VUX0xPQ0FUSU9OID0gJ3NldC1zaW11bGF0b3ItbG9jYXRpb24nO1xuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBMWUZUX1NFVF9MT0NBVElPTi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdWRpZCAtIFRoZSB1ZGlkIHRvIHNldCB0aGUgZ2l2ZW4gZ2VvbG9jYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMzksMDAwNicuXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxvbmdpdHVkZSAtIFRoZSBsb25naXR1ZGUgdmFsdWUsIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGVudGVyZWRcbiAqICAgaW50byB0aGUgY29ycmVzcG9uZGluZyBlZGl0IGZpZWxkLCBmb3IgZXhhbXBsZSAnMTksMDA2OCcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaXQgZmFpbGVkIHRvIHNldCB0aGUgbG9jYXRpb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb25XaXRoTHlmdCAodWRpZCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndoaWNoKExZRlRfU0VUX0xPQ0FUSU9OKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7TFlGVF9TRVRfTE9DQVRJT059JyBiaW5hcnkgaGFzIG5vdCBiZWVuIGZvdW5kIGluIHlvdXIgUEFUSC4gYCArXG4gICAgICAnUGxlYXNlIGluc3RhbGwgaXQgYXMgXCJicmV3IGluc3RhbGwgbHlmdC9mb3JtdWxhZS9zZXQtc2ltdWxhdG9yLWxvY2F0aW9uXCIgYnkgYnJldyBvciAnICtcbiAgICAgICdyZWFkIGh0dHBzOi8vZ2l0aHViLmNvbS9seWZ0L3NldC1zaW11bGF0b3ItbG9jYXRpb24gdG8gc2V0IHRoZSBiaW5hcnkgYnkgbWFudWFsIHRvICcgK1xuICAgICAgJ2JlIGFibGUgdG8gc2V0IGdlb2xvY2F0aW9uIGJ5IHRoZSBsaWJyYXJ5LicpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKExZRlRfU0VUX0xPQ0FUSU9OLCBbXG4gICAgICAnLWMnLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLFxuICAgICAgJy11JywgdWRpZFxuICAgIF0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggJyR7TFlGVF9TRVRfTE9DQVRJT059Jy4gYCArXG4gICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICB9XG59XG5cbi8qKlxuICogU2V0IGN1c3RvbSBnZW9sb2NhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgZ2l2ZW4gU2ltdWxhdG9yIHVzaW5nIGlkYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaWRiIC0gVGhlIElEQiBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsYXRpdHVkZSAtIFRoZSBsYXRpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICczOSwwMDA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSB2YWx1ZSwgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZW50ZXJlZFxuICogICBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGVkaXQgZmllbGQsIGZvciBleGFtcGxlICcxOSwwMDY4Jy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlsZWQgdG8gc2V0IHRoZSBsb2NhdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRMb2NhdGlvbldpdGhJZGIgKGlkYiwgbGF0aXR1ZGUsIGxvbmdpdHVkZSkge1xuICBpZiAoIWlkYikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHNldCBnZW9sb2NhdGlvbiB3aXRoIGlkYiBiZWNhdXNlIGl0IGlzIG5vdCBpbnN0YWxsZWQgb3IgdGhlIFwibGF1bmNoV2l0aElEQlwiIGNhcGFiaWxpdHkgd2FzIG5vdCBzZXQnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgaWRiLnNldExvY2F0aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggaWRiLiBPcmlnaW5hbCBlcnJvcjogJHtlLnN0ZGVyciB8fCBlLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuXG4vKipcbiAqIFNldCBjdXN0b20gZ2VvbG9jYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGdpdmVuIFNpbXVsYXRvciB1c2luZyBBcHBsZVNjcmlwdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzaW0gLSBUaGUgU2ltdWxhdG9yWGNvZGUgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGxhdGl0dWRlIC0gVGhlIGxhdGl0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzM5LDAwMDYnLlxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBsb25naXR1ZGUgLSBUaGUgbG9uZ2l0dWRlIHZhbHVlLCB3aGljaCBpcyBnb2luZyB0byBiZSBlbnRlcmVkXG4gKiAgIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZWRpdCBmaWVsZCwgZm9yIGV4YW1wbGUgJzE5LDAwNjgnLlxuICogQHBhcmFtIHtzdHJpbmd9IFttZW51PURlYnVnXSAtIFRoZSBtZW51IGZpZWxkIGluIHdoaWNoIHRoZSAnTG9jYXRpb24nIGZlYXR1cmUgaXMgZm91bmRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlsZWQgdG8gc2V0IHRoZSBsb2NhdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRMb2NhdGlvbldpdGhBcHBsZVNjcmlwdCAoc2ltLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBtZW51ID0gJ0RlYnVnJykge1xuICAvLyBNYWtlIHN1cmUgc3lzdGVtLXdpZGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgdXNlZFxuICBjb25zdCBkZWNpbWFsU2VwYXJhdG9yID0gKGF3YWl0IGV4ZWMoJy91c3IvYmluL3B5dGhvbicsIFtcbiAgICAnLWMnLFxuICAgICdmcm9tIEFwcEtpdCBpbXBvcnQgTlNOdW1iZXJGb3JtYXR0ZXI7JyArXG4gICAgJ2ltcG9ydCBzeXM7JyArXG4gICAgJ3N5cy5zdGRvdXQud3JpdGUoTlNOdW1iZXJGb3JtYXR0ZXIuYWxsb2MoKS5pbml0KCkuZGVjaW1hbFNlcGFyYXRvcigpKSdcbiAgXSkpLnN0ZG91dDtcblxuICBjb25zdCBbbGF0aXR1ZGVTdHIsIGxvbmdpdHVkZVN0cl0gPSBbbGF0aXR1ZGUsIGxvbmdpdHVkZV0ubWFwKChjb29yZCkgPT4gYCR7Y29vcmR9YC5yZXBsYWNlKC9cXEQvZywgZGVjaW1hbFNlcGFyYXRvcikpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGF3YWl0IHNpbS5leGVjdXRlVUlDbGllbnRTY3JpcHQoYFxuICAgIHRlbGwgYXBwbGljYXRpb24gXCJTeXN0ZW0gRXZlbnRzXCJcbiAgICAgIHRlbGwgcHJvY2VzcyBcIlNpbXVsYXRvclwiXG4gICAgICAgIHNldCBmZWF0dXJlTmFtZSB0byBcIkN1c3RvbSBMb2NhdGlvblwiXG4gICAgICAgIHNldCBkc3RNZW51SXRlbSB0byBtZW51IGl0ZW0gKGZlYXR1cmVOYW1lICYgXCLigKZcIikgb2YgbWVudSAxIG9mIG1lbnUgaXRlbSBcIkxvY2F0aW9uXCIgb2YgbWVudSAxIG9mIG1lbnUgYmFyIGl0ZW0gXCIke21lbnV9XCIgb2YgbWVudSBiYXIgMVxuICAgICAgICBjbGljayBkc3RNZW51SXRlbVxuICAgICAgICBkZWxheSAxXG4gICAgICAgIHNldCB2YWx1ZSBvZiB0ZXh0IGZpZWxkIDEgb2Ygd2luZG93IGZlYXR1cmVOYW1lIHRvIFwiJHtsYXRpdHVkZVN0cn1cIlxuICAgICAgICBkZWxheSAwLjVcbiAgICAgICAgc2V0IHZhbHVlIG9mIHRleHQgZmllbGQgMiBvZiB3aW5kb3cgZmVhdHVyZU5hbWUgdG8gXCIke2xvbmdpdHVkZVN0cn1cIlxuICAgICAgICBkZWxheSAwLjVcbiAgICAgICAgY2xpY2sgYnV0dG9uIFwiT0tcIiBvZiB3aW5kb3cgZmVhdHVyZU5hbWVcbiAgICAgICAgZGVsYXkgMC41XG4gICAgICAgIHNldCBpc0ludmlzaWJsZSB0byAobm90IChleGlzdHMgKHdpbmRvdyBmZWF0dXJlTmFtZSkpKVxuICAgICAgZW5kIHRlbGxcbiAgICBlbmQgdGVsbFxuICBgKTtcbiAgbG9nLmRlYnVnKGBHZW9sb2NhdGlvbiBwYXJhbWV0ZXJzIGRpYWxvZyBhY2NlcHRlZDogJHtvdXRwdXR9YCk7XG4gIGlmIChfLnRyaW0ob3V0cHV0KSAhPT0gJ3RydWUnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2V0IGdlb2xvY2F0aW9uIHdpdGggQXBwbGVTY3JpcHQuIE9yaWdpbmFsIGVycm9yOiAke291dHB1dH1gKTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBzZXRMb2NhdGlvbldpdGhMeWZ0LCBzZXRMb2NhdGlvbldpdGhJZGIsIHNldExvY2F0aW9uV2l0aEFwcGxlU2NyaXB0XG59O1xuIl0sImZpbGUiOiJsaWIvZ2VvbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -50,16 +50,38 @@ class SimulatorXcode10 extends _simulatorXcode.default {
|
|
|
50
50
|
|
|
51
51
|
const timer = new _appiumSupport.timing.Timer().start();
|
|
52
52
|
await this.simctl.openUrl(url);
|
|
53
|
+
let psError;
|
|
53
54
|
|
|
54
55
|
try {
|
|
55
|
-
await (0, _asyncbox.waitForCondition)(async () =>
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
await (0, _asyncbox.waitForCondition)(async () => {
|
|
57
|
+
let procList = [];
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
procList = await this.ps();
|
|
61
|
+
psError = null;
|
|
62
|
+
} catch (e) {
|
|
63
|
+
_logger.default.debug(e.message);
|
|
64
|
+
|
|
65
|
+
psError = e;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return procList.some(({
|
|
69
|
+
name
|
|
70
|
+
}) => name === _utils.MOBILE_SAFARI_BUNDLE_ID);
|
|
71
|
+
}, {
|
|
58
72
|
waitMs: _utils.SAFARI_STARTUP_TIMEOUT,
|
|
59
73
|
intervalMs: 500
|
|
60
74
|
});
|
|
61
75
|
} catch (err) {
|
|
62
|
-
|
|
76
|
+
const secondsElapsed = timer.getDuration().asSeconds;
|
|
77
|
+
|
|
78
|
+
if (psError) {
|
|
79
|
+
_logger.default.warn(`Mobile Safari process existence cannot be verified after ${secondsElapsed.toFixed(3)}s. ` + `Original error: ${psError.message}`);
|
|
80
|
+
|
|
81
|
+
_logger.default.warn('Continuing anyway');
|
|
82
|
+
} else {
|
|
83
|
+
throw new Error(`Mobile Safari cannot open '${url}' after ${secondsElapsed.toFixed(3)}s. ` + `Its process ${_utils.MOBILE_SAFARI_BUNDLE_ID} does not exist in the list of Simulator processes`);
|
|
84
|
+
}
|
|
63
85
|
}
|
|
64
86
|
|
|
65
87
|
_logger.default.debug(`Safari successfully opened '${url}' in ${timer.getDuration().asSeconds.toFixed(3)}s`);
|
|
@@ -71,4 +93,4 @@ var _default = SimulatorXcode10;
|
|
|
71
93
|
exports.default = _default;require('source-map-support').install();
|
|
72
94
|
|
|
73
95
|
|
|
74
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW11bGF0b3IteGNvZGUtMTAuanMiXSwibmFtZXMiOlsiU2ltdWxhdG9yWGNvZGUxMCIsIlNpbXVsYXRvclhjb2RlOTMiLCJjb25zdHJ1Y3RvciIsInVkaWQiLCJ4Y29kZVZlcnNpb24iLCJpc0FwcEluc3RhbGxlZCIsImJ1bmRsZUlkIiwiYXBwQ29udGFpbmVyIiwic2ltY3RsIiwiZ2V0QXBwQ29udGFpbmVyIiwiZW5kc1dpdGgiLCJmcyIsImV4aXN0cyIsImVyciIsImluZm8iLCJhcHBJbmZvIiwiaW5jbHVkZXMiLCJpZ24iLCJvcGVuVXJsIiwidXJsIiwiaXNSdW5uaW5nIiwiRXJyb3IiLCJ0aW1lciIsInRpbWluZyIsIlRpbWVyIiwic3RhcnQiLCJwc0Vycm9yIiwicHJvY0xpc3QiLCJwcyIsImUiLCJsb2ciLCJkZWJ1ZyIsIm1lc3NhZ2UiLCJzb21lIiwibmFtZSIsIk1PQklMRV9TQUZBUklfQlVORExFX0lEIiwid2FpdE1zIiwiU0FGQVJJX1NUQVJUVVBfVElNRU9VVCIsImludGVydmFsTXMiLCJzZWNvbmRzRWxhcHNlZCIsImdldER1cmF0aW9uIiwiYXNTZWNvbmRzIiwid2FybiIsInRvRml4ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsZ0JBQU4sU0FBK0JDLHVCQUEvQixDQUFnRDtBQUM5Q0MsRUFBQUEsV0FBVyxDQUFFQyxJQUFGLEVBQVFDLFlBQVIsRUFBc0I7QUFDL0IsVUFBTUQsSUFBTixFQUFZQyxZQUFaO0FBQ0Q7O0FBU0QsUUFBTUMsY0FBTixDQUFzQkMsUUFBdEIsRUFBZ0M7QUFDOUIsUUFBSTtBQUNGLFlBQU1DLFlBQVksR0FBRyxNQUFNLEtBQUtDLE1BQUwsQ0FBWUMsZUFBWixDQUE0QkgsUUFBNUIsQ0FBM0I7O0FBQ0EsVUFBSSxDQUFDQyxZQUFZLENBQUNHLFFBQWIsQ0FBc0IsTUFBdEIsQ0FBTCxFQUFvQztBQUNsQyxlQUFPLEtBQVA7QUFDRDs7QUFDRCxhQUFPLE1BQU1DLGtCQUFHQyxNQUFILENBQVVMLFlBQVYsQ0FBYjtBQUNELEtBTkQsQ0FNRSxPQUFPTSxHQUFQLEVBQVk7QUFJWixVQUFJO0FBQ0YsY0FBTUMsSUFBSSxHQUFHLE1BQU0sS0FBS04sTUFBTCxDQUFZTyxPQUFaLENBQW9CVCxRQUFwQixDQUFuQjtBQUNBLGVBQU9RLElBQUksQ0FBQ0UsUUFBTCxDQUFjLGlCQUFkLENBQVA7QUFDRCxPQUhELENBR0UsT0FBT0MsR0FBUCxFQUFZLENBQUU7QUFDakI7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBS0QsUUFBTUMsT0FBTixDQUFlQyxHQUFmLEVBQW9CO0FBQ2xCLFFBQUksRUFBQyxNQUFNLEtBQUtDLFNBQUwsRUFBUCxDQUFKLEVBQTZCO0FBQzNCLFlBQU0sSUFBSUMsS0FBSixDQUFXLGtCQUFpQkYsR0FBSSx5Q0FBaEMsQ0FBTjtBQUNEOztBQUNELFVBQU1HLEtBQUssR0FBRyxJQUFJQyxzQkFBT0MsS0FBWCxHQUFtQkMsS0FBbkIsRUFBZDtBQUNBLFVBQU0sS0FBS2pCLE1BQUwsQ0FBWVUsT0FBWixDQUFvQkMsR0FBcEIsQ0FBTjtBQUNBLFFBQUlPLE9BQUo7O0FBQ0EsUUFBSTtBQUNGLFlBQU0sZ0NBQWlCLFlBQVk7QUFDakMsWUFBSUMsUUFBUSxHQUFHLEVBQWY7O0FBQ0EsWUFBSTtBQUNGQSxVQUFBQSxRQUFRLEdBQUcsTUFBTSxLQUFLQyxFQUFMLEVBQWpCO0FBQ0FGLFVBQUFBLE9BQU8sR0FBRyxJQUFWO0FBQ0QsU0FIRCxDQUdFLE9BQU9HLENBQVAsRUFBVTtBQUNWQywwQkFBSUMsS0FBSixDQUFVRixDQUFDLENBQUNHLE9BQVo7O0FBQ0FOLFVBQUFBLE9BQU8sR0FBR0csQ0FBVjtBQUNEOztBQUNELGVBQU9GLFFBQVEsQ0FBQ00sSUFBVCxDQUFjLENBQUM7QUFBQ0MsVUFBQUE7QUFBRCxTQUFELEtBQVlBLElBQUksS0FBS0MsOEJBQW5DLENBQVA7QUFDRCxPQVZLLEVBVUg7QUFDREMsUUFBQUEsTUFBTSxFQUFFQyw2QkFEUDtBQUVEQyxRQUFBQSxVQUFVLEVBQUU7QUFGWCxPQVZHLENBQU47QUFjRCxLQWZELENBZUUsT0FBT3pCLEdBQVAsRUFBWTtBQUNaLFlBQU0wQixjQUFjLEdBQUdqQixLQUFLLENBQUNrQixXQUFOLEdBQW9CQyxTQUEzQzs7QUFDQSxVQUFJZixPQUFKLEVBQWE7QUFDWEksd0JBQUlZLElBQUosQ0FBVSw0REFBMkRILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QixDQUF2QixDQUEwQixLQUF0RixHQUNOLG1CQUFrQmpCLE9BQU8sQ0FBQ00sT0FBUSxFQURyQzs7QUFFQUYsd0JBQUlZLElBQUosQ0FBUyxtQkFBVDtBQUNELE9BSkQsTUFJTztBQUNMLGNBQU0sSUFBSXJCLEtBQUosQ0FBVyw4QkFBNkJGLEdBQUksV0FBVW9CLGNBQWMsQ0FBQ0ksT0FBZixDQUF1QixDQUF2QixDQUEwQixLQUF0RSxHQUNiLGVBQWNSLDhCQUF3QixvREFEbkMsQ0FBTjtBQUVEO0FBQ0Y7O0FBQ0RMLG9CQUFJQyxLQUFKLENBQVcsK0JBQThCWixHQUFJLFFBQU9HLEtBQUssQ0FBQ2tCLFdBQU4sR0FBb0JDLFNBQXBCLENBQThCRSxPQUE5QixDQUFzQyxDQUF0QyxDQUF5QyxHQUE3RjtBQUNEOztBQXBFNkM7O2VBdUVqQzNDLGdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNpbXVsYXRvclhjb2RlOTMgZnJvbSAnLi9zaW11bGF0b3IteGNvZGUtOS4zJztcbmltcG9ydCB7IGZzLCB0aW1pbmcgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgTU9CSUxFX1NBRkFSSV9CVU5ETEVfSUQsIFNBRkFSSV9TVEFSVFVQX1RJTUVPVVQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNsYXNzIFNpbXVsYXRvclhjb2RlMTAgZXh0ZW5kcyBTaW11bGF0b3JYY29kZTkzIHtcbiAgY29uc3RydWN0b3IgKHVkaWQsIHhjb2RlVmVyc2lvbikge1xuICAgIHN1cGVyKHVkaWQsIHhjb2RlVmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHdoZXRoZXIgdGhlIHBhcnRpY3VsYXIgYXBwbGljYXRpb24gaXMgaW5zdGFsbGVkIG9uIFNpbXVsYXRvci5cbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBidW5kbGVJZCAtIFRoZSBidW5kbGUgaWQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIGlzIGluc3RhbGxlZC5cbiAgICovXG4gIGFzeW5jIGlzQXBwSW5zdGFsbGVkIChidW5kbGVJZCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcHBDb250YWluZXIgPSBhd2FpdCB0aGlzLnNpbWN0bC5nZXRBcHBDb250YWluZXIoYnVuZGxlSWQpO1xuICAgICAgaWYgKCFhcHBDb250YWluZXIuZW5kc1dpdGgoJy5hcHAnKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgZnMuZXhpc3RzKGFwcENvbnRhaW5lcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBnZXRfYXBwX2NvbnRhaW5lciBzdWJjb21tYW5kIGZhaWxzIGZvciBzeXN0ZW0gYXBwbGljYXRpb25zLFxuICAgICAgLy8gc28gd2UgdHJ5IHRoZSBoaWRkZW4gYXBwaW5mbyBzdWJjb21tYW5kLCB3aGljaCBwcmludHMgY29ycmVjdCBpbmZvIGZvclxuICAgICAgLy8gc3lzdGVtL2hpZGRlbiBhcHBzXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBpbmZvID0gYXdhaXQgdGhpcy5zaW1jdGwuYXBwSW5mbyhidW5kbGVJZCk7XG4gICAgICAgIHJldHVybiBpbmZvLmluY2x1ZGVzKCdBcHBsaWNhdGlvblR5cGUnKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgYXN5bmMgb3BlblVybCAodXJsKSB7XG4gICAgaWYgKCFhd2FpdCB0aGlzLmlzUnVubmluZygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRyaWVkIHRvIG9wZW4gJyR7dXJsfScsIGJ1dCBTaW11bGF0b3IgaXMgbm90IGluIEJvb3RlZCBzdGF0ZWApO1xuICAgIH1cbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGF3YWl0IHRoaXMuc2ltY3RsLm9wZW5VcmwodXJsKTtcbiAgICBsZXQgcHNFcnJvcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGxldCBwcm9jTGlzdCA9IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHByb2NMaXN0ID0gYXdhaXQgdGhpcy5wcygpO1xuICAgICAgICAgIHBzRXJyb3IgPSBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGUubWVzc2FnZSk7XG4gICAgICAgICAgcHNFcnJvciA9IGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb2NMaXN0LnNvbWUoKHtuYW1lfSkgPT4gbmFtZSA9PT0gTU9CSUxFX1NBRkFSSV9CVU5ETEVfSUQpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNBRkFSSV9TVEFSVFVQX1RJTUVPVVQsXG4gICAgICAgIGludGVydmFsTXM6IDUwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3Qgc2Vjb25kc0VsYXBzZWQgPSB0aW1lci5nZXREdXJhdGlvbigpLmFzU2Vjb25kcztcbiAgICAgIGlmIChwc0Vycm9yKSB7XG4gICAgICAgIGxvZy53YXJuKGBNb2JpbGUgU2FmYXJpIHByb2Nlc3MgZXhpc3RlbmNlIGNhbm5vdCBiZSB2ZXJpZmllZCBhZnRlciAke3NlY29uZHNFbGFwc2VkLnRvRml4ZWQoMyl9cy4gYCArXG4gICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke3BzRXJyb3IubWVzc2FnZX1gKTtcbiAgICAgICAgbG9nLndhcm4oJ0NvbnRpbnVpbmcgYW55d2F5Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vYmlsZSBTYWZhcmkgY2Fubm90IG9wZW4gJyR7dXJsfScgYWZ0ZXIgJHtzZWNvbmRzRWxhcHNlZC50b0ZpeGVkKDMpfXMuIGAgK1xuICAgICAgICAgIGBJdHMgcHJvY2VzcyAke01PQklMRV9TQUZBUklfQlVORExFX0lEfSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbGlzdCBvZiBTaW11bGF0b3IgcHJvY2Vzc2VzYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgU2FmYXJpIHN1Y2Nlc3NmdWxseSBvcGVuZWQgJyR7dXJsfScgaW4gJHt0aW1lci5nZXREdXJhdGlvbigpLmFzU2Vjb25kcy50b0ZpeGVkKDMpfXNgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaW11bGF0b3JYY29kZTEwO1xuIl0sImZpbGUiOiJsaWIvc2ltdWxhdG9yLXhjb2RlLTEwLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|