claude-in-mobile 3.14.0 → 4.0.0-dev

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 (385) hide show
  1. package/README.md +61 -574
  2. package/dist/a11y/types.d.ts +1 -1
  3. package/dist/a11y/types.d.ts.map +1 -1
  4. package/dist/adapters/contracts.d.ts +66 -0
  5. package/dist/adapters/contracts.d.ts.map +1 -0
  6. package/dist/adapters/contracts.js +15 -0
  7. package/dist/adapters/contracts.js.map +1 -0
  8. package/dist/adapters/index.d.ts +0 -5
  9. package/dist/adapters/index.d.ts.map +1 -1
  10. package/dist/adapters/index.js +1 -5
  11. package/dist/adapters/index.js.map +1 -1
  12. package/dist/autopilot/explorer.js +1 -1
  13. package/dist/autopilot/explorer.js.map +1 -1
  14. package/dist/autopilot/healer.d.ts +1 -1
  15. package/dist/autopilot/healer.d.ts.map +1 -1
  16. package/dist/autopilot/screen-fingerprint.d.ts +1 -1
  17. package/dist/autopilot/screen-fingerprint.d.ts.map +1 -1
  18. package/dist/autopilot/types.d.ts +1 -1
  19. package/dist/autopilot/types.d.ts.map +1 -1
  20. package/dist/device/client-cache.d.ts +1 -1
  21. package/dist/device/client-cache.d.ts.map +1 -1
  22. package/dist/device/client-cache.js +4 -24
  23. package/dist/device/client-cache.js.map +1 -1
  24. package/dist/device/proxies/desktop-facade.d.ts +5 -8
  25. package/dist/device/proxies/desktop-facade.d.ts.map +1 -1
  26. package/dist/device/proxies/desktop-facade.js +12 -14
  27. package/dist/device/proxies/desktop-facade.js.map +1 -1
  28. package/dist/device-manager.d.ts +16 -16
  29. package/dist/device-manager.d.ts.map +1 -1
  30. package/dist/device-manager.js +23 -17
  31. package/dist/device-manager.js.map +1 -1
  32. package/dist/index.js +21 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/perf/collector.d.ts +5 -5
  35. package/dist/perf/collector.d.ts.map +1 -1
  36. package/dist/perf/collector.js.map +1 -1
  37. package/dist/runtime/bootstrap.d.ts +7 -0
  38. package/dist/runtime/bootstrap.d.ts.map +1 -1
  39. package/dist/runtime/bootstrap.js +87 -15
  40. package/dist/runtime/bootstrap.js.map +1 -1
  41. package/dist/runtime/cli.d.ts.map +1 -1
  42. package/dist/runtime/cli.js +14 -0
  43. package/dist/runtime/cli.js.map +1 -1
  44. package/dist/runtime/platform-cli.d.ts +24 -0
  45. package/dist/runtime/platform-cli.d.ts.map +1 -0
  46. package/dist/runtime/platform-cli.js +116 -0
  47. package/dist/runtime/platform-cli.js.map +1 -0
  48. package/dist/runtime/platform-config.d.ts +21 -0
  49. package/dist/runtime/platform-config.d.ts.map +1 -0
  50. package/dist/runtime/platform-config.js +71 -0
  51. package/dist/runtime/platform-config.js.map +1 -0
  52. package/dist/tools/browser-tools.js.map +1 -1
  53. package/dist/tools/clipboard-tools.js +1 -1
  54. package/dist/tools/clipboard-tools.js.map +1 -1
  55. package/dist/tools/context/hints.d.ts +1 -1
  56. package/dist/tools/context/hints.d.ts.map +1 -1
  57. package/dist/tools/context/hints.js +1 -1
  58. package/dist/tools/context/hints.js.map +1 -1
  59. package/dist/tools/context/ios-helpers.d.ts +1 -1
  60. package/dist/tools/context/ios-helpers.d.ts.map +1 -1
  61. package/dist/tools/context/shared-state-class.d.ts +1 -1
  62. package/dist/tools/context/shared-state-class.d.ts.map +1 -1
  63. package/dist/tools/context/shared-state.d.ts +1 -1
  64. package/dist/tools/context/shared-state.d.ts.map +1 -1
  65. package/dist/tools/context.d.ts +2 -1
  66. package/dist/tools/context.d.ts.map +1 -1
  67. package/dist/tools/context.js +17 -9
  68. package/dist/tools/context.js.map +1 -1
  69. package/dist/tools/desktop-tools.d.ts.map +1 -1
  70. package/dist/tools/desktop-tools.js.map +1 -1
  71. package/dist/tools/flow/common.js +1 -1
  72. package/dist/tools/flow/common.js.map +1 -1
  73. package/dist/tools/flow/run.js +1 -1
  74. package/dist/tools/flow/run.js.map +1 -1
  75. package/dist/tools/helpers/get-elements.d.ts +1 -1
  76. package/dist/tools/helpers/get-elements.d.ts.map +1 -1
  77. package/dist/tools/helpers/get-elements.js +1 -1
  78. package/dist/tools/helpers/get-elements.js.map +1 -1
  79. package/dist/tools/helpers/resolve-element.js +1 -1
  80. package/dist/tools/helpers/resolve-element.js.map +1 -1
  81. package/dist/tools/screenshot-tools.js +1 -1
  82. package/dist/tools/screenshot-tools.js.map +1 -1
  83. package/dist/tools/ui/analyze.js +1 -1
  84. package/dist/tools/ui/analyze.js.map +1 -1
  85. package/dist/tools/ui/assert.js +1 -1
  86. package/dist/tools/ui/assert.js.map +1 -1
  87. package/dist/tools/ui/find.js +1 -1
  88. package/dist/tools/ui/find.js.map +1 -1
  89. package/dist/tools/ui/tree.js +1 -1
  90. package/dist/tools/ui/tree.js.map +1 -1
  91. package/dist/tools/ui/wait.js +1 -1
  92. package/dist/tools/ui/wait.js.map +1 -1
  93. package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
  94. package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
  95. package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
  96. package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
  97. package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
  98. package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
  99. package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
  100. package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
  101. package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
  102. package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
  103. package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
  104. package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
  105. package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
  106. package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
  107. package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
  108. package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
  109. package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
  110. package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
  111. package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
  112. package/dist/ui-tree/ui-parser/types.js.map +1 -0
  113. package/dist/ui-tree/ui-parser.d.ts.map +1 -0
  114. package/dist/ui-tree/ui-parser.js.map +1 -0
  115. package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
  116. package/dist/ui-tree/ui-scoring.js.map +1 -0
  117. package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
  118. package/dist/ui-tree/ui-tree-cache.js.map +1 -0
  119. package/dist/utils/image/annotate.d.ts +1 -1
  120. package/dist/utils/image/annotate.d.ts.map +1 -1
  121. package/package.json +11 -6
  122. package/dist/adapters/android-adapter.d.ts +0 -64
  123. package/dist/adapters/android-adapter.d.ts.map +0 -1
  124. package/dist/adapters/android-adapter.js +0 -164
  125. package/dist/adapters/android-adapter.js.map +0 -1
  126. package/dist/adapters/aurora-adapter.d.ts +0 -56
  127. package/dist/adapters/aurora-adapter.d.ts.map +0 -1
  128. package/dist/adapters/aurora-adapter.js +0 -118
  129. package/dist/adapters/aurora-adapter.js.map +0 -1
  130. package/dist/adapters/browser-adapter.d.ts +0 -51
  131. package/dist/adapters/browser-adapter.d.ts.map +0 -1
  132. package/dist/adapters/browser-adapter.js +0 -223
  133. package/dist/adapters/browser-adapter.js.map +0 -1
  134. package/dist/adapters/desktop-adapter.d.ts +0 -64
  135. package/dist/adapters/desktop-adapter.d.ts.map +0 -1
  136. package/dist/adapters/desktop-adapter.js +0 -202
  137. package/dist/adapters/desktop-adapter.js.map +0 -1
  138. package/dist/adapters/ios-adapter.d.ts +0 -60
  139. package/dist/adapters/ios-adapter.d.ts.map +0 -1
  140. package/dist/adapters/ios-adapter.js +0 -146
  141. package/dist/adapters/ios-adapter.js.map +0 -1
  142. package/dist/adb/client.d.ts +0 -238
  143. package/dist/adb/client.d.ts.map +0 -1
  144. package/dist/adb/client.js +0 -462
  145. package/dist/adb/client.js.map +0 -1
  146. package/dist/adb/exec.d.ts +0 -23
  147. package/dist/adb/exec.d.ts.map +0 -1
  148. package/dist/adb/exec.js +0 -98
  149. package/dist/adb/exec.js.map +0 -1
  150. package/dist/adb/index.d.ts +0 -5
  151. package/dist/adb/index.d.ts.map +0 -1
  152. package/dist/adb/index.js +0 -3
  153. package/dist/adb/index.js.map +0 -1
  154. package/dist/adb/keycodes.d.ts +0 -22
  155. package/dist/adb/keycodes.d.ts.map +0 -1
  156. package/dist/adb/keycodes.js +0 -69
  157. package/dist/adb/keycodes.js.map +0 -1
  158. package/dist/adb/logcat.d.ts +0 -23
  159. package/dist/adb/logcat.d.ts.map +0 -1
  160. package/dist/adb/logcat.js +0 -40
  161. package/dist/adb/logcat.js.map +0 -1
  162. package/dist/adb/parsers.d.ts +0 -60
  163. package/dist/adb/parsers.d.ts.map +0 -1
  164. package/dist/adb/parsers.js +0 -118
  165. package/dist/adb/parsers.js.map +0 -1
  166. package/dist/adb/resolver.d.ts +0 -24
  167. package/dist/adb/resolver.d.ts.map +0 -1
  168. package/dist/adb/resolver.js +0 -130
  169. package/dist/adb/resolver.js.map +0 -1
  170. package/dist/adb/text-escape.d.ts +0 -23
  171. package/dist/adb/text-escape.d.ts.map +0 -1
  172. package/dist/adb/text-escape.js +0 -41
  173. package/dist/adb/text-escape.js.map +0 -1
  174. package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
  175. package/dist/adb/ui-parser/diff-engine.js.map +0 -1
  176. package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
  177. package/dist/adb/ui-parser/element-builder.js.map +0 -1
  178. package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
  179. package/dist/adb/ui-parser/element-finders.js.map +0 -1
  180. package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
  181. package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
  182. package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
  183. package/dist/adb/ui-parser/formatters/full.js.map +0 -1
  184. package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
  185. package/dist/adb/ui-parser/formatters/index.js.map +0 -1
  186. package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
  187. package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
  188. package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
  189. package/dist/adb/ui-parser/node-parser.js.map +0 -1
  190. package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
  191. package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
  192. package/dist/adb/ui-parser/types.d.ts.map +0 -1
  193. package/dist/adb/ui-parser/types.js.map +0 -1
  194. package/dist/adb/ui-parser.d.ts.map +0 -1
  195. package/dist/adb/ui-parser.js.map +0 -1
  196. package/dist/adb/ui-scoring.d.ts.map +0 -1
  197. package/dist/adb/ui-scoring.js.map +0 -1
  198. package/dist/adb/ui-tree-cache.d.ts.map +0 -1
  199. package/dist/adb/ui-tree-cache.js.map +0 -1
  200. package/dist/adb/webview.d.ts +0 -59
  201. package/dist/adb/webview.d.ts.map +0 -1
  202. package/dist/adb/webview.js +0 -169
  203. package/dist/adb/webview.js.map +0 -1
  204. package/dist/aurora/client.d.ts +0 -180
  205. package/dist/aurora/client.d.ts.map +0 -1
  206. package/dist/aurora/client.js +0 -324
  207. package/dist/aurora/client.js.map +0 -1
  208. package/dist/aurora/index.d.ts +0 -2
  209. package/dist/aurora/index.d.ts.map +0 -1
  210. package/dist/aurora/index.js +0 -2
  211. package/dist/aurora/index.js.map +0 -1
  212. package/dist/browser/cdp-helpers.d.ts +0 -17
  213. package/dist/browser/cdp-helpers.d.ts.map +0 -1
  214. package/dist/browser/cdp-helpers.js +0 -79
  215. package/dist/browser/cdp-helpers.js.map +0 -1
  216. package/dist/browser/cdp-types.d.ts +0 -167
  217. package/dist/browser/cdp-types.d.ts.map +0 -1
  218. package/dist/browser/cdp-types.js +0 -9
  219. package/dist/browser/cdp-types.js.map +0 -1
  220. package/dist/browser/client.d.ts +0 -29
  221. package/dist/browser/client.d.ts.map +0 -1
  222. package/dist/browser/client.js +0 -391
  223. package/dist/browser/client.js.map +0 -1
  224. package/dist/browser/index.d.ts +0 -5
  225. package/dist/browser/index.d.ts.map +0 -1
  226. package/dist/browser/index.js +0 -4
  227. package/dist/browser/index.js.map +0 -1
  228. package/dist/browser/key-map.d.ts +0 -16
  229. package/dist/browser/key-map.d.ts.map +0 -1
  230. package/dist/browser/key-map.js +0 -35
  231. package/dist/browser/key-map.js.map +0 -1
  232. package/dist/browser/session-manager.d.ts +0 -21
  233. package/dist/browser/session-manager.d.ts.map +0 -1
  234. package/dist/browser/session-manager.js +0 -109
  235. package/dist/browser/session-manager.js.map +0 -1
  236. package/dist/browser/snapshot-builder.d.ts +0 -4
  237. package/dist/browser/snapshot-builder.d.ts.map +0 -1
  238. package/dist/browser/snapshot-builder.js +0 -76
  239. package/dist/browser/snapshot-builder.js.map +0 -1
  240. package/dist/browser/types.d.ts +0 -75
  241. package/dist/browser/types.d.ts.map +0 -1
  242. package/dist/browser/types.js +0 -11
  243. package/dist/browser/types.js.map +0 -1
  244. package/dist/desktop/client.d.ts +0 -196
  245. package/dist/desktop/client.d.ts.map +0 -1
  246. package/dist/desktop/client.js +0 -540
  247. package/dist/desktop/client.js.map +0 -1
  248. package/dist/desktop/gradle.d.ts +0 -45
  249. package/dist/desktop/gradle.d.ts.map +0 -1
  250. package/dist/desktop/gradle.js +0 -234
  251. package/dist/desktop/gradle.js.map +0 -1
  252. package/dist/desktop/index.d.ts +0 -7
  253. package/dist/desktop/index.d.ts.map +0 -1
  254. package/dist/desktop/index.js +0 -7
  255. package/dist/desktop/index.js.map +0 -1
  256. package/dist/desktop/launch-options.d.ts +0 -13
  257. package/dist/desktop/launch-options.d.ts.map +0 -1
  258. package/dist/desktop/launch-options.js +0 -54
  259. package/dist/desktop/launch-options.js.map +0 -1
  260. package/dist/desktop/launchers.d.ts +0 -52
  261. package/dist/desktop/launchers.d.ts.map +0 -1
  262. package/dist/desktop/launchers.js +0 -125
  263. package/dist/desktop/launchers.js.map +0 -1
  264. package/dist/desktop/log-ring.d.ts +0 -21
  265. package/dist/desktop/log-ring.d.ts.map +0 -1
  266. package/dist/desktop/log-ring.js +0 -45
  267. package/dist/desktop/log-ring.js.map +0 -1
  268. package/dist/desktop/permission-allowlist.d.ts +0 -47
  269. package/dist/desktop/permission-allowlist.d.ts.map +0 -1
  270. package/dist/desktop/permission-allowlist.js +0 -148
  271. package/dist/desktop/permission-allowlist.js.map +0 -1
  272. package/dist/desktop/types.d.ts +0 -177
  273. package/dist/desktop/types.d.ts.map +0 -1
  274. package/dist/desktop/types.js +0 -5
  275. package/dist/desktop/types.js.map +0 -1
  276. package/dist/ios/client.d.ts +0 -204
  277. package/dist/ios/client.d.ts.map +0 -1
  278. package/dist/ios/client.js +0 -483
  279. package/dist/ios/client.js.map +0 -1
  280. package/dist/ios/go-ios/client.d.ts +0 -23
  281. package/dist/ios/go-ios/client.d.ts.map +0 -1
  282. package/dist/ios/go-ios/client.js +0 -51
  283. package/dist/ios/go-ios/client.js.map +0 -1
  284. package/dist/ios/go-ios/index.d.ts +0 -4
  285. package/dist/ios/go-ios/index.d.ts.map +0 -1
  286. package/dist/ios/go-ios/index.js +0 -3
  287. package/dist/ios/go-ios/index.js.map +0 -1
  288. package/dist/ios/go-ios/parsers.d.ts +0 -28
  289. package/dist/ios/go-ios/parsers.d.ts.map +0 -1
  290. package/dist/ios/go-ios/parsers.js +0 -71
  291. package/dist/ios/go-ios/parsers.js.map +0 -1
  292. package/dist/ios/index.d.ts +0 -2
  293. package/dist/ios/index.d.ts.map +0 -1
  294. package/dist/ios/index.js +0 -2
  295. package/dist/ios/index.js.map +0 -1
  296. package/dist/ios/keymap.d.ts +0 -20
  297. package/dist/ios/keymap.d.ts.map +0 -1
  298. package/dist/ios/keymap.js +0 -33
  299. package/dist/ios/keymap.js.map +0 -1
  300. package/dist/ios/simctl-commands.d.ts +0 -35
  301. package/dist/ios/simctl-commands.d.ts.map +0 -1
  302. package/dist/ios/simctl-commands.js +0 -60
  303. package/dist/ios/simctl-commands.js.map +0 -1
  304. package/dist/ios/simctl-exec.d.ts +0 -19
  305. package/dist/ios/simctl-exec.d.ts.map +0 -1
  306. package/dist/ios/simctl-exec.js +0 -55
  307. package/dist/ios/simctl-exec.js.map +0 -1
  308. package/dist/ios/simctl-parsers.d.ts +0 -10
  309. package/dist/ios/simctl-parsers.d.ts.map +0 -1
  310. package/dist/ios/simctl-parsers.js +0 -29
  311. package/dist/ios/simctl-parsers.js.map +0 -1
  312. package/dist/ios/types.d.ts +0 -8
  313. package/dist/ios/types.d.ts.map +0 -1
  314. package/dist/ios/types.js +0 -2
  315. package/dist/ios/types.js.map +0 -1
  316. package/dist/ios/wda/index.d.ts +0 -4
  317. package/dist/ios/wda/index.d.ts.map +0 -1
  318. package/dist/ios/wda/index.js +0 -4
  319. package/dist/ios/wda/index.js.map +0 -1
  320. package/dist/ios/wda/wda-client.d.ts +0 -33
  321. package/dist/ios/wda/wda-client.d.ts.map +0 -1
  322. package/dist/ios/wda/wda-client.js +0 -250
  323. package/dist/ios/wda/wda-client.js.map +0 -1
  324. package/dist/ios/wda/wda-manager.d.ts +0 -34
  325. package/dist/ios/wda/wda-manager.d.ts.map +0 -1
  326. package/dist/ios/wda/wda-manager.js +0 -392
  327. package/dist/ios/wda/wda-manager.js.map +0 -1
  328. package/dist/ios/wda/wda-types.d.ts +0 -39
  329. package/dist/ios/wda/wda-types.d.ts.map +0 -1
  330. package/dist/ios/wda/wda-types.js +0 -2
  331. package/dist/ios/wda/wda-types.js.map +0 -1
  332. package/dist/ios/wda-errors.d.ts +0 -8
  333. package/dist/ios/wda-errors.d.ts.map +0 -1
  334. package/dist/ios/wda-errors.js +0 -13
  335. package/dist/ios/wda-errors.js.map +0 -1
  336. package/dist/ios/wda-payloads.d.ts +0 -32
  337. package/dist/ios/wda-payloads.d.ts.map +0 -1
  338. package/dist/ios/wda-payloads.js +0 -31
  339. package/dist/ios/wda-payloads.js.map +0 -1
  340. package/dist/plugins/android/index.d.ts +0 -23
  341. package/dist/plugins/android/index.d.ts.map +0 -1
  342. package/dist/plugins/android/index.js +0 -45
  343. package/dist/plugins/android/index.js.map +0 -1
  344. package/dist/plugins/aurora/index.d.ts +0 -17
  345. package/dist/plugins/aurora/index.d.ts.map +0 -1
  346. package/dist/plugins/aurora/index.js +0 -27
  347. package/dist/plugins/aurora/index.js.map +0 -1
  348. package/dist/plugins/desktop/index.d.ts +0 -18
  349. package/dist/plugins/desktop/index.d.ts.map +0 -1
  350. package/dist/plugins/desktop/index.js +0 -28
  351. package/dist/plugins/desktop/index.js.map +0 -1
  352. package/dist/plugins/ios/index.d.ts +0 -17
  353. package/dist/plugins/ios/index.d.ts.map +0 -1
  354. package/dist/plugins/ios/index.js +0 -36
  355. package/dist/plugins/ios/index.js.map +0 -1
  356. package/dist/plugins/web/index.d.ts +0 -17
  357. package/dist/plugins/web/index.d.ts.map +0 -1
  358. package/dist/plugins/web/index.js +0 -27
  359. package/dist/plugins/web/index.js.map +0 -1
  360. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
  361. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
  362. /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
  363. /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
  364. /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
  365. /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
  366. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
  367. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
  368. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
  369. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
  370. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
  371. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
  372. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
  373. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
  374. /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
  375. /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
  376. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
  377. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
  378. /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
  379. /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
  380. /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
  381. /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
  382. /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
  383. /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
  384. /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
  385. /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
