@appium/base-driver 8.7.0 → 8.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +207 -42
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +39 -44
  4. package/build/lib/basedriver/capabilities.js.map +1 -0
  5. package/build/lib/basedriver/commands/event.js +3 -3
  6. package/build/lib/basedriver/commands/event.js.map +1 -0
  7. package/build/lib/basedriver/commands/execute.js +3 -3
  8. package/build/lib/basedriver/commands/execute.js.map +1 -0
  9. package/build/lib/basedriver/commands/find.js.map +1 -0
  10. package/build/lib/basedriver/commands/index.js.map +1 -0
  11. package/build/lib/basedriver/commands/log.js +3 -3
  12. package/build/lib/basedriver/commands/log.js.map +1 -0
  13. package/build/lib/basedriver/commands/session.js +3 -3
  14. package/build/lib/basedriver/commands/session.js.map +1 -0
  15. package/build/lib/basedriver/commands/settings.js.map +1 -0
  16. package/build/lib/basedriver/commands/timeout.js +3 -3
  17. package/build/lib/basedriver/commands/timeout.js.map +1 -0
  18. package/build/lib/basedriver/core.d.ts +173 -22
  19. package/build/lib/basedriver/core.d.ts.map +1 -1
  20. package/build/lib/basedriver/core.js +4 -6
  21. package/build/lib/basedriver/core.js.map +1 -0
  22. package/build/lib/basedriver/desired-caps.d.ts +0 -2
  23. package/build/lib/basedriver/desired-caps.d.ts.map +1 -1
  24. package/build/lib/basedriver/desired-caps.js +4 -53
  25. package/build/lib/basedriver/desired-caps.js.map +1 -0
  26. package/build/lib/basedriver/device-settings.js +3 -3
  27. package/build/lib/basedriver/device-settings.js.map +1 -0
  28. package/build/lib/basedriver/driver.d.ts +318 -28
  29. package/build/lib/basedriver/driver.d.ts.map +1 -1
  30. package/build/lib/basedriver/driver.js +23 -30
  31. package/build/lib/basedriver/driver.js.map +1 -0
  32. package/build/lib/basedriver/helpers.d.ts +1 -1
  33. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  34. package/build/lib/basedriver/helpers.js +3 -3
  35. package/build/lib/basedriver/helpers.js.map +1 -0
  36. package/build/lib/basedriver/logger.js.map +1 -0
  37. package/build/lib/constants.js.map +1 -0
  38. package/build/lib/express/crash.js.map +1 -0
  39. package/build/lib/express/express-logging.js +3 -3
  40. package/build/lib/express/express-logging.js.map +1 -0
  41. package/build/lib/express/idempotency.js +3 -3
  42. package/build/lib/express/idempotency.js.map +1 -0
  43. package/build/lib/express/logger.js.map +1 -0
  44. package/build/lib/express/middleware.js +3 -3
  45. package/build/lib/express/middleware.js.map +1 -0
  46. package/build/lib/express/server.js +3 -3
  47. package/build/lib/express/server.js.map +1 -0
  48. package/build/lib/express/static.js +3 -3
  49. package/build/lib/express/static.js.map +1 -0
  50. package/build/lib/express/websocket.js +3 -3
  51. package/build/lib/express/websocket.js.map +1 -0
  52. package/build/lib/helpers/capabilities.d.ts +66 -5
  53. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  54. package/build/lib/helpers/capabilities.js +7 -7
  55. package/build/lib/helpers/capabilities.js.map +1 -0
  56. package/build/lib/index.d.ts +1 -1
  57. package/build/lib/index.d.ts.map +1 -1
  58. package/build/lib/index.js +10 -3
  59. package/build/lib/index.js.map +1 -0
  60. package/build/lib/jsonwp-proxy/protocol-converter.js +3 -3
  61. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -0
  62. package/build/lib/jsonwp-proxy/proxy.js +3 -3
  63. package/build/lib/jsonwp-proxy/proxy.js.map +1 -0
  64. package/build/lib/jsonwp-status/status.js +3 -3
  65. package/build/lib/jsonwp-status/status.js.map +1 -0
  66. package/build/lib/protocol/errors.js +3 -3
  67. package/build/lib/protocol/errors.js.map +1 -0
  68. package/build/lib/protocol/helpers.js +3 -3
  69. package/build/lib/protocol/helpers.js.map +1 -0
  70. package/build/lib/protocol/index.js.map +1 -0
  71. package/build/lib/protocol/protocol.js +3 -3
  72. package/build/lib/protocol/protocol.js.map +1 -0
  73. package/build/lib/protocol/routes.js +3 -3
  74. package/build/lib/protocol/routes.js.map +1 -0
  75. package/build/lib/protocol/validators.js +3 -3
  76. package/build/lib/protocol/validators.js.map +1 -0
  77. package/build/tsconfig.tsbuildinfo +1 -1
  78. package/lib/basedriver/capabilities.js +151 -93
  79. package/lib/basedriver/core.js +35 -19
  80. package/lib/basedriver/desired-caps.js +1 -53
  81. package/lib/basedriver/driver.js +98 -51
  82. package/lib/helpers/capabilities.js +19 -9
  83. package/lib/index.js +1 -0
  84. package/package.json +10 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","names":["APPIUM_VENDOR_PREFIX","APPIUM_OPTS_CAP","PREFIXED_APPIUM_OPTS_CAP","mergeCaps","primary","secondary","result","name","value","_","toPairs","isUndefined","errors","InvalidArgumentError","JSON","stringify","validateCaps","caps","constraints","opts","skipPresenceConstraint","isPlainObject","mapValues","constraint","omit","presence","allowEmpty","validationErrors","validator","validate","pickBy","util","hasValue","fullMessages","message","attribute","reasons","reason","push","join","STANDARD_CAPS","Object","freeze","Set","STANDARD_CAPS_LOWER","map","cap","toLowerCase","isStandardCap","has","stripAppiumPrefixes","prefixedCaps","nonPrefixedCaps","partition","keys","String","startsWith","strippedCaps","pick","badPrefixedCaps","prefixedCap","strippedCapName","substring","length","isNil","log","warn","findNonPrefixedCaps","alwaysMatch","firstMatch","chain","reduce","unprefixedCaps","filter","includes","uniq","parseCaps","shouldValidateCaps","requiredCaps","allFirstMatchCaps","isArray","isEmpty","strippedRequiredCaps","strippedAllFirstMatchCaps","filteredConstraints","omitBy","key","validatedFirstMatchCaps","compact","firstMatchCaps","e","matchedCaps","err","processCapabilities","w3cCaps","promoteAppiumOptions","originalCaps","appiumOptions","cloneDeep","SessionNotCreatedError","strippedAppiumOptions","overwrittenKeys","intersection"],"sources":["../../../lib/basedriver/capabilities.js"],"sourcesContent":["// @ts-check\n\nimport _ from 'lodash';\nimport {validator} from './desired-caps';\nimport {util} from '@appium/support';\nimport log from './logger';\nimport {errors} from '../protocol/errors';\n\nconst APPIUM_VENDOR_PREFIX = 'appium:';\nconst APPIUM_OPTS_CAP = 'options';\nconst PREFIXED_APPIUM_OPTS_CAP = `${APPIUM_VENDOR_PREFIX}${APPIUM_OPTS_CAP}`;\n\n/**\n * Takes primary caps object and merges it into a secondary caps object.\n * @template {Constraints} [T={}]\n * @template {Constraints} [U={}]\n * @param {Capabilities<T>} [primary]\n * @param {Capabilities<U>} [secondary]\n * @returns {import('type-fest').Merge<Capabilities<T>, Capabilities<U>>}\n * @see https://www.w3.org/TR/webdriver/#dfn-merging-capabilities)\n */\nfunction mergeCaps(primary = {}, secondary = {}) {\n let result = /** @type {import('type-fest').Merge<Capabilities<T>, Capabilities<U>>} */ ({\n ...primary,\n });\n\n for (let [name, value] of /** @type {[keyof typeof secondary, any]} */ (_.toPairs(secondary))) {\n // Overwriting is not allowed. Primary and secondary must have different properties (w3c rule 4.4)\n if (!_.isUndefined(primary[name])) {\n throw new errors.InvalidArgumentError(\n `property '${name}' should not exist on both primary (${JSON.stringify(\n primary\n )}) and secondary (${JSON.stringify(secondary)}) object`\n );\n }\n result[/** @type {keyof typeof result} */ (name)] = value;\n }\n\n return result;\n}\n\n// Validates caps against a set of constraints\n/**\n * @template {Constraints} [C={}]\n * @param {Capabilities<C>} caps\n * @param {C} [constraints]\n * @param {ValidateCapsOpts} [opts]\n * @returns {Capabilities<C>}\n */\nfunction validateCaps(caps, constraints = /** @type {C} */ ({}), opts = {}) {\n let {skipPresenceConstraint} = opts;\n\n if (!_.isPlainObject(caps)) {\n throw new errors.InvalidArgumentError(`must be a JSON object`);\n }\n\n // Remove the 'presence' constraint if we're not checking for it\n constraints = /** @type {C} */ (\n _.mapValues(\n constraints,\n skipPresenceConstraint\n ? /** @param {Constraint} constraint */\n (constraint) => _.omit(constraint, 'presence')\n : /** @param {Constraint} constraint */\n (constraint) => {\n if (constraint.presence === true) {\n return {..._.omit(constraint, 'presence'), presence: {allowEmpty: false}};\n }\n return constraint;\n }\n )\n );\n\n const validationErrors = validator.validate(_.pickBy(caps, util.hasValue), constraints, {\n fullMessages: false,\n });\n\n if (validationErrors) {\n let message = [];\n for (let [attribute, reasons] of _.toPairs(validationErrors)) {\n for (let reason of reasons) {\n message.push(`'${attribute}' ${reason}`);\n }\n }\n throw new errors.InvalidArgumentError(message.join('; '));\n }\n\n // Return caps\n return caps;\n}\n\n/**\n * Standard, non-prefixed capabilities\n * @see https://www.w3.org/TR/webdriver/#dfn-table-of-standard-capabilities)\n */\nexport const STANDARD_CAPS = Object.freeze(\n new Set(\n /** @type {import('type-fest').StringKeyOf<import('@appium/types').StandardCapabilities>[]} */ ([\n 'browserName',\n 'browserVersion',\n 'platformName',\n 'acceptInsecureCerts',\n 'pageLoadStrategy',\n 'proxy',\n 'setWindowRect',\n 'timeouts',\n 'unhandledPromptBehavior',\n ])\n )\n);\n\nconst STANDARD_CAPS_LOWER = new Set([...STANDARD_CAPS].map((cap) => cap.toLowerCase()));\n\n/**\n * @param {string} cap\n * @returns {boolean}\n */\nfunction isStandardCap(cap) {\n return STANDARD_CAPS_LOWER.has(cap.toLowerCase());\n}\n\n/**\n * If the 'appium:' prefix was provided and it's a valid capability, strip out the prefix\n * @template {Constraints} [C={}]\n * @param {import('@appium/types').NSCapabilities<C>} caps\n * @see https://www.w3.org/TR/webdriver/#dfn-extension-capabilities\n * @internal\n * @returns {import('@appium/types').Capabilities<C>}\n */\nfunction stripAppiumPrefixes(caps) {\n // split into prefixed and non-prefixed.\n // non-prefixed should be standard caps at this point\n const [prefixedCaps, nonPrefixedCaps] = _.partition(_.keys(caps), (cap) =>\n String(cap).startsWith(APPIUM_VENDOR_PREFIX)\n );\n\n // initialize this with the k/v pairs of the non-prefixed caps\n let strippedCaps = /** @type {import('@appium/types').Capabilities<C>} */ (\n _.pick(caps, nonPrefixedCaps)\n );\n const badPrefixedCaps = [];\n\n // Strip out the 'appium:' prefix\n for (let prefixedCap of prefixedCaps) {\n const strippedCapName =\n /** @type {import('type-fest').StringKeyOf<import('@appium/types').Capabilities<C>>} */ (\n prefixedCap.substring(APPIUM_VENDOR_PREFIX.length)\n );\n\n // If it's standard capability that was prefixed, add it to an array of incorrectly prefixed capabilities\n if (isStandardCap(strippedCapName)) {\n badPrefixedCaps.push(strippedCapName);\n if (_.isNil(strippedCaps[strippedCapName])) {\n strippedCaps[strippedCapName] = caps[prefixedCap];\n } else {\n log.warn(\n `Ignoring capability '${prefixedCap}=${caps[prefixedCap]}' and ` +\n `using capability '${strippedCapName}=${strippedCaps[strippedCapName]}'`\n );\n }\n } else {\n strippedCaps[strippedCapName] = caps[prefixedCap];\n }\n }\n\n // If we found standard caps that were incorrectly prefixed, throw an exception (e.g.: don't accept 'appium:platformName', only accept just 'platformName')\n if (badPrefixedCaps.length > 0) {\n log.warn(\n `The capabilities ${JSON.stringify(\n badPrefixedCaps\n )} are standard capabilities and do not require \"appium:\" prefix`\n );\n }\n return strippedCaps;\n}\n\n/**\n * Get an array of all the unprefixed caps that are being used in 'alwaysMatch' and all of the 'firstMatch' object\n * @template {Constraints} [C={}]\n * @param {import('@appium/types').W3CCapabilities<C>} caps A capabilities object\n */\nfunction findNonPrefixedCaps({alwaysMatch = {}, firstMatch = []}) {\n return _.chain([alwaysMatch, ...firstMatch])\n .reduce(\n (unprefixedCaps, caps) => [\n ...unprefixedCaps,\n ...Object.keys(caps).filter((cap) => !cap.includes(':') && !isStandardCap(cap)),\n ],\n []\n )\n .uniq()\n .value();\n}\n\n/**\n * Parse capabilities\n * @template {Constraints} [C={}]\n * @param {import('@appium/types').W3CCapabilities<C>} caps\n * @param {C} [constraints]\n * @param {boolean} [shouldValidateCaps]\n * @see https://www.w3.org/TR/webdriver/#processing-capabilities\n */\nfunction parseCaps(caps, constraints = /** @type {C} */ ({}), shouldValidateCaps = true) {\n // If capabilities request is not an object, return error (#1.1)\n if (!_.isPlainObject(caps)) {\n throw new errors.InvalidArgumentError(\n 'The capabilities argument was not valid for the following reason(s): \"capabilities\" must be a JSON object.'\n );\n }\n\n // Let 'requiredCaps' be property named 'alwaysMatch' from capabilities request (#2)\n // and 'allFirstMatchCaps' be property named 'firstMatch' from capabilities request (#3)\n let {\n alwaysMatch: requiredCaps = {}, // If 'requiredCaps' is undefined, set it to an empty JSON object (#2.1)\n firstMatch: allFirstMatchCaps = [{}], // If 'firstMatch' is undefined set it to a singleton list with one empty object (#3.1)\n } = caps;\n\n // Reject 'firstMatch' argument if it's not an array (#3.2)\n if (!_.isArray(allFirstMatchCaps)) {\n throw new errors.InvalidArgumentError(\n 'The capabilities.firstMatch argument was not valid for the following reason(s): \"capabilities.firstMatch\" must be a JSON array or undefined'\n );\n }\n\n // If an empty array as provided, we'll be forgiving and make it an array of one empty object\n // In the future, reject 'firstMatch' argument if its array did not have one or more entries (#3.2)\n if (allFirstMatchCaps.length === 0) {\n log.warn(\n `The firstMatch array in the given capabilities has no entries. Adding an empty entry fo rnow, ` +\n `but it will require one or more entries as W3C spec.`\n );\n allFirstMatchCaps.push({});\n }\n\n // Check for non-prefixed, non-standard capabilities and log warnings if they are found\n let nonPrefixedCaps = findNonPrefixedCaps(caps);\n if (!_.isEmpty(nonPrefixedCaps)) {\n throw new errors.InvalidArgumentError(\n `All non-standard capabilities should have a vendor prefix. The following capabilities did not have one: ${nonPrefixedCaps}`\n );\n }\n\n // Strip out the 'appium:' prefix from all\n let strippedRequiredCaps = stripAppiumPrefixes(requiredCaps);\n let strippedAllFirstMatchCaps = allFirstMatchCaps.map(stripAppiumPrefixes);\n\n // Validate the requiredCaps. But don't validate 'presence' because if that constraint fails on 'alwaysMatch' it could still pass on one of the 'firstMatch' keys\n if (shouldValidateCaps) {\n strippedRequiredCaps = validateCaps(strippedRequiredCaps, constraints, {\n skipPresenceConstraint: true,\n });\n }\n // Remove the 'presence' constraint for any keys that are already present in 'requiredCaps'\n // since we know that this constraint has already passed\n const filteredConstraints = /** @type {C} */ (\n _.omitBy(constraints, (_, key) => key in strippedRequiredCaps)\n );\n\n // Validate all of the first match capabilities and return an array with only the valid caps (see spec #5)\n /** @type {string[]} */\n let validationErrors = [];\n let validatedFirstMatchCaps = _.compact(\n strippedAllFirstMatchCaps.map(\n /**\n * @param {import('@appium/types').Capabilities<C>} firstMatchCaps\n */\n (firstMatchCaps) => {\n try {\n // Validate firstMatch caps\n return shouldValidateCaps\n ? validateCaps(firstMatchCaps, filteredConstraints)\n : firstMatchCaps;\n } catch (e) {\n validationErrors.push(e.message);\n }\n }\n )\n );\n\n // Try to merge requiredCaps with first match capabilities, break once it finds its first match (see spec #6)\n let matchedCaps = null;\n for (let firstMatchCaps of validatedFirstMatchCaps) {\n try {\n matchedCaps = mergeCaps(strippedRequiredCaps, firstMatchCaps);\n if (matchedCaps) {\n break;\n }\n } catch (err) {\n log.warn(err.message);\n validationErrors.push(err.message);\n }\n }\n\n // Returns variables for testing purposes\n return {\n requiredCaps,\n allFirstMatchCaps,\n validatedFirstMatchCaps,\n matchedCaps,\n validationErrors,\n };\n}\n\n// Calls parseCaps and just returns the matchedCaps variable\n/**\n * @template {Constraints} C\n * @param {import('@appium/types').W3CCapabilities<C>} w3cCaps\n * @param {C} [constraints]\n * @param {boolean} [shouldValidateCaps]\n * @returns {import('@appium/types').Capabilities<C>}\n */\nfunction processCapabilities(\n w3cCaps,\n constraints = /** @type {C} */ ({}),\n shouldValidateCaps = true\n) {\n const {matchedCaps, validationErrors} = parseCaps(w3cCaps, constraints, shouldValidateCaps);\n\n // If we found an error throw an exception\n if (!util.hasValue(matchedCaps)) {\n if (_.isArray(w3cCaps.firstMatch) && w3cCaps.firstMatch.length > 1) {\n // If there was more than one 'firstMatch' cap, indicate that we couldn't find a matching capabilities set and show all the errors\n throw new errors.InvalidArgumentError(\n `Could not find matching capabilities from ${JSON.stringify(\n w3cCaps\n )}:\\n ${validationErrors.join('\\n')}`\n );\n } else {\n // Otherwise, just show the singular error message\n throw new errors.InvalidArgumentError(validationErrors[0]);\n }\n }\n\n return /** @type {Capabilities<C>} */ (matchedCaps ?? {});\n}\n\n/**\n * Return a copy of a capabilities object which has taken everything within the 'options'\n * capability and promoted it to the top level. Note that this function is assumed to be run after\n * all vendor prefixes have already been stripped from the top level. So we are dealing with e.g.\n * 'options' and not 'appium:options' at this point. Any prefixes _inside_ the 'options' capability\n * will themselves be stripped. This is designed as an internal function, not one to operate on\n * user-constructed capabilities.\n *\n * @param {object} originalCaps - the capabilities to analyze and promote from 'options'\n * @return {object!} - the capabilities with 'options' promoted if necessary\n */\nfunction promoteAppiumOptions(originalCaps) {\n const appiumOptions = originalCaps[APPIUM_OPTS_CAP];\n if (!appiumOptions) {\n return originalCaps;\n }\n\n let caps = _.cloneDeep(originalCaps);\n if (!_.isPlainObject(appiumOptions)) {\n throw new errors.SessionNotCreatedError(`The ${APPIUM_OPTS_CAP} capability must be an object`);\n }\n\n // first get rid of any prefixes inside appium:options\n const strippedAppiumOptions = stripAppiumPrefixes(appiumOptions);\n // warn if we are going to overwrite any keys on the base caps object\n const overwrittenKeys = _.intersection(Object.keys(caps), Object.keys(strippedAppiumOptions));\n if (overwrittenKeys.length > 0) {\n log.warn(\n `Found capabilities inside ${PREFIXED_APPIUM_OPTS_CAP} that will overwrite ` +\n `capabilities at the top level: ${JSON.stringify(overwrittenKeys)}`\n );\n }\n\n // now just apply them to the main caps object\n caps = {...caps, ...strippedAppiumOptions};\n\n // and remove all traces of the options cap\n delete caps[APPIUM_OPTS_CAP];\n return caps;\n}\n\nexport {\n parseCaps,\n processCapabilities,\n validateCaps,\n mergeCaps,\n APPIUM_VENDOR_PREFIX,\n APPIUM_OPTS_CAP,\n findNonPrefixedCaps,\n isStandardCap,\n stripAppiumPrefixes,\n promoteAppiumOptions,\n PREFIXED_APPIUM_OPTS_CAP,\n};\n\n/**\n * @typedef {import('@appium/types').Constraints} Constraints\n * @typedef {import('@appium/types').Constraint} Constraint\n * @typedef {import('@appium/types').StringRecord} StringRecord\n * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints\n */\n\n/**\n * @typedef ValidateCapsOpts\n * @property {boolean} [skipPresenceConstraint] - if true, skip the presence constraint\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').NSCapabilities<C, Extra>} NSCapabilities\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').Capabilities<C, Extra>} Capabilities\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef {import('@appium/types').W3CCapabilities<C, Extra>} W3CCapabilities\n */\n"],"mappings":"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"}
