@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,648 @@
1
+ import type {AnyCase, Element, HTTPHeaders, Location, Size, StringRecord} from '@appium/types';
2
+ import type B from 'bluebird';
3
+ import type {EventEmitter} from 'node:events';
4
+ import type {Page} from '../types';
5
+ import type {AuthorizationStatus, BatteryState, ThermalState} from './enum';
6
+
7
+ export type Direction = 'up' | 'down' | 'left' | 'right';
8
+
9
+ export type LocationWithAltitude = Location & {altitude: number};
10
+
11
+ /**
12
+ * Battery information. Returned by the `mobile: getBatteryInfo` execute method.
13
+ */
14
+ export interface BatteryInfo {
15
+ /**
16
+ * Battery level in range `[0.0, 1.0]`, where `1.0` means 100% charge.
17
+ */
18
+ level: number;
19
+ /**
20
+ * Battery state
21
+ */
22
+ state: BatteryState;
23
+ }
24
+
25
+
26
+ /**
27
+ * Options for `stopRecordingScreen` command
28
+ */
29
+ export interface StopRecordingScreenOptions {
30
+ /**
31
+ * The path to the remote location, where the resulting video should be
32
+ * uploaded.
33
+ *
34
+ * The following protocols are supported: `http`, `https`, `ftp`. Null or empty
35
+ * string value (the default setting) means the content of resulting file
36
+ * should be encoded as Base64 and passed as the endpoint response value. An
37
+ * exception will be thrown if the generated media file is too big to fit into
38
+ * the available process memory.
39
+ */
40
+ remotePath?: string;
41
+ /**
42
+ * The name of the user for the remote authentication.
43
+ *
44
+ * Only works if `remotePath` is provided.
45
+ */
46
+ user?: string;
47
+ /**
48
+ * The password for the remote authentication.
49
+ *
50
+ * Only works if `remotePath` is provided.
51
+ */
52
+ pass?: string;
53
+ /**
54
+ * Additional headers mapping for multipart http(s) uploads
55
+ */
56
+ headers?: HTTPHeaders;
57
+ /**
58
+ * The name of the form field where the file content BLOB should be stored for
59
+ * http(s) uploads
60
+ */
61
+ fileFieldName?: string;
62
+ /**
63
+ * Additional form fields for multipart http(s) uploads
64
+ */
65
+ formFields?: Record<string, any> | [string, any][];
66
+ /**
67
+ * The http multipart upload method name.
68
+ *
69
+ * Only works if `remotePath` is provided.
70
+ *
71
+ * @defaultValue 'PUT'
72
+ */
73
+ method?: 'PUT' | 'POST' | 'PATCH';
74
+ }
75
+
76
+ export type VideoQuality = 'low' | 'medium' | 'high' | 'photo';
77
+
78
+ /**
79
+ * Options for `startRecordingScreen` command
80
+ */
81
+ export interface StartRecordingScreenOptions extends StopRecordingScreenOptions {
82
+ /**
83
+ * The video codec type used for encoding of the be recorded screen capture.
84
+ *
85
+ * Execute `ffmpeg -codecs` in the terminal to see the list of supported video codecs.
86
+ * @defaultValue 'mjpeg'
87
+ */
88
+ videoType?: string;
89
+ /**
90
+ * The video encoding quality
91
+ * @defaultValue 'medium'
92
+ */
93
+ videoQuality?: VideoQuality | number;
94
+ /**
95
+ * The Frames Per Second rate of the recorded video.
96
+ *
97
+ * Change this value if the resulting video is too slow or too fast.
98
+ * @defaultValue 10
99
+ */
100
+ videoFps?: string | number;
101
+ /**
102
+ * The FFMPEG video filters to apply.
103
+ *
104
+ * These filters allow to scale, flip, rotate and do many other useful transformations on the source video stream. See [FFMPEG documentation](https://ffmpeg.org/ffmpeg-filters.html) for formatting help.
105
+ * @see https://ffmpeg.org/ffmpeg-filters.html
106
+ */
107
+ videoFilters?: string;
108
+ /**
109
+ * The scaling value to apply.
110
+ *
111
+ * See [the FFMPEG wiki](https://trac.ffmpeg.org/wiki/Scaling) for possible values.
112
+ *
113
+ * No scale is applied by default. If both `videoFilters` and `videoScale` are set, then only `videoFilters` value will be respected.
114
+ * @see https://trac.ffmpeg.org/wiki/Scaling
115
+ */
116
+ videoScale?: string;
117
+ /**
118
+ * Output pixel format.
119
+ *
120
+ * Execute `ffmpeg -pix_fmts` to list possible values. For Quicktime
121
+ * compatibility, set to `yuv420p` along with videoType: `libx264`.
122
+ */
123
+ pixelFormat?: string;
124
+ /**
125
+ * If `true`, ignore errors and restart immediately. If `false` or not provided, try to catch and upload/return the currently running screen recording.
126
+ * @defaultValue false
127
+ */
128
+ forceRestart?: boolean;
129
+ /**
130
+ * The maximum recording time, in seconds.
131
+ * The maximum value is 600 (10 minutes).
132
+ * @defaultValue 180
133
+ */
134
+ timeLimit?: string | number;
135
+
136
+ /**
137
+ * Hardware acceleration to be used by FFMPEG for decoding, encoding and scaling.
138
+ *
139
+ *
140
+ * * `videoToolbox` Apple Silicon
141
+ * * `cuda` NVIDIA GPU
142
+ * * `amf_dx11` AMD and DirectX 11
143
+ * * `qsv` Intel Quick Sync Video
144
+ * * `vaapi` Video Acceleration API (VAAPI)
145
+ *
146
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#PlatformAPIAvailability| Platform API Availability }
147
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#VideoToolbox| VideoToolbox}
148
+ * @see {@link https://trac.ffmpeg.org/wiki/HWAccelIntro#CUDANVENCNVDEC|Cuda}
149
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/AMF|AMF}
150
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/QuickSync|QSV}
151
+ * @see {@link https://trac.ffmpeg.org/wiki/Hardware/VAAPI|VAAPI}
152
+ */
153
+ hardwareAcceleration?: 'cuda' | 'videoToolbox' | 'amf_dx11' | 'qsv' | 'vaapi';
154
+ }
155
+
156
+ export interface PageChangeNotification {
157
+ pageArray: Page[];
158
+ appIdKey: string;
159
+ }
160
+
161
+ /**
162
+ * Either a string that contains full path to the mount root for real devices, or a function which accepts two parameters
163
+ * (bundle identifier and optional container type) and returns (or resolves) the full path to the container root folder on the local filesystem.
164
+ */
165
+ export type ContainerRootSupplier = (
166
+ bundleId: string,
167
+ containerType: string | null,
168
+ ) => string | Promise<string>;
169
+
170
+ export interface WaitingAtoms {
171
+ count: number;
172
+ alertNotifier: EventEmitter;
173
+ alertMonitor: B<void>;
174
+ }
175
+
176
+ export interface ContainerObject {
177
+ /**
178
+ * The parsed bundle identifier
179
+ */
180
+ bundleId: string;
181
+ /**
182
+ * The absolute full path of the item on the local filesystem
183
+ */
184
+ pathInContainer: string;
185
+ /**
186
+ * The container type
187
+ */
188
+ containerType: string | null;
189
+ }
190
+
191
+ export type AtomsElement<S extends string = string> = Omit<
192
+ Element<S>,
193
+ 'element-6066-11e4-a52e-4f735466cecf'
194
+ >;
195
+
196
+ export interface Context {
197
+ /**
198
+ * The identifier of the context.
199
+ *
200
+ * The native context will be `NATIVE_APP` and the webviews will be `WEBVIEW_xxx`
201
+ */
202
+ id: string;
203
+ /**
204
+ * The title associated with the webview content
205
+ */
206
+ title?: string;
207
+ /**
208
+ * The URL associated with the webview content
209
+ */
210
+ url?: string;
211
+ }
212
+
213
+ export type ViewContext = Context & {view?: View};
214
+
215
+ export type NativeAppId = 'NATIVE_APP';
216
+
217
+ export type FullContext = Omit<View, 'id'> & ViewContext;
218
+
219
+ export interface View {
220
+ /**
221
+ * @privateRemarks Type of this is best guess
222
+ */
223
+ id?: number | string;
224
+ title?: string;
225
+ url?: string;
226
+ bundleId?: string;
227
+ }
228
+
229
+ /**
230
+ * Page tree source representation formats.
231
+ *
232
+ * - `xml`: Generates the output similar to what the `getPageSource` standard API returns.
233
+ * - `description`: This is how XCTest "sees" the page internally and is the same string as the [`debugDescription`](https://developer.apple.com/documentation/xctest/xcuielement/1500909-debugdescription?language=objc) API would return for the root application element.
234
+ * This source representation format is useful for debugging purposes and is the fastest
235
+ * one to fetch.
236
+ * - `json`: Similar to `xml`, but the tree hierarchy is represented as JSON elements.
237
+ */
238
+ export type SourceFormat = 'xml' | 'json' | 'description';
239
+
240
+ /** @deprecated */
241
+ export type AppInstallStrategy = 'serial' | 'parallel' | 'ios-deploy';
242
+
243
+ export interface ProfileManifest {
244
+ Description: string;
245
+ IsActive: boolean;
246
+ }
247
+
248
+ export interface ProfileMetadata {
249
+ PayloadDescription: string;
250
+ PayloadDisplayName: string;
251
+ PayloadOrganization: string;
252
+ PayloadRemovalDisallowed: boolean;
253
+ PayloadUUID: string;
254
+ PayloadVersion: number;
255
+ }
256
+
257
+ export interface CertificateList {
258
+ OrderedIdentifiers: string[];
259
+ ProfileManifest: Record<string, ProfileManifest>;
260
+ ProfileMetadata: Record<string, ProfileMetadata>;
261
+ Status: 'Acknowledged';
262
+ }
263
+
264
+ /**
265
+ * Returned by `mobile: deviceInfo` command.
266
+ */
267
+ export interface DeviceInfo {
268
+ currentLocale: string;
269
+ timeZone: string;
270
+ name: string;
271
+ model: string;
272
+ uuid: 'unknown' | string;
273
+ userInterfaceIdiom: string;
274
+ userInterfaceStyle: string;
275
+ isSimulator: boolean;
276
+ thermalState?: ThermalState;
277
+ }
278
+
279
+ /**
280
+ * Returned within response from `mobile: deviceInfo` command on real devices.
281
+ * @group Real Device Only
282
+ * @author Ionic Team <hi@ionicframework.com> (https://ionicframework.com)
283
+ * @privateRemarks Copied from https://github.com/ionic-team/native-run/blob/2e431d373a3adc75ab402b2bf6a2235360efa0d2/src/ios/lib/client/lockdownd.ts#L12-L41
284
+ */
285
+
286
+ export interface LockdownInfo {
287
+ BasebandCertId: number;
288
+ BasebandKeyHashInformation: {
289
+ AKeyStatus: number;
290
+ SKeyHash: Buffer;
291
+ SKeyStatus: number;
292
+ };
293
+ BasebandSerialNumber: Buffer;
294
+ BasebandVersion: string;
295
+ BoardId: number;
296
+ BuildVersion: string;
297
+ ChipID: number;
298
+ DeviceClass: string;
299
+ DeviceColor: string;
300
+ DeviceName: string;
301
+ DieID: number;
302
+ HardwareModel: string;
303
+ HasSiDP: boolean;
304
+ PartitionType: string;
305
+ ProductName: string;
306
+ ProductType: string;
307
+ ProductVersion: string;
308
+ ProductionSOC: boolean;
309
+ ProtocolVersion: string;
310
+ TelephonyCapability: boolean;
311
+ UniqueChipID: number;
312
+ UniqueDeviceID: string;
313
+ WiFiAddress: string;
314
+ [key: string]: any;
315
+ }
316
+
317
+ /**
318
+ * Response of the `mobile: activeAppInfo` command.
319
+ * @remarks Derived from https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Commands/FBCustomCommands.m
320
+ */
321
+ export interface ActiveAppInfo {
322
+ pid: number;
323
+ bundleId: string;
324
+ name: string;
325
+ processArguments: ProcessArguments;
326
+ }
327
+
328
+ /**
329
+ * Returned within an {@linkcode ActiveAppInfo} object.
330
+ * @remarks Derived from https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Commands/FBCustomCommands.m
331
+ */
332
+ export interface ProcessArguments {
333
+ env: StringRecord<string>;
334
+ args: string[];
335
+ }
336
+
337
+ /**
338
+ * Pressable button names; used by the {@linkcode XCUITest.mobilePressButton mobile: pressButton} command.
339
+ */
340
+ export type ButtonName = AnyCase<
341
+ | 'home'
342
+ | 'volumeup'
343
+ | 'volumedown'
344
+ | 'up'
345
+ | 'down'
346
+ | 'left'
347
+ | 'right'
348
+ | 'menu'
349
+ | 'playpause'
350
+ | 'select'
351
+ >;
352
+
353
+ /**
354
+ * Returned in the {@linkcode XCUITest.mobileGetAppearance mobile: getAppearance} command response.
355
+ */
356
+ export type Style = 'dark' | 'light' | 'unsupported' | 'unknown';
357
+
358
+ /**
359
+ * Returned in the {@linkcode XCUITest.mobileGetIncreaseContrast mobile: getIncreaseContrast} command response.
360
+ */
361
+ export type IncreaseContrastResult =
362
+ | 'enabled'
363
+ | 'disabled'
364
+ | 'unsupported'
365
+ | 'unknown';
366
+
367
+ /**
368
+ * Argument in the {@linkcode XCUITest.mobileSetIncreaseContrast mobile: setIncreaseContrast} command.
369
+ */
370
+ export type IncreaseContrastAction =
371
+ | 'enabled'
372
+ | 'disabled';
373
+
374
+ /**
375
+ * Argument in the {@linkcode XCUITest.mobileSetContentSize mobile: setContentSize} command.
376
+ */
377
+ export type ContentSizeAction =
378
+ | 'extra-small'
379
+ | 'small'
380
+ | 'medium'
381
+ | 'large'
382
+ | 'extra-large'
383
+ | 'extra-extra-large'
384
+ | 'extra-extra-extra-large'
385
+ | 'accessibility-medium'
386
+ | 'accessibility-large'
387
+ | 'accessibility-extra-large'
388
+ | 'accessibility-extra-extra-large'
389
+ | 'accessibility-extra-extra-extra-large'
390
+ | 'increment'
391
+ | 'decrement';
392
+
393
+ /**
394
+ * Returned in the {@linkcode XCUITest.mobileGetContentSize mobile: getContentSize} command response.
395
+ */
396
+ export type ContentSizeResult =
397
+ | 'extra-small'
398
+ | 'small'
399
+ | 'medium'
400
+ | 'large'
401
+ | 'extra-large'
402
+ | 'extra-extra-large'
403
+ | 'extra-extra-extra-large'
404
+ | 'accessibility-medium'
405
+ | 'accessibility-large'
406
+ | 'accessibility-extra-large'
407
+ | 'accessibility-extra-extra-large'
408
+ | 'accessibility-extra-extra-extra-large'
409
+ | 'unknown'
410
+ | 'unsupported';
411
+
412
+ export interface ScreenInfo {
413
+ /**
414
+ * Status bar dimensions
415
+ *
416
+ * @see https://developer.apple.com/documentation/xctest/xcuielementtypequeryprovider/1500428-statusbars
417
+ */
418
+ statusBarSize: Size;
419
+ /**
420
+ * Scale of the screen
421
+ *
422
+ * @see https://developer.apple.com/documentation/uikit/uiscreen/1617836-scale
423
+ */
424
+ scale: number;
425
+ }
426
+
427
+ export interface WDALocationInfo extends LocationWithAltitude {
428
+ authorizationStatus: AuthorizationStatus;
429
+ }
430
+
431
+ /**
432
+ * Payload for {@linkcode XCUITestDriver.mobilePushNotification}.
433
+ *
434
+ * Check the output of `xcrun simctl help push` command for more details.
435
+ */
436
+ export interface PushPayload {
437
+ /**
438
+ * The `aps` dictionary.
439
+ *
440
+ * Read the [Setting up a Remote Notification Server documentation](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification#2943359) under "Create a JSON Payload" for more details.
441
+ *
442
+ * @privateRemarks The keys of `aps` [are documented](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification#2943360) and we should add them.
443
+ */
444
+ aps: StringRecord;
445
+ }
446
+
447
+ /**
448
+ * Either `plain` to wait for a notification from the default notification center or `darwin` to wait for a system notification.
449
+ */
450
+ export type NotificationType = 'plain' | 'darwin';
451
+
452
+ export type BiometricFeature = 'touchId' | 'faceId';
453
+
454
+ /**
455
+ * Permission state
456
+ *
457
+ * Details:
458
+ *
459
+ * - `yes`: To grant the permission
460
+ * - `no`: To revoke the permission
461
+ * - `unset`: To reset the permission
462
+ * - `limited`: To grant the permission as limited access (Only for photos)
463
+ */
464
+ export type PermissionState = 'yes' | 'no' | 'unset' | 'limited';
465
+
466
+ /**
467
+ * Access rules for the `mobile: setPermission` execute method.
468
+ *
469
+ * Details:
470
+ *
471
+ * - `all`: Apply the action to all services.
472
+ * - `calendar`: Allow access to calendar.
473
+ * - `contacts-limited`: Allow access to basic contact info.
474
+ * - `contacts`: Allow access to full contact details.
475
+ * - `location`: Allow access to location services when app is in use.
476
+ * - `location-always`: Allow access to location services at all times.
477
+ * - `photos-add`: Allow adding photos to the photo library.
478
+ * - `photos`: Allow full access to the photo library.
479
+ * - `media-library`: Allow access to the media library.
480
+ * - `microphone`: Allow access to audio input.
481
+ * - `motion`: Allow access to motion and fitness data.
482
+ * - `reminders`: Allow access to reminders.
483
+ * - `siri`: Allow use of the app with Siri.
484
+ *
485
+ * @remarks This is similar to--but not exactly the same as--{@linkcode PermissionService}.
486
+ */
487
+ export type AccessRule =
488
+ | 'all'
489
+ | 'calendar'
490
+ | 'contacts-limited'
491
+ | 'contacts'
492
+ | 'location'
493
+ | 'location-always'
494
+ | 'photos-add'
495
+ | 'photos'
496
+ | 'media-library'
497
+ | 'microphone'
498
+ | 'motion'
499
+ | 'reminders'
500
+ | 'siri';
501
+
502
+ /**
503
+ * On-screen keyboard properties.
504
+ *
505
+ * To see possible combinations, execute `xcrun simctl spawn booted defaults read .GlobalPreferences.plist AppleKeyboards`
506
+ */
507
+ export interface KeyboardOptions {
508
+ /**
509
+ * The name of the keyboard locale, for example `en_US` or `de_CH`
510
+ */
511
+ name: string;
512
+ /**
513
+ * The keyboard layout, for example `QUERTY` or `Ukrainian`
514
+ */
515
+ layout: string;
516
+ hardware?: 'Automatic';
517
+ }
518
+
519
+ /**
520
+ * System language properties
521
+ *
522
+ * To see possible combinations, execute `xcrun simctl spawn booted defaults read .GlobalPreferences.plist AppleLanguages`.
523
+ */
524
+ export interface LanguageOptions {
525
+ /**
526
+ * The name of the language, for example `de` or `zh-Hant-CN`
527
+ */
528
+ name: string;
529
+ }
530
+
531
+ /**
532
+ * System locale properties.
533
+ *
534
+ * To see possible combinations, execute `xcrun simctl spawn booted defaults read .GlobalPreferences.plist AppleLocale`.
535
+ */
536
+ export interface LocaleOptions {
537
+ /**
538
+ * The name of the system locale, for example `de_CH` or `zh_CN`
539
+ */
540
+ name: string;
541
+ /**
542
+ * Optional calendar format, for example `gregorian` or `persian`
543
+ */
544
+ calendar?: string;
545
+ }
546
+
547
+ /**
548
+ * The result of an XCTest run.
549
+ */
550
+ export interface XCTestResult {
551
+ /**
552
+ * Name of the test (e.g.: `XCTesterAppUITests - XCTesterAppUITests.XCTesterAppUITests/testExample`)
553
+ */
554
+ testName: string;
555
+ /**
556
+ * Did the test pass?
557
+ */
558
+ passed: boolean;
559
+ /**
560
+ * Did the test crash?
561
+ */
562
+ crashed: boolean;
563
+ /**
564
+ * Test result status (e.g.: 'passed', 'failed', 'crashed')
565
+ * @privateRemarks This should be a union of string literals. Fix it
566
+ */
567
+ status: string;
568
+ /**
569
+ * How long the test took to run (in seconds)
570
+ */
571
+ duration: number;
572
+ /**
573
+ * The failure message (if applicable)
574
+ */
575
+ failureMessage?: string;
576
+ /**
577
+ * The geolocation of the test (if applicable)
578
+ * @privateRemarks Document the type
579
+ */
580
+ location?: string;
581
+ }
582
+
583
+ export interface RunXCTestResult {
584
+ /**
585
+ * The results of each test run
586
+ */
587
+ results: XCTestResult[];
588
+ /**
589
+ * Exit code of the process. `0` means success
590
+ */
591
+ code: number;
592
+ /**
593
+ * The signal that terminated the process (or null) (e.g.: `SIGTERM`)
594
+ * @privateRemarks This should be a union of string literals. Fix it
595
+ */
596
+ signal: string | null;
597
+ /**
598
+ * If all tests passed
599
+ */
600
+ passed: boolean;
601
+ }
602
+
603
+ /**
604
+ * Representation of a viewport.
605
+ *
606
+ * @see https://developer.apple.com/library/archive/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html
607
+ */
608
+ export interface Viewport {
609
+ /**
610
+ * Distance from left of screen
611
+ */
612
+ left: 0;
613
+ /**
614
+ * Distance from top of screen
615
+ */
616
+ top: number;
617
+ /**
618
+ * Screen width
619
+ */
620
+ width: number;
621
+ /**
622
+ * Screen height
623
+ */
624
+ height: number;
625
+ }
626
+
627
+ export interface KeyboardKey {
628
+ /**
629
+ * Represents a key to type (see
630
+ * https://developer.apple.com/documentation/xctest/xcuielement/1500604-typekey?language=objc
631
+ * and https://developer.apple.com/documentation/xctest/xcuikeyboardkey?language=objc)
632
+ */
633
+ key: string;
634
+ /**
635
+ * Set of modifier flags
636
+ * (https://developer.apple.com/documentation/xctest/xcuikeymodifierflags?language=objc)
637
+ * to use when typing the key.
638
+ */
639
+ modifierFlags?: number;
640
+ }
641
+
642
+ export interface LogEntry {
643
+ timestamp: number;
644
+ level: string,
645
+ message: string;
646
+ }
647
+
648
+ export type LogListener = (logEntry: LogEntry) => any;