@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,454 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseCommonName = parseCommonName;
7
+ exports.mobileInstallCertificate = mobileInstallCertificate;
8
+ exports.mobileRemoveCertificate = mobileRemoveCertificate;
9
+ exports.mobileListCertificates = mobileListCertificates;
10
+ const lodash_1 = __importDefault(require("lodash"));
11
+ const support_1 = require("appium/support");
12
+ const asyncbox_1 = require("asyncbox");
13
+ const bluebird_1 = __importDefault(require("bluebird"));
14
+ const os_1 = __importDefault(require("os"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const http_1 = __importDefault(require("http"));
17
+ const teen_process_1 = require("teen_process");
18
+ const portscanner_1 = require("portscanner");
19
+ const py_ios_device_client_1 = require("../real-device-clients/py-ios-device-client");
20
+ const driver_1 = require("appium/driver");
21
+ const CONFIG_EXTENSION = 'mobileconfig';
22
+ const HOST_PORT_RANGE = [38200, 38299];
23
+ const TMPSERVER_STARTUP_TIMEOUT = 5000;
24
+ const Settings = /** @type {const} */ ({
25
+ General: {
26
+ type: 'accessibility id',
27
+ value: 'General',
28
+ },
29
+ Profile: {
30
+ type: '-ios predicate string',
31
+ value: `name BEGINSWITH 'Profile'`,
32
+ },
33
+ About: {
34
+ type: 'accessibility id',
35
+ value: 'About',
36
+ },
37
+ Certificate_Trust_Settings: {
38
+ type: 'accessibility id',
39
+ value: 'Certificate Trust Settings',
40
+ },
41
+ });
42
+ const Button = /** @type {const} */ ({
43
+ Install: {
44
+ type: 'accessibility id',
45
+ value: 'Install',
46
+ },
47
+ Allow: {
48
+ type: 'accessibility id',
49
+ value: 'Allow',
50
+ },
51
+ Done: {
52
+ type: 'accessibility id',
53
+ value: 'Done',
54
+ },
55
+ Return_to_Settings: {
56
+ type: 'accessibility id',
57
+ value: 'Return to Settings',
58
+ },
59
+ });
60
+ const Alert = /** @type {const} */ ({
61
+ Install: {
62
+ type: '-ios class chain',
63
+ value: "**/XCUIElementTypeAny[`type == 'XCUIElementTypeAlert' OR type == 'XCUIElementTypeSheet'`]/**/XCUIElementTypeButton[`label == 'Install'`]",
64
+ },
65
+ });
66
+ const LIBRE_SSL_PATTERN = /\/CN=([^\/]+)/; // eslint-disable-line no-useless-escape
67
+ const OPEN_SSL_PATTERN = /,\sCN\s=\s([^,]+)/;
68
+ /**
69
+ * Parses the common name of the certificate from the given string.
70
+ *
71
+ * @param {string} stringCertificate
72
+ * @returns {string} The common name of the certificate
73
+ */
74
+ function parseCommonName(stringCertificate) {
75
+ const result = [LIBRE_SSL_PATTERN, OPEN_SSL_PATTERN].reduce((acc, r) => {
76
+ if (acc) {
77
+ return acc;
78
+ }
79
+ const match = r.exec(stringCertificate);
80
+ return match?.[1];
81
+ }, null);
82
+ if (!result) {
83
+ throw new Error(`There is no common name value in '${stringCertificate}' output`);
84
+ }
85
+ return result;
86
+ }
87
+ /**
88
+ * Installs a custom certificate onto the device.
89
+ *
90
+ * Since Xcode SDK 11.4, Apple has added a dedicated `simctl` subcommand to quickly handle
91
+ * certificates on Simulator over CLI.
92
+ *
93
+ * On real devices (or simulators before Xcode SDK 11.4), Apple provides no "official" way to do this via the command line. In such a case (and also as a fallback if CLI setup fails), this method tries to wrap the certificate into `.mobileconfig` format, then deploys the wrapped file to the internal HTTP server so that it can be opened via mobile Safari. This command then goes through the profile installation procedure by clicking the necessary buttons using WebDriverAgent.
94
+ * @param {string} content - Base64-encoded content of the public certificate in [PEM](https://knowledge.digicert.com/quovadis/ssl-certificates/ssl-general-topics/what-is-pem-format.html) format
95
+ * @param {string} [commonName] - Common name of the certificate. If this is not set, the command will try to parse it from the provided `content`.
96
+ * @param {boolean} isRoot - Defines where the certificate should be installed; either the Trusted Root Store (`true`) or the Keychain (`false`). On environments other than Xcode 11.4+ Simulator, this option is ignored.
97
+ * @returns {Promise<string|void>} The content of the generated `.mobileconfig` file as
98
+ * a base64-encoded string. This config might be useful for debugging purposes. If the certificate has been successfully set via CLI, then nothing is returned.
99
+ * @this {XCUITestDriver}
100
+ */
101
+ async function mobileInstallCertificate(content, commonName, isRoot = true) {
102
+ if (lodash_1.default.isEmpty(content)) {
103
+ throw new Error('Certificate content should not be empty');
104
+ }
105
+ if (this.isSimulator()) {
106
+ try {
107
+ const methodName = isRoot ? 'addRootCertificate' : 'addCertificate';
108
+ await /** @type {import('../driver').Simulator} */ (this.device).simctl[methodName](Buffer.from(content, 'base64').toString(), {
109
+ raw: true,
110
+ });
111
+ return;
112
+ }
113
+ catch (e) {
114
+ this.log.debug(e);
115
+ this.log.info(`The certificate cannot be installed via CLI. ` + `Falling back to UI-based deployment`);
116
+ }
117
+ }
118
+ else {
119
+ const client = new py_ios_device_client_1.Pyidevice({
120
+ udid: this.opts.udid,
121
+ log: this.log,
122
+ });
123
+ if (await client.assertExists(false)) {
124
+ await client.installProfile({ payload: Buffer.from(content, 'base64') });
125
+ return;
126
+ }
127
+ else {
128
+ this.log.info('pyidevice is not installed on your system. ' +
129
+ 'Falling back to the (slow) UI-based installation');
130
+ }
131
+ }
132
+ const tmpRoot = await support_1.tempDir.openDir();
133
+ const tmpPort = await (0, portscanner_1.findAPortNotInUse)(HOST_PORT_RANGE[0], HOST_PORT_RANGE[1]);
134
+ const configName = `appium.${CONFIG_EXTENSION}`;
135
+ const configPath = path_1.default.resolve(tmpRoot, configName);
136
+ const tmpServer = http_1.default.createServer(async function (_, res) {
137
+ const configFile = await support_1.fs.readFile(configPath);
138
+ res.end(configFile);
139
+ });
140
+ try {
141
+ const certBuffer = Buffer.from(content, 'base64');
142
+ const cn = commonName || (await extractCommonName(certBuffer));
143
+ const mobileConfig = toMobileConfig(certBuffer, cn);
144
+ try {
145
+ await support_1.plist.updatePlistFile(configPath, mobileConfig, false, false);
146
+ }
147
+ catch (err) {
148
+ throw new Error(`Cannot store the generated config as '${configPath}'. ` +
149
+ `Original error: ${err.message}`);
150
+ }
151
+ try {
152
+ const host = os_1.default.hostname();
153
+ const certUrl = `http://${host}:${tmpPort}/${configName}`;
154
+ await tmpServer.listen(tmpPort);
155
+ try {
156
+ await (0, asyncbox_1.waitForCondition)(async () => {
157
+ try {
158
+ return (await (0, portscanner_1.checkPortStatus)(tmpPort, host)) === 'open';
159
+ }
160
+ catch {
161
+ return false;
162
+ }
163
+ }, {
164
+ waitMs: TMPSERVER_STARTUP_TIMEOUT,
165
+ intervalMs: 300,
166
+ });
167
+ this.log.debug(`The temporary web server is running at http://${host}:${tmpPort}`);
168
+ }
169
+ catch {
170
+ throw new Error(`The temporary web server cannot be started at http://${host}:${tmpPort}.`);
171
+ }
172
+ if (this.isRealDevice()) {
173
+ try {
174
+ await this.proxyCommand('/url', 'POST', { url: certUrl });
175
+ }
176
+ catch (err) {
177
+ if (this.isWebContext()) {
178
+ // The command above does not always work on real devices
179
+ await this.setUrl(certUrl);
180
+ }
181
+ else {
182
+ throw err;
183
+ }
184
+ }
185
+ }
186
+ else {
187
+ await /** @type {import('../driver').Simulator} */ (this.device).openUrl(certUrl);
188
+ }
189
+ let isCertAlreadyInstalled = false;
190
+ if (support_1.util.compareVersions(/** @type {string} */ (this.opts.platformVersion), '>=', '12.2')) {
191
+ if (await installPost122Certificate(this, cn)) {
192
+ await clickElement(this, Settings.Profile);
193
+ await trustCertificateInPreferences(this, cn);
194
+ }
195
+ else {
196
+ isCertAlreadyInstalled = true;
197
+ }
198
+ }
199
+ else {
200
+ if (await installPre122Certificate(this)) {
201
+ await clickElement(this, Button.Return_to_Settings);
202
+ await trustCertificateInPreferences(this, cn);
203
+ }
204
+ else {
205
+ isCertAlreadyInstalled = true;
206
+ }
207
+ }
208
+ if (isCertAlreadyInstalled) {
209
+ this.log.info(`It looks like the '${cn}' certificate has been already added to the CA root`);
210
+ }
211
+ }
212
+ finally {
213
+ if (this.opts.bundleId) {
214
+ try {
215
+ await this.activateApp(this.opts.bundleId);
216
+ }
217
+ catch (e) {
218
+ this.log.warn(`Cannot restore the application '${this.opts.bundleId}'. Original error: ${e.message}`);
219
+ }
220
+ }
221
+ }
222
+ return (await support_1.util.toInMemoryBase64(configPath)).toString();
223
+ }
224
+ finally {
225
+ await tmpServer.close();
226
+ await support_1.fs.rimraf(tmpRoot);
227
+ }
228
+ }
229
+ /**
230
+ * Removes installed certificates.
231
+ *
232
+ * This only works _if and only if_ `py-ios-device` is installed on the same machine Appium is running on.
233
+ *
234
+ * @see https://github.com/YueChen-C/py-ios-device
235
+ * @since 4.19.2
236
+ * @param {string} name - Name of the profile
237
+ * @returns {Promise<string>} Returns status acknowledgment status if
238
+ * tht certificate is successfully removed or 'None' (basically just
239
+ * forwards the original pyidevice output)
240
+ * @throws {Error} If attempting to remove certificates for a simulated device or if `py-ios-device` is not installed
241
+ * @group Real Device Only
242
+ */
243
+ async function mobileRemoveCertificate(name) {
244
+ if (!this.isRealDevice()) {
245
+ throw new driver_1.errors.NotImplementedError('This extension is only supported on real devices');
246
+ }
247
+ const client = new py_ios_device_client_1.Pyidevice({
248
+ udid: this.opts.udid,
249
+ log: this.log,
250
+ });
251
+ await client.assertExists(true);
252
+ return await client.removeProfile(name);
253
+ }
254
+ /**
255
+ * Returns map of certificates installed on the real device.
256
+ *
257
+ * This only works _if and only if_ `py-ios-device` is installed on the same machine Appium is running on.
258
+ * @since 4.10.0
259
+ * @see https://github.com/YueChen-C/py-ios-device
260
+ * @returns {Promise<import('./types').CertificateList>} An object describing the certificates installed on the real device.
261
+ * @throws {Error} If attempting to list certificates for a simulated device or if `py-ios-device` is not installed
262
+ * @this {XCUITestDriver}
263
+ */
264
+ async function mobileListCertificates() {
265
+ if (!this.isRealDevice()) {
266
+ throw new driver_1.errors.NotImplementedError('This extension is only supported on real devices');
267
+ }
268
+ const client = new py_ios_device_client_1.Pyidevice({
269
+ udid: this.opts.udid,
270
+ log: this.log,
271
+ });
272
+ await client.assertExists(true);
273
+ return await client.listProfiles();
274
+ }
275
+ /**
276
+ * Extracts the common name of the certificate from the given buffer.
277
+ *
278
+ * @param {Buffer} certBuffer
279
+ * @returns {Promise<string>} The common name of the certificate
280
+ */
281
+ async function extractCommonName(certBuffer) {
282
+ const tempCert = await support_1.tempDir.open({
283
+ prefix: 'cert',
284
+ suffix: '.cer',
285
+ });
286
+ try {
287
+ await support_1.fs.writeFile(tempCert.path, certBuffer);
288
+ const { stdout } = await (0, teen_process_1.exec)('openssl', ['x509', '-noout', '-subject', '-in', tempCert.path]);
289
+ return parseCommonName(stdout);
290
+ }
291
+ catch (err) {
292
+ throw new Error(`Cannot parse common name value from the certificate. Is it valid and base64-encoded? ` +
293
+ `Original error: ${err.message}`);
294
+ }
295
+ finally {
296
+ await support_1.fs.rimraf(tempCert.path);
297
+ }
298
+ }
299
+ /**
300
+ * Generates Apple's over-the-air configuration profile
301
+ * for certificate deployment based on the given PEM certificate content.
302
+ * Read https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/Introduction/Introduction.html
303
+ * for more details on such profiles.
304
+ *
305
+ * @param {Buffer} certBuffer - The actual content of PEM certificate encoded into NodeJS buffer
306
+ * @param {string} commonName - Certificate's common name
307
+ * @returns {Object} The encoded structure of the given certificate, which is ready to be passed
308
+ * as an argument to plist builder
309
+ * @throws {Error} If the given certificate cannot be parsed
310
+ */
311
+ function toMobileConfig(certBuffer, commonName) {
312
+ const getUUID = () => support_1.util.uuidV4().toUpperCase();
313
+ const contentUuid = getUUID();
314
+ return {
315
+ PayloadContent: [
316
+ {
317
+ PayloadCertificateFileName: `${commonName}.cer`,
318
+ PayloadContent: certBuffer,
319
+ PayloadDescription: 'Adds a CA root certificate',
320
+ PayloadDisplayName: commonName,
321
+ PayloadIdentifier: `com.apple.security.root.${contentUuid}`,
322
+ PayloadType: 'com.apple.security.root',
323
+ PayloadUUID: contentUuid,
324
+ PayloadVersion: 1,
325
+ },
326
+ ],
327
+ PayloadDisplayName: commonName,
328
+ PayloadIdentifier: `${os_1.default.hostname().split('.')[0]}.${getUUID()}`,
329
+ PayloadRemovalDisallowed: false,
330
+ PayloadType: 'Configuration',
331
+ PayloadUUID: getUUID(),
332
+ PayloadVersion: 1,
333
+ };
334
+ }
335
+ async function clickElement(driver, locator, options = {}) {
336
+ let element = null;
337
+ const { timeout = 5000, skipIfInvisible = false } = options;
338
+ const lookupDelay = 500;
339
+ try {
340
+ element = await (0, asyncbox_1.retryInterval)(timeout < lookupDelay ? 1 : timeout / lookupDelay, lookupDelay, () => driver.findNativeElementOrElements(locator.type, locator.value, false));
341
+ }
342
+ catch {
343
+ if (skipIfInvisible) {
344
+ return false;
345
+ }
346
+ throw new Error(`Cannot find ${JSON.stringify(locator)} within ${timeout}ms timeout`);
347
+ }
348
+ await driver.nativeClick(element);
349
+ return true;
350
+ }
351
+ async function installPre122Certificate(driver) {
352
+ // Accept Safari alert
353
+ await clickElement(driver, Button.Allow, {
354
+ // certificate load might take some time on slow machines
355
+ timeout: 15000,
356
+ });
357
+ // Wait until Preferences are opened
358
+ await bluebird_1.default.delay(2000);
359
+ // Go through Preferences wizard
360
+ if (!(await clickElement(driver, Button.Install, {
361
+ skipIfInvisible: true,
362
+ }))) {
363
+ return false;
364
+ }
365
+ // We need to click Install button on two different tabs
366
+ // The second one confirms the previous
367
+ await bluebird_1.default.delay(1500);
368
+ await clickElement(driver, Button.Install);
369
+ // Accept alert
370
+ await clickElement(driver, Alert.Install);
371
+ // Finish adding certificate
372
+ await clickElement(driver, Button.Done);
373
+ return true;
374
+ }
375
+ async function trustCertificateInPreferences(driver, name) {
376
+ await clickElement(driver, Settings.General);
377
+ await clickElement(driver, Settings.About);
378
+ const switchLocator = {
379
+ type: '-ios class chain',
380
+ value: `**/XCUIElementTypeCell[\`label == '${name}'\`]/**/XCUIElementTypeSwitch`,
381
+ };
382
+ await (0, asyncbox_1.retry)(5, async () => {
383
+ await driver.mobileSwipe({
384
+ element: await driver.findNativeElementOrElements('class name', 'XCUIElementTypeTable', false),
385
+ direction: 'up',
386
+ });
387
+ await clickElement(driver, Settings.Certificate_Trust_Settings, {
388
+ timeout: 500,
389
+ });
390
+ await driver.findNativeElementOrElements(switchLocator.type, switchLocator.value, false);
391
+ });
392
+ // Only click the switch if it is set to Off
393
+ if (await clickElement(driver, {
394
+ type: switchLocator.type,
395
+ value: `${switchLocator.value}[\`value == '0'\`]`,
396
+ }, {
397
+ timeout: 1000,
398
+ skipIfInvisible: true,
399
+ })) {
400
+ await driver.postAcceptAlert();
401
+ }
402
+ }
403
+ async function installPost122Certificate(driver, name) {
404
+ // Accept Safari alert
405
+ await clickElement(driver, Button.Allow, {
406
+ // certificate load might take some time on slow machines
407
+ timeout: 15000,
408
+ });
409
+ // Wait for the second alert
410
+ await bluebird_1.default.delay(2000);
411
+ await driver.postAcceptAlert();
412
+ await driver.activateApp('com.apple.Preferences');
413
+ await clickElement(driver, Settings.General);
414
+ await clickElement(driver, Settings.Profile);
415
+ // Select the target cert
416
+ let isCertFound = false;
417
+ for (let swipeNum = 0; swipeNum < 5; ++swipeNum) {
418
+ if (await clickElement(driver, {
419
+ type: '-ios class chain',
420
+ value: `**/XCUIElementTypeCell[\`label == '${name}'\`]`,
421
+ }, {
422
+ timeout: 500,
423
+ skipIfInvisible: true,
424
+ })) {
425
+ isCertFound = true;
426
+ break;
427
+ }
428
+ await driver.mobileSwipe({
429
+ element: await driver.findNativeElementOrElements('class name', 'XCUIElementTypeTable', false),
430
+ direction: 'up',
431
+ });
432
+ }
433
+ if (!isCertFound) {
434
+ throw new Error(`'${name}' cannot be found in the certificates list`);
435
+ }
436
+ // Install option is only visible if the cert is not installed yet
437
+ if (!(await clickElement(driver, Button.Install, {
438
+ skipIfInvisible: true,
439
+ }))) {
440
+ return false;
441
+ }
442
+ await bluebird_1.default.delay(1500);
443
+ // Confirm untrusted cert install
444
+ await clickElement(driver, Button.Install);
445
+ // Accept alert
446
+ await clickElement(driver, Alert.Install);
447
+ // Finish adding certificate
448
+ await clickElement(driver, Button.Done);
449
+ return true;
450
+ }
451
+ /**
452
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
453
+ */
454
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../lib/commands/certificate.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Sets the primary clipboard's content on the device under test.
3
+ *
4
+ * @param {string} content - The content to be set as base64 encoded string.
5
+ * @param {string} [contentType=plaintext] - The type of the content to set.
6
+ * Only `plaintext`, 'image and 'url' are supported.
7
+ * @this {XCUITestDriver}
8
+ */
9
+ export function setClipboard(this: import("../driver").XCUITestDriver, content: string, contentType?: string): Promise<void>;
10
+ /**
11
+ * Gets the content of the primary clipboard on the device under test.
12
+ *
13
+ * @param {string} [contentType=plaintext] - The type of the content to get.
14
+ * Only `plaintext`, 'image and 'url' are supported.
15
+ * @returns {Promise<string>} The actual clipboard content encoded into base64 string.
16
+ * An empty string is returned if the clipboard contains no data.
17
+ * @this {XCUITestDriver}
18
+ */
19
+ export function getClipboard(this: import("../driver").XCUITestDriver, contentType?: string): Promise<string>;
20
+ export type XCUITestDriver = import("../driver").XCUITestDriver;
21
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../lib/commands/clipboard.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,gFALW,MAAM,gBACN,MAAM,iBAShB;AAED;;;;;;;;GAQG;AACH,qFANW,MAAM,GAEJ,OAAO,CAAC,MAAM,CAAC,CAU3B;6BAGY,OAAO,WAAW,EAAE,cAAc"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setClipboard = setClipboard;
4
+ exports.getClipboard = getClipboard;
5
+ /**
6
+ * Sets the primary clipboard's content on the device under test.
7
+ *
8
+ * @param {string} content - The content to be set as base64 encoded string.
9
+ * @param {string} [contentType=plaintext] - The type of the content to set.
10
+ * Only `plaintext`, 'image and 'url' are supported.
11
+ * @this {XCUITestDriver}
12
+ */
13
+ async function setClipboard(content, contentType) {
14
+ await this.proxyCommand('/wda/setPasteboard', 'POST', {
15
+ content,
16
+ contentType,
17
+ });
18
+ }
19
+ /**
20
+ * Gets the content of the primary clipboard on the device under test.
21
+ *
22
+ * @param {string} [contentType=plaintext] - The type of the content to get.
23
+ * Only `plaintext`, 'image and 'url' are supported.
24
+ * @returns {Promise<string>} The actual clipboard content encoded into base64 string.
25
+ * An empty string is returned if the clipboard contains no data.
26
+ * @this {XCUITestDriver}
27
+ */
28
+ async function getClipboard(contentType) {
29
+ return /** @type {string} */ (await this.proxyCommand('/wda/getPasteboard', 'POST', {
30
+ contentType,
31
+ }));
32
+ }
33
+ /**
34
+ * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
35
+ */
36
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../lib/commands/clipboard.js"],"names":[],"mappings":";;AAQA,oCAKC;AAWD,oCAMC;AA9BD;;;;;;;GAOG;AACI,KAAK,UAAU,YAAY,CAAC,OAAO,EAAE,WAAW;IACrD,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,EAAE;QACpD,OAAO;QACP,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAAC,WAAW;IAC5C,OAAO,qBAAqB,CAAC,CAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,EAAE;QACpD,WAAW;KACZ,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;GAEG"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Get all available ConditionInducer configuration information, which can be used with
3
+ * {@linkcode XCUITestDriver.enableConditionInducer}
4
+ * @returns {Promise<Condition[]>}
5
+ * @since 4.9.0
6
+ * @see {@link https://help.apple.com/xcode/mac/current/#/dev308429d42}
7
+ * @this {XCUITestDriver}
8
+ */
9
+ export function listConditionInducers(this: import("../driver").XCUITestDriver): Promise<Condition[]>;
10
+ /**
11
+ * Enable a "condition inducer". You can create a condition on a connected device to test your app under adverse conditions,
12
+ * such as poor network connectivity or thermal constraints. When you start a device condition,
13
+ * the operating system on the device behaves as if its environment has changed. The device
14
+ * condition remains active until you stop the device condition or disconnect the device. For
15
+ * example, you can start a device condition, run your app, monitor your app's energy usage, and
16
+ * then stop the condition.
17
+ *
18
+ * (Note: the socket needs to remain connected during operation)
19
+ * (Note: Device conditions are available only for real devices running iOS 13.0 and later.)
20
+ *
21
+ * @param {string} conditionID - Determine which condition IDs are available with the {@linkcode XCUITestDriver.listConditionInducers} command
22
+ * @param {string} profileID - Determine which profile IDs are available with the {@linkcode XCUITestDriver.listConditionInducers} command
23
+ * @returns {Promise<boolean>} `true` if enabling the condition succeeded
24
+ * @throws {Error} If you try to start another Condition and the previous Condition has not stopped
25
+ * @since 4.9.0
26
+ * @see {@link https://help.apple.com/xcode/mac/current/#/dev308429d42}
27
+ * @this {XCUITestDriver}
28
+ */
29
+ export function enableConditionInducer(this: import("../driver").XCUITestDriver, conditionID: string, profileID: string): Promise<boolean>;
30
+ export class enableConditionInducer {
31
+ /**
32
+ * Enable a "condition inducer". You can create a condition on a connected device to test your app under adverse conditions,
33
+ * such as poor network connectivity or thermal constraints. When you start a device condition,
34
+ * the operating system on the device behaves as if its environment has changed. The device
35
+ * condition remains active until you stop the device condition or disconnect the device. For
36
+ * example, you can start a device condition, run your app, monitor your app's energy usage, and
37
+ * then stop the condition.
38
+ *
39
+ * (Note: the socket needs to remain connected during operation)
40
+ * (Note: Device conditions are available only for real devices running iOS 13.0 and later.)
41
+ *
42
+ * @param {string} conditionID - Determine which condition IDs are available with the {@linkcode XCUITestDriver.listConditionInducers} command
43
+ * @param {string} profileID - Determine which profile IDs are available with the {@linkcode XCUITestDriver.listConditionInducers} command
44
+ * @returns {Promise<boolean>} `true` if enabling the condition succeeded
45
+ * @throws {Error} If you try to start another Condition and the previous Condition has not stopped
46
+ * @since 4.9.0
47
+ * @see {@link https://help.apple.com/xcode/mac/current/#/dev308429d42}
48
+ * @this {XCUITestDriver}
49
+ */
50
+ constructor(this: import("../driver").XCUITestDriver, conditionID: string, profileID: string);
51
+ _conditionInducerService: any;
52
+ }
53
+ /**
54
+ * Disable a condition inducer enabled with {@linkcode XCUITestDriver.enableConditionInducer} Usually
55
+ * a persistent connection is maintained after the condition inducer is enabled, and this method
56
+ * is only valid for the currently enabled connection. If the connection is disconnected, the
57
+ * condition inducer will be automatically disabled
58
+ *
59
+ * (Note: this is also automatically called upon session cleanup)
60
+ * @returns {Promise<boolean>} `true` if disable the condition succeeded
61
+ * @since 4.9.0
62
+ * @see {@link https://help.apple.com/xcode/mac/current/#/dev308429d42}
63
+ * @this {XCUITestDriver}
64
+ */
65
+ export function disableConditionInducer(this: import("../driver").XCUITestDriver): Promise<boolean>;
66
+ export class disableConditionInducer {
67
+ _conditionInducerService: any;
68
+ }
69
+ export type Profile = {
70
+ name: string;
71
+ /**
72
+ * the property is profileID used in {@linkcode XCUITestDriver.enableConditionInducer}
73
+ */
74
+ identifier: string;
75
+ /**
76
+ * Configuration details
77
+ */
78
+ description: string;
79
+ };
80
+ /**
81
+ * We can use the returned data to determine whether the Condition is enabled and the currently enabled configuration information
82
+ */
83
+ export type Condition = {
84
+ profiles: Profile[];
85
+ /**
86
+ * the property is conditionID used in {@linkcode XCUITestDriver.enableConditionInducer}
87
+ */
88
+ identifier: string;
89
+ profilesSorted: boolean;
90
+ isDestructive: boolean;
91
+ isInternal: boolean;
92
+ /**
93
+ * `true` if this condition identifier is enabled
94
+ */
95
+ isActive: boolean;
96
+ /**
97
+ * enabled profiles identifier
98
+ */
99
+ activeProfile: string;
100
+ };
101
+ export type XCUITestDriver = import("../driver").XCUITestDriver;
102
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../lib/commands/condition.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,iFALa,OAAO,CAAC,SAAS,EAAE,CAAC,CAiBhC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,8FARW,MAAM,aACN,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CA0B5B;;IAvCD;;;;;;;;;;;;;;;;;;OAkBG;IACH,mEARW,MAAM,aACN,MAAM,EA2BhB;IAbC,8BAAuF;;AAezF;;;;;;;;;;;GAWG;AACH,mFALa,OAAO,CAAC,OAAO,CAAC,CA0B5B;;IAHK,8BAAoC;;;UAiB5B,MAAM;;;;gBACN,MAAM;;;;iBACN,MAAM;;;;;;cAMN,OAAO,EAAE;;;;gBACT,MAAM;oBACN,OAAO;mBACP,OAAO;gBACP,OAAO;;;;cACP,OAAO;;;;mBACP,MAAM;;6BA0BP,OAAO,WAAW,EAAE,cAAc"}