appium-android-driver 5.13.0 → 5.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/index.js +43 -40
  3. package/build/lib/android-helpers.d.ts +136 -0
  4. package/build/lib/android-helpers.d.ts.map +1 -0
  5. package/build/lib/android-helpers.js +760 -679
  6. package/build/lib/android-helpers.js.map +1 -1
  7. package/build/lib/bootstrap.d.ts +29 -0
  8. package/build/lib/bootstrap.d.ts.map +1 -0
  9. package/build/lib/bootstrap.js +192 -179
  10. package/build/lib/bootstrap.js.map +1 -1
  11. package/build/lib/commands/actions.d.ts +209 -0
  12. package/build/lib/commands/actions.d.ts.map +1 -0
  13. package/build/lib/commands/actions.js +327 -265
  14. package/build/lib/commands/actions.js.map +1 -1
  15. package/build/lib/commands/alert.d.ts +10 -0
  16. package/build/lib/commands/alert.d.ts.map +1 -0
  17. package/build/lib/commands/alert.js +12 -18
  18. package/build/lib/commands/alert.js.map +1 -1
  19. package/build/lib/commands/app-management.d.ts +314 -0
  20. package/build/lib/commands/app-management.d.ts.map +1 -0
  21. package/build/lib/commands/app-management.js +278 -110
  22. package/build/lib/commands/app-management.js.map +1 -1
  23. package/build/lib/commands/context.d.ts +94 -0
  24. package/build/lib/commands/context.d.ts.map +1 -0
  25. package/build/lib/commands/context.js +412 -260
  26. package/build/lib/commands/context.js.map +1 -1
  27. package/build/lib/commands/coverage.d.ts +5 -0
  28. package/build/lib/commands/coverage.d.ts.map +1 -0
  29. package/build/lib/commands/coverage.js +14 -17
  30. package/build/lib/commands/coverage.js.map +1 -1
  31. package/build/lib/commands/element.d.ts +36 -0
  32. package/build/lib/commands/element.d.ts.map +1 -0
  33. package/build/lib/commands/element.js +97 -127
  34. package/build/lib/commands/element.js.map +1 -1
  35. package/build/lib/commands/emu-console.d.ts +49 -0
  36. package/build/lib/commands/emu-console.d.ts.map +1 -0
  37. package/build/lib/commands/emu-console.js +36 -25
  38. package/build/lib/commands/emu-console.js.map +1 -1
  39. package/build/lib/commands/execute.d.ts +6 -0
  40. package/build/lib/commands/execute.d.ts.map +1 -0
  41. package/build/lib/commands/execute.js +68 -69
  42. package/build/lib/commands/execute.js.map +1 -1
  43. package/build/lib/commands/file-actions.d.ts +129 -0
  44. package/build/lib/commands/file-actions.d.ts.map +1 -0
  45. package/build/lib/commands/file-actions.js +321 -178
  46. package/build/lib/commands/file-actions.js.map +1 -1
  47. package/build/lib/commands/find.d.ts +13 -0
  48. package/build/lib/commands/find.d.ts.map +1 -0
  49. package/build/lib/commands/find.js +69 -51
  50. package/build/lib/commands/find.js.map +1 -1
  51. package/build/lib/commands/general.d.ts +133 -0
  52. package/build/lib/commands/general.d.ts.map +1 -0
  53. package/build/lib/commands/general.js +275 -216
  54. package/build/lib/commands/general.js.map +1 -1
  55. package/build/lib/commands/ime.d.ts +11 -0
  56. package/build/lib/commands/ime.d.ts.map +1 -0
  57. package/build/lib/commands/ime.js +27 -33
  58. package/build/lib/commands/ime.js.map +1 -1
  59. package/build/lib/commands/index.d.ts +3 -0
  60. package/build/lib/commands/index.d.ts.map +1 -0
  61. package/build/lib/commands/index.js +32 -35
  62. package/build/lib/commands/index.js.map +1 -1
  63. package/build/lib/commands/intent.d.ts +418 -0
  64. package/build/lib/commands/intent.d.ts.map +1 -0
  65. package/build/lib/commands/intent.js +281 -151
  66. package/build/lib/commands/intent.js.map +1 -1
  67. package/build/lib/commands/keyboard.d.ts +6 -0
  68. package/build/lib/commands/keyboard.d.ts.map +1 -0
  69. package/build/lib/commands/keyboard.js +6 -14
  70. package/build/lib/commands/keyboard.js.map +1 -1
  71. package/build/lib/commands/log.d.ts +45 -0
  72. package/build/lib/commands/log.d.ts.map +1 -0
  73. package/build/lib/commands/log.js +117 -103
  74. package/build/lib/commands/log.js.map +1 -1
  75. package/build/lib/commands/media-projection.d.ts +144 -0
  76. package/build/lib/commands/media-projection.d.ts.map +1 -0
  77. package/build/lib/commands/media-projection.js +228 -171
  78. package/build/lib/commands/media-projection.js.map +1 -1
  79. package/build/lib/commands/network.d.ts +139 -0
  80. package/build/lib/commands/network.d.ts.map +1 -0
  81. package/build/lib/commands/network.js +249 -181
  82. package/build/lib/commands/network.js.map +1 -1
  83. package/build/lib/commands/performance.d.ts +101 -0
  84. package/build/lib/commands/performance.d.ts.map +1 -0
  85. package/build/lib/commands/performance.js +390 -236
  86. package/build/lib/commands/performance.js.map +1 -1
  87. package/build/lib/commands/permissions.d.ts +93 -0
  88. package/build/lib/commands/permissions.d.ts.map +1 -0
  89. package/build/lib/commands/permissions.js +133 -93
  90. package/build/lib/commands/permissions.js.map +1 -1
  91. package/build/lib/commands/recordscreen.d.ts +194 -0
  92. package/build/lib/commands/recordscreen.d.ts.map +1 -0
  93. package/build/lib/commands/recordscreen.js +293 -224
  94. package/build/lib/commands/recordscreen.js.map +1 -1
  95. package/build/lib/commands/shell.d.ts +8 -0
  96. package/build/lib/commands/shell.d.ts.map +1 -0
  97. package/build/lib/commands/shell.js +38 -43
  98. package/build/lib/commands/shell.js.map +1 -1
  99. package/build/lib/commands/streamscreen.d.ts +104 -0
  100. package/build/lib/commands/streamscreen.d.ts.map +1 -0
  101. package/build/lib/commands/streamscreen.js +364 -305
  102. package/build/lib/commands/streamscreen.js.map +1 -1
  103. package/build/lib/commands/system-bars.d.ts +100 -0
  104. package/build/lib/commands/system-bars.d.ts.map +1 -0
  105. package/build/lib/commands/system-bars.js +148 -90
  106. package/build/lib/commands/system-bars.js.map +1 -1
  107. package/build/lib/commands/touch.d.ts +30 -0
  108. package/build/lib/commands/touch.d.ts.map +1 -0
  109. package/build/lib/commands/touch.js +311 -287
  110. package/build/lib/commands/touch.js.map +1 -1
  111. package/build/lib/desired-caps.d.ts +353 -0
  112. package/build/lib/desired-caps.d.ts.map +1 -0
  113. package/build/lib/desired-caps.js +291 -292
  114. package/build/lib/desired-caps.js.map +1 -1
  115. package/build/lib/driver.d.ts +430 -0
  116. package/build/lib/driver.d.ts.map +1 -0
  117. package/build/lib/driver.js +449 -384
  118. package/build/lib/driver.js.map +1 -1
  119. package/build/lib/logger.d.ts +3 -0
  120. package/build/lib/logger.d.ts.map +1 -0
  121. package/build/lib/logger.js +5 -11
  122. package/build/lib/logger.js.map +1 -1
  123. package/build/lib/method-map.d.ts +389 -0
  124. package/build/lib/method-map.d.ts.map +1 -0
  125. package/build/lib/method-map.js +220 -394
  126. package/build/lib/method-map.js.map +1 -1
  127. package/build/lib/stubs.d.ts +8 -0
  128. package/build/lib/stubs.d.ts.map +1 -0
  129. package/build/lib/stubs.js +5 -0
  130. package/build/lib/stubs.js.map +1 -0
  131. package/build/lib/uiautomator.d.ts +24 -0
  132. package/build/lib/uiautomator.d.ts.map +1 -0
  133. package/build/lib/uiautomator.js +86 -82
  134. package/build/lib/uiautomator.js.map +1 -1
  135. package/build/lib/unlock-helpers.d.ts +38 -0
  136. package/build/lib/unlock-helpers.d.ts.map +1 -0
  137. package/build/lib/unlock-helpers.js +228 -204
  138. package/build/lib/unlock-helpers.js.map +1 -1
  139. package/build/lib/utils.d.ts +11 -0
  140. package/build/lib/utils.d.ts.map +1 -0
  141. package/build/lib/utils.js +23 -18
  142. package/build/lib/utils.js.map +1 -1
  143. package/build/lib/webview-helpers.d.ts +223 -0
  144. package/build/lib/webview-helpers.d.ts.map +1 -0
  145. package/build/lib/webview-helpers.js +476 -298
  146. package/build/lib/webview-helpers.js.map +1 -1
  147. package/index.js +3 -1
  148. package/lib/android-helpers.js +2 -1
  149. package/lib/stubs.ts +8 -0
  150. package/lib/unlock-helpers.js +2 -2
  151. package/package.json +23 -14
