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,71 +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
- /** Parse each line as JSON, ignoring blanks and non-JSON noise. */
10
- function parseJsonLines(output) {
11
- const out = [];
12
- for (const line of output.split("\n")) {
13
- const trimmed = line.trim();
14
- if (!trimmed.startsWith("{"))
15
- continue;
16
- try {
17
- const v = JSON.parse(trimmed);
18
- if (v && typeof v === "object")
19
- out.push(v);
20
- }
21
- catch {
22
- // structured-log line that isn't valid standalone JSON — skip
23
- }
24
- }
25
- return out;
26
- }
27
- /**
28
- * Parse `ios list` output into a list of physical-device UDIDs. The result line
29
- * looks like `{"deviceList":["00008130-..."]}`; log lines are skipped.
30
- */
31
- export function parseDeviceList(output) {
32
- for (const obj of parseJsonLines(output)) {
33
- const list = obj.deviceList;
34
- if (Array.isArray(list)) {
35
- return list.filter((x) => typeof x === "string");
36
- }
37
- }
38
- return [];
39
- }
40
- /**
41
- * Parse `ios info` output. The result object is the one carrying device
42
- * identity keys (UniqueDeviceID / ProductVersion); log lines are skipped.
43
- */
44
- export function parseInfo(output) {
45
- for (const obj of parseJsonLines(output)) {
46
- if ("ProductVersion" in obj || "UniqueDeviceID" in obj) {
47
- return {
48
- name: strOrUndef(obj.DeviceName),
49
- productVersion: strOrUndef(obj.ProductVersion),
50
- productType: strOrUndef(obj.ProductType),
51
- deviceClass: strOrUndef(obj.DeviceClass),
52
- };
53
- }
54
- }
55
- return {};
56
- }
57
- /** Build an `IosDevice` for a physical device from its udid + (optional) info. */
58
- export function toIosDevice(udid, info) {
59
- return {
60
- id: udid,
61
- name: info.name ?? info.productType ?? info.deviceClass ?? "iOS device",
62
- // Physical devices report "connected"; autoDetectDevice already matches it.
63
- state: "connected",
64
- runtime: info.productVersion ? `iOS ${info.productVersion}` : "iOS",
65
- isSimulator: false,
66
- };
67
- }
68
- function strOrUndef(v) {
69
- return typeof v === "string" ? v : undefined;
70
- }
71
- //# sourceMappingURL=parsers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/ios/go-ios/parsers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,mEAAmE;AACnE,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,IAAI,gBAAgB,IAAI,GAAG,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;gBAChC,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC9C,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;gBACxC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;aACzC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAe;IACvD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY;QACvE,4EAA4E;QAC5E,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK;QACnE,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC"}
@@ -1,2 +0,0 @@
1
- export { IosClient, type IosDevice } from "./client.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/dist/ios/index.js DELETED
@@ -1,2 +0,0 @@
1
- export { IosClient } from "./client.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * iOS key mapping and AppleScript literals for the Simulator host.
3
- *
4
- * SECURITY: AppleScript strings here are fixed literals passed as distinct
5
- * argv slots to execFileSync("osascript", [...]). They never reach /bin/sh.
6
- */
7
- export declare const IOS_KEY_MAP: Record<string, string>;
8
- /**
9
- * Resolve a logical key name to its simctl/AppleScript token.
10
- */
11
- export declare function mapKey(key: string): string;
12
- /**
13
- * AppleScript argv that activates Simulator and triggers Cmd+Shift+H (home).
14
- */
15
- export declare const HOME_KEY_OSASCRIPT_ARGS: readonly string[];
16
- /**
17
- * AppleScript argv that just brings Simulator to focus.
18
- */
19
- export declare const ACTIVATE_SIMULATOR_OSASCRIPT_ARGS: readonly string[];
20
- //# sourceMappingURL=keymap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/ios/keymap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAGpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAE9D,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * iOS key mapping and AppleScript literals for the Simulator host.
3
- *
4
- * SECURITY: AppleScript strings here are fixed literals passed as distinct
5
- * argv slots to execFileSync("osascript", [...]). They never reach /bin/sh.
6
- */
7
- export const IOS_KEY_MAP = {
8
- HOME: "home",
9
- BACK: "home", // iOS doesn't have back, use home
10
- VOLUME_UP: "volumeUp",
11
- VOLUME_DOWN: "volumeDown",
12
- LOCK: "lock",
13
- };
14
- /**
15
- * Resolve a logical key name to its simctl/AppleScript token.
16
- */
17
- export function mapKey(key) {
18
- return IOS_KEY_MAP[key.toUpperCase()] ?? key.toLowerCase();
19
- }
20
- /**
21
- * AppleScript argv that activates Simulator and triggers Cmd+Shift+H (home).
22
- */
23
- export const HOME_KEY_OSASCRIPT_ARGS = [
24
- "-e", 'tell application "Simulator" to activate',
25
- "-e", 'tell application "System Events" to keystroke "h" using {command down, shift down}',
26
- ];
27
- /**
28
- * AppleScript argv that just brings Simulator to focus.
29
- */
30
- export const ACTIVATE_SIMULATOR_OSASCRIPT_ARGS = [
31
- "-e", 'tell application "Simulator" to activate',
32
- ];
33
- //# sourceMappingURL=keymap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/ios/keymap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM,EAAE,kCAAkC;IAChD,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,oFAAoF;CAC3F,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAsB;IAClE,IAAI,EAAE,0CAA0C;CACjD,CAAC"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Pure simctl argv builders. No I/O.
3
- *
4
- * SECURITY: All builders return string[] for execFileSync — no shell parsing.
5
- * Predicate strings and paths travel as distinct argv slots.
6
- */
7
- export interface LogShowOptions {
8
- predicate?: string;
9
- level?: "debug" | "info" | "default" | "error" | "fault";
10
- }
11
- /**
12
- * Build argv for `simctl spawn <device> log show ...`.
13
- */
14
- export declare function buildLogShowArgs(device: string, lastWindow: string, options?: LogShowOptions): string[];
15
- /**
16
- * Build argv for app-scoped log query (predicate = subsystem == "<bundleId>").
17
- * Caller must validate bundleId BEFORE calling this builder.
18
- */
19
- export declare function buildAppLogArgs(device: string, bundleId: string, lastWindow?: string): string[];
20
- /**
21
- * Split a whitespace-separated command into argv tokens.
22
- * Safe only for commands without quoted strings / spaces inside args.
23
- */
24
- export declare function splitArgs(command: string): string[];
25
- /**
26
- * Slice the last `n` lines from a newline-delimited string.
27
- * Node-side replacement for `| tail -n` (no shell needed).
28
- */
29
- export declare function sliceLastLines(text: string, n: number): string;
30
- /**
31
- * Coerce a lat/lon pair into finite numbers; throw on NaN/Infinity.
32
- * Returns the canonical `lat,lon` argument string expected by `simctl location set`.
33
- */
34
- export declare function formatLatLon(lat: number, lon: number): string;
35
- //# sourceMappingURL=simctl-commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-commands.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,cAAmB,GAC3B,MAAM,EAAE,CAWV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,MAAM,EAAE,CAMrG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7D"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Pure simctl argv builders. No I/O.
3
- *
4
- * SECURITY: All builders return string[] for execFileSync — no shell parsing.
5
- * Predicate strings and paths travel as distinct argv slots.
6
- */
7
- /**
8
- * Build argv for `simctl spawn <device> log show ...`.
9
- */
10
- export function buildLogShowArgs(device, lastWindow, options = {}) {
11
- const args = [
12
- "spawn", device, "log", "show", "--style", "compact", "--last", lastWindow,
13
- ];
14
- if (options.level) {
15
- args.push("--predicate", `messageType == ${options.level}`);
16
- }
17
- if (options.predicate) {
18
- args.push("--predicate", options.predicate);
19
- }
20
- return args;
21
- }
22
- /**
23
- * Build argv for app-scoped log query (predicate = subsystem == "<bundleId>").
24
- * Caller must validate bundleId BEFORE calling this builder.
25
- */
26
- export function buildAppLogArgs(device, bundleId, lastWindow = "5m") {
27
- return [
28
- "spawn", device, "log", "show", "--style", "compact",
29
- "--last", lastWindow,
30
- "--predicate", `subsystem == "${bundleId}"`,
31
- ];
32
- }
33
- /**
34
- * Split a whitespace-separated command into argv tokens.
35
- * Safe only for commands without quoted strings / spaces inside args.
36
- */
37
- export function splitArgs(command) {
38
- return command.split(/\s+/).filter(Boolean);
39
- }
40
- /**
41
- * Slice the last `n` lines from a newline-delimited string.
42
- * Node-side replacement for `| tail -n` (no shell needed).
43
- */
44
- export function sliceLastLines(text, n) {
45
- const linesN = Math.trunc(Math.max(0, n));
46
- return text.split("\n").slice(-linesN).join("\n");
47
- }
48
- /**
49
- * Coerce a lat/lon pair into finite numbers; throw on NaN/Infinity.
50
- * Returns the canonical `lat,lon` argument string expected by `simctl location set`.
51
- */
52
- export function formatLatLon(lat, lon) {
53
- const latN = Number(lat);
54
- const lonN = Number(lon);
55
- if (!Number.isFinite(latN) || !Number.isFinite(lonN)) {
56
- throw new Error(`Invalid coordinates: lat=${lat}, lon=${lon}`);
57
- }
58
- return `${latN},${lonN}`;
59
- }
60
- //# sourceMappingURL=simctl-commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-commands.js","sourceRoot":"","sources":["../../src/ios/simctl-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,UAAkB,EAClB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAa;QACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU;KAC3E,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,aAAqB,IAAI;IACzF,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACpD,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,iBAAiB,QAAQ,GAAG;KAC5C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,CAAS;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Low-level simctl invocation. Centralises the argv-form exec so the host shell
3
- * (/bin/sh) is never spawned — see SECURITY notes on each helper.
4
- *
5
- * No `IosClient` state is involved here; behaviour is parameterised entirely by
6
- * arguments. Retry / WDA loops live in client.ts and call into these as leaves.
7
- */
8
- export declare const SIMCTL_EXEC_TIMEOUT_MS = 15000;
9
- /**
10
- * SECURITY: routes through execFileSync — no /bin/sh -c. Shell metacharacters
11
- * in `args` are passed as literal argv slots (CWE-78 mitigation, issue #40).
12
- */
13
- export declare function execSimctl(args: string[]): string;
14
- /**
15
- * Variant that suppresses stderr (replaces shell `2>/dev/null`).
16
- * Same security guarantee as execSimctl.
17
- */
18
- export declare function execSimctlQuiet(args: string[]): string;
19
- //# sourceMappingURL=simctl-exec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-exec.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-exec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAoB7C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAatD"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Low-level simctl invocation. Centralises the argv-form exec so the host shell
3
- * (/bin/sh) is never spawned — see SECURITY notes on each helper.
4
- *
5
- * No `IosClient` state is involved here; behaviour is parameterised entirely by
6
- * arguments. Retry / WDA loops live in client.ts and call into these as leaves.
7
- */
8
- import { execFileSync } from "child_process";
9
- import { classifySimctlError } from "../errors.js";
10
- export const SIMCTL_EXEC_TIMEOUT_MS = 15_000;
11
- function handleExecError(error, fullArgs) {
12
- const e = error;
13
- const display = `xcrun ${fullArgs.join(" ")}`;
14
- if (e.killed === true || e.signal === "SIGTERM") {
15
- throw new Error(`simctl command timed out after ${SIMCTL_EXEC_TIMEOUT_MS}ms: ${display}. Simulator may be unresponsive.`);
16
- }
17
- throw classifySimctlError(e.stderr?.toString() ?? e.message ?? String(error), display);
18
- }
19
- /**
20
- * SECURITY: routes through execFileSync — no /bin/sh -c. Shell metacharacters
21
- * in `args` are passed as literal argv slots (CWE-78 mitigation, issue #40).
22
- */
23
- export function execSimctl(args) {
24
- const fullArgs = ["simctl", ...args];
25
- try {
26
- return execFileSync("xcrun", fullArgs, {
27
- encoding: "utf-8",
28
- timeout: SIMCTL_EXEC_TIMEOUT_MS,
29
- maxBuffer: 50 * 1024 * 1024,
30
- }).trim();
31
- }
32
- catch (error) {
33
- handleExecError(error, fullArgs);
34
- }
35
- }
36
- /**
37
- * Variant that suppresses stderr (replaces shell `2>/dev/null`).
38
- * Same security guarantee as execSimctl.
39
- */
40
- export function execSimctlQuiet(args) {
41
- const fullArgs = ["simctl", ...args];
42
- try {
43
- const out = execFileSync("xcrun", fullArgs, {
44
- encoding: "utf-8",
45
- timeout: SIMCTL_EXEC_TIMEOUT_MS,
46
- maxBuffer: 50 * 1024 * 1024,
47
- stdio: ["ignore", "pipe", "ignore"],
48
- });
49
- return out.toString().trim();
50
- }
51
- catch (error) {
52
- handleExecError(error, fullArgs);
53
- }
54
- }
55
- //# sourceMappingURL=simctl-exec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-exec.js","sourceRoot":"","sources":["../../src/ios/simctl-exec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAS7C,SAAS,eAAe,CAAC,KAAc,EAAE,QAAkB;IACzD,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,MAAM,OAAO,GAAG,SAAS,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,kCAAkC,sBAAsB,OAAO,OAAO,kCAAkC,CACzG,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE;YACrC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Pure parsers for simctl JSON / text output. No I/O.
3
- */
4
- import type { IosDevice } from "./types.js";
5
- /**
6
- * Parse output of `xcrun simctl list devices -j` into a flat list of available
7
- * simulators. Unavailable devices are filtered out.
8
- */
9
- export declare function parseDevicesJson(output: string): IosDevice[];
10
- //# sourceMappingURL=simctl-parsers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-parsers.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAe5C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAqB5D"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Pure parsers for simctl JSON / text output. No I/O.
3
- */
4
- const RUNTIME_PREFIX = "com.apple.CoreSimulator.SimRuntime.";
5
- /**
6
- * Parse output of `xcrun simctl list devices -j` into a flat list of available
7
- * simulators. Unavailable devices are filtered out.
8
- */
9
- export function parseDevicesJson(output) {
10
- const data = JSON.parse(output);
11
- const devices = [];
12
- for (const [runtime, deviceList] of Object.entries(data.devices)) {
13
- if (!Array.isArray(deviceList))
14
- continue;
15
- for (const device of deviceList) {
16
- if (device.isAvailable) {
17
- devices.push({
18
- id: device.udid,
19
- name: device.name,
20
- state: device.state.toLowerCase(),
21
- runtime: runtime.replace(RUNTIME_PREFIX, ""),
22
- isSimulator: true,
23
- });
24
- }
25
- }
26
- }
27
- return devices;
28
- }
29
- //# sourceMappingURL=simctl-parsers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simctl-parsers.js","sourceRoot":"","sources":["../../src/ios/simctl-parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAmB,CAAC;IAClD,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,SAAS;QAEzC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,MAAM,CAAC,IAAI;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;oBACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC5C,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,8 +0,0 @@
1
- export interface IosDevice {
2
- id: string;
3
- name: string;
4
- state: string;
5
- runtime: string;
6
- isSimulator: boolean;
7
- }
8
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB"}
package/dist/ios/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export { WDAManager } from "./wda-manager.js";
2
- export { WDAClient } from "./wda-client.js";
3
- export * from "./wda-types.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios/wda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
@@ -1,4 +0,0 @@
1
- export { WDAManager } from "./wda-manager.js";
2
- export { WDAClient } from "./wda-client.js";
3
- export * from "./wda-types.js";
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/wda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
@@ -1,33 +0,0 @@
1
- import { WDAElement, WDARect, UITreeNode, LocatorStrategy } from "./wda-types.js";
2
- export declare class WDAClient {
3
- private baseUrl;
4
- private sessionId;
5
- private readonly operationTimeout;
6
- constructor(port: number);
7
- ensureSession(deviceId: string): Promise<void>;
8
- private createSession;
9
- deleteSession(): Promise<void>;
10
- getAccessibleSource(): Promise<UITreeNode>;
11
- findElement(strategy: LocatorStrategy, selector: string): Promise<WDAElement>;
12
- findElements(strategy: LocatorStrategy, selector: string): Promise<WDAElement[]>;
13
- clickElement(elementId: string): Promise<void>;
14
- tapByCoordinates(x: number, y: number): Promise<void>;
15
- longPress(x: number, y: number, durationMs?: number): Promise<void>;
16
- typeText(text: string): Promise<void>;
17
- getWindowSize(): Promise<{
18
- width: number;
19
- height: number;
20
- }>;
21
- swipe(x1: number, y1: number, x2: number, y2: number, duration?: number): Promise<void>;
22
- getElementRect(elementId: string): Promise<WDARect>;
23
- getElementText(elementId: string): Promise<string>;
24
- isElementDisplayed(elementId: string): Promise<boolean>;
25
- /**
26
- * Capture a screenshot via WDA (`GET /screenshot`). Works for both
27
- * simulators and physical devices — the only screenshot path that does NOT
28
- * depend on simctl. Returns a PNG buffer.
29
- */
30
- screenshot(): Promise<Buffer>;
31
- private request;
32
- }
33
- //# sourceMappingURL=wda-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wda-client.d.ts","sourceRoot":"","sources":["../../../src/ios/wda/wda-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,OAAO,EACP,UAAU,EACV,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,IAAI,EAAE,MAAM;IAIlB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBtC,aAAa;IAwBrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;IAY1C,WAAW,CACf,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IAiBhB,YAAY,CAChB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBlB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrC,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAY3D,KAAK,CACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAwBV,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAanD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7D;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YASrB,OAAO;CAgDtB"}