lim 0.1.4 → 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 -146
- 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 -36
- package/native.js +0 -2
|
@@ -0,0 +1,58 @@
|
|
|
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 XcodeList extends base_command_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const { flags } = await this.parse(XcodeList);
|
|
8
|
+
this.setParsedFlags(flags);
|
|
9
|
+
await this.withAuth(async () => {
|
|
10
|
+
const params = {};
|
|
11
|
+
if (flags.state) {
|
|
12
|
+
params.state = flags.state;
|
|
13
|
+
}
|
|
14
|
+
else if (!flags.all) {
|
|
15
|
+
params.state = 'ready';
|
|
16
|
+
}
|
|
17
|
+
if (flags['label-selector'])
|
|
18
|
+
params.labelSelector = flags['label-selector'];
|
|
19
|
+
const instances = await this.client.xcodeInstances.list(params);
|
|
20
|
+
const items = instances.items ?? instances.getPaginatedItems();
|
|
21
|
+
const rows = items.map((i) => [
|
|
22
|
+
i.metadata.id,
|
|
23
|
+
i.metadata.displayName || '',
|
|
24
|
+
i.spec.region,
|
|
25
|
+
i.status.state,
|
|
26
|
+
]);
|
|
27
|
+
if (flags.json) {
|
|
28
|
+
this.outputJson(items);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.outputTable(['ID', 'Name', 'Region', 'State'], rows);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
XcodeList.summary = 'List Xcode instances';
|
|
37
|
+
XcodeList.description = 'List Xcode sandbox instances in your account. By default only ready sandboxes are shown; use `--all` or `--state` to inspect other lifecycle states.';
|
|
38
|
+
XcodeList.examples = [
|
|
39
|
+
'<%= config.bin %> xcode list',
|
|
40
|
+
'<%= config.bin %> xcode list --all',
|
|
41
|
+
'<%= config.bin %> xcode list --label-selector env=prod',
|
|
42
|
+
];
|
|
43
|
+
XcodeList.args = {};
|
|
44
|
+
XcodeList.flags = {
|
|
45
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
46
|
+
state: core_1.Flags.string({
|
|
47
|
+
description: 'Lifecycle state to filter by: unknown, creating, ready, or terminated',
|
|
48
|
+
}),
|
|
49
|
+
'label-selector': core_1.Flags.string({
|
|
50
|
+
description: 'Comma-separated label filters, for example env=prod,team=mobile',
|
|
51
|
+
}),
|
|
52
|
+
all: core_1.Flags.boolean({
|
|
53
|
+
description: 'Show all states instead of defaulting to ready instances only',
|
|
54
|
+
default: false,
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
exports.default = XcodeList;
|
|
58
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/xcode/list.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AAEjD,MAAqB,SAAU,SAAQ,0BAAW;IA0BhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,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,gBAAgB,CAAC;gBAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YACvE,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;;AArDM,iBAAO,GAAG,sBAAsB,CAAC;AACjC,qBAAW,GAChB,sJAAsJ,CAAC;AAClJ,kBAAQ,GAAG;IAChB,8BAA8B;IAC9B,oCAAoC;IACpC,wDAAwD;CACzD,CAAC;AAEK,cAAI,GAAG,EAAE,CAAC;AAEV,eAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,uEAAuE;KACrF,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,WAAW,EAAE,iEAAiE;KAC/E,CAAC;IACF,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC;QACjB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBAxBiB,SAAS"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class XcodeSync extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
path: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
watch: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
install: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
'basis-cache-dir': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
'max-patch-bytes': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
ignore: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
'additional-file': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/xcode/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,SAA6D;IAC3E,MAAM,CAAC,WAAW,SACkc;IAEpd,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAgCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyC3B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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 ignore_patterns_1 = require("../../lib/ignore-patterns");
|
|
6
|
+
const duration_1 = require("../../lib/duration");
|
|
7
|
+
const additional_files_1 = require("../../lib/additional-files");
|
|
8
|
+
class XcodeSync extends base_command_1.BaseCommand {
|
|
9
|
+
async run() {
|
|
10
|
+
const { args, flags } = await this.parse(XcodeSync);
|
|
11
|
+
this.setParsedFlags(flags);
|
|
12
|
+
await this.withAuth(async () => {
|
|
13
|
+
const target = await this.resolveXcodeTargetOrCreate(flags.id);
|
|
14
|
+
const id = target.id;
|
|
15
|
+
const syncPath = args.path ?? process.cwd();
|
|
16
|
+
const xcodeClient = await this.resolveXcodeClient(target);
|
|
17
|
+
this.info(`Syncing ${syncPath} to instance ${id}...`);
|
|
18
|
+
const syncStart = Date.now();
|
|
19
|
+
const syncOptions = {
|
|
20
|
+
watch: flags.watch,
|
|
21
|
+
install: flags.install,
|
|
22
|
+
basisCacheDir: flags['basis-cache-dir'],
|
|
23
|
+
maxPatchBytes: flags['max-patch-bytes'],
|
|
24
|
+
ignore: (0, ignore_patterns_1.compileIgnorePatterns)(flags.ignore),
|
|
25
|
+
additionalFiles: (0, additional_files_1.parseAdditionalFileFlags)(flags['additional-file']),
|
|
26
|
+
};
|
|
27
|
+
const result = await xcodeClient.sync(syncPath, syncOptions);
|
|
28
|
+
const syncDuration = (0, duration_1.formatDurationMs)(Date.now() - syncStart);
|
|
29
|
+
this.output(`Sync complete in ${syncDuration}.`);
|
|
30
|
+
if (flags.watch && result.stopWatching) {
|
|
31
|
+
this.output('Watching for changes. Press Ctrl+C to stop.');
|
|
32
|
+
await new Promise((resolve) => {
|
|
33
|
+
const keepAlive = setInterval(() => { }, 1 << 30);
|
|
34
|
+
const shutdown = () => {
|
|
35
|
+
clearInterval(keepAlive);
|
|
36
|
+
result.stopWatching();
|
|
37
|
+
resolve();
|
|
38
|
+
};
|
|
39
|
+
process.on('SIGINT', shutdown);
|
|
40
|
+
process.on('SIGTERM', shutdown);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
XcodeSync.summary = 'Continuously sync local source code to an Xcode sandbox';
|
|
47
|
+
XcodeSync.description = 'Push local source code and project files (or the current working directory if omitted) to a remote Xcode sandbox with optional watch mode. This command is mostly useful for continuous sync workflows with `--watch`; for most one-shot builds, use `xcode build`, which already syncs the project path first. This works with standalone Xcode instances and can also target an iOS instance with `--xcode` enabled or created via `xcode create --ios` when you pass `--id`.';
|
|
48
|
+
XcodeSync.examples = [
|
|
49
|
+
'<%= config.bin %> xcode sync --watch',
|
|
50
|
+
'<%= config.bin %> xcode sync ./MyProject --id <ios-instance-ID> --no-install',
|
|
51
|
+
'<%= config.bin %> xcode build ./MyProject --scheme MyApp',
|
|
52
|
+
'<%= config.bin %> xcode sync ./MyProject --basis-cache-dir ./.limsync-cache --max-patch-bytes 2097152',
|
|
53
|
+
'<%= config.bin %> xcode sync ./MyProject --ignore "\\\\.xcuserdata/" --ignore "^DerivedData/"',
|
|
54
|
+
'<%= config.bin %> xcode sync ./MyProject --additional-file ~/.netrc=~/.netrc',
|
|
55
|
+
];
|
|
56
|
+
XcodeSync.args = {
|
|
57
|
+
path: core_1.Args.string({
|
|
58
|
+
description: 'Local source code or project path to sync. Defaults to the current working directory.',
|
|
59
|
+
required: false,
|
|
60
|
+
}),
|
|
61
|
+
};
|
|
62
|
+
XcodeSync.flags = {
|
|
63
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
64
|
+
id: core_1.Flags.string({
|
|
65
|
+
description: 'Xcode instance ID to sync to, or an iOS instance ID with `--xcode` enabled. Defaults to the most recently created Xcode-capable target, creating one if needed.',
|
|
66
|
+
}),
|
|
67
|
+
watch: core_1.Flags.boolean({
|
|
68
|
+
description: 'Keep watching the local source tree and push changes automatically',
|
|
69
|
+
default: false,
|
|
70
|
+
allowNo: true,
|
|
71
|
+
}),
|
|
72
|
+
install: core_1.Flags.boolean({
|
|
73
|
+
description: 'Run install behavior after each sync when the sandbox supports it',
|
|
74
|
+
default: true,
|
|
75
|
+
allowNo: true,
|
|
76
|
+
}),
|
|
77
|
+
'basis-cache-dir': core_1.Flags.string({
|
|
78
|
+
description: 'Directory to use for the client-side delta sync cache.',
|
|
79
|
+
}),
|
|
80
|
+
'max-patch-bytes': core_1.Flags.integer({
|
|
81
|
+
description: 'Maximum patch size in bytes before falling back to a full upload.',
|
|
82
|
+
}),
|
|
83
|
+
ignore: core_1.Flags.string({
|
|
84
|
+
description: 'Regular expression to ignore matching relative paths during sync. Repeat for multiple patterns.',
|
|
85
|
+
multiple: true,
|
|
86
|
+
}),
|
|
87
|
+
'additional-file': core_1.Flags.string({
|
|
88
|
+
description: 'Additional file to sync as localPath=remotePath, for example ~/.netrc=~/.netrc. Repeat for multiple files.',
|
|
89
|
+
multiple: true,
|
|
90
|
+
}),
|
|
91
|
+
};
|
|
92
|
+
exports.default = XcodeSync;
|
|
93
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/xcode/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.run = void 0;
|
|
4
|
+
var core_1 = require("@oclif/core");
|
|
5
|
+
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oCAAkC;AAAzB,2FAAA,GAAG,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"additional-files.d.ts","sourceRoot":"","sources":["../../src/lib/additional-files.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,kBAAkB,EAAE,GAAG,SAAS,CAgBvG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseAdditionalFileFlags = parseAdditionalFileFlags;
|
|
4
|
+
function parseAdditionalFileFlags(values) {
|
|
5
|
+
if (!values || values.length === 0) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
return values.map((value) => {
|
|
9
|
+
const separator = value.indexOf('=');
|
|
10
|
+
if (separator <= 0 || separator === value.length - 1) {
|
|
11
|
+
throw new Error(`Invalid --additional-file value "${value}". Expected localPath=remotePath, for example ~/.netrc=~/.netrc`);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
localPath: value.slice(0, separator),
|
|
15
|
+
remotePath: value.slice(separator + 1),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=additional-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"additional-files.js","sourceRoot":"","sources":["../../src/lib/additional-files.ts"],"names":[],"mappings":";;AAKA,4DAgBC;AAhBD,SAAgB,wBAAwB,CAAC,MAA4B;IACnE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,iEAAiE,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;YACpC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AndroidElementTarget, AndroidSelector } from '@limrun/api';
|
|
2
|
+
type SelectorFlagValues = {
|
|
3
|
+
'resource-id'?: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
'content-desc'?: string;
|
|
6
|
+
'class-name'?: string;
|
|
7
|
+
'package-name'?: string;
|
|
8
|
+
index?: number;
|
|
9
|
+
clickable?: boolean;
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
focused?: boolean;
|
|
12
|
+
'bounds-contains-x'?: number;
|
|
13
|
+
'bounds-contains-y'?: number;
|
|
14
|
+
};
|
|
15
|
+
type TargetFlagValues = SelectorFlagValues & {
|
|
16
|
+
x?: number;
|
|
17
|
+
y?: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const androidSelectorFlags: {
|
|
20
|
+
'resource-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
text: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
|
+
'content-desc': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
23
|
+
'class-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
24
|
+
'package-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
25
|
+
index: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
26
|
+
clickable: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
27
|
+
enabled: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
28
|
+
focused: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
'bounds-contains-x': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
30
|
+
'bounds-contains-y': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
31
|
+
};
|
|
32
|
+
export declare const androidTargetFlags: {
|
|
33
|
+
x: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
34
|
+
y: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
35
|
+
'resource-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
36
|
+
text: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
37
|
+
'content-desc': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
38
|
+
'class-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
39
|
+
'package-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
40
|
+
index: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
41
|
+
clickable: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
42
|
+
enabled: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
43
|
+
focused: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
44
|
+
'bounds-contains-x': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
45
|
+
'bounds-contains-y': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
46
|
+
};
|
|
47
|
+
export declare function buildAndroidSelector(flags: SelectorFlagValues): AndroidSelector | undefined;
|
|
48
|
+
export declare function buildAndroidTarget(flags: TargetFlagValues): AndroidElementTarget | undefined;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=android-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android-selector.d.ts","sourceRoot":"","sources":["../../src/lib/android-selector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzE,KAAK,kBAAkB,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,gBAAgB,GAAG,kBAAkB,GAAG;IAC3C,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAmChC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAQ9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,GAAG,SAAS,CA0B3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,SAAS,CAmB5F"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.androidTargetFlags = exports.androidSelectorFlags = void 0;
|
|
4
|
+
exports.buildAndroidSelector = buildAndroidSelector;
|
|
5
|
+
exports.buildAndroidTarget = buildAndroidTarget;
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
exports.androidSelectorFlags = {
|
|
8
|
+
'resource-id': core_1.Flags.string({
|
|
9
|
+
description: 'Match by `resourceId`, such as com.example:id/submit.',
|
|
10
|
+
}),
|
|
11
|
+
text: core_1.Flags.string({ description: 'Match by visible `text` using an exact match.' }),
|
|
12
|
+
'content-desc': core_1.Flags.string({
|
|
13
|
+
description: 'Match by `contentDesc` using an exact match.',
|
|
14
|
+
}),
|
|
15
|
+
'class-name': core_1.Flags.string({
|
|
16
|
+
description: 'Match by `className`, such as android.widget.Button.',
|
|
17
|
+
}),
|
|
18
|
+
'package-name': core_1.Flags.string({
|
|
19
|
+
description: 'Match by `packageName`, such as com.example.app.',
|
|
20
|
+
}),
|
|
21
|
+
index: core_1.Flags.integer({
|
|
22
|
+
description: 'Match by child `index`.',
|
|
23
|
+
}),
|
|
24
|
+
clickable: core_1.Flags.boolean({
|
|
25
|
+
description: 'Match by `clickable=true` or `clickable=false`.',
|
|
26
|
+
allowNo: true,
|
|
27
|
+
}),
|
|
28
|
+
enabled: core_1.Flags.boolean({
|
|
29
|
+
description: 'Match by `enabled=true` or `enabled=false`.',
|
|
30
|
+
allowNo: true,
|
|
31
|
+
}),
|
|
32
|
+
focused: core_1.Flags.boolean({
|
|
33
|
+
description: 'Match by `focused=true` or `focused=false`.',
|
|
34
|
+
allowNo: true,
|
|
35
|
+
}),
|
|
36
|
+
'bounds-contains-x': core_1.Flags.integer({
|
|
37
|
+
description: 'Match by `boundsContains.x`. Use together with `--bounds-contains-y`.',
|
|
38
|
+
}),
|
|
39
|
+
'bounds-contains-y': core_1.Flags.integer({
|
|
40
|
+
description: 'Match by `boundsContains.y`. Use together with `--bounds-contains-x`.',
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
43
|
+
exports.androidTargetFlags = {
|
|
44
|
+
...exports.androidSelectorFlags,
|
|
45
|
+
x: core_1.Flags.integer({
|
|
46
|
+
description: 'Target a specific X coordinate instead of matching an element selector. Use with `--y`.',
|
|
47
|
+
}),
|
|
48
|
+
y: core_1.Flags.integer({
|
|
49
|
+
description: 'Target a specific Y coordinate instead of matching an element selector. Use with `--x`.',
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
function buildAndroidSelector(flags) {
|
|
53
|
+
const selector = {};
|
|
54
|
+
if (flags['resource-id'])
|
|
55
|
+
selector.resourceId = flags['resource-id'];
|
|
56
|
+
if (flags.text)
|
|
57
|
+
selector.text = flags.text;
|
|
58
|
+
if (flags['content-desc'])
|
|
59
|
+
selector.contentDesc = flags['content-desc'];
|
|
60
|
+
if (flags['class-name'])
|
|
61
|
+
selector.className = flags['class-name'];
|
|
62
|
+
if (flags['package-name'])
|
|
63
|
+
selector.packageName = flags['package-name'];
|
|
64
|
+
if (flags.index !== undefined)
|
|
65
|
+
selector.index = flags.index;
|
|
66
|
+
if (flags.clickable !== undefined)
|
|
67
|
+
selector.clickable = flags.clickable;
|
|
68
|
+
if (flags.enabled !== undefined)
|
|
69
|
+
selector.enabled = flags.enabled;
|
|
70
|
+
if (flags.focused !== undefined)
|
|
71
|
+
selector.focused = flags.focused;
|
|
72
|
+
const hasBoundsX = flags['bounds-contains-x'] !== undefined;
|
|
73
|
+
const hasBoundsY = flags['bounds-contains-y'] !== undefined;
|
|
74
|
+
if (hasBoundsX !== hasBoundsY) {
|
|
75
|
+
throw new Error('Use both --bounds-contains-x and --bounds-contains-y together.');
|
|
76
|
+
}
|
|
77
|
+
if (hasBoundsX && hasBoundsY) {
|
|
78
|
+
selector.boundsContains = {
|
|
79
|
+
x: flags['bounds-contains-x'],
|
|
80
|
+
y: flags['bounds-contains-y'],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return Object.keys(selector).length > 0 ? selector : undefined;
|
|
84
|
+
}
|
|
85
|
+
function buildAndroidTarget(flags) {
|
|
86
|
+
const selector = buildAndroidSelector(flags);
|
|
87
|
+
const hasX = flags.x !== undefined;
|
|
88
|
+
const hasY = flags.y !== undefined;
|
|
89
|
+
if (hasX !== hasY) {
|
|
90
|
+
throw new Error('Use both --x and --y together.');
|
|
91
|
+
}
|
|
92
|
+
if (selector && (hasX || hasY)) {
|
|
93
|
+
throw new Error('Provide either selector flags or both --x and --y, not both.');
|
|
94
|
+
}
|
|
95
|
+
if (selector) {
|
|
96
|
+
return { selector };
|
|
97
|
+
}
|
|
98
|
+
if (hasX && hasY) {
|
|
99
|
+
return { x: flags.x, y: flags.y };
|
|
100
|
+
}
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=android-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android-selector.js","sourceRoot":"","sources":["../../src/lib/android-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAOA,wBAAsB,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDnF"}
|
package/dist/lib/auth.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
exports.login = login;
|
|
7
|
+
const http_1 = __importDefault(require("http"));
|
|
8
|
+
const open_1 = __importDefault(require("open"));
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const CALLBACK_PORT = 32412;
|
|
11
|
+
const CALLBACK_PATH = '/authn/callback';
|
|
12
|
+
async function login(consoleEndpoint, version) {
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
const server = http_1.default.createServer((req, res) => {
|
|
15
|
+
// CORS preflight
|
|
16
|
+
if (req.method === 'OPTIONS') {
|
|
17
|
+
res.writeHead(200, {
|
|
18
|
+
'Access-Control-Allow-Origin': '*',
|
|
19
|
+
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
|
|
20
|
+
'Access-Control-Allow-Headers': '*',
|
|
21
|
+
'Access-Control-Max-Age': '86400',
|
|
22
|
+
});
|
|
23
|
+
res.end();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const url = new URL(req.url || '/', `http://localhost:${CALLBACK_PORT}`);
|
|
27
|
+
if (url.pathname !== CALLBACK_PATH) {
|
|
28
|
+
res.writeHead(404);
|
|
29
|
+
res.end('Not found');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
33
|
+
const apiKey = url.searchParams.get(config_1.CONFIG_KEYS.apiKey);
|
|
34
|
+
if (!apiKey) {
|
|
35
|
+
res.writeHead(400);
|
|
36
|
+
res.end('missing api-key');
|
|
37
|
+
server.close();
|
|
38
|
+
reject(new Error('Login callback received without api-key'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
(0, config_1.writeConfig)({ [config_1.CONFIG_KEYS.apiKey]: apiKey });
|
|
42
|
+
res.writeHead(200);
|
|
43
|
+
res.end('OK');
|
|
44
|
+
server.close(() => {
|
|
45
|
+
resolve();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
server.listen(CALLBACK_PORT, () => {
|
|
49
|
+
const loginUrl = new URL('/authn/login', consoleEndpoint);
|
|
50
|
+
loginUrl.searchParams.set('user-agent', `lim/${version}`);
|
|
51
|
+
(0, open_1.default)(loginUrl.toString()).catch(() => {
|
|
52
|
+
console.log(`Open this URL in your browser to log in:\n${loginUrl.toString()}`);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
server.on('error', (err) => {
|
|
56
|
+
reject(new Error(`Failed to start login server on port ${CALLBACK_PORT}: ${err.message}`));
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;;;;AAOA,sBAsDC;AA7DD,gDAAwB;AACxB,gDAAwB;AACxB,qCAAoD;AAEpD,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAEjC,KAAK,UAAU,KAAK,CAAC,eAAuB,EAAE,OAAe;IAClE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5C,iBAAiB;YACjB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,6BAA6B,EAAE,GAAG;oBAClC,8BAA8B,EAAE,iCAAiC;oBACjE,8BAA8B,EAAE,GAAG;oBACnC,wBAAwB,EAAE,OAAO;iBAClC,CAAC,CAAC;gBACH,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,aAAa,EAAE,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAW,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YAED,IAAA,oBAAW,EAAC,EAAE,CAAC,oBAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1D,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;YAC1D,IAAA,cAAI,EAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC,6CAA6C,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,aAAa,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import { type AndroidInstance } from '@limrun/api/resources/android-instances';
|
|
3
|
+
import { type IosInstance } from '@limrun/api/resources/ios-instances';
|
|
4
|
+
import { type XcodeInstance } from '@limrun/api/resources/xcode-instances';
|
|
5
|
+
export declare const CONFIG_KEYS: {
|
|
6
|
+
readonly apiKey: "api-key";
|
|
7
|
+
readonly apiEndpoint: "api-endpoint";
|
|
8
|
+
readonly consoleEndpoint: "console-endpoint";
|
|
9
|
+
};
|
|
10
|
+
export interface LimConfig {
|
|
11
|
+
apiKey: string;
|
|
12
|
+
apiEndpoint: string;
|
|
13
|
+
consoleEndpoint: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function readConfig(): LimConfig;
|
|
16
|
+
export declare function writeConfig(partial: Partial<Record<string, string>>): void;
|
|
17
|
+
export declare function clearApiKey(): void;
|
|
18
|
+
export interface LastAndroidInstance {
|
|
19
|
+
id: string;
|
|
20
|
+
type: 'android';
|
|
21
|
+
metadata?: AndroidInstance.Metadata;
|
|
22
|
+
spec?: AndroidInstance.Spec;
|
|
23
|
+
status?: AndroidInstance.Status;
|
|
24
|
+
apiUrl?: AndroidInstance.Status['apiUrl'];
|
|
25
|
+
token?: AndroidInstance.Status['token'];
|
|
26
|
+
adbWebSocketUrl?: AndroidInstance.Status['adbWebSocketUrl'];
|
|
27
|
+
endpointWebSocketUrl?: AndroidInstance.Status['endpointWebSocketUrl'];
|
|
28
|
+
mcpUrl?: AndroidInstance.Status['mcpUrl'];
|
|
29
|
+
signedStreamUrl?: AndroidInstance.Status['signedStreamUrl'];
|
|
30
|
+
targetHttpPortUrlPrefix?: AndroidInstance.Status['targetHttpPortUrlPrefix'];
|
|
31
|
+
}
|
|
32
|
+
export interface LastIosInstance {
|
|
33
|
+
id: string;
|
|
34
|
+
type: 'ios';
|
|
35
|
+
metadata?: IosInstance.Metadata;
|
|
36
|
+
spec?: IosInstance.Spec;
|
|
37
|
+
status?: IosInstance.Status;
|
|
38
|
+
apiUrl?: IosInstance.Status['apiUrl'];
|
|
39
|
+
token?: IosInstance.Status['token'];
|
|
40
|
+
endpointWebSocketUrl?: IosInstance.Status['endpointWebSocketUrl'];
|
|
41
|
+
mcpUrl?: IosInstance.Status['mcpUrl'];
|
|
42
|
+
signedStreamUrl?: IosInstance.Status['signedStreamUrl'];
|
|
43
|
+
targetHttpPortUrlPrefix?: IosInstance.Status['targetHttpPortUrlPrefix'];
|
|
44
|
+
sandboxXcodeUrl?: NonNullable<NonNullable<IosInstance.Status['sandbox']>['xcode']>['url'];
|
|
45
|
+
}
|
|
46
|
+
export interface LastXcodeInstance {
|
|
47
|
+
id: string;
|
|
48
|
+
type: 'xcode';
|
|
49
|
+
metadata?: XcodeInstance.Metadata;
|
|
50
|
+
spec?: XcodeInstance.Spec;
|
|
51
|
+
status?: XcodeInstance.Status;
|
|
52
|
+
apiUrl?: XcodeInstance.Status['apiUrl'];
|
|
53
|
+
token?: XcodeInstance.Status['token'];
|
|
54
|
+
}
|
|
55
|
+
export type InstanceInput = AndroidInstance | IosInstance | XcodeInstance;
|
|
56
|
+
export declare function registerCreatedInstance(instanceOrId: InstanceInput, relatedTypes?: Array<'xcode'>): void;
|
|
57
|
+
export declare function loadLastAndroidInstance(): LastAndroidInstance | null;
|
|
58
|
+
export declare function loadLastIosInstance(): LastIosInstance | null;
|
|
59
|
+
export declare function loadLastXcodeInstance(): LastIosInstance | LastXcodeInstance | null;
|
|
60
|
+
export declare function clearLastInstanceId(instanceId: string): void;
|
|
61
|
+
export declare function saveInstanceCache(instanceId: string, data: Partial<LastAndroidInstance> | Partial<LastIosInstance> | Partial<LastXcodeInstance>): void;
|
|
62
|
+
export declare function loadAndroidInstanceCache(instanceId: string): LastAndroidInstance | null;
|
|
63
|
+
export declare function loadIosInstanceCache(instanceId: string): LastIosInstance | null;
|
|
64
|
+
export declare function loadXcodeInstanceCache(instanceId: string): LastXcodeInstance | null;
|
|
65
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAKvB,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAK3E,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAOX,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AA0BD,wBAAgB,UAAU,IAAI,SAAS,CAWtC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAI1E;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAMD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IACpC,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACtE,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,uBAAuB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACxD,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACxE,eAAe,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACvC;AAyED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AA0E1E,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,aAAa,EAC3B,YAAY,GAAE,KAAK,CAAC,OAAO,CAAM,GAChC,IAAI,CAKN;AAED,wBAAgB,uBAAuB,IAAI,mBAAmB,GAAG,IAAI,CAGpE;AAED,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAG5D;AAED,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAGlF;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAa5D;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GACzF,IAAI,CA8BN;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAGvF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAK/E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGnF"}
|