appium-xcuitest-driver 4.16.13 → 4.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/build/lib/commands/execute.js +3 -2
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/navigation.js +12 -1
- package/build/lib/commands/navigation.js.map +1 -1
- package/lib/commands/execute.js +2 -0
- package/lib/commands/navigation.js +25 -0
- package/npm-shrinkwrap.json +5 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [4.17.0](https://github.com/appium/appium-xcuitest-driver/compare/v4.16.13...v4.17.0) (2023-02-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Add deepLink extension ([#1502](https://github.com/appium/appium-xcuitest-driver/issues/1502)) ([067179b](https://github.com/appium/appium-xcuitest-driver/commit/067179beda19ca478d2d08b59ffb864ba6c9bbdb))
|
|
7
|
+
|
|
1
8
|
## [4.16.13](https://github.com/appium/appium-xcuitest-driver/compare/v4.16.12...v4.16.13) (2023-02-17)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -120,7 +120,8 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
120
120
|
listConditionInducers: 'mobileListConditionInducers',
|
|
121
121
|
enableConditionInducer: 'mobileEnableConditionInducer',
|
|
122
122
|
disableConditionInducer: 'mobileDisableConditionInducer',
|
|
123
|
-
updateSafariPreferences: 'mobileUpdateSafariPreferences'
|
|
123
|
+
updateSafariPreferences: 'mobileUpdateSafariPreferences',
|
|
124
|
+
deepLink: 'mobileDeepLink'
|
|
124
125
|
};
|
|
125
126
|
if (!_lodash.default.has(commandMap, mobileCommand)) {
|
|
126
127
|
throw new _driver.errors.UnknownCommandError(`Unknown mobile command '${mobileCommand}'. Only ${_lodash.default.keys(commandMap).join(', ')} commands are supported.`);
|
|
@@ -129,4 +130,4 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
129
130
|
};
|
|
130
131
|
var _default = extensions;
|
|
131
132
|
exports.default = _default;
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImRyYWdGcm9tVG9XaXRoVmVsb2NpdHkiLCJmb3JjZVByZXNzIiwic2Nyb2xsVG9FbGVtZW50IiwiYWxlcnQiLCJzZXRQYXN0ZWJvYXJkIiwiZ2V0UGFzdGVib2FyZCIsInNvdXJjZSIsImdldENvbnRleHRzIiwiaW5zdGFsbEFwcCIsImlzQXBwSW5zdGFsbGVkIiwicmVtb3ZlQXBwIiwibGF1bmNoQXBwIiwidGVybWluYXRlQXBwIiwia2lsbEFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsImxpc3RBcHBzIiwidmlld3BvcnRTY3JlZW5zaG90Iiwidmlld3BvcnRSZWN0Iiwic3RhcnRQZXJmUmVjb3JkIiwic3RvcFBlcmZSZWNvcmQiLCJpbnN0YWxsQ2VydGlmaWNhdGUiLCJsaXN0Q2VydGlmaWNhdGVzIiwic3RhcnRMb2dzQnJvYWRjYXN0Iiwic3RvcExvZ3NCcm9hZGNhc3QiLCJiYXR0ZXJ5SW5mbyIsImRldmljZUluZm8iLCJnZXREZXZpY2VUaW1lIiwiYWN0aXZlQXBwSW5mbyIsImRldmljZVNjcmVlbkluZm8iLCJwcmVzc0J1dHRvbiIsImVucm9sbEJpb21ldHJpYyIsInNlbmRCaW9tZXRyaWNNYXRjaCIsImlzQmlvbWV0cmljRW5yb2xsZWQiLCJjbGVhcktleWNoYWlucyIsImdldFBlcm1pc3Npb24iLCJzZXRQZXJtaXNzaW9uIiwicmVzZXRQZXJtaXNzaW9uIiwiZ2V0QXBwZWFyYW5jZSIsInNldEFwcGVhcmFuY2UiLCJzaXJpQ29tbWFuZCIsInB1c2hGaWxlIiwicHVsbEZpbGUiLCJwdWxsRm9sZGVyIiwiZGVsZXRlRmlsZSIsImRlbGV0ZUZvbGRlciIsInN0YXJ0QXVkaW9SZWNvcmRpbmciLCJzdG9wQXVkaW9SZWNvcmRpbmciLCJydW5YQ1Rlc3QiLCJpbnN0YWxsWENUZXN0QnVuZGxlIiwibGlzdFhDVGVzdEJ1bmRsZXMiLCJsaXN0WENUZXN0c0luVGVzdEJ1bmRsZSIsInB1c2hOb3RpZmljYXRpb24iLCJleHBlY3ROb3RpZmljYXRpb24iLCJwZXJmb3JtSW9IaWRFdmVudCIsImNvbmZpZ3VyZUxvY2FsaXphdGlvbiIsInJlc2V0TG9jYXRpb25TZXJ2aWNlIiwic3RhcnRQY2FwIiwic3RvcFBjYXAiLCJsaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJlbmFibGVDb25kaXRpb25JbmR1Y2VyIiwiZGlzYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJ1cGRhdGVTYWZhcmlQcmVmZXJlbmNlcyIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBlcnJvcnMsIGVycm9yRnJvbUNvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlXG59IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLnJlY2VpdmVBc3luY1Jlc3BvbnNlID0gYXN5bmMgZnVuY3Rpb24gcmVjZWl2ZUFzeW5jUmVzcG9uc2UgKHN0YXR1cywgdmFsdWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMubG9nLmRlYnVnKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0aGlzLmFzeW5jUHJvbWlzZSkpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZSB3aGVuIHdlIHdlcmUgbm90IGV4cGVjdGluZyBvbmUhIGAgK1xuICAgICAgYFJlc3BvbnNlIHdhczogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiBzdGF0dXMgIT09IDApIHtcbiAgICAvLyBNSlNPTldQXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21Db2RlKHN0YXR1cywgdmFsdWUubWVzc2FnZSkpO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHZhbHVlICYmIF8uaXNTdHJpbmcodmFsdWUuZXJyb3IpKSB7XG4gICAgLy8gVzNDXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21XM0NKc29uQ29kZSh2YWx1ZS5lcnJvciwgdmFsdWUubWVzc2FnZSwgdmFsdWUuc3RhY2t0cmFjZSkpO1xuICB9XG4gIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtzY3JpcHQsIGFyZ3NdKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZUFzeW5jID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUFzeW5jIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgdGhpcy5hc3luY1dhaXRNcyA9IHRoaXMuYXN5bmNXYWl0TXMgfHwgMDtcbiAgY29uc3QgcHJvbWlzZSA9IHRoaXMucmVtb3RlLmV4ZWN1dGVBdG9tQXN5bmMoJ2V4ZWN1dGVfYXN5bmNfc2NyaXB0JywgW1xuICAgIHNjcmlwdCwgYXJncywgdGhpcy5hc3luY1dhaXRNc1xuICBdLCB0aGlzLmN1cldlYkZyYW1lcyk7XG4gIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMoYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgY29tbWFuZE1hcCA9IHtcbiAgICAvL3JlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgdGFwOiAnbW9iaWxlVGFwJyxcbiAgICBzY3JvbGw6ICdtb2JpbGVTY3JvbGwnLFxuICAgIHNlbGVjdFBpY2tlcldoZWVsVmFsdWU6ICdtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OC1zd2lwZWxlZnQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc0LXN3aXBlcmlnaHQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY3LXN3aXBldXA/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY0LXN3aXBlZG93bj9sYW5ndWFnZT1vYmpjXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjktcGluY2h3aXRoc2NhbGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHBpbmNoOiAnbW9iaWxlUGluY2gnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjczLWRvdWJsZXRhcD9sYW5ndWFnZT1vYmpjXG4gICAgZG91YmxlVGFwOiAnbW9iaWxlRG91YmxlVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NS10d29maW5nZXJ0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIHR3b0ZpbmdlclRhcDogJ21vYmlsZVR3b0ZpbmdlclRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzEtdGFwd2l0aG51bWJlcm9mdGFwcz9sYW5ndWFnZT1vYmpjXG4gICAgdGFwV2l0aE51bWJlck9mVGFwczogJ21vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjYzLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIHRvdWNoQW5kSG9sZDogJ21vYmlsZVRvdWNoQW5kSG9sZCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzAtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uOiAnbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NS1yb3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHJvdGF0ZUVsZW1lbnQ6ICdtb2JpbGVSb3RhdGVFbGVtZW50JyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWNvb3JkaW5hdGUvMzU1MTY5Mi1wcmVzc2ZvcmR1cmF0aW9uP2xhbmd1YWdlPW9iamNcbiAgICBkcmFnRnJvbVRvV2l0aFZlbG9jaXR5OiAnbW9iaWxlRHJhZ0Zyb21Ub1dpdGhWZWxvY2l0eScsXG4gICAgZm9yY2VQcmVzczogJ21vYmlsZUZvcmNlUHJlc3MnLFxuICAgIHNjcm9sbFRvRWxlbWVudDogJ21vYmlsZVNjcm9sbFRvRWxlbWVudCcsXG5cbiAgICAvL2VuZHJlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgYWxlcnQ6ICdtb2JpbGVIYW5kbGVBbGVydCcsXG5cbiAgICBzZXRQYXN0ZWJvYXJkOiAnbW9iaWxlU2V0UGFzdGVib2FyZCcsXG4gICAgZ2V0UGFzdGVib2FyZDogJ21vYmlsZUdldFBhc3RlYm9hcmQnLFxuXG4gICAgc291cmNlOiAnbW9iaWxlR2V0U291cmNlJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIC8vcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuICAgIGluc3RhbGxBcHA6ICdtb2JpbGVJbnN0YWxsQXBwJyxcbiAgICBpc0FwcEluc3RhbGxlZDogJ21vYmlsZUlzQXBwSW5zdGFsbGVkJyxcbiAgICByZW1vdmVBcHA6ICdtb2JpbGVSZW1vdmVBcHAnLFxuICAgIGxhdW5jaEFwcDogJ21vYmlsZUxhdW5jaEFwcCcsXG4gICAgdGVybWluYXRlQXBwOiAnbW9iaWxlVGVybWluYXRlQXBwJyxcbiAgICBraWxsQXBwOiAnbW9iaWxlS2lsbEFwcCcsXG4gICAgcXVlcnlBcHBTdGF0ZTogJ21vYmlsZVF1ZXJ5QXBwU3RhdGUnLFxuICAgIGFjdGl2YXRlQXBwOiAnbW9iaWxlQWN0aXZhdGVBcHAnLFxuICAgIGxpc3RBcHBzOiAnbW9iaWxlTGlzdEFwcHMnLFxuICAgIC8vZW5kcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuXG4gICAgdmlld3BvcnRTY3JlZW5zaG90OiAnZ2V0Vmlld3BvcnRTY3JlZW5zaG90JyxcbiAgICB2aWV3cG9ydFJlY3Q6ICdnZXRWaWV3cG9ydFJlY3QnLFxuXG4gICAgc3RhcnRQZXJmUmVjb3JkOiAnbW9iaWxlU3RhcnRQZXJmUmVjb3JkJyxcbiAgICBzdG9wUGVyZlJlY29yZDogJ21vYmlsZVN0b3BQZXJmUmVjb3JkJyxcblxuICAgIGluc3RhbGxDZXJ0aWZpY2F0ZTogJ21vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZScsXG4gICAgbGlzdENlcnRpZmljYXRlczogJ21vYmlsZUxpc3RDZXJ0aWZpY2F0ZXMnLFxuXG4gICAgc3RhcnRMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RhcnRMb2dzQnJvYWRjYXN0JyxcbiAgICBzdG9wTG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0b3BMb2dzQnJvYWRjYXN0JyxcblxuICAgIGJhdHRlcnlJbmZvOiAnbW9iaWxlR2V0QmF0dGVyeUluZm8nLFxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcbiAgICBnZXREZXZpY2VUaW1lOiAnbW9iaWxlR2V0RGV2aWNlVGltZScsXG4gICAgYWN0aXZlQXBwSW5mbzogJ21vYmlsZUdldEFjdGl2ZUFwcEluZm8nLFxuICAgIGRldmljZVNjcmVlbkluZm86ICdnZXRTY3JlZW5JbmZvJyxcblxuICAgIHByZXNzQnV0dG9uOiAnbW9iaWxlUHJlc3NCdXR0b24nLFxuXG4gICAgZW5yb2xsQmlvbWV0cmljOiAnbW9iaWxlRW5yb2xsQmlvbWV0cmljJyxcbiAgICBzZW5kQmlvbWV0cmljTWF0Y2g6ICdtb2JpbGVTZW5kQmlvbWV0cmljTWF0Y2gnLFxuICAgIGlzQmlvbWV0cmljRW5yb2xsZWQ6ICdtb2JpbGVJc0Jpb21ldHJpY0Vucm9sbGVkJyxcblxuICAgIGNsZWFyS2V5Y2hhaW5zOiAnbW9iaWxlQ2xlYXJLZXljaGFpbnMnLFxuXG4gICAgZ2V0UGVybWlzc2lvbjogJ21vYmlsZUdldFBlcm1pc3Npb24nLFxuICAgIHNldFBlcm1pc3Npb246ICdtb2JpbGVTZXRQZXJtaXNzaW9ucycsXG4gICAgcmVzZXRQZXJtaXNzaW9uOiAnbW9iaWxlUmVzZXRQZXJtaXNzaW9uJyxcblxuICAgIGdldEFwcGVhcmFuY2U6ICdtb2JpbGVHZXRBcHBlYXJhbmNlJyxcbiAgICBzZXRBcHBlYXJhbmNlOiAnbW9iaWxlU2V0QXBwZWFyYW5jZScsXG5cbiAgICBzaXJpQ29tbWFuZDogJ21vYmlsZVNpcmlDb21tYW5kJyxcblxuICAgIHB1c2hGaWxlOiAnbW9iaWxlUHVzaEZpbGUnLFxuICAgIHB1bGxGaWxlOiAnbW9iaWxlUHVsbEZpbGUnLFxuICAgIHB1bGxGb2xkZXI6ICdtb2JpbGVQdWxsRm9sZGVyJyxcbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG4gICAgZGVsZXRlRm9sZGVyOiAnbW9iaWxlRGVsZXRlRm9sZGVyJyxcblxuICAgIHN0YXJ0QXVkaW9SZWNvcmRpbmc6ICdzdGFydEF1ZGlvUmVjb3JkaW5nJyxcbiAgICBzdG9wQXVkaW9SZWNvcmRpbmc6ICdzdG9wQXVkaW9SZWNvcmRpbmcnLFxuXG4gICAgLy8gWENUZXN0XG4gICAgcnVuWENUZXN0OiAnbW9iaWxlUnVuWENUZXN0JyxcbiAgICBpbnN0YWxsWENUZXN0QnVuZGxlOiAnbW9iaWxlSW5zdGFsbFhDVGVzdEJ1bmRsZScsXG4gICAgbGlzdFhDVGVzdEJ1bmRsZXM6ICdtb2JpbGVMaXN0WENUZXN0QnVuZGxlcycsXG4gICAgbGlzdFhDVGVzdHNJblRlc3RCdW5kbGU6ICdtb2JpbGVMaXN0WENUZXN0c0luVGVzdEJ1bmRsZScsXG5cbiAgICBwdXNoTm90aWZpY2F0aW9uOiAnbW9iaWxlUHVzaE5vdGlmaWNhdGlvbicsXG4gICAgZXhwZWN0Tm90aWZpY2F0aW9uOiAnbW9iaWxlRXhwZWN0Tm90aWZpY2F0aW9uJyxcblxuICAgIHBlcmZvcm1Jb0hpZEV2ZW50OiAnbW9iaWxlUGVyZm9ybUlvSGlkRXZlbnQnLFxuXG4gICAgY29uZmlndXJlTG9jYWxpemF0aW9uOiAnbW9iaWxlQ29uZmlndXJlTG9jYWxpemF0aW9uJyxcblxuICAgIHJlc2V0TG9jYXRpb25TZXJ2aWNlOiAnbW9iaWxlUmVzZXRMb2NhdGlvblNlcnZpY2UnLFxuXG4gICAgc3RhcnRQY2FwOiAnbW9iaWxlU3RhcnRQY2FwJyxcbiAgICBzdG9wUGNhcDogJ21vYmlsZVN0b3BQY2FwJyxcbiAgICBsaXN0Q29uZGl0aW9uSW5kdWNlcnM6ICdtb2JpbGVMaXN0Q29uZGl0aW9uSW5kdWNlcnMnLFxuICAgIGVuYWJsZUNvbmRpdGlvbkluZHVjZXI6ICdtb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyJyxcbiAgICBkaXNhYmxlQ29uZGl0aW9uSW5kdWNlcjogJ21vYmlsZURpc2FibGVDb25kaXRpb25JbmR1Y2VyJyxcblxuICAgIHVwZGF0ZVNhZmFyaVByZWZlcmVuY2VzOiAnbW9iaWxlVXBkYXRlU2FmYXJpUHJlZmVyZW5jZXMnLFxuICB9O1xuXG4gIGlmICghXy5oYXMoY29tbWFuZE1hcCwgbW9iaWxlQ29tbWFuZCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3IoYFVua25vd24gbW9iaWxlIGNvbW1hbmQgJyR7bW9iaWxlQ29tbWFuZH0nLiBPbmx5ICR7Xy5rZXlzKGNvbW1hbmRNYXApLmpvaW4oJywgJyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbY29tbWFuZE1hcFttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FB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
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImRyYWdGcm9tVG9XaXRoVmVsb2NpdHkiLCJmb3JjZVByZXNzIiwic2Nyb2xsVG9FbGVtZW50IiwiYWxlcnQiLCJzZXRQYXN0ZWJvYXJkIiwiZ2V0UGFzdGVib2FyZCIsInNvdXJjZSIsImdldENvbnRleHRzIiwiaW5zdGFsbEFwcCIsImlzQXBwSW5zdGFsbGVkIiwicmVtb3ZlQXBwIiwibGF1bmNoQXBwIiwidGVybWluYXRlQXBwIiwia2lsbEFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsImxpc3RBcHBzIiwidmlld3BvcnRTY3JlZW5zaG90Iiwidmlld3BvcnRSZWN0Iiwic3RhcnRQZXJmUmVjb3JkIiwic3RvcFBlcmZSZWNvcmQiLCJpbnN0YWxsQ2VydGlmaWNhdGUiLCJsaXN0Q2VydGlmaWNhdGVzIiwic3RhcnRMb2dzQnJvYWRjYXN0Iiwic3RvcExvZ3NCcm9hZGNhc3QiLCJiYXR0ZXJ5SW5mbyIsImRldmljZUluZm8iLCJnZXREZXZpY2VUaW1lIiwiYWN0aXZlQXBwSW5mbyIsImRldmljZVNjcmVlbkluZm8iLCJwcmVzc0J1dHRvbiIsImVucm9sbEJpb21ldHJpYyIsInNlbmRCaW9tZXRyaWNNYXRjaCIsImlzQmlvbWV0cmljRW5yb2xsZWQiLCJjbGVhcktleWNoYWlucyIsImdldFBlcm1pc3Npb24iLCJzZXRQZXJtaXNzaW9uIiwicmVzZXRQZXJtaXNzaW9uIiwiZ2V0QXBwZWFyYW5jZSIsInNldEFwcGVhcmFuY2UiLCJzaXJpQ29tbWFuZCIsInB1c2hGaWxlIiwicHVsbEZpbGUiLCJwdWxsRm9sZGVyIiwiZGVsZXRlRmlsZSIsImRlbGV0ZUZvbGRlciIsInN0YXJ0QXVkaW9SZWNvcmRpbmciLCJzdG9wQXVkaW9SZWNvcmRpbmciLCJydW5YQ1Rlc3QiLCJpbnN0YWxsWENUZXN0QnVuZGxlIiwibGlzdFhDVGVzdEJ1bmRsZXMiLCJsaXN0WENUZXN0c0luVGVzdEJ1bmRsZSIsInB1c2hOb3RpZmljYXRpb24iLCJleHBlY3ROb3RpZmljYXRpb24iLCJwZXJmb3JtSW9IaWRFdmVudCIsImNvbmZpZ3VyZUxvY2FsaXphdGlvbiIsInJlc2V0TG9jYXRpb25TZXJ2aWNlIiwic3RhcnRQY2FwIiwic3RvcFBjYXAiLCJsaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJlbmFibGVDb25kaXRpb25JbmR1Y2VyIiwiZGlzYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJ1cGRhdGVTYWZhcmlQcmVmZXJlbmNlcyIsImRlZXBMaW5rIiwiaGFzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIGVycm9ycywgZXJyb3JGcm9tQ29kZSwgZXJyb3JGcm9tVzNDSnNvbkNvZGVcbn0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMucmVjZWl2ZUFzeW5jUmVzcG9uc2UgPSBhc3luYyBmdW5jdGlvbiByZWNlaXZlQXN5bmNSZXNwb25zZSAoc3RhdHVzLCB2YWx1ZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgdGhpcy5sb2cuZGVidWcoYFJlY2VpdmVkIGFzeW5jIHJlc3BvbnNlOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKHRoaXMuYXN5bmNQcm9taXNlKSkge1xuICAgIHRoaXMubG9nLndhcm4oYFJlY2VpdmVkIGFzeW5jIHJlc3BvbnNlIHdoZW4gd2Ugd2VyZSBub3QgZXhwZWN0aW5nIG9uZSEgYCArXG4gICAgICBgUmVzcG9uc2Ugd2FzOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHN0YXR1cyAhPT0gMCkge1xuICAgIC8vIE1KU09OV1BcbiAgICByZXR1cm4gdGhpcy5hc3luY1Byb21pc2UucmVqZWN0KGVycm9yRnJvbUNvZGUoc3RhdHVzLCB2YWx1ZS5tZXNzYWdlKSk7XG4gIH1cbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKHN0YXR1cykgJiYgdmFsdWUgJiYgXy5pc1N0cmluZyh2YWx1ZS5lcnJvcikpIHtcbiAgICAvLyBXM0NcbiAgICByZXR1cm4gdGhpcy5hc3luY1Byb21pc2UucmVqZWN0KGVycm9yRnJvbVczQ0pzb25Db2RlKHZhbHVlLmVycm9yLCB2YWx1ZS5tZXNzYWdlLCB2YWx1ZS5zdGFja3RyYWNlKSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlc29sdmUodmFsdWUpO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZSAoc2NyaXB0LCBhcmdzKSB7XG4gIGlmIChzY3JpcHQubWF0Y2goL15tb2JpbGU6LykpIHtcbiAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZSgvXm1vYmlsZTovLCAnJykudHJpbSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVNb2JpbGUoc2NyaXB0LCBfLmlzQXJyYXkoYXJncykgPyBhcmdzWzBdIDogYXJncyk7XG4gIH0gZWxzZSBpZiAodGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIGFyZ3MgPSB0aGlzLmNvbnZlcnRFbGVtZW50c0ZvckF0b21zKGFyZ3MpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgYXJnc10pO1xuICAgIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMocmVzdWx0KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlQXN5bmMgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlQXN5bmMgKHNjcmlwdCwgYXJncykge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGFyZ3MgPSB0aGlzLmNvbnZlcnRFbGVtZW50c0ZvckF0b21zKGFyZ3MpO1xuICB0aGlzLmFzeW5jV2FpdE1zID0gdGhpcy5hc3luY1dhaXRNcyB8fCAwO1xuICBjb25zdCBwcm9taXNlID0gdGhpcy5yZW1vdGUuZXhlY3V0ZUF0b21Bc3luYygnZXhlY3V0ZV9hc3luY19zY3JpcHQnLCBbXG4gICAgc2NyaXB0LCBhcmdzLCB0aGlzLmFzeW5jV2FpdE1zXG4gIF0sIHRoaXMuY3VyV2ViRnJhbWVzKTtcbiAgcmV0dXJuIHRoaXMuY2FjaGVXZWJFbGVtZW50cyhhd2FpdCB0aGlzLndhaXRGb3JBdG9tKHByb21pc2UpKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBjb21tYW5kTWFwID0ge1xuICAgIC8vcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICB0YXA6ICdtb2JpbGVUYXAnLFxuICAgIHNjcm9sbDogJ21vYmlsZVNjcm9sbCcsXG4gICAgc2VsZWN0UGlja2VyV2hlZWxWYWx1ZTogJ21vYmlsZVNlbGVjdFBpY2tlcldoZWVsVmFsdWUnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY4LXN3aXBlbGVmdD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzQtc3dpcGVyaWdodD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2Njctc3dpcGV1cD9sYW5ndWFnZT1vYmpjXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjQtc3dpcGVkb3duP2xhbmd1YWdlPW9iamNcbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OS1waW5jaHdpdGhzY2FsZT9sYW5ndWFnZT1vYmpjXG4gICAgcGluY2g6ICdtb2JpbGVQaW5jaCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzMtZG91YmxldGFwP2xhbmd1YWdlPW9iamNcbiAgICBkb3VibGVUYXA6ICdtb2JpbGVEb3VibGVUYXAnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc1LXR3b2ZpbmdlcnRhcD9sYW5ndWFnZT1vYmpjXG4gICAgdHdvRmluZ2VyVGFwOiAnbW9iaWxlVHdvRmluZ2VyVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3MS10YXB3aXRobnVtYmVyb2Z0YXBzP2xhbmd1YWdlPW9iamNcbiAgICB0YXBXaXRoTnVtYmVyT2ZUYXBzOiAnbW9iaWxlVGFwV2l0aE51bWJlck9mVGFwcycsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjMtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgdG91Y2hBbmRIb2xkOiAnbW9iaWxlVG91Y2hBbmRIb2xkJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3MC1wcmVzc2ZvcmR1cmF0aW9uP2xhbmd1YWdlPW9iamNcbiAgICBkcmFnRnJvbVRvRm9yRHVyYXRpb246ICdtb2JpbGVEcmFnRnJvbVRvRm9yRHVyYXRpb24nLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY1LXJvdGF0ZT9sYW5ndWFnZT1vYmpjXG4gICAgcm90YXRlRWxlbWVudDogJ21vYmlsZVJvdGF0ZUVsZW1lbnQnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpY29vcmRpbmF0ZS8zNTUxNjkyLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIGRyYWdGcm9tVG9XaXRoVmVsb2NpdHk6ICdtb2JpbGVEcmFnRnJvbVRvV2l0aFZlbG9jaXR5JyxcbiAgICBmb3JjZVByZXNzOiAnbW9iaWxlRm9yY2VQcmVzcycsXG4gICAgc2Nyb2xsVG9FbGVtZW50OiAnbW9iaWxlU2Nyb2xsVG9FbGVtZW50JyxcblxuICAgIC8vZW5kcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICBhbGVydDogJ21vYmlsZUhhbmRsZUFsZXJ0JyxcblxuICAgIHNldFBhc3RlYm9hcmQ6ICdtb2JpbGVTZXRQYXN0ZWJvYXJkJyxcbiAgICBnZXRQYXN0ZWJvYXJkOiAnbW9iaWxlR2V0UGFzdGVib2FyZCcsXG5cbiAgICBzb3VyY2U6ICdtb2JpbGVHZXRTb3VyY2UnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgLy9yZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgbGF1bmNoQXBwOiAnbW9iaWxlTGF1bmNoQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGtpbGxBcHA6ICdtb2JpbGVLaWxsQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgbGlzdEFwcHM6ICdtb2JpbGVMaXN0QXBwcycsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ2dldFZpZXdwb3J0UmVjdCcsXG5cbiAgICBzdGFydFBlcmZSZWNvcmQ6ICdtb2JpbGVTdGFydFBlcmZSZWNvcmQnLFxuICAgIHN0b3BQZXJmUmVjb3JkOiAnbW9iaWxlU3RvcFBlcmZSZWNvcmQnLFxuXG4gICAgaW5zdGFsbENlcnRpZmljYXRlOiAnbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlJyxcbiAgICBsaXN0Q2VydGlmaWNhdGVzOiAnbW9iaWxlTGlzdENlcnRpZmljYXRlcycsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgYmF0dGVyeUluZm86ICdtb2JpbGVHZXRCYXR0ZXJ5SW5mbycsXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcbiAgICBhY3RpdmVBcHBJbmZvOiAnbW9iaWxlR2V0QWN0aXZlQXBwSW5mbycsXG4gICAgZGV2aWNlU2NyZWVuSW5mbzogJ2dldFNjcmVlbkluZm8nLFxuXG4gICAgcHJlc3NCdXR0b246ICdtb2JpbGVQcmVzc0J1dHRvbicsXG5cbiAgICBlbnJvbGxCaW9tZXRyaWM6ICdtb2JpbGVFbnJvbGxCaW9tZXRyaWMnLFxuICAgIHNlbmRCaW9tZXRyaWNNYXRjaDogJ21vYmlsZVNlbmRCaW9tZXRyaWNNYXRjaCcsXG4gICAgaXNCaW9tZXRyaWNFbnJvbGxlZDogJ21vYmlsZUlzQmlvbWV0cmljRW5yb2xsZWQnLFxuXG4gICAgY2xlYXJLZXljaGFpbnM6ICdtb2JpbGVDbGVhcktleWNoYWlucycsXG5cbiAgICBnZXRQZXJtaXNzaW9uOiAnbW9iaWxlR2V0UGVybWlzc2lvbicsXG4gICAgc2V0UGVybWlzc2lvbjogJ21vYmlsZVNldFBlcm1pc3Npb25zJyxcbiAgICByZXNldFBlcm1pc3Npb246ICdtb2JpbGVSZXNldFBlcm1pc3Npb24nLFxuXG4gICAgZ2V0QXBwZWFyYW5jZTogJ21vYmlsZUdldEFwcGVhcmFuY2UnLFxuICAgIHNldEFwcGVhcmFuY2U6ICdtb2JpbGVTZXRBcHBlYXJhbmNlJyxcblxuICAgIHNpcmlDb21tYW5kOiAnbW9iaWxlU2lyaUNvbW1hbmQnLFxuXG4gICAgcHVzaEZpbGU6ICdtb2JpbGVQdXNoRmlsZScsXG4gICAgcHVsbEZpbGU6ICdtb2JpbGVQdWxsRmlsZScsXG4gICAgcHVsbEZvbGRlcjogJ21vYmlsZVB1bGxGb2xkZXInLFxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcbiAgICBkZWxldGVGb2xkZXI6ICdtb2JpbGVEZWxldGVGb2xkZXInLFxuXG4gICAgc3RhcnRBdWRpb1JlY29yZGluZzogJ3N0YXJ0QXVkaW9SZWNvcmRpbmcnLFxuICAgIHN0b3BBdWRpb1JlY29yZGluZzogJ3N0b3BBdWRpb1JlY29yZGluZycsXG5cbiAgICAvLyBYQ1Rlc3RcbiAgICBydW5YQ1Rlc3Q6ICdtb2JpbGVSdW5YQ1Rlc3QnLFxuICAgIGluc3RhbGxYQ1Rlc3RCdW5kbGU6ICdtb2JpbGVJbnN0YWxsWENUZXN0QnVuZGxlJyxcbiAgICBsaXN0WENUZXN0QnVuZGxlczogJ21vYmlsZUxpc3RYQ1Rlc3RCdW5kbGVzJyxcbiAgICBsaXN0WENUZXN0c0luVGVzdEJ1bmRsZTogJ21vYmlsZUxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlJyxcblxuICAgIHB1c2hOb3RpZmljYXRpb246ICdtb2JpbGVQdXNoTm90aWZpY2F0aW9uJyxcbiAgICBleHBlY3ROb3RpZmljYXRpb246ICdtb2JpbGVFeHBlY3ROb3RpZmljYXRpb24nLFxuXG4gICAgcGVyZm9ybUlvSGlkRXZlbnQ6ICdtb2JpbGVQZXJmb3JtSW9IaWRFdmVudCcsXG5cbiAgICBjb25maWd1cmVMb2NhbGl6YXRpb246ICdtb2JpbGVDb25maWd1cmVMb2NhbGl6YXRpb24nLFxuXG4gICAgcmVzZXRMb2NhdGlvblNlcnZpY2U6ICdtb2JpbGVSZXNldExvY2F0aW9uU2VydmljZScsXG5cbiAgICBzdGFydFBjYXA6ICdtb2JpbGVTdGFydFBjYXAnLFxuICAgIHN0b3BQY2FwOiAnbW9iaWxlU3RvcFBjYXAnLFxuICAgIGxpc3RDb25kaXRpb25JbmR1Y2VyczogJ21vYmlsZUxpc3RDb25kaXRpb25JbmR1Y2VycycsXG4gICAgZW5hYmxlQ29uZGl0aW9uSW5kdWNlcjogJ21vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXInLFxuICAgIGRpc2FibGVDb25kaXRpb25JbmR1Y2VyOiAnbW9iaWxlRGlzYWJsZUNvbmRpdGlvbkluZHVjZXInLFxuXG4gICAgdXBkYXRlU2FmYXJpUHJlZmVyZW5jZXM6ICdtb2JpbGVVcGRhdGVTYWZhcmlQcmVmZXJlbmNlcycsXG5cbiAgICBkZWVwTGluazogJ21vYmlsZURlZXBMaW5rJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKGNvbW1hbmRNYXAsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kICcke21vYmlsZUNvbW1hbmR9Jy4gT25seSAke18ua2V5cyhjb21tYW5kTWFwKS5qb2luKCcsICcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW2NvbW1hbmRNYXBbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","names":["extensions","receiveAsyncResponse","status","value","log","debug","JSON","stringify","util","hasValue","asyncPromise","warn","reject","errorFromCode","message","_","isString","error","errorFromW3CJsonCode","stacktrace","resolve","execute","script","args","match","replace","trim","executeMobile","isArray","isWebContext","convertElementsForAtoms","result","executeAtom","cacheWebElements","errors","NotImplementedError","executeAsync","asyncWaitMs","promise","remote","executeAtomAsync","curWebFrames","waitForAtom","mobileCommand","opts","commandMap","tap","scroll","selectPickerWheelValue","swipe","pinch","doubleTap","twoFingerTap","tapWithNumberOfTaps","touchAndHold","dragFromToForDuration","rotateElement","dragFromToWithVelocity","forcePress","scrollToElement","alert","setPasteboard","getPasteboard","source","getContexts","installApp","isAppInstalled","removeApp","launchApp","terminateApp","killApp","queryAppState","activateApp","listApps","viewportScreenshot","viewportRect","startPerfRecord","stopPerfRecord","installCertificate","listCertificates","startLogsBroadcast","stopLogsBroadcast","batteryInfo","deviceInfo","getDeviceTime","activeAppInfo","deviceScreenInfo","pressButton","enrollBiometric","sendBiometricMatch","isBiometricEnrolled","clearKeychains","getPermission","setPermission","resetPermission","getAppearance","setAppearance","siriCommand","pushFile","pullFile","pullFolder","deleteFile","deleteFolder","startAudioRecording","stopAudioRecording","runXCTest","installXCTestBundle","listXCTestBundles","listXCTestsInTestBundle","pushNotification","expectNotification","performIoHidEvent","configureLocalization","resetLocationService","startPcap","stopPcap","listConditionInducers","enableConditionInducer","disableConditionInducer","updateSafariPreferences","has","UnknownCommandError","keys","join"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport {\n errors, errorFromCode, errorFromW3CJsonCode\n} from 'appium/driver';\nimport { util } from 'appium/support';\n\nconst extensions = {};\n\nextensions.receiveAsyncResponse = async function receiveAsyncResponse (status, value) { // eslint-disable-line require-await\n this.log.debug(`Received async response: ${JSON.stringify(value)}`);\n if (!util.hasValue(this.asyncPromise)) {\n this.log.warn(`Received async response when we were not expecting one! ` +\n `Response was: ${JSON.stringify(value)}`);\n return;\n }\n\n if (util.hasValue(status) && status !== 0) {\n // MJSONWP\n return this.asyncPromise.reject(errorFromCode(status, value.message));\n }\n if (!util.hasValue(status) && value && _.isString(value.error)) {\n // W3C\n return this.asyncPromise.reject(errorFromW3CJsonCode(value.error, value.message, value.stacktrace));\n }\n return this.asyncPromise.resolve(value);\n};\n\nextensions.execute = async function execute (script, args) {\n if (script.match(/^mobile:/)) {\n script = script.replace(/^mobile:/, '').trim();\n return await this.executeMobile(script, _.isArray(args) ? args[0] : args);\n } else if (this.isWebContext()) {\n args = this.convertElementsForAtoms(args);\n const result = await this.executeAtom('execute_script', [script, args]);\n return this.cacheWebElements(result);\n } else {\n throw new errors.NotImplementedError();\n }\n};\n\nextensions.executeAsync = async function executeAsync (script, args) {\n if (!this.isWebContext()) {\n throw new errors.NotImplementedError();\n }\n\n args = this.convertElementsForAtoms(args);\n this.asyncWaitMs = this.asyncWaitMs || 0;\n const promise = this.remote.executeAtomAsync('execute_async_script', [\n script, args, this.asyncWaitMs\n ], this.curWebFrames);\n return this.cacheWebElements(await this.waitForAtom(promise));\n};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const commandMap = {\n //region gestures support\n tap: 'mobileTap',\n scroll: 'mobileScroll',\n selectPickerWheelValue: 'mobileSelectPickerWheelValue',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618668-swipeleft?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618674-swiperight?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618667-swipeup?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618664-swipedown?language=objc\n swipe: 'mobileSwipe',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618669-pinchwithscale?language=objc\n pinch: 'mobilePinch',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618673-doubletap?language=objc\n doubleTap: 'mobileDoubleTap',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618675-twofingertap?language=objc\n twoFingerTap: 'mobileTwoFingerTap',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc\n tapWithNumberOfTaps: 'mobileTapWithNumberOfTaps',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc\n touchAndHold: 'mobileTouchAndHold',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618670-pressforduration?language=objc\n dragFromToForDuration: 'mobileDragFromToForDuration',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc\n rotateElement: 'mobileRotateElement',\n // https://developer.apple.com/documentation/xctest/xcuicoordinate/3551692-pressforduration?language=objc\n dragFromToWithVelocity: 'mobileDragFromToWithVelocity',\n forcePress: 'mobileForcePress',\n scrollToElement: 'mobileScrollToElement',\n\n //endregion gestures support\n alert: 'mobileHandleAlert',\n\n setPasteboard: 'mobileSetPasteboard',\n getPasteboard: 'mobileGetPasteboard',\n\n source: 'mobileGetSource',\n getContexts: 'mobileGetContexts',\n\n //region multiple apps management\n installApp: 'mobileInstallApp',\n isAppInstalled: 'mobileIsAppInstalled',\n removeApp: 'mobileRemoveApp',\n launchApp: 'mobileLaunchApp',\n terminateApp: 'mobileTerminateApp',\n killApp: 'mobileKillApp',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n listApps: 'mobileListApps',\n //endregion multiple apps management\n\n viewportScreenshot: 'getViewportScreenshot',\n viewportRect: 'getViewportRect',\n\n startPerfRecord: 'mobileStartPerfRecord',\n stopPerfRecord: 'mobileStopPerfRecord',\n\n installCertificate: 'mobileInstallCertificate',\n listCertificates: 'mobileListCertificates',\n\n startLogsBroadcast: 'mobileStartLogsBroadcast',\n stopLogsBroadcast: 'mobileStopLogsBroadcast',\n\n batteryInfo: 'mobileGetBatteryInfo',\n deviceInfo: 'mobileGetDeviceInfo',\n getDeviceTime: 'mobileGetDeviceTime',\n activeAppInfo: 'mobileGetActiveAppInfo',\n deviceScreenInfo: 'getScreenInfo',\n\n pressButton: 'mobilePressButton',\n\n enrollBiometric: 'mobileEnrollBiometric',\n sendBiometricMatch: 'mobileSendBiometricMatch',\n isBiometricEnrolled: 'mobileIsBiometricEnrolled',\n\n clearKeychains: 'mobileClearKeychains',\n\n getPermission: 'mobileGetPermission',\n setPermission: 'mobileSetPermissions',\n resetPermission: 'mobileResetPermission',\n\n getAppearance: 'mobileGetAppearance',\n setAppearance: 'mobileSetAppearance',\n\n siriCommand: 'mobileSiriCommand',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n deleteFolder: 'mobileDeleteFolder',\n\n startAudioRecording: 'startAudioRecording',\n stopAudioRecording: 'stopAudioRecording',\n\n // XCTest\n runXCTest: 'mobileRunXCTest',\n installXCTestBundle: 'mobileInstallXCTestBundle',\n listXCTestBundles: 'mobileListXCTestBundles',\n listXCTestsInTestBundle: 'mobileListXCTestsInTestBundle',\n\n pushNotification: 'mobilePushNotification',\n expectNotification: 'mobileExpectNotification',\n\n performIoHidEvent: 'mobilePerformIoHidEvent',\n\n configureLocalization: 'mobileConfigureLocalization',\n\n resetLocationService: 'mobileResetLocationService',\n\n startPcap: 'mobileStartPcap',\n stopPcap: 'mobileStopPcap',\n listConditionInducers: 'mobileListConditionInducers',\n enableConditionInducer: 'mobileEnableConditionInducer',\n disableConditionInducer: 'mobileDisableConditionInducer',\n\n updateSafariPreferences: 'mobileUpdateSafariPreferences',\n };\n\n if (!_.has(commandMap, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command '${mobileCommand}'. Only ${_.keys(commandMap).join(', ')} commands are supported.`);\n }\n return await this[commandMap[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute.js","names":["extensions","receiveAsyncResponse","status","value","log","debug","JSON","stringify","util","hasValue","asyncPromise","warn","reject","errorFromCode","message","_","isString","error","errorFromW3CJsonCode","stacktrace","resolve","execute","script","args","match","replace","trim","executeMobile","isArray","isWebContext","convertElementsForAtoms","result","executeAtom","cacheWebElements","errors","NotImplementedError","executeAsync","asyncWaitMs","promise","remote","executeAtomAsync","curWebFrames","waitForAtom","mobileCommand","opts","commandMap","tap","scroll","selectPickerWheelValue","swipe","pinch","doubleTap","twoFingerTap","tapWithNumberOfTaps","touchAndHold","dragFromToForDuration","rotateElement","dragFromToWithVelocity","forcePress","scrollToElement","alert","setPasteboard","getPasteboard","source","getContexts","installApp","isAppInstalled","removeApp","launchApp","terminateApp","killApp","queryAppState","activateApp","listApps","viewportScreenshot","viewportRect","startPerfRecord","stopPerfRecord","installCertificate","listCertificates","startLogsBroadcast","stopLogsBroadcast","batteryInfo","deviceInfo","getDeviceTime","activeAppInfo","deviceScreenInfo","pressButton","enrollBiometric","sendBiometricMatch","isBiometricEnrolled","clearKeychains","getPermission","setPermission","resetPermission","getAppearance","setAppearance","siriCommand","pushFile","pullFile","pullFolder","deleteFile","deleteFolder","startAudioRecording","stopAudioRecording","runXCTest","installXCTestBundle","listXCTestBundles","listXCTestsInTestBundle","pushNotification","expectNotification","performIoHidEvent","configureLocalization","resetLocationService","startPcap","stopPcap","listConditionInducers","enableConditionInducer","disableConditionInducer","updateSafariPreferences","deepLink","has","UnknownCommandError","keys","join"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport {\n errors, errorFromCode, errorFromW3CJsonCode\n} from 'appium/driver';\nimport { util } from 'appium/support';\n\nconst extensions = {};\n\nextensions.receiveAsyncResponse = async function receiveAsyncResponse (status, value) { // eslint-disable-line require-await\n this.log.debug(`Received async response: ${JSON.stringify(value)}`);\n if (!util.hasValue(this.asyncPromise)) {\n this.log.warn(`Received async response when we were not expecting one! ` +\n `Response was: ${JSON.stringify(value)}`);\n return;\n }\n\n if (util.hasValue(status) && status !== 0) {\n // MJSONWP\n return this.asyncPromise.reject(errorFromCode(status, value.message));\n }\n if (!util.hasValue(status) && value && _.isString(value.error)) {\n // W3C\n return this.asyncPromise.reject(errorFromW3CJsonCode(value.error, value.message, value.stacktrace));\n }\n return this.asyncPromise.resolve(value);\n};\n\nextensions.execute = async function execute (script, args) {\n if (script.match(/^mobile:/)) {\n script = script.replace(/^mobile:/, '').trim();\n return await this.executeMobile(script, _.isArray(args) ? args[0] : args);\n } else if (this.isWebContext()) {\n args = this.convertElementsForAtoms(args);\n const result = await this.executeAtom('execute_script', [script, args]);\n return this.cacheWebElements(result);\n } else {\n throw new errors.NotImplementedError();\n }\n};\n\nextensions.executeAsync = async function executeAsync (script, args) {\n if (!this.isWebContext()) {\n throw new errors.NotImplementedError();\n }\n\n args = this.convertElementsForAtoms(args);\n this.asyncWaitMs = this.asyncWaitMs || 0;\n const promise = this.remote.executeAtomAsync('execute_async_script', [\n script, args, this.asyncWaitMs\n ], this.curWebFrames);\n return this.cacheWebElements(await this.waitForAtom(promise));\n};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const commandMap = {\n //region gestures support\n tap: 'mobileTap',\n scroll: 'mobileScroll',\n selectPickerWheelValue: 'mobileSelectPickerWheelValue',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618668-swipeleft?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618674-swiperight?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618667-swipeup?language=objc\n // https://developer.apple.com/documentation/xctest/xcuielement/1618664-swipedown?language=objc\n swipe: 'mobileSwipe',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618669-pinchwithscale?language=objc\n pinch: 'mobilePinch',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618673-doubletap?language=objc\n doubleTap: 'mobileDoubleTap',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618675-twofingertap?language=objc\n twoFingerTap: 'mobileTwoFingerTap',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc\n tapWithNumberOfTaps: 'mobileTapWithNumberOfTaps',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc\n touchAndHold: 'mobileTouchAndHold',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618670-pressforduration?language=objc\n dragFromToForDuration: 'mobileDragFromToForDuration',\n // https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc\n rotateElement: 'mobileRotateElement',\n // https://developer.apple.com/documentation/xctest/xcuicoordinate/3551692-pressforduration?language=objc\n dragFromToWithVelocity: 'mobileDragFromToWithVelocity',\n forcePress: 'mobileForcePress',\n scrollToElement: 'mobileScrollToElement',\n\n //endregion gestures support\n alert: 'mobileHandleAlert',\n\n setPasteboard: 'mobileSetPasteboard',\n getPasteboard: 'mobileGetPasteboard',\n\n source: 'mobileGetSource',\n getContexts: 'mobileGetContexts',\n\n //region multiple apps management\n installApp: 'mobileInstallApp',\n isAppInstalled: 'mobileIsAppInstalled',\n removeApp: 'mobileRemoveApp',\n launchApp: 'mobileLaunchApp',\n terminateApp: 'mobileTerminateApp',\n killApp: 'mobileKillApp',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n listApps: 'mobileListApps',\n //endregion multiple apps management\n\n viewportScreenshot: 'getViewportScreenshot',\n viewportRect: 'getViewportRect',\n\n startPerfRecord: 'mobileStartPerfRecord',\n stopPerfRecord: 'mobileStopPerfRecord',\n\n installCertificate: 'mobileInstallCertificate',\n listCertificates: 'mobileListCertificates',\n\n startLogsBroadcast: 'mobileStartLogsBroadcast',\n stopLogsBroadcast: 'mobileStopLogsBroadcast',\n\n batteryInfo: 'mobileGetBatteryInfo',\n deviceInfo: 'mobileGetDeviceInfo',\n getDeviceTime: 'mobileGetDeviceTime',\n activeAppInfo: 'mobileGetActiveAppInfo',\n deviceScreenInfo: 'getScreenInfo',\n\n pressButton: 'mobilePressButton',\n\n enrollBiometric: 'mobileEnrollBiometric',\n sendBiometricMatch: 'mobileSendBiometricMatch',\n isBiometricEnrolled: 'mobileIsBiometricEnrolled',\n\n clearKeychains: 'mobileClearKeychains',\n\n getPermission: 'mobileGetPermission',\n setPermission: 'mobileSetPermissions',\n resetPermission: 'mobileResetPermission',\n\n getAppearance: 'mobileGetAppearance',\n setAppearance: 'mobileSetAppearance',\n\n siriCommand: 'mobileSiriCommand',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n deleteFolder: 'mobileDeleteFolder',\n\n startAudioRecording: 'startAudioRecording',\n stopAudioRecording: 'stopAudioRecording',\n\n // XCTest\n runXCTest: 'mobileRunXCTest',\n installXCTestBundle: 'mobileInstallXCTestBundle',\n listXCTestBundles: 'mobileListXCTestBundles',\n listXCTestsInTestBundle: 'mobileListXCTestsInTestBundle',\n\n pushNotification: 'mobilePushNotification',\n expectNotification: 'mobileExpectNotification',\n\n performIoHidEvent: 'mobilePerformIoHidEvent',\n\n configureLocalization: 'mobileConfigureLocalization',\n\n resetLocationService: 'mobileResetLocationService',\n\n startPcap: 'mobileStartPcap',\n stopPcap: 'mobileStopPcap',\n listConditionInducers: 'mobileListConditionInducers',\n enableConditionInducer: 'mobileEnableConditionInducer',\n disableConditionInducer: 'mobileDisableConditionInducer',\n\n updateSafariPreferences: 'mobileUpdateSafariPreferences',\n\n deepLink: 'mobileDeepLink',\n };\n\n if (!_.has(commandMap, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command '${mobileCommand}'. Only ${_.keys(commandMap).join(', ')} commands are supported.`);\n }\n return await this[commandMap[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA;AACA;AAGA;AAEA,MAAMA,UAAU,GAAG,CAAC,CAAC;AAErBA,UAAU,CAACC,oBAAoB,GAAG,eAAeA,oBAAoB,CAAEC,MAAM,EAAEC,KAAK,EAAE;EACpF,IAAI,CAACC,GAAG,CAACC,KAAK,CAAE,4BAA2BC,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAE,EAAC,CAAC;EACnE,IAAI,CAACK,aAAI,CAACC,QAAQ,CAAC,IAAI,CAACC,YAAY,CAAC,EAAE;IACrC,IAAI,CAACN,GAAG,CAACO,IAAI,CAAE,0DAAyD,GACrE,iBAAgBL,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAE,EAAC,CAAC;IAC3C;EACF;EAEA,IAAIK,aAAI,CAACC,QAAQ,CAACP,MAAM,CAAC,IAAIA,MAAM,KAAK,CAAC,EAAE;IAEzC,OAAO,IAAI,CAACQ,YAAY,CAACE,MAAM,CAAC,IAAAC,qBAAa,EAACX,MAAM,EAAEC,KAAK,CAACW,OAAO,CAAC,CAAC;EACvE;EACA,IAAI,CAACN,aAAI,CAACC,QAAQ,CAACP,MAAM,CAAC,IAAIC,KAAK,IAAIY,eAAC,CAACC,QAAQ,CAACb,KAAK,CAACc,KAAK,CAAC,EAAE;IAE9D,OAAO,IAAI,CAACP,YAAY,CAACE,MAAM,CAAC,IAAAM,4BAAoB,EAACf,KAAK,CAACc,KAAK,EAAEd,KAAK,CAACW,OAAO,EAAEX,KAAK,CAACgB,UAAU,CAAC,CAAC;EACrG;EACA,OAAO,IAAI,CAACT,YAAY,CAACU,OAAO,CAACjB,KAAK,CAAC;AACzC,CAAC;AAEDH,UAAU,CAACqB,OAAO,GAAG,eAAeA,OAAO,CAAEC,MAAM,EAAEC,IAAI,EAAE;EACzD,IAAID,MAAM,CAACE,KAAK,CAAC,UAAU,CAAC,EAAE;IAC5BF,MAAM,GAAGA,MAAM,CAACG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAACC,IAAI,EAAE;IAC9C,OAAO,MAAM,IAAI,CAACC,aAAa,CAACL,MAAM,EAAEP,eAAC,CAACa,OAAO,CAACL,IAAI,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC;EAC3E,CAAC,MAAM,IAAI,IAAI,CAACM,YAAY,EAAE,EAAE;IAC9BN,IAAI,GAAG,IAAI,CAACO,uBAAuB,CAACP,IAAI,CAAC;IACzC,MAAMQ,MAAM,GAAG,MAAM,IAAI,CAACC,WAAW,CAAC,gBAAgB,EAAE,CAACV,MAAM,EAAEC,IAAI,CAAC,CAAC;IACvE,OAAO,IAAI,CAACU,gBAAgB,CAACF,MAAM,CAAC;EACtC,CAAC,MAAM;IACL,MAAM,IAAIG,cAAM,CAACC,mBAAmB,EAAE;EACxC;AACF,CAAC;AAEDnC,UAAU,CAACoC,YAAY,GAAG,eAAeA,YAAY,CAAEd,MAAM,EAAEC,IAAI,EAAE;EACnE,IAAI,CAAC,IAAI,CAACM,YAAY,EAAE,EAAE;IACxB,MAAM,IAAIK,cAAM,CAACC,mBAAmB,EAAE;EACxC;EAEAZ,IAAI,GAAG,IAAI,CAACO,uBAAuB,CAACP,IAAI,CAAC;EACzC,IAAI,CAACc,WAAW,GAAG,IAAI,CAACA,WAAW,IAAI,CAAC;EACxC,MAAMC,OAAO,GAAG,IAAI,CAACC,MAAM,CAACC,gBAAgB,CAAC,sBAAsB,EAAE,CACnElB,MAAM,EAAEC,IAAI,EAAE,IAAI,CAACc,WAAW,CAC/B,EAAE,IAAI,CAACI,YAAY,CAAC;EACrB,OAAO,IAAI,CAACR,gBAAgB,CAAC,MAAM,IAAI,CAACS,WAAW,CAACJ,OAAO,CAAC,CAAC;AAC/D,CAAC;AAEDtC,UAAU,CAAC2B,aAAa,GAAG,eAAeA,aAAa,CAAEgB,aAAa,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACjF,MAAMC,UAAU,GAAG;IAEjBC,GAAG,EAAE,WAAW;IAChBC,MAAM,EAAE,cAAc;IACtBC,sBAAsB,EAAE,8BAA8B;IAKtDC,KAAK,EAAE,aAAa;IAEpBC,KAAK,EAAE,aAAa;IAEpBC,SAAS,EAAE,iBAAiB;IAE5BC,YAAY,EAAE,oBAAoB;IAElCC,mBAAmB,EAAE,2BAA2B;IAEhDC,YAAY,EAAE,oBAAoB;IAElCC,qBAAqB,EAAE,6BAA6B;IAEpDC,aAAa,EAAE,qBAAqB;IAEpCC,sBAAsB,EAAE,8BAA8B;IACtDC,UAAU,EAAE,kBAAkB;IAC9BC,eAAe,EAAE,uBAAuB;IAGxCC,KAAK,EAAE,mBAAmB;IAE1BC,aAAa,EAAE,qBAAqB;IACpCC,aAAa,EAAE,qBAAqB;IAEpCC,MAAM,EAAE,iBAAiB;IACzBC,WAAW,EAAE,mBAAmB;IAGhCC,UAAU,EAAE,kBAAkB;IAC9BC,cAAc,EAAE,sBAAsB;IACtCC,SAAS,EAAE,iBAAiB;IAC5BC,SAAS,EAAE,iBAAiB;IAC5BC,YAAY,EAAE,oBAAoB;IAClCC,OAAO,EAAE,eAAe;IACxBC,aAAa,EAAE,qBAAqB;IACpCC,WAAW,EAAE,mBAAmB;IAChCC,QAAQ,EAAE,gBAAgB;IAG1BC,kBAAkB,EAAE,uBAAuB;IAC3CC,YAAY,EAAE,iBAAiB;IAE/BC,eAAe,EAAE,uBAAuB;IACxCC,cAAc,EAAE,sBAAsB;IAEtCC,kBAAkB,EAAE,0BAA0B;IAC9CC,gBAAgB,EAAE,wBAAwB;IAE1CC,kBAAkB,EAAE,0BAA0B;IAC9CC,iBAAiB,EAAE,yBAAyB;IAE5CC,WAAW,EAAE,sBAAsB;IACnCC,UAAU,EAAE,qBAAqB;IACjCC,aAAa,EAAE,qBAAqB;IACpCC,aAAa,EAAE,wBAAwB;IACvCC,gBAAgB,EAAE,eAAe;IAEjCC,WAAW,EAAE,mBAAmB;IAEhCC,eAAe,EAAE,uBAAuB;IACxCC,kBAAkB,EAAE,0BAA0B;IAC9CC,mBAAmB,EAAE,2BAA2B;IAEhDC,cAAc,EAAE,sBAAsB;IAEtCC,aAAa,EAAE,qBAAqB;IACpCC,aAAa,EAAE,sBAAsB;IACrCC,eAAe,EAAE,uBAAuB;IAExCC,aAAa,EAAE,qBAAqB;IACpCC,aAAa,EAAE,qBAAqB;IAEpCC,WAAW,EAAE,mBAAmB;IAEhCC,QAAQ,EAAE,gBAAgB;IAC1BC,QAAQ,EAAE,gBAAgB;IAC1BC,UAAU,EAAE,kBAAkB;IAC9BC,UAAU,EAAE,kBAAkB;IAC9BC,YAAY,EAAE,oBAAoB;IAElCC,mBAAmB,EAAE,qBAAqB;IAC1CC,kBAAkB,EAAE,oBAAoB;IAGxCC,SAAS,EAAE,iBAAiB;IAC5BC,mBAAmB,EAAE,2BAA2B;IAChDC,iBAAiB,EAAE,yBAAyB;IAC5CC,uBAAuB,EAAE,+BAA+B;IAExDC,gBAAgB,EAAE,wBAAwB;IAC1CC,kBAAkB,EAAE,0BAA0B;IAE9CC,iBAAiB,EAAE,yBAAyB;IAE5CC,qBAAqB,EAAE,6BAA6B;IAEpDC,oBAAoB,EAAE,4BAA4B;IAElDC,SAAS,EAAE,iBAAiB;IAC5BC,QAAQ,EAAE,gBAAgB;IAC1BC,qBAAqB,EAAE,6BAA6B;IACpDC,sBAAsB,EAAE,8BAA8B;IACtDC,uBAAuB,EAAE,+BAA+B;IAExDC,uBAAuB,EAAE,+BAA+B;IAExDC,QAAQ,EAAE;EACZ,CAAC;EAED,IAAI,CAACzG,eAAC,CAAC0G,GAAG,CAAC5E,UAAU,EAAEF,aAAa,CAAC,EAAE;IACrC,MAAM,IAAIT,cAAM,CAACwF,mBAAmB,CAAE,2BAA0B/E,aAAc,WAAU5B,eAAC,CAAC4G,IAAI,CAAC9E,UAAU,CAAC,CAAC+E,IAAI,CAAC,IAAI,CAAE,0BAAyB,CAAC;EAClJ;EACA,OAAO,MAAM,IAAI,CAAC/E,UAAU,CAACF,aAAa,CAAC,CAAC,CAACC,IAAI,CAAC;AACpD,CAAC;AAAC,eAEa5C,UAAU;AAAA"}
|
|
@@ -9,6 +9,7 @@ require("source-map-support/register");
|
|
|
9
9
|
var _driver = require("appium/driver");
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
11
|
var _asyncbox = require("asyncbox");
|
|
12
|
+
var _utils = require("../utils");
|
|
12
13
|
let commands = {},
|
|
13
14
|
helpers = {},
|
|
14
15
|
extensions = {};
|
|
@@ -65,7 +66,17 @@ commands.closeWindow = async function closeWindow() {
|
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
};
|
|
69
|
+
commands.mobileDeepLink = async function mobileDeepLink(opts = {}) {
|
|
70
|
+
const {
|
|
71
|
+
url,
|
|
72
|
+
bundleId
|
|
73
|
+
} = (0, _utils.requireArgs)('url', opts);
|
|
74
|
+
return await this.proxyCommand('/url', 'POST', {
|
|
75
|
+
url,
|
|
76
|
+
bundleId
|
|
77
|
+
});
|
|
78
|
+
};
|
|
68
79
|
Object.assign(extensions, commands, helpers);
|
|
69
80
|
var _default = extensions;
|
|
70
81
|
exports.default = _default;
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiQ0xPU0VfV0lORE9XX1RJTUVPVVQiLCJDTE9TRV9XSU5ET1dfSU5URVJWQUwiLCJiYWNrIiwiaXNXZWJDb250ZXh0IiwibmF0aXZlQmFjayIsIm1vYmlsZVdlYk5hdiIsIm5hdkJhciIsImZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cyIsImJ1dHRvbnMiLCJsZW5ndGgiLCJFcnJvciIsImJhY2tCdXR0b24iLCJfIiwiZmlsdGVyIiwidmFsdWUiLCJsYWJlbCIsImxvZyIsImRlYnVnIiwibmF0aXZlQ2xpY2siLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJmb3J3YXJkIiwiY2xvc2VXaW5kb3ciLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwic2NyaXB0IiwiY29udGV4dCIsImN1ckNvbnRleHQiLCJleGVjdXRlQXRvbSIsIndhaXRGb3JDb25kaXRpb24iLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiaWduIiwibW9iaWxlRGVlcExpbmsiLCJvcHRzIiwidXJsIiwiYnVuZGxlSWQiLCJyZXF1aXJlQXJncyIsInByb3h5Q29tbWFuZCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9uYXZpZ2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyByZXF1aXJlQXJncyB9IGZyb20gJy4uL3V0aWxzJztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG4vLyB0aGVzZSB0d28gY29uc3RpdHV0ZSB0aGUgd2FpdCBhZnRlciBjbG9zaW5nIGEgd2luZG93XG5jb25zdCBDTE9TRV9XSU5ET1dfVElNRU9VVCA9IDUwMDA7XG5jb25zdCBDTE9TRV9XSU5ET1dfSU5URVJWQUwgPSAxMDA7XG5cbmNvbW1hbmRzLmJhY2sgPSBhc3luYyBmdW5jdGlvbiBiYWNrICgpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgYXdhaXQgdGhpcy5uYXRpdmVCYWNrKCk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgdGhpcy5tb2JpbGVXZWJOYXYoJ2JhY2snKTtcbiAgfVxufTtcblxuaGVscGVycy5uYXRpdmVCYWNrID0gYXN5bmMgZnVuY3Rpb24gbmF0aXZlQmFjayAoKSB7XG4gIHRyeSB7XG4gICAgbGV0IG5hdkJhciA9IGF3YWl0IHRoaXMuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKCdjbGFzcyBuYW1lJywgJ1hDVUlFbGVtZW50VHlwZU5hdmlnYXRpb25CYXInLCBmYWxzZSk7XG4gICAgbGV0IGJ1dHRvbnMgPSBhd2FpdCB0aGlzLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cygnY2xhc3MgbmFtZScsICdYQ1VJRWxlbWVudFR5cGVCdXR0b24nLCB0cnVlLCBuYXZCYXIpO1xuICAgIGlmIChidXR0b25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBidXR0b25zIGZvdW5kIGluIG5hdmlnYXRpb24gYmFyJyk7XG4gICAgfVxuXG4gICAgbGV0IGJhY2tCdXR0b24gPSBfLmZpbHRlcihidXR0b25zLCAodmFsdWUpID0+IHZhbHVlLmxhYmVsID09PSAnQmFjaycpWzBdO1xuICAgIGlmIChiYWNrQnV0dG9uKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgRm91bmQgbmF2aWdhdGlvbiBiYXIgJ2JhY2snIGJ1dHRvbi4gQ2xpY2tpbmcuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBVbmFibGUgdG8gZmluZCAnQmFjaycgYnV0dG9uLiBUcnlpbmcgZmlyc3QgYnV0dG9uIGluIG5hdmlnYXRpb24gYmFyYCk7XG4gICAgICBiYWNrQnV0dG9uID0gYnV0dG9uc1swXTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5uYXRpdmVDbGljayhiYWNrQnV0dG9uKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5sb2cuZXJyb3IoYFVuYWJsZSB0byBmaW5kIG5hdmlnYXRpb24gYmFyIGFuZCBiYWNrIGJ1dHRvbjogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuY29tbWFuZHMuZm9yd2FyZCA9IGFzeW5jIGZ1bmN0aW9uIGZvcndhcmQgKCkge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgfVxuICBhd2FpdCB0aGlzLm1vYmlsZVdlYk5hdignZm9yd2FyZCcpO1xufTtcblxuY29tbWFuZHMuY2xvc2VXaW5kb3cgPSBhc3luYyBmdW5jdGlvbiBjbG9zZVdpbmRvdyAoKSB7XG4gIGlmICghdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgLy8gc2luY2UgdGhlIHdpbmRvdyB3aWxsIGJlIGNsb3NlZCBhbmQgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IGdvbmUsIHJldHVyblxuICAvLyBmaXJzdCBiZWZvcmUgY2xvc2luZy4gV2FpdGluZyBmb3IgY2xvc2Ugd2lsbCBoYXBwZW4gaW4gdGhlIGZpbmFsbHkgYmxvY2tcbiAgY29uc3Qgc2NyaXB0ID0gYHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge3dpbmRvdy5vcGVuKCcnLCdfc2VsZicpLmNsb3NlKCk7fSwgMCk7IHJldHVybiB0cnVlO2A7XG4gIGNvbnN0IGNvbnRleHQgPSB0aGlzLmN1ckNvbnRleHQ7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgW11dLCB0cnVlKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyB3YWl0IGZvciB0aGUgd2luZG93IHRvIHN1Y2Nlc3NmdWxseSBjaGFuZ2UuLi5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiB0aGlzLmN1ckNvbnRleHQgIT09IGNvbnRleHQsIHtcbiAgICAgICAgd2FpdE1zOiBDTE9TRV9XSU5ET1dfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogQ0xPU0VfV0lORE9XX0lOVEVSVkFMLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnQ29udGV4dCBoYXMgbm90IHlldCBiZWVuIGNoYW5nZWQgYWZ0ZXIgY2xvc2luZyB3aW5kb3cuIENvbnRpbnVpbmcuLi4nKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGVlcExpbmtPcHRpb25zXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdXJsIFRoZSBVUkwgdG8gYmUgb3BlbmVkLiBUaGlzIHBhcmFtZXRlciBpcyBtYW5hZGF0b3J5XG4gKiBAcHJvcGVydHkge3N0cmluZz99IGJ1bmRsZUlkIFRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBhbiBhcHBsaWNhdGlvbiB0byBvcGVuIHRoZVxuICogZ2l2ZW4gdXJsIHdpdGguIElmIG5vdCBwcm92aWRlZCB0aGVuIHRoZSBkZWZhdWx0IGFwcGxpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gdXJsIHNjaGVtZVxuICogaXMgZ29pbmcgdG8gYmUgdXNlZC5cbiAqL1xuXG4vKipcbiAqIE9wZW5zIHRoZSBnaXZlbiBVUkwgd2l0aCB0aGUgZGVmYXVsdCBvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb25cbiAqXG4gKiBAcGFyYW0ge0RlZXBMaW5rT3B0aW9uc30gb3B0c1xuICovXG5jb21tYW5kcy5tb2JpbGVEZWVwTGluayA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZURlZXBMaW5rIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHVybCxcbiAgICBidW5kbGVJZCxcbiAgfSA9IHJlcXVpcmVBcmdzKCd1cmwnLCBvcHRzKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy91cmwnLCAnUE9TVCcsIHtcbiAgICB1cmwsXG4gICAgYnVuZGxlSWQsXG4gIH0pO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFFBQVEsR0FBRyxDQUFDLENBQUM7RUFBRUMsT0FBTyxHQUFHLENBQUMsQ0FBQztFQUFFQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQUM7QUFBQTtBQUdqRCxNQUFNQyxvQkFBb0IsR0FBRyxJQUFJO0FBQ2pDLE1BQU1DLHFCQUFxQixHQUFHLEdBQUc7QUFFakNKLFFBQVEsQ0FBQ0ssSUFBSSxHQUFHLGVBQWVBLElBQUksR0FBSTtFQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDQyxZQUFZLEVBQUUsRUFBRTtJQUN4QixNQUFNLElBQUksQ0FBQ0MsVUFBVSxFQUFFO0VBQ3pCLENBQUMsTUFBTTtJQUNMLE1BQU0sSUFBSSxDQUFDQyxZQUFZLENBQUMsTUFBTSxDQUFDO0VBQ2pDO0FBQ0YsQ0FBQztBQUVEUCxPQUFPLENBQUNNLFVBQVUsR0FBRyxlQUFlQSxVQUFVLEdBQUk7RUFDaEQsSUFBSTtJQUNGLElBQUlFLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQ0MsMkJBQTJCLENBQUMsWUFBWSxFQUFFLDhCQUE4QixFQUFFLEtBQUssQ0FBQztJQUN4RyxJQUFJQyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUNELDJCQUEyQixDQUFDLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUVELE1BQU0sQ0FBQztJQUN6RyxJQUFJRSxPQUFPLENBQUNDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDeEIsTUFBTSxJQUFJQyxLQUFLLENBQUMsb0NBQW9DLENBQUM7SUFDdkQ7SUFFQSxJQUFJQyxVQUFVLEdBQUdDLGVBQUMsQ0FBQ0MsTUFBTSxDQUFDTCxPQUFPLEVBQUdNLEtBQUssSUFBS0EsS0FBSyxDQUFDQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUlKLFVBQVUsRUFBRTtNQUNkLElBQUksQ0FBQ0ssR0FBRyxDQUFDQyxLQUFLLENBQUUsK0NBQThDLENBQUM7SUFDakUsQ0FBQyxNQUFNO01BQ0wsSUFBSSxDQUFDRCxHQUFHLENBQUNDLEtBQUssQ0FBRSxxRUFBb0UsQ0FBQztNQUNyRk4sVUFBVSxHQUFHSCxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pCO0lBQ0EsTUFBTSxJQUFJLENBQUNVLFdBQVcsQ0FBQ1AsVUFBVSxDQUFDO0VBQ3BDLENBQUMsQ0FBQyxPQUFPUSxHQUFHLEVBQUU7SUFDWixJQUFJLENBQUNILEdBQUcsQ0FBQ0ksS0FBSyxDQUFFLGtEQUFpREQsR0FBRyxDQUFDRSxPQUFRLEVBQUMsQ0FBQztFQUNqRjtBQUNGLENBQUM7QUFFRHhCLFFBQVEsQ0FBQ3lCLE9BQU8sR0FBRyxlQUFlQSxPQUFPLEdBQUk7RUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQ25CLFlBQVksRUFBRSxFQUFFLENBQzFCO0VBQ0EsTUFBTSxJQUFJLENBQUNFLFlBQVksQ0FBQyxTQUFTLENBQUM7QUFDcEMsQ0FBQztBQUVEUixRQUFRLENBQUMwQixXQUFXLEdBQUcsZUFBZUEsV0FBVyxHQUFJO0VBQ25ELElBQUksQ0FBQyxJQUFJLENBQUNwQixZQUFZLEVBQUUsRUFBRTtJQUN4QixNQUFNLElBQUlxQixjQUFNLENBQUNDLG1CQUFtQixFQUFFO0VBQ3hDO0VBSUEsTUFBTUMsTUFBTSxHQUFJLDZFQUE0RTtFQUM1RixNQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxVQUFVO0VBQy9CLElBQUk7SUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQ0gsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztFQUNyRSxDQUFDLFNBQVM7SUFFUixJQUFJO01BQ0YsTUFBTSxJQUFBSSwwQkFBZ0IsRUFBQyxNQUFNLElBQUksQ0FBQ0YsVUFBVSxLQUFLRCxPQUFPLEVBQUU7UUFDeERJLE1BQU0sRUFBRS9CLG9CQUFvQjtRQUM1QmdDLFVBQVUsRUFBRS9CO01BQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLE9BQU9nQyxHQUFHLEVBQUU7TUFDWixJQUFJLENBQUNqQixHQUFHLENBQUNDLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQztJQUN4RjtFQUNGO0FBQ0YsQ0FBQztBQWVEcEIsUUFBUSxDQUFDcUMsY0FBYyxHQUFHLGVBQWVBLGNBQWMsQ0FBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ2xFLE1BQU07SUFDSkMsR0FBRztJQUNIQztFQUNGLENBQUMsR0FBRyxJQUFBQyxrQkFBVyxFQUFDLEtBQUssRUFBRUgsSUFBSSxDQUFDO0VBRTVCLE9BQU8sTUFBTSxJQUFJLENBQUNJLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFO0lBQzdDSCxHQUFHO0lBQ0hDO0VBQ0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVERyxNQUFNLENBQUNDLE1BQU0sQ0FBQzFDLFVBQVUsRUFBRUYsUUFBUSxFQUFFQyxPQUFPLENBQUM7QUFBQyxlQUU5QkMsVUFBVTtBQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","names":["commands","helpers","extensions","CLOSE_WINDOW_TIMEOUT","CLOSE_WINDOW_INTERVAL","back","isWebContext","nativeBack","mobileWebNav","navBar","findNativeElementOrElements","buttons","length","Error","backButton","_","filter","value","label","log","debug","nativeClick","err","error","message","forward","closeWindow","errors","NotImplementedError","script","context","curContext","executeAtom","waitForCondition","waitMs","intervalMs","ign","Object","assign"],"sources":["../../../lib/commands/navigation.js"],"sourcesContent":["import { errors } from 'appium/driver';\nimport _ from 'lodash';\nimport { waitForCondition } from 'asyncbox';\n\nlet commands = {}, helpers = {}, extensions = {};\n\n// these two constitute the wait after closing a window\nconst CLOSE_WINDOW_TIMEOUT = 5000;\nconst CLOSE_WINDOW_INTERVAL = 100;\n\ncommands.back = async function back () {\n if (!this.isWebContext()) {\n await this.nativeBack();\n } else {\n await this.mobileWebNav('back');\n }\n};\n\nhelpers.nativeBack = async function nativeBack () {\n try {\n let navBar = await this.findNativeElementOrElements('class name', 'XCUIElementTypeNavigationBar', false);\n let buttons = await this.findNativeElementOrElements('class name', 'XCUIElementTypeButton', true, navBar);\n if (buttons.length === 0) {\n throw new Error('No buttons found in navigation bar');\n }\n\n let backButton = _.filter(buttons, (value) => value.label === 'Back')[0];\n if (backButton) {\n this.log.debug(`Found navigation bar 'back' button. Clicking.`);\n } else {\n this.log.debug(`Unable to find 'Back' button. Trying first button in navigation bar`);\n backButton = buttons[0];\n }\n await this.nativeClick(backButton);\n } catch (err) {\n this.log.error(`Unable to find navigation bar and back button: ${err.message}`);\n }\n};\n\ncommands.forward = async function forward () {\n if (!this.isWebContext()) {\n }\n await this.mobileWebNav('forward');\n};\n\ncommands.closeWindow = async function closeWindow () {\n if (!this.isWebContext()) {\n throw new errors.NotImplementedError();\n }\n\n // since the window will be closed and the execution context gone, return\n // first before closing. Waiting for close will happen in the finally block\n const script = `setTimeout(function () {window.open('','_self').close();}, 0); return true;`;\n const context = this.curContext;\n try {\n return await this.executeAtom('execute_script', [script, []], true);\n } finally {\n // wait for the window to successfully change...\n try {\n await waitForCondition(() => this.curContext !== context, {\n waitMs: CLOSE_WINDOW_TIMEOUT,\n intervalMs: CLOSE_WINDOW_INTERVAL,\n });\n } catch (ign) {\n this.log.debug('Context has not yet been changed after closing window. Continuing...');\n }\n }\n};\n\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAEA,IAAIA,QAAQ,GAAG,CAAC,CAAC;EAAEC,OAAO,GAAG,CAAC,CAAC;EAAEC,UAAU,GAAG,CAAC,CAAC;AAAC;AAAA;AAGjD,MAAMC,oBAAoB,GAAG,IAAI;AACjC,MAAMC,qBAAqB,GAAG,GAAG;AAEjCJ,QAAQ,CAACK,IAAI,GAAG,eAAeA,IAAI,GAAI;EACrC,IAAI,CAAC,IAAI,CAACC,YAAY,EAAE,EAAE;IACxB,MAAM,IAAI,CAACC,UAAU,EAAE;EACzB,CAAC,MAAM;IACL,MAAM,IAAI,CAACC,YAAY,CAAC,MAAM,CAAC;EACjC;AACF,CAAC;AAEDP,OAAO,CAACM,UAAU,GAAG,eAAeA,UAAU,GAAI;EAChD,IAAI;IACF,IAAIE,MAAM,GAAG,MAAM,IAAI,CAACC,2BAA2B,CAAC,YAAY,EAAE,8BAA8B,EAAE,KAAK,CAAC;IACxG,IAAIC,OAAO,GAAG,MAAM,IAAI,CAACD,2BAA2B,CAAC,YAAY,EAAE,uBAAuB,EAAE,IAAI,EAAED,MAAM,CAAC;IACzG,IAAIE,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;IACvD;IAEA,IAAIC,UAAU,GAAGC,eAAC,CAACC,MAAM,CAACL,OAAO,EAAGM,KAAK,IAAKA,KAAK,CAACC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,IAAIJ,UAAU,EAAE;MACd,IAAI,CAACK,GAAG,CAACC,KAAK,CAAE,+CAA8C,CAAC;IACjE,CAAC,MAAM;MACL,IAAI,CAACD,GAAG,CAACC,KAAK,CAAE,qEAAoE,CAAC;MACrFN,UAAU,GAAGH,OAAO,CAAC,CAAC,CAAC;IACzB;IACA,MAAM,IAAI,CAACU,WAAW,CAACP,UAAU,CAAC;EACpC,CAAC,CAAC,OAAOQ,GAAG,EAAE;IACZ,IAAI,CAACH,GAAG,CAACI,KAAK,CAAE,kDAAiDD,GAAG,CAACE,OAAQ,EAAC,CAAC;EACjF;AACF,CAAC;AAEDxB,QAAQ,CAACyB,OAAO,GAAG,eAAeA,OAAO,GAAI;EAC3C,IAAI,CAAC,IAAI,CAACnB,YAAY,EAAE,EAAE,CAC1B;EACA,MAAM,IAAI,CAACE,YAAY,CAAC,SAAS,CAAC;AACpC,CAAC;AAEDR,QAAQ,CAAC0B,WAAW,GAAG,eAAeA,WAAW,GAAI;EACnD,IAAI,CAAC,IAAI,CAACpB,YAAY,EAAE,EAAE;IACxB,MAAM,IAAIqB,cAAM,CAACC,mBAAmB,EAAE;EACxC;EAIA,MAAMC,MAAM,GAAI,6EAA4E;EAC5F,MAAMC,OAAO,GAAG,IAAI,CAACC,UAAU;EAC/B,IAAI;IACF,OAAO,MAAM,IAAI,CAACC,WAAW,CAAC,gBAAgB,EAAE,CAACH,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;EACrE,CAAC,SAAS;IAER,IAAI;MACF,MAAM,IAAAI,0BAAgB,EAAC,MAAM,IAAI,CAACF,UAAU,KAAKD,OAAO,EAAE;QACxDI,MAAM,EAAE/B,oBAAoB;QAC5BgC,UAAU,EAAE/B;MACd,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOgC,GAAG,EAAE;MACZ,IAAI,CAACjB,GAAG,CAACC,KAAK,CAAC,sEAAsE,CAAC;IACxF;EACF;AACF,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.js","names":["commands","helpers","extensions","CLOSE_WINDOW_TIMEOUT","CLOSE_WINDOW_INTERVAL","back","isWebContext","nativeBack","mobileWebNav","navBar","findNativeElementOrElements","buttons","length","Error","backButton","_","filter","value","label","log","debug","nativeClick","err","error","message","forward","closeWindow","errors","NotImplementedError","script","context","curContext","executeAtom","waitForCondition","waitMs","intervalMs","ign","mobileDeepLink","opts","url","bundleId","requireArgs","proxyCommand","Object","assign"],"sources":["../../../lib/commands/navigation.js"],"sourcesContent":["import { errors } from 'appium/driver';\nimport _ from 'lodash';\nimport { waitForCondition } from 'asyncbox';\nimport { requireArgs } from '../utils';\n\nlet commands = {}, helpers = {}, extensions = {};\n\n// these two constitute the wait after closing a window\nconst CLOSE_WINDOW_TIMEOUT = 5000;\nconst CLOSE_WINDOW_INTERVAL = 100;\n\ncommands.back = async function back () {\n if (!this.isWebContext()) {\n await this.nativeBack();\n } else {\n await this.mobileWebNav('back');\n }\n};\n\nhelpers.nativeBack = async function nativeBack () {\n try {\n let navBar = await this.findNativeElementOrElements('class name', 'XCUIElementTypeNavigationBar', false);\n let buttons = await this.findNativeElementOrElements('class name', 'XCUIElementTypeButton', true, navBar);\n if (buttons.length === 0) {\n throw new Error('No buttons found in navigation bar');\n }\n\n let backButton = _.filter(buttons, (value) => value.label === 'Back')[0];\n if (backButton) {\n this.log.debug(`Found navigation bar 'back' button. Clicking.`);\n } else {\n this.log.debug(`Unable to find 'Back' button. Trying first button in navigation bar`);\n backButton = buttons[0];\n }\n await this.nativeClick(backButton);\n } catch (err) {\n this.log.error(`Unable to find navigation bar and back button: ${err.message}`);\n }\n};\n\ncommands.forward = async function forward () {\n if (!this.isWebContext()) {\n }\n await this.mobileWebNav('forward');\n};\n\ncommands.closeWindow = async function closeWindow () {\n if (!this.isWebContext()) {\n throw new errors.NotImplementedError();\n }\n\n // since the window will be closed and the execution context gone, return\n // first before closing. Waiting for close will happen in the finally block\n const script = `setTimeout(function () {window.open('','_self').close();}, 0); return true;`;\n const context = this.curContext;\n try {\n return await this.executeAtom('execute_script', [script, []], true);\n } finally {\n // wait for the window to successfully change...\n try {\n await waitForCondition(() => this.curContext !== context, {\n waitMs: CLOSE_WINDOW_TIMEOUT,\n intervalMs: CLOSE_WINDOW_INTERVAL,\n });\n } catch (ign) {\n this.log.debug('Context has not yet been changed after closing window. Continuing...');\n }\n }\n};\n\n/**\n * @typedef {Object} DeepLinkOptions\n * @property {string} url The URL to be opened. This parameter is manadatory\n * @property {string?} bundleId The bundle identifier of an application to open the\n * given url with. If not provided then the default application for the given url scheme\n * is going to be used.\n */\n\n/**\n * Opens the given URL with the default or the given application\n *\n * @param {DeepLinkOptions} opts\n */\ncommands.mobileDeepLink = async function mobileDeepLink (opts = {}) {\n const {\n url,\n bundleId,\n } = requireArgs('url', opts);\n\n return await this.proxyCommand('/url', 'POST', {\n url,\n bundleId,\n });\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}
|
package/lib/commands/execute.js
CHANGED
|
@@ -168,6 +168,8 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
|
|
|
168
168
|
disableConditionInducer: 'mobileDisableConditionInducer',
|
|
169
169
|
|
|
170
170
|
updateSafariPreferences: 'mobileUpdateSafariPreferences',
|
|
171
|
+
|
|
172
|
+
deepLink: 'mobileDeepLink',
|
|
171
173
|
};
|
|
172
174
|
|
|
173
175
|
if (!_.has(commandMap, mobileCommand)) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { errors } from 'appium/driver';
|
|
2
2
|
import _ from 'lodash';
|
|
3
3
|
import { waitForCondition } from 'asyncbox';
|
|
4
|
+
import { requireArgs } from '../utils';
|
|
4
5
|
|
|
5
6
|
let commands = {}, helpers = {}, extensions = {};
|
|
6
7
|
|
|
@@ -67,6 +68,30 @@ commands.closeWindow = async function closeWindow () {
|
|
|
67
68
|
}
|
|
68
69
|
};
|
|
69
70
|
|
|
71
|
+
/**
|
|
72
|
+
* @typedef {Object} DeepLinkOptions
|
|
73
|
+
* @property {string} url The URL to be opened. This parameter is manadatory
|
|
74
|
+
* @property {string?} bundleId The bundle identifier of an application to open the
|
|
75
|
+
* given url with. If not provided then the default application for the given url scheme
|
|
76
|
+
* is going to be used.
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Opens the given URL with the default or the given application
|
|
81
|
+
*
|
|
82
|
+
* @param {DeepLinkOptions} opts
|
|
83
|
+
*/
|
|
84
|
+
commands.mobileDeepLink = async function mobileDeepLink (opts = {}) {
|
|
85
|
+
const {
|
|
86
|
+
url,
|
|
87
|
+
bundleId,
|
|
88
|
+
} = requireArgs('url', opts);
|
|
89
|
+
|
|
90
|
+
return await this.proxyCommand('/url', 'POST', {
|
|
91
|
+
url,
|
|
92
|
+
bundleId,
|
|
93
|
+
});
|
|
94
|
+
};
|
|
70
95
|
|
|
71
96
|
Object.assign(extensions, commands, helpers);
|
|
72
97
|
export { commands, helpers };
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-xcuitest-driver",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.17.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-xcuitest-driver",
|
|
9
|
-
"version": "4.
|
|
9
|
+
"version": "4.17.0",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@babel/runtime": "^7.0.0",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"appium-ios-device": "^2.4.0",
|
|
16
16
|
"appium-ios-simulator": "^5.0.5",
|
|
17
17
|
"appium-remote-debugger": "^9.1.1",
|
|
18
|
-
"appium-webdriveragent": "^4.
|
|
18
|
+
"appium-webdriveragent": "^4.12.0",
|
|
19
19
|
"appium-xcode": "^5.0.0",
|
|
20
20
|
"async-lock": "^1.0.0",
|
|
21
21
|
"asyncbox": "^2.3.1",
|
|
@@ -1172,7 +1172,7 @@
|
|
|
1172
1172
|
}
|
|
1173
1173
|
},
|
|
1174
1174
|
"node_modules/appium-webdriveragent": {
|
|
1175
|
-
"version": "4.
|
|
1175
|
+
"version": "4.12.0",
|
|
1176
1176
|
"license": "Apache-2.0",
|
|
1177
1177
|
"dependencies": {
|
|
1178
1178
|
"@appium/base-driver": "^9.0.0",
|
|
@@ -2773,7 +2773,7 @@
|
|
|
2773
2773
|
}
|
|
2774
2774
|
},
|
|
2775
2775
|
"node_modules/lru-cache": {
|
|
2776
|
-
"version": "7.16.
|
|
2776
|
+
"version": "7.16.1",
|
|
2777
2777
|
"license": "ISC",
|
|
2778
2778
|
"engines": {
|
|
2779
2779
|
"node": ">=12"
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"xcuitest",
|
|
9
9
|
"xctest"
|
|
10
10
|
],
|
|
11
|
-
"version": "4.
|
|
11
|
+
"version": "4.17.0",
|
|
12
12
|
"author": "Appium Contributors",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"repository": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"appium-ios-device": "^2.4.0",
|
|
74
74
|
"appium-ios-simulator": "^5.0.5",
|
|
75
75
|
"appium-remote-debugger": "^9.1.1",
|
|
76
|
-
"appium-webdriveragent": "^4.
|
|
76
|
+
"appium-webdriveragent": "^4.12.0",
|
|
77
77
|
"appium-xcode": "^5.0.0",
|
|
78
78
|
"async-lock": "^1.0.0",
|
|
79
79
|
"asyncbox": "^2.3.1",
|