@limrun/api 0.48.3 → 0.49.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/CHANGELOG.md +8 -0
- package/client.d.mts +6 -3
- package/client.d.mts.map +1 -1
- package/client.d.ts +6 -3
- package/client.d.ts.map +1 -1
- package/client.js +4 -4
- package/client.js.map +1 -1
- package/client.mjs +2 -2
- package/client.mjs.map +1 -1
- package/destination-tunnel-dialer.d.mts +30 -2
- package/destination-tunnel-dialer.d.mts.map +1 -1
- package/destination-tunnel-dialer.d.ts +30 -2
- package/destination-tunnel-dialer.d.ts.map +1 -1
- package/destination-tunnel-dialer.js +349 -65
- package/destination-tunnel-dialer.js.map +1 -1
- package/destination-tunnel-dialer.mjs +345 -64
- package/destination-tunnel-dialer.mjs.map +1 -1
- package/destination-tunnel-har.d.mts +23 -0
- package/destination-tunnel-har.d.mts.map +1 -0
- package/destination-tunnel-har.d.ts +23 -0
- package/destination-tunnel-har.d.ts.map +1 -0
- package/destination-tunnel-har.js +164 -0
- package/destination-tunnel-har.js.map +1 -0
- package/destination-tunnel-har.mjs +160 -0
- package/destination-tunnel-har.mjs.map +1 -0
- package/destination-tunnel-inspection.d.mts +71 -0
- package/destination-tunnel-inspection.d.mts.map +1 -0
- package/destination-tunnel-inspection.d.ts +71 -0
- package/destination-tunnel-inspection.d.ts.map +1 -0
- package/destination-tunnel-inspection.js +267 -0
- package/destination-tunnel-inspection.js.map +1 -0
- package/destination-tunnel-inspection.mjs +261 -0
- package/destination-tunnel-inspection.mjs.map +1 -0
- package/destination-tunnel.d.mts +119 -14
- package/destination-tunnel.d.mts.map +1 -1
- package/destination-tunnel.d.ts +119 -14
- package/destination-tunnel.d.ts.map +1 -1
- package/destination-tunnel.js +407 -98
- package/destination-tunnel.js.map +1 -1
- package/destination-tunnel.mjs +374 -73
- package/destination-tunnel.mjs.map +1 -1
- package/exec-client.d.mts +1 -0
- package/exec-client.d.mts.map +1 -1
- package/exec-client.d.ts +1 -0
- package/exec-client.d.ts.map +1 -1
- package/exec-client.js.map +1 -1
- package/exec-client.mjs.map +1 -1
- package/index.d.mts +6 -0
- package/index.d.mts.map +1 -1
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -1
- package/index.js +23 -2
- package/index.js.map +1 -1
- package/index.mjs +5 -0
- package/index.mjs.map +1 -1
- package/instance-client.d.mts +105 -1
- package/instance-client.d.mts.map +1 -1
- package/instance-client.d.ts +105 -1
- package/instance-client.d.ts.map +1 -1
- package/instance-client.js +83 -1
- package/instance-client.js.map +1 -1
- package/instance-client.mjs +83 -1
- package/instance-client.mjs.map +1 -1
- package/internal/destination-tunnel-management.d.mts +4 -3
- package/internal/destination-tunnel-management.d.mts.map +1 -1
- package/internal/destination-tunnel-management.d.ts +4 -3
- package/internal/destination-tunnel-management.d.ts.map +1 -1
- package/internal/destination-tunnel-management.js +64 -46
- package/internal/destination-tunnel-management.js.map +1 -1
- package/internal/destination-tunnel-management.mjs +55 -37
- package/internal/destination-tunnel-management.mjs.map +1 -1
- package/internal/destination-tunnel-url.d.mts +2 -0
- package/internal/destination-tunnel-url.d.mts.map +1 -1
- package/internal/destination-tunnel-url.d.ts +2 -0
- package/internal/destination-tunnel-url.d.ts.map +1 -1
- package/internal/destination-tunnel-url.js +45 -5
- package/internal/destination-tunnel-url.js.map +1 -1
- package/internal/destination-tunnel-url.mjs +44 -5
- package/internal/destination-tunnel-url.mjs.map +1 -1
- package/internal/destination-tunnel-wire-reader.d.mts +23 -0
- package/internal/destination-tunnel-wire-reader.d.mts.map +1 -0
- package/internal/destination-tunnel-wire-reader.d.ts +23 -0
- package/internal/destination-tunnel-wire-reader.d.ts.map +1 -0
- package/internal/destination-tunnel-wire-reader.js +110 -0
- package/internal/destination-tunnel-wire-reader.js.map +1 -0
- package/internal/destination-tunnel-wire-reader.mjs +93 -0
- package/internal/destination-tunnel-wire-reader.mjs.map +1 -0
- package/internal/persist-option.d.mts +14 -0
- package/internal/persist-option.d.mts.map +1 -0
- package/internal/persist-option.d.ts +14 -0
- package/internal/persist-option.d.ts.map +1 -0
- package/internal/persist-option.js +18 -0
- package/internal/persist-option.js.map +1 -0
- package/internal/persist-option.mjs +15 -0
- package/internal/persist-option.mjs.map +1 -0
- package/internal/proxy-transport.d.mts +27 -0
- package/internal/proxy-transport.d.mts.map +1 -1
- package/internal/proxy-transport.d.ts +27 -0
- package/internal/proxy-transport.d.ts.map +1 -1
- package/internal/proxy-transport.js +206 -0
- package/internal/proxy-transport.js.map +1 -1
- package/internal/proxy-transport.mjs +205 -0
- package/internal/proxy-transport.mjs.map +1 -1
- package/internal/session-stream.d.mts +39 -0
- package/internal/session-stream.d.mts.map +1 -0
- package/internal/session-stream.d.ts +39 -0
- package/internal/session-stream.d.ts.map +1 -0
- package/internal/session-stream.js +144 -0
- package/internal/session-stream.js.map +1 -0
- package/internal/session-stream.mjs +139 -0
- package/internal/session-stream.mjs.map +1 -0
- package/internal/tslib.js +4 -4
- package/ios-client.d.mts +61 -4
- package/ios-client.d.mts.map +1 -1
- package/ios-client.d.ts +61 -4
- package/ios-client.d.ts.map +1 -1
- package/ios-client.js +48 -2
- package/ios-client.js.map +1 -1
- package/ios-client.mjs +48 -2
- package/ios-client.mjs.map +1 -1
- package/package.json +22 -1
- package/resources/android-instances-helpers.d.mts +25 -0
- package/resources/android-instances-helpers.d.mts.map +1 -0
- package/resources/android-instances-helpers.d.ts +25 -0
- package/resources/android-instances-helpers.d.ts.map +1 -0
- package/resources/android-instances-helpers.js +37 -0
- package/resources/android-instances-helpers.js.map +1 -0
- package/resources/android-instances-helpers.mjs +33 -0
- package/resources/android-instances-helpers.mjs.map +1 -0
- package/resources/index.d.mts +5 -2
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +5 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +5 -5
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +2 -2
- package/resources/index.mjs.map +1 -1
- package/resources/ios-instances-helpers.d.mts +25 -0
- package/resources/ios-instances-helpers.d.mts.map +1 -0
- package/resources/ios-instances-helpers.d.ts +25 -0
- package/resources/ios-instances-helpers.d.ts.map +1 -0
- package/resources/ios-instances-helpers.js +37 -0
- package/resources/ios-instances-helpers.js.map +1 -0
- package/resources/ios-instances-helpers.mjs +33 -0
- package/resources/ios-instances-helpers.mjs.map +1 -0
- package/resources/session-artifacts.d.mts +70 -0
- package/resources/session-artifacts.d.mts.map +1 -0
- package/resources/session-artifacts.d.ts +70 -0
- package/resources/session-artifacts.d.ts.map +1 -0
- package/resources/session-artifacts.js +8 -0
- package/resources/session-artifacts.js.map +1 -0
- package/resources/session-artifacts.mjs +7 -0
- package/resources/session-artifacts.mjs.map +1 -0
- package/resources/xcode-instances-helpers.d.mts +9 -0
- package/resources/xcode-instances-helpers.d.mts.map +1 -1
- package/resources/xcode-instances-helpers.d.ts +9 -0
- package/resources/xcode-instances-helpers.d.ts.map +1 -1
- package/resources/xcode-instances-helpers.js.map +1 -1
- package/resources/xcode-instances-helpers.mjs.map +1 -1
- package/src/client.ts +4 -2
- package/src/destination-tunnel-dialer.ts +403 -64
- package/src/destination-tunnel-har.ts +200 -0
- package/src/destination-tunnel-inspection.ts +367 -0
- package/src/destination-tunnel.ts +510 -88
- package/src/exec-client.ts +1 -0
- package/src/index.ts +52 -0
- package/src/instance-client.ts +271 -5
- package/src/internal/destination-tunnel-management.ts +67 -43
- package/src/internal/destination-tunnel-url.ts +61 -5
- package/src/internal/destination-tunnel-wire-reader.ts +109 -0
- package/src/internal/persist-option.ts +26 -0
- package/src/internal/proxy-transport.ts +248 -0
- package/src/internal/session-stream.ts +157 -0
- package/src/ios-client.ts +127 -8
- package/src/resources/android-instances-helpers.ts +45 -0
- package/src/resources/index.ts +9 -2
- package/src/resources/ios-instances-helpers.ts +45 -0
- package/src/resources/session-artifacts.ts +95 -0
- package/src/resources/xcode-instances-helpers.ts +9 -0
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/instance-client.d.mts
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import type { Tunnel } from "./tunnel.mjs";
|
|
2
2
|
import { type FolderSyncOptions, type SyncFolderResult } from "./folder-sync.mjs";
|
|
3
|
+
import { type DestinationTcpTunnel } from "./destination-tunnel-dialer.mjs";
|
|
4
|
+
import type { DestinationTunnelInspectionConfig, DestinationTunnelSelectors } from "./destination-tunnel.mjs";
|
|
5
|
+
import type { DestinationTunnelInspectionErrorCallback, DestinationTunnelInspectionEventCallback } from "./destination-tunnel-inspection.mjs";
|
|
6
|
+
import { type DestinationTunnelStatus } from "./internal/destination-tunnel-management.mjs";
|
|
7
|
+
import { type PersistOption } from "./internal/persist-option.mjs";
|
|
8
|
+
import type { SessionLogLine, SessionEvent } from "./resources/session-artifacts.mjs";
|
|
9
|
+
export { type PersistOption } from "./internal/persist-option.mjs";
|
|
10
|
+
/** Transparent destination tunnel from the Android instance to this machine. */
|
|
11
|
+
export type DestinationTunnel = DestinationTcpTunnel;
|
|
12
|
+
export type DestinationTunnelOptions = {
|
|
13
|
+
/** Exact endpoint and domain selector values interpreted by the Android tunnel server. */
|
|
14
|
+
selectors: DestinationTunnelSelectors;
|
|
15
|
+
/** Inspection settings negotiated with the Android tunnel server. */
|
|
16
|
+
inspection?: Partial<DestinationTunnelInspectionConfig>;
|
|
17
|
+
/** Called for each validated inspection metadata or body event. */
|
|
18
|
+
onInspectionEvent?: DestinationTunnelInspectionEventCallback;
|
|
19
|
+
/** Called when the independent inspection stream fails or reconnects. */
|
|
20
|
+
onInspectionError?: DestinationTunnelInspectionErrorCallback;
|
|
21
|
+
/** Per-flow receive window in bytes. Defaults to 1 MiB. */
|
|
22
|
+
window?: number;
|
|
23
|
+
/** Controls tunnel logging verbosity. Defaults to the instance client's log level. */
|
|
24
|
+
logLevel?: LogLevel;
|
|
25
|
+
};
|
|
26
|
+
export type { DestinationTunnelStatus } from "./internal/destination-tunnel-management.mjs";
|
|
3
27
|
/**
|
|
4
28
|
* Connection state of the instance client
|
|
5
29
|
*/
|
|
@@ -77,6 +101,12 @@ export type InstanceClient = {
|
|
|
77
101
|
* @param packageName Package name of the app to terminate
|
|
78
102
|
*/
|
|
79
103
|
terminateApp: (packageName: string) => Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* List the launchable apps installed on the instance, each with its package
|
|
106
|
+
* name (as `bundleId`), display name, install type (`user` or `system`),
|
|
107
|
+
* and, when available, a small base64 PNG icon.
|
|
108
|
+
*/
|
|
109
|
+
listApps: () => Promise<InstalledApp[]>;
|
|
80
110
|
/**
|
|
81
111
|
* Watch an app's exit/crash without launching it through {@link launchApp},
|
|
82
112
|
* e.g. for apps that are already running or will be opened via a deeplink
|
|
@@ -189,9 +219,13 @@ export type InstanceClient = {
|
|
|
189
219
|
* Start recording device video. Use stopRecording() to finish the recording.
|
|
190
220
|
* When provided, `quality` must be one of `5`, `6`, `7`, `8`, `9`, or `10`.
|
|
191
221
|
* The server default is `5`.
|
|
222
|
+
* With `persist`, the completed recording is uploaded to Limrun's bucket
|
|
223
|
+
* when the recording stops or the instance terminates; list it with
|
|
224
|
+
* `androidInstances.listRecordings`.
|
|
192
225
|
*/
|
|
193
226
|
startRecording: (options?: {
|
|
194
227
|
quality?: RecordingQuality;
|
|
228
|
+
persist?: PersistOption;
|
|
195
229
|
}) => Promise<void>;
|
|
196
230
|
/**
|
|
197
231
|
* Stop the active server-side recording.
|
|
@@ -203,6 +237,53 @@ export type InstanceClient = {
|
|
|
203
237
|
presignedUrl?: string;
|
|
204
238
|
localPath?: string;
|
|
205
239
|
}) => Promise<string>;
|
|
240
|
+
/**
|
|
241
|
+
* Start capturing an app's logcat output (one JSONL object per line) for
|
|
242
|
+
* the given package name. One app log capture runs at a time; the server
|
|
243
|
+
* rejects a second start. With `persist`, the capture is uploaded to
|
|
244
|
+
* Limrun's bucket when it stops or the instance terminates; list it with
|
|
245
|
+
* `androidInstances.listAppLogs`.
|
|
246
|
+
*/
|
|
247
|
+
startAppLogCapture: (options: {
|
|
248
|
+
bundleId: string;
|
|
249
|
+
persist?: PersistOption;
|
|
250
|
+
}) => Promise<void>;
|
|
251
|
+
/** Stop the active app log capture. */
|
|
252
|
+
stopAppLogCapture: () => Promise<void>;
|
|
253
|
+
/**
|
|
254
|
+
* Start capturing the coalesced event log of user and agent actions (one
|
|
255
|
+
* JSONL object per line). One event capture runs at a time; the server
|
|
256
|
+
* rejects a second start. With `persist`, the capture is uploaded to
|
|
257
|
+
* Limrun's bucket when it stops or the instance terminates; list it with
|
|
258
|
+
* `androidInstances.listEvents`.
|
|
259
|
+
*/
|
|
260
|
+
startEventCapture: (options?: {
|
|
261
|
+
persist?: PersistOption;
|
|
262
|
+
}) => Promise<void>;
|
|
263
|
+
/** Stop the active event capture. */
|
|
264
|
+
stopEventCapture: () => Promise<void>;
|
|
265
|
+
/**
|
|
266
|
+
* Tail the live app log stream fed by {@link startAppLogCapture}. On
|
|
267
|
+
* connect the instance replays its recent buffer (up to 1000 lines), then
|
|
268
|
+
* delivers lines as they are captured; a dropped connection reconnects
|
|
269
|
+
* and resumes exactly where it left off, so every line is delivered once.
|
|
270
|
+
* The stream is independent of this client's websocket and survives
|
|
271
|
+
* {@link disconnect}; `onError` fires at most once, after the stream has
|
|
272
|
+
* kept failing for several minutes (e.g. the instance was deleted), and
|
|
273
|
+
* the stream is closed. Returns a function that closes the stream.
|
|
274
|
+
*/
|
|
275
|
+
streamAppLogCapture: (handlers: {
|
|
276
|
+
onLine: (line: SessionLogLine) => void;
|
|
277
|
+
onError?: (error: Error) => void;
|
|
278
|
+
}) => () => void;
|
|
279
|
+
/**
|
|
280
|
+
* Tail the live coalesced event log fed by {@link startEventCapture}.
|
|
281
|
+
* Same delivery and lifecycle semantics as {@link streamAppLogCapture}.
|
|
282
|
+
*/
|
|
283
|
+
streamEventCapture: (handlers: {
|
|
284
|
+
onEvent: (event: SessionEvent) => void;
|
|
285
|
+
onError?: (error: Error) => void;
|
|
286
|
+
}) => () => void;
|
|
206
287
|
/** Send an application-level keepAlive message on the control websocket. */
|
|
207
288
|
keepAlive: () => void;
|
|
208
289
|
/**
|
|
@@ -214,6 +295,19 @@ export type InstanceClient = {
|
|
|
214
295
|
* Returns the local TCP port and a cleanup function.
|
|
215
296
|
*/
|
|
216
297
|
startAdbTunnel: () => Promise<Tunnel>;
|
|
298
|
+
/**
|
|
299
|
+
* Transparently route declared Android TCP destinations through this
|
|
300
|
+
* machine. Exact `localhost` routes are also reachable on-device as
|
|
301
|
+
* `10.0.2.2:<port>`, following the emulator convention.
|
|
302
|
+
*
|
|
303
|
+
* The caller owns the returned tunnel and must close it. Disconnecting this
|
|
304
|
+
* instance client does not close the tunnel.
|
|
305
|
+
*/
|
|
306
|
+
startTunnel: (options: DestinationTunnelOptions) => Promise<DestinationTunnel>;
|
|
307
|
+
/** Get the active destination tunnel and most recent terminal failure. */
|
|
308
|
+
getTunnelStatus: () => Promise<DestinationTunnelStatus>;
|
|
309
|
+
/** Stop the active destination tunnel only when its ID matches `tunnelId`. */
|
|
310
|
+
stopTunnel: (tunnelId: string) => Promise<void>;
|
|
217
311
|
/**
|
|
218
312
|
* Send an asset URL to the instance. The instance will download the asset
|
|
219
313
|
* and process it (currently APK install is supported). Resolves on success,
|
|
@@ -428,6 +522,17 @@ export type LaunchAppOptions = {
|
|
|
428
522
|
export type LaunchAppResult = {
|
|
429
523
|
packageName: string;
|
|
430
524
|
};
|
|
525
|
+
/**
|
|
526
|
+
* One entry of {@link InstanceClient.listApps}. The package name is carried
|
|
527
|
+
* as `bundleId` so the shape matches iOS's listApps.
|
|
528
|
+
*/
|
|
529
|
+
export type InstalledApp = {
|
|
530
|
+
bundleId: string;
|
|
531
|
+
name: string;
|
|
532
|
+
installType: string;
|
|
533
|
+
/** App icon as a base64-encoded 64px PNG; absent when the runtime could not extract one. */
|
|
534
|
+
icon?: string;
|
|
535
|
+
};
|
|
431
536
|
/** Handle for an app watch registered via {@link InstanceClient.watchApp}. */
|
|
432
537
|
export type AppWatch = {
|
|
433
538
|
/** Identifier of this watch on the server. */
|
|
@@ -493,5 +598,4 @@ export type AdbShellResult = {
|
|
|
493
598
|
* @returns An InstanceClient for controlling the instance
|
|
494
599
|
*/
|
|
495
600
|
export declare function createInstanceClient(options: InstanceClientOptions): Promise<InstanceClient>;
|
|
496
|
-
export {};
|
|
497
601
|
//# sourceMappingURL=instance-client.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client.d.mts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAiB;AACvC,OAAO,EAAc,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,0BAAsB;
|
|
1
|
+
{"version":3,"file":"instance-client.d.mts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"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"}
|
package/instance-client.d.ts
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import type { Tunnel } from "./tunnel.js";
|
|
2
2
|
import { type FolderSyncOptions, type SyncFolderResult } from "./folder-sync.js";
|
|
3
|
+
import { type DestinationTcpTunnel } from "./destination-tunnel-dialer.js";
|
|
4
|
+
import type { DestinationTunnelInspectionConfig, DestinationTunnelSelectors } from "./destination-tunnel.js";
|
|
5
|
+
import type { DestinationTunnelInspectionErrorCallback, DestinationTunnelInspectionEventCallback } from "./destination-tunnel-inspection.js";
|
|
6
|
+
import { type DestinationTunnelStatus } from "./internal/destination-tunnel-management.js";
|
|
7
|
+
import { type PersistOption } from "./internal/persist-option.js";
|
|
8
|
+
import type { SessionLogLine, SessionEvent } from "./resources/session-artifacts.js";
|
|
9
|
+
export { type PersistOption } from "./internal/persist-option.js";
|
|
10
|
+
/** Transparent destination tunnel from the Android instance to this machine. */
|
|
11
|
+
export type DestinationTunnel = DestinationTcpTunnel;
|
|
12
|
+
export type DestinationTunnelOptions = {
|
|
13
|
+
/** Exact endpoint and domain selector values interpreted by the Android tunnel server. */
|
|
14
|
+
selectors: DestinationTunnelSelectors;
|
|
15
|
+
/** Inspection settings negotiated with the Android tunnel server. */
|
|
16
|
+
inspection?: Partial<DestinationTunnelInspectionConfig>;
|
|
17
|
+
/** Called for each validated inspection metadata or body event. */
|
|
18
|
+
onInspectionEvent?: DestinationTunnelInspectionEventCallback;
|
|
19
|
+
/** Called when the independent inspection stream fails or reconnects. */
|
|
20
|
+
onInspectionError?: DestinationTunnelInspectionErrorCallback;
|
|
21
|
+
/** Per-flow receive window in bytes. Defaults to 1 MiB. */
|
|
22
|
+
window?: number;
|
|
23
|
+
/** Controls tunnel logging verbosity. Defaults to the instance client's log level. */
|
|
24
|
+
logLevel?: LogLevel;
|
|
25
|
+
};
|
|
26
|
+
export type { DestinationTunnelStatus } from "./internal/destination-tunnel-management.js";
|
|
3
27
|
/**
|
|
4
28
|
* Connection state of the instance client
|
|
5
29
|
*/
|
|
@@ -77,6 +101,12 @@ export type InstanceClient = {
|
|
|
77
101
|
* @param packageName Package name of the app to terminate
|
|
78
102
|
*/
|
|
79
103
|
terminateApp: (packageName: string) => Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* List the launchable apps installed on the instance, each with its package
|
|
106
|
+
* name (as `bundleId`), display name, install type (`user` or `system`),
|
|
107
|
+
* and, when available, a small base64 PNG icon.
|
|
108
|
+
*/
|
|
109
|
+
listApps: () => Promise<InstalledApp[]>;
|
|
80
110
|
/**
|
|
81
111
|
* Watch an app's exit/crash without launching it through {@link launchApp},
|
|
82
112
|
* e.g. for apps that are already running or will be opened via a deeplink
|
|
@@ -189,9 +219,13 @@ export type InstanceClient = {
|
|
|
189
219
|
* Start recording device video. Use stopRecording() to finish the recording.
|
|
190
220
|
* When provided, `quality` must be one of `5`, `6`, `7`, `8`, `9`, or `10`.
|
|
191
221
|
* The server default is `5`.
|
|
222
|
+
* With `persist`, the completed recording is uploaded to Limrun's bucket
|
|
223
|
+
* when the recording stops or the instance terminates; list it with
|
|
224
|
+
* `androidInstances.listRecordings`.
|
|
192
225
|
*/
|
|
193
226
|
startRecording: (options?: {
|
|
194
227
|
quality?: RecordingQuality;
|
|
228
|
+
persist?: PersistOption;
|
|
195
229
|
}) => Promise<void>;
|
|
196
230
|
/**
|
|
197
231
|
* Stop the active server-side recording.
|
|
@@ -203,6 +237,53 @@ export type InstanceClient = {
|
|
|
203
237
|
presignedUrl?: string;
|
|
204
238
|
localPath?: string;
|
|
205
239
|
}) => Promise<string>;
|
|
240
|
+
/**
|
|
241
|
+
* Start capturing an app's logcat output (one JSONL object per line) for
|
|
242
|
+
* the given package name. One app log capture runs at a time; the server
|
|
243
|
+
* rejects a second start. With `persist`, the capture is uploaded to
|
|
244
|
+
* Limrun's bucket when it stops or the instance terminates; list it with
|
|
245
|
+
* `androidInstances.listAppLogs`.
|
|
246
|
+
*/
|
|
247
|
+
startAppLogCapture: (options: {
|
|
248
|
+
bundleId: string;
|
|
249
|
+
persist?: PersistOption;
|
|
250
|
+
}) => Promise<void>;
|
|
251
|
+
/** Stop the active app log capture. */
|
|
252
|
+
stopAppLogCapture: () => Promise<void>;
|
|
253
|
+
/**
|
|
254
|
+
* Start capturing the coalesced event log of user and agent actions (one
|
|
255
|
+
* JSONL object per line). One event capture runs at a time; the server
|
|
256
|
+
* rejects a second start. With `persist`, the capture is uploaded to
|
|
257
|
+
* Limrun's bucket when it stops or the instance terminates; list it with
|
|
258
|
+
* `androidInstances.listEvents`.
|
|
259
|
+
*/
|
|
260
|
+
startEventCapture: (options?: {
|
|
261
|
+
persist?: PersistOption;
|
|
262
|
+
}) => Promise<void>;
|
|
263
|
+
/** Stop the active event capture. */
|
|
264
|
+
stopEventCapture: () => Promise<void>;
|
|
265
|
+
/**
|
|
266
|
+
* Tail the live app log stream fed by {@link startAppLogCapture}. On
|
|
267
|
+
* connect the instance replays its recent buffer (up to 1000 lines), then
|
|
268
|
+
* delivers lines as they are captured; a dropped connection reconnects
|
|
269
|
+
* and resumes exactly where it left off, so every line is delivered once.
|
|
270
|
+
* The stream is independent of this client's websocket and survives
|
|
271
|
+
* {@link disconnect}; `onError` fires at most once, after the stream has
|
|
272
|
+
* kept failing for several minutes (e.g. the instance was deleted), and
|
|
273
|
+
* the stream is closed. Returns a function that closes the stream.
|
|
274
|
+
*/
|
|
275
|
+
streamAppLogCapture: (handlers: {
|
|
276
|
+
onLine: (line: SessionLogLine) => void;
|
|
277
|
+
onError?: (error: Error) => void;
|
|
278
|
+
}) => () => void;
|
|
279
|
+
/**
|
|
280
|
+
* Tail the live coalesced event log fed by {@link startEventCapture}.
|
|
281
|
+
* Same delivery and lifecycle semantics as {@link streamAppLogCapture}.
|
|
282
|
+
*/
|
|
283
|
+
streamEventCapture: (handlers: {
|
|
284
|
+
onEvent: (event: SessionEvent) => void;
|
|
285
|
+
onError?: (error: Error) => void;
|
|
286
|
+
}) => () => void;
|
|
206
287
|
/** Send an application-level keepAlive message on the control websocket. */
|
|
207
288
|
keepAlive: () => void;
|
|
208
289
|
/**
|
|
@@ -214,6 +295,19 @@ export type InstanceClient = {
|
|
|
214
295
|
* Returns the local TCP port and a cleanup function.
|
|
215
296
|
*/
|
|
216
297
|
startAdbTunnel: () => Promise<Tunnel>;
|
|
298
|
+
/**
|
|
299
|
+
* Transparently route declared Android TCP destinations through this
|
|
300
|
+
* machine. Exact `localhost` routes are also reachable on-device as
|
|
301
|
+
* `10.0.2.2:<port>`, following the emulator convention.
|
|
302
|
+
*
|
|
303
|
+
* The caller owns the returned tunnel and must close it. Disconnecting this
|
|
304
|
+
* instance client does not close the tunnel.
|
|
305
|
+
*/
|
|
306
|
+
startTunnel: (options: DestinationTunnelOptions) => Promise<DestinationTunnel>;
|
|
307
|
+
/** Get the active destination tunnel and most recent terminal failure. */
|
|
308
|
+
getTunnelStatus: () => Promise<DestinationTunnelStatus>;
|
|
309
|
+
/** Stop the active destination tunnel only when its ID matches `tunnelId`. */
|
|
310
|
+
stopTunnel: (tunnelId: string) => Promise<void>;
|
|
217
311
|
/**
|
|
218
312
|
* Send an asset URL to the instance. The instance will download the asset
|
|
219
313
|
* and process it (currently APK install is supported). Resolves on success,
|
|
@@ -428,6 +522,17 @@ export type LaunchAppOptions = {
|
|
|
428
522
|
export type LaunchAppResult = {
|
|
429
523
|
packageName: string;
|
|
430
524
|
};
|
|
525
|
+
/**
|
|
526
|
+
* One entry of {@link InstanceClient.listApps}. The package name is carried
|
|
527
|
+
* as `bundleId` so the shape matches iOS's listApps.
|
|
528
|
+
*/
|
|
529
|
+
export type InstalledApp = {
|
|
530
|
+
bundleId: string;
|
|
531
|
+
name: string;
|
|
532
|
+
installType: string;
|
|
533
|
+
/** App icon as a base64-encoded 64px PNG; absent when the runtime could not extract one. */
|
|
534
|
+
icon?: string;
|
|
535
|
+
};
|
|
431
536
|
/** Handle for an app watch registered via {@link InstanceClient.watchApp}. */
|
|
432
537
|
export type AppWatch = {
|
|
433
538
|
/** Identifier of this watch on the server. */
|
|
@@ -493,5 +598,4 @@ export type AdbShellResult = {
|
|
|
493
598
|
* @returns An InstanceClient for controlling the instance
|
|
494
599
|
*/
|
|
495
600
|
export declare function createInstanceClient(options: InstanceClientOptions): Promise<InstanceClient>;
|
|
496
|
-
export {};
|
|
497
601
|
//# sourceMappingURL=instance-client.d.ts.map
|
package/instance-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-client.d.ts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,oBAAiB;AACvC,OAAO,EAAc,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,yBAAsB;
|
|
1
|
+
{"version":3,"file":"instance-client.d.ts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"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"}
|
package/instance-client.js
CHANGED
|
@@ -14,6 +14,11 @@ const android_basis_cache_1 = require("./internal/android-basis-cache.js");
|
|
|
14
14
|
const proxy_transport_1 = require("./internal/proxy-transport.js");
|
|
15
15
|
const tunnel_1 = require("./tunnel.js");
|
|
16
16
|
const folder_sync_1 = require("./folder-sync.js");
|
|
17
|
+
const destination_tunnel_dialer_1 = require("./destination-tunnel-dialer.js");
|
|
18
|
+
const destination_tunnel_management_1 = require("./internal/destination-tunnel-management.js");
|
|
19
|
+
const destination_tunnel_url_1 = require("./internal/destination-tunnel-url.js");
|
|
20
|
+
const persist_option_1 = require("./internal/persist-option.js");
|
|
21
|
+
const session_stream_1 = require("./internal/session-stream.js");
|
|
17
22
|
const ANDROID_RECORDING_PATH = '/data/local/tmp/recordings/video_recording.mp4';
|
|
18
23
|
const ANDROID_SIGNALING_PATH = '/ws';
|
|
19
24
|
function deriveEndpointWebSocketUrl(apiUrl) {
|
|
@@ -224,12 +229,17 @@ async function createInstanceClient(options) {
|
|
|
224
229
|
case 'terminateAppResult':
|
|
225
230
|
case 'watchAppResult':
|
|
226
231
|
case 'unwatchAppResult':
|
|
232
|
+
case 'listAppsResult':
|
|
227
233
|
case 'playOnMicrophoneResult':
|
|
228
234
|
case 'cameraControlResult':
|
|
229
235
|
case 'adbShellResult':
|
|
230
236
|
case 'setWifiBandwidthResult':
|
|
231
237
|
case 'startRecordingResult':
|
|
232
238
|
case 'stopRecordingResult':
|
|
239
|
+
case 'startAppLogCaptureResult':
|
|
240
|
+
case 'stopAppLogCaptureResult':
|
|
241
|
+
case 'startEventCaptureResult':
|
|
242
|
+
case 'stopEventCaptureResult':
|
|
233
243
|
return 'id' in message && typeof message.id === 'string';
|
|
234
244
|
default:
|
|
235
245
|
return false;
|
|
@@ -463,6 +473,7 @@ async function createInstanceClient(options) {
|
|
|
463
473
|
openUrl,
|
|
464
474
|
launchApp,
|
|
465
475
|
terminateApp,
|
|
476
|
+
listApps,
|
|
466
477
|
watchApp,
|
|
467
478
|
playOnMicrophone,
|
|
468
479
|
pushFile,
|
|
@@ -473,9 +484,18 @@ async function createInstanceClient(options) {
|
|
|
473
484
|
setWifiBandwidth,
|
|
474
485
|
startRecording,
|
|
475
486
|
stopRecording,
|
|
487
|
+
startAppLogCapture,
|
|
488
|
+
stopAppLogCapture,
|
|
489
|
+
startEventCapture,
|
|
490
|
+
stopEventCapture,
|
|
491
|
+
streamAppLogCapture,
|
|
492
|
+
streamEventCapture,
|
|
476
493
|
keepAlive,
|
|
477
494
|
disconnect,
|
|
478
495
|
startAdbTunnel,
|
|
496
|
+
startTunnel,
|
|
497
|
+
getTunnelStatus,
|
|
498
|
+
stopTunnel,
|
|
479
499
|
sendAsset,
|
|
480
500
|
syncApp,
|
|
481
501
|
getConnectionState,
|
|
@@ -585,6 +605,10 @@ async function createInstanceClient(options) {
|
|
|
585
605
|
const terminateApp = async (packageName) => {
|
|
586
606
|
await sendRequest('terminateApp', { packageName });
|
|
587
607
|
};
|
|
608
|
+
const listApps = async () => {
|
|
609
|
+
const result = await sendRequest('listApps', {});
|
|
610
|
+
return result.apps ?? [];
|
|
611
|
+
};
|
|
588
612
|
const watchApp = async (packageName, onExit) => {
|
|
589
613
|
const { execId } = await withExitCallback('watch', onExit, (execId) => sendRequest('watchApp', { packageName, execId }));
|
|
590
614
|
return {
|
|
@@ -680,7 +704,9 @@ async function createInstanceClient(options) {
|
|
|
680
704
|
await sendRequest('setWifiBandwidth', request);
|
|
681
705
|
};
|
|
682
706
|
const startRecording = async (recordingOptions) => {
|
|
683
|
-
const request = {
|
|
707
|
+
const request = {
|
|
708
|
+
...(0, persist_option_1.persistFields)(recordingOptions?.persist),
|
|
709
|
+
};
|
|
684
710
|
if (recordingOptions?.quality !== undefined) {
|
|
685
711
|
if (!Number.isInteger(recordingOptions.quality) ||
|
|
686
712
|
recordingOptions.quality < 5 ||
|
|
@@ -703,6 +729,36 @@ async function createInstanceClient(options) {
|
|
|
703
729
|
}
|
|
704
730
|
return downloadUrl;
|
|
705
731
|
};
|
|
732
|
+
const startAppLogCapture = async (captureOptions) => {
|
|
733
|
+
if (!captureOptions.bundleId) {
|
|
734
|
+
throw new Error('bundleId must be a non-empty string');
|
|
735
|
+
}
|
|
736
|
+
await sendRequest('startAppLogCapture', {
|
|
737
|
+
bundleId: captureOptions.bundleId,
|
|
738
|
+
...(0, persist_option_1.persistFields)(captureOptions.persist),
|
|
739
|
+
});
|
|
740
|
+
};
|
|
741
|
+
const stopAppLogCapture = async () => {
|
|
742
|
+
await sendRequest('stopAppLogCapture', {});
|
|
743
|
+
};
|
|
744
|
+
const startEventCapture = async (captureOptions) => {
|
|
745
|
+
await sendRequest('startEventCapture', { ...(0, persist_option_1.persistFields)(captureOptions?.persist) });
|
|
746
|
+
};
|
|
747
|
+
const stopEventCapture = async () => {
|
|
748
|
+
await sendRequest('stopEventCapture', {});
|
|
749
|
+
};
|
|
750
|
+
const streamAppLogCapture = (handlers) => (0, session_stream_1.streamSessionEntries)({
|
|
751
|
+
url: `${options.apiUrl}/session/applogs/events`,
|
|
752
|
+
token: options.token,
|
|
753
|
+
onEntry: handlers.onLine,
|
|
754
|
+
onError: handlers.onError,
|
|
755
|
+
});
|
|
756
|
+
const streamEventCapture = (handlers) => (0, session_stream_1.streamSessionEntries)({
|
|
757
|
+
url: `${options.apiUrl}/session/events/events`,
|
|
758
|
+
token: options.token,
|
|
759
|
+
onEntry: handlers.onEvent,
|
|
760
|
+
onError: handlers.onError,
|
|
761
|
+
});
|
|
706
762
|
const keepAlive = () => {
|
|
707
763
|
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
|
|
708
764
|
return;
|
|
@@ -758,6 +814,32 @@ async function createInstanceClient(options) {
|
|
|
758
814
|
}
|
|
759
815
|
return tunnel;
|
|
760
816
|
};
|
|
817
|
+
const requireAdbUrl = () => {
|
|
818
|
+
if (!options.adbUrl) {
|
|
819
|
+
throw new Error('adbUrl is required to manage a destination tunnel.');
|
|
820
|
+
}
|
|
821
|
+
return options.adbUrl;
|
|
822
|
+
};
|
|
823
|
+
const startTunnel = async (tunnelOptions) => {
|
|
824
|
+
return (0, destination_tunnel_dialer_1.startDestinationTcpTunnel)((0, destination_tunnel_url_1.deriveDestinationTunnelURL)(requireAdbUrl()), options.token, {
|
|
825
|
+
selectors: tunnelOptions.selectors,
|
|
826
|
+
inspection: {
|
|
827
|
+
enabled: true,
|
|
828
|
+
captureBodies: false,
|
|
829
|
+
...(tunnelOptions.inspection ?? {}),
|
|
830
|
+
},
|
|
831
|
+
...(tunnelOptions.onInspectionEvent ? { onInspectionEvent: tunnelOptions.onInspectionEvent } : {}),
|
|
832
|
+
...(tunnelOptions.onInspectionError ? { onInspectionError: tunnelOptions.onInspectionError } : {}),
|
|
833
|
+
...(tunnelOptions.window === undefined ? {} : { window: tunnelOptions.window }),
|
|
834
|
+
logLevel: tunnelOptions.logLevel ?? logLevel,
|
|
835
|
+
});
|
|
836
|
+
};
|
|
837
|
+
const getTunnelStatus = async () => {
|
|
838
|
+
return (0, destination_tunnel_management_1.getDestinationTunnelStatus)(requireAdbUrl(), options.token);
|
|
839
|
+
};
|
|
840
|
+
const stopTunnel = async (tunnelId) => {
|
|
841
|
+
await (0, destination_tunnel_management_1.stopDestinationTunnel)(requireAdbUrl(), options.token, tunnelId);
|
|
842
|
+
};
|
|
761
843
|
const sendAsset = async (url, timeoutMs) => {
|
|
762
844
|
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
|
|
763
845
|
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
|