@appium/base-driver 8.2.4 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/basedriver/commands/find.js +4 -11
- package/build/lib/basedriver/commands/log.js +3 -6
- package/build/lib/basedriver/commands/session.js +18 -27
- package/build/lib/basedriver/commands/settings.js +4 -8
- package/build/lib/basedriver/commands/timeout.js +10 -15
- package/build/lib/basedriver/device-settings.js +14 -2
- package/build/lib/basedriver/driver.js +22 -20
- package/build/lib/basedriver/helpers.js +9 -9
- package/build/lib/express/express-logging.js +2 -2
- package/build/lib/express/idempotency.js +2 -2
- package/build/lib/helpers/capabilities.js +39 -0
- package/build/lib/index.js +3 -5
- package/build/lib/jsonwp-proxy/protocol-converter.js +18 -12
- package/build/lib/jsonwp-proxy/proxy.js +19 -12
- package/build/lib/protocol/protocol.js +36 -27
- package/build/lib/protocol/routes.js +67 -1
- package/build/test/basedriver/capabilities-specs.js +43 -1
- package/build/test/basedriver/capability-specs.js +126 -167
- package/build/test/basedriver/commands/log-specs.js +12 -5
- package/build/test/basedriver/driver-tests.js +11 -14
- package/build/test/basedriver/timeout-specs.js +7 -9
- package/build/test/express/server-e2e-specs.js +10 -5
- package/build/test/express/server-specs.js +22 -16
- package/build/test/express/static-specs.js +10 -5
- package/build/test/protocol/fake-driver.js +12 -15
- package/build/test/protocol/protocol-e2e-specs.js +16 -10
- package/build/test/protocol/routes-specs.js +2 -2
- package/lib/basedriver/commands/find.js +3 -6
- package/lib/basedriver/commands/log.js +2 -4
- package/lib/basedriver/commands/session.js +21 -22
- package/lib/basedriver/commands/settings.js +3 -5
- package/lib/basedriver/commands/timeout.js +9 -10
- package/lib/basedriver/device-settings.js +10 -1
- package/lib/basedriver/driver.js +25 -12
- package/lib/basedriver/helpers.js +13 -11
- package/lib/express/express-logging.js +1 -1
- package/lib/express/idempotency.js +1 -1
- package/lib/helpers/capabilities.js +25 -0
- package/lib/index.js +2 -2
- package/lib/jsonwp-proxy/protocol-converter.js +14 -13
- package/lib/jsonwp-proxy/proxy.js +16 -12
- package/lib/protocol/protocol.js +34 -29
- package/lib/protocol/routes.js +60 -1
- package/package.json +29 -22
- package/test/basedriver/capabilities-specs.js +34 -2
- package/test/basedriver/capability-specs.js +120 -146
- package/test/basedriver/commands/log-specs.js +12 -3
- package/test/basedriver/driver-tests.js +12 -7
- package/test/basedriver/timeout-specs.js +6 -11
- package/build/lib/protocol/sessions-cache.js +0 -88
- package/lib/protocol/sessions-cache.js +0 -74
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -9,8 +7,6 @@ exports.helpers = exports.default = exports.commands = void 0;
|
|
|
9
7
|
|
|
10
8
|
require("source-map-support/register");
|
|
11
9
|
|
|
12
|
-
var _logger = _interopRequireDefault(require("../logger"));
|
|
13
|
-
|
|
14
10
|
const commands = {},
|
|
15
11
|
helpers = {},
|
|
16
12
|
extensions = {};
|
|
@@ -25,12 +21,9 @@ helpers.findElOrElsWithProcessing = async function findElOrElsWithProcessing(str
|
|
|
25
21
|
} catch (err) {
|
|
26
22
|
if (this.opts.printPageSourceOnFindFailure) {
|
|
27
23
|
const src = await this.getPageSource();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
_logger.default.debug(`Page source requested through 'printPageSourceOnFindFailure':`);
|
|
32
|
-
|
|
33
|
-
_logger.default.debug(src);
|
|
24
|
+
this.log.debug(`Error finding element${mult ? 's' : ''}: ${err.message}`);
|
|
25
|
+
this.log.debug(`Page source requested through 'printPageSourceOnFindFailure':`);
|
|
26
|
+
this.log.debug(src);
|
|
34
27
|
}
|
|
35
28
|
|
|
36
29
|
throw err;
|
|
@@ -58,4 +51,4 @@ var _default = extensions;
|
|
|
58
51
|
exports.default = _default;require('source-map-support').install();
|
|
59
52
|
|
|
60
53
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2ZpbmQuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImZpbmRFbE9yRWxzV2l0aFByb2Nlc3NpbmciLCJzdHJhdGVneSIsInNlbGVjdG9yIiwibXVsdCIsImNvbnRleHQiLCJ2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSIsImZpbmRFbE9yRWxzIiwiZXJyIiwib3B0cyIsInByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmUiLCJzcmMiLCJnZXRQYWdlU291cmNlIiwibG9nIiwiZGVidWciLCJtZXNzYWdlIiwiZmluZEVsZW1lbnQiLCJmaW5kRWxlbWVudHMiLCJmaW5kRWxlbWVudEZyb21FbGVtZW50IiwiZWxlbWVudElkIiwiZmluZEVsZW1lbnRzRnJvbUVsZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUFBLE1BQXFCQyxPQUFPLEdBQUcsRUFBL0I7QUFBQSxNQUFtQ0MsVUFBVSxHQUFHLEVBQWhEOzs7O0FBZUFELE9BQU8sQ0FBQ0UseUJBQVIsR0FBb0MsZUFBZUEseUJBQWYsQ0FBMENDLFFBQTFDLEVBQW9EQyxRQUFwRCxFQUE4REMsSUFBOUQsRUFBb0VDLE9BQXBFLEVBQTZFO0FBQy9HLE9BQUtDLHVCQUFMLENBQTZCSixRQUE3Qjs7QUFDQSxNQUFJO0FBQ0YsV0FBTyxNQUFNLEtBQUtLLFdBQUwsQ0FBaUJMLFFBQWpCLEVBQTJCQyxRQUEzQixFQUFxQ0MsSUFBckMsRUFBMkNDLE9BQTNDLENBQWI7QUFDRCxHQUZELENBRUUsT0FBT0csR0FBUCxFQUFZO0FBQ1osUUFBSSxLQUFLQyxJQUFMLENBQVVDLDRCQUFkLEVBQTRDO0FBQzFDLFlBQU1DLEdBQUcsR0FBRyxNQUFNLEtBQUtDLGFBQUwsRUFBbEI7QUFDQSxXQUFLQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0Isd0JBQXVCVixJQUFJLEdBQUcsR0FBSCxHQUFTLEVBQUcsS0FBSUksR0FBRyxDQUFDTyxPQUFRLEVBQXZFO0FBQ0EsV0FBS0YsR0FBTCxDQUFTQyxLQUFULENBQWdCLCtEQUFoQjtBQUNBLFdBQUtELEdBQUwsQ0FBU0MsS0FBVCxDQUFlSCxHQUFmO0FBQ0Q7O0FBRUQsVUFBTUgsR0FBTjtBQUNEO0FBQ0YsQ0FkRDs7QUFnQkFWLFFBQVEsQ0FBQ2tCLFdBQVQsR0FBdUIsZUFBZUEsV0FBZixDQUE0QmQsUUFBNUIsRUFBc0NDLFFBQXRDLEVBQWdEO0FBQ3JFLFNBQU8sTUFBTSxLQUFLRix5QkFBTCxDQUErQkMsUUFBL0IsRUFBeUNDLFFBQXpDLEVBQW1ELEtBQW5ELENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNtQixZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkJmLFFBQTdCLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUN2RSxTQUFPLE1BQU0sS0FBS0YseUJBQUwsQ0FBK0JDLFFBQS9CLEVBQXlDQyxRQUF6QyxFQUFtRCxJQUFuRCxDQUFiO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDb0Isc0JBQVQsR0FBa0MsZUFBZUEsc0JBQWYsQ0FBdUNoQixRQUF2QyxFQUFpREMsUUFBakQsRUFBMkRnQixTQUEzRCxFQUFzRTtBQUN0RyxTQUFPLE1BQU0sS0FBS2xCLHlCQUFMLENBQStCQyxRQUEvQixFQUF5Q0MsUUFBekMsRUFBbUQsS0FBbkQsRUFBMERnQixTQUExRCxDQUFiO0FBQ0QsQ0FGRDs7QUFJQXJCLFFBQVEsQ0FBQ3NCLHVCQUFULEdBQW1DLGVBQWVBLHVCQUFmLENBQXdDbEIsUUFBeEMsRUFBa0RDLFFBQWxELEVBQTREZ0IsU0FBNUQsRUFBdUU7QUFDeEcsU0FBTyxNQUFNLEtBQUtsQix5QkFBTCxDQUErQkMsUUFBL0IsRUFBeUNDLFFBQXpDLEVBQW1ELElBQW5ELEVBQXlEZ0IsU0FBekQsQ0FBYjtBQUNELENBRkQ7O0FBS0FFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjdEIsVUFBZCxFQUEwQkYsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVDLFUiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuXG4vLyBPdmVycmlkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGZvciB5b3VyIG93biBkcml2ZXIsIGFuZCB0aGUgcmVzdCBpcyB0YWtlblxuLy8gY2FyZSBvZiFcblxuLy8gaGVscGVycy5maW5kRWxPckVscyA9IGFzeW5jIGZ1bmN0aW9uIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHt9XG4vLyAgIHN0cmF0ZWd5OiBsb2NhdG9yIHN0cmF0ZWd5XG4vLyAgIHNlbGVjdG9yOiB0aGUgYWN0dWFsIHNlbGVjdG9yIGZvciBmaW5kaW5nIGFuIGVsZW1lbnRcbi8vICAgbXVsdDogbXVsdGlwbGUgZWxlbWVudHMgb3IganVzdCBvbmU/XG4vLyAgIGNvbnRleHQ6IGZpbmRpbmcgYW4gZWxlbWVudCBmcm9tIHRoZSByb290IGNvbnRleHQ/IG9yIHN0YXJ0aW5nIGZyb20gYW5vdGhlciBlbGVtZW50XG4vL1xuLy8gUmV0dXJucyBhbiBvYmplY3Qgd2hpY2ggYWRoZXJlcyB0byB0aGUgd2F5IHRoZSBKU09OIFdpcmUgUHJvdG9jb2wgcmVwcmVzZW50cyBlbGVtZW50czpcbi8vIHsgRUxFTUVOVDogIyB9ICAgIGVnOiB7IEVMRU1FTlQ6IDMgfSAgb3IgeyBFTEVNRU5UOiAxLjAyMyB9XG5cbmhlbHBlcnMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyA9IGFzeW5jIGZ1bmN0aW9uIGZpbmRFbE9yRWxzV2l0aFByb2Nlc3NpbmcgKHN0cmF0ZWd5LCBzZWxlY3RvciwgbXVsdCwgY29udGV4dCkge1xuICB0aGlzLnZhbGlkYXRlTG9jYXRvclN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5maW5kRWxPckVscyhzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAodGhpcy5vcHRzLnByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmUpIHtcbiAgICAgIGNvbnN0IHNyYyA9IGF3YWl0IHRoaXMuZ2V0UGFnZVNvdXJjZSgpO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYEVycm9yIGZpbmRpbmcgZWxlbWVudCR7bXVsdCA/ICdzJyA6ICcnfTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBQYWdlIHNvdXJjZSByZXF1ZXN0ZWQgdGhyb3VnaCAncHJpbnRQYWdlU291cmNlT25GaW5kRmFpbHVyZSc6YCk7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhzcmMpO1xuICAgIH1cbiAgICAvLyBzdGlsbCB3YW50IHRoZSBlcnJvciB0byBvY2N1clxuICAgIHRocm93IGVycjtcbiAgfVxufTtcblxuY29tbWFuZHMuZmluZEVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBmaW5kRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmZpbmRFbE9yRWxzV2l0aFByb2Nlc3Npbmcoc3RyYXRlZ3ksIHNlbGVjdG9yLCBmYWxzZSk7XG59O1xuXG5jb21tYW5kcy5maW5kRWxlbWVudHMgPSBhc3luYyBmdW5jdGlvbiBmaW5kRWxlbWVudHMgKHN0cmF0ZWd5LCBzZWxlY3Rvcikge1xuICByZXR1cm4gYXdhaXQgdGhpcy5maW5kRWxPckVsc1dpdGhQcm9jZXNzaW5nKHN0cmF0ZWd5LCBzZWxlY3RvciwgdHJ1ZSk7XG59O1xuXG5jb21tYW5kcy5maW5kRWxlbWVudEZyb21FbGVtZW50ID0gYXN5bmMgZnVuY3Rpb24gZmluZEVsZW1lbnRGcm9tRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhzdHJhdGVneSwgc2VsZWN0b3IsIGZhbHNlLCBlbGVtZW50SWQpO1xufTtcblxuY29tbWFuZHMuZmluZEVsZW1lbnRzRnJvbUVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBmaW5kRWxlbWVudHNGcm9tRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhzdHJhdGVneSwgc2VsZWN0b3IsIHRydWUsIGVsZW1lbnRJZCk7XG59O1xuXG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2ZpbmQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
|
|
@@ -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 _logger = _interopRequireDefault(require("../logger"));
|
|
13
|
-
|
|
14
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
15
13
|
|
|
16
14
|
const commands = {},
|
|
@@ -21,13 +19,12 @@ exports.commands = commands;
|
|
|
21
19
|
extensions.supportedLogTypes = {};
|
|
22
20
|
|
|
23
21
|
commands.getLogTypes = async function getLogTypes() {
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
this.log.debug('Retrieving supported log types');
|
|
26
23
|
return _lodash.default.keys(this.supportedLogTypes);
|
|
27
24
|
};
|
|
28
25
|
|
|
29
26
|
commands.getLog = async function getLog(logType) {
|
|
30
|
-
|
|
27
|
+
this.log.debug(`Retrieving '${logType}' logs`);
|
|
31
28
|
|
|
32
29
|
if (!(await this.getLogTypes()).includes(logType)) {
|
|
33
30
|
const logsTypesWithDescriptions = _lodash.default.reduce(this.supportedLogTypes, (acc, value, key) => {
|
|
@@ -46,4 +43,4 @@ var _default = extensions;
|
|
|
46
43
|
exports.default = _default;require('source-map-support').install();
|
|
47
44
|
|
|
48
45
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwic3VwcG9ydGVkTG9nVHlwZXMiLCJnZXRMb2dUeXBlcyIsImxvZyIsImRlYnVnIiwiXyIsImtleXMiLCJnZXRMb2ciLCJsb2dUeXBlIiwiaW5jbHVkZXMiLCJsb2dzVHlwZXNXaXRoRGVzY3JpcHRpb25zIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJrZXkiLCJkZXNjcmlwdGlvbiIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7QUFBQSxNQUFxQkMsT0FBTyxHQUFHLEVBQS9CO0FBQUEsTUFBbUNDLFVBQVUsR0FBRyxFQUFoRDs7O0FBVUFBLFVBQVUsQ0FBQ0MsaUJBQVgsR0FBK0IsRUFBL0I7O0FBR0FILFFBQVEsQ0FBQ0ksV0FBVCxHQUF1QixlQUFlQSxXQUFmLEdBQThCO0FBQ25ELE9BQUtDLEdBQUwsQ0FBU0MsS0FBVCxDQUFlLGdDQUFmO0FBQ0EsU0FBT0MsZ0JBQUVDLElBQUYsQ0FBTyxLQUFLTCxpQkFBWixDQUFQO0FBQ0QsQ0FIRDs7QUFLQUgsUUFBUSxDQUFDUyxNQUFULEdBQWtCLGVBQWVBLE1BQWYsQ0FBdUJDLE9BQXZCLEVBQWdDO0FBQ2hELE9BQUtMLEdBQUwsQ0FBU0MsS0FBVCxDQUFnQixlQUFjSSxPQUFRLFFBQXRDOztBQUVBLE1BQUksQ0FBQyxDQUFDLE1BQU0sS0FBS04sV0FBTCxFQUFQLEVBQTJCTyxRQUEzQixDQUFvQ0QsT0FBcEMsQ0FBTCxFQUFtRDtBQUNqRCxVQUFNRSx5QkFBeUIsR0FBR0wsZ0JBQUVNLE1BQUYsQ0FBUyxLQUFLVixpQkFBZCxFQUFpQyxDQUFDVyxHQUFELEVBQU1DLEtBQU4sRUFBYUMsR0FBYixLQUFxQjtBQUN0RkYsTUFBQUEsR0FBRyxDQUFDRSxHQUFELENBQUgsR0FBV0QsS0FBSyxDQUFDRSxXQUFqQjtBQUNBLGFBQU9ILEdBQVA7QUFDRCxLQUhpQyxFQUcvQixFQUgrQixDQUFsQzs7QUFJQSxVQUFNLElBQUlJLEtBQUosQ0FBVyx5QkFBd0JSLE9BQVEsS0FBakMsR0FDYixvQkFBbUJTLElBQUksQ0FBQ0MsU0FBTCxDQUFlUix5QkFBZixDQUEwQyxFQUQxRCxDQUFOO0FBRUQ7O0FBRUQsU0FBTyxNQUFNLEtBQUtULGlCQUFMLENBQXVCTyxPQUF2QixFQUFnQ1csTUFBaEMsQ0FBdUMsSUFBdkMsQ0FBYjtBQUNELENBYkQ7O0FBZUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjckIsVUFBZCxFQUEwQkYsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVDLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuLy8gb3ZlcnJpZGUgaW4gc3ViLWNsYXNzZXMsIHdpdGggYXBwcm9wcmlhdGUgbG9nc1xuLy8gaW4gdGhlIGZvcm0gb2Zcbi8vICAge1xuLy8gICAgIHR5cGU6IHtcbi8vICAgICAgIGRlc2NyaXB0aW9uOiAnc29tZSB1c2VmdWwgdGV4dCcsXG4vLyAgICAgICBnZXR0ZXI6ICgpID0+IHt9LCAvLyBzb21lIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gZ2V0IHRoZSBsb2dzXG4vLyAgICAgfVxuLy8gICB9XG5leHRlbnNpb25zLnN1cHBvcnRlZExvZ1R5cGVzID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5jb21tYW5kcy5nZXRMb2dUeXBlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldExvZ1R5cGVzICgpIHtcbiAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgc3VwcG9ydGVkIGxvZyB0eXBlcycpO1xuICByZXR1cm4gXy5rZXlzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMpO1xufTtcblxuY29tbWFuZHMuZ2V0TG9nID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9nIChsb2dUeXBlKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBSZXRyaWV2aW5nICcke2xvZ1R5cGV9JyBsb2dzYCk7XG5cbiAgaWYgKCEoYXdhaXQgdGhpcy5nZXRMb2dUeXBlcygpKS5pbmNsdWRlcyhsb2dUeXBlKSkge1xuICAgIGNvbnN0IGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMgPSBfLnJlZHVjZSh0aGlzLnN1cHBvcnRlZExvZ1R5cGVzLCAoYWNjLCB2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBsb2cgdHlwZSAnJHtsb2dUeXBlfScuIGAgK1xuICAgICAgYFN1cHBvcnRlZCB0eXBlczogJHtKU09OLnN0cmluZ2lmeShsb2dzVHlwZXNXaXRoRGVzY3JpcHRpb25zKX1gKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzW2xvZ1R5cGVdLmdldHRlcih0aGlzKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnN9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvbG9nLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uIn0=
|
|
@@ -17,48 +17,42 @@ require("source-map-support/register");
|
|
|
17
17
|
|
|
18
18
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
19
19
|
|
|
20
|
-
var _logger = _interopRequireDefault(require("../logger"));
|
|
21
|
-
|
|
22
20
|
var _protocol = require("../../protocol");
|
|
23
21
|
|
|
24
22
|
var _support = require("@appium/support");
|
|
25
23
|
|
|
26
24
|
var _capabilities = require("../capabilities");
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
var _capabilities2 = require("../../helpers/capabilities");
|
|
27
|
+
|
|
28
|
+
const commands = {};
|
|
29
29
|
|
|
30
|
-
commands.createSession = async function createSession(
|
|
30
|
+
commands.createSession = async function createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities) {
|
|
31
31
|
if (this.sessionId !== null) {
|
|
32
|
-
throw new _protocol.errors.SessionNotCreatedError('Cannot create a new session
|
|
32
|
+
throw new _protocol.errors.SessionNotCreatedError('Cannot create a new session while one is in progress');
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
this.log.debug();
|
|
36
|
+
const originalCaps = [w3cCapabilities, w3cCapabilities1, w3cCapabilities2].find(_capabilities2.isW3cCaps);
|
|
36
37
|
|
|
37
|
-
if (!
|
|
38
|
+
if (!originalCaps) {
|
|
38
39
|
throw new _protocol.errors.SessionNotCreatedError('Appium only supports W3C-style capability objects. ' + 'Your client is sending an older capabilities format. Please update your client library.');
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
if (jsonwpDesiredCapabilities) {
|
|
42
|
-
_logger.default.warn('Appium received (M)JSONWP desired capabilities in alongside the W3C capabilities; they will be ignored');
|
|
43
|
-
}
|
|
44
|
-
|
|
45
42
|
this.setProtocolW3C();
|
|
46
|
-
this.originalCaps = _lodash.default.cloneDeep(
|
|
47
|
-
|
|
48
|
-
_logger.default.debug(`Creating session with W3C capabilities: ${JSON.stringify(w3cCapabilities, null, 2)}`);
|
|
49
|
-
|
|
43
|
+
this.originalCaps = _lodash.default.cloneDeep(originalCaps);
|
|
44
|
+
this.log.debug(`Creating session with W3C capabilities: ${JSON.stringify(originalCaps, null, 2)}`);
|
|
50
45
|
let caps;
|
|
51
46
|
|
|
52
47
|
try {
|
|
53
|
-
caps = (0, _capabilities.processCapabilities)(
|
|
48
|
+
caps = (0, _capabilities.processCapabilities)(originalCaps, this.desiredCapConstraints, this.shouldValidateCaps);
|
|
54
49
|
|
|
55
50
|
if (caps[_capabilities.APPIUM_OPTS_CAP]) {
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
this.log.debug(`Found ${_capabilities.PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`);
|
|
58
52
|
caps = (0, _capabilities.promoteAppiumOptions)(caps);
|
|
59
53
|
}
|
|
60
54
|
|
|
61
|
-
caps = fixCaps(caps, this.desiredCapConstraints);
|
|
55
|
+
caps = fixCaps(caps, this.desiredCapConstraints, this.log);
|
|
62
56
|
} catch (e) {
|
|
63
57
|
throw new _protocol.errors.SessionNotCreatedError(e.message);
|
|
64
58
|
}
|
|
@@ -92,8 +86,7 @@ commands.createSession = async function createSession(jsonwpDesiredCapabilities,
|
|
|
92
86
|
this.newCommandTimeoutMs = this.caps.newCommandTimeout * 1000;
|
|
93
87
|
}
|
|
94
88
|
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
this.log.info(`Session created with session id: ${this.sessionId}`);
|
|
97
90
|
return [this.sessionId, caps];
|
|
98
91
|
};
|
|
99
92
|
|
|
@@ -132,7 +125,7 @@ commands.deleteSession = async function deleteSession() {
|
|
|
132
125
|
this.sessionId = null;
|
|
133
126
|
};
|
|
134
127
|
|
|
135
|
-
function fixCaps(originalCaps, desiredCapConstraints = {}) {
|
|
128
|
+
function fixCaps(originalCaps, desiredCapConstraints = {}, log) {
|
|
136
129
|
let caps = _lodash.default.clone(originalCaps);
|
|
137
130
|
|
|
138
131
|
let booleanCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isBoolean === true));
|
|
@@ -144,8 +137,7 @@ function fixCaps(originalCaps, desiredCapConstraints = {}) {
|
|
|
144
137
|
value = value.toLowerCase();
|
|
145
138
|
|
|
146
139
|
if (value === 'true' || value === 'false') {
|
|
147
|
-
|
|
148
|
-
|
|
140
|
+
log.warn(`Capability '${cap}' changed from string to boolean. This may cause unexpected behavior`);
|
|
149
141
|
caps[cap] = value === 'true';
|
|
150
142
|
}
|
|
151
143
|
}
|
|
@@ -164,8 +156,7 @@ function fixCaps(originalCaps, desiredCapConstraints = {}) {
|
|
|
164
156
|
newValue = parseFloat(value);
|
|
165
157
|
}
|
|
166
158
|
|
|
167
|
-
|
|
168
|
-
|
|
159
|
+
log.warn(`Capability '${cap}' changed from string ('${value}') to integer (${newValue}). This may cause unexpected behavior`);
|
|
169
160
|
caps[cap] = newValue;
|
|
170
161
|
}
|
|
171
162
|
}
|
|
@@ -177,4 +168,4 @@ var _default = commands;
|
|
|
177
168
|
exports.default = _default;require('source-map-support').install();
|
|
178
169
|
|
|
179
170
|
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJjcmVhdGVTZXNzaW9uIiwianNvbndwRGVzaXJlZENhcGFiaWxpdGllcyIsImpzb253cFJlcXVpcmVkQ2FwcyIsInczY0NhcGFiaWxpdGllcyIsInNlc3Npb25JZCIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJsb2ciLCJkZWJ1ZyIsIndhcm4iLCJzZXRQcm90b2NvbFczQyIsIm9yaWdpbmFsQ2FwcyIsIl8iLCJjbG9uZURlZXAiLCJKU09OIiwic3RyaW5naWZ5IiwiY2FwcyIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsInNob3VsZFZhbGlkYXRlQ2FwcyIsIkFQUElVTV9PUFRTX0NBUCIsIlBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCIsImZpeENhcHMiLCJlIiwibWVzc2FnZSIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJ1dGlsIiwidXVpZFY0Iiwib3B0cyIsImluaXRpYWxPcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwibm9SZXNldCIsImZ1bGxSZXNldCIsIkVycm9yIiwiZmFzdFJlc2V0Iiwic2tpcFVuaW5zdGFsbCIsImFwcCIsInRyaW0iLCJpc1VuZGVmaW5lZCIsIm5ld0NvbW1hbmRUaW1lb3V0IiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImluZm8iLCJnZXRTZXNzaW9ucyIsInJldCIsInB1c2giLCJpZCIsImNhcGFiaWxpdGllcyIsImdldFNlc3Npb24iLCJldmVudFRpbWluZ3MiLCJldmVudHMiLCJldmVudEhpc3RvcnkiLCJkZWxldGVTZXNzaW9uIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsImlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQiLCJjb21tYW5kc1F1ZXVlR3VhcmQiLCJpc0J1c3kiLCJrZXkiLCJrZXlzIiwicXVldWVzIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsInBpY2tCeSIsImsiLCJpc0Jvb2xlYW4iLCJjYXAiLCJ2YWx1ZSIsImlzU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJpbnRDYXBzIiwiaXNOdW1iZXIiLCJpc05hTiIsIm5ld1ZhbHVlIiwicGFyc2VJbnQiLCJwYXJzZUZsb2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmOztBQUlBQSxRQUFRLENBQUNDLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QkMseUJBQTlCLEVBQXlEQyxrQkFBekQsRUFBNkVDLGVBQTdFLEVBQThGO0FBQ3JILE1BQUksS0FBS0MsU0FBTCxLQUFtQixJQUF2QixFQUE2QjtBQUMzQixVQUFNLElBQUlDLGlCQUFPQyxzQkFBWCxDQUFrQyxpQ0FDQSwwQkFEbEMsQ0FBTjtBQUVEOztBQUVEQyxrQkFBSUMsS0FBSjs7QUFFQSxNQUFJLENBQUNMLGVBQUwsRUFBc0I7QUFDcEIsVUFBTSxJQUFJRSxpQkFBT0Msc0JBQVgsQ0FBa0Msd0RBQ3RDLHlGQURJLENBQU47QUFFRDs7QUFFRCxNQUFJTCx5QkFBSixFQUErQjtBQUM3Qk0sb0JBQUlFLElBQUosQ0FBUyx3R0FBVDtBQUNEOztBQUVELE9BQUtDLGNBQUw7QUFFQSxPQUFLQyxZQUFMLEdBQW9CQyxnQkFBRUMsU0FBRixDQUFZVixlQUFaLENBQXBCOztBQUNBSSxrQkFBSUMsS0FBSixDQUFXLDJDQUEwQ00sSUFBSSxDQUFDQyxTQUFMLENBQWVaLGVBQWYsRUFBZ0MsSUFBaEMsRUFBc0MsQ0FBdEMsQ0FBeUMsRUFBOUY7O0FBR0EsTUFBSWEsSUFBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFBLElBQUksR0FBRyx1Q0FBb0JiLGVBQXBCLEVBQXFDLEtBQUtjLHFCQUExQyxFQUFpRSxLQUFLQyxrQkFBdEUsQ0FBUDs7QUFDQSxRQUFJRixJQUFJLENBQUNHLDZCQUFELENBQVIsRUFBMkI7QUFDekJaLHNCQUFJQyxLQUFKLENBQVcsU0FBUVksc0NBQXlCLHdEQUE1Qzs7QUFDQUosTUFB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QUNEO0FBQ0Y7QUFDRjs7QUFHRCxNQUFJRyxPQUFPLEdBQUd4RCxnQkFBRTZDLElBQUYsQ0FBTzdDLGdCQUFFaUQsTUFBRixDQUFTNUMscUJBQVQsRUFBaUM2QyxDQUFELElBQU9BLENBQUMsQ0FBQ08sUUFBRixLQUFlLElBQXRELENBQVAsQ0FBZDs7QUFDQSxPQUFLLElBQUlMLEdBQVQsSUFBZ0JJLE9BQWhCLEVBQXlCO0FBQ3ZCLFFBQUlILEtBQUssR0FBR3RELFlBQVksQ0FBQ3FELEdBQUQsQ0FBeEI7O0FBQ0EsUUFBSXBELGdCQUFFc0QsUUFBRixDQUFXRCxLQUFYLEtBQXFCLENBQUNLLEtBQUssQ0FBQ0wsS0FBRCxDQUEvQixFQUF3QztBQUN0Q0EsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUM1QixJQUFOLEVBQVI7QUFDQSxVQUFJa0MsUUFBUSxHQUFHQyxRQUFRLENBQUNQLEtBQUQsRUFBUSxFQUFSLENBQXZCOztBQUNBLFVBQUlBLEtBQUssS0FBTSxHQUFFTSxRQUFTLEVBQTFCLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLEdBQUdFLFVBQVUsQ0FBQ1IsS0FBRCxDQUFyQjtBQUNEOztBQUNEMUQsc0JBQUlFLElBQUosQ0FBVSxlQUFjdUQsR0FBSSwyQkFBMEJDLEtBQU0sa0JBQWlCTSxRQUFTLHVDQUF0Rjs7QUFDQXZELE1BQUFBLElBQUksQ0FBQ2dELEdBQUQsQ0FBSixHQUFZTyxRQUFaO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPdkQsSUFBUDtBQUNEOztlQUVjakIsUSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHByb2Nlc3NDYXBhYmlsaXRpZXMsIHByb21vdGVBcHBpdW1PcHRpb25zLCBBUFBJVU1fT1BUU19DQVAsIFBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCB9IGZyb20gJy4uL2NhcGFiaWxpdGllcyc7XG5cbmxldCBjb21tYW5kcyA9IHt9O1xuXG4vLyBUT0RPOiBSZW1vdmUganNvbndwRGVzaXJlZENhcGFiaWxpdGllcyBhbmQganNvbndwUmVxdWlyZWRDYXBzIGNvbXBsZXRlbHlcbi8vICAgICAgIHNpbmNlIEFwcGl1bSAyLjAgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoZW0uXG5jb21tYW5kcy5jcmVhdGVTZXNzaW9uID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvbiAoanNvbndwRGVzaXJlZENhcGFiaWxpdGllcywganNvbndwUmVxdWlyZWRDYXBzLCB3M2NDYXBhYmlsaXRpZXMpIHtcbiAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdDYW5ub3QgY3JlYXRlIGEgbmV3IHNlc3Npb24gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aGlsZSBvbmUgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZygpO1xuXG4gIGlmICghdzNjQ2FwYWJpbGl0aWVzKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdBcHBpdW0gb25seSBzdXBwb3J0cyBXM0Mtc3R5bGUgY2FwYWJpbGl0eSBvYmplY3RzLiAnICtcbiAgICAgICdZb3VyIGNsaWVudCBpcyBzZW5kaW5nIGFuIG9sZGVyIGNhcGFiaWxpdGllcyBmb3JtYXQuIFBsZWFzZSB1cGRhdGUgeW91ciBjbGllbnQgbGlicmFyeS4nKTtcbiAgfVxuXG4gIGlmIChqc29ud3BEZXNpcmVkQ2FwYWJpbGl0aWVzKSB7XG4gICAgbG9nLndhcm4oJ0FwcGl1bSByZWNlaXZlZCAoTSlKU09OV1AgZGVzaXJlZCBjYXBhYmlsaXRpZXMgaW4gYWxvbmdzaWRlIHRoZSBXM0MgY2FwYWJpbGl0aWVzOyB0aGV5IHdpbGwgYmUgaWdub3JlZCcpO1xuICB9XG5cbiAgdGhpcy5zZXRQcm90b2NvbFczQygpO1xuXG4gIHRoaXMub3JpZ2luYWxDYXBzID0gXy5jbG9uZURlZXAodzNjQ2FwYWJpbGl0aWVzKTtcbiAgbG9nLmRlYnVnKGBDcmVhdGluZyBzZXNzaW9uIHdpdGggVzNDIGNhcGFiaWxpdGllczogJHtKU09OLnN0cmluZ2lmeSh3M2NDYXBhYmlsaXRpZXMsIG51bGwsIDIpfWApO1xuXG5cbiAgbGV0IGNhcHM7XG4gIHRyeSB7XG4gICAgY2FwcyA9IHByb2Nlc3NDYXBhYmlsaXRpZXModzNjQ2FwYWJpbGl0aWVzLCB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cywgdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHMpO1xuICAgIGlmIChjYXBzW0FQUElVTV9PUFRTX0NBUF0pIHtcbiAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IGNhcGFiaWxpdHkgcHJlc2VudDsgd2lsbCBwcm9tb3RlIGl0ZW1zIGluc2lkZSB0byBjYXBzYCk7XG4gICAgICBjYXBzID0gcHJvbW90ZUFwcGl1bU9wdGlvbnMoY2Fwcyk7XG4gICAgfVxuICAgIGNhcHMgPSBmaXhDYXBzKGNhcHMsIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihlLm1lc3NhZ2UpO1xuICB9XG5cbiAgdGhpcy52YWxpZGF0ZURlc2lyZWRDYXBzKGNhcHMpO1xuXG4gIHRoaXMuc2Vzc2lvbklkID0gdXRpbC51dWlkVjQoKTtcbiAgdGhpcy5jYXBzID0gY2FwcztcbiAgdGhpcy5vcHRzID0gXy5jbG9uZURlZXAodGhpcy5pbml0aWFsT3B0cyk7XG5cbiAgLy8gbWVyZ2UgY2FwcyBvbnRvIG9wdHMgc28gd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB3aGF0J3Mgd2hlcmVcbiAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdHMsIHRoaXMuY2Fwcyk7XG5cbiAgLy8gZGVhbCB3aXRoIHJlc2V0c1xuICAvLyBzb21lIHBlb3BsZSBsaWtlIHRvIGRvIHdlaXJkIHRoaW5ncyBieSBzZXR0aW5nIG5vUmVzZXQgYW5kIGZ1bGxSZXNldFxuICAvLyBib3RoIHRvIHRydWUsIGJ1dCB0aGlzIGlzIG1pc2d1aWRlZCBhbmQgc3RyYW5nZSwgc28gZXJyb3IgaGVyZSBpbnN0ZWFkXG4gIGlmICh0aGlzLm9wdHMubm9SZXNldCAmJiB0aGlzLm9wdHMuZnVsbFJlc2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdub1Jlc2V0JyBhbmQgJ2Z1bGxSZXNldCcgY2FwYWJpbGl0aWVzIGFyZSBtdXR1YWxseSBcIiArXG4gICAgICAgICAgICAgICAgICAgICdleGNsdXNpdmUgYW5kIHNob3VsZCBub3QgYm90aCBiZSBzZXQgdG8gdHJ1ZS4gWW91ICcgK1xuICAgICAgICAgICAgICAgICAgICBcInByb2JhYmx5IG1lYW50IHRvIGp1c3QgdXNlICdmdWxsUmVzZXQnIG9uIGl0cyBvd25cIik7XG4gIH1cbiAgaWYgKHRoaXMub3B0cy5ub1Jlc2V0ID09PSB0cnVlKSB7XG4gICAgdGhpcy5vcHRzLmZ1bGxSZXNldCA9IGZhbHNlO1xuICB9XG4gIGlmICh0aGlzLm9wdHMuZnVsbFJlc2V0ID09PSB0cnVlKSB7XG4gICAgdGhpcy5vcHRzLm5vUmVzZXQgPSBmYWxzZTtcbiAgfVxuICB0aGlzLm9wdHMuZmFzdFJlc2V0ID0gIXRoaXMub3B0cy5mdWxsUmVzZXQgJiYgIXRoaXMub3B0cy5ub1Jlc2V0O1xuICB0aGlzLm9wdHMuc2tpcFVuaW5zdGFsbCA9IHRoaXMub3B0cy5mYXN0UmVzZXQgfHwgdGhpcy5vcHRzLm5vUmVzZXQ7XG5cbiAgLy8gUHJldmVudHMgZW1wdHkgc3RyaW5nIGNhcHMgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGl0IGV2ZXJ5d2hlcmVcbiAgaWYgKHR5cGVvZiB0aGlzLm9wdHMuYXBwID09PSAnc3RyaW5nJyAmJiB0aGlzLm9wdHMuYXBwLnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aGlzLm9wdHMuYXBwID0gbnVsbDtcbiAgfVxuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmNhcHMubmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zID0gKHRoaXMuY2Fwcy5uZXdDb21tYW5kVGltZW91dCAqIDEwMDApO1xuICB9XG5cbiAgbG9nLmluZm8oYFNlc3Npb24gY3JlYXRlZCB3aXRoIHNlc3Npb24gaWQ6ICR7dGhpcy5zZXNzaW9uSWR9YCk7XG5cbiAgcmV0dXJuIFt0aGlzLnNlc3Npb25JZCwgY2Fwc107XG59O1xuXG5jb21tYW5kcy5nZXRTZXNzaW9ucyA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb25zICgpIHtcbiAgbGV0IHJldCA9IFtdO1xuXG4gIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgIHJldC5wdXNoKHtcbiAgICAgIGlkOiB0aGlzLnNlc3Npb25JZCxcbiAgICAgIGNhcGFiaWxpdGllczogdGhpcy5jYXBzXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcblxuY29tbWFuZHMuZ2V0U2Vzc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb24gKCkge1xuICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNhcHMsIHtldmVudHM6IHRoaXMuZXZlbnRIaXN0b3J5fSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuY2Fwcztcbn07XG5cbmNvbW1hbmRzLmRlbGV0ZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBkZWxldGVTZXNzaW9uICgvKiBzZXNzaW9uSWQgKi8pIHtcbiAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuaXNCdXN5KCkpIHtcbiAgICAvLyBzaW1wbGUgaGFjayB0byByZWxlYXNlIHBlbmRpbmcgY29tbWFuZHMgaWYgdGhleSBleGlzdFxuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyh0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXMpKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXNba2V5XSA9IFtdO1xuICAgIH1cbiAgfVxuICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG59O1xuXG5mdW5jdGlvbiBmaXhDYXBzIChvcmlnaW5hbENhcHMsIGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHt9KSB7XG4gIGxldCBjYXBzID0gXy5jbG9uZShvcmlnaW5hbENhcHMpO1xuXG4gIC8vIGJvb2xlYW4gY2FwYWJpbGl0aWVzIGNhbiBiZSBwYXNzZWQgaW4gYXMgc3RyaW5ncyAnZmFsc2UnIGFuZCAndHJ1ZSdcbiAgLy8gd2hpY2ggd2Ugd2FudCB0byB0cmFuc2xhdGUgaW50byBib29sZWFuIHZhbHVlc1xuICBsZXQgYm9vbGVhbkNhcHMgPSBfLmtleXMoXy5waWNrQnkoZGVzaXJlZENhcENvbnN0cmFpbnRzLCAoaykgPT4gay5pc0Jvb2xlYW4gPT09IHRydWUpKTtcbiAgZm9yIChsZXQgY2FwIG9mIGJvb2xlYW5DYXBzKSB7XG4gICAgbGV0IHZhbHVlID0gb3JpZ2luYWxDYXBzW2NhcF07XG4gICAgaWYgKF8uaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuICAgICAgICBsb2cud2FybihgQ2FwYWJpbGl0eSAnJHtjYXB9JyBjaGFuZ2VkIGZyb20gc3RyaW5nIHRvIGJvb2xlYW4uIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gKHZhbHVlID09PSAndHJ1ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGludCBjYXBhYmlsaXRpZXMgYXJlIG9mdGVuIHNlbnQgaW4gYXMgc3RyaW5ncyBieSBmcmFtZXdvcmtzXG4gIGxldCBpbnRDYXBzID0gXy5rZXlzKF8ucGlja0J5KGRlc2lyZWRDYXBDb25zdHJhaW50cywgKGspID0+IGsuaXNOdW1iZXIgPT09IHRydWUpKTtcbiAgZm9yIChsZXQgY2FwIG9mIGludENhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7XG4gICAgICBsZXQgbmV3VmFsdWUgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgaWYgKHZhbHVlICE9PSBgJHtuZXdWYWx1ZX1gKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBsb2cud2FybihgQ2FwYWJpbGl0eSAnJHtjYXB9JyBjaGFuZ2VkIGZyb20gc3RyaW5nICgnJHt2YWx1ZX0nKSB0byBpbnRlZ2VyICgke25ld1ZhbHVlfSkuIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JgKTtcbiAgICAgIGNhcHNbY2FwXSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjYXBzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbmV4cG9ydCB7IHByb21vdGVBcHBpdW1PcHRpb25zIH07XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJjcmVhdGVTZXNzaW9uIiwidzNjQ2FwYWJpbGl0aWVzMSIsInczY0NhcGFiaWxpdGllczIiLCJ3M2NDYXBhYmlsaXRpZXMiLCJzZXNzaW9uSWQiLCJlcnJvcnMiLCJTZXNzaW9uTm90Q3JlYXRlZEVycm9yIiwibG9nIiwiZGVidWciLCJvcmlnaW5hbENhcHMiLCJmaW5kIiwiaXNXM2NDYXBzIiwic2V0UHJvdG9jb2xXM0MiLCJfIiwiY2xvbmVEZWVwIiwiSlNPTiIsInN0cmluZ2lmeSIsImNhcHMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJBUFBJVU1fT1BUU19DQVAiLCJQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAiLCJmaXhDYXBzIiwiZSIsIm1lc3NhZ2UiLCJ2YWxpZGF0ZURlc2lyZWRDYXBzIiwidXRpbCIsInV1aWRWNCIsIm9wdHMiLCJpbml0aWFsT3B0cyIsIk9iamVjdCIsImFzc2lnbiIsIm5vUmVzZXQiLCJmdWxsUmVzZXQiLCJFcnJvciIsImZhc3RSZXNldCIsInNraXBVbmluc3RhbGwiLCJhcHAiLCJ0cmltIiwiaXNVbmRlZmluZWQiLCJuZXdDb21tYW5kVGltZW91dCIsIm5ld0NvbW1hbmRUaW1lb3V0TXMiLCJpbmZvIiwiZ2V0U2Vzc2lvbnMiLCJyZXQiLCJwdXNoIiwiaWQiLCJjYXBhYmlsaXRpZXMiLCJnZXRTZXNzaW9uIiwiZXZlbnRUaW1pbmdzIiwiZXZlbnRzIiwiZXZlbnRIaXN0b3J5IiwiZGVsZXRlU2Vzc2lvbiIsImNsZWFyTmV3Q29tbWFuZFRpbWVvdXQiLCJpc0NvbW1hbmRzUXVldWVFbmFibGVkIiwiY29tbWFuZHNRdWV1ZUd1YXJkIiwiaXNCdXN5Iiwia2V5Iiwia2V5cyIsInF1ZXVlcyIsImNsb25lIiwiYm9vbGVhbkNhcHMiLCJwaWNrQnkiLCJrIiwiaXNCb29sZWFuIiwiY2FwIiwidmFsdWUiLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwid2FybiIsImludENhcHMiLCJpc051bWJlciIsImlzTmFOIiwibmV3VmFsdWUiLCJwYXJzZUludCIsInBhcnNlRmxvYXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOztBQUVBQSxRQUFRLENBQUNDLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QkMsZ0JBQTlCLEVBQWdEQyxnQkFBaEQsRUFBa0VDLGVBQWxFLEVBQW1GO0FBQzFHLE1BQUksS0FBS0MsU0FBTCxLQUFtQixJQUF2QixFQUE2QjtBQUMzQixVQUFNLElBQUlDLGlCQUFPQyxzQkFBWCxDQUFrQyxzREFBbEMsQ0FBTjtBQUNEOztBQUVELE9BQUtDLEdBQUwsQ0FBU0MsS0FBVDtBQU1BLFFBQU1DLFlBQVksR0FBRyxDQUFDTixlQUFELEVBQWtCRixnQkFBbEIsRUFBb0NDLGdCQUFwQyxFQUFzRFEsSUFBdEQsQ0FBMkRDLHdCQUEzRCxDQUFyQjs7QUFDQSxNQUFJLENBQUNGLFlBQUwsRUFBbUI7QUFDakIsVUFBTSxJQUFJSixpQkFBT0Msc0JBQVgsQ0FBa0Msd0RBQ3RDLHlGQURJLENBQU47QUFFRDs7QUFFRCxPQUFLTSxjQUFMO0FBRUEsT0FBS0gsWUFBTCxHQUFvQkksZ0JBQUVDLFNBQUYsQ0FBWUwsWUFBWixDQUFwQjtBQUNBLE9BQUtGLEdBQUwsQ0FBU0MsS0FBVCxDQUFnQiwyQ0FBMENPLElBQUksQ0FBQ0MsU0FBTCxDQUFlUCxZQUFmLEVBQTZCLElBQTdCLEVBQW1DLENBQW5DLENBQXNDLEVBQWhHO0FBRUEsTUFBSVEsSUFBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFBLElBQUksR0FBRyx1Q0FBb0JSLFlBQXBCLEVBQWtDLEtBQUtTLHFCQUF2QyxFQUE4RCxLQUFLQyxrQkFBbkUsQ0FBUDs7QUFDQSxRQUFJRixJQUFJLENBQUNHLDZCQUFELENBQVIsRUFBMkI7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QUFDekMzRCxRQUFBQSxHQUFHLENBQUM4RCxJQUFKLENBQVUsZUFBY0osR0FBSSxzRUFBNUI7QUFDQWhELFFBQUFBLElBQUksQ0FBQ2dELEdBQUQsQ0FBSixHQUFhQyxLQUFLLEtBQUssTUFBdkI7QUFDRDtBQUNGO0FBQ0Y7O0FBR0QsTUFBSUksT0FBTyxHQUFHekQsZ0JBQUU2QyxJQUFGLENBQU83QyxnQkFBRWlELE1BQUYsQ0FBUzVDLHFCQUFULEVBQWlDNkMsQ0FBRCxJQUFPQSxDQUFDLENBQUNRLFFBQUYsS0FBZSxJQUF0RCxDQUFQLENBQWQ7O0FBQ0EsT0FBSyxJQUFJTixHQUFULElBQWdCSyxPQUFoQixFQUF5QjtBQUN2QixRQUFJSixLQUFLLEdBQUd6RCxZQUFZLENBQUN3RCxHQUFELENBQXhCOztBQUNBLFFBQUlwRCxnQkFBRXNELFFBQUYsQ0FBV0QsS0FBWCxLQUFxQixDQUFDTSxLQUFLLENBQUNOLEtBQUQsQ0FBL0IsRUFBd0M7QUFDdENBLE1BQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDNUIsSUFBTixFQUFSO0FBQ0EsVUFBSW1DLFFBQVEsR0FBR0MsUUFBUSxDQUFDUixLQUFELEVBQVEsRUFBUixDQUF2Qjs7QUFDQSxVQUFJQSxLQUFLLEtBQU0sR0FBRU8sUUFBUyxFQUExQixFQUE2QjtBQUMzQkEsUUFBQUEsUUFBUSxHQUFHRSxVQUFVLENBQUNULEtBQUQsQ0FBckI7QUFDRDs7QUFDRDNELE1BQUFBLEdBQUcsQ0FBQzhELElBQUosQ0FBVSxlQUFjSixHQUFJLDJCQUEwQkMsS0FBTSxrQkFBaUJPLFFBQVMsdUNBQXRGO0FBQ0F4RCxNQUFBQSxJQUFJLENBQUNnRCxHQUFELENBQUosR0FBWVEsUUFBWjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT3hELElBQVA7QUFDRDs7ZUFFY2xCLFEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vLi4vcHJvdG9jb2wnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge1xuICBwcm9jZXNzQ2FwYWJpbGl0aWVzLCBwcm9tb3RlQXBwaXVtT3B0aW9ucywgQVBQSVVNX09QVFNfQ0FQLCBQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAsXG59IGZyb20gJy4uL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBpc1czY0NhcHMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NhcGFiaWxpdGllcyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmNvbW1hbmRzLmNyZWF0ZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBjcmVhdGVTZXNzaW9uICh3M2NDYXBhYmlsaXRpZXMxLCB3M2NDYXBhYmlsaXRpZXMyLCB3M2NDYXBhYmlsaXRpZXMpIHtcbiAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdDYW5ub3QgY3JlYXRlIGEgbmV3IHNlc3Npb24gd2hpbGUgb25lIGlzIGluIHByb2dyZXNzJyk7XG4gIH1cblxuICB0aGlzLmxvZy5kZWJ1ZygpO1xuXG4gIC8vIEhpc3RvcmljYWxseSB0aGUgZmlyc3QgdHdvIGFyZ3VtZW50cyB3ZXJlIHJlc2VydmVkIGZvciBKU09OV1AgY2FwYWJpbGl0aWVzLlxuICAvLyBBcHBpdW0gMiBoYXMgZHJvcHBlZCB0aGUgc3VwcG9ydCBvZiB0aGVzZSwgc28gbm93IHdlIG9ubHkgYWNjZXB0IGNhcGFiaWxpdHlcbiAgLy8gb2JqZWN0cyBpbiBXM0MgZm9ybWF0IGFuZCB0aHVzIGFsbG93IGFueSBvZiB0aGUgdGhyZWUgYXJndW1lbnRzIHRvIHJlcHJlc2VudFxuICAvLyB0aGUgbGF0dGVyLlxuICBjb25zdCBvcmlnaW5hbENhcHMgPSBbdzNjQ2FwYWJpbGl0aWVzLCB3M2NDYXBhYmlsaXRpZXMxLCB3M2NDYXBhYmlsaXRpZXMyXS5maW5kKGlzVzNjQ2Fwcyk7XG4gIGlmICghb3JpZ2luYWxDYXBzKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdBcHBpdW0gb25seSBzdXBwb3J0cyBXM0Mtc3R5bGUgY2FwYWJpbGl0eSBvYmplY3RzLiAnICtcbiAgICAgICdZb3VyIGNsaWVudCBpcyBzZW5kaW5nIGFuIG9sZGVyIGNhcGFiaWxpdGllcyBmb3JtYXQuIFBsZWFzZSB1cGRhdGUgeW91ciBjbGllbnQgbGlicmFyeS4nKTtcbiAgfVxuXG4gIHRoaXMuc2V0UHJvdG9jb2xXM0MoKTtcblxuICB0aGlzLm9yaWdpbmFsQ2FwcyA9IF8uY2xvbmVEZWVwKG9yaWdpbmFsQ2Fwcyk7XG4gIHRoaXMubG9nLmRlYnVnKGBDcmVhdGluZyBzZXNzaW9uIHdpdGggVzNDIGNhcGFiaWxpdGllczogJHtKU09OLnN0cmluZ2lmeShvcmlnaW5hbENhcHMsIG51bGwsIDIpfWApO1xuXG4gIGxldCBjYXBzO1xuICB0cnkge1xuICAgIGNhcHMgPSBwcm9jZXNzQ2FwYWJpbGl0aWVzKG9yaWdpbmFsQ2FwcywgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMsIHRoaXMuc2hvdWxkVmFsaWRhdGVDYXBzKTtcbiAgICBpZiAoY2Fwc1tBUFBJVU1fT1BUU19DQVBdKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgRm91bmQgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IGNhcGFiaWxpdHkgcHJlc2VudDsgd2lsbCBwcm9tb3RlIGl0ZW1zIGluc2lkZSB0byBjYXBzYCk7XG4gICAgICBjYXBzID0gcHJvbW90ZUFwcGl1bU9wdGlvbnMoY2Fwcyk7XG4gICAgfVxuICAgIGNhcHMgPSBmaXhDYXBzKGNhcHMsIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzLCB0aGlzLmxvZyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoZS5tZXNzYWdlKTtcbiAgfVxuXG4gIHRoaXMudmFsaWRhdGVEZXNpcmVkQ2FwcyhjYXBzKTtcblxuICB0aGlzLnNlc3Npb25JZCA9IHV0aWwudXVpZFY0KCk7XG4gIHRoaXMuY2FwcyA9IGNhcHM7XG4gIHRoaXMub3B0cyA9IF8uY2xvbmVEZWVwKHRoaXMuaW5pdGlhbE9wdHMpO1xuXG4gIC8vIG1lcmdlIGNhcHMgb250byBvcHRzIHNvIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgd2hhdCdzIHdoZXJlXG4gIE9iamVjdC5hc3NpZ24odGhpcy5vcHRzLCB0aGlzLmNhcHMpO1xuXG4gIC8vIGRlYWwgd2l0aCByZXNldHNcbiAgLy8gc29tZSBwZW9wbGUgbGlrZSB0byBkbyB3ZWlyZCB0aGluZ3MgYnkgc2V0dGluZyBub1Jlc2V0IGFuZCBmdWxsUmVzZXRcbiAgLy8gYm90aCB0byB0cnVlLCBidXQgdGhpcyBpcyBtaXNndWlkZWQgYW5kIHN0cmFuZ2UsIHNvIGVycm9yIGhlcmUgaW5zdGVhZFxuICBpZiAodGhpcy5vcHRzLm5vUmVzZXQgJiYgdGhpcy5vcHRzLmZ1bGxSZXNldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnbm9SZXNldCcgYW5kICdmdWxsUmVzZXQnIGNhcGFiaWxpdGllcyBhcmUgbXV0dWFsbHkgXCIgK1xuICAgICAgICAgICAgICAgICAgICAnZXhjbHVzaXZlIGFuZCBzaG91bGQgbm90IGJvdGggYmUgc2V0IHRvIHRydWUuIFlvdSAnICtcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9iYWJseSBtZWFudCB0byBqdXN0IHVzZSAnZnVsbFJlc2V0JyBvbiBpdHMgb3duXCIpO1xuICB9XG4gIGlmICh0aGlzLm9wdHMubm9SZXNldCA9PT0gdHJ1ZSkge1xuICAgIHRoaXMub3B0cy5mdWxsUmVzZXQgPSBmYWxzZTtcbiAgfVxuICBpZiAodGhpcy5vcHRzLmZ1bGxSZXNldCA9PT0gdHJ1ZSkge1xuICAgIHRoaXMub3B0cy5ub1Jlc2V0ID0gZmFsc2U7XG4gIH1cbiAgdGhpcy5vcHRzLmZhc3RSZXNldCA9ICF0aGlzLm9wdHMuZnVsbFJlc2V0ICYmICF0aGlzLm9wdHMubm9SZXNldDtcbiAgdGhpcy5vcHRzLnNraXBVbmluc3RhbGwgPSB0aGlzLm9wdHMuZmFzdFJlc2V0IHx8IHRoaXMub3B0cy5ub1Jlc2V0O1xuXG4gIC8vIFByZXZlbnRzIGVtcHR5IHN0cmluZyBjYXBzIHNvIHdlIGRvbid0IG5lZWQgdG8gdGVzdCBpdCBldmVyeXdoZXJlXG4gIGlmICh0eXBlb2YgdGhpcy5vcHRzLmFwcCA9PT0gJ3N0cmluZycgJiYgdGhpcy5vcHRzLmFwcC50cmltKCkgPT09ICcnKSB7XG4gICAgdGhpcy5vcHRzLmFwcCA9IG51bGw7XG4gIH1cblxuICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5jYXBzLm5ld0NvbW1hbmRUaW1lb3V0KSkge1xuICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9ICh0aGlzLmNhcHMubmV3Q29tbWFuZFRpbWVvdXQgKiAxMDAwKTtcbiAgfVxuXG4gIHRoaXMubG9nLmluZm8oYFNlc3Npb24gY3JlYXRlZCB3aXRoIHNlc3Npb24gaWQ6ICR7dGhpcy5zZXNzaW9uSWR9YCk7XG5cbiAgcmV0dXJuIFt0aGlzLnNlc3Npb25JZCwgY2Fwc107XG59O1xuXG5jb21tYW5kcy5nZXRTZXNzaW9ucyA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb25zICgpIHtcbiAgbGV0IHJldCA9IFtdO1xuXG4gIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgIHJldC5wdXNoKHtcbiAgICAgIGlkOiB0aGlzLnNlc3Npb25JZCxcbiAgICAgIGNhcGFiaWxpdGllczogdGhpcy5jYXBzXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcblxuY29tbWFuZHMuZ2V0U2Vzc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb24gKCkge1xuICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNhcHMsIHtldmVudHM6IHRoaXMuZXZlbnRIaXN0b3J5fSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuY2Fwcztcbn07XG5cbmNvbW1hbmRzLmRlbGV0ZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBkZWxldGVTZXNzaW9uICgvKiBzZXNzaW9uSWQgKi8pIHtcbiAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuaXNCdXN5KCkpIHtcbiAgICAvLyBzaW1wbGUgaGFjayB0byByZWxlYXNlIHBlbmRpbmcgY29tbWFuZHMgaWYgdGhleSBleGlzdFxuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyh0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXMpKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXNba2V5XSA9IFtdO1xuICAgIH1cbiAgfVxuICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG59O1xuXG5mdW5jdGlvbiBmaXhDYXBzIChvcmlnaW5hbENhcHMsIGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHt9LCBsb2cpIHtcbiAgbGV0IGNhcHMgPSBfLmNsb25lKG9yaWdpbmFsQ2Fwcyk7XG5cbiAgLy8gYm9vbGVhbiBjYXBhYmlsaXRpZXMgY2FuIGJlIHBhc3NlZCBpbiBhcyBzdHJpbmdzICdmYWxzZScgYW5kICd0cnVlJ1xuICAvLyB3aGljaCB3ZSB3YW50IHRvIHRyYW5zbGF0ZSBpbnRvIGJvb2xlYW4gdmFsdWVzXG4gIGxldCBib29sZWFuQ2FwcyA9IF8ua2V5cyhfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzQm9vbGVhbiA9PT0gdHJ1ZSkpO1xuICBmb3IgKGxldCBjYXAgb2YgYm9vbGVhbkNhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlID09PSAnZmFsc2UnKSB7XG4gICAgICAgIGxvZy53YXJuKGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgdG8gYm9vbGVhbi4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmApO1xuICAgICAgICBjYXBzW2NhcF0gPSAodmFsdWUgPT09ICd0cnVlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaW50IGNhcGFiaWxpdGllcyBhcmUgb2Z0ZW4gc2VudCBpbiBhcyBzdHJpbmdzIGJ5IGZyYW1ld29ya3NcbiAgbGV0IGludENhcHMgPSBfLmtleXMoXy5waWNrQnkoZGVzaXJlZENhcENvbnN0cmFpbnRzLCAoaykgPT4gay5pc051bWJlciA9PT0gdHJ1ZSkpO1xuICBmb3IgKGxldCBjYXAgb2YgaW50Q2Fwcykge1xuICAgIGxldCB2YWx1ZSA9IG9yaWdpbmFsQ2Fwc1tjYXBdO1xuICAgIGlmIChfLmlzU3RyaW5nKHZhbHVlKSAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICAgIGxldCBuZXdWYWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICBpZiAodmFsdWUgIT09IGAke25ld1ZhbHVlfWApIHtcbiAgICAgICAgbmV3VmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGxvZy53YXJuKGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgKCcke3ZhbHVlfScpIHRvIGludGVnZXIgKCR7bmV3VmFsdWV9KS4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmApO1xuICAgICAgY2Fwc1tjYXBdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhcHM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuZXhwb3J0IHsgcHJvbW90ZUFwcGl1bU9wdGlvbnMgfTtcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvc2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLiJ9
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -9,13 +7,11 @@ exports.default = void 0;
|
|
|
9
7
|
|
|
10
8
|
require("source-map-support/register");
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
let commands = {};
|
|
10
|
+
const commands = {};
|
|
15
11
|
|
|
16
12
|
commands.updateSettings = async function updateSettings(newSettings) {
|
|
17
13
|
if (!this.settings) {
|
|
18
|
-
|
|
14
|
+
this.log.errorAndThrow('Cannot update settings; settings object not found');
|
|
19
15
|
}
|
|
20
16
|
|
|
21
17
|
return await this.settings.update(newSettings);
|
|
@@ -23,7 +19,7 @@ commands.updateSettings = async function updateSettings(newSettings) {
|
|
|
23
19
|
|
|
24
20
|
commands.getSettings = async function getSettings() {
|
|
25
21
|
if (!this.settings) {
|
|
26
|
-
|
|
22
|
+
this.log.errorAndThrow('Cannot get settings; settings object not found');
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
return await this.settings.getSettings();
|
|
@@ -33,4 +29,4 @@ var _default = commands;
|
|
|
33
29
|
exports.default = _default;require('source-map-support').install();
|
|
34
30
|
|
|
35
31
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3NldHRpbmdzLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwidXBkYXRlU2V0dGluZ3MiLCJuZXdTZXR0aW5ncyIsInNldHRpbmdzIiwibG9nIiwiZXJyb3JBbmRUaHJvdyIsInVwZGF0ZSIsImdldFNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBRUFBLFFBQVEsQ0FBQ0MsY0FBVCxHQUEwQixlQUFlQSxjQUFmLENBQStCQyxXQUEvQixFQUE0QztBQUNwRSxNQUFJLENBQUMsS0FBS0MsUUFBVixFQUFvQjtBQUNsQixTQUFLQyxHQUFMLENBQVNDLGFBQVQsQ0FBdUIsbURBQXZCO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNLEtBQUtGLFFBQUwsQ0FBY0csTUFBZCxDQUFxQkosV0FBckIsQ0FBYjtBQUNELENBTEQ7O0FBT0FGLFFBQVEsQ0FBQ08sV0FBVCxHQUF1QixlQUFlQSxXQUFmLEdBQThCO0FBQ25ELE1BQUksQ0FBQyxLQUFLSixRQUFWLEVBQW9CO0FBQ2xCLFNBQUtDLEdBQUwsQ0FBU0MsYUFBVCxDQUF1QixnREFBdkI7QUFDRDs7QUFDRCxTQUFPLE1BQU0sS0FBS0YsUUFBTCxDQUFjSSxXQUFkLEVBQWI7QUFDRCxDQUxEOztlQU9lUCxRIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuY29tbWFuZHMudXBkYXRlU2V0dGluZ3MgPSBhc3luYyBmdW5jdGlvbiB1cGRhdGVTZXR0aW5ncyAobmV3U2V0dGluZ3MpIHtcbiAgaWYgKCF0aGlzLnNldHRpbmdzKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IHVwZGF0ZSBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldHRpbmdzLnVwZGF0ZShuZXdTZXR0aW5ncyk7XG59O1xuXG5jb21tYW5kcy5nZXRTZXR0aW5ncyA9IGFzeW5jIGZ1bmN0aW9uIGdldFNldHRpbmdzICgpIHtcbiAgaWYgKCF0aGlzLnNldHRpbmdzKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IGdldCBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
|
|
@@ -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 _logger = _interopRequireDefault(require("../logger"));
|
|
13
|
-
|
|
14
12
|
var _asyncbox = require("asyncbox");
|
|
15
13
|
|
|
16
14
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
@@ -28,7 +26,7 @@ const MIN_TIMEOUT = 0;
|
|
|
28
26
|
|
|
29
27
|
commands.timeouts = async function timeouts(type, ms, script, pageLoad, implicit) {
|
|
30
28
|
if (_support.util.hasValue(type) && _support.util.hasValue(ms)) {
|
|
31
|
-
|
|
29
|
+
this.log.debug(`MJSONWP timeout arguments: ${JSON.stringify({
|
|
32
30
|
type,
|
|
33
31
|
ms
|
|
34
32
|
})}}`);
|
|
@@ -55,7 +53,7 @@ commands.timeouts = async function timeouts(type, ms, script, pageLoad, implicit
|
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
this.log.debug(`W3C timeout argument: ${JSON.stringify({
|
|
59
57
|
script,
|
|
60
58
|
pageLoad,
|
|
61
59
|
implicit
|
|
@@ -95,11 +93,10 @@ commands.implicitWait = async function implicitWait(ms) {
|
|
|
95
93
|
|
|
96
94
|
helpers.setImplicitWait = function setImplicitWait(ms) {
|
|
97
95
|
this.implicitWaitMs = ms;
|
|
98
|
-
|
|
99
|
-
_logger.default.debug(`Set implicit wait to ${ms}ms`);
|
|
96
|
+
this.log.debug(`Set implicit wait to ${ms}ms`);
|
|
100
97
|
|
|
101
98
|
if (this.managedDrivers && this.managedDrivers.length) {
|
|
102
|
-
|
|
99
|
+
this.log.debug('Setting implicit wait on managed drivers');
|
|
103
100
|
|
|
104
101
|
for (let driver of this.managedDrivers) {
|
|
105
102
|
if (_lodash.default.isFunction(driver.setImplicitWait)) {
|
|
@@ -131,11 +128,10 @@ commands.newCommandTimeout = async function newCommandTimeout(ms) {
|
|
|
131
128
|
|
|
132
129
|
helpers.setNewCommandTimeout = function setNewCommandTimeout(ms) {
|
|
133
130
|
this.newCommandTimeoutMs = ms;
|
|
134
|
-
|
|
135
|
-
_logger.default.debug(`Set new command timeout to ${ms}ms`);
|
|
131
|
+
this.log.debug(`Set new command timeout to ${ms}ms`);
|
|
136
132
|
|
|
137
133
|
if (this.managedDrivers && this.managedDrivers.length) {
|
|
138
|
-
|
|
134
|
+
this.log.debug('Setting new command timeout on managed drivers');
|
|
139
135
|
|
|
140
136
|
for (let driver of this.managedDrivers) {
|
|
141
137
|
if (_lodash.default.isFunction(driver.setNewCommandTimeout)) {
|
|
@@ -156,15 +152,14 @@ helpers.startNewCommandTimeout = function startNewCommandTimeout() {
|
|
|
156
152
|
this.clearNewCommandTimeout();
|
|
157
153
|
if (!this.newCommandTimeoutMs) return;
|
|
158
154
|
this.noCommandTimer = setTimeout(async () => {
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
this.log.warn(`Shutting down because we waited ` + `${this.newCommandTimeoutMs / 1000.0} seconds for a command`);
|
|
161
156
|
const errorMessage = `New Command Timeout of ` + `${this.newCommandTimeoutMs / 1000.0} seconds ` + `expired. Try customizing the timeout using the ` + `'newCommandTimeout' desired capability`;
|
|
162
157
|
await this.startUnexpectedShutdown(new Error(errorMessage));
|
|
163
158
|
}, this.newCommandTimeoutMs);
|
|
164
159
|
};
|
|
165
160
|
|
|
166
161
|
helpers.implicitWaitForCondition = async function implicitWaitForCondition(condFn) {
|
|
167
|
-
|
|
162
|
+
this.log.debug(`Waiting up to ${this.implicitWaitMs} ms for condition`);
|
|
168
163
|
|
|
169
164
|
let wrappedCondFn = async (...args) => {
|
|
170
165
|
this.clearNewCommandTimeout();
|
|
@@ -174,7 +169,7 @@ helpers.implicitWaitForCondition = async function implicitWaitForCondition(condF
|
|
|
174
169
|
return await (0, _asyncbox.waitForCondition)(wrappedCondFn, {
|
|
175
170
|
waitMs: this.implicitWaitMs,
|
|
176
171
|
intervalMs: 500,
|
|
177
|
-
logger:
|
|
172
|
+
logger: this.log
|
|
178
173
|
});
|
|
179
174
|
};
|
|
180
175
|
|
|
@@ -193,4 +188,4 @@ var _default = extensions;
|
|
|
193
188
|
exports.default = _default;require('source-map-support').install();
|
|
194
189
|
|
|
195
190
|
|
|
196
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsIk1JTl9USU1FT1VUIiwidGltZW91dHMiLCJ0eXBlIiwibXMiLCJzY3JpcHQiLCJwYWdlTG9hZCIsImltcGxpY2l0IiwidXRpbCIsImhhc1ZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwibmV3Q29tbWFuZFRpbWVvdXQiLCJpbXBsaWNpdFdhaXRNSlNPTldQIiwicGFnZUxvYWRUaW1lb3V0TUpTT05XUCIsInNjcmlwdFRpbWVvdXRNSlNPTldQIiwiRXJyb3IiLCJzY3JpcHRUaW1lb3V0VzNDIiwicGFnZUxvYWRUaW1lb3V0VzNDIiwiaW1wbGljaXRXYWl0VzNDIiwiZ2V0VGltZW91dHMiLCJjb21tYW5kIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwicGFyc2VUaW1lb3V0QXJndW1lbnQiLCJtYW5hZ2VkRHJpdmVycyIsImxlbmd0aCIsImRyaXZlciIsIl8iLCJpc0Z1bmN0aW9uIiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsInNldE5ld0NvbW1hbmRUaW1lb3V0IiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsIm5vQ29tbWFuZFRpbWVyIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsInNldFRpbWVvdXQiLCJ3YXJuIiwiZXJyb3JNZXNzYWdlIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsIndhaXRNcyIsImludGVydmFsTXMiLCJsb2dnZXIiLCJkdXJhdGlvbiIsInBhcnNlSW50IiwiaXNOYU4iLCJVbmtub3duRXJyb3IiLCJPYmplY3QiLCJhc3NpZ24i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QUwsQ0FBNkIsSUFBSTFCLEtBQUosQ0FBVXlCLFlBQVYsQ0FBN0IsQ0FBTjtBQUNELEdBUitCLEVBUTdCLEtBQUtuQixtQkFSd0IsQ0FBaEM7QUFTRCxDQWhCRDs7QUFrQkF6QixPQUFPLENBQUM4Qyx3QkFBUixHQUFtQyxlQUFlQSx3QkFBZixDQUF5Q0MsTUFBekMsRUFBaUQ7QUFDbEZwQyxrQkFBSUMsS0FBSixDQUFXLGlCQUFnQixLQUFLYyxjQUFlLG1CQUEvQzs7QUFDQSxNQUFJc0IsYUFBYSxHQUFHLE9BQU8sR0FBR0MsSUFBVixLQUFtQjtBQUVyQyxTQUFLWCxzQkFBTDtBQUVBLFdBQU8sTUFBTVMsTUFBTSxDQUFDLEdBQUdFLElBQUosQ0FBbkI7QUFDRCxHQUxEOztBQU1BLFNBQU8sTUFBTSxnQ0FBaUJELGFBQWpCLEVBQWdDO0FBQzNDRSxJQUFBQSxNQUFNLEVBQUUsS0FBS3hCLGNBRDhCO0FBQ2R5QixJQUFBQSxVQUFVLEVBQUUsR0FERTtBQUNHQyxJQUFBQSxNQUFNLEVBQUV6QztBQURYLEdBQWhDLENBQWI7QUFHRCxDQVhEOztBQWFBWCxPQUFPLENBQUM2QixvQkFBUixHQUErQixTQUFTQSxvQkFBVCxDQUErQnhCLEVBQS9CLEVBQW1DO0FBQ2hFLE1BQUlnRCxRQUFRLEdBQUdDLFFBQVEsQ0FBQ2pELEVBQUQsRUFBSyxFQUFMLENBQXZCOztBQUNBLE1BQUk0QixnQkFBRXNCLEtBQUYsQ0FBUUYsUUFBUixLQUFxQkEsUUFBUSxHQUFHbkQsV0FBcEMsRUFBaUQ7QUFDL0MsVUFBTSxJQUFJaUMsaUJBQU9xQixZQUFYLENBQXlCLDBCQUF5Qm5ELEVBQUcsR0FBckQsQ0FBTjtBQUNEOztBQUNELFNBQU9nRCxRQUFQO0FBQ0QsQ0FORDs7QUFRQUksTUFBTSxDQUFDQyxNQUFQLENBQWN6RCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb25zdCBNSU5fVElNRU9VVCA9IDA7XG5cbmNvbW1hbmRzLnRpbWVvdXRzID0gYXN5bmMgZnVuY3Rpb24gdGltZW91dHMgKHR5cGUsIG1zLCBzY3JpcHQsIHBhZ2VMb2FkLCBpbXBsaWNpdCkge1xuICBpZiAodXRpbC5oYXNWYWx1ZSh0eXBlKSAmJiB1dGlsLmhhc1ZhbHVlKG1zKSkge1xuICAgIGxvZy5kZWJ1ZyhgTUpTT05XUCB0aW1lb3V0IGFyZ3VtZW50czogJHtKU09OLnN0cmluZ2lmeSh7dHlwZSwgbXN9KX19YCk7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NvbW1hbmQnOlxuICAgICAgICBhd2FpdCB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0KG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnaW1wbGljaXQnOlxuICAgICAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdE1KU09OV1AobXMpO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdwYWdlIGxvYWQnOlxuICAgICAgICBhd2FpdCB0aGlzLnBhZ2VMb2FkVGltZW91dE1KU09OV1AobXMpO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICBhd2FpdCB0aGlzLnNjcmlwdFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHt0eXBlfScgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGZvciBNSlNPTldQIHRpbWVvdXRgKTtcbiAgICB9XG4gIH1cblxuICAvLyBPdGhlcndpc2UgYXNzdW1lIGl0IGlzIFczQyBwcm90b2NvbFxuICBsb2cuZGVidWcoYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtzY3JpcHQsIHBhZ2VMb2FkLCBpbXBsaWNpdH0pfX1gKTtcbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2NyaXB0KSkge1xuICAgIGF3YWl0IHRoaXMuc2NyaXB0VGltZW91dFczQyhzY3JpcHQpO1xuICB9XG4gIGlmICh1dGlsLmhhc1ZhbHVlKHBhZ2VMb2FkKSkge1xuICAgIGF3YWl0IHRoaXMucGFnZUxvYWRUaW1lb3V0VzNDKHBhZ2VMb2FkKTtcbiAgfVxuICBpZiAodXRpbC5oYXNWYWx1ZShpbXBsaWNpdCkpIHtcbiAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdFczQyhpbXBsaWNpdCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldFRpbWVvdXRzID0gYXN5bmMgZnVuY3Rpb24gZ2V0VGltZW91dHMgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgcmV0dXJuIHtcbiAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgaW1wbGljaXQ6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gIH07XG59O1xuXG4vLyBpbXBsaWNpdFxuY29tbWFuZHMuaW1wbGljaXRXYWl0VzNDID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0VzNDIChtcykge1xuICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdChtcyk7XG59O1xuXG5jb21tYW5kcy5pbXBsaWNpdFdhaXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0TUpTT05XUCAobXMpIHtcbiAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xufTtcblxuY29tbWFuZHMuaW1wbGljaXRXYWl0ID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0IChtcykge1xuICBhd2FpdCB0aGlzLnNldEltcGxpY2l0V2FpdCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG59O1xuXG5oZWxwZXJzLnNldEltcGxpY2l0V2FpdCA9IGZ1bmN0aW9uIHNldEltcGxpY2l0V2FpdCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMuaW1wbGljaXRXYWl0TXMgPSBtcztcbiAgbG9nLmRlYnVnKGBTZXQgaW1wbGljaXQgd2FpdCB0byAke21zfW1zYCk7XG4gIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgbG9nLmRlYnVnKCdTZXR0aW5nIGltcGxpY2l0IHdhaXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgIGlmIChfLmlzRnVuY3Rpb24oZHJpdmVyLnNldEltcGxpY2l0V2FpdCkpIHtcbiAgICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdChtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vLyBwYWdlTG9hZFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5jb21tYW5kcy5wYWdlTG9hZFRpbWVvdXRXM0MgPSBhc3luYyBmdW5jdGlvbiBwYWdlTG9hZFRpbWVvdXRXM0MgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHBhZ2VMb2FkLicpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5jb21tYW5kcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gcGFnZUxvYWRUaW1lb3V0TUpTT05XUCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG59O1xuXG4vLyBzY3JpcHRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMuc2NyaXB0VGltZW91dFczQyA9IGFzeW5jIGZ1bmN0aW9uIHNjcmlwdFRpbWVvdXRXM0MgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHNjcmlwdC4nKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMuc2NyaXB0VGltZW91dE1KU09OV1AgPSBhc3luYyBmdW5jdGlvbiBzY3JpcHRUaW1lb3V0TUpTT05XUCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3Igc2NyaXB0LicpO1xufTtcblxuLy8gY29tbWFuZFxuY29tbWFuZHMubmV3Q29tbWFuZFRpbWVvdXQgPSBhc3luYyBmdW5jdGlvbiBuZXdDb21tYW5kVGltZW91dCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMuc2V0TmV3Q29tbWFuZFRpbWVvdXQodGhpcy5wYXJzZVRpbWVvdXRBcmd1bWVudChtcykpO1xufTtcblxuaGVscGVycy5zZXROZXdDb21tYW5kVGltZW91dCA9IGZ1bmN0aW9uIHNldE5ld0NvbW1hbmRUaW1lb3V0IChtcykge1xuICB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMgPSBtcztcbiAgbG9nLmRlYnVnKGBTZXQgbmV3IGNvbW1hbmQgdGltZW91dCB0byAke21zfW1zYCk7XG4gIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgbG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgIGlmIChfLmlzRnVuY3Rpb24oZHJpdmVyLnNldE5ld0NvbW1hbmRUaW1lb3V0KSkge1xuICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuaGVscGVycy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0ID0gZnVuY3Rpb24gY2xlYXJOZXdDb21tYW5kVGltZW91dCAoKSB7XG4gIGlmICh0aGlzLm5vQ29tbWFuZFRpbWVyKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubm9Db21tYW5kVGltZXIpO1xuICAgIHRoaXMubm9Db21tYW5kVGltZXIgPSBudWxsO1xuICB9XG59O1xuXG5oZWxwZXJzLnN0YXJ0TmV3Q29tbWFuZFRpbWVvdXQgPSBmdW5jdGlvbiBzdGFydE5ld0NvbW1hbmRUaW1lb3V0ICgpIHtcbiAgLy8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyByb2d1ZSB0aW1lb3V0c1xuICB0aGlzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQoKTtcblxuICAvLyBpZiBjb21tYW5kIHRpbWVvdXQgaXMgMCwgaXQgaXMgZGlzYWJsZWRcbiAgaWYgKCF0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMpIHJldHVybjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuXG4gIHRoaXMubm9Db21tYW5kVGltZXIgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBsb2cud2FybihgU2h1dHRpbmcgZG93biBiZWNhdXNlIHdlIHdhaXRlZCBgICtcbiAgICAgICAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGZvciBhIGNvbW1hbmRgKTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgTmV3IENvbW1hbmQgVGltZW91dCBvZiBgICtcbiAgICAgICAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGAgK1xuICAgICAgICAgICAgICBgZXhwaXJlZC4gVHJ5IGN1c3RvbWl6aW5nIHRoZSB0aW1lb3V0IHVzaW5nIHRoZSBgICtcbiAgICAgICAgICAgICAgYCduZXdDb21tYW5kVGltZW91dCcgZGVzaXJlZCBjYXBhYmlsaXR5YDtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpKTtcbiAgfSwgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zKTtcbn07XG5cbmhlbHBlcnMuaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uIChjb25kRm4pIHtcbiAgbG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGhpcy5pbXBsaWNpdFdhaXRNc30gbXMgZm9yIGNvbmRpdGlvbmApO1xuICBsZXQgd3JhcHBlZENvbmRGbiA9IGFzeW5jICguLi5hcmdzKSA9PiB7XG4gICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgY29uZEZuKC4uLmFyZ3MpO1xuICB9O1xuICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbih3cmFwcGVkQ29uZEZuLCB7XG4gICAgd2FpdE1zOiB0aGlzLmltcGxpY2l0V2FpdE1zLCBpbnRlcnZhbE1zOiA1MDAsIGxvZ2dlcjogbG9nXG4gIH0pO1xufTtcblxuaGVscGVycy5wYXJzZVRpbWVvdXRBcmd1bWVudCA9IGZ1bmN0aW9uIHBhcnNlVGltZW91dEFyZ3VtZW50IChtcykge1xuICBsZXQgZHVyYXRpb24gPSBwYXJzZUludChtcywgMTApO1xuICBpZiAoXy5pc05hTihkdXJhdGlvbikgfHwgZHVyYXRpb24gPCBNSU5fVElNRU9VVCkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkVycm9yKGBJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJyR7bXN9J2ApO1xuICB9XG4gIHJldHVybiBkdXJhdGlvbjtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
|
|
191
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsIk1JTl9USU1FT1VUIiwidGltZW91dHMiLCJ0eXBlIiwibXMiLCJzY3JpcHQiLCJwYWdlTG9hZCIsImltcGxpY2l0IiwidXRpbCIsImhhc1ZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwibmV3Q29tbWFuZFRpbWVvdXQiLCJpbXBsaWNpdFdhaXRNSlNPTldQIiwicGFnZUxvYWRUaW1lb3V0TUpTT05XUCIsInNjcmlwdFRpbWVvdXRNSlNPTldQIiwiRXJyb3IiLCJzY3JpcHRUaW1lb3V0VzNDIiwicGFnZUxvYWRUaW1lb3V0VzNDIiwiaW1wbGljaXRXYWl0VzNDIiwiZ2V0VGltZW91dHMiLCJjb21tYW5kIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwicGFyc2VUaW1lb3V0QXJndW1lbnQiLCJtYW5hZ2VkRHJpdmVycyIsImxlbmd0aCIsImRyaXZlciIsIl8iLCJpc0Z1bmN0aW9uIiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsInNldE5ld0NvbW1hbmRUaW1lb3V0IiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsIm5vQ29tbWFuZFRpbWVyIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsInNldFRpbWVvdXQiLCJ3YXJuIiwiZXJyb3JNZXNzYWdlIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsIndhaXRNcyIsImludGVydmFsTXMiLCJsb2dnZXIiLCJkdXJhdGlvbiIsInBhcnNlSW50IiwiaXNOYU4iLCJVbmtub3duRXJyb3IiLCJPYmplY3QiLCJhc3NpZ24i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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJy4uLy4uL3Byb3RvY29sJztcblxuXG5sZXQgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmNvbnN0IE1JTl9USU1FT1VUID0gMDtcblxuY29tbWFuZHMudGltZW91dHMgPSBhc3luYyBmdW5jdGlvbiB0aW1lb3V0cyAodHlwZSwgbXMsIHNjcmlwdCwgcGFnZUxvYWQsIGltcGxpY2l0KSB7XG4gIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYE1KU09OV1AgdGltZW91dCBhcmd1bWVudHM6ICR7SlNPTi5zdHJpbmdpZnkoe3R5cGUsIG1zfSl9fWApO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdjb21tYW5kJzpcbiAgICAgICAgYXdhaXQgdGhpcy5uZXdDb21tYW5kVGltZW91dChtcyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2ltcGxpY2l0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRNSlNPTldQKG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAncGFnZSBsb2FkJzpcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7dHlwZX0nIHR5cGUgaXMgbm90IHN1cHBvcnRlZCBmb3IgTUpTT05XUCB0aW1lb3V0YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gT3RoZXJ3aXNlIGFzc3VtZSBpdCBpcyBXM0MgcHJvdG9jb2xcbiAgdGhpcy5sb2cuZGVidWcoYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtzY3JpcHQsIHBhZ2VMb2FkLCBpbXBsaWNpdH0pfX1gKTtcbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2NyaXB0KSkge1xuICAgIGF3YWl0IHRoaXMuc2NyaXB0VGltZW91dFczQyhzY3JpcHQpO1xuICB9XG4gIGlmICh1dGlsLmhhc1ZhbHVlKHBhZ2VMb2FkKSkge1xuICAgIGF3YWl0IHRoaXMucGFnZUxvYWRUaW1lb3V0VzNDKHBhZ2VMb2FkKTtcbiAgfVxuICBpZiAodXRpbC5oYXNWYWx1ZShpbXBsaWNpdCkpIHtcbiAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdFczQyhpbXBsaWNpdCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldFRpbWVvdXRzID0gYXN5bmMgZnVuY3Rpb24gZ2V0VGltZW91dHMgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgcmV0dXJuIHtcbiAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgaW1wbGljaXQ6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gIH07XG59O1xuXG4vLyBpbXBsaWNpdFxuY29tbWFuZHMuaW1wbGljaXRXYWl0VzNDID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0VzNDIChtcykge1xuICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdChtcyk7XG59O1xuXG5jb21tYW5kcy5pbXBsaWNpdFdhaXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0TUpTT05XUCAobXMpIHtcbiAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xufTtcblxuY29tbWFuZHMuaW1wbGljaXRXYWl0ID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0IChtcykge1xuICBhd2FpdCB0aGlzLnNldEltcGxpY2l0V2FpdCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG59O1xuXG5oZWxwZXJzLnNldEltcGxpY2l0V2FpdCA9IGZ1bmN0aW9uIHNldEltcGxpY2l0V2FpdCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMuaW1wbGljaXRXYWl0TXMgPSBtcztcbiAgdGhpcy5sb2cuZGVidWcoYFNldCBpbXBsaWNpdCB3YWl0IHRvICR7bXN9bXNgKTtcbiAgaWYgKHRoaXMubWFuYWdlZERyaXZlcnMgJiYgdGhpcy5tYW5hZ2VkRHJpdmVycy5sZW5ndGgpIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnU2V0dGluZyBpbXBsaWNpdCB3YWl0IG9uIG1hbmFnZWQgZHJpdmVycycpO1xuICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICBpZiAoXy5pc0Z1bmN0aW9uKGRyaXZlci5zZXRJbXBsaWNpdFdhaXQpKSB7XG4gICAgICAgIGRyaXZlci5zZXRJbXBsaWNpdFdhaXQobXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLy8gcGFnZUxvYWRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMucGFnZUxvYWRUaW1lb3V0VzNDID0gYXN5bmMgZnVuY3Rpb24gcGFnZUxvYWRUaW1lb3V0VzNDIChtcykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBwYWdlTG9hZC4nKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMucGFnZUxvYWRUaW1lb3V0TUpTT05XUCA9IGFzeW5jIGZ1bmN0aW9uIHBhZ2VMb2FkVGltZW91dE1KU09OV1AgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHBhZ2VMb2FkLicpO1xufTtcblxuLy8gc2NyaXB0XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbmNvbW1hbmRzLnNjcmlwdFRpbWVvdXRXM0MgPSBhc3luYyBmdW5jdGlvbiBzY3JpcHRUaW1lb3V0VzNDIChtcykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbmNvbW1hbmRzLnNjcmlwdFRpbWVvdXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gc2NyaXB0VGltZW91dE1KU09OV1AgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHNjcmlwdC4nKTtcbn07XG5cbi8vIGNvbW1hbmRcbmNvbW1hbmRzLm5ld0NvbW1hbmRUaW1lb3V0ID0gYXN5bmMgZnVuY3Rpb24gbmV3Q29tbWFuZFRpbWVvdXQgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aGlzLnNldE5ld0NvbW1hbmRUaW1lb3V0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbn07XG5cbmhlbHBlcnMuc2V0TmV3Q29tbWFuZFRpbWVvdXQgPSBmdW5jdGlvbiBzZXROZXdDb21tYW5kVGltZW91dCAobXMpIHtcbiAgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zID0gbXM7XG4gIHRoaXMubG9nLmRlYnVnKGBTZXQgbmV3IGNvbW1hbmQgdGltZW91dCB0byAke21zfW1zYCk7XG4gIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ1NldHRpbmcgbmV3IGNvbW1hbmQgdGltZW91dCBvbiBtYW5hZ2VkIGRyaXZlcnMnKTtcbiAgICBmb3IgKGxldCBkcml2ZXIgb2YgdGhpcy5tYW5hZ2VkRHJpdmVycykge1xuICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgIGRyaXZlci5zZXROZXdDb21tYW5kVGltZW91dChtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5oZWxwZXJzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQgPSBmdW5jdGlvbiBjbGVhck5ld0NvbW1hbmRUaW1lb3V0ICgpIHtcbiAgaWYgKHRoaXMubm9Db21tYW5kVGltZXIpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5ub0NvbW1hbmRUaW1lcik7XG4gICAgdGhpcy5ub0NvbW1hbmRUaW1lciA9IG51bGw7XG4gIH1cbn07XG5cbmhlbHBlcnMuc3RhcnROZXdDb21tYW5kVGltZW91dCA9IGZ1bmN0aW9uIHN0YXJ0TmV3Q29tbWFuZFRpbWVvdXQgKCkge1xuICAvLyBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIHJvZ3VlIHRpbWVvdXRzXG4gIHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gIC8vIGlmIGNvbW1hbmQgdGltZW91dCBpcyAwLCBpdCBpcyBkaXNhYmxlZFxuICBpZiAoIXRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcykgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgdGhpcy5ub0NvbW1hbmRUaW1lciA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMubG9nLndhcm4oYFNodXR0aW5nIGRvd24gYmVjYXVzZSB3ZSB3YWl0ZWQgYCArXG4gICAgICAgICAgICAgIGAke3RoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyAvIDEwMDAuMH0gc2Vjb25kcyBmb3IgYSBjb21tYW5kYCk7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYE5ldyBDb21tYW5kIFRpbWVvdXQgb2YgYCArXG4gICAgICAgICAgICAgIGAke3RoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyAvIDEwMDAuMH0gc2Vjb25kcyBgICtcbiAgICAgICAgICAgICAgYGV4cGlyZWQuIFRyeSBjdXN0b21pemluZyB0aGUgdGltZW91dCB1c2luZyB0aGUgYCArXG4gICAgICAgICAgICAgIGAnbmV3Q29tbWFuZFRpbWVvdXQnIGRlc2lyZWQgY2FwYWJpbGl0eWA7XG4gICAgYXdhaXQgdGhpcy5zdGFydFVuZXhwZWN0ZWRTaHV0ZG93bihuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKSk7XG4gIH0sIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyk7XG59O1xuXG5oZWxwZXJzLmltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiAoY29uZEZuKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGhpcy5pbXBsaWNpdFdhaXRNc30gbXMgZm9yIGNvbmRpdGlvbmApO1xuICBsZXQgd3JhcHBlZENvbmRGbiA9IGFzeW5jICguLi5hcmdzKSA9PiB7XG4gICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgY29uZEZuKC4uLmFyZ3MpO1xuICB9O1xuICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbih3cmFwcGVkQ29uZEZuLCB7XG4gICAgd2FpdE1zOiB0aGlzLmltcGxpY2l0V2FpdE1zLCBpbnRlcnZhbE1zOiA1MDAsIGxvZ2dlcjogdGhpcy5sb2dcbiAgfSk7XG59O1xuXG5oZWxwZXJzLnBhcnNlVGltZW91dEFyZ3VtZW50ID0gZnVuY3Rpb24gcGFyc2VUaW1lb3V0QXJndW1lbnQgKG1zKSB7XG4gIGxldCBkdXJhdGlvbiA9IHBhcnNlSW50KG1zLCAxMCk7XG4gIGlmIChfLmlzTmFOKGR1cmF0aW9uKSB8fCBkdXJhdGlvbiA8IE1JTl9USU1FT1VUKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duRXJyb3IoYEludmFsaWQgdGltZW91dCB2YWx1ZSAnJHttc30nYCk7XG4gIH1cbiAgcmV0dXJuIGR1cmF0aW9uO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvdGltZW91dC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLiJ9
|
|
@@ -13,6 +13,12 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
13
13
|
|
|
14
14
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
15
15
|
|
|
16
|
+
var _support = require("@appium/support");
|
|
17
|
+
|
|
18
|
+
var _errors = require("../protocol/errors");
|
|
19
|
+
|
|
20
|
+
const MAX_SETTINGS_SIZE = 20 * 1024 * 1024;
|
|
21
|
+
|
|
16
22
|
class DeviceSettings {
|
|
17
23
|
constructor(defaultSettings = {}, onSettingsUpdate = null) {
|
|
18
24
|
this._settings = Object.assign({}, defaultSettings);
|
|
@@ -21,7 +27,13 @@ class DeviceSettings {
|
|
|
21
27
|
|
|
22
28
|
async update(newSettings) {
|
|
23
29
|
if (!_lodash.default.isPlainObject(newSettings)) {
|
|
24
|
-
throw new
|
|
30
|
+
throw new _errors.errors.InvalidArgumentError(`Settings update should be called with valid JSON. Got ` + `${JSON.stringify(newSettings)} instead`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (_support.node.getObjectSize({ ...this._settings,
|
|
34
|
+
...newSettings
|
|
35
|
+
}) >= MAX_SETTINGS_SIZE) {
|
|
36
|
+
throw new _errors.errors.InvalidArgumentError(`New settings cannot be applied, because the overall ` + `object size exceeds the allowed limit of ${_support.util.toReadableSizeString(MAX_SETTINGS_SIZE)}`);
|
|
25
37
|
}
|
|
26
38
|
|
|
27
39
|
for (const prop of _lodash.default.keys(newSettings)) {
|
|
@@ -53,4 +65,4 @@ var _default = DeviceSettings;
|
|
|
53
65
|
exports.default = _default;require('source-map-support').install();
|
|
54
66
|
|
|
55
67
|
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2RldmljZS1zZXR0aW5ncy5qcyJdLCJuYW1lcyI6WyJNQVhfU0VUVElOR1NfU0laRSIsIkRldmljZVNldHRpbmdzIiwiY29uc3RydWN0b3IiLCJkZWZhdWx0U2V0dGluZ3MiLCJvblNldHRpbmdzVXBkYXRlIiwiX3NldHRpbmdzIiwiT2JqZWN0IiwiYXNzaWduIiwidXBkYXRlIiwibmV3U2V0dGluZ3MiLCJfIiwiaXNQbGFpbk9iamVjdCIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5vZGUiLCJnZXRPYmplY3RTaXplIiwidXRpbCIsInRvUmVhZGFibGVTaXplU3RyaW5nIiwicHJvcCIsImtleXMiLCJpc1VuZGVmaW5lZCIsImxvZyIsImRlYnVnIiwiaXNGdW5jdGlvbiIsImVycm9yQW5kVGhyb3ciLCJuYW1lIiwiZ2V0U2V0dGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsS0FBSyxJQUFMLEdBQVksSUFBdEM7O0FBRUEsTUFBTUMsY0FBTixDQUFxQjtBQUVuQkMsRUFBQUEsV0FBVyxDQUFFQyxlQUFlLEdBQUcsRUFBcEIsRUFBd0JDLGdCQUFnQixHQUFHLElBQTNDLEVBQWlEO0FBQzFELFNBQUtDLFNBQUwsR0FBaUJDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JKLGVBQWxCLENBQWpCO0FBQ0EsU0FBS0MsZ0JBQUwsR0FBd0JBLGdCQUF4QjtBQUNEOztBQUdXLFFBQU5JLE1BQU0sQ0FBRUMsV0FBRixFQUFlO0FBQ3pCLFFBQUksQ0FBQ0MsZ0JBQUVDLGFBQUYsQ0FBZ0JGLFdBQWhCLENBQUwsRUFBbUM7QUFDakMsWUFBTSxJQUFJRyxlQUFPQyxvQkFBWCxDQUFpQyx3REFBRCxHQUNuQyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZU4sV0FBZixDQUE0QixVQUQzQixDQUFOO0FBRUQ7O0FBQ0QsUUFBSU8sY0FBS0MsYUFBTCxDQUFtQixFQUFDLEdBQUcsS0FBS1osU0FBVDtBQUFvQixTQUFHSTtBQUF2QixLQUFuQixLQUEyRFQsaUJBQS9ELEVBQWtGO0FBQ2hGLFlBQU0sSUFBSVksZUFBT0Msb0JBQVgsQ0FBaUMsc0RBQUQsR0FDbkMsNENBQTJDSyxjQUFLQyxvQkFBTCxDQUEwQm5CLGlCQUExQixDQUE2QyxFQURyRixDQUFOO0FBRUQ7O0FBRUQsU0FBSyxNQUFNb0IsSUFBWCxJQUFtQlYsZ0JBQUVXLElBQUYsQ0FBT1osV0FBUCxDQUFuQixFQUF3QztBQUN0QyxVQUFJLENBQUNDLGdCQUFFWSxXQUFGLENBQWMsS0FBS2pCLFNBQUwsQ0FBZWUsSUFBZixDQUFkLENBQUwsRUFBMEM7QUFDeEMsWUFBSSxLQUFLZixTQUFMLENBQWVlLElBQWYsTUFBeUJYLFdBQVcsQ0FBQ1csSUFBRCxDQUF4QyxFQUFnRDtBQUM5Q0csMEJBQUlDLEtBQUosQ0FBVyxpQkFBZ0JKLElBQUssc0RBQWhDOztBQUNBO0FBQ0Q7QUFDRjs7QUFFRCxVQUFJVixnQkFBRWUsVUFBRixDQUFhLEtBQUtyQixnQkFBbEIsQ0FBSixFQUF5QztBQUN2QyxjQUFNLEtBQUtBLGdCQUFMLENBQXNCZ0IsSUFBdEIsRUFBNEJYLFdBQVcsQ0FBQ1csSUFBRCxDQUF2QyxFQUErQyxLQUFLZixTQUFMLENBQWVlLElBQWYsQ0FBL0MsQ0FBTjtBQUNBLGFBQUtmLFNBQUwsQ0FBZWUsSUFBZixJQUF1QlgsV0FBVyxDQUFDVyxJQUFELENBQWxDO0FBQ0QsT0FIRCxNQUdPO0FBQ0xHLHdCQUFJRyxhQUFKLENBQW1CLDZCQUFELEdBQ2YseUNBQXdDLEtBQUt4QixXQUFMLENBQWlCeUIsSUFBSyxHQURqRTtBQUVEO0FBQ0Y7QUFDRjs7QUFFREMsRUFBQUEsV0FBVyxHQUFJO0FBQ2IsV0FBTyxLQUFLdkIsU0FBWjtBQUNEOztBQXRDa0I7OztlQXlDTkosYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IG5vZGUsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vcHJvdG9jb2wvZXJyb3JzJztcblxuY29uc3QgTUFYX1NFVFRJTkdTX1NJWkUgPSAyMCAqIDEwMjQgKiAxMDI0OyAvLyAyMCBNQlxuXG5jbGFzcyBEZXZpY2VTZXR0aW5ncyB7XG5cbiAgY29uc3RydWN0b3IgKGRlZmF1bHRTZXR0aW5ncyA9IHt9LCBvblNldHRpbmdzVXBkYXRlID0gbnVsbCkge1xuICAgIHRoaXMuX3NldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNldHRpbmdzKTtcbiAgICB0aGlzLm9uU2V0dGluZ3NVcGRhdGUgPSBvblNldHRpbmdzVXBkYXRlO1xuICB9XG5cbiAgLy8gY2FsbHMgdXBkYXRlU2V0dGluZ3MgZnJvbSBpbXBsZW1lbnRpbmcgZHJpdmVyIGV2ZXJ5IHRpbWUgYSBzZXR0aW5nIGlzIGNoYW5nZWQuXG4gIGFzeW5jIHVwZGF0ZSAobmV3U2V0dGluZ3MpIHtcbiAgICBpZiAoIV8uaXNQbGFpbk9iamVjdChuZXdTZXR0aW5ncykpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFNldHRpbmdzIHVwZGF0ZSBzaG91bGQgYmUgY2FsbGVkIHdpdGggdmFsaWQgSlNPTi4gR290IGAgK1xuICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShuZXdTZXR0aW5ncyl9IGluc3RlYWRgKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuZ2V0T2JqZWN0U2l6ZSh7Li4udGhpcy5fc2V0dGluZ3MsIC4uLm5ld1NldHRpbmdzfSkgPj0gTUFYX1NFVFRJTkdTX1NJWkUpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYE5ldyBzZXR0aW5ncyBjYW5ub3QgYmUgYXBwbGllZCwgYmVjYXVzZSB0aGUgb3ZlcmFsbCBgICtcbiAgICAgICAgYG9iamVjdCBzaXplIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQgb2YgJHt1dGlsLnRvUmVhZGFibGVTaXplU3RyaW5nKE1BWF9TRVRUSU5HU19TSVpFKX1gKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgXy5rZXlzKG5ld1NldHRpbmdzKSkge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuX3NldHRpbmdzW3Byb3BdKSkge1xuICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NbcHJvcF0gPT09IG5ld1NldHRpbmdzW3Byb3BdKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBUaGUgdmFsdWUgb2YgJyR7cHJvcH0nIHNldHRpbmcgZGlkIG5vdCBjaGFuZ2UuIFNraXBwaW5nIHRoZSB1cGRhdGUgZm9yIGl0YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHVwZGF0ZSBzZXR0aW5nIG9ubHkgd2hlbiB0aGVyZSBpcyB1cGRhdGVTZXR0aW5ncyBkZWZpbmVkLlxuICAgICAgaWYgKF8uaXNGdW5jdGlvbih0aGlzLm9uU2V0dGluZ3NVcGRhdGUpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25TZXR0aW5nc1VwZGF0ZShwcm9wLCBuZXdTZXR0aW5nc1twcm9wXSwgdGhpcy5fc2V0dGluZ3NbcHJvcF0pO1xuICAgICAgICB0aGlzLl9zZXR0aW5nc1twcm9wXSA9IG5ld1NldHRpbmdzW3Byb3BdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFVuYWJsZSB0byB1cGRhdGUgc2V0dGluZ3M7IGAgK1xuICAgICAgICAgIGBvblNldHRpbmdzVXBkYXRlIG1ldGhvZCBub3QgZm91bmQgb24gJyR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSdgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZXR0aW5ncyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERldmljZVNldHRpbmdzO1xuZXhwb3J0IHsgRGV2aWNlU2V0dGluZ3MgfTtcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvZGV2aWNlLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|