@limrun/api 0.20.2 → 0.21.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.
Files changed (64) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/client.d.mts +1 -1
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +1 -1
  5. package/client.d.ts.map +1 -1
  6. package/client.js +15 -17
  7. package/client.js.map +1 -1
  8. package/client.mjs +15 -17
  9. package/client.mjs.map +1 -1
  10. package/folder-sync.d.mts +1 -1
  11. package/folder-sync.d.mts.map +1 -1
  12. package/folder-sync.d.ts +1 -1
  13. package/folder-sync.d.ts.map +1 -1
  14. package/instance-client.d.mts +109 -0
  15. package/instance-client.d.mts.map +1 -1
  16. package/instance-client.d.ts +109 -0
  17. package/instance-client.d.ts.map +1 -1
  18. package/instance-client.js +262 -69
  19. package/instance-client.js.map +1 -1
  20. package/instance-client.mjs +262 -69
  21. package/instance-client.mjs.map +1 -1
  22. package/internal/utils/query.d.mts +5 -0
  23. package/internal/utils/query.d.mts.map +1 -0
  24. package/internal/utils/query.d.ts +5 -0
  25. package/internal/utils/query.d.ts.map +1 -0
  26. package/internal/utils/query.js +23 -0
  27. package/internal/utils/query.js.map +1 -0
  28. package/internal/utils/query.mjs +20 -0
  29. package/internal/utils/query.mjs.map +1 -0
  30. package/internal/utils.d.mts +1 -0
  31. package/internal/utils.d.ts +1 -0
  32. package/internal/utils.js +1 -0
  33. package/internal/utils.js.map +1 -1
  34. package/internal/utils.mjs +1 -0
  35. package/ios-client.d.mts +12 -4
  36. package/ios-client.d.mts.map +1 -1
  37. package/ios-client.d.ts +12 -4
  38. package/ios-client.d.ts.map +1 -1
  39. package/ios-client.js +7 -2
  40. package/ios-client.js.map +1 -1
  41. package/ios-client.mjs +7 -2
  42. package/ios-client.mjs.map +1 -1
  43. package/package.json +12 -1
  44. package/resources/android-instances.d.mts +1 -0
  45. package/resources/android-instances.d.mts.map +1 -1
  46. package/resources/android-instances.d.ts +1 -0
  47. package/resources/android-instances.d.ts.map +1 -1
  48. package/resources/ios-instances.d.mts +1 -1
  49. package/resources/ios-instances.d.mts.map +1 -1
  50. package/resources/ios-instances.d.ts +1 -1
  51. package/resources/ios-instances.d.ts.map +1 -1
  52. package/src/client.ts +18 -21
  53. package/src/folder-sync.ts +2 -2
  54. package/src/instance-client.ts +516 -96
  55. package/src/internal/utils/query.ts +23 -0
  56. package/src/internal/utils.ts +1 -0
  57. package/src/ios-client.ts +25 -7
  58. package/src/resources/android-instances.ts +2 -0
  59. package/src/resources/ios-instances.ts +1 -1
  60. package/src/version.ts +1 -1
  61. package/version.d.mts +1 -1
  62. package/version.d.ts +1 -1
  63. package/version.js +1 -1
  64. package/version.mjs +1 -1
