lim 0.1.5 → 0.9.0

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 (333) hide show
  1. package/README.md +836 -0
  2. package/bin/dev.js +16 -0
  3. package/bin/run.js +63 -0
  4. package/dist/base-command.d.ts +51 -0
  5. package/dist/base-command.d.ts.map +1 -0
  6. package/dist/base-command.js +441 -0
  7. package/dist/base-command.js.map +1 -0
  8. package/dist/commands/android/connect.d.ts +17 -0
  9. package/dist/commands/android/connect.d.ts.map +1 -0
  10. package/dist/commands/android/connect.js +50 -0
  11. package/dist/commands/android/connect.js.map +1 -0
  12. package/dist/commands/android/create.d.ts +25 -0
  13. package/dist/commands/android/create.d.ts.map +1 -0
  14. package/dist/commands/android/create.js +202 -0
  15. package/dist/commands/android/create.js.map +1 -0
  16. package/dist/commands/android/delete.d.ts +17 -0
  17. package/dist/commands/android/delete.d.ts.map +1 -0
  18. package/dist/commands/android/delete.js +44 -0
  19. package/dist/commands/android/delete.js.map +1 -0
  20. package/dist/commands/android/element-tree.d.ts +16 -0
  21. package/dist/commands/android/element-tree.d.ts.map +1 -0
  22. package/dist/commands/android/element-tree.js +60 -0
  23. package/dist/commands/android/element-tree.js.map +1 -0
  24. package/dist/commands/android/find-element.d.ts +28 -0
  25. package/dist/commands/android/find-element.d.ts.map +1 -0
  26. package/dist/commands/android/find-element.js +70 -0
  27. package/dist/commands/android/find-element.js.map +1 -0
  28. package/dist/commands/android/get.d.ts +17 -0
  29. package/dist/commands/android/get.d.ts.map +1 -0
  30. package/dist/commands/android/get.js +43 -0
  31. package/dist/commands/android/get.js.map +1 -0
  32. package/dist/commands/android/install-app.d.ts +18 -0
  33. package/dist/commands/android/install-app.d.ts.map +1 -0
  34. package/dist/commands/android/install-app.js +70 -0
  35. package/dist/commands/android/install-app.js.map +1 -0
  36. package/dist/commands/android/list.d.ts +19 -0
  37. package/dist/commands/android/list.d.ts.map +1 -0
  38. package/dist/commands/android/list.js +61 -0
  39. package/dist/commands/android/list.js.map +1 -0
  40. package/dist/commands/android/open-url.d.ts +18 -0
  41. package/dist/commands/android/open-url.d.ts.map +1 -0
  42. package/dist/commands/android/open-url.js +51 -0
  43. package/dist/commands/android/open-url.js.map +1 -0
  44. package/dist/commands/android/press-key.d.ts +19 -0
  45. package/dist/commands/android/press-key.d.ts.map +1 -0
  46. package/dist/commands/android/press-key.js +52 -0
  47. package/dist/commands/android/press-key.js.map +1 -0
  48. package/dist/commands/android/record.d.ts +22 -0
  49. package/dist/commands/android/record.d.ts.map +1 -0
  50. package/dist/commands/android/record.js +100 -0
  51. package/dist/commands/android/record.js.map +1 -0
  52. package/dist/commands/android/screenshot.d.ts +18 -0
  53. package/dist/commands/android/screenshot.d.ts.map +1 -0
  54. package/dist/commands/android/screenshot.js +66 -0
  55. package/dist/commands/android/screenshot.js.map +1 -0
  56. package/dist/commands/android/scroll.d.ts +32 -0
  57. package/dist/commands/android/scroll.d.ts.map +1 -0
  58. package/dist/commands/android/scroll.js +72 -0
  59. package/dist/commands/android/scroll.js.map +1 -0
  60. package/dist/commands/android/tap-element.d.ts +27 -0
  61. package/dist/commands/android/tap-element.d.ts.map +1 -0
  62. package/dist/commands/android/tap-element.js +60 -0
  63. package/dist/commands/android/tap-element.js.map +1 -0
  64. package/dist/commands/android/tap.d.ts +25 -0
  65. package/dist/commands/android/tap.d.ts.map +1 -0
  66. package/dist/commands/android/tap.js +55 -0
  67. package/dist/commands/android/tap.js.map +1 -0
  68. package/dist/commands/android/type.d.ts +31 -0
  69. package/dist/commands/android/type.d.ts.map +1 -0
  70. package/dist/commands/android/type.js +53 -0
  71. package/dist/commands/android/type.js.map +1 -0
  72. package/dist/commands/asset/delete.d.ts +17 -0
  73. package/dist/commands/asset/delete.d.ts.map +1 -0
  74. package/dist/commands/asset/delete.js +23 -0
  75. package/dist/commands/asset/delete.js.map +1 -0
  76. package/dist/commands/asset/list.d.ts +22 -0
  77. package/dist/commands/asset/list.d.ts.map +1 -0
  78. package/dist/commands/asset/list.js +97 -0
  79. package/dist/commands/asset/list.js.map +1 -0
  80. package/dist/commands/asset/pull.d.ts +19 -0
  81. package/dist/commands/asset/pull.d.ts.map +1 -0
  82. package/dist/commands/asset/pull.js +84 -0
  83. package/dist/commands/asset/pull.js.map +1 -0
  84. package/dist/commands/asset/push.d.ts +18 -0
  85. package/dist/commands/asset/push.d.ts.map +1 -0
  86. package/dist/commands/asset/push.js +43 -0
  87. package/dist/commands/asset/push.js.map +1 -0
  88. package/dist/commands/ios/app-log.d.ts +20 -0
  89. package/dist/commands/ios/app-log.d.ts.map +1 -0
  90. package/dist/commands/ios/app-log.js +86 -0
  91. package/dist/commands/ios/app-log.js.map +1 -0
  92. package/dist/commands/ios/cp.d.ts +19 -0
  93. package/dist/commands/ios/cp.d.ts.map +1 -0
  94. package/dist/commands/ios/cp.js +64 -0
  95. package/dist/commands/ios/cp.js.map +1 -0
  96. package/dist/commands/ios/create.d.ts +25 -0
  97. package/dist/commands/ios/create.d.ts.map +1 -0
  98. package/dist/commands/ios/create.js +165 -0
  99. package/dist/commands/ios/create.js.map +1 -0
  100. package/dist/commands/ios/delete.d.ts +17 -0
  101. package/dist/commands/ios/delete.d.ts.map +1 -0
  102. package/dist/commands/ios/delete.js +44 -0
  103. package/dist/commands/ios/delete.js.map +1 -0
  104. package/dist/commands/ios/element-tree.d.ts +16 -0
  105. package/dist/commands/ios/element-tree.d.ts.map +1 -0
  106. package/dist/commands/ios/element-tree.js +57 -0
  107. package/dist/commands/ios/element-tree.js.map +1 -0
  108. package/dist/commands/ios/get.d.ts +17 -0
  109. package/dist/commands/ios/get.d.ts.map +1 -0
  110. package/dist/commands/ios/get.js +44 -0
  111. package/dist/commands/ios/get.js.map +1 -0
  112. package/dist/commands/ios/info.d.ts +16 -0
  113. package/dist/commands/ios/info.d.ts.map +1 -0
  114. package/dist/commands/ios/info.js +55 -0
  115. package/dist/commands/ios/info.js.map +1 -0
  116. package/dist/commands/ios/install-app.d.ts +20 -0
  117. package/dist/commands/ios/install-app.d.ts.map +1 -0
  118. package/dist/commands/ios/install-app.js +97 -0
  119. package/dist/commands/ios/install-app.js.map +1 -0
  120. package/dist/commands/ios/launch-app.d.ts +23 -0
  121. package/dist/commands/ios/launch-app.d.ts.map +1 -0
  122. package/dist/commands/ios/launch-app.js +74 -0
  123. package/dist/commands/ios/launch-app.js.map +1 -0
  124. package/dist/commands/ios/list-apps.d.ts +16 -0
  125. package/dist/commands/ios/list-apps.d.ts.map +1 -0
  126. package/dist/commands/ios/list-apps.js +51 -0
  127. package/dist/commands/ios/list-apps.js.map +1 -0
  128. package/dist/commands/ios/list.d.ts +19 -0
  129. package/dist/commands/ios/list.d.ts.map +1 -0
  130. package/dist/commands/ios/list.js +61 -0
  131. package/dist/commands/ios/list.js.map +1 -0
  132. package/dist/commands/ios/lsof.d.ts +16 -0
  133. package/dist/commands/ios/lsof.d.ts.map +1 -0
  134. package/dist/commands/ios/lsof.js +47 -0
  135. package/dist/commands/ios/lsof.js.map +1 -0
  136. package/dist/commands/ios/open-url.d.ts +18 -0
  137. package/dist/commands/ios/open-url.d.ts.map +1 -0
  138. package/dist/commands/ios/open-url.js +51 -0
  139. package/dist/commands/ios/open-url.js.map +1 -0
  140. package/dist/commands/ios/perform.d.ts +18 -0
  141. package/dist/commands/ios/perform.d.ts.map +1 -0
  142. package/dist/commands/ios/perform.js +228 -0
  143. package/dist/commands/ios/perform.js.map +1 -0
  144. package/dist/commands/ios/press-key.d.ts +19 -0
  145. package/dist/commands/ios/press-key.d.ts.map +1 -0
  146. package/dist/commands/ios/press-key.js +52 -0
  147. package/dist/commands/ios/press-key.js.map +1 -0
  148. package/dist/commands/ios/record.d.ts +22 -0
  149. package/dist/commands/ios/record.d.ts.map +1 -0
  150. package/dist/commands/ios/record.js +101 -0
  151. package/dist/commands/ios/record.js.map +1 -0
  152. package/dist/commands/ios/reverse.d.ts +19 -0
  153. package/dist/commands/ios/reverse.d.ts.map +1 -0
  154. package/dist/commands/ios/reverse.js +97 -0
  155. package/dist/commands/ios/reverse.js.map +1 -0
  156. package/dist/commands/ios/screenshot.d.ts +18 -0
  157. package/dist/commands/ios/screenshot.d.ts.map +1 -0
  158. package/dist/commands/ios/screenshot.js +65 -0
  159. package/dist/commands/ios/screenshot.js.map +1 -0
  160. package/dist/commands/ios/scroll.d.ts +19 -0
  161. package/dist/commands/ios/scroll.d.ts.map +1 -0
  162. package/dist/commands/ios/scroll.js +57 -0
  163. package/dist/commands/ios/scroll.js.map +1 -0
  164. package/dist/commands/ios/simctl.d.ts +17 -0
  165. package/dist/commands/ios/simctl.d.ts.map +1 -0
  166. package/dist/commands/ios/simctl.js +72 -0
  167. package/dist/commands/ios/simctl.js.map +1 -0
  168. package/dist/commands/ios/sync.d.ts +23 -0
  169. package/dist/commands/ios/sync.d.ts.map +1 -0
  170. package/dist/commands/ios/sync.js +90 -0
  171. package/dist/commands/ios/sync.js.map +1 -0
  172. package/dist/commands/ios/syslog.d.ts +16 -0
  173. package/dist/commands/ios/syslog.d.ts.map +1 -0
  174. package/dist/commands/ios/syslog.js +62 -0
  175. package/dist/commands/ios/syslog.js.map +1 -0
  176. package/dist/commands/ios/tap-element.d.ts +23 -0
  177. package/dist/commands/ios/tap-element.d.ts.map +1 -0
  178. package/dist/commands/ios/tap-element.js +92 -0
  179. package/dist/commands/ios/tap-element.js.map +1 -0
  180. package/dist/commands/ios/tap.d.ts +25 -0
  181. package/dist/commands/ios/tap.d.ts.map +1 -0
  182. package/dist/commands/ios/tap.js +55 -0
  183. package/dist/commands/ios/tap.js.map +1 -0
  184. package/dist/commands/ios/terminate-app.d.ts +18 -0
  185. package/dist/commands/ios/terminate-app.d.ts.map +1 -0
  186. package/dist/commands/ios/terminate-app.js +49 -0
  187. package/dist/commands/ios/terminate-app.js.map +1 -0
  188. package/dist/commands/ios/toggle-keyboard.d.ts +15 -0
  189. package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -0
  190. package/dist/commands/ios/toggle-keyboard.js +45 -0
  191. package/dist/commands/ios/toggle-keyboard.js.map +1 -0
  192. package/dist/commands/ios/type.d.ts +19 -0
  193. package/dist/commands/ios/type.d.ts.map +1 -0
  194. package/dist/commands/ios/type.js +53 -0
  195. package/dist/commands/ios/type.js.map +1 -0
  196. package/dist/commands/ios/xcodebuild.d.ts +17 -0
  197. package/dist/commands/ios/xcodebuild.d.ts.map +1 -0
  198. package/dist/commands/ios/xcodebuild.js +59 -0
  199. package/dist/commands/ios/xcodebuild.js.map +1 -0
  200. package/dist/commands/ios/xcrun.d.ts +17 -0
  201. package/dist/commands/ios/xcrun.d.ts.map +1 -0
  202. package/dist/commands/ios/xcrun.js +60 -0
  203. package/dist/commands/ios/xcrun.js.map +1 -0
  204. package/dist/commands/login.d.ts +14 -0
  205. package/dist/commands/login.d.ts.map +1 -0
  206. package/dist/commands/login.js +22 -0
  207. package/dist/commands/login.js.map +1 -0
  208. package/dist/commands/logout.d.ts +14 -0
  209. package/dist/commands/logout.d.ts.map +1 -0
  210. package/dist/commands/logout.js +18 -0
  211. package/dist/commands/logout.js.map +1 -0
  212. package/dist/commands/session/start.d.ts +16 -0
  213. package/dist/commands/session/start.d.ts.map +1 -0
  214. package/dist/commands/session/start.js +129 -0
  215. package/dist/commands/session/start.js.map +1 -0
  216. package/dist/commands/session/status.d.ts +14 -0
  217. package/dist/commands/session/status.d.ts.map +1 -0
  218. package/dist/commands/session/status.js +65 -0
  219. package/dist/commands/session/status.js.map +1 -0
  220. package/dist/commands/session/stop.d.ts +18 -0
  221. package/dist/commands/session/stop.d.ts.map +1 -0
  222. package/dist/commands/session/stop.js +76 -0
  223. package/dist/commands/session/stop.js.map +1 -0
  224. package/dist/commands/skills/install.d.ts +18 -0
  225. package/dist/commands/skills/install.d.ts.map +1 -0
  226. package/dist/commands/skills/install.js +473 -0
  227. package/dist/commands/skills/install.js.map +1 -0
  228. package/dist/commands/xcode/attach-simulator.d.ts +18 -0
  229. package/dist/commands/xcode/attach-simulator.d.ts.map +1 -0
  230. package/dist/commands/xcode/attach-simulator.js +55 -0
  231. package/dist/commands/xcode/attach-simulator.js.map +1 -0
  232. package/dist/commands/xcode/build.d.ts +35 -0
  233. package/dist/commands/xcode/build.d.ts.map +1 -0
  234. package/dist/commands/xcode/build.js +192 -0
  235. package/dist/commands/xcode/build.js.map +1 -0
  236. package/dist/commands/xcode/create.d.ts +22 -0
  237. package/dist/commands/xcode/create.d.ts.map +1 -0
  238. package/dist/commands/xcode/create.js +189 -0
  239. package/dist/commands/xcode/create.js.map +1 -0
  240. package/dist/commands/xcode/delete.d.ts +17 -0
  241. package/dist/commands/xcode/delete.d.ts.map +1 -0
  242. package/dist/commands/xcode/delete.js +44 -0
  243. package/dist/commands/xcode/delete.js.map +1 -0
  244. package/dist/commands/xcode/get.d.ts +17 -0
  245. package/dist/commands/xcode/get.d.ts.map +1 -0
  246. package/dist/commands/xcode/get.js +59 -0
  247. package/dist/commands/xcode/get.js.map +1 -0
  248. package/dist/commands/xcode/list.d.ts +18 -0
  249. package/dist/commands/xcode/list.d.ts.map +1 -0
  250. package/dist/commands/xcode/list.js +58 -0
  251. package/dist/commands/xcode/list.js.map +1 -0
  252. package/dist/commands/xcode/sync.d.ts +24 -0
  253. package/dist/commands/xcode/sync.d.ts.map +1 -0
  254. package/dist/commands/xcode/sync.js +93 -0
  255. package/dist/commands/xcode/sync.js.map +1 -0
  256. package/dist/index.d.ts +2 -0
  257. package/dist/index.d.ts.map +1 -0
  258. package/dist/index.js +6 -0
  259. package/dist/index.js.map +1 -0
  260. package/dist/lib/additional-files.d.ts +6 -0
  261. package/dist/lib/additional-files.d.ts.map +1 -0
  262. package/dist/lib/additional-files.js +19 -0
  263. package/dist/lib/additional-files.js.map +1 -0
  264. package/dist/lib/android-selector.d.ts +50 -0
  265. package/dist/lib/android-selector.d.ts.map +1 -0
  266. package/dist/lib/android-selector.js +103 -0
  267. package/dist/lib/android-selector.js.map +1 -0
  268. package/dist/lib/auth.d.ts +2 -0
  269. package/dist/lib/auth.d.ts.map +1 -0
  270. package/dist/lib/auth.js +60 -0
  271. package/dist/lib/auth.js.map +1 -0
  272. package/dist/lib/config.d.ts +65 -0
  273. package/dist/lib/config.d.ts.map +1 -0
  274. package/dist/lib/config.js +290 -0
  275. package/dist/lib/config.js.map +1 -0
  276. package/dist/lib/daemon-client.d.ts +9 -0
  277. package/dist/lib/daemon-client.d.ts.map +1 -0
  278. package/dist/lib/daemon-client.js +81 -0
  279. package/dist/lib/daemon-client.js.map +1 -0
  280. package/dist/lib/daemon.d.ts +41 -0
  281. package/dist/lib/daemon.d.ts.map +1 -0
  282. package/dist/lib/daemon.js +511 -0
  283. package/dist/lib/daemon.js.map +1 -0
  284. package/dist/lib/detox-version.d.ts +12 -0
  285. package/dist/lib/detox-version.d.ts.map +1 -0
  286. package/dist/lib/detox-version.js +30 -0
  287. package/dist/lib/detox-version.js.map +1 -0
  288. package/dist/lib/duration.d.ts +2 -0
  289. package/dist/lib/duration.d.ts.map +1 -0
  290. package/dist/lib/duration.js +37 -0
  291. package/dist/lib/duration.js.map +1 -0
  292. package/dist/lib/formatting.d.ts +3 -0
  293. package/dist/lib/formatting.d.ts.map +1 -0
  294. package/dist/lib/formatting.js +31 -0
  295. package/dist/lib/formatting.js.map +1 -0
  296. package/dist/lib/ignore-patterns.d.ts +2 -0
  297. package/dist/lib/ignore-patterns.d.ts.map +1 -0
  298. package/dist/lib/ignore-patterns.js +18 -0
  299. package/dist/lib/ignore-patterns.js.map +1 -0
  300. package/dist/lib/instance-client-factory.d.ts +29 -0
  301. package/dist/lib/instance-client-factory.d.ts.map +1 -0
  302. package/dist/lib/instance-client-factory.js +87 -0
  303. package/dist/lib/instance-client-factory.js.map +1 -0
  304. package/dist/lib/launch-app-runtime.d.ts +23 -0
  305. package/dist/lib/launch-app-runtime.d.ts.map +1 -0
  306. package/dist/lib/launch-app-runtime.js +58 -0
  307. package/dist/lib/launch-app-runtime.js.map +1 -0
  308. package/dist/lib/remote-skills.d.ts +47 -0
  309. package/dist/lib/remote-skills.d.ts.map +1 -0
  310. package/dist/lib/remote-skills.js +241 -0
  311. package/dist/lib/remote-skills.js.map +1 -0
  312. package/dist/lib/reverse-port-mapping.d.ts +6 -0
  313. package/dist/lib/reverse-port-mapping.d.ts.map +1 -0
  314. package/dist/lib/reverse-port-mapping.js +24 -0
  315. package/dist/lib/reverse-port-mapping.js.map +1 -0
  316. package/dist/lib/skills.d.ts +17 -0
  317. package/dist/lib/skills.d.ts.map +1 -0
  318. package/dist/lib/skills.js +153 -0
  319. package/dist/lib/skills.js.map +1 -0
  320. package/package.json +69 -13
  321. package/.npmignore +0 -2
  322. package/build/lib/index.js +0 -1498
  323. package/build/lib/index.map +0 -1
  324. package/build/lib/utils/courier.js +0 -98
  325. package/build/lib/utils/courier.map +0 -1
  326. package/build/lib/utils/polyfill.js +0 -53
  327. package/build/lib/utils/polyfill.map +0 -1
  328. package/build.sh +0 -9
  329. package/index.js +0 -2
  330. package/lib/index.js +0 -284
  331. package/lib/utils/courier.js +0 -108
  332. package/lib/utils/polyfill.js +0 -42
  333. package/native.js +0 -2
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const api_1 = require("@limrun/api");
4
+ const core_1 = require("@oclif/core");
5
+ const base_command_1 = require("../../base-command");
6
+ const config_1 = require("../../lib/config");
7
+ const daemon_1 = require("../../lib/daemon");
8
+ class IosDelete extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { args, flags } = await this.parse(IosDelete);
11
+ this.setParsedFlags(flags);
12
+ await this.withAuth(async () => {
13
+ const resolvedInstance = this.resolveIosInstance(args.id);
14
+ const id = resolvedInstance.id;
15
+ try {
16
+ await this.client.iosInstances.delete(id);
17
+ }
18
+ catch (err) {
19
+ if (!(err instanceof api_1.NotFoundError)) {
20
+ throw err;
21
+ }
22
+ }
23
+ (0, daemon_1.stopDaemon)(id);
24
+ (0, config_1.clearLastInstanceId)(id);
25
+ this.log(`Deleted iOS instance: ${id}`);
26
+ });
27
+ }
28
+ }
29
+ IosDelete.summary = 'Delete an iOS instance';
30
+ IosDelete.description = 'Delete an existing iOS instance by ID and remove any cached local metadata for it.';
31
+ IosDelete.examples = [
32
+ '<%= config.bin %> ios delete',
33
+ '<%= config.bin %> ios delete <ID>',
34
+ '<%= config.bin %> ios delete ios_abc123',
35
+ ];
36
+ IosDelete.args = {
37
+ id: core_1.Args.string({
38
+ description: 'iOS instance ID to delete. Defaults to the last created iOS instance.',
39
+ required: false,
40
+ }),
41
+ };
42
+ IosDelete.flags = { ...base_command_1.BaseCommand.baseFlags };
43
+ exports.default = IosDelete;
44
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/ios/delete.ts"],"names":[],"mappings":";;AAAA,qCAA4C;AAC5C,sCAAmC;AACnC,qDAAiD;AACjD,6CAAuD;AACvD,6CAA8C;AAE9C,MAAqB,SAAU,SAAQ,0BAAW;IAkBhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,YAAY,mBAAa,CAAC,EAAE,CAAC;oBACpC,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAA,mBAAU,EAAC,EAAE,CAAC,CAAC;YACf,IAAA,4BAAmB,EAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;;AApCM,iBAAO,GAAG,wBAAwB,CAAC;AACnC,qBAAW,GAAG,oFAAoF,CAAC;AACnG,kBAAQ,GAAG;IAChB,8BAA8B;IAC9B,mCAAmC;IACnC,yCAAyC;CAC1C,CAAC;AAEK,cAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,eAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBAhBzB,SAAS"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosElementTree extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {};
7
+ static flags: {
8
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=element-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-tree.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/element-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAAyD;IACvE,MAAM,CAAC,WAAW,SACwJ;IAC1K,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkC3B"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const instance_client_factory_1 = require("../../lib/instance-client-factory");
6
+ class IosElementTree extends base_command_1.BaseCommand {
7
+ async run() {
8
+ const { flags } = await this.parse(IosElementTree);
9
+ this.setParsedFlags(flags);
10
+ await this.withAuth(async () => {
11
+ const resolvedInstance = this.resolveIosInstance(flags.id);
12
+ const id = resolvedInstance.id;
13
+ if (false) {
14
+ this.error('ios element-tree only supports iOS instances');
15
+ }
16
+ if ((0, instance_client_factory_1.hasActiveSession)(id)) {
17
+ const tree = await (0, instance_client_factory_1.sendSessionCommand)(id, 'element-tree');
18
+ if (flags.json) {
19
+ this.outputJson(tree);
20
+ }
21
+ else {
22
+ this.log(typeof tree === 'string' ? tree : JSON.stringify(tree, null, 2));
23
+ }
24
+ return;
25
+ }
26
+ const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
27
+ try {
28
+ const tree = await client.elementTree();
29
+ if (flags.json) {
30
+ this.outputJson(tree);
31
+ }
32
+ else {
33
+ this.log(typeof tree === 'string' ? tree : JSON.stringify(tree, null, 2));
34
+ }
35
+ }
36
+ finally {
37
+ disconnect();
38
+ }
39
+ });
40
+ }
41
+ }
42
+ IosElementTree.summary = 'Get the UI element tree from a running iOS instance';
43
+ IosElementTree.description = 'Inspect the current accessibility hierarchy of a running iOS instance. Use `--json` for structured output that agents can search or feed into later automation steps.';
44
+ IosElementTree.examples = [
45
+ '<%= config.bin %> ios element-tree',
46
+ '<%= config.bin %> ios element-tree --id <instance-ID>',
47
+ '<%= config.bin %> ios element-tree --json',
48
+ ];
49
+ IosElementTree.args = {};
50
+ IosElementTree.flags = {
51
+ ...base_command_1.BaseCommand.baseFlags,
52
+ id: core_1.Flags.string({
53
+ description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
54
+ }),
55
+ };
56
+ exports.default = IosElementTree;
57
+ //# sourceMappingURL=element-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-tree.js","sourceRoot":"","sources":["../../../src/commands/ios/element-tree.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAE3C,MAAqB,cAAe,SAAQ,0BAAW;IAmBrD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAnDM,sBAAO,GAAG,qDAAqD,CAAC;AAChE,0BAAW,GAChB,uKAAuK,CAAC;AACnK,uBAAQ,GAAG;IAChB,oCAAoC;IACpC,uDAAuD;IACvD,2CAA2C;CAC5C,CAAC;AAEK,mBAAI,GAAG,EAAE,CAAC;AAEV,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,cAAc"}
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosGet extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SAC+H;IACjJ,MAAM,CAAC,QAAQ,WAA0E;IAEzF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ class IosGet extends base_command_1.BaseCommand {
6
+ async run() {
7
+ const { args, flags } = await this.parse(IosGet);
8
+ this.setParsedFlags(flags);
9
+ await this.withAuth(async () => {
10
+ const resolvedInstance = this.resolveIosInstance(args.id);
11
+ const instance = await this.client.iosInstances.get(resolvedInstance.id);
12
+ if (flags.json) {
13
+ this.outputJson(instance);
14
+ }
15
+ else {
16
+ const signedStreamUrl = this.signedStreamUrl(instance.status);
17
+ this.output(`ID: ${instance.metadata.id}`);
18
+ this.output(`Name: ${instance.metadata.displayName || ''}`);
19
+ this.output(`Region: ${instance.spec.region}`);
20
+ this.output(`State: ${instance.status.state}`);
21
+ this.output(`Console URL: ${this.consoleStreamUrl(instance.metadata.id)}`);
22
+ if (instance.status.apiUrl)
23
+ this.output(`API URL: ${instance.status.apiUrl}`);
24
+ if (instance.status.sandbox?.xcode?.url) {
25
+ this.output(`Xcode Sandbox URL: ${instance.status.sandbox.xcode.url}`);
26
+ }
27
+ if (signedStreamUrl)
28
+ this.output(`Signed Stream URL: ${signedStreamUrl}`);
29
+ }
30
+ });
31
+ }
32
+ }
33
+ IosGet.summary = 'Get details for a specific iOS instance';
34
+ IosGet.description = 'Fetch detailed metadata for a single iOS instance, including region, state, and display name. Use `--json` to inspect the full API response.';
35
+ IosGet.examples = ['<%= config.bin %> ios get', '<%= config.bin %> ios get <ID> --json'];
36
+ IosGet.args = {
37
+ id: core_1.Args.string({
38
+ description: 'iOS instance ID to fetch. Defaults to the last created iOS instance.',
39
+ required: false,
40
+ }),
41
+ };
42
+ IosGet.flags = { ...base_command_1.BaseCommand.baseFlags };
43
+ exports.default = IosGet;
44
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/ios/get.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,MAAO,SAAQ,0BAAW;IAe7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3E,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9E,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,sBAAsB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,eAAe;oBAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,eAAe,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AArCM,cAAO,GAAG,yCAAyC,CAAC;AACpD,kBAAW,GAChB,8IAA8I,CAAC;AAC1I,eAAQ,GAAG,CAAC,2BAA2B,EAAE,uCAAuC,CAAC,CAAC;AAElF,WAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,sEAAsE;QACnF,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,YAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBAbzB,MAAM"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosInfo extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {};
7
+ static flags: {
8
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAcjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,OAAO,SAAwD;IACtE,MAAM,CAAC,WAAW,SAC0L;IAC5M,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmC3B"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const instance_client_factory_1 = require("../../lib/instance-client-factory");
6
+ class IosInfo extends base_command_1.BaseCommand {
7
+ async run() {
8
+ const { flags } = await this.parse(IosInfo);
9
+ this.setParsedFlags(flags);
10
+ await this.withAuth(async () => {
11
+ const resolvedInstance = this.resolveIosInstance(flags.id);
12
+ const id = resolvedInstance.id;
13
+ let info;
14
+ if ((0, instance_client_factory_1.hasActiveSession)(id)) {
15
+ info = (await (0, instance_client_factory_1.sendSessionCommand)(id, 'device-info'));
16
+ }
17
+ else {
18
+ const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
19
+ try {
20
+ info = client.deviceInfo;
21
+ }
22
+ finally {
23
+ disconnect();
24
+ }
25
+ }
26
+ if (flags.json) {
27
+ this.outputJson(info);
28
+ }
29
+ else {
30
+ this.outputTable(['Field', 'Value'], [
31
+ ['UDID', info.udid],
32
+ ['Model', info.model],
33
+ ['Screen Width', String(info.screenWidth)],
34
+ ['Screen Height', String(info.screenHeight)],
35
+ ]);
36
+ }
37
+ });
38
+ }
39
+ }
40
+ IosInfo.summary = 'Get device information from a running iOS instance';
41
+ IosInfo.description = 'Show basic simulator metadata for a running iOS instance, including UDID, model, and screen dimensions. This is useful when building coordinate-based automation or debugging device-specific behavior.';
42
+ IosInfo.examples = [
43
+ '<%= config.bin %> ios info',
44
+ '<%= config.bin %> ios info --id <instance-ID>',
45
+ '<%= config.bin %> ios info --json',
46
+ ];
47
+ IosInfo.args = {};
48
+ IosInfo.flags = {
49
+ ...base_command_1.BaseCommand.baseFlags,
50
+ id: core_1.Flags.string({
51
+ description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
52
+ }),
53
+ };
54
+ exports.default = IosInfo;
55
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/ios/info.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAS3C,MAAqB,OAAQ,SAAQ,0BAAW;IAmB9C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAE/B,IAAI,IAAgB,CAAC;YACrB,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,aAAa,CAAC,CAAe,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,GAAI,MAAgD,CAAC,UAAU,CAAC;gBACtE,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CACd,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB;oBACE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;oBACnB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;oBACrB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC7C,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AApDM,eAAO,GAAG,oDAAoD,CAAC;AAC/D,mBAAW,GAChB,yMAAyM,CAAC;AACrM,gBAAQ,GAAG;IAChB,4BAA4B;IAC5B,+CAA+C;IAC/C,mCAAmC;CACpC,CAAC;AAEK,YAAI,GAAG,EAAE,CAAC;AAEV,aAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,OAAO"}
@@ -0,0 +1,20 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosInstallApp extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ path_or_url: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ md5: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ 'launch-mode': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=install-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/install-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,OAAO,SAA8C;IAC5D,MAAM,CAAC,WAAW,SACuJ;IAEzK,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAYV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0D3B"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const core_1 = require("@oclif/core");
9
+ const base_command_1 = require("../../base-command");
10
+ const instance_client_factory_1 = require("../../lib/instance-client-factory");
11
+ class IosInstallApp extends base_command_1.BaseCommand {
12
+ async run() {
13
+ const { args, flags } = await this.parse(IosInstallApp);
14
+ this.setParsedFlags(flags);
15
+ await this.withAuth(async () => {
16
+ const resolvedInstance = this.resolveIosInstance(flags.id);
17
+ const id = resolvedInstance.id;
18
+ if (false) {
19
+ this.error('ios install-app only supports iOS instances');
20
+ }
21
+ let downloadUrl;
22
+ if (args.path_or_url.startsWith('http://') || args.path_or_url.startsWith('https://')) {
23
+ downloadUrl = args.path_or_url;
24
+ }
25
+ else {
26
+ const filePath = path_1.default.resolve(args.path_or_url);
27
+ if (!fs_1.default.existsSync(filePath)) {
28
+ this.error(`File not found: ${filePath}`);
29
+ }
30
+ const name = path_1.default.basename(filePath);
31
+ this.info(`Uploading ${name}...`);
32
+ const asset = await this.client.assets.getOrUpload({ path: filePath, name });
33
+ downloadUrl = asset.signedDownloadUrl;
34
+ }
35
+ let installOptions;
36
+ if (flags.md5 || flags['launch-mode']) {
37
+ installOptions = {
38
+ md5: flags.md5,
39
+ launchMode: flags['launch-mode'],
40
+ };
41
+ }
42
+ if ((0, instance_client_factory_1.hasActiveSession)(id)) {
43
+ const result = await (0, instance_client_factory_1.sendSessionCommand)(id, 'install-app', [downloadUrl, installOptions]);
44
+ if (flags.json) {
45
+ this.outputJson(result);
46
+ }
47
+ else {
48
+ this.log('App installed');
49
+ }
50
+ return;
51
+ }
52
+ const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
53
+ try {
54
+ const result = await client.installApp(downloadUrl, installOptions);
55
+ if (flags.json) {
56
+ this.outputJson(result);
57
+ }
58
+ else {
59
+ this.log(`App installed${result?.bundleId ? `: ${result.bundleId}` : ''}`);
60
+ }
61
+ }
62
+ finally {
63
+ disconnect();
64
+ }
65
+ });
66
+ }
67
+ }
68
+ IosInstallApp.summary = 'Install an app on a running iOS instance';
69
+ IosInstallApp.description = 'Install an app from a local file path or remote URL onto a running iOS instance. Local files are uploaded to Limrun asset storage automatically before installation.';
70
+ IosInstallApp.examples = [
71
+ '<%= config.bin %> ios install-app ./MyApp.ipa',
72
+ '<%= config.bin %> ios install-app https://example.com/MyApp.ipa --json',
73
+ '<%= config.bin %> ios install-app ./MyApp.ipa --id <instance-ID>',
74
+ '<%= config.bin %> ios install-app ./MyApp.ipa --launch-mode RelaunchIfRunning',
75
+ '<%= config.bin %> ios install-app https://example.com/MyApp.ipa --md5 <hex-digest>',
76
+ ];
77
+ IosInstallApp.args = {
78
+ path_or_url: core_1.Args.string({
79
+ description: 'Local app file path or remote URL to an installable iOS package such as .ipa',
80
+ required: true,
81
+ }),
82
+ };
83
+ IosInstallApp.flags = {
84
+ ...base_command_1.BaseCommand.baseFlags,
85
+ id: core_1.Flags.string({
86
+ description: 'iOS instance ID to install the app on. Defaults to the last created iOS instance.',
87
+ }),
88
+ md5: core_1.Flags.string({
89
+ description: 'Optional MD5 digest to enable server-side install caching for remote URLs.',
90
+ }),
91
+ 'launch-mode': core_1.Flags.string({
92
+ description: 'Launch behavior after installation. Omit to install without launching.',
93
+ options: ['ForegroundIfRunning', 'RelaunchIfRunning'],
94
+ }),
95
+ };
96
+ exports.default = IosInstallApp;
97
+ //# sourceMappingURL=install-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/commands/ios/install-app.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,sCAA0C;AAC1C,qDAAiD;AACjD,+EAI2C;AAE3C,MAAqB,aAAc,SAAQ,0BAAW;IAkCpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,WAAmB,CAAC;YACxB,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtF,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7E,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACxC,CAAC;YAED,IAAI,cAES,CAAC;YACd,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtC,cAAc,GAAG;oBACf,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,UAAU,EAAE,KAAK,CAAC,aAAa,CAA4D;iBAC5F,CAAC;YACJ,CAAC;YAED,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;gBAC1F,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBACpE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA1FM,qBAAO,GAAG,0CAA0C,CAAC;AACrD,yBAAW,GAChB,sKAAsK,CAAC;AAElK,sBAAQ,GAAG;IAChB,+CAA+C;IAC/C,wEAAwE;IACxE,kEAAkE;IAClE,+EAA+E;IAC/E,oFAAoF;CACrF,CAAC;AAEK,kBAAI,GAAG;IACZ,WAAW,EAAE,WAAI,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE,8EAA8E;QAC3F,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;AAEK,mBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,mFAAmF;KACjG,CAAC;IACF,GAAG,EAAE,YAAK,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,4EAA4E;KAC1F,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,wEAAwE;QACrF,OAAO,EAAE,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;KACtD,CAAC;CACH,CAAC;kBAhCiB,aAAa"}
@@ -0,0 +1,23 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosLaunchApp extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ bundleId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ mode: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ runtime: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ 'detox-server-url': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ 'detox-session-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ 'detox-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
19
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
+ };
21
+ run(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=launch-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-app.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/launch-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0BjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SACiP;IACnQ,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAwBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3B"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const instance_client_factory_1 = require("../../lib/instance-client-factory");
6
+ const launch_app_runtime_1 = require("../../lib/launch-app-runtime");
7
+ async function launchAppWithArgument(client, bundleId, launchArgument) {
8
+ if (typeof launchArgument === 'string') {
9
+ await client.launchApp(bundleId, launchArgument);
10
+ return;
11
+ }
12
+ await client.launchApp(bundleId, launchArgument);
13
+ }
14
+ class IosLaunchApp extends base_command_1.BaseCommand {
15
+ async run() {
16
+ const { args, flags } = await this.parse(IosLaunchApp);
17
+ this.setParsedFlags(flags);
18
+ await this.withAuth(async () => {
19
+ const resolvedInstance = this.resolveIosInstance(flags.id);
20
+ const id = resolvedInstance.id;
21
+ const launchArgument = (0, launch_app_runtime_1.buildLaunchAppArgument)(flags, {
22
+ modeExplicitlyProvided: flags.mode !== undefined,
23
+ });
24
+ if ((0, instance_client_factory_1.hasActiveSession)(id)) {
25
+ await (0, instance_client_factory_1.sendSessionCommand)(id, 'launch-app', [args.bundleId, launchArgument]);
26
+ }
27
+ else {
28
+ const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
29
+ try {
30
+ await launchAppWithArgument(client, args.bundleId, launchArgument);
31
+ }
32
+ finally {
33
+ disconnect();
34
+ }
35
+ }
36
+ this.log(`Launched ${args.bundleId}`);
37
+ });
38
+ }
39
+ }
40
+ IosLaunchApp.summary = 'Launch an app on a running iOS instance';
41
+ IosLaunchApp.description = 'Launch an installed app on a running iOS instance by bundle identifier. Choose `ForegroundIfRunning` to bring an already-running app to the front or `RelaunchIfRunning` to restart it. Use `--runtime detox` to launch with the Limrun-managed Detox runtime.';
42
+ IosLaunchApp.examples = [
43
+ '<%= config.bin %> ios launch-app com.example.app',
44
+ '<%= config.bin %> ios launch-app com.example.app --mode RelaunchIfRunning --id <instance-ID>',
45
+ '<%= config.bin %> ios launch-app host.exp.Exponent --runtime detox --detox-server-url ws://10.244.0.10:57091 --detox-session-id limrun-detox --detox-version 20.51.1 --id <instance-ID>',
46
+ ];
47
+ IosLaunchApp.args = {
48
+ bundleId: core_1.Args.string({ description: 'App bundle identifier', required: true }),
49
+ };
50
+ IosLaunchApp.flags = {
51
+ ...base_command_1.BaseCommand.baseFlags,
52
+ id: core_1.Flags.string({
53
+ description: 'iOS instance ID to target. Defaults to the last created iOS instance.',
54
+ }),
55
+ mode: core_1.Flags.string({
56
+ description: 'Launch behavior to use when the app may already be running. Default: ForegroundIfRunning.',
57
+ options: ['ForegroundIfRunning', 'RelaunchIfRunning'],
58
+ }),
59
+ runtime: core_1.Flags.string({
60
+ description: 'Runtime integration to attach during launch',
61
+ options: ['detox'],
62
+ }),
63
+ 'detox-server-url': core_1.Flags.string({
64
+ description: 'Detox mediator URL reachable from the simulator, usually from `lim ios reverse`',
65
+ }),
66
+ 'detox-session-id': core_1.Flags.string({
67
+ description: 'Detox session ID shared by the app and tester',
68
+ }),
69
+ 'detox-version': core_1.Flags.string({
70
+ description: 'Exact Detox version for Limrun-managed native injection. Defaults to the detox package in the current working directory.',
71
+ }),
72
+ };
73
+ exports.default = IosLaunchApp;
74
+ //# sourceMappingURL=launch-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-app.js","sourceRoot":"","sources":["../../../src/commands/ios/launch-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosListApps extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {};
7
+ static flags: {
8
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=list-apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/list-apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAAmD;IACjE,MAAM,CAAC,WAAW,SAC2L;IAC7M,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4B3B"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const instance_client_factory_1 = require("../../lib/instance-client-factory");
6
+ class IosListApps extends base_command_1.BaseCommand {
7
+ async run() {
8
+ const { flags } = await this.parse(IosListApps);
9
+ this.setParsedFlags(flags);
10
+ await this.withAuth(async () => {
11
+ const resolvedInstance = this.resolveIosInstance(flags.id);
12
+ const id = resolvedInstance.id;
13
+ let apps;
14
+ if ((0, instance_client_factory_1.hasActiveSession)(id)) {
15
+ apps = (await (0, instance_client_factory_1.sendSessionCommand)(id, 'list-apps'));
16
+ }
17
+ else {
18
+ const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
19
+ try {
20
+ apps = await client.listApps();
21
+ }
22
+ finally {
23
+ disconnect();
24
+ }
25
+ }
26
+ if (flags.json) {
27
+ this.outputJson(apps);
28
+ }
29
+ else {
30
+ const rows = apps.map((a) => [a.bundleId, a.name, a.installType]);
31
+ this.outputTable(['Bundle ID', 'Name', 'Install Type'], rows);
32
+ }
33
+ });
34
+ }
35
+ }
36
+ IosListApps.summary = 'List installed apps on a running iOS instance';
37
+ IosListApps.description = 'List the apps currently installed on a running iOS instance, including bundle identifiers, display names, and install types. Use this before `launch-app` if you need to discover the correct bundle ID.';
38
+ IosListApps.examples = [
39
+ '<%= config.bin %> ios list-apps',
40
+ '<%= config.bin %> ios list-apps --id <instance-ID>',
41
+ '<%= config.bin %> ios list-apps --json',
42
+ ];
43
+ IosListApps.args = {};
44
+ IosListApps.flags = {
45
+ ...base_command_1.BaseCommand.baseFlags,
46
+ id: core_1.Flags.string({
47
+ description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
48
+ }),
49
+ };
50
+ exports.default = IosListApps;
51
+ //# sourceMappingURL=list-apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/commands/ios/list-apps.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAE3C,MAAqB,WAAY,SAAQ,0BAAW;IAmBlD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAW,CAAC;YAEhB,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,WAAW,CAAC,CAAU,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA7CM,mBAAO,GAAG,+CAA+C,CAAC;AAC1D,uBAAW,GAChB,0MAA0M,CAAC;AACtM,oBAAQ,GAAG;IAChB,iCAAiC;IACjC,oDAAoD;IACpD,wCAAwC;CACzC,CAAC;AAEK,gBAAI,GAAG,EAAE,CAAC;AAEV,iBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,WAAW"}
@@ -0,0 +1,19 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class IosList extends BaseCommand {
3
+ static summary: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {};
7
+ static flags: {
8
+ state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ 'label-selector': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=list.d.ts.map