@mobilewright/driver-mobilecli 0.0.52 → 0.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/driver.d.ts CHANGED
@@ -1,16 +1,32 @@
1
- import type { AppInfo, ConnectionConfig, DeviceInfo, DeviceSettings, GestureSequence, HardwareButton, LaunchOptions, ListDevicesOptions, MobilewrightDriver, Orientation, RecordingOptions, RecordingResult, ScreenSize, ScreenshotOptions, Session, SwipeDirection, SwipeOptions, ViewNode, WebViewBridge } from '@mobilewright/protocol';
1
+ import type { AllocatedDevice, AllocationCriteria, AppInfo, ConnectionConfig, DeviceInfo, DeviceSettings, GestureSequence, HardwareButton, LaunchOptions, ListDevicesOptions, MobilewrightSession, DeviceAllocator, Orientation, RecordingOptions, RecordingResult, ScreenSize, ScreenshotOptions, Session, SwipeDirection, SwipeOptions, ViewNode, WebViewBridge } from '@mobilewright/protocol';
2
2
  export declare const DEFAULT_URL = "ws://localhost:12000/ws";
3
- export declare class MobilecliDriver implements MobilewrightDriver {
3
+ export interface MobilecliDriverOptions {
4
+ /** mobilecli server URL (use for remote servers). Default: ws://localhost:12000/ws */
5
+ url?: string;
6
+ /** Path to the mobilecli binary, if not resolvable via the npm package. */
7
+ mobilecliPath?: string;
8
+ /** Auto-start the mobilecli server if not running (local URLs only). Default: true. */
9
+ autoStart?: boolean;
10
+ }
11
+ export declare class MobilecliDriver implements MobilewrightSession, DeviceAllocator {
4
12
  private session;
5
13
  private readonly serverUrl;
6
- constructor(opts?: {
7
- url?: string;
8
- });
14
+ private readonly mobilecliPath?;
15
+ private readonly autoStart;
16
+ /** Set only when this instance's own prepare()/connect() call started the server — that's the instance responsible for killing it. */
17
+ private ownedServerProcess;
18
+ constructor(opts?: MobilecliDriverOptions);
9
19
  connect(config: ConnectionConfig): Promise<Session>;
10
20
  private findDeviceById;
11
21
  private resolveDevice;
12
22
  private ensureAgentInstalled;
13
23
  disconnect(): Promise<void>;
24
+ /** Pre-warm a locally-spawned server before any device-pool workers connect(). No-op for remote URLs already reachable. */
25
+ prepare(): Promise<void>;
26
+ /** Kill the server started by prepare(), if any. */
27
+ dispose(): Promise<void>;
28
+ allocate(criteria: AllocationCriteria, takenDeviceIds: ReadonlySet<string>): Promise<AllocatedDevice>;
29
+ release(_deviceId: string): Promise<void>;
14
30
  applyDeviceSettings(settings: DeviceSettings): Promise<void>;
15
31
  getViewHierarchy(): Promise<ViewNode[]>;
16
32
  tap(x: number, y: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
package/dist/driver.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import createDebug from 'debug';
2
2
  import { execFileSync } from 'node:child_process';
3
3
  import { openSync, readSync, closeSync } from 'node:fs';
4
+ import { NoDeviceAvailableError, osVersionSatisfies, parseOsVersion } from '@mobilewright/protocol';
4
5
  import { RpcClient } from './rpc-client.js';
5
6
  import { resolveMobilecliBinary } from './resolve-binary.js';
7
+ import { ensureMobilecliReachable } from './server.js';
6
8
  export const DEFAULT_URL = 'ws://localhost:12000/ws';
7
9
  /**
8
10
  * Device IDs whose agent has already been verified in this process. connect()
@@ -115,29 +117,50 @@ export class MobilecliDriver {
115
117
  constructor(opts) {
116
118
  this.session = null;
117
119
  this.serverUrl = opts?.url ?? DEFAULT_URL;
120
+ this.mobilecliPath = opts?.mobilecliPath;
121
+ this.autoStart = opts?.autoStart ?? true;
118
122
  }
119
123
  // ─── Connection ──────────────────────────────────────────────
120
124
  async connect(config) {
121
125
  const url = config.url ?? this.serverUrl;
122
- debug('connecting to %s', url);
123
- const rpc = new RpcClient(url, config.timeout);
124
- await rpc.connect();
125
- debug('websocket connected');
126
- const platform = config.platform;
127
- let device;
128
- if (config.deviceId && config.deviceType) {
129
- device = { id: config.deviceId, name: '', platform, type: config.deviceType, state: 'online' };
126
+ const ensured = await ensureMobilecliReachable(url, { autoStart: this.autoStart, binaryPath: this.mobilecliPath });
127
+ // Only this call's own server (if it started one) is ours to track/clean up here —
128
+ // an undefined serverProcess means the server was already running (e.g. from prepare()),
129
+ // so any existing handle must be left alone.
130
+ const startedServerProcess = ensured.serverProcess;
131
+ if (startedServerProcess) {
132
+ this.ownedServerProcess = startedServerProcess;
130
133
  }
131
- else if (config.deviceId) {
132
- device = await this.findDeviceById(config.deviceId);
134
+ debug('connecting to %s', url);
135
+ try {
136
+ const rpc = new RpcClient(url, config.timeout);
137
+ await rpc.connect();
138
+ debug('websocket connected');
139
+ const platform = config.platform;
140
+ let device;
141
+ if (config.deviceId && config.deviceType) {
142
+ device = { id: config.deviceId, name: '', platform, type: config.deviceType, state: 'online' };
143
+ }
144
+ else if (config.deviceId) {
145
+ device = await this.findDeviceById(config.deviceId);
146
+ }
147
+ else {
148
+ device = await this.resolveDevice(platform, config.deviceName);
149
+ }
150
+ debug('resolved device %s (platform=%s, type=%s)', device.id, platform, device.type);
151
+ this.ensureAgentInstalled(device);
152
+ this.session = { deviceId: device.id, deviceName: device.name, platform, deviceType: device.type, rpc };
153
+ return { deviceId: device.id, platform };
133
154
  }
134
- else {
135
- device = await this.resolveDevice(platform, config.deviceName);
155
+ catch (err) {
156
+ if (startedServerProcess) {
157
+ await startedServerProcess.kill().catch(() => { });
158
+ if (this.ownedServerProcess === startedServerProcess) {
159
+ this.ownedServerProcess = undefined;
160
+ }
161
+ }
162
+ throw err;
136
163
  }
137
- debug('resolved device %s (platform=%s, type=%s)', device.id, platform, device.type);
138
- this.ensureAgentInstalled(device);
139
- this.session = { deviceId: device.id, deviceName: device.name, platform, deviceType: device.type, rpc };
140
- return { deviceId: device.id, platform };
141
164
  }
142
165
  async findDeviceById(deviceId) {
143
166
  const allDevices = await this.listDevices();
@@ -177,7 +200,7 @@ export class MobilecliDriver {
177
200
  debug('agent already verified on %s, skipping status check', device.id);
178
201
  return;
179
202
  }
180
- const binary = resolveMobilecliBinary();
203
+ const binary = resolveMobilecliBinary(this.mobilecliPath);
181
204
  debug('running: %s agent status --device %s', binary, device.id);
182
205
  const statusOutput = execFileSync(binary, ['agent', 'status', '--device', device.id], { encoding: 'utf8' });
183
206
  debug('agent status output: %s', statusOutput.trim());
@@ -204,6 +227,48 @@ export class MobilecliDriver {
204
227
  async disconnect() {
205
228
  await this.requireSession().rpc.disconnect();
206
229
  this.session = null;
230
+ if (this.ownedServerProcess) {
231
+ await this.ownedServerProcess.kill();
232
+ this.ownedServerProcess = undefined;
233
+ }
234
+ }
235
+ /** Pre-warm a locally-spawned server before any device-pool workers connect(). No-op for remote URLs already reachable. */
236
+ async prepare() {
237
+ const ensured = await ensureMobilecliReachable(this.serverUrl, { autoStart: this.autoStart, binaryPath: this.mobilecliPath });
238
+ this.ownedServerProcess = ensured.serverProcess;
239
+ }
240
+ /** Kill the server started by prepare(), if any. */
241
+ async dispose() {
242
+ if (this.ownedServerProcess) {
243
+ await this.ownedServerProcess.kill();
244
+ this.ownedServerProcess = undefined;
245
+ }
246
+ }
247
+ // ─── Allocation ────────────────────────────────────────────────
248
+ async allocate(criteria, takenDeviceIds) {
249
+ if (criteria.osVersion) {
250
+ // Validate up front: with zero eligible devices the per-device filter below
251
+ // never parses the expression, and a malformed one would masquerade as a
252
+ // retriable NoDeviceAvailableError.
253
+ parseOsVersion(criteria.osVersion);
254
+ }
255
+ const devices = await this.listDevices(criteria.platform ? { platform: criteria.platform } : undefined);
256
+ const namePattern = criteria.deviceNamePattern ? new RegExp(criteria.deviceNamePattern) : undefined;
257
+ const match = devices
258
+ .filter((d) => d.state === 'online')
259
+ .filter((d) => !takenDeviceIds.has(d.id))
260
+ .filter((d) => !criteria.deviceId || d.id === criteria.deviceId)
261
+ .filter((d) => !namePattern || namePattern.test(d.name))
262
+ .filter((d) => !criteria.deviceType || d.type === criteria.deviceType)
263
+ .filter((d) => !criteria.osVersion || (d.osVersion !== undefined && osVersionSatisfies(d.osVersion, criteria.osVersion)))
264
+ .at(0);
265
+ if (!match) {
266
+ throw new NoDeviceAvailableError(`no online device available matching criteria ${JSON.stringify(criteria)}`);
267
+ }
268
+ return { deviceId: match.id, platform: match.platform, driver: 'mobilecli', model: match.model, osVersion: match.osVersion, type: match.type };
269
+ }
270
+ async release(_deviceId) {
271
+ // mobilecli devices are local; nothing to release.
207
272
  }
208
273
  async applyDeviceSettings(settings) {
209
274
  await this.call('device.settings.apply', { ...settings });
@@ -389,7 +454,7 @@ export class MobilecliDriver {
389
454
  }
390
455
  // ─── Device Operations ───────────────────────────────────────
391
456
  async listDevices(opts) {
392
- const binary = resolveMobilecliBinary();
457
+ const binary = resolveMobilecliBinary(this.mobilecliPath);
393
458
  debug('listing devices');
394
459
  const output = execFileSync(binary, ['devices'], { encoding: 'utf8' });
395
460
  const response = JSON.parse(output);
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA+BxD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAqB,MAAM,aAAa,CAAC;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAWrD;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AA0FxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnE,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAmB,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAoB;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9D,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS;QAC1B,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,SAAS;QAC5B,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,SAAS;QACtC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,SAAS;QAC5B,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS;QAC1B,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS;QACxC,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAC/F,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI;QAC7B,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QAClE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QAC/D,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QAC/D,MAAM;QACN,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACnD,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAExD,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,2BAA2B,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,uBAAuB;IAC3B,YACmB,IAAoB,EACpB,EAAU;QADV,SAAI,GAAJ,IAAI,CAAgB;QACpB,OAAE,GAAF,EAAE,CAAQ;IAC1B,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAc,IAAY;QACtC,oEAAoE;QACpE,0CAA0C;QAC1C,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAI,yBAAyB,EAAE;YAC3D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,IAAI,CAAS,oBAAoB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,IAAI,CAAS,sBAAsB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAmC;QACxD,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE;YACjD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,0EAA0E;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAQ1B,YAAY,IAA6B;QAPjC,YAAO,GAAgH,IAAI,CAAC;QAQlI,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,aAAa,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnH,mFAAmF;QACnF,yFAAyF;QACzF,6CAA6C;QAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;QACnD,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;QACjD,CAAC;QACD,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,IAAI,MAAkB,CAAC;YACvB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACjG,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,CAAC,2CAA2C,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAErF,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;YACxG,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,oBAAoB,EAAE,CAAC;gBACzB,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,kBAAkB,KAAK,oBAAoB,EAAE,CAAC;oBACrD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,QAAkB,EAClB,UAA4B;QAE5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,KAAK,CAAC,2DAA2D,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE5G,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CACvD,CAAC;QAEF,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CACvD,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrF,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,oBAAoB,UAAU,WAAW;oBAC5D,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,qBAAqB;gBACxC,CAAC,QAAQ,KAAK,KAAK;oBACjB,CAAC,CAAC,uFAAuF;oBACzF,CAAC,CAAC,oFAAoF,CAAC,CAC5F,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAAC,MAAkB;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,qDAAqD,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,KAAK,CAAC,sCAAsC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5G,KAAK,CAAC,yBAAyB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAiC,CAAC;QAChF,IAAI,cAAc,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACnC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9D,KAAK,CAAC,wDAAwD,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxF,KAAK,CAAC,iDAAiD,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5E,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3H,KAAK,CAAC,0BAA0B,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5G,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAiC,CAAC;YAChF,IAAI,cAAc,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,cAAc,CAAC,IAAI,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC7H,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gEAAgE,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED,2HAA2H;IAC3H,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9H,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,QAAQ,CACZ,QAA4B,EAC5B,cAAmC;QAEnC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,4EAA4E;YAC5E,yEAAyE;YACzE,oCAAoC;YACpC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAExG,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpG,MAAM,KAAK,GAAG,OAAO;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC;aAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC;aACrE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aACxH,EAAE,CAAC,CAAC,CAAC,CAAC;QAET,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,sBAAsB,CAC9B,gDAAgD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACjJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,mDAAmD;IACrD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAwB;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAA0B,gBAAgB,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS;QAClC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,QAAiB;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChF,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAyB,EAAE,IAAmB;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC;QAEvC,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC;QACnE,MAAM,eAAe,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,eAAe,CAAC;QAEnD,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,IAAI;gBAAK,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC9C,KAAK,MAAM;gBAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC9C,KAAK,MAAM;gBAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC9C,KAAK,OAAO;gBAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;gBAAC,MAAM;QAChD,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACjC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACpB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACpB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAyB;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAsB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,UAAU,CAAC,IAAwB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAA8B,mBAAmB,EAAE;YAC/E,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAA8B,aAAa,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAA+B,2BAA2B,CAAC,CAAC;QAC1F,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAwB;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,iEAAiE;IAEjE,KAAK,CAAC,cAAc,CAAC,IAAsB;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,IAAI,CAAkB,0BAA0B,CAAC,CAAC;IAChE,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAoB;QACpD,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAChC,oEAAoE;QACpE,iEAAiE;QACjE,4DAA4D;QAC5D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,gEAAgE;YAClE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACpC,QAAQ;YACR,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAsD,kBAAkB,CAAC,CAAC;QACxG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAE1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE;YAC/C,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAoB,wBAAwB,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE;YACrD,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC;QAE5F,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CACb,kBAAkB,OAAO,CAAC,UAAU,+CAA+C,IAAI,QAAQ;wBAC/F,gCAAgC;wBAChC,yDAAyD;wBACzD,iDAAiD,OAAO,CAAC,UAAU,QAAQ;wBAC3E,oCAAoC;wBACpC,mDAAmD;wBACnD,kCAAkC;wBAClC,4DAA4D,CAC7D,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,IAAI,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,IAAI,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,WAAW,CAAC,IAAyB;QACzC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA6B,CAAC;QAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAEpC,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAE;YACjC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QACN,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,gEAAgE;IAEhE,IAAI,aAAa;QACf,MAAM,IAAI,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3E,OAAO;YACL,YAAY,EAAE,KAAK,IAA4B,EAAE;gBAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAA0B,qBAAqB,CAAC,CAAC;gBAChF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC5C,CAAC,CAAC,CAAC;YACN,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,EAAU,EAA2B,EAAE;gBAC3D,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC;IACJ,CAAC;IAED,gEAAgE;IAEhE,+DAA+D;IACvD,IAAI,CAAc,MAAc,EAAE,MAAgC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAI,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { writeFileSync, mkdtempSync, rmSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { MobilecliDriver } from './driver.js';
6
+ import { NoDeviceAvailableError } from '@mobilewright/protocol';
6
7
  const ZIP_MAGIC = Buffer.from([0x50, 0x4B, 0x03, 0x04]);
7
8
  const tmpDir = mkdtempSync(join(tmpdir(), 'mw-driver-test-'));
8
9
  test.afterAll(() => {
@@ -284,4 +285,49 @@ test.describe('MobilecliDriver.applyDeviceSettings()', () => {
284
285
  ]);
285
286
  });
286
287
  });
288
+ test.describe('MobilecliDriver.allocate()', () => {
289
+ function createDriverWithDevices(devices) {
290
+ const driver = new MobilecliDriver();
291
+ driver.listDevices = async () => devices.map((d, i) => ({
292
+ id: d.id ?? `device-${i}`,
293
+ name: d.name ?? `Device ${i}`,
294
+ platform: d.platform ?? 'ios',
295
+ type: d.type ?? 'simulator',
296
+ state: d.state ?? 'online',
297
+ model: d.model,
298
+ osVersion: d.osVersion,
299
+ }));
300
+ return driver;
301
+ }
302
+ test('picks a real device over a simulator when deviceType is "real"', async () => {
303
+ const driver = createDriverWithDevices([
304
+ { id: 'sim-1', type: 'simulator' },
305
+ { id: 'real-1', type: 'real' },
306
+ ]);
307
+ const allocated = await driver.allocate({ platform: 'ios', deviceType: 'real' }, new Set());
308
+ expect(allocated.deviceId).toBe('real-1');
309
+ });
310
+ test('throws NoDeviceAvailableError when no device matches the deviceType', async () => {
311
+ const driver = createDriverWithDevices([{ id: 'sim-1', type: 'simulator' }]);
312
+ await expect(driver.allocate({ platform: 'ios', deviceType: 'real' }, new Set())).rejects.toThrow(NoDeviceAvailableError);
313
+ });
314
+ test('picks the device whose OS version satisfies the expression', async () => {
315
+ const driver = createDriverWithDevices([
316
+ { id: 'old', osVersion: '16.4' },
317
+ { id: 'wanted', osVersion: '17.5' },
318
+ { id: 'too-new', osVersion: '18.0' },
319
+ ]);
320
+ const allocated = await driver.allocate({ platform: 'ios', osVersion: '17' }, new Set());
321
+ expect(allocated.deviceId).toBe('wanted');
322
+ });
323
+ test('a device that does not report an OS version never matches an osVersion filter', async () => {
324
+ const driver = createDriverWithDevices([{ id: 'unknown-version', osVersion: undefined }]);
325
+ await expect(driver.allocate({ platform: 'ios', osVersion: '17' }, new Set())).rejects.toThrow(NoDeviceAvailableError);
326
+ });
327
+ });
328
+ test('an invalid osVersion expression throws a parse error even when no devices are eligible', async () => {
329
+ const driver = new MobilecliDriver();
330
+ driver.listDevices = async () => [];
331
+ await expect(driver.allocate({ platform: 'ios', osVersion: 'latest' }, new Set())).rejects.toThrow(/invalid OS version/);
332
+ });
287
333
  //# sourceMappingURL=driver.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.test.js","sourceRoot":"","sources":["../src/driver.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.test.js","sourceRoot":"","sources":["../src/driver.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { MobilecliDriver, DEFAULT_URL } from './driver.js';
1
+ export { MobilecliDriver, DEFAULT_URL, type MobilecliDriverOptions } from './driver.js';
2
2
  export { resolveMobilecliBinary } from './resolve-binary.js';
3
3
  export { RpcClient, RpcError } from './rpc-client.js';
4
+ export { ensureMobilecliReachable, isLocalUrl, startMobilecliServer, type ServerHandle } from './server.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { MobilecliDriver, DEFAULT_URL } from './driver.js';
2
2
  export { resolveMobilecliBinary } from './resolve-binary.js';
3
3
  export { RpcClient, RpcError } from './rpc-client.js';
4
+ export { ensureMobilecliReachable, isLocalUrl, startMobilecliServer } from './server.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAA+B,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,oBAAoB,EAAqB,MAAM,aAAa,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Resolve the mobilecli binary using Node's module resolution so it works
3
3
  * from npx caches, global installs, and local node_modules alike.
4
+ *
5
+ * @param explicitPath Use this path directly instead of resolving one.
4
6
  */
5
- export declare function resolveMobilecliBinary(): string;
7
+ export declare function resolveMobilecliBinary(explicitPath?: string): string;
6
8
  //# sourceMappingURL=resolve-binary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-binary.d.ts","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAyB/C"}
1
+ {"version":3,"file":"resolve-binary.d.ts","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BpE"}
@@ -3,8 +3,13 @@ import { createRequire } from 'node:module';
3
3
  /**
4
4
  * Resolve the mobilecli binary using Node's module resolution so it works
5
5
  * from npx caches, global installs, and local node_modules alike.
6
+ *
7
+ * @param explicitPath Use this path directly instead of resolving one.
6
8
  */
7
- export function resolveMobilecliBinary() {
9
+ export function resolveMobilecliBinary(explicitPath) {
10
+ if (explicitPath) {
11
+ return explicitPath;
12
+ }
8
13
  let binary;
9
14
  switch (`${process.platform}-${process.arch}`) {
10
15
  case 'darwin-arm64':
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,MAAc,CAAC;IACnB,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,KAAK,cAAc;YACjB,MAAM,GAAG,wBAAwB,CAAC;YAClC,MAAM;QACR,KAAK,YAAY;YACf,MAAM,GAAG,wBAAwB,CAAC;YAClC,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,GAAG,uBAAuB,CAAC;YACjC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,uBAAuB,CAAC;YACjC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,6BAA6B,CAAC;YACvC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAqB;IAC1D,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,KAAK,cAAc;YACjB,MAAM,GAAG,wBAAwB,CAAC;YAClC,MAAM;QACR,KAAK,YAAY;YACf,MAAM,GAAG,wBAAwB,CAAC;YAClC,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,GAAG,uBAAuB,CAAC;YACjC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,uBAAuB,CAAC;YACjC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,6BAA6B,CAAC;YACvC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type ChildProcess } from 'node:child_process';
2
+ export declare function isLocalUrl(url: string): boolean;
3
+ export interface ServerHandle {
4
+ process: ChildProcess;
5
+ kill: () => Promise<void>;
6
+ }
7
+ export declare function startMobilecliServer(opts?: {
8
+ binaryPath?: string;
9
+ port?: number;
10
+ }): Promise<ServerHandle>;
11
+ export declare function ensureMobilecliReachable(url: string, opts?: {
12
+ autoStart?: boolean;
13
+ binaryPath?: string;
14
+ }): Promise<{
15
+ serverProcess?: ServerHandle;
16
+ }>;
17
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAc9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,wBAAsB,oBAAoB,CAAC,IAAI,CAAC,EAAE;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,YAAY,CAAC,CAiDxB;AAID,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CA4B3C"}
package/dist/server.js ADDED
@@ -0,0 +1,102 @@
1
+ import { spawn } from 'node:child_process';
2
+ import WebSocket from 'ws';
3
+ import { resolveMobilecliBinary } from './resolve-binary.js';
4
+ const HEALTH_CHECK_TIMEOUT = 5_000;
5
+ const SERVER_START_TIMEOUT = 10_000;
6
+ const SERVER_POLL_INTERVAL = 500;
7
+ function sleep(ms) {
8
+ return new Promise((resolve) => setTimeout(resolve, ms));
9
+ }
10
+ // ─── URL helpers ───────────────────────────────────────────────
11
+ export function isLocalUrl(url) {
12
+ try {
13
+ const host = new URL(url).hostname;
14
+ return host === 'localhost' || host === '127.0.0.1' || host === '::1';
15
+ }
16
+ catch {
17
+ return true;
18
+ }
19
+ }
20
+ export async function startMobilecliServer(opts) {
21
+ const binary = opts?.binaryPath ?? 'mobilecli';
22
+ const port = opts?.port ?? 12000;
23
+ const verbose = !!process.env['DEBUG'];
24
+ const serverArgs = ['server', 'start', '--listen', `localhost:${port}`];
25
+ if (verbose) {
26
+ serverArgs.push('--verbose');
27
+ }
28
+ const proc = spawn(binary, serverArgs, {
29
+ stdio: 'pipe',
30
+ detached: false,
31
+ });
32
+ // Always drain mobilecli's stdio: an unconsumed pipe buffer fills and then
33
+ // blocks the server's next log write (a single large log line would hang it).
34
+ // Forward to our stderr only when debugging (DEBUG set).
35
+ const drain = (chunk) => {
36
+ if (verbose) {
37
+ process.stderr.write(chunk);
38
+ }
39
+ };
40
+ proc.stdout?.on('data', drain);
41
+ proc.stderr?.on('data', drain);
42
+ const wsUrl = `ws://localhost:${port}/ws`;
43
+ const deadline = Date.now() + SERVER_START_TIMEOUT;
44
+ while (Date.now() < deadline) {
45
+ if (await checkWebSocket(wsUrl, 1_000)) {
46
+ return {
47
+ process: proc,
48
+ kill: async () => {
49
+ proc.kill('SIGTERM');
50
+ await new Promise((resolve) => {
51
+ const timer = setTimeout(() => { proc.kill('SIGKILL'); resolve(); }, 3_000);
52
+ proc.on('exit', () => { clearTimeout(timer); resolve(); });
53
+ });
54
+ },
55
+ };
56
+ }
57
+ await sleep(SERVER_POLL_INTERVAL);
58
+ }
59
+ proc.kill('SIGTERM');
60
+ throw new Error(`mobilecli server did not become ready within ${SERVER_START_TIMEOUT / 1000}s.\n` +
61
+ `Try starting it manually with: ${binary} server start`);
62
+ }
63
+ // ─── Health check ──────────────────────────────────────────────
64
+ export async function ensureMobilecliReachable(url, opts) {
65
+ if (await checkWebSocket(url, HEALTH_CHECK_TIMEOUT))
66
+ return {};
67
+ if (!isLocalUrl(url)) {
68
+ throw new Error(`Cannot reach mobilecli server at ${url}.\n\n` +
69
+ 'Ensure the remote server is running and accessible.');
70
+ }
71
+ let binaryPath;
72
+ try {
73
+ binaryPath = resolveMobilecliBinary(opts?.binaryPath);
74
+ }
75
+ catch {
76
+ binaryPath = null;
77
+ }
78
+ if (opts?.autoStart && binaryPath) {
79
+ let port = 12000;
80
+ try {
81
+ port = Number(new URL(url).port) || 12000;
82
+ }
83
+ catch { /* default */ }
84
+ const handle = await startMobilecliServer({ binaryPath, port });
85
+ return { serverProcess: handle };
86
+ }
87
+ const hint = binaryPath
88
+ ? 'Start it with:\n mobilecli server start'
89
+ : 'Install mobilecli from:\n https://github.com/mobile-next/mobilecli\n\n' +
90
+ 'Then start the server with:\n mobilecli server start';
91
+ throw new Error(`mobilecli server is not running at ${url}.\n\n${hint}`);
92
+ }
93
+ // ─── Helpers ───────────────────────────────────────────────────
94
+ function checkWebSocket(url, timeout) {
95
+ return new Promise((resolve) => {
96
+ const ws = new WebSocket(url);
97
+ const timer = setTimeout(() => { ws.terminate(); resolve(false); }, timeout);
98
+ ws.on('open', () => { clearTimeout(timer); ws.close(); resolve(true); });
99
+ ws.on('error', () => { clearTimeout(timer); resolve(false); });
100
+ });
101
+ }
102
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilewright/driver-mobilecli",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "description": "mobilecli driver for Mobilewright",
5
5
  "homepage": "https://mobilewright.dev",
6
6
  "license": "Apache-2.0",
@@ -29,7 +29,7 @@
29
29
  "dist"
30
30
  ],
31
31
  "dependencies": {
32
- "@mobilewright/protocol": "^0.0.52",
32
+ "@mobilewright/protocol": "^0.0.53",
33
33
  "debug": "^4.4.3",
34
34
  "mobilecli": "1.0.0",
35
35
  "ws": "^8.18.0"