@limrun/appium-xcuitest-driver 10.4.3-lim.1

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 (444) hide show
  1. package/CHANGELOG.md +2600 -0
  2. package/LICENSE +201 -0
  3. package/README.md +55 -0
  4. package/build/index.d.ts +5 -0
  5. package/build/index.js +41 -0
  6. package/build/lib/app-infos-cache.d.ts +62 -0
  7. package/build/lib/app-infos-cache.d.ts.map +1 -0
  8. package/build/lib/app-infos-cache.js +180 -0
  9. package/build/lib/app-infos-cache.js.map +1 -0
  10. package/build/lib/app-utils.d.ts +89 -0
  11. package/build/lib/app-utils.d.ts.map +1 -0
  12. package/build/lib/app-utils.js +657 -0
  13. package/build/lib/app-utils.js.map +1 -0
  14. package/build/lib/commands/active-app-info.d.ts +9 -0
  15. package/build/lib/commands/active-app-info.d.ts.map +1 -0
  16. package/build/lib/commands/active-app-info.js +14 -0
  17. package/build/lib/commands/active-app-info.js.map +1 -0
  18. package/build/lib/commands/advanced-battery-types.d.ts +444 -0
  19. package/build/lib/commands/advanced-battery-types.d.ts.map +1 -0
  20. package/build/lib/commands/advanced-battery-types.js +8 -0
  21. package/build/lib/commands/advanced-battery-types.js.map +1 -0
  22. package/build/lib/commands/alert.d.ts +45 -0
  23. package/build/lib/commands/alert.d.ts.map +1 -0
  24. package/build/lib/commands/alert.js +87 -0
  25. package/build/lib/commands/alert.js.map +1 -0
  26. package/build/lib/commands/app-management.d.ts +153 -0
  27. package/build/lib/commands/app-management.d.ts.map +1 -0
  28. package/build/lib/commands/app-management.js +323 -0
  29. package/build/lib/commands/app-management.js.map +1 -0
  30. package/build/lib/commands/app-strings.d.ts +16 -0
  31. package/build/lib/commands/app-strings.d.ts.map +1 -0
  32. package/build/lib/commands/app-strings.js +30 -0
  33. package/build/lib/commands/app-strings.js.map +1 -0
  34. package/build/lib/commands/appearance.d.ts +22 -0
  35. package/build/lib/commands/appearance.d.ts.map +1 -0
  36. package/build/lib/commands/appearance.js +74 -0
  37. package/build/lib/commands/appearance.js.map +1 -0
  38. package/build/lib/commands/audit.d.ts +43 -0
  39. package/build/lib/commands/audit.d.ts.map +1 -0
  40. package/build/lib/commands/audit.js +31 -0
  41. package/build/lib/commands/audit.js.map +1 -0
  42. package/build/lib/commands/battery.d.ts +13 -0
  43. package/build/lib/commands/battery.d.ts.map +1 -0
  44. package/build/lib/commands/battery.js +49 -0
  45. package/build/lib/commands/battery.js.map +1 -0
  46. package/build/lib/commands/bidi/constants.d.ts +6 -0
  47. package/build/lib/commands/bidi/constants.d.ts.map +1 -0
  48. package/build/lib/commands/bidi/constants.js +10 -0
  49. package/build/lib/commands/bidi/constants.js.map +1 -0
  50. package/build/lib/commands/bidi/models.d.ts +9 -0
  51. package/build/lib/commands/bidi/models.d.ts.map +1 -0
  52. package/build/lib/commands/bidi/models.js +54 -0
  53. package/build/lib/commands/bidi/models.js.map +1 -0
  54. package/build/lib/commands/bidi/types.d.ts +26 -0
  55. package/build/lib/commands/bidi/types.d.ts.map +1 -0
  56. package/build/lib/commands/bidi/types.js +4 -0
  57. package/build/lib/commands/bidi/types.js.map +1 -0
  58. package/build/lib/commands/biometric.d.ts +32 -0
  59. package/build/lib/commands/biometric.d.ts.map +1 -0
  60. package/build/lib/commands/biometric.js +54 -0
  61. package/build/lib/commands/biometric.js.map +1 -0
  62. package/build/lib/commands/certificate.d.ts +50 -0
  63. package/build/lib/commands/certificate.d.ts.map +1 -0
  64. package/build/lib/commands/certificate.js +454 -0
  65. package/build/lib/commands/certificate.js.map +1 -0
  66. package/build/lib/commands/clipboard.d.ts +21 -0
  67. package/build/lib/commands/clipboard.d.ts.map +1 -0
  68. package/build/lib/commands/clipboard.js +36 -0
  69. package/build/lib/commands/clipboard.js.map +1 -0
  70. package/build/lib/commands/condition.d.ts +102 -0
  71. package/build/lib/commands/condition.d.ts.map +1 -0
  72. package/build/lib/commands/condition.js +146 -0
  73. package/build/lib/commands/condition.js.map +1 -0
  74. package/build/lib/commands/content-size.d.ts +30 -0
  75. package/build/lib/commands/content-size.d.ts.map +1 -0
  76. package/build/lib/commands/content-size.js +67 -0
  77. package/build/lib/commands/content-size.js.map +1 -0
  78. package/build/lib/commands/context.d.ts +191 -0
  79. package/build/lib/commands/context.d.ts.map +1 -0
  80. package/build/lib/commands/context.js +625 -0
  81. package/build/lib/commands/context.js.map +1 -0
  82. package/build/lib/commands/deviceInfo.d.ts +12 -0
  83. package/build/lib/commands/deviceInfo.d.ts.map +1 -0
  84. package/build/lib/commands/deviceInfo.js +25 -0
  85. package/build/lib/commands/deviceInfo.js.map +1 -0
  86. package/build/lib/commands/element.d.ts +108 -0
  87. package/build/lib/commands/element.d.ts.map +1 -0
  88. package/build/lib/commands/element.js +395 -0
  89. package/build/lib/commands/element.js.map +1 -0
  90. package/build/lib/commands/enum.d.ts +105 -0
  91. package/build/lib/commands/enum.d.ts.map +1 -0
  92. package/build/lib/commands/enum.js +113 -0
  93. package/build/lib/commands/enum.js.map +1 -0
  94. package/build/lib/commands/execute.d.ts +33 -0
  95. package/build/lib/commands/execute.d.ts.map +1 -0
  96. package/build/lib/commands/execute.js +142 -0
  97. package/build/lib/commands/execute.js.map +1 -0
  98. package/build/lib/commands/file-movement.d.ts +90 -0
  99. package/build/lib/commands/file-movement.d.ts.map +1 -0
  100. package/build/lib/commands/file-movement.js +477 -0
  101. package/build/lib/commands/file-movement.js.map +1 -0
  102. package/build/lib/commands/find.d.ts +21 -0
  103. package/build/lib/commands/find.d.ts.map +1 -0
  104. package/build/lib/commands/find.js +199 -0
  105. package/build/lib/commands/find.js.map +1 -0
  106. package/build/lib/commands/general.d.ts +137 -0
  107. package/build/lib/commands/general.d.ts.map +1 -0
  108. package/build/lib/commands/general.js +270 -0
  109. package/build/lib/commands/general.js.map +1 -0
  110. package/build/lib/commands/geolocation.d.ts +57 -0
  111. package/build/lib/commands/geolocation.d.ts.map +1 -0
  112. package/build/lib/commands/geolocation.js +58 -0
  113. package/build/lib/commands/geolocation.js.map +1 -0
  114. package/build/lib/commands/gesture.d.ts +283 -0
  115. package/build/lib/commands/gesture.d.ts.map +1 -0
  116. package/build/lib/commands/gesture.js +565 -0
  117. package/build/lib/commands/gesture.js.map +1 -0
  118. package/build/lib/commands/hid-event.d.ts +2773 -0
  119. package/build/lib/commands/hid-event.d.ts.map +1 -0
  120. package/build/lib/commands/hid-event.js +1633 -0
  121. package/build/lib/commands/hid-event.js.map +1 -0
  122. package/build/lib/commands/increase-contrast.d.ts +24 -0
  123. package/build/lib/commands/increase-contrast.d.ts.map +1 -0
  124. package/build/lib/commands/increase-contrast.js +49 -0
  125. package/build/lib/commands/increase-contrast.js.map +1 -0
  126. package/build/lib/commands/iohid.d.ts +1372 -0
  127. package/build/lib/commands/iohid.d.ts.map +1 -0
  128. package/build/lib/commands/iohid.js +63 -0
  129. package/build/lib/commands/iohid.js.map +1 -0
  130. package/build/lib/commands/keyboard.d.ts +32 -0
  131. package/build/lib/commands/keyboard.d.ts.map +1 -0
  132. package/build/lib/commands/keyboard.js +67 -0
  133. package/build/lib/commands/keyboard.js.map +1 -0
  134. package/build/lib/commands/keychains.d.ts +10 -0
  135. package/build/lib/commands/keychains.d.ts.map +1 -0
  136. package/build/lib/commands/keychains.js +22 -0
  137. package/build/lib/commands/keychains.js.map +1 -0
  138. package/build/lib/commands/localization.d.ts +17 -0
  139. package/build/lib/commands/localization.d.ts.map +1 -0
  140. package/build/lib/commands/localization.js +34 -0
  141. package/build/lib/commands/localization.js.map +1 -0
  142. package/build/lib/commands/location.d.ts +40 -0
  143. package/build/lib/commands/location.d.ts.map +1 -0
  144. package/build/lib/commands/location.js +121 -0
  145. package/build/lib/commands/location.js.map +1 -0
  146. package/build/lib/commands/lock.d.ts +23 -0
  147. package/build/lib/commands/lock.d.ts.map +1 -0
  148. package/build/lib/commands/lock.js +49 -0
  149. package/build/lib/commands/lock.js.map +1 -0
  150. package/build/lib/commands/log.d.ts +68 -0
  151. package/build/lib/commands/log.d.ts.map +1 -0
  152. package/build/lib/commands/log.js +287 -0
  153. package/build/lib/commands/log.js.map +1 -0
  154. package/build/lib/commands/memory.d.ts +11 -0
  155. package/build/lib/commands/memory.d.ts.map +1 -0
  156. package/build/lib/commands/memory.js +49 -0
  157. package/build/lib/commands/memory.js.map +1 -0
  158. package/build/lib/commands/navigation.d.ts +44 -0
  159. package/build/lib/commands/navigation.d.ts.map +1 -0
  160. package/build/lib/commands/navigation.js +121 -0
  161. package/build/lib/commands/navigation.js.map +1 -0
  162. package/build/lib/commands/notifications.d.ts +28 -0
  163. package/build/lib/commands/notifications.d.ts.map +1 -0
  164. package/build/lib/commands/notifications.js +64 -0
  165. package/build/lib/commands/notifications.js.map +1 -0
  166. package/build/lib/commands/pasteboard.d.ts +23 -0
  167. package/build/lib/commands/pasteboard.d.ts.map +1 -0
  168. package/build/lib/commands/pasteboard.js +43 -0
  169. package/build/lib/commands/pasteboard.js.map +1 -0
  170. package/build/lib/commands/pcap.d.ts +54 -0
  171. package/build/lib/commands/pcap.d.ts.map +1 -0
  172. package/build/lib/commands/pcap.js +149 -0
  173. package/build/lib/commands/pcap.js.map +1 -0
  174. package/build/lib/commands/performance.d.ts +85 -0
  175. package/build/lib/commands/performance.d.ts.map +1 -0
  176. package/build/lib/commands/performance.js +331 -0
  177. package/build/lib/commands/performance.js.map +1 -0
  178. package/build/lib/commands/permissions.d.ts +36 -0
  179. package/build/lib/commands/permissions.d.ts.map +1 -0
  180. package/build/lib/commands/permissions.js +80 -0
  181. package/build/lib/commands/permissions.js.map +1 -0
  182. package/build/lib/commands/proxy-helper.d.ts +15 -0
  183. package/build/lib/commands/proxy-helper.d.ts.map +1 -0
  184. package/build/lib/commands/proxy-helper.js +117 -0
  185. package/build/lib/commands/proxy-helper.js.map +1 -0
  186. package/build/lib/commands/record-audio.d.ts +69 -0
  187. package/build/lib/commands/record-audio.d.ts.map +1 -0
  188. package/build/lib/commands/record-audio.js +228 -0
  189. package/build/lib/commands/record-audio.js.map +1 -0
  190. package/build/lib/commands/recordscreen.d.ts +89 -0
  191. package/build/lib/commands/recordscreen.d.ts.map +1 -0
  192. package/build/lib/commands/recordscreen.js +326 -0
  193. package/build/lib/commands/recordscreen.js.map +1 -0
  194. package/build/lib/commands/screenshots.d.ts +16 -0
  195. package/build/lib/commands/screenshots.d.ts.map +1 -0
  196. package/build/lib/commands/screenshots.js +129 -0
  197. package/build/lib/commands/screenshots.js.map +1 -0
  198. package/build/lib/commands/simctl.d.ts +27 -0
  199. package/build/lib/commands/simctl.d.ts.map +1 -0
  200. package/build/lib/commands/simctl.js +65 -0
  201. package/build/lib/commands/simctl.js.map +1 -0
  202. package/build/lib/commands/source.d.ts +16 -0
  203. package/build/lib/commands/source.d.ts.map +1 -0
  204. package/build/lib/commands/source.js +128 -0
  205. package/build/lib/commands/source.js.map +1 -0
  206. package/build/lib/commands/timeouts.d.ts +53 -0
  207. package/build/lib/commands/timeouts.d.ts.map +1 -0
  208. package/build/lib/commands/timeouts.js +71 -0
  209. package/build/lib/commands/timeouts.js.map +1 -0
  210. package/build/lib/commands/types.d.ts +539 -0
  211. package/build/lib/commands/types.d.ts.map +1 -0
  212. package/build/lib/commands/types.js +3 -0
  213. package/build/lib/commands/types.js.map +1 -0
  214. package/build/lib/commands/web.d.ts +297 -0
  215. package/build/lib/commands/web.d.ts.map +1 -0
  216. package/build/lib/commands/web.js +1029 -0
  217. package/build/lib/commands/web.js.map +1 -0
  218. package/build/lib/commands/xctest-record-screen.d.ts +92 -0
  219. package/build/lib/commands/xctest-record-screen.d.ts.map +1 -0
  220. package/build/lib/commands/xctest-record-screen.js +193 -0
  221. package/build/lib/commands/xctest-record-screen.js.map +1 -0
  222. package/build/lib/commands/xctest.d.ts +71 -0
  223. package/build/lib/commands/xctest.d.ts.map +1 -0
  224. package/build/lib/commands/xctest.js +257 -0
  225. package/build/lib/commands/xctest.js.map +1 -0
  226. package/build/lib/css-converter.d.ts +10 -0
  227. package/build/lib/css-converter.d.ts.map +1 -0
  228. package/build/lib/css-converter.js +258 -0
  229. package/build/lib/css-converter.js.map +1 -0
  230. package/build/lib/desired-caps.d.ts +506 -0
  231. package/build/lib/desired-caps.d.ts.map +1 -0
  232. package/build/lib/desired-caps.js +400 -0
  233. package/build/lib/desired-caps.js.map +1 -0
  234. package/build/lib/device-connections-factory.d.ts +13 -0
  235. package/build/lib/device-connections-factory.d.ts.map +1 -0
  236. package/build/lib/device-connections-factory.js +244 -0
  237. package/build/lib/device-connections-factory.js.map +1 -0
  238. package/build/lib/device-log/helpers.d.ts +10 -0
  239. package/build/lib/device-log/helpers.d.ts.map +1 -0
  240. package/build/lib/device-log/helpers.js +37 -0
  241. package/build/lib/device-log/helpers.js.map +1 -0
  242. package/build/lib/device-log/ios-crash-log.d.ts +34 -0
  243. package/build/lib/device-log/ios-crash-log.d.ts.map +1 -0
  244. package/build/lib/device-log/ios-crash-log.js +141 -0
  245. package/build/lib/device-log/ios-crash-log.js.map +1 -0
  246. package/build/lib/device-log/ios-device-log.d.ts +19 -0
  247. package/build/lib/device-log/ios-device-log.d.ts.map +1 -0
  248. package/build/lib/device-log/ios-device-log.js +42 -0
  249. package/build/lib/device-log/ios-device-log.js.map +1 -0
  250. package/build/lib/device-log/ios-log.d.ts +24 -0
  251. package/build/lib/device-log/ios-log.d.ts.map +1 -0
  252. package/build/lib/device-log/ios-log.js +50 -0
  253. package/build/lib/device-log/ios-log.js.map +1 -0
  254. package/build/lib/device-log/ios-performance-log.d.ts +18 -0
  255. package/build/lib/device-log/ios-performance-log.d.ts.map +1 -0
  256. package/build/lib/device-log/ios-performance-log.js +43 -0
  257. package/build/lib/device-log/ios-performance-log.js.map +1 -0
  258. package/build/lib/device-log/ios-simulator-log.d.ts +38 -0
  259. package/build/lib/device-log/ios-simulator-log.d.ts.map +1 -0
  260. package/build/lib/device-log/ios-simulator-log.js +184 -0
  261. package/build/lib/device-log/ios-simulator-log.js.map +1 -0
  262. package/build/lib/device-log/line-consuming-log.d.ts +9 -0
  263. package/build/lib/device-log/line-consuming-log.d.ts.map +1 -0
  264. package/build/lib/device-log/line-consuming-log.js +16 -0
  265. package/build/lib/device-log/line-consuming-log.js.map +1 -0
  266. package/build/lib/device-log/safari-console-log.d.ts +67 -0
  267. package/build/lib/device-log/safari-console-log.d.ts.map +1 -0
  268. package/build/lib/device-log/safari-console-log.js +81 -0
  269. package/build/lib/device-log/safari-console-log.js.map +1 -0
  270. package/build/lib/device-log/safari-network-log.d.ts +75 -0
  271. package/build/lib/device-log/safari-network-log.d.ts.map +1 -0
  272. package/build/lib/device-log/safari-network-log.js +47 -0
  273. package/build/lib/device-log/safari-network-log.js.map +1 -0
  274. package/build/lib/doctor/checks.d.ts +3 -0
  275. package/build/lib/doctor/checks.d.ts.map +1 -0
  276. package/build/lib/doctor/checks.js +39 -0
  277. package/build/lib/doctor/checks.js.map +1 -0
  278. package/build/lib/doctor/optional-checks.d.ts +46 -0
  279. package/build/lib/doctor/optional-checks.d.ts.map +1 -0
  280. package/build/lib/doctor/optional-checks.js +129 -0
  281. package/build/lib/doctor/optional-checks.js.map +1 -0
  282. package/build/lib/doctor/required-checks.d.ts +42 -0
  283. package/build/lib/doctor/required-checks.d.ts.map +1 -0
  284. package/build/lib/doctor/required-checks.js +94 -0
  285. package/build/lib/doctor/required-checks.js.map +1 -0
  286. package/build/lib/doctor/utils.d.ts +8 -0
  287. package/build/lib/doctor/utils.d.ts.map +1 -0
  288. package/build/lib/doctor/utils.js +21 -0
  289. package/build/lib/doctor/utils.js.map +1 -0
  290. package/build/lib/driver.d.ts +2429 -0
  291. package/build/lib/driver.d.ts.map +1 -0
  292. package/build/lib/driver.js +1967 -0
  293. package/build/lib/driver.js.map +1 -0
  294. package/build/lib/execute-method-map.d.ts +552 -0
  295. package/build/lib/execute-method-map.d.ts.map +1 -0
  296. package/build/lib/execute-method-map.js +586 -0
  297. package/build/lib/execute-method-map.js.map +1 -0
  298. package/build/lib/ios-fs-helpers.d.ts +75 -0
  299. package/build/lib/ios-fs-helpers.d.ts.map +1 -0
  300. package/build/lib/ios-fs-helpers.js +370 -0
  301. package/build/lib/ios-fs-helpers.js.map +1 -0
  302. package/build/lib/ios-generic-simulators.d.ts +6 -0
  303. package/build/lib/ios-generic-simulators.d.ts.map +1 -0
  304. package/build/lib/ios-generic-simulators.js +14 -0
  305. package/build/lib/ios-generic-simulators.js.map +1 -0
  306. package/build/lib/logger.d.ts +3 -0
  307. package/build/lib/logger.d.ts.map +1 -0
  308. package/build/lib/logger.js +6 -0
  309. package/build/lib/logger.js.map +1 -0
  310. package/build/lib/method-map.d.ts +229 -0
  311. package/build/lib/method-map.d.ts.map +1 -0
  312. package/build/lib/method-map.js +200 -0
  313. package/build/lib/method-map.js.map +1 -0
  314. package/build/lib/real-device-clients/base-device-client.d.ts +22 -0
  315. package/build/lib/real-device-clients/base-device-client.d.ts.map +1 -0
  316. package/build/lib/real-device-clients/base-device-client.js +14 -0
  317. package/build/lib/real-device-clients/base-device-client.js.map +1 -0
  318. package/build/lib/real-device-clients/py-ios-device-client.d.ts +21 -0
  319. package/build/lib/real-device-clients/py-ios-device-client.d.ts.map +1 -0
  320. package/build/lib/real-device-clients/py-ios-device-client.js +125 -0
  321. package/build/lib/real-device-clients/py-ios-device-client.js.map +1 -0
  322. package/build/lib/real-device-management.d.ts +53 -0
  323. package/build/lib/real-device-management.d.ts.map +1 -0
  324. package/build/lib/real-device-management.js +128 -0
  325. package/build/lib/real-device-management.js.map +1 -0
  326. package/build/lib/real-device.d.ts +112 -0
  327. package/build/lib/real-device.d.ts.map +1 -0
  328. package/build/lib/real-device.js +352 -0
  329. package/build/lib/real-device.js.map +1 -0
  330. package/build/lib/simulator-management.d.ts +96 -0
  331. package/build/lib/simulator-management.d.ts.map +1 -0
  332. package/build/lib/simulator-management.js +278 -0
  333. package/build/lib/simulator-management.js.map +1 -0
  334. package/build/lib/stubs.d.ts +3 -0
  335. package/build/lib/stubs.d.ts.map +1 -0
  336. package/build/lib/stubs.js +3 -0
  337. package/build/lib/stubs.js.map +1 -0
  338. package/build/lib/types.d.ts +31 -0
  339. package/build/lib/types.d.ts.map +1 -0
  340. package/build/lib/types.js +3 -0
  341. package/build/lib/types.js.map +1 -0
  342. package/build/lib/utils.d.ts +191 -0
  343. package/build/lib/utils.d.ts.map +1 -0
  344. package/build/lib/utils.js +549 -0
  345. package/build/lib/utils.js.map +1 -0
  346. package/build/lib/xcrun.d.ts +3 -0
  347. package/build/lib/xcrun.d.ts.map +1 -0
  348. package/build/lib/xcrun.js +17 -0
  349. package/build/lib/xcrun.js.map +1 -0
  350. package/index.js +7 -0
  351. package/lib/app-infos-cache.js +187 -0
  352. package/lib/app-utils.js +710 -0
  353. package/lib/commands/active-app-info.js +12 -0
  354. package/lib/commands/advanced-battery-types.ts +454 -0
  355. package/lib/commands/alert.js +88 -0
  356. package/lib/commands/app-management.js +346 -0
  357. package/lib/commands/app-strings.js +30 -0
  358. package/lib/commands/appearance.js +71 -0
  359. package/lib/commands/audit.js +31 -0
  360. package/lib/commands/battery.js +45 -0
  361. package/lib/commands/bidi/constants.ts +6 -0
  362. package/lib/commands/bidi/models.ts +55 -0
  363. package/lib/commands/bidi/types.ts +31 -0
  364. package/lib/commands/biometric.js +53 -0
  365. package/lib/commands/certificate.js +497 -0
  366. package/lib/commands/clipboard.js +35 -0
  367. package/lib/commands/condition.js +155 -0
  368. package/lib/commands/content-size.js +68 -0
  369. package/lib/commands/context.js +705 -0
  370. package/lib/commands/deviceInfo.js +27 -0
  371. package/lib/commands/element.js +423 -0
  372. package/lib/commands/enum.ts +108 -0
  373. package/lib/commands/execute.js +153 -0
  374. package/lib/commands/file-movement.js +510 -0
  375. package/lib/commands/find.js +205 -0
  376. package/lib/commands/general.js +278 -0
  377. package/lib/commands/geolocation.js +56 -0
  378. package/lib/commands/gesture.js +596 -0
  379. package/lib/commands/hid-event.ts +1634 -0
  380. package/lib/commands/increase-contrast.js +50 -0
  381. package/lib/commands/iohid.js +64 -0
  382. package/lib/commands/keyboard.js +62 -0
  383. package/lib/commands/keychains.js +18 -0
  384. package/lib/commands/localization.js +30 -0
  385. package/lib/commands/location.js +131 -0
  386. package/lib/commands/lock.js +46 -0
  387. package/lib/commands/log.js +327 -0
  388. package/lib/commands/memory.js +51 -0
  389. package/lib/commands/navigation.js +125 -0
  390. package/lib/commands/notifications.js +66 -0
  391. package/lib/commands/pasteboard.js +42 -0
  392. package/lib/commands/pcap.js +168 -0
  393. package/lib/commands/performance.js +392 -0
  394. package/lib/commands/permissions.js +85 -0
  395. package/lib/commands/proxy-helper.js +122 -0
  396. package/lib/commands/record-audio.js +264 -0
  397. package/lib/commands/recordscreen.js +391 -0
  398. package/lib/commands/screenshots.js +137 -0
  399. package/lib/commands/simctl.js +71 -0
  400. package/lib/commands/source.js +131 -0
  401. package/lib/commands/timeouts.js +68 -0
  402. package/lib/commands/types.ts +648 -0
  403. package/lib/commands/web.js +1113 -0
  404. package/lib/commands/xctest-record-screen.js +204 -0
  405. package/lib/commands/xctest.js +285 -0
  406. package/lib/css-converter.js +311 -0
  407. package/lib/desired-caps.js +396 -0
  408. package/lib/device-connections-factory.js +269 -0
  409. package/lib/device-log/helpers.ts +40 -0
  410. package/lib/device-log/ios-crash-log.ts +166 -0
  411. package/lib/device-log/ios-device-log.ts +51 -0
  412. package/lib/device-log/ios-log.ts +70 -0
  413. package/lib/device-log/ios-performance-log.ts +50 -0
  414. package/lib/device-log/ios-simulator-log.ts +202 -0
  415. package/lib/device-log/line-consuming-log.ts +16 -0
  416. package/lib/device-log/safari-console-log.ts +117 -0
  417. package/lib/device-log/safari-network-log.ts +120 -0
  418. package/lib/doctor/checks.ts +3 -0
  419. package/lib/doctor/optional-checks.ts +173 -0
  420. package/lib/doctor/required-checks.ts +120 -0
  421. package/lib/doctor/utils.ts +18 -0
  422. package/lib/driver.js +2316 -0
  423. package/lib/execute-method-map.ts +585 -0
  424. package/lib/ios-fs-helpers.js +355 -0
  425. package/lib/ios-generic-simulators.js +11 -0
  426. package/lib/logger.js +5 -0
  427. package/lib/method-map.js +196 -0
  428. package/lib/real-device-clients/base-device-client.ts +34 -0
  429. package/lib/real-device-clients/py-ios-device-client.ts +149 -0
  430. package/lib/real-device-management.js +133 -0
  431. package/lib/real-device.js +347 -0
  432. package/lib/simulator-management.js +324 -0
  433. package/lib/stubs.ts +3 -0
  434. package/lib/types.ts +33 -0
  435. package/lib/utils.js +551 -0
  436. package/lib/xcrun.js +16 -0
  437. package/package.json +175 -0
  438. package/scripts/build-docs.js +56 -0
  439. package/scripts/build-wda.js +42 -0
  440. package/scripts/download-wda-sim.mjs +68 -0
  441. package/scripts/image-mounter.mjs +239 -0
  442. package/scripts/open-wda.mjs +15 -0
  443. package/scripts/tunnel-creation.mjs +359 -0
  444. package/scripts/utils.js +16 -0
