@limrun/cli 0.2.5 → 0.2.7
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.
- package/README.md +30 -25
- package/dist/commands/android/connect.d.ts +2 -3
- package/dist/commands/android/connect.d.ts.map +1 -1
- package/dist/commands/android/connect.js +4 -5
- package/dist/commands/android/connect.js.map +1 -1
- package/dist/commands/android/get.d.ts +15 -0
- package/dist/commands/android/get.d.ts.map +1 -0
- package/dist/commands/android/get.js +33 -0
- package/dist/commands/android/get.js.map +1 -0
- package/dist/commands/android/list.d.ts +1 -4
- package/dist/commands/android/list.d.ts.map +1 -1
- package/dist/commands/android/list.js +4 -24
- package/dist/commands/android/list.js.map +1 -1
- package/dist/commands/exec/element-tree.d.ts +2 -3
- package/dist/commands/exec/element-tree.d.ts.map +1 -1
- package/dist/commands/exec/element-tree.js +10 -6
- package/dist/commands/exec/element-tree.js.map +1 -1
- package/dist/commands/exec/install-app.d.ts +1 -1
- package/dist/commands/exec/install-app.d.ts.map +1 -1
- package/dist/commands/exec/install-app.js +7 -5
- package/dist/commands/exec/install-app.js.map +1 -1
- package/dist/commands/exec/open-url.d.ts +1 -1
- package/dist/commands/exec/open-url.d.ts.map +1 -1
- package/dist/commands/exec/open-url.js +9 -4
- package/dist/commands/exec/open-url.js.map +1 -1
- package/dist/commands/exec/press-key.d.ts +1 -1
- package/dist/commands/exec/press-key.d.ts.map +1 -1
- package/dist/commands/exec/press-key.js +4 -4
- package/dist/commands/exec/press-key.js.map +1 -1
- package/dist/commands/exec/record.d.ts +3 -1
- package/dist/commands/exec/record.d.ts.map +1 -1
- package/dist/commands/exec/record.js +27 -20
- package/dist/commands/exec/record.js.map +1 -1
- package/dist/commands/exec/screenshot.d.ts +2 -3
- package/dist/commands/exec/screenshot.d.ts.map +1 -1
- package/dist/commands/exec/screenshot.js +6 -7
- package/dist/commands/exec/screenshot.js.map +1 -1
- package/dist/commands/exec/scroll.d.ts +1 -1
- package/dist/commands/exec/scroll.d.ts.map +1 -1
- package/dist/commands/exec/scroll.js +6 -3
- package/dist/commands/exec/scroll.js.map +1 -1
- package/dist/commands/exec/tap-element.d.ts +2 -3
- package/dist/commands/exec/tap-element.d.ts.map +1 -1
- package/dist/commands/exec/tap-element.js +6 -7
- package/dist/commands/exec/tap-element.js.map +1 -1
- package/dist/commands/exec/tap.d.ts +1 -1
- package/dist/commands/exec/tap.d.ts.map +1 -1
- package/dist/commands/exec/tap.js +9 -4
- package/dist/commands/exec/tap.js.map +1 -1
- package/dist/commands/exec/type.d.ts +1 -1
- package/dist/commands/exec/type.d.ts.map +1 -1
- package/dist/commands/exec/type.js +6 -3
- package/dist/commands/exec/type.js.map +1 -1
- package/dist/commands/ios/get.d.ts +15 -0
- package/dist/commands/ios/get.d.ts.map +1 -0
- package/dist/commands/ios/get.js +33 -0
- package/dist/commands/ios/get.js.map +1 -0
- package/dist/commands/ios/launch-app.d.ts +1 -1
- package/dist/commands/ios/launch-app.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.js +4 -4
- package/dist/commands/ios/launch-app.js.map +1 -1
- package/dist/commands/ios/list-apps.d.ts +2 -3
- package/dist/commands/ios/list-apps.d.ts.map +1 -1
- package/dist/commands/ios/list-apps.js +7 -6
- package/dist/commands/ios/list-apps.js.map +1 -1
- package/dist/commands/ios/list.d.ts +1 -4
- package/dist/commands/ios/list.d.ts.map +1 -1
- package/dist/commands/ios/list.js +4 -24
- package/dist/commands/ios/list.js.map +1 -1
- package/dist/commands/ios/log.d.ts +1 -1
- package/dist/commands/ios/log.d.ts.map +1 -1
- package/dist/commands/ios/log.js +5 -5
- package/dist/commands/ios/log.js.map +1 -1
- package/dist/commands/ios/terminate-app.d.ts +1 -1
- package/dist/commands/ios/terminate-app.d.ts.map +1 -1
- package/dist/commands/ios/terminate-app.js +9 -4
- package/dist/commands/ios/terminate-app.js.map +1 -1
- package/dist/commands/session/start.d.ts +2 -3
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/start.js +9 -7
- package/dist/commands/session/start.js.map +1 -1
- package/dist/commands/session/status.js +1 -1
- package/dist/commands/session/status.js.map +1 -1
- package/dist/commands/session/stop.d.ts +2 -3
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/session/stop.js +13 -10
- package/dist/commands/session/stop.js.map +1 -1
- package/dist/commands/xcode/get.d.ts +15 -0
- package/dist/commands/xcode/get.d.ts.map +1 -0
- package/dist/commands/xcode/get.js +33 -0
- package/dist/commands/xcode/get.js.map +1 -0
- package/dist/commands/xcode/list.d.ts +1 -4
- package/dist/commands/xcode/list.d.ts.map +1 -1
- package/dist/commands/xcode/list.js +4 -24
- package/dist/commands/xcode/list.js.map +1 -1
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/daemon.js +33 -0
- package/dist/lib/daemon.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -64,14 +64,14 @@ lim session start # Starts session for ios_abc123
|
|
|
64
64
|
You can always provide an ID explicitly to target a specific instance:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
lim ios screenshot
|
|
67
|
+
lim ios screenshot -o test.png --id ios_def456
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
**Top-level shortcuts** are available for common actions — the platform is auto-detected from the instance ID prefix:
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
lim screenshot ios_abc123 # Works for both iOS and Android
|
|
74
|
-
lim tap 100 200 ios_abc123 # Auto-detects platform from ID prefix
|
|
73
|
+
lim screenshot --id ios_abc123 # Works for both iOS and Android
|
|
74
|
+
lim tap 100 200 --id ios_abc123 # Auto-detects platform from ID prefix
|
|
75
75
|
lim delete ios_abc123 # Auto-detects resource type from ID prefix
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -91,7 +91,7 @@ lim delete ios_abc123 # Auto-detects resource type from ID prefix
|
|
|
91
91
|
```bash
|
|
92
92
|
lim ios create # Create a new iOS instance
|
|
93
93
|
lim ios list # List all ready iOS instances
|
|
94
|
-
lim ios
|
|
94
|
+
lim ios get <ID> # Get details of a specific instance
|
|
95
95
|
lim ios delete <ID> # Delete an instance
|
|
96
96
|
```
|
|
97
97
|
|
|
@@ -139,11 +139,12 @@ lim ios list --state creating # Filter by state
|
|
|
139
139
|
lim ios list --region us-west # Filter by region
|
|
140
140
|
lim ios list --label-selector env=prod # Filter by labels
|
|
141
141
|
lim ios list --json # JSON output
|
|
142
|
+
lim ios get <ID> # Single instance details
|
|
142
143
|
```
|
|
143
144
|
|
|
144
145
|
#### Device Interaction
|
|
145
146
|
|
|
146
|
-
All interaction commands accept an optional
|
|
147
|
+
All interaction commands accept an optional `--id`. When omitted, the last created iOS instance is used.
|
|
147
148
|
|
|
148
149
|
```bash
|
|
149
150
|
# Screenshots
|
|
@@ -204,7 +205,9 @@ lim ios log com.example.myapp -f
|
|
|
204
205
|
```bash
|
|
205
206
|
lim ios record start
|
|
206
207
|
lim ios record start --quality 8
|
|
208
|
+
lim ios record stop
|
|
207
209
|
lim ios record stop -o recording.mp4
|
|
210
|
+
lim ios record stop --presigned-url https://example.com/upload
|
|
208
211
|
```
|
|
209
212
|
|
|
210
213
|
#### Xcode Integration
|
|
@@ -222,7 +225,7 @@ lim ios build --scheme MyApp --workspace MyApp.xcworkspace
|
|
|
222
225
|
```bash
|
|
223
226
|
lim android create # Create a new Android instance
|
|
224
227
|
lim android list # List all ready Android instances
|
|
225
|
-
lim android
|
|
228
|
+
lim android get <ID> # Get details of a specific instance
|
|
226
229
|
lim android delete <ID> # Delete an instance
|
|
227
230
|
```
|
|
228
231
|
|
|
@@ -252,7 +255,7 @@ lim android create --region us-west --display-name "CI Test" --label env=ci --rm
|
|
|
252
255
|
|
|
253
256
|
#### Device Interaction
|
|
254
257
|
|
|
255
|
-
All interaction commands accept an optional
|
|
258
|
+
All interaction commands accept an optional `--id`. When omitted, the last created Android instance is used.
|
|
256
259
|
|
|
257
260
|
```bash
|
|
258
261
|
# Screenshots
|
|
@@ -281,7 +284,9 @@ lim android open-url https://example.com
|
|
|
281
284
|
|
|
282
285
|
# Video recording
|
|
283
286
|
lim android record start
|
|
287
|
+
lim android record stop
|
|
284
288
|
lim android record stop -o recording.mp4
|
|
289
|
+
lim android record stop --presigned-url https://example.com/upload
|
|
285
290
|
```
|
|
286
291
|
|
|
287
292
|
#### ADB Tunnel
|
|
@@ -290,7 +295,7 @@ Connect to a running Android instance for direct `adb` access:
|
|
|
290
295
|
|
|
291
296
|
```bash
|
|
292
297
|
lim android connect
|
|
293
|
-
lim android connect android_abc123 --adb-path /usr/local/bin/adb
|
|
298
|
+
lim android connect --id android_abc123 --adb-path /usr/local/bin/adb
|
|
294
299
|
```
|
|
295
300
|
|
|
296
301
|
The tunnel stays open until you press Ctrl+C. While connected, you can use `adb` commands in another terminal.
|
|
@@ -304,7 +309,7 @@ Standalone Xcode build sandboxes for remote compilation.
|
|
|
304
309
|
```bash
|
|
305
310
|
lim xcode create # Create a new Xcode sandbox
|
|
306
311
|
lim xcode list # List all ready Xcode instances
|
|
307
|
-
lim xcode
|
|
312
|
+
lim xcode get <ID> # Get details of a specific instance
|
|
308
313
|
lim xcode delete <ID> # Delete an instance
|
|
309
314
|
```
|
|
310
315
|
|
|
@@ -385,18 +390,18 @@ This makes sessions essential for interactive workflows, AI agent loops, and any
|
|
|
385
390
|
lim session start
|
|
386
391
|
|
|
387
392
|
# Or specify an instance explicitly
|
|
388
|
-
lim session start ios_abc123
|
|
393
|
+
lim session start --id ios_abc123
|
|
389
394
|
|
|
390
395
|
# Multiple sessions can run simultaneously
|
|
391
|
-
lim session start ios_abc123
|
|
392
|
-
lim session start android_def456
|
|
396
|
+
lim session start --id ios_abc123
|
|
397
|
+
lim session start --id android_def456
|
|
393
398
|
|
|
394
399
|
# Check all active sessions
|
|
395
400
|
lim session status
|
|
396
401
|
lim session status --json
|
|
397
402
|
|
|
398
403
|
# Stop a specific session
|
|
399
|
-
lim session stop ios_abc123
|
|
404
|
+
lim session stop --id ios_abc123
|
|
400
405
|
|
|
401
406
|
# Stop all sessions at once
|
|
402
407
|
lim session stop --all
|
|
@@ -436,18 +441,18 @@ lim ios delete ios_abc123
|
|
|
436
441
|
# Create two instances and start sessions for both
|
|
437
442
|
lim ios create --model iphone
|
|
438
443
|
lim ios create --model ipad
|
|
439
|
-
lim session start ios_phone_123
|
|
440
|
-
lim session start ios_tablet_456
|
|
444
|
+
lim session start --id ios_phone_123
|
|
445
|
+
lim session start --id ios_tablet_456
|
|
441
446
|
|
|
442
447
|
# Agent controls both devices in parallel — ~50ms per command
|
|
443
|
-
lim ios launch-app com.example.myapp ios_phone_123
|
|
444
|
-
lim ios launch-app com.example.myapp ios_tablet_456
|
|
448
|
+
lim ios launch-app com.example.myapp --id ios_phone_123
|
|
449
|
+
lim ios launch-app com.example.myapp --id ios_tablet_456
|
|
445
450
|
|
|
446
|
-
lim ios screenshot
|
|
447
|
-
lim ios screenshot
|
|
451
|
+
lim ios screenshot -o phone.png --id ios_phone_123
|
|
452
|
+
lim ios screenshot -o tablet.png --id ios_tablet_456
|
|
448
453
|
|
|
449
|
-
lim ios tap 200 400 ios_phone_123
|
|
450
|
-
lim ios element-tree ios_tablet_456 --json > tablet-tree.json
|
|
454
|
+
lim ios tap 200 400 --id ios_phone_123
|
|
455
|
+
lim ios element-tree --id ios_tablet_456 --json > tablet-tree.json
|
|
451
456
|
|
|
452
457
|
# Clean up all sessions
|
|
453
458
|
lim session stop --all
|
|
@@ -464,14 +469,14 @@ IDS=()
|
|
|
464
469
|
|
|
465
470
|
for model in "${DEVICES[@]}"; do
|
|
466
471
|
ID=$(lim ios create --model $model --json | jq -r '.metadata.id')
|
|
467
|
-
lim session start $ID
|
|
472
|
+
lim session start --id $ID
|
|
468
473
|
IDS+=($ID)
|
|
469
474
|
done
|
|
470
475
|
|
|
471
476
|
# Run tests against all devices
|
|
472
477
|
for ID in "${IDS[@]}"; do
|
|
473
|
-
lim ios launch-app com.example.myapp $ID
|
|
474
|
-
lim ios screenshot
|
|
478
|
+
lim ios launch-app com.example.myapp --id $ID
|
|
479
|
+
lim ios screenshot -o "test_${ID}.png" --id $ID
|
|
475
480
|
done
|
|
476
481
|
|
|
477
482
|
# Tear down
|
|
@@ -586,7 +591,7 @@ All commands support `--json` for machine-readable output, making the CLI suitab
|
|
|
586
591
|
|
|
587
592
|
```bash
|
|
588
593
|
# Get instance details as JSON
|
|
589
|
-
lim ios
|
|
594
|
+
lim ios get ios_abc123 --json
|
|
590
595
|
|
|
591
596
|
# Parse with jq
|
|
592
597
|
lim android list --json | jq '.[].metadata.id'
|
|
@@ -3,10 +3,9 @@ export default class AndroidConnect extends BaseCommand {
|
|
|
3
3
|
static summary: string;
|
|
4
4
|
static aliases: string[];
|
|
5
5
|
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
-
};
|
|
6
|
+
static args: {};
|
|
9
7
|
static flags: {
|
|
8
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
9
|
'adb-path': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
10
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
11
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +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;AAEjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA4D;IAC1E,MAAM,CAAC,OAAO,WAAuB;IACrC,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/android/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA4D;IAC1E,MAAM,CAAC,OAAO,WAAuB;IACrC,MAAM,CAAC,QAAQ,WAAwF;IAEvG,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC3B"}
|
|
@@ -40,7 +40,7 @@ class AndroidConnect extends base_command_1.BaseCommand {
|
|
|
40
40
|
const { args, flags } = await this.parse(AndroidConnect);
|
|
41
41
|
this.setParsedFlags(flags);
|
|
42
42
|
await this.withAuth(async () => {
|
|
43
|
-
const id = this.resolveId(
|
|
43
|
+
const id = this.resolveId(flags.id);
|
|
44
44
|
const instance = await this.client.androidInstances.get(id);
|
|
45
45
|
if (!instance.status.apiUrl) {
|
|
46
46
|
this.error(`Instance ${id} does not have an apiUrl. Is it ready?`);
|
|
@@ -70,12 +70,11 @@ class AndroidConnect extends base_command_1.BaseCommand {
|
|
|
70
70
|
}
|
|
71
71
|
AndroidConnect.summary = 'Connect to an existing Android instance via ADB tunnel';
|
|
72
72
|
AndroidConnect.aliases = ['connect android'];
|
|
73
|
-
AndroidConnect.examples = ['<%= config.bin %> android connect <ID>'];
|
|
74
|
-
AndroidConnect.args = {
|
|
75
|
-
id: core_1.Args.string({ description: 'Android instance ID (defaults to last created)', required: false }),
|
|
76
|
-
};
|
|
73
|
+
AndroidConnect.examples = ['<%= config.bin %> android connect', '<%= config.bin %> android connect --id <ID>'];
|
|
74
|
+
AndroidConnect.args = {};
|
|
77
75
|
AndroidConnect.flags = {
|
|
78
76
|
...base_command_1.BaseCommand.baseFlags,
|
|
77
|
+
id: core_1.Flags.string({ description: 'Android instance ID (defaults to last created)' }),
|
|
79
78
|
'adb-path': core_1.Flags.string({ description: 'Path to adb binary', default: 'adb' }),
|
|
80
79
|
};
|
|
81
80
|
exports.default = AndroidConnect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/android/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/android/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAoC;AACpC,qDAAiD;AAEjD,MAAqB,cAAe,SAAQ,0BAAW;IAarD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;gBAChD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;gBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;gBACvC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAElD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,GAAG,EAAE;oBACpB,aAAa,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAC/B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;;AA/CM,sBAAO,GAAG,wDAAwD,CAAC;AACnE,sBAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC9B,uBAAQ,GAAG,CAAC,mCAAmC,EAAE,6CAA6C,CAAC,CAAC;AAEhG,mBAAI,GAAG,EAAE,CAAC;AAEV,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IACnF,UAAU,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CAChF,CAAC;kBAXiB,cAAc"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class AndroidGet extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, 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
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/android/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,OAAO,SAAiD;IAC/D,MAAM,CAAC,OAAO,WAA4B;IAC1C,MAAM,CAAC,QAAQ,WAA0C;IAEzD,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB3B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 AndroidGet extends base_command_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const { args, flags } = await this.parse(AndroidGet);
|
|
8
|
+
this.setParsedFlags(flags);
|
|
9
|
+
await this.withAuth(async () => {
|
|
10
|
+
const instance = await this.client.androidInstances.get(args.id);
|
|
11
|
+
if (flags.json) {
|
|
12
|
+
this.outputJson(instance);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.outputTable(['Field', 'Value'], [
|
|
16
|
+
['ID', instance.metadata.id],
|
|
17
|
+
['Name', instance.metadata.displayName || ''],
|
|
18
|
+
['Region', instance.spec.region],
|
|
19
|
+
['State', instance.status.state],
|
|
20
|
+
]);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
AndroidGet.summary = 'Get details for a specific Android instance';
|
|
26
|
+
AndroidGet.aliases = ['get android', 'get a'];
|
|
27
|
+
AndroidGet.examples = ['<%= config.bin %> android get <ID>'];
|
|
28
|
+
AndroidGet.args = {
|
|
29
|
+
id: core_1.Args.string({ description: 'Instance ID to get', required: true }),
|
|
30
|
+
};
|
|
31
|
+
AndroidGet.flags = { ...base_command_1.BaseCommand.baseFlags };
|
|
32
|
+
exports.default = AndroidGet;
|
|
33
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/android/get.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,UAAW,SAAQ,0BAAW;IAWjD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CACd,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB;oBACE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;oBAC7C,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;oBAChC,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;iBACjC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA9BM,kBAAO,GAAG,6CAA6C,CAAC;AACxD,kBAAO,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACnC,mBAAQ,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAElD,eAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACvE,CAAC;AAEK,gBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBATzB,UAAU"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { BaseCommand } from '../../base-command';
|
|
2
2
|
export default class AndroidList extends BaseCommand {
|
|
3
3
|
static summary: string;
|
|
4
|
-
static aliases: string[];
|
|
5
4
|
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
-
};
|
|
5
|
+
static args: {};
|
|
9
6
|
static flags: {
|
|
10
7
|
state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
8
|
region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/android/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/android/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAA4B;IAC1C,MAAM,CAAC,QAAQ,WAAsC;IAErD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B3B"}
|
|
@@ -4,26 +4,9 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const base_command_1 = require("../../base-command");
|
|
5
5
|
class AndroidList extends base_command_1.BaseCommand {
|
|
6
6
|
async run() {
|
|
7
|
-
const {
|
|
7
|
+
const { flags } = await this.parse(AndroidList);
|
|
8
8
|
this.setParsedFlags(flags);
|
|
9
9
|
await this.withAuth(async () => {
|
|
10
|
-
if (args.id) {
|
|
11
|
-
const instance = await this.client.androidInstances.get(args.id);
|
|
12
|
-
if (flags.json) {
|
|
13
|
-
this.outputJson(instance);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
this.outputTable(['ID', 'Name', 'Region', 'State'], [
|
|
17
|
-
[
|
|
18
|
-
instance.metadata.id,
|
|
19
|
-
instance.metadata.displayName || '',
|
|
20
|
-
instance.spec.region,
|
|
21
|
-
instance.status.state,
|
|
22
|
-
],
|
|
23
|
-
]);
|
|
24
|
-
}
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
10
|
const params = {};
|
|
28
11
|
if (flags.state) {
|
|
29
12
|
params.state = flags.state;
|
|
@@ -52,12 +35,9 @@ class AndroidList extends base_command_1.BaseCommand {
|
|
|
52
35
|
});
|
|
53
36
|
}
|
|
54
37
|
}
|
|
55
|
-
AndroidList.summary = 'List Android instances
|
|
56
|
-
AndroidList.
|
|
57
|
-
AndroidList.
|
|
58
|
-
AndroidList.args = {
|
|
59
|
-
id: core_1.Args.string({ description: 'Instance ID to get', required: false }),
|
|
60
|
-
};
|
|
38
|
+
AndroidList.summary = 'List Android instances';
|
|
39
|
+
AndroidList.examples = ['<%= config.bin %> android list'];
|
|
40
|
+
AndroidList.args = {};
|
|
61
41
|
AndroidList.flags = {
|
|
62
42
|
...base_command_1.BaseCommand.baseFlags,
|
|
63
43
|
state: core_1.Flags.string({ description: 'Filter by state (unknown, creating, ready, terminated)' }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/android/list.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/android/list.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AAEjD,MAAqB,WAAY,SAAQ,0BAAW;IAclD,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,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/C,IAAI,KAAK,CAAC,gBAAgB,CAAC;gBAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACjC,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACb,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;gBAC5B,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC,MAAM,CAAC,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA1CM,mBAAO,GAAG,wBAAwB,CAAC;AACnC,oBAAQ,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAE9C,gBAAI,GAAG,EAAE,CAAC;AAEV,iBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;IAC9F,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IACzD,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IAClG,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CACvF,CAAC;kBAZiB,WAAW"}
|
|
@@ -3,10 +3,9 @@ export default class ExecElementTree extends BaseCommand {
|
|
|
3
3
|
static summary: string;
|
|
4
4
|
static aliases: string[];
|
|
5
5
|
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
-
};
|
|
6
|
+
static args: {};
|
|
9
7
|
static flags: {
|
|
8
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
9
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
10
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-tree.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/element-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,MAAM,CAAC,OAAO,SAAqD;IACnE,MAAM,CAAC,OAAO,WAAgD;IAC9D,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"element-tree.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/element-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,MAAM,CAAC,OAAO,SAAqD;IACnE,MAAM,CAAC,OAAO,WAAgD;IAC9D,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiC3B"}
|
|
@@ -5,10 +5,10 @@ const base_command_1 = require("../../base-command");
|
|
|
5
5
|
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
6
6
|
class ExecElementTree extends base_command_1.BaseCommand {
|
|
7
7
|
async run() {
|
|
8
|
-
const {
|
|
8
|
+
const { flags } = await this.parse(ExecElementTree);
|
|
9
9
|
this.setParsedFlags(flags);
|
|
10
10
|
await this.withAuth(async () => {
|
|
11
|
-
const id = this.resolveId(
|
|
11
|
+
const id = this.resolveId(flags.id);
|
|
12
12
|
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
13
13
|
const tree = await (0, instance_client_factory_1.sendSessionCommand)(id, 'element-tree');
|
|
14
14
|
if (flags.json) {
|
|
@@ -44,10 +44,14 @@ class ExecElementTree extends base_command_1.BaseCommand {
|
|
|
44
44
|
}
|
|
45
45
|
ExecElementTree.summary = 'Get the UI element tree from a running instance';
|
|
46
46
|
ExecElementTree.aliases = ['ios element-tree', 'android element-tree'];
|
|
47
|
-
ExecElementTree.examples = [
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
ExecElementTree.examples = [
|
|
48
|
+
'<%= config.bin %> ios element-tree',
|
|
49
|
+
'<%= config.bin %> ios element-tree --id <instance-ID>',
|
|
50
|
+
];
|
|
51
|
+
ExecElementTree.args = {};
|
|
52
|
+
ExecElementTree.flags = {
|
|
53
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
54
|
+
id: core_1.Flags.string({ description: 'Instance ID (defaults to last created)' }),
|
|
50
55
|
};
|
|
51
|
-
ExecElementTree.flags = { ...base_command_1.BaseCommand.baseFlags };
|
|
52
56
|
exports.default = ExecElementTree;
|
|
53
57
|
//# sourceMappingURL=element-tree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-tree.js","sourceRoot":"","sources":["../../../src/commands/exec/element-tree.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"element-tree.js","sourceRoot":"","sources":["../../../src/commands/exec/element-tree.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,eAAgB,SAAQ,0BAAW;IAetD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,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;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9E,IAAI,CAAC;oBACH,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;wBACnB,MAAM,IAAI,GAAG,MAAO,MAAc,CAAC,WAAW,EAAE,CAAC;wBACjD,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;oBAC5E,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,GAAG,MAAO,MAAc,CAAC,cAAc,EAAE,CAAC;wBACpD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;4BACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACxB,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC5D,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA9CM,uBAAO,GAAG,iDAAiD,CAAC;AAC5D,uBAAO,GAAG,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AACvD,wBAAQ,GAAG;IAChB,oCAAoC;IACpC,uDAAuD;CACxD,CAAC;AAEK,oBAAI,GAAG,EAAE,CAAC;AAEV,qBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;CAC5E,CAAC;kBAbiB,eAAe"}
|
|
@@ -6,9 +6,9 @@ export default class ExecInstallApp extends BaseCommand {
|
|
|
6
6
|
static examples: string[];
|
|
7
7
|
static args: {
|
|
8
8
|
path_or_url: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
10
9
|
};
|
|
11
10
|
static flags: {
|
|
11
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/install-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA0C;IACxD,MAAM,CAAC,WAAW,SACkF;IACpG,MAAM,CAAC,OAAO,WAA8C;IAE5D,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/install-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAA0C;IACxD,MAAM,CAAC,WAAW,SACkF;IACpG,MAAM,CAAC,OAAO,WAA8C;IAE5D,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD3B"}
|
|
@@ -13,7 +13,7 @@ class ExecInstallApp extends base_command_1.BaseCommand {
|
|
|
13
13
|
const { args, flags } = await this.parse(ExecInstallApp);
|
|
14
14
|
this.setParsedFlags(flags);
|
|
15
15
|
await this.withAuth(async () => {
|
|
16
|
-
const id = this.resolveId(
|
|
16
|
+
const id = this.resolveId(flags.id);
|
|
17
17
|
let downloadUrl;
|
|
18
18
|
if (args.path_or_url.startsWith('http://') || args.path_or_url.startsWith('https://')) {
|
|
19
19
|
downloadUrl = args.path_or_url;
|
|
@@ -65,13 +65,15 @@ ExecInstallApp.summary = 'Install an app on a running instance';
|
|
|
65
65
|
ExecInstallApp.description = 'Installs an app from a local file or URL. Local files are auto-uploaded to asset storage first.';
|
|
66
66
|
ExecInstallApp.aliases = ['ios install-app', 'android install-app'];
|
|
67
67
|
ExecInstallApp.examples = [
|
|
68
|
-
'<%= config.bin %> ios install-app
|
|
69
|
-
'<%= config.bin %> android install-app <instance-ID>
|
|
68
|
+
'<%= config.bin %> ios install-app ./MyApp.ipa',
|
|
69
|
+
'<%= config.bin %> android install-app ./app.apk --id <instance-ID>',
|
|
70
70
|
];
|
|
71
71
|
ExecInstallApp.args = {
|
|
72
72
|
path_or_url: core_1.Args.string({ description: 'Local file path or URL', required: true }),
|
|
73
|
-
id: core_1.Args.string({ description: 'Instance ID (defaults to last created)', required: false }),
|
|
74
73
|
};
|
|
75
|
-
ExecInstallApp.flags = {
|
|
74
|
+
ExecInstallApp.flags = {
|
|
75
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
76
|
+
id: core_1.Flags.string({ description: 'Instance ID (defaults to last created)' }),
|
|
77
|
+
};
|
|
76
78
|
exports.default = ExecInstallApp;
|
|
77
79
|
//# sourceMappingURL=install-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/commands/exec/install-app.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,
|
|
1
|
+
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/commands/exec/install-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ export default class ExecOpenUrl extends BaseCommand {
|
|
|
5
5
|
static examples: string[];
|
|
6
6
|
static args: {
|
|
7
7
|
url: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
9
8
|
};
|
|
10
9
|
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
11
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-url.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/open-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAAsC;IACpD,MAAM,CAAC,OAAO,WAAwC;IACtD,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"open-url.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/open-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAAsC;IACpD,MAAM,CAAC,OAAO,WAAwC;IACtD,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAGV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
|
|
@@ -8,7 +8,7 @@ class ExecOpenUrl extends base_command_1.BaseCommand {
|
|
|
8
8
|
const { args, flags } = await this.parse(ExecOpenUrl);
|
|
9
9
|
this.setParsedFlags(flags);
|
|
10
10
|
await this.withAuth(async () => {
|
|
11
|
-
const id = this.resolveId(
|
|
11
|
+
const id = this.resolveId(flags.id);
|
|
12
12
|
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
13
13
|
await (0, instance_client_factory_1.sendSessionCommand)(id, 'open-url', [args.url]);
|
|
14
14
|
}
|
|
@@ -27,11 +27,16 @@ class ExecOpenUrl extends base_command_1.BaseCommand {
|
|
|
27
27
|
}
|
|
28
28
|
ExecOpenUrl.summary = 'Open a URL on a running instance';
|
|
29
29
|
ExecOpenUrl.aliases = ['ios open-url', 'android open-url'];
|
|
30
|
-
ExecOpenUrl.examples = [
|
|
30
|
+
ExecOpenUrl.examples = [
|
|
31
|
+
'<%= config.bin %> ios open-url https://example.com',
|
|
32
|
+
'<%= config.bin %> ios open-url https://example.com --id <instance-ID>',
|
|
33
|
+
];
|
|
31
34
|
ExecOpenUrl.args = {
|
|
32
35
|
url: core_1.Args.string({ description: 'URL to open', required: true }),
|
|
33
|
-
id: core_1.Args.string({ description: 'Instance ID (defaults to last created)', required: false }),
|
|
34
36
|
};
|
|
35
|
-
ExecOpenUrl.flags = {
|
|
37
|
+
ExecOpenUrl.flags = {
|
|
38
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
39
|
+
id: core_1.Flags.string({ description: 'Instance ID (defaults to last created)' }),
|
|
40
|
+
};
|
|
36
41
|
exports.default = ExecOpenUrl;
|
|
37
42
|
//# sourceMappingURL=open-url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-url.js","sourceRoot":"","sources":["../../../src/commands/exec/open-url.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"open-url.js","sourceRoot":"","sources":["../../../src/commands/exec/open-url.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,WAAY,SAAQ,0BAAW;IAiBlD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC;oBACH,MAAO,MAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1C,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;;AAlCM,mBAAO,GAAG,kCAAkC,CAAC;AAC7C,mBAAO,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC/C,oBAAQ,GAAG;IAChB,oDAAoD;IACpD,uEAAuE;CACxE,CAAC;AAEK,gBAAI,GAAG;IACZ,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACjE,CAAC;AAEK,iBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;CAC5E,CAAC;kBAfiB,WAAW"}
|
|
@@ -5,9 +5,9 @@ export default class ExecPressKey extends BaseCommand {
|
|
|
5
5
|
static examples: string[];
|
|
6
6
|
static args: {
|
|
7
7
|
key: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
9
8
|
};
|
|
10
9
|
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
11
|
modifier: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"press-key.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/press-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,OAAO,WAA0C;IACxD,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"press-key.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/press-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAAuC;IACrD,MAAM,CAAC,OAAO,WAA0C;IACxD,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;MAIV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
|
|
@@ -8,7 +8,7 @@ class ExecPressKey extends base_command_1.BaseCommand {
|
|
|
8
8
|
const { args, flags } = await this.parse(ExecPressKey);
|
|
9
9
|
this.setParsedFlags(flags);
|
|
10
10
|
await this.withAuth(async () => {
|
|
11
|
-
const id = this.resolveId(
|
|
11
|
+
const id = this.resolveId(flags.id);
|
|
12
12
|
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
13
13
|
await (0, instance_client_factory_1.sendSessionCommand)(id, 'press-key', [args.key, flags.modifier]);
|
|
14
14
|
}
|
|
@@ -28,15 +28,15 @@ class ExecPressKey extends base_command_1.BaseCommand {
|
|
|
28
28
|
ExecPressKey.summary = 'Press a key on a running instance';
|
|
29
29
|
ExecPressKey.aliases = ['ios press-key', 'android press-key'];
|
|
30
30
|
ExecPressKey.examples = [
|
|
31
|
-
'<%= config.bin %> ios press-key
|
|
32
|
-
'<%= config.bin %> ios press-key
|
|
31
|
+
'<%= config.bin %> ios press-key enter',
|
|
32
|
+
'<%= config.bin %> ios press-key a --modifier shift --id <instance-ID>',
|
|
33
33
|
];
|
|
34
34
|
ExecPressKey.args = {
|
|
35
35
|
key: core_1.Args.string({ description: 'Key to press (e.g. enter, backspace, a, f1)', required: true }),
|
|
36
|
-
id: core_1.Args.string({ description: 'Instance ID (defaults to last created)', required: false }),
|
|
37
36
|
};
|
|
38
37
|
ExecPressKey.flags = {
|
|
39
38
|
...base_command_1.BaseCommand.baseFlags,
|
|
39
|
+
id: core_1.Flags.string({ description: 'Instance ID (defaults to last created)' }),
|
|
40
40
|
modifier: core_1.Flags.string({ description: 'Modifier key (e.g. shift, command, alt)', multiple: true }),
|
|
41
41
|
};
|
|
42
42
|
exports.default = ExecPressKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"press-key.js","sourceRoot":"","sources":["../../../src/commands/exec/press-key.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,YAAa,SAAQ,0BAAW;IAkBnD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"press-key.js","sourceRoot":"","sources":["../../../src/commands/exec/press-key.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,+EAA4G;AAE5G,MAAqB,YAAa,SAAQ,0BAAW;IAkBnD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC;oBACH,MAAO,MAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC3D,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;;AAnCM,oBAAO,GAAG,mCAAmC,CAAC;AAC9C,oBAAO,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AACjD,qBAAQ,GAAG;IAChB,uCAAuC;IACvC,uEAAuE;CACxE,CAAC;AAEK,iBAAI,GAAG;IACZ,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACjG,CAAC;AAEK,kBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IAC3E,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACnG,CAAC;kBAhBiB,YAAY"}
|