appium-chromedriver 5.2.17 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"chromedriver.js","names":["NEW_CD_VERSION_FORMAT_MAJOR_VERSION","DEFAULT_HOST","MIN_CD_VERSION_WITH_W3C_SUPPORT","DEFAULT_PORT","CHROME_BUNDLE_ID","WEBVIEW_SHELL_BUNDLE_ID","WEBVIEW_BUNDLE_IDS","VERSION_PATTERN","CD_VERSION_TIMEOUT","Chromedriver","events","EventEmitter","constructor","args","host","port","useSystemExecutable","executable","executableDir","getChromedriverDir","bundleId","mappingPath","cmdArgs","adb","verbose","logPath","disableBuildCheck","details","isAutodownloadEnabled","_log","logger","getLogger","generateLogPrefix","proxyHost","proxyPort","proc","chromedriver","executableVerified","state","STATE_STOPPED","jwproxy","JWProxy","server","log","storageClient","ChromedriverStorageClient","chromedriverDir","capabilities","desiredProtocol","PROTOCOLS","MJSONWP","getDriversMapping","mapping","_","cloneDeep","CHROMEDRIVER_CHROME_MAPPING","debug","fs","exists","warn","info","JSON","parse","readFile","err","message","cdVersion","chromeVersion","toPairs","coercedVersion","semver","coerce","version","getChromedrivers","executables","glob","cwd","strict","nodir","absolute","util","pluralize","length","cds","asyncmap","logError","stdout","stderr","errMsg","path","basename","exec","timeout","includes","match","minChromeVersion","major","minor","filter","cd","sort","a","b","compareVersions","isEmpty","getChromeVersion","Browser","versionMatch","apiLevel","getApiLevel","updateDriversMapping","newMapping","shouldUpdateStaticMapping","writeFile","stringify","e","Object","assign","getCompatibleChromedriver","getChromedriverBinaryPath","values","didStorageSync","syncChromedrivers","retrievedMapping","retrieveMapping","driverKeys","syncDrivers","minBrowserVersion","synchronizedDriversMapping","reduce","acc","x","missingVersions","coercedVer","size","errorAndThrow","matchingDrivers","minChromeVersionS","gte","CD_CDN","stack","autodownloadSuggestion","Error","binPath","initChromedriverPath","syncProtocol","W3C","chromeOptions","getCapValue","w3c","toW3cCapNames","start","caps","emitStartingState","loggingPrefs","browser","changeState","STATE_STARTING","adbPort","push","isArray","startDetector","startsWith","processIsAlive","webviewVersion","killAll","SubProcess","on","out","line","trim","split","error","code","signal","STATE_STOPPING","STATE_RESTARTING","msg","join","waitForOnline","startSession","emit","EVENT_ERROR","stop","versionsSupportedByDriver","sessionId","STATE_ONLINE","restart","chromedriverStopped","retryInterval","getStatus","command","sessionCaps","alwaysMatch","desiredCapabilities","prefix","emitStates","runSafeStep","f","EVENT_CHANGED","sendCommand","url","method","body","proxyReq","req","res","proxyReqRes","cmd","system","isWindows","B","promisify","cp","udidIndex","defaultArgs","findIndex","item","udid","conn","getForwardList","params","removePortForward","replace","hasWorkingWebview"],"sources":["../../lib/chromedriver.js"],"sourcesContent":["// transpile:main\n\nimport events from 'events';\nimport { JWProxy, PROTOCOLS } from '@appium/base-driver';\nimport cp from 'child_process';\nimport { system, fs, logger, util } from '@appium/support';\nimport { retryInterval, asyncmap } from 'asyncbox';\nimport { SubProcess, exec } from 'teen_process';\nimport B from 'bluebird';\nimport {\n getChromeVersion, getChromedriverDir, CHROMEDRIVER_CHROME_MAPPING,\n getChromedriverBinaryPath, CD_CDN, generateLogPrefix\n} from './utils';\nimport semver from 'semver';\nimport _ from 'lodash';\nimport path from 'path';\nimport { compareVersions } from 'compare-versions';\nimport ChromedriverStorageClient from './storage-client';\nimport { toW3cCapNames, getCapValue } from './protocol-helpers';\n\nconst NEW_CD_VERSION_FORMAT_MAJOR_VERSION = 73;\nconst DEFAULT_HOST = '127.0.0.1';\nconst MIN_CD_VERSION_WITH_W3C_SUPPORT = 75;\nconst DEFAULT_PORT = 9515;\nconst CHROME_BUNDLE_ID = 'com.android.chrome';\nconst WEBVIEW_SHELL_BUNDLE_ID = 'org.chromium.webview_shell';\nconst WEBVIEW_BUNDLE_IDS = [\n 'com.google.android.webview',\n 'com.android.webview',\n];\nconst VERSION_PATTERN = /([\\d.]+)/;\n\nconst CD_VERSION_TIMEOUT = 5000;\n\nclass Chromedriver extends events.EventEmitter {\n constructor (args = {}) {\n super();\n\n const {\n host = DEFAULT_HOST,\n port = DEFAULT_PORT,\n useSystemExecutable = false,\n executable,\n executableDir = getChromedriverDir(),\n bundleId,\n mappingPath,\n cmdArgs,\n adb,\n verbose,\n logPath,\n disableBuildCheck,\n details,\n isAutodownloadEnabled = false,\n } = args;\n this._log = logger.getLogger(generateLogPrefix(this));\n\n this.proxyHost = host;\n this.proxyPort = port;\n this.adb = adb;\n this.cmdArgs = cmdArgs;\n this.proc = null;\n this.useSystemExecutable = useSystemExecutable;\n this.chromedriver = executable;\n this.executableDir = executableDir;\n this.mappingPath = mappingPath;\n this.bundleId = bundleId;\n this.executableVerified = false;\n this.state = Chromedriver.STATE_STOPPED;\n this.jwproxy = new JWProxy({\n server: this.proxyHost,\n port: this.proxyPort,\n log: this._log,\n });\n this.verbose = verbose;\n this.logPath = logPath;\n this.disableBuildCheck = !!disableBuildCheck;\n this.storageClient = isAutodownloadEnabled\n ? new ChromedriverStorageClient({ chromedriverDir: this.executableDir })\n : null;\n this.details = details;\n this.capabilities = {};\n this.desiredProtocol = PROTOCOLS.MJSONWP;\n }\n\n get log () {\n return this._log;\n }\n\n async getDriversMapping () {\n let mapping = _.cloneDeep(CHROMEDRIVER_CHROME_MAPPING);\n if (this.mappingPath) {\n this.log.debug(`Attempting to use Chromedriver->Chrome mapping from '${this.mappingPath}'`);\n if (!await fs.exists(this.mappingPath)) {\n this.log.warn(`No file found at '${this.mappingPath}'`);\n this.log.info('Defaulting to the static Chromedriver->Chrome mapping');\n } else {\n try {\n mapping = JSON.parse(await fs.readFile(this.mappingPath, 'utf8'));\n } catch (err) {\n this.log.warn(`Error parsing mapping from '${this.mappingPath}': ${err.message}`);\n this.log.info('Defaulting to the static Chromedriver->Chrome mapping');\n }\n }\n } else {\n this.log.debug('Using the static Chromedriver->Chrome mapping');\n }\n\n // make sure that the values for minimum chrome version are semver compliant\n for (const [cdVersion, chromeVersion] of _.toPairs(mapping)) {\n const coercedVersion = semver.coerce(chromeVersion);\n if (coercedVersion) {\n mapping[cdVersion] = coercedVersion.version;\n } else {\n this.log.info(`'${chromeVersion}' is not a valid version number. Skipping it`);\n }\n }\n return mapping;\n }\n\n async getChromedrivers (mapping) {\n // go through the versions available\n const executables = await fs.glob('*', {\n cwd: this.executableDir,\n strict: false,\n nodir: true,\n absolute: true,\n });\n this.log.debug(`Found ${util.pluralize('executable', executables.length, true)} ` +\n `in '${this.executableDir}'`);\n const cds = (await asyncmap(executables, async (executable) => {\n const logError = ({message, stdout = null, stderr = null}) => {\n let errMsg = `Cannot retrieve version number from '${path.basename(executable)}' Chromedriver binary. ` +\n `Make sure it returns a valid version string in response to '--version' command line argument. ${message}`;\n if (stdout) {\n errMsg += `\\nStdout: ${stdout}`;\n }\n if (stderr) {\n errMsg += `\\nStderr: ${stderr}`;\n }\n this.log.warn(errMsg);\n return null;\n };\n\n let stdout;\n let stderr;\n try {\n ({stdout, stderr} = await exec(executable, ['--version'], {\n timeout: CD_VERSION_TIMEOUT,\n }));\n } catch (err) {\n if (!(err.message || '').includes('timed out') && !(err.stdout || '').includes('Starting ChromeDriver')) {\n return logError(err);\n }\n\n // if this has timed out, it has actually started Chromedriver,\n // in which case there will also be the version string in the output\n stdout = err.stdout;\n }\n\n const match = /ChromeDriver\\s+\\(?v?([\\d.]+)\\)?/i.exec(stdout); // https://regex101.com/r/zpj5wA/1\n if (!match) {\n return logError({message: 'Cannot parse the version string', stdout, stderr});\n }\n let version = match[1];\n let minChromeVersion = mapping[version];\n const coercedVersion = semver.coerce(version);\n if (coercedVersion) {\n // before 2019-03-06 versions were of the form major.minor\n if (coercedVersion.major < NEW_CD_VERSION_FORMAT_MAJOR_VERSION) {\n version = `${coercedVersion.major}.${coercedVersion.minor}`;\n minChromeVersion = mapping[version];\n }\n if (!minChromeVersion && coercedVersion.major >= NEW_CD_VERSION_FORMAT_MAJOR_VERSION) {\n // Assume the major Chrome version is the same as the corresponding driver major version\n minChromeVersion = `${coercedVersion.major}`;\n }\n }\n return {\n executable,\n version,\n minChromeVersion,\n };\n }))\n .filter((cd) => !!cd)\n .sort((a, b) => compareVersions(b.version, a.version));\n if (_.isEmpty(cds)) {\n this.log.info(`No Chromedrivers were found in '${this.executableDir}'`);\n return cds;\n }\n this.log.debug(`The following Chromedriver executables were found:`);\n for (const cd of cds) {\n this.log.debug(` '${cd.executable}' (version '${cd.version}', minimum Chrome version '${cd.minChromeVersion ? cd.minChromeVersion : 'Unknown'}')`);\n }\n return cds;\n }\n\n async getChromeVersion () {\n // Try to retrieve the version from `details` property if it is set\n // The `info` item must contain the output of /json/version CDP command\n // where `Browser` field looks like `Chrome/72.0.3601.0``\n if (this.details?.info) {\n this.log.debug(`Browser version in the supplied details: ${this.details?.info?.Browser}`);\n }\n const versionMatch = VERSION_PATTERN.exec(this.details?.info?.Browser);\n if (versionMatch) {\n const coercedVersion = semver.coerce(versionMatch[1]);\n if (coercedVersion) {\n return coercedVersion;\n }\n }\n\n let chromeVersion;\n\n // in case of WebView Browser Tester, simply try to find the underlying webview\n if (this.bundleId === WEBVIEW_SHELL_BUNDLE_ID) {\n for (const bundleId of WEBVIEW_BUNDLE_IDS) {\n chromeVersion = await getChromeVersion(this.adb, bundleId);\n if (chromeVersion) {\n this.bundleId = bundleId;\n return semver.coerce(chromeVersion);\n }\n }\n return null;\n }\n\n // on Android 7-9 webviews are backed by the main Chrome, not the system webview\n if (this.adb) {\n const apiLevel = await this.adb.getApiLevel();\n if (apiLevel >= 24 && apiLevel <= 28 &&\n [WEBVIEW_SHELL_BUNDLE_ID, ...WEBVIEW_BUNDLE_IDS].includes(this.bundleId)) {\n this.bundleId = CHROME_BUNDLE_ID;\n }\n }\n\n // try out webviews when no bundle id is sent in\n if (!this.bundleId) {\n // default to the generic Chrome bundle\n this.bundleId = CHROME_BUNDLE_ID;\n\n // we have a webview of some sort, so try to find the bundle version\n for (const bundleId of WEBVIEW_BUNDLE_IDS) {\n chromeVersion = await getChromeVersion(this.adb, bundleId);\n if (chromeVersion) {\n this.bundleId = bundleId;\n break;\n }\n }\n }\n\n // if we do not have a chrome version, it must not be a webview\n if (!chromeVersion) {\n chromeVersion = await getChromeVersion(this.adb, this.bundleId);\n }\n\n // make sure it is semver, so later checks won't fail\n return chromeVersion ? semver.coerce(chromeVersion) : null;\n }\n\n async updateDriversMapping (newMapping) {\n let shouldUpdateStaticMapping = true;\n if (await fs.exists(this.mappingPath)) {\n try {\n await fs.writeFile(this.mappingPath, JSON.stringify(newMapping, null, 2), 'utf8');\n shouldUpdateStaticMapping = false;\n } catch (e) {\n this.log.warn(`Cannot store the updated chromedrivers mapping into '${this.mappingPath}'. ` +\n `This may reduce the performance of further executions. Original error: ${e.message}`);\n }\n }\n if (shouldUpdateStaticMapping) {\n Object.assign(CHROMEDRIVER_CHROME_MAPPING, newMapping);\n }\n }\n\n async getCompatibleChromedriver () {\n if (!this.adb) {\n return await getChromedriverBinaryPath();\n }\n\n const mapping = await this.getDriversMapping();\n if (!_.isEmpty(mapping)) {\n this.log.debug(`The most recent known Chrome version: ${_.values(mapping)[0]}`);\n }\n\n let didStorageSync = false;\n const syncChromedrivers = async (chromeVersion) => {\n didStorageSync = true;\n const retrievedMapping = await this.storageClient.retrieveMapping();\n this.log.debug('Got chromedrivers mapping from the storage: ' +\n JSON.stringify(retrievedMapping, null, 2));\n const driverKeys = await this.storageClient.syncDrivers({\n minBrowserVersion: chromeVersion.major,\n });\n if (_.isEmpty(driverKeys)) {\n return false;\n }\n const synchronizedDriversMapping = driverKeys.reduce((acc, x) => {\n const {version, minBrowserVersion} = retrievedMapping[x];\n acc[version] = minBrowserVersion;\n return acc;\n }, {});\n Object.assign(mapping, synchronizedDriversMapping);\n await this.updateDriversMapping(mapping);\n return true;\n };\n\n do {\n const cds = await this.getChromedrivers(mapping);\n\n const missingVersions = {};\n for (const {version, minChromeVersion} of cds) {\n if (!minChromeVersion || mapping[version]) {\n continue;\n }\n const coercedVer = semver.coerce(version);\n if (!coercedVer || coercedVer.major < NEW_CD_VERSION_FORMAT_MAJOR_VERSION) {\n continue;\n }\n\n missingVersions[version] = minChromeVersion;\n }\n if (!_.isEmpty(missingVersions)) {\n this.log.info(`Found ${util.pluralize('Chromedriver', _.size(missingVersions), true)}, ` +\n `which ${_.size(missingVersions) === 1 ? 'is' : 'are'} missing in the list of known versions: ` +\n JSON.stringify(missingVersions));\n await this.updateDriversMapping(Object.assign(mapping, missingVersions));\n }\n\n if (this.disableBuildCheck) {\n if (_.isEmpty(cds)) {\n this.log.errorAndThrow(`There must be at least one Chromedriver executable available for use if ` +\n `'chromedriverDisableBuildCheck' capability is set to 'true'`);\n }\n const {version, executable} = cds[0];\n this.log.warn(`Chrome build check disabled. Using most recent Chromedriver version (${version}, at '${executable}')`);\n this.log.warn(`If this is wrong, set 'chromedriverDisableBuildCheck' capability to 'false'`);\n return executable;\n }\n\n const chromeVersion = await this.getChromeVersion();\n if (!chromeVersion) {\n // unable to get the chrome version\n if (_.isEmpty(cds)) {\n this.log.errorAndThrow(`There must be at least one Chromedriver executable available for use if ` +\n `the current Chrome version cannot be determined`);\n }\n const {version, executable} = cds[0];\n this.log.warn(`Unable to discover Chrome version. Using Chromedriver ${version} at '${executable}'`);\n return executable;\n }\n this.log.debug(`Found Chrome bundle '${this.bundleId}' version '${chromeVersion}'`);\n\n const matchingDrivers = cds.filter(({minChromeVersion}) => {\n const minChromeVersionS = minChromeVersion && semver.coerce(minChromeVersion);\n if (!minChromeVersionS) {\n return false;\n }\n\n return chromeVersion.major > NEW_CD_VERSION_FORMAT_MAJOR_VERSION\n ? minChromeVersionS.major === chromeVersion.major\n : semver.gte(chromeVersion, minChromeVersionS);\n });\n if (_.isEmpty(matchingDrivers)) {\n if (this.storageClient && !didStorageSync) {\n try {\n if (await syncChromedrivers(chromeVersion)) {\n continue;\n }\n } catch (e) {\n this.log.warn(`Cannot synchronize local chromedrivers with the remote storage at ${CD_CDN}: ` +\n e.message);\n this.log.debug(e.stack);\n }\n }\n const autodownloadSuggestion =\n 'You could also try to enable automated chromedrivers download as ' +\n 'a possible workaround.';\n throw new Error(`No Chromedriver found that can automate Chrome '${chromeVersion}'.` +\n (this.storageClient ? '' : ` ${autodownloadSuggestion}`));\n }\n\n const binPath = matchingDrivers[0].executable;\n this.log.debug(`Found ${util.pluralize('executable', matchingDrivers.length, true)} ` +\n `capable of automating Chrome '${chromeVersion}'.\\nChoosing the most recent, '${binPath}'.`);\n this.log.debug('If a specific version is required, specify it with the `chromedriverExecutable`' +\n 'desired capability.');\n return binPath;\n // eslint-disable-next-line no-constant-condition\n } while (true);\n }\n\n async initChromedriverPath () {\n if (this.executableVerified) return; //eslint-disable-line curly\n\n // the executable might be set (if passed in)\n // or we might want to use the basic one installed with this driver\n // or we want to figure out the best one\n if (!this.chromedriver) {\n this.chromedriver = this.useSystemExecutable\n ? await getChromedriverBinaryPath()\n : await this.getCompatibleChromedriver();\n }\n\n if (!await fs.exists(this.chromedriver)) {\n throw new Error(`Trying to use a chromedriver binary at the path ` +\n `${this.chromedriver}, but it doesn't exist!`);\n }\n this.executableVerified = true;\n this.log.info(`Set chromedriver binary as: ${this.chromedriver}`);\n }\n\n syncProtocol (cdVersion = null) {\n const coercedVersion = semver.coerce(cdVersion);\n if (!coercedVersion || coercedVersion.major < MIN_CD_VERSION_WITH_W3C_SUPPORT) {\n this.log.debug(`Chromedriver v. ${cdVersion} does not fully support ${PROTOCOLS.W3C} protocol. ` +\n `Defaulting to ${PROTOCOLS.MJSONWP}`);\n return;\n }\n const chromeOptions = getCapValue(this.capabilities, 'chromeOptions', {});\n if (chromeOptions.w3c === false) {\n this.log.info(`Chromedriver v. ${cdVersion} supports ${PROTOCOLS.W3C} protocol, ` +\n `but ${PROTOCOLS.MJSONWP} one has been explicitly requested`);\n return;\n }\n this.desiredProtocol = PROTOCOLS.W3C;\n // given caps might not be properly prefixed\n // so we try to fix them in order to properly init\n // the new W3C session\n this.capabilities = toW3cCapNames(this.capabilities);\n }\n\n async start (caps, emitStartingState = true) {\n this.capabilities = _.cloneDeep(caps);\n\n // set the logging preferences to ALL the console logs\n this.capabilities.loggingPrefs = _.cloneDeep(getCapValue(caps, 'loggingPrefs', {}));\n if (_.isEmpty(this.capabilities.loggingPrefs.browser)) {\n this.capabilities.loggingPrefs.browser = 'ALL';\n }\n\n if (emitStartingState) {\n this.changeState(Chromedriver.STATE_STARTING);\n }\n\n const args = [`--port=${this.proxyPort}`];\n if (this.adb && this.adb.adbPort) {\n args.push(`--adb-port=${this.adb.adbPort}`);\n }\n if (_.isArray(this.cmdArgs)) {\n args.push(...this.cmdArgs);\n }\n if (this.logPath) {\n args.push(`--log-path=${this.logPath}`);\n }\n if (this.disableBuildCheck) {\n args.push('--disable-build-check');\n }\n args.push('--verbose');\n // what are the process stdout/stderr conditions wherein we know that\n // the process has started to our satisfaction?\n const startDetector = (stdout) => stdout.startsWith('Starting ');\n\n let processIsAlive = false;\n let webviewVersion;\n try {\n await this.initChromedriverPath();\n await this.killAll();\n\n // set up our subprocess object\n this.proc = new SubProcess(this.chromedriver, args);\n processIsAlive = true;\n\n // handle log output\n this.proc.on('output', (stdout, stderr) => {\n // if the cd output is not printed, find the chrome version and print\n // will get a response like\n // DevTools response: {\n // \"Android-Package\": \"io.appium.sampleapp\",\n // \"Browser\": \"Chrome/55.0.2883.91\",\n // \"Protocol-Version\": \"1.2\",\n // \"User-Agent\": \"...\",\n // \"WebKit-Version\": \"537.36\"\n // }\n const out = stdout + stderr;\n let match = /\"Browser\": \"(.*)\"/.exec(out);\n if (match) {\n webviewVersion = match[1];\n this.log.debug(`Webview version: '${webviewVersion}'`);\n }\n\n // also print chromedriver version to logs\n // will output something like\n // Starting ChromeDriver 2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2) on port 9515\n match = /Starting ChromeDriver ([.\\d]+)/.exec(out);\n if (match) {\n this.log.debug(`Chromedriver version: '${match[1]}'`);\n this.syncProtocol(match[1]);\n }\n\n // give the output if it is requested\n if (this.verbose) {\n for (let line of (stdout || '').trim().split('\\n')) {\n if (!line.trim().length) continue; // eslint-disable-line curly\n this.log.debug(`[STDOUT] ${line}`);\n }\n for (let line of (stderr || '').trim().split('\\n')) {\n if (!line.trim().length) continue; // eslint-disable-line curly\n this.log.error(`[STDERR] ${line}`);\n }\n }\n });\n\n // handle out-of-bound exit by simply emitting a stopped state\n this.proc.on('exit', (code, signal) => {\n processIsAlive = false;\n if (this.state !== Chromedriver.STATE_STOPPED &&\n this.state !== Chromedriver.STATE_STOPPING &&\n this.state !== Chromedriver.STATE_RESTARTING) {\n const msg = `Chromedriver exited unexpectedly with code ${code}, signal ${signal}`;\n this.log.error(msg);\n this.changeState(Chromedriver.STATE_STOPPED);\n }\n });\n this.log.info(`Spawning chromedriver with: ${this.chromedriver} ${args.join(' ')}`);\n // start subproc and wait for startDetector\n await this.proc.start(startDetector);\n await this.waitForOnline();\n await this.startSession();\n } catch (e) {\n this.log.debug(e);\n this.emit(Chromedriver.EVENT_ERROR, e);\n // just because we had an error doesn't mean the chromedriver process\n // finished; we should clean up if necessary\n if (processIsAlive) {\n await this.proc.stop();\n }\n\n let message = '';\n // often the user's Chrome version is not supported by the version of Chromedriver\n if (e.message.includes('Chrome version must be')) {\n message += 'Unable to automate Chrome version because it is not supported by this version of Chromedriver.\\n';\n if (webviewVersion) {\n message += `Chrome version on the device: ${webviewVersion}\\n`;\n }\n const versionsSupportedByDriver = /Chrome version must be (.+)/.exec(e.message)?.[1] || '';\n if (versionsSupportedByDriver) {\n message += `Chromedriver supports Chrome version(s): ${versionsSupportedByDriver}\\n`;\n }\n message += 'Check the driver tutorial for troubleshooting.\\n';\n }\n\n message += e.message;\n this.log.errorAndThrow(message);\n }\n }\n\n sessionId () {\n return this.state === Chromedriver.STATE_ONLINE ? this.jwproxy.sessionId : null;\n }\n\n async restart () {\n this.log.info('Restarting chromedriver');\n if (this.state !== Chromedriver.STATE_ONLINE) {\n throw new Error(\"Can't restart when we're not online\");\n }\n this.changeState(Chromedriver.STATE_RESTARTING);\n await this.stop(false);\n await this.start(this.capabilities, false);\n }\n\n async waitForOnline () {\n // we need to make sure that CD hasn't crashed\n let chromedriverStopped = false;\n await retryInterval(20, 200, async () => {\n if (this.state === Chromedriver.STATE_STOPPED) {\n // we are either stopped or stopping, so something went wrong\n chromedriverStopped = true;\n return;\n }\n await this.getStatus();\n });\n if (chromedriverStopped) {\n throw new Error('ChromeDriver crashed during startup.');\n }\n }\n\n async getStatus () {\n return await this.jwproxy.command('/status', 'GET');\n }\n\n async startSession () {\n const sessionCaps = this.desiredProtocol === PROTOCOLS.W3C\n ? {capabilities: {alwaysMatch: this.capabilities}}\n : {desiredCapabilities: this.capabilities};\n this.log.info(`Starting ${this.desiredProtocol} Chromedriver session with capabilities: ` +\n JSON.stringify(sessionCaps, null, 2));\n await this.jwproxy.command('/session', 'POST', sessionCaps);\n this.log.prefix = generateLogPrefix(this, this.jwproxy.sessionId);\n this.changeState(Chromedriver.STATE_ONLINE);\n }\n\n async stop (emitStates = true) {\n if (emitStates) {\n this.changeState(Chromedriver.STATE_STOPPING);\n }\n const runSafeStep = async (f) => {\n try {\n return await f();\n } catch (e) {\n this.log.warn(e.message);\n this.log.debug(e.stack);\n }\n };\n await runSafeStep(() => this.jwproxy.command('', 'DELETE'));\n await runSafeStep(() => this.proc.stop('SIGTERM', 20000));\n this.log.prefix = generateLogPrefix(this);\n if (emitStates) {\n this.changeState(Chromedriver.STATE_STOPPED);\n }\n }\n\n changeState (state) {\n this.state = state;\n this.log.debug(`Changed state to '${state}'`);\n this.emit(Chromedriver.EVENT_CHANGED, {state});\n }\n\n async sendCommand (url, method, body) {\n return await this.jwproxy.command(url, method, body);\n }\n\n async proxyReq (req, res) {\n return await this.jwproxy.proxyReqRes(req, res);\n }\n\n async killAll () {\n let cmd = system.isWindows()\n ? `wmic process where \"commandline like '%chromedriver.exe%--port=${this.proxyPort}%'\" delete`\n : `pkill -15 -f \"${this.chromedriver}.*--port=${this.proxyPort}\"`;\n this.log.debug(`Killing any old chromedrivers, running: ${cmd}`);\n try {\n await (B.promisify(cp.exec))(cmd);\n this.log.debug('Successfully cleaned up old chromedrivers');\n } catch (err) {\n this.log.warn('No old chromedrivers seem to exist');\n }\n\n if (this.adb) {\n const udidIndex = this.adb.executable.defaultArgs.findIndex((item) => item === '-s');\n const udid = udidIndex > -1 ? this.adb.executable.defaultArgs[udidIndex + 1] : null;\n\n if (udid) {\n this.log.debug(`Cleaning this device's adb forwarded port socket connections: ${udid}`);\n } else {\n this.log.debug(`Cleaning any old adb forwarded port socket connections`);\n }\n\n try {\n for (let conn of await this.adb.getForwardList()) {\n // chromedriver will ask ADB to forward a port like \"deviceId tcp:port localabstract:webview_devtools_remote_port\"\n if (!(conn.includes('webview_devtools') && (!udid || conn.includes(udid)))) {\n continue;\n }\n\n let params = conn.split(/\\s+/);\n if (params.length > 1) {\n await this.adb.removePortForward(params[1].replace(/[\\D]*/, ''));\n }\n }\n } catch (err) {\n this.log.warn(`Unable to clean forwarded ports. Error: '${err.message}'. Continuing.`);\n }\n }\n }\n\n async hasWorkingWebview () {\n // sometimes chromedriver stops automating webviews. this method runs a\n // simple command to determine our state, and responds accordingly\n try {\n await this.jwproxy.command('/url', 'GET');\n return true;\n } catch (e) {\n return false;\n }\n }\n}\n\nChromedriver.EVENT_ERROR = 'chromedriver_error';\nChromedriver.EVENT_CHANGED = 'stateChanged';\nChromedriver.STATE_STOPPED = 'stopped';\nChromedriver.STATE_STARTING = 'starting';\nChromedriver.STATE_ONLINE = 'online';\nChromedriver.STATE_STOPPING = 'stopping';\nChromedriver.STATE_RESTARTING = 'restarting';\n\nexport { Chromedriver };\nexport default Chromedriver;\n"],"mappings":"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"}
1
+ {"version":3,"file":"chromedriver.js","sourceRoot":"","sources":["../../lib/chromedriver.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export function install(): Promise<void>;
2
+ export function doInstall(): Promise<void>;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../lib/install.js"],"names":[],"mappings":"AAkCA,yCASC;AAED,2CAEC"}
@@ -1,43 +1,50 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.doInstall = doInstall;
8
- exports.install = install;
9
- require("source-map-support/register");
10
- var _support = require("@appium/support");
11
- var _storageClient = _interopRequireDefault(require("./storage-client"));
12
- var _utils = require("./utils");
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.doInstall = exports.install = void 0;
7
+ const support_1 = require("@appium/support");
8
+ const storage_client_1 = __importDefault(require("./storage-client"));
9
+ const utils_1 = require("./utils");
13
10
  const DOWNLOAD_TIMEOUT_MS = 15 * 1000;
14
11
  const LATEST_VERSION = 'LATEST';
12
+ /**
13
+ *
14
+ * @param {string} ver
15
+ */
15
16
  async function formatCdVersion(ver) {
16
- return ver === LATEST_VERSION ? (await (0, _utils.retrieveData)(`${_utils.CD_CDN}/LATEST_RELEASE`, {
17
- 'user-agent': 'appium',
18
- accept: '*/*'
19
- }, {
20
- timeout: DOWNLOAD_TIMEOUT_MS
21
- })).trim() : ver;
17
+ return ver === LATEST_VERSION
18
+ ? (await (0, utils_1.retrieveData)(`${utils_1.CD_CDN}/LATEST_RELEASE`, {
19
+ 'user-agent': 'appium',
20
+ accept: '*/*',
21
+ }, { timeout: DOWNLOAD_TIMEOUT_MS })).trim()
22
+ : ver;
22
23
  }
24
+ /**
25
+ *
26
+ * @param {string} platformName
27
+ */
23
28
  async function prepareChromedriverDir(platformName) {
24
- const chromedriverDir = (0, _utils.getChromedriverDir)(platformName);
25
- if (!(await _support.fs.exists(chromedriverDir))) {
26
- await (0, _support.mkdirp)(chromedriverDir);
27
- }
28
- return chromedriverDir;
29
+ const chromedriverDir = (0, utils_1.getChromedriverDir)(platformName);
30
+ if (!await support_1.fs.exists(chromedriverDir)) {
31
+ await (0, support_1.mkdirp)(chromedriverDir);
32
+ }
33
+ return chromedriverDir;
29
34
  }
30
35
  async function install() {
31
- const osInfo = await (0, _utils.getOsInfo)();
32
- const client = new _storageClient.default({
33
- chromedriverDir: await prepareChromedriverDir(osInfo.name)
34
- });
35
- await client.syncDrivers({
36
- osInfo,
37
- versions: [await formatCdVersion(_utils.CD_VER)]
38
- });
36
+ const osInfo = await (0, utils_1.getOsInfo)();
37
+ const client = new storage_client_1.default({
38
+ chromedriverDir: await prepareChromedriverDir(osInfo.name),
39
+ });
40
+ await client.syncDrivers({
41
+ osInfo,
42
+ versions: [await formatCdVersion(utils_1.CD_VER)],
43
+ });
39
44
  }
45
+ exports.install = install;
40
46
  async function doInstall() {
41
- await install();
47
+ await install();
42
48
  }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJET1dOTE9BRF9USU1FT1VUX01TIiwiTEFURVNUX1ZFUlNJT04iLCJmb3JtYXRDZFZlcnNpb24iLCJ2ZXIiLCJyZXRyaWV2ZURhdGEiLCJDRF9DRE4iLCJhY2NlcHQiLCJ0aW1lb3V0IiwidHJpbSIsInByZXBhcmVDaHJvbWVkcml2ZXJEaXIiLCJwbGF0Zm9ybU5hbWUiLCJjaHJvbWVkcml2ZXJEaXIiLCJnZXRDaHJvbWVkcml2ZXJEaXIiLCJmcyIsImV4aXN0cyIsIm1rZGlycCIsImluc3RhbGwiLCJvc0luZm8iLCJnZXRPc0luZm8iLCJjbGllbnQiLCJDaHJvbWVkcml2ZXJTdG9yYWdlQ2xpZW50IiwibmFtZSIsInN5bmNEcml2ZXJzIiwidmVyc2lvbnMiLCJDRF9WRVIiLCJkb0luc3RhbGwiXSwic291cmNlcyI6WyIuLi8uLi9saWIvaW5zdGFsbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcywgbWtkaXJwIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBDaHJvbWVkcml2ZXJTdG9yYWdlQ2xpZW50IGZyb20gJy4vc3RvcmFnZS1jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ0RfQ0ROLCBDRF9WRVIsIHJldHJpZXZlRGF0YSwgZ2V0T3NJbmZvLCBnZXRDaHJvbWVkcml2ZXJEaXIsXG59IGZyb20gJy4vdXRpbHMnO1xuXG5cbmNvbnN0IERPV05MT0FEX1RJTUVPVVRfTVMgPSAxNSAqIDEwMDA7XG5jb25zdCBMQVRFU1RfVkVSU0lPTiA9ICdMQVRFU1QnO1xuXG5hc3luYyBmdW5jdGlvbiBmb3JtYXRDZFZlcnNpb24gKHZlcikge1xuICByZXR1cm4gdmVyID09PSBMQVRFU1RfVkVSU0lPTlxuICAgID8gKGF3YWl0IHJldHJpZXZlRGF0YShgJHtDRF9DRE59L0xBVEVTVF9SRUxFQVNFYCwge1xuICAgICAgJ3VzZXItYWdlbnQnOiAnYXBwaXVtJyxcbiAgICAgIGFjY2VwdDogJyovKicsXG4gICAgfSwgeyB0aW1lb3V0OiBET1dOTE9BRF9USU1FT1VUX01TIH0pKS50cmltKClcbiAgICA6IHZlcjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUNocm9tZWRyaXZlckRpciAocGxhdGZvcm1OYW1lKSB7XG4gIGNvbnN0IGNocm9tZWRyaXZlckRpciA9IGdldENocm9tZWRyaXZlckRpcihwbGF0Zm9ybU5hbWUpO1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhjaHJvbWVkcml2ZXJEaXIpKSB7XG4gICAgYXdhaXQgbWtkaXJwKGNocm9tZWRyaXZlckRpcik7XG4gIH1cbiAgcmV0dXJuIGNocm9tZWRyaXZlckRpcjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbCAoKSB7XG4gIGNvbnN0IG9zSW5mbyA9IGF3YWl0IGdldE9zSW5mbygpO1xuICBjb25zdCBjbGllbnQgPSBuZXcgQ2hyb21lZHJpdmVyU3RvcmFnZUNsaWVudCh7XG4gICAgY2hyb21lZHJpdmVyRGlyOiBhd2FpdCBwcmVwYXJlQ2hyb21lZHJpdmVyRGlyKG9zSW5mby5uYW1lKSxcbiAgfSk7XG4gIGF3YWl0IGNsaWVudC5zeW5jRHJpdmVycyh7XG4gICAgb3NJbmZvLFxuICAgIHZlcnNpb25zOiBbYXdhaXQgZm9ybWF0Q2RWZXJzaW9uKENEX1ZFUildLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZG9JbnN0YWxsICgpIHtcbiAgYXdhaXQgaW5zdGFsbCgpO1xufVxuXG5leHBvcnQgeyBpbnN0YWxsLCBkb0luc3RhbGwgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBS0EsTUFBTUEsbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDckMsTUFBTUMsY0FBYyxHQUFHLFFBQVE7QUFFL0IsZUFBZUMsZUFBZSxDQUFFQyxHQUFHLEVBQUU7RUFDbkMsT0FBT0EsR0FBRyxLQUFLRixjQUFjLEdBQ3pCLENBQUMsTUFBTSxJQUFBRyxtQkFBWSxFQUFFLEdBQUVDLGFBQU8saUJBQWdCLEVBQUU7SUFDaEQsWUFBWSxFQUFFLFFBQVE7SUFDdEJDLE1BQU0sRUFBRTtFQUNWLENBQUMsRUFBRTtJQUFFQyxPQUFPLEVBQUVQO0VBQW9CLENBQUMsQ0FBQyxFQUFFUSxJQUFJLEVBQUUsR0FDMUNMLEdBQUc7QUFDVDtBQUVBLGVBQWVNLHNCQUFzQixDQUFFQyxZQUFZLEVBQUU7RUFDbkQsTUFBTUMsZUFBZSxHQUFHLElBQUFDLHlCQUFrQixFQUFDRixZQUFZLENBQUM7RUFDeEQsSUFBSSxFQUFDLE1BQU1HLFdBQUUsQ0FBQ0MsTUFBTSxDQUFDSCxlQUFlLENBQUMsR0FBRTtJQUNyQyxNQUFNLElBQUFJLGVBQU0sRUFBQ0osZUFBZSxDQUFDO0VBQy9CO0VBQ0EsT0FBT0EsZUFBZTtBQUN4QjtBQUVBLGVBQWVLLE9BQU8sR0FBSTtFQUN4QixNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxnQkFBUyxHQUFFO0VBQ2hDLE1BQU1DLE1BQU0sR0FBRyxJQUFJQyxzQkFBeUIsQ0FBQztJQUMzQ1QsZUFBZSxFQUFFLE1BQU1GLHNCQUFzQixDQUFDUSxNQUFNLENBQUNJLElBQUk7RUFDM0QsQ0FBQyxDQUFDO0VBQ0YsTUFBTUYsTUFBTSxDQUFDRyxXQUFXLENBQUM7SUFDdkJMLE1BQU07SUFDTk0sUUFBUSxFQUFFLENBQUMsTUFBTXJCLGVBQWUsQ0FBQ3NCLGFBQU0sQ0FBQztFQUMxQyxDQUFDLENBQUM7QUFDSjtBQUVBLGVBQWVDLFNBQVMsR0FBSTtFQUMxQixNQUFNVCxPQUFPLEVBQUU7QUFDakIifQ==
49
+ exports.doInstall = doInstall;
50
+ //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","names":["DOWNLOAD_TIMEOUT_MS","LATEST_VERSION","formatCdVersion","ver","retrieveData","CD_CDN","accept","timeout","trim","prepareChromedriverDir","platformName","chromedriverDir","getChromedriverDir","fs","exists","mkdirp","install","osInfo","getOsInfo","client","ChromedriverStorageClient","name","syncDrivers","versions","CD_VER","doInstall"],"sources":["../../lib/install.js"],"sourcesContent":["import { fs, mkdirp } from '@appium/support';\nimport ChromedriverStorageClient from './storage-client';\nimport {\n CD_CDN, CD_VER, retrieveData, getOsInfo, getChromedriverDir,\n} from './utils';\n\n\nconst DOWNLOAD_TIMEOUT_MS = 15 * 1000;\nconst LATEST_VERSION = 'LATEST';\n\nasync function formatCdVersion (ver) {\n return ver === LATEST_VERSION\n ? (await retrieveData(`${CD_CDN}/LATEST_RELEASE`, {\n 'user-agent': 'appium',\n accept: '*/*',\n }, { timeout: DOWNLOAD_TIMEOUT_MS })).trim()\n : ver;\n}\n\nasync function prepareChromedriverDir (platformName) {\n const chromedriverDir = getChromedriverDir(platformName);\n if (!await fs.exists(chromedriverDir)) {\n await mkdirp(chromedriverDir);\n }\n return chromedriverDir;\n}\n\nasync function install () {\n const osInfo = await getOsInfo();\n const client = new ChromedriverStorageClient({\n chromedriverDir: await prepareChromedriverDir(osInfo.name),\n });\n await client.syncDrivers({\n osInfo,\n versions: [await formatCdVersion(CD_VER)],\n });\n}\n\nasync function doInstall () {\n await install();\n}\n\nexport { install, doInstall };\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAKA,MAAMA,mBAAmB,GAAG,EAAE,GAAG,IAAI;AACrC,MAAMC,cAAc,GAAG,QAAQ;AAE/B,eAAeC,eAAe,CAAEC,GAAG,EAAE;EACnC,OAAOA,GAAG,KAAKF,cAAc,GACzB,CAAC,MAAM,IAAAG,mBAAY,EAAE,GAAEC,aAAO,iBAAgB,EAAE;IAChD,YAAY,EAAE,QAAQ;IACtBC,MAAM,EAAE;EACV,CAAC,EAAE;IAAEC,OAAO,EAAEP;EAAoB,CAAC,CAAC,EAAEQ,IAAI,EAAE,GAC1CL,GAAG;AACT;AAEA,eAAeM,sBAAsB,CAAEC,YAAY,EAAE;EACnD,MAAMC,eAAe,GAAG,IAAAC,yBAAkB,EAACF,YAAY,CAAC;EACxD,IAAI,EAAC,MAAMG,WAAE,CAACC,MAAM,CAACH,eAAe,CAAC,GAAE;IACrC,MAAM,IAAAI,eAAM,EAACJ,eAAe,CAAC;EAC/B;EACA,OAAOA,eAAe;AACxB;AAEA,eAAeK,OAAO,GAAI;EACxB,MAAMC,MAAM,GAAG,MAAM,IAAAC,gBAAS,GAAE;EAChC,MAAMC,MAAM,GAAG,IAAIC,sBAAyB,CAAC;IAC3CT,eAAe,EAAE,MAAMF,sBAAsB,CAACQ,MAAM,CAACI,IAAI;EAC3D,CAAC,CAAC;EACF,MAAMF,MAAM,CAACG,WAAW,CAAC;IACvBL,MAAM;IACNM,QAAQ,EAAE,CAAC,MAAMrB,eAAe,CAACsB,aAAM,CAAC;EAC1C,CAAC,CAAC;AACJ;AAEA,eAAeC,SAAS,GAAI;EAC1B,MAAMT,OAAO,EAAE;AACjB"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../lib/install.js"],"names":[],"mappings":";;;;;;AAAA,6CAA6C;AAC7C,sEAAyD;AACzD,mCAEiB;AAGjB,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAChC;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAE,GAAG;IACjC,OAAO,GAAG,KAAK,cAAc;QAC3B,CAAC,CAAC,CAAC,MAAM,IAAA,oBAAY,EAAC,GAAG,cAAM,iBAAiB,EAAE;YAChD,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,KAAK;SACd,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QAC5C,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAE,YAAY;IACjD,MAAM,eAAe,GAAG,IAAA,0BAAkB,EAAC,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;QACrC,MAAM,IAAA,gBAAM,EAAC,eAAe,CAAC,CAAC;KAC/B;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,OAAO;IACpB,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,GAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,wBAAyB,CAAC;QAC3C,eAAe,EAAE,MAAM,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;KAC3D,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,WAAW,CAAC;QACvB,MAAM;QACN,QAAQ,EAAE,CAAC,MAAM,eAAe,CAAC,cAAM,CAAC,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAMQ,0BAAO;AAJhB,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAEiB,8BAAS"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ *
3
+ * @param {any} originalCaps
4
+ * @returns {Record<string,any>}
5
+ */
6
+ export function toW3cCapNames(originalCaps?: any): Record<string, any>;
7
+ /**
8
+ *
9
+ * @param {Record<string,any>} allCaps
10
+ * @param {string} rawCapName
11
+ * @param {any} defaultValue
12
+ * @returns
13
+ */
14
+ export function getCapValue(allCaps: Record<string, any> | undefined, rawCapName: string, defaultValue: any): any;
15
+ //# sourceMappingURL=protocol-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-helpers.d.ts","sourceRoot":"","sources":["../../lib/protocol-helpers.js"],"names":[],"mappings":"AA+BA;;;;GAIG;AACH,6CAHW,GAAG,GACD,OAAO,MAAM,EAAC,GAAG,CAAC,CAO9B;AA1BD;;;;;;GAMG;AACH,kFAJW,MAAM,gBACN,GAAG,OAUb"}
@@ -1,30 +1,47 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getCapValue = getCapValue;
8
- exports.toW3cCapNames = toW3cCapNames;
9
- require("source-map-support/register");
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
- var _baseDriver = require("@appium/base-driver");
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.getCapValue = exports.toW3cCapNames = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const base_driver_1 = require("@appium/base-driver");
12
9
  const W3C_PREFIX = 'goog:';
10
+ /**
11
+ *
12
+ * @param {string} capName
13
+ */
13
14
  function toW3cCapName(capName) {
14
- return _lodash.default.isString(capName) && !capName.includes(':') && !(0, _baseDriver.isStandardCap)(capName) ? `${W3C_PREFIX}${capName}` : capName;
15
+ return (lodash_1.default.isString(capName) && !capName.includes(':') && !(0, base_driver_1.isStandardCap)(capName))
16
+ ? `${W3C_PREFIX}${capName}`
17
+ : capName;
15
18
  }
19
+ /**
20
+ *
21
+ * @param {Record<string,any>} allCaps
22
+ * @param {string} rawCapName
23
+ * @param {any} defaultValue
24
+ * @returns
25
+ */
16
26
  function getCapValue(allCaps = {}, rawCapName, defaultValue) {
17
- for (const [capName, capValue] of _lodash.default.toPairs(allCaps)) {
18
- if (toW3cCapName(capName) === toW3cCapName(rawCapName)) {
19
- return capValue;
27
+ for (const [capName, capValue] of lodash_1.default.toPairs(allCaps)) {
28
+ if (toW3cCapName(capName) === toW3cCapName(rawCapName)) {
29
+ return capValue;
30
+ }
20
31
  }
21
- }
22
- return defaultValue;
32
+ return defaultValue;
23
33
  }
34
+ exports.getCapValue = getCapValue;
35
+ /**
36
+ *
37
+ * @param {any} originalCaps
38
+ * @returns {Record<string,any>}
39
+ */
24
40
  function toW3cCapNames(originalCaps = {}) {
25
- return _lodash.default.reduce(originalCaps, (acc, value, key) => {
26
- acc[toW3cCapName(key)] = value;
27
- return acc;
28
- }, {});
41
+ return lodash_1.default.reduce(originalCaps, (acc, value, key) => {
42
+ acc[toW3cCapName(key)] = value;
43
+ return acc;
44
+ }, /** @type {Record<string,any>} */ ({}));
29
45
  }
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXM0NfUFJFRklYIiwidG9XM2NDYXBOYW1lIiwiY2FwTmFtZSIsIl8iLCJpc1N0cmluZyIsImluY2x1ZGVzIiwiaXNTdGFuZGFyZENhcCIsImdldENhcFZhbHVlIiwiYWxsQ2FwcyIsInJhd0NhcE5hbWUiLCJkZWZhdWx0VmFsdWUiLCJjYXBWYWx1ZSIsInRvUGFpcnMiLCJ0b1czY0NhcE5hbWVzIiwib3JpZ2luYWxDYXBzIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJrZXkiXSwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdG9jb2wtaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaXNTdGFuZGFyZENhcCB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5jb25zdCBXM0NfUFJFRklYID0gJ2dvb2c6JztcblxuZnVuY3Rpb24gdG9XM2NDYXBOYW1lIChjYXBOYW1lKSB7XG4gIHJldHVybiAoXy5pc1N0cmluZyhjYXBOYW1lKSAmJiAhY2FwTmFtZS5pbmNsdWRlcygnOicpICYmICFpc1N0YW5kYXJkQ2FwKGNhcE5hbWUpKVxuICAgID8gYCR7VzNDX1BSRUZJWH0ke2NhcE5hbWV9YFxuICAgIDogY2FwTmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwVmFsdWUgKGFsbENhcHMgPSB7fSwgcmF3Q2FwTmFtZSwgZGVmYXVsdFZhbHVlKSB7XG4gIGZvciAoY29uc3QgW2NhcE5hbWUsIGNhcFZhbHVlXSBvZiBfLnRvUGFpcnMoYWxsQ2FwcykpIHtcbiAgICBpZiAodG9XM2NDYXBOYW1lKGNhcE5hbWUpID09PSB0b1czY0NhcE5hbWUocmF3Q2FwTmFtZSkpIHtcbiAgICAgIHJldHVybiBjYXBWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdG9XM2NDYXBOYW1lcyAob3JpZ2luYWxDYXBzID0ge30pIHtcbiAgcmV0dXJuIF8ucmVkdWNlKG9yaWdpbmFsQ2FwcywgKGFjYywgdmFsdWUsIGtleSkgPT4ge1xuICAgIGFjY1t0b1czY0NhcE5hbWUoa2V5KV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCB7IHRvVzNjQ2FwTmFtZXMsIGdldENhcFZhbHVlIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFFQSxNQUFNQSxVQUFVLEdBQUcsT0FBTztBQUUxQixTQUFTQyxZQUFZLENBQUVDLE9BQU8sRUFBRTtFQUM5QixPQUFRQyxlQUFDLENBQUNDLFFBQVEsQ0FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQ0EsT0FBTyxDQUFDRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBQyx5QkFBYSxFQUFDSixPQUFPLENBQUMsR0FDM0UsR0FBRUYsVUFBVyxHQUFFRSxPQUFRLEVBQUMsR0FDekJBLE9BQU87QUFDYjtBQUVBLFNBQVNLLFdBQVcsQ0FBRUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFQyxVQUFVLEVBQUVDLFlBQVksRUFBRTtFQUM1RCxLQUFLLE1BQU0sQ0FBQ1IsT0FBTyxFQUFFUyxRQUFRLENBQUMsSUFBSVIsZUFBQyxDQUFDUyxPQUFPLENBQUNKLE9BQU8sQ0FBQyxFQUFFO0lBQ3BELElBQUlQLFlBQVksQ0FBQ0MsT0FBTyxDQUFDLEtBQUtELFlBQVksQ0FBQ1EsVUFBVSxDQUFDLEVBQUU7TUFDdEQsT0FBT0UsUUFBUTtJQUNqQjtFQUNGO0VBQ0EsT0FBT0QsWUFBWTtBQUNyQjtBQUVBLFNBQVNHLGFBQWEsQ0FBRUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ3pDLE9BQU9YLGVBQUMsQ0FBQ1ksTUFBTSxDQUFDRCxZQUFZLEVBQUUsQ0FBQ0UsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEdBQUcsS0FBSztJQUNqREYsR0FBRyxDQUFDZixZQUFZLENBQUNpQixHQUFHLENBQUMsQ0FBQyxHQUFHRCxLQUFLO0lBQzlCLE9BQU9ELEdBQUc7RUFDWixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUiJ9
46
+ exports.toW3cCapNames = toW3cCapNames;
47
+ //# sourceMappingURL=protocol-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-helpers.js","names":["W3C_PREFIX","toW3cCapName","capName","_","isString","includes","isStandardCap","getCapValue","allCaps","rawCapName","defaultValue","capValue","toPairs","toW3cCapNames","originalCaps","reduce","acc","value","key"],"sources":["../../lib/protocol-helpers.js"],"sourcesContent":["import _ from 'lodash';\nimport { isStandardCap } from '@appium/base-driver';\n\nconst W3C_PREFIX = 'goog:';\n\nfunction toW3cCapName (capName) {\n return (_.isString(capName) && !capName.includes(':') && !isStandardCap(capName))\n ? `${W3C_PREFIX}${capName}`\n : capName;\n}\n\nfunction getCapValue (allCaps = {}, rawCapName, defaultValue) {\n for (const [capName, capValue] of _.toPairs(allCaps)) {\n if (toW3cCapName(capName) === toW3cCapName(rawCapName)) {\n return capValue;\n }\n }\n return defaultValue;\n}\n\nfunction toW3cCapNames (originalCaps = {}) {\n return _.reduce(originalCaps, (acc, value, key) => {\n acc[toW3cCapName(key)] = value;\n return acc;\n }, {});\n}\n\nexport { toW3cCapNames, getCapValue };\n"],"mappings":";;;;;;;;;AAAA;AACA;AAEA,MAAMA,UAAU,GAAG,OAAO;AAE1B,SAASC,YAAY,CAAEC,OAAO,EAAE;EAC9B,OAAQC,eAAC,CAACC,QAAQ,CAACF,OAAO,CAAC,IAAI,CAACA,OAAO,CAACG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAAC,yBAAa,EAACJ,OAAO,CAAC,GAC3E,GAAEF,UAAW,GAAEE,OAAQ,EAAC,GACzBA,OAAO;AACb;AAEA,SAASK,WAAW,CAAEC,OAAO,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAEC,YAAY,EAAE;EAC5D,KAAK,MAAM,CAACR,OAAO,EAAES,QAAQ,CAAC,IAAIR,eAAC,CAACS,OAAO,CAACJ,OAAO,CAAC,EAAE;IACpD,IAAIP,YAAY,CAACC,OAAO,CAAC,KAAKD,YAAY,CAACQ,UAAU,CAAC,EAAE;MACtD,OAAOE,QAAQ;IACjB;EACF;EACA,OAAOD,YAAY;AACrB;AAEA,SAASG,aAAa,CAAEC,YAAY,GAAG,CAAC,CAAC,EAAE;EACzC,OAAOX,eAAC,CAACY,MAAM,CAACD,YAAY,EAAE,CAACE,GAAG,EAAEC,KAAK,EAAEC,GAAG,KAAK;IACjDF,GAAG,CAACf,YAAY,CAACiB,GAAG,CAAC,CAAC,GAAGD,KAAK;IAC9B,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR"}
1
+ {"version":3,"file":"protocol-helpers.js","sourceRoot":"","sources":["../../lib/protocol-helpers.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,qDAAoD;AAEpD,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B;;;GAGG;AACH,SAAS,YAAY,CAAE,OAAO;IAC5B,OAAO,CAAC,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAa,EAAC,OAAO,CAAC,CAAC;QAC/E,CAAC,CAAC,GAAG,UAAU,GAAG,OAAO,EAAE;QAC3B,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAE,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,YAAY;IAC1D,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACpD,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,UAAU,CAAC,EAAE;YACtD,OAAO,QAAQ,CAAC;SACjB;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAcuB,kCAAW;AAZnC;;;;GAIG;AACH,SAAS,aAAa,CAAE,YAAY,GAAG,EAAE;IACvC,OAAO,gBAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,iCAAiC,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAEQ,sCAAa"}
@@ -0,0 +1,119 @@
1
+ export default ChromedriverStorageClient;
2
+ export type SyncOptions = import('./types').SyncOptions;
3
+ export type OSInfo = import('./types').OSInfo;
4
+ export type ChromedriverDetails = import('./types').ChromedriverDetails;
5
+ export type ChromedriverDetailsMapping = import('./types').ChromedriverDetailsMapping;
6
+ declare class ChromedriverStorageClient {
7
+ /**
8
+ *
9
+ * @param {import('./types').ChromedriverStorageClientOpts} args
10
+ */
11
+ constructor(args?: import('./types').ChromedriverStorageClientOpts);
12
+ chromedriverDir: string;
13
+ timeout: number;
14
+ /** @type {ChromedriverDetailsMapping} */
15
+ mapping: ChromedriverDetailsMapping;
16
+ /**
17
+ * @typedef {Object} AdditionalDriverDetails
18
+ * @property {string?} version - Chromedriver version
19
+ * or `null` if it cannot be found
20
+ * @property {string?} minBrowserVersion - The minimum browser version
21
+ * supported by chromedriver or `null` if it cannot be found
22
+ */
23
+ /**
24
+ * Gets additional chromedriver details from chromedriver
25
+ * release notes
26
+ *
27
+ * @param {string} content - Release notes of the corresponding chromedriver
28
+ * @returns {AdditionalDriverDetails}
29
+ */
30
+ parseNotes(content: string): {
31
+ /**
32
+ * - Chromedriver version
33
+ * or `null` if it cannot be found
34
+ */
35
+ version: string | null;
36
+ /**
37
+ * - The minimum browser version
38
+ * supported by chromedriver or `null` if it cannot be found
39
+ */
40
+ minBrowserVersion: string | null;
41
+ };
42
+ /**
43
+ * Downloads chromedriver release notes and puts them
44
+ * into the dictionary argument
45
+ *
46
+ * The method call mutates by merging `AdditionalDriverDetails`
47
+ * @param {string} driverKey - Driver version plus archive name
48
+ * @param {string} notesUrl - The URL of chromedriver notes
49
+ * @param {ChromedriverDetails} infoDict - The dictionary containing driver info.
50
+ * @throws {Error} if the release notes cannot be downloaded
51
+ */
52
+ retrieveAdditionalDriverInfo(driverKey: string, notesUrl: string, infoDict: ChromedriverDetails): Promise<void>;
53
+ /**
54
+ * Parses chromedriver storage XML and stores
55
+ * the parsed results into `this.mapping`
56
+ *
57
+ * @param {Document} doc - The DOM representation
58
+ * of the chromedriver storage XML
59
+ * @param {boolean} shouldParseNotes [true] - If set to `true`
60
+ * then additional drivers information is going to be parsed
61
+ * and assigned to `this.mapping`
62
+ */
63
+ parseStorageXml(doc: Document, shouldParseNotes?: boolean): Promise<void>;
64
+ /**
65
+ * Retrieves chromedriver mapping from the storage
66
+ *
67
+ * @param {boolean} shouldParseNotes [true] - if set to `true`
68
+ * then additional chromedrivers info is going to be retrieved and
69
+ * parsed from release notes
70
+ * @returns {Promise<ChromedriverDetailsMapping>}
71
+ */
72
+ retrieveMapping(shouldParseNotes?: boolean): Promise<ChromedriverDetailsMapping>;
73
+ /**
74
+ * Extracts downloaded chromedriver archive
75
+ * into the given destination
76
+ *
77
+ * @param {string} src - The source archive path
78
+ * @param {string} dst - The destination chromedriver path
79
+ */
80
+ unzipDriver(src: string, dst: string): Promise<void>;
81
+ /**
82
+ * Filters `this.mapping` to only select matching
83
+ * chromedriver entries by operating system information
84
+ * and/or additional synchronization options (if provided)
85
+ *
86
+ * @param {OSInfo} osInfo
87
+ * @param {SyncOptions} opts
88
+ * @returns {Array<String>} The list of filtered chromedriver
89
+ * entry names (version/archive name)
90
+ */
91
+ selectMatchingDrivers(osInfo: OSInfo, opts?: SyncOptions): Array<string>;
92
+ /**
93
+ * Retrieves the given chromedriver from the storage
94
+ * and unpacks it into `this.chromedriverDir` folder
95
+ *
96
+ * @param {number} index - The unique driver index
97
+ * @param {string} driverKey - The driver key in `this.mapping`
98
+ * @param {string} archivesRoot - The temporary folder path to extract
99
+ * downloaded archives to
100
+ * @param {boolean} isStrict [true] - Whether to throw an error (`true`)
101
+ * or return a boolean result if the driver retrieval process fails
102
+ * @throws {Error} if there was a failure while retrieving the driver
103
+ * and `isStrict` is set to `true`
104
+ * @returns {Promise<boolean>} if `true` then the chromedriver is successfully
105
+ * downloaded and extracted.
106
+ */
107
+ retrieveDriver(index: number, driverKey: string, archivesRoot: string, isStrict?: boolean): Promise<boolean>;
108
+ /**
109
+ * Retrieves chromedrivers from the remote storage
110
+ * to the local file system
111
+ *
112
+ * @param {SyncOptions} opts
113
+ * @throws {Error} if there was a problem while retrieving
114
+ * the drivers
115
+ * @returns {Promise<string[]>} The list of successfully synchronized driver keys
116
+ */
117
+ syncDrivers(opts?: SyncOptions): Promise<string[]>;
118
+ }
119
+ //# sourceMappingURL=storage-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-client.d.ts","sourceRoot":"","sources":["../../lib/storage-client.js"],"names":[],"mappings":";0BAqea,OAAO,SAAS,EAAE,WAAW;qBAC7B,OAAO,SAAS,EAAE,MAAM;kCACxB,OAAO,SAAS,EAAE,mBAAmB;yCACrC,OAAO,SAAS,EAAE,0BAA0B;AAvZzD;IACE;;;OAGG;IACH,mBAFW,OAAO,SAAS,EAAE,6BAA6B,EAQzD;IAJC,wBAAsC;IACtC,gBAAsB;IACtB,yCAAyC;IACzC,SADW,0BAA0B,CACpB;IAGnB;;;;;;OAMG;IAEH;;;;;;OAMG;IACH,oBAHW,MAAM;;;;;iBAVH,MAAM;;;;;2BAEN,MAAM;MAsBnB;IAED;;;;;;;;;OASG;IACH,wCALW,MAAM,YACN,MAAM,YACN,mBAAmB,iBAqB7B;IAED;;;;;;;;;OASG;IACH,qBANW,QAAQ,qBAER,OAAO,iBA0DjB;IAED;;;;;;;OAOG;IACH,mCALW,OAAO,GAGL,QAAQ,0BAA0B,CAAC,CAc/C;IAED;;;;;;OAMG;IACH,iBAHW,MAAM,OACN,MAAM,iBAwBhB;IAED;;;;;;;;;OASG;IACH,8BALW,MAAM,SACN,WAAW,GACT,aAAa,CAiFzB;IAED;;;;;;;;;;;;;;OAcG;IACH,sBAXW,MAAM,aACN,MAAM,gBACN,MAAM,aAEN,OAAO,GAIL,QAAQ,OAAO,CAAC,CA4C5B;IAED;;;;;;;;OAQG;IACH,mBALW,WAAW,GAGT,QAAQ,MAAM,EAAE,CAAC,CAqD7B;CACF"}