lim 0.1.5 → 0.10.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 (349) hide show
  1. package/README.md +861 -0
  2. package/bin/dev.js +16 -0
  3. package/bin/run.js +63 -0
  4. package/dist/base-command.d.ts +55 -0
  5. package/dist/base-command.d.ts.map +1 -0
  6. package/dist/base-command.js +467 -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/go.d.ts +17 -0
  89. package/dist/commands/go.d.ts.map +1 -0
  90. package/dist/commands/go.js +201 -0
  91. package/dist/commands/go.js.map +1 -0
  92. package/dist/commands/ios/app-log.d.ts +20 -0
  93. package/dist/commands/ios/app-log.d.ts.map +1 -0
  94. package/dist/commands/ios/app-log.js +86 -0
  95. package/dist/commands/ios/app-log.js.map +1 -0
  96. package/dist/commands/ios/cp.d.ts +19 -0
  97. package/dist/commands/ios/cp.d.ts.map +1 -0
  98. package/dist/commands/ios/cp.js +64 -0
  99. package/dist/commands/ios/cp.js.map +1 -0
  100. package/dist/commands/ios/create.d.ts +25 -0
  101. package/dist/commands/ios/create.d.ts.map +1 -0
  102. package/dist/commands/ios/create.js +163 -0
  103. package/dist/commands/ios/create.js.map +1 -0
  104. package/dist/commands/ios/delete.d.ts +17 -0
  105. package/dist/commands/ios/delete.d.ts.map +1 -0
  106. package/dist/commands/ios/delete.js +44 -0
  107. package/dist/commands/ios/delete.js.map +1 -0
  108. package/dist/commands/ios/element-tree.d.ts +16 -0
  109. package/dist/commands/ios/element-tree.d.ts.map +1 -0
  110. package/dist/commands/ios/element-tree.js +57 -0
  111. package/dist/commands/ios/element-tree.js.map +1 -0
  112. package/dist/commands/ios/get.d.ts +17 -0
  113. package/dist/commands/ios/get.d.ts.map +1 -0
  114. package/dist/commands/ios/get.js +44 -0
  115. package/dist/commands/ios/get.js.map +1 -0
  116. package/dist/commands/ios/info.d.ts +16 -0
  117. package/dist/commands/ios/info.d.ts.map +1 -0
  118. package/dist/commands/ios/info.js +55 -0
  119. package/dist/commands/ios/info.js.map +1 -0
  120. package/dist/commands/ios/install-app.d.ts +20 -0
  121. package/dist/commands/ios/install-app.d.ts.map +1 -0
  122. package/dist/commands/ios/install-app.js +97 -0
  123. package/dist/commands/ios/install-app.js.map +1 -0
  124. package/dist/commands/ios/launch-app.d.ts +23 -0
  125. package/dist/commands/ios/launch-app.d.ts.map +1 -0
  126. package/dist/commands/ios/launch-app.js +74 -0
  127. package/dist/commands/ios/launch-app.js.map +1 -0
  128. package/dist/commands/ios/list-apps.d.ts +16 -0
  129. package/dist/commands/ios/list-apps.d.ts.map +1 -0
  130. package/dist/commands/ios/list-apps.js +51 -0
  131. package/dist/commands/ios/list-apps.js.map +1 -0
  132. package/dist/commands/ios/list.d.ts +19 -0
  133. package/dist/commands/ios/list.d.ts.map +1 -0
  134. package/dist/commands/ios/list.js +61 -0
  135. package/dist/commands/ios/list.js.map +1 -0
  136. package/dist/commands/ios/lsof.d.ts +16 -0
  137. package/dist/commands/ios/lsof.d.ts.map +1 -0
  138. package/dist/commands/ios/lsof.js +47 -0
  139. package/dist/commands/ios/lsof.js.map +1 -0
  140. package/dist/commands/ios/open-url.d.ts +18 -0
  141. package/dist/commands/ios/open-url.d.ts.map +1 -0
  142. package/dist/commands/ios/open-url.js +51 -0
  143. package/dist/commands/ios/open-url.js.map +1 -0
  144. package/dist/commands/ios/perform.d.ts +18 -0
  145. package/dist/commands/ios/perform.d.ts.map +1 -0
  146. package/dist/commands/ios/perform.js +228 -0
  147. package/dist/commands/ios/perform.js.map +1 -0
  148. package/dist/commands/ios/press-key.d.ts +19 -0
  149. package/dist/commands/ios/press-key.d.ts.map +1 -0
  150. package/dist/commands/ios/press-key.js +52 -0
  151. package/dist/commands/ios/press-key.js.map +1 -0
  152. package/dist/commands/ios/record.d.ts +22 -0
  153. package/dist/commands/ios/record.d.ts.map +1 -0
  154. package/dist/commands/ios/record.js +101 -0
  155. package/dist/commands/ios/record.js.map +1 -0
  156. package/dist/commands/ios/reverse.d.ts +19 -0
  157. package/dist/commands/ios/reverse.d.ts.map +1 -0
  158. package/dist/commands/ios/reverse.js +97 -0
  159. package/dist/commands/ios/reverse.js.map +1 -0
  160. package/dist/commands/ios/screenshot.d.ts +18 -0
  161. package/dist/commands/ios/screenshot.d.ts.map +1 -0
  162. package/dist/commands/ios/screenshot.js +65 -0
  163. package/dist/commands/ios/screenshot.js.map +1 -0
  164. package/dist/commands/ios/scroll.d.ts +19 -0
  165. package/dist/commands/ios/scroll.d.ts.map +1 -0
  166. package/dist/commands/ios/scroll.js +57 -0
  167. package/dist/commands/ios/scroll.js.map +1 -0
  168. package/dist/commands/ios/simctl.d.ts +17 -0
  169. package/dist/commands/ios/simctl.d.ts.map +1 -0
  170. package/dist/commands/ios/simctl.js +72 -0
  171. package/dist/commands/ios/simctl.js.map +1 -0
  172. package/dist/commands/ios/sync.d.ts +23 -0
  173. package/dist/commands/ios/sync.d.ts.map +1 -0
  174. package/dist/commands/ios/sync.js +90 -0
  175. package/dist/commands/ios/sync.js.map +1 -0
  176. package/dist/commands/ios/syslog.d.ts +16 -0
  177. package/dist/commands/ios/syslog.d.ts.map +1 -0
  178. package/dist/commands/ios/syslog.js +62 -0
  179. package/dist/commands/ios/syslog.js.map +1 -0
  180. package/dist/commands/ios/tap-element.d.ts +23 -0
  181. package/dist/commands/ios/tap-element.d.ts.map +1 -0
  182. package/dist/commands/ios/tap-element.js +92 -0
  183. package/dist/commands/ios/tap-element.js.map +1 -0
  184. package/dist/commands/ios/tap.d.ts +25 -0
  185. package/dist/commands/ios/tap.d.ts.map +1 -0
  186. package/dist/commands/ios/tap.js +55 -0
  187. package/dist/commands/ios/tap.js.map +1 -0
  188. package/dist/commands/ios/terminate-app.d.ts +18 -0
  189. package/dist/commands/ios/terminate-app.d.ts.map +1 -0
  190. package/dist/commands/ios/terminate-app.js +49 -0
  191. package/dist/commands/ios/terminate-app.js.map +1 -0
  192. package/dist/commands/ios/toggle-keyboard.d.ts +15 -0
  193. package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -0
  194. package/dist/commands/ios/toggle-keyboard.js +45 -0
  195. package/dist/commands/ios/toggle-keyboard.js.map +1 -0
  196. package/dist/commands/ios/type.d.ts +19 -0
  197. package/dist/commands/ios/type.d.ts.map +1 -0
  198. package/dist/commands/ios/type.js +53 -0
  199. package/dist/commands/ios/type.js.map +1 -0
  200. package/dist/commands/ios/xcodebuild.d.ts +17 -0
  201. package/dist/commands/ios/xcodebuild.d.ts.map +1 -0
  202. package/dist/commands/ios/xcodebuild.js +59 -0
  203. package/dist/commands/ios/xcodebuild.js.map +1 -0
  204. package/dist/commands/ios/xcrun.d.ts +17 -0
  205. package/dist/commands/ios/xcrun.d.ts.map +1 -0
  206. package/dist/commands/ios/xcrun.js +60 -0
  207. package/dist/commands/ios/xcrun.js.map +1 -0
  208. package/dist/commands/login.d.ts +14 -0
  209. package/dist/commands/login.d.ts.map +1 -0
  210. package/dist/commands/login.js +22 -0
  211. package/dist/commands/login.js.map +1 -0
  212. package/dist/commands/logout.d.ts +14 -0
  213. package/dist/commands/logout.d.ts.map +1 -0
  214. package/dist/commands/logout.js +18 -0
  215. package/dist/commands/logout.js.map +1 -0
  216. package/dist/commands/session/start.d.ts +16 -0
  217. package/dist/commands/session/start.d.ts.map +1 -0
  218. package/dist/commands/session/start.js +129 -0
  219. package/dist/commands/session/start.js.map +1 -0
  220. package/dist/commands/session/status.d.ts +14 -0
  221. package/dist/commands/session/status.d.ts.map +1 -0
  222. package/dist/commands/session/status.js +65 -0
  223. package/dist/commands/session/status.js.map +1 -0
  224. package/dist/commands/session/stop.d.ts +18 -0
  225. package/dist/commands/session/stop.d.ts.map +1 -0
  226. package/dist/commands/session/stop.js +76 -0
  227. package/dist/commands/session/stop.js.map +1 -0
  228. package/dist/commands/skills/install.d.ts +18 -0
  229. package/dist/commands/skills/install.d.ts.map +1 -0
  230. package/dist/commands/skills/install.js +473 -0
  231. package/dist/commands/skills/install.js.map +1 -0
  232. package/dist/commands/xcode/attach-simulator.d.ts +18 -0
  233. package/dist/commands/xcode/attach-simulator.d.ts.map +1 -0
  234. package/dist/commands/xcode/attach-simulator.js +55 -0
  235. package/dist/commands/xcode/attach-simulator.js.map +1 -0
  236. package/dist/commands/xcode/build.d.ts +37 -0
  237. package/dist/commands/xcode/build.d.ts.map +1 -0
  238. package/dist/commands/xcode/build.js +233 -0
  239. package/dist/commands/xcode/build.js.map +1 -0
  240. package/dist/commands/xcode/create.d.ts +22 -0
  241. package/dist/commands/xcode/create.d.ts.map +1 -0
  242. package/dist/commands/xcode/create.js +187 -0
  243. package/dist/commands/xcode/create.js.map +1 -0
  244. package/dist/commands/xcode/delete.d.ts +17 -0
  245. package/dist/commands/xcode/delete.d.ts.map +1 -0
  246. package/dist/commands/xcode/delete.js +44 -0
  247. package/dist/commands/xcode/delete.js.map +1 -0
  248. package/dist/commands/xcode/get.d.ts +17 -0
  249. package/dist/commands/xcode/get.d.ts.map +1 -0
  250. package/dist/commands/xcode/get.js +59 -0
  251. package/dist/commands/xcode/get.js.map +1 -0
  252. package/dist/commands/xcode/list.d.ts +18 -0
  253. package/dist/commands/xcode/list.d.ts.map +1 -0
  254. package/dist/commands/xcode/list.js +58 -0
  255. package/dist/commands/xcode/list.js.map +1 -0
  256. package/dist/commands/xcode/sync.d.ts +24 -0
  257. package/dist/commands/xcode/sync.d.ts.map +1 -0
  258. package/dist/commands/xcode/sync.js +93 -0
  259. package/dist/commands/xcode/sync.js.map +1 -0
  260. package/dist/index.d.ts +2 -0
  261. package/dist/index.d.ts.map +1 -0
  262. package/dist/index.js +6 -0
  263. package/dist/index.js.map +1 -0
  264. package/dist/lib/additional-files.d.ts +6 -0
  265. package/dist/lib/additional-files.d.ts.map +1 -0
  266. package/dist/lib/additional-files.js +19 -0
  267. package/dist/lib/additional-files.js.map +1 -0
  268. package/dist/lib/android-selector.d.ts +50 -0
  269. package/dist/lib/android-selector.d.ts.map +1 -0
  270. package/dist/lib/android-selector.js +103 -0
  271. package/dist/lib/android-selector.js.map +1 -0
  272. package/dist/lib/auth.d.ts +2 -0
  273. package/dist/lib/auth.d.ts.map +1 -0
  274. package/dist/lib/auth.js +60 -0
  275. package/dist/lib/auth.js.map +1 -0
  276. package/dist/lib/config.d.ts +65 -0
  277. package/dist/lib/config.d.ts.map +1 -0
  278. package/dist/lib/config.js +292 -0
  279. package/dist/lib/config.js.map +1 -0
  280. package/dist/lib/daemon-client.d.ts +9 -0
  281. package/dist/lib/daemon-client.d.ts.map +1 -0
  282. package/dist/lib/daemon-client.js +81 -0
  283. package/dist/lib/daemon-client.js.map +1 -0
  284. package/dist/lib/daemon.d.ts +41 -0
  285. package/dist/lib/daemon.d.ts.map +1 -0
  286. package/dist/lib/daemon.js +511 -0
  287. package/dist/lib/daemon.js.map +1 -0
  288. package/dist/lib/detox-version.d.ts +12 -0
  289. package/dist/lib/detox-version.d.ts.map +1 -0
  290. package/dist/lib/detox-version.js +30 -0
  291. package/dist/lib/detox-version.js.map +1 -0
  292. package/dist/lib/duration.d.ts +2 -0
  293. package/dist/lib/duration.d.ts.map +1 -0
  294. package/dist/lib/duration.js +37 -0
  295. package/dist/lib/duration.js.map +1 -0
  296. package/dist/lib/formatting.d.ts +3 -0
  297. package/dist/lib/formatting.d.ts.map +1 -0
  298. package/dist/lib/formatting.js +31 -0
  299. package/dist/lib/formatting.js.map +1 -0
  300. package/dist/lib/ignore-patterns.d.ts +2 -0
  301. package/dist/lib/ignore-patterns.d.ts.map +1 -0
  302. package/dist/lib/ignore-patterns.js +18 -0
  303. package/dist/lib/ignore-patterns.js.map +1 -0
  304. package/dist/lib/instance-client-factory.d.ts +29 -0
  305. package/dist/lib/instance-client-factory.d.ts.map +1 -0
  306. package/dist/lib/instance-client-factory.js +87 -0
  307. package/dist/lib/instance-client-factory.js.map +1 -0
  308. package/dist/lib/launch-app-runtime.d.ts +23 -0
  309. package/dist/lib/launch-app-runtime.d.ts.map +1 -0
  310. package/dist/lib/launch-app-runtime.js +58 -0
  311. package/dist/lib/launch-app-runtime.js.map +1 -0
  312. package/dist/lib/onboarding.d.ts +42 -0
  313. package/dist/lib/onboarding.d.ts.map +1 -0
  314. package/dist/lib/onboarding.js +296 -0
  315. package/dist/lib/onboarding.js.map +1 -0
  316. package/dist/lib/project-detection.d.ts +11 -0
  317. package/dist/lib/project-detection.d.ts.map +1 -0
  318. package/dist/lib/project-detection.js +122 -0
  319. package/dist/lib/project-detection.js.map +1 -0
  320. package/dist/lib/remote-skills.d.ts +47 -0
  321. package/dist/lib/remote-skills.d.ts.map +1 -0
  322. package/dist/lib/remote-skills.js +241 -0
  323. package/dist/lib/remote-skills.js.map +1 -0
  324. package/dist/lib/reverse-port-mapping.d.ts +6 -0
  325. package/dist/lib/reverse-port-mapping.d.ts.map +1 -0
  326. package/dist/lib/reverse-port-mapping.js +24 -0
  327. package/dist/lib/reverse-port-mapping.js.map +1 -0
  328. package/dist/lib/skills.d.ts +17 -0
  329. package/dist/lib/skills.d.ts.map +1 -0
  330. package/dist/lib/skills.js +153 -0
  331. package/dist/lib/skills.js.map +1 -0
  332. package/dist/lib/xcode-sandbox.d.ts +2 -0
  333. package/dist/lib/xcode-sandbox.d.ts.map +1 -0
  334. package/dist/lib/xcode-sandbox.js +7 -0
  335. package/dist/lib/xcode-sandbox.js.map +1 -0
  336. package/package.json +69 -13
  337. package/.npmignore +0 -2
  338. package/build/lib/index.js +0 -1498
  339. package/build/lib/index.map +0 -1
  340. package/build/lib/utils/courier.js +0 -98
  341. package/build/lib/utils/courier.map +0 -1
  342. package/build/lib/utils/polyfill.js +0 -53
  343. package/build/lib/utils/polyfill.map +0 -1
  344. package/build.sh +0 -9
  345. package/index.js +0 -2
  346. package/lib/index.js +0 -284
  347. package/lib/utils/courier.js +0 -108
  348. package/lib/utils/polyfill.js +0 -42
  349. package/native.js +0 -2
