@appium/base-driver 8.7.3 → 9.0.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 +354 -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 +1238 -4
  101. package/build/lib/protocol/routes.d.ts.map +1 -1
  102. package/build/lib/protocol/routes.js +964 -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 +80 -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 +11 -7
  121. package/package.json +14 -16
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["EVENT_SESSION_INIT","EVENT_SESSION_START","EVENT_SESSION_QUIT_START","EVENT_SESSION_QUIT_DONE","ON_UNEXPECTED_SHUTDOWN_EVENT","BaseDriverCore","DriverCore","cliArgs","caps","originalCaps","desiredCapConstraints","opts","BASE_DESIRED_CAP_CONSTRAINTS","constructor","shouldValidateCaps","_desiredCapConstraints","Object","freeze","_","merge","executeCommand","cmd","args","startTime","Date","now","protocol","determineProtocol","logEvent","DELETE_SESSION_COMMAND","clearNewCommandTimeout","shutdownUnexpectedly","errors","NoSuchDriverError","NotYetImplementedError","unexpectedShutdownListener","commandExecutor","B","race","resolve","reject","eventEmitter","on","finally","removeListener","res","isCommandsQueueEnabled","commandsQueueGuard","acquire","BaseDriver","name","startNewCommandTimeout","endTime","_eventHistory","commands","push","startUnexpectedShutdown","err","emit","sessionId","deleteSession","newCommandTimeoutMs","noCommandTimer","setTimeout","log","warn","errorMessage","Error","assignServer","server","host","port","path","serverHost","serverPort","serverPath","reset","debug","currentConfig","property","resetOnUnexpectedShutdown","createSession","key","value","toPairs","w3cCapabilities1","w3cCapabilities2","w3cCapabilities","driverData","SessionNotCreatedError","cloneDeep","find","isW3cCaps","setProtocolW3C","JSON","stringify","processCapabilities","APPIUM_OPTS_CAP","PREFIXED_APPIUM_OPTS_CAP","promoteAppiumOptions","fixCaps","e","message","validateDesiredCaps","util","uuidV4","initialOpts","noReset","fullReset","fastReset","skipUninstall","app","trim","isUndefined","newCommandTimeout","_log","prefix","helpers","generateDriverLogPrefix","info","isBusy","keys","queues","logExtraCaps","extraCaps","difference","length","cap","validateCaps","errorAndThrow","createBaseDriverClass"],"sources":["../../../lib/basedriver/driver.js"],"sourcesContent":["/* eslint-disable require-await */\n/* eslint-disable no-unused-vars */\n\nimport {\n validateCaps,\n APPIUM_OPTS_CAP,\n PREFIXED_APPIUM_OPTS_CAP,\n processCapabilities,\n promoteAppiumOptions,\n} from './capabilities';\nimport {DriverCore} from './core';\nimport {util} from '@appium/support';\nimport B from 'bluebird';\nimport _ from 'lodash';\nimport {fixCaps, isW3cCaps} from '../helpers/capabilities';\nimport {DELETE_SESSION_COMMAND, determineProtocol, errors} from '../protocol';\nimport {createBaseDriverClass} from './commands';\nimport helpers from './helpers';\nimport {BASE_DESIRED_CAP_CONSTRAINTS} from '@appium/types';\n\nconst EVENT_SESSION_INIT = 'newSessionRequested';\nconst EVENT_SESSION_START = 'newSessionStarted';\nconst EVENT_SESSION_QUIT_START = 'quitSessionRequested';\nconst EVENT_SESSION_QUIT_DONE = 'quitSessionFinished';\nconst ON_UNEXPECTED_SHUTDOWN_EVENT = 'onUnexpectedShutdown';\n\n/**\n * @implements {SessionHandler<C>}\n * @template {Constraints} C\n * @template {StringRecord} [CArgs=StringRecord]\n * @extends {DriverCore<C>}\n */\nexport class BaseDriverCore extends DriverCore {\n /**\n * @type {CArgs & ServerArgs}\n */\n cliArgs;\n\n /**\n * @type {Capabilities<C>}\n */\n caps;\n\n /**\n * @type {W3CCapabilities<C>}\n */\n originalCaps;\n\n /**\n * @type {C}\n */\n desiredCapConstraints;\n\n /**\n * @type {DriverOpts<C> & DriverOpts<BaseDriverCapConstraints>}\n */\n opts;\n\n static BASE_DESIRED_CAP_CONSTRAINTS = BASE_DESIRED_CAP_CONSTRAINTS;\n\n /**\n *\n * @param {DriverOpts<C>} opts\n * @param {boolean} shouldValidateCaps\n */\n constructor(opts = /** @type {DriverOpts<C>} */ ({}), shouldValidateCaps = true) {\n super(opts, shouldValidateCaps);\n\n /**\n * This must be assigned here because the declaration of {@linkcode BaseDriverCore.opts} above\n * blows away {@linkcode DriverCore.opts}.\n */\n this.opts = opts;\n }\n\n /**\n * Contains the base constraints plus whatever the subclass wants to add.\n *\n * Subclasses _shouldn't_ need to use this. If you need to use this, please create\n * an issue:\n * @see https://github.com/appium/appium/issues/new\n * @type {Readonly<BaseDriverCapConstraints & C>}\n * @protected\n */\n get _desiredCapConstraints() {\n return Object.freeze(_.merge({}, BASE_DESIRED_CAP_CONSTRAINTS, this.desiredCapConstraints));\n }\n\n // This is the main command handler for the driver. It wraps command\n // execution with timeout logic, checking that we have a valid session,\n // and ensuring that we execute commands one at a time. This method is called\n // by MJSONWP's express router.\n /**\n * @param {string} cmd\n * @param {...any} args\n * @returns {Promise<any>}\n */\n async executeCommand(cmd, ...args) {\n // get start time for this command, and log in special cases\n let startTime = Date.now();\n\n if (cmd === 'createSession') {\n // If creating a session determine if W3C or MJSONWP protocol was requested and remember the choice\n this.protocol = determineProtocol(args);\n this.logEvent(EVENT_SESSION_INIT);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_START);\n }\n\n // if we had a command timer running, clear it now that we're starting\n // a new command and so don't want to time out\n await this.clearNewCommandTimeout();\n\n if (this.shutdownUnexpectedly) {\n throw new errors.NoSuchDriverError('The driver was unexpectedly shut down!');\n }\n\n // If we don't have this command, it must not be implemented\n if (!this[cmd]) {\n throw new errors.NotYetImplementedError();\n }\n\n let unexpectedShutdownListener;\n const commandExecutor = async () =>\n await B.race([\n this[cmd](...args),\n new B((resolve, reject) => {\n unexpectedShutdownListener = reject;\n this.eventEmitter.on(ON_UNEXPECTED_SHUTDOWN_EVENT, unexpectedShutdownListener);\n }),\n ]).finally(() => {\n if (unexpectedShutdownListener) {\n // This is needed to prevent memory leaks\n this.eventEmitter.removeListener(\n ON_UNEXPECTED_SHUTDOWN_EVENT,\n unexpectedShutdownListener\n );\n unexpectedShutdownListener = null;\n }\n });\n const res = this.isCommandsQueueEnabled\n ? await this.commandsQueueGuard.acquire(BaseDriver.name, commandExecutor)\n : await commandExecutor();\n\n // if we have set a new command timeout (which is the default), start a\n // timer once we've finished executing this command. If we don't clear\n // the timer (which is done when a new command comes in), we will trigger\n // automatic session deletion in this.onCommandTimeout. Of course we don't\n // want to trigger the timer when the user is shutting down the session\n // intentionally\n if (this.isCommandsQueueEnabled && cmd !== DELETE_SESSION_COMMAND) {\n // resetting existing timeout\n await this.startNewCommandTimeout();\n }\n\n // log timing information about this command\n const endTime = Date.now();\n this._eventHistory.commands.push({cmd, startTime, endTime});\n if (cmd === 'createSession') {\n this.logEvent(EVENT_SESSION_START);\n } else if (cmd === DELETE_SESSION_COMMAND) {\n this.logEvent(EVENT_SESSION_QUIT_DONE);\n }\n\n return res;\n }\n\n /**\n *\n * @param {Error|import('../protocol/errors').NoSuchDriverError} err\n */\n async startUnexpectedShutdown(\n err = new errors.NoSuchDriverError('The driver was unexpectedly shut down!')\n ) {\n this.eventEmitter.emit(ON_UNEXPECTED_SHUTDOWN_EVENT, err); // allow others to listen for this\n this.shutdownUnexpectedly = true;\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n } finally {\n this.shutdownUnexpectedly = false;\n }\n }\n\n async startNewCommandTimeout() {\n // make sure there are no rogue timeouts\n await this.clearNewCommandTimeout();\n\n // if command timeout is 0, it is disabled\n if (!this.newCommandTimeoutMs) return; // eslint-disable-line curly\n\n this.noCommandTimer = setTimeout(async () => {\n this.log.warn(\n `Shutting down because we waited ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds for a command`\n );\n const errorMessage =\n `New Command Timeout of ` +\n `${this.newCommandTimeoutMs / 1000.0} seconds ` +\n `expired. Try customizing the timeout using the ` +\n `'newCommandTimeout' desired capability`;\n await this.startUnexpectedShutdown(new Error(errorMessage));\n }, this.newCommandTimeoutMs);\n }\n\n /**\n *\n * @param {import('@appium/types').AppiumServer} server\n * @param {string} host\n * @param {number} port\n * @param {string} path\n */\n assignServer(server, host, port, path) {\n this.server = server;\n this.serverHost = host;\n this.serverPort = port;\n this.serverPath = path;\n }\n\n /*\n * Restart the session with the original caps,\n * preserving the timeout config.\n */\n async reset() {\n this.log.debug('Resetting app mid-session');\n this.log.debug('Running generic full reset');\n\n // preserving state\n let currentConfig = {};\n for (let property of [\n 'implicitWaitMs',\n 'newCommandTimeoutMs',\n 'sessionId',\n 'resetOnUnexpectedShutdown',\n ]) {\n currentConfig[property] = this[property];\n }\n\n // We also need to preserve the unexpected shutdown, and make sure it is not cancelled during reset.\n this.resetOnUnexpectedShutdown = () => {};\n\n try {\n if (this.sessionId !== null) {\n await this.deleteSession(this.sessionId);\n }\n this.log.debug('Restarting app');\n await this.createSession(this.originalCaps);\n } finally {\n // always restore state.\n for (let [key, value] of _.toPairs(currentConfig)) {\n this[key] = value;\n }\n }\n await this.clearNewCommandTimeout();\n }\n\n /**\n *\n * Historically the first two arguments were reserved for JSONWP capabilities.\n * Appium 2 has dropped the support of these, so now we only accept capability\n * objects in W3C format and thus allow any of the three arguments to represent\n * the latter.\n * @param {W3CCapabilities<C>} w3cCapabilities1\n * @param {W3CCapabilities<C>} [w3cCapabilities2]\n * @param {W3CCapabilities<C>} [w3cCapabilities]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<[string,Capabilities<C>]>}\n */\n async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities, driverData) {\n if (this.sessionId !== null) {\n throw new errors.SessionNotCreatedError(\n 'Cannot create a new session while one is in progress'\n );\n }\n\n this.log.debug();\n\n const originalCaps = _.cloneDeep(\n [w3cCapabilities, w3cCapabilities1, w3cCapabilities2].find(isW3cCaps)\n );\n if (!originalCaps) {\n throw new errors.SessionNotCreatedError(\n 'Appium only supports W3C-style capability objects. ' +\n 'Your client is sending an older capabilities format. Please update your client library.'\n );\n }\n\n this.setProtocolW3C();\n\n this.originalCaps = originalCaps;\n this.log.debug(\n `Creating session with W3C capabilities: ${JSON.stringify(originalCaps, null, 2)}`\n );\n\n /** @type {Capabilities<C>} */\n let caps;\n try {\n caps = processCapabilities(\n originalCaps,\n this._desiredCapConstraints,\n this.shouldValidateCaps\n );\n if (caps[APPIUM_OPTS_CAP]) {\n this.log.debug(\n `Found ${PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`\n );\n caps = promoteAppiumOptions(caps);\n }\n caps = fixCaps(caps, this._desiredCapConstraints, this.log);\n } catch (e) {\n throw new errors.SessionNotCreatedError(e.message);\n }\n\n this.validateDesiredCaps(caps);\n\n this.sessionId = util.uuidV4();\n this.caps = caps;\n // merge caps onto opts so we don't need to worry about what's where\n this.opts = {..._.cloneDeep(this.initialOpts), ...this.caps};\n\n // deal with resets\n // some people like to do weird things by setting noReset and fullReset\n // both to true, but this is misguided and strange, so error here instead\n if (this.opts.noReset && this.opts.fullReset) {\n throw new Error(\n \"The 'noReset' and 'fullReset' capabilities are mutually \" +\n 'exclusive and should not both be set to true. You ' +\n \"probably meant to just use 'fullReset' on its own\"\n );\n }\n if (this.opts.noReset === true) {\n this.opts.fullReset = false;\n }\n if (this.opts.fullReset === true) {\n this.opts.noReset = false;\n }\n this.opts.fastReset = !this.opts.fullReset && !this.opts.noReset;\n this.opts.skipUninstall = this.opts.fastReset || this.opts.noReset;\n\n // Prevents empty string caps so we don't need to test it everywhere\n if (typeof this.opts.app === 'string' && this.opts.app.trim() === '') {\n delete this.opts.app;\n }\n\n if (!_.isUndefined(this.caps.newCommandTimeout)) {\n this.newCommandTimeoutMs = /** @type {number} */ (this.caps.newCommandTimeout) * 1000;\n }\n\n this._log.prefix = helpers.generateDriverLogPrefix(this, this.sessionId);\n\n this.log.info(`Session created with session id: ${this.sessionId}`);\n\n return [this.sessionId, caps];\n }\n\n /**\n *\n * @param {string} [sessionId]\n * @param {DriverData[]} [driverData]\n * @returns {Promise<void>}\n */\n async deleteSession(sessionId, driverData) {\n await this.clearNewCommandTimeout();\n if (this.isCommandsQueueEnabled && this.commandsQueueGuard.isBusy()) {\n // simple hack to release pending commands if they exist\n // @ts-ignore\n for (const key of _.keys(this.commandsQueueGuard.queues)) {\n // @ts-ignore\n this.commandsQueueGuard.queues[key] = [];\n }\n }\n this.sessionId = null;\n this._log.prefix = helpers.generateDriverLogPrefix(this);\n }\n\n /**\n *\n * @param {Capabilities} caps\n */\n logExtraCaps(caps) {\n let extraCaps = _.difference(_.keys(caps), _.keys(this._desiredCapConstraints));\n if (extraCaps.length) {\n this.log.warn(\n `The following capabilities were provided, but are not ` + `recognized by Appium:`\n );\n for (const cap of extraCaps) {\n this.log.warn(` ${cap}`);\n }\n }\n }\n\n /**\n *\n * @param {Capabilities<C>} caps\n * @returns {boolean}\n */\n validateDesiredCaps(caps) {\n if (!this.shouldValidateCaps) {\n return true;\n }\n\n try {\n validateCaps(caps, this._desiredCapConstraints);\n } catch (e) {\n this.log.errorAndThrow(\n new errors.SessionNotCreatedError(\n `The desiredCapabilities object was not valid for the ` +\n `following reason(s): ${e.message}`\n )\n );\n }\n\n this.logExtraCaps(caps);\n\n return true;\n }\n}\n\n/**\n * This ensures that all of the mixins correctly implement the interface described in {@linkcode Driver}.\n * @template {Constraints} [C={}]\n * @implements {Driver<C>}\n */\nexport class BaseDriver extends createBaseDriverClass(BaseDriverCore) {}\nexport default BaseDriver;\n\n/**\n * @typedef {import('@appium/types').HTTPMethod} HTTPMethod\n * @typedef {import('@appium/types').ExternalDriver} ExternalDriver\n * @typedef {import('@appium/types').DriverData} DriverData\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 * @typedef {import('@appium/types').ServerArgs} ServerArgs\n */\n\n/**\n * @callback UpdateServerCallback\n * @param {import('express').Express} app - Express app\n * @param {import('@appium/types').AppiumServer} httpServer - HTTP server\n * @returns {import('type-fest').Promisable<void>}\n */\n\n/**\n * This is used to extend {@linkcode BaseDriverCore} by the mixins and also external drivers.\n * @template [Proto={}]\n * @template [Static={}]\n * @typedef {import('@appium/types').Class<BaseDriverCore & Proto,import('@appium/types').DriverStatic & Static>} BaseDriverBase\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @typedef {import('@appium/types').SessionHandler<[string, object],void, C>} SessionHandler\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\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').ConstraintsToCaps<C>} ConstraintsToCaps\n */\n\n/**\n * @template {Constraints} C\n * @typedef {import('@appium/types').Driver<C>} Driver\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":"driver.js","sourceRoot":"","sources":["../../../lib/basedriver/driver.js"],"names":[],"mappings":"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"}