🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@limrun/api

Package Overview
Dependencies
Maintainers
1
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@limrun/api - npm Package Compare versions

Comparing version
0.6.2
to
0.7.0
+57
resources/instance-client.d.mts
import type { Tunnel } from "./tunnel.mjs";
export type { Tunnel } from "./tunnel.mjs";
import { AndroidInstance } from "./android-instances.mjs";
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotData = {
dataUri: string;
};
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export declare function createInstanceClient(androidInstance: AndroidInstance, options?: InstanceClientOptions): Promise<InstanceClient>;
//# sourceMappingURL=instance-client.d.mts.map
{"version":3,"file":"instance-client.d.mts","sourceRoot":"","sources":["../src/resources/instance-client.ts"],"names":[],"mappings":"OAIO,KAAK,EAAE,MAAM,EAAE;YACV,EAAE,MAAM,EAAE;OACf,EAAE,eAAe,EAAE;AAE1B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;;OAGG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAaF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0BF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,qBAGR,GACA,OAAO,CAAC,cAAc,CAAC,CAmPzB"}
import type { Tunnel } from "./tunnel.js";
export type { Tunnel } from "./tunnel.js";
import { AndroidInstance } from "./android-instances.js";
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotData = {
dataUri: string;
};
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export declare function createInstanceClient(androidInstance: AndroidInstance, options?: InstanceClientOptions): Promise<InstanceClient>;
//# sourceMappingURL=instance-client.d.ts.map
{"version":3,"file":"instance-client.d.ts","sourceRoot":"","sources":["../src/resources/instance-client.ts"],"names":[],"mappings":"OAIO,KAAK,EAAE,MAAM,EAAE;YACV,EAAE,MAAM,EAAE;OACf,EAAE,eAAe,EAAE;AAE1B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;;OAGG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAaF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0BF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,qBAGR,GACA,OAAO,CAAC,cAAc,CAAC,CAmPzB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInstanceClient = createInstanceClient;
const ws_1 = require("ws");
const node_child_process_1 = require("node:child_process");
const tunnel_js_1 = require("./tunnel.js");
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
async function createInstanceClient(androidInstance, options = {
adbPath: 'adb',
logLevel: 'info',
}) {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws = undefined;
const screenshotRequests = new Map();
const assetRequests = new Map();
// Logger functions
const logger = {
debug: (...args) => {
if (logLevel === 'debug')
console.log(...args);
},
info: (...args) => {
if (logLevel === 'info' || logLevel === 'debug')
console.log(...args);
},
warn: (...args) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug')
console.warn(...args);
},
error: (...args) => {
if (logLevel !== 'none')
console.error(...args);
},
};
return new Promise((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new ws_1.WebSocket(serverAddress);
ws.on('message', (data) => {
let message;
try {
message = JSON.parse(data.toString());
}
catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(`Received screenshot error for unknown or already handled session: ${errorMessage.id}`);
break;
}
logger.error(`Server reported an error capturing screenshot for session ${errorMessage.id}:`, errorMessage.message);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url);
break;
}
const errorMessage = typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === ws_1.WebSocket.CONNECTING || ws.readyState === ws_1.WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async () => {
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest = {
type: 'screenshot',
id,
};
return new Promise((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws.send(JSON.stringify(screenshotRequest), (err) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = () => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async () => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await (0, tunnel_js_1.startTcpTunnel)(androidInstance.status.adbWebSocketUrl, token, '127.0.0.1', 0);
try {
await new Promise((resolve, reject) => {
(0, node_child_process_1.exec)(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err)
return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
}
catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url) => {
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
}
//# sourceMappingURL=instance-client.js.map
{"version":3,"file":"instance-client.js","sourceRoot":"","sources":["../src/resources/instance-client.ts"],"names":[],"mappings":"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"}
import { WebSocket } from 'ws';
import { exec } from 'node:child_process';
import { startTcpTunnel } from "./tunnel.mjs";
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export async function createInstanceClient(androidInstance, options = {
adbPath: 'adb',
logLevel: 'info',
}) {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws = undefined;
const screenshotRequests = new Map();
const assetRequests = new Map();
// Logger functions
const logger = {
debug: (...args) => {
if (logLevel === 'debug')
console.log(...args);
},
info: (...args) => {
if (logLevel === 'info' || logLevel === 'debug')
console.log(...args);
},
warn: (...args) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug')
console.warn(...args);
},
error: (...args) => {
if (logLevel !== 'none')
console.error(...args);
},
};
return new Promise((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new WebSocket(serverAddress);
ws.on('message', (data) => {
let message;
try {
message = JSON.parse(data.toString());
}
catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(`Received screenshot error for unknown or already handled session: ${errorMessage.id}`);
break;
}
logger.error(`Server reported an error capturing screenshot for session ${errorMessage.id}:`, errorMessage.message);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url);
break;
}
const errorMessage = typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async () => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest = {
type: 'screenshot',
id,
};
return new Promise((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws.send(JSON.stringify(screenshotRequest), (err) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = () => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async () => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await startTcpTunnel(androidInstance.status.adbWebSocketUrl, token, '127.0.0.1', 0);
try {
await new Promise((resolve, reject) => {
exec(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err)
return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
}
catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url) => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
}
//# sourceMappingURL=instance-client.mjs.map
{"version":3,"file":"instance-client.mjs","sourceRoot":"","sources":["../src/resources/instance-client.ts"],"names":[],"mappings":"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"}
import { WebSocket, Data } from 'ws';
import { exec } from 'node:child_process';
import { startTcpTunnel } from './tunnel.js';
import type { Tunnel } from './tunnel.js';
export type { Tunnel } from './tunnel.js';
import { AndroidInstance } from './android-instances.js';
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotRequest = {
type: 'screenshot';
id: string;
};
type ScreenshotResponse = {
type: 'screenshot';
dataUri: string;
id: string;
};
type ScreenshotData = {
dataUri: string;
};
type ScreenshotErrorResponse = {
type: 'screenshotError';
message: string;
id: string;
};
type AssetRequest = {
type: 'asset';
url: string;
};
type AssetResultResponse = {
type: 'assetResult';
result: 'success' | 'failure' | string;
url: string;
message?: string;
};
type ServerMessage =
| ScreenshotResponse
| ScreenshotErrorResponse
| AssetResultResponse
| { type: string; [key: string]: unknown };
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export async function createInstanceClient(
androidInstance: AndroidInstance,
options: InstanceClientOptions = {
adbPath: 'adb',
logLevel: 'info',
},
): Promise<InstanceClient> {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws: WebSocket | undefined = undefined;
const screenshotRequests: Map<
string,
{
resolver: (value: ScreenshotData | PromiseLike<ScreenshotData>) => void;
rejecter: (reason?: any) => void;
}
> = new Map();
const assetRequests: Map<
string,
{
resolver: (value: void | PromiseLike<void>) => void;
rejecter: (reason?: any) => void;
}
> = new Map();
// Logger functions
const logger = {
debug: (...args: any[]) => {
if (logLevel === 'debug') console.log(...args);
},
info: (...args: any[]) => {
if (logLevel === 'info' || logLevel === 'debug') console.log(...args);
},
warn: (...args: any[]) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug') console.warn(...args);
},
error: (...args: any[]) => {
if (logLevel !== 'none') console.error(...args);
},
};
return new Promise<InstanceClient>((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new WebSocket(serverAddress);
ws.on('message', (data: Data) => {
let message: ServerMessage;
try {
message = JSON.parse(data.toString());
} catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message as ScreenshotResponse;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(
`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`,
);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message as ScreenshotErrorResponse;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(
`Received screenshot error for unknown or already handled session: ${errorMessage.id}`,
);
break;
}
logger.error(
`Server reported an error capturing screenshot for session ${errorMessage.id}:`,
errorMessage.message,
);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url as string);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url as string);
break;
}
const errorMessage =
typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url as string);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err: Error) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async (): Promise<ScreenshotData> => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest: ScreenshotRequest = {
type: 'screenshot',
id,
};
return new Promise<ScreenshotData>((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws!.send(JSON.stringify(screenshotRequest), (err?: Error) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value: ScreenshotData | PromiseLike<ScreenshotData>) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason?: any) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = (): void => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async (): Promise<Tunnel> => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await startTcpTunnel(
androidInstance.status.adbWebSocketUrl,
token,
'127.0.0.1',
0,
);
try {
await new Promise<void>((resolve, reject) => {
exec(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err) return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
} catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url: string): Promise<void> => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest: AssetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err?: Error) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise<void>((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
}
+13
-0
# Changelog
## 0.7.0 (2025-09-08)
Full Changelog: [v0.6.2...v0.7.0](https://github.com/limrun-inc/typescript-sdk/compare/v0.6.2...v0.7.0)
### Features
* **api:** add helper for getOrCreate to use stable labels for creation ([67d5704](https://github.com/limrun-inc/typescript-sdk/commit/67d5704040efe16725e2ade021f03787c570a417))
### Chores
* **examples:** update to the latest @limrun/api ([dc06023](https://github.com/limrun-inc/typescript-sdk/commit/dc0602334afe8af257312ae5cfbd6a3710ec4872))
## 0.6.2 (2025-09-08)

@@ -4,0 +17,0 @@

+2
-1

@@ -9,4 +9,5 @@ import type { RequestInit, RequestInfo } from "./internal/builtin-types.mjs";

import { APIPromise } from "./core/api-promise.mjs";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstanceListParams, AndroidInstanceListResponse, AndroidInstances } from "./resources/android-instances.mjs";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstanceListParams, AndroidInstanceListResponse } from "./resources/android-instances.mjs";
import { Asset, AssetGetOrCreateParams, AssetGetOrCreateResponse, AssetListParams, AssetListResponse, AssetGetParams } from "./resources/assets.mjs";
import { AndroidInstances } from "./resources/android-instances-helpers.mjs";
import { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./resources/assets-helpers.mjs";

@@ -13,0 +14,0 @@ import { type Fetch } from "./internal/builtin-types.mjs";

@@ -1,1 +0,1 @@

{"version":3,"file":"client.d.mts","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"client.d.mts","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}

@@ -9,4 +9,5 @@ import type { RequestInit, RequestInfo } from "./internal/builtin-types.js";

import { APIPromise } from "./core/api-promise.js";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstanceListParams, AndroidInstanceListResponse, AndroidInstances } from "./resources/android-instances.js";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstanceListParams, AndroidInstanceListResponse } from "./resources/android-instances.js";
import { Asset, AssetGetOrCreateParams, AssetGetOrCreateResponse, AssetListParams, AssetListResponse, AssetGetParams } from "./resources/assets.js";
import { AndroidInstances } from "./resources/android-instances-helpers.js";
import { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./resources/assets-helpers.js";

@@ -13,0 +14,0 @@ import { type Fetch } from "./internal/builtin-types.js";

@@ -1,1 +0,1 @@

{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}

@@ -19,3 +19,3 @@ "use strict";

const api_promise_1 = require("./core/api-promise.js");
const android_instances_1 = require("./resources/android-instances.js");
const android_instances_helpers_1 = require("./resources/android-instances-helpers.js");
const assets_helpers_1 = require("./resources/assets-helpers.js");

@@ -469,4 +469,4 @@ const headers_1 = require("./internal/headers.js");

Limrun.toFile = Uploads.toFile;
Limrun.AndroidInstances = android_instances_1.AndroidInstances;
Limrun.AndroidInstances = android_instances_helpers_1.AndroidInstances;
Limrun.Assets = assets_helpers_1.Assets;
//# sourceMappingURL=client.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"client.js","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;AAItF,mDAA8C;AAC9C,uDAA2F;AAC3F,qDAA+C;AAE/C,iDAA8D;AAE9D,mEAAgE;AAChE,mEAA0C;AAC1C,4EAAmD;AACnD,0CAAoC;AACpC,gEAAuC;AACvC,mEAA0C;AAC1C,kEAAyC;AACzC,uDAAgD;AAChD,wEAMuC;AASvC,kEAAsG;AAEtG,mDAAgF;AAEhF,iDAA+C;AAC/C,iDAM8B;AAC9B,uDAAqD;AA6ErD;;GAEG;AACH,MAAa,MAAM;IAejB;;;;;;;;;;;OAWG;IACH,YAAY,EACV,OAAO,GAAG,IAAA,aAAO,EAAC,iBAAiB,CAAC,EACpC,MAAM,GAAG,IAAA,aAAO,EAAC,WAAW,CAAC,IAAI,IAAI,EACrC,GAAG,IAAI,KACU,EAAE;;QApBrB,kCAA8B;QAylB9B,qBAAgB,GAAyB,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxE,WAAM,GAAe,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QArkBxC,MAAM,OAAO,GAAkB;YAC7B,MAAM;YACN,GAAG,IAAI;YACP,OAAO,EAAE,OAAO,IAAI,wBAAwB;SAC7C,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAM,CAAC,eAAe,CAAC,cAAc,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;QACxC,MAAM,eAAe,GAAG,MAAM,CAAC;QAC/B,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;QAChC,IAAI,CAAC,QAAQ;YACX,IAAA,mBAAa,EAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,IAAI,CAAC;gBAC/D,IAAA,mBAAa,EAAC,IAAA,aAAO,EAAC,YAAY,CAAC,EAAE,2BAA2B,EAAE,IAAI,CAAC;gBACvE,eAAe,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QACtD,+BAAA,IAAI,mBAAY,IAAI,CAAC,eAAe,MAAA,CAAC;QAErC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAA+B;QACzC,MAAM,MAAM,GAAG,IAAK,IAAI,CAAC,WAAgE,CAAC;YACxF,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IASS,YAAY;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;IACpC,CAAC;IAES,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAmB;QAC1D,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,IAAyB;QACnD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAA,sBAAY,EAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,KAA8B;QACrD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzF,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,CAAC;YACD,MAAM,IAAI,MAAM,CAAC,WAAW,CAC1B,yBAAyB,OAAO,KAAK,mQAAmQ,CACzS,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,iBAAO,EAAE,CAAC;IAClD,CAAC;IAES,qBAAqB;QAC7B,OAAO,wBAAwB,IAAA,YAAK,GAAE,EAAE,CAAC;IAC3C,CAAC;IAES,eAAe,CACvB,MAAc,EACd,KAAa,EACb,OAA2B,EAC3B,OAAgB;QAEhB,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,QAAQ,CACN,IAAY,EACZ,KAAiD,EACjD,cAAmC;QAEnC,MAAM,OAAO,GAAG,CAAC,CAAC,+BAAA,IAAI,oDAAmB,MAAvB,IAAI,CAAqB,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;QAC/E,MAAM,GAAG,GACP,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9F,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,IAAA,mBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,cAAc,CAAC,OAA4B,IAAkB,CAAC;IAE9E;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAC5B,OAAoB,EACpB,EAAE,GAAG,EAAE,OAAO,EAAiD,IAC/C,CAAC;IAEnB,GAAG,CAAM,IAAY,EAAE,IAAqC;QAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAM,IAAY,EAAE,IAAqC;QAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAM,IAAY,EAAE,IAAqC;QAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAM,IAAY,EAAE,IAAqC;QAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAM,IAAY,EAAE,IAAqC;QAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CACnB,MAAkB,EAClB,IAAY,EACZ,IAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACnC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,OAA4C,EAC5C,mBAAkC,IAAI;QAEtC,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,YAAiD,EACjD,gBAA+B,EAC/B,mBAAuC;QAEvC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACnC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,gBAAgB,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC7D,UAAU,EAAE,UAAU,GAAG,gBAAgB;SAC1C,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjD,qEAAqE;QACrE,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9F,MAAM,WAAW,GAAG,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,mBAAmB,EAAE,CAAC;QACjG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,mBAAmB,EACnC,IAAA,0BAAoB,EAAC;YACnB,mBAAmB;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG;YACH,OAAO;YACP,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CACH,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,oBAAW,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,QAAQ,YAAY,UAAU,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,aAAa,gBAAgB,qBAAqB,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACvC,CAAC;YACD,0CAA0C;YAC1C,6LAA6L;YAC7L,iJAAiJ;YACjJ,gGAAgG;YAChG,MAAM,SAAS,GACb,IAAA,qBAAY,EAAC,QAAQ,CAAC;gBACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9F,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAClB,IAAI,YAAY,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,MAAM,YAAY,EAAE,CACvF,CAAC;gBACF,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,GAAG,EACtF,IAAA,0BAAoB,EAAC;oBACnB,mBAAmB;oBACnB,GAAG;oBACH,UAAU,EAAE,WAAW,GAAG,SAAS;oBACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC,CACH,CAAC;gBACF,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,YAAY,CAAC,CAAC;YAC3F,CAAC;YACD,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAClB,IAAI,YAAY,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,gCAAgC,CACnG,CAAC;YACF,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,gCAAgC,EAClG,IAAA,0BAAoB,EAAC;gBACnB,mBAAmB;gBACnB,GAAG;gBACH,UAAU,EAAE,WAAW,GAAG,SAAS;gBACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CACH,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE,CAAC;YAC/C,CAAC;YACD,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,YAAY,GAAG,WAAW,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,IACvE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAC9B,gBAAgB,QAAQ,CAAC,MAAM,OAAO,WAAW,GAAG,SAAS,IAAI,CAAC;QAElE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,gBAAgB,IAAI,WAAW,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,aAAa,gBAAgB,qBAAqB,CAAC;gBAExE,2CAA2C;gBAC3C,MAAM,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,CAAC;gBAC1D,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,qBAAqB,YAAY,GAAG,EACpD,IAAA,0BAAoB,EAAC;oBACnB,mBAAmB;oBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,UAAU,EAAE,WAAW,GAAG,SAAS;iBACpC,CAAC,CACH,CAAC;gBACF,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,gBAAgB,EAChB,mBAAmB,IAAI,YAAY,EACnC,QAAQ,CAAC,OAAO,CACjB,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAE1F,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAEjD,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,qBAAqB,YAAY,GAAG,EACpD,IAAA,0BAAoB,EAAC;gBACnB,mBAAmB;gBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC,CACH,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzF,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,IAAA,eAAS,EAAC,IAAI,CAAC,CAAC,KAAK,CACnB,IAAI,YAAY,kBAAkB,EAClC,IAAA,0BAAoB,EAAC;YACnB,mBAAmB;YACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,WAAW,GAAG,SAAS;SACpC,CAAC,CACH,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,GAAgB,EAChB,IAA6B,EAC7B,EAAU,EACV,UAA2B;QAE3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAClD,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzD,MAAM,cAAc,GAClB,CAAE,UAAkB,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,YAAa,UAAkB,CAAC,cAAc,CAAC;YAClG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtG,MAAM,YAAY,GAAgB;YAChC,MAAM,EAAE,UAAU,CAAC,MAAa;YAChC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,KAAK;YACb,GAAG,OAAO;SACX,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,oDAAoD;YACpD,mDAAmD;YACnD,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC;YACH,4FAA4F;YAC5F,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAkB;QAC1C,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEjE,+DAA+D;QAC/D,IAAI,iBAAiB,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,iBAAiB,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAEhD,6BAA6B;QAC7B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,0BAA0B;QAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,wBAAwB;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,yBAAyB;QACzB,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QAExC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAA4B,EAC5B,gBAAwB,EACxB,YAAoB,EACpB,eAAqC;QAErC,IAAI,aAAiC,CAAC;QAEtC,mHAAmH;QACnH,MAAM,sBAAsB,GAAG,eAAe,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtE,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,aAAa,GAAG,SAAS,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,sGAAsG;QACtG,MAAM,gBAAgB,GAAG,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,aAAa,GAAG,cAAc,GAAG,IAAI,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,0DAA0D;QAC1D,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACxE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;YACzD,aAAa,GAAG,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IACvE,CAAC;IAEO,kCAAkC,CAAC,gBAAwB,EAAE,UAAkB;QACrF,MAAM,iBAAiB,GAAG,GAAG,CAAC;QAC9B,MAAM,aAAa,GAAG,GAAG,CAAC;QAE1B,MAAM,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;QAEjD,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QAE1F,sEAAsE;QACtE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAExC,OAAO,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAiC,EACjC,EAAE,UAAU,GAAG,CAAC,KAA8B,EAAE;QAEhD,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAExD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAK,EAAE,KAAgC,EAAE,cAAc,CAAC,CAAC;QACnF,IAAI,SAAS,IAAI,OAAO;YAAE,IAAA,gCAAuB,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAClD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAEvG,MAAM,GAAG,GAAyB;YAChC,MAAM;YACN,OAAO,EAAE,UAAU;YACnB,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,GAAG,CAAE,UAAkB,CAAC,cAAc;gBACpC,IAAI,YAAa,UAAkB,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACrB,GAAG,CAAE,IAAI,CAAC,YAAoB,IAAI,EAAE,CAAC;YACrC,GAAG,CAAE,OAAO,CAAC,YAAoB,IAAI,EAAE,CAAC;SACzC,CAAC;QAEF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EACzB,OAAO,EACP,MAAM,EACN,WAAW,EACX,UAAU,GAMX;QACC,IAAI,kBAAkB,GAAgB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,cAAc;gBAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnF,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC;YAC3B,kBAAkB;YAClB;gBACE,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;gBACjC,yBAAyB,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC7C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,GAAG,IAAA,oCAAkB,GAAE;aACxB;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,cAAc;YAC5B,WAAW;YACX,OAAO,CAAC,OAAO;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAEO,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAoC;QAI5F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C;QACE,yBAAyB;QACzB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,YAAY,WAAW;YAC3B,IAAI,YAAY,QAAQ;YACxB,CAAC,OAAO,IAAI,KAAK,QAAQ;gBACvB,mDAAmD;gBACnD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACrC,+BAA+B;YAC/B,CAAE,UAAkB,CAAC,IAAI,IAAI,IAAI,YAAa,UAAkB,CAAC,IAAI,CAAC;YACtE,sCAAsC;YACtC,IAAI,YAAY,QAAQ;YACxB,2DAA2D;YAC3D,IAAI,YAAY,eAAe;YAC/B,oDAAoD;YACpD,CAAE,UAAkB,CAAC,cAAc,IAAI,IAAI,YAAa,UAAkB,CAAC,cAAc,CAAC,EAC1F,CAAC;YACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAgB,EAAE,CAAC;QAC5D,CAAC;aAAM,IACL,OAAO,IAAI,KAAK,QAAQ;YACxB,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI;gBAC3B,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,EACjF,CAAC;YACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAiC,CAAC,EAAE,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,OAAO,+BAAA,IAAI,uBAAS,MAAb,IAAI,EAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;;AA/kBH,wBAsmBC;;IArhBG,OAAO,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC;AACnD,CAAC;AA+fM,aAAM,GAAG,EAAI,AAAP,CAAQ;AACd,sBAAe,GAAG,KAAK,AAAR,CAAS,CAAC,WAAW;AAEpC,kBAAW,GAAG,MAAM,CAAC,WAAW,AAArB,CAAsB;AACjC,eAAQ,GAAG,MAAM,CAAC,QAAQ,AAAlB,CAAmB;AAC3B,yBAAkB,GAAG,MAAM,CAAC,kBAAkB,AAA5B,CAA6B;AAC/C,gCAAyB,GAAG,MAAM,CAAC,yBAAyB,AAAnC,CAAoC;AAC7D,wBAAiB,GAAG,MAAM,CAAC,iBAAiB,AAA3B,CAA4B;AAC7C,oBAAa,GAAG,MAAM,CAAC,aAAa,AAAvB,CAAwB;AACrC,oBAAa,GAAG,MAAM,CAAC,aAAa,AAAvB,CAAwB;AACrC,qBAAc,GAAG,MAAM,CAAC,cAAc,AAAxB,CAAyB;AACvC,sBAAe,GAAG,MAAM,CAAC,eAAe,AAAzB,CAA0B;AACzC,0BAAmB,GAAG,MAAM,CAAC,mBAAmB,AAA7B,CAA8B;AACjD,0BAAmB,GAAG,MAAM,CAAC,mBAAmB,AAA7B,CAA8B;AACjD,4BAAqB,GAAG,MAAM,CAAC,qBAAqB,AAA/B,CAAgC;AACrD,+BAAwB,GAAG,MAAM,CAAC,wBAAwB,AAAlC,CAAmC;AAE3D,aAAM,GAAG,OAAO,CAAC,MAAM,AAAjB,CAAkB;AAMjC,MAAM,CAAC,gBAAgB,GAAG,oCAAgB,CAAC;AAC3C,MAAM,CAAC,MAAM,GAAG,uBAAM,CAAC"}
{"version":3,"file":"client.js","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}

@@ -16,3 +16,3 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import { APIPromise } from "./core/api-promise.mjs";
import { AndroidInstances, } from "./resources/android-instances.mjs";
import { AndroidInstances } from "./resources/android-instances-helpers.mjs";
import { Assets } from "./resources/assets-helpers.mjs";

@@ -19,0 +19,0 @@ import { buildHeaders } from "./internal/headers.mjs";

@@ -1,1 +0,1 @@

{"version":3,"file":"client.mjs","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"client.mjs","sourceRoot":"","sources":["src/client.ts"],"names":[],"mappings":"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"}
{
"name": "@limrun/api",
"version": "0.6.2",
"version": "0.7.0",
"description": "The official TypeScript library for the Limrun API",

@@ -5,0 +5,0 @@ "author": "Limrun <contact@limrun.com>",

@@ -1,57 +0,6 @@

import type { Tunnel } from "./tunnel.mjs";
export type { Tunnel } from "./tunnel.mjs";
import { AndroidInstance } from "./android-instances.mjs";
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotData = {
dataUri: string;
};
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export declare function createInstanceClient(androidInstance: AndroidInstance, options?: InstanceClientOptions): Promise<InstanceClient>;
import { RequestOptions } from "../internal/request-options.mjs";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstances as GeneratedAndroidInstances } from "./android-instances.mjs";
export declare class AndroidInstances extends GeneratedAndroidInstances {
getOrCreate(params: AndroidInstanceCreateParams, options?: RequestOptions): Promise<AndroidInstance>;
}
//# sourceMappingURL=android-instances-helpers.d.mts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"android-instances-helpers.d.mts","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"OAIO,KAAK,EAAE,MAAM,EAAE;YACV,EAAE,MAAM,EAAE;OACf,EAAE,eAAe,EAAE;AAE1B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;;OAGG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAaF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0BF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,qBAGR,GACA,OAAO,CAAC,cAAc,CAAC,CAmPzB"}
{"version":3,"file":"android-instances-helpers.d.mts","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"OAAO,EAAE,cAAc,EAAE;OAClB,EACL,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,IAAI,yBAAyB,EAC9C;AAED,qBAAa,gBAAiB,SAAQ,yBAAyB;IACvD,WAAW,CAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAkB3G"}

@@ -1,57 +0,6 @@

import type { Tunnel } from "./tunnel.js";
export type { Tunnel } from "./tunnel.js";
import { AndroidInstance } from "./android-instances.js";
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotData = {
dataUri: string;
};
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export declare function createInstanceClient(androidInstance: AndroidInstance, options?: InstanceClientOptions): Promise<InstanceClient>;
import { RequestOptions } from "../internal/request-options.js";
import { AndroidInstance, AndroidInstanceCreateParams, AndroidInstances as GeneratedAndroidInstances } from "./android-instances.js";
export declare class AndroidInstances extends GeneratedAndroidInstances {
getOrCreate(params: AndroidInstanceCreateParams, options?: RequestOptions): Promise<AndroidInstance>;
}
//# sourceMappingURL=android-instances-helpers.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"android-instances-helpers.d.ts","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"OAIO,KAAK,EAAE,MAAM,EAAE;YACV,EAAE,MAAM,EAAE;OACf,EAAE,eAAe,EAAE;AAE1B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;;OAGG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAaF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0BF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,qBAGR,GACA,OAAO,CAAC,cAAc,CAAC,CAmPzB"}
{"version":3,"file":"android-instances-helpers.d.ts","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"OAAO,EAAE,cAAc,EAAE;OAClB,EACL,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,IAAI,yBAAyB,EAC9C;AAED,qBAAa,gBAAiB,SAAQ,yBAAyB;IACvD,WAAW,CAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAkB3G"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInstanceClient = createInstanceClient;
const ws_1 = require("ws");
const node_child_process_1 = require("node:child_process");
const tunnel_js_1 = require("./tunnel.js");
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
async function createInstanceClient(androidInstance, options = {
adbPath: 'adb',
logLevel: 'info',
}) {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws = undefined;
const screenshotRequests = new Map();
const assetRequests = new Map();
// Logger functions
const logger = {
debug: (...args) => {
if (logLevel === 'debug')
console.log(...args);
},
info: (...args) => {
if (logLevel === 'info' || logLevel === 'debug')
console.log(...args);
},
warn: (...args) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug')
console.warn(...args);
},
error: (...args) => {
if (logLevel !== 'none')
console.error(...args);
},
};
return new Promise((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new ws_1.WebSocket(serverAddress);
ws.on('message', (data) => {
let message;
try {
message = JSON.parse(data.toString());
}
catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(`Received screenshot error for unknown or already handled session: ${errorMessage.id}`);
break;
}
logger.error(`Server reported an error capturing screenshot for session ${errorMessage.id}:`, errorMessage.message);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url);
break;
}
const errorMessage = typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === ws_1.WebSocket.CONNECTING || ws.readyState === ws_1.WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async () => {
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest = {
type: 'screenshot',
id,
};
return new Promise((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws.send(JSON.stringify(screenshotRequest), (err) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = () => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async () => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await (0, tunnel_js_1.startTcpTunnel)(androidInstance.status.adbWebSocketUrl, token, '127.0.0.1', 0);
try {
await new Promise((resolve, reject) => {
(0, node_child_process_1.exec)(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err)
return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
}
catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url) => {
if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
exports.AndroidInstances = void 0;
const android_instances_1 = require("./android-instances.js");
class AndroidInstances extends android_instances_1.AndroidInstances {
async getOrCreate(params, options) {
if (!params.metadata || !params.metadata.labels || Object.keys(params.metadata.labels).length === 0) {
return Promise.reject(new Error('At least one label is required for getOrCreate operation'));
}
const instances = await super.list({
labelSelector: Object.entries(params.metadata.labels)
.map(([key, value]) => `${key}=${value}`)
.join(','),
state: 'ready',
}, options);
if (instances && instances.length > 0) {
return instances[0];
}
return super.create(params, options);
}
}
exports.AndroidInstances = AndroidInstances;
//# sourceMappingURL=android-instances-helpers.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"android-instances-helpers.js","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"android-instances-helpers.js","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":";;;AACA,8DAI6B;AAE7B,MAAa,gBAAiB,SAAQ,oCAAyB;IAC7D,KAAK,CAAC,WAAW,CAAC,MAAmC,EAAE,OAAwB;QAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpG,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAChC;YACE,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC;YACZ,KAAK,EAAE,OAAO;SACf,EACD,OAAO,CACR,CAAC;QACF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC,CAAC,CAAE,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAnBD,4CAmBC"}

@@ -1,218 +0,19 @@

import { WebSocket } from 'ws';
import { exec } from 'node:child_process';
import { startTcpTunnel } from "./tunnel.mjs";
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export async function createInstanceClient(androidInstance, options = {
adbPath: 'adb',
logLevel: 'info',
}) {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws = undefined;
const screenshotRequests = new Map();
const assetRequests = new Map();
// Logger functions
const logger = {
debug: (...args) => {
if (logLevel === 'debug')
console.log(...args);
},
info: (...args) => {
if (logLevel === 'info' || logLevel === 'debug')
console.log(...args);
},
warn: (...args) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug')
console.warn(...args);
},
error: (...args) => {
if (logLevel !== 'none')
console.error(...args);
},
};
return new Promise((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new WebSocket(serverAddress);
ws.on('message', (data) => {
let message;
try {
message = JSON.parse(data.toString());
}
catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(`Received screenshot error for unknown or already handled session: ${errorMessage.id}`);
break;
}
logger.error(`Server reported an error capturing screenshot for session ${errorMessage.id}:`, errorMessage.message);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url);
break;
}
const errorMessage = typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async () => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest = {
type: 'screenshot',
id,
};
return new Promise((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws.send(JSON.stringify(screenshotRequest), (err) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = () => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async () => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await startTcpTunnel(androidInstance.status.adbWebSocketUrl, token, '127.0.0.1', 0);
try {
await new Promise((resolve, reject) => {
exec(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err)
return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
}
catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url) => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
import { AndroidInstances as GeneratedAndroidInstances, } from "./android-instances.mjs";
export class AndroidInstances extends GeneratedAndroidInstances {
async getOrCreate(params, options) {
if (!params.metadata || !params.metadata.labels || Object.keys(params.metadata.labels).length === 0) {
return Promise.reject(new Error('At least one label is required for getOrCreate operation'));
}
const instances = await super.list({
labelSelector: Object.entries(params.metadata.labels)
.map(([key, value]) => `${key}=${value}`)
.join(','),
state: 'ready',
}, options);
if (instances && instances.length > 0) {
return instances[0];
}
return super.create(params, options);
}
}
//# sourceMappingURL=android-instances-helpers.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"android-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"android-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/android-instances-helpers.ts"],"names":[],"mappings":"OACO,EAGL,gBAAgB,IAAI,yBAAyB,GAC9C;AAED,MAAM,OAAO,gBAAiB,SAAQ,yBAAyB;IAC7D,KAAK,CAAC,WAAW,CAAC,MAAmC,EAAE,OAAwB;QAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpG,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAChC;YACE,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC;YACZ,KAAK,EAAE,OAAO;SACf,EACD,OAAO,CACR,CAAC;QACF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC,CAAC,CAAE,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF"}

@@ -1,4 +0,5 @@

export { AndroidInstances, type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.mjs";
export { type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.mjs";
export { type Asset, type AssetListResponse, type AssetGetOrCreateResponse, type AssetListParams, type AssetGetParams, type AssetGetOrCreateParams, } from "./assets.mjs";
export { AndroidInstances } from "./android-instances-helpers.mjs";
export { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./assets-helpers.mjs";
//# sourceMappingURL=index.d.mts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OAEM,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}

@@ -1,4 +0,5 @@

export { AndroidInstances, type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.js";
export { type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.js";
export { type Asset, type AssetListResponse, type AssetGetOrCreateResponse, type AssetListParams, type AssetGetParams, type AssetGetOrCreateParams, } from "./assets.js";
export { AndroidInstances } from "./android-instances-helpers.js";
export { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./assets-helpers.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OAEM,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}

@@ -5,6 +5,6 @@ "use strict";

exports.Assets = exports.AndroidInstances = void 0;
var android_instances_1 = require("./android-instances.js");
Object.defineProperty(exports, "AndroidInstances", { enumerable: true, get: function () { return android_instances_1.AndroidInstances; } });
var android_instances_helpers_1 = require("./android-instances-helpers.js");
Object.defineProperty(exports, "AndroidInstances", { enumerable: true, get: function () { return android_instances_helpers_1.AndroidInstances; } });
var assets_helpers_1 = require("./assets-helpers.js");
Object.defineProperty(exports, "Assets", { enumerable: true, get: function () { return assets_helpers_1.Assets; } });
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,4DAM6B;AAL3B,qHAAA,gBAAgB,OAAA;AAelB,sDAA4F;AAAnF,wGAAA,MAAM,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAiBtF,4EAA+D;AAAtD,6HAAA,gBAAgB,OAAA;AAEzB,sDAA4F;AAAnF,wGAAA,MAAM,OAAA"}
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
export { AndroidInstances, } from "./android-instances.mjs";
export { AndroidInstances } from "./android-instances-helpers.mjs";
export { Assets } from "./assets-helpers.mjs";
//# sourceMappingURL=index.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EACL,gBAAgB,GAKjB;OAUM,EAAE,MAAM,EAAoD"}
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAiB/E,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAoD"}

@@ -24,3 +24,2 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

AndroidInstanceListResponse,
AndroidInstances,
} from './resources/android-instances';

@@ -35,2 +34,3 @@ import {

} from './resources/assets';
import { AndroidInstances } from './resources/android-instances-helpers';
import { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from './resources/assets-helpers';

@@ -37,0 +37,0 @@ import { type Fetch } from './internal/builtin-types';

@@ -1,350 +0,27 @@

import { WebSocket, Data } from 'ws';
import { exec } from 'node:child_process';
import { RequestOptions } from '../internal/request-options';
import {
AndroidInstance,
AndroidInstanceCreateParams,
AndroidInstances as GeneratedAndroidInstances,
} from './android-instances';
import { startTcpTunnel } from './tunnel.js';
import type { Tunnel } from './tunnel.js';
export type { Tunnel } from './tunnel.js';
import { AndroidInstance } from './android-instances.js';
/**
* A client for interacting with a Limbar instance
*/
export type InstanceClient = {
/**
* Take a screenshot of the current screen
* @returns A promise that resolves to the screenshot data
*/
screenshot: () => Promise<ScreenshotData>;
/**
* Disconnect from the Limbar instance
*/
disconnect: () => void;
/**
* Establish an ADB tunnel to the instance.
* Returns the local TCP port and a cleanup function.
*/
startAdbTunnel: () => Promise<Tunnel>;
/**
* Send an asset URL to the instance. The instance will download the asset
* and process it (currently APK install is supported). Resolves on success,
* rejects with an Error on failure.
*/
sendAsset: (url: string) => Promise<void>;
};
/**
* Controls the verbosity of logging in the client
*/
export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
/**
* Configuration options for creating an Instance API client
*/
export type InstanceClientOptions = {
/**
* Path to the ADB executable.
* @default 'adb'
*/
adbPath?: string;
/**
* Controls logging verbosity
* @default 'info'
*/
logLevel?: LogLevel;
};
type ScreenshotRequest = {
type: 'screenshot';
id: string;
};
type ScreenshotResponse = {
type: 'screenshot';
dataUri: string;
id: string;
};
type ScreenshotData = {
dataUri: string;
};
type ScreenshotErrorResponse = {
type: 'screenshotError';
message: string;
id: string;
};
type AssetRequest = {
type: 'asset';
url: string;
};
type AssetResultResponse = {
type: 'assetResult';
result: 'success' | 'failure' | string;
url: string;
message?: string;
};
type ServerMessage =
| ScreenshotResponse
| ScreenshotErrorResponse
| AssetResultResponse
| { type: string; [key: string]: unknown };
/**
* Creates a client for interacting with a Limbar instance
* @param options Configuration options including webrtcUrl, token and log level
* @returns An InstanceClient for controlling the instance
*/
export async function createInstanceClient(
androidInstance: AndroidInstance,
options: InstanceClientOptions = {
adbPath: 'adb',
logLevel: 'info',
},
): Promise<InstanceClient> {
const token = androidInstance.status.token;
const serverAddress = `${androidInstance.status.endpointWebSocketUrl}?token=${token}`;
const logLevel = options.logLevel ?? 'info';
let ws: WebSocket | undefined = undefined;
const screenshotRequests: Map<
string,
{
resolver: (value: ScreenshotData | PromiseLike<ScreenshotData>) => void;
rejecter: (reason?: any) => void;
export class AndroidInstances extends GeneratedAndroidInstances {
async getOrCreate(params: AndroidInstanceCreateParams, options?: RequestOptions): Promise<AndroidInstance> {
if (!params.metadata || !params.metadata.labels || Object.keys(params.metadata.labels).length === 0) {
return Promise.reject(new Error('At least one label is required for getOrCreate operation'));
}
> = new Map();
const assetRequests: Map<
string,
{
resolver: (value: void | PromiseLike<void>) => void;
rejecter: (reason?: any) => void;
const instances = await super.list(
{
labelSelector: Object.entries(params.metadata.labels)
.map(([key, value]) => `${key}=${value}`)
.join(','),
state: 'ready',
},
options,
);
if (instances && instances.length > 0) {
return instances[0]!;
}
> = new Map();
// Logger functions
const logger = {
debug: (...args: any[]) => {
if (logLevel === 'debug') console.log(...args);
},
info: (...args: any[]) => {
if (logLevel === 'info' || logLevel === 'debug') console.log(...args);
},
warn: (...args: any[]) => {
if (logLevel === 'warn' || logLevel === 'info' || logLevel === 'debug') console.warn(...args);
},
error: (...args: any[]) => {
if (logLevel !== 'none') console.error(...args);
},
};
return new Promise<InstanceClient>((resolveConnection, rejectConnection) => {
logger.debug(`Attempting to connect to WebSocket server at ${serverAddress}...`);
ws = new WebSocket(serverAddress);
ws.on('message', (data: Data) => {
let message: ServerMessage;
try {
message = JSON.parse(data.toString());
} catch (e) {
logger.error({ data, error: e }, 'Failed to parse JSON message');
return;
}
switch (message.type) {
case 'screenshot': {
if (!('dataUri' in message) || typeof message.dataUri !== 'string' || !('id' in message)) {
logger.warn('Received invalid screenshot message:', message);
break;
}
const screenshotMessage = message as ScreenshotResponse;
const request = screenshotRequests.get(screenshotMessage.id);
if (!request) {
logger.warn(
`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`,
);
break;
}
logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
request.resolver({ dataUri: screenshotMessage.dataUri });
screenshotRequests.delete(screenshotMessage.id);
break;
}
case 'screenshotError': {
if (!('message' in message) || !('id' in message)) {
logger.warn('Received invalid screenshot error message:', message);
break;
}
const errorMessage = message as ScreenshotErrorResponse;
const request = screenshotRequests.get(errorMessage.id);
if (!request) {
logger.warn(
`Received screenshot error for unknown or already handled session: ${errorMessage.id}`,
);
break;
}
logger.error(
`Server reported an error capturing screenshot for session ${errorMessage.id}:`,
errorMessage.message,
);
request.rejecter(new Error(errorMessage.message));
screenshotRequests.delete(errorMessage.id);
break;
}
case 'assetResult': {
logger.debug('Received assetResult:', message);
const request = assetRequests.get(message.url as string);
if (!request) {
logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
break;
}
if (message.result === 'success') {
logger.debug('Asset result is success');
request.resolver();
assetRequests.delete(message.url as string);
break;
}
const errorMessage =
typeof message.message === 'string' && message.message ?
message.message
: `Asset processing failed: ${JSON.stringify(message)}`;
logger.debug('Asset result is failure', errorMessage);
request.rejecter(new Error(errorMessage));
assetRequests.delete(message.url as string);
break;
}
default:
logger.warn(`Received unexpected message type: ${message.type}`);
break;
}
});
ws.on('error', (err: Error) => {
logger.error('WebSocket error:', err.message);
if (ws && (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN)) {
rejectConnection(err);
}
screenshotRequests.forEach((request) => request.rejecter(err));
});
ws.on('close', () => {
logger.debug('Disconnected from server.');
screenshotRequests.forEach((request) => request.rejecter('Disconnected from server'));
});
const screenshot = async (): Promise<ScreenshotData> => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const id = 'ts-client-' + Date.now();
const screenshotRequest: ScreenshotRequest = {
type: 'screenshot',
id,
};
return new Promise<ScreenshotData>((resolve, reject) => {
logger.debug('Sending screenshot request:', screenshotRequest);
ws!.send(JSON.stringify(screenshotRequest), (err?: Error) => {
if (err) {
logger.error('Failed to send screenshot request:', err);
reject(err);
}
});
const timeout = setTimeout(() => {
if (screenshotRequests.has(id)) {
logger.error(`Screenshot request timed out for session ${id}`);
screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
screenshotRequests.delete(id);
}
}, 30000);
screenshotRequests.set(id, {
resolver: (value: ScreenshotData | PromiseLike<ScreenshotData>) => {
clearTimeout(timeout);
resolve(value);
screenshotRequests.delete(id);
},
rejecter: (reason?: any) => {
clearTimeout(timeout);
reject(reason);
screenshotRequests.delete(id);
},
});
});
};
const disconnect = (): void => {
if (ws) {
logger.debug('Closing WebSocket connection.');
ws.close();
}
screenshotRequests.forEach((request) => request.rejecter('Websocket connection closed'));
};
/**
* Opens a WebSocket TCP proxy for the ADB port and connects the local adb
* client to it.
*/
const startAdbTunnel = async (): Promise<Tunnel> => {
if (!androidInstance.status.adbWebSocketUrl) {
return Promise.reject(new Error('ADB WebSocket URL is not set'));
}
const { address, close } = await startTcpTunnel(
androidInstance.status.adbWebSocketUrl,
token,
'127.0.0.1',
0,
);
try {
await new Promise<void>((resolve, reject) => {
exec(`${options.adbPath ?? 'adb'} connect ${address.address}:${address.port}`, (err) => {
if (err) return reject(err);
resolve();
});
});
logger.debug(`ADB connected on ${address.address}`);
} catch (err) {
close();
throw err;
}
return { address, close };
};
const sendAsset = async (url: string): Promise<void> => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
}
const assetRequest: AssetRequest = {
type: 'asset',
url,
};
ws.send(JSON.stringify(assetRequest), (err?: Error) => {
if (err) {
logger.error('Failed to send asset request:', err);
}
});
return new Promise<void>((resolve, reject) => {
assetRequests.set(url, { resolver: resolve, rejecter: reject });
});
};
ws.on('open', () => {
logger.debug(`Connected to ${serverAddress}`);
resolveConnection({
screenshot,
disconnect,
startAdbTunnel,
sendAsset,
});
});
});
return super.create(params, options);
}
}
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
export {
AndroidInstances,
type AndroidInstance,

@@ -19,2 +18,4 @@ type AndroidInstanceListResponse,

export { AndroidInstances } from './android-instances-helpers';
export { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from './assets-helpers';

@@ -1,1 +0,1 @@

export const VERSION = '0.6.2'; // x-release-please-version
export const VERSION = '0.7.0'; // x-release-please-version

@@ -1,2 +0,2 @@

export declare const VERSION = "0.6.2";
export declare const VERSION = "0.7.0";
//# sourceMappingURL=version.d.mts.map

@@ -1,2 +0,2 @@

export declare const VERSION = "0.6.2";
export declare const VERSION = "0.7.0";
//# sourceMappingURL=version.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VERSION = void 0;
exports.VERSION = '0.6.2'; // x-release-please-version
exports.VERSION = '0.7.0'; // x-release-please-version
//# sourceMappingURL=version.js.map

@@ -1,2 +0,2 @@

export const VERSION = '0.6.2'; // x-release-please-version
export const VERSION = '0.7.0'; // x-release-please-version
//# sourceMappingURL=version.mjs.map