@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,324 @@
1
+ import {getSimulator} from '@limrun/appium-ios-simulator';
2
+ import {Simctl} from '@limrun/node-simctl';
3
+ import {resetTestProcesses} from 'appium-webdriveragent';
4
+ import _ from 'lodash';
5
+ import {util, timing} from 'appium/support';
6
+ import {UDID_AUTO, normalizePlatformName} from './utils';
7
+ import {buildSafariPreferences} from './app-utils';
8
+
9
+ const APPIUM_SIM_PREFIX = 'appiumTest';
10
+
11
+ /**
12
+ * Create a new simulator with `appiumTest-` prefix and return the object.
13
+ *
14
+ * @this {import('./driver').XCUITestDriver}
15
+ * @returns {Promise<object>} Simulator object associated with the udid passed in.
16
+ */
17
+ export async function createSim() {
18
+ const {simulatorDevicesSetPath: devicesSetPath, deviceName, platformVersion} = this.opts;
19
+ const platform = normalizePlatformName(this.opts.platformName);
20
+ const simctl = new Simctl({devicesSetPath});
21
+ if (!deviceName) {
22
+ let deviceNames = 'none';
23
+ try {
24
+ deviceNames = (await simctl
25
+ .getDevices(platformVersion, platform))
26
+ .map(({deviceName}) => deviceName);
27
+ } catch {}
28
+ throw new Error(
29
+ `'deviceName' must be provided in order to create a new Simulator for ${platform} platform. ` +
30
+ `Currently available device names: ${deviceNames}`,
31
+ );
32
+ }
33
+
34
+ if (!platformVersion) {
35
+ throw new Error(`'platformVersion' is required.`);
36
+ }
37
+
38
+ const simName = `${APPIUM_SIM_PREFIX}-${util.uuidV4().toUpperCase()}-${deviceName}`;
39
+ this.log.debug(`Creating a temporary Simulator device '${simName}'`);
40
+ const udid = await simctl.createDevice(simName, deviceName, platformVersion, {platform});
41
+ return await getSimulator(udid, {
42
+ platform,
43
+ checkExistence: false,
44
+ devicesSetPath,
45
+ // @ts-ignore This is ok
46
+ logger: this.log,
47
+ });
48
+ }
49
+
50
+ /**
51
+ * @typedef {Object} SimulatorLookupOptions
52
+ * @property {string} [deviceName] - The name of the device to lookup
53
+ * @property {string} platformVersion - The platform version string
54
+ * @property {string} [simulatorDevicesSetPath] - The full path to the simulator devices set
55
+ * @property {string} [udid] - Simulator udid
56
+ * @property {string} [platformName] The name of the current platform
57
+ */
58
+
59
+ /**
60
+ * Get an existing simulator matching the provided capabilities.
61
+ *
62
+ * @this {import('./driver').XCUITestDriver}
63
+ * @returns {Promise<import('./driver').Simulator|null>} The matched Simulator instance or `null` if no matching device is found.
64
+ */
65
+ export async function getExistingSim() {
66
+ const {
67
+ platformVersion,
68
+ deviceName,
69
+ udid,
70
+ simulatorDevicesSetPath: devicesSetPath,
71
+ platformName,
72
+ } = this.opts;
73
+
74
+ const platform = normalizePlatformName(platformName);
75
+ const selectSim = async (/** @type {{ udid: string; platform: string; }} */ dev) =>
76
+ await getSimulator(dev.udid, {
77
+ platform,
78
+ checkExistence: false,
79
+ devicesSetPath,
80
+ // @ts-ignore This is ok
81
+ logger: this.log,
82
+ });
83
+
84
+ const simctl = new Simctl({devicesSetPath});
85
+ let devicesMap;
86
+ if (udid && _.toLower(udid) !== UDID_AUTO) {
87
+ this.log.debug(`Looking for an existing Simulator with UDID '${udid}'`);
88
+ devicesMap = await simctl.getDevices(null, platform);
89
+ for (const device of _.flatMap(_.values(devicesMap))) {
90
+ if (device.udid === udid) {
91
+ return await selectSim(device);
92
+ }
93
+ }
94
+ return null;
95
+ }
96
+
97
+ if (!platformVersion) {
98
+ this.log.debug(
99
+ `Provide 'platformVersion' capability if you prefer an existing Simulator to be selected`,
100
+ );
101
+ return null;
102
+ }
103
+
104
+ const devices =
105
+ devicesMap?.[platformVersion] ?? (await simctl.getDevices(platformVersion, platform));
106
+ this.log.debug(
107
+ `Looking for an existing Simulator with platformName: ${platform}, ` +
108
+ `platformVersion: ${platformVersion}, deviceName: ${deviceName}`,
109
+ );
110
+ for (const device of devices) {
111
+ if ((deviceName && device.name === deviceName) || !deviceName) {
112
+ if (!deviceName) {
113
+ this.log.debug(
114
+ `The 'deviceName' capability value is empty. ` +
115
+ `Selecting the first matching device '${device.name}' having the ` +
116
+ `'platformVersion' set to ${platformVersion}`,
117
+ );
118
+ }
119
+ return await selectSim(device);
120
+ }
121
+ }
122
+ return null;
123
+ }
124
+
125
+ /**
126
+ * @this {import('./driver').XCUITestDriver}
127
+ */
128
+ export async function shutdownSimulator() {
129
+ const device = /** @type {import('./driver').Simulator} */ (this.device);
130
+ // stop XCTest processes if running to avoid unexpected side effects
131
+ await resetTestProcesses(device.udid, true);
132
+ await device.shutdown();
133
+ }
134
+
135
+ /**
136
+ * @this {import('./driver').XCUITestDriver}
137
+ * @property {boolean} [enforceSimulatorShutdown=false]
138
+ * @returns {Promise<void>}
139
+ */
140
+ export async function runSimulatorReset(enforceSimulatorShutdown = false) {
141
+ const {
142
+ noReset,
143
+ fullReset,
144
+ keychainsExcludePatterns,
145
+ keepKeyChains,
146
+ bundleId,
147
+ app,
148
+ browserName,
149
+ } = this.opts;
150
+ if (noReset && !fullReset) {
151
+ // noReset === true && fullReset === false
152
+ this.log.debug('Reset: noReset is on. Leaving simulator as is');
153
+ return;
154
+ }
155
+ const device = /** @type {import('./driver').Simulator} */ (this.device);
156
+
157
+ if (!this.device) {
158
+ this.log.debug('Reset: no device available. Skipping');
159
+ return;
160
+ }
161
+
162
+ if (fullReset) {
163
+ this.log.debug('Reset: fullReset is on. Cleaning simulator');
164
+ await shutdownSimulator.bind(this)();
165
+ const isKeychainsBackupSuccessful = (keychainsExcludePatterns || keepKeyChains) && (await device.backupKeychains());
166
+ await device.clean();
167
+ if (isKeychainsBackupSuccessful) {
168
+ await device.restoreKeychains(keychainsExcludePatterns || []);
169
+ this.log.info(`Successfully restored keychains after full reset`);
170
+ } else if (keychainsExcludePatterns || keepKeyChains) {
171
+ this.log.warn(
172
+ 'Cannot restore keychains after full reset, because ' +
173
+ 'the backup operation did not succeed',
174
+ );
175
+ }
176
+ } else if (bundleId) {
177
+ // fastReset or noReset
178
+
179
+ // Terminate the app under test if it is still running on Simulator
180
+ try {
181
+ await device.terminateApp(bundleId);
182
+ } catch {
183
+ this.log.warn(`Reset: failed to terminate Simulator application with id "${bundleId}"`);
184
+ }
185
+
186
+ if (app) {
187
+ this.log.info('Not scrubbing third party app in anticipation of uninstall');
188
+ } else {
189
+ const isSafari = _.toLower(browserName) === 'safari';
190
+ try {
191
+ if (isSafari) {
192
+ await device.scrubSafari(true);
193
+ } else {
194
+ await device.scrubApp(bundleId);
195
+ }
196
+ } catch (err) {
197
+ this.log.debug(err.stack);
198
+ this.log.warn(err.message);
199
+ this.log.warn(
200
+ `Reset: could not scrub ${
201
+ isSafari ? 'Safari browser' : 'application with id "' + this.opts.bundleId + '"'
202
+ }. ` + `Leaving as is.`,
203
+ );
204
+ }
205
+ }
206
+
207
+ if (enforceSimulatorShutdown && (await device.isRunning())) {
208
+ await shutdownSimulator.bind(this)(device);
209
+ }
210
+ }
211
+ }
212
+
213
+ /**
214
+ * @typedef {Object} InstallOptions
215
+ *
216
+ * @property {boolean} [skipUninstall] Whether to skip app uninstall before installing it
217
+ * @property {boolean} [newSimulator=false] Whether the simulator is brand new
218
+ */
219
+
220
+ /**
221
+ * @this {import('./driver').XCUITestDriver}
222
+ * @param {string} app The app to the path
223
+ * @param {string} [bundleId] The bundle id to ensure it is already installed and uninstall it
224
+ * @param {InstallOptions} [opts={}]
225
+ */
226
+ export async function installToSimulator(
227
+ app,
228
+ bundleId,
229
+ opts = {},
230
+ ) {
231
+ if (!app) {
232
+ this.log.debug('No app path is given. Nothing to install.');
233
+ return;
234
+ }
235
+
236
+ const {skipUninstall, newSimulator = false} = opts;
237
+ const device = /** @type {import('./driver').Simulator} */ (this.device);
238
+
239
+ if (!skipUninstall && !newSimulator && bundleId && (await device.isAppInstalled(bundleId))) {
240
+ this.log.debug(`Reset requested. Removing app with id '${bundleId}' from the device`);
241
+ await device.removeApp(bundleId);
242
+ }
243
+
244
+ this.log.debug(`Installing '${app}' on Simulator with UUID '${device.udid}'...`);
245
+ const timer = new timing.Timer().start();
246
+ await device.installApp(app);
247
+ this.log.info(`The app has been successfully installed in ${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
248
+ }
249
+
250
+ /**
251
+ * @this {import('./driver').XCUITestDriver}
252
+ */
253
+ export async function shutdownOtherSimulators() {
254
+ const device = /** @type {import('./driver').Simulator} */ (this.device);
255
+ const simctl = new Simctl({
256
+ devicesSetPath: device.devicesSetPath,
257
+ });
258
+ const allDevices = _.flatMap(_.values(await simctl.getDevices()));
259
+ const otherBootedDevices = allDevices
260
+ .filter(({udid, state}) => udid !== device.udid && state === 'Booted');
261
+ if (_.isEmpty(otherBootedDevices)) {
262
+ this.log.info('No other running simulators have been detected');
263
+ return;
264
+ }
265
+ this.log.info(
266
+ `Detected ${util.pluralize(
267
+ 'other running Simulator',
268
+ otherBootedDevices.length,
269
+ true
270
+ )}. Shutting them down...`,
271
+ );
272
+ for (const {udid} of otherBootedDevices) {
273
+ // It is necessary to stop the corresponding xcodebuild process before killing
274
+ // the simulator, otherwise it will be automatically restarted
275
+ await resetTestProcesses(udid, true);
276
+ simctl.udid = udid;
277
+ await simctl.shutdownDevice();
278
+ }
279
+ }
280
+
281
+ /**
282
+ * Configures Safari options based on the given session capabilities
283
+ *
284
+ * @this {import('./driver').XCUITestDriver}
285
+ * @return {Promise<boolean>} true if any preferences have been updated
286
+ */
287
+ export async function setSafariPrefs() {
288
+ const prefs = buildSafariPreferences(this.opts);
289
+ if (_.isEmpty(prefs)) {
290
+ return false;
291
+ }
292
+
293
+ this.log.debug(`About to update Safari preferences: ${JSON.stringify(prefs)}`);
294
+ await /** @type {import('./driver').Simulator} */ (this.device).updateSafariSettings(prefs);
295
+ return true;
296
+ }
297
+
298
+ /**
299
+ * Changes Simulator localization preferences
300
+ *
301
+ * @this {import('./driver').XCUITestDriver}
302
+ * @returns {Promise<boolean>} True if preferences were changed
303
+ */
304
+ export async function setLocalizationPrefs() {
305
+ const {language, locale, calendarFormat, skipSyncUiDialogTranslation} = this.opts;
306
+ /** @type {import('@limrun/appium-ios-simulator').LocalizationOptions} */
307
+ const l10nConfig = {};
308
+ if (language) {
309
+ l10nConfig.language = {name: language, skipSyncUiDialogTranslation };
310
+ }
311
+ if (locale) {
312
+ l10nConfig.locale = {name: locale};
313
+ if (calendarFormat) {
314
+ l10nConfig.locale.calendar = calendarFormat;
315
+ }
316
+ }
317
+ if (_.isEmpty(l10nConfig)) {
318
+ return false;
319
+ }
320
+
321
+ this.log.debug(`About to update localization preferences: ${JSON.stringify(l10nConfig)}`);
322
+ await /** @type {import('./driver').Simulator} */ (this.device).configureLocalization(l10nConfig);
323
+ return true;
324
+ }
package/lib/stubs.ts ADDED
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ // @ts-nocheck
3
+ declare module 'appium-ios-device';
package/lib/types.ts ADDED
@@ -0,0 +1,33 @@
1
+ export interface Page {
2
+ id: number | string;
3
+ isKey?: boolean;
4
+ url: string;
5
+ }
6
+
7
+ export interface AsyncPromise {
8
+ resolve: (value: any) => void;
9
+ reject: (reason: any) => void;
10
+ }
11
+
12
+ export interface LifecycleData {
13
+ createSim?: boolean;
14
+ }
15
+
16
+ export interface CalibrationData {
17
+ /**
18
+ * webview x offset in real coordinates
19
+ */
20
+ offsetX: number;
21
+ /**
22
+ * webview y offset in real coordinates
23
+ */
24
+ offsetY: number;
25
+ /**
26
+ * pixel ratio x inside of the web view
27
+ */
28
+ pixelRatioX: number;
29
+ /**
30
+ * pixel ratio y inside of the web view
31
+ */
32
+ pixelRatioY: number;
33
+ }