@@ -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
  });
@@ -11,6 +9,8 @@ require("source-map-support/register");
11
9
 
12
10
  var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
14
  function EventMixin(Base) {
15
15
  class EventCommands extends Base {
16
16
  async logCustomEvent(vendor, event) {
@@ -37,4 +37,4 @@ function EventMixin(Base) {
37
37
 
38
38
  return EventCommands;
39
39
  }
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudE1peGluIiwiQmFzZSIsIkV2ZW50Q29tbWFuZHMiLCJsb2dDdXN0b21FdmVudCIsInZlbmRvciIsImV2ZW50IiwibG9nRXZlbnQiLCJnZXRMb2dFdmVudHMiLCJ0eXBlIiwiXyIsImlzRW1wdHkiLCJldmVudEhpc3RvcnkiLCJ0eXBlTGlzdCIsImNhc3RBcnJheSIsInJlZHVjZSIsImFjYyIsImV2ZW50VGltZXMiLCJldmVudFR5cGUiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2V2ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1RpbWVvdXRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7RXZlbnRCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRNaXhpbihCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SUV2ZW50Q29tbWFuZHN9XG4gICAqL1xuICBjbGFzcyBFdmVudENvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogTG9nIGEgdXNlci1kZWZpbmVkIGV2ZW50IGluIHRoZSBldmVudCBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmVuZG9yIC0gYSB2ZW5kb3IgcHJlZml4IGZvciB0aGUgdXNlciwgdG8gZW5zdXJlIG5hbWVzcGFjZVxuICAgICAqIHNlcGFyYXRpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnQgLSB0aGUgZXZlbnQgbmFtZVxuICAgICAqL1xuICAgIGFzeW5jIGxvZ0N1c3RvbUV2ZW50KHZlbmRvciwgZXZlbnQpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoYCR7dmVuZG9yfToke2V2ZW50fWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgZXZlbnQgbG9nXG4gICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt0eXBlXSAtIHRoZSBldmVudCB0eXBlIHRvIGZpbHRlciB3aXRoLlxuICAgICAqIEl0IHJldHVybnMgYWxsIGV2ZW50cyBpZiB0aGUgdHlwZSBpcyBub3QgcHJvdmlkZWQgb3IgZW1wdHkgc3RyaW5nL2FycmF5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50SGlzdG9yeXxSZWNvcmQ8c3RyaW5nLG51bWJlcj4+fSAtIHRoZSBldmVudCBoaXN0b3J5IGxvZyBvYmplY3RcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMb2dFdmVudHModHlwZSkge1xuICAgICAgaWYgKF8uaXNFbXB0eSh0eXBlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudEhpc3Rvcnk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGVMaXN0ID0gXy5jYXN0QXJyYXkodHlwZSk7XG5cbiAgICAgIHJldHVybiBfLnJlZHVjZShcbiAgICAgICAgdGhpcy5ldmVudEhpc3RvcnksXG4gICAgICAgIChhY2MsIGV2ZW50VGltZXMsIGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlTGlzdC5pbmNsdWRlcyhldmVudFR5cGUpKSB7XG4gICAgICAgICAgICBhY2NbZXZlbnRUeXBlXSA9IGV2ZW50VGltZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBFdmVudENvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzfSBJRXZlbnRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi90aW1lb3V0JykuVGltZW91dEJhc2V9IFRpbWVvdXRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBJRXZlbnRDb21tYW5kcz59IEV2ZW50QmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUE7O0FBTU8sU0FBU0EsVUFBVCxDQUFvQkMsSUFBcEIsRUFBMEI7RUFJL0IsTUFBTUMsYUFBTixTQUE0QkQsSUFBNUIsQ0FBaUM7SUFRWCxNQUFkRSxjQUFjLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxFQUFnQjtNQUNsQyxLQUFLQyxRQUFMLENBQWUsR0FBRUYsTUFBTyxJQUFHQyxLQUFNLEVBQWpDO0lBQ0Q7O0lBUWlCLE1BQVpFLFlBQVksQ0FBQ0MsSUFBRCxFQUFPO01BQ3ZCLElBQUlDLGVBQUEsQ0FBRUMsT0FBRixDQUFVRixJQUFWLENBQUosRUFBcUI7UUFDbkIsT0FBTyxLQUFLRyxZQUFaO01BQ0Q7O01BRUQsTUFBTUMsUUFBUSxHQUFHSCxlQUFBLENBQUVJLFNBQUYsQ0FBWUwsSUFBWixDQUFqQjs7TUFFQSxPQUFPQyxlQUFBLENBQUVLLE1BQUYsQ0FDTCxLQUFLSCxZQURBLEVBRUwsQ0FBQ0ksR0FBRCxFQUFNQyxVQUFOLEVBQWtCQyxTQUFsQixLQUFnQztRQUM5QixJQUFJTCxRQUFRLENBQUNNLFFBQVQsQ0FBa0JELFNBQWxCLENBQUosRUFBa0M7VUFDaENGLEdBQUcsQ0FBQ0UsU0FBRCxDQUFILEdBQWlCRCxVQUFqQjtRQUNEOztRQUNELE9BQU9ELEdBQVA7TUFDRCxDQVBJLEVBUUwsRUFSSyxDQUFQO0lBVUQ7O0VBbkM4Qjs7RUFzQ2pDLE9BQU9iLGFBQVA7QUFDRCJ9
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudE1peGluIiwiQmFzZSIsIkV2ZW50Q29tbWFuZHMiLCJsb2dDdXN0b21FdmVudCIsInZlbmRvciIsImV2ZW50IiwibG9nRXZlbnQiLCJnZXRMb2dFdmVudHMiLCJ0eXBlIiwiXyIsImlzRW1wdHkiLCJldmVudEhpc3RvcnkiLCJ0eXBlTGlzdCIsImNhc3RBcnJheSIsInJlZHVjZSIsImFjYyIsImV2ZW50VGltZXMiLCJldmVudFR5cGUiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2V2ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1RpbWVvdXRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7RXZlbnRCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRNaXhpbihCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SUV2ZW50Q29tbWFuZHN9XG4gICAqL1xuICBjbGFzcyBFdmVudENvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogTG9nIGEgdXNlci1kZWZpbmVkIGV2ZW50IGluIHRoZSBldmVudCBsb2cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmVuZG9yIC0gYSB2ZW5kb3IgcHJlZml4IGZvciB0aGUgdXNlciwgdG8gZW5zdXJlIG5hbWVzcGFjZVxuICAgICAqIHNlcGFyYXRpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnQgLSB0aGUgZXZlbnQgbmFtZVxuICAgICAqL1xuICAgIGFzeW5jIGxvZ0N1c3RvbUV2ZW50KHZlbmRvciwgZXZlbnQpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoYCR7dmVuZG9yfToke2V2ZW50fWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgZXZlbnQgbG9nXG4gICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt0eXBlXSAtIHRoZSBldmVudCB0eXBlIHRvIGZpbHRlciB3aXRoLlxuICAgICAqIEl0IHJldHVybnMgYWxsIGV2ZW50cyBpZiB0aGUgdHlwZSBpcyBub3QgcHJvdmlkZWQgb3IgZW1wdHkgc3RyaW5nL2FycmF5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50SGlzdG9yeXxSZWNvcmQ8c3RyaW5nLG51bWJlcj4+fSAtIHRoZSBldmVudCBoaXN0b3J5IGxvZyBvYmplY3RcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMb2dFdmVudHModHlwZSkge1xuICAgICAgaWYgKF8uaXNFbXB0eSh0eXBlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudEhpc3Rvcnk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGVMaXN0ID0gXy5jYXN0QXJyYXkodHlwZSk7XG5cbiAgICAgIHJldHVybiBfLnJlZHVjZShcbiAgICAgICAgdGhpcy5ldmVudEhpc3RvcnksXG4gICAgICAgIChhY2MsIGV2ZW50VGltZXMsIGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlTGlzdC5pbmNsdWRlcyhldmVudFR5cGUpKSB7XG4gICAgICAgICAgICBhY2NbZXZlbnRUeXBlXSA9IGV2ZW50VGltZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBFdmVudENvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzfSBJRXZlbnRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi90aW1lb3V0JykuVGltZW91dEJhc2V9IFRpbWVvdXRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBJRXZlbnRDb21tYW5kcz59IEV2ZW50QmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOzs7O0FBTU8sU0FBU0EsVUFBVCxDQUFvQkMsSUFBcEIsRUFBMEI7RUFJL0IsTUFBTUMsYUFBTixTQUE0QkQsSUFBNUIsQ0FBaUM7SUFRWCxNQUFkRSxjQUFjLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxFQUFnQjtNQUNsQyxLQUFLQyxRQUFMLENBQWUsR0FBRUYsTUFBTyxJQUFHQyxLQUFNLEVBQWpDO0lBQ0Q7O0lBUWlCLE1BQVpFLFlBQVksQ0FBQ0MsSUFBRCxFQUFPO01BQ3ZCLElBQUlDLGVBQUEsQ0FBRUMsT0FBRixDQUFVRixJQUFWLENBQUosRUFBcUI7UUFDbkIsT0FBTyxLQUFLRyxZQUFaO01BQ0Q7O01BRUQsTUFBTUMsUUFBUSxHQUFHSCxlQUFBLENBQUVJLFNBQUYsQ0FBWUwsSUFBWixDQUFqQjs7TUFFQSxPQUFPQyxlQUFBLENBQUVLLE1BQUYsQ0FDTCxLQUFLSCxZQURBLEVBRUwsQ0FBQ0ksR0FBRCxFQUFNQyxVQUFOLEVBQWtCQyxTQUFsQixLQUFnQztRQUM5QixJQUFJTCxRQUFRLENBQUNNLFFBQVQsQ0FBa0JELFNBQWxCLENBQUosRUFBa0M7VUFDaENGLEdBQUcsQ0FBQ0UsU0FBRCxDQUFILEdBQWlCRCxVQUFqQjtRQUNEOztRQUNELE9BQU9ELEdBQVA7TUFDRCxDQVBJLEVBUUwsRUFSSyxDQUFQO0lBVUQ7O0VBbkM4Qjs7RUFzQ2pDLE9BQU9iLGFBQVA7QUFDRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","names":["EventMixin","Base","EventCommands","logCustomEvent","vendor","event","logEvent","getLogEvents","type","_","isEmpty","eventHistory","typeList","castArray","reduce","acc","eventTimes","eventType","includes"],"sources":["../../../../lib/basedriver/commands/event.js"],"sourcesContent":["/* eslint-disable require-await */\n// @ts-check\nimport _ from 'lodash';\n\n/**\n * @param {TimeoutBase} Base\n * @returns {EventBase}\n */\nexport function EventMixin(Base) {\n /**\n * @implements {IEventCommands}\n */\n class EventCommands extends Base {\n /**\n * Log a user-defined event in the event log.\n *\n * @param {string} vendor - a vendor prefix for the user, to ensure namespace\n * separation\n * @param {string} event - the event name\n */\n async logCustomEvent(vendor, event) {\n this.logEvent(`${vendor}:${event}`);\n }\n\n /**\n * Get the event log\n * @param {string|string[]} [type] - the event type to filter with.\n * It returns all events if the type is not provided or empty string/array.\n * @returns {Promise<import('@appium/types').EventHistory|Record<string,number>>} - the event history log object\n */\n async getLogEvents(type) {\n if (_.isEmpty(type)) {\n return this.eventHistory;\n }\n\n const typeList = _.castArray(type);\n\n return _.reduce(\n this.eventHistory,\n (acc, eventTimes, eventType) => {\n if (typeList.includes(eventType)) {\n acc[eventType] = eventTimes;\n }\n return acc;\n },\n {}\n );\n }\n }\n\n return EventCommands;\n}\n\n/**\n * @typedef {import('@appium/types').EventCommands} IEventCommands\n * @typedef {import('./timeout').TimeoutBase} TimeoutBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & IEventCommands>} EventBase\n */\n"],"mappings":";;;;;;;;;AAEA;;;;AAMO,SAASA,UAAT,CAAoBC,IAApB,EAA0B;EAI/B,MAAMC,aAAN,SAA4BD,IAA5B,CAAiC;IAQX,MAAdE,cAAc,CAACC,MAAD,EAASC,KAAT,EAAgB;MAClC,KAAKC,QAAL,CAAe,GAAEF,MAAO,IAAGC,KAAM,EAAjC;IACD;;IAQiB,MAAZE,YAAY,CAACC,IAAD,EAAO;MACvB,IAAIC,eAAA,CAAEC,OAAF,CAAUF,IAAV,CAAJ,EAAqB;QACnB,OAAO,KAAKG,YAAZ;MACD;;MAED,MAAMC,QAAQ,GAAGH,eAAA,CAAEI,SAAF,CAAYL,IAAZ,CAAjB;;MAEA,OAAOC,eAAA,CAAEK,MAAF,CACL,KAAKH,YADA,EAEL,CAACI,GAAD,EAAMC,UAAN,EAAkBC,SAAlB,KAAgC;QAC9B,IAAIL,QAAQ,CAACM,QAAT,CAAkBD,SAAlB,CAAJ,EAAkC;UAChCF,GAAG,CAACE,SAAD,CAAH,GAAiBD,UAAjB;QACD;;QACD,OAAOD,GAAP;MACD,CAPI,EAQL,EARK,CAAP;IAUD;;EAnC8B;;EAsCjC,OAAOb,aAAP;AACD"}
@@ -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
  });
@@ -13,6 +11,8 @@ var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
14
12
  var _protocol = require("../../protocol");
15
13
 
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
16
  function ExecuteMixin(Base) {
17
17
  class ExecuteCommands extends Base {
18
18
  async executeMethod(script, protoArgs) {
@@ -59,4 +59,4 @@ function ExecuteMixin(Base) {
59
59
 
60
60
  return ExecuteCommands;
61
61
  }
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeGVjdXRlTWl4aW4iLCJCYXNlIiwiRXhlY3V0ZUNvbW1hbmRzIiwiZXhlY3V0ZU1ldGhvZCIsInNjcmlwdCIsInByb3RvQXJncyIsIl8iLCJpc0FycmF5IiwibGVuZ3RoIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJncyIsImlzUGxhaW5PYmplY3QiLCJEcml2ZXIiLCJjb25zdHJ1Y3RvciIsImF2YWlsYWJsZVNjcmlwdHMiLCJrZXlzIiwiZXhlY3V0ZU1ldGhvZE1hcCIsImNvbW1hbmRNZXRhZGF0YSIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJqb2luIiwiYXJnc1RvQXBwbHkiLCJwYXJhbXMiLCJyZXF1aXJlZCIsIm9wdGlvbmFsIiwiY2hlY2tQYXJhbXMiLCJtYWtlQXJncyIsImNvbW1hbmQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvYmFzZWRyaXZlci9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2Vycm9ycywgbWFrZUFyZ3MsIGNoZWNrUGFyYW1zfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbi8qKlxuICogQHBhcmFtIHtTZXNzaW9uQmFzZX0gQmFzZVxuICogQHJldHVybnMge0V4ZWN1dGVCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXhlY3V0ZU1peGluKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJRXhlY3V0ZUNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgRXhlY3V0ZUNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdFxuICAgICAqIEBwYXJhbSB7W1JlY29yZDxzdHJpbmcsIGFueT5dfFtdfSBwcm90b0FyZ3NcbiAgICAgKi9cbiAgICBhc3luYyBleGVjdXRlTWV0aG9kKHNjcmlwdCwgcHJvdG9BcmdzKSB7XG4gICAgICAvLyB0aGUgdzNjIHByb3RvY29sIHdpbGwgZ2l2ZSB1cyBhbiBhcnJheSBvZiBhcmd1bWVudHMgdG8gYXBwbHkgdG8gYSBqYXZhc2NyaXB0IGZ1bmN0aW9uLlxuICAgICAgLy8gdGhhdCdzIG5vdCB3aGF0IHdlJ3JlIGRvaW5nLiB3ZSdyZSBnb2luZyB0byBsb29rIGZvciBhIEpTIG9iamVjdCBhcyB0aGUgZmlyc3QgYXJnLCBzbyB3ZVxuICAgICAgLy8gY2FuIHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBpdC4gd2UnbGwgaWdub3JlIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgICAgIGlmICghcHJvdG9BcmdzIHx8ICFfLmlzQXJyYXkocHJvdG9BcmdzKSB8fCBwcm90b0FyZ3MubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAgIGBEaWQgbm90IGdldCBjb3JyZWN0IGZvcm1hdCBvZiBhcmd1bWVudHMgZm9yIGV4ZWN1dGUgbWV0aG9kLiBFeHBlY3RlZCB6ZXJvIG9yIG9uZSBgICtcbiAgICAgICAgICAgIGBhcmd1bWVudHMgdG8gZXhlY3V0ZSBzY3JpcHQgYW5kIGluc3RlYWQgcmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkocHJvdG9BcmdzKX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBsZXQgYXJncyA9IHByb3RvQXJnc1swXSA/PyB7fTtcbiAgICAgIGlmICghXy5pc1BsYWluT2JqZWN0KGFyZ3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICAgYERpZCBub3QgcmVjZWl2ZSBhbiBhcHByb3ByaWF0ZSBleGVjdXRlIG1ldGhvZCBwYXJhbWV0ZXJzIG9iamVjdC4gSXQgbmVlZHMgdG8gYmUgYCArXG4gICAgICAgICAgICBgZGVzZXJpYWxpemFibGUgYXMgYSBwbGFpbiBKUyBvYmplY3RgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IERyaXZlciA9IC8qKiBAdHlwZSB7RHJpdmVyQ2xhc3N9ICovICh0aGlzLmNvbnN0cnVjdG9yKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVNjcmlwdHMgPSBfLmtleXMoRHJpdmVyLmV4ZWN1dGVNZXRob2RNYXApO1xuICAgICAgY29uc3QgY29tbWFuZE1ldGFkYXRhID0gRHJpdmVyLmV4ZWN1dGVNZXRob2RNYXBbc2NyaXB0XTtcbiAgICAgIGlmICghY29tbWFuZE1ldGFkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcihcbiAgICAgICAgICBgVW5zdXBwb3J0ZWQgZXhlY3V0ZSBtZXRob2QgJyR7c2NyaXB0fScuIEF2YWlsYWJsZSBtZXRob2RzIGAgK1xuICAgICAgICAgICAgYGFyZTogJHthdmFpbGFibGVTY3JpcHRzLmpvaW4oJywgJyl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbGV0IGFyZ3NUb0FwcGx5ID0gW107XG4gICAgICBpZiAoIWNvbW1hbmRNZXRhZGF0YS5wYXJhbXMpIHtcbiAgICAgICAgY29tbWFuZE1ldGFkYXRhLnBhcmFtcyA9IHtyZXF1aXJlZDogW10sIG9wdGlvbmFsOiBbXX07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21tYW5kTWV0YWRhdGEucGFyYW1zLnJlcXVpcmVkID8/PSBbXTtcbiAgICAgICAgY29tbWFuZE1ldGFkYXRhLnBhcmFtcy5vcHRpb25hbCA/Pz0gW107XG4gICAgICAgIGNoZWNrUGFyYW1zKGNvbW1hbmRNZXRhZGF0YS5wYXJhbXMsIGFyZ3MsIG51bGwpO1xuICAgICAgfVxuICAgICAgYXJnc1RvQXBwbHkgPSBtYWtlQXJncyh7fSwgYXJncywgY29tbWFuZE1ldGFkYXRhLnBhcmFtcywgbnVsbCk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpc1tEcml2ZXIuZXhlY3V0ZU1ldGhvZE1hcFtzY3JpcHRdLmNvbW1hbmRdKC4uLmFyZ3NUb0FwcGx5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEV4ZWN1dGVDb21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXhlY3V0ZUNvbW1hbmRzfSBJRXhlY3V0ZUNvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyfSBEcml2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJDbGFzc30gRHJpdmVyQ2xhc3NcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2Vzc2lvbicpLlNlc3Npb25CYXNlfSBTZXNzaW9uQmFzZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVGltZW91dENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2V0dGluZ3NDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25Db21tYW5kcyAmIElFeGVjdXRlQ29tbWFuZHM+fSBFeGVjdXRlQmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBTU8sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7RUFJakMsTUFBTUMsZUFBTixTQUE4QkQsSUFBOUIsQ0FBbUM7SUFLZCxNQUFiRSxhQUFhLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxFQUFvQjtNQUlyQyxJQUFJLENBQUNBLFNBQUQsSUFBYyxDQUFDQyxlQUFBLENBQUVDLE9BQUYsQ0FBVUYsU0FBVixDQUFmLElBQXVDQSxTQUFTLENBQUNHLE1BQVYsR0FBbUIsQ0FBOUQsRUFBaUU7UUFDL0QsTUFBTSxJQUFJQyxnQkFBQSxDQUFPQyxvQkFBWCxDQUNILG1GQUFELEdBQ0cscURBQW9EQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVAsU0FBZixDQUEwQixFQUY3RSxDQUFOO01BSUQ7O01BQ0QsSUFBSVEsSUFBSSxHQUFHUixTQUFTLENBQUMsQ0FBRCxDQUFULElBQWdCLEVBQTNCOztNQUNBLElBQUksQ0FBQ0MsZUFBQSxDQUFFUSxhQUFGLENBQWdCRCxJQUFoQixDQUFMLEVBQTRCO1FBQzFCLE1BQU0sSUFBSUosZ0JBQUEsQ0FBT0Msb0JBQVgsQ0FDSCxrRkFBRCxHQUNHLHFDQUZDLENBQU47TUFJRDs7TUFFRCxNQUFNSyxNQUFNLEdBQStCLEtBQUtDLFdBQWhEOztNQUNBLE1BQU1DLGdCQUFnQixHQUFHWCxlQUFBLENBQUVZLElBQUYsQ0FBT0gsTUFBTSxDQUFDSSxnQkFBZCxDQUF6Qjs7TUFDQSxNQUFNQyxlQUFlLEdBQUdMLE1BQU0sQ0FBQ0ksZ0JBQVAsQ0FBd0JmLE1BQXhCLENBQXhCOztNQUNBLElBQUksQ0FBQ2dCLGVBQUwsRUFBc0I7UUFDcEIsTUFBTSxJQUFJWCxnQkFBQSxDQUFPWSx5QkFBWCxDQUNILCtCQUE4QmpCLE1BQU8sdUJBQXRDLEdBQ0csUUFBT2EsZ0JBQWdCLENBQUNLLElBQWpCLENBQXNCLElBQXRCLENBQTRCLEVBRmxDLENBQU47TUFJRDs7TUFDRCxJQUFJQyxXQUFXLEdBQUcsRUFBbEI7O01BQ0EsSUFBSSxDQUFDSCxlQUFlLENBQUNJLE1BQXJCLEVBQTZCO1FBQzNCSixlQUFlLENBQUNJLE1BQWhCLEdBQXlCO1VBQUNDLFFBQVEsRUFBRSxFQUFYO1VBQWVDLFFBQVEsRUFBRTtRQUF6QixDQUF6QjtNQUNELENBRkQsTUFFTztRQUFBOztRQUNMLHlCQUFBTixlQUFlLENBQUNJLE1BQWhCLEVBQXVCQyxRQUF2QiwyQkFBdUJBLFFBQXZCLEdBQW9DLEVBQXBDO1FBQ0EsMEJBQUFMLGVBQWUsQ0FBQ0ksTUFBaEIsRUFBdUJFLFFBQXZCLDRCQUF1QkEsUUFBdkIsR0FBb0MsRUFBcEM7UUFDQSxJQUFBQyxxQkFBQSxFQUFZUCxlQUFlLENBQUNJLE1BQTVCLEVBQW9DWCxJQUFwQyxFQUEwQyxJQUExQztNQUNEOztNQUNEVSxXQUFXLEdBQUcsSUFBQUssa0JBQUEsRUFBUyxFQUFULEVBQWFmLElBQWIsRUFBbUJPLGVBQWUsQ0FBQ0ksTUFBbkMsRUFBMkMsSUFBM0MsQ0FBZDtNQUNBLE9BQU8sTUFBTSxLQUFLVCxNQUFNLENBQUNJLGdCQUFQLENBQXdCZixNQUF4QixFQUFnQ3lCLE9BQXJDLEVBQThDLEdBQUdOLFdBQWpELENBQWI7SUFDRDs7RUExQ2dDOztFQTRDbkMsT0FBT3JCLGVBQVA7QUFDRCJ9
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeGVjdXRlTWl4aW4iLCJCYXNlIiwiRXhlY3V0ZUNvbW1hbmRzIiwiZXhlY3V0ZU1ldGhvZCIsInNjcmlwdCIsInByb3RvQXJncyIsIl8iLCJpc0FycmF5IiwibGVuZ3RoIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJncyIsImlzUGxhaW5PYmplY3QiLCJEcml2ZXIiLCJjb25zdHJ1Y3RvciIsImF2YWlsYWJsZVNjcmlwdHMiLCJrZXlzIiwiZXhlY3V0ZU1ldGhvZE1hcCIsImNvbW1hbmRNZXRhZGF0YSIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJqb2luIiwiYXJnc1RvQXBwbHkiLCJwYXJhbXMiLCJyZXF1aXJlZCIsIm9wdGlvbmFsIiwiY2hlY2tQYXJhbXMiLCJtYWtlQXJncyIsImNvbW1hbmQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvYmFzZWRyaXZlci9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2Vycm9ycywgbWFrZUFyZ3MsIGNoZWNrUGFyYW1zfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbi8qKlxuICogQHBhcmFtIHtTZXNzaW9uQmFzZX0gQmFzZVxuICogQHJldHVybnMge0V4ZWN1dGVCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXhlY3V0ZU1peGluKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJRXhlY3V0ZUNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgRXhlY3V0ZUNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdFxuICAgICAqIEBwYXJhbSB7W1JlY29yZDxzdHJpbmcsIGFueT5dfFtdfSBwcm90b0FyZ3NcbiAgICAgKi9cbiAgICBhc3luYyBleGVjdXRlTWV0aG9kKHNjcmlwdCwgcHJvdG9BcmdzKSB7XG4gICAgICAvLyB0aGUgdzNjIHByb3RvY29sIHdpbGwgZ2l2ZSB1cyBhbiBhcnJheSBvZiBhcmd1bWVudHMgdG8gYXBwbHkgdG8gYSBqYXZhc2NyaXB0IGZ1bmN0aW9uLlxuICAgICAgLy8gdGhhdCdzIG5vdCB3aGF0IHdlJ3JlIGRvaW5nLiB3ZSdyZSBnb2luZyB0byBsb29rIGZvciBhIEpTIG9iamVjdCBhcyB0aGUgZmlyc3QgYXJnLCBzbyB3ZVxuICAgICAgLy8gY2FuIHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBpdC4gd2UnbGwgaWdub3JlIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgICAgIGlmICghcHJvdG9BcmdzIHx8ICFfLmlzQXJyYXkocHJvdG9BcmdzKSB8fCBwcm90b0FyZ3MubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAgIGBEaWQgbm90IGdldCBjb3JyZWN0IGZvcm1hdCBvZiBhcmd1bWVudHMgZm9yIGV4ZWN1dGUgbWV0aG9kLiBFeHBlY3RlZCB6ZXJvIG9yIG9uZSBgICtcbiAgICAgICAgICAgIGBhcmd1bWVudHMgdG8gZXhlY3V0ZSBzY3JpcHQgYW5kIGluc3RlYWQgcmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkocHJvdG9BcmdzKX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBsZXQgYXJncyA9IHByb3RvQXJnc1swXSA/PyB7fTtcbiAgICAgIGlmICghXy5pc1BsYWluT2JqZWN0KGFyZ3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICAgYERpZCBub3QgcmVjZWl2ZSBhbiBhcHByb3ByaWF0ZSBleGVjdXRlIG1ldGhvZCBwYXJhbWV0ZXJzIG9iamVjdC4gSXQgbmVlZHMgdG8gYmUgYCArXG4gICAgICAgICAgICBgZGVzZXJpYWxpemFibGUgYXMgYSBwbGFpbiBKUyBvYmplY3RgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IERyaXZlciA9IC8qKiBAdHlwZSB7RHJpdmVyQ2xhc3N9ICovICh0aGlzLmNvbnN0cnVjdG9yKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVNjcmlwdHMgPSBfLmtleXMoRHJpdmVyLmV4ZWN1dGVNZXRob2RNYXApO1xuICAgICAgY29uc3QgY29tbWFuZE1ldGFkYXRhID0gRHJpdmVyLmV4ZWN1dGVNZXRob2RNYXBbc2NyaXB0XTtcbiAgICAgIGlmICghY29tbWFuZE1ldGFkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcihcbiAgICAgICAgICBgVW5zdXBwb3J0ZWQgZXhlY3V0ZSBtZXRob2QgJyR7c2NyaXB0fScuIEF2YWlsYWJsZSBtZXRob2RzIGAgK1xuICAgICAgICAgICAgYGFyZTogJHthdmFpbGFibGVTY3JpcHRzLmpvaW4oJywgJyl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbGV0IGFyZ3NUb0FwcGx5ID0gW107XG4gICAgICBpZiAoIWNvbW1hbmRNZXRhZGF0YS5wYXJhbXMpIHtcbiAgICAgICAgY29tbWFuZE1ldGFkYXRhLnBhcmFtcyA9IHtyZXF1aXJlZDogW10sIG9wdGlvbmFsOiBbXX07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21tYW5kTWV0YWRhdGEucGFyYW1zLnJlcXVpcmVkID8/PSBbXTtcbiAgICAgICAgY29tbWFuZE1ldGFkYXRhLnBhcmFtcy5vcHRpb25hbCA/Pz0gW107XG4gICAgICAgIGNoZWNrUGFyYW1zKGNvbW1hbmRNZXRhZGF0YS5wYXJhbXMsIGFyZ3MsIG51bGwpO1xuICAgICAgfVxuICAgICAgYXJnc1RvQXBwbHkgPSBtYWtlQXJncyh7fSwgYXJncywgY29tbWFuZE1ldGFkYXRhLnBhcmFtcywgbnVsbCk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpc1tEcml2ZXIuZXhlY3V0ZU1ldGhvZE1hcFtzY3JpcHRdLmNvbW1hbmRdKC4uLmFyZ3NUb0FwcGx5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEV4ZWN1dGVDb21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXhlY3V0ZUNvbW1hbmRzfSBJRXhlY3V0ZUNvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyfSBEcml2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJDbGFzc30gRHJpdmVyQ2xhc3NcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2Vzc2lvbicpLlNlc3Npb25CYXNlfSBTZXNzaW9uQmFzZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVGltZW91dENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2V0dGluZ3NDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25Db21tYW5kcyAmIElFeGVjdXRlQ29tbWFuZHM+fSBFeGVjdXRlQmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBTU8sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7RUFJakMsTUFBTUMsZUFBTixTQUE4QkQsSUFBOUIsQ0FBbUM7SUFLZCxNQUFiRSxhQUFhLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxFQUFvQjtNQUlyQyxJQUFJLENBQUNBLFNBQUQsSUFBYyxDQUFDQyxlQUFBLENBQUVDLE9BQUYsQ0FBVUYsU0FBVixDQUFmLElBQXVDQSxTQUFTLENBQUNHLE1BQVYsR0FBbUIsQ0FBOUQsRUFBaUU7UUFDL0QsTUFBTSxJQUFJQyxnQkFBQSxDQUFPQyxvQkFBWCxDQUNILG1GQUFELEdBQ0cscURBQW9EQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVAsU0FBZixDQUEwQixFQUY3RSxDQUFOO01BSUQ7O01BQ0QsSUFBSVEsSUFBSSxHQUFHUixTQUFTLENBQUMsQ0FBRCxDQUFULElBQWdCLEVBQTNCOztNQUNBLElBQUksQ0FBQ0MsZUFBQSxDQUFFUSxhQUFGLENBQWdCRCxJQUFoQixDQUFMLEVBQTRCO1FBQzFCLE1BQU0sSUFBSUosZ0JBQUEsQ0FBT0Msb0JBQVgsQ0FDSCxrRkFBRCxHQUNHLHFDQUZDLENBQU47TUFJRDs7TUFFRCxNQUFNSyxNQUFNLEdBQStCLEtBQUtDLFdBQWhEOztNQUNBLE1BQU1DLGdCQUFnQixHQUFHWCxlQUFBLENBQUVZLElBQUYsQ0FBT0gsTUFBTSxDQUFDSSxnQkFBZCxDQUF6Qjs7TUFDQSxNQUFNQyxlQUFlLEdBQUdMLE1BQU0sQ0FBQ0ksZ0JBQVAsQ0FBd0JmLE1BQXhCLENBQXhCOztNQUNBLElBQUksQ0FBQ2dCLGVBQUwsRUFBc0I7UUFDcEIsTUFBTSxJQUFJWCxnQkFBQSxDQUFPWSx5QkFBWCxDQUNILCtCQUE4QmpCLE1BQU8sdUJBQXRDLEdBQ0csUUFBT2EsZ0JBQWdCLENBQUNLLElBQWpCLENBQXNCLElBQXRCLENBQTRCLEVBRmxDLENBQU47TUFJRDs7TUFDRCxJQUFJQyxXQUFXLEdBQUcsRUFBbEI7O01BQ0EsSUFBSSxDQUFDSCxlQUFlLENBQUNJLE1BQXJCLEVBQTZCO1FBQzNCSixlQUFlLENBQUNJLE1BQWhCLEdBQXlCO1VBQUNDLFFBQVEsRUFBRSxFQUFYO1VBQWVDLFFBQVEsRUFBRTtRQUF6QixDQUF6QjtNQUNELENBRkQsTUFFTztRQUFBOztRQUNMLHlCQUFBTixlQUFlLENBQUNJLE1BQWhCLEVBQXVCQyxRQUF2QiwyQkFBdUJBLFFBQXZCLEdBQW9DLEVBQXBDO1FBQ0EsMEJBQUFMLGVBQWUsQ0FBQ0ksTUFBaEIsRUFBdUJFLFFBQXZCLDRCQUF1QkEsUUFBdkIsR0FBb0MsRUFBcEM7UUFDQSxJQUFBQyxxQkFBQSxFQUFZUCxlQUFlLENBQUNJLE1BQTVCLEVBQW9DWCxJQUFwQyxFQUEwQyxJQUExQztNQUNEOztNQUNEVSxXQUFXLEdBQUcsSUFBQUssa0JBQUEsRUFBUyxFQUFULEVBQWFmLElBQWIsRUFBbUJPLGVBQWUsQ0FBQ0ksTUFBbkMsRUFBMkMsSUFBM0MsQ0FBZDtNQUNBLE9BQU8sTUFBTSxLQUFLVCxNQUFNLENBQUNJLGdCQUFQLENBQXdCZixNQUF4QixFQUFnQ3lCLE9BQXJDLEVBQThDLEdBQUdOLFdBQWpELENBQWI7SUFDRDs7RUExQ2dDOztFQTRDbkMsT0FBT3JCLGVBQVA7QUFDRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","names":["ExecuteMixin","Base","ExecuteCommands","executeMethod","script","protoArgs","_","isArray","length","errors","InvalidArgumentError","JSON","stringify","args","isPlainObject","Driver","constructor","availableScripts","keys","executeMethodMap","commandMetadata","UnsupportedOperationError","join","argsToApply","params","required","optional","checkParams","makeArgs","command"],"sources":["../../../../lib/basedriver/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport {errors, makeArgs, checkParams} from '../../protocol';\n\n/**\n * @param {SessionBase} Base\n * @returns {ExecuteBase}\n */\nexport function ExecuteMixin(Base) {\n /**\n * @implements {IExecuteCommands}\n */\n class ExecuteCommands extends Base {\n /**\n * @param {string} script\n * @param {[Record<string, any>]|[]} protoArgs\n */\n async executeMethod(script, protoArgs) {\n // the w3c protocol will give us an array of arguments to apply to a javascript function.\n // that's not what we're doing. we're going to look for a JS object as the first arg, so we\n // can perform validation on it. we'll ignore everything else.\n if (!protoArgs || !_.isArray(protoArgs) || protoArgs.length > 1) {\n throw new errors.InvalidArgumentError(\n `Did not get correct format of arguments for execute method. Expected zero or one ` +\n `arguments to execute script and instead received: ${JSON.stringify(protoArgs)}`\n );\n }\n let args = protoArgs[0] ?? {};\n if (!_.isPlainObject(args)) {\n throw new errors.InvalidArgumentError(\n `Did not receive an appropriate execute method parameters object. It needs to be ` +\n `deserializable as a plain JS object`\n );\n }\n\n const Driver = /** @type {DriverClass} */ (this.constructor);\n const availableScripts = _.keys(Driver.executeMethodMap);\n const commandMetadata = Driver.executeMethodMap[script];\n if (!commandMetadata) {\n throw new errors.UnsupportedOperationError(\n `Unsupported execute method '${script}'. Available methods ` +\n `are: ${availableScripts.join(', ')}`\n );\n }\n let argsToApply = [];\n if (!commandMetadata.params) {\n commandMetadata.params = {required: [], optional: []};\n } else {\n commandMetadata.params.required ??= [];\n commandMetadata.params.optional ??= [];\n checkParams(commandMetadata.params, args, null);\n }\n argsToApply = makeArgs({}, args, commandMetadata.params, null);\n return await this[Driver.executeMethodMap[script].command](...argsToApply);\n }\n }\n return ExecuteCommands;\n}\n\n/**\n * @typedef {import('@appium/types').ExecuteCommands} IExecuteCommands\n * @typedef {import('@appium/types').Driver} Driver\n * @typedef {import('@appium/types').DriverClass} DriverClass\n * @typedef {import('./session').SessionBase} SessionBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & import('@appium/types').LogCommands & import('@appium/types').SettingsCommands & import('@appium/types').SessionCommands & IExecuteCommands>} ExecuteBase\n */\n"],"mappings":";;;;;;;;;AAAA;;AACA;;;;AAMO,SAASA,YAAT,CAAsBC,IAAtB,EAA4B;EAIjC,MAAMC,eAAN,SAA8BD,IAA9B,CAAmC;IAKd,MAAbE,aAAa,CAACC,MAAD,EAASC,SAAT,EAAoB;MAIrC,IAAI,CAACA,SAAD,IAAc,CAACC,eAAA,CAAEC,OAAF,CAAUF,SAAV,CAAf,IAAuCA,SAAS,CAACG,MAAV,GAAmB,CAA9D,EAAiE;QAC/D,MAAM,IAAIC,gBAAA,CAAOC,oBAAX,CACH,mFAAD,GACG,qDAAoDC,IAAI,CAACC,SAAL,CAAeP,SAAf,CAA0B,EAF7E,CAAN;MAID;;MACD,IAAIQ,IAAI,GAAGR,SAAS,CAAC,CAAD,CAAT,IAAgB,EAA3B;;MACA,IAAI,CAACC,eAAA,CAAEQ,aAAF,CAAgBD,IAAhB,CAAL,EAA4B;QAC1B,MAAM,IAAIJ,gBAAA,CAAOC,oBAAX,CACH,kFAAD,GACG,qCAFC,CAAN;MAID;;MAED,MAAMK,MAAM,GAA+B,KAAKC,WAAhD;;MACA,MAAMC,gBAAgB,GAAGX,eAAA,CAAEY,IAAF,CAAOH,MAAM,CAACI,gBAAd,CAAzB;;MACA,MAAMC,eAAe,GAAGL,MAAM,CAACI,gBAAP,CAAwBf,MAAxB,CAAxB;;MACA,IAAI,CAACgB,eAAL,EAAsB;QACpB,MAAM,IAAIX,gBAAA,CAAOY,yBAAX,CACH,+BAA8BjB,MAAO,uBAAtC,GACG,QAAOa,gBAAgB,CAACK,IAAjB,CAAsB,IAAtB,CAA4B,EAFlC,CAAN;MAID;;MACD,IAAIC,WAAW,GAAG,EAAlB;;MACA,IAAI,CAACH,eAAe,CAACI,MAArB,EAA6B;QAC3BJ,eAAe,CAACI,MAAhB,GAAyB;UAACC,QAAQ,EAAE,EAAX;UAAeC,QAAQ,EAAE;QAAzB,CAAzB;MACD,CAFD,MAEO;QAAA;;QACL,yBAAAN,eAAe,CAACI,MAAhB,EAAuBC,QAAvB,2BAAuBA,QAAvB,GAAoC,EAApC;QACA,0BAAAL,eAAe,CAACI,MAAhB,EAAuBE,QAAvB,4BAAuBA,QAAvB,GAAoC,EAApC;QACA,IAAAC,qBAAA,EAAYP,eAAe,CAACI,MAA5B,EAAoCX,IAApC,EAA0C,IAA1C;MACD;;MACDU,WAAW,GAAG,IAAAK,kBAAA,EAAS,EAAT,EAAaf,IAAb,EAAmBO,eAAe,CAACI,MAAnC,EAA2C,IAA3C,CAAd;MACA,OAAO,MAAM,KAAKT,MAAM,CAACI,gBAAP,CAAwBf,MAAxB,EAAgCyB,OAArC,EAA8C,GAAGN,WAAjD,CAAb;IACD;;EA1CgC;;EA4CnC,OAAOrB,eAAP;AACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","names":["FindMixin","Base","FindCommands","findElement","strategy","selector","findElOrElsWithProcessing","findElements","findElementFromElement","elementId","findElementsFromElement","findElOrEls","mult","context","errors","NotImplementedError","getPageSource","validateLocatorStrategy","err","opts","printPageSourceOnFindFailure","src","log","debug","message"],"sources":["../../../../lib/basedriver/commands/find.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\n/* eslint-disable require-await */\n// @ts-check\nimport {errors} from '../../protocol';\n\n/**\n *\n * @param {EventBase} Base\n * @returns {FindBase}\n */\nexport function FindMixin(Base) {\n /**\n * @implements {IFindCommands}\n */\n class FindCommands extends Base {\n /**\n *\n * @returns {Promise<Element>}\n */\n async findElement(strategy, selector) {\n return await this.findElOrElsWithProcessing(strategy, selector, false);\n }\n\n /**\n *\n * @returns {Promise<Element[]>}\n */\n async findElements(strategy, selector) {\n return await this.findElOrElsWithProcessing(strategy, selector, true);\n }\n\n /**\n *\n * @returns {Promise<Element>}\n */\n async findElementFromElement(strategy, selector, elementId) {\n return await this.findElOrElsWithProcessing(strategy, selector, false, elementId);\n }\n\n /**\n *\n * @returns {Promise<Element[]>}\n */\n async findElementsFromElement(strategy, selector, elementId) {\n return await this.findElOrElsWithProcessing(strategy, selector, true, elementId);\n }\n // Override the following function for your own driver, and the rest is taken\n // care of!\n // Returns an object which adheres to the way the JSON Wire Protocol represents elements:\n // { ELEMENT: # } eg: { ELEMENT: 3 } or { ELEMENT: 1.023 }\n /**\n * @template {boolean} Mult\n * @param {string} strategy\n * @param {string} selector\n * @param {Mult} mult\n * @param {string} [context]\n * @returns {Promise<Mult extends true ? Element[] : Element>}\n */\n async findElOrEls(strategy, selector, mult, context) {\n throw new errors.NotImplementedError('Not implemented yet for find.');\n }\n\n /**\n * @returns {Promise<string>}\n */\n async getPageSource() {\n throw new errors.NotImplementedError('Not implemented yet for find.');\n }\n /**\n * @template {boolean} Mult\n * @param {string} strategy\n * @param {string} selector\n * @param {Mult} mult\n * @param {string} [context]\n * @returns {Promise<Mult extends true ? Element[] : Element>}\n */\n async findElOrElsWithProcessing(strategy, selector, mult, context) {\n this.validateLocatorStrategy(strategy);\n try {\n return await this.findElOrEls(strategy, selector, mult, context);\n } catch (err) {\n if (this.opts.printPageSourceOnFindFailure) {\n const src = await this.getPageSource();\n this.log.debug(`Error finding element${mult ? 's' : ''}: ${err.message}`);\n this.log.debug(`Page source requested through 'printPageSourceOnFindFailure':`);\n this.log.debug(src);\n }\n // still want the error to occur\n throw err;\n }\n }\n }\n\n return FindCommands;\n}\n\n/**\n * @typedef {import('@appium/types').Element} Element\n * @typedef {import('@appium/types').FindCommands} IFindCommands\n * @typedef {import('./event').EventBase} EventBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & IFindCommands>} FindBase\n */\n"],"mappings":";;;;;;;;;AAGA;;AAOO,SAASA,SAAT,CAAmBC,IAAnB,EAAyB;EAI9B,MAAMC,YAAN,SAA2BD,IAA3B,CAAgC;IAKb,MAAXE,WAAW,CAACC,QAAD,EAAWC,QAAX,EAAqB;MACpC,OAAO,MAAM,KAAKC,yBAAL,CAA+BF,QAA/B,EAAyCC,QAAzC,EAAmD,KAAnD,CAAb;IACD;;IAMiB,MAAZE,YAAY,CAACH,QAAD,EAAWC,QAAX,EAAqB;MACrC,OAAO,MAAM,KAAKC,yBAAL,CAA+BF,QAA/B,EAAyCC,QAAzC,EAAmD,IAAnD,CAAb;IACD;;IAM2B,MAAtBG,sBAAsB,CAACJ,QAAD,EAAWC,QAAX,EAAqBI,SAArB,EAAgC;MAC1D,OAAO,MAAM,KAAKH,yBAAL,CAA+BF,QAA/B,EAAyCC,QAAzC,EAAmD,KAAnD,EAA0DI,SAA1D,CAAb;IACD;;IAM4B,MAAvBC,uBAAuB,CAACN,QAAD,EAAWC,QAAX,EAAqBI,SAArB,EAAgC;MAC3D,OAAO,MAAM,KAAKH,yBAAL,CAA+BF,QAA/B,EAAyCC,QAAzC,EAAmD,IAAnD,EAAyDI,SAAzD,CAAb;IACD;;IAagB,MAAXE,WAAW,CAACP,QAAD,EAAWC,QAAX,EAAqBO,IAArB,EAA2BC,OAA3B,EAAoC;MACnD,MAAM,IAAIC,gBAAA,CAAOC,mBAAX,CAA+B,+BAA/B,CAAN;IACD;;IAKkB,MAAbC,aAAa,GAAG;MACpB,MAAM,IAAIF,gBAAA,CAAOC,mBAAX,CAA+B,+BAA/B,CAAN;IACD;;IAS8B,MAAzBT,yBAAyB,CAACF,QAAD,EAAWC,QAAX,EAAqBO,IAArB,EAA2BC,OAA3B,EAAoC;MACjE,KAAKI,uBAAL,CAA6Bb,QAA7B;;MACA,IAAI;QACF,OAAO,MAAM,KAAKO,WAAL,CAAiBP,QAAjB,EAA2BC,QAA3B,EAAqCO,IAArC,EAA2CC,OAA3C,CAAb;MACD,CAFD,CAEE,OAAOK,GAAP,EAAY;QACZ,IAAI,KAAKC,IAAL,CAAUC,4BAAd,EAA4C;UAC1C,MAAMC,GAAG,GAAG,MAAM,KAAKL,aAAL,EAAlB;UACA,KAAKM,GAAL,CAASC,KAAT,CAAgB,wBAAuBX,IAAI,GAAG,GAAH,GAAS,EAAG,KAAIM,GAAG,CAACM,OAAQ,EAAvE;UACA,KAAKF,GAAL,CAASC,KAAT,CAAgB,+DAAhB;UACA,KAAKD,GAAL,CAASC,KAAT,CAAeF,GAAf;QACD;;QAED,MAAMH,GAAN;MACD;IACF;;EA5E6B;;EA+EhC,OAAOhB,YAAP;AACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createBaseDriverClass","Base","WithTimeoutCommands","TimeoutMixin","WithEventCommands","EventMixin","WithFindCommands","FindMixin","WithLogCommands","LogMixin","WithSettingsCommands","SettingsMixin","WithSessionCommands","SessionMixin","WithExecuteCommands","ExecuteMixin"],"sources":["../../../../lib/basedriver/commands/index.js"],"sourcesContent":["// @ts-check\n\nimport {EventMixin} from './event';\nimport {FindMixin} from './find';\nimport {LogMixin} from './log';\nimport {SessionMixin} from './session';\nimport {SettingsMixin} from './settings';\nimport {TimeoutMixin} from './timeout';\nimport {ExecuteMixin} from './execute';\n\n/**\n * Applies all the mixins to the `BaseDriverBase` class.\n * Returns a `BaseDriver` class.\n * @param {BaseDriverBase} Base\n */\nexport function createBaseDriverClass(Base) {\n const WithTimeoutCommands = TimeoutMixin(Base);\n const WithEventCommands = EventMixin(WithTimeoutCommands);\n const WithFindCommands = FindMixin(WithEventCommands);\n const WithLogCommands = LogMixin(WithFindCommands);\n const WithSettingsCommands = SettingsMixin(WithLogCommands);\n const WithSessionCommands = SessionMixin(WithSettingsCommands);\n const WithExecuteCommands = ExecuteMixin(WithSessionCommands);\n return WithExecuteCommands;\n}\n\n/**\n * @template [T={}]\n * @typedef {import('../driver').BaseDriverBase<T>} BaseDriverBase\n */\n"],"mappings":";;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOO,SAASA,qBAAT,CAA+BC,IAA/B,EAAqC;EAC1C,MAAMC,mBAAmB,GAAG,IAAAC,qBAAA,EAAaF,IAAb,CAA5B;EACA,MAAMG,iBAAiB,GAAG,IAAAC,iBAAA,EAAWH,mBAAX,CAA1B;EACA,MAAMI,gBAAgB,GAAG,IAAAC,eAAA,EAAUH,iBAAV,CAAzB;EACA,MAAMI,eAAe,GAAG,IAAAC,aAAA,EAASH,gBAAT,CAAxB;EACA,MAAMI,oBAAoB,GAAG,IAAAC,uBAAA,EAAcH,eAAd,CAA7B;EACA,MAAMI,mBAAmB,GAAG,IAAAC,qBAAA,EAAaH,oBAAb,CAA5B;EACA,MAAMI,mBAAmB,GAAG,IAAAC,qBAAA,EAAaH,mBAAb,CAA5B;EACA,OAAOE,mBAAP;AACD"}
@@ -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
  });
@@ -11,6 +9,8 @@ require("source-map-support/register");
11
9
 
12
10
  var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
14
  function LogMixin(Base) {
15
15
  class LogCommands extends Base {
16
16
  constructor(...args) {
@@ -39,4 +39,4 @@ function LogMixin(Base) {
39
39
 
40
40
  return LogCommands;
41
41
  }
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dNaXhpbiIsIkJhc2UiLCJMb2dDb21tYW5kcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsInN1cHBvcnRlZExvZ1R5cGVzIiwiZ2V0TG9nVHlwZXMiLCJsb2ciLCJkZWJ1ZyIsIl8iLCJrZXlzIiwiZ2V0TG9nIiwibG9nVHlwZSIsImluY2x1ZGVzIiwibG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyIsIm1hcFZhbHVlcyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtGaW5kQmFzZX0gQmFzZVxuICogQHJldHVybnMge0xvZ0Jhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dNaXhpbihCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SUxvZ0NvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgTG9nQ29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgTG9nVHlwZTxEcml2ZXI+Pn0gKi9cbiAgICAgIHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMgPSB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzID8/IHt9O1xuICAgIH1cblxuICAgIGFzeW5jIGdldExvZ1R5cGVzKCkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgc3VwcG9ydGVkIGxvZyB0eXBlcycpO1xuICAgICAgcmV0dXJuIF8ua2V5cyh0aGlzLnN1cHBvcnRlZExvZ1R5cGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAdGhpcyB7RHJpdmVyfVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsb2dUeXBlXG4gICAgICovXG4gICAgYXN5bmMgZ2V0TG9nKGxvZ1R5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBSZXRyaWV2aW5nICcke2xvZ1R5cGV9JyBsb2dzYCk7XG5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuZ2V0TG9nVHlwZXMoKSkuaW5jbHVkZXMobG9nVHlwZSkpIHtcbiAgICAgICAgY29uc3QgbG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyA9IF8ubWFwVmFsdWVzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMsICdkZXNjcmlwdGlvbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIGxvZyB0eXBlICcke2xvZ1R5cGV9Jy4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIHR5cGVzOiAke0pTT04uc3RyaW5naWZ5KGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3VwcG9ydGVkTG9nVHlwZXNbbG9nVHlwZV0uZ2V0dGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gTG9nQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzfSBJTG9nQ29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9maW5kJykuRmluZEJhc2V9IEZpbmRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgSUxvZ0NvbW1hbmRzPn0gTG9nQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dUeXBlPFQ+fSBMb2dUeXBlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQTs7QUFPTyxTQUFTQSxRQUFULENBQWtCQyxJQUFsQixFQUF3QjtFQUk3QixNQUFNQyxXQUFOLFNBQTBCRCxJQUExQixDQUErQjtJQUM3QkUsV0FBVyxDQUFDLEdBQUdDLElBQUosRUFBVTtNQUNuQixNQUFNLEdBQUdBLElBQVQ7TUFFQSxLQUFLQyxpQkFBTCxHQUF5QixLQUFLQSxpQkFBTCxJQUEwQixFQUFuRDtJQUNEOztJQUVnQixNQUFYQyxXQUFXLEdBQUc7TUFDbEIsS0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWUsZ0NBQWY7TUFDQSxPQUFPQyxlQUFBLENBQUVDLElBQUYsQ0FBTyxLQUFLTCxpQkFBWixDQUFQO0lBQ0Q7O0lBTVcsTUFBTk0sTUFBTSxDQUFDQyxPQUFELEVBQVU7TUFDcEIsS0FBS0wsR0FBTCxDQUFTQyxLQUFULENBQWdCLGVBQWNJLE9BQVEsUUFBdEM7O01BRUEsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLTixXQUFMLEVBQVAsRUFBMkJPLFFBQTNCLENBQW9DRCxPQUFwQyxDQUFMLEVBQW1EO1FBQ2pELE1BQU1FLHlCQUF5QixHQUFHTCxlQUFBLENBQUVNLFNBQUYsQ0FBWSxLQUFLVixpQkFBakIsRUFBb0MsYUFBcEMsQ0FBbEM7O1FBQ0EsTUFBTSxJQUFJVyxLQUFKLENBQ0gseUJBQXdCSixPQUFRLEtBQWpDLEdBQ0csb0JBQW1CSyxJQUFJLENBQUNDLFNBQUwsQ0FBZUoseUJBQWYsQ0FBMEMsRUFGNUQsQ0FBTjtNQUlEOztNQUVELE9BQU8sTUFBTSxLQUFLVCxpQkFBTCxDQUF1Qk8sT0FBdkIsRUFBZ0NPLE1BQWhDLENBQXVDLElBQXZDLENBQWI7SUFDRDs7RUE1QjRCOztFQThCL0IsT0FBT2pCLFdBQVA7QUFDRCJ9
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dNaXhpbiIsIkJhc2UiLCJMb2dDb21tYW5kcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsInN1cHBvcnRlZExvZ1R5cGVzIiwiZ2V0TG9nVHlwZXMiLCJsb2ciLCJkZWJ1ZyIsIl8iLCJrZXlzIiwiZ2V0TG9nIiwibG9nVHlwZSIsImluY2x1ZGVzIiwibG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyIsIm1hcFZhbHVlcyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtGaW5kQmFzZX0gQmFzZVxuICogQHJldHVybnMge0xvZ0Jhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dNaXhpbihCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SUxvZ0NvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgTG9nQ29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgTG9nVHlwZTxEcml2ZXI+Pn0gKi9cbiAgICAgIHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMgPSB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzID8/IHt9O1xuICAgIH1cblxuICAgIGFzeW5jIGdldExvZ1R5cGVzKCkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgc3VwcG9ydGVkIGxvZyB0eXBlcycpO1xuICAgICAgcmV0dXJuIF8ua2V5cyh0aGlzLnN1cHBvcnRlZExvZ1R5cGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAdGhpcyB7RHJpdmVyfVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsb2dUeXBlXG4gICAgICovXG4gICAgYXN5bmMgZ2V0TG9nKGxvZ1R5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBSZXRyaWV2aW5nICcke2xvZ1R5cGV9JyBsb2dzYCk7XG5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuZ2V0TG9nVHlwZXMoKSkuaW5jbHVkZXMobG9nVHlwZSkpIHtcbiAgICAgICAgY29uc3QgbG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyA9IF8ubWFwVmFsdWVzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMsICdkZXNjcmlwdGlvbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIGxvZyB0eXBlICcke2xvZ1R5cGV9Jy4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIHR5cGVzOiAke0pTT04uc3RyaW5naWZ5KGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3VwcG9ydGVkTG9nVHlwZXNbbG9nVHlwZV0uZ2V0dGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gTG9nQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzfSBJTG9nQ29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9maW5kJykuRmluZEJhc2V9IEZpbmRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgSUxvZ0NvbW1hbmRzPn0gTG9nQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dUeXBlPFQ+fSBMb2dUeXBlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7Ozs7QUFPTyxTQUFTQSxRQUFULENBQWtCQyxJQUFsQixFQUF3QjtFQUk3QixNQUFNQyxXQUFOLFNBQTBCRCxJQUExQixDQUErQjtJQUM3QkUsV0FBVyxDQUFDLEdBQUdDLElBQUosRUFBVTtNQUNuQixNQUFNLEdBQUdBLElBQVQ7TUFFQSxLQUFLQyxpQkFBTCxHQUF5QixLQUFLQSxpQkFBTCxJQUEwQixFQUFuRDtJQUNEOztJQUVnQixNQUFYQyxXQUFXLEdBQUc7TUFDbEIsS0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWUsZ0NBQWY7TUFDQSxPQUFPQyxlQUFBLENBQUVDLElBQUYsQ0FBTyxLQUFLTCxpQkFBWixDQUFQO0lBQ0Q7O0lBTVcsTUFBTk0sTUFBTSxDQUFDQyxPQUFELEVBQVU7TUFDcEIsS0FBS0wsR0FBTCxDQUFTQyxLQUFULENBQWdCLGVBQWNJLE9BQVEsUUFBdEM7O01BRUEsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLTixXQUFMLEVBQVAsRUFBMkJPLFFBQTNCLENBQW9DRCxPQUFwQyxDQUFMLEVBQW1EO1FBQ2pELE1BQU1FLHlCQUF5QixHQUFHTCxlQUFBLENBQUVNLFNBQUYsQ0FBWSxLQUFLVixpQkFBakIsRUFBb0MsYUFBcEMsQ0FBbEM7O1FBQ0EsTUFBTSxJQUFJVyxLQUFKLENBQ0gseUJBQXdCSixPQUFRLEtBQWpDLEdBQ0csb0JBQW1CSyxJQUFJLENBQUNDLFNBQUwsQ0FBZUoseUJBQWYsQ0FBMEMsRUFGNUQsQ0FBTjtNQUlEOztNQUVELE9BQU8sTUFBTSxLQUFLVCxpQkFBTCxDQUF1Qk8sT0FBdkIsRUFBZ0NPLE1BQWhDLENBQXVDLElBQXZDLENBQWI7SUFDRDs7RUE1QjRCOztFQThCL0IsT0FBT2pCLFdBQVA7QUFDRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","names":["LogMixin","Base","LogCommands","constructor","args","supportedLogTypes","getLogTypes","log","debug","_","keys","getLog","logType","includes","logsTypesWithDescriptions","mapValues","Error","JSON","stringify","getter"],"sources":["../../../../lib/basedriver/commands/log.js"],"sourcesContent":["/* eslint-disable require-await */\n// @ts-check\n\nimport _ from 'lodash';\n\n/**\n *\n * @param {FindBase} Base\n * @returns {LogBase}\n */\nexport function LogMixin(Base) {\n /**\n * @implements {ILogCommands}\n */\n class LogCommands extends Base {\n constructor(...args) {\n super(...args);\n /** @type {Record<string, LogType<Driver>>} */\n this.supportedLogTypes = this.supportedLogTypes ?? {};\n }\n\n async getLogTypes() {\n this.log.debug('Retrieving supported log types');\n return _.keys(this.supportedLogTypes);\n }\n\n /**\n * @this {Driver}\n * @param {string} logType\n */\n async getLog(logType) {\n this.log.debug(`Retrieving '${logType}' logs`);\n\n if (!(await this.getLogTypes()).includes(logType)) {\n const logsTypesWithDescriptions = _.mapValues(this.supportedLogTypes, 'description');\n throw new Error(\n `Unsupported log type '${logType}'. ` +\n `Supported types: ${JSON.stringify(logsTypesWithDescriptions)}`\n );\n }\n\n return await this.supportedLogTypes[logType].getter(this);\n }\n }\n return LogCommands;\n}\n\n/**\n * @typedef {import('@appium/types').LogCommands} ILogCommands\n * @typedef {import('@appium/types').Driver} Driver\n * @typedef {import('./find').FindBase} FindBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & ILogCommands>} LogBase\n */\n\n/**\n * @template T\n * @typedef {import('@appium/types').LogType<T>} LogType\n */\n"],"mappings":";;;;;;;;;AAGA;;;;AAOO,SAASA,QAAT,CAAkBC,IAAlB,EAAwB;EAI7B,MAAMC,WAAN,SAA0BD,IAA1B,CAA+B;IAC7BE,WAAW,CAAC,GAAGC,IAAJ,EAAU;MACnB,MAAM,GAAGA,IAAT;MAEA,KAAKC,iBAAL,GAAyB,KAAKA,iBAAL,IAA0B,EAAnD;IACD;;IAEgB,MAAXC,WAAW,GAAG;MAClB,KAAKC,GAAL,CAASC,KAAT,CAAe,gCAAf;MACA,OAAOC,eAAA,CAAEC,IAAF,CAAO,KAAKL,iBAAZ,CAAP;IACD;;IAMW,MAANM,MAAM,CAACC,OAAD,EAAU;MACpB,KAAKL,GAAL,CAASC,KAAT,CAAgB,eAAcI,OAAQ,QAAtC;;MAEA,IAAI,CAAC,CAAC,MAAM,KAAKN,WAAL,EAAP,EAA2BO,QAA3B,CAAoCD,OAApC,CAAL,EAAmD;QACjD,MAAME,yBAAyB,GAAGL,eAAA,CAAEM,SAAF,CAAY,KAAKV,iBAAjB,EAAoC,aAApC,CAAlC;;QACA,MAAM,IAAIW,KAAJ,CACH,yBAAwBJ,OAAQ,KAAjC,GACG,oBAAmBK,IAAI,CAACC,SAAL,CAAeJ,yBAAf,CAA0C,EAF5D,CAAN;MAID;;MAED,OAAO,MAAM,KAAKT,iBAAL,CAAuBO,OAAvB,EAAgCO,MAAhC,CAAuC,IAAvC,CAAb;IACD;;EA5B4B;;EA8B/B,OAAOjB,WAAP;AACD"}
@@ -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
  });
@@ -11,6 +9,8 @@ require("source-map-support/register");
11
9
 
12
10
  var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
14
  function SessionMixin(Base) {
15
15
  class SessionCommands extends Base {
16
16
  async getSessions() {
@@ -40,4 +40,4 @@ function SessionMixin(Base) {
40
40
 
41
41
  return SessionCommands;
42
42
  }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXNzaW9uTWl4aW4iLCJCYXNlIiwiU2Vzc2lvbkNvbW1hbmRzIiwiZ2V0U2Vzc2lvbnMiLCJyZXQiLCJzZXNzaW9uSWQiLCJwdXNoIiwiaWQiLCJjYXBhYmlsaXRpZXMiLCJjYXBzIiwiZ2V0U2Vzc2lvbiIsImV2ZW50VGltaW5ncyIsImV2ZW50cyIsImV2ZW50SGlzdG9yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1NldHRpbmdzQmFzZX0gQmFzZVxuICogQHJldHVybnMge1Nlc3Npb25CYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2Vzc2lvbk1peGluKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJU2Vzc2lvbkNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2Vzc2lvbkNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdGlTZXNzaW9uRGF0YVtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9ucygpIHtcbiAgICAgIGxldCByZXQgPSBbXTtcblxuICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICBpZDogdGhpcy5zZXNzaW9uSWQsXG4gICAgICAgICAgY2FwYWJpbGl0aWVzOiB0aGlzLmNhcHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFNpbmd1bGFyU2Vzc2lvbkRhdGE+fVxuICAgICAqL1xuICAgIGFzeW5jIGdldFNlc3Npb24oKSB7XG4gICAgICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgICAgICByZXR1cm4gey4uLnRoaXMuY2FwcywgZXZlbnRzOiB0aGlzLmV2ZW50SGlzdG9yeX07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYXBzO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTZXNzaW9uQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25Db21tYW5kc30gSVNlc3Npb25Db21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNpbmd1bGFyU2Vzc2lvbkRhdGF9IFNpbmd1bGFyU2Vzc2lvbkRhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5NdWx0aVNlc3Npb25EYXRhfSBNdWx0aVNlc3Npb25EYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NldHRpbmdzJykuU2V0dGluZ3NCYXNlfSBTZXR0aW5nc0Jhc2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5GaW5kQ29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzQ29tbWFuZHMgJiBJU2Vzc2lvbkNvbW1hbmRzPn0gU2Vzc2lvbkJhc2VcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBOztBQU1PLFNBQVNBLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCO0VBSWpDLE1BQU1DLGVBQU4sU0FBOEJELElBQTlCLENBQW1DO0lBSWhCLE1BQVhFLFdBQVcsR0FBRztNQUNsQixJQUFJQyxHQUFHLEdBQUcsRUFBVjs7TUFFQSxJQUFJLEtBQUtDLFNBQVQsRUFBb0I7UUFDbEJELEdBQUcsQ0FBQ0UsSUFBSixDQUFTO1VBQ1BDLEVBQUUsRUFBRSxLQUFLRixTQURGO1VBRVBHLFlBQVksRUFBRSxLQUFLQztRQUZaLENBQVQ7TUFJRDs7TUFFRCxPQUFPTCxHQUFQO0lBQ0Q7O0lBS2UsTUFBVk0sVUFBVSxHQUFHO01BQ2pCLElBQUksS0FBS0QsSUFBTCxDQUFVRSxZQUFkLEVBQTRCO1FBQzFCLE9BQU8sRUFBQyxHQUFHLEtBQUtGLElBQVQ7VUFBZUcsTUFBTSxFQUFFLEtBQUtDO1FBQTVCLENBQVA7TUFDRDs7TUFDRCxPQUFPLEtBQUtKLElBQVo7SUFDRDs7RUF6QmdDOztFQTRCbkMsT0FBT1AsZUFBUDtBQUNEIn0=
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXNzaW9uTWl4aW4iLCJCYXNlIiwiU2Vzc2lvbkNvbW1hbmRzIiwiZ2V0U2Vzc2lvbnMiLCJyZXQiLCJzZXNzaW9uSWQiLCJwdXNoIiwiaWQiLCJjYXBhYmlsaXRpZXMiLCJjYXBzIiwiZ2V0U2Vzc2lvbiIsImV2ZW50VGltaW5ncyIsImV2ZW50cyIsImV2ZW50SGlzdG9yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1NldHRpbmdzQmFzZX0gQmFzZVxuICogQHJldHVybnMge1Nlc3Npb25CYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2Vzc2lvbk1peGluKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJU2Vzc2lvbkNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2Vzc2lvbkNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdGlTZXNzaW9uRGF0YVtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9ucygpIHtcbiAgICAgIGxldCByZXQgPSBbXTtcblxuICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICBpZDogdGhpcy5zZXNzaW9uSWQsXG4gICAgICAgICAgY2FwYWJpbGl0aWVzOiB0aGlzLmNhcHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFNpbmd1bGFyU2Vzc2lvbkRhdGE+fVxuICAgICAqL1xuICAgIGFzeW5jIGdldFNlc3Npb24oKSB7XG4gICAgICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgICAgICByZXR1cm4gey4uLnRoaXMuY2FwcywgZXZlbnRzOiB0aGlzLmV2ZW50SGlzdG9yeX07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYXBzO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTZXNzaW9uQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25Db21tYW5kc30gSVNlc3Npb25Db21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNpbmd1bGFyU2Vzc2lvbkRhdGF9IFNpbmd1bGFyU2Vzc2lvbkRhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5NdWx0aVNlc3Npb25EYXRhfSBNdWx0aVNlc3Npb25EYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NldHRpbmdzJykuU2V0dGluZ3NCYXNlfSBTZXR0aW5nc0Jhc2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5GaW5kQ29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzQ29tbWFuZHMgJiBJU2Vzc2lvbkNvbW1hbmRzPn0gU2Vzc2lvbkJhc2VcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7OztBQU1PLFNBQVNBLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCO0VBSWpDLE1BQU1DLGVBQU4sU0FBOEJELElBQTlCLENBQW1DO0lBSWhCLE1BQVhFLFdBQVcsR0FBRztNQUNsQixJQUFJQyxHQUFHLEdBQUcsRUFBVjs7TUFFQSxJQUFJLEtBQUtDLFNBQVQsRUFBb0I7UUFDbEJELEdBQUcsQ0FBQ0UsSUFBSixDQUFTO1VBQ1BDLEVBQUUsRUFBRSxLQUFLRixTQURGO1VBRVBHLFlBQVksRUFBRSxLQUFLQztRQUZaLENBQVQ7TUFJRDs7TUFFRCxPQUFPTCxHQUFQO0lBQ0Q7O0lBS2UsTUFBVk0sVUFBVSxHQUFHO01BQ2pCLElBQUksS0FBS0QsSUFBTCxDQUFVRSxZQUFkLEVBQTRCO1FBQzFCLE9BQU8sRUFBQyxHQUFHLEtBQUtGLElBQVQ7VUFBZUcsTUFBTSxFQUFFLEtBQUtDO1FBQTVCLENBQVA7TUFDRDs7TUFDRCxPQUFPLEtBQUtKLElBQVo7SUFDRDs7RUF6QmdDOztFQTRCbkMsT0FBT1AsZUFBUDtBQUNEIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","names":["SessionMixin","Base","SessionCommands","getSessions","ret","sessionId","push","id","capabilities","caps","getSession","eventTimings","events","eventHistory"],"sources":["../../../../lib/basedriver/commands/session.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\n/* eslint-disable require-await */\n// @ts-check\nimport _ from 'lodash';\n\n/**\n * @param {SettingsBase} Base\n * @returns {SessionBase}\n */\nexport function SessionMixin(Base) {\n /**\n * @implements {ISessionCommands}\n */\n class SessionCommands extends Base {\n /**\n * @returns {Promise<MultiSessionData[]>}\n */\n async getSessions() {\n let ret = [];\n\n if (this.sessionId) {\n ret.push({\n id: this.sessionId,\n capabilities: this.caps,\n });\n }\n\n return ret;\n }\n\n /**\n * @returns {Promise<SingularSessionData>}\n */\n async getSession() {\n if (this.caps.eventTimings) {\n return {...this.caps, events: this.eventHistory};\n }\n return this.caps;\n }\n }\n\n return SessionCommands;\n}\n\n/**\n * @typedef {import('@appium/types').SessionCommands} ISessionCommands\n * @typedef {import('@appium/types').SingularSessionData} SingularSessionData\n * @typedef {import('@appium/types').MultiSessionData} MultiSessionData\n * @typedef {import('./settings').SettingsBase} SettingsBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & import('@appium/types').LogCommands & import('@appium/types').SettingsCommands & ISessionCommands>} SessionBase\n */\n"],"mappings":";;;;;;;;;AAGA;;;;AAMO,SAASA,YAAT,CAAsBC,IAAtB,EAA4B;EAIjC,MAAMC,eAAN,SAA8BD,IAA9B,CAAmC;IAIhB,MAAXE,WAAW,GAAG;MAClB,IAAIC,GAAG,GAAG,EAAV;;MAEA,IAAI,KAAKC,SAAT,EAAoB;QAClBD,GAAG,CAACE,IAAJ,CAAS;UACPC,EAAE,EAAE,KAAKF,SADF;UAEPG,YAAY,EAAE,KAAKC;QAFZ,CAAT;MAID;;MAED,OAAOL,GAAP;IACD;;IAKe,MAAVM,UAAU,GAAG;MACjB,IAAI,KAAKD,IAAL,CAAUE,YAAd,EAA4B;QAC1B,OAAO,EAAC,GAAG,KAAKF,IAAT;UAAeG,MAAM,EAAE,KAAKC;QAA5B,CAAP;MACD;;MACD,OAAO,KAAKJ,IAAZ;IACD;;EAzBgC;;EA4BnC,OAAOP,eAAP;AACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","names":["SettingsMixin","Base","SettingsCommands","updateSettings","newSettings","settings","log","errorAndThrow","update","getSettings"],"sources":["../../../../lib/basedriver/commands/settings.js"],"sourcesContent":["// @ts-check\n\n/**\n *\n * @param {ReturnType<import('./log').LogMixin>} Base\n * @returns {SettingsBase}\n */\nexport function SettingsMixin(Base) {\n /**\n * @implements {ISettingsCommands}\n */\n class SettingsCommands extends Base {\n async updateSettings(newSettings) {\n if (!this.settings) {\n this.log.errorAndThrow('Cannot update settings; settings object not found');\n }\n return await this.settings.update(newSettings);\n }\n\n async getSettings() {\n if (!this.settings) {\n this.log.errorAndThrow('Cannot get settings; settings object not found');\n }\n return await this.settings.getSettings();\n }\n }\n\n return SettingsCommands;\n}\n\n/**\n * @typedef {import('@appium/types').SettingsCommands} ISettingsCommands\n * @typedef {import('./log').LogBase} LogBase\n * @typedef {import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & import('@appium/types').LogCommands & ISettingsCommands>} SettingsBase\n */\n"],"mappings":";;;;;;;;;AAOO,SAASA,aAAT,CAAuBC,IAAvB,EAA6B;EAIlC,MAAMC,gBAAN,SAA+BD,IAA/B,CAAoC;IACd,MAAdE,cAAc,CAACC,WAAD,EAAc;MAChC,IAAI,CAAC,KAAKC,QAAV,EAAoB;QAClB,KAAKC,GAAL,CAASC,aAAT,CAAuB,mDAAvB;MACD;;MACD,OAAO,MAAM,KAAKF,QAAL,CAAcG,MAAd,CAAqBJ,WAArB,CAAb;IACD;;IAEgB,MAAXK,WAAW,GAAG;MAClB,IAAI,CAAC,KAAKJ,QAAV,EAAoB;QAClB,KAAKC,GAAL,CAASC,aAAT,CAAuB,gDAAvB;MACD;;MACD,OAAO,MAAM,KAAKF,QAAL,CAAcI,WAAd,EAAb;IACD;;EAbiC;;EAgBpC,OAAOP,gBAAP;AACD"}
@@ -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
  });
@@ -17,6 +15,8 @@ var _support = require("@appium/support");
17
15
 
18
16
  var _protocol = require("../../protocol");
19
17
 
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
20
  const MIN_TIMEOUT = 0;
21
21
 
22
22
  function TimeoutMixin(Base) {
@@ -167,4 +167,4 @@ function TimeoutMixin(Base) {
167
167
 
168
168
  return TimeoutCommands;
169
169
  }
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSU5fVElNRU9VVCIsIlRpbWVvdXRNaXhpbiIsIkJhc2UiLCJUaW1lb3V0Q29tbWFuZHMiLCJ0aW1lb3V0cyIsInR5cGUiLCJtcyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJsb2ciLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJuZXdDb21tYW5kVGltZW91dCIsImltcGxpY2l0V2FpdE1KU09OV1AiLCJwYWdlTG9hZFRpbWVvdXRNSlNPTldQIiwic2NyaXB0VGltZW91dE1KU09OV1AiLCJFcnJvciIsInNjcmlwdFRpbWVvdXRXM0MiLCJwYWdlTG9hZFRpbWVvdXRXM0MiLCJpbXBsaWNpdFdhaXRXM0MiLCJnZXRUaW1lb3V0cyIsImNvbW1hbmQiLCJuZXdDb21tYW5kVGltZW91dE1zIiwiaW1wbGljaXRXYWl0TXMiLCJpbXBsaWNpdFdhaXQiLCJzZXRJbXBsaWNpdFdhaXQiLCJwYXJzZVRpbWVvdXRBcmd1bWVudCIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJzZXROZXdDb21tYW5kVGltZW91dCIsIm1hbmFnZWREcml2ZXJzIiwibGVuZ3RoIiwiZHJpdmVyIiwiXyIsImlzRnVuY3Rpb24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsImNsZWFyTmV3Q29tbWFuZFRpbWVvdXQiLCJ3YWl0Rm9yQ29uZGl0aW9uIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImxvZ2dlciIsImR1cmF0aW9uIiwicGFyc2VJbnQiLCJpc05hTiIsIlVua25vd25FcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5pbXBvcnQge3dhaXRGb3JDb25kaXRpb259IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge3V0aWx9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2Vycm9yc30gZnJvbSAnLi4vLi4vcHJvdG9jb2wnO1xuXG5jb25zdCBNSU5fVElNRU9VVCA9IDA7XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7VGltZW91dEJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUaW1lb3V0TWl4aW4oQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lUaW1lb3V0Q29tbWFuZHN9XG4gICAqL1xuICBjbGFzcyBUaW1lb3V0Q29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICBhc3luYyB0aW1lb3V0cyh0eXBlLCBtcywgc2NyaXB0LCBwYWdlTG9hZCwgaW1wbGljaXQpIHtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBNSlNPTldQIHRpbWVvdXQgYXJndW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KHt0eXBlLCBtc30pfX1gKTtcblxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdjb21tYW5kJzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2ltcGxpY2l0JzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAncGFnZSBsb2FkJzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucGFnZUxvYWRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2NyaXB0VGltZW91dE1KU09OV1AobXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3R5cGV9JyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIE1KU09OV1AgdGltZW91dGApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBhc3N1bWUgaXQgaXMgVzNDIHByb3RvY29sXG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBzY3JpcHQsXG4gICAgICAgICAgcGFnZUxvYWQsXG4gICAgICAgICAgaW1wbGljaXQsXG4gICAgICAgIH0pfX1gXG4gICAgICApO1xuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoc2NyaXB0KSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNjcmlwdFRpbWVvdXRXM0Moc2NyaXB0KTtcbiAgICAgIH1cbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHBhZ2VMb2FkKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnBhZ2VMb2FkVGltZW91dFczQyhwYWdlTG9hZCk7XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZShpbXBsaWNpdCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRXM0MoaW1wbGljaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGdldFRpbWVvdXRzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tbWFuZDogdGhpcy5uZXdDb21tYW5kVGltZW91dE1zLFxuICAgICAgICBpbXBsaWNpdDogdGhpcy5pbXBsaWNpdFdhaXRNcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaW1wbGljaXRcbiAgICBhc3luYyBpbXBsaWNpdFdhaXRXM0MobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0KG1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbXBsaWNpdFdhaXRNSlNPTldQKG1zKSB7XG4gICAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdChtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW1wbGljaXRXYWl0KG1zKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldEltcGxpY2l0V2FpdCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG4gICAgfVxuXG4gICAgLy8gcGFnZUxvYWRcbiAgICBhc3luYyBwYWdlTG9hZFRpbWVvdXRXM0MobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGFnZUxvYWRUaW1lb3V0TUpTT05XUChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBwYWdlTG9hZC4nKTtcbiAgICB9XG5cbiAgICAvLyBzY3JpcHRcbiAgICBhc3luYyBzY3JpcHRUaW1lb3V0VzNDKG1zKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHNjcmlwdC4nKTtcbiAgICB9XG5cbiAgICBhc3luYyBzY3JpcHRUaW1lb3V0TUpTT05XUChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG4gICAgfVxuXG4gICAgLy8gY29tbWFuZFxuICAgIGFzeW5jIG5ld0NvbW1hbmRUaW1lb3V0KG1zKSB7XG4gICAgICB0aGlzLnNldE5ld0NvbW1hbmRUaW1lb3V0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbiAgICB9XG5cbiAgICBzZXRJbXBsaWNpdFdhaXQobXMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgICAgdGhpcy5pbXBsaWNpdFdhaXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBpbXBsaWNpdCB3YWl0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIGltcGxpY2l0IHdhaXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0SW1wbGljaXRXYWl0KSkge1xuICAgICAgICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdChtcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBuZXcgY29tbWFuZCB0aW1lb3V0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbihjb25kRm4pIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGhpcy5pbXBsaWNpdFdhaXRNc30gbXMgZm9yIGNvbmRpdGlvbmApO1xuICAgICAgbGV0IHdyYXBwZWRDb25kRm4gPSBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgICAgICAvLyByZXNldCBjb21tYW5kIHRpbWVvdXRcbiAgICAgICAgYXdhaXQgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvbmRGbiguLi5hcmdzKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbih3cmFwcGVkQ29uZEZuLCB7XG4gICAgICAgIHdhaXRNczogdGhpcy5pbXBsaWNpdFdhaXRNcyxcbiAgICAgICAgaW50ZXJ2YWxNczogNTAwLFxuICAgICAgICBsb2dnZXI6IHRoaXMubG9nLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcGFyc2VUaW1lb3V0QXJndW1lbnQobXMpIHtcbiAgICAgIGxldCBkdXJhdGlvbiA9IHBhcnNlSW50KG1zLCAxMCk7XG4gICAgICBpZiAoXy5pc05hTihkdXJhdGlvbikgfHwgZHVyYXRpb24gPCBNSU5fVElNRU9VVCkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25FcnJvcihgSW52YWxpZCB0aW1lb3V0IHZhbHVlICcke21zfSdgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gVGltZW91dENvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHN9IElUaW1lb3V0Q29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPElUaW1lb3V0Q29tbWFuZHM+fSBUaW1lb3V0QmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsV0FBVyxHQUFHLENBQXBCOztBQU1PLFNBQVNDLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCO0VBSWpDLE1BQU1DLGVBQU4sU0FBOEJELElBQTlCLENBQW1DO0lBQ25CLE1BQVJFLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPQyxFQUFQLEVBQVdDLE1BQVgsRUFBbUJDLFFBQW5CLEVBQTZCQyxRQUE3QixFQUF1QztNQUNuRCxJQUFJQyxhQUFBLENBQUtDLFFBQUwsQ0FBY04sSUFBZCxLQUF1QkssYUFBQSxDQUFLQyxRQUFMLENBQWNMLEVBQWQsQ0FBM0IsRUFBOEM7UUFDNUMsS0FBS00sR0FBTCxDQUFTQyxLQUFULENBQWdCLDhCQUE2QkMsSUFBSSxDQUFDQyxTQUFMLENBQWU7VUFBQ1YsSUFBRDtVQUFPQztRQUFQLENBQWYsQ0FBMkIsR0FBeEU7O1FBRUEsUUFBUUQsSUFBUjtVQUNFLEtBQUssU0FBTDtZQUNFLE1BQU0sS0FBS1csaUJBQUwsQ0FBdUJWLEVBQXZCLENBQU47WUFDQTs7VUFDRixLQUFLLFVBQUw7WUFDRSxNQUFNLEtBQUtXLG1CQUFMLENBQXlCWCxFQUF6QixDQUFOO1lBQ0E7O1VBQ0YsS0FBSyxXQUFMO1lBQ0UsTUFBTSxLQUFLWSxzQkFBTCxDQUE0QlosRUFBNUIsQ0FBTjtZQUNBOztVQUNGLEtBQUssUUFBTDtZQUNFLE1BQU0sS0FBS2Esb0JBQUwsQ0FBMEJiLEVBQTFCLENBQU47WUFDQTs7VUFDRjtZQUNFLE1BQU0sSUFBSWMsS0FBSixDQUFXLElBQUdmLElBQUssNkNBQW5CLENBQU47UUFkSjtNQWdCRDs7TUFHRCxLQUFLTyxHQUFMLENBQVNDLEtBQVQsQ0FDRyx5QkFBd0JDLElBQUksQ0FB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
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSU5fVElNRU9VVCIsIlRpbWVvdXRNaXhpbiIsIkJhc2UiLCJUaW1lb3V0Q29tbWFuZHMiLCJ0aW1lb3V0cyIsInR5cGUiLCJtcyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJsb2ciLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJuZXdDb21tYW5kVGltZW91dCIsImltcGxpY2l0V2FpdE1KU09OV1AiLCJwYWdlTG9hZFRpbWVvdXRNSlNPTldQIiwic2NyaXB0VGltZW91dE1KU09OV1AiLCJFcnJvciIsInNjcmlwdFRpbWVvdXRXM0MiLCJwYWdlTG9hZFRpbWVvdXRXM0MiLCJpbXBsaWNpdFdhaXRXM0MiLCJnZXRUaW1lb3V0cyIsImNvbW1hbmQiLCJuZXdDb21tYW5kVGltZW91dE1zIiwiaW1wbGljaXRXYWl0TXMiLCJpbXBsaWNpdFdhaXQiLCJzZXRJbXBsaWNpdFdhaXQiLCJwYXJzZVRpbWVvdXRBcmd1bWVudCIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJzZXROZXdDb21tYW5kVGltZW91dCIsIm1hbmFnZWREcml2ZXJzIiwibGVuZ3RoIiwiZHJpdmVyIiwiXyIsImlzRnVuY3Rpb24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsImNsZWFyTmV3Q29tbWFuZFRpbWVvdXQiLCJ3YWl0Rm9yQ29uZGl0aW9uIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImxvZ2dlciIsImR1cmF0aW9uIiwicGFyc2VJbnQiLCJpc05hTiIsIlVua25vd25FcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5pbXBvcnQge3dhaXRGb3JDb25kaXRpb259IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge3V0aWx9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2Vycm9yc30gZnJvbSAnLi4vLi4vcHJvdG9jb2wnO1xuXG5jb25zdCBNSU5fVElNRU9VVCA9IDA7XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7VGltZW91dEJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUaW1lb3V0TWl4aW4oQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lUaW1lb3V0Q29tbWFuZHN9XG4gICAqL1xuICBjbGFzcyBUaW1lb3V0Q29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICBhc3luYyB0aW1lb3V0cyh0eXBlLCBtcywgc2NyaXB0LCBwYWdlTG9hZCwgaW1wbGljaXQpIHtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBNSlNPTldQIHRpbWVvdXQgYXJndW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KHt0eXBlLCBtc30pfX1gKTtcblxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdjb21tYW5kJzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2ltcGxpY2l0JzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAncGFnZSBsb2FkJzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucGFnZUxvYWRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2NyaXB0VGltZW91dE1KU09OV1AobXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3R5cGV9JyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIE1KU09OV1AgdGltZW91dGApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBhc3N1bWUgaXQgaXMgVzNDIHByb3RvY29sXG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBzY3JpcHQsXG4gICAgICAgICAgcGFnZUxvYWQsXG4gICAgICAgICAgaW1wbGljaXQsXG4gICAgICAgIH0pfX1gXG4gICAgICApO1xuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoc2NyaXB0KSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNjcmlwdFRpbWVvdXRXM0Moc2NyaXB0KTtcbiAgICAgIH1cbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHBhZ2VMb2FkKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnBhZ2VMb2FkVGltZW91dFczQyhwYWdlTG9hZCk7XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZShpbXBsaWNpdCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRXM0MoaW1wbGljaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGdldFRpbWVvdXRzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tbWFuZDogdGhpcy5uZXdDb21tYW5kVGltZW91dE1zLFxuICAgICAgICBpbXBsaWNpdDogdGhpcy5pbXBsaWNpdFdhaXRNcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaW1wbGljaXRcbiAgICBhc3luYyBpbXBsaWNpdFdhaXRXM0MobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0KG1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbXBsaWNpdFdhaXRNSlNPTldQKG1zKSB7XG4gICAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdChtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW1wbGljaXRXYWl0KG1zKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldEltcGxpY2l0V2FpdCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG4gICAgfVxuXG4gICAgLy8gcGFnZUxvYWRcbiAgICBhc3luYyBwYWdlTG9hZFRpbWVvdXRXM0MobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGFnZUxvYWRUaW1lb3V0TUpTT05XUChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBwYWdlTG9hZC4nKTtcbiAgICB9XG5cbiAgICAvLyBzY3JpcHRcbiAgICBhc3luYyBzY3JpcHRUaW1lb3V0VzNDKG1zKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHNjcmlwdC4nKTtcbiAgICB9XG5cbiAgICBhc3luYyBzY3JpcHRUaW1lb3V0TUpTT05XUChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG4gICAgfVxuXG4gICAgLy8gY29tbWFuZFxuICAgIGFzeW5jIG5ld0NvbW1hbmRUaW1lb3V0KG1zKSB7XG4gICAgICB0aGlzLnNldE5ld0NvbW1hbmRUaW1lb3V0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbiAgICB9XG5cbiAgICBzZXRJbXBsaWNpdFdhaXQobXMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgICAgdGhpcy5pbXBsaWNpdFdhaXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBpbXBsaWNpdCB3YWl0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIGltcGxpY2l0IHdhaXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0SW1wbGljaXRXYWl0KSkge1xuICAgICAgICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdChtcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBuZXcgY29tbWFuZCB0aW1lb3V0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbihjb25kRm4pIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGhpcy5pbXBsaWNpdFdhaXRNc30gbXMgZm9yIGNvbmRpdGlvbmApO1xuICAgICAgbGV0IHdyYXBwZWRDb25kRm4gPSBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgICAgICAvLyByZXNldCBjb21tYW5kIHRpbWVvdXRcbiAgICAgICAgYXdhaXQgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvbmRGbiguLi5hcmdzKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbih3cmFwcGVkQ29uZEZuLCB7XG4gICAgICAgIHdhaXRNczogdGhpcy5pbXBsaWNpdFdhaXRNcyxcbiAgICAgICAgaW50ZXJ2YWxNczogNTAwLFxuICAgICAgICBsb2dnZXI6IHRoaXMubG9nLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcGFyc2VUaW1lb3V0QXJndW1lbnQobXMpIHtcbiAgICAgIGxldCBkdXJhdGlvbiA9IHBhcnNlSW50KG1zLCAxMCk7XG4gICAgICBpZiAoXy5pc05hTihkdXJhdGlvbikgfHwgZHVyYXRpb24gPCBNSU5fVElNRU9VVCkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25FcnJvcihgSW52YWxpZCB0aW1lb3V0IHZhbHVlICcke21zfSdgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gVGltZW91dENvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHN9IElUaW1lb3V0Q29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPElUaW1lb3V0Q29tbWFuZHM+fSBUaW1lb3V0QmFzZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUlBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsV0FBVyxHQUFHLENBQXBCOztBQU1PLFNBQVNDLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCO0VBSWpDLE1BQU1DLGVBQU4sU0FBOEJELElBQTlCLENBQW1DO0lBQ25CLE1BQVJFLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPQyxFQUFQLEVBQVdDLE1BQVgsRUFBbUJDLFFBQW5CLEVBQTZCQyxRQUE3QixFQUF1QztNQUNuRCxJQUFJQyxhQUFBLENBQUtDLFFBQUwsQ0FBY04sSUFBZCxLQUF1QkssYUFBQSxDQUFLQyxRQUFMLENBQWNMLEVBQWQsQ0FBM0IsRUFBOEM7UUFDNUMsS0FBS00sR0FBTCxDQUFTQyxLQUFULENBQWdCLDhCQUE2QkMsSUFBSSxDQUFDQyxTQUFMLENBQWU7VUFBQ1YsSUFBRDtVQUFPQztRQUFQLENBQWYsQ0FBMkIsR0FBeEU7O1FBRUEsUUFBUUQsSUFBUjtVQUNFLEtBQUssU0FBTDtZQUNFLE1BQU0sS0FBS1csaUJBQUwsQ0FBdUJWLEVBQXZCLENBQU47WUFDQTs7VUFDRixLQUFLLFVBQUw7WUFDRSxNQUFNLEtBQUtXLG1CQUFMLENBQXlCWCxFQUF6QixDQUFOO1lBQ0E7O1VBQ0YsS0FBSyxXQUFMO1lBQ0UsTUFBTSxLQUFLWSxzQkFBTCxDQUE0QlosRUFBNUIsQ0FBTjtZQUNBOztVQUNGLEtBQUssUUFBTDtZQUNFLE1BQU0sS0FBS2Esb0JBQUwsQ0FBMEJiLEVBQTFCLENBQU47WUFDQTs7VUFDRjtZQUNFLE1BQU0sSUFBSWMsS0FBSixDQUFXLElBQUdmLElBQUssNkNBQW5CLENBQU47UUFkSjtNQWdCRDs7TUFHRCxLQUFLTyxHQUFMLENBQVNDLEtBQVQsQ0FDRyx5QkFBd0JDLElBQUksQ0FB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","names":["MIN_TIMEOUT","TimeoutMixin","Base","TimeoutCommands","timeouts","type","ms","script","pageLoad","implicit","util","hasValue","log","debug","JSON","stringify","newCommandTimeout","implicitWaitMJSONWP","pageLoadTimeoutMJSONWP","scriptTimeoutMJSONWP","Error","scriptTimeoutW3C","pageLoadTimeoutW3C","implicitWaitW3C","getTimeouts","command","newCommandTimeoutMs","implicitWaitMs","implicitWait","setImplicitWait","parseTimeoutArgument","errors","NotImplementedError","setNewCommandTimeout","managedDrivers","length","driver","_","isFunction","implicitWaitForCondition","condFn","wrappedCondFn","args","clearNewCommandTimeout","waitForCondition","waitMs","intervalMs","logger","duration","parseInt","isNaN","UnknownError"],"sources":["../../../../lib/basedriver/commands/timeout.js"],"sourcesContent":["// @ts-check\n\n/* eslint-disable no-unused-vars */\n/* eslint-disable require-await */\nimport {waitForCondition} from 'asyncbox';\nimport _ from 'lodash';\nimport {util} from '@appium/support';\nimport {errors} from '../../protocol';\n\nconst MIN_TIMEOUT = 0;\n\n/**\n * @param {import('../driver').BaseDriverBase} Base\n * @returns {TimeoutBase}\n */\nexport function TimeoutMixin(Base) {\n /**\n * @implements {ITimeoutCommands}\n */\n class TimeoutCommands extends Base {\n async timeouts(type, ms, script, pageLoad, implicit) {\n if (util.hasValue(type) && util.hasValue(ms)) {\n this.log.debug(`MJSONWP timeout arguments: ${JSON.stringify({type, ms})}}`);\n\n switch (type) {\n case 'command':\n await this.newCommandTimeout(ms);\n return;\n case 'implicit':\n await this.implicitWaitMJSONWP(ms);\n return;\n case 'page load':\n await this.pageLoadTimeoutMJSONWP(ms);\n return;\n case 'script':\n await this.scriptTimeoutMJSONWP(ms);\n return;\n default:\n throw new Error(`'${type}' type is not supported for MJSONWP timeout`);\n }\n }\n\n // Otherwise assume it is W3C protocol\n this.log.debug(\n `W3C timeout argument: ${JSON.stringify({\n script,\n pageLoad,\n implicit,\n })}}`\n );\n if (util.hasValue(script)) {\n await this.scriptTimeoutW3C(script);\n }\n if (util.hasValue(pageLoad)) {\n await this.pageLoadTimeoutW3C(pageLoad);\n }\n if (util.hasValue(implicit)) {\n await this.implicitWaitW3C(implicit);\n }\n }\n\n async getTimeouts() {\n return {\n command: this.newCommandTimeoutMs,\n implicit: this.implicitWaitMs,\n };\n }\n\n // implicit\n async implicitWaitW3C(ms) {\n await this.implicitWait(ms);\n }\n\n async implicitWaitMJSONWP(ms) {\n await this.implicitWait(ms);\n }\n\n async implicitWait(ms) {\n await this.setImplicitWait(this.parseTimeoutArgument(ms));\n }\n\n // pageLoad\n async pageLoadTimeoutW3C(ms) {\n throw new errors.NotImplementedError('Not implemented yet for pageLoad.');\n }\n\n async pageLoadTimeoutMJSONWP(ms) {\n throw new errors.NotImplementedError('Not implemented yet for pageLoad.');\n }\n\n // script\n async scriptTimeoutW3C(ms) {\n throw new errors.NotImplementedError('Not implemented yet for script.');\n }\n\n async scriptTimeoutMJSONWP(ms) {\n throw new errors.NotImplementedError('Not implemented yet for script.');\n }\n\n // command\n async newCommandTimeout(ms) {\n this.setNewCommandTimeout(this.parseTimeoutArgument(ms));\n }\n\n setImplicitWait(ms) {\n // eslint-disable-line require-await\n this.implicitWaitMs = ms;\n this.log.debug(`Set implicit wait to ${ms}ms`);\n if (this.managedDrivers && this.managedDrivers.length) {\n this.log.debug('Setting implicit wait on managed drivers');\n for (let driver of this.managedDrivers) {\n if (_.isFunction(driver.setImplicitWait)) {\n driver.setImplicitWait(ms);\n }\n }\n }\n }\n\n setNewCommandTimeout(ms) {\n this.newCommandTimeoutMs = ms;\n this.log.debug(`Set new command timeout to ${ms}ms`);\n if (this.managedDrivers && this.managedDrivers.length) {\n this.log.debug('Setting new command timeout on managed drivers');\n for (let driver of this.managedDrivers) {\n if (_.isFunction(driver.setNewCommandTimeout)) {\n driver.setNewCommandTimeout(ms);\n }\n }\n }\n }\n\n async implicitWaitForCondition(condFn) {\n this.log.debug(`Waiting up to ${this.implicitWaitMs} ms for condition`);\n let wrappedCondFn = async (...args) => {\n // reset command timeout\n await this.clearNewCommandTimeout();\n\n return await condFn(...args);\n };\n return await waitForCondition(wrappedCondFn, {\n waitMs: this.implicitWaitMs,\n intervalMs: 500,\n logger: this.log,\n });\n }\n\n parseTimeoutArgument(ms) {\n let duration = parseInt(ms, 10);\n if (_.isNaN(duration) || duration < MIN_TIMEOUT) {\n throw new errors.UnknownError(`Invalid timeout value '${ms}'`);\n }\n return duration;\n }\n }\n\n return TimeoutCommands;\n}\n\n/**\n * @typedef {import('@appium/types').TimeoutCommands} ITimeoutCommands\n * @typedef {import('../driver').BaseDriverBase<ITimeoutCommands>} TimeoutBase\n */\n"],"mappings":"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"}