@appium/base-driver 8.7.3 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +11 -163
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +355 -236
  4. package/build/lib/basedriver/capabilities.js.map +1 -1
  5. package/build/lib/basedriver/commands/event.d.ts +7 -6
  6. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  7. package/build/lib/basedriver/commands/event.js +55 -35
  8. package/build/lib/basedriver/commands/event.js.map +1 -1
  9. package/build/lib/basedriver/commands/execute.d.ts +7 -6
  10. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  11. package/build/lib/basedriver/commands/execute.js +66 -58
  12. package/build/lib/basedriver/commands/execute.js.map +1 -1
  13. package/build/lib/basedriver/commands/find.d.ts +9 -7
  14. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  15. package/build/lib/basedriver/commands/find.js +102 -54
  16. package/build/lib/basedriver/commands/find.js.map +1 -1
  17. package/build/lib/basedriver/commands/index.d.ts +3 -7
  18. package/build/lib/basedriver/commands/index.d.ts.map +1 -1
  19. package/build/lib/basedriver/commands/index.js +30 -33
  20. package/build/lib/basedriver/commands/index.js.map +1 -1
  21. package/build/lib/basedriver/commands/log.d.ts +8 -9
  22. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  23. package/build/lib/basedriver/commands/log.js +54 -38
  24. package/build/lib/basedriver/commands/log.js.map +1 -1
  25. package/build/lib/basedriver/commands/session.d.ts +7 -6
  26. package/build/lib/basedriver/commands/session.d.ts.map +1 -1
  27. package/build/lib/basedriver/commands/session.js +46 -39
  28. package/build/lib/basedriver/commands/session.js.map +1 -1
  29. package/build/lib/basedriver/commands/settings.d.ts +7 -7
  30. package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
  31. package/build/lib/basedriver/commands/settings.js +35 -28
  32. package/build/lib/basedriver/commands/settings.js.map +1 -1
  33. package/build/lib/basedriver/commands/timeout.d.ts +7 -5
  34. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  35. package/build/lib/basedriver/commands/timeout.js +144 -162
  36. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  37. package/build/lib/basedriver/core.d.ts +6 -157
  38. package/build/lib/basedriver/core.d.ts.map +1 -1
  39. package/build/lib/basedriver/core.js +361 -230
  40. package/build/lib/basedriver/core.js.map +1 -1
  41. package/build/lib/basedriver/desired-caps.js +80 -110
  42. package/build/lib/basedriver/desired-caps.js.map +1 -1
  43. package/build/lib/basedriver/device-settings.js +57 -62
  44. package/build/lib/basedriver/device-settings.js.map +1 -1
  45. package/build/lib/basedriver/driver.d.ts +11 -262
  46. package/build/lib/basedriver/driver.d.ts.map +1 -1
  47. package/build/lib/basedriver/driver.js +362 -262
  48. package/build/lib/basedriver/driver.js.map +1 -1
  49. package/build/lib/basedriver/helpers.js +500 -495
  50. package/build/lib/basedriver/helpers.js.map +1 -1
  51. package/build/lib/basedriver/logger.d.ts +1 -1
  52. package/build/lib/basedriver/logger.d.ts.map +1 -1
  53. package/build/lib/basedriver/logger.js +5 -15
  54. package/build/lib/basedriver/logger.js.map +1 -1
  55. package/build/lib/constants.js +14 -14
  56. package/build/lib/constants.js.map +1 -1
  57. package/build/lib/express/crash.js +8 -15
  58. package/build/lib/express/crash.js.map +1 -1
  59. package/build/lib/express/express-logging.js +49 -59
  60. package/build/lib/express/express-logging.js.map +1 -1
  61. package/build/lib/express/idempotency.js +125 -177
  62. package/build/lib/express/idempotency.js.map +1 -1
  63. package/build/lib/express/logger.d.ts +1 -1
  64. package/build/lib/express/logger.d.ts.map +1 -1
  65. package/build/lib/express/logger.js +5 -15
  66. package/build/lib/express/logger.js.map +1 -1
  67. package/build/lib/express/middleware.js +82 -107
  68. package/build/lib/express/middleware.js.map +1 -1
  69. package/build/lib/express/server.d.ts +17 -5
  70. package/build/lib/express/server.d.ts.map +1 -1
  71. package/build/lib/express/server.js +259 -224
  72. package/build/lib/express/server.js.map +1 -1
  73. package/build/lib/express/static.js +64 -81
  74. package/build/lib/express/static.js.map +1 -1
  75. package/build/lib/express/websocket.js +115 -87
  76. package/build/lib/express/websocket.js.map +1 -1
  77. package/build/lib/helpers/capabilities.d.ts +1 -59
  78. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  79. package/build/lib/helpers/capabilities.js +72 -69
  80. package/build/lib/helpers/capabilities.js.map +1 -1
  81. package/build/lib/index.js +64 -180
  82. package/build/lib/index.js.map +1 -1
  83. package/build/lib/jsonwp-proxy/protocol-converter.js +215 -227
  84. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
  85. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  86. package/build/lib/jsonwp-proxy/proxy.js +355 -393
  87. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  88. package/build/lib/jsonwp-status/status.js +119 -130
  89. package/build/lib/jsonwp-status/status.js.map +1 -1
  90. package/build/lib/protocol/errors.d.ts +135 -32
  91. package/build/lib/protocol/errors.d.ts.map +1 -1
  92. package/build/lib/protocol/errors.js +871 -919
  93. package/build/lib/protocol/errors.js.map +1 -1
  94. package/build/lib/protocol/helpers.js +37 -37
  95. package/build/lib/protocol/helpers.js.map +1 -1
  96. package/build/lib/protocol/index.js +22 -109
  97. package/build/lib/protocol/index.js.map +1 -1
  98. package/build/lib/protocol/protocol.js +394 -350
  99. package/build/lib/protocol/protocol.js.map +1 -1
  100. package/build/lib/protocol/routes.d.ts +1248 -4
  101. package/build/lib/protocol/routes.d.ts.map +1 -1
  102. package/build/lib/protocol/routes.js +972 -1327
  103. package/build/lib/protocol/routes.js.map +1 -1
  104. package/build/lib/protocol/validators.js +32 -39
  105. package/build/lib/protocol/validators.js.map +1 -1
  106. package/build/tsconfig.tsbuildinfo +1 -1
  107. package/lib/basedriver/capabilities.js +83 -39
  108. package/lib/basedriver/commands/event.js +10 -5
  109. package/lib/basedriver/commands/execute.js +14 -9
  110. package/lib/basedriver/commands/find.js +18 -12
  111. package/lib/basedriver/commands/index.js +21 -16
  112. package/lib/basedriver/commands/log.js +24 -18
  113. package/lib/basedriver/commands/session.js +10 -5
  114. package/lib/basedriver/commands/settings.js +9 -6
  115. package/lib/basedriver/commands/timeout.js +10 -4
  116. package/lib/basedriver/core.js +2 -3
  117. package/lib/basedriver/driver.js +12 -16
  118. package/lib/express/server.js +6 -3
  119. package/lib/protocol/errors.js +155 -44
  120. package/lib/protocol/routes.js +19 -7
  121. package/package.json +16 -18
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","names":["version","BASEDRIVER_VER","fs","readPackageJsonFrom","__dirname","NEW_COMMAND_TIMEOUT_MS","ON_UNEXPECTED_SHUTDOWN_EVENT","DriverCore","baseVersion","executeMethodMap","sessionId","opts","initialOpts","helpers","basePath","DEFAULT_BASE_PATH","relaxedSecurityEnabled","allowInsecure","denyInsecure","newCommandTimeoutMs","implicitWaitMs","locatorStrategies","webLocatorStrategies","managedDrivers","noCommandTimer","_eventHistory","commands","eventEmitter","EventEmitter","_log","shutdownUnexpectedly","shouldValidateCaps","commandsQueueGuard","AsyncLock","settings","DeviceSettings","constructor","logger","getLogger","generateDriverLogPrefix","tmpDir","process","env","APPIUM_TMP_DIR","os","tmpdir","_","cloneDeep","log","onUnexpectedShutdown","handler","on","driverData","isCommandsQueueEnabled","eventHistory","logEvent","eventName","Error","ts","Date","now","logTime","toTimeString","push","debug","getStatus","sessionExists","driverForSession","isMjsonwpProtocol","protocol","PROTOCOLS","MJSONWP","isW3CProtocol","W3C","setProtocolMJSONWP","setProtocolW3C","isFeatureEnabled","name","includes","ensureFeatureEnabled","assertFeatureEnabled","validateLocatorStrategy","strategy","webContext","validStrategies","join","concat","errors","InvalidSelectorError","proxyActive","getProxyAvoidList","canProxy","proxyRouteIsAvoided","method","url","body","avoidSchema","isArray","length","avoidMethod","avoidPathRegex","isRegExp","normalizedUrl","replace","RegExp","escapeRegExp","test","addManagedDriver","driver","getManagedDrivers","clearNewCommandTimeout","clearTimeout"],"sources":["../../../lib/basedriver/core.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\n/* eslint-disable require-await */\n\nimport {fs, logger} from '@appium/support';\nimport AsyncLock from 'async-lock';\nimport {EventEmitter} from 'events';\nimport _ from 'lodash';\nimport os from 'os';\nimport {DEFAULT_BASE_PATH, PROTOCOLS} from '../constants';\nimport {errors} from '../protocol';\nimport DeviceSettings from './device-settings';\nimport helpers from './helpers';\n\n// for compat with running tests transpiled and in-place\nconst {version: BASEDRIVER_VER} = fs.readPackageJsonFrom(__dirname);\n\nconst NEW_COMMAND_TIMEOUT_MS = 60 * 1000;\n\nconst ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @implements {Core<C>}\n */\nclass DriverCore {\n /**\n * Make the basedriver version available so for any driver which inherits from this package, we\n * know which version of basedriver it inherited from\n */\n static baseVersion = BASEDRIVER_VER;\n\n /** @type {ExecuteMethodMap} */\n static executeMethodMap = {};\n\n /**\n * @type {string?}\n */\n sessionId = null;\n\n /**\n * @type {import('@appium/types').DriverOpts<C>}\n */\n opts;\n\n /**\n * @type {ServerArgs}\n */\n initialOpts;\n\n helpers = helpers;\n\n /**\n * basePath is used for several purposes, for example in setting up\n * proxying to other drivers, since we need to know what the base path\n * of any incoming request might look like. We set it to the default\n * initially but it is automatically updated during any actual program\n * execution by the routeConfiguringFunction, which is necessarily run as\n * the entrypoint for any Appium server\n */\n basePath = DEFAULT_BASE_PATH;\n\n relaxedSecurityEnabled = false;\n\n /** @type {string[]} */\n allowInsecure = [];\n\n /** @type {string[]} */\n denyInsecure = [];\n\n newCommandTimeoutMs = NEW_COMMAND_TIMEOUT_MS;\n\n implicitWaitMs = 0;\n\n /** @type {string[]} */\n locatorStrategies = [];\n\n /** @type {string[]} */\n webLocatorStrategies = [];\n\n /** @type {Driver[]} */\n managedDrivers = [];\n\n /** @type {NodeJS.Timeout?} */\n noCommandTimer = null;\n\n /** @type {EventHistory} */\n _eventHistory = {commands: []};\n\n // used to handle driver events\n /** @type {NodeJS.EventEmitter} */\n eventEmitter = new EventEmitter();\n\n /**\n * @type {AppiumLogger}\n */\n _log;\n\n /**\n * @protected\n */\n shutdownUnexpectedly = false;\n\n /**\n * @type {boolean}\n */\n shouldValidateCaps;\n\n /**\n * @protected\n */\n commandsQueueGuard = new AsyncLock();\n\n /**\n * settings should be instantiated by drivers which extend BaseDriver, but\n * we set it to an empty DeviceSettings instance here to make sure that the\n * default settings are applied even if an extending driver doesn't utilize\n * the settings functionality itself\n */\n settings = new DeviceSettings();\n\n /**\n * @param {DriverOpts<C>} opts\n * @param {boolean} [shouldValidateCaps]\n */\n constructor(opts = /** @type {DriverOpts<C>} */ ({}), shouldValidateCaps = true) {\n this._log = logger.getLogger(helpers.generateDriverLogPrefix(this));\n\n // setup state\n this.opts = opts;\n\n // use a custom tmp dir to avoid losing data and app when computer is\n // restarted\n this.opts.tmpDir = this.opts.tmpDir || process.env.APPIUM_TMP_DIR || os.tmpdir();\n\n // base-driver internals\n this.shouldValidateCaps = shouldValidateCaps;\n\n // keeping track of initial opts\n this.initialOpts = _.cloneDeep(opts);\n\n this.sessionId = null;\n }\n\n get log() {\n return this._log;\n }\n\n /**\n * Set a callback handler if needed to execute a custom piece of code\n * when the driver is shut down unexpectedly. Multiple calls to this method\n * will cause the handler to be executed mutiple times\n *\n * @param {(...args: any[]) => void} handler The code to be executed on unexpected shutdown.\n * The function may accept one argument, which is the actual error instance, which\n * caused the driver to shut down.\n */\n onUnexpectedShutdown(handler) {\n this.eventEmitter.on(ON_UNEXPECTED_SHUTDOWN_EVENT, handler);\n }\n\n /**\n * This property is used by AppiumDriver to store the data of the\n * specific driver sessions. This data can be later used to adjust\n * properties for driver instances running in parallel.\n * Override it in inherited driver classes if necessary.\n *\n * @return {Record<string,unknown>} Driver properties mapping\n */\n get driverData() {\n return {};\n }\n\n /**\n * This property controls the way {#executeCommand} method\n * handles new driver commands received from the client.\n * Override it for inherited classes only in special cases.\n *\n * @return {boolean} If the returned value is true (default) then all the commands\n * received by the particular driver instance are going to be put into the queue,\n * so each following command will not be executed until the previous command\n * execution is completed. False value disables that queue, so each driver command\n * is executed independently and does not wait for anything.\n */\n get isCommandsQueueEnabled() {\n return true;\n }\n\n /*\n * make eventHistory a property and return a cloned object so a consumer can't\n * inadvertently change data outside of logEvent\n */\n get eventHistory() {\n return _.cloneDeep(this._eventHistory);\n }\n\n /**\n * API method for driver developers to log timings for important events\n * @param {string} eventName\n */\n logEvent(eventName) {\n if (eventName === 'commands') {\n throw new Error('Cannot log commands directly');\n }\n if (typeof eventName !== 'string') {\n throw new Error(`Invalid eventName ${eventName}`);\n }\n if (!this._eventHistory[eventName]) {\n this._eventHistory[eventName] = [];\n }\n const ts = Date.now();\n const logTime = new Date(ts).toTimeString();\n this._eventHistory[eventName].push(ts);\n this.log.debug(`Event '${eventName}' logged at ${ts} (${logTime})`);\n }\n\n /**\n * Overridden in appium driver, but here so that individual drivers can be\n * tested with clients that poll\n */\n async getStatus() {\n return {};\n }\n\n /**\n * method required by MJSONWP in order to determine whether it should\n * respond with an invalid session response\n * @param {string} [sessionId]\n * @returns {boolean}\n */\n sessionExists(sessionId) {\n if (!sessionId) return false; // eslint-disable-line curly\n return sessionId === this.sessionId;\n }\n\n /**\n * method required by MJSONWP in order to determine if the command should\n * be proxied directly to the driver\n * @param {string} sessionId\n * @returns {Core<C> | null}\n */\n driverForSession(sessionId) {\n return this;\n }\n\n isMjsonwpProtocol() {\n return this.protocol === PROTOCOLS.MJSONWP;\n }\n\n isW3CProtocol() {\n return this.protocol === PROTOCOLS.W3C;\n }\n\n setProtocolMJSONWP() {\n this.protocol = PROTOCOLS.MJSONWP;\n }\n\n setProtocolW3C() {\n this.protocol = PROTOCOLS.W3C;\n }\n\n /**\n * Check whether a given feature is enabled via its name\n *\n * @param {string} name - name of feature/command\n *\n * @returns {Boolean}\n */\n isFeatureEnabled(name) {\n // if we have explicitly denied this feature, return false immediately\n if (this.denyInsecure && _.includes(this.denyInsecure, name)) {\n return false;\n }\n\n // if we specifically have allowed the feature, return true\n if (this.allowInsecure && _.includes(this.allowInsecure, name)) {\n return true;\n }\n\n // otherwise, if we've globally allowed insecure features and not denied\n // this one, return true\n if (this.relaxedSecurityEnabled) {\n return true;\n }\n\n // if we haven't allowed anything insecure, then reject\n return false;\n }\n\n /**\n * Assert that a given feature is enabled and throw a helpful error if it's\n * not\n *\n * @param {string} name - name of feature/command\n * @deprecated\n */\n ensureFeatureEnabled(name) {\n this.assertFeatureEnabled(name);\n }\n\n /**\n * Assert that a given feature is enabled and throw a helpful error if it's\n * not\n *\n * @param {string} name - name of feature/command\n */\n assertFeatureEnabled(name) {\n if (!this.isFeatureEnabled(name)) {\n throw new Error(\n `Potentially insecure feature '${name}' has not been ` +\n `enabled. If you want to enable this feature and accept ` +\n `the security ramifications, please do so by following ` +\n `the documented instructions at https://github.com/appium` +\n `/appium/blob/master/docs/en/writing-running-appium/security.md`\n );\n }\n }\n\n /**\n *\n * @param {string} strategy\n * @param {boolean} [webContext]\n */\n validateLocatorStrategy(strategy, webContext = false) {\n let validStrategies = this.locatorStrategies;\n this.log.debug(`Valid locator strategies for this request: ${validStrategies.join(', ')}`);\n\n if (webContext) {\n validStrategies = validStrategies.concat(this.webLocatorStrategies);\n }\n\n if (!_.includes(validStrategies, strategy)) {\n throw new errors.InvalidSelectorError(\n `Locator Strategy '${strategy}' is not supported for this session`\n );\n }\n }\n\n /**\n *\n * @param {string} [sessionId]\n * @returns {boolean}\n */\n proxyActive(sessionId) {\n return false;\n }\n\n /**\n *\n * @param {string} sessionId\n * @returns {import('@appium/types').RouteMatcher[]}\n */\n getProxyAvoidList(sessionId) {\n return [];\n }\n\n /**\n *\n * @param {string} [sessionId]\n * @returns {boolean}\n */\n canProxy(sessionId) {\n return false;\n }\n\n /**\n * Whether a given command route (expressed as method and url) should not be\n * proxied according to this driver\n *\n * @param {string} sessionId - the current sessionId (in case the driver runs\n * multiple session ids and requires it). This is not used in this method but\n * should be made available to overridden methods.\n * @param {import('@appium/types').HTTPMethod} method - HTTP method of the route\n * @param {string} url - url of the route\n * @param {any} [body] - webdriver request body\n *\n * @returns {boolean} - whether the route should be avoided\n */\n proxyRouteIsAvoided(sessionId, method, url, body) {\n for (let avoidSchema of this.getProxyAvoidList(sessionId)) {\n if (!_.isArray(avoidSchema) || avoidSchema.length !== 2) {\n throw new Error('Proxy avoidance must be a list of pairs');\n }\n let [avoidMethod, avoidPathRegex] = avoidSchema;\n if (!_.includes(['GET', 'POST', 'DELETE'], avoidMethod)) {\n throw new Error(`Unrecognized proxy avoidance method '${avoidMethod}'`);\n }\n if (!_.isRegExp(avoidPathRegex)) {\n throw new Error('Proxy avoidance path must be a regular expression');\n }\n let normalizedUrl = url.replace(new RegExp(`^${_.escapeRegExp(this.basePath)}`), '');\n if (avoidMethod === method && avoidPathRegex.test(normalizedUrl)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n *\n * @param {Driver} driver\n */\n addManagedDriver(driver) {\n this.managedDrivers.push(driver);\n }\n\n getManagedDrivers() {\n return this.managedDrivers;\n }\n\n async clearNewCommandTimeout() {\n if (this.noCommandTimer) {\n clearTimeout(this.noCommandTimer);\n this.noCommandTimer = null;\n }\n }\n}\n\nexport {DriverCore};\n\n/**\n * @typedef {import('@appium/types').Driver} Driver\n * @typedef {import('@appium/types').Constraints} Constraints\n * @typedef {import('@appium/types').ExecuteMethodMap} ExecuteMethodMap\n * @typedef {import('@appium/types').ServerArgs} ServerArgs\n * @typedef {import('@appium/types').EventHistory} EventHistory\n * @typedef {import('@appium/types').AppiumLogger} AppiumLogger\n * @typedef {import('@appium/types').StringRecord} StringRecord\n * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints\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 * @template {StringRecord} [T={}]\n * @typedef {import('@appium/types').W3CCapabilities<T>} W3CCapabilities\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').Core<C>} Core\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').DriverOpts<C>} DriverOpts\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../lib/basedriver/core.js"],"names":[],"mappings":"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"}
@@ -1,120 +1,90 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validator = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _logger = _interopRequireDefault(require("./logger"));
11
-
12
- var _validate = _interopRequireDefault(require("validate.js"));
13
-
14
- var _bluebird = _interopRequireDefault(require("bluebird"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- const validator = _validate.default;
19
- exports.validator = validator;
20
-
21
- validator.validators.isString = function isString(value) {
22
- if (typeof value === 'string') {
23
- return null;
24
- }
25
-
26
- if (typeof value === 'undefined') {
27
- return null;
28
- }
29
-
30
- return 'must be of type string';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
4
  };
32
-
33
- validator.validators.isNumber = function isNumber(value) {
34
- if (typeof value === 'number') {
35
- return null;
36
- }
37
-
38
- if (typeof value === 'undefined') {
39
- return null;
40
- }
41
-
42
- if (typeof value === 'string' && !isNaN(Number(value))) {
43
- _logger.default.warn('Number capability passed in as string. Functionality may be compromised.');
44
-
45
- return null;
46
- }
47
-
48
- return 'must be of type number';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validator = void 0;
7
+ const logger_1 = __importDefault(require("./logger"));
8
+ const validate_js_1 = __importDefault(require("validate.js"));
9
+ const bluebird_1 = __importDefault(require("bluebird"));
10
+ exports.validator =
11
+ /** @type {import('validate.js').ValidateJS & {promise: typeof import('bluebird')}} */ (validate_js_1.default);
12
+ exports.validator.validators.isString = function isString(value) {
13
+ if (typeof value === 'string') {
14
+ return null;
15
+ }
16
+ if (typeof value === 'undefined') {
17
+ return null;
18
+ }
19
+ return 'must be of type string';
49
20
  };
50
-
51
- validator.validators.isBoolean = function isBoolean(value) {
52
- if (typeof value === 'boolean') {
53
- return null;
54
- }
55
-
56
- if (typeof value === 'string' && ['true', 'false', ''].includes(value)) {
57
- return null;
58
- }
59
-
60
- if (typeof value === 'undefined') {
61
- return null;
62
- }
63
-
64
- return 'must be of type boolean';
21
+ exports.validator.validators.isNumber = function isNumber(value) {
22
+ if (typeof value === 'number') {
23
+ return null;
24
+ }
25
+ if (typeof value === 'undefined') {
26
+ return null;
27
+ }
28
+ // allow a string value
29
+ if (typeof value === 'string' && !isNaN(Number(value))) {
30
+ logger_1.default.warn('Number capability passed in as string. Functionality may be compromised.');
31
+ return null;
32
+ }
33
+ return 'must be of type number';
65
34
  };
66
-
67
- validator.validators.isObject = function isObject(value) {
68
- if (typeof value === 'object') {
69
- return null;
70
- }
71
-
72
- if (typeof value === 'undefined') {
73
- return null;
74
- }
75
-
76
- return 'must be of type object';
35
+ exports.validator.validators.isBoolean = function isBoolean(value) {
36
+ if (typeof value === 'boolean') {
37
+ return null;
38
+ }
39
+ // allow a string value
40
+ if (typeof value === 'string' && ['true', 'false', ''].includes(value)) {
41
+ return null;
42
+ }
43
+ if (typeof value === 'undefined') {
44
+ return null;
45
+ }
46
+ return 'must be of type boolean';
77
47
  };
78
-
79
- validator.validators.isArray = function isArray(value) {
80
- if (Array.isArray(value)) {
81
- return null;
82
- }
83
-
84
- if (typeof value === 'undefined') {
85
- return null;
86
- }
87
-
88
- return 'must be of type array';
48
+ exports.validator.validators.isObject = function isObject(value) {
49
+ if (typeof value === 'object') {
50
+ return null;
51
+ }
52
+ if (typeof value === 'undefined') {
53
+ return null;
54
+ }
55
+ return 'must be of type object';
89
56
  };
90
-
91
- validator.validators.deprecated = function deprecated(value, options, key) {
92
- if (options) {
93
- _logger.default.warn(`${key} is a deprecated capability`);
94
- }
95
-
96
- return null;
57
+ exports.validator.validators.isArray = function isArray(value) {
58
+ if (Array.isArray(value)) {
59
+ return null;
60
+ }
61
+ if (typeof value === 'undefined') {
62
+ return null;
63
+ }
64
+ return 'must be of type array';
97
65
  };
98
-
99
- validator.validators.inclusionCaseInsensitive = function inclusionCaseInsensitive(value, options) {
100
- if (typeof value === 'undefined') {
66
+ exports.validator.validators.deprecated = function deprecated(value, options, key) {
67
+ if (options) {
68
+ logger_1.default.warn(`${key} is a deprecated capability`);
69
+ }
101
70
  return null;
102
- } else if (typeof value !== 'string') {
103
- return 'unrecognised';
104
- }
105
-
106
- for (let option of options) {
107
- if (option.toLowerCase() === value.toLowerCase()) {
108
- return null;
109
- }
110
- }
111
-
112
- return `${value} not part of ${options.toString()}`;
113
71
  };
114
-
115
- validator.promise = _bluebird.default;
116
-
117
- validator.prettify = function prettify(val) {
118
- return val;
72
+ exports.validator.validators.inclusionCaseInsensitive = function inclusionCaseInsensitive(value, options) {
73
+ if (typeof value === 'undefined') {
74
+ return null;
75
+ }
76
+ else if (typeof value !== 'string') {
77
+ return 'unrecognised';
78
+ }
79
+ for (let option of options) {
80
+ if (option.toLowerCase() === value.toLowerCase()) {
81
+ return null;
82
+ }
83
+ }
84
+ return `${value} not part of ${options.toString()}`;
85
+ };
86
+ exports.validator.promise = bluebird_1.default;
87
+ exports.validator.prettify = function prettify(val) {
88
+ return val;
119
89
  };
120
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWxpZGF0b3IiLCJfdmFsaWRhdG9yIiwidmFsaWRhdG9ycyIsImlzU3RyaW5nIiwidmFsdWUiLCJpc051bWJlciIsImlzTmFOIiwiTnVtYmVyIiwibG9nIiwid2FybiIsImlzQm9vbGVhbiIsImluY2x1ZGVzIiwiaXNPYmplY3QiLCJpc0FycmF5IiwiQXJyYXkiLCJkZXByZWNhdGVkIiwib3B0aW9ucyIsImtleSIsImluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSIsIm9wdGlvbiIsInRvTG93ZXJDYXNlIiwidG9TdHJpbmciLCJwcm9taXNlIiwiQiIsInByZXR0aWZ5IiwidmFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvZGVzaXJlZC1jYXBzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF92YWxpZGF0b3IgZnJvbSAndmFsaWRhdGUuanMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdG9yID1cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ3ZhbGlkYXRlLmpzJykuVmFsaWRhdGVKUyAmIHtwcm9taXNlOiB0eXBlb2YgaW1wb3J0KCdibHVlYmlyZCcpfX0gKi8gKFxuICAgIF92YWxpZGF0b3JcbiAgKTtcblxudmFsaWRhdG9yLnZhbGlkYXRvcnMuaXNTdHJpbmcgPSBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIHN0cmluZyc7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuaXNOdW1iZXIgPSBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIGFsbG93IGEgc3RyaW5nIHZhbHVlXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgIGxvZy53YXJuKCdOdW1iZXIgY2FwYWJpbGl0eSBwYXNzZWQgaW4gYXMgc3RyaW5nLiBGdW5jdGlvbmFsaXR5IG1heSBiZSBjb21wcm9taXNlZC4nKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIG51bWJlcic7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuaXNCb29sZWFuID0gZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYWxsb3cgYSBzdHJpbmcgdmFsdWVcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgWyd0cnVlJywgJ2ZhbHNlJywgJyddLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4nO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzT2JqZWN0ID0gZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gJ211c3QgYmUgb2YgdHlwZSBvYmplY3QnO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzQXJyYXkgPSBmdW5jdGlvbiBpc0FycmF5KHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIGFycmF5Jztcbn07XG52YWxpZGF0b3IudmFsaWRhdG9ycy5kZXByZWNhdGVkID0gZnVuY3Rpb24gZGVwcmVjYXRlZCh2YWx1ZSwgb3B0aW9ucywga2V5KSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgbG9nLndhcm4oYCR7a2V5fSBpcyBhIGRlcHJlY2F0ZWQgY2FwYWJpbGl0eWApO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSA9IGZ1bmN0aW9uIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSh2YWx1ZSwgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gJ3VucmVjb2duaXNlZCc7XG4gIH1cbiAgZm9yIChsZXQgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9uLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYCR7dmFsdWV9IG5vdCBwYXJ0IG9mICR7b3B0aW9ucy50b1N0cmluZygpfWA7XG59O1xuXG52YWxpZGF0b3IucHJvbWlzZSA9IEI7XG52YWxpZGF0b3IucHJldHRpZnkgPSBmdW5j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
90
+ //# sourceMappingURL=desired-caps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"desired-caps.js","names":["validator","_validator","validators","isString","value","isNumber","isNaN","Number","log","warn","isBoolean","includes","isObject","isArray","Array","deprecated","options","key","inclusionCaseInsensitive","option","toLowerCase","toString","promise","B","prettify","val"],"sources":["../../../lib/basedriver/desired-caps.js"],"sourcesContent":["import log from './logger';\nimport _validator from 'validate.js';\nimport B from 'bluebird';\n\nexport const validator =\n /** @type {import('validate.js').ValidateJS & {promise: typeof import('bluebird')}} */ (\n _validator\n );\n\nvalidator.validators.isString = function isString(value) {\n if (typeof value === 'string') {\n return null;\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n return 'must be of type string';\n};\nvalidator.validators.isNumber = function isNumber(value) {\n if (typeof value === 'number') {\n return null;\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n // allow a string value\n if (typeof value === 'string' && !isNaN(Number(value))) {\n log.warn('Number capability passed in as string. Functionality may be compromised.');\n return null;\n }\n\n return 'must be of type number';\n};\nvalidator.validators.isBoolean = function isBoolean(value) {\n if (typeof value === 'boolean') {\n return null;\n }\n\n // allow a string value\n if (typeof value === 'string' && ['true', 'false', ''].includes(value)) {\n return null;\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n return 'must be of type boolean';\n};\nvalidator.validators.isObject = function isObject(value) {\n if (typeof value === 'object') {\n return null;\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n return 'must be of type object';\n};\nvalidator.validators.isArray = function isArray(value) {\n if (Array.isArray(value)) {\n return null;\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n return 'must be of type array';\n};\nvalidator.validators.deprecated = function deprecated(value, options, key) {\n if (options) {\n log.warn(`${key} is a deprecated capability`);\n }\n return null;\n};\nvalidator.validators.inclusionCaseInsensitive = function inclusionCaseInsensitive(value, options) {\n if (typeof value === 'undefined') {\n return null;\n } else if (typeof value !== 'string') {\n return 'unrecognised';\n }\n for (let option of options) {\n if (option.toLowerCase() === value.toLowerCase()) {\n return null;\n }\n }\n return `${value} not part of ${options.toString()}`;\n};\n\nvalidator.promise = B;\nvalidator.prettify = function prettify(val) {\n return val;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../../lib/basedriver/desired-caps.js"],"names":[],"mappings":"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"}
@@ -1,69 +1,64 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.MAX_SETTINGS_SIZE = exports.DeviceSettings = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
-
12
- var _logger = _interopRequireDefault(require("./logger"));
13
-
14
- var _support = require("@appium/support");
15
-
16
- var _errors = require("../protocol/errors");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- const MAX_SETTINGS_SIZE = 20 * 1024 * 1024;
21
- exports.MAX_SETTINGS_SIZE = MAX_SETTINGS_SIZE;
22
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DeviceSettings = exports.MAX_SETTINGS_SIZE = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const logger_1 = __importDefault(require("./logger"));
9
+ const support_1 = require("@appium/support");
10
+ const errors_1 = require("../protocol/errors");
11
+ /**
12
+ * Maximum size (in bytes) of a given driver's settings object (which is internal to {@linkcode DriverSettings}).
13
+ */
14
+ exports.MAX_SETTINGS_SIZE = 20 * 1024 * 1024; // 20 MB
15
+ /**
16
+ * @template T
17
+ * @implements {IDeviceSettings<T>}
18
+ */
23
19
  class DeviceSettings {
24
- _settings;
25
- _onSettingsUpdate;
26
-
27
- constructor(defaultSettings = {}, onSettingsUpdate = async () => {}) {
28
- this._settings = { ...defaultSettings
29
- };
30
- this._onSettingsUpdate = onSettingsUpdate;
31
- }
32
-
33
- async update(newSettings) {
34
- if (!_lodash.default.isPlainObject(newSettings)) {
35
- throw new _errors.errors.InvalidArgumentError(`Settings update should be called with valid JSON. Got ` + `${JSON.stringify(newSettings)} instead`);
20
+ /**
21
+ * Creates a _shallow copy_ of the `defaultSettings` parameter!
22
+ * @param {Record<string,T>} [defaultSettings]
23
+ * @param {import('@appium/types').SettingsUpdateListener<T>} [onSettingsUpdate]
24
+ */
25
+ constructor(defaultSettings = {}, onSettingsUpdate = async () => { }) {
26
+ this._settings = { ...defaultSettings };
27
+ this._onSettingsUpdate = onSettingsUpdate;
36
28
  }
37
-
38
- if (_support.node.getObjectSize({ ...this._settings,
39
- ...newSettings
40
- }) >= MAX_SETTINGS_SIZE) {
41
- throw new _errors.errors.InvalidArgumentError(`New settings cannot be applied, because the overall ` + `object size exceeds the allowed limit of ${_support.util.toReadableSizeString(MAX_SETTINGS_SIZE)}`);
42
- }
43
-
44
- const props = _lodash.default.keys(newSettings);
45
-
46
- for (const prop of props) {
47
- if (!_lodash.default.isUndefined(this._settings[prop])) {
48
- if (this._settings[prop] === newSettings[prop]) {
49
- _logger.default.debug(`The value of '${prop}' setting did not change. Skipping the update for it`);
50
-
51
- continue;
29
+ /**
30
+ * calls updateSettings from implementing driver every time a setting is changed.
31
+ * @param {Record<string,T>} newSettings
32
+ */
33
+ async update(newSettings) {
34
+ if (!lodash_1.default.isPlainObject(newSettings)) {
35
+ throw new errors_1.errors.InvalidArgumentError(`Settings update should be called with valid JSON. Got ` +
36
+ `${JSON.stringify(newSettings)} instead`);
37
+ }
38
+ if (support_1.node.getObjectSize({ ...this._settings, ...newSettings }) >= exports.MAX_SETTINGS_SIZE) {
39
+ throw new errors_1.errors.InvalidArgumentError(`New settings cannot be applied, because the overall ` +
40
+ `object size exceeds the allowed limit of ${support_1.util.toReadableSizeString(exports.MAX_SETTINGS_SIZE)}`);
52
41
  }
53
- }
54
-
55
- await this._onSettingsUpdate(prop, newSettings[prop], this._settings[prop]);
56
- this._settings[prop] = newSettings[prop];
42
+ const props = /** @type {(keyof T & string)[]} */ (lodash_1.default.keys(newSettings));
43
+ for (const prop of props) {
44
+ if (!lodash_1.default.isUndefined(this._settings[prop])) {
45
+ if (this._settings[prop] === newSettings[prop]) {
46
+ logger_1.default.debug(`The value of '${prop}' setting did not change. Skipping the update for it`);
47
+ continue;
48
+ }
49
+ }
50
+ await this._onSettingsUpdate(prop, newSettings[prop], this._settings[prop]);
51
+ this._settings[prop] = newSettings[prop];
52
+ }
53
+ }
54
+ getSettings() {
55
+ return this._settings;
57
56
  }
58
- }
59
-
60
- getSettings() {
61
- return this._settings;
62
- }
63
-
64
57
  }
65
-
66
58
  exports.DeviceSettings = DeviceSettings;
67
- var _default = DeviceSettings;
68
- exports.default = _default;
69
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfU0VUVElOR1NfU0laRSIsIkRldmljZVNldHRpbmdzIiwiX3NldHRpbmdzIiwiX29uU2V0dGluZ3NVcGRhdGUiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRTZXR0aW5ncyIsIm9uU2V0dGluZ3NVcGRhdGUiLCJ1cGRhdGUiLCJuZXdTZXR0aW5ncyIsIl8iLCJpc1BsYWluT2JqZWN0IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9kZSIsImdldE9iamVjdFNpemUiLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJwcm9wcyIsImtleXMiLCJwcm9wIiwiaXNVbmRlZmluZWQiLCJsb2ciLCJkZWJ1ZyIsImdldFNldHRpbmdzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvZGV2aWNlLXNldHRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7bm9kZSwgdXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi9wcm90b2NvbC9lcnJvcnMnO1xuXG4vKipcbiAqIE1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZ2l2ZW4gZHJpdmVyJ3Mgc2V0dGluZ3Mgb2JqZWN0ICh3aGljaCBpcyBpbnRlcm5hbCB0byB7QGxpbmtjb2RlIERyaXZlclNldHRpbmdzfSkuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfU0VUVElOR1NfU0laRSA9IDIwICogMTAyNCAqIDEwMjQ7IC8vIDIwIE1CXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEBpbXBsZW1lbnRzIHtJRGV2aWNlU2V0dGluZ3M8VD59XG4gKi9cbmNsYXNzIERldmljZVNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsVD59XG4gICAqL1xuICBfc2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHR5cGUge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzVXBkYXRlTGlzdGVuZXI8VD59XG4gICAqL1xuICBfb25TZXR0aW5nc1VwZGF0ZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIF9zaGFsbG93IGNvcHlfIG9mIHRoZSBgZGVmYXVsdFNldHRpbmdzYCBwYXJhbWV0ZXIhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZyxUPn0gW2RlZmF1bHRTZXR0aW5nc11cbiAgICogQHBhcmFtIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TZXR0aW5nc1VwZGF0ZUxpc3RlbmVyPFQ+fSBbb25TZXR0aW5nc1VwZGF0ZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRlZmF1bHRTZXR0aW5ncyA9IHt9LCBvblNldHRpbmdzVXBkYXRlID0gYXN5bmMgKCkgPT4ge30pIHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHsuLi5kZWZhdWx0U2V0dGluZ3N9O1xuICAgIHRoaXMuX29uU2V0dGluZ3NVcGRhdGUgPSBvblNldHRpbmdzVXBkYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxzIHVwZGF0ZVNldHRpbmdzIGZyb20gaW1wbGVtZW50aW5nIGRyaXZlciBldmVyeSB0aW1lIGEgc2V0dGluZyBpcyBjaGFuZ2VkLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsVD59IG5ld1NldHRpbmdzXG4gICAqL1xuICBhc3luYyB1cGRhdGUobmV3U2V0dGluZ3MpIHtcbiAgICBpZiAoIV8uaXNQbGFpbk9iamVjdChuZXdTZXR0aW5ncykpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBTZXR0aW5ncyB1cGRhdGUgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHZhbGlkIEpTT04uIEdvdCBgICtcbiAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShuZXdTZXR0aW5ncyl9IGluc3RlYWRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChub2RlLmdldE9iamVjdFNpemUoey4uLnRoaXMuX3NldHRpbmdzLCAuLi5uZXdTZXR0aW5nc30pID49IE1BWF9TRVRUSU5HU19TSVpFKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgTmV3IHNldHRpbmdzIGNhbm5vdCBiZSBhcHBsaWVkLCBiZWNhdXNlIHRoZSBvdmVyYWxsIGAgK1xuICAgICAgICAgIGBvYmplY3Qgc2l6ZSBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0IG9mICR7dXRpbC50b1JlYWRhYmxlU2l6ZVN0cmluZyhNQVhfU0VUVElOR1NfU0laRSl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IC8qKiBAdHlwZSB7KGtleW9mIFQgJiBzdHJpbmcpW119ICovIChfLmtleXMobmV3U2V0dGluZ3MpKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLl9zZXR0aW5nc1twcm9wXSkpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzW3Byb3BdID09PSBuZXdTZXR0aW5nc1twcm9wXSkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgVGhlIHZhbHVlIG9mICcke3Byb3B9JyBzZXR0aW5nIGRpZCBub3QgY2hhbmdlLiBTa2lwcGluZyB0aGUgdXBkYXRlIGZvciBpdGApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLl9vblNldHRpbmdzVXBkYXRlKHByb3AsIG5ld1NldHRpbmdzW3Byb3BdLCB0aGlzLl9zZXR0aW5nc1twcm9wXSk7XG4gICAgICB0aGlzLl9zZXR0aW5nc1twcm9wXSA9IG5ld1NldHRpbmdzW3Byb3BdO1xuICAgIH1cbiAgfVxuXG4gIGdldFNldHRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXZpY2VTZXR0aW5ncztcbmV4cG9ydCB7RGV2aWNlU2V0dGluZ3N9O1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRGV2aWNlU2V0dGluZ3M8VD59IElEZXZpY2VTZXR0aW5nc1xuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBS08sTUFBTUEsaUJBQWlCLEdBQUcsS0FBSyxJQUFMLEdBQVksSUFBdEM7OztBQU1QLE1BQU1DLGNBQU4sQ0FBcUI7RUFLbkJDLFNBQVM7RUFNVEMsaUJBQWlCOztFQU9qQkMsV0FBVyxDQUFDQyxlQUFlLEdBQUcsRUFBbkIsRUFBdUJDLGdCQUFnQixHQUFHLFlBQVksQ0FBRSxDQUF4RCxFQUEwRDtJQUNuRSxLQUFLSixTQUFMLEdBQWlCLEVBQUMsR0FBR0c7SUFBSixDQUFqQjtJQUNBLEtBQUtGLGlCQUFMLEdBQXlCRyxnQkFBekI7RUFDRDs7RUFNVyxNQUFOQyxNQUFNLENBQUNDLFdBQUQsRUFBYztJQUN4QixJQUFJLENBQUNDLGVBQUEsQ0FBRUMsYUFBRixDQUFnQkYsV0FBaEIsQ0FBTCxFQUFtQztNQUNqQyxNQUFNLElBQUlHLGNBQUEsQ0FBT0Msb0JBQVgsQ0FDSCx3REFBRCxHQUNHLEdBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFlTixXQUFmLENBQTRCLFVBRjdCLENBQU47SUFJRDs7SUFFRCxJQUFJTyxhQUFBLENBQUtDLGFBQUwsQ0FBbUIsRUFBQyxHQUFHLEtBQUtkLFNBQVQ7TUFBb0IsR0FBR007SUFBdkIsQ0FBbkIsS0FBMkRSLGlCQUEvRCxFQUFrRjtNQUNoRixNQUFNLElBQUlXLGNBQUEsQ0FBT0Msb0JBQVgsQ0FDSCxzREFBRCxHQUNHLDRDQUEyQ0ssYUFBQSxDQUFLQyxvQkFBTCxDQUEwQmxCLGlCQUExQixDQUE2QyxFQUZ2RixDQUFOO0lBSUQ7O0lBRUQsTUFBTW1CLEtBQUssR0FBd0NWLGVBQUEsQ0FBRVcsSUFBRixDQUFPWixXQUFQLENBQW5EOztJQUNBLEtBQUssTUFBTWEsSUFBWCxJQUFtQkYsS0FBbkIsRUFBMEI7TUFDeEIsSUFBSSxDQUFDVixlQUFBLENBQUVhLFdBQUYsQ0FBYyxLQUFLcEIsU0FBTCxDQUFlbUIsSUFBZixDQUFkLENBQUwsRUFBMEM7UUFDeEMsSUFBSSxLQUFLbkIsU0FBTCxDQUFlbUIsSUFBZixNQUF5QmIsV0FBVyxDQUFDYSxJQUFELENBQXhDLEVBQWdEO1VBQzlDRSxlQUFBLENBQUlDLEtBQUosQ0FBVyxpQkFBZ0JILElBQUssc0RBQWhDOztVQUNBO1FBQ0Q7TUFDRjs7TUFDRCxNQUFNLEtBQUtsQixpQkFBTCxDQUF1QmtCLElBQXZCLEVBQTZCYixXQUFXLENBQUNhLElBQUQsQ0FBeEMsRUFBZ0QsS0FBS25CLFNBQUwsQ0FBZW1CLElBQWYsQ0FBaEQsQ0FBTjtNQUNBLEtBQUtuQixTQUFMLENBQWVtQixJQUFmLElBQXVCYixXQUFXLENBQUNhLElBQUQsQ0FBbEM7SUFDRDtFQUNGOztFQUVESSxXQUFXLEdBQUc7SUFDWixPQUFPLEtBQUt2QixTQUFaO0VBQ0Q7O0FBekRrQjs7O2VBNERORCxjIn0=
59
+ exports.default = DeviceSettings;
60
+ /**
61
+ * @template T
62
+ * @typedef {import('@appium/types').DeviceSettings<T>} IDeviceSettings
63
+ */
64
+ //# sourceMappingURL=device-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-settings.js","names":["MAX_SETTINGS_SIZE","DeviceSettings","_settings","_onSettingsUpdate","constructor","defaultSettings","onSettingsUpdate","update","newSettings","_","isPlainObject","errors","InvalidArgumentError","JSON","stringify","node","getObjectSize","util","toReadableSizeString","props","keys","prop","isUndefined","log","debug","getSettings"],"sources":["../../../lib/basedriver/device-settings.js"],"sourcesContent":["import _ from 'lodash';\nimport log from './logger';\nimport {node, util} from '@appium/support';\nimport {errors} from '../protocol/errors';\n\n/**\n * Maximum size (in bytes) of a given driver's settings object (which is internal to {@linkcode DriverSettings}).\n */\nexport const MAX_SETTINGS_SIZE = 20 * 1024 * 1024; // 20 MB\n\n/**\n * @template T\n * @implements {IDeviceSettings<T>}\n */\nclass DeviceSettings {\n /**\n * @protected\n * @type {Record<string,T>}\n */\n _settings;\n\n /**\n * @protected\n * @type {import('@appium/types').SettingsUpdateListener<T>}\n */\n _onSettingsUpdate;\n\n /**\n * Creates a _shallow copy_ of the `defaultSettings` parameter!\n * @param {Record<string,T>} [defaultSettings]\n * @param {import('@appium/types').SettingsUpdateListener<T>} [onSettingsUpdate]\n */\n constructor(defaultSettings = {}, onSettingsUpdate = async () => {}) {\n this._settings = {...defaultSettings};\n this._onSettingsUpdate = onSettingsUpdate;\n }\n\n /**\n * calls updateSettings from implementing driver every time a setting is changed.\n * @param {Record<string,T>} newSettings\n */\n async update(newSettings) {\n if (!_.isPlainObject(newSettings)) {\n throw new errors.InvalidArgumentError(\n `Settings update should be called with valid JSON. Got ` +\n `${JSON.stringify(newSettings)} instead`\n );\n }\n\n if (node.getObjectSize({...this._settings, ...newSettings}) >= MAX_SETTINGS_SIZE) {\n throw new errors.InvalidArgumentError(\n `New settings cannot be applied, because the overall ` +\n `object size exceeds the allowed limit of ${util.toReadableSizeString(MAX_SETTINGS_SIZE)}`\n );\n }\n\n const props = /** @type {(keyof T & string)[]} */ (_.keys(newSettings));\n for (const prop of props) {\n if (!_.isUndefined(this._settings[prop])) {\n if (this._settings[prop] === newSettings[prop]) {\n log.debug(`The value of '${prop}' setting did not change. Skipping the update for it`);\n continue;\n }\n }\n await this._onSettingsUpdate(prop, newSettings[prop], this._settings[prop]);\n this._settings[prop] = newSettings[prop];\n }\n }\n\n getSettings() {\n return this._settings;\n }\n}\n\nexport default DeviceSettings;\nexport {DeviceSettings};\n\n/**\n * @template T\n * @typedef {import('@appium/types').DeviceSettings<T>} IDeviceSettings\n */\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAKO,MAAMA,iBAAiB,GAAG,KAAK,IAAL,GAAY,IAAtC;;;AAMP,MAAMC,cAAN,CAAqB;EAKnBC,SAAS;EAMTC,iBAAiB;;EAOjBC,WAAW,CAACC,eAAe,GAAG,EAAnB,EAAuBC,gBAAgB,GAAG,YAAY,CAAE,CAAxD,EAA0D;IACnE,KAAKJ,SAAL,GAAiB,EAAC,GAAGG;IAAJ,CAAjB;IACA,KAAKF,iBAAL,GAAyBG,gBAAzB;EACD;;EAMW,MAANC,MAAM,CAACC,WAAD,EAAc;IACxB,IAAI,CAACC,eAAA,CAAEC,aAAF,CAAgBF,WAAhB,CAAL,EAAmC;MACjC,MAAM,IAAIG,cAAA,CAAOC,oBAAX,CACH,wDAAD,GACG,GAAEC,IAAI,CAACC,SAAL,CAAeN,WAAf,CAA4B,UAF7B,CAAN;IAID;;IAED,IAAIO,aAAA,CAAKC,aAAL,CAAmB,EAAC,GAAG,KAAKd,SAAT;MAAoB,GAAGM;IAAvB,CAAnB,KAA2DR,iBAA/D,EAAkF;MAChF,MAAM,IAAIW,cAAA,CAAOC,oBAAX,CACH,sDAAD,GACG,4CAA2CK,aAAA,CAAKC,oBAAL,CAA0BlB,iBAA1B,CAA6C,EAFvF,CAAN;IAID;;IAED,MAAMmB,KAAK,GAAwCV,eAAA,CAAEW,IAAF,CAAOZ,WAAP,CAAnD;;IACA,KAAK,MAAMa,IAAX,IAAmBF,KAAnB,EAA0B;MACxB,IAAI,CAACV,eAAA,CAAEa,WAAF,CAAc,KAAKpB,SAAL,CAAemB,IAAf,CAAd,CAAL,EAA0C;QACxC,IAAI,KAAKnB,SAAL,CAAemB,IAAf,MAAyBb,WAAW,CAACa,IAAD,CAAxC,EAAgD;UAC9CE,eAAA,CAAIC,KAAJ,CAAW,iBAAgBH,IAAK,sDAAhC;;UACA;QACD;MACF;;MACD,MAAM,KAAKlB,iBAAL,CAAuBkB,IAAvB,EAA6Bb,WAAW,CAACa,IAAD,CAAxC,EAAgD,KAAKnB,SAAL,CAAemB,IAAf,CAAhD,CAAN;MACA,KAAKnB,SAAL,CAAemB,IAAf,IAAuBb,WAAW,CAACa,IAAD,CAAlC;IACD;EACF;;EAEDI,WAAW,GAAG;IACZ,OAAO,KAAKvB,SAAZ;EACD;;AAzDkB;;;eA4DND,c"}
1
+ {"version":3,"file":"device-settings.js","sourceRoot":"","sources":["../../../lib/basedriver/device-settings.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,sDAA2B;AAC3B,6CAA2C;AAC3C,+CAA0C;AAE1C;;GAEG;AACU,QAAA,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE3D;;;GAGG;AACH,MAAM,cAAc;IAalB;;;;OAIG;IACH,YAAY,eAAe,GAAG,EAAE,EAAE,gBAAgB,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,eAAe,EAAC,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,WAAW;QACtB,IAAI,CAAC,gBAAC,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACjC,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,wDAAwD;gBACtD,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAC3C,CAAC;SACH;QAED,IAAI,cAAI,CAAC,aAAa,CAAC,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,WAAW,EAAC,CAAC,IAAI,yBAAiB,EAAE;YAChF,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,sDAAsD;gBACpD,4CAA4C,cAAI,CAAC,oBAAoB,CAAC,yBAAiB,CAAC,EAAE,CAC7F,CAAC;SACH;QAED,MAAM,KAAK,GAAG,mCAAmC,CAAC,CAAC,gBAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE;oBAC9C,gBAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,sDAAsD,CAAC,CAAC;oBACvF,SAAS;iBACV;aACF;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAGO,wCAAc;AADtB,kBAAe,cAAc,CAAC;AAG9B;;;GAGG"}