claude-in-mobile 3.13.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 (383) 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/plugins/repl/client.d.ts +15 -1
  38. package/dist/plugins/repl/client.d.ts.map +1 -1
  39. package/dist/plugins/repl/client.js +65 -8
  40. package/dist/plugins/repl/client.js.map +1 -1
  41. package/dist/plugins/repl/index.d.ts +2 -0
  42. package/dist/plugins/repl/index.d.ts.map +1 -1
  43. package/dist/plugins/repl/index.js +22 -3
  44. package/dist/plugins/repl/index.js.map +1 -1
  45. package/dist/plugins/repl/types.d.ts +6 -0
  46. package/dist/plugins/repl/types.d.ts.map +1 -1
  47. package/dist/runtime/bootstrap.d.ts +7 -0
  48. package/dist/runtime/bootstrap.d.ts.map +1 -1
  49. package/dist/runtime/bootstrap.js +87 -15
  50. package/dist/runtime/bootstrap.js.map +1 -1
  51. package/dist/runtime/cli.d.ts.map +1 -1
  52. package/dist/runtime/cli.js +14 -0
  53. package/dist/runtime/cli.js.map +1 -1
  54. package/dist/runtime/platform-cli.d.ts +24 -0
  55. package/dist/runtime/platform-cli.d.ts.map +1 -0
  56. package/dist/runtime/platform-cli.js +116 -0
  57. package/dist/runtime/platform-cli.js.map +1 -0
  58. package/dist/runtime/platform-config.d.ts +21 -0
  59. package/dist/runtime/platform-config.d.ts.map +1 -0
  60. package/dist/runtime/platform-config.js +71 -0
  61. package/dist/runtime/platform-config.js.map +1 -0
  62. package/dist/tools/browser-tools.js.map +1 -1
  63. package/dist/tools/clipboard-tools.js +1 -1
  64. package/dist/tools/clipboard-tools.js.map +1 -1
  65. package/dist/tools/context/hints.d.ts +1 -1
  66. package/dist/tools/context/hints.d.ts.map +1 -1
  67. package/dist/tools/context/hints.js +1 -1
  68. package/dist/tools/context/hints.js.map +1 -1
  69. package/dist/tools/context/ios-helpers.d.ts +1 -1
  70. package/dist/tools/context/ios-helpers.d.ts.map +1 -1
  71. package/dist/tools/context/shared-state-class.d.ts +1 -1
  72. package/dist/tools/context/shared-state-class.d.ts.map +1 -1
  73. package/dist/tools/context/shared-state.d.ts +1 -1
  74. package/dist/tools/context/shared-state.d.ts.map +1 -1
  75. package/dist/tools/context.d.ts +2 -1
  76. package/dist/tools/context.d.ts.map +1 -1
  77. package/dist/tools/context.js +17 -9
  78. package/dist/tools/context.js.map +1 -1
  79. package/dist/tools/desktop-tools.d.ts.map +1 -1
  80. package/dist/tools/desktop-tools.js.map +1 -1
  81. package/dist/tools/flow/common.js +1 -1
  82. package/dist/tools/flow/common.js.map +1 -1
  83. package/dist/tools/flow/run.js +1 -1
  84. package/dist/tools/flow/run.js.map +1 -1
  85. package/dist/tools/helpers/get-elements.d.ts +1 -1
  86. package/dist/tools/helpers/get-elements.d.ts.map +1 -1
  87. package/dist/tools/helpers/get-elements.js +1 -1
  88. package/dist/tools/helpers/get-elements.js.map +1 -1
  89. package/dist/tools/helpers/resolve-element.js +1 -1
  90. package/dist/tools/helpers/resolve-element.js.map +1 -1
  91. package/dist/tools/screenshot-tools.js +1 -1
  92. package/dist/tools/screenshot-tools.js.map +1 -1
  93. package/dist/tools/ui/analyze.js +1 -1
  94. package/dist/tools/ui/analyze.js.map +1 -1
  95. package/dist/tools/ui/assert.js +1 -1
  96. package/dist/tools/ui/assert.js.map +1 -1
  97. package/dist/tools/ui/find.js +1 -1
  98. package/dist/tools/ui/find.js.map +1 -1
  99. package/dist/tools/ui/tree.js +1 -1
  100. package/dist/tools/ui/tree.js.map +1 -1
  101. package/dist/tools/ui/wait.js +1 -1
  102. package/dist/tools/ui/wait.js.map +1 -1
  103. package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
  104. package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
  105. package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
  106. package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
  107. package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
  108. package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
  109. package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
  110. package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
  111. package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
  112. package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
  113. package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
  114. package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
  115. package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
  116. package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
  117. package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
  118. package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
  119. package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
  120. package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
  121. package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
  122. package/dist/ui-tree/ui-parser/types.js.map +1 -0
  123. package/dist/ui-tree/ui-parser.d.ts.map +1 -0
  124. package/dist/ui-tree/ui-parser.js.map +1 -0
  125. package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
  126. package/dist/ui-tree/ui-scoring.js.map +1 -0
  127. package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
  128. package/dist/ui-tree/ui-tree-cache.js.map +1 -0
  129. package/dist/utils/image/annotate.d.ts +1 -1
  130. package/dist/utils/image/annotate.d.ts.map +1 -1
  131. package/package.json +11 -6
  132. package/dist/adapters/android-adapter.d.ts +0 -64
  133. package/dist/adapters/android-adapter.d.ts.map +0 -1
  134. package/dist/adapters/android-adapter.js +0 -164
  135. package/dist/adapters/android-adapter.js.map +0 -1
  136. package/dist/adapters/aurora-adapter.d.ts +0 -56
  137. package/dist/adapters/aurora-adapter.d.ts.map +0 -1
  138. package/dist/adapters/aurora-adapter.js +0 -118
  139. package/dist/adapters/aurora-adapter.js.map +0 -1
  140. package/dist/adapters/browser-adapter.d.ts +0 -51
  141. package/dist/adapters/browser-adapter.d.ts.map +0 -1
  142. package/dist/adapters/browser-adapter.js +0 -223
  143. package/dist/adapters/browser-adapter.js.map +0 -1
  144. package/dist/adapters/desktop-adapter.d.ts +0 -64
  145. package/dist/adapters/desktop-adapter.d.ts.map +0 -1
  146. package/dist/adapters/desktop-adapter.js +0 -202
  147. package/dist/adapters/desktop-adapter.js.map +0 -1
  148. package/dist/adapters/ios-adapter.d.ts +0 -60
  149. package/dist/adapters/ios-adapter.d.ts.map +0 -1
  150. package/dist/adapters/ios-adapter.js +0 -146
  151. package/dist/adapters/ios-adapter.js.map +0 -1
  152. package/dist/adb/client.d.ts +0 -238
  153. package/dist/adb/client.d.ts.map +0 -1
  154. package/dist/adb/client.js +0 -462
  155. package/dist/adb/client.js.map +0 -1
  156. package/dist/adb/exec.d.ts +0 -23
  157. package/dist/adb/exec.d.ts.map +0 -1
  158. package/dist/adb/exec.js +0 -98
  159. package/dist/adb/exec.js.map +0 -1
  160. package/dist/adb/index.d.ts +0 -5
  161. package/dist/adb/index.d.ts.map +0 -1
  162. package/dist/adb/index.js +0 -3
  163. package/dist/adb/index.js.map +0 -1
  164. package/dist/adb/keycodes.d.ts +0 -22
  165. package/dist/adb/keycodes.d.ts.map +0 -1
  166. package/dist/adb/keycodes.js +0 -69
  167. package/dist/adb/keycodes.js.map +0 -1
  168. package/dist/adb/logcat.d.ts +0 -23
  169. package/dist/adb/logcat.d.ts.map +0 -1
  170. package/dist/adb/logcat.js +0 -40
  171. package/dist/adb/logcat.js.map +0 -1
  172. package/dist/adb/parsers.d.ts +0 -60
  173. package/dist/adb/parsers.d.ts.map +0 -1
  174. package/dist/adb/parsers.js +0 -118
  175. package/dist/adb/parsers.js.map +0 -1
  176. package/dist/adb/resolver.d.ts +0 -24
  177. package/dist/adb/resolver.d.ts.map +0 -1
  178. package/dist/adb/resolver.js +0 -130
  179. package/dist/adb/resolver.js.map +0 -1
  180. package/dist/adb/text-escape.d.ts +0 -23
  181. package/dist/adb/text-escape.d.ts.map +0 -1
  182. package/dist/adb/text-escape.js +0 -41
  183. package/dist/adb/text-escape.js.map +0 -1
  184. package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
  185. package/dist/adb/ui-parser/diff-engine.js.map +0 -1
  186. package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
  187. package/dist/adb/ui-parser/element-builder.js.map +0 -1
  188. package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
  189. package/dist/adb/ui-parser/element-finders.js.map +0 -1
  190. package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
  191. package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
  192. package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
  193. package/dist/adb/ui-parser/formatters/full.js.map +0 -1
  194. package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
  195. package/dist/adb/ui-parser/formatters/index.js.map +0 -1
  196. package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
  197. package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
  198. package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
  199. package/dist/adb/ui-parser/node-parser.js.map +0 -1
  200. package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
  201. package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
  202. package/dist/adb/ui-parser/types.d.ts.map +0 -1
  203. package/dist/adb/ui-parser/types.js.map +0 -1
  204. package/dist/adb/ui-parser.d.ts.map +0 -1
  205. package/dist/adb/ui-parser.js.map +0 -1
  206. package/dist/adb/ui-scoring.d.ts.map +0 -1
  207. package/dist/adb/ui-scoring.js.map +0 -1
  208. package/dist/adb/ui-tree-cache.d.ts.map +0 -1
  209. package/dist/adb/ui-tree-cache.js.map +0 -1
  210. package/dist/adb/webview.d.ts +0 -59
  211. package/dist/adb/webview.d.ts.map +0 -1
  212. package/dist/adb/webview.js +0 -169
  213. package/dist/adb/webview.js.map +0 -1
  214. package/dist/aurora/client.d.ts +0 -180
  215. package/dist/aurora/client.d.ts.map +0 -1
  216. package/dist/aurora/client.js +0 -324
  217. package/dist/aurora/client.js.map +0 -1
  218. package/dist/aurora/index.d.ts +0 -2
  219. package/dist/aurora/index.d.ts.map +0 -1
  220. package/dist/aurora/index.js +0 -2
  221. package/dist/aurora/index.js.map +0 -1
  222. package/dist/browser/cdp-helpers.d.ts +0 -17
  223. package/dist/browser/cdp-helpers.d.ts.map +0 -1
  224. package/dist/browser/cdp-helpers.js +0 -79
  225. package/dist/browser/cdp-helpers.js.map +0 -1
  226. package/dist/browser/cdp-types.d.ts +0 -167
  227. package/dist/browser/cdp-types.d.ts.map +0 -1
  228. package/dist/browser/cdp-types.js +0 -9
  229. package/dist/browser/cdp-types.js.map +0 -1
  230. package/dist/browser/client.d.ts +0 -29
  231. package/dist/browser/client.d.ts.map +0 -1
  232. package/dist/browser/client.js +0 -391
  233. package/dist/browser/client.js.map +0 -1
  234. package/dist/browser/index.d.ts +0 -5
  235. package/dist/browser/index.d.ts.map +0 -1
  236. package/dist/browser/index.js +0 -4
  237. package/dist/browser/index.js.map +0 -1
  238. package/dist/browser/key-map.d.ts +0 -16
  239. package/dist/browser/key-map.d.ts.map +0 -1
  240. package/dist/browser/key-map.js +0 -35
  241. package/dist/browser/key-map.js.map +0 -1
  242. package/dist/browser/session-manager.d.ts +0 -21
  243. package/dist/browser/session-manager.d.ts.map +0 -1
  244. package/dist/browser/session-manager.js +0 -109
  245. package/dist/browser/session-manager.js.map +0 -1
  246. package/dist/browser/snapshot-builder.d.ts +0 -4
  247. package/dist/browser/snapshot-builder.d.ts.map +0 -1
  248. package/dist/browser/snapshot-builder.js +0 -76
  249. package/dist/browser/snapshot-builder.js.map +0 -1
  250. package/dist/browser/types.d.ts +0 -75
  251. package/dist/browser/types.d.ts.map +0 -1
  252. package/dist/browser/types.js +0 -11
  253. package/dist/browser/types.js.map +0 -1
  254. package/dist/desktop/client.d.ts +0 -196
  255. package/dist/desktop/client.d.ts.map +0 -1
  256. package/dist/desktop/client.js +0 -540
  257. package/dist/desktop/client.js.map +0 -1
  258. package/dist/desktop/gradle.d.ts +0 -45
  259. package/dist/desktop/gradle.d.ts.map +0 -1
  260. package/dist/desktop/gradle.js +0 -234
  261. package/dist/desktop/gradle.js.map +0 -1
  262. package/dist/desktop/index.d.ts +0 -7
  263. package/dist/desktop/index.d.ts.map +0 -1
  264. package/dist/desktop/index.js +0 -7
  265. package/dist/desktop/index.js.map +0 -1
  266. package/dist/desktop/launch-options.d.ts +0 -13
  267. package/dist/desktop/launch-options.d.ts.map +0 -1
  268. package/dist/desktop/launch-options.js +0 -54
  269. package/dist/desktop/launch-options.js.map +0 -1
  270. package/dist/desktop/launchers.d.ts +0 -52
  271. package/dist/desktop/launchers.d.ts.map +0 -1
  272. package/dist/desktop/launchers.js +0 -125
  273. package/dist/desktop/launchers.js.map +0 -1
  274. package/dist/desktop/log-ring.d.ts +0 -21
  275. package/dist/desktop/log-ring.d.ts.map +0 -1
  276. package/dist/desktop/log-ring.js +0 -45
  277. package/dist/desktop/log-ring.js.map +0 -1
  278. package/dist/desktop/permission-allowlist.d.ts +0 -47
  279. package/dist/desktop/permission-allowlist.d.ts.map +0 -1
  280. package/dist/desktop/permission-allowlist.js +0 -148
  281. package/dist/desktop/permission-allowlist.js.map +0 -1
  282. package/dist/desktop/types.d.ts +0 -177
  283. package/dist/desktop/types.d.ts.map +0 -1
  284. package/dist/desktop/types.js +0 -5
  285. package/dist/desktop/types.js.map +0 -1
  286. package/dist/ios/client.d.ts +0 -194
  287. package/dist/ios/client.d.ts.map +0 -1
  288. package/dist/ios/client.js +0 -457
  289. package/dist/ios/client.js.map +0 -1
  290. package/dist/ios/index.d.ts +0 -2
  291. package/dist/ios/index.d.ts.map +0 -1
  292. package/dist/ios/index.js +0 -2
  293. package/dist/ios/index.js.map +0 -1
  294. package/dist/ios/keymap.d.ts +0 -20
  295. package/dist/ios/keymap.d.ts.map +0 -1
  296. package/dist/ios/keymap.js +0 -33
  297. package/dist/ios/keymap.js.map +0 -1
  298. package/dist/ios/simctl-commands.d.ts +0 -35
  299. package/dist/ios/simctl-commands.d.ts.map +0 -1
  300. package/dist/ios/simctl-commands.js +0 -60
  301. package/dist/ios/simctl-commands.js.map +0 -1
  302. package/dist/ios/simctl-exec.d.ts +0 -19
  303. package/dist/ios/simctl-exec.d.ts.map +0 -1
  304. package/dist/ios/simctl-exec.js +0 -55
  305. package/dist/ios/simctl-exec.js.map +0 -1
  306. package/dist/ios/simctl-parsers.d.ts +0 -10
  307. package/dist/ios/simctl-parsers.d.ts.map +0 -1
  308. package/dist/ios/simctl-parsers.js +0 -29
  309. package/dist/ios/simctl-parsers.js.map +0 -1
  310. package/dist/ios/types.d.ts +0 -8
  311. package/dist/ios/types.d.ts.map +0 -1
  312. package/dist/ios/types.js +0 -2
  313. package/dist/ios/types.js.map +0 -1
  314. package/dist/ios/wda/index.d.ts +0 -4
  315. package/dist/ios/wda/index.d.ts.map +0 -1
  316. package/dist/ios/wda/index.js +0 -4
  317. package/dist/ios/wda/index.js.map +0 -1
  318. package/dist/ios/wda/wda-client.d.ts +0 -27
  319. package/dist/ios/wda/wda-client.d.ts.map +0 -1
  320. package/dist/ios/wda/wda-client.js +0 -237
  321. package/dist/ios/wda/wda-client.js.map +0 -1
  322. package/dist/ios/wda/wda-manager.d.ts +0 -18
  323. package/dist/ios/wda/wda-manager.d.ts.map +0 -1
  324. package/dist/ios/wda/wda-manager.js +0 -238
  325. package/dist/ios/wda/wda-manager.js.map +0 -1
  326. package/dist/ios/wda/wda-types.d.ts +0 -39
  327. package/dist/ios/wda/wda-types.d.ts.map +0 -1
  328. package/dist/ios/wda/wda-types.js +0 -2
  329. package/dist/ios/wda/wda-types.js.map +0 -1
  330. package/dist/ios/wda-errors.d.ts +0 -8
  331. package/dist/ios/wda-errors.d.ts.map +0 -1
  332. package/dist/ios/wda-errors.js +0 -13
  333. package/dist/ios/wda-errors.js.map +0 -1
  334. package/dist/ios/wda-payloads.d.ts +0 -32
  335. package/dist/ios/wda-payloads.d.ts.map +0 -1
  336. package/dist/ios/wda-payloads.js +0 -31
  337. package/dist/ios/wda-payloads.js.map +0 -1
  338. package/dist/plugins/android/index.d.ts +0 -23
  339. package/dist/plugins/android/index.d.ts.map +0 -1
  340. package/dist/plugins/android/index.js +0 -45
  341. package/dist/plugins/android/index.js.map +0 -1
  342. package/dist/plugins/aurora/index.d.ts +0 -17
  343. package/dist/plugins/aurora/index.d.ts.map +0 -1
  344. package/dist/plugins/aurora/index.js +0 -27
  345. package/dist/plugins/aurora/index.js.map +0 -1
  346. package/dist/plugins/desktop/index.d.ts +0 -18
  347. package/dist/plugins/desktop/index.d.ts.map +0 -1
  348. package/dist/plugins/desktop/index.js +0 -28
  349. package/dist/plugins/desktop/index.js.map +0 -1
  350. package/dist/plugins/ios/index.d.ts +0 -17
  351. package/dist/plugins/ios/index.d.ts.map +0 -1
  352. package/dist/plugins/ios/index.js +0 -36
  353. package/dist/plugins/ios/index.js.map +0 -1
  354. package/dist/plugins/web/index.d.ts +0 -17
  355. package/dist/plugins/web/index.d.ts.map +0 -1
  356. package/dist/plugins/web/index.js +0 -27
  357. package/dist/plugins/web/index.js.map +0 -1
  358. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
  359. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
  360. /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
  361. /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
  362. /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
  363. /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
  364. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
  365. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
  366. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
  367. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
  368. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
  369. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
  370. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
  371. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
  372. /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
  373. /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
  374. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
  375. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
  376. /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
  377. /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
  378. /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
  379. /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
  380. /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
  381. /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
  382. /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
  383. /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
