appium-android-driver 5.4.3 → 5.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +1 -9
- package/build/lib/android-helpers.js +10 -194
- package/build/lib/android-helpers.js.map +1 -1
- package/build/lib/bootstrap.js +4 -45
- package/build/lib/bootstrap.js.map +1 -1
- package/build/lib/commands/actions.js +3 -78
- package/build/lib/commands/actions.js.map +1 -1
- package/build/lib/commands/alert.js +3 -10
- package/build/lib/commands/alert.js.map +1 -1
- package/build/lib/commands/app-management.js +4 -32
- package/build/lib/commands/app-management.js.map +1 -1
- package/build/lib/commands/context.js +6 -78
- package/build/lib/commands/context.js.map +1 -1
- package/build/lib/commands/coverage.js +1 -6
- package/build/lib/commands/coverage.js.map +1 -1
- package/build/lib/commands/element.js +4 -47
- package/build/lib/commands/element.js.map +1 -1
- package/build/lib/commands/emu-console.js +2 -7
- package/build/lib/commands/emu-console.js.map +1 -1
- package/build/lib/commands/execute.js +1 -13
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/file-actions.js +3 -44
- package/build/lib/commands/file-actions.js.map +1 -1
- package/build/lib/commands/find.js +3 -16
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/general.js +4 -78
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/commands/ime.js +3 -14
- package/build/lib/commands/ime.js.map +1 -1
- package/build/lib/commands/index.js +3 -27
- package/build/lib/commands/index.js.map +1 -1
- package/build/lib/commands/intent.js +1 -40
- package/build/lib/commands/intent.js.map +1 -1
- package/build/lib/commands/log.js +3 -35
- package/build/lib/commands/log.js.map +1 -1
- package/build/lib/commands/media-projection.js +2 -47
- package/build/lib/commands/media-projection.js.map +1 -1
- package/build/lib/commands/network.js +4 -40
- package/build/lib/commands/network.js.map +1 -1
- package/build/lib/commands/performance.js +5 -57
- package/build/lib/commands/performance.js.map +1 -1
- package/build/lib/commands/recordscreen.js +1 -59
- package/build/lib/commands/recordscreen.js.map +1 -1
- package/build/lib/commands/shell.js +1 -15
- package/build/lib/commands/shell.js.map +1 -1
- package/build/lib/commands/streamscreen.js +7 -74
- package/build/lib/commands/streamscreen.js.map +1 -1
- package/build/lib/commands/system-bars.js +1 -23
- package/build/lib/commands/system-bars.js.map +1 -1
- package/build/lib/commands/touch.js +13 -79
- package/build/lib/commands/touch.js.map +1 -1
- package/build/lib/desired-caps.js +3 -4
- package/build/lib/desired-caps.js.map +1 -1
- package/build/lib/driver.js +8 -97
- package/build/lib/driver.js.map +1 -1
- package/build/lib/logger.js +1 -5
- package/build/lib/logger.js.map +1 -1
- package/build/lib/uiautomator.js +3 -24
- package/build/lib/uiautomator.js.map +1 -1
- package/build/lib/unlock-helpers.js +1 -61
- package/build/lib/unlock-helpers.js.map +1 -1
- package/build/lib/utils.js +1 -7
- package/build/lib/utils.js.map +1 -1
- package/build/lib/webview-helpers.js +1 -94
- package/build/lib/webview-helpers.js.map +1 -1
- package/lib/android-helpers.js +2 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","names":["MOMENT_FORMAT_ISO8601","commands","helpers","extensions","keys","_","isArray","join","params","text","replace","opts","unicodeKeyboard","doSendKeys","bootstrap","sendAction","getDeviceTime","format","log","debug","deviceTimestamp","adb","shell","trim","parsedTimestamp","moment","utc","isValid","warn","utcOffset","_tzm","mobileGetDeviceTime","getPageSource","back","isKeyboardShown","isSoftKeyboardPresent","hideKeyboard","openSettingsActivity","setting","appPackage","appActivity","getFocusedPackageAndActivity","waitForNotActivity","getWindowSize","getWindowRect","width","height","x","y","getCurrentActivity","getCurrentPackage","background","seconds","goToHome","sleepMs","thresholdMs","intervalMs","min","parseInt","progressCb","elapsedMs","progress","waitSecs","toFixed","progressPct","longSleep","args","_cachedActivityArgs","activateApp","ign","appWaitPackage","appWaitActivity","split","includes","pkg","activity","action","intentAction","category","intentCategory","flags","intentFlags","waitPkg","waitActivity","waitForLaunch","appWaitForLaunch","waitDuration","appWaitDuration","optionalIntentArguments","stopApp","user","userProfile","util","filterObject","JSON","stringify","startApp","getStrings","language","getDeviceLanguage","info","preprocessStringsMap","mapping","result","key","value","toPairs","isString","apkStrings","androidHelpers","pushStrings","launchApp","initAUT","startAUT","startActivity","dontStopAppOnReset","hasValue","reset","resetApp","Object","assign","fastReset","setContext","isChromeSession","startChromeSession","setUrl","uri","startUri","closeApp","forceStop","getDisplayDensity","out","val","isNaN","errorAndThrow","mobilePerformEditorAction","errors","InvalidArgumentError","performEditorAction","PERMISSION_ACTION","GRANT","REVOKE","mobileChangePermissions","permissions","actionFunc","toLower","permission","grantPermission","revokePermission","values","PERMISSIONS_TYPE","DENIED","GRANTED","REQUESTED","mobileGetPermissions","type","getReqPermissions","getGrantedPermissions","getDeniedPermissions","mobileGetNotifications","getNotifications","mobileListSms","getSmsList","mobileUnlock","strategy","timeoutMs","unlock","unlockKey","unlockType","unlockStrategy","unlockSuccessTimeout"],"sources":["../../../lib/commands/general.js"],"sourcesContent":["import _ from 'lodash';\nimport androidHelpers from '../android-helpers';\nimport { util } from 'appium/support';\nimport moment from 'moment';\nimport { longSleep } from 'asyncbox';\nimport { errors } from 'appium/driver';\n\nconst MOMENT_FORMAT_ISO8601 = 'YYYY-MM-DDTHH:mm:ssZ';\n\nlet commands = {}, helpers = {}, extensions = {};\n\ncommands.keys = async function keys (keys) {\n // Protocol sends an array; rethink approach\n keys = _.isArray(keys) ? keys.join('') : keys;\n let params = {\n text: keys,\n replace: false\n };\n if (this.opts.unicodeKeyboard) {\n params.unicodeKeyboard = true;\n }\n await this.doSendKeys(params);\n};\n\ncommands.doSendKeys = async function doSendKeys (params) {\n return await this.bootstrap.sendAction('setText', params);\n};\n\n/**\n * Retrieves the current device's timestamp.\n *\n * @param {string} format - The set of format specifiers. Read\n * https://momentjs.com/docs/ to get the full list of supported\n * datetime format specifiers. The default format is\n * `YYYY-MM-DDTHH:mm:ssZ`, which complies to ISO-8601\n * @return {string} Formatted datetime string or the raw command output if formatting fails\n */\ncommands.getDeviceTime = async function getDeviceTime (format = MOMENT_FORMAT_ISO8601) {\n this.log.debug('Attempting to capture android device date and time. ' +\n `The format specifier is '${format}'`);\n const deviceTimestamp = (await this.adb.shell(['date', '+%Y-%m-%dT%T%z'])).trim();\n this.log.debug(`Got device timestamp: ${deviceTimestamp}`);\n const parsedTimestamp = moment.utc(deviceTimestamp, 'YYYY-MM-DDTHH:mm:ssZZ');\n if (!parsedTimestamp.isValid()) {\n this.log.warn('Cannot parse the returned timestamp. Returning as is');\n return deviceTimestamp;\n }\n return parsedTimestamp.utcOffset(parsedTimestamp._tzm || 0).format(format);\n};\n\n/**\n * @typedef {Object} DeviceTimeOptions\n * @property {string} format [YYYY-MM-DDTHH:mm:ssZ] - See getDeviceTime#format\n */\n\n/**\n * Retrieves the current device time\n *\n * @param {DeviceTimeOptions} opts\n * @return {string} Formatted datetime string or the raw command output if formatting fails\n */\ncommands.mobileGetDeviceTime = async function mobileGetDeviceTime (opts = {}) {\n return await this.getDeviceTime(opts.format);\n};\n\ncommands.getPageSource = async function getPageSource () {\n return await this.bootstrap.sendAction('source');\n};\n\ncommands.back = async function back () {\n return await this.bootstrap.sendAction('pressBack');\n};\n\ncommands.isKeyboardShown = async function isKeyboardShown () {\n const {isKeyboardShown} = await this.adb.isSoftKeyboardPresent();\n return isKeyboardShown;\n};\n\ncommands.hideKeyboard = async function hideKeyboard () {\n return await this.adb.hideKeyboard();\n};\n\ncommands.openSettingsActivity = async function openSettingsActivity (setting) {\n let {appPackage, appActivity} = await this.adb.getFocusedPackageAndActivity();\n await this.adb.shell(['am', 'start', '-a', `android.settings.${setting}`]);\n await this.adb.waitForNotActivity(appPackage, appActivity, 5000);\n};\n\ncommands.getWindowSize = async function getWindowSize () {\n return await this.bootstrap.sendAction('getDeviceSize');\n};\n\n// For W3C\ncommands.getWindowRect = async function getWindowRect () {\n const { width, height } = await this.getWindowSize();\n return {\n width,\n height,\n x: 0,\n y: 0\n };\n};\n\ncommands.getCurrentActivity = async function getCurrentActivity () {\n return (await this.adb.getFocusedPackageAndActivity()).appActivity;\n};\n\ncommands.getCurrentPackage = async function getCurrentPackage () {\n return (await this.adb.getFocusedPackageAndActivity()).appPackage;\n};\n\ncommands.background = async function background (seconds) {\n if (seconds < 0) {\n // if user passes in a negative seconds value, interpret that as the instruction\n // to not bring the app back at all\n await this.adb.goToHome();\n return true;\n }\n let {appPackage, appActivity} = await this.adb.getFocusedPackageAndActivity();\n await this.adb.goToHome();\n\n // people can wait for a long time, so to be safe let's use the longSleep function and log\n // progress periodically.\n const sleepMs = seconds * 1000;\n const thresholdMs = 30 * 1000; // use the spin-wait for anything over this threshold\n // for our spin interval, use 1% of the total wait time, but nothing bigger than 30s\n const intervalMs = _.min([30 * 1000, parseInt(sleepMs / 100, 10)]);\n const progressCb = ({elapsedMs, progress}) => {\n const waitSecs = (elapsedMs / 1000).toFixed(0);\n const progressPct = (progress * 100).toFixed(2);\n this.log.debug(`Waited ${waitSecs}s so far (${progressPct}%)`);\n };\n await longSleep(sleepMs, {thresholdMs, intervalMs, progressCb});\n\n let args;\n if (this._cachedActivityArgs && this._cachedActivityArgs[`${appPackage}/${appActivity}`]) {\n // the activity was started with `startActivity`, so use those args to restart\n args = this._cachedActivityArgs[`${appPackage}/${appActivity}`];\n } else {\n try {\n this.log.debug(`Activating app '${appPackage}' in order to restore it`);\n await this.activateApp(appPackage);\n return true;\n } catch (ign) {}\n args = ((appPackage === this.opts.appPackage && appActivity === this.opts.appActivity) ||\n (appPackage === this.opts.appWaitPackage && (this.opts.appWaitActivity || '').split(',').includes(appActivity)))\n ? {// the activity is the original session activity, so use the original args\n pkg: this.opts.appPackage,\n activity: this.opts.appActivity,\n action: this.opts.intentAction,\n category: this.opts.intentCategory,\n flags: this.opts.intentFlags,\n waitPkg: this.opts.appWaitPackage,\n waitActivity: this.opts.appWaitActivity,\n waitForLaunch: this.opts.appWaitForLaunch,\n waitDuration: this.opts.appWaitDuration,\n optionalIntentArguments: this.opts.optionalIntentArguments,\n stopApp: false,\n user: this.opts.userProfile}\n : {// the activity was started some other way, so use defaults\n pkg: appPackage,\n activity: appActivity,\n waitPkg: appPackage,\n waitActivity: appActivity,\n stopApp: false};\n }\n args = await util.filterObject(args);\n this.log.debug(`Bringing application back to foreground with arguments: ${JSON.stringify(args)}`);\n return await this.adb.startApp(args);\n};\n\ncommands.getStrings = async function getStrings (language) {\n if (!language) {\n language = await this.adb.getDeviceLanguage();\n this.log.info(`No language specified, returning strings for: ${language}`);\n }\n\n // Clients require the resulting mapping to have both keys\n // and values of type string\n const preprocessStringsMap = (mapping) => {\n const result = {};\n for (const [key, value] of _.toPairs(mapping)) {\n result[key] = _.isString(value) ? value : JSON.stringify(value);\n }\n return result;\n };\n\n if (this.apkStrings[language]) {\n // Return cached strings\n return preprocessStringsMap(this.apkStrings[language]);\n }\n\n this.apkStrings[language] = await androidHelpers.pushStrings(language, this.adb, this.opts);\n if (this.bootstrap) {\n // TODO: This is mutating the current language, but it's how appium currently works\n await this.bootstrap.sendAction('updateStrings');\n }\n\n return preprocessStringsMap(this.apkStrings[language]);\n};\n\ncommands.launchApp = async function launchApp () {\n await this.initAUT();\n await this.startAUT();\n};\n\ncommands.startActivity = async function startActivity (appPackage, appActivity,\n appWaitPackage, appWaitActivity, intentAction, intentCategory, intentFlags,\n optionalIntentArguments, dontStopAppOnReset) {\n this.log.debug(`Starting package '${appPackage}' and activity '${appActivity}'`);\n\n // dontStopAppOnReset is both an argument here, and a desired capability\n // if the argument is set, use it, otherwise use the cap\n if (!util.hasValue(dontStopAppOnReset)) {\n dontStopAppOnReset = !!this.opts.dontStopAppOnReset;\n }\n\n let args = {\n pkg: appPackage,\n activity: appActivity,\n waitPkg: appWaitPackage || appPackage,\n waitActivity: appWaitActivity || appActivity,\n action: intentAction,\n category: intentCategory,\n flags: intentFlags,\n optionalIntentArguments,\n stopApp: !dontStopAppOnReset\n };\n this._cachedActivityArgs = this._cachedActivityArgs || {};\n this._cachedActivityArgs[`${args.waitPkg}/${args.waitActivity}`] = args;\n await this.adb.startApp(args);\n};\n\ncommands.reset = async function reset () {\n await androidHelpers.resetApp(this.adb, Object.assign({}, this.opts, {fastReset: true}));\n // reset context since we don't know what kind on context we will end up after app launch.\n await this.setContext();\n return await this.isChromeSession ? this.startChromeSession() : this.startAUT();\n};\n\ncommands.startAUT = async function startAUT () {\n await this.adb.startApp({\n pkg: this.opts.appPackage,\n activity: this.opts.appActivity,\n action: this.opts.intentAction,\n category: this.opts.intentCategory,\n flags: this.opts.intentFlags,\n waitPkg: this.opts.appWaitPackage,\n waitActivity: this.opts.appWaitActivity,\n waitForLaunch: this.opts.appWaitForLaunch,\n waitDuration: this.opts.appWaitDuration,\n optionalIntentArguments: this.opts.optionalIntentArguments,\n stopApp: !this.opts.dontStopAppOnReset,\n user: this.opts.userProfile,\n });\n};\n\n// we override setUrl to take an android URI which can be used for deep-linking\n// inside an app, similar to starting an intent\ncommands.setUrl = async function setUrl (uri) {\n await this.adb.startUri(uri, this.opts.appPackage);\n};\n\n// closing app using force stop\ncommands.closeApp = async function closeApp () {\n await this.adb.forceStop(this.opts.appPackage);\n // reset context since we don't know what kind on context we will end up after app launch.\n await this.setContext();\n};\n\ncommands.getDisplayDensity = async function getDisplayDensity () {\n // first try the property for devices\n let out = await this.adb.shell(['getprop', 'ro.sf.lcd_density']);\n if (out) {\n let val = parseInt(out, 10);\n // if the value is NaN, try getting the emulator property\n if (!isNaN(val)) {\n return val;\n }\n this.log.debug(`Parsed density value was NaN: \"${out}\"`);\n }\n // fallback to trying property for emulators\n out = await this.adb.shell(['getprop', 'qemu.sf.lcd_density']);\n if (out) {\n let val = parseInt(out, 10);\n if (!isNaN(val)) {\n return val;\n }\n this.log.debug(`Parsed density value was NaN: \"${out}\"`);\n }\n // couldn't get anything, so error out\n this.log.errorAndThrow('Failed to get display density property.');\n};\n\ncommands.mobilePerformEditorAction = async function mobilePerformEditorAction (opts = {}) {\n const {action} = opts;\n if (!util.hasValue(action)) {\n throw new errors.InvalidArgumentError(`'action' argument is required`);\n }\n\n await this.adb.performEditorAction(action);\n};\n\nconst PERMISSION_ACTION = {\n GRANT: 'grant',\n REVOKE: 'revoke',\n};\n\n/**\n * @typedef {Object} ChangePermissionsOptions\n * @property {!string|Array<string>} permissions - The full name of the permission to be changed\n * or a list of permissions. Mandatory argument.\n * @property {string} appPackage [this.opts.appPackage] - The application package to set change\n * permissions on. Defaults to the package name under test.\n * @property {string} action [grant] - One of `PERMISSION_ACTION` values\n */\n\n/**\n * Changes package permissions in runtime.\n *\n * @param {?ChangePermissionsOptions} opts - Available options mapping.\n * @throws {Error} if there was a failure while changing permissions\n */\ncommands.mobileChangePermissions = async function mobileChangePermissions (opts = {}) {\n const {\n permissions,\n appPackage = this.opts.appPackage,\n action = PERMISSION_ACTION.GRANT,\n } = opts;\n if (!util.hasValue(permissions)) {\n throw new errors.InvalidArgumentError(`'permissions' argument is required`);\n }\n\n let actionFunc;\n switch (_.toLower(action)) {\n case PERMISSION_ACTION.GRANT:\n actionFunc = (appPackage, permission) => this.adb.grantPermission(appPackage, permission);\n break;\n case PERMISSION_ACTION.REVOKE:\n actionFunc = (appPackage, permission) => this.adb.revokePermission(appPackage, permission);\n break;\n default:\n throw new errors.InvalidArgumentError(`Unknown action '${action}'. ` +\n `Only ${JSON.stringify(_.values(PERMISSION_ACTION))} actions are supported`);\n }\n for (const permission of (_.isArray(permissions) ? permissions : [permissions])) {\n await actionFunc(appPackage, permission);\n }\n};\n\nconst PERMISSIONS_TYPE = {\n DENIED: 'denied',\n GRANTED: 'granted',\n REQUESTED: 'requested',\n};\n\n/**\n * @typedef {Object} GetPermissionsOptions\n * @property {string} type [requested] - One of possible permission types to get.\n * Can be any of `PERMISSIONS_TYPE` values.\n * @property {string} appPackage [this.opts.appPackage] - The application package to set change\n * permissions on. Defaults to the package name under test.\n */\n\n/**\n * Gets runtime permissions list for the given application package.\n *\n * @param {GetPermissionsOptions} opts - Available options mapping.\n * @returns {Array<string>} The list of retrieved permissions for the given type\n * (can also be empty).\n * @throws {Error} if there was an error while getting permissions.\n */\ncommands.mobileGetPermissions = async function mobileGetPermissions (opts = {}) {\n const {\n type = PERMISSIONS_TYPE.REQUESTED,\n appPackage = this.opts.appPackage,\n } = opts;\n\n let actionFunc;\n switch (_.toLower(type)) {\n case PERMISSIONS_TYPE.REQUESTED:\n actionFunc = (appPackage) => this.adb.getReqPermissions(appPackage);\n break;\n case PERMISSIONS_TYPE.GRANTED:\n actionFunc = (appPackage) => this.adb.getGrantedPermissions(appPackage);\n break;\n case PERMISSIONS_TYPE.DENIED:\n actionFunc = (appPackage) => this.adb.getDeniedPermissions(appPackage);\n break;\n default:\n throw new errors.InvalidArgumentError(`Unknown permissions type '${type}'. ` +\n `Only ${JSON.stringify(_.values(PERMISSIONS_TYPE))} types are supported`);\n }\n return await actionFunc(appPackage);\n};\n\n/**\n * Retrieves the list of recent system notifications.\n *\n * @returns {Object} See the documentation on `adb.getNotifications` for\n * more details\n */\ncommands.mobileGetNotifications = async function mobileGetNotifications () {\n return await this.adb.getNotifications();\n};\n\n/**\n * @typedef {Object} SmsListOptions\n * @property {number} max [100] - The maximum count of recent SMS messages\n * to retrieve\n */\n\n/**\n * Retrieves the list of recent SMS messages with their properties.\n *\n * @param {SmsListOptions} opts\n * @returns {Object} See the documentation on `adb.getSmsList` for\n * more details\n */\ncommands.mobileListSms = async function mobileListSms (opts = {}) {\n return await this.adb.getSmsList(opts);\n};\n\n/**\n * @typedef {Object} UnlockOptions\n * @property {string} key The unlock key. The value of this key depends\n * on the actual unlock type and could be a pin/password/pattern value or\n * a biometric finger id.\n * @property {string} type The unlock type. The following unlock types\n * are supported: `pin`, `pinWithKeyEvent`, `password`, `pattern` and `fingerprint`.\n * @property {?string} strategy Either 'locksettings' (default) or 'uiautomator'.\n * Setting it to 'uiautomator' will enforce the driver to avoid using special\n * ADB shortcuts in order to speed up the unlock procedure.\n * @property {?number} timeoutMs [2000] The maximum time in milliseconds\n * to wait until the screen gets unlocked\n */\n\n/**\n * Unlocks the device if it is locked. Noop if the device's screen is not locked.\n *\n * @param {?UnlockOptions} opts\n * @throws {Error} if unlock operation fails or the provided\n * arguments are not valid\n */\ncommands.mobileUnlock = async function mobileUnlock (opts = {}) {\n const { key, type, strategy, timeoutMs } = opts;\n await androidHelpers.unlock(this, this.adb, {\n unlockKey: key,\n unlockType: type,\n unlockStrategy: strategy,\n unlockSuccessTimeout: timeoutMs,\n });\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"general.js","names":["MOMENT_FORMAT_ISO8601","commands","helpers","extensions","keys","_","isArray","join","params","text","replace","opts","unicodeKeyboard","doSendKeys","bootstrap","sendAction","getDeviceTime","format","log","debug","deviceTimestamp","adb","shell","trim","parsedTimestamp","moment","utc","isValid","warn","utcOffset","_tzm","mobileGetDeviceTime","getPageSource","back","isKeyboardShown","isSoftKeyboardPresent","hideKeyboard","openSettingsActivity","setting","appPackage","appActivity","getFocusedPackageAndActivity","waitForNotActivity","getWindowSize","getWindowRect","width","height","x","y","getCurrentActivity","getCurrentPackage","background","seconds","goToHome","sleepMs","thresholdMs","intervalMs","min","parseInt","progressCb","elapsedMs","progress","waitSecs","toFixed","progressPct","longSleep","args","_cachedActivityArgs","activateApp","ign","appWaitPackage","appWaitActivity","split","includes","pkg","activity","action","intentAction","category","intentCategory","flags","intentFlags","waitPkg","waitActivity","waitForLaunch","appWaitForLaunch","waitDuration","appWaitDuration","optionalIntentArguments","stopApp","user","userProfile","util","filterObject","JSON","stringify","startApp","getStrings","language","getDeviceLanguage","info","preprocessStringsMap","mapping","result","key","value","toPairs","isString","apkStrings","androidHelpers","pushStrings","launchApp","initAUT","startAUT","startActivity","dontStopAppOnReset","hasValue","reset","resetApp","Object","assign","fastReset","setContext","isChromeSession","startChromeSession","setUrl","uri","startUri","closeApp","forceStop","getDisplayDensity","out","val","isNaN","errorAndThrow","mobilePerformEditorAction","errors","InvalidArgumentError","performEditorAction","PERMISSION_ACTION","GRANT","REVOKE","mobileChangePermissions","permissions","actionFunc","toLower","permission","grantPermission","revokePermission","values","PERMISSIONS_TYPE","DENIED","GRANTED","REQUESTED","mobileGetPermissions","type","getReqPermissions","getGrantedPermissions","getDeniedPermissions","mobileGetNotifications","getNotifications","mobileListSms","getSmsList","mobileUnlock","strategy","timeoutMs","unlock","unlockKey","unlockType","unlockStrategy","unlockSuccessTimeout"],"sources":["../../../lib/commands/general.js"],"sourcesContent":["import _ from 'lodash';\nimport androidHelpers from '../android-helpers';\nimport { util } from 'appium/support';\nimport moment from 'moment';\nimport { longSleep } from 'asyncbox';\nimport { errors } from 'appium/driver';\n\nconst MOMENT_FORMAT_ISO8601 = 'YYYY-MM-DDTHH:mm:ssZ';\n\nlet commands = {}, helpers = {}, extensions = {};\n\ncommands.keys = async function keys (keys) {\n // Protocol sends an array; rethink approach\n keys = _.isArray(keys) ? keys.join('') : keys;\n let params = {\n text: keys,\n replace: false\n };\n if (this.opts.unicodeKeyboard) {\n params.unicodeKeyboard = true;\n }\n await this.doSendKeys(params);\n};\n\ncommands.doSendKeys = async function doSendKeys (params) {\n return await this.bootstrap.sendAction('setText', params);\n};\n\n/**\n * Retrieves the current device's timestamp.\n *\n * @param {string} format - The set of format specifiers. Read\n * https://momentjs.com/docs/ to get the full list of supported\n * datetime format specifiers. The default format is\n * `YYYY-MM-DDTHH:mm:ssZ`, which complies to ISO-8601\n * @return {string} Formatted datetime string or the raw command output if formatting fails\n */\ncommands.getDeviceTime = async function getDeviceTime (format = MOMENT_FORMAT_ISO8601) {\n this.log.debug('Attempting to capture android device date and time. ' +\n `The format specifier is '${format}'`);\n const deviceTimestamp = (await this.adb.shell(['date', '+%Y-%m-%dT%T%z'])).trim();\n this.log.debug(`Got device timestamp: ${deviceTimestamp}`);\n const parsedTimestamp = moment.utc(deviceTimestamp, 'YYYY-MM-DDTHH:mm:ssZZ');\n if (!parsedTimestamp.isValid()) {\n this.log.warn('Cannot parse the returned timestamp. Returning as is');\n return deviceTimestamp;\n }\n return parsedTimestamp.utcOffset(parsedTimestamp._tzm || 0).format(format);\n};\n\n/**\n * @typedef {Object} DeviceTimeOptions\n * @property {string} format [YYYY-MM-DDTHH:mm:ssZ] - See getDeviceTime#format\n */\n\n/**\n * Retrieves the current device time\n *\n * @param {DeviceTimeOptions} opts\n * @return {string} Formatted datetime string or the raw command output if formatting fails\n */\ncommands.mobileGetDeviceTime = async function mobileGetDeviceTime (opts = {}) {\n return await this.getDeviceTime(opts.format);\n};\n\ncommands.getPageSource = async function getPageSource () {\n return await this.bootstrap.sendAction('source');\n};\n\ncommands.back = async function back () {\n return await this.bootstrap.sendAction('pressBack');\n};\n\ncommands.isKeyboardShown = async function isKeyboardShown () {\n const {isKeyboardShown} = await this.adb.isSoftKeyboardPresent();\n return isKeyboardShown;\n};\n\ncommands.hideKeyboard = async function hideKeyboard () {\n return await this.adb.hideKeyboard();\n};\n\ncommands.openSettingsActivity = async function openSettingsActivity (setting) {\n let {appPackage, appActivity} = await this.adb.getFocusedPackageAndActivity();\n await this.adb.shell(['am', 'start', '-a', `android.settings.${setting}`]);\n await this.adb.waitForNotActivity(appPackage, appActivity, 5000);\n};\n\ncommands.getWindowSize = async function getWindowSize () {\n return await this.bootstrap.sendAction('getDeviceSize');\n};\n\n// For W3C\ncommands.getWindowRect = async function getWindowRect () {\n const { width, height } = await this.getWindowSize();\n return {\n width,\n height,\n x: 0,\n y: 0\n };\n};\n\ncommands.getCurrentActivity = async function getCurrentActivity () {\n return (await this.adb.getFocusedPackageAndActivity()).appActivity;\n};\n\ncommands.getCurrentPackage = async function getCurrentPackage () {\n return (await this.adb.getFocusedPackageAndActivity()).appPackage;\n};\n\ncommands.background = async function background (seconds) {\n if (seconds < 0) {\n // if user passes in a negative seconds value, interpret that as the instruction\n // to not bring the app back at all\n await this.adb.goToHome();\n return true;\n }\n let {appPackage, appActivity} = await this.adb.getFocusedPackageAndActivity();\n await this.adb.goToHome();\n\n // people can wait for a long time, so to be safe let's use the longSleep function and log\n // progress periodically.\n const sleepMs = seconds * 1000;\n const thresholdMs = 30 * 1000; // use the spin-wait for anything over this threshold\n // for our spin interval, use 1% of the total wait time, but nothing bigger than 30s\n const intervalMs = _.min([30 * 1000, parseInt(sleepMs / 100, 10)]);\n const progressCb = ({elapsedMs, progress}) => {\n const waitSecs = (elapsedMs / 1000).toFixed(0);\n const progressPct = (progress * 100).toFixed(2);\n this.log.debug(`Waited ${waitSecs}s so far (${progressPct}%)`);\n };\n await longSleep(sleepMs, {thresholdMs, intervalMs, progressCb});\n\n let args;\n if (this._cachedActivityArgs && this._cachedActivityArgs[`${appPackage}/${appActivity}`]) {\n // the activity was started with `startActivity`, so use those args to restart\n args = this._cachedActivityArgs[`${appPackage}/${appActivity}`];\n } else {\n try {\n this.log.debug(`Activating app '${appPackage}' in order to restore it`);\n await this.activateApp(appPackage);\n return true;\n } catch (ign) {}\n args = ((appPackage === this.opts.appPackage && appActivity === this.opts.appActivity) ||\n (appPackage === this.opts.appWaitPackage && (this.opts.appWaitActivity || '').split(',').includes(appActivity)))\n ? {// the activity is the original session activity, so use the original args\n pkg: this.opts.appPackage,\n activity: this.opts.appActivity,\n action: this.opts.intentAction,\n category: this.opts.intentCategory,\n flags: this.opts.intentFlags,\n waitPkg: this.opts.appWaitPackage,\n waitActivity: this.opts.appWaitActivity,\n waitForLaunch: this.opts.appWaitForLaunch,\n waitDuration: this.opts.appWaitDuration,\n optionalIntentArguments: this.opts.optionalIntentArguments,\n stopApp: false,\n user: this.opts.userProfile}\n : {// the activity was started some other way, so use defaults\n pkg: appPackage,\n activity: appActivity,\n waitPkg: appPackage,\n waitActivity: appActivity,\n stopApp: false};\n }\n args = await util.filterObject(args);\n this.log.debug(`Bringing application back to foreground with arguments: ${JSON.stringify(args)}`);\n return await this.adb.startApp(args);\n};\n\ncommands.getStrings = async function getStrings (language) {\n if (!language) {\n language = await this.adb.getDeviceLanguage();\n this.log.info(`No language specified, returning strings for: ${language}`);\n }\n\n // Clients require the resulting mapping to have both keys\n // and values of type string\n const preprocessStringsMap = (mapping) => {\n const result = {};\n for (const [key, value] of _.toPairs(mapping)) {\n result[key] = _.isString(value) ? value : JSON.stringify(value);\n }\n return result;\n };\n\n if (this.apkStrings[language]) {\n // Return cached strings\n return preprocessStringsMap(this.apkStrings[language]);\n }\n\n this.apkStrings[language] = await androidHelpers.pushStrings(language, this.adb, this.opts);\n if (this.bootstrap) {\n // TODO: This is mutating the current language, but it's how appium currently works\n await this.bootstrap.sendAction('updateStrings');\n }\n\n return preprocessStringsMap(this.apkStrings[language]);\n};\n\ncommands.launchApp = async function launchApp () {\n await this.initAUT();\n await this.startAUT();\n};\n\ncommands.startActivity = async function startActivity (appPackage, appActivity,\n appWaitPackage, appWaitActivity, intentAction, intentCategory, intentFlags,\n optionalIntentArguments, dontStopAppOnReset) {\n this.log.debug(`Starting package '${appPackage}' and activity '${appActivity}'`);\n\n // dontStopAppOnReset is both an argument here, and a desired capability\n // if the argument is set, use it, otherwise use the cap\n if (!util.hasValue(dontStopAppOnReset)) {\n dontStopAppOnReset = !!this.opts.dontStopAppOnReset;\n }\n\n let args = {\n pkg: appPackage,\n activity: appActivity,\n waitPkg: appWaitPackage || appPackage,\n waitActivity: appWaitActivity || appActivity,\n action: intentAction,\n category: intentCategory,\n flags: intentFlags,\n optionalIntentArguments,\n stopApp: !dontStopAppOnReset\n };\n this._cachedActivityArgs = this._cachedActivityArgs || {};\n this._cachedActivityArgs[`${args.waitPkg}/${args.waitActivity}`] = args;\n await this.adb.startApp(args);\n};\n\ncommands.reset = async function reset () {\n await androidHelpers.resetApp(this.adb, Object.assign({}, this.opts, {fastReset: true}));\n // reset context since we don't know what kind on context we will end up after app launch.\n await this.setContext();\n return await this.isChromeSession ? this.startChromeSession() : this.startAUT();\n};\n\ncommands.startAUT = async function startAUT () {\n await this.adb.startApp({\n pkg: this.opts.appPackage,\n activity: this.opts.appActivity,\n action: this.opts.intentAction,\n category: this.opts.intentCategory,\n flags: this.opts.intentFlags,\n waitPkg: this.opts.appWaitPackage,\n waitActivity: this.opts.appWaitActivity,\n waitForLaunch: this.opts.appWaitForLaunch,\n waitDuration: this.opts.appWaitDuration,\n optionalIntentArguments: this.opts.optionalIntentArguments,\n stopApp: !this.opts.dontStopAppOnReset,\n user: this.opts.userProfile,\n });\n};\n\n// we override setUrl to take an android URI which can be used for deep-linking\n// inside an app, similar to starting an intent\ncommands.setUrl = async function setUrl (uri) {\n await this.adb.startUri(uri, this.opts.appPackage);\n};\n\n// closing app using force stop\ncommands.closeApp = async function closeApp () {\n await this.adb.forceStop(this.opts.appPackage);\n // reset context since we don't know what kind on context we will end up after app launch.\n await this.setContext();\n};\n\ncommands.getDisplayDensity = async function getDisplayDensity () {\n // first try the property for devices\n let out = await this.adb.shell(['getprop', 'ro.sf.lcd_density']);\n if (out) {\n let val = parseInt(out, 10);\n // if the value is NaN, try getting the emulator property\n if (!isNaN(val)) {\n return val;\n }\n this.log.debug(`Parsed density value was NaN: \"${out}\"`);\n }\n // fallback to trying property for emulators\n out = await this.adb.shell(['getprop', 'qemu.sf.lcd_density']);\n if (out) {\n let val = parseInt(out, 10);\n if (!isNaN(val)) {\n return val;\n }\n this.log.debug(`Parsed density value was NaN: \"${out}\"`);\n }\n // couldn't get anything, so error out\n this.log.errorAndThrow('Failed to get display density property.');\n};\n\ncommands.mobilePerformEditorAction = async function mobilePerformEditorAction (opts = {}) {\n const {action} = opts;\n if (!util.hasValue(action)) {\n throw new errors.InvalidArgumentError(`'action' argument is required`);\n }\n\n await this.adb.performEditorAction(action);\n};\n\nconst PERMISSION_ACTION = {\n GRANT: 'grant',\n REVOKE: 'revoke',\n};\n\n/**\n * @typedef {Object} ChangePermissionsOptions\n * @property {!string|Array<string>} permissions - The full name of the permission to be changed\n * or a list of permissions. Mandatory argument.\n * @property {string} appPackage [this.opts.appPackage] - The application package to set change\n * permissions on. Defaults to the package name under test.\n * @property {string} action [grant] - One of `PERMISSION_ACTION` values\n */\n\n/**\n * Changes package permissions in runtime.\n *\n * @param {?ChangePermissionsOptions} opts - Available options mapping.\n * @throws {Error} if there was a failure while changing permissions\n */\ncommands.mobileChangePermissions = async function mobileChangePermissions (opts = {}) {\n const {\n permissions,\n appPackage = this.opts.appPackage,\n action = PERMISSION_ACTION.GRANT,\n } = opts;\n if (!util.hasValue(permissions)) {\n throw new errors.InvalidArgumentError(`'permissions' argument is required`);\n }\n\n let actionFunc;\n switch (_.toLower(action)) {\n case PERMISSION_ACTION.GRANT:\n actionFunc = (appPackage, permission) => this.adb.grantPermission(appPackage, permission);\n break;\n case PERMISSION_ACTION.REVOKE:\n actionFunc = (appPackage, permission) => this.adb.revokePermission(appPackage, permission);\n break;\n default:\n throw new errors.InvalidArgumentError(`Unknown action '${action}'. ` +\n `Only ${JSON.stringify(_.values(PERMISSION_ACTION))} actions are supported`);\n }\n for (const permission of (_.isArray(permissions) ? permissions : [permissions])) {\n await actionFunc(appPackage, permission);\n }\n};\n\nconst PERMISSIONS_TYPE = {\n DENIED: 'denied',\n GRANTED: 'granted',\n REQUESTED: 'requested',\n};\n\n/**\n * @typedef {Object} GetPermissionsOptions\n * @property {string} type [requested] - One of possible permission types to get.\n * Can be any of `PERMISSIONS_TYPE` values.\n * @property {string} appPackage [this.opts.appPackage] - The application package to set change\n * permissions on. Defaults to the package name under test.\n */\n\n/**\n * Gets runtime permissions list for the given application package.\n *\n * @param {GetPermissionsOptions} opts - Available options mapping.\n * @returns {Array<string>} The list of retrieved permissions for the given type\n * (can also be empty).\n * @throws {Error} if there was an error while getting permissions.\n */\ncommands.mobileGetPermissions = async function mobileGetPermissions (opts = {}) {\n const {\n type = PERMISSIONS_TYPE.REQUESTED,\n appPackage = this.opts.appPackage,\n } = opts;\n\n let actionFunc;\n switch (_.toLower(type)) {\n case PERMISSIONS_TYPE.REQUESTED:\n actionFunc = (appPackage) => this.adb.getReqPermissions(appPackage);\n break;\n case PERMISSIONS_TYPE.GRANTED:\n actionFunc = (appPackage) => this.adb.getGrantedPermissions(appPackage);\n break;\n case PERMISSIONS_TYPE.DENIED:\n actionFunc = (appPackage) => this.adb.getDeniedPermissions(appPackage);\n break;\n default:\n throw new errors.InvalidArgumentError(`Unknown permissions type '${type}'. ` +\n `Only ${JSON.stringify(_.values(PERMISSIONS_TYPE))} types are supported`);\n }\n return await actionFunc(appPackage);\n};\n\n/**\n * Retrieves the list of recent system notifications.\n *\n * @returns {Object} See the documentation on `adb.getNotifications` for\n * more details\n */\ncommands.mobileGetNotifications = async function mobileGetNotifications () {\n return await this.adb.getNotifications();\n};\n\n/**\n * @typedef {Object} SmsListOptions\n * @property {number} max [100] - The maximum count of recent SMS messages\n * to retrieve\n */\n\n/**\n * Retrieves the list of recent SMS messages with their properties.\n *\n * @param {SmsListOptions} opts\n * @returns {Object} See the documentation on `adb.getSmsList` for\n * more details\n */\ncommands.mobileListSms = async function mobileListSms (opts = {}) {\n return await this.adb.getSmsList(opts);\n};\n\n/**\n * @typedef {Object} UnlockOptions\n * @property {string} key The unlock key. The value of this key depends\n * on the actual unlock type and could be a pin/password/pattern value or\n * a biometric finger id.\n * @property {string} type The unlock type. The following unlock types\n * are supported: `pin`, `pinWithKeyEvent`, `password`, `pattern` and `fingerprint`.\n * @property {?string} strategy Either 'locksettings' (default) or 'uiautomator'.\n * Setting it to 'uiautomator' will enforce the driver to avoid using special\n * ADB shortcuts in order to speed up the unlock procedure.\n * @property {?number} timeoutMs [2000] The maximum time in milliseconds\n * to wait until the screen gets unlocked\n */\n\n/**\n * Unlocks the device if it is locked. Noop if the device's screen is not locked.\n *\n * @param {?UnlockOptions} opts\n * @throws {Error} if unlock operation fails or the provided\n * arguments are not valid\n */\ncommands.mobileUnlock = async function mobileUnlock (opts = {}) {\n const { key, type, strategy, timeoutMs } = opts;\n await androidHelpers.unlock(this, this.adb, {\n unlockKey: key,\n unlockType: type,\n unlockStrategy: strategy,\n unlockSuccessTimeout: timeoutMs,\n });\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}
|
|
@@ -4,54 +4,43 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.helpers = exports.default = exports.commands = void 0;
|
|
7
|
-
|
|
8
7
|
require("source-map-support/register");
|
|
9
|
-
|
|
10
8
|
var _driver = require("appium/driver");
|
|
11
|
-
|
|
12
9
|
let commands = {},
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
helpers = {},
|
|
11
|
+
extensions = {};
|
|
15
12
|
exports.helpers = helpers;
|
|
16
13
|
exports.commands = commands;
|
|
17
|
-
|
|
18
14
|
commands.isIMEActivated = async function isIMEActivated() {
|
|
19
15
|
return true;
|
|
20
16
|
};
|
|
21
|
-
|
|
22
17
|
commands.availableIMEEngines = async function availableIMEEngines() {
|
|
23
18
|
this.log.debug('Retrieving available IMEs');
|
|
24
19
|
let engines = await this.adb.availableIMEs();
|
|
25
20
|
this.log.debug(`Engines: ${JSON.stringify(engines)}`);
|
|
26
21
|
return engines;
|
|
27
22
|
};
|
|
28
|
-
|
|
29
23
|
commands.getActiveIMEEngine = async function getActiveIMEEngine() {
|
|
30
24
|
this.log.debug('Retrieving current default IME');
|
|
31
25
|
return await this.adb.defaultIME();
|
|
32
26
|
};
|
|
33
|
-
|
|
34
27
|
commands.activateIMEEngine = async function activateIMEEngine(imeId) {
|
|
35
28
|
this.log.debug(`Attempting to activate IME ${imeId}`);
|
|
36
29
|
let availableEngines = await this.adb.availableIMEs();
|
|
37
|
-
|
|
38
30
|
if (availableEngines.indexOf(imeId) === -1) {
|
|
39
31
|
this.log.debug('IME not found, failing');
|
|
40
32
|
throw new _driver.errors.IMENotAvailableError();
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
this.log.debug('Found installed IME, attempting to activate');
|
|
44
35
|
await this.adb.enableIME(imeId);
|
|
45
36
|
await this.adb.setIME(imeId);
|
|
46
37
|
};
|
|
47
|
-
|
|
48
38
|
commands.deactivateIMEEngine = async function deactivateIMEEngine() {
|
|
49
39
|
let currentEngine = await this.getActiveIMEEngine();
|
|
50
40
|
this.log.debug(`Attempting to deactivate ${currentEngine}`);
|
|
51
41
|
await this.adb.disableIME(currentEngine);
|
|
52
42
|
};
|
|
53
|
-
|
|
54
43
|
Object.assign(extensions, commands, helpers);
|
|
55
44
|
var _default = extensions;
|
|
56
45
|
exports.default = _default;
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiaXNJTUVBY3RpdmF0ZWQiLCJhdmFpbGFibGVJTUVFbmdpbmVzIiwibG9nIiwiZGVidWciLCJlbmdpbmVzIiwiYWRiIiwiYXZhaWxhYmxlSU1FcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRBY3RpdmVJTUVFbmdpbmUiLCJkZWZhdWx0SU1FIiwiYWN0aXZhdGVJTUVFbmdpbmUiLCJpbWVJZCIsImF2YWlsYWJsZUVuZ2luZXMiLCJpbmRleE9mIiwiZXJyb3JzIiwiSU1FTm90QXZhaWxhYmxlRXJyb3IiLCJlbmFibGVJTUUiLCJzZXRJTUUiLCJkZWFjdGl2YXRlSU1FRW5naW5lIiwiY3VycmVudEVuZ2luZSIsImRpc2FibGVJTUUiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvaW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5sZXQgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmNvbW1hbmRzLmlzSU1FQWN0aXZhdGVkID0gYXN5bmMgZnVuY3Rpb24gaXNJTUVBY3RpdmF0ZWQgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgLy8gSU1FIGlzIGFsd2F5cyBhY3RpdmF0ZWQgb24gQW5kcm9pZCBkZXZpY2VzXG4gIHJldHVybiB0cnVlO1xufTtcblxuY29tbWFuZHMuYXZhaWxhYmxlSU1FRW5naW5lcyA9IGFzeW5jIGZ1bmN0aW9uIGF2YWlsYWJsZUlNRUVuZ2luZXMgKCkge1xuICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyBhdmFpbGFibGUgSU1FcycpO1xuICBsZXQgZW5naW5lcyA9IGF3YWl0IHRoaXMuYWRiLmF2YWlsYWJsZUlNRXMoKTtcbiAgdGhpcy5sb2cuZGVidWcoYEVuZ2luZXM6ICR7SlNPTi5zdHJpbmdpZnkoZW5naW5lcyl9YCk7XG4gIHJldHVybiBlbmdpbmVzO1xufTtcblxuY29tbWFuZHMuZ2V0QWN0aXZlSU1FRW5naW5lID0gYXN5bmMgZnVuY3Rpb24gZ2V0QWN0aXZlSU1FRW5naW5lICgpIHtcbiAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgY3VycmVudCBkZWZhdWx0IElNRScpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuZGVmYXVsdElNRSgpO1xufTtcblxuY29tbWFuZHMuYWN0aXZhdGVJTUVFbmdpbmUgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmF0ZUlNRUVuZ2luZSAoaW1lSWQpIHtcbiAgdGhpcy5sb2cuZGVidWcoYEF0dGVtcHRpbmcgdG8gYWN0aXZhdGUgSU1FICR7aW1lSWR9YCk7XG4gIGxldCBhdmFpbGFibGVFbmdpbmVzID0gYXdhaXQgdGhpcy5hZGIuYXZhaWxhYmxlSU1FcygpO1xuICBpZiAoYXZhaWxhYmxlRW5naW5lcy5pbmRleE9mKGltZUlkKSA9PT0gLTEpIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnSU1FIG5vdCBmb3VuZCwgZmFpbGluZycpO1xuICAgIHRocm93IG5ldyBlcnJvcnMuSU1FTm90QXZhaWxhYmxlRXJyb3IoKTtcbiAgfVxuICB0aGlzLmxvZy5kZWJ1ZygnRm91bmQgaW5zdGFsbGVkIElNRSwgYXR0ZW1wdGluZyB0byBhY3RpdmF0ZScpO1xuICBhd2FpdCB0aGlzLmFkYi5lbmFibGVJTUUoaW1lSWQpO1xuICBhd2FpdCB0aGlzLmFkYi5zZXRJTUUoaW1lSWQpO1xufTtcblxuY29tbWFuZHMuZGVhY3RpdmF0ZUlNRUVuZ2luZSA9IGFzeW5jIGZ1bmN0aW9uIGRlYWN0aXZhdGVJTUVFbmdpbmUgKCkge1xuICBsZXQgY3VycmVudEVuZ2luZSA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlSU1FRW5naW5lKCk7XG4gIHRoaXMubG9nLmRlYnVnKGBBdHRlbXB0aW5nIHRvIGRlYWN0aXZhdGUgJHtjdXJyZW50RW5naW5lfWApO1xuICBhd2FpdCB0aGlzLmFkYi5kaXNhYmxlSU1FKGN1cnJlbnRFbmdpbmUpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBRUEsSUFBSUEsUUFBUSxHQUFHLENBQUMsQ0FBQztFQUFFQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFBQztBQUFBO0FBRWpERixRQUFRLENBQUNHLGNBQWMsR0FBRyxlQUFlQSxjQUFjLEdBQUk7RUFFekQsT0FBTyxJQUFJO0FBQ2IsQ0FBQztBQUVESCxRQUFRLENBQUNJLG1CQUFtQixHQUFHLGVBQWVBLG1CQUFtQixHQUFJO0VBQ25FLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxLQUFLLENBQUMsMkJBQTJCLENBQUM7RUFDM0MsSUFBSUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUNDLGFBQWEsRUFBRTtFQUM1QyxJQUFJLENBQUNKLEdBQUcsQ0FBQ0MsS0FBSyxDQUFFLFlBQVdJLElBQUksQ0FBQ0MsU0FBUyxDQUFDSixPQUFPLENBQUUsRUFBQyxDQUFDO0VBQ3JELE9BQU9BLE9BQU87QUFDaEIsQ0FBQztBQUVEUCxRQUFRLENBQUNZLGtCQUFrQixHQUFHLGVBQWVBLGtCQUFrQixHQUFJO0VBQ2pFLElBQUksQ0FBQ1AsR0FBRyxDQUFDQyxLQUFLLENBQUMsZ0NBQWdDLENBQUM7RUFDaEQsT0FBTyxNQUFNLElBQUksQ0FBQ0UsR0FBRyxDQUFDSyxVQUFVLEVBQUU7QUFDcEMsQ0FBQztBQUVEYixRQUFRLENBQUNjLGlCQUFpQixHQUFHLGVBQWVBLGlCQUFpQixDQUFFQyxLQUFLLEVBQUU7RUFDcEUsSUFBSSxDQUFDVixHQUFHLENBQUNDLEtBQUssQ0FBRSw4QkFBNkJTLEtBQU0sRUFBQyxDQUFDO0VBQ3JELElBQUlDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDUixHQUFHLENBQUNDLGFBQWEsRUFBRTtFQUNyRCxJQUFJTyxnQkFBZ0IsQ0FBQ0MsT0FBTyxDQUFDRixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtJQUMxQyxJQUFJLENBQUNWLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLHdCQUF3QixDQUFDO0lBQ3hDLE1BQU0sSUFBSVksY0FBTSxDQUFDQyxvQkFBb0IsRUFBRTtFQUN6QztFQUNBLElBQUksQ0FBQ2QsR0FBRyxDQUFDQyxLQUFLLENBQUMsNkNBQTZDLENBQUM7RUFDN0QsTUFBTSxJQUFJLENBQUNFLEdBQUcsQ0FBQ1ksU0FBUyxDQUFDTCxLQUFLLENBQUM7RUFDL0IsTUFBTSxJQUFJLENBQUNQLEdBQUcsQ0FBQ2EsTUFBTSxDQUFDTixLQUFLLENBQUM7QUFDOUIsQ0FBQztBQUVEZixRQUFRLENBQUNzQixtQkFBbUIsR0FBRyxlQUFlQSxtQkFBbUIsR0FBSTtFQUNuRSxJQUFJQyxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUNYLGtCQUFrQixFQUFFO0VBQ25ELElBQUksQ0FBQ1AsR0FBRyxDQUFDQyxLQUFLLENBQUUsNEJBQTJCaUIsYUFBYyxFQUFDLENBQUM7RUFDM0QsTUFBTSxJQUFJLENBQUNmLEdBQUcsQ0FBQ2dCLFVBQVUsQ0FBQ0QsYUFBYSxDQUFDO0FBQzFDLENBQUM7QUFFREUsTUFBTSxDQUFDQyxNQUFNLENBQUN4QixVQUFVLEVBQUVGLFFBQVEsRUFBRUMsT0FBTyxDQUFDO0FBQUMsZUFFOUJDLFVBQVU7QUFBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ime.js","names":["commands","helpers","extensions","isIMEActivated","availableIMEEngines","log","debug","engines","adb","availableIMEs","JSON","stringify","getActiveIMEEngine","defaultIME","activateIMEEngine","imeId","availableEngines","indexOf","errors","IMENotAvailableError","enableIME","setIME","deactivateIMEEngine","currentEngine","disableIME","Object","assign"],"sources":["../../../lib/commands/ime.js"],"sourcesContent":["import { errors } from 'appium/driver';\n\nlet commands = {}, helpers = {}, extensions = {};\n\ncommands.isIMEActivated = async function isIMEActivated () { // eslint-disable-line require-await\n // IME is always activated on Android devices\n return true;\n};\n\ncommands.availableIMEEngines = async function availableIMEEngines () {\n this.log.debug('Retrieving available IMEs');\n let engines = await this.adb.availableIMEs();\n this.log.debug(`Engines: ${JSON.stringify(engines)}`);\n return engines;\n};\n\ncommands.getActiveIMEEngine = async function getActiveIMEEngine () {\n this.log.debug('Retrieving current default IME');\n return await this.adb.defaultIME();\n};\n\ncommands.activateIMEEngine = async function activateIMEEngine (imeId) {\n this.log.debug(`Attempting to activate IME ${imeId}`);\n let availableEngines = await this.adb.availableIMEs();\n if (availableEngines.indexOf(imeId) === -1) {\n this.log.debug('IME not found, failing');\n throw new errors.IMENotAvailableError();\n }\n this.log.debug('Found installed IME, attempting to activate');\n await this.adb.enableIME(imeId);\n await this.adb.setIME(imeId);\n};\n\ncommands.deactivateIMEEngine = async function deactivateIMEEngine () {\n let currentEngine = await this.getActiveIMEEngine();\n this.log.debug(`Attempting to deactivate ${currentEngine}`);\n await this.adb.disableIME(currentEngine);\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ime.js","names":["commands","helpers","extensions","isIMEActivated","availableIMEEngines","log","debug","engines","adb","availableIMEs","JSON","stringify","getActiveIMEEngine","defaultIME","activateIMEEngine","imeId","availableEngines","indexOf","errors","IMENotAvailableError","enableIME","setIME","deactivateIMEEngine","currentEngine","disableIME","Object","assign"],"sources":["../../../lib/commands/ime.js"],"sourcesContent":["import { errors } from 'appium/driver';\n\nlet commands = {}, helpers = {}, extensions = {};\n\ncommands.isIMEActivated = async function isIMEActivated () { // eslint-disable-line require-await\n // IME is always activated on Android devices\n return true;\n};\n\ncommands.availableIMEEngines = async function availableIMEEngines () {\n this.log.debug('Retrieving available IMEs');\n let engines = await this.adb.availableIMEs();\n this.log.debug(`Engines: ${JSON.stringify(engines)}`);\n return engines;\n};\n\ncommands.getActiveIMEEngine = async function getActiveIMEEngine () {\n this.log.debug('Retrieving current default IME');\n return await this.adb.defaultIME();\n};\n\ncommands.activateIMEEngine = async function activateIMEEngine (imeId) {\n this.log.debug(`Attempting to activate IME ${imeId}`);\n let availableEngines = await this.adb.availableIMEs();\n if (availableEngines.indexOf(imeId) === -1) {\n this.log.debug('IME not found, failing');\n throw new errors.IMENotAvailableError();\n }\n this.log.debug('Found installed IME, attempting to activate');\n await this.adb.enableIME(imeId);\n await this.adb.setIME(imeId);\n};\n\ncommands.deactivateIMEEngine = async function deactivateIMEEngine () {\n let currentEngine = await this.getActiveIMEEngine();\n this.log.debug(`Attempting to deactivate ${currentEngine}`);\n await this.adb.disableIME(currentEngine);\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":";;;;;;;AAAA;AAEA,IAAIA,QAAQ,GAAG,CAAC,CAAC;EAAEC,OAAO,GAAG,CAAC,CAAC;EAAEC,UAAU,GAAG,CAAC,CAAC;AAAC;AAAA;AAEjDF,QAAQ,CAACG,cAAc,GAAG,eAAeA,cAAc,GAAI;EAEzD,OAAO,IAAI;AACb,CAAC;AAEDH,QAAQ,CAACI,mBAAmB,GAAG,eAAeA,mBAAmB,GAAI;EACnE,IAAI,CAACC,GAAG,CAACC,KAAK,CAAC,2BAA2B,CAAC;EAC3C,IAAIC,OAAO,GAAG,MAAM,IAAI,CAACC,GAAG,CAACC,aAAa,EAAE;EAC5C,IAAI,CAACJ,GAAG,CAACC,KAAK,CAAE,YAAWI,IAAI,CAACC,SAAS,CAACJ,OAAO,CAAE,EAAC,CAAC;EACrD,OAAOA,OAAO;AAChB,CAAC;AAEDP,QAAQ,CAACY,kBAAkB,GAAG,eAAeA,kBAAkB,GAAI;EACjE,IAAI,CAACP,GAAG,CAACC,KAAK,CAAC,gCAAgC,CAAC;EAChD,OAAO,MAAM,IAAI,CAACE,GAAG,CAACK,UAAU,EAAE;AACpC,CAAC;AAEDb,QAAQ,CAACc,iBAAiB,GAAG,eAAeA,iBAAiB,CAAEC,KAAK,EAAE;EACpE,IAAI,CAACV,GAAG,CAACC,KAAK,CAAE,8BAA6BS,KAAM,EAAC,CAAC;EACrD,IAAIC,gBAAgB,GAAG,MAAM,IAAI,CAACR,GAAG,CAACC,aAAa,EAAE;EACrD,IAAIO,gBAAgB,CAACC,OAAO,CAACF,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;IAC1C,IAAI,CAACV,GAAG,CAACC,KAAK,CAAC,wBAAwB,CAAC;IACxC,MAAM,IAAIY,cAAM,CAACC,oBAAoB,EAAE;EACzC;EACA,IAAI,CAACd,GAAG,CAACC,KAAK,CAAC,6CAA6C,CAAC;EAC7D,MAAM,IAAI,CAACE,GAAG,CAACY,SAAS,CAACL,KAAK,CAAC;EAC/B,MAAM,IAAI,CAACP,GAAG,CAACa,MAAM,CAACN,KAAK,CAAC;AAC9B,CAAC;AAEDf,QAAQ,CAACsB,mBAAmB,GAAG,eAAeA,mBAAmB,GAAI;EACnE,IAAIC,aAAa,GAAG,MAAM,IAAI,CAACX,kBAAkB,EAAE;EACnD,IAAI,CAACP,GAAG,CAACC,KAAK,CAAE,4BAA2BiB,aAAc,EAAC,CAAC;EAC3D,MAAM,IAAI,CAACf,GAAG,CAACgB,UAAU,CAACD,aAAa,CAAC;AAC1C,CAAC;AAEDE,MAAM,CAACC,MAAM,CAACxB,UAAU,EAAEF,QAAQ,EAAEC,OAAO,CAAC;AAAC,eAE9BC,UAAU;AAAA"}
|
|
@@ -1,61 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = exports.commands = void 0;
|
|
9
|
-
|
|
10
8
|
require("source-map-support/register");
|
|
11
|
-
|
|
12
9
|
var _find = _interopRequireDefault(require("./find"));
|
|
13
|
-
|
|
14
10
|
var _general = _interopRequireDefault(require("./general"));
|
|
15
|
-
|
|
16
11
|
var _alert = _interopRequireDefault(require("./alert"));
|
|
17
|
-
|
|
18
12
|
var _element = _interopRequireDefault(require("./element"));
|
|
19
|
-
|
|
20
13
|
var _context = _interopRequireDefault(require("./context"));
|
|
21
|
-
|
|
22
14
|
var _actions = _interopRequireDefault(require("./actions"));
|
|
23
|
-
|
|
24
15
|
var _touch = _interopRequireDefault(require("./touch"));
|
|
25
|
-
|
|
26
16
|
var _ime = _interopRequireDefault(require("./ime"));
|
|
27
|
-
|
|
28
17
|
var _network = _interopRequireDefault(require("./network"));
|
|
29
|
-
|
|
30
18
|
var _coverage = _interopRequireDefault(require("./coverage"));
|
|
31
|
-
|
|
32
19
|
var _recordscreen = _interopRequireDefault(require("./recordscreen"));
|
|
33
|
-
|
|
34
20
|
var _streamscreen = _interopRequireDefault(require("./streamscreen"));
|
|
35
|
-
|
|
36
21
|
var _performance = _interopRequireDefault(require("./performance"));
|
|
37
|
-
|
|
38
22
|
var _execute = _interopRequireDefault(require("./execute"));
|
|
39
|
-
|
|
40
23
|
var _shell = _interopRequireDefault(require("./shell"));
|
|
41
|
-
|
|
42
24
|
var _emuConsole = _interopRequireDefault(require("./emu-console"));
|
|
43
|
-
|
|
44
25
|
var _fileActions = _interopRequireDefault(require("./file-actions"));
|
|
45
|
-
|
|
46
26
|
var _appManagement = _interopRequireDefault(require("./app-management"));
|
|
47
|
-
|
|
48
27
|
var _intent = _interopRequireDefault(require("./intent"));
|
|
49
|
-
|
|
50
28
|
var _systemBars = _interopRequireDefault(require("./system-bars"));
|
|
51
|
-
|
|
52
29
|
var _log = _interopRequireDefault(require("./log"));
|
|
53
|
-
|
|
54
30
|
var _mediaProjection = _interopRequireDefault(require("./media-projection"));
|
|
55
|
-
|
|
56
31
|
let commands = {};
|
|
57
32
|
exports.commands = commands;
|
|
58
|
-
Object.assign(commands, _find.default, _general.default, _alert.default, _element.default, _context.default, _actions.default, _touch.default, _ime.default, _network.default, _coverage.default, _recordscreen.default, _intent.default, _streamscreen.default, _performance.default, _execute.default, _shell.default, _emuConsole.default, _systemBars.default, _appManagement.default, _fileActions.default, _log.default, _mediaProjection.default
|
|
33
|
+
Object.assign(commands, _find.default, _general.default, _alert.default, _element.default, _context.default, _actions.default, _touch.default, _ime.default, _network.default, _coverage.default, _recordscreen.default, _intent.default, _streamscreen.default, _performance.default, _execute.default, _shell.default, _emuConsole.default, _systemBars.default, _appManagement.default, _fileActions.default, _log.default, _mediaProjection.default
|
|
34
|
+
);
|
|
59
35
|
var _default = commands;
|
|
60
36
|
exports.default = _default;
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImZpbmRDbWRzIiwiZ2VuZXJhbENtZHMiLCJhbGVydENtZHMiLCJlbGVtZW50Q21kcyIsImNvbnRleHRDbWRzIiwiYWN0aW9uQ21kcyIsInRvdWNoQ21kcyIsImltZUNtZHMiLCJuZXR3b3JrQ21kcyIsImNvdmVyYWdlQ21kcyIsInJlY29yZHNjcmVlbkNtZHMiLCJpbnRlbnRDbWRzIiwic2NyZWVuU3RyZWFtQ21kcyIsInBlcmZvcm1hbmNlQ21kcyIsImV4ZWN1dGVDbWRzIiwic2hlbGxDbWRzIiwiZW11Q29uc29sZUNtZHMiLCJzeXN0ZW1CYXJzQ21kcyIsImFwcE1hbmFnZW1lbnRDbWRzIiwiZmlsZUFjdGlvbnNDbWRzIiwibG9nQ21kcyIsIm1lZGlhUHJvamVjdGlvbkNtZHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbmRDbWRzIGZyb20gJy4vZmluZCc7XG5pbXBvcnQgZ2VuZXJhbENtZHMgZnJvbSAnLi9nZW5lcmFsJztcbmltcG9ydCBhbGVydENtZHMgZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQgZWxlbWVudENtZHMgZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCBjb250ZXh0Q21kcyBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IGFjdGlvbkNtZHMgZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB0b3VjaENtZHMgZnJvbSAnLi90b3VjaCc7XG5pbXBvcnQgaW1lQ21kcyBmcm9tICcuL2ltZSc7XG5pbXBvcnQgbmV0d29ya0NtZHMgZnJvbSAnLi9uZXR3b3JrJztcbmltcG9ydCBjb3ZlcmFnZUNtZHMgZnJvbSAnLi9jb3ZlcmFnZSc7XG5pbXBvcnQgcmVjb3Jkc2NyZWVuQ21kcyBmcm9tICcuL3JlY29yZHNjcmVlbic7XG5pbXBvcnQgc2NyZWVuU3RyZWFtQ21kcyBmcm9tICcuL3N0cmVhbXNjcmVlbic7XG5pbXBvcnQgcGVyZm9ybWFuY2VDbWRzIGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuaW1wb3J0IGV4ZWN1dGVDbWRzIGZyb20gJy4vZXhlY3V0ZSc7XG5pbXBvcnQgc2hlbGxDbWRzIGZyb20gJy4vc2hlbGwnO1xuaW1wb3J0IGVtdUNvbnNvbGVDbWRzIGZyb20gJy4vZW11LWNvbnNvbGUnO1xuaW1wb3J0IGZpbGVBY3Rpb25zQ21kcyBmcm9tICcuL2ZpbGUtYWN0aW9ucyc7XG5pbXBvcnQgYXBwTWFuYWdlbWVudENtZHMgZnJvbSAnLi9hcHAtbWFuYWdlbWVudCc7XG5pbXBvcnQgaW50ZW50Q21kcyBmcm9tICcuL2ludGVudCc7XG5pbXBvcnQgc3lzdGVtQmFyc0NtZHMgZnJvbSAnLi9zeXN0ZW0tYmFycyc7XG5pbXBvcnQgbG9nQ21kcyBmcm9tICcuL2xvZyc7XG5pbXBvcnQgbWVkaWFQcm9qZWN0aW9uQ21kcyBmcm9tICcuL21lZGlhLXByb2plY3Rpb24nO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9O1xuT2JqZWN0LmFzc2lnbihcbiAgY29tbWFuZHMsXG4gIGZpbmRDbWRzLFxuICBnZW5lcmFsQ21kcyxcbiAgYWxlcnRDbWRzLFxuICBlbGVtZW50Q21kcyxcbiAgY29udGV4dENtZHMsXG4gIGFjdGlvbkNtZHMsXG4gIHRvdWNoQ21kcyxcbiAgaW1lQ21kcyxcbiAgbmV0d29ya0NtZHMsXG4gIGNvdmVyYWdlQ21kcyxcbiAgcmVjb3Jkc2NyZWVuQ21kcyxcbiAgaW50ZW50Q21kcyxcbiAgc2NyZWVuU3RyZWFtQ21kcyxcbiAgcGVyZm9ybWFuY2VDbWRzLFxuICBleGVjdXRlQ21kcyxcbiAgc2hlbGxDbWRzLFxuICBlbXVDb25zb2xlQ21kcyxcbiAgc3lzdGVtQmFyc0NtZHMsXG4gIGFwcE1hbmFnZW1lbnRDbWRzLFxuICBmaWxlQWN0aW9uc0NtZHMsXG4gIGxvZ0NtZHMsXG4gIG1lZGlhUHJvamVjdGlvbkNtZHMsXG4gIC8vIGFkZCBvdGhlciBjb21tYW5kIHR5cGVzIGhlcmVcbik7XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBLElBQUlBLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFBQztBQUNsQkMsTUFBTSxDQUFDQyxNQUFNLENBQ1hGLFFBQVEsRUFDUkcsYUFBUSxFQUNSQyxnQkFBVyxFQUNYQyxjQUFTLEVBQ1RDLGdCQUFXLEVBQ1hDLGdCQUFXLEVBQ1hDLGdCQUFVLEVBQ1ZDLGNBQVMsRUFDVEMsWUFBTyxFQUNQQyxnQkFBVyxFQUNYQyxpQkFBWSxFQUNaQyxxQkFBZ0IsRUFDaEJDLGVBQVUsRUFDVkMscUJBQWdCLEVBQ2hCQyxvQkFBZSxFQUNmQyxnQkFBVyxFQUNYQyxjQUFTLEVBQ1RDLG1CQUFjLEVBQ2RDLG1CQUFjLEVBQ2RDLHNCQUFpQixFQUNqQkMsb0JBQWUsRUFDZkMsWUFBTyxFQUNQQztBQUFtQixDQUVwQjtBQUFDLGVBR2F4QixRQUFRO0FBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["commands","Object","assign","findCmds","generalCmds","alertCmds","elementCmds","contextCmds","actionCmds","touchCmds","imeCmds","networkCmds","coverageCmds","recordscreenCmds","intentCmds","screenStreamCmds","performanceCmds","executeCmds","shellCmds","emuConsoleCmds","systemBarsCmds","appManagementCmds","fileActionsCmds","logCmds","mediaProjectionCmds"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import findCmds from './find';\nimport generalCmds from './general';\nimport alertCmds from './alert';\nimport elementCmds from './element';\nimport contextCmds from './context';\nimport actionCmds from './actions';\nimport touchCmds from './touch';\nimport imeCmds from './ime';\nimport networkCmds from './network';\nimport coverageCmds from './coverage';\nimport recordscreenCmds from './recordscreen';\nimport screenStreamCmds from './streamscreen';\nimport performanceCmds from './performance';\nimport executeCmds from './execute';\nimport shellCmds from './shell';\nimport emuConsoleCmds from './emu-console';\nimport fileActionsCmds from './file-actions';\nimport appManagementCmds from './app-management';\nimport intentCmds from './intent';\nimport systemBarsCmds from './system-bars';\nimport logCmds from './log';\nimport mediaProjectionCmds from './media-projection';\n\n\nlet commands = {};\nObject.assign(\n commands,\n findCmds,\n generalCmds,\n alertCmds,\n elementCmds,\n contextCmds,\n actionCmds,\n touchCmds,\n imeCmds,\n networkCmds,\n coverageCmds,\n recordscreenCmds,\n intentCmds,\n screenStreamCmds,\n performanceCmds,\n executeCmds,\n shellCmds,\n emuConsoleCmds,\n systemBarsCmds,\n appManagementCmds,\n fileActionsCmds,\n logCmds,\n mediaProjectionCmds,\n // add other command types here\n);\n\nexport { commands };\nexport default commands;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["commands","Object","assign","findCmds","generalCmds","alertCmds","elementCmds","contextCmds","actionCmds","touchCmds","imeCmds","networkCmds","coverageCmds","recordscreenCmds","intentCmds","screenStreamCmds","performanceCmds","executeCmds","shellCmds","emuConsoleCmds","systemBarsCmds","appManagementCmds","fileActionsCmds","logCmds","mediaProjectionCmds"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import findCmds from './find';\nimport generalCmds from './general';\nimport alertCmds from './alert';\nimport elementCmds from './element';\nimport contextCmds from './context';\nimport actionCmds from './actions';\nimport touchCmds from './touch';\nimport imeCmds from './ime';\nimport networkCmds from './network';\nimport coverageCmds from './coverage';\nimport recordscreenCmds from './recordscreen';\nimport screenStreamCmds from './streamscreen';\nimport performanceCmds from './performance';\nimport executeCmds from './execute';\nimport shellCmds from './shell';\nimport emuConsoleCmds from './emu-console';\nimport fileActionsCmds from './file-actions';\nimport appManagementCmds from './app-management';\nimport intentCmds from './intent';\nimport systemBarsCmds from './system-bars';\nimport logCmds from './log';\nimport mediaProjectionCmds from './media-projection';\n\n\nlet commands = {};\nObject.assign(\n commands,\n findCmds,\n generalCmds,\n alertCmds,\n elementCmds,\n contextCmds,\n actionCmds,\n touchCmds,\n imeCmds,\n networkCmds,\n coverageCmds,\n recordscreenCmds,\n intentCmds,\n screenStreamCmds,\n performanceCmds,\n executeCmds,\n shellCmds,\n emuConsoleCmds,\n systemBarsCmds,\n appManagementCmds,\n fileActionsCmds,\n logCmds,\n mediaProjectionCmds,\n // add other command types here\n);\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,IAAIA,QAAQ,GAAG,CAAC,CAAC;AAAC;AAClBC,MAAM,CAACC,MAAM,CACXF,QAAQ,EACRG,aAAQ,EACRC,gBAAW,EACXC,cAAS,EACTC,gBAAW,EACXC,gBAAW,EACXC,gBAAU,EACVC,cAAS,EACTC,YAAO,EACPC,gBAAW,EACXC,iBAAY,EACZC,qBAAgB,EAChBC,eAAU,EACVC,qBAAgB,EAChBC,oBAAe,EACfC,gBAAW,EACXC,cAAS,EACTC,mBAAc,EACdC,mBAAc,EACdC,sBAAiB,EACjBC,oBAAe,EACfC,YAAO,EACPC;AAAmB,CAEpB;AAAC,eAGaxB,QAAQ;AAAA"}
|