package/bin/dev.js ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+
3
+ // For development: registers ts-node so we can run from src/ directly
4
+ const path = require('path');
5
+ const project = path.join(__dirname, '..', 'tsconfig.json');
6
+
7
+ require('ts-node').register({ project });
8
+
9
+ const oclif = require('@oclif/core');
10
+
11
+ oclif.settings.debug = true;
12
+
13
+ oclif
14
+ .execute({ development: true, dir: __dirname, args: process.argv.slice(2) })
15
+ .then(oclif.flush)
16
+ .catch(oclif.Errors.handle);
package/bin/run.js ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { flush } = require('@oclif/core');
4
+ const { Config } = require('@oclif/core/config');
5
+ const { handle } = require('@oclif/core/errors');
6
+ const { Help, standardizeIDFromArgv } = require('@oclif/core/help');
7
+ const { run } = require('@oclif/core/run');
8
+
9
+ function isUsageError(error) {
10
+ return typeof error?.message === 'string' && error.message.includes('\nSee more help with --help');
11
+ }
12
+
13
+ async function inferCommandArgv(argv) {
14
+ const config = await Config.load(__dirname);
15
+ const normalizedArgv = standardizeIDFromArgv([...argv], config);
16
+ const normalizedCommandId = normalizedArgv[0];
17
+
18
+ if (normalizedCommandId && config.findCommand(normalizedCommandId)) {
19
+ return { commandArgv: normalizedCommandId.split(':'), config };
20
+ }
21
+
22
+ const positionalPrefix = [];
23
+ for (const token of argv) {
24
+ if (token === '--' || token.startsWith('-')) break;
25
+ positionalPrefix.push(token);
26
+ }
27
+
28
+ for (let i = positionalPrefix.length; i > 0; i -= 1) {
29
+ const commandId = positionalPrefix.slice(0, i).join(':');
30
+ if (config.findCommand(commandId)) {
31
+ return { commandArgv: commandId.split(':'), config };
32
+ }
33
+ }
34
+
35
+ return { commandArgv: undefined, config };
36
+ }
37
+
38
+ async function handleError(error) {
39
+ if (!isUsageError(error)) {
40
+ await handle(error);
41
+ return;
42
+ }
43
+
44
+ error.message = error.message.replace(/\nSee more help with --help$/, '');
45
+
46
+ const { commandArgv, config } = await inferCommandArgv(process.argv.slice(2));
47
+ if (!commandArgv) {
48
+ await handle(error);
49
+ return;
50
+ }
51
+
52
+ console.error(typeof error.render === 'function' ? error.render() : error.message);
53
+ console.error();
54
+
55
+ const help = new Help(config, {
56
+ ...(config.pjson.oclif.helpOptions ?? config.pjson.helpOptions),
57
+ sendToStderr: true,
58
+ });
59
+ await help.showHelp(commandArgv);
60
+ process.exitCode = error.oclif?.exit ?? 1;
61
+ }
62
+
63
+ run(process.argv.slice(2), __dirname).catch(handleError).finally(flush);
@@ -0,0 +1,55 @@
1
+ import { Command } from '@oclif/core';
2
+ import Limrun from '@limrun/api';
3
+ import { type LastAndroidInstance, type LastIosInstance, type LastXcodeInstance } from './lib/config';
4
+ type XcodeTarget = LastIosInstance | LastXcodeInstance;
5
+ export declare abstract class BaseCommand extends Command {
6
+ static baseFlags: {
7
+ 'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ private _client?;
13
+ protected get client(): Limrun;
14
+ private _parsedFlags?;
15
+ private _lastResolvedInstanceId?;
16
+ private _lastResolvedExpectedType?;
17
+ private _overrideInstanceId?;
18
+ private _createRetryCount;
19
+ protected get parsedFlags(): Record<string, unknown> | undefined;
20
+ protected setParsedFlags(flags: Record<string, unknown>): void;
21
+ protected isJsonEnabled(): boolean;
22
+ protected isQuietEnabled(): boolean;
23
+ protected shouldSuppressInfo(): boolean;
24
+ protected info(message?: string): void;
25
+ protected output(message?: string): void;
26
+ protected withAuth<T>(fn: () => Promise<T>): Promise<T>;
27
+ protected outputTable(headers: string[], rows: string[][]): void;
28
+ protected outputJson(data: unknown): void;
29
+ protected consoleStreamUrl(instanceId: string): string;
30
+ protected consoleBuildUrl(execId: string): string;
31
+ protected signedStreamUrl(status: {
32
+ signedStreamUrl?: string;
33
+ } | undefined): string | undefined;
34
+ protected resolveXcodeClient(target: string | XcodeTarget): Promise<Limrun.XcodeClient>;
35
+ protected resolveAndroidInstance(providedId: string | undefined): LastAndroidInstance;
36
+ protected resolveIosInstance(providedId: string | undefined): LastIosInstance;
37
+ protected resolveDeviceInstance(providedId: string | undefined): LastAndroidInstance | LastIosInstance;
38
+ protected resolveXcodeTarget(providedId: string | undefined): Promise<XcodeTarget>;
39
+ protected resolveXcodeTargetOrCreate(providedId: string | undefined): Promise<XcodeTarget>;
40
+ protected resolveIosXcodeTargetOrCreate(providedId: string | undefined): Promise<LastIosInstance>;
41
+ private findMissingInstanceId;
42
+ private isMissingDefaultInstanceError;
43
+ private isCachedXcodeClientNotFound;
44
+ private shouldAutoCreateOnNotFound;
45
+ private createReplacementInstance;
46
+ private getCommandParts;
47
+ private xcodeTargetFromId;
48
+ private iosXcodeTargetFromId;
49
+ private androidInstanceFromId;
50
+ private iosInstanceFromId;
51
+ private xcodeTargetFromRecord;
52
+ private createIosXcodeInstance;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=base-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,MAA8C,MAAM,aAAa,CAAC;AACzE,OAAO,EAWL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAQtB,KAAK,WAAW,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEvD,8BAAsB,WAAY,SAAQ,OAAO;IAC/C,MAAM,CAAC,SAAS;;;;;MAoBd;IAEF,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,SAAS,KAAK,MAAM,IAAI,MAAM,CAc7B;IAED,OAAO,CAAC,YAAY,CAAC,CAA0B;IAC/C,OAAO,CAAC,uBAAuB,CAAC,CAAS;IACzC,OAAO,CAAC,yBAAyB,CAAC,CAA8B;IAChE,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,SAAS,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/D;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,SAAS,CAAC,cAAc,IAAI,OAAO;IAInC,SAAS,CAAC,kBAAkB,IAAI,OAAO;IAIvC,SAAS,CAAC,IAAI,CAAC,OAAO,SAAK,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,CAAC,OAAO,SAAK,GAAG,IAAI;cAIpB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA2C7D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAgBhE,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIzC,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKtD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKjD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;cAI/E,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAkE/D,SAAS,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB;IAqBrF,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;IAqB7E,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,eAAe;cAgCtF,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;cA0BxE,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;cAoBhF,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IA4BvG,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,6BAA6B;IAIrC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,0BAA0B;YAmBpB,yBAAyB;IA+BvC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;YASf,sBAAsB;CAgBrC"}
@@ -0,0 +1,467 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BaseCommand = void 0;
37
+ const core_1 = require("@oclif/core");
38
+ const api_1 = __importStar(require("@limrun/api"));
39
+ const config_1 = require("./lib/config");
40
+ const auth_1 = require("./lib/auth");
41
+ const formatting_1 = require("./lib/formatting");
42
+ const daemon_1 = require("./lib/daemon");
43
+ const instance_client_factory_1 = require("./lib/instance-client-factory");
44
+ const VERSION = require('../package.json').version;
45
+ const INSTANCE_ID_PATTERN = /\b(?:ios|android|xcode|sandbox)_[a-z0-9]+\b/i;
46
+ class BaseCommand extends core_1.Command {
47
+ constructor() {
48
+ super(...arguments);
49
+ this._createRetryCount = 0;
50
+ }
51
+ get client() {
52
+ if (!this._client) {
53
+ const config = (0, config_1.readConfig)();
54
+ const flags = this.parsedFlags;
55
+ const apiKey = flags?.['api-key'] || config.apiKey;
56
+ const baseURL = config.apiEndpoint;
57
+ if (!apiKey) {
58
+ this.error('Not authenticated. Run `lim login` first, or provide --api-key.');
59
+ }
60
+ this._client = new api_1.default({ apiKey: apiKey, baseURL });
61
+ }
62
+ return this._client;
63
+ }
64
+ get parsedFlags() {
65
+ return this._parsedFlags;
66
+ }
67
+ setParsedFlags(flags) {
68
+ this._parsedFlags = flags;
69
+ }
70
+ isJsonEnabled() {
71
+ return Boolean(this.parsedFlags?.json);
72
+ }
73
+ isQuietEnabled() {
74
+ return Boolean(this.parsedFlags?.quiet);
75
+ }
76
+ shouldSuppressInfo() {
77
+ return this.isJsonEnabled() || this.isQuietEnabled();
78
+ }
79
+ info(message = '') {
80
+ if (!this.shouldSuppressInfo()) {
81
+ super.log(message);
82
+ }
83
+ }
84
+ output(message = '') {
85
+ super.log(message);
86
+ }
87
+ async withAuth(fn) {
88
+ try {
89
+ return await fn();
90
+ }
91
+ catch (err) {
92
+ if (err instanceof api_1.AuthenticationError) {
93
+ const config = (0, config_1.readConfig)();
94
+ this.info('Session expired. Logging in...');
95
+ await (0, auth_1.login)(config.consoleEndpoint, VERSION);
96
+ this.info('You are logged in now.');
97
+ // Reset client so it picks up the new key
98
+ this._client = undefined;
99
+ return this.withAuth(fn);
100
+ }
101
+ if (err instanceof api_1.NotFoundError) {
102
+ const instanceId = this.findMissingInstanceId(err);
103
+ if (instanceId) {
104
+ (0, daemon_1.stopDaemon)(instanceId);
105
+ (0, config_1.clearLastInstanceId)(instanceId);
106
+ if (this.shouldAutoCreateOnNotFound()) {
107
+ const replacement = await this.createReplacementInstance(instanceId);
108
+ if (replacement) {
109
+ this.info(`Instance ${instanceId} was not found. Created replacement instance ${replacement.id}.`);
110
+ this._overrideInstanceId = replacement.id;
111
+ this._createRetryCount += 1;
112
+ try {
113
+ return await this.withAuth(fn);
114
+ }
115
+ finally {
116
+ this._createRetryCount -= 1;
117
+ this._overrideInstanceId = undefined;
118
+ }
119
+ }
120
+ }
121
+ this.error(`Instance ${instanceId} was not found. Local session and cached state were cleaned up. Either create a new instance or provide --id to target a different one.`);
122
+ }
123
+ }
124
+ throw err;
125
+ }
126
+ }
127
+ outputTable(headers, rows) {
128
+ const flags = this.parsedFlags;
129
+ if (flags?.json) {
130
+ const objects = rows.map((row) => {
131
+ const obj = {};
132
+ headers.forEach((h, i) => {
133
+ obj[h.toLowerCase().replace(/\s+/g, '_')] = row[i] || '';
134
+ });
135
+ return obj;
136
+ });
137
+ this.output(JSON.stringify(objects, null, 2));
138
+ }
139
+ else {
140
+ this.output((0, formatting_1.renderTable)(headers, rows));
141
+ }
142
+ }
143
+ outputJson(data) {
144
+ this.output(JSON.stringify(data, null, 2));
145
+ }
146
+ consoleStreamUrl(instanceId) {
147
+ const baseUrl = (0, config_1.readConfig)().consoleEndpoint.replace(/\/+$/, '');
148
+ return `${baseUrl}/stream/${instanceId}`;
149
+ }
150
+ consoleBuildUrl(execId) {
151
+ const baseUrl = (0, config_1.readConfig)().consoleEndpoint.replace(/\/+$/, '');
152
+ return `${baseUrl}/builds/${execId}`;
153
+ }
154
+ signedStreamUrl(status) {
155
+ return status?.signedStreamUrl;
156
+ }
157
+ async resolveXcodeClient(target) {
158
+ const resolvedTarget = typeof target === 'string' ? this.xcodeTargetFromId(target) : target;
159
+ const id = resolvedTarget.id;
160
+ if (resolvedTarget.type === 'ios') {
161
+ if (resolvedTarget.sandboxXcodeUrl && resolvedTarget.token) {
162
+ try {
163
+ return await this.client.xcodeInstances.createClient({
164
+ apiUrl: resolvedTarget.sandboxXcodeUrl,
165
+ token: resolvedTarget.token,
166
+ });
167
+ }
168
+ catch (err) {
169
+ if (this.isCachedXcodeClientNotFound(err)) {
170
+ throw new api_1.NotFoundError(404, { message: `Instance ${id} was not found` }, undefined, new Headers());
171
+ }
172
+ throw err;
173
+ }
174
+ }
175
+ const instance = await this.client.iosInstances.get(id);
176
+ let sandboxUrl = instance.status.sandbox?.xcode?.url;
177
+ let token = instance.status.token;
178
+ (0, config_1.registerCreatedInstance)(instance, ['xcode']);
179
+ if (!sandboxUrl) {
180
+ if (resolvedTarget.sandboxXcodeUrl) {
181
+ sandboxUrl = resolvedTarget.sandboxXcodeUrl;
182
+ token = resolvedTarget.token || token;
183
+ }
184
+ }
185
+ if (!sandboxUrl) {
186
+ this.error(`iOS instance ${id} does not have a Xcode sandbox. Create it with: lim ios create --xcode or lim xcode create --ios`);
187
+ }
188
+ return this.client.xcodeInstances.createClient({
189
+ apiUrl: sandboxUrl,
190
+ token,
191
+ });
192
+ }
193
+ if (resolvedTarget.apiUrl && resolvedTarget.token) {
194
+ try {
195
+ return await this.client.xcodeInstances.createClient({
196
+ apiUrl: resolvedTarget.apiUrl,
197
+ token: resolvedTarget.token,
198
+ });
199
+ }
200
+ catch (err) {
201
+ if (this.isCachedXcodeClientNotFound(err)) {
202
+ throw new api_1.NotFoundError(404, { message: `Instance ${id} was not found` }, undefined, new Headers());
203
+ }
204
+ throw err;
205
+ }
206
+ }
207
+ const instance = await this.client.xcodeInstances.get(id);
208
+ (0, config_1.registerCreatedInstance)(instance);
209
+ return this.client.xcodeInstances.createClient({ instance });
210
+ }
211
+ resolveAndroidInstance(providedId) {
212
+ this._lastResolvedExpectedType = 'android';
213
+ const id = this._overrideInstanceId ?? providedId;
214
+ if (id) {
215
+ const instance = this.androidInstanceFromId(id);
216
+ this._lastResolvedInstanceId = instance.id;
217
+ return instance;
218
+ }
219
+ const instance = (0, config_1.loadLastAndroidInstance)();
220
+ if (instance) {
221
+ this._lastResolvedInstanceId = instance.id;
222
+ return instance;
223
+ }
224
+ throw new Error('No instance ID provided and no recentandroid instance found.\n' +
225
+ 'Provide an instance ID or create one first with: lim android create');
226
+ }
227
+ resolveIosInstance(providedId) {
228
+ this._lastResolvedExpectedType = 'ios';
229
+ const id = this._overrideInstanceId ?? providedId;
230
+ if (id) {
231
+ const instance = this.iosInstanceFromId(id);
232
+ this._lastResolvedInstanceId = instance.id;
233
+ return instance;
234
+ }
235
+ const instance = (0, config_1.loadLastIosInstance)();
236
+ if (instance) {
237
+ this._lastResolvedInstanceId = instance.id;
238
+ return instance;
239
+ }
240
+ throw new Error('No instance ID provided and no recentios instance found.\n' +
241
+ 'Provide an instance ID or create one first with: lim ios create');
242
+ }
243
+ resolveDeviceInstance(providedId) {
244
+ if (providedId) {
245
+ const type = (0, instance_client_factory_1.detectInstanceType)(providedId);
246
+ if (type === 'android') {
247
+ return this.resolveAndroidInstance(providedId);
248
+ }
249
+ if (type === 'ios') {
250
+ return this.resolveIosInstance(providedId);
251
+ }
252
+ throw new Error('Sessions are for device interaction. Xcode instances use sync/build instead.');
253
+ }
254
+ const ios = (0, config_1.loadLastIosInstance)();
255
+ if (ios) {
256
+ this._lastResolvedExpectedType = 'ios';
257
+ this._lastResolvedInstanceId = ios.id;
258
+ return ios;
259
+ }
260
+ const android = (0, config_1.loadLastAndroidInstance)();
261
+ if (android) {
262
+ this._lastResolvedExpectedType = 'android';
263
+ this._lastResolvedInstanceId = android.id;
264
+ return android;
265
+ }
266
+ throw new Error('No instance ID provided and no recentios or android instance found.\n' +
267
+ 'Provide an instance ID or create one first with: lim ios create or lim android create');
268
+ }
269
+ async resolveXcodeTarget(providedId) {
270
+ if (this._overrideInstanceId) {
271
+ return this.xcodeTargetFromId(this._overrideInstanceId);
272
+ }
273
+ const parts = this.getCommandParts();
274
+ this._lastResolvedExpectedType = 'xcode';
275
+ if (providedId) {
276
+ const target = this.xcodeTargetFromId(providedId);
277
+ this._lastResolvedInstanceId = target.id;
278
+ return target;
279
+ }
280
+ const target = (0, config_1.loadLastXcodeInstance)();
281
+ if (target) {
282
+ this._lastResolvedInstanceId = target.id;
283
+ return target;
284
+ }
285
+ const noun = parts[0] ?? 'xcode';
286
+ throw new Error(`No instance ID provided and no recent${noun} instance found.\n` +
287
+ `Provide an instance ID or create one first with: lim ${noun} create`);
288
+ }
289
+ async resolveXcodeTargetOrCreate(providedId) {
290
+ try {
291
+ return await this.resolveXcodeTarget(providedId);
292
+ }
293
+ catch (err) {
294
+ if (!this.isMissingDefaultInstanceError(err) || !this.shouldAutoCreateOnNotFound()) {
295
+ throw err;
296
+ }
297
+ const replacement = await this.createReplacementInstance();
298
+ if (!replacement) {
299
+ throw err;
300
+ }
301
+ const target = this.xcodeTargetFromRecord(replacement);
302
+ this.info(`No recent xcode instance found. Created instance ${target.id}.`);
303
+ this._lastResolvedInstanceId = target.id;
304
+ return target;
305
+ }
306
+ }
307
+ async resolveIosXcodeTargetOrCreate(providedId) {
308
+ this._lastResolvedExpectedType = 'xcode';
309
+ const id = this._overrideInstanceId ?? providedId;
310
+ if (id) {
311
+ const target = this.iosXcodeTargetFromId(id);
312
+ this._lastResolvedInstanceId = target.id;
313
+ return target;
314
+ }
315
+ const target = (0, config_1.loadLastXcodeInstance)();
316
+ if (target?.type === 'ios') {
317
+ this._lastResolvedInstanceId = target.id;
318
+ return target;
319
+ }
320
+ if (!this.shouldAutoCreateOnNotFound()) {
321
+ throw new Error('No simulator-backed Xcode target found.\n' +
322
+ 'Create one first with: lim xcode create --ios, or rerun without --no-create.');
323
+ }
324
+ const replacement = await this.createIosXcodeInstance();
325
+ this.info(`No recent simulator-backed Xcode target found. Created instance ${replacement.id}.`);
326
+ this._lastResolvedInstanceId = replacement.id;
327
+ return replacement;
328
+ }
329
+ findMissingInstanceId(err) {
330
+ const match = err.message.match(INSTANCE_ID_PATTERN);
331
+ if (match) {
332
+ return match[0];
333
+ }
334
+ return this._lastResolvedInstanceId ?? null;
335
+ }
336
+ isMissingDefaultInstanceError(err) {
337
+ return err instanceof Error && err.message.startsWith('No instance ID provided and no recent');
338
+ }
339
+ isCachedXcodeClientNotFound(err) {
340
+ return err instanceof Error && err.message.includes('GET /info failed: 404');
341
+ }
342
+ shouldAutoCreateOnNotFound() {
343
+ if (this.parsedFlags?.create === false) {
344
+ return false;
345
+ }
346
+ if (this._createRetryCount > 0) {
347
+ return false;
348
+ }
349
+ const parts = this.getCommandParts();
350
+ const noun = parts[0];
351
+ const verb = parts[1];
352
+ if (!['ios', 'android', 'xcode'].includes(noun)) {
353
+ return false;
354
+ }
355
+ if (['create', 'delete', 'list'].includes(verb)) {
356
+ return false;
357
+ }
358
+ return true;
359
+ }
360
+ async createReplacementInstance(instanceId) {
361
+ const commandType = this._lastResolvedExpectedType;
362
+ const prefix = instanceId?.split('_')[0];
363
+ if (commandType === 'xcode' && prefix === 'ios') {
364
+ return this.createIosXcodeInstance();
365
+ }
366
+ if (prefix === 'ios' || commandType === 'ios') {
367
+ const instance = await this.client.iosInstances.create({ wait: true, spec: {} });
368
+ saveLastCreatedInstance(instance);
369
+ return (0, config_1.loadLastIosInstance)();
370
+ }
371
+ if (prefix === 'android' || commandType === 'android') {
372
+ const instance = await this.client.androidInstances.create({ wait: true, spec: {} });
373
+ saveLastCreatedInstance(instance);
374
+ return (0, config_1.loadLastAndroidInstance)();
375
+ }
376
+ if (prefix === 'xcode' || prefix === 'sandbox' || commandType === 'xcode') {
377
+ const instance = await this.client.xcodeInstances.create({ wait: true, spec: {} });
378
+ saveLastCreatedInstance(instance);
379
+ return (0, config_1.loadLastXcodeInstance)();
380
+ }
381
+ return null;
382
+ }
383
+ getCommandParts() {
384
+ return (this.id ?? '').split(/[: ]+/).filter(Boolean);
385
+ }
386
+ xcodeTargetFromId(id) {
387
+ const type = (0, instance_client_factory_1.detectInstanceType)(id);
388
+ if (type === 'ios') {
389
+ const cached = (0, config_1.loadIosInstanceCache)(id);
390
+ if (cached)
391
+ return cached;
392
+ return { id, type: 'ios' };
393
+ }
394
+ if (type === 'xcode') {
395
+ const cached = (0, config_1.loadXcodeInstanceCache)(id);
396
+ if (cached)
397
+ return cached;
398
+ return { id, type: 'xcode' };
399
+ }
400
+ throw new Error(`Expected an iOS or Xcode target, got ${id}`);
401
+ }
402
+ iosXcodeTargetFromId(id) {
403
+ const target = this.xcodeTargetFromId(id);
404
+ if (target.type === 'ios') {
405
+ return target;
406
+ }
407
+ throw new Error(`--ios requires an iOS instance ID, got ${id}`);
408
+ }
409
+ androidInstanceFromId(id) {
410
+ const type = (0, instance_client_factory_1.detectInstanceType)(id);
411
+ if (type !== 'android') {
412
+ throw new Error(`Expected an Android instance, got ${id}`);
413
+ }
414
+ return (0, config_1.loadAndroidInstanceCache)(id) ?? { id, type: 'android' };
415
+ }
416
+ iosInstanceFromId(id) {
417
+ const type = (0, instance_client_factory_1.detectInstanceType)(id);
418
+ if (type !== 'ios') {
419
+ throw new Error(`Expected an iOS instance, got ${id}`);
420
+ }
421
+ return (0, config_1.loadIosInstanceCache)(id) ?? { id, type: 'ios' };
422
+ }
423
+ xcodeTargetFromRecord(record) {
424
+ if (record.type === 'ios' || record.type === 'xcode') {
425
+ return record;
426
+ }
427
+ throw new Error(`Expected an iOS or Xcode target, got ${record.id}`);
428
+ }
429
+ async createIosXcodeInstance() {
430
+ const instance = await this.client.iosInstances.create({
431
+ wait: true,
432
+ spec: {
433
+ sandbox: { xcode: { enabled: true } },
434
+ },
435
+ });
436
+ saveLastCreatedInstance(instance, ['xcode']);
437
+ const target = (0, config_1.loadIosInstanceCache)(instance.metadata.id);
438
+ if (!target) {
439
+ throw new Error(`Created iOS instance ${instance.metadata.id}, but failed to load it from local cache.`);
440
+ }
441
+ return target;
442
+ }
443
+ }
444
+ exports.BaseCommand = BaseCommand;
445
+ BaseCommand.baseFlags = {
446
+ 'api-key': core_1.Flags.string({
447
+ description: 'API key to use for this command. Overrides the saved login and can also be provided via LIM_API_KEY.',
448
+ env: 'LIM_API_KEY',
449
+ }),
450
+ json: core_1.Flags.boolean({
451
+ description: 'Output structured JSON instead of human-readable tables or plain text when the command supports it.',
452
+ default: false,
453
+ }),
454
+ quiet: core_1.Flags.boolean({
455
+ description: 'Suppress intermediate human-readable logs and only emit the final result.',
456
+ default: false,
457
+ }),
458
+ create: core_1.Flags.boolean({
459
+ description: 'Create a replacement instance automatically if the target instance is not found.',
460
+ default: true,
461
+ allowNo: true,
462
+ }),
463
+ };
464
+ function saveLastCreatedInstance(instanceOrId, relatedTypes = []) {
465
+ (0, config_1.registerCreatedInstance)(instanceOrId, relatedTypes);
466
+ }
467
+ //# sourceMappingURL=base-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class AndroidConnect 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
+ 'adb-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
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=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/android/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA4D;IAC1E,MAAM,CAAC,WAAW,SACmN;IACrO,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;;MAUV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}