@@ -16,6 +16,43 @@ export type InstanceClient = {
16
16
  * @returns A promise that resolves to the screenshot data
17
17
  */
18
18
  screenshot: () => Promise<ScreenshotData>;
19
+ /**
20
+ * Fetch Android UI hierarchy from UIAutomator.
21
+ */
22
+ getElementTree: () => Promise<ElementTreeData>;
23
+ /**
24
+ * Find matching elements by Android-native selector.
25
+ */
26
+ findElement: (selector: AndroidSelector, limit?: number) => Promise<FindElementResult>;
27
+ /**
28
+ * Tap an element by selector/reference (or explicit coordinates).
29
+ */
30
+ tap: (target: AndroidElementTarget) => Promise<TapResult>;
31
+ /**
32
+ * Set text into an element or currently focused input.
33
+ */
34
+ setText: (target: AndroidElementTarget | undefined, text: string) => Promise<SetTextResult>;
35
+ /**
36
+ * Press an Android key by key name, optionally with modifiers.
37
+ * Accepted key strings are case-insensitive and may be plain names like
38
+ * `'BACK'`, `'ENTER'`, `'A'`, `'TAB'`, full Android constants like
39
+ * `'KEYCODE_TAB'`, or digit strings like `'4'`.
40
+ * Supported modifiers are `'shift'`, `'ctrl'`/`'control'`, `'alt'`/`'option'`,
41
+ * `'meta'`/`'command'`/`'cmd'`, `'sym'`, and `'fn'`/`'function'`.
42
+ */
43
+ pressKey: (key: string, modifiers?: string[]) => Promise<PressKeyResult>;
44
+ /**
45
+ * Scroll around the entire screen.
46
+ */
47
+ scrollScreen: (direction: ScrollDirection, amount?: number) => Promise<ScrollResult>;
48
+ /**
49
+ * Scroll inside an element matched by selector/reference.
50
+ */
51
+ scrollElement: (target: AndroidElementTarget, direction: ScrollDirection, amount?: number) => Promise<ScrollResult>;
52
+ /**
53
+ * Open a URL/deeplink on Android.
54
+ */
55
+ openUrl: (url: string) => Promise<OpenUrlResult>;
19
56
  /**
20
57
  * Disconnect from the Limbar instance
21
58
  */
@@ -45,6 +82,50 @@ export type InstanceClient = {
45
82
  * Controls the verbosity of logging in the client
46
83
  */
47
84
  export type LogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug';
85
+ export type ScrollDirection = 'up' | 'down' | 'left' | 'right';
86
+ export type AndroidSelector = {
87
+ resourceId?: string;
88
+ text?: string;
89
+ contentDesc?: string;
90
+ className?: string;
91
+ packageName?: string;
92
+ index?: number;
93
+ clickable?: boolean;
94
+ enabled?: boolean;
95
+ focused?: boolean;
96
+ boundsContains?: {
97
+ x: number;
98
+ y: number;
99
+ };
100
+ };
101
+ export type AndroidElementTarget = {
102
+ selector?: AndroidSelector;
103
+ x?: number;
104
+ y?: number;
105
+ };
106
+ export type AndroidElementNode = {
107
+ index?: string;
108
+ text?: string;
109
+ resourceId?: string;
110
+ className?: string;
111
+ packageName?: string;
112
+ contentDesc?: string;
113
+ clickable?: boolean;
114
+ enabled?: boolean;
115
+ focusable?: boolean;
116
+ focused?: boolean;
117
+ scrollable?: boolean;
118
+ selected?: boolean;
119
+ bounds?: string;
120
+ parsedBounds?: {
121
+ left: number;
122
+ top: number;
123
+ right: number;
124
+ bottom: number;
125
+ centerX: number;
126
+ centerY: number;
127
+ };
128
+ };
48
129
  /**
49
130
  * Configuration options for creating an Instance API client
50
131
  */
@@ -90,6 +171,34 @@ export type InstanceClientOptions = {
90
171
  type ScreenshotData = {
91
172
  dataUri: string;
92
173
  };
174
+ export type ElementTreeData = {
175
+ xml: string;
176
+ nodes: AndroidElementNode[];
177
+ };
178
+ export type FindElementResult = {
179
+ elements: AndroidElementNode[];
180
+ count: number;
181
+ };
182
+ export type TapResult = {
183
+ x: number;
184
+ y: number;
185
+ };
186
+ export type SetTextResult = {
187
+ textLength: number;
188
+ };
189
+ export type PressKeyResult = {
190
+ key: string;
191
+ };
192
+ export type ScrollResult = {
193
+ direction: ScrollDirection;
194
+ startX: number;
195
+ startY: number;
196
+ endX: number;
197
+ endY: number;
198
+ };
199
+ export type OpenUrlResult = {
200
+ url: string;
201
+ };
93
202
  /**
94
203
  * Creates a client for interacting with a Limbar instance
95
204
  * @param options Configuration options including webrtcUrl, token and log level
@@ -1 +1 @@
1
- {"version":3,"file":"instance-client.d.ts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"OAIO,KAAK,EAAE,MAAM,EAAE;AAEtB;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEvE;;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;IAE1C;;OAEG;IACH,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAE1C;;;OAGG;IACH,uBAAuB,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,MAAM,IAAI,CAAC;CAC5E,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;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAaF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0BF;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAmYlG"}
1
+ {"version":3,"file":"instance-client.d.ts","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,8 @@ async function createInstanceClient(options) {
21
21
  let reconnectTimeout;
22
22
  let intentionalDisconnect = false;
23
23
  let lastError;
24
- const screenshotRequests = new Map();
25
- const assetRequests = new Map();
24
+ const pendingRequests = new Map();
25
+ const pendingAssetRequestsByUrl = new Map();
26
26
  const stateChangeCallbacks = new Set();
27
27
  const logger = {
28
28
  debug: (...args) => {
@@ -57,10 +57,18 @@ async function createInstanceClient(options) {
57
57
  }
58
58
  };
59
59
  const failPendingRequests = (reason) => {
60
- screenshotRequests.forEach((request) => request.rejecter(new Error(reason)));
61
- screenshotRequests.clear();
62
- assetRequests.forEach((request) => request.rejecter(new Error(reason)));
63
- assetRequests.clear();
60
+ pendingRequests.forEach((request) => {
61
+ clearTimeout(request.timeout);
62
+ request.reject(new Error(reason));
63
+ });
64
+ pendingRequests.clear();
65
+ pendingAssetRequestsByUrl.forEach((requests) => {
66
+ requests.forEach((request) => {
67
+ clearTimeout(request.timeout);
68
+ request.reject(new Error(reason));
69
+ });
70
+ });
71
+ pendingAssetRequestsByUrl.clear();
64
72
  };
65
73
  const cleanup = () => {
66
74
  if (reconnectTimeout) {
@@ -80,8 +88,96 @@ async function createInstanceClient(options) {
80
88
  }
81
89
  };
82
90
  let pingInterval;
91
+ let requestCounter = 0;
83
92
  return new Promise((resolveConnection, rejectConnection) => {
84
93
  let hasResolved = false;
94
+ const nextRequestId = (prefix) => {
95
+ requestCounter += 1;
96
+ return `${prefix}-${Date.now()}-${requestCounter}`;
97
+ };
98
+ const resolvePendingRequest = (id, value) => {
99
+ const request = pendingRequests.get(id);
100
+ if (!request) {
101
+ logger.debug(`Received response for unknown/already-settled request: ${id}`);
102
+ return;
103
+ }
104
+ clearTimeout(request.timeout);
105
+ pendingRequests.delete(id);
106
+ request.resolve(value);
107
+ };
108
+ const rejectPendingRequest = (id, error) => {
109
+ const request = pendingRequests.get(id);
110
+ if (!request) {
111
+ logger.debug(`Received error for unknown/already-settled request: ${id}`);
112
+ return;
113
+ }
114
+ clearTimeout(request.timeout);
115
+ pendingRequests.delete(id);
116
+ request.reject(error);
117
+ };
118
+ const extractErrorMessage = (message) => {
119
+ if ('message' in message && typeof message.message === 'string') {
120
+ return message.message;
121
+ }
122
+ if ('error' in message && message.error && typeof message.error === 'object') {
123
+ const obj = message.error;
124
+ if (typeof obj.message === 'string' && obj.message) {
125
+ return obj.message;
126
+ }
127
+ if (typeof obj.code === 'string' && obj.code) {
128
+ return obj.code;
129
+ }
130
+ // Presence of an error object itself is treated as failure, even if message/code are absent.
131
+ return `Server returned ${String(message.type)} with an error payload but no error message/code`;
132
+ }
133
+ return undefined;
134
+ };
135
+ const isKnownCommandResultMessage = (message) => {
136
+ if (!('type' in message) || typeof message.type !== 'string') {
137
+ return false;
138
+ }
139
+ switch (message.type) {
140
+ case 'screenshotResult':
141
+ case 'getElementTreeResult':
142
+ case 'findElementResult':
143
+ case 'tapResult':
144
+ case 'setTextResult':
145
+ case 'pressKeyResult':
146
+ case 'scrollScreenResult':
147
+ case 'scrollElementResult':
148
+ case 'openUrlResult':
149
+ return 'id' in message && typeof message.id === 'string';
150
+ default:
151
+ return false;
152
+ }
153
+ };
154
+ const sendRequest = async (type, params, timeoutMs = 30000) => {
155
+ if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
156
+ return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
157
+ }
158
+ const id = nextRequestId('ts-client');
159
+ const command = Object.keys(params).length > 0 ? { type, id, ...params, payload: params } : { type, id };
160
+ return new Promise((resolve, reject) => {
161
+ const timeout = setTimeout(() => {
162
+ if (pendingRequests.has(id)) {
163
+ pendingRequests.delete(id);
164
+ reject(new Error(`Request ${type} timed out`));
165
+ }
166
+ }, timeoutMs);
167
+ pendingRequests.set(id, {
168
+ resolve: (value) => resolve(value),
169
+ reject: (reason) => reject(reason),
170
+ timeout,
171
+ });
172
+ ws.send(JSON.stringify(command), (err) => {
173
+ if (err) {
174
+ clearTimeout(timeout);
175
+ pendingRequests.delete(id);
176
+ reject(err);
177
+ }
178
+ });
179
+ });
180
+ };
85
181
  // Reconnection logic with exponential backoff
86
182
  const scheduleReconnect = () => {
87
183
  if (intentionalDisconnect) {
@@ -126,14 +222,25 @@ async function createInstanceClient(options) {
126
222
  break;
127
223
  }
128
224
  const screenshotMessage = message;
129
- const request = screenshotRequests.get(screenshotMessage.id);
130
- if (!request) {
131
- logger.warn(`Received screenshot data for unknown or already handled session: ${screenshotMessage.id}`);
225
+ logger.debug(`Received screenshot data URI for request ${screenshotMessage.id}.`);
226
+ resolvePendingRequest(screenshotMessage.id, {
227
+ dataUri: screenshotMessage.dataUri,
228
+ });
229
+ break;
230
+ }
231
+ case 'screenshotResult': {
232
+ const resultMessage = message;
233
+ const errorMessage = extractErrorMessage(resultMessage);
234
+ if (errorMessage) {
235
+ rejectPendingRequest(resultMessage.id, new Error(errorMessage));
132
236
  break;
133
237
  }
134
- logger.debug(`Received screenshot data URI for session ${screenshotMessage.id}.`);
135
- request.resolver({ dataUri: screenshotMessage.dataUri });
136
- screenshotRequests.delete(screenshotMessage.id);
238
+ const dataUri = typeof resultMessage.payload?.dataUri === 'string' ? resultMessage.payload.dataUri : '';
239
+ if (!dataUri) {
240
+ rejectPendingRequest(resultMessage.id, new Error('Received screenshotResult without payload.dataUri'));
241
+ break;
242
+ }
243
+ resolvePendingRequest(resultMessage.id, { dataUri });
137
244
  break;
138
245
  }
139
246
  case 'screenshotError': {
@@ -142,40 +249,52 @@ async function createInstanceClient(options) {
142
249
  break;
143
250
  }
144
251
  const errorMessage = message;
145
- const request = screenshotRequests.get(errorMessage.id);
146
- if (!request) {
147
- logger.warn(`Received screenshot error for unknown or already handled session: ${errorMessage.id}`);
148
- break;
149
- }
150
- logger.error(`Server reported an error capturing screenshot for session ${errorMessage.id}:`, errorMessage.message);
151
- request.rejecter(new Error(errorMessage.message));
152
- screenshotRequests.delete(errorMessage.id);
252
+ logger.error(`Server reported an error capturing screenshot for request ${errorMessage.id}:`, errorMessage.message);
253
+ rejectPendingRequest(errorMessage.id, new Error(errorMessage.message));
153
254
  break;
154
255
  }
155
256
  case 'assetResult': {
156
257
  logger.debug('Received assetResult:', message);
157
- const request = assetRequests.get(message.url);
158
- if (!request) {
258
+ const url = message.url;
259
+ const queue = pendingAssetRequestsByUrl.get(url);
260
+ if (!queue || queue.length === 0) {
159
261
  logger.warn(`Received assetResult for unknown or already handled url: ${message.url}`);
160
262
  break;
161
263
  }
264
+ const request = queue.shift();
265
+ if (queue.length === 0) {
266
+ pendingAssetRequestsByUrl.delete(url);
267
+ }
268
+ else {
269
+ pendingAssetRequestsByUrl.set(url, queue);
270
+ }
271
+ clearTimeout(request.timeout);
162
272
  if (message.result === 'success') {
163
273
  logger.debug('Asset result is success');
164
- request.resolver();
165
- assetRequests.delete(message.url);
274
+ request.resolve();
166
275
  break;
167
276
  }
168
- const errorMessage = typeof message.message === 'string' && message.message ?
277
+ const assetErrorMessage = typeof message.message === 'string' && message.message ?
169
278
  message.message
170
279
  : `Asset processing failed: ${JSON.stringify(message)}`;
171
- logger.debug('Asset result is failure', errorMessage);
172
- request.rejecter(new Error(errorMessage));
173
- assetRequests.delete(message.url);
280
+ logger.debug('Asset result is failure', assetErrorMessage);
281
+ request.reject(new Error(assetErrorMessage));
174
282
  break;
175
283
  }
176
- default:
284
+ default: {
285
+ if (isKnownCommandResultMessage(message)) {
286
+ const err = extractErrorMessage(message);
287
+ if (err) {
288
+ rejectPendingRequest(message.id, new Error(err));
289
+ }
290
+ else {
291
+ resolvePendingRequest(message.id, message.payload ?? message);
292
+ }
293
+ break;
294
+ }
177
295
  logger.warn(`Received unexpected message type: ${message.type}`);
178
296
  break;
297
+ }
179
298
  }
180
299
  });
181
300
  ws.on('error', (err) => {
@@ -222,6 +341,14 @@ async function createInstanceClient(options) {
222
341
  hasResolved = true;
223
342
  resolveConnection({
224
343
  screenshot,
344
+ getElementTree,
345
+ findElement,
346
+ tap,
347
+ setText,
348
+ pressKey,
349
+ scrollScreen,
350
+ scrollElement,
351
+ openUrl,
225
352
  disconnect,
226
353
  startAdbTunnel,
227
354
  sendAsset,
@@ -232,42 +359,70 @@ async function createInstanceClient(options) {
232
359
  });
233
360
  };
234
361
  const screenshot = async () => {
235
- if (!ws || ws.readyState !== ws_1.WebSocket.OPEN) {
236
- return Promise.reject(new Error('WebSocket is not connected or connection is not open.'));
237
- }
238
- const id = 'ts-client-' + Date.now();
239
- const screenshotRequest = {
240
- type: 'screenshot',
241
- id,
362
+ return sendRequest('screenshot', {});
363
+ };
364
+ const getElementTree = async () => {
365
+ const result = await sendRequest('getElementTree', {});
366
+ return {
367
+ xml: typeof result.xml === 'string' ? result.xml : '',
368
+ nodes: Array.isArray(result.nodes) ? result.nodes : [],
242
369
  };
243
- return new Promise((resolve, reject) => {
244
- logger.debug('Sending screenshot request:', screenshotRequest);
245
- ws.send(JSON.stringify(screenshotRequest), (err) => {
246
- if (err) {
247
- logger.error('Failed to send screenshot request:', err);
248
- reject(err);
249
- }
250
- });
251
- const timeout = setTimeout(() => {
252
- if (screenshotRequests.has(id)) {
253
- logger.error(`Screenshot request timed out for session ${id}`);
254
- screenshotRequests.get(id)?.rejecter(new Error('Screenshot request timed out'));
255
- screenshotRequests.delete(id);
256
- }
257
- }, 30000);
258
- screenshotRequests.set(id, {
259
- resolver: (value) => {
260
- clearTimeout(timeout);
261
- resolve(value);
262
- screenshotRequests.delete(id);
263
- },
264
- rejecter: (reason) => {
265
- clearTimeout(timeout);
266
- reject(reason);
267
- screenshotRequests.delete(id);
268
- },
269
- });
370
+ };
371
+ const findElement = async (selector, limit = 20) => {
372
+ const result = await sendRequest('findElement', { selector, limit });
373
+ const elements = Array.isArray(result.elements) ? result.elements : [];
374
+ return {
375
+ elements,
376
+ count: typeof result.count === 'number' ? result.count : elements.length,
377
+ };
378
+ };
379
+ const tap = async (target) => {
380
+ const result = await sendRequest('tap', target);
381
+ return {
382
+ x: Number(result.x ?? 0),
383
+ y: Number(result.y ?? 0),
384
+ };
385
+ };
386
+ const setText = async (target, text) => {
387
+ const payload = { text };
388
+ if (target?.selector)
389
+ payload.selector = target.selector;
390
+ if (typeof target?.x === 'number')
391
+ payload.x = target.x;
392
+ if (typeof target?.y === 'number')
393
+ payload.y = target.y;
394
+ const result = await sendRequest('setText', payload);
395
+ return {
396
+ textLength: Number(result.textLength ?? text.length),
397
+ };
398
+ };
399
+ const pressKey = async (key, modifiers) => {
400
+ const payload = {
401
+ keyName: key,
402
+ ...(modifiers ? { modifiers } : {}),
403
+ };
404
+ const result = await sendRequest('pressKey', payload);
405
+ return {
406
+ key: typeof result.key === 'string' ? result.key : String(key),
407
+ };
408
+ };
409
+ const scrollScreen = async (direction, amount = 6) => {
410
+ const result = await sendRequest('scrollScreen', { direction, amount });
411
+ return result;
412
+ };
413
+ const scrollElement = async (target, direction, amount = 6) => {
414
+ const result = await sendRequest('scrollElement', {
415
+ ...target,
416
+ direction,
417
+ amount,
270
418
  });
419
+ return result;
420
+ };
421
+ const openUrl = async (url) => {
422
+ const result = await sendRequest('openUrl', { url });
423
+ return {
424
+ url: typeof result.url === 'string' ? result.url : url,
425
+ };
271
426
  };
272
427
  const disconnect = () => {
273
428
  intentionalDisconnect = true;
@@ -320,13 +475,51 @@ async function createInstanceClient(options) {
320
475
  type: 'asset',
321
476
  url,
322
477
  };
323
- ws.send(JSON.stringify(assetRequest), (err) => {
324
- if (err) {
325
- logger.error('Failed to send asset request:', err);
326
- }
327
- });
328
478
  return new Promise((resolve, reject) => {
329
- assetRequests.set(url, { resolver: resolve, rejecter: reject });
479
+ let request;
480
+ const timeout = setTimeout(() => {
481
+ const queue = pendingAssetRequestsByUrl.get(url);
482
+ if (!queue) {
483
+ return;
484
+ }
485
+ const idx = queue.indexOf(request);
486
+ if (idx >= 0) {
487
+ queue.splice(idx, 1);
488
+ reject(new Error(`Request asset timed out for url: ${url}`));
489
+ }
490
+ if (queue.length === 0) {
491
+ pendingAssetRequestsByUrl.delete(url);
492
+ }
493
+ else {
494
+ pendingAssetRequestsByUrl.set(url, queue);
495
+ }
496
+ }, 30000);
497
+ request = {
498
+ resolve,
499
+ reject: (reason) => reject(reason),
500
+ timeout,
501
+ };
502
+ const queue = pendingAssetRequestsByUrl.get(url) ?? [];
503
+ queue.push(request);
504
+ pendingAssetRequestsByUrl.set(url, queue);
505
+ ws.send(JSON.stringify(assetRequest), (err) => {
506
+ if (err) {
507
+ clearTimeout(timeout);
508
+ const queued = pendingAssetRequestsByUrl.get(url) ?? [];
509
+ const idx = queued.indexOf(request);
510
+ if (idx >= 0) {
511
+ queued.splice(idx, 1);
512
+ }
513
+ if (queued.length === 0) {
514
+ pendingAssetRequestsByUrl.delete(url);
515
+ }
516
+ else {
517
+ pendingAssetRequestsByUrl.set(url, queued);
518
+ }
519
+ logger.error('Failed to send asset request:', err);
520
+ reject(err);
521
+ }
522
+ });
330
523
  });
331
524
  };
332
525
  // Start the initial connection
@@ -1 +1 @@
1
- {"version":3,"file":"instance-client.js","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-client.js","sourceRoot":"","sources":["src/instance-client.ts"],"names":[],"mappings":"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"}