@@ -1,483 +0,0 @@
1
- import { execFileSync } from "child_process";
2
- import { tmpdir } from "os";
3
- import { join } from "path";
4
- import { readFileSync, unlinkSync } from "fs";
5
- import { WDAManager } from "./wda/index.js";
6
- import { classifySimctlError } from "../errors.js";
7
- import { validateDeviceId, validateBundleId } from "../utils/sanitize.js";
8
- import { execSimctl, execSimctlQuiet, SIMCTL_EXEC_TIMEOUT_MS } from "./simctl-exec.js";
9
- import { buildAppLogArgs, buildLogShowArgs, formatLatLon, sliceLastLines, splitArgs, } from "./simctl-commands.js";
10
- import { parseDevicesJson } from "./simctl-parsers.js";
11
- import { listPhysicalDevices } from "./go-ios/index.js";
12
- import { wdaRequiredError } from "./wda-errors.js";
13
- import { ACTIVATE_SIMULATOR_OSASCRIPT_ARGS, HOME_KEY_OSASCRIPT_ARGS, mapKey, } from "./keymap.js";
14
- import { buildFindElementsSelectors, buildSwipeCoords, } from "./wda-payloads.js";
15
- export class IosClient {
16
- deviceId;
17
- wdaManager = new WDAManager();
18
- wdaClient;
19
- constructor(deviceId) {
20
- if (deviceId) {
21
- validateDeviceId(deviceId);
22
- }
23
- this.deviceId = deviceId;
24
- }
25
- cleanup() {
26
- this.wdaManager.cleanup();
27
- this.wdaClient = undefined;
28
- }
29
- /** True unless the device id belongs to a connected physical device. */
30
- isSimulatorDevice(deviceId) {
31
- try {
32
- return !listPhysicalDevices().some((d) => d.id === deviceId);
33
- }
34
- catch {
35
- return true;
36
- }
37
- }
38
- async ensureWDA(deviceIdOverride) {
39
- const effectiveId = deviceIdOverride ?? this.deviceId;
40
- if (!effectiveId) {
41
- const booted = this.getBootedDevices();
42
- if (booted.length === 0) {
43
- throw new Error("No booted iOS simulator found. Boot a simulator first.");
44
- }
45
- this.deviceId = booted[0].id;
46
- this.wdaClient = await this.wdaManager.ensureWDAReady(this.deviceId, true);
47
- return this.wdaClient;
48
- }
49
- // Per-call override: don't cache on instance if different from default
50
- if (deviceIdOverride && deviceIdOverride !== this.deviceId) {
51
- return this.wdaManager.ensureWDAReady(deviceIdOverride, this.isSimulatorDevice(deviceIdOverride));
52
- }
53
- if (!this.wdaClient) {
54
- this.wdaClient = await this.wdaManager.ensureWDAReady(effectiveId, this.isSimulatorDevice(effectiveId));
55
- }
56
- return this.wdaClient;
57
- }
58
- /** Thin instance wrapper around `execSimctl` (argv-form, no shell). */
59
- execArgs(args) {
60
- return execSimctl(args);
61
- }
62
- /** Thin instance wrapper around `execSimctlQuiet` (stderr suppressed). */
63
- execArgsQuiet(args) {
64
- return execSimctlQuiet(args);
65
- }
66
- /** Legacy string form: whitespace-split into argv tokens, then `execSimctl`. */
67
- exec(command) {
68
- return execSimctl(splitArgs(command));
69
- }
70
- /**
71
- * Get the active device ID or 'booted'
72
- */
73
- get targetDevice() {
74
- return this.deviceId ?? "booted";
75
- }
76
- /** Resolve target device for a per-call override or fall back to instance default. */
77
- targetDeviceFor(deviceIdOverride) {
78
- return deviceIdOverride ?? this.deviceId ?? "booted";
79
- }
80
- /**
81
- * Get list of iOS devices: simulators (simctl) plus connected physical
82
- * devices (go-ios). Physical discovery is best-effort — if go-ios is not
83
- * installed it contributes nothing and simulator behaviour is unchanged.
84
- */
85
- getDevices() {
86
- const simulators = parseDevicesJson(this.exec("list devices -j"));
87
- return [...simulators, ...listPhysicalDevices()];
88
- }
89
- /**
90
- * Get booted simulators
91
- */
92
- getBootedDevices() {
93
- return this.getDevices().filter(d => d.state === "booted");
94
- }
95
- /**
96
- * Set active device
97
- */
98
- setDevice(deviceId) {
99
- validateDeviceId(deviceId);
100
- if (this.deviceId !== deviceId) {
101
- this.wdaClient = undefined;
102
- }
103
- this.deviceId = deviceId;
104
- }
105
- /**
106
- * Get currently configured device ID
107
- */
108
- getDeviceId() {
109
- return this.deviceId;
110
- }
111
- /**
112
- * Boot simulator
113
- */
114
- boot(deviceId) {
115
- const target = deviceId ?? this.deviceId;
116
- if (!target)
117
- throw new Error("No device specified");
118
- validateDeviceId(target);
119
- this.execArgs(["boot", target]);
120
- }
121
- /**
122
- * Shutdown simulator
123
- */
124
- shutdown(deviceId) {
125
- const target = deviceId ?? this.deviceId ?? "booted";
126
- if (target !== "booted")
127
- validateDeviceId(target);
128
- this.execArgs(["shutdown", target]);
129
- }
130
- /**
131
- * Take screenshot and return raw PNG buffer
132
- */
133
- screenshotRaw(deviceIdOverride) {
134
- const target = this.targetDeviceFor(deviceIdOverride);
135
- const tmpFile = join(tmpdir(), `ios-screenshot-${Date.now()}.png`);
136
- try {
137
- // Path passed as distinct argv slot — spaces in tmpdir are safe.
138
- this.execArgs(["io", target, "screenshot", tmpFile]);
139
- return readFileSync(tmpFile);
140
- }
141
- finally {
142
- try {
143
- unlinkSync(tmpFile);
144
- }
145
- catch { }
146
- }
147
- }
148
- /**
149
- * Take screenshot and return as base64 (legacy)
150
- */
151
- screenshot(deviceIdOverride) {
152
- return this.screenshotRaw(deviceIdOverride).toString("base64");
153
- }
154
- /**
155
- * Async screenshot that works for physical devices too: routes physical
156
- * devices through WDA `/screenshot` (simctl io only addresses simulators),
157
- * and simulators through the fast sync simctl path.
158
- */
159
- async screenshotRawAsync(deviceIdOverride) {
160
- const target = deviceIdOverride ?? this.deviceId;
161
- if (target && !this.isSimulatorDevice(target)) {
162
- const wdaClient = await this.ensureWDA(deviceIdOverride);
163
- return wdaClient.screenshot();
164
- }
165
- return this.screenshotRaw(deviceIdOverride);
166
- }
167
- /**
168
- * Tap at coordinates
169
- */
170
- async tap(x, y, deviceIdOverride) {
171
- try {
172
- const wdaClient = await this.ensureWDA(deviceIdOverride);
173
- await wdaClient.tapByCoordinates(x, y);
174
- }
175
- catch (error) {
176
- throw wdaRequiredError("Tap", error);
177
- }
178
- }
179
- /**
180
- * Swipe gesture
181
- */
182
- async swipe(x1, y1, x2, y2, durationMs = 300, deviceIdOverride) {
183
- try {
184
- const wdaClient = await this.ensureWDA(deviceIdOverride);
185
- await wdaClient.swipe(x1, y1, x2, y2, durationMs);
186
- }
187
- catch (error) {
188
- throw wdaRequiredError("Swipe", error);
189
- }
190
- }
191
- /**
192
- * Long press at coordinates via WDA Actions API
193
- */
194
- async longPress(x, y, durationMs = 1000, deviceIdOverride) {
195
- try {
196
- const wdaClient = await this.ensureWDA(deviceIdOverride);
197
- await wdaClient.longPress(x, y, durationMs);
198
- }
199
- catch (error) {
200
- throw wdaRequiredError("Long press", error);
201
- }
202
- }
203
- /**
204
- * Swipe in direction (uses actual screen center from WDA, not hardcoded)
205
- */
206
- async swipeDirection(direction, distance = 400) {
207
- // Get actual screen size from WDA instead of using hardcoded values
208
- let centerX = 200;
209
- let centerY = 400;
210
- try {
211
- const wdaClient = await this.ensureWDA();
212
- const size = await wdaClient.getWindowSize();
213
- centerX = Math.floor(size.width / 2);
214
- centerY = Math.floor(size.height / 2);
215
- }
216
- catch {
217
- // Fallback to defaults if WDA not available
218
- }
219
- const { x1, y1, x2, y2 } = buildSwipeCoords(direction, centerX, centerY, distance);
220
- await this.swipe(x1, y1, x2, y2);
221
- }
222
- /**
223
- * Input text via WDA (types into the currently focused element)
224
- */
225
- async inputText(text, deviceIdOverride) {
226
- try {
227
- const wdaClient = await this.ensureWDA(deviceIdOverride);
228
- await wdaClient.typeText(text);
229
- }
230
- catch (error) {
231
- throw wdaRequiredError("Text input", error);
232
- }
233
- }
234
- /**
235
- * Press key
236
- *
237
- * SECURITY: AppleScript invocations use execFileSync("osascript", ["-e", literal])
238
- * — the script literal is a single argv slot, so /bin/sh never parses its contents.
239
- * The `key` argument is whitelisted via keyMap; only fixed AppleScript literals reach
240
- * osascript.
241
- */
242
- pressKey(key) {
243
- const mappedKey = mapKey(key);
244
- // Use simctl io for button presses
245
- if (mappedKey === "home") {
246
- this.execArgs(["io", this.targetDevice, "enumerate"]);
247
- // Trigger home button via keyboard shortcut
248
- execFileSync("osascript", [...HOME_KEY_OSASCRIPT_ARGS], { encoding: "utf-8", timeout: SIMCTL_EXEC_TIMEOUT_MS });
249
- }
250
- else {
251
- // Try generic approach
252
- execFileSync("osascript", [...ACTIVATE_SIMULATOR_OSASCRIPT_ARGS], { encoding: "utf-8", timeout: SIMCTL_EXEC_TIMEOUT_MS });
253
- }
254
- }
255
- /**
256
- * Launch app by bundle ID
257
- */
258
- launchApp(bundleId, deviceIdOverride) {
259
- validateBundleId(bundleId);
260
- this.execArgs(["launch", this.targetDeviceFor(deviceIdOverride), bundleId]);
261
- return `Launched ${bundleId}`;
262
- }
263
- /**
264
- * Terminate app
265
- */
266
- stopApp(bundleId, deviceIdOverride) {
267
- validateBundleId(bundleId);
268
- try {
269
- this.execArgs(["terminate", this.targetDeviceFor(deviceIdOverride), bundleId]);
270
- }
271
- catch {
272
- // App might not be running
273
- }
274
- }
275
- /**
276
- * Install app (.app bundle or .ipa)
277
- */
278
- installApp(path) {
279
- // Path passed as distinct argv slot — spaces in path are safe; no shell parsing.
280
- this.execArgs(["install", this.targetDevice, path]);
281
- return `Installed ${path}`;
282
- }
283
- /**
284
- * Uninstall app
285
- */
286
- uninstallApp(bundleId) {
287
- validateBundleId(bundleId);
288
- this.execArgs(["uninstall", this.targetDevice, bundleId]);
289
- return `Uninstalled ${bundleId}`;
290
- }
291
- /**
292
- * Get UI hierarchy (limited on iOS simulator)
293
- * Returns accessibility info if available
294
- */
295
- async getUiHierarchy(deviceIdOverride) {
296
- try {
297
- const wdaClient = await this.ensureWDA(deviceIdOverride);
298
- const tree = await wdaClient.getAccessibleSource();
299
- return JSON.stringify(tree, null, 2);
300
- }
301
- catch (error) {
302
- throw wdaRequiredError("WebDriverAgent", error);
303
- }
304
- }
305
- /**
306
- * Find element by text or label
307
- */
308
- async findElement(criteria) {
309
- const wdaClient = await this.ensureWDA();
310
- if (criteria.label) {
311
- return await wdaClient.findElement("accessibility id", criteria.label);
312
- }
313
- if (criteria.text) {
314
- return await wdaClient.findElement("name", criteria.text);
315
- }
316
- throw new Error("Provide text or label to find element");
317
- }
318
- /**
319
- * Find multiple elements by criteria
320
- */
321
- async findElements(criteria) {
322
- const wdaClient = await this.ensureWDA();
323
- const elements = [];
324
- for (const sel of buildFindElementsSelectors(criteria)) {
325
- const found = await wdaClient.findElements(sel.using, sel.value);
326
- elements.push(...found);
327
- }
328
- const results = await Promise.all(elements.map(async (el) => {
329
- try {
330
- const rect = await wdaClient.getElementRect(el.ELEMENT);
331
- const text = await wdaClient.getElementText(el.ELEMENT).catch(() => "");
332
- const displayed = criteria.visible !== undefined
333
- ? await wdaClient.isElementDisplayed(el.ELEMENT)
334
- : true;
335
- if (criteria.visible !== undefined && displayed !== criteria.visible) {
336
- return null;
337
- }
338
- return {
339
- id: el.ELEMENT,
340
- type: criteria.type || "Unknown",
341
- label: text,
342
- rect,
343
- };
344
- }
345
- catch {
346
- return null;
347
- }
348
- }));
349
- return results.filter((r) => r !== null);
350
- }
351
- /**
352
- * Get element rect (position + size) by element ID
353
- */
354
- async getElementRect(elementId) {
355
- try {
356
- const wdaClient = await this.ensureWDA();
357
- return await wdaClient.getElementRect(elementId);
358
- }
359
- catch {
360
- return null;
361
- }
362
- }
363
- /**
364
- * Tap element by element ID
365
- */
366
- async tapElement(elementId) {
367
- const wdaClient = await this.ensureWDA();
368
- await wdaClient.clickElement(elementId);
369
- }
370
- /**
371
- * Open URL in simulator
372
- *
373
- * SECURITY: URL passes as a single argv slot to xcrun (no /bin/sh -c).
374
- * Any shell metacharacters in `url` are not parsed by the host shell.
375
- * Scheme validation happens at the tool layer (validateUrl).
376
- */
377
- openUrl(url) {
378
- try {
379
- this.execArgs(["openurl", this.targetDevice, url]);
380
- }
381
- catch (error) {
382
- const e = error;
383
- throw classifySimctlError(e.stderr?.toString() ?? e.message ?? String(error), `simctl openurl ${url}`);
384
- }
385
- }
386
- /**
387
- * Add photo to simulator
388
- */
389
- addPhoto(imagePath) {
390
- // Path passed as distinct argv slot — spaces in path are safe.
391
- this.execArgs(["addmedia", this.targetDevice, imagePath]);
392
- }
393
- /**
394
- * Set location
395
- */
396
- setLocation(lat, lon) {
397
- this.execArgs(["location", this.targetDevice, "set", formatLatLon(lat, lon)]);
398
- }
399
- /**
400
- * Get device info
401
- */
402
- getDeviceInfo() {
403
- const output = this.execArgs(["getenv", this.targetDevice, "SIMULATOR_DEVICE_NAME"]);
404
- return { name: output };
405
- }
406
- /**
407
- * Execute arbitrary simctl command
408
- *
409
- * SECURITY: `command` is whitespace-split into argv tokens before reaching
410
- * execFileSync. Shell metacharacters (;, &, |, $(), backticks, etc.) cannot
411
- * spawn a host shell from this path. The MCP tool layer additionally validates
412
- * via validateShellCommand as defense in depth.
413
- */
414
- shell(command) {
415
- return this.exec(command);
416
- }
417
- /**
418
- * Get device logs
419
- */
420
- getLogs(options = {}) {
421
- try {
422
- const output = this.execArgs(buildLogShowArgs(this.targetDevice, "5m", options));
423
- return options.lines ? sliceLastLines(output, options.lines) : output;
424
- }
425
- catch {
426
- // Fallback: try system log (last 1m, swallow stderr — replaces prior `2>/dev/null`).
427
- try {
428
- const fallback = this.execArgsQuiet(buildLogShowArgs(this.targetDevice, "1m"));
429
- return sliceLastLines(fallback, 100);
430
- }
431
- catch {
432
- return "Unable to retrieve logs. Make sure the simulator is running.";
433
- }
434
- }
435
- }
436
- /**
437
- * Get app-specific logs
438
- *
439
- * SECURITY: bundleId is validated against the reverse-DNS whitelist before
440
- * embedding into the simctl predicate string. The predicate itself is passed
441
- * as ONE argv slot — the host shell never parses it; simctl parses it
442
- * internally as its own DSL.
443
- */
444
- getAppLogs(bundleId, lines = 100) {
445
- validateBundleId(bundleId);
446
- try {
447
- const output = this.execArgs(buildAppLogArgs(this.targetDevice, bundleId));
448
- return sliceLastLines(output, lines);
449
- }
450
- catch {
451
- return `Unable to retrieve logs for ${bundleId}`;
452
- }
453
- }
454
- /**
455
- * Clear logs (not fully supported on iOS, but we can note the timestamp)
456
- */
457
- clearLogs() {
458
- return "iOS simulator logs cannot be cleared. Use --last parameter to filter recent logs.";
459
- }
460
- /**
461
- * Grant privacy permission on iOS simulator
462
- * Services: camera, microphone, photos, location, contacts, calendar, reminders, motion, health, speech-recognition
463
- */
464
- grantPermission(bundleId, service) {
465
- validateBundleId(bundleId);
466
- return this.execArgs(["privacy", this.targetDevice, "grant", service, bundleId]);
467
- }
468
- /**
469
- * Revoke privacy permission on iOS simulator
470
- */
471
- revokePermission(bundleId, service) {
472
- validateBundleId(bundleId);
473
- return this.execArgs(["privacy", this.targetDevice, "revoke", service, bundleId]);
474
- }
475
- /**
476
- * Reset all privacy permissions for an app on iOS simulator
477
- */
478
- resetPermissions(bundleId) {
479
- validateBundleId(bundleId);
480
- return this.execArgs(["privacy", this.targetDevice, "reset", "all", bundleId]);
481
- }
482
- }
483
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ios/client.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * go-ios (`ios`) invocation for physical iOS device discovery.
3
- *
4
- * Mirrors the simctl-exec pattern: argv-form execFileSync, never /bin/sh.
5
- * Discovery (`ios list` / `ios info`) works over usbmux WITHOUT the iOS 17+
6
- * RemoteXPC tunnel — the tunnel is only needed later for WDA port forwarding.
7
- *
8
- * Every call is best-effort: if the `ios` binary is absent (go-ios not
9
- * installed) or errors, discovery returns an empty list so simulator-only
10
- * setups are unaffected.
11
- */
12
- import type { IosDevice } from "../types.js";
13
- export declare const GO_IOS_BIN: string;
14
- export declare const GO_IOS_TIMEOUT_MS = 10000;
15
- /** True if the go-ios binary is invokable. */
16
- export declare function isGoIosAvailable(): boolean;
17
- /**
18
- * Enumerate connected physical iOS devices via go-ios. Returns [] when go-ios
19
- * is unavailable or no device is attached. Per-device `ios info` failures are
20
- * tolerated — the device is still returned with its udid and sensible defaults.
21
- */
22
- export declare function listPhysicalDevices(): IosDevice[];
23
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/ios/go-ios/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAiBxC,8CAA8C;AAC9C,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,EAAE,CAUjD"}
@@ -1,51 +0,0 @@
1
- /**
2
- * go-ios (`ios`) invocation for physical iOS device discovery.
3
- *
4
- * Mirrors the simctl-exec pattern: argv-form execFileSync, never /bin/sh.
5
- * Discovery (`ios list` / `ios info`) works over usbmux WITHOUT the iOS 17+
6
- * RemoteXPC tunnel — the tunnel is only needed later for WDA port forwarding.
7
- *
8
- * Every call is best-effort: if the `ios` binary is absent (go-ios not
9
- * installed) or errors, discovery returns an empty list so simulator-only
10
- * setups are unaffected.
11
- */
12
- import { execFileSync } from "child_process";
13
- import { parseDeviceList, parseInfo, toIosDevice } from "./parsers.js";
14
- export const GO_IOS_BIN = process.env.GO_IOS_BIN ?? "ios";
15
- export const GO_IOS_TIMEOUT_MS = 10_000;
16
- /** Run `ios <args>`, returning stdout, or null if the binary is missing/fails. */
17
- function runIos(args) {
18
- try {
19
- return execFileSync(GO_IOS_BIN, args, {
20
- encoding: "utf-8",
21
- timeout: GO_IOS_TIMEOUT_MS,
22
- maxBuffer: 16 * 1024 * 1024,
23
- // go-ios writes structured logs to stderr; keep stdout clean for parsing.
24
- stdio: ["ignore", "pipe", "ignore"],
25
- });
26
- }
27
- catch {
28
- return null;
29
- }
30
- }
31
- /** True if the go-ios binary is invokable. */
32
- export function isGoIosAvailable() {
33
- return runIos(["version"]) !== null;
34
- }
35
- /**
36
- * Enumerate connected physical iOS devices via go-ios. Returns [] when go-ios
37
- * is unavailable or no device is attached. Per-device `ios info` failures are
38
- * tolerated — the device is still returned with its udid and sensible defaults.
39
- */
40
- export function listPhysicalDevices() {
41
- const listOut = runIos(["list"]);
42
- if (listOut === null)
43
- return [];
44
- const udids = parseDeviceList(listOut);
45
- return udids.map((udid) => {
46
- const infoOut = runIos(["info", "--udid", udid]);
47
- const info = infoOut ? parseInfo(infoOut) : {};
48
- return toIosDevice(udid, info);
49
- });
50
- }
51
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ios/go-ios/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,kFAAkF;AAClF,SAAS,MAAM,CAAC,IAAc;IAC5B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,0EAA0E;YAC1E,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +0,0 @@
1
- export { parseDeviceList, parseInfo, toIosDevice } from "./parsers.js";
2
- export type { GoIosInfo } from "./parsers.js";
3
- export { GO_IOS_BIN, isGoIosAvailable, listPhysicalDevices, } from "./client.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios/go-ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -1,3 +0,0 @@
1
- export { parseDeviceList, parseInfo, toIosDevice } from "./parsers.js";
2
- export { GO_IOS_BIN, isGoIosAvailable, listPhysicalDevices, } from "./client.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/go-ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Pure parsers for go-ios (`ios`) JSON output. No I/O.
3
- *
4
- * go-ios emits newline-delimited JSON: structured log lines (level/msg/time)
5
- * interleaved with the actual result object. These parsers scan every line and
6
- * pick the one carrying the expected result key, so log noise (e.g. the
7
- * "agent is not running" WARN on iOS 17+) never corrupts the result.
8
- */
9
- import type { IosDevice } from "../types.js";
10
- /**
11
- * Parse `ios list` output into a list of physical-device UDIDs. The result line
12
- * looks like `{"deviceList":["00008130-..."]}`; log lines are skipped.
13
- */
14
- export declare function parseDeviceList(output: string): string[];
15
- export interface GoIosInfo {
16
- name?: string;
17
- productVersion?: string;
18
- productType?: string;
19
- deviceClass?: string;
20
- }
21
- /**
22
- * Parse `ios info` output. The result object is the one carrying device
23
- * identity keys (UniqueDeviceID / ProductVersion); log lines are skipped.
24
- */
25
- export declare function parseInfo(output: string): GoIosInfo;
26
- /** Build an `IosDevice` for a physical device from its udid + (optional) info. */
27
- export declare function toIosDevice(udid: string, info: GoIosInfo): IosDevice;
28
- //# sourceMappingURL=parsers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../src/ios/go-ios/parsers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkB7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQxD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAYnD;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CASpE"}