lim 0.28.1 → 0.28.3
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 +3 -2
- package/dist/base-command.d.ts +1 -0
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +10 -0
- package/dist/base-command.js.map +1 -1
- package/dist/commands/android/connect.d.ts +1 -0
- package/dist/commands/android/connect.d.ts.map +1 -1
- package/dist/commands/android/delete.d.ts +1 -0
- package/dist/commands/android/delete.d.ts.map +1 -1
- package/dist/commands/android/element-tree.d.ts +1 -0
- package/dist/commands/android/element-tree.d.ts.map +1 -1
- package/dist/commands/android/element-tree.js +1 -1
- package/dist/commands/android/element-tree.js.map +1 -1
- package/dist/commands/android/find-element.d.ts +1 -0
- package/dist/commands/android/find-element.d.ts.map +1 -1
- package/dist/commands/android/find-element.js +1 -1
- package/dist/commands/android/find-element.js.map +1 -1
- package/dist/commands/android/get.d.ts +1 -0
- package/dist/commands/android/get.d.ts.map +1 -1
- package/dist/commands/android/install-app.d.ts +1 -0
- package/dist/commands/android/install-app.d.ts.map +1 -1
- package/dist/commands/android/install-app.js +1 -1
- package/dist/commands/android/install-app.js.map +1 -1
- package/dist/commands/android/list.d.ts +1 -0
- package/dist/commands/android/list.d.ts.map +1 -1
- package/dist/commands/android/open-url.d.ts +1 -0
- package/dist/commands/android/open-url.d.ts.map +1 -1
- package/dist/commands/android/open-url.js +1 -1
- package/dist/commands/android/open-url.js.map +1 -1
- package/dist/commands/android/play-on-microphone.d.ts +1 -0
- package/dist/commands/android/play-on-microphone.d.ts.map +1 -1
- package/dist/commands/android/press-key.d.ts +1 -0
- package/dist/commands/android/press-key.d.ts.map +1 -1
- package/dist/commands/android/press-key.js +1 -1
- package/dist/commands/android/press-key.js.map +1 -1
- package/dist/commands/android/record.d.ts +1 -0
- package/dist/commands/android/record.d.ts.map +1 -1
- package/dist/commands/android/record.js +2 -2
- package/dist/commands/android/record.js.map +1 -1
- package/dist/commands/android/screenshot.d.ts +1 -0
- package/dist/commands/android/screenshot.d.ts.map +1 -1
- package/dist/commands/android/screenshot.js +1 -1
- package/dist/commands/android/screenshot.js.map +1 -1
- package/dist/commands/android/scroll.d.ts +1 -0
- package/dist/commands/android/scroll.d.ts.map +1 -1
- package/dist/commands/android/scroll.js +1 -1
- package/dist/commands/android/scroll.js.map +1 -1
- package/dist/commands/android/set-instance.d.ts +1 -0
- package/dist/commands/android/set-instance.d.ts.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.d.ts +1 -0
- package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.js +1 -1
- package/dist/commands/android/set-wifi-bandwidth.js.map +1 -1
- package/dist/commands/android/sync.d.ts +1 -0
- package/dist/commands/android/sync.d.ts.map +1 -1
- package/dist/commands/android/tap-element.d.ts +1 -0
- package/dist/commands/android/tap-element.d.ts.map +1 -1
- package/dist/commands/android/tap-element.js +1 -1
- package/dist/commands/android/tap-element.js.map +1 -1
- package/dist/commands/android/tap.d.ts +1 -0
- package/dist/commands/android/tap.d.ts.map +1 -1
- package/dist/commands/android/tap.js +1 -1
- package/dist/commands/android/tap.js.map +1 -1
- package/dist/commands/android/type.d.ts +1 -0
- package/dist/commands/android/type.d.ts.map +1 -1
- package/dist/commands/android/type.js +1 -1
- package/dist/commands/android/type.js.map +1 -1
- package/dist/commands/asset/delete.d.ts +1 -0
- package/dist/commands/asset/delete.d.ts.map +1 -1
- package/dist/commands/asset/list.d.ts +1 -0
- package/dist/commands/asset/list.d.ts.map +1 -1
- package/dist/commands/asset/pull.d.ts +1 -0
- package/dist/commands/asset/pull.d.ts.map +1 -1
- package/dist/commands/asset/push.d.ts +1 -0
- package/dist/commands/asset/push.d.ts.map +1 -1
- package/dist/commands/gradle/build.d.ts +1 -0
- package/dist/commands/gradle/build.d.ts.map +1 -1
- package/dist/commands/gradle/create.d.ts +1 -0
- package/dist/commands/gradle/create.d.ts.map +1 -1
- package/dist/commands/gradle/delete.d.ts +1 -0
- package/dist/commands/gradle/delete.d.ts.map +1 -1
- package/dist/commands/gradle/get.d.ts +1 -0
- package/dist/commands/gradle/get.d.ts.map +1 -1
- package/dist/commands/gradle/list.d.ts +1 -0
- package/dist/commands/gradle/list.d.ts.map +1 -1
- package/dist/commands/gradle/set-instance.d.ts +1 -0
- package/dist/commands/gradle/set-instance.d.ts.map +1 -1
- package/dist/commands/ios/app-log.d.ts +1 -0
- package/dist/commands/ios/app-log.d.ts.map +1 -1
- package/dist/commands/ios/app-log.js +1 -1
- package/dist/commands/ios/app-log.js.map +1 -1
- package/dist/commands/ios/camera.d.ts +1 -0
- package/dist/commands/ios/camera.d.ts.map +1 -1
- package/dist/commands/ios/create.d.ts +1 -0
- package/dist/commands/ios/create.d.ts.map +1 -1
- package/dist/commands/ios/delete-file.d.ts +1 -0
- package/dist/commands/ios/delete-file.d.ts.map +1 -1
- package/dist/commands/ios/delete.d.ts +1 -0
- package/dist/commands/ios/delete.d.ts.map +1 -1
- package/dist/commands/ios/element-tree.d.ts +1 -0
- package/dist/commands/ios/element-tree.d.ts.map +1 -1
- package/dist/commands/ios/element-tree.js +1 -1
- package/dist/commands/ios/element-tree.js.map +1 -1
- package/dist/commands/ios/get.d.ts +1 -0
- package/dist/commands/ios/get.d.ts.map +1 -1
- package/dist/commands/ios/info.d.ts +1 -0
- package/dist/commands/ios/info.d.ts.map +1 -1
- package/dist/commands/ios/info.js +1 -1
- package/dist/commands/ios/info.js.map +1 -1
- package/dist/commands/ios/install-app.d.ts +1 -0
- package/dist/commands/ios/install-app.d.ts.map +1 -1
- package/dist/commands/ios/install-app.js +1 -1
- package/dist/commands/ios/install-app.js.map +1 -1
- package/dist/commands/ios/keychain/generate-key.d.ts +1 -0
- package/dist/commands/ios/keychain/generate-key.d.ts.map +1 -1
- package/dist/commands/ios/keychain/restore.d.ts +1 -0
- package/dist/commands/ios/keychain/restore.d.ts.map +1 -1
- package/dist/commands/ios/keychain/save.d.ts +1 -0
- package/dist/commands/ios/keychain/save.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.d.ts +1 -0
- package/dist/commands/ios/launch-app.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.js +1 -1
- package/dist/commands/ios/launch-app.js.map +1 -1
- package/dist/commands/ios/list-apps.d.ts +1 -0
- package/dist/commands/ios/list-apps.d.ts.map +1 -1
- package/dist/commands/ios/list-apps.js +1 -1
- package/dist/commands/ios/list-apps.js.map +1 -1
- package/dist/commands/ios/list.d.ts +1 -0
- package/dist/commands/ios/list.d.ts.map +1 -1
- package/dist/commands/ios/ls.d.ts +22 -0
- package/dist/commands/ios/ls.d.ts.map +1 -0
- package/dist/commands/ios/ls.js +63 -0
- package/dist/commands/ios/ls.js.map +1 -0
- package/dist/commands/ios/lsof.d.ts +1 -0
- package/dist/commands/ios/lsof.d.ts.map +1 -1
- package/dist/commands/ios/maestro.d.ts +1 -0
- package/dist/commands/ios/maestro.d.ts.map +1 -1
- package/dist/commands/ios/open-url.d.ts +1 -0
- package/dist/commands/ios/open-url.d.ts.map +1 -1
- package/dist/commands/ios/open-url.js +1 -1
- package/dist/commands/ios/open-url.js.map +1 -1
- package/dist/commands/ios/perform.d.ts +1 -0
- package/dist/commands/ios/perform.d.ts.map +1 -1
- package/dist/commands/ios/perform.js +1 -1
- package/dist/commands/ios/perform.js.map +1 -1
- package/dist/commands/ios/play-on-microphone.d.ts +1 -0
- package/dist/commands/ios/play-on-microphone.d.ts.map +1 -1
- package/dist/commands/ios/press-key.d.ts +1 -0
- package/dist/commands/ios/press-key.d.ts.map +1 -1
- package/dist/commands/ios/press-key.js +1 -1
- package/dist/commands/ios/press-key.js.map +1 -1
- package/dist/commands/ios/pull-file.d.ts +1 -0
- package/dist/commands/ios/pull-file.d.ts.map +1 -1
- package/dist/commands/ios/push-file.d.ts +1 -0
- package/dist/commands/ios/push-file.d.ts.map +1 -1
- package/dist/commands/ios/record.d.ts +1 -0
- package/dist/commands/ios/record.d.ts.map +1 -1
- package/dist/commands/ios/record.js +2 -2
- package/dist/commands/ios/record.js.map +1 -1
- package/dist/commands/ios/reverse.d.ts +1 -0
- package/dist/commands/ios/reverse.d.ts.map +1 -1
- package/dist/commands/ios/screenshot.d.ts +1 -0
- package/dist/commands/ios/screenshot.d.ts.map +1 -1
- package/dist/commands/ios/screenshot.js +1 -1
- package/dist/commands/ios/screenshot.js.map +1 -1
- package/dist/commands/ios/scroll.d.ts +1 -0
- package/dist/commands/ios/scroll.d.ts.map +1 -1
- package/dist/commands/ios/scroll.js +1 -1
- package/dist/commands/ios/scroll.js.map +1 -1
- package/dist/commands/ios/set-instance.d.ts +1 -0
- package/dist/commands/ios/set-instance.d.ts.map +1 -1
- package/dist/commands/ios/set-text.d.ts +1 -0
- package/dist/commands/ios/set-text.d.ts.map +1 -1
- package/dist/commands/ios/set-text.js +1 -1
- package/dist/commands/ios/set-text.js.map +1 -1
- package/dist/commands/ios/simctl.d.ts +1 -0
- package/dist/commands/ios/simctl.d.ts.map +1 -1
- package/dist/commands/ios/stop-microphone-playback.d.ts +1 -0
- package/dist/commands/ios/stop-microphone-playback.d.ts.map +1 -1
- package/dist/commands/ios/swipe.d.ts +1 -0
- package/dist/commands/ios/swipe.d.ts.map +1 -1
- package/dist/commands/ios/swipe.js +1 -1
- package/dist/commands/ios/swipe.js.map +1 -1
- package/dist/commands/ios/sync.d.ts +1 -0
- package/dist/commands/ios/sync.d.ts.map +1 -1
- package/dist/commands/ios/syslog.d.ts +1 -0
- package/dist/commands/ios/syslog.d.ts.map +1 -1
- package/dist/commands/ios/tap-element.d.ts +1 -0
- package/dist/commands/ios/tap-element.d.ts.map +1 -1
- package/dist/commands/ios/tap-element.js +1 -1
- package/dist/commands/ios/tap-element.js.map +1 -1
- package/dist/commands/ios/tap.d.ts +1 -0
- package/dist/commands/ios/tap.d.ts.map +1 -1
- package/dist/commands/ios/tap.js +1 -1
- package/dist/commands/ios/tap.js.map +1 -1
- package/dist/commands/ios/terminate-app.d.ts +1 -0
- package/dist/commands/ios/terminate-app.d.ts.map +1 -1
- package/dist/commands/ios/terminate-app.js +1 -1
- package/dist/commands/ios/terminate-app.js.map +1 -1
- package/dist/commands/ios/toggle-keyboard.d.ts +1 -0
- package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
- package/dist/commands/ios/toggle-keyboard.js +1 -1
- package/dist/commands/ios/toggle-keyboard.js.map +1 -1
- package/dist/commands/ios/type.d.ts +1 -0
- package/dist/commands/ios/type.d.ts.map +1 -1
- package/dist/commands/ios/type.js +1 -1
- package/dist/commands/ios/type.js.map +1 -1
- package/dist/commands/ios/xcodebuild.d.ts +1 -0
- package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
- package/dist/commands/ios/xcrun.d.ts +1 -0
- package/dist/commands/ios/xcrun.d.ts.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/logout.d.ts +1 -0
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/session/start.d.ts +1 -0
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/start.js +1 -34
- package/dist/commands/session/start.js.map +1 -1
- package/dist/commands/session/status.d.ts +1 -0
- package/dist/commands/session/status.d.ts.map +1 -1
- package/dist/commands/session/stop.d.ts +1 -0
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/xcode/attach-simulator.d.ts +2 -1
- package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
- package/dist/commands/xcode/attach-simulator.js +24 -10
- package/dist/commands/xcode/attach-simulator.js.map +1 -1
- package/dist/commands/xcode/build.d.ts +1 -0
- package/dist/commands/xcode/build.d.ts.map +1 -1
- package/dist/commands/xcode/create.d.ts +1 -0
- package/dist/commands/xcode/create.d.ts.map +1 -1
- package/dist/commands/xcode/delete.d.ts +1 -0
- package/dist/commands/xcode/delete.d.ts.map +1 -1
- package/dist/commands/xcode/get.d.ts +1 -0
- package/dist/commands/xcode/get.d.ts.map +1 -1
- package/dist/commands/xcode/list.d.ts +1 -0
- package/dist/commands/xcode/list.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/upload.d.ts +1 -0
- package/dist/commands/xcode/rbe/upload.d.ts.map +1 -1
- package/dist/commands/xcode/run.d.ts +1 -0
- package/dist/commands/xcode/run.d.ts.map +1 -1
- package/dist/commands/xcode/set-instance.d.ts +1 -0
- package/dist/commands/xcode/set-instance.d.ts.map +1 -1
- package/dist/commands/xcode/sync.d.ts +1 -0
- package/dist/commands/xcode/sync.d.ts.map +1 -1
- package/dist/lib/daemon.d.ts +12 -0
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/daemon.js +141 -23
- package/dist/lib/daemon.js.map +1 -1
- package/dist/lib/instance-client-factory.d.ts +15 -2
- package/dist/lib/instance-client-factory.d.ts.map +1 -1
- package/dist/lib/instance-client-factory.js +40 -4
- package/dist/lib/instance-client-factory.js.map +1 -1
- package/dist/lib/instance-client-factory.test.d.ts +2 -0
- package/dist/lib/instance-client-factory.test.d.ts.map +1 -0
- package/dist/lib/instance-client-factory.test.js +78 -0
- package/dist/lib/instance-client-factory.test.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Limrun, { Ios, type InstanceClient } from '@limrun/api';
|
|
2
|
+
import { spawnSessionDaemon } from './daemon';
|
|
2
3
|
import { type LastAndroidInstance, type LastIosInstance } from './config';
|
|
3
4
|
export type InstanceType = 'android' | 'ios' | 'xcode' | 'gradle';
|
|
4
5
|
export interface ResolvedAndroidInstanceClient {
|
|
@@ -16,10 +17,21 @@ export interface ResolvedIosInstanceClient {
|
|
|
16
17
|
isSession: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare function detectInstanceType(id: string): InstanceType;
|
|
20
|
+
/** Configure daemon auto-start for this invocation; wired from the --daemon and --json flags. */
|
|
21
|
+
export declare function setSessionAutoStart(config: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
silent?: boolean;
|
|
24
|
+
}): void;
|
|
25
|
+
/** Injectable for tests. */
|
|
26
|
+
type SpawnFn = typeof spawnSessionDaemon;
|
|
19
27
|
/**
|
|
20
|
-
*
|
|
28
|
+
* Ensure a daemon session exists for the target so the command can use the
|
|
29
|
+
* ~50ms Unix-socket path, starting one if needed. Returns false when the
|
|
30
|
+
* command should fall back to a direct WebSocket instead: auto-start disabled,
|
|
31
|
+
* credentials not known yet (the direct path fetches and caches them, so the
|
|
32
|
+
* next command auto-starts), or the daemon failed to start.
|
|
21
33
|
*/
|
|
22
|
-
export declare function
|
|
34
|
+
export declare function ensureDaemonSession(target: LastAndroidInstance | LastIosInstance, spawnFn?: SpawnFn): Promise<boolean>;
|
|
23
35
|
/**
|
|
24
36
|
* Send a command via the daemon session for the given instance ID.
|
|
25
37
|
*/
|
|
@@ -28,4 +40,5 @@ export declare function getAndroidInstanceClient(lim: Limrun, target: LastAndroi
|
|
|
28
40
|
adbPath?: string;
|
|
29
41
|
}): Promise<ResolvedAndroidInstanceClient>;
|
|
30
42
|
export declare function getIosInstanceClient(lim: Limrun, target: LastIosInstance): Promise<ResolvedIosInstanceClient>;
|
|
43
|
+
export {};
|
|
31
44
|
//# sourceMappingURL=instance-client-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAS3D;
|
|
1
|
+
{"version":3,"file":"instance-client-factory.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAwB,GAAG,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAS3D;AAID,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAExF;AAED,4BAA4B;AAC5B,KAAK,OAAO,GAAG,OAAO,kBAAkB,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,GAAG,eAAe,EAC7C,OAAO,GAAE,OAA4B,GACpC,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,OAAO,EAAO,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,6BAA6B,CAAC,CAiCxC;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAuBpC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.detectInstanceType = detectInstanceType;
|
|
4
|
-
exports.
|
|
4
|
+
exports.setSessionAutoStart = setSessionAutoStart;
|
|
5
|
+
exports.ensureDaemonSession = ensureDaemonSession;
|
|
5
6
|
exports.sendSessionCommand = sendSessionCommand;
|
|
6
7
|
exports.getAndroidInstanceClient = getAndroidInstanceClient;
|
|
7
8
|
exports.getIosInstanceClient = getIosInstanceClient;
|
|
8
9
|
const api_1 = require("@limrun/api");
|
|
9
10
|
const daemon_client_1 = require("./daemon-client");
|
|
11
|
+
const daemon_1 = require("./daemon");
|
|
10
12
|
const config_1 = require("./config");
|
|
11
13
|
function detectInstanceType(id) {
|
|
12
14
|
const prefix = id.split('_')[0];
|
|
@@ -20,11 +22,45 @@ function detectInstanceType(id) {
|
|
|
20
22
|
return 'gradle';
|
|
21
23
|
throw new Error(`Cannot detect instance type from ID "${id}". Expected prefix "android_", "ios_", "xcode_", "sandbox_", or "gradle_".`);
|
|
22
24
|
}
|
|
25
|
+
let sessionAutoStart = { enabled: true, silent: false };
|
|
26
|
+
/** Configure daemon auto-start for this invocation; wired from the --daemon and --json flags. */
|
|
27
|
+
function setSessionAutoStart(config) {
|
|
28
|
+
sessionAutoStart = { enabled: config.enabled, silent: config.silent ?? false };
|
|
29
|
+
}
|
|
23
30
|
/**
|
|
24
|
-
*
|
|
31
|
+
* Ensure a daemon session exists for the target so the command can use the
|
|
32
|
+
* ~50ms Unix-socket path, starting one if needed. Returns false when the
|
|
33
|
+
* command should fall back to a direct WebSocket instead: auto-start disabled,
|
|
34
|
+
* credentials not known yet (the direct path fetches and caches them, so the
|
|
35
|
+
* next command auto-starts), or the daemon failed to start.
|
|
25
36
|
*/
|
|
26
|
-
function
|
|
27
|
-
|
|
37
|
+
async function ensureDaemonSession(target, spawnFn = daemon_1.spawnSessionDaemon) {
|
|
38
|
+
if ((0, daemon_client_1.isSessionActive)(target.id))
|
|
39
|
+
return true;
|
|
40
|
+
if (!sessionAutoStart.enabled)
|
|
41
|
+
return false;
|
|
42
|
+
if (!target.apiUrl || !target.token)
|
|
43
|
+
return false;
|
|
44
|
+
try {
|
|
45
|
+
await spawnFn({
|
|
46
|
+
instanceId: target.id,
|
|
47
|
+
instanceType: target.type,
|
|
48
|
+
apiUrl: target.apiUrl,
|
|
49
|
+
adbUrl: target.type === 'android' ? target.adbWebSocketUrl : undefined,
|
|
50
|
+
token: target.token,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
if (!sessionAutoStart.silent) {
|
|
55
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
56
|
+
console.error(`Could not start WebSocket daemon for ${target.id} (${message}); connecting directly.`);
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (!sessionAutoStart.silent) {
|
|
61
|
+
console.error(`WebSocket daemon started for ${target.id}.`);
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
28
64
|
}
|
|
29
65
|
/**
|
|
30
66
|
* Send a command via the daemon session for the given instance ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"instance-client-factory.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-client-factory.test.d.ts","sourceRoot":"","sources":["../../src/lib/instance-client-factory.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const instance_client_factory_1 = require("./instance-client-factory");
|
|
4
|
+
const daemon_client_1 = require("./daemon-client");
|
|
5
|
+
jest.mock('./daemon-client', () => ({
|
|
6
|
+
isSessionActive: jest.fn(),
|
|
7
|
+
sendCommand: jest.fn(),
|
|
8
|
+
}));
|
|
9
|
+
const isSessionActiveMock = daemon_client_1.isSessionActive;
|
|
10
|
+
const IOS_TARGET = {
|
|
11
|
+
id: 'ios_euna_01m02anjqredzr42pcn8s8jx90',
|
|
12
|
+
type: 'ios',
|
|
13
|
+
apiUrl: 'https://region.limrun.com/v1/ios_x/api',
|
|
14
|
+
token: 'lim_st_token',
|
|
15
|
+
};
|
|
16
|
+
const ANDROID_TARGET = {
|
|
17
|
+
id: 'android_euna_01m02anjqredzr42pcn8s8jx90',
|
|
18
|
+
type: 'android',
|
|
19
|
+
apiUrl: 'https://region.limrun.com/v1/android_x/api',
|
|
20
|
+
token: 'lim_st_token',
|
|
21
|
+
adbWebSocketUrl: 'wss://region.limrun.com/v1/android_x/adb',
|
|
22
|
+
};
|
|
23
|
+
describe('ensureDaemonSession', () => {
|
|
24
|
+
let spawnFn;
|
|
25
|
+
let stderr;
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
isSessionActiveMock.mockReset();
|
|
28
|
+
isSessionActiveMock.mockReturnValue(false);
|
|
29
|
+
spawnFn = jest.fn().mockResolvedValue(undefined);
|
|
30
|
+
stderr = jest.spyOn(console, 'error').mockImplementation(() => { });
|
|
31
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: false });
|
|
32
|
+
});
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
stderr.mockRestore();
|
|
35
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: false });
|
|
36
|
+
});
|
|
37
|
+
it('uses the existing session without spawning', async () => {
|
|
38
|
+
isSessionActiveMock.mockReturnValue(true);
|
|
39
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(IOS_TARGET, spawnFn)).resolves.toBe(true);
|
|
40
|
+
expect(spawnFn).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
it('does not spawn when auto-start is disabled', async () => {
|
|
43
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: false });
|
|
44
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(IOS_TARGET, spawnFn)).resolves.toBe(false);
|
|
45
|
+
expect(spawnFn).not.toHaveBeenCalled();
|
|
46
|
+
});
|
|
47
|
+
it('does not spawn when credentials are not known yet', async () => {
|
|
48
|
+
const idOnly = { id: IOS_TARGET.id, type: 'ios' };
|
|
49
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(idOnly, spawnFn)).resolves.toBe(false);
|
|
50
|
+
expect(spawnFn).not.toHaveBeenCalled();
|
|
51
|
+
});
|
|
52
|
+
it('spawns with the target credentials and announces on stderr', async () => {
|
|
53
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(IOS_TARGET, spawnFn)).resolves.toBe(true);
|
|
54
|
+
expect(spawnFn).toHaveBeenCalledWith({
|
|
55
|
+
instanceId: IOS_TARGET.id,
|
|
56
|
+
instanceType: 'ios',
|
|
57
|
+
apiUrl: IOS_TARGET.apiUrl,
|
|
58
|
+
adbUrl: undefined,
|
|
59
|
+
token: IOS_TARGET.token,
|
|
60
|
+
});
|
|
61
|
+
expect(stderr).toHaveBeenCalledWith(`WebSocket daemon started for ${IOS_TARGET.id}.`);
|
|
62
|
+
});
|
|
63
|
+
it('passes the adb url for android targets', async () => {
|
|
64
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(ANDROID_TARGET, spawnFn)).resolves.toBe(true);
|
|
65
|
+
expect(spawnFn).toHaveBeenCalledWith(expect.objectContaining({ instanceType: 'android', adbUrl: ANDROID_TARGET.adbWebSocketUrl }));
|
|
66
|
+
});
|
|
67
|
+
it('stays quiet when silent', async () => {
|
|
68
|
+
(0, instance_client_factory_1.setSessionAutoStart)({ enabled: true, silent: true });
|
|
69
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(IOS_TARGET, spawnFn)).resolves.toBe(true);
|
|
70
|
+
expect(stderr).not.toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
it('falls back to direct connection when the spawn fails', async () => {
|
|
73
|
+
spawnFn.mockRejectedValue(new Error('boom'));
|
|
74
|
+
await expect((0, instance_client_factory_1.ensureDaemonSession)(IOS_TARGET, spawnFn)).resolves.toBe(false);
|
|
75
|
+
expect(stderr).toHaveBeenCalledWith(`Could not start WebSocket daemon for ${IOS_TARGET.id} (boom); connecting directly.`);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=instance-client-factory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-client-factory.test.js","sourceRoot":"","sources":["../../src/lib/instance-client-factory.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.3",
|
|
4
4
|
"description": "Use remote XCode, Gradle, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lim": "./bin/run.js"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@limrun/api": "^0.46.
|
|
28
|
+
"@limrun/api": "^0.46.14",
|
|
29
29
|
"@oclif/core": "^4",
|
|
30
30
|
"cli-progress": "^3.12.0",
|
|
31
31
|
"cli-table3": "^0.6.5",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"description": "Build Android projects on cloud gradle sandboxes"
|
|
67
67
|
},
|
|
68
68
|
"ios": {
|
|
69
|
-
"description": "Execute any task on remote iOS Simulators: create, list, get, delete, info, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, keychain, record, perform, simctl, cp, xcrun, xcodebuild, lsof, reverse"
|
|
69
|
+
"description": "Execute any task on remote iOS Simulators: create, list, get, delete, info, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, keychain, record, perform, ls, push-file, pull-file, delete-file, simctl, cp, xcrun, xcodebuild, lsof, reverse"
|
|
70
70
|
},
|
|
71
71
|
"session": {
|
|
72
72
|
"description": "Manage persistent background sessions for device interaction: start, status, stop. Sessions are used to execute commands on remote devices without the need to reconnect to the device after each command."
|