@@ -0,0 +1,50 @@
1
+ import _ from 'lodash';
2
+ import {assertSimulator as _assertSimulator} from '../utils';
3
+ import { errors } from 'appium/driver';
4
+
5
+ const assertSimulator = _.partial(_assertSimulator, 'Content size ui command');
6
+
7
+ const INCREASE_CONTRAST_CONFIG = [
8
+ 'enabled',
9
+ 'disabled',
10
+ ];
11
+
12
+ /**
13
+ * Sets the increase contrast configuration for the given simulator.
14
+ *
15
+ * @since Xcode 15 (but lower xcode could have this command)
16
+ * @param {IncreaseContrastAction} increaseContrast valid increase contrast configuration value.
17
+ * Acceptable value is 'enabled' or 'disabled' with Xcode 16.2.
18
+ * @throws {Error} if the current platform does not support content size appearance changes
19
+ * @this {XCUITestDriver}
20
+ */
21
+ export async function mobileSetIncreaseContrast(increaseContrast) {
22
+ const simulator = assertSimulator(this);
23
+
24
+ if (!INCREASE_CONTRAST_CONFIG.includes(_.lowerCase(increaseContrast))) {
25
+ throw new errors.InvalidArgumentError(
26
+ `The 'increaseContrast' value is expected to be one of ${INCREASE_CONTRAST_CONFIG.join(',')}`
27
+ );
28
+ }
29
+
30
+ await simulator.setIncreaseContrast(increaseContrast);
31
+ }
32
+
33
+ /**
34
+ * Retrieves the current increase contrast configuration value from the given simulator.
35
+ *
36
+ * @since Xcode 15 (but lower xcode could have this command)
37
+ * @returns {Promise<IncreaseContrastResult>} the contrast configuration value.
38
+ * Possible return value is 'enabled', 'disabled',
39
+ * 'unsupported' or 'unknown' with Xcode 16.2.
40
+ * @this {XCUITestDriver}
41
+ */
42
+ export async function mobileGetIncreaseContrast() {
43
+ return /** @type {IncreaseContrastResult} */ (await assertSimulator(this).getIncreaseContrast());
44
+ }
45
+
46
+ /**
47
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
48
+ * @typedef {import('./types').IncreaseContrastAction} IncreaseContrastAction
49
+ * @typedef {import('./types').IncreaseContrastResult} IncreaseContrastResult
50
+ */
@@ -0,0 +1,64 @@
1
+ import {errors} from 'appium/driver';
2
+ import {HIDUsageEvent, HIDPageEvent} from './hid-event';
3
+
4
+ /**
5
+ * Emulates triggering of the given low-level IO HID device event.
6
+ *
7
+ * Popular constants:
8
+ * - `kHIDPage_Consumer` = `0x0C`
9
+ * - `kHIDUsage_Csmr_VolumeIncrement` = `0xE9` (Volume Up)
10
+ * - `kHIDUsage_Csmr_VolumeDecrement` = `0xEA` (Volume Down)
11
+ * - `kHIDUsage_Csmr_Menu` = `0x40` (Home)
12
+ * - `kHIDUsage_Csmr_Power` = `0x30` (Power)
13
+ * - `kHIDUsage_Csmr_Snapshot` = `0x65` (Power + Home)
14
+ *
15
+ * @param {HIDPageEvent} page - The event page identifier
16
+ * @param {HIDUsageEvent} usage - The event usage identifier (usages are defined per-page)
17
+ * @param {number|string} durationSeconds - The event duration in float seconds (XCTest uses `0.005` for a single press event)
18
+ * @this {import('../driver').XCUITestDriver}
19
+ */
20
+ export async function mobilePerformIoHidEvent(page, usage, durationSeconds) {
21
+ if (!isHIDPageEvent(page)) {
22
+ throw new errors.InvalidArgumentError(
23
+ `'page' argument must be a valid HIDPageEvent identifier`,
24
+ );
25
+ }
26
+ if (!isHIDUsageEvent(usage)) {
27
+ throw new errors.InvalidArgumentError(`'usage' must be a valid HIDUsageEvent identifier`);
28
+ }
29
+ const duration = parseFloat(String(durationSeconds));
30
+ if (Number.isNaN(duration)) {
31
+ throw new errors.InvalidArgumentError(`'durationSeconds' argument must be a valid number`);
32
+ }
33
+ return await this.proxyCommand('/wda/performIoHidEvent', 'POST', {page, usage, duration});
34
+ }
35
+
36
+ /**
37
+ * Type guard for {@linkcode HIDUsageEvent}
38
+ * @param {any} value
39
+ * @returns {value is HIDUsageEvent}
40
+ */
41
+ function isHIDUsageEvent(value) {
42
+ if (typeof value === 'string') {
43
+ value = parseInt(value, 10);
44
+ }
45
+ if (Number.isNaN(value) || typeof value !== 'number') {
46
+ return false;
47
+ }
48
+ return value in HIDUsageEvent;
49
+ }
50
+
51
+ /**
52
+ * Type guard for {@linkcode HIDPageEvent}
53
+ * @param {any} value
54
+ * @returns {value is HIDPageEvent}
55
+ **/
56
+ function isHIDPageEvent(value) {
57
+ if (typeof value === 'string') {
58
+ value = parseInt(value, 10);
59
+ }
60
+ if (Number.isNaN(value) || typeof value !== 'number') {
61
+ return false;
62
+ }
63
+ return value in HIDPageEvent;
64
+ }
@@ -0,0 +1,62 @@
1
+ import _ from 'lodash';
2
+
3
+ /**
4
+ * @this {XCUITestDriver}
5
+ * @deprecated
6
+ */
7
+ export async function hideKeyboard(strategy, ...possibleKeys) {
8
+ // last parameter is the session id
9
+ const keyNames = _.compact(possibleKeys.slice(0, -1)).map((x) => `${x}`);
10
+ await this.mobileHideKeyboard(keyNames);
11
+ return true;
12
+ }
13
+
14
+ /**
15
+ * @this {XCUITestDriver}
16
+ * @param {string[]} keys
17
+ */
18
+ export async function mobileHideKeyboard(keys = []) {
19
+ if (!keys.includes('done')) {
20
+ keys.push('done');
21
+ }
22
+ await this.proxyCommand('/wda/keyboard/dismiss', 'POST', {keyNames: keys});
23
+ }
24
+
25
+ /**
26
+ * @this {XCUITestDriver}
27
+ */
28
+ export async function isKeyboardShown() {
29
+ try {
30
+ await this.findNativeElementOrElements('class name', 'XCUIElementTypeKeyboard', false);
31
+ return true;
32
+ } catch {
33
+ return false;
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Send keys to the given element or to the application under test.
39
+ * This API is not supported on tvOS
40
+ *
41
+ * @since Xcode 15/iOS 17
42
+ * @this {import('../driver').XCUITestDriver}
43
+ * @param {(Key|string)[]} keys Array of keys to type.
44
+ * Each item could either be a string, that represents a key itself (see
45
+ * https://developer.apple.com/documentation/xctest/xcuielement/1500604-typekey?language=objc
46
+ * and https://developer.apple.com/documentation/xctest/xcuikeyboardkey?language=objc)
47
+ * or a dictionary, if the key should also be entered with modifiers.
48
+ * @param {string?} [elementId=null] uuid of the element to send keys to.
49
+ * If the element is not provided then the keys will be sent to the current application.
50
+ */
51
+ export async function mobileKeys(keys, elementId = null) {
52
+ const url = `/wda/element/${elementId || 0}/keyboardInput`;
53
+ return await this.proxyCommand(url, 'POST', { keys });
54
+ }
55
+
56
+ /**
57
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
58
+ */
59
+
60
+ /**
61
+ * @typedef {import('./types').KeyboardKey} Key
62
+ */
@@ -0,0 +1,18 @@
1
+ import _ from 'lodash';
2
+ import {assertSimulator as _assertSimulator} from '../utils';
3
+
4
+ const assertSimulator = _.partial(_assertSimulator, 'Keychain modification');
5
+
6
+ /**
7
+ * Clears keychains on a simulated device.
8
+ *
9
+ * @throws {Error} If current device is not a Simulator or there was an error
10
+ * while clearing keychains.
11
+ * @this {import('../driver').XCUITestDriver}
12
+ * @group Simulator Only
13
+ */
14
+ export async function mobileClearKeychains() {
15
+ assertSimulator(this);
16
+
17
+ await /** @type {import('../driver').Simulator} */ (this.device).clearKeychains();
18
+ }
@@ -0,0 +1,30 @@
1
+ import _ from 'lodash';
2
+ import {assertSimulator as _assertSimulator} from '../utils';
3
+
4
+ const assertSimulator = _.partial(_assertSimulator, 'Localization configuration');
5
+
6
+ /**
7
+ * Change localization settings on the currently booted simulator
8
+ *
9
+ * The changed settings are only applied for _newly started_ applications and activities.
10
+ * Currently running applications will be unchanged. This means, for example, that the keyboard should be hidden and shown again in order to observe the changed layout, and corresponding apps must be restarted in order to observe their interface using the newly set locale/language.
11
+ *
12
+ * The driver performs no strict checking of the arguments (such as locale names). Be aware that an incorrect or invalid string may cause unexpected behavior.
13
+ * @param {import('./types').KeyboardOptions} [keyboard] - Keyboard options
14
+ * @param {import('./types').LanguageOptions} [language] - Language options
15
+ * @param {import('./types').LocaleOptions} [locale] - Locale options
16
+ * @throws {Error} If there was a failure while setting the preferences
17
+ * @returns {Promise<boolean>} `true` if any of settings has been successfully changed
18
+ * @group Simulator Only
19
+ * @this {import('../driver').XCUITestDriver}
20
+ */
21
+ export async function mobileConfigureLocalization(keyboard, language, locale) {
22
+ assertSimulator(this);
23
+
24
+ const localizationOptions = {locale, keyboard};
25
+ if (language) {
26
+ // Assign skipSyncUiDialogTranslation: true option in order to avoid shutting down the WDA session
27
+ localizationOptions.language = Object.assign(language, {skipSyncUiDialogTranslation: true});
28
+ }
29
+ return await /** @type {import('../driver').Simulator} */ (this.device).configureLocalization(localizationOptions);
30
+ }
@@ -0,0 +1,131 @@
1
+ import {services} from 'appium-ios-device';
2
+ import {errors} from 'appium/driver';
3
+ import {util} from 'appium/support';
4
+ import {AuthorizationStatus} from './enum';
5
+ import { isIos17OrNewer } from '../utils';
6
+
7
+ /**
8
+ * Returns location of the device under test.
9
+ * The device under test must allow the location services for WDA
10
+ * as 'Always' to get the location data correctly.
11
+ *
12
+ * The 'latitude', 'longitude' and 'altitude' could be zero even
13
+ * if the Location Services are set to 'Always', because the device
14
+ * needs some time to update the location data.
15
+ *
16
+ * For iOS 17, the return value could be the result of
17
+ * "mobile:getSimulatedLocation" if the simulated location has been previously set
18
+ * "mobile:setSimulatedLocation" already.
19
+ *
20
+ * @returns {Promise<import('./types').LocationWithAltitude>}
21
+ * @throws {Error} If the device under test returns an error message.
22
+ * i.e.: tvOS returns unsupported error
23
+ * @this {XCUITestDriver}
24
+ */
25
+ export async function getGeoLocation() {
26
+ // Currently we proxy the setGeoLocation to mobile:setSimulatedLocation for iOS 17+.
27
+ // It would be helpful to address to use "mobile:getSimulatedLocation" for iOS 17+.
28
+ if (isIos17OrNewer(this.opts)) {
29
+ const {latitude, longitude} = await this.mobileGetSimulatedLocation();
30
+ if (latitude && longitude) {
31
+ this.log.debug('Returning the geolocation that has been previously set by mobile:setSimulatedLocation. ' +
32
+ 'mobile:resetSimulatedLocation can reset the location configuration.');
33
+ return {latitude, longitude, altitude: 0};
34
+ }
35
+
36
+ this.log.warn(`No location was set by mobile:setSimulatedLocation. Trying to return the location from the device.`);
37
+ }
38
+
39
+ // Please do not change the way to get the location here with '/wda/simulatedLocation'
40
+ // endpoint because they could return different value before setting the simulated location.
41
+ // '/wda/device/location' returns current device location information,
42
+ // but '/wda/simulatedLocation' returns `null` values until the WDA process
43
+ // sets a simulated location. After setting the value, both returns the same values.
44
+ const {authorizationStatus, latitude, longitude, altitude} = /** @type {WDALocationInfo} */ (
45
+ await this.proxyCommand('/wda/device/location', 'GET')
46
+ );
47
+
48
+ // '3' is 'Always' in the privacy
49
+ // https://developer.apple.com/documentation/corelocation/clauthorizationstatus
50
+ if (authorizationStatus !== AuthorizationStatus.authorizedAlways) {
51
+ throw this.log.errorWithException(
52
+ `Location service must be set to 'Always' in order to ` +
53
+ `retrieve the current geolocation data. Please set it up manually via ` +
54
+ `'Settings > Privacy > Location Services -> WebDriverAgentRunner-Runner'. ` +
55
+ `Or please use 'mobile:getSimulatedLocation'/'mobile:setSimulatedLocation' commands ` +
56
+ `to simulate locations instead.`,
57
+ );
58
+ }
59
+
60
+ return {latitude, longitude, altitude};
61
+ }
62
+
63
+ /**
64
+ * Set location of the device under test.
65
+ *
66
+ * iOS 17+ real device environment will be via "mobile:setSimulatedLocation" as
67
+ * setting simulated location for XCTest session.
68
+ *
69
+ * @param {Partial<Location>} location
70
+ * @this {XCUITestDriver}
71
+ */
72
+ export async function setGeoLocation(location) {
73
+ let {latitude, longitude} = location;
74
+
75
+ if (!util.hasValue(latitude) || !util.hasValue(longitude)) {
76
+ throw new errors.InvalidArgumentError(`Both latitude and longitude should be set`);
77
+ }
78
+
79
+ if (this.isSimulator()) {
80
+ await /** @type {import('../driver').Simulator} */ (this.device).setGeolocation(`${latitude}`, `${longitude}`);
81
+ return /** @type {Location} */ ({latitude, longitude, altitude: 0});
82
+ }
83
+
84
+ if (isIos17OrNewer(this.opts)) {
85
+ this.log.info(`Proxying to mobile:setSimulatedLocation method for iOS 17+ platform version`);
86
+ await this.mobileSetSimulatedLocation(latitude, longitude);
87
+ } else {
88
+ const service = await services.startSimulateLocationService(this.opts.udid);
89
+ try {
90
+ service.setLocation(latitude, longitude);
91
+ } catch (e) {
92
+ throw this.log.errorWithException(
93
+ `Can't set the location on device '${this.opts.udid}'. Original error: ${e.message}`,
94
+ );
95
+ } finally {
96
+ service.close();
97
+ }
98
+ }
99
+
100
+ return /** @type {Location} */ ({latitude, longitude, altitude: 0});
101
+ }
102
+
103
+ /**
104
+ * Reset the location service on real device.
105
+ * Raises not implemented error for simulator.
106
+ * @throws {Error} If the device is simulator, or 'resetLocation' raises an error.
107
+ * @this {XCUITestDriver}
108
+ */
109
+ export async function mobileResetLocationService() {
110
+ if (this.isSimulator()) {
111
+ throw new errors.NotImplementedError();
112
+ }
113
+
114
+ const service = await services.startSimulateLocationService(this.opts.udid);
115
+ try {
116
+ service.resetLocation();
117
+ } catch (err) {
118
+ throw this.log.errorWithException(
119
+ `Failed to reset the location on the device on device '${this.opts.udid}'. ` +
120
+ `Original error: ${err.message}`,
121
+ );
122
+ } finally {
123
+ service.close();
124
+ }
125
+ }
126
+
127
+ /**
128
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
129
+ * @typedef {import('./types').WDALocationInfo} WDALocationInfo
130
+ * @typedef {import('@appium/types').Location} Location
131
+ */
@@ -0,0 +1,46 @@
1
+ import B from 'bluebird';
2
+
3
+ /**
4
+ * Lock the device (and optionally unlock the device after a certain amount of time)
5
+ *
6
+ * @param {number|string} [seconds] - the number of seconds after which to unlock the device. Set to `0` or leave empty to require manual unlock (do not automatically unlock).
7
+ * @defaultValue 0
8
+ * @this {XCUITestDriver}
9
+ */
10
+ export async function lock(seconds) {
11
+ await this.proxyCommand('/wda/lock', 'POST');
12
+ if (isNaN(Number(seconds))) {
13
+ return;
14
+ }
15
+
16
+ const floatSeconds = parseFloat(String(seconds));
17
+ if (floatSeconds <= 0) {
18
+ return;
19
+ }
20
+
21
+ await B.delay(floatSeconds * 1000);
22
+ await this.proxyCommand('/wda/unlock', 'POST');
23
+ }
24
+
25
+ /**
26
+ * Unlock the device
27
+ *
28
+ * @this {XCUITestDriver}
29
+ */
30
+ export async function unlock() {
31
+ await this.proxyCommand('/wda/unlock', 'POST');
32
+ }
33
+
34
+ /**
35
+ * Determine whether the device is locked
36
+ *
37
+ * @this {XCUITestDriver}
38
+ * @returns {Promise<boolean>} `true` if the device is locked, `false` otherwise
39
+ */
40
+ export async function isLocked() {
41
+ return /** @type {boolean} */ (await this.proxyCommand('/wda/locked', 'GET'));
42
+ }
43
+
44
+ /**
45
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
46
+ */