@limrun/cli 0.5.1 → 0.6.1

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 (163) hide show
  1. package/dist/base-command.d.ts +14 -7
  2. package/dist/base-command.d.ts.map +1 -1
  3. package/dist/base-command.js +185 -50
  4. package/dist/base-command.js.map +1 -1
  5. package/dist/commands/android/connect.d.ts.map +1 -1
  6. package/dist/commands/android/connect.js +6 -46
  7. package/dist/commands/android/connect.js.map +1 -1
  8. package/dist/commands/android/create.d.ts.map +1 -1
  9. package/dist/commands/android/create.js +4 -1
  10. package/dist/commands/android/create.js.map +1 -1
  11. package/dist/commands/android/delete.d.ts.map +1 -1
  12. package/dist/commands/android/delete.js +2 -1
  13. package/dist/commands/android/delete.js.map +1 -1
  14. package/dist/commands/android/element-tree.d.ts.map +1 -1
  15. package/dist/commands/android/element-tree.js +4 -6
  16. package/dist/commands/android/element-tree.js.map +1 -1
  17. package/dist/commands/android/find-element.d.ts.map +1 -1
  18. package/dist/commands/android/find-element.js +4 -6
  19. package/dist/commands/android/find-element.js.map +1 -1
  20. package/dist/commands/android/get.d.ts +1 -1
  21. package/dist/commands/android/get.d.ts.map +1 -1
  22. package/dist/commands/android/get.js +18 -10
  23. package/dist/commands/android/get.js.map +1 -1
  24. package/dist/commands/android/install-app.d.ts.map +1 -1
  25. package/dist/commands/android/install-app.js +4 -6
  26. package/dist/commands/android/install-app.js.map +1 -1
  27. package/dist/commands/android/open-url.d.ts.map +1 -1
  28. package/dist/commands/android/open-url.js +4 -6
  29. package/dist/commands/android/open-url.js.map +1 -1
  30. package/dist/commands/android/press-key.d.ts.map +1 -1
  31. package/dist/commands/android/press-key.js +4 -6
  32. package/dist/commands/android/press-key.js.map +1 -1
  33. package/dist/commands/android/record.d.ts.map +1 -1
  34. package/dist/commands/android/record.js +5 -10
  35. package/dist/commands/android/record.js.map +1 -1
  36. package/dist/commands/android/screenshot.d.ts.map +1 -1
  37. package/dist/commands/android/screenshot.js +4 -6
  38. package/dist/commands/android/screenshot.js.map +1 -1
  39. package/dist/commands/android/scroll.d.ts.map +1 -1
  40. package/dist/commands/android/scroll.js +7 -8
  41. package/dist/commands/android/scroll.js.map +1 -1
  42. package/dist/commands/android/tap-element.d.ts.map +1 -1
  43. package/dist/commands/android/tap-element.js +4 -6
  44. package/dist/commands/android/tap-element.js.map +1 -1
  45. package/dist/commands/android/tap.d.ts.map +1 -1
  46. package/dist/commands/android/tap.js +4 -6
  47. package/dist/commands/android/tap.js.map +1 -1
  48. package/dist/commands/android/type.d.ts.map +1 -1
  49. package/dist/commands/android/type.js +4 -6
  50. package/dist/commands/android/type.js.map +1 -1
  51. package/dist/commands/ios/app-log.d.ts.map +1 -1
  52. package/dist/commands/ios/app-log.js +4 -11
  53. package/dist/commands/ios/app-log.js.map +1 -1
  54. package/dist/commands/ios/cp.d.ts.map +1 -1
  55. package/dist/commands/ios/cp.js +4 -6
  56. package/dist/commands/ios/cp.js.map +1 -1
  57. package/dist/commands/ios/create.d.ts.map +1 -1
  58. package/dist/commands/ios/create.js +1 -5
  59. package/dist/commands/ios/create.js.map +1 -1
  60. package/dist/commands/ios/delete.js +2 -2
  61. package/dist/commands/ios/delete.js.map +1 -1
  62. package/dist/commands/ios/element-tree.d.ts.map +1 -1
  63. package/dist/commands/ios/element-tree.js +4 -6
  64. package/dist/commands/ios/element-tree.js.map +1 -1
  65. package/dist/commands/ios/get.d.ts +1 -1
  66. package/dist/commands/ios/get.d.ts.map +1 -1
  67. package/dist/commands/ios/get.js +19 -10
  68. package/dist/commands/ios/get.js.map +1 -1
  69. package/dist/commands/ios/info.d.ts.map +1 -1
  70. package/dist/commands/ios/info.js +3 -8
  71. package/dist/commands/ios/info.js.map +1 -1
  72. package/dist/commands/ios/install-app.d.ts.map +1 -1
  73. package/dist/commands/ios/install-app.js +4 -6
  74. package/dist/commands/ios/install-app.js.map +1 -1
  75. package/dist/commands/ios/launch-app.d.ts.map +1 -1
  76. package/dist/commands/ios/launch-app.js +3 -6
  77. package/dist/commands/ios/launch-app.js.map +1 -1
  78. package/dist/commands/ios/list-apps.d.ts.map +1 -1
  79. package/dist/commands/ios/list-apps.js +3 -6
  80. package/dist/commands/ios/list-apps.js.map +1 -1
  81. package/dist/commands/ios/lsof.d.ts.map +1 -1
  82. package/dist/commands/ios/lsof.js +4 -6
  83. package/dist/commands/ios/lsof.js.map +1 -1
  84. package/dist/commands/ios/open-url.d.ts.map +1 -1
  85. package/dist/commands/ios/open-url.js +4 -6
  86. package/dist/commands/ios/open-url.js.map +1 -1
  87. package/dist/commands/ios/perform.d.ts.map +1 -1
  88. package/dist/commands/ios/perform.js +4 -6
  89. package/dist/commands/ios/perform.js.map +1 -1
  90. package/dist/commands/ios/press-key.d.ts.map +1 -1
  91. package/dist/commands/ios/press-key.js +4 -6
  92. package/dist/commands/ios/press-key.js.map +1 -1
  93. package/dist/commands/ios/record.d.ts.map +1 -1
  94. package/dist/commands/ios/record.js +5 -10
  95. package/dist/commands/ios/record.js.map +1 -1
  96. package/dist/commands/ios/screenshot.d.ts.map +1 -1
  97. package/dist/commands/ios/screenshot.js +4 -6
  98. package/dist/commands/ios/screenshot.js.map +1 -1
  99. package/dist/commands/ios/scroll.d.ts.map +1 -1
  100. package/dist/commands/ios/scroll.js +6 -7
  101. package/dist/commands/ios/scroll.js.map +1 -1
  102. package/dist/commands/ios/simctl.d.ts.map +1 -1
  103. package/dist/commands/ios/simctl.js +4 -7
  104. package/dist/commands/ios/simctl.js.map +1 -1
  105. package/dist/commands/ios/sync.d.ts.map +1 -1
  106. package/dist/commands/ios/sync.js +6 -16
  107. package/dist/commands/ios/sync.js.map +1 -1
  108. package/dist/commands/ios/syslog.d.ts.map +1 -1
  109. package/dist/commands/ios/syslog.js +4 -7
  110. package/dist/commands/ios/syslog.js.map +1 -1
  111. package/dist/commands/ios/tap-element.d.ts.map +1 -1
  112. package/dist/commands/ios/tap-element.js +4 -6
  113. package/dist/commands/ios/tap-element.js.map +1 -1
  114. package/dist/commands/ios/tap.d.ts.map +1 -1
  115. package/dist/commands/ios/tap.js +4 -6
  116. package/dist/commands/ios/tap.js.map +1 -1
  117. package/dist/commands/ios/terminate-app.d.ts.map +1 -1
  118. package/dist/commands/ios/terminate-app.js +3 -6
  119. package/dist/commands/ios/terminate-app.js.map +1 -1
  120. package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
  121. package/dist/commands/ios/toggle-keyboard.js +4 -6
  122. package/dist/commands/ios/toggle-keyboard.js.map +1 -1
  123. package/dist/commands/ios/type.d.ts.map +1 -1
  124. package/dist/commands/ios/type.js +4 -6
  125. package/dist/commands/ios/type.js.map +1 -1
  126. package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
  127. package/dist/commands/ios/xcodebuild.js +4 -6
  128. package/dist/commands/ios/xcodebuild.js.map +1 -1
  129. package/dist/commands/ios/xcrun.d.ts.map +1 -1
  130. package/dist/commands/ios/xcrun.js +4 -6
  131. package/dist/commands/ios/xcrun.js.map +1 -1
  132. package/dist/commands/session/start.d.ts.map +1 -1
  133. package/dist/commands/session/start.js +43 -14
  134. package/dist/commands/session/start.js.map +1 -1
  135. package/dist/commands/session/status.js +2 -2
  136. package/dist/commands/session/status.js.map +1 -1
  137. package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
  138. package/dist/commands/xcode/attach-simulator.js +3 -2
  139. package/dist/commands/xcode/attach-simulator.js.map +1 -1
  140. package/dist/commands/xcode/build.d.ts.map +1 -1
  141. package/dist/commands/xcode/build.js +3 -2
  142. package/dist/commands/xcode/build.js.map +1 -1
  143. package/dist/commands/xcode/create.d.ts.map +1 -1
  144. package/dist/commands/xcode/create.js +2 -6
  145. package/dist/commands/xcode/create.js.map +1 -1
  146. package/dist/commands/xcode/delete.js +2 -2
  147. package/dist/commands/xcode/delete.js.map +1 -1
  148. package/dist/commands/xcode/get.d.ts +1 -1
  149. package/dist/commands/xcode/get.d.ts.map +1 -1
  150. package/dist/commands/xcode/get.js +36 -12
  151. package/dist/commands/xcode/get.js.map +1 -1
  152. package/dist/commands/xcode/sync.d.ts.map +1 -1
  153. package/dist/commands/xcode/sync.js +3 -2
  154. package/dist/commands/xcode/sync.js.map +1 -1
  155. package/dist/lib/config.d.ts +48 -21
  156. package/dist/lib/config.d.ts.map +1 -1
  157. package/dist/lib/config.js +184 -66
  158. package/dist/lib/config.js.map +1 -1
  159. package/dist/lib/instance-client-factory.d.ts +13 -7
  160. package/dist/lib/instance-client-factory.d.ts.map +1 -1
  161. package/dist/lib/instance-client-factory.js +52 -27
  162. package/dist/lib/instance-client-factory.js.map +1 -1
  163. package/package.json +1 -1
