appium-xcuitest-driver 3.56.3 → 3.57.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.
@@ -9,8 +9,6 @@ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
12
- var _lodash = _interopRequireDefault(require("lodash"));
13
-
14
12
  var _xmldom = _interopRequireDefault(require("@xmldom/xmldom"));
15
13
 
16
14
  var _js2xmlparser = _interopRequireDefault(require("js2xmlparser2"));
@@ -20,7 +18,9 @@ let commands = {},
20
18
  extensions = {};
21
19
  exports.helpers = helpers;
22
20
  exports.commands = commands;
23
- const APPIUM_SRC_XML = '<?xml version="1.0" encoding="UTF-8"?><AppiumAUT/>';
21
+ const APPIUM_AUT_TAG = 'AppiumAUT';
22
+ const APPIUM_SRC_XML = `<?xml version="1.0" encoding="UTF-8"?><${APPIUM_AUT_TAG}/>`;
23
+ const APPIUM_TAG_PATTERN = new RegExp(`</?${APPIUM_AUT_TAG}/?>`);
24
24
 
25
25
  commands.getPageSource = async function getPageSource() {
26
26
  if (this.isWebContext()) {
@@ -39,7 +39,12 @@ commands.getPageSource = async function getPageSource() {
39
39
  };
40
40
 
41
41
  helpers.getNativePageSource = async function getNativePageSource() {
42
- const srcTree = await this.proxyCommand('/source', 'GET');
42
+ const srcTree = await this.proxyCommand(`/source?scope=${APPIUM_AUT_TAG}`, 'GET');
43
+
44
+ if (APPIUM_TAG_PATTERN.test(srcTree)) {
45
+ return srcTree;
46
+ }
47
+
43
48
  const parser = new _xmldom.default.DOMParser();
44
49
  const tree = parser.parseFromString(srcTree);
45
50
  const doc = parser.parseFromString(APPIUM_SRC_XML);
@@ -48,12 +53,9 @@ helpers.getNativePageSource = async function getNativePageSource() {
48
53
  };
49
54
 
50
55
  helpers.mobileGetSource = async function mobileGetSource(opts = {}) {
51
- if (!_lodash.default.isString(opts.format)) {
52
- return await this.getNativePageSource();
53
- }
54
-
55
56
  const paramsMap = {
56
- format: opts.format
57
+ format: opts.format || 'xml',
58
+ scope: APPIUM_AUT_TAG
57
59
  };
58
60
 
59
61
  if (opts.excludedAttributes) {
@@ -126,4 +128,4 @@ var _default = extensions;
126
128
  exports.default = _default;require('source-map-support').install();
127
129
 
128
130
 
129
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zb3VyY2UuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsIkFQUElVTV9TUkNfWE1MIiwiZ2V0UGFnZVNvdXJjZSIsImlzV2ViQ29udGV4dCIsInNjcmlwdCIsImV4ZWN1dGVBdG9tIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInVzZUpTT05Tb3VyY2UiLCJzcmNUcmVlIiwibW9iaWxlR2V0U291cmNlIiwiZm9ybWF0IiwiZ2V0U291cmNlWG1sIiwiZ2V0VHJlZUZvclhNTCIsImdldE5hdGl2ZVBhZ2VTb3VyY2UiLCJwcm94eUNvbW1hbmQiLCJwYXJzZXIiLCJ4bWxkb20iLCJET01QYXJzZXIiLCJ0cmVlIiwicGFyc2VGcm9tU3RyaW5nIiwiZG9jIiwiZG9jdW1lbnRFbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJvcHRzIiwiXyIsImlzU3RyaW5nIiwicGFyYW1zTWFwIiwiZXhjbHVkZWRBdHRyaWJ1dGVzIiwiZXhjbHVkZWRfYXR0cmlidXRlcyIsInF1ZXJ5IiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsImsiLCJ2IiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsImdldFRyZWUiLCJlbGVtZW50IiwiZWxlbWVudEluZGV4IiwicGFyZW50UGF0aCIsImN1clBhdGgiLCJyZWN0Iiwic3VidHJlZSIsInR5cGUiLCJlbmFibGVkIiwicGFyc2VJbnQiLCJpc0VuYWJsZWQiLCJ2aXNpYmxlIiwiaXNWaXNpYmxlIiwieCIsInkiLCJ3aWR0aCIsImhlaWdodCIsIm5hbWUiLCJsYWJlbCIsInZhbHVlIiwiaSIsImNoaWxkcmVuIiwibGVuZ3RoIiwicHVzaCIsImpzb25Tb3VyY2UiLCJ3cmFwQXJyYXkiLCJlbGVtZW50TmFtZSIsImRlY2xhcmF0aW9uIiwiaW5jbHVkZSIsInByZXR0eVByaW50aW5nIiwiaW5kZW50U3RyaW5nIiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7OztBQUVBLE1BQU1DLGNBQWMsR0FBRyxvREFBdkI7O0FBR0FILFFBQVEsQ0FBQ0ksYUFBVCxHQUF5QixlQUFlQSxhQUFmLEdBQWdDO0FBQ3ZELE1BQUksS0FBS0MsWUFBTCxFQUFKLEVBQXlCO0FBQ3ZCLFVBQU1DLE1BQU0sR0FBRywyQ0FBZjtBQUNBLFdBQU8sTUFBTSxLQUFLQyxXQUFMLENBQWlCLGdCQUFqQixFQUFtQyxDQUFDRCxNQUFELEVBQVMsRUFBVCxDQUFuQyxDQUFiO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDLE1BQU0sS0FBS0UsUUFBTCxDQUFjQyxXQUFkLEVBQVAsRUFBb0NDLGFBQXhDLEVBQXVEO0FBQ3JELFVBQU1DLE9BQU8sR0FBRyxNQUFNLEtBQUtDLGVBQUwsQ0FBcUI7QUFBQ0MsTUFBQUEsTUFBTSxFQUFFO0FBQVQsS0FBckIsQ0FBdEI7QUFDQSxXQUFPQyxZQUFZLENBQUNDLGFBQWEsQ0FBQ0osT0FBRCxDQUFkLENBQW5CO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNLEtBQUtLLG1CQUFMLEVBQWI7QUFDRCxDQVhEOztBQWFBZixPQUFPLENBQUNlLG1CQUFSLEdBQThCLGVBQWVBLG1CQUFmLEdBQXNDO0FBQ2xFLFFBQU1MLE9BQU8sR0FBRyxNQUFNLEtBQUtNLFlBQUwsQ0FBa0IsU0FBbEIsRUFBNkIsS0FBN0IsQ0FBdEI7QUFDQSxRQUFNQyxNQUFNLEdBQUcsSUFBSUMsZ0JBQU9DLFNBQVgsRUFBZjtBQUNBLFFBQU1DLElBQUksR0FBR0gsTUFBTSxDQUFDSSxlQUFQLENBQXVCWCxPQUF2QixDQUFiO0FBQ0EsUUFBTVksR0FBRyxHQUFHTCxNQUFNLENBQUNJLGVBQVAsQ0FBdUJuQixjQUF2QixDQUFaO0FBQ0FvQixFQUFBQSxHQUFHLENBQUNDLGVBQUosQ0FBb0JDLFdBQXBCLENBQWdDSixJQUFJLENBQUNHLGVBQXJDO0FBQ0EsU0FBTyxJQUFJTCxnQkFBT08sYUFBWCxHQUEyQkMsaUJBQTNCLENBQTZDSixHQUE3QyxDQUFQO0FBQ0QsQ0FQRDs7QUFTQXRCLE9BQU8sQ0FBQ1csZUFBUixHQUEwQixlQUFlQSxlQUFmLENBQWdDZ0IsSUFBSSxHQUFHLEVBQXZDLEVBQTJDO0FBQ25FLE1BQUksQ0FBQ0MsZ0JBQUVDLFFBQUYsQ0FBV0YsSUFBSSxDQUFDZixNQUFoQixDQUFMLEVBQThCO0FBQzVCLFdBQU8sTUFBTSxLQUFLRyxtQkFBTCxFQUFiO0FBQ0Q7O0FBQ0QsUUFBTWUsU0FBUyxHQUFHO0FBQ2hCbEIsSUFBQUEsTUFBTSxFQUFFZSxJQUFJLENBQUNmO0FBREcsR0FBbEI7O0FBR0EsTUFBSWUsSUFBSSxDQUFDSSxrQkFBVCxFQUE2QjtBQUMzQkQsSUFBQUEsU0FBUyxDQUFDRSxtQkFBVixHQUFnQ0wsSUFBSSxDQUFDSSxrQkFBckM7QUFDRDs7QUFDRCxRQUFNRSxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlTCxTQUFmLEVBQ1hNLEdBRFcsQ0FDUCxDQUFDLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFELEtBQWEsR0FBRUMsa0JBQWtCLENBQUNGLENBQUQsQ0FBSSxJQUFHRSxrQkFBa0IsQ0FBQ0QsQ0FBRCxDQUFJLEVBRHZELEVBRVhFLElBRlcsQ0FFTixHQUZNLENBQWQ7QUFHQSxTQUFPLE1BQU0sS0FBS3hCLFlBQUwsQ0FBbUIsV0FBVWlCLEtBQU0sRUFBbkMsRUFBc0MsS0FBdEMsQ0FBYjtBQUNELENBZEQ7O0FBc0NBLFNBQVNuQixhQUFULENBQXdCSixPQUF4QixFQUFpQztBQUMvQixXQUFTK0IsT0FBVCxDQUFrQkMsT0FBbEIsRUFBMkJDLFlBQTNCLEVBQXlDQyxVQUF6QyxFQUFxRDtBQUNuRCxRQUFJQyxPQUFPLEdBQUksR0FBRUQsVUFBVyxJQUFHRCxZQUFhLEVBQTVDO0FBQ0EsUUFBSUcsSUFBSSxHQUFHSixPQUFPLENBQUNJLElBQVIsSUFBZ0IsRUFBM0I7QUFDQSxRQUFJQyxPQUFPLEdBQUc7QUFDWixXQUFLO0FBQ0hDLFFBQUFBLElBQUksRUFBRyxrQkFBaUJOLE9BQU8sQ0FBQ00sSUFBSyxFQURsQztBQUVIQyxRQUFBQSxPQUFPLEVBQUVDLFFBQVEsQ0FBQ1IsT0FBTyxDQUFDUyxTQUFULEVBQW9CLEVBQXBCLENBQVIsS0FBb0MsQ0FGMUM7QUFHSEMsUUFBQUEsT0FBTyxFQUFFRixRQUFRLENBQUNSLE9BQU8sQ0FBQ1csU0FBVCxFQUFvQixFQUFwQixDQUFSLEtBQW9DLENBSDFDO0FBSUhDLFFBQUFBLENBQUMsRUFBRVIsSUFBSSxDQUFDUSxDQUpMO0FBS0hDLFFBQUFBLENBQUMsRUFBRVQsSUFBSSxDQUFDUyxDQUxMO0FBTUhDLFFBQUFBLEtBQUssRUFBRVYsSUFBSSxDQUFDVSxLQU5UO0FBT0hDLFFBQUFBLE1BQU0sRUFBRVgsSUFBSSxDQUFDVztBQVBWLE9BRE87QUFVWixXQUFLO0FBVk8sS0FBZDs7QUFZQSxRQUFJZixPQUFPLENBQUNnQixJQUFSLEtBQWlCLElBQXJCLEVBQTJCO0FBQ3pCWCxNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFXLElBQWIsR0FBb0JoQixPQUFPLENBQUNnQixJQUE1QjtBQUNEOztBQUNELFFBQUloQixPQUFPLENBQUNpQixLQUFSLEtBQWtCLElBQXRCLEVBQTRCO0FBQzFCWixNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFZLEtBQWIsR0FBcUJqQixPQUFPLENBQUNpQixLQUE3QjtBQUNEOztBQUNELFFBQUlqQixPQUFPLENBQUNrQixLQUFSLEtBQWtCLElBQXRCLEVBQTRCO0FBQzFCYixNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFhLEtBQWIsR0FBcUJsQixPQUFPLENBQUNrQixLQUE3QjtBQUNEOztBQUNELFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBRyxDQUFDbkIsT0FBTyxDQUFDb0IsUUFBUixJQUFvQixFQUFyQixFQUF5QkMsTUFBN0MsRUFBcURGLENBQUMsRUFBdEQsRUFBMEQ7QUFDeERkLE1BQUFBLE9BQU8sQ0FBQyxHQUFELENBQVAsQ0FBYWlCLElBQWIsQ0FBa0J2QixPQUFPLENBQUNDLE9BQU8sQ0FBQ29CLFFBQVIsQ0FBaUJELENBQWpCLENBQUQsRUFBc0JBLENBQXRCLEVBQXlCaEIsT0FBekIsQ0FBekI7QUFDRDs7QUFDRCxXQUFPO0FBQ0wsT0FBRSxrQkFBaUJILE9BQU8sQ0FBQ00sSUFBSyxFQUFoQyxHQUFvQ0Q7QUFEL0IsS0FBUDtBQUdEOztBQUNELE1BQUkzQixJQUFJLEdBQUdxQixPQUFPLENBQUMvQixPQUFELEVBQVUsQ0FBVixFQUFhLEVBQWIsQ0FBbEI7QUFDQSxTQUFPVSxJQUFQO0FBQ0Q7O0FBRUQsU0FBU1AsWUFBVCxDQUF1Qm9ELFVBQXZCLEVBQW1DO0FBQ2pDLFNBQU8sMkJBQU8sV0FBUCxFQUFvQkEsVUFBcEIsRUFBZ0M7QUFDckNDLElBQUFBLFNBQVMsRUFBRTtBQUFDakIsTUFBQUEsT0FBTyxFQUFFLEtBQVY7QUFBaUJrQixNQUFBQSxXQUFXLEVBQUU7QUFBOUIsS0FEMEI7QUFFckNDLElBQUFBLFdBQVcsRUFBRTtBQUFDQyxNQUFBQSxPQUFPLEVBQUU7QUFBVixLQUZ3QjtBQUdyQ0MsSUFBQUEsY0FBYyxFQUFFO0FBQUNDLE1BQUFBLFlBQVksRUFBRTtBQUFmO0FBSHFCLEdBQWhDLENBQVA7QUFLRDs7QUFHRHJDLE1BQU0sQ0FBQ3NDLE1BQVAsQ0FBY3ZFLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB4bWxkb20gZnJvbSAnQHhtbGRvbS94bWxkb20nO1xuaW1wb3J0IGpzMnhtbCBmcm9tICdqczJ4bWxwYXJzZXIyJztcblxuXG5sZXQgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmNvbnN0IEFQUElVTV9TUkNfWE1MID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PjxBcHBpdW1BVVQvPic7XG5cblxuY29tbWFuZHMuZ2V0UGFnZVNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFBhZ2VTb3VyY2UgKCkge1xuICBpZiAodGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIGNvbnN0IHNjcmlwdCA9ICdyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTCc7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgW11dKTtcbiAgfVxuXG4gIGlmICgoYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpKS51c2VKU09OU291cmNlKSB7XG4gICAgY29uc3Qgc3JjVHJlZSA9IGF3YWl0IHRoaXMubW9iaWxlR2V0U291cmNlKHtmb3JtYXQ6ICdqc29uJ30pO1xuICAgIHJldHVybiBnZXRTb3VyY2VYbWwoZ2V0VHJlZUZvclhNTChzcmNUcmVlKSk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0TmF0aXZlUGFnZVNvdXJjZSgpO1xufTtcblxuaGVscGVycy5nZXROYXRpdmVQYWdlU291cmNlID0gYXN5bmMgZnVuY3Rpb24gZ2V0TmF0aXZlUGFnZVNvdXJjZSAoKSB7XG4gIGNvbnN0IHNyY1RyZWUgPSBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3NvdXJjZScsICdHRVQnKTtcbiAgY29uc3QgcGFyc2VyID0gbmV3IHhtbGRvbS5ET01QYXJzZXIoKTtcbiAgY29uc3QgdHJlZSA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoc3JjVHJlZSk7XG4gIGNvbnN0IGRvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoQVBQSVVNX1NSQ19YTUwpO1xuICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHRyZWUuZG9jdW1lbnRFbGVtZW50KTtcbiAgcmV0dXJuIG5ldyB4bWxkb20uWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvYyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZUdldFNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUdldFNvdXJjZSAob3B0cyA9IHt9KSB7XG4gIGlmICghXy5pc1N0cmluZyhvcHRzLmZvcm1hdCkpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXROYXRpdmVQYWdlU291cmNlKCk7XG4gIH1cbiAgY29uc3QgcGFyYW1zTWFwID0ge1xuICAgIGZvcm1hdDogb3B0cy5mb3JtYXQsXG4gIH07XG4gIGlmIChvcHRzLmV4Y2x1ZGVkQXR0cmlidXRlcykge1xuICAgIHBhcmFtc01hcC5leGNsdWRlZF9hdHRyaWJ1dGVzID0gb3B0cy5leGNsdWRlZEF0dHJpYnV0ZXM7XG4gIH1cbiAgY29uc3QgcXVlcnkgPSBPYmplY3QuZW50cmllcyhwYXJhbXNNYXApXG4gICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoayl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYpfWApXG4gICAgLmpvaW4oJyYnKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvc291cmNlPyR7cXVlcnl9YCwgJ0dFVCcpO1xufTtcblxuLyogV2lsbCBnZXQgSlNPTiBvZiB0aGUgZm9ybTpcbiAqICAgeyBpc0VuYWJsZWQ6ICcxJyxcbiAqICAgICBpc1Zpc2libGU6ICcxJyxcbiAqICAgICBmcmFtZTogJ3t7MCwgMH0sIHszNzUsIDY2N319JyxcbiAqICAgICBjaGlsZHJlbjpcbiAqICAgICAgWyB7IGlzRW5hYmxlZDogJzEnLFxuICogICAgICAgICAgaXNWaXNpYmxlOiAnMScsXG4gKiAgICAgICAgICBmcmFtZTogJ3t7MCwgMH0sIHszNzUsIDY2N319JyxcbiAqICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAqICAgICAgICAgIHJlY3Q6IHsgeDogMCwgeTogMCwgd2lkdGg6IDM3NSwgaGVpZ2h0OiA2NjcgfSxcbiAqICAgICAgICAgIHZhbHVlOiBudWxsLFxuICogICAgICAgICAgbGFiZWw6IG51bGwsXG4gKiAgICAgICAgICB0eXBlOiAnT3RoZXInLFxuICogICAgICAgICAgbmFtZTogbnVsbCxcbiAqICAgICAgICAgIHJhd0lkZW50aWZpZXI6IG51bGwgfSxcbiAqICAgICByZWN0OiB7IG9yaWdpbjogeyB4OiAwLCB5OiAwIH0sIHNpemU6IHsgd2lkdGg6IDM3NSwgaGVpZ2h0OiA2NjcgfSB9LFxuICogICAgIHZhbHVlOiBudWxsLFxuICogICAgIGxhYmVsOiAnVUlDYXRhbG9nJyxcbiAqICAgICB0eXBlOiAnQXBwbGljYXRpb24nLFxuICogICAgIG5hbWU6ICdVSUNhdGFsb2cnLFxuICogICAgIHJhd0lkZW50aWZpZXI6IG51bGwgfVxuICovXG5mdW5jdGlvbiBnZXRUcmVlRm9yWE1MIChzcmNUcmVlKSB7XG4gIGZ1bmN0aW9uIGdldFRyZWUgKGVsZW1lbnQsIGVsZW1lbnRJbmRleCwgcGFyZW50UGF0aCkge1xuICAgIGxldCBjdXJQYXRoID0gYCR7cGFyZW50UGF0aH0vJHtlbGVtZW50SW5kZXh9YDtcbiAgICBsZXQgcmVjdCA9IGVsZW1lbnQucmVjdCB8fCB7fTtcbiAgICBsZXQgc3VidHJlZSA9IHtcbiAgICAgICdAJzoge1xuICAgICAgICB0eXBlOiBgWENVSUVsZW1lbnRUeXBlJHtlbGVtZW50LnR5cGV9YCxcbiAgICAgICAgZW5hYmxlZDogcGFyc2VJbnQoZWxlbWVudC5pc0VuYWJsZWQsIDEwKSA9PT0gMSxcbiAgICAgICAgdmlzaWJsZTogcGFyc2VJbnQoZWxlbWVudC5pc1Zpc2libGUsIDEwKSA9PT0gMSxcbiAgICAgICAgeDogcmVjdC54LFxuICAgICAgICB5OiByZWN0LnksXG4gICAgICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgICAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0LFxuICAgICAgfSxcbiAgICAgICc+JzogW11cbiAgICB9O1xuICAgIGlmIChlbGVtZW50Lm5hbWUgIT09IG51bGwpIHtcbiAgICAgIHN1YnRyZWVbJ0AnXS5uYW1lID0gZWxlbWVudC5uYW1lO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5sYWJlbCAhPT0gbnVsbCkge1xuICAgICAgc3VidHJlZVsnQCddLmxhYmVsID0gZWxlbWVudC5sYWJlbDtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHN1YnRyZWVbJ0AnXS52YWx1ZSA9IGVsZW1lbnQudmFsdWU7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgKGVsZW1lbnQuY2hpbGRyZW4gfHwgW10pLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdWJ0cmVlWyc+J10ucHVzaChnZXRUcmVlKGVsZW1lbnQuY2hpbGRyZW5baV0sIGksIGN1clBhdGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIFtgWENVSUVsZW1lbnRUeXBlJHtlbGVtZW50LnR5cGV9YF06IHN1YnRyZWVcbiAgICB9O1xuICB9XG4gIGxldCB0cmVlID0gZ2V0VHJlZShzcmNUcmVlLCAwLCAnJyk7XG4gIHJldHVybiB0cmVlO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VYbWwgKGpzb25Tb3VyY2UpIHtcbiAgcmV0dXJuIGpzMnhtbCgnQXBwaXVtQVVUJywganNvblNvdXJjZSwge1xuICAgIHdyYXBBcnJheToge2VuYWJsZWQ6IGZhbHNlLCBlbGVtZW50TmFtZTogJ2VsZW1lbnQnfSxcbiAgICBkZWNsYXJhdGlvbjoge2luY2x1ZGU6IHRydWV9LFxuICAgIHByZXR0eVByaW50aW5nOiB7aW5kZW50U3RyaW5nOiAnICAnfVxuICB9KTtcbn1cblxuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvc291cmNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
131
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zb3VyY2UuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsIkFQUElVTV9BVVRfVEFHIiwiQVBQSVVNX1NSQ19YTUwiLCJBUFBJVU1fVEFHX1BBVFRFUk4iLCJSZWdFeHAiLCJnZXRQYWdlU291cmNlIiwiaXNXZWJDb250ZXh0Iiwic2NyaXB0IiwiZXhlY3V0ZUF0b20iLCJzZXR0aW5ncyIsImdldFNldHRpbmdzIiwidXNlSlNPTlNvdXJjZSIsInNyY1RyZWUiLCJtb2JpbGVHZXRTb3VyY2UiLCJmb3JtYXQiLCJnZXRTb3VyY2VYbWwiLCJnZXRUcmVlRm9yWE1MIiwiZ2V0TmF0aXZlUGFnZVNvdXJjZSIsInByb3h5Q29tbWFuZCIsInRlc3QiLCJwYXJzZXIiLCJ4bWxkb20iLCJET01QYXJzZXIiLCJ0cmVlIiwicGFyc2VGcm9tU3RyaW5nIiwiZG9jIiwiZG9jdW1lbnRFbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJvcHRzIiwicGFyYW1zTWFwIiwic2NvcGUiLCJleGNsdWRlZEF0dHJpYnV0ZXMiLCJleGNsdWRlZF9hdHRyaWJ1dGVzIiwicXVlcnkiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiayIsInYiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIiwiZ2V0VHJlZSIsImVsZW1lbnQiLCJlbGVtZW50SW5kZXgiLCJwYXJlbnRQYXRoIiwiY3VyUGF0aCIsInJlY3QiLCJzdWJ0cmVlIiwidHlwZSIsImVuYWJsZWQiLCJwYXJzZUludCIsImlzRW5hYmxlZCIsInZpc2libGUiLCJpc1Zpc2libGUiLCJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0IiwibmFtZSIsImxhYmVsIiwidmFsdWUiLCJpIiwiY2hpbGRyZW4iLCJsZW5ndGgiLCJwdXNoIiwianNvblNvdXJjZSIsIndyYXBBcnJheSIsImVsZW1lbnROYW1lIiwiZGVjbGFyYXRpb24iLCJpbmNsdWRlIiwicHJldHR5UHJpbnRpbmciLCJpbmRlbnRTdHJpbmciLCJhc3NpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0EsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7O0FBRUEsTUFBTUMsY0FBYyxHQUFHLFdBQXZCO0FBQ0EsTUFBTUMsY0FBYyxHQUFJLDBDQUF5Q0QsY0FBZSxJQUFoRjtBQUNBLE1BQU1FLGtCQUFrQixHQUFHLElBQUlDLE1BQUosQ0FBWSxNQUFLSCxjQUFlLEtBQWhDLENBQTNCOztBQUdBSCxRQUFRLENBQUNPLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixHQUFnQztBQUN2RCxNQUFJLEtBQUtDLFlBQUwsRUFBSixFQUF5QjtBQUN2QixVQUFNQyxNQUFNLEdBQUcsMkNBQWY7QUFDQSxXQUFPLE1BQU0sS0FBS0MsV0FBTCxDQUFpQixnQkFBakIsRUFBbUMsQ0FBQ0QsTUFBRCxFQUFTLEVBQVQsQ0FBbkMsQ0FBYjtBQUNEOztBQUVELE1BQUksQ0FBQyxNQUFNLEtBQUtFLFFBQUwsQ0FBY0MsV0FBZCxFQUFQLEVBQW9DQyxhQUF4QyxFQUF1RDtBQUNyRCxVQUFNQyxPQUFPLEdBQUcsTUFBTSxLQUFLQyxlQUFMLENBQXFCO0FBQUNDLE1BQUFBLE1BQU0sRUFBRTtBQUFULEtBQXJCLENBQXRCO0FBQ0EsV0FBT0MsWUFBWSxDQUFDQyxhQUFhLENBQUNKLE9BQUQsQ0FBZCxDQUFuQjtBQUNEOztBQUNELFNBQU8sTUFBTSxLQUFLSyxtQkFBTCxFQUFiO0FBQ0QsQ0FYRDs7QUFhQWxCLE9BQU8sQ0FBQ2tCLG1CQUFSLEdBQThCLGVBQWVBLG1CQUFmLEdBQXNDO0FBQ2xFLFFBQU1MLE9BQU8sR0FBRyxNQUFNLEtBQUtNLFlBQUwsQ0FBbUIsaUJBQWdCakIsY0FBZSxFQUFsRCxFQUFxRCxLQUFyRCxDQUF0Qjs7QUFDQSxNQUFJRSxrQkFBa0IsQ0FBQ2dCLElBQW5CLENBQXdCUCxPQUF4QixDQUFKLEVBQXNDO0FBQ3BDLFdBQU9BLE9BQVA7QUFDRDs7QUFJRCxRQUFNUSxNQUFNLEdBQUcsSUFBSUMsZ0JBQU9DLFNBQVgsRUFBZjtBQUNBLFFBQU1DLElBQUksR0FBR0gsTUFBTSxDQUFDSSxlQUFQLENBQXVCWixPQUF2QixDQUFiO0FBQ0EsUUFBTWEsR0FBRyxHQUFHTCxNQUFNLENBQUNJLGVBQVAsQ0FBdUJ0QixjQUF2QixDQUFaO0FBQ0F1QixFQUFBQSxHQUFHLENBQUNDLGVBQUosQ0FBb0JDLFdBQXBCLENBQWdDSixJQUFJLENBQUNHLGVBQXJDO0FBQ0EsU0FBTyxJQUFJTCxnQkFBT08sYUFBWCxHQUEyQkMsaUJBQTNCLENBQTZDSixHQUE3QyxDQUFQO0FBQ0QsQ0FiRDs7QUFlQTFCLE9BQU8sQ0FBQ2MsZUFBUixHQUEwQixlQUFlQSxlQUFmLENBQWdDaUIsSUFBSSxHQUFHLEVBQXZDLEVBQTJDO0FBQ25FLFFBQU1DLFNBQVMsR0FBRztBQUNoQmpCLElBQUFBLE1BQU0sRUFBRWdCLElBQUksQ0FBQ2hCLE1BQUwsSUFBZSxLQURQO0FBRWhCa0IsSUFBQUEsS0FBSyxFQUFFL0I7QUFGUyxHQUFsQjs7QUFJQSxNQUFJNkIsSUFBSSxDQUFDRyxrQkFBVCxFQUE2QjtBQUMzQkYsSUFBQUEsU0FBUyxDQUFDRyxtQkFBVixHQUFnQ0osSUFBSSxDQUFDRyxrQkFBckM7QUFDRDs7QUFDRCxRQUFNRSxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlTixTQUFmLEVBQ1hPLEdBRFcsQ0FDUCxDQUFDLENBQUNDLENBQUQsRUFBSUMsQ0FBSixDQUFELEtBQWEsR0FBRUMsa0JBQWtCLENBQUNGLENBQUQsQ0FBSSxJQUFHRSxrQkFBa0IsQ0FBQ0QsQ0FBRCxDQUFJLEVBRHZELEVBRVhFLElBRlcsQ0FFTixHQUZNLENBQWQ7QUFHQSxTQUFPLE1BQU0sS0FBS3hCLFlBQUwsQ0FBbUIsV0FBVWlCLEtBQU0sRUFBbkMsRUFBc0MsS0FBdEMsQ0FBYjtBQUNELENBWkQ7O0FBb0NBLFNBQVNuQixhQUFULENBQXdCSixPQUF4QixFQUFpQztBQUMvQixXQUFTK0IsT0FBVCxDQUFrQkMsT0FBbEIsRUFBMkJDLFlBQTNCLEVBQXlDQyxVQUF6QyxFQUFxRDtBQUNuRCxRQUFJQyxPQUFPLEdBQUksR0FBRUQsVUFBVyxJQUFHRCxZQUFhLEVBQTVDO0FBQ0EsUUFBSUcsSUFBSSxHQUFHSixPQUFPLENBQUNJLElBQVIsSUFBZ0IsRUFBM0I7QUFDQSxRQUFJQyxPQUFPLEdBQUc7QUFDWixXQUFLO0FBQ0hDLFFBQUFBLElBQUksRUFBRyxrQkFBaUJOLE9BQU8sQ0FBQ00sSUFBSyxFQURsQztBQUVIQyxRQUFBQSxPQUFPLEVBQUVDLFFBQVEsQ0FBQ1IsT0FBTyxDQUFDUyxTQUFULEVBQW9CLEVBQXBCLENBQVIsS0FBb0MsQ0FGMUM7QUFHSEMsUUFBQUEsT0FBTyxFQUFFRixRQUFRLENBQUNSLE9BQU8sQ0FBQ1csU0FBVCxFQUFvQixFQUFwQixDQUFSLEtBQW9DLENBSDFDO0FBSUhDLFFBQUFBLENBQUMsRUFBRVIsSUFBSSxDQUFDUSxDQUpMO0FBS0hDLFFBQUFBLENBQUMsRUFBRVQsSUFBSSxDQUFDUyxDQUxMO0FBTUhDLFFBQUFBLEtBQUssRUFBRVYsSUFBSSxDQUFDVSxLQU5UO0FBT0hDLFFBQUFBLE1BQU0sRUFBRVgsSUFBSSxDQUFDVztBQVBWLE9BRE87QUFVWixXQUFLO0FBVk8sS0FBZDs7QUFZQSxRQUFJZixPQUFPLENBQUNnQixJQUFSLEtBQWlCLElBQXJCLEVBQTJCO0FBQ3pCWCxNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFXLElBQWIsR0FBb0JoQixPQUFPLENBQUNnQixJQUE1QjtBQUNEOztBQUNELFFBQUloQixPQUFPLENBQUNpQixLQUFSLEtBQWtCLElBQXRCLEVBQTRCO0FBQzFCWixNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFZLEtBQWIsR0FBcUJqQixPQUFPLENBQUNpQixLQUE3QjtBQUNEOztBQUNELFFBQUlqQixPQUFPLENBQUNrQixLQUFSLEtBQWtCLElBQXRCLEVBQTRCO0FBQzFCYixNQUFBQSxPQUFPLENBQUMsR0FBRCxDQUFQLENBQWFhLEtBQWIsR0FBcUJsQixPQUFPLENBQUNrQixLQUE3QjtBQUNEOztBQUNELFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBRyxDQUFDbkIsT0FBTyxDQUFDb0IsUUFBUixJQUFvQixFQUFyQixFQUF5QkMsTUFBN0MsRUFBcURGLENBQUMsRUFBdEQsRUFBMEQ7QUFDeERkLE1BQUFBLE9BQU8sQ0FBQyxHQUFELENBQVAsQ0FBYWlCLElBQWIsQ0FBa0J2QixPQUFPLENBQUNDLE9BQU8sQ0FBQ29CLFFBQVIsQ0FBaUJELENBQWpCLENBQUQsRUFBc0JBLENBQXRCLEVBQXlCaEIsT0FBekIsQ0FBekI7QUFDRDs7QUFDRCxXQUFPO0FBQ0wsT0FBRSxrQkFBaUJILE9BQU8sQ0FBQ00sSUFBSyxFQUFoQyxHQUFvQ0Q7QUFEL0IsS0FBUDtBQUdEOztBQUNELE1BQUkxQixJQUFJLEdBQUdvQixPQUFPLENBQUMvQixPQUFELEVBQVUsQ0FBVixFQUFhLEVBQWIsQ0FBbEI7QUFDQSxTQUFPVyxJQUFQO0FBQ0Q7O0FBRUQsU0FBU1IsWUFBVCxDQUF1Qm9ELFVBQXZCLEVBQW1DO0FBQ2pDLFNBQU8sMkJBQU8sV0FBUCxFQUFvQkEsVUFBcEIsRUFBZ0M7QUFDckNDLElBQUFBLFNBQVMsRUFBRTtBQUFDakIsTUFBQUEsT0FBTyxFQUFFLEtBQVY7QUFBaUJrQixNQUFBQSxXQUFXLEVBQUU7QUFBOUIsS0FEMEI7QUFFckNDLElBQUFBLFdBQVcsRUFBRTtBQUFDQyxNQUFBQSxPQUFPLEVBQUU7QUFBVixLQUZ3QjtBQUdyQ0MsSUFBQUEsY0FBYyxFQUFFO0FBQUNDLE1BQUFBLFlBQVksRUFBRTtBQUFmO0FBSHFCLEdBQWhDLENBQVA7QUFLRDs7QUFHRHJDLE1BQU0sQ0FBQ3NDLE1BQVAsQ0FBYzFFLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHhtbGRvbSBmcm9tICdAeG1sZG9tL3htbGRvbSc7XG5pbXBvcnQganMyeG1sIGZyb20gJ2pzMnhtbHBhcnNlcjInO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29uc3QgQVBQSVVNX0FVVF9UQUcgPSAnQXBwaXVtQVVUJztcbmNvbnN0IEFQUElVTV9TUkNfWE1MID0gYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/Pjwke0FQUElVTV9BVVRfVEFHfS8+YDtcbmNvbnN0IEFQUElVTV9UQUdfUEFUVEVSTiA9IG5ldyBSZWdFeHAoYDwvPyR7QVBQSVVNX0FVVF9UQUd9Lz8+YCk7XG5cblxuY29tbWFuZHMuZ2V0UGFnZVNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFBhZ2VTb3VyY2UgKCkge1xuICBpZiAodGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIGNvbnN0IHNjcmlwdCA9ICdyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTCc7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgW11dKTtcbiAgfVxuXG4gIGlmICgoYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpKS51c2VKU09OU291cmNlKSB7XG4gICAgY29uc3Qgc3JjVHJlZSA9IGF3YWl0IHRoaXMubW9iaWxlR2V0U291cmNlKHtmb3JtYXQ6ICdqc29uJ30pO1xuICAgIHJldHVybiBnZXRTb3VyY2VYbWwoZ2V0VHJlZUZvclhNTChzcmNUcmVlKSk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0TmF0aXZlUGFnZVNvdXJjZSgpO1xufTtcblxuaGVscGVycy5nZXROYXRpdmVQYWdlU291cmNlID0gYXN5bmMgZnVuY3Rpb24gZ2V0TmF0aXZlUGFnZVNvdXJjZSAoKSB7XG4gIGNvbnN0IHNyY1RyZWUgPSBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3NvdXJjZT9zY29wZT0ke0FQUElVTV9BVVRfVEFHfWAsICdHRVQnKTtcbiAgaWYgKEFQUElVTV9UQUdfUEFUVEVSTi50ZXN0KHNyY1RyZWUpKSB7XG4gICAgcmV0dXJuIHNyY1RyZWU7XG4gIH1cbiAgLy8gVGhpcyBtaWdodCBvbmx5IGhhcHBlbiBpZiB0aGUgZHJpdmVyIGlzIHVzaW5nIGFuIG9sZGVyL2NhY2hlZCBXREFcbiAgLy8gYnVpbGQgKGUuZy4gYmVsb3cgMy4xNi4wKVxuICAvLyBUT0RPOiByZW1vdmUgdGhpcyBibG9jayBhZnRlciBhIHdoaWxlXG4gIGNvbnN0IHBhcnNlciA9IG5ldyB4bWxkb20uRE9NUGFyc2VyKCk7XG4gIGNvbnN0IHRyZWUgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHNyY1RyZWUpO1xuICBjb25zdCBkb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKEFQUElVTV9TUkNfWE1MKTtcbiAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0cmVlLmRvY3VtZW50RWxlbWVudCk7XG4gIHJldHVybiBuZXcgeG1sZG9tLlhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb2MpO1xufTtcblxuaGVscGVycy5tb2JpbGVHZXRTb3VyY2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRTb3VyY2UgKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXJhbXNNYXAgPSB7XG4gICAgZm9ybWF0OiBvcHRzLmZvcm1hdCB8fCAneG1sJyxcbiAgICBzY29wZTogQVBQSVVNX0FVVF9UQUcsXG4gIH07XG4gIGlmIChvcHRzLmV4Y2x1ZGVkQXR0cmlidXRlcykge1xuICAgIHBhcmFtc01hcC5leGNsdWRlZF9hdHRyaWJ1dGVzID0gb3B0cy5leGNsdWRlZEF0dHJpYnV0ZXM7XG4gIH1cbiAgY29uc3QgcXVlcnkgPSBPYmplY3QuZW50cmllcyhwYXJhbXNNYXApXG4gICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoayl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYpfWApXG4gICAgLmpvaW4oJyYnKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvc291cmNlPyR7cXVlcnl9YCwgJ0dFVCcpO1xufTtcblxuLyogV2lsbCBnZXQgSlNPTiBvZiB0aGUgZm9ybTpcbiAqICAgeyBpc0VuYWJsZWQ6ICcxJyxcbiAqICAgICBpc1Zpc2libGU6ICcxJyxcbiAqICAgICBmcmFtZTogJ3t7MCwgMH0sIHszNzUsIDY2N319JyxcbiAqICAgICBjaGlsZHJlbjpcbiAqICAgICAgWyB7IGlzRW5hYmxlZDogJzEnLFxuICogICAgICAgICAgaXNWaXNpYmxlOiAnMScsXG4gKiAgICAgICAgICBmcmFtZTogJ3t7MCwgMH0sIHszNzUsIDY2N319JyxcbiAqICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAqICAgICAgICAgIHJlY3Q6IHsgeDogMCwgeTogMCwgd2lkdGg6IDM3NSwgaGVpZ2h0OiA2NjcgfSxcbiAqICAgICAgICAgIHZhbHVlOiBudWxsLFxuICogICAgICAgICAgbGFiZWw6IG51bGwsXG4gKiAgICAgICAgICB0eXBlOiAnT3RoZXInLFxuICogICAgICAgICAgbmFtZTogbnVsbCxcbiAqICAgICAgICAgIHJhd0lkZW50aWZpZXI6IG51bGwgfSxcbiAqICAgICByZWN0OiB7IG9yaWdpbjogeyB4OiAwLCB5OiAwIH0sIHNpemU6IHsgd2lkdGg6IDM3NSwgaGVpZ2h0OiA2NjcgfSB9LFxuICogICAgIHZhbHVlOiBudWxsLFxuICogICAgIGxhYmVsOiAnVUlDYXRhbG9nJyxcbiAqICAgICB0eXBlOiAnQXBwbGljYXRpb24nLFxuICogICAgIG5hbWU6ICdVSUNhdGFsb2cnLFxuICogICAgIHJhd0lkZW50aWZpZXI6IG51bGwgfVxuICovXG5mdW5jdGlvbiBnZXRUcmVlRm9yWE1MIChzcmNUcmVlKSB7XG4gIGZ1bmN0aW9uIGdldFRyZWUgKGVsZW1lbnQsIGVsZW1lbnRJbmRleCwgcGFyZW50UGF0aCkge1xuICAgIGxldCBjdXJQYXRoID0gYCR7cGFyZW50UGF0aH0vJHtlbGVtZW50SW5kZXh9YDtcbiAgICBsZXQgcmVjdCA9IGVsZW1lbnQucmVjdCB8fCB7fTtcbiAgICBsZXQgc3VidHJlZSA9IHtcbiAgICAgICdAJzoge1xuICAgICAgICB0eXBlOiBgWENVSUVsZW1lbnRUeXBlJHtlbGVtZW50LnR5cGV9YCxcbiAgICAgICAgZW5hYmxlZDogcGFyc2VJbnQoZWxlbWVudC5pc0VuYWJsZWQsIDEwKSA9PT0gMSxcbiAgICAgICAgdmlzaWJsZTogcGFyc2VJbnQoZWxlbWVudC5pc1Zpc2libGUsIDEwKSA9PT0gMSxcbiAgICAgICAgeDogcmVjdC54LFxuICAgICAgICB5OiByZWN0LnksXG4gICAgICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgICAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0LFxuICAgICAgfSxcbiAgICAgICc+JzogW11cbiAgICB9O1xuICAgIGlmIChlbGVtZW50Lm5hbWUgIT09IG51bGwpIHtcbiAgICAgIHN1YnRyZWVbJ0AnXS5uYW1lID0gZWxlbWVudC5uYW1lO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5sYWJlbCAhPT0gbnVsbCkge1xuICAgICAgc3VidHJlZVsnQCddLmxhYmVsID0gZWxlbWVudC5sYWJlbDtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHN1YnRyZWVbJ0AnXS52YWx1ZSA9IGVsZW1lbnQudmFsdWU7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgKGVsZW1lbnQuY2hpbGRyZW4gfHwgW10pLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdWJ0cmVlWyc+J10ucHVzaChnZXRUcmVlKGVsZW1lbnQuY2hpbGRyZW5baV0sIGksIGN1clBhdGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIFtgWENVSUVsZW1lbnRUeXBlJHtlbGVtZW50LnR5cGV9YF06IHN1YnRyZWVcbiAgICB9O1xuICB9XG4gIGxldCB0cmVlID0gZ2V0VHJlZShzcmNUcmVlLCAwLCAnJyk7XG4gIHJldHVybiB0cmVlO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VYbWwgKGpzb25Tb3VyY2UpIHtcbiAgcmV0dXJuIGpzMnhtbCgnQXBwaXVtQVVUJywganNvblNvdXJjZSwge1xuICAgIHdyYXBBcnJheToge2VuYWJsZWQ6IGZhbHNlLCBlbGVtZW50TmFtZTogJ2VsZW1lbnQnfSxcbiAgICBkZWNsYXJhdGlvbjoge2luY2x1ZGU6IHRydWV9LFxuICAgIHByZXR0eVByaW50aW5nOiB7aW5kZW50U3RyaW5nOiAnICAnfVxuICB9KTtcbn1cblxuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvc291cmNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -1,11 +1,12 @@
1
- import _ from 'lodash';
2
1
  import xmldom from '@xmldom/xmldom';
3
2
  import js2xml from 'js2xmlparser2';
4
3
 
5
4
 
6
5
  let commands = {}, helpers = {}, extensions = {};
7
6
 
8
- const APPIUM_SRC_XML = '<?xml version="1.0" encoding="UTF-8"?><AppiumAUT/>';
7
+ const APPIUM_AUT_TAG = 'AppiumAUT';
8
+ const APPIUM_SRC_XML = `<?xml version="1.0" encoding="UTF-8"?><${APPIUM_AUT_TAG}/>`;
9
+ const APPIUM_TAG_PATTERN = new RegExp(`</?${APPIUM_AUT_TAG}/?>`);
9
10
 
10
11
 
11
12
  commands.getPageSource = async function getPageSource () {
@@ -22,7 +23,13 @@ commands.getPageSource = async function getPageSource () {
22
23
  };
23
24
 
24
25
  helpers.getNativePageSource = async function getNativePageSource () {
25
- const srcTree = await this.proxyCommand('/source', 'GET');
26
+ const srcTree = await this.proxyCommand(`/source?scope=${APPIUM_AUT_TAG}`, 'GET');
27
+ if (APPIUM_TAG_PATTERN.test(srcTree)) {
28
+ return srcTree;
29
+ }
30
+ // This might only happen if the driver is using an older/cached WDA
31
+ // build (e.g. below 3.16.0)
32
+ // TODO: remove this block after a while
26
33
  const parser = new xmldom.DOMParser();
27
34
  const tree = parser.parseFromString(srcTree);
28
35
  const doc = parser.parseFromString(APPIUM_SRC_XML);
@@ -31,11 +38,9 @@ helpers.getNativePageSource = async function getNativePageSource () {
31
38
  };
32
39
 
33
40
  helpers.mobileGetSource = async function mobileGetSource (opts = {}) {
34
- if (!_.isString(opts.format)) {
35
- return await this.getNativePageSource();
36
- }
37
41
  const paramsMap = {
38
- format: opts.format,
42
+ format: opts.format || 'xml',
43
+ scope: APPIUM_AUT_TAG,
39
44
  };
40
45
  if (opts.excludedAttributes) {
41
46
  paramsMap.excluded_attributes = opts.excludedAttributes;
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "3.56.3",
11
+ "version": "3.57.0",
12
12
  "author": "appium",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {
@@ -30,6 +30,31 @@
30
30
  "mainClass": "XCUITestDriver",
31
31
  "scripts": {
32
32
  "build-wda": "./build/lib/build-wda.js"
33
+ },
34
+ "schema": {
35
+ "$schema": "http://json-schema.org/draft-07/schema",
36
+ "type": "object",
37
+ "properties": {
38
+ "webdriveragent-port": {
39
+ "appiumCliDest": "wdaLocalPort",
40
+ "default": 8100,
41
+ "description": "Local port used for communication with WebDriverAgent",
42
+ "maximum": 65535,
43
+ "minimum": 1,
44
+ "type": "integer"
45
+ },
46
+ "webkit-debug-proxy-port": {
47
+ "appiumCliDest": "webkitDebugProxyPort",
48
+ "default": 27753,
49
+ "description": "(Real device only) Port to which `ios-webkit-debug-proxy` is connected",
50
+ "maximum": 65535,
51
+ "minimum": 1,
52
+ "type": "integer"
53
+ }
54
+ },
55
+ "additionalProperties": false,
56
+ "title": "XCUITest Driver Configuration",
57
+ "description": "Appium configuration schema for the XCUITest driver."
33
58
  }
34
59
  },
35
60
  "main": "./build/index.js",
@@ -54,7 +79,7 @@
54
79
  "appium-ios-simulator": "^3.28.0",
55
80
  "appium-remote-debugger": "^8.13.2",
56
81
  "appium-support": "^2.47.1",
57
- "appium-webdriveragent": "^3.13.0",
82
+ "appium-webdriveragent": "^3.16.0",
58
83
  "appium-xcode": "^3.8.0",
59
84
  "async-lock": "^1.0.0",
60
85
  "asyncbox": "^2.3.1",