@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,400 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLATFORM_NAME_TVOS = exports.PLATFORM_NAME_IOS = exports.desiredCapConstraints = void 0;
4
+ // These platform names should be valid in simulator name
5
+ const PLATFORM_NAME_IOS = 'iOS';
6
+ exports.PLATFORM_NAME_IOS = PLATFORM_NAME_IOS;
7
+ const PLATFORM_NAME_TVOS = 'tvOS';
8
+ exports.PLATFORM_NAME_TVOS = PLATFORM_NAME_TVOS;
9
+ const desiredCapConstraints = /** @type {const} */ ({
10
+ platformName: {
11
+ // override
12
+ presence: true,
13
+ isString: true,
14
+ inclusionCaseInsensitive: [PLATFORM_NAME_IOS, PLATFORM_NAME_TVOS],
15
+ },
16
+ browserName: {
17
+ isString: true,
18
+ },
19
+ app: {
20
+ isString: true,
21
+ },
22
+ calendarFormat: {
23
+ isString: true,
24
+ },
25
+ bundleId: {
26
+ isString: true,
27
+ },
28
+ udid: {
29
+ isString: true,
30
+ },
31
+ autoAcceptAlerts: {
32
+ isBoolean: true,
33
+ },
34
+ autoDismissAlerts: {
35
+ isBoolean: true,
36
+ },
37
+ nativeWebTap: {
38
+ isBoolean: true,
39
+ },
40
+ safariInitialUrl: {
41
+ isString: true,
42
+ },
43
+ initialDeeplinkUrl: {
44
+ isString: true,
45
+ },
46
+ safariAllowPopups: {
47
+ isBoolean: true,
48
+ },
49
+ safariIgnoreFraudWarning: {
50
+ isBoolean: true,
51
+ },
52
+ safariOpenLinksInBackground: {
53
+ isBoolean: true,
54
+ },
55
+ safariShowFullResponse: {
56
+ isBoolean: true,
57
+ },
58
+ keepKeyChains: {
59
+ isBoolean: true,
60
+ },
61
+ resetLocationService: {
62
+ isBoolean: true,
63
+ },
64
+ localizableStringsDir: {
65
+ isString: true,
66
+ },
67
+ processArguments: {
68
+ // recognize the cap,
69
+ // but validate in the driver#validateDesiredCaps method
70
+ },
71
+ webviewConnectRetries: {
72
+ isNumber: true,
73
+ },
74
+ clearSystemFiles: {
75
+ isBoolean: true,
76
+ },
77
+ customSSLCert: {
78
+ isString: true,
79
+ },
80
+ remoteDebugProxy: {
81
+ isString: true,
82
+ },
83
+ enablePerformanceLogging: {
84
+ isBoolean: true,
85
+ },
86
+ enableAsyncExecuteFromHttps: {
87
+ isBoolean: true,
88
+ },
89
+ fullContextList: {
90
+ isBoolean: true,
91
+ },
92
+ ignoreAboutBlankUrl: {
93
+ isBoolean: true,
94
+ },
95
+ skipLogCapture: {
96
+ isBoolean: true,
97
+ },
98
+ deviceName: {
99
+ isString: true,
100
+ },
101
+ showXcodeLog: {
102
+ isBoolean: true,
103
+ },
104
+ wdaLocalPort: {
105
+ isNumber: true,
106
+ },
107
+ wdaRemotePort: {
108
+ isNumber: true,
109
+ },
110
+ wdaBindingIP: {
111
+ isString: true,
112
+ },
113
+ wdaBaseUrl: {
114
+ isString: true,
115
+ },
116
+ iosInstallPause: {
117
+ isNumber: true,
118
+ },
119
+ xcodeConfigFile: {
120
+ isString: true,
121
+ },
122
+ xcodeOrgId: {
123
+ isString: true,
124
+ },
125
+ xcodeSigningId: {
126
+ isString: true,
127
+ },
128
+ keychainPath: {
129
+ isString: true,
130
+ },
131
+ keychainPassword: {
132
+ isString: true,
133
+ },
134
+ bootstrapPath: {
135
+ isString: true,
136
+ },
137
+ agentPath: {
138
+ isString: true,
139
+ },
140
+ scaleFactor: {
141
+ isString: true,
142
+ },
143
+ usePrebuiltWDA: {
144
+ isBoolean: true,
145
+ },
146
+ prebuiltWDAPath: {
147
+ isString: true,
148
+ },
149
+ usePreinstalledWDA: {
150
+ isBoolean: true,
151
+ },
152
+ updatedWDABundleIdSuffix: {
153
+ isString: true,
154
+ },
155
+ webDriverAgentUrl: {
156
+ isString: true,
157
+ },
158
+ derivedDataPath: {
159
+ isString: true,
160
+ },
161
+ launchWithIDB: {
162
+ isBoolean: true,
163
+ },
164
+ useNewWDA: {
165
+ isBoolean: true,
166
+ },
167
+ wdaLaunchTimeout: {
168
+ isNumber: true,
169
+ },
170
+ wdaConnectionTimeout: {
171
+ isNumber: true,
172
+ },
173
+ updatedWDABundleId: {
174
+ isString: true,
175
+ },
176
+ resetOnSessionStartOnly: {
177
+ isBoolean: true,
178
+ },
179
+ commandTimeouts: {
180
+ // recognize the cap,
181
+ // but validate in the driver#validateDesiredCaps method
182
+ },
183
+ wdaStartupRetries: {
184
+ isNumber: true,
185
+ },
186
+ wdaStartupRetryInterval: {
187
+ isNumber: true,
188
+ },
189
+ prebuildWDA: {
190
+ isBoolean: true,
191
+ },
192
+ connectHardwareKeyboard: {
193
+ isBoolean: true,
194
+ },
195
+ forceTurnOnSoftwareKeyboardSimulator: {
196
+ isBoolean: true,
197
+ },
198
+ simulatorPasteboardAutomaticSync: {
199
+ isString: true,
200
+ },
201
+ simulatorDevicesSetPath: {
202
+ isString: true,
203
+ },
204
+ calendarAccessAuthorized: {
205
+ isBoolean: true,
206
+ deprecated: true
207
+ },
208
+ useSimpleBuildTest: {
209
+ isBoolean: true,
210
+ deprecated: true
211
+ },
212
+ waitForQuiescence: {
213
+ isBoolean: true,
214
+ deprecated: true
215
+ },
216
+ maxTypingFrequency: {
217
+ isNumber: true,
218
+ },
219
+ nativeTyping: {
220
+ isBoolean: true,
221
+ },
222
+ simpleIsVisibleCheck: {
223
+ isBoolean: true,
224
+ },
225
+ shouldUseSingletonTestManager: {
226
+ isBoolean: true,
227
+ },
228
+ isHeadless: {
229
+ isBoolean: true,
230
+ },
231
+ useXctestrunFile: {
232
+ isBoolean: true,
233
+ },
234
+ absoluteWebLocations: {
235
+ isBoolean: true,
236
+ },
237
+ simulatorWindowCenter: {
238
+ isString: true,
239
+ },
240
+ simulatorStartupTimeout: {
241
+ isNumber: true,
242
+ },
243
+ simulatorTracePointer: {
244
+ isBoolean: true,
245
+ },
246
+ useJSONSource: {
247
+ isBoolean: true,
248
+ },
249
+ enforceFreshSimulatorCreation: {
250
+ isBoolean: true,
251
+ },
252
+ shutdownOtherSimulators: {
253
+ isBoolean: true,
254
+ },
255
+ keychainsExcludePatterns: {
256
+ isString: true,
257
+ },
258
+ showSafariConsoleLog: {
259
+ isBoolean: true,
260
+ },
261
+ showSafariNetworkLog: {
262
+ isBoolean: true,
263
+ },
264
+ safariGarbageCollect: {
265
+ isBoolean: true,
266
+ },
267
+ safariGlobalPreferences: {
268
+ isObject: true,
269
+ },
270
+ safariLogAllCommunication: {
271
+ isBoolean: true,
272
+ },
273
+ safariLogAllCommunicationHexDump: {
274
+ isBoolean: true,
275
+ },
276
+ safariSocketChunkSize: {
277
+ isNumber: true,
278
+ },
279
+ mjpegServerPort: {
280
+ isNumber: true,
281
+ },
282
+ reduceMotion: {
283
+ isBoolean: true,
284
+ },
285
+ reduceTransparency: {
286
+ isBoolean: true,
287
+ },
288
+ autoFillPasswords: {
289
+ isBoolean: true,
290
+ },
291
+ mjpegScreenshotUrl: {
292
+ isString: true,
293
+ },
294
+ permissions: {
295
+ isString: true,
296
+ },
297
+ screenshotQuality: {
298
+ isNumber: true,
299
+ },
300
+ wdaEventloopIdleDelay: {
301
+ isNumber: true,
302
+ },
303
+ otherApps: {
304
+ isString: true,
305
+ },
306
+ includeSafariInWebviews: {
307
+ isBoolean: true,
308
+ },
309
+ additionalWebviewBundleIds: {
310
+ // recognize the capability
311
+ // but validate in driver#validateDesiredCaps
312
+ },
313
+ webviewConnectTimeout: {
314
+ isNumber: true,
315
+ },
316
+ webviewAtomWaitTimeout: {
317
+ isNumber: true,
318
+ },
319
+ showIOSLog: {
320
+ isBoolean: true,
321
+ },
322
+ iosSimulatorLogsPredicate: {
323
+ isString: true,
324
+ },
325
+ iosSyslogFile: {
326
+ isString: true,
327
+ },
328
+ simulatorLogLevel: {
329
+ isString: true,
330
+ },
331
+ appPushTimeout: {
332
+ isNumber: true,
333
+ },
334
+ nativeWebTapStrict: {
335
+ isBoolean: true,
336
+ },
337
+ safariWebInspectorMaxFrameLength: {
338
+ isNumber: true,
339
+ },
340
+ allowProvisioningDeviceRegistration: {
341
+ isBoolean: true,
342
+ },
343
+ waitForIdleTimeout: {
344
+ isNumber: true,
345
+ },
346
+ resultBundlePath: {
347
+ isString: true,
348
+ },
349
+ resultBundleVersion: {
350
+ isNumber: true,
351
+ },
352
+ safariIgnoreWebHostnames: {
353
+ isString: true,
354
+ },
355
+ disableAutomaticScreenshots: {
356
+ isBoolean: true,
357
+ },
358
+ shouldTerminateApp: {
359
+ isBoolean: true,
360
+ },
361
+ forceAppLaunch: {
362
+ isBoolean: true,
363
+ },
364
+ useNativeCachingStrategy: {
365
+ isBoolean: true,
366
+ },
367
+ appInstallStrategy: {
368
+ deprecated: true,
369
+ isString: true,
370
+ inclusionCaseInsensitive: ['serial', 'parallel', 'ios-deploy'],
371
+ },
372
+ enforceAppInstall: {
373
+ isBoolean: true,
374
+ },
375
+ skipTriggerInputEventAfterSendkeys: {
376
+ isBoolean: true,
377
+ },
378
+ sendKeyStrategy: {
379
+ isString: true,
380
+ },
381
+ skipSyncUiDialogTranslation: {
382
+ isBoolean: true,
383
+ },
384
+ forceSimulatorSoftwareKeyboardPresence: {
385
+ isBoolean: true,
386
+ },
387
+ appLaunchStateTimeoutSec: {
388
+ isNumber: true,
389
+ },
390
+ appTimeZone: {
391
+ isString: true,
392
+ },
393
+ pageLoadStrategy: {
394
+ isString: true,
395
+ inclusionCaseInsensitive: ['none', 'eager', 'normal']
396
+ }
397
+ });
398
+ exports.desiredCapConstraints = desiredCapConstraints;
399
+ exports.default = desiredCapConstraints;
400
+ //# sourceMappingURL=desired-caps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export default DEVICE_CONNECTIONS_FACTORY;
2
+ export const DEVICE_CONNECTIONS_FACTORY: DeviceConnectionsFactory;
3
+ export class DeviceConnectionsFactory {
4
+ _connectionsMapping: {};
5
+ _udidAsToken(udid: any): string;
6
+ _portAsToken(port: any): string;
7
+ _toKey(udid?: null, port?: null): string;
8
+ _releaseProxiedConnections(connectionKeys: any): any;
9
+ listConnections(udid?: null, port?: null, strict?: boolean): string[];
10
+ requestConnection(udid: any, port: any, options?: {}): Promise<void>;
11
+ releaseConnection(udid?: null, port?: null): void;
12
+ }
13
+ //# sourceMappingURL=device-connections-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-connections-factory.d.ts","sourceRoot":"","sources":["../../lib/device-connections-factory.js"],"names":[],"mappings":";AAyQA,kEAAkE;AAjKlE;IAEI,wBAA6B;IAG/B,gCAEC;IAED,gCAEC;IAED,yCAEC;IAED,qDAWC;IAED,sEAeC;IAED,qEAwFC;IAED,kDAqBC;CACF"}
@@ -0,0 +1,244 @@
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.DeviceConnectionsFactory = exports.DEVICE_CONNECTIONS_FACTORY = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const net_1 = __importDefault(require("net"));
9
+ const bluebird_1 = __importDefault(require("bluebird"));
10
+ const support_1 = require("appium/support");
11
+ const appium_ios_device_1 = require("appium-ios-device");
12
+ const portscanner_1 = require("portscanner");
13
+ const asyncbox_1 = require("asyncbox");
14
+ const LOCALHOST = '127.0.0.1';
15
+ class iProxy {
16
+ constructor(udid, localport, deviceport) {
17
+ this.localport = parseInt(localport, 10);
18
+ this.deviceport = parseInt(deviceport, 10);
19
+ this.udid = udid;
20
+ this.localServer = null;
21
+ this.log = support_1.logger.getLogger(`iProxy@${udid.substring(0, 8)}:${this.localport}`);
22
+ }
23
+ async start() {
24
+ if (this.localServer) {
25
+ return;
26
+ }
27
+ this.localServer = net_1.default.createServer(async (localSocket) => {
28
+ let remoteSocket;
29
+ try {
30
+ // We can only connect to the remote socket after the local socket connection succeeds
31
+ remoteSocket = await appium_ios_device_1.utilities.connectPort(this.udid, this.deviceport);
32
+ }
33
+ catch (e) {
34
+ this.log.debug(e.message);
35
+ localSocket.destroy();
36
+ return;
37
+ }
38
+ const destroyCommChannel = () => {
39
+ remoteSocket.unpipe(localSocket);
40
+ localSocket.unpipe(remoteSocket);
41
+ };
42
+ remoteSocket.once('close', () => {
43
+ destroyCommChannel();
44
+ localSocket.destroy();
45
+ });
46
+ // not all remote socket errors are critical for the user
47
+ remoteSocket.on('error', (e) => this.log.debug(e));
48
+ localSocket.once('end', destroyCommChannel);
49
+ localSocket.once('close', () => {
50
+ destroyCommChannel();
51
+ remoteSocket.destroy();
52
+ });
53
+ localSocket.on('error', (e) => this.log.warn(e.message));
54
+ localSocket.pipe(remoteSocket);
55
+ remoteSocket.pipe(localSocket);
56
+ });
57
+ const listeningPromise = new bluebird_1.default((resolve, reject) => {
58
+ /** @type {net.Server} */ (this.localServer).once('listening', resolve);
59
+ /** @type {net.Server} */ (this.localServer).once('error', reject);
60
+ });
61
+ this.localServer.listen(this.localport);
62
+ try {
63
+ await listeningPromise;
64
+ }
65
+ catch (e) {
66
+ this.localServer = null;
67
+ throw e;
68
+ }
69
+ this.localServer.on('error', (e) => this.log.warn(e.message));
70
+ this.localServer.once('close', (e) => {
71
+ if (e) {
72
+ this.log.info(`The connection has been closed with error ${e.message}`);
73
+ }
74
+ else {
75
+ this.log.info(`The connection has been closed`);
76
+ }
77
+ this.localServer = null;
78
+ });
79
+ this.onBeforeProcessExit = this._closeLocalServer.bind(this);
80
+ // Make sure we free up the socket on process exit
81
+ process.on('beforeExit', this.onBeforeProcessExit);
82
+ }
83
+ _closeLocalServer() {
84
+ if (!this.localServer) {
85
+ return;
86
+ }
87
+ this.log.debug(`Closing the connection`);
88
+ this.localServer.close();
89
+ this.localServer = null;
90
+ }
91
+ stop() {
92
+ if (this.onBeforeProcessExit) {
93
+ process.off('beforeExit', this.onBeforeProcessExit);
94
+ this.onBeforeProcessExit = null;
95
+ }
96
+ this._closeLocalServer();
97
+ }
98
+ }
99
+ const log = support_1.logger.getLogger('DevCon Factory');
100
+ const PORT_CLOSE_TIMEOUT = 15 * 1000; // 15 seconds
101
+ const SPLITTER = ':';
102
+ class DeviceConnectionsFactory {
103
+ constructor() {
104
+ this._connectionsMapping = {};
105
+ }
106
+ _udidAsToken(udid) {
107
+ return `${support_1.util.hasValue(udid) ? udid : ''}${SPLITTER}`;
108
+ }
109
+ _portAsToken(port) {
110
+ return `${SPLITTER}${support_1.util.hasValue(port) ? port : ''}`;
111
+ }
112
+ _toKey(udid = null, port = null) {
113
+ return `${support_1.util.hasValue(udid) ? udid : ''}${SPLITTER}${support_1.util.hasValue(port) ? port : ''}`;
114
+ }
115
+ _releaseProxiedConnections(connectionKeys) {
116
+ const keys = connectionKeys.filter((k) => lodash_1.default.has(this._connectionsMapping[k], 'iproxy'));
117
+ for (const key of keys) {
118
+ log.info(`Releasing the listener for '${key}'`);
119
+ try {
120
+ this._connectionsMapping[key].iproxy.stop();
121
+ }
122
+ catch (e) {
123
+ log.debug(e);
124
+ }
125
+ }
126
+ return keys;
127
+ }
128
+ listConnections(udid = null, port = null, strict = false) {
129
+ if (!udid && !port) {
130
+ return [];
131
+ }
132
+ // `this._connectionMapping` keys have format `udid:port`
133
+ // the `strict` argument enforces to match keys having both `udid` and `port`
134
+ // if they are defined
135
+ // while in non-strict mode keys having any of these are going to be matched
136
+ return lodash_1.default.keys(this._connectionsMapping).filter((key) => strict && udid && port
137
+ ? key === this._toKey(udid, port)
138
+ : (udid && key.startsWith(this._udidAsToken(udid))) ||
139
+ (port && key.endsWith(this._portAsToken(port))));
140
+ }
141
+ async requestConnection(udid, port, options = {}) {
142
+ if (!udid || !port) {
143
+ log.warn('Did not know how to request the connection:');
144
+ if (!udid) {
145
+ log.warn('- Device UDID is unset');
146
+ }
147
+ if (!port) {
148
+ log.warn('- The local port number is unset');
149
+ }
150
+ return;
151
+ }
152
+ const { usePortForwarding, devicePort } = options;
153
+ log.info(`Requesting connection for device ${udid} on local port ${port}` +
154
+ (devicePort ? `, device port ${devicePort}` : ''));
155
+ log.debug(`Cached connections count: ${lodash_1.default.size(this._connectionsMapping)}`);
156
+ const connectionsOnPort = this.listConnections(null, port);
157
+ if (!lodash_1.default.isEmpty(connectionsOnPort)) {
158
+ log.info(`Found cached connections on port #${port}: ${JSON.stringify(connectionsOnPort)}`);
159
+ }
160
+ if (usePortForwarding) {
161
+ let isPortBusy = (await (0, portscanner_1.checkPortStatus)(port, LOCALHOST)) === 'open';
162
+ if (isPortBusy) {
163
+ log.warn(`Port #${port} is busy. Did you quit the previous driver session(s) properly?`);
164
+ if (!lodash_1.default.isEmpty(connectionsOnPort)) {
165
+ log.info('Trying to release the port');
166
+ for (const key of this._releaseProxiedConnections(connectionsOnPort)) {
167
+ delete this._connectionsMapping[key];
168
+ }
169
+ const timer = new support_1.timing.Timer().start();
170
+ try {
171
+ await (0, asyncbox_1.waitForCondition)(async () => {
172
+ try {
173
+ if ((await (0, portscanner_1.checkPortStatus)(port, LOCALHOST)) !== 'open') {
174
+ log.info(`Port #${port} has been successfully released after ` +
175
+ `${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
176
+ isPortBusy = false;
177
+ return true;
178
+ }
179
+ }
180
+ catch { }
181
+ return false;
182
+ }, {
183
+ waitMs: PORT_CLOSE_TIMEOUT,
184
+ intervalMs: 300,
185
+ });
186
+ }
187
+ catch {
188
+ log.warn(`Did not know how to release port #${port} in ` +
189
+ `${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
190
+ }
191
+ }
192
+ }
193
+ if (isPortBusy) {
194
+ throw new Error(`The port #${port} is occupied by an other process. ` +
195
+ `You can either quit that process or select another free port.`);
196
+ }
197
+ }
198
+ const currentKey = this._toKey(udid, port);
199
+ if (usePortForwarding) {
200
+ const iproxy = new iProxy(udid, port, devicePort);
201
+ try {
202
+ await iproxy.start();
203
+ this._connectionsMapping[currentKey] = { iproxy };
204
+ }
205
+ catch (e) {
206
+ try {
207
+ iproxy.stop();
208
+ }
209
+ catch (e1) {
210
+ log.debug(e1);
211
+ }
212
+ throw e;
213
+ }
214
+ }
215
+ else {
216
+ this._connectionsMapping[currentKey] = {};
217
+ }
218
+ log.info(`Successfully requested the connection for ${currentKey}`);
219
+ }
220
+ releaseConnection(udid = null, port = null) {
221
+ if (!udid && !port) {
222
+ log.warn('Neither device UDID nor local port is set. ' +
223
+ 'Did not know how to release the connection');
224
+ return;
225
+ }
226
+ log.info(`Releasing connections for ${udid || 'any'} device on ${port || 'any'} port number`);
227
+ const keys = this.listConnections(udid, port, true);
228
+ if (lodash_1.default.isEmpty(keys)) {
229
+ log.info('No cached connections have been found');
230
+ return;
231
+ }
232
+ log.info(`Found cached connections to release: ${JSON.stringify(keys)}`);
233
+ this._releaseProxiedConnections(keys);
234
+ for (const key of keys) {
235
+ delete this._connectionsMapping[key];
236
+ }
237
+ log.debug(`Cached connections count: ${lodash_1.default.size(this._connectionsMapping)}`);
238
+ }
239
+ }
240
+ exports.DeviceConnectionsFactory = DeviceConnectionsFactory;
241
+ const DEVICE_CONNECTIONS_FACTORY = new DeviceConnectionsFactory();
242
+ exports.DEVICE_CONNECTIONS_FACTORY = DEVICE_CONNECTIONS_FACTORY;
243
+ exports.default = DEVICE_CONNECTIONS_FACTORY;
244
+ //# sourceMappingURL=device-connections-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-connections-factory.js","sourceRoot":"","sources":["../../lib/device-connections-factory.js"],"names":[],"mappings":"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"}