@@ -1,4 +1,7 @@
1
1
  import 'dotenv/config';
2
+ import { type AndroidInstance } from '@limrun/api/resources/android-instances';
3
+ import { type IosInstance } from '@limrun/api/resources/ios-instances';
4
+ import { type XcodeInstance } from '@limrun/api/resources/xcode-instances';
2
5
  export declare const CONFIG_KEYS: {
3
6
  readonly apiKey: "api-key";
4
7
  readonly apiEndpoint: "api-endpoint";
@@ -12,27 +15,51 @@ export interface LimConfig {
12
15
  export declare function readConfig(): LimConfig;
13
16
  export declare function writeConfig(partial: Partial<Record<string, string>>): void;
14
17
  export declare function clearApiKey(): void;
15
- interface LastInstances {
16
- ios?: string;
17
- android?: string;
18
- xcode?: string;
18
+ export interface LastAndroidInstance {
19
+ id: string;
20
+ type: 'android';
21
+ metadata?: AndroidInstance.Metadata;
22
+ spec?: AndroidInstance.Spec;
23
+ status?: AndroidInstance.Status;
24
+ apiUrl?: AndroidInstance.Status['apiUrl'];
25
+ token?: AndroidInstance.Status['token'];
26
+ adbWebSocketUrl?: AndroidInstance.Status['adbWebSocketUrl'];
27
+ endpointWebSocketUrl?: AndroidInstance.Status['endpointWebSocketUrl'];
28
+ mcpUrl?: AndroidInstance.Status['mcpUrl'];
29
+ signedStreamUrl?: AndroidInstance.Status['signedStreamUrl'];
30
+ targetHttpPortUrlPrefix?: AndroidInstance.Status['targetHttpPortUrlPrefix'];
19
31
  }
20
- type LastInstanceType = keyof LastInstances;
21
- export declare function saveLastInstanceId(instanceId: string, asType?: LastInstanceType): void;
22
- export declare function registerCreatedInstance(instanceId: string, relatedTypes?: LastInstanceType[]): void;
23
- export declare function loadLastInstanceId(type?: string): string | null;
24
- export declare function clearLastInstanceId(instanceId: string): void;
25
- /**
26
- * Resolve an instance ID from explicit arg, active session, or last-used fallback.
27
- * Throws with a helpful message if no ID can be determined.
28
- */
29
- export declare function resolveInstanceId(providedId: string | undefined, expectedType?: string): string;
30
- export interface InstanceCache {
31
- sandboxXcodeUrl?: string;
32
- token?: string;
32
+ export interface LastIosInstance {
33
+ id: string;
34
+ type: 'ios';
35
+ metadata?: IosInstance.Metadata;
36
+ spec?: IosInstance.Spec;
37
+ status?: IosInstance.Status;
38
+ apiUrl?: IosInstance.Status['apiUrl'];
39
+ token?: IosInstance.Status['token'];
40
+ endpointWebSocketUrl?: IosInstance.Status['endpointWebSocketUrl'];
41
+ mcpUrl?: IosInstance.Status['mcpUrl'];
42
+ signedStreamUrl?: IosInstance.Status['signedStreamUrl'];
43
+ targetHttpPortUrlPrefix?: IosInstance.Status['targetHttpPortUrlPrefix'];
44
+ sandboxXcodeUrl?: NonNullable<NonNullable<IosInstance.Status['sandbox']>['xcode']>['url'];
45
+ }
46
+ export interface LastXcodeInstance {
47
+ id: string;
48
+ type: 'xcode';
49
+ metadata?: XcodeInstance.Metadata;
50
+ spec?: XcodeInstance.Spec;
51
+ status?: XcodeInstance.Status;
52
+ apiUrl?: XcodeInstance.Status['apiUrl'];
53
+ token?: XcodeInstance.Status['token'];
33
54
  }
34
- export declare function saveInstanceCache(instanceId: string, data: InstanceCache): void;
35
- export declare function loadInstanceCache(instanceId: string): InstanceCache | null;
36
- export declare function clearInstanceCache(instanceId: string): void;
37
- export {};
55
+ export type InstanceInput = AndroidInstance | IosInstance | XcodeInstance;
56
+ export declare function registerCreatedInstance(instanceOrId: InstanceInput, relatedTypes?: Array<'xcode'>): void;
57
+ export declare function loadLastAndroidInstance(): LastAndroidInstance | null;
58
+ export declare function loadLastIosInstance(): LastIosInstance | null;
59
+ export declare function loadLastXcodeInstance(): LastIosInstance | LastXcodeInstance | null;
60
+ export declare function clearLastInstanceId(instanceId: string): void;
61
+ export declare function saveInstanceCache(instanceId: string, data: Partial<LastAndroidInstance> | Partial<LastIosInstance> | Partial<LastXcodeInstance>): void;
62
+ export declare function loadAndroidInstanceCache(instanceId: string): LastAndroidInstance | null;
63
+ export declare function loadIosInstanceCache(instanceId: string): LastIosInstance | null;
64
+ export declare function loadXcodeInstanceCache(instanceId: string): LastXcodeInstance | null;
38
65
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AASvB,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAOX,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AA0BD,wBAAgB,UAAU,IAAI,SAAS,CAWtC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAI1E;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAMD,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,gBAAgB,GAAG,MAAM,aAAa,CAAC;AAW5C,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAStF;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,gBAAgB,EAAO,GAAG,IAAI,CAKvG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAa5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAY/F;AAQD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM/E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQ1E;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAI3D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,15 @@ exports.CONFIG_KEYS = void 0;
7
7
  exports.readConfig = readConfig;
8
8
  exports.writeConfig = writeConfig;
9
9
  exports.clearApiKey = clearApiKey;
10
- exports.saveLastInstanceId = saveLastInstanceId;
11
10
  exports.registerCreatedInstance = registerCreatedInstance;
12
- exports.loadLastInstanceId = loadLastInstanceId;
11
+ exports.loadLastAndroidInstance = loadLastAndroidInstance;
12
+ exports.loadLastIosInstance = loadLastIosInstance;
13
+ exports.loadLastXcodeInstance = loadLastXcodeInstance;
13
14
  exports.clearLastInstanceId = clearLastInstanceId;
14
- exports.resolveInstanceId = resolveInstanceId;
15
15
  exports.saveInstanceCache = saveInstanceCache;
16
- exports.loadInstanceCache = loadInstanceCache;
17
- exports.clearInstanceCache = clearInstanceCache;
16
+ exports.loadAndroidInstanceCache = loadAndroidInstanceCache;
17
+ exports.loadIosInstanceCache = loadIosInstanceCache;
18
+ exports.loadXcodeInstanceCache = loadXcodeInstanceCache;
18
19
  require("dotenv/config");
19
20
  const fs_1 = __importDefault(require("fs"));
20
21
  const path_1 = __importDefault(require("path"));
@@ -78,41 +79,158 @@ function readLastInstances() {
78
79
  if (!fs_1.default.existsSync(LAST_INSTANCE_FILE))
79
80
  return {};
80
81
  try {
81
- return JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
82
+ const parsed = JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
83
+ if (isLastInstances(parsed)) {
84
+ return parsed;
85
+ }
82
86
  }
83
- catch {
84
- return {};
87
+ catch { }
88
+ deleteLastInstancesFile();
89
+ return {};
90
+ }
91
+ function deleteLastInstancesFile() {
92
+ try {
93
+ fs_1.default.unlinkSync(LAST_INSTANCE_FILE);
85
94
  }
95
+ catch { }
86
96
  }
87
- function saveLastInstanceId(instanceId, asType) {
88
- ensureConfigDir();
97
+ function isRecord(value) {
98
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
99
+ }
100
+ function isLastAndroidInstance(value) {
101
+ return isRecord(value) && value.type === 'android' && typeof value.id === 'string';
102
+ }
103
+ function isLastIosInstance(value) {
104
+ return isRecord(value) && value.type === 'ios' && typeof value.id === 'string';
105
+ }
106
+ function isLastXcodeInstance(value) {
107
+ return isRecord(value) && value.type === 'xcode' && typeof value.id === 'string';
108
+ }
109
+ function isLastInstances(value) {
110
+ if (!isRecord(value))
111
+ return false;
112
+ const keys = Object.keys(value);
113
+ if (keys.some((key) => !['ios', 'android', 'xcode'].includes(key)))
114
+ return false;
115
+ if (value.android !== undefined && !isLastAndroidInstance(value.android))
116
+ return false;
117
+ if (value.ios !== undefined && !isLastIosInstance(value.ios))
118
+ return false;
119
+ if (value.xcode !== undefined && !isLastIosInstance(value.xcode) && !isLastXcodeInstance(value.xcode)) {
120
+ return false;
121
+ }
122
+ return true;
123
+ }
124
+ function detectLastInstanceType(instanceId) {
89
125
  const rawPrefix = instanceId.split('_')[0];
90
- // Map sandbox_ prefix to xcode type
91
- const detectedType = (rawPrefix === 'sandbox' ? 'xcode' : rawPrefix);
92
- const prefix = asType ?? detectedType;
126
+ if (rawPrefix === 'android')
127
+ return 'android';
128
+ if (rawPrefix === 'ios')
129
+ return 'ios';
130
+ return 'xcode';
131
+ }
132
+ function isAndroidInstance(instance) {
133
+ return detectLastInstanceType(instance.metadata.id) === 'android';
134
+ }
135
+ function isIosInstance(instance) {
136
+ return detectLastInstanceType(instance.metadata.id) === 'ios';
137
+ }
138
+ function isXcodeInstance(instance) {
139
+ return detectLastInstanceType(instance.metadata.id) === 'xcode';
140
+ }
141
+ function buildLastInstanceRecord(instanceOrId) {
142
+ const id = instanceOrId.metadata.id;
143
+ if (isAndroidInstance(instanceOrId)) {
144
+ return {
145
+ id,
146
+ type: 'android',
147
+ metadata: instanceOrId.metadata,
148
+ spec: instanceOrId.spec,
149
+ status: instanceOrId.status,
150
+ apiUrl: instanceOrId.status.apiUrl,
151
+ token: instanceOrId.status.token,
152
+ adbWebSocketUrl: instanceOrId.status.adbWebSocketUrl,
153
+ endpointWebSocketUrl: instanceOrId.status.endpointWebSocketUrl,
154
+ mcpUrl: instanceOrId.status.mcpUrl,
155
+ signedStreamUrl: instanceOrId.status.signedStreamUrl,
156
+ targetHttpPortUrlPrefix: instanceOrId.status.targetHttpPortUrlPrefix,
157
+ };
158
+ }
159
+ if (isIosInstance(instanceOrId)) {
160
+ return {
161
+ id,
162
+ type: 'ios',
163
+ metadata: instanceOrId.metadata,
164
+ spec: instanceOrId.spec,
165
+ status: instanceOrId.status,
166
+ apiUrl: instanceOrId.status.apiUrl,
167
+ token: instanceOrId.status.token,
168
+ endpointWebSocketUrl: instanceOrId.status.endpointWebSocketUrl,
169
+ mcpUrl: instanceOrId.status.mcpUrl,
170
+ signedStreamUrl: instanceOrId.status.signedStreamUrl,
171
+ targetHttpPortUrlPrefix: instanceOrId.status.targetHttpPortUrlPrefix,
172
+ sandboxXcodeUrl: instanceOrId.status.sandbox?.xcode?.url,
173
+ };
174
+ }
175
+ if (isXcodeInstance(instanceOrId)) {
176
+ return {
177
+ id,
178
+ type: 'xcode',
179
+ metadata: instanceOrId.metadata,
180
+ spec: instanceOrId.spec,
181
+ status: instanceOrId.status,
182
+ apiUrl: instanceOrId.status.apiUrl,
183
+ token: instanceOrId.status.token,
184
+ };
185
+ }
186
+ return {
187
+ id,
188
+ type: 'xcode',
189
+ };
190
+ }
191
+ function saveLastInstance(instanceOrId, slot) {
192
+ ensureConfigDir();
193
+ const record = buildLastInstanceRecord(instanceOrId);
93
194
  const data = readLastInstances();
94
- data[prefix] = instanceId;
195
+ if (slot === 'xcode') {
196
+ if (record.type === 'ios' || record.type === 'xcode') {
197
+ data.xcode = record;
198
+ }
199
+ }
200
+ else if (record.type === 'android') {
201
+ data.android = record;
202
+ }
203
+ else if (record.type === 'ios') {
204
+ data.ios = record;
205
+ }
206
+ else {
207
+ data.xcode = record;
208
+ }
95
209
  fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
96
210
  }
97
- function registerCreatedInstance(instanceId, relatedTypes = []) {
98
- saveLastInstanceId(instanceId);
99
- for (const type of new Set(relatedTypes)) {
100
- saveLastInstanceId(instanceId, type);
211
+ function registerCreatedInstance(instanceOrId, relatedTypes = []) {
212
+ saveLastInstance(instanceOrId);
213
+ if (relatedTypes.includes('xcode')) {
214
+ saveLastInstance(instanceOrId, 'xcode');
101
215
  }
102
216
  }
103
- function loadLastInstanceId(type) {
217
+ function loadLastAndroidInstance() {
104
218
  const data = readLastInstances();
105
- if (type)
106
- return data[type] ?? null;
107
- // Return the most recently saved one (check all types)
108
- // Since we can't track order, prefer ios > android > xcode as a reasonable default
109
- return data.ios ?? data.android ?? data.xcode ?? null;
219
+ return data.android ?? null;
220
+ }
221
+ function loadLastIosInstance() {
222
+ const data = readLastInstances();
223
+ return data.ios ?? null;
224
+ }
225
+ function loadLastXcodeInstance() {
226
+ const data = readLastInstances();
227
+ return data.xcode ?? null;
110
228
  }
111
229
  function clearLastInstanceId(instanceId) {
112
230
  const data = readLastInstances();
113
231
  let changed = false;
114
232
  for (const key of Object.keys(data)) {
115
- if (data[key] === instanceId) {
233
+ if (data[key]?.id === instanceId) {
116
234
  delete data[key];
117
235
  changed = true;
118
236
  }
@@ -122,51 +240,51 @@ function clearLastInstanceId(instanceId) {
122
240
  fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
123
241
  }
124
242
  }
125
- /**
126
- * Resolve an instance ID from explicit arg, active session, or last-used fallback.
127
- * Throws with a helpful message if no ID can be determined.
128
- */
129
- function resolveInstanceId(providedId, expectedType) {
130
- if (providedId)
131
- return providedId;
132
- // Try last-used instance for the expected type
133
- const lastId = loadLastInstanceId(expectedType);
134
- if (lastId)
135
- return lastId;
136
- const typeHint = `${expectedType ?? '(ios|xcode|android)'}`.trim();
137
- throw new Error(`No instance ID provided and no recent${typeHint} instance found.\n` +
138
- `Provide an instance ID or create one first with: lim ${typeHint} create`);
139
- }
140
- // ---------- Instance metadata cache ----------
141
- // Stores data from create responses that the API doesn't return on get
142
- // (e.g. sandbox.xcode.url for iOS instances)
143
- const INSTANCES_DIR = path_1.default.join(CONFIG_DIR, 'instances');
144
- function instanceCachePath(instanceId) {
145
- // Sanitize ID for use as filename
146
- return path_1.default.join(INSTANCES_DIR, `${instanceId.replace(/[^a-zA-Z0-9_-]/g, '_')}.json`);
147
- }
148
243
  function saveInstanceCache(instanceId, data) {
149
- ensureConfigDir();
150
- if (!fs_1.default.existsSync(INSTANCES_DIR)) {
151
- fs_1.default.mkdirSync(INSTANCES_DIR, { recursive: true, mode: 0o700 });
244
+ const lastInstances = readLastInstances();
245
+ let changed = false;
246
+ if (lastInstances.android?.id === instanceId) {
247
+ lastInstances.android = {
248
+ ...lastInstances.android,
249
+ ...data,
250
+ type: 'android',
251
+ };
252
+ changed = true;
152
253
  }
153
- fs_1.default.writeFileSync(instanceCachePath(instanceId), JSON.stringify(data, null, 2), { mode: 0o600 });
154
- }
155
- function loadInstanceCache(instanceId) {
156
- const p = instanceCachePath(instanceId);
157
- if (!fs_1.default.existsSync(p))
158
- return null;
159
- try {
160
- return JSON.parse(fs_1.default.readFileSync(p, 'utf-8'));
254
+ if (lastInstances.ios?.id === instanceId) {
255
+ lastInstances.ios = {
256
+ ...lastInstances.ios,
257
+ ...data,
258
+ type: 'ios',
259
+ };
260
+ changed = true;
161
261
  }
162
- catch {
163
- return null;
262
+ if (lastInstances.xcode?.id === instanceId) {
263
+ lastInstances.xcode =
264
+ lastInstances.xcode.type === 'ios' ?
265
+ { ...lastInstances.xcode, ...data, type: 'ios' }
266
+ : { ...lastInstances.xcode, ...data, type: 'xcode' };
267
+ changed = true;
164
268
  }
165
- }
166
- function clearInstanceCache(instanceId) {
167
- try {
168
- fs_1.default.unlinkSync(instanceCachePath(instanceId));
269
+ if (changed) {
270
+ ensureConfigDir();
271
+ fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(lastInstances, null, 2), { mode: 0o600 });
169
272
  }
170
- catch { }
273
+ }
274
+ function loadAndroidInstanceCache(instanceId) {
275
+ const record = readLastInstances().android;
276
+ return record?.id === instanceId ? record : null;
277
+ }
278
+ function loadIosInstanceCache(instanceId) {
279
+ const data = readLastInstances();
280
+ if (data.ios?.id === instanceId)
281
+ return data.ios;
282
+ if (data.xcode?.type === 'ios' && data.xcode.id === instanceId)
283
+ return data.xcode;
284
+ return null;
285
+ }
286
+ function loadXcodeInstanceCache(instanceId) {
287
+ const record = readLastInstances().xcode;
288
+ return record?.type === 'xcode' && record.id === instanceId ? record : null;
171
289
  }
172
290
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
1
  import Limrun, { Ios, type InstanceClient } from '@limrun/api';
2
+ import { type LastAndroidInstance, type LastIosInstance } from './config';
2
3
  export type InstanceType = 'android' | 'ios' | 'xcode';
3
- export interface ResolvedInstanceClient {
4
- type: InstanceType;
5
- client: InstanceClient | Ios.InstanceClient;
4
+ export interface ResolvedAndroidInstanceClient {
5
+ type: 'android';
6
+ client: InstanceClient;
7
+ disconnect: () => void;
8
+ /** True if the client is backed by a daemon session (don't disconnect). */
9
+ isSession: boolean;
10
+ }
11
+ export interface ResolvedIosInstanceClient {
12
+ type: 'ios';
13
+ client: Ios.InstanceClient;
6
14
  disconnect: () => void;
7
15
  /** True if the client is backed by a daemon session (don't disconnect). */
8
16
  isSession: boolean;
@@ -16,8 +24,6 @@ export declare function hasActiveSession(id: string): boolean;
16
24
  * Send a command via the daemon session for the given instance ID.
17
25
  */
18
26
  export declare function sendSessionCommand(instanceId: string, command: string, args?: unknown[], timeoutMs?: number): Promise<unknown>;
19
- /**
20
- * Create a direct instance client (no daemon). Used when no session is active.
21
- */
22
- export declare function getInstanceClient(lim: Limrun, id: string): Promise<ResolvedInstanceClient>;
27
+ export declare function getAndroidInstanceClient(lim: Limrun, target: LastAndroidInstance): Promise<ResolvedAndroidInstanceClient>;
28
+ export declare function getIosInstanceClient(lim: Limrun, target: LastIosInstance): Promise<ResolvedIosInstanceClient>;
23
29
  //# sourceMappingURL=instance-client-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAGrF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;IAC5C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAQ3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,EAAO,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA8BhG"}
1
+ {"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAQ3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,EAAO,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,6BAA6B,CAAC,CA+BxC;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAuBpC"}
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.detectInstanceType = detectInstanceType;
4
4
  exports.hasActiveSession = hasActiveSession;
5
5
  exports.sendSessionCommand = sendSessionCommand;
6
- exports.getInstanceClient = getInstanceClient;
6
+ exports.getAndroidInstanceClient = getAndroidInstanceClient;
7
+ exports.getIosInstanceClient = getIosInstanceClient;
7
8
  const api_1 = require("@limrun/api");
8
9
  const daemon_client_1 = require("./daemon-client");
10
+ const config_1 = require("./config");
9
11
  function detectInstanceType(id) {
10
12
  const prefix = id.split('_')[0];
11
13
  if (prefix === 'android')
@@ -28,35 +30,58 @@ function hasActiveSession(id) {
28
30
  function sendSessionCommand(instanceId, command, args = [], timeoutMs) {
29
31
  return (0, daemon_client_1.sendCommand)(instanceId, command, args, timeoutMs);
30
32
  }
31
- /**
32
- * Create a direct instance client (no daemon). Used when no session is active.
33
- */
34
- async function getInstanceClient(lim, id) {
35
- const type = detectInstanceType(id);
36
- if (type === 'android') {
37
- const instance = await lim.androidInstances.get(id);
38
- const apiUrl = instance.status.apiUrl;
39
- const token = instance.status.token;
40
- if (!apiUrl) {
41
- throw new Error(`Android instance ${id} does not have an apiUrl. Is it ready?`);
42
- }
33
+ async function getAndroidInstanceClient(lim, target) {
34
+ if (target.apiUrl && target.token) {
43
35
  const client = await (0, api_1.createInstanceClient)({
44
- apiUrl,
45
- adbUrl: instance.status.adbWebSocketUrl,
46
- token,
36
+ apiUrl: target.apiUrl,
37
+ adbUrl: target.adbWebSocketUrl,
38
+ token: target.token,
47
39
  });
48
- return { type, client, disconnect: () => client.disconnect(), isSession: false };
40
+ return { type: 'android', client, disconnect: () => client.disconnect(), isSession: false };
41
+ }
42
+ const instance = await lim.androidInstances.get(target.id);
43
+ const apiUrl = instance.status.apiUrl;
44
+ const token = instance.status.token;
45
+ if (!apiUrl) {
46
+ throw new Error(`Android instance ${target.id} does not have an apiUrl. Is it ready?`);
47
+ }
48
+ (0, config_1.saveInstanceCache)(instance.metadata.id, {
49
+ apiUrl,
50
+ adbWebSocketUrl: instance.status.adbWebSocketUrl,
51
+ token,
52
+ endpointWebSocketUrl: instance.status.endpointWebSocketUrl,
53
+ mcpUrl: instance.status.mcpUrl,
54
+ signedStreamUrl: instance.status.signedStreamUrl,
55
+ targetHttpPortUrlPrefix: instance.status.targetHttpPortUrlPrefix,
56
+ });
57
+ const client = await (0, api_1.createInstanceClient)({
58
+ apiUrl,
59
+ adbUrl: instance.status.adbWebSocketUrl,
60
+ token,
61
+ });
62
+ return { type: 'android', client, disconnect: () => client.disconnect(), isSession: false };
63
+ }
64
+ async function getIosInstanceClient(lim, target) {
65
+ if (target.apiUrl && target.token) {
66
+ const client = await api_1.Ios.createInstanceClient({ apiUrl: target.apiUrl, token: target.token });
67
+ return { type: 'ios', client, disconnect: () => client.disconnect(), isSession: false };
49
68
  }
50
- if (type === 'ios') {
51
- const instance = await lim.iosInstances.get(id);
52
- const apiUrl = instance.status.apiUrl;
53
- const token = instance.status.token;
54
- if (!apiUrl) {
55
- throw new Error(`iOS instance ${id} does not have an apiUrl. Is it ready?`);
56
- }
57
- const client = await api_1.Ios.createInstanceClient({ apiUrl, token });
58
- return { type, client, disconnect: () => client.disconnect(), isSession: false };
69
+ const instance = await lim.iosInstances.get(target.id);
70
+ const apiUrl = instance.status.apiUrl;
71
+ const token = instance.status.token;
72
+ if (!apiUrl) {
73
+ throw new Error(`iOS instance ${target.id} does not have an apiUrl. Is it ready?`);
59
74
  }
60
- throw new Error(`Cannot create instance client for type "${type}". Only android and ios are supported.`);
75
+ (0, config_1.saveInstanceCache)(instance.metadata.id, {
76
+ apiUrl,
77
+ token,
78
+ endpointWebSocketUrl: instance.status.endpointWebSocketUrl,
79
+ mcpUrl: instance.status.mcpUrl,
80
+ signedStreamUrl: instance.status.signedStreamUrl,
81
+ targetHttpPortUrlPrefix: instance.status.targetHttpPortUrlPrefix,
82
+ sandboxXcodeUrl: instance.status.sandbox?.xcode?.url,
83
+ });
84
+ const client = await api_1.Ios.createInstanceClient({ apiUrl, token });
85
+ return { type: 'ios', client, disconnect: () => client.disconnect(), isSession: false };
61
86
  }
62
87
  //# sourceMappingURL=instance-client-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":";;AAaA,gDAQC;AAKD,4CAEC;AAKD,gDAOC;AAKD,8CA8BC;AA3ED,qCAAqF;AACrF,mDAA+D;AAY/D,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/D,MAAM,IAAI,KAAK,CACb,wCAAwC,EAAE,iEAAiE,CAC5G,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,EAAU;IACzC,OAAO,IAAA,+BAAe,EAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,UAAkB,EAClB,OAAe,EACf,OAAkB,EAAE,EACpB,SAAkB;IAElB,OAAO,IAAA,2BAAW,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,EAAU;IAC7D,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAoB,EAAC;YACxC,MAAM;YACN,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;YACvC,KAAK;SACN,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAG,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,wCAAwC,CAAC,CAAC;AAC3G,CAAC"}
1
+ {"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":";;AAsBA,gDAQC;AAKD,4CAEC;AAKD,gDAOC;AAED,4DAkCC;AAED,oDA0BC;AAjHD,qCAAqF;AACrF,mDAA+D;AAC/D,qCAA6F;AAoB7F,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/D,MAAM,IAAI,KAAK,CACb,wCAAwC,EAAE,iEAAiE,CAC5G,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,EAAU;IACzC,OAAO,IAAA,+BAAe,EAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,UAAkB,EAClB,OAAe,EACf,OAAkB,EAAE,EACpB,SAAkB;IAElB,OAAO,IAAA,2BAAW,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,GAAW,EACX,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAoB,EAAC;YACxC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,eAAe;YAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9F,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,EAAE,wCAAwC,CAAC,CAAC;IACzF,CAAC;IACD,IAAA,0BAAiB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;QACtC,MAAM;QACN,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,KAAK;QACL,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB;QAC1D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;QAC9B,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB;KACjE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAoB,EAAC;QACxC,MAAM;QACN,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QACvC,KAAK;KACN,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9F,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,MAAuB;IAEvB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,SAAG,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1F,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,wCAAwC,CAAC,CAAC;IACrF,CAAC;IACD,IAAA,0BAAiB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;QACtC,MAAM;QACN,KAAK;QACL,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB;QAC1D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;QAC9B,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB;QAChE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG;KACrD,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,SAAG,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC1F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limrun/cli",
3
- "version": "0.5.1",
3
+ "version": "0.6.1",
4
4
  "description": "Use remote XCode, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
5
5
  "bin": {
6
6
  "lim": "./bin/run.js"