lim 0.1.5 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +836 -0
- package/bin/dev.js +16 -0
- package/bin/run.js +63 -0
- package/dist/base-command.d.ts +51 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +441 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/android/connect.d.ts +17 -0
- package/dist/commands/android/connect.d.ts.map +1 -0
- package/dist/commands/android/connect.js +50 -0
- package/dist/commands/android/connect.js.map +1 -0
- package/dist/commands/android/create.d.ts +25 -0
- package/dist/commands/android/create.d.ts.map +1 -0
- package/dist/commands/android/create.js +202 -0
- package/dist/commands/android/create.js.map +1 -0
- package/dist/commands/android/delete.d.ts +17 -0
- package/dist/commands/android/delete.d.ts.map +1 -0
- package/dist/commands/android/delete.js +44 -0
- package/dist/commands/android/delete.js.map +1 -0
- package/dist/commands/android/element-tree.d.ts +16 -0
- package/dist/commands/android/element-tree.d.ts.map +1 -0
- package/dist/commands/android/element-tree.js +60 -0
- package/dist/commands/android/element-tree.js.map +1 -0
- package/dist/commands/android/find-element.d.ts +28 -0
- package/dist/commands/android/find-element.d.ts.map +1 -0
- package/dist/commands/android/find-element.js +70 -0
- package/dist/commands/android/find-element.js.map +1 -0
- package/dist/commands/android/get.d.ts +17 -0
- package/dist/commands/android/get.d.ts.map +1 -0
- package/dist/commands/android/get.js +43 -0
- package/dist/commands/android/get.js.map +1 -0
- package/dist/commands/android/install-app.d.ts +18 -0
- package/dist/commands/android/install-app.d.ts.map +1 -0
- package/dist/commands/android/install-app.js +70 -0
- package/dist/commands/android/install-app.js.map +1 -0
- package/dist/commands/android/list.d.ts +19 -0
- package/dist/commands/android/list.d.ts.map +1 -0
- package/dist/commands/android/list.js +61 -0
- package/dist/commands/android/list.js.map +1 -0
- package/dist/commands/android/open-url.d.ts +18 -0
- package/dist/commands/android/open-url.d.ts.map +1 -0
- package/dist/commands/android/open-url.js +51 -0
- package/dist/commands/android/open-url.js.map +1 -0
- package/dist/commands/android/press-key.d.ts +19 -0
- package/dist/commands/android/press-key.d.ts.map +1 -0
- package/dist/commands/android/press-key.js +52 -0
- package/dist/commands/android/press-key.js.map +1 -0
- package/dist/commands/android/record.d.ts +22 -0
- package/dist/commands/android/record.d.ts.map +1 -0
- package/dist/commands/android/record.js +100 -0
- package/dist/commands/android/record.js.map +1 -0
- package/dist/commands/android/screenshot.d.ts +18 -0
- package/dist/commands/android/screenshot.d.ts.map +1 -0
- package/dist/commands/android/screenshot.js +66 -0
- package/dist/commands/android/screenshot.js.map +1 -0
- package/dist/commands/android/scroll.d.ts +32 -0
- package/dist/commands/android/scroll.d.ts.map +1 -0
- package/dist/commands/android/scroll.js +72 -0
- package/dist/commands/android/scroll.js.map +1 -0
- package/dist/commands/android/tap-element.d.ts +27 -0
- package/dist/commands/android/tap-element.d.ts.map +1 -0
- package/dist/commands/android/tap-element.js +60 -0
- package/dist/commands/android/tap-element.js.map +1 -0
- package/dist/commands/android/tap.d.ts +25 -0
- package/dist/commands/android/tap.d.ts.map +1 -0
- package/dist/commands/android/tap.js +55 -0
- package/dist/commands/android/tap.js.map +1 -0
- package/dist/commands/android/type.d.ts +31 -0
- package/dist/commands/android/type.d.ts.map +1 -0
- package/dist/commands/android/type.js +53 -0
- package/dist/commands/android/type.js.map +1 -0
- package/dist/commands/asset/delete.d.ts +17 -0
- package/dist/commands/asset/delete.d.ts.map +1 -0
- package/dist/commands/asset/delete.js +23 -0
- package/dist/commands/asset/delete.js.map +1 -0
- package/dist/commands/asset/list.d.ts +22 -0
- package/dist/commands/asset/list.d.ts.map +1 -0
- package/dist/commands/asset/list.js +97 -0
- package/dist/commands/asset/list.js.map +1 -0
- package/dist/commands/asset/pull.d.ts +19 -0
- package/dist/commands/asset/pull.d.ts.map +1 -0
- package/dist/commands/asset/pull.js +84 -0
- package/dist/commands/asset/pull.js.map +1 -0
- package/dist/commands/asset/push.d.ts +18 -0
- package/dist/commands/asset/push.d.ts.map +1 -0
- package/dist/commands/asset/push.js +43 -0
- package/dist/commands/asset/push.js.map +1 -0
- package/dist/commands/ios/app-log.d.ts +20 -0
- package/dist/commands/ios/app-log.d.ts.map +1 -0
- package/dist/commands/ios/app-log.js +86 -0
- package/dist/commands/ios/app-log.js.map +1 -0
- package/dist/commands/ios/cp.d.ts +19 -0
- package/dist/commands/ios/cp.d.ts.map +1 -0
- package/dist/commands/ios/cp.js +64 -0
- package/dist/commands/ios/cp.js.map +1 -0
- package/dist/commands/ios/create.d.ts +25 -0
- package/dist/commands/ios/create.d.ts.map +1 -0
- package/dist/commands/ios/create.js +165 -0
- package/dist/commands/ios/create.js.map +1 -0
- package/dist/commands/ios/delete.d.ts +17 -0
- package/dist/commands/ios/delete.d.ts.map +1 -0
- package/dist/commands/ios/delete.js +44 -0
- package/dist/commands/ios/delete.js.map +1 -0
- package/dist/commands/ios/element-tree.d.ts +16 -0
- package/dist/commands/ios/element-tree.d.ts.map +1 -0
- package/dist/commands/ios/element-tree.js +57 -0
- package/dist/commands/ios/element-tree.js.map +1 -0
- package/dist/commands/ios/get.d.ts +17 -0
- package/dist/commands/ios/get.d.ts.map +1 -0
- package/dist/commands/ios/get.js +44 -0
- package/dist/commands/ios/get.js.map +1 -0
- package/dist/commands/ios/info.d.ts +16 -0
- package/dist/commands/ios/info.d.ts.map +1 -0
- package/dist/commands/ios/info.js +55 -0
- package/dist/commands/ios/info.js.map +1 -0
- package/dist/commands/ios/install-app.d.ts +20 -0
- package/dist/commands/ios/install-app.d.ts.map +1 -0
- package/dist/commands/ios/install-app.js +97 -0
- package/dist/commands/ios/install-app.js.map +1 -0
- package/dist/commands/ios/launch-app.d.ts +23 -0
- package/dist/commands/ios/launch-app.d.ts.map +1 -0
- package/dist/commands/ios/launch-app.js +74 -0
- package/dist/commands/ios/launch-app.js.map +1 -0
- package/dist/commands/ios/list-apps.d.ts +16 -0
- package/dist/commands/ios/list-apps.d.ts.map +1 -0
- package/dist/commands/ios/list-apps.js +51 -0
- package/dist/commands/ios/list-apps.js.map +1 -0
- package/dist/commands/ios/list.d.ts +19 -0
- package/dist/commands/ios/list.d.ts.map +1 -0
- package/dist/commands/ios/list.js +61 -0
- package/dist/commands/ios/list.js.map +1 -0
- package/dist/commands/ios/lsof.d.ts +16 -0
- package/dist/commands/ios/lsof.d.ts.map +1 -0
- package/dist/commands/ios/lsof.js +47 -0
- package/dist/commands/ios/lsof.js.map +1 -0
- package/dist/commands/ios/open-url.d.ts +18 -0
- package/dist/commands/ios/open-url.d.ts.map +1 -0
- package/dist/commands/ios/open-url.js +51 -0
- package/dist/commands/ios/open-url.js.map +1 -0
- package/dist/commands/ios/perform.d.ts +18 -0
- package/dist/commands/ios/perform.d.ts.map +1 -0
- package/dist/commands/ios/perform.js +228 -0
- package/dist/commands/ios/perform.js.map +1 -0
- package/dist/commands/ios/press-key.d.ts +19 -0
- package/dist/commands/ios/press-key.d.ts.map +1 -0
- package/dist/commands/ios/press-key.js +52 -0
- package/dist/commands/ios/press-key.js.map +1 -0
- package/dist/commands/ios/record.d.ts +22 -0
- package/dist/commands/ios/record.d.ts.map +1 -0
- package/dist/commands/ios/record.js +101 -0
- package/dist/commands/ios/record.js.map +1 -0
- package/dist/commands/ios/reverse.d.ts +19 -0
- package/dist/commands/ios/reverse.d.ts.map +1 -0
- package/dist/commands/ios/reverse.js +97 -0
- package/dist/commands/ios/reverse.js.map +1 -0
- package/dist/commands/ios/screenshot.d.ts +18 -0
- package/dist/commands/ios/screenshot.d.ts.map +1 -0
- package/dist/commands/ios/screenshot.js +65 -0
- package/dist/commands/ios/screenshot.js.map +1 -0
- package/dist/commands/ios/scroll.d.ts +19 -0
- package/dist/commands/ios/scroll.d.ts.map +1 -0
- package/dist/commands/ios/scroll.js +57 -0
- package/dist/commands/ios/scroll.js.map +1 -0
- package/dist/commands/ios/simctl.d.ts +17 -0
- package/dist/commands/ios/simctl.d.ts.map +1 -0
- package/dist/commands/ios/simctl.js +72 -0
- package/dist/commands/ios/simctl.js.map +1 -0
- package/dist/commands/ios/sync.d.ts +23 -0
- package/dist/commands/ios/sync.d.ts.map +1 -0
- package/dist/commands/ios/sync.js +90 -0
- package/dist/commands/ios/sync.js.map +1 -0
- package/dist/commands/ios/syslog.d.ts +16 -0
- package/dist/commands/ios/syslog.d.ts.map +1 -0
- package/dist/commands/ios/syslog.js +62 -0
- package/dist/commands/ios/syslog.js.map +1 -0
- package/dist/commands/ios/tap-element.d.ts +23 -0
- package/dist/commands/ios/tap-element.d.ts.map +1 -0
- package/dist/commands/ios/tap-element.js +92 -0
- package/dist/commands/ios/tap-element.js.map +1 -0
- package/dist/commands/ios/tap.d.ts +25 -0
- package/dist/commands/ios/tap.d.ts.map +1 -0
- package/dist/commands/ios/tap.js +55 -0
- package/dist/commands/ios/tap.js.map +1 -0
- package/dist/commands/ios/terminate-app.d.ts +18 -0
- package/dist/commands/ios/terminate-app.d.ts.map +1 -0
- package/dist/commands/ios/terminate-app.js +49 -0
- package/dist/commands/ios/terminate-app.js.map +1 -0
- package/dist/commands/ios/toggle-keyboard.d.ts +15 -0
- package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -0
- package/dist/commands/ios/toggle-keyboard.js +45 -0
- package/dist/commands/ios/toggle-keyboard.js.map +1 -0
- package/dist/commands/ios/type.d.ts +19 -0
- package/dist/commands/ios/type.d.ts.map +1 -0
- package/dist/commands/ios/type.js +53 -0
- package/dist/commands/ios/type.js.map +1 -0
- package/dist/commands/ios/xcodebuild.d.ts +17 -0
- package/dist/commands/ios/xcodebuild.d.ts.map +1 -0
- package/dist/commands/ios/xcodebuild.js +59 -0
- package/dist/commands/ios/xcodebuild.js.map +1 -0
- package/dist/commands/ios/xcrun.d.ts +17 -0
- package/dist/commands/ios/xcrun.d.ts.map +1 -0
- package/dist/commands/ios/xcrun.js +60 -0
- package/dist/commands/ios/xcrun.js.map +1 -0
- package/dist/commands/login.d.ts +14 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +22 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +14 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +18 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/session/start.d.ts +16 -0
- package/dist/commands/session/start.d.ts.map +1 -0
- package/dist/commands/session/start.js +129 -0
- package/dist/commands/session/start.js.map +1 -0
- package/dist/commands/session/status.d.ts +14 -0
- package/dist/commands/session/status.d.ts.map +1 -0
- package/dist/commands/session/status.js +65 -0
- package/dist/commands/session/status.js.map +1 -0
- package/dist/commands/session/stop.d.ts +18 -0
- package/dist/commands/session/stop.d.ts.map +1 -0
- package/dist/commands/session/stop.js +76 -0
- package/dist/commands/session/stop.js.map +1 -0
- package/dist/commands/skills/install.d.ts +18 -0
- package/dist/commands/skills/install.d.ts.map +1 -0
- package/dist/commands/skills/install.js +473 -0
- package/dist/commands/skills/install.js.map +1 -0
- package/dist/commands/xcode/attach-simulator.d.ts +18 -0
- package/dist/commands/xcode/attach-simulator.d.ts.map +1 -0
- package/dist/commands/xcode/attach-simulator.js +55 -0
- package/dist/commands/xcode/attach-simulator.js.map +1 -0
- package/dist/commands/xcode/build.d.ts +35 -0
- package/dist/commands/xcode/build.d.ts.map +1 -0
- package/dist/commands/xcode/build.js +192 -0
- package/dist/commands/xcode/build.js.map +1 -0
- package/dist/commands/xcode/create.d.ts +22 -0
- package/dist/commands/xcode/create.d.ts.map +1 -0
- package/dist/commands/xcode/create.js +189 -0
- package/dist/commands/xcode/create.js.map +1 -0
- package/dist/commands/xcode/delete.d.ts +17 -0
- package/dist/commands/xcode/delete.d.ts.map +1 -0
- package/dist/commands/xcode/delete.js +44 -0
- package/dist/commands/xcode/delete.js.map +1 -0
- package/dist/commands/xcode/get.d.ts +17 -0
- package/dist/commands/xcode/get.d.ts.map +1 -0
- package/dist/commands/xcode/get.js +59 -0
- package/dist/commands/xcode/get.js.map +1 -0
- package/dist/commands/xcode/list.d.ts +18 -0
- package/dist/commands/xcode/list.d.ts.map +1 -0
- package/dist/commands/xcode/list.js +58 -0
- package/dist/commands/xcode/list.js.map +1 -0
- package/dist/commands/xcode/sync.d.ts +24 -0
- package/dist/commands/xcode/sync.d.ts.map +1 -0
- package/dist/commands/xcode/sync.js +93 -0
- package/dist/commands/xcode/sync.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/additional-files.d.ts +6 -0
- package/dist/lib/additional-files.d.ts.map +1 -0
- package/dist/lib/additional-files.js +19 -0
- package/dist/lib/additional-files.js.map +1 -0
- package/dist/lib/android-selector.d.ts +50 -0
- package/dist/lib/android-selector.d.ts.map +1 -0
- package/dist/lib/android-selector.js +103 -0
- package/dist/lib/android-selector.js.map +1 -0
- package/dist/lib/auth.d.ts +2 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +60 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +65 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +290 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/daemon-client.d.ts +9 -0
- package/dist/lib/daemon-client.d.ts.map +1 -0
- package/dist/lib/daemon-client.js +81 -0
- package/dist/lib/daemon-client.js.map +1 -0
- package/dist/lib/daemon.d.ts +41 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/daemon.js +511 -0
- package/dist/lib/daemon.js.map +1 -0
- package/dist/lib/detox-version.d.ts +12 -0
- package/dist/lib/detox-version.d.ts.map +1 -0
- package/dist/lib/detox-version.js +30 -0
- package/dist/lib/detox-version.js.map +1 -0
- package/dist/lib/duration.d.ts +2 -0
- package/dist/lib/duration.d.ts.map +1 -0
- package/dist/lib/duration.js +37 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/formatting.d.ts +3 -0
- package/dist/lib/formatting.d.ts.map +1 -0
- package/dist/lib/formatting.js +31 -0
- package/dist/lib/formatting.js.map +1 -0
- package/dist/lib/ignore-patterns.d.ts +2 -0
- package/dist/lib/ignore-patterns.d.ts.map +1 -0
- package/dist/lib/ignore-patterns.js +18 -0
- package/dist/lib/ignore-patterns.js.map +1 -0
- package/dist/lib/instance-client-factory.d.ts +29 -0
- package/dist/lib/instance-client-factory.d.ts.map +1 -0
- package/dist/lib/instance-client-factory.js +87 -0
- package/dist/lib/instance-client-factory.js.map +1 -0
- package/dist/lib/launch-app-runtime.d.ts +23 -0
- package/dist/lib/launch-app-runtime.d.ts.map +1 -0
- package/dist/lib/launch-app-runtime.js +58 -0
- package/dist/lib/launch-app-runtime.js.map +1 -0
- package/dist/lib/remote-skills.d.ts +47 -0
- package/dist/lib/remote-skills.d.ts.map +1 -0
- package/dist/lib/remote-skills.js +241 -0
- package/dist/lib/remote-skills.js.map +1 -0
- package/dist/lib/reverse-port-mapping.d.ts +6 -0
- package/dist/lib/reverse-port-mapping.d.ts.map +1 -0
- package/dist/lib/reverse-port-mapping.js +24 -0
- package/dist/lib/reverse-port-mapping.js.map +1 -0
- package/dist/lib/skills.d.ts +17 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +153 -0
- package/dist/lib/skills.js.map +1 -0
- package/package.json +69 -13
- package/.npmignore +0 -2
- package/build/lib/index.js +0 -1498
- package/build/lib/index.map +0 -1
- package/build/lib/utils/courier.js +0 -98
- package/build/lib/utils/courier.map +0 -1
- package/build/lib/utils/polyfill.js +0 -53
- package/build/lib/utils/polyfill.map +0 -1
- package/build.sh +0 -9
- package/index.js +0 -2
- package/lib/index.js +0 -284
- package/lib/utils/courier.js +0 -108
- package/lib/utils/polyfill.js +0 -42
- package/native.js +0 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const api_1 = require("@limrun/api");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const base_command_1 = require("../../base-command");
|
|
6
|
+
const config_1 = require("../../lib/config");
|
|
7
|
+
const daemon_1 = require("../../lib/daemon");
|
|
8
|
+
class IosDelete extends base_command_1.BaseCommand {
|
|
9
|
+
async run() {
|
|
10
|
+
const { args, flags } = await this.parse(IosDelete);
|
|
11
|
+
this.setParsedFlags(flags);
|
|
12
|
+
await this.withAuth(async () => {
|
|
13
|
+
const resolvedInstance = this.resolveIosInstance(args.id);
|
|
14
|
+
const id = resolvedInstance.id;
|
|
15
|
+
try {
|
|
16
|
+
await this.client.iosInstances.delete(id);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
if (!(err instanceof api_1.NotFoundError)) {
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
(0, daemon_1.stopDaemon)(id);
|
|
24
|
+
(0, config_1.clearLastInstanceId)(id);
|
|
25
|
+
this.log(`Deleted iOS instance: ${id}`);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
IosDelete.summary = 'Delete an iOS instance';
|
|
30
|
+
IosDelete.description = 'Delete an existing iOS instance by ID and remove any cached local metadata for it.';
|
|
31
|
+
IosDelete.examples = [
|
|
32
|
+
'<%= config.bin %> ios delete',
|
|
33
|
+
'<%= config.bin %> ios delete <ID>',
|
|
34
|
+
'<%= config.bin %> ios delete ios_abc123',
|
|
35
|
+
];
|
|
36
|
+
IosDelete.args = {
|
|
37
|
+
id: core_1.Args.string({
|
|
38
|
+
description: 'iOS instance ID to delete. Defaults to the last created iOS instance.',
|
|
39
|
+
required: false,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
IosDelete.flags = { ...base_command_1.BaseCommand.baseFlags };
|
|
43
|
+
exports.default = IosDelete;
|
|
44
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/ios/delete.ts"],"names":[],"mappings":";;AAAA,qCAA4C;AAC5C,sCAAmC;AACnC,qDAAiD;AACjD,6CAAuD;AACvD,6CAA8C;AAE9C,MAAqB,SAAU,SAAQ,0BAAW;IAkBhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,YAAY,mBAAa,CAAC,EAAE,CAAC;oBACpC,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAA,mBAAU,EAAC,EAAE,CAAC,CAAC;YACf,IAAA,4BAAmB,EAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;;AApCM,iBAAO,GAAG,wBAAwB,CAAC;AACnC,qBAAW,GAAG,oFAAoF,CAAC;AACnG,kBAAQ,GAAG;IAChB,8BAA8B;IAC9B,mCAAmC;IACnC,yCAAyC;CAC1C,CAAC;AAEK,cAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,eAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBAhBzB,SAAS"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosElementTree extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {};
|
|
7
|
+
static flags: {
|
|
8
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=element-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-tree.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/element-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,OAAO,SAAyD;IACvE,MAAM,CAAC,WAAW,SACwJ;IAC1K,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkC3B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
6
|
+
class IosElementTree extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags } = await this.parse(IosElementTree);
|
|
9
|
+
this.setParsedFlags(flags);
|
|
10
|
+
await this.withAuth(async () => {
|
|
11
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
12
|
+
const id = resolvedInstance.id;
|
|
13
|
+
if (false) {
|
|
14
|
+
this.error('ios element-tree only supports iOS instances');
|
|
15
|
+
}
|
|
16
|
+
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
17
|
+
const tree = await (0, instance_client_factory_1.sendSessionCommand)(id, 'element-tree');
|
|
18
|
+
if (flags.json) {
|
|
19
|
+
this.outputJson(tree);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.log(typeof tree === 'string' ? tree : JSON.stringify(tree, null, 2));
|
|
23
|
+
}
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
27
|
+
try {
|
|
28
|
+
const tree = await client.elementTree();
|
|
29
|
+
if (flags.json) {
|
|
30
|
+
this.outputJson(tree);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.log(typeof tree === 'string' ? tree : JSON.stringify(tree, null, 2));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
disconnect();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
IosElementTree.summary = 'Get the UI element tree from a running iOS instance';
|
|
43
|
+
IosElementTree.description = 'Inspect the current accessibility hierarchy of a running iOS instance. Use `--json` for structured output that agents can search or feed into later automation steps.';
|
|
44
|
+
IosElementTree.examples = [
|
|
45
|
+
'<%= config.bin %> ios element-tree',
|
|
46
|
+
'<%= config.bin %> ios element-tree --id <instance-ID>',
|
|
47
|
+
'<%= config.bin %> ios element-tree --json',
|
|
48
|
+
];
|
|
49
|
+
IosElementTree.args = {};
|
|
50
|
+
IosElementTree.flags = {
|
|
51
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
52
|
+
id: core_1.Flags.string({
|
|
53
|
+
description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
|
|
54
|
+
}),
|
|
55
|
+
};
|
|
56
|
+
exports.default = IosElementTree;
|
|
57
|
+
//# sourceMappingURL=element-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-tree.js","sourceRoot":"","sources":["../../../src/commands/ios/element-tree.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAE3C,MAAqB,cAAe,SAAQ,0BAAW;IAmBrD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAnDM,sBAAO,GAAG,qDAAqD,CAAC;AAChE,0BAAW,GAChB,uKAAuK,CAAC;AACnK,uBAAQ,GAAG;IAChB,oCAAoC;IACpC,uDAAuD;IACvD,2CAA2C;CAC5C,CAAC;AAEK,mBAAI,GAAG,EAAE,CAAC;AAEV,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,cAAc"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosGet extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SAC+H;IACjJ,MAAM,CAAC,QAAQ,WAA0E;IAEzF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAAgC;IAEtC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
class IosGet extends base_command_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const { args, flags } = await this.parse(IosGet);
|
|
8
|
+
this.setParsedFlags(flags);
|
|
9
|
+
await this.withAuth(async () => {
|
|
10
|
+
const resolvedInstance = this.resolveIosInstance(args.id);
|
|
11
|
+
const instance = await this.client.iosInstances.get(resolvedInstance.id);
|
|
12
|
+
if (flags.json) {
|
|
13
|
+
this.outputJson(instance);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const signedStreamUrl = this.signedStreamUrl(instance.status);
|
|
17
|
+
this.output(`ID: ${instance.metadata.id}`);
|
|
18
|
+
this.output(`Name: ${instance.metadata.displayName || ''}`);
|
|
19
|
+
this.output(`Region: ${instance.spec.region}`);
|
|
20
|
+
this.output(`State: ${instance.status.state}`);
|
|
21
|
+
this.output(`Console URL: ${this.consoleStreamUrl(instance.metadata.id)}`);
|
|
22
|
+
if (instance.status.apiUrl)
|
|
23
|
+
this.output(`API URL: ${instance.status.apiUrl}`);
|
|
24
|
+
if (instance.status.sandbox?.xcode?.url) {
|
|
25
|
+
this.output(`Xcode Sandbox URL: ${instance.status.sandbox.xcode.url}`);
|
|
26
|
+
}
|
|
27
|
+
if (signedStreamUrl)
|
|
28
|
+
this.output(`Signed Stream URL: ${signedStreamUrl}`);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
IosGet.summary = 'Get details for a specific iOS instance';
|
|
34
|
+
IosGet.description = 'Fetch detailed metadata for a single iOS instance, including region, state, and display name. Use `--json` to inspect the full API response.';
|
|
35
|
+
IosGet.examples = ['<%= config.bin %> ios get', '<%= config.bin %> ios get <ID> --json'];
|
|
36
|
+
IosGet.args = {
|
|
37
|
+
id: core_1.Args.string({
|
|
38
|
+
description: 'iOS instance ID to fetch. Defaults to the last created iOS instance.',
|
|
39
|
+
required: false,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
IosGet.flags = { ...base_command_1.BaseCommand.baseFlags };
|
|
43
|
+
exports.default = IosGet;
|
|
44
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/ios/get.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AAEjD,MAAqB,MAAO,SAAQ,0BAAW;IAe7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3E,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9E,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,sBAAsB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,eAAe;oBAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,eAAe,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AArCM,cAAO,GAAG,yCAAyC,CAAC;AACpD,kBAAW,GAChB,8IAA8I,CAAC;AAC1I,eAAQ,GAAG,CAAC,2BAA2B,EAAE,uCAAuC,CAAC,CAAC;AAElF,WAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,sEAAsE;QACnF,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,YAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBAbzB,MAAM"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosInfo extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {};
|
|
7
|
+
static flags: {
|
|
8
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAcjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,OAAO,SAAwD;IACtE,MAAM,CAAC,WAAW,SAC0L;IAC5M,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmC3B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
6
|
+
class IosInfo extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags } = await this.parse(IosInfo);
|
|
9
|
+
this.setParsedFlags(flags);
|
|
10
|
+
await this.withAuth(async () => {
|
|
11
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
12
|
+
const id = resolvedInstance.id;
|
|
13
|
+
let info;
|
|
14
|
+
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
15
|
+
info = (await (0, instance_client_factory_1.sendSessionCommand)(id, 'device-info'));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
19
|
+
try {
|
|
20
|
+
info = client.deviceInfo;
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
disconnect();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (flags.json) {
|
|
27
|
+
this.outputJson(info);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.outputTable(['Field', 'Value'], [
|
|
31
|
+
['UDID', info.udid],
|
|
32
|
+
['Model', info.model],
|
|
33
|
+
['Screen Width', String(info.screenWidth)],
|
|
34
|
+
['Screen Height', String(info.screenHeight)],
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
IosInfo.summary = 'Get device information from a running iOS instance';
|
|
41
|
+
IosInfo.description = 'Show basic simulator metadata for a running iOS instance, including UDID, model, and screen dimensions. This is useful when building coordinate-based automation or debugging device-specific behavior.';
|
|
42
|
+
IosInfo.examples = [
|
|
43
|
+
'<%= config.bin %> ios info',
|
|
44
|
+
'<%= config.bin %> ios info --id <instance-ID>',
|
|
45
|
+
'<%= config.bin %> ios info --json',
|
|
46
|
+
];
|
|
47
|
+
IosInfo.args = {};
|
|
48
|
+
IosInfo.flags = {
|
|
49
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
50
|
+
id: core_1.Flags.string({
|
|
51
|
+
description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
exports.default = IosInfo;
|
|
55
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/ios/info.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAS3C,MAAqB,OAAQ,SAAQ,0BAAW;IAmB9C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAE/B,IAAI,IAAgB,CAAC;YACrB,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,aAAa,CAAC,CAAe,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,GAAI,MAAgD,CAAC,UAAU,CAAC;gBACtE,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CACd,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB;oBACE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;oBACnB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;oBACrB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC7C,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AApDM,eAAO,GAAG,oDAAoD,CAAC;AAC/D,mBAAW,GAChB,yMAAyM,CAAC;AACrM,gBAAQ,GAAG;IAChB,4BAA4B;IAC5B,+CAA+C;IAC/C,mCAAmC;CACpC,CAAC;AAEK,YAAI,GAAG,EAAE,CAAC;AAEV,aAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,OAAO"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosInstallApp extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
path_or_url: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
md5: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
'launch-mode': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=install-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/install-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,OAAO,SAA8C;IAC5D,MAAM,CAAC,WAAW,SACuJ;IAEzK,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAYV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0D3B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const core_1 = require("@oclif/core");
|
|
9
|
+
const base_command_1 = require("../../base-command");
|
|
10
|
+
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
11
|
+
class IosInstallApp extends base_command_1.BaseCommand {
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(IosInstallApp);
|
|
14
|
+
this.setParsedFlags(flags);
|
|
15
|
+
await this.withAuth(async () => {
|
|
16
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
17
|
+
const id = resolvedInstance.id;
|
|
18
|
+
if (false) {
|
|
19
|
+
this.error('ios install-app only supports iOS instances');
|
|
20
|
+
}
|
|
21
|
+
let downloadUrl;
|
|
22
|
+
if (args.path_or_url.startsWith('http://') || args.path_or_url.startsWith('https://')) {
|
|
23
|
+
downloadUrl = args.path_or_url;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const filePath = path_1.default.resolve(args.path_or_url);
|
|
27
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
28
|
+
this.error(`File not found: ${filePath}`);
|
|
29
|
+
}
|
|
30
|
+
const name = path_1.default.basename(filePath);
|
|
31
|
+
this.info(`Uploading ${name}...`);
|
|
32
|
+
const asset = await this.client.assets.getOrUpload({ path: filePath, name });
|
|
33
|
+
downloadUrl = asset.signedDownloadUrl;
|
|
34
|
+
}
|
|
35
|
+
let installOptions;
|
|
36
|
+
if (flags.md5 || flags['launch-mode']) {
|
|
37
|
+
installOptions = {
|
|
38
|
+
md5: flags.md5,
|
|
39
|
+
launchMode: flags['launch-mode'],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
43
|
+
const result = await (0, instance_client_factory_1.sendSessionCommand)(id, 'install-app', [downloadUrl, installOptions]);
|
|
44
|
+
if (flags.json) {
|
|
45
|
+
this.outputJson(result);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.log('App installed');
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
53
|
+
try {
|
|
54
|
+
const result = await client.installApp(downloadUrl, installOptions);
|
|
55
|
+
if (flags.json) {
|
|
56
|
+
this.outputJson(result);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.log(`App installed${result?.bundleId ? `: ${result.bundleId}` : ''}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
disconnect();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
IosInstallApp.summary = 'Install an app on a running iOS instance';
|
|
69
|
+
IosInstallApp.description = 'Install an app from a local file path or remote URL onto a running iOS instance. Local files are uploaded to Limrun asset storage automatically before installation.';
|
|
70
|
+
IosInstallApp.examples = [
|
|
71
|
+
'<%= config.bin %> ios install-app ./MyApp.ipa',
|
|
72
|
+
'<%= config.bin %> ios install-app https://example.com/MyApp.ipa --json',
|
|
73
|
+
'<%= config.bin %> ios install-app ./MyApp.ipa --id <instance-ID>',
|
|
74
|
+
'<%= config.bin %> ios install-app ./MyApp.ipa --launch-mode RelaunchIfRunning',
|
|
75
|
+
'<%= config.bin %> ios install-app https://example.com/MyApp.ipa --md5 <hex-digest>',
|
|
76
|
+
];
|
|
77
|
+
IosInstallApp.args = {
|
|
78
|
+
path_or_url: core_1.Args.string({
|
|
79
|
+
description: 'Local app file path or remote URL to an installable iOS package such as .ipa',
|
|
80
|
+
required: true,
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
IosInstallApp.flags = {
|
|
84
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
85
|
+
id: core_1.Flags.string({
|
|
86
|
+
description: 'iOS instance ID to install the app on. Defaults to the last created iOS instance.',
|
|
87
|
+
}),
|
|
88
|
+
md5: core_1.Flags.string({
|
|
89
|
+
description: 'Optional MD5 digest to enable server-side install caching for remote URLs.',
|
|
90
|
+
}),
|
|
91
|
+
'launch-mode': core_1.Flags.string({
|
|
92
|
+
description: 'Launch behavior after installation. Omit to install without launching.',
|
|
93
|
+
options: ['ForegroundIfRunning', 'RelaunchIfRunning'],
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
exports.default = IosInstallApp;
|
|
97
|
+
//# sourceMappingURL=install-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/commands/ios/install-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosLaunchApp extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
bundleId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
mode: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
runtime: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
'detox-server-url': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
'detox-session-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
'detox-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
};
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=launch-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-app.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/launch-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0BjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SACiP;IACnQ,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAwBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
6
|
+
const launch_app_runtime_1 = require("../../lib/launch-app-runtime");
|
|
7
|
+
async function launchAppWithArgument(client, bundleId, launchArgument) {
|
|
8
|
+
if (typeof launchArgument === 'string') {
|
|
9
|
+
await client.launchApp(bundleId, launchArgument);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
await client.launchApp(bundleId, launchArgument);
|
|
13
|
+
}
|
|
14
|
+
class IosLaunchApp extends base_command_1.BaseCommand {
|
|
15
|
+
async run() {
|
|
16
|
+
const { args, flags } = await this.parse(IosLaunchApp);
|
|
17
|
+
this.setParsedFlags(flags);
|
|
18
|
+
await this.withAuth(async () => {
|
|
19
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
20
|
+
const id = resolvedInstance.id;
|
|
21
|
+
const launchArgument = (0, launch_app_runtime_1.buildLaunchAppArgument)(flags, {
|
|
22
|
+
modeExplicitlyProvided: flags.mode !== undefined,
|
|
23
|
+
});
|
|
24
|
+
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
25
|
+
await (0, instance_client_factory_1.sendSessionCommand)(id, 'launch-app', [args.bundleId, launchArgument]);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
29
|
+
try {
|
|
30
|
+
await launchAppWithArgument(client, args.bundleId, launchArgument);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
disconnect();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
this.log(`Launched ${args.bundleId}`);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
IosLaunchApp.summary = 'Launch an app on a running iOS instance';
|
|
41
|
+
IosLaunchApp.description = 'Launch an installed app on a running iOS instance by bundle identifier. Choose `ForegroundIfRunning` to bring an already-running app to the front or `RelaunchIfRunning` to restart it. Use `--runtime detox` to launch with the Limrun-managed Detox runtime.';
|
|
42
|
+
IosLaunchApp.examples = [
|
|
43
|
+
'<%= config.bin %> ios launch-app com.example.app',
|
|
44
|
+
'<%= config.bin %> ios launch-app com.example.app --mode RelaunchIfRunning --id <instance-ID>',
|
|
45
|
+
'<%= config.bin %> ios launch-app host.exp.Exponent --runtime detox --detox-server-url ws://10.244.0.10:57091 --detox-session-id limrun-detox --detox-version 20.51.1 --id <instance-ID>',
|
|
46
|
+
];
|
|
47
|
+
IosLaunchApp.args = {
|
|
48
|
+
bundleId: core_1.Args.string({ description: 'App bundle identifier', required: true }),
|
|
49
|
+
};
|
|
50
|
+
IosLaunchApp.flags = {
|
|
51
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
52
|
+
id: core_1.Flags.string({
|
|
53
|
+
description: 'iOS instance ID to target. Defaults to the last created iOS instance.',
|
|
54
|
+
}),
|
|
55
|
+
mode: core_1.Flags.string({
|
|
56
|
+
description: 'Launch behavior to use when the app may already be running. Default: ForegroundIfRunning.',
|
|
57
|
+
options: ['ForegroundIfRunning', 'RelaunchIfRunning'],
|
|
58
|
+
}),
|
|
59
|
+
runtime: core_1.Flags.string({
|
|
60
|
+
description: 'Runtime integration to attach during launch',
|
|
61
|
+
options: ['detox'],
|
|
62
|
+
}),
|
|
63
|
+
'detox-server-url': core_1.Flags.string({
|
|
64
|
+
description: 'Detox mediator URL reachable from the simulator, usually from `lim ios reverse`',
|
|
65
|
+
}),
|
|
66
|
+
'detox-session-id': core_1.Flags.string({
|
|
67
|
+
description: 'Detox session ID shared by the app and tester',
|
|
68
|
+
}),
|
|
69
|
+
'detox-version': core_1.Flags.string({
|
|
70
|
+
description: 'Exact Detox version for Limrun-managed native injection. Defaults to the detox package in the current working directory.',
|
|
71
|
+
}),
|
|
72
|
+
};
|
|
73
|
+
exports.default = IosLaunchApp;
|
|
74
|
+
//# sourceMappingURL=launch-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-app.js","sourceRoot":"","sources":["../../../src/commands/ios/launch-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosListApps extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {};
|
|
7
|
+
static flags: {
|
|
8
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=list-apps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/commands/ios/list-apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,OAAO,SAAmD;IACjE,MAAM,CAAC,WAAW,SAC2L;IAC7M,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4B3B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
const instance_client_factory_1 = require("../../lib/instance-client-factory");
|
|
6
|
+
class IosListApps extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags } = await this.parse(IosListApps);
|
|
9
|
+
this.setParsedFlags(flags);
|
|
10
|
+
await this.withAuth(async () => {
|
|
11
|
+
const resolvedInstance = this.resolveIosInstance(flags.id);
|
|
12
|
+
const id = resolvedInstance.id;
|
|
13
|
+
let apps;
|
|
14
|
+
if ((0, instance_client_factory_1.hasActiveSession)(id)) {
|
|
15
|
+
apps = (await (0, instance_client_factory_1.sendSessionCommand)(id, 'list-apps'));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
19
|
+
try {
|
|
20
|
+
apps = await client.listApps();
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
disconnect();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (flags.json) {
|
|
27
|
+
this.outputJson(apps);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const rows = apps.map((a) => [a.bundleId, a.name, a.installType]);
|
|
31
|
+
this.outputTable(['Bundle ID', 'Name', 'Install Type'], rows);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
IosListApps.summary = 'List installed apps on a running iOS instance';
|
|
37
|
+
IosListApps.description = 'List the apps currently installed on a running iOS instance, including bundle identifiers, display names, and install types. Use this before `launch-app` if you need to discover the correct bundle ID.';
|
|
38
|
+
IosListApps.examples = [
|
|
39
|
+
'<%= config.bin %> ios list-apps',
|
|
40
|
+
'<%= config.bin %> ios list-apps --id <instance-ID>',
|
|
41
|
+
'<%= config.bin %> ios list-apps --json',
|
|
42
|
+
];
|
|
43
|
+
IosListApps.args = {};
|
|
44
|
+
IosListApps.flags = {
|
|
45
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
46
|
+
id: core_1.Flags.string({
|
|
47
|
+
description: 'iOS instance ID to inspect. Defaults to the last created iOS instance.',
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
exports.default = IosListApps;
|
|
51
|
+
//# sourceMappingURL=list-apps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/commands/ios/list-apps.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,+EAI2C;AAE3C,MAAqB,WAAY,SAAQ,0BAAW;IAmBlD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAW,CAAC;YAEhB,IAAI,IAAA,0CAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,MAAM,IAAA,4CAAkB,EAAC,EAAE,EAAE,WAAW,CAAC,CAAU,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,CAAC;wBAAS,CAAC;oBACT,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA7CM,mBAAO,GAAG,+CAA+C,CAAC;AAC1D,uBAAW,GAChB,0MAA0M,CAAC;AACtM,oBAAQ,GAAG;IAChB,iCAAiC;IACjC,oDAAoD;IACpD,wCAAwC;CACzC,CAAC;AAEK,gBAAI,GAAG,EAAE,CAAC;AAEV,iBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,wEAAwE;KACtF,CAAC;CACH,CAAC;kBAjBiB,WAAW"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class IosList extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {};
|
|
7
|
+
static flags: {
|
|
8
|
+
state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
'label-selector': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
};
|
|
17
|
+
run(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=list.d.ts.map
|