@@ -1,457 +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 { wdaRequiredError } from "./wda-errors.js";
12
- import { ACTIVATE_SIMULATOR_OSASCRIPT_ARGS, HOME_KEY_OSASCRIPT_ARGS, mapKey, } from "./keymap.js";
13
- import { buildFindElementsSelectors, buildSwipeCoords, } from "./wda-payloads.js";
14
- export class IosClient {
15
- deviceId;
16
- wdaManager = new WDAManager();
17
- wdaClient;
18
- constructor(deviceId) {
19
- if (deviceId) {
20
- validateDeviceId(deviceId);
21
- }
22
- this.deviceId = deviceId;
23
- }
24
- cleanup() {
25
- this.wdaManager.cleanup();
26
- this.wdaClient = undefined;
27
- }
28
- async ensureWDA(deviceIdOverride) {
29
- const effectiveId = deviceIdOverride ?? this.deviceId;
30
- if (!effectiveId) {
31
- const booted = this.getBootedDevices();
32
- if (booted.length === 0) {
33
- throw new Error("No booted iOS simulator found. Boot a simulator first.");
34
- }
35
- this.deviceId = booted[0].id;
36
- this.wdaClient = await this.wdaManager.ensureWDAReady(this.deviceId);
37
- return this.wdaClient;
38
- }
39
- // Per-call override: don't cache on instance if different from default
40
- if (deviceIdOverride && deviceIdOverride !== this.deviceId) {
41
- return this.wdaManager.ensureWDAReady(deviceIdOverride);
42
- }
43
- if (!this.wdaClient) {
44
- this.wdaClient = await this.wdaManager.ensureWDAReady(effectiveId);
45
- }
46
- return this.wdaClient;
47
- }
48
- /** Thin instance wrapper around `execSimctl` (argv-form, no shell). */
49
- execArgs(args) {
50
- return execSimctl(args);
51
- }
52
- /** Thin instance wrapper around `execSimctlQuiet` (stderr suppressed). */
53
- execArgsQuiet(args) {
54
- return execSimctlQuiet(args);
55
- }
56
- /** Legacy string form: whitespace-split into argv tokens, then `execSimctl`. */
57
- exec(command) {
58
- return execSimctl(splitArgs(command));
59
- }
60
- /**
61
- * Get the active device ID or 'booted'
62
- */
63
- get targetDevice() {
64
- return this.deviceId ?? "booted";
65
- }
66
- /** Resolve target device for a per-call override or fall back to instance default. */
67
- targetDeviceFor(deviceIdOverride) {
68
- return deviceIdOverride ?? this.deviceId ?? "booted";
69
- }
70
- /**
71
- * Get list of iOS simulators
72
- */
73
- getDevices() {
74
- return parseDevicesJson(this.exec("list devices -j"));
75
- }
76
- /**
77
- * Get booted simulators
78
- */
79
- getBootedDevices() {
80
- return this.getDevices().filter(d => d.state === "booted");
81
- }
82
- /**
83
- * Set active device
84
- */
85
- setDevice(deviceId) {
86
- validateDeviceId(deviceId);
87
- if (this.deviceId !== deviceId) {
88
- this.wdaClient = undefined;
89
- }
90
- this.deviceId = deviceId;
91
- }
92
- /**
93
- * Get currently configured device ID
94
- */
95
- getDeviceId() {
96
- return this.deviceId;
97
- }
98
- /**
99
- * Boot simulator
100
- */
101
- boot(deviceId) {
102
- const target = deviceId ?? this.deviceId;
103
- if (!target)
104
- throw new Error("No device specified");
105
- validateDeviceId(target);
106
- this.execArgs(["boot", target]);
107
- }
108
- /**
109
- * Shutdown simulator
110
- */
111
- shutdown(deviceId) {
112
- const target = deviceId ?? this.deviceId ?? "booted";
113
- if (target !== "booted")
114
- validateDeviceId(target);
115
- this.execArgs(["shutdown", target]);
116
- }
117
- /**
118
- * Take screenshot and return raw PNG buffer
119
- */
120
- screenshotRaw(deviceIdOverride) {
121
- const target = this.targetDeviceFor(deviceIdOverride);
122
- const tmpFile = join(tmpdir(), `ios-screenshot-${Date.now()}.png`);
123
- try {
124
- // Path passed as distinct argv slot — spaces in tmpdir are safe.
125
- this.execArgs(["io", target, "screenshot", tmpFile]);
126
- return readFileSync(tmpFile);
127
- }
128
- finally {
129
- try {
130
- unlinkSync(tmpFile);
131
- }
132
- catch { }
133
- }
134
- }
135
- /**
136
- * Take screenshot and return as base64 (legacy)
137
- */
138
- screenshot(deviceIdOverride) {
139
- return this.screenshotRaw(deviceIdOverride).toString("base64");
140
- }
141
- /**
142
- * Tap at coordinates
143
- */
144
- async tap(x, y, deviceIdOverride) {
145
- try {
146
- const wdaClient = await this.ensureWDA(deviceIdOverride);
147
- await wdaClient.tapByCoordinates(x, y);
148
- }
149
- catch (error) {
150
- throw wdaRequiredError("Tap", error);
151
- }
152
- }
153
- /**
154
- * Swipe gesture
155
- */
156
- async swipe(x1, y1, x2, y2, durationMs = 300, deviceIdOverride) {
157
- try {
158
- const wdaClient = await this.ensureWDA(deviceIdOverride);
159
- await wdaClient.swipe(x1, y1, x2, y2, durationMs);
160
- }
161
- catch (error) {
162
- throw wdaRequiredError("Swipe", error);
163
- }
164
- }
165
- /**
166
- * Long press at coordinates via WDA Actions API
167
- */
168
- async longPress(x, y, durationMs = 1000, deviceIdOverride) {
169
- try {
170
- const wdaClient = await this.ensureWDA(deviceIdOverride);
171
- await wdaClient.longPress(x, y, durationMs);
172
- }
173
- catch (error) {
174
- throw wdaRequiredError("Long press", error);
175
- }
176
- }
177
- /**
178
- * Swipe in direction (uses actual screen center from WDA, not hardcoded)
179
- */
180
- async swipeDirection(direction, distance = 400) {
181
- // Get actual screen size from WDA instead of using hardcoded values
182
- let centerX = 200;
183
- let centerY = 400;
184
- try {
185
- const wdaClient = await this.ensureWDA();
186
- const size = await wdaClient.getWindowSize();
187
- centerX = Math.floor(size.width / 2);
188
- centerY = Math.floor(size.height / 2);
189
- }
190
- catch {
191
- // Fallback to defaults if WDA not available
192
- }
193
- const { x1, y1, x2, y2 } = buildSwipeCoords(direction, centerX, centerY, distance);
194
- await this.swipe(x1, y1, x2, y2);
195
- }
196
- /**
197
- * Input text via WDA (types into the currently focused element)
198
- */
199
- async inputText(text, deviceIdOverride) {
200
- try {
201
- const wdaClient = await this.ensureWDA(deviceIdOverride);
202
- await wdaClient.typeText(text);
203
- }
204
- catch (error) {
205
- throw wdaRequiredError("Text input", error);
206
- }
207
- }
208
- /**
209
- * Press key
210
- *
211
- * SECURITY: AppleScript invocations use execFileSync("osascript", ["-e", literal])
212
- * — the script literal is a single argv slot, so /bin/sh never parses its contents.
213
- * The `key` argument is whitelisted via keyMap; only fixed AppleScript literals reach
214
- * osascript.
215
- */
216
- pressKey(key) {
217
- const mappedKey = mapKey(key);
218
- // Use simctl io for button presses
219
- if (mappedKey === "home") {
220
- this.execArgs(["io", this.targetDevice, "enumerate"]);
221
- // Trigger home button via keyboard shortcut
222
- execFileSync("osascript", [...HOME_KEY_OSASCRIPT_ARGS], { encoding: "utf-8", timeout: SIMCTL_EXEC_TIMEOUT_MS });
223
- }
224
- else {
225
- // Try generic approach
226
- execFileSync("osascript", [...ACTIVATE_SIMULATOR_OSASCRIPT_ARGS], { encoding: "utf-8", timeout: SIMCTL_EXEC_TIMEOUT_MS });
227
- }
228
- }
229
- /**
230
- * Launch app by bundle ID
231
- */
232
- launchApp(bundleId, deviceIdOverride) {
233
- validateBundleId(bundleId);
234
- this.execArgs(["launch", this.targetDeviceFor(deviceIdOverride), bundleId]);
235
- return `Launched ${bundleId}`;
236
- }
237
- /**
238
- * Terminate app
239
- */
240
- stopApp(bundleId, deviceIdOverride) {
241
- validateBundleId(bundleId);
242
- try {
243
- this.execArgs(["terminate", this.targetDeviceFor(deviceIdOverride), bundleId]);
244
- }
245
- catch {
246
- // App might not be running
247
- }
248
- }
249
- /**
250
- * Install app (.app bundle or .ipa)
251
- */
252
- installApp(path) {
253
- // Path passed as distinct argv slot — spaces in path are safe; no shell parsing.
254
- this.execArgs(["install", this.targetDevice, path]);
255
- return `Installed ${path}`;
256
- }
257
- /**
258
- * Uninstall app
259
- */
260
- uninstallApp(bundleId) {
261
- validateBundleId(bundleId);
262
- this.execArgs(["uninstall", this.targetDevice, bundleId]);
263
- return `Uninstalled ${bundleId}`;
264
- }
265
- /**
266
- * Get UI hierarchy (limited on iOS simulator)
267
- * Returns accessibility info if available
268
- */
269
- async getUiHierarchy(deviceIdOverride) {
270
- try {
271
- const wdaClient = await this.ensureWDA(deviceIdOverride);
272
- const tree = await wdaClient.getAccessibleSource();
273
- return JSON.stringify(tree, null, 2);
274
- }
275
- catch (error) {
276
- throw wdaRequiredError("WebDriverAgent", error);
277
- }
278
- }
279
- /**
280
- * Find element by text or label
281
- */
282
- async findElement(criteria) {
283
- const wdaClient = await this.ensureWDA();
284
- if (criteria.label) {
285
- return await wdaClient.findElement("accessibility id", criteria.label);
286
- }
287
- if (criteria.text) {
288
- return await wdaClient.findElement("name", criteria.text);
289
- }
290
- throw new Error("Provide text or label to find element");
291
- }
292
- /**
293
- * Find multiple elements by criteria
294
- */
295
- async findElements(criteria) {
296
- const wdaClient = await this.ensureWDA();
297
- const elements = [];
298
- for (const sel of buildFindElementsSelectors(criteria)) {
299
- const found = await wdaClient.findElements(sel.using, sel.value);
300
- elements.push(...found);
301
- }
302
- const results = await Promise.all(elements.map(async (el) => {
303
- try {
304
- const rect = await wdaClient.getElementRect(el.ELEMENT);
305
- const text = await wdaClient.getElementText(el.ELEMENT).catch(() => "");
306
- const displayed = criteria.visible !== undefined
307
- ? await wdaClient.isElementDisplayed(el.ELEMENT)
308
- : true;
309
- if (criteria.visible !== undefined && displayed !== criteria.visible) {
310
- return null;
311
- }
312
- return {
313
- id: el.ELEMENT,
314
- type: criteria.type || "Unknown",
315
- label: text,
316
- rect,
317
- };
318
- }
319
- catch {
320
- return null;
321
- }
322
- }));
323
- return results.filter((r) => r !== null);
324
- }
325
- /**
326
- * Get element rect (position + size) by element ID
327
- */
328
- async getElementRect(elementId) {
329
- try {
330
- const wdaClient = await this.ensureWDA();
331
- return await wdaClient.getElementRect(elementId);
332
- }
333
- catch {
334
- return null;
335
- }
336
- }
337
- /**
338
- * Tap element by element ID
339
- */
340
- async tapElement(elementId) {
341
- const wdaClient = await this.ensureWDA();
342
- await wdaClient.clickElement(elementId);
343
- }
344
- /**
345
- * Open URL in simulator
346
- *
347
- * SECURITY: URL passes as a single argv slot to xcrun (no /bin/sh -c).
348
- * Any shell metacharacters in `url` are not parsed by the host shell.
349
- * Scheme validation happens at the tool layer (validateUrl).
350
- */
351
- openUrl(url) {
352
- try {
353
- this.execArgs(["openurl", this.targetDevice, url]);
354
- }
355
- catch (error) {
356
- const e = error;
357
- throw classifySimctlError(e.stderr?.toString() ?? e.message ?? String(error), `simctl openurl ${url}`);
358
- }
359
- }
360
- /**
361
- * Add photo to simulator
362
- */
363
- addPhoto(imagePath) {
364
- // Path passed as distinct argv slot — spaces in path are safe.
365
- this.execArgs(["addmedia", this.targetDevice, imagePath]);
366
- }
367
- /**
368
- * Set location
369
- */
370
- setLocation(lat, lon) {
371
- this.execArgs(["location", this.targetDevice, "set", formatLatLon(lat, lon)]);
372
- }
373
- /**
374
- * Get device info
375
- */
376
- getDeviceInfo() {
377
- const output = this.execArgs(["getenv", this.targetDevice, "SIMULATOR_DEVICE_NAME"]);
378
- return { name: output };
379
- }
380
- /**
381
- * Execute arbitrary simctl command
382
- *
383
- * SECURITY: `command` is whitespace-split into argv tokens before reaching
384
- * execFileSync. Shell metacharacters (;, &, |, $(), backticks, etc.) cannot
385
- * spawn a host shell from this path. The MCP tool layer additionally validates
386
- * via validateShellCommand as defense in depth.
387
- */
388
- shell(command) {
389
- return this.exec(command);
390
- }
391
- /**
392
- * Get device logs
393
- */
394
- getLogs(options = {}) {
395
- try {
396
- const output = this.execArgs(buildLogShowArgs(this.targetDevice, "5m", options));
397
- return options.lines ? sliceLastLines(output, options.lines) : output;
398
- }
399
- catch {
400
- // Fallback: try system log (last 1m, swallow stderr — replaces prior `2>/dev/null`).
401
- try {
402
- const fallback = this.execArgsQuiet(buildLogShowArgs(this.targetDevice, "1m"));
403
- return sliceLastLines(fallback, 100);
404
- }
405
- catch {
406
- return "Unable to retrieve logs. Make sure the simulator is running.";
407
- }
408
- }
409
- }
410
- /**
411
- * Get app-specific logs
412
- *
413
- * SECURITY: bundleId is validated against the reverse-DNS whitelist before
414
- * embedding into the simctl predicate string. The predicate itself is passed
415
- * as ONE argv slot — the host shell never parses it; simctl parses it
416
- * internally as its own DSL.
417
- */
418
- getAppLogs(bundleId, lines = 100) {
419
- validateBundleId(bundleId);
420
- try {
421
- const output = this.execArgs(buildAppLogArgs(this.targetDevice, bundleId));
422
- return sliceLastLines(output, lines);
423
- }
424
- catch {
425
- return `Unable to retrieve logs for ${bundleId}`;
426
- }
427
- }
428
- /**
429
- * Clear logs (not fully supported on iOS, but we can note the timestamp)
430
- */
431
- clearLogs() {
432
- return "iOS simulator logs cannot be cleared. Use --last parameter to filter recent logs.";
433
- }
434
- /**
435
- * Grant privacy permission on iOS simulator
436
- * Services: camera, microphone, photos, location, contacts, calendar, reminders, motion, health, speech-recognition
437
- */
438
- grantPermission(bundleId, service) {
439
- validateBundleId(bundleId);
440
- return this.execArgs(["privacy", this.targetDevice, "grant", service, bundleId]);
441
- }
442
- /**
443
- * Revoke privacy permission on iOS simulator
444
- */
445
- revokePermission(bundleId, service) {
446
- validateBundleId(bundleId);
447
- return this.execArgs(["privacy", this.targetDevice, "revoke", service, bundleId]);
448
- }
449
- /**
450
- * Reset all privacy permissions for an app on iOS simulator
451
- */
452
- resetPermissions(bundleId) {
453
- validateBundleId(bundleId);
454
- return this.execArgs(["privacy", this.targetDevice, "reset", "all", bundleId]);
455
- }
456
- }
457
- //# 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,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"}