@@ -1 +1 @@
1
- {"version":3,"file":"file-actions.js","names":["_lodash","_interopRequireDefault","require","_support","_path","_driver","_utils","CONTAINER_PATH_MARKER","CONTAINER_PATH_PATTERN","RegExp","ANDROID_MEDIA_RESCAN_INTENT","commands","exports","parseContainerPath","remotePath","match","exec","Error","path","posix","resolve","scanMedia","adb","log","debug","getApiLevel","shell","e","warn","stderr","message","escapePath","p","replace","pullFile","endsWith","errors","InvalidArgumentError","tmpDestination","startsWith","packageId","pathInContainer","basename","errorAndThrow","localFile","tempDir","prefix","suffix","pull","util","toInMemoryBase64","toString","fs","exists","unlink","mobilePullFile","opts","requireArgs","pushFile","base64Data","_","isArray","Buffer","from","content","writeFile","dirname","push","mobilePushFile","payload","pullFolder","tmpRoot","openDir","zip","toInMemoryZip","encodeToBase64","rimraf","mobilePullFolder","deleteFileOrFolder","performRemoteFsCheck","op","runAs","passFlag","checkCmd","fullCmd","includes","ign","isFile","isDir","isPresent","dstPath","pkgId","info","expectsFile","mobileDeleteFile","_default","default"],"sources":["../../../lib/commands/file-actions.js"],"sourcesContent":["import _ from 'lodash';\nimport { fs, util, zip, tempDir } from '@appium/support';\nimport path from 'path';\nimport { errors } from 'appium/driver';\nimport { requireArgs } from '../utils';\n\n\nconst CONTAINER_PATH_MARKER = '@';\n// https://regex101.com/r/PLdB0G/2\nconst CONTAINER_PATH_PATTERN = new RegExp(`^${CONTAINER_PATH_MARKER}([^/]+)/(.+)`);\nconst ANDROID_MEDIA_RESCAN_INTENT = 'android.intent.action.MEDIA_SCANNER_SCAN_FILE';\n\n\nconst commands = {};\n\n/**\n * Parses the actual destination path from the given value\n *\n * @param {string} remotePath The preformatted remote path, which looks like\n * `@my.app.id/my/path`\n * @returns {Array<string>} An array, where the first item is the parsed package\n * identifier and the second one is the actual destination path inside the package.\n * @throws {Error} If the given string cannot be parsed\n */\nfunction parseContainerPath (remotePath) {\n const match = CONTAINER_PATH_PATTERN.exec(remotePath);\n if (!match) {\n throw new Error(`It is expected that package identifier is separated from the relative path with a single slash. ` +\n `'${remotePath}' is given instead`);\n }\n return [match[1], path.posix.resolve(`/data/data/${match[1]}`, match[2])];\n}\n\n/**\n * Scans the given file/folder on the remote device\n * and adds matching items to the device's media library.\n * Exceptions are ignored and written into the log.\n *\n * @param {ADB} adb ADB instance\n * @param {Object?} log Logger instance\n * @param {string} remotePath The file/folder path on the remote device\n */\nasync function scanMedia (adb, remotePath, log = null) {\n log?.debug(`Performing media scan of '${remotePath}'`);\n try {\n // https://github.com/appium/appium/issues/16184\n if (await adb.getApiLevel() >= 29) {\n await adb.scanMedia(remotePath);\n } else {\n await adb.shell([\n 'am', 'broadcast',\n '-a', ANDROID_MEDIA_RESCAN_INTENT,\n '-d', `file://${remotePath}`\n ]);\n }\n } catch (e) {\n log?.warn(`Ignoring an unexpected error upon media scanning of '${remotePath}': ${e.stderr || e.message}`);\n }\n}\n\n/**\n * A small helper, which escapes single quotes in paths,\n * so they are safe to be passed as arguments of shell commands\n *\n * @param {string} p The initial remote path\n * @returns {string} The escaped path value\n */\nfunction escapePath (p) {\n return p.replace(/'/g, `\\\\'`);\n}\n\n/**\n * Pulls a remote file from the device.\n * It is required, that a package has debugging flag enabled\n * in order to access its files.\n *\n * @param {string} remotePath The full path to the remote file\n * or a specially formatted path, which points to an item inside app bundle\n * @returns {string} Base64 encoded content of the pulled file\n * @throws {Error} If the pull operation failed\n */\ncommands.pullFile = async function pullFile (remotePath) {\n if (remotePath.endsWith('/')) {\n throw new errors.InvalidArgumentError(`It is expected that remote path points to a file and not to a folder. ` +\n `'${remotePath}' is given instead`);\n }\n let tmpDestination = null;\n if (remotePath.startsWith(CONTAINER_PATH_MARKER)) {\n const [packageId, pathInContainer] = parseContainerPath(remotePath);\n this.log.debug(`Parsed package identifier '${packageId}' from '${remotePath}'. Will get the data from '${pathInContainer}'`);\n tmpDestination = `/data/local/tmp/${path.posix.basename(pathInContainer)}`;\n try {\n await this.adb.shell(['run-as', packageId, `chmod 777 '${escapePath(pathInContainer)}'`]);\n await this.adb.shell([\n 'run-as', packageId,\n `cp -f '${escapePath(pathInContainer)}' '${escapePath(tmpDestination)}'`\n ]);\n } catch (e) {\n this.log.errorAndThrow(`Cannot access the container of '${packageId}' application. ` +\n `Is the application installed and has 'debuggable' build option set to true? ` +\n `Original error: ${e.message}`);\n }\n }\n const localFile = await tempDir.path({prefix: 'appium', suffix: '.tmp'});\n try {\n await this.adb.pull(tmpDestination || remotePath, localFile);\n return (await util.toInMemoryBase64(localFile)).toString();\n } finally {\n if (await fs.exists(localFile)) {\n await fs.unlink(localFile);\n }\n if (tmpDestination) {\n await this.adb.shell(['rm', '-f', tmpDestination]);\n }\n }\n};\n\n/**\n * @typedef {Object} PullFileOptions\n * @property {string} remotePath The full path to the remote file\n * or a specially formatted path, which points to an item inside an app bundle,\n * for example `@my.app.id/my/path`. It is mandatory for the app bundle to have\n * debugging enabled in order to use the latter remotePath format.\n */\n\n/**\n * Pulls a remote file from the device.\n *\n * @param {PullFileOptions} opts\n * @returns {string} The same as `pullFile`\n */\ncommands.mobilePullFile = async function mobilePullFile (opts = {}) {\n const { remotePath } = requireArgs('remotePath', opts);\n return await this.pullFile(remotePath);\n};\n\n/**\n * Pushes the given data to a file on the remote device\n * It is required, that a package has debugging flag enabled\n * in order to access its files.\n * After a file is pushed it gets automatically scanned for possible\n * media occurrences. If the scan succeeds then the file is added to the\n * media library.\n *\n * @param {string} remotePath The full path to the remote file or\n * a file inside a package bundle\n * @param {string} base64Data Base64 encoded data to be written to the\n * remote file. The remote file will be silently overridden if it already exists.\n * @throws {Error} If there was an error while pushing the data\n */\ncommands.pushFile = async function pushFile (remotePath, base64Data) {\n if (remotePath.endsWith('/')) {\n throw new errors.InvalidArgumentError(\n `It is expected that remote path points to a file and not to a folder. ` +\n `'${remotePath}' is given instead`\n );\n }\n const localFile = await tempDir.path({prefix: 'appium', suffix: '.tmp'});\n if (_.isArray(base64Data)) {\n // some clients (ahem) java, send a byte array encoding utf8 characters\n // instead of a string, which would be infinitely better!\n base64Data = Buffer.from(base64Data).toString('utf8');\n }\n const content = Buffer.from(base64Data, 'base64');\n let tmpDestination = null;\n try {\n await fs.writeFile(localFile, content.toString('binary'), 'binary');\n if (remotePath.startsWith(CONTAINER_PATH_MARKER)) {\n const [packageId, pathInContainer] = parseContainerPath(remotePath);\n this.log.debug(`Parsed package identifier '${packageId}' from '${remotePath}'. ` +\n `Will put the data into '${pathInContainer}'`);\n tmpDestination = `/data/local/tmp/${path.posix.basename(pathInContainer)}`;\n try {\n await this.adb.shell(\n ['run-as', packageId, `mkdir -p '${escapePath(path.posix.dirname(pathInContainer))}'`]\n );\n await this.adb.shell(['run-as', packageId, `touch '${escapePath(pathInContainer)}'`]);\n await this.adb.shell(['run-as', packageId, `chmod 777 '${escapePath(pathInContainer)}'`]);\n await this.adb.push(localFile, tmpDestination);\n await this.adb.shell([\n 'run-as', packageId,\n `cp -f '${escapePath(tmpDestination)}' '${escapePath(pathInContainer)}'`\n ]);\n } catch (e) {\n this.log.errorAndThrow(`Cannot access the container of '${packageId}' application. ` +\n `Is the application installed and has 'debuggable' build option set to true? ` +\n `Original error: ${e.message}`);\n }\n } else {\n // adb push creates folders and overwrites existing files.\n await this.adb.push(localFile, remotePath);\n\n // if we have pushed a file, it might be a media file, so ensure that\n // apps know about it\n await scanMedia(this.adb, remotePath, this.log);\n }\n } finally {\n if (await fs.exists(localFile)) {\n await fs.unlink(localFile);\n }\n if (tmpDestination) {\n await this.adb.shell(['rm', '-f', tmpDestination]);\n }\n }\n};\n\n/**\n * @typedef {Object} PushFileOptions\n * @property {string} remotePath The full path to the remote file\n * or a specially formatted path, which points to an item inside an app bundle,\n * for example `@my.app.id/my/path`. It is mandatory for the app bundle to have\n * debugging enabled in order to use the latter remotePath format.\n * @property {string} payload Base64-encoded content of the file to be pushed.\n */\n\n/**\n * Pushes the given data to a file on the remote device.\n *\n * @param {PushFileOptions} opts\n */\ncommands.mobilePushFile = async function mobilePushFile (opts = {}) {\n const { remotePath, payload } = requireArgs(['remotePath', 'payload'], opts);\n return await this.pushFile(remotePath, payload);\n};\n\n/**\n * Pulls the whole folder from the remote device\n *\n * @param {string} remotePath The full path to a folder on the\n * remote device or a folder inside an application bundle\n * @returns {string} Base64-encoded and zipped content of the folder\n * @throws {Error} If there was a failure while getting the folder content\n */\ncommands.pullFolder = async function pullFolder (remotePath) {\n const tmpRoot = await tempDir.openDir();\n try {\n await this.adb.pull(remotePath, tmpRoot);\n return (await zip.toInMemoryZip(tmpRoot, {\n encodeToBase64: true,\n })).toString();\n } finally {\n await fs.rimraf(tmpRoot);\n }\n};\n\n/**\n * @typedef {Object} PullFolderOptions\n * @property {string} remotePath The full path to the remote folder.\n */\n\n/**\n * Pulls the whole folder from the device under test.\n *\n * @param {PullFolderOptions} opts\n * @returns {string} The same as `pullFolder`\n */\ncommands.mobilePullFolder = async function mobilePullFolder (opts = {}) {\n const { remotePath } = requireArgs('remotePath', opts);\n return await this.pullFolder(remotePath);\n};\n\n/**\n * Deletes the given folder or file from the remote device\n *\n * @param {ADB} adb\n * @param {string} remotePath The full path to the remote folder\n * or file (folder names must end with a single slash)\n * @throws {Error} If the provided remote path is invalid or\n * the package content cannot be accessed\n * @returns {boolean} `true` if the remote item has been successfully deleted.\n * If the remote path is valid, but the remote path does not exist\n * this function return `false`.\n */\nasync function deleteFileOrFolder (adb, remotePath) {\n const performRemoteFsCheck = async (p, op, runAs = null) => {\n const passFlag = '__PASS__';\n const checkCmd = `[ -${op} '${escapePath(p)}' ] && echo ${passFlag}`;\n const fullCmd = runAs ? `run-as ${runAs} ${checkCmd}` : checkCmd;\n try {\n return _.includes(await adb.shell([fullCmd]), passFlag);\n } catch (ign) {\n return false;\n }\n };\n const isFile = async (p, runAs = null) => await performRemoteFsCheck(p, 'f', runAs);\n const isDir = async (p, runAs = null) => await performRemoteFsCheck(p, 'd', runAs);\n const isPresent = async (p, runAs = null) => await performRemoteFsCheck(p, 'e', runAs);\n\n let dstPath = remotePath;\n let pkgId = null;\n if (remotePath.startsWith(CONTAINER_PATH_MARKER)) {\n const [packageId, pathInContainer] = parseContainerPath(remotePath);\n this.log.debug(`Parsed package identifier '${packageId}' from '${remotePath}'`);\n dstPath = pathInContainer;\n pkgId = packageId;\n }\n\n if (pkgId) {\n try {\n await adb.shell(['run-as', pkgId, 'ls']);\n } catch (e) {\n this.log.errorAndThrow(`Cannot access the container of '${pkgId}' application. ` +\n `Is the application installed and has 'debuggable' build option set to true? ` +\n `Original error: ${e.message}`);\n }\n }\n\n if (!await isPresent(dstPath, pkgId)) {\n this.log.info(`The item at '${dstPath}' does not exist. Perhaps, already deleted?`);\n return false;\n }\n\n const expectsFile = !remotePath.endsWith('/');\n if (expectsFile && !await isFile(dstPath, pkgId)) {\n this.log.errorAndThrow(`The item at '${dstPath}' is not a file`);\n } else if (!expectsFile && !await isDir(dstPath, pkgId)) {\n this.log.errorAndThrow(`The item at '${dstPath}' is not a folder`);\n }\n\n if (pkgId) {\n await adb.shell(\n ['run-as', pkgId, `rm -f${expectsFile ? '' : 'r'} '${escapePath(dstPath)}'`]);\n } else {\n await adb.shell(['rm', `-f${expectsFile ? '' : 'r'}`, dstPath]);\n }\n if (await isPresent(dstPath, pkgId)) {\n this.log.errorAndThrow(`The item at '${dstPath}' still exists after being deleted. ` +\n `Is it writable?`);\n }\n return true;\n}\n\n/**\n * @typedef {Object} DeleteFileOpts\n * @property {!string} remotePath The full path to the remote file\n * or a file inside an application bundle (for example `@my.app.id/path/in/bundle`)\n */\n\n/**\n * Deletes a file on the remote device\n *\n * @param {DeleteFileOpts} opts\n * @returns {boolean} `true` if the remote file has been successfully deleted.\n * If the path to a remote file is valid, but the file itself does not exist\n * then `false` is returned.\n * @throws {Error} If the argument is invalid or there was an error while\n * deleting the file\n */\ncommands.mobileDeleteFile = async function mobileDeleteFile (opts = {}) {\n const {remotePath} = opts;\n if (!remotePath) {\n throw new errors.InvalidArgumentError(`The 'remotePath' argument is mandatory`);\n }\n if (remotePath.endsWith('/')) {\n throw new errors.InvalidArgumentError(\n `It is expected that remote path points to a folder and not to a file. ` +\n `'${remotePath}' is given instead`\n );\n }\n return await deleteFileOrFolder(this.adb, remotePath);\n};\n\nexport { commands };\nexport default commands;\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-actions.js","sourceRoot":"","sources":["../../../lib/commands/file-actions.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export default extensions;
2
+ export namespace helpers {
3
+ /**
4
+ * Reason for isolating doFindElementOrEls from findElOrEls is for reusing findElOrEls
5
+ * across android-drivers (like appium-uiautomator2-driver) to avoid code duplication.
6
+ * Other android-drivers (like appium-uiautomator2-driver) need to override doFindElementOrEls
7
+ * to facilitate findElOrEls.
8
+ */
9
+ function doFindElementOrEls(params: any): Promise<any>;
10
+ function findElOrEls(strategy: any, selector: any, mult: any, context?: string): Promise<any[] | undefined>;
11
+ }
12
+ declare let extensions: {};
13
+ //# sourceMappingURL=find.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.js"],"names":[],"mappings":";;IAMA;;;;;OAKG;IACH,uDAEC;IAMD,4GAyDC;;AAzEiB,2BAAe"}
@@ -1,62 +1,80 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.helpers = exports.default = void 0;
8
- require("source-map-support/register");
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
- var _driver = require("appium/driver");
11
- let helpers = {},
12
- extensions = {};
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.helpers = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const driver_1 = require("appium/driver");
9
+ let helpers = {}, extensions = {};
13
10
  exports.helpers = helpers;
11
+ /**
12
+ * Reason for isolating doFindElementOrEls from findElOrEls is for reusing findElOrEls
13
+ * across android-drivers (like appium-uiautomator2-driver) to avoid code duplication.
14
+ * Other android-drivers (like appium-uiautomator2-driver) need to override doFindElementOrEls
15
+ * to facilitate findElOrEls.
16
+ */
14
17
  helpers.doFindElementOrEls = async function doFindElementOrEls(params) {
15
- return await this.bootstrap.sendAction('find', params);
18
+ return await this.bootstrap.sendAction('find', params);
16
19
  };
20
+ // stategy: locator strategy
21
+ // selector: the actual selector for finding an element
22
+ // mult: multiple elements or just one?
23
+ // context: finding an element from the root context? or starting from another element
17
24
  helpers.findElOrEls = async function findElOrEls(strategy, selector, mult, context = '') {
18
- if (!selector) {
19
- throw new Error('Must provide a selector when finding elements');
20
- }
21
- let params = {
22
- strategy,
23
- selector,
24
- context,
25
- multiple: mult
26
- };
27
- let element;
28
- let doFind = async () => {
25
+ if (!selector) {
26
+ throw new Error('Must provide a selector when finding elements');
27
+ }
28
+ let params = {
29
+ strategy,
30
+ selector,
31
+ context,
32
+ multiple: mult
33
+ };
34
+ let element;
35
+ let doFind = async () => {
36
+ try {
37
+ element = await this.doFindElementOrEls(params);
38
+ }
39
+ catch (err) {
40
+ // if the error that comes back is from a proxied request, we need to
41
+ // unwrap it to its actual protocol error first
42
+ if ((0, driver_1.isErrorType)(err, driver_1.errors.ProxyRequestError)) {
43
+ err = err.getActualError(); // eslint-disable-line no-ex-assign
44
+ }
45
+ // now we have to inspect the error to determine if it is a no such
46
+ // element error, based on the shape of the error object from
47
+ // appium/driver
48
+ if ((0, driver_1.isErrorType)(err, driver_1.errors.NoSuchElementError)) {
49
+ // we are fine with this, just indicate a retry
50
+ return false;
51
+ }
52
+ throw err;
53
+ }
54
+ // we want to return false if we want to potentially try again
55
+ return !lodash_1.default.isEmpty(element);
56
+ };
29
57
  try {
30
- element = await this.doFindElementOrEls(params);
31
- } catch (err) {
32
- if ((0, _driver.isErrorType)(err, _driver.errors.ProxyRequestError)) {
33
- err = err.getActualError();
34
- }
35
- if ((0, _driver.isErrorType)(err, _driver.errors.NoSuchElementError)) {
36
- return false;
37
- }
38
- throw err;
58
+ await this.implicitWaitForCondition(doFind);
59
+ }
60
+ catch (err) {
61
+ if (err.message && err.message.match(/Condition unmet/)) {
62
+ // only get here if we are looking for multiple elements
63
+ // condition was not met setting res to empty array
64
+ element = [];
65
+ }
66
+ else {
67
+ throw err;
68
+ }
69
+ }
70
+ if (mult) {
71
+ return element;
39
72
  }
40
- return !_lodash.default.isEmpty(element);
41
- };
42
- try {
43
- await this.implicitWaitForCondition(doFind);
44
- } catch (err) {
45
- if (err.message && err.message.match(/Condition unmet/)) {
46
- element = [];
47
- } else {
48
- throw err;
73
+ if (lodash_1.default.isEmpty(element)) {
74
+ throw new driver_1.errors.NoSuchElementError();
49
75
  }
50
- }
51
- if (mult) {
52
76
  return element;
53
- }
54
- if (_lodash.default.isEmpty(element)) {
55
- throw new _driver.errors.NoSuchElementError();
56
- }
57
- return element;
58
77
  };
59
78
  Object.assign(extensions, helpers);
60
- var _default = extensions;
61
- exports.default = _default;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJleHBvcnRzIiwiZG9GaW5kRWxlbWVudE9yRWxzIiwicGFyYW1zIiwiYm9vdHN0cmFwIiwic2VuZEFjdGlvbiIsImZpbmRFbE9yRWxzIiwic3RyYXRlZ3kiLCJzZWxlY3RvciIsIm11bHQiLCJjb250ZXh0IiwiRXJyb3IiLCJtdWx0aXBsZSIsImVsZW1lbnQiLCJkb0ZpbmQiLCJlcnIiLCJpc0Vycm9yVHlwZSIsImVycm9ycyIsIlByb3h5UmVxdWVzdEVycm9yIiwiZ2V0QWN0dWFsRXJyb3IiLCJOb1N1Y2hFbGVtZW50RXJyb3IiLCJfIiwiaXNFbXB0eSIsImltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiIsIm1lc3NhZ2UiLCJtYXRjaCIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZhdWx0IiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9maW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMsIGlzRXJyb3JUeXBlIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5cblxubGV0IGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG4vKipcbiAqIFJlYXNvbiBmb3IgaXNvbGF0aW5nIGRvRmluZEVsZW1lbnRPckVscyBmcm9tIGZpbmRFbE9yRWxzIGlzIGZvciByZXVzaW5nIGZpbmRFbE9yRWxzXG4gKiBhY3Jvc3MgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLlxuICogT3RoZXIgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSBuZWVkIHRvIG92ZXJyaWRlIGRvRmluZEVsZW1lbnRPckVsc1xuICogdG8gZmFjaWxpdGF0ZSBmaW5kRWxPckVscy5cbiAqL1xuaGVscGVycy5kb0ZpbmRFbGVtZW50T3JFbHMgPSBhc3luYyBmdW5jdGlvbiBkb0ZpbmRFbGVtZW50T3JFbHMgKHBhcmFtcykge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZmluZCcsIHBhcmFtcyk7XG59O1xuXG4vLyBzdGF0ZWd5OiBsb2NhdG9yIHN0cmF0ZWd5XG4vLyBzZWxlY3RvcjogdGhlIGFjdHVhbCBzZWxlY3RvciBmb3IgZmluZGluZyBhbiBlbGVtZW50XG4vLyBtdWx0OiBtdWx0aXBsZSBlbGVtZW50cyBvciBqdXN0IG9uZT9cbi8vIGNvbnRleHQ6IGZpbmRpbmcgYW4gZWxlbWVudCBmcm9tIHRoZSByb290IGNvbnRleHQ/IG9yIHN0YXJ0aW5nIGZyb20gYW5vdGhlciBlbGVtZW50XG5oZWxwZXJzLmZpbmRFbE9yRWxzID0gYXN5bmMgZnVuY3Rpb24gZmluZEVsT3JFbHMgKHN0cmF0ZWd5LCBzZWxlY3RvciwgbXVsdCwgY29udGV4dCA9ICcnKSB7XG4gIGlmICghc2VsZWN0b3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgcHJvdmlkZSBhIHNlbGVjdG9yIHdoZW4gZmluZGluZyBlbGVtZW50cycpO1xuICB9XG5cbiAgbGV0IHBhcmFtcyA9IHtcbiAgICBzdHJhdGVneSxcbiAgICBzZWxlY3RvcixcbiAgICBjb250ZXh0LFxuICAgIG11bHRpcGxlOiBtdWx0XG4gIH07XG5cbiAgbGV0IGVsZW1lbnQ7XG4gIGxldCBkb0ZpbmQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGVsZW1lbnQgPSBhd2FpdCB0aGlzLmRvRmluZEVsZW1lbnRPckVscyhwYXJhbXMpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuXG4gICAgICAvLyBpZiB0aGUgZXJyb3IgdGhhdCBjb21lcyBiYWNrIGlzIGZyb20gYSBwcm94aWVkIHJlcXVlc3QsIHdlIG5lZWQgdG9cbiAgICAgIC8vIHVud3JhcCBpdCB0byBpdHMgYWN0dWFsIHByb3RvY29sIGVycm9yIGZpcnN0XG4gICAgICBpZiAoaXNFcnJvclR5cGUoZXJyLCBlcnJvcnMuUHJveHlSZXF1ZXN0RXJyb3IpKSB7XG4gICAgICAgIGVyciA9IGVyci5nZXRBY3R1YWxFcnJvcigpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWV4LWFzc2lnblxuICAgICAgfVxuXG4gICAgICAvLyBub3cgd2UgaGF2ZSB0byBpbnNwZWN0IHRoZSBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBubyBzdWNoXG4gICAgICAvLyBlbGVtZW50IGVycm9yLCBiYXNlZCBvbiB0aGUgc2hhcGUgb2YgdGhlIGVycm9yIG9iamVjdCBmcm9tXG4gICAgICAvLyBhcHBpdW0vZHJpdmVyXG4gICAgICBpZiAoaXNFcnJvclR5cGUoZXJyLCBlcnJvcnMuTm9TdWNoRWxlbWVudEVycm9yKSkge1xuICAgICAgICAvLyB3ZSBhcmUgZmluZSB3aXRoIHRoaXMsIGp1c3QgaW5kaWNhdGUgYSByZXRyeVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgLy8gd2Ugd2FudCB0byByZXR1cm4gZmFsc2UgaWYgd2Ugd2FudCB0byBwb3RlbnRpYWxseSB0cnkgYWdhaW5cbiAgICByZXR1cm4gIV8uaXNFbXB0eShlbGVtZW50KTtcbiAgfTtcblxuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uKGRvRmluZCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIubWVzc2FnZSAmJiBlcnIubWVzc2FnZS5tYXRjaCgvQ29uZGl0aW9uIHVubWV0LykpIHtcbiAgICAgIC8vIG9ubHkgZ2V0IGhlcmUgaWYgd2UgYXJlIGxvb2tpbmcgZm9yIG11bHRpcGxlIGVsZW1lbnRzXG4gICAgICAvLyBjb25kaXRpb24gd2FzIG5vdCBtZXQgc2V0dGluZyByZXMgdG8gZW1wdHkgYXJyYXlcbiAgICAgIGVsZW1lbnQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdWx0KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbiAgaWYgKF8uaXNFbXB0eShlbGVtZW50KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRWxlbWVudEVycm9yKCk7XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFHQSxJQUFJRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFBQ0MsT0FBQSxDQUFBRixPQUFBLEdBQUFBLE9BQUE7QUFRbENBLE9BQU8sQ0FBQ0csa0JBQWtCLEdBQUcsZUFBZUEsa0JBQWtCQSxDQUFFQyxNQUFNLEVBQUU7RUFDdEUsT0FBTyxNQUFNLElBQUksQ0FBQ0MsU0FBUyxDQUFDQyxVQUFVLENBQUMsTUFBTSxFQUFFRixNQUFNLENBQUM7QUFDeEQsQ0FBQztBQU1ESixPQUFPLENBQUNPLFdBQVcsR0FBRyxlQUFlQSxXQUFXQSxDQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEdBQUcsRUFBRSxFQUFFO0VBQ3hGLElBQUksQ0FBQ0YsUUFBUSxFQUFFO0lBQ2IsTUFBTSxJQUFJRyxLQUFLLENBQUMsK0NBQStDLENBQUM7RUFDbEU7RUFFQSxJQUFJUixNQUFNLEdBQUc7SUFDWEksUUFBUTtJQUNSQyxRQUFRO0lBQ1JFLE9BQU87SUFDUEUsUUFBUSxFQUFFSDtFQUNaLENBQUM7RUFFRCxJQUFJSSxPQUFPO0VBQ1gsSUFBSUMsTUFBTSxHQUFHLE1BQUFBLENBQUEsS0FBWTtJQUN2QixJQUFJO01BQ0ZELE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQ1gsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQztJQUNqRCxDQUFDLENBQUMsT0FBT1ksR0FBRyxFQUFFO01BSVosSUFBSSxJQUFBQyxtQkFBVyxFQUFDRCxHQUFHLEVBQUVFLGNBQU0sQ0FBQ0MsaUJBQWlCLENBQUMsRUFBRTtRQUM5Q0gsR0FBRyxHQUFHQSxHQUFHLENBQUNJLGNBQWMsQ0FBQyxDQUFDO01BQzVCO01BS0EsSUFBSSxJQUFBSCxtQkFBVyxFQUFDRCxHQUFHLEVBQUVFLGNBQU0sQ0FBQ0csa0JBQWtCLENBQUMsRUFBRTtRQUUvQyxPQUFPLEtBQUs7TUFDZDtNQUNBLE1BQU1MLEdBQUc7SUFDWDtJQUdBLE9BQU8sQ0FBQ00sZUFBQyxDQUFDQyxPQUFPLENBQUNULE9BQU8sQ0FBQztFQUM1QixDQUFDO0VBRUQsSUFBSTtJQUNGLE1BQU0sSUFBSSxDQUFDVSx3QkFBd0IsQ0FBQ1QsTUFBTSxDQUFDO0VBQzdDLENBQUMsQ0FBQyxPQUFPQyxHQUFHLEVBQUU7SUFDWixJQUFJQSxHQUFHLENBQUNTLE9BQU8sSUFBSVQsR0FBRyxDQUFDUyxPQUFPLENBQUNDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO01BR3ZEWixPQUFPLEdBQUcsRUFBRTtJQUNkLENBQUMsTUFBTTtNQUNMLE1BQU1FLEdBQUc7SUFDWDtFQUNGO0VBRUEsSUFBSU4sSUFBSSxFQUFFO0lBQ1IsT0FBT0ksT0FBTztFQUNoQjtFQUNBLElBQUlRLGVBQUMsQ0FBQ0MsT0FBTyxDQUFDVCxPQUFPLENBQUMsRUFBRTtJQUN0QixNQUFNLElBQUlJLGNBQU0sQ0FBQ0csa0JBQWtCLENBQUMsQ0FBQztFQUN2QztFQUNBLE9BQU9QLE9BQU87QUFDaEIsQ0FBQztBQUVEYSxNQUFNLENBQUNDLE1BQU0sQ0FBQzNCLFVBQVUsRUFBRUQsT0FBTyxDQUFDO0FBQUMsSUFBQTZCLFFBQUEsR0FFcEI1QixVQUFVO0FBQUFDLE9BQUEsQ0FBQTRCLE9BQUEsR0FBQUQsUUFBQSJ9
79
+ exports.default = extensions;
80
+ //# sourceMappingURL=find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","names":["_lodash","_interopRequireDefault","require","_driver","helpers","extensions","exports","doFindElementOrEls","params","bootstrap","sendAction","findElOrEls","strategy","selector","mult","context","Error","multiple","element","doFind","err","isErrorType","errors","ProxyRequestError","getActualError","NoSuchElementError","_","isEmpty","implicitWaitForCondition","message","match","Object","assign","_default","default"],"sources":["../../../lib/commands/find.js"],"sourcesContent":["import _ from 'lodash';\nimport { errors, isErrorType } from 'appium/driver';\n\n\nlet helpers = {}, extensions = {};\n\n/**\n * Reason for isolating doFindElementOrEls from findElOrEls is for reusing findElOrEls\n * across android-drivers (like appium-uiautomator2-driver) to avoid code duplication.\n * Other android-drivers (like appium-uiautomator2-driver) need to override doFindElementOrEls\n * to facilitate findElOrEls.\n */\nhelpers.doFindElementOrEls = async function doFindElementOrEls (params) {\n return await this.bootstrap.sendAction('find', params);\n};\n\n// stategy: locator strategy\n// selector: the actual selector for finding an element\n// mult: multiple elements or just one?\n// context: finding an element from the root context? or starting from another element\nhelpers.findElOrEls = async function findElOrEls (strategy, selector, mult, context = '') {\n if (!selector) {\n throw new Error('Must provide a selector when finding elements');\n }\n\n let params = {\n strategy,\n selector,\n context,\n multiple: mult\n };\n\n let element;\n let doFind = async () => {\n try {\n element = await this.doFindElementOrEls(params);\n } catch (err) {\n\n // if the error that comes back is from a proxied request, we need to\n // unwrap it to its actual protocol error first\n if (isErrorType(err, errors.ProxyRequestError)) {\n err = err.getActualError(); // eslint-disable-line no-ex-assign\n }\n\n // now we have to inspect the error to determine if it is a no such\n // element error, based on the shape of the error object from\n // appium/driver\n if (isErrorType(err, errors.NoSuchElementError)) {\n // we are fine with this, just indicate a retry\n return false;\n }\n throw err;\n }\n\n // we want to return false if we want to potentially try again\n return !_.isEmpty(element);\n };\n\n try {\n await this.implicitWaitForCondition(doFind);\n } catch (err) {\n if (err.message && err.message.match(/Condition unmet/)) {\n // only get here if we are looking for multiple elements\n // condition was not met setting res to empty array\n element = [];\n } else {\n throw err;\n }\n }\n\n if (mult) {\n return element;\n }\n if (_.isEmpty(element)) {\n throw new errors.NoSuchElementError();\n }\n return element;\n};\n\nObject.assign(extensions, helpers);\nexport { helpers };\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAIE,OAAO,GAAG,CAAC,CAAC;EAAEC,UAAU,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAF,OAAA,GAAAA,OAAA;AAQlCA,OAAO,CAACG,kBAAkB,GAAG,eAAeA,kBAAkBA,CAAEC,MAAM,EAAE;EACtE,OAAO,MAAM,IAAI,CAACC,SAAS,CAACC,UAAU,CAAC,MAAM,EAAEF,MAAM,CAAC;AACxD,CAAC;AAMDJ,OAAO,CAACO,WAAW,GAAG,eAAeA,WAAWA,CAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,GAAG,EAAE,EAAE;EACxF,IAAI,CAACF,QAAQ,EAAE;IACb,MAAM,IAAIG,KAAK,CAAC,+CAA+C,CAAC;EAClE;EAEA,IAAIR,MAAM,GAAG;IACXI,QAAQ;IACRC,QAAQ;IACRE,OAAO;IACPE,QAAQ,EAAEH;EACZ,CAAC;EAED,IAAII,OAAO;EACX,IAAIC,MAAM,GAAG,MAAAA,CAAA,KAAY;IACvB,IAAI;MACFD,OAAO,GAAG,MAAM,IAAI,CAACX,kBAAkB,CAACC,MAAM,CAAC;IACjD,CAAC,CAAC,OAAOY,GAAG,EAAE;MAIZ,IAAI,IAAAC,mBAAW,EAACD,GAAG,EAAEE,cAAM,CAACC,iBAAiB,CAAC,EAAE;QAC9CH,GAAG,GAAGA,GAAG,CAACI,cAAc,CAAC,CAAC;MAC5B;MAKA,IAAI,IAAAH,mBAAW,EAACD,GAAG,EAAEE,cAAM,CAACG,kBAAkB,CAAC,EAAE;QAE/C,OAAO,KAAK;MACd;MACA,MAAML,GAAG;IACX;IAGA,OAAO,CAACM,eAAC,CAACC,OAAO,CAACT,OAAO,CAAC;EAC5B,CAAC;EAED,IAAI;IACF,MAAM,IAAI,CAACU,wBAAwB,CAACT,MAAM,CAAC;EAC7C,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACS,OAAO,IAAIT,GAAG,CAACS,OAAO,CAACC,KAAK,CAAC,iBAAiB,CAAC,EAAE;MAGvDZ,OAAO,GAAG,EAAE;IACd,CAAC,MAAM;MACL,MAAME,GAAG;IACX;EACF;EAEA,IAAIN,IAAI,EAAE;IACR,OAAOI,OAAO;EAChB;EACA,IAAIQ,eAAC,CAACC,OAAO,CAACT,OAAO,CAAC,EAAE;IACtB,MAAM,IAAII,cAAM,CAACG,kBAAkB,CAAC,CAAC;EACvC;EACA,OAAOP,OAAO;AAChB,CAAC;AAEDa,MAAM,CAACC,MAAM,CAAC3B,UAAU,EAAED,OAAO,CAAC;AAAC,IAAA6B,QAAA,GAEpB5B,UAAU;AAAAC,OAAA,CAAA4B,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,0CAAoD;AAGpD,IAAI,OAAO,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC;AA4EzB,0BAAO;AA1EhB;;;;;GAKG;AACH,OAAO,CAAC,kBAAkB,GAAG,KAAK,UAAU,kBAAkB,CAAE,MAAM;IACpE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,4BAA4B;AAC5B,uDAAuD;AACvD,uCAAuC;AACvC,sFAAsF;AACtF,OAAO,CAAC,WAAW,GAAG,KAAK,UAAU,WAAW,CAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE;IACtF,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;IAED,IAAI,MAAM,GAAG;QACX,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI;YACF,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SACjD;QAAC,OAAO,GAAG,EAAE;YAEZ,qEAAqE;YACrE,+CAA+C;YAC/C,IAAI,IAAA,oBAAW,EAAC,GAAG,EAAE,eAAM,CAAC,iBAAiB,CAAC,EAAE;gBAC9C,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,mCAAmC;aAChE;YAED,mEAAmE;YACnE,6DAA6D;YAC7D,gBAAgB;YAChB,IAAI,IAAA,oBAAW,EAAC,GAAG,EAAE,eAAM,CAAC,kBAAkB,CAAC,EAAE;gBAC/C,+CAA+C;gBAC/C,OAAO,KAAK,CAAC;aACd;YACD,MAAM,GAAG,CAAC;SACX;QAED,8DAA8D;QAC9D,OAAO,CAAC,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI;QACF,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;KAC7C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACvD,wDAAwD;YACxD,mDAAmD;YACnD,OAAO,GAAG,EAAE,CAAC;SACd;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;IAED,IAAI,IAAI,EAAE;QACR,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACtB,MAAM,IAAI,eAAM,CAAC,kBAAkB,EAAE,CAAC;KACvC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAEnC,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,133 @@
1
+ export default extensions;
2
+ export type DeviceTimeOptions = {
3
+ /**
4
+ * [YYYY-MM-DDTHH:mm:ssZ] - See getDeviceTime#format
5
+ */
6
+ format: string;
7
+ };
8
+ export type SmsListOptions = {
9
+ /**
10
+ * [100] - The maximum count of recent SMS messages
11
+ * to retrieve
12
+ */
13
+ max: number;
14
+ };
15
+ export type UnlockOptions = {
16
+ /**
17
+ * The unlock key. The value of this key depends
18
+ * on the actual unlock type and could be a pin/password/pattern value or
19
+ * a biometric finger id.
20
+ * If not provided then the corresponding value from session capabilities is used.
21
+ */
22
+ key: string | null;
23
+ /**
24
+ * The unlock type. The following unlock types
25
+ * are supported: `pin`, `pinWithKeyEvent`, `password`, `pattern` and `fingerprint`.
26
+ * If not provided then the corresponding value from session capabilities is used.
27
+ */
28
+ type: string | null;
29
+ /**
30
+ * Either 'locksettings' (default) or 'uiautomator'.
31
+ * Setting it to 'uiautomator' will enforce the driver to avoid using special
32
+ * ADB shortcuts in order to speed up the unlock procedure.
33
+ */
34
+ strategy: string | null;
35
+ /**
36
+ * [2000] The maximum time in milliseconds
37
+ * to wait until the screen gets unlocked
38
+ */
39
+ timeoutMs: number | null;
40
+ };
41
+ export namespace commands {
42
+ function keys(keys: any): Promise<void>;
43
+ function doSendKeys(params: any): Promise<any>;
44
+ /**
45
+ * Retrieves the current device's timestamp.
46
+ *
47
+ * @param {string} format - The set of format specifiers. Read
48
+ * https://momentjs.com/docs/ to get the full list of supported
49
+ * datetime format specifiers. The default format is
50
+ * `YYYY-MM-DDTHH:mm:ssZ`, which complies to ISO-8601
51
+ * @return {string} Formatted datetime string or the raw command output if formatting fails
52
+ */
53
+ function getDeviceTime(format?: string): string;
54
+ /**
55
+ * @typedef {Object} DeviceTimeOptions
56
+ * @property {string} format [YYYY-MM-DDTHH:mm:ssZ] - See getDeviceTime#format
57
+ */
58
+ /**
59
+ * Retrieves the current device time
60
+ *
61
+ * @param {DeviceTimeOptions} opts
62
+ * @return {string} Formatted datetime string or the raw command output if formatting fails
63
+ */
64
+ function mobileGetDeviceTime(opts?: DeviceTimeOptions): string;
65
+ function getPageSource(): Promise<any>;
66
+ function back(): Promise<any>;
67
+ function openSettingsActivity(setting: any): Promise<void>;
68
+ function getWindowSize(): Promise<any>;
69
+ function getWindowRect(): Promise<{
70
+ width: any;
71
+ height: any;
72
+ x: number;
73
+ y: number;
74
+ }>;
75
+ function getCurrentActivity(): Promise<any>;
76
+ function getCurrentPackage(): Promise<any>;
77
+ function background(seconds: any): Promise<any>;
78
+ function getStrings(language: any): Promise<{}>;
79
+ function launchApp(): Promise<void>;
80
+ function startActivity(appPackage: any, appActivity: any, appWaitPackage: any, appWaitActivity: any, intentAction: any, intentCategory: any, intentFlags: any, optionalIntentArguments: any, dontStopAppOnReset: any): Promise<void>;
81
+ function reset(): Promise<any>;
82
+ function startAUT(): Promise<void>;
83
+ function setUrl(uri: any): Promise<void>;
84
+ function closeApp(): Promise<void>;
85
+ function getDisplayDensity(): Promise<number | undefined>;
86
+ function mobilePerformEditorAction(opts?: {}): Promise<void>;
87
+ /**
88
+ * Retrieves the list of recent system notifications.
89
+ *
90
+ * @returns {Object} See the documentation on `adb.getNotifications` for
91
+ * more details
92
+ */
93
+ function mobileGetNotifications(): any;
94
+ /**
95
+ * @typedef {Object} SmsListOptions
96
+ * @property {number} max [100] - The maximum count of recent SMS messages
97
+ * to retrieve
98
+ */
99
+ /**
100
+ * Retrieves the list of recent SMS messages with their properties.
101
+ *
102
+ * @param {SmsListOptions} opts
103
+ * @returns {Object} See the documentation on `adb.getSmsList` for
104
+ * more details
105
+ */
106
+ function mobileListSms(opts?: SmsListOptions): any;
107
+ /**
108
+ * @typedef {Object} UnlockOptions
109
+ * @property {string?} key The unlock key. The value of this key depends
110
+ * on the actual unlock type and could be a pin/password/pattern value or
111
+ * a biometric finger id.
112
+ * If not provided then the corresponding value from session capabilities is used.
113
+ * @property {string?} type The unlock type. The following unlock types
114
+ * are supported: `pin`, `pinWithKeyEvent`, `password`, `pattern` and `fingerprint`.
115
+ * If not provided then the corresponding value from session capabilities is used.
116
+ * @property {string?} strategy Either 'locksettings' (default) or 'uiautomator'.
117
+ * Setting it to 'uiautomator' will enforce the driver to avoid using special
118
+ * ADB shortcuts in order to speed up the unlock procedure.
119
+ * @property {number?} timeoutMs [2000] The maximum time in milliseconds
120
+ * to wait until the screen gets unlocked
121
+ */
122
+ /**
123
+ * Unlocks the device if it is locked. Noop if the device's screen is not locked.
124
+ *
125
+ * @param {UnlockOptions} opts
126
+ * @throws {Error} if unlock operation fails or the provided
127
+ * arguments are not valid
128
+ */
129
+ function mobileUnlock(opts?: UnlockOptions): Promise<void>;
130
+ }
131
+ export let helpers: {};
132
+ declare let extensions: {};
133
+ //# sourceMappingURL=general.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.js"],"names":[],"mappings":";;;;;YAoDc,MAAM;;;;;;;SA8PN,MAAM;;;;;;;;;SAiBN,MAAM;;;;;;UAIN,MAAM;;;;;;cAGN,MAAM;;;;;eAGN,MAAM;;;IAlUpB,wCAWC;IAED,+CAEC;IAED;;;;;;;;OAQG;IACH,gDAWC;IAED;;;OAGG;IAEH;;;;;OAKG;IACH,+DAEC;IAED,uCAEC;IAED,8BAEC;IAED,2DAIC;IAED,uCAEC;IAGD;;;;;OAQC;IAED,4CAEC;IAED,2CAEC;IAED,gDA0DC;IAED,gDA4BC;IAED,oCAGC;IAED,qOAyBC;IAED,+BAKC;IAED,mCAeC;IAID,yCAEC;IAGD,mCAIC;IAED,0DAsBC;IAED,6DAOC;IAED;;;;;OAKG;IACH,uCAEC;IAED;;;;OAIG;IAEH;;;;;;OAMG;IACH,mDAEC;IAED;;;;;;;;;;;;;;OAcG;IAEH;;;;;;OAMG;IACH,2DAYC;;AA3VkB,uBAAY;AAAE,2BAAe"}