appium-ios-remotexpc 5.20.4 → 5.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [5.22.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.21.0...v5.22.0) (2026-09-23)
2
+
3
+ ### Features
4
+
5
+ * **usbmux:** add listen() for device attach/detach notifications ([#336](https://github.com/appium/appium-ios-remotexpc/issues/336)) ([ea86788](https://github.com/appium/appium-ios-remotexpc/commit/ea867884097ca444c3dee40f2ae8dc99e010dd21)), closes [Usbmux#_eventStreams](https://github.com/appium/Usbmux/issues/_eventStreams)
6
+
7
+ ## [5.21.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.20.4...v5.21.0) (2026-09-21)
8
+
9
+ ### Features
10
+
11
+ * **companion-proxy:** register service and add integration tests ([#335](https://github.com/appium/appium-ios-remotexpc/issues/335)) ([46bb7e8](https://github.com/appium/appium-ios-remotexpc/commit/46bb7e8750847004bd6f98bec55e1c5e800d8db6))
12
+
1
13
  ## [5.20.4](https://github.com/appium/appium-ios-remotexpc/compare/v5.20.3...v5.20.4) (2026-09-21)
2
14
 
3
15
  ### Bug Fixes
@@ -8,6 +8,7 @@ import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
8
8
  import * as Services from './services.js';
9
9
  import { startCoreDeviceProxyTcp } from './services/ios/tunnel-service/index.js';
10
10
  export type { Device as UsbmuxDevice } from './lib/usbmux/index.js';
11
+ export type { UsbmuxAttachEvent, UsbmuxDetachEvent, UsbmuxDeviceEvent } from './lib/usbmux/index.js';
11
12
  export type { DevicePortForwarderEvents, DevicePortForwarderOptions, UpstreamSocketConnector, } from './lib/port-forwarding/index.js';
12
13
  export type { RsdServiceCatalogClient } from './lib/remote-xpc/rsd-service-catalog-client.js';
13
14
  export { XPCUUID } from './lib/remote-xpc/xpc-uuid.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { Device } from './index.js';
2
+ /**
3
+ * Emitted by {@link Usbmux.listen} when a device is plugged in (or an already-connected
4
+ * device is reported for the first time after the Listen request is acknowledged).
5
+ */
6
+ export interface UsbmuxAttachEvent {
7
+ type: 'attach';
8
+ device: Device;
9
+ }
10
+ /**
11
+ * Emitted by {@link Usbmux.listen} when a device is unplugged. usbmuxd's `Detached`
12
+ * message only carries the numeric `DeviceID`, not the device's properties.
13
+ */
14
+ export interface UsbmuxDetachEvent {
15
+ type: 'detach';
16
+ deviceId: number;
17
+ }
18
+ export type UsbmuxDeviceEvent = UsbmuxAttachEvent | UsbmuxDetachEvent;
19
+ /**
20
+ * Called exactly once when a {@link UsbmuxDeviceEventStream} stops, so its owner can unregister it.
21
+ */
22
+ export type UsbmuxDeviceEventStreamStopHandler = (stream: UsbmuxDeviceEventStream) => void;
23
+ /**
24
+ * Async-iterable queue of usbmuxd device notifications for a single `Listen` subscription.
25
+ *
26
+ * The owning {@link Usbmux} instance feeds it via {@link push} / {@link fail}; consumers
27
+ * drain it with `for await`. Events that arrive while no consumer is waiting are buffered.
28
+ * Once the stream stops (via {@link stop}, {@link fail} or the abort signal), already-buffered
29
+ * events are still delivered first; only then does iteration end, or reject after `fail()`.
30
+ * `return()` (e.g. `break` in `for await`) ends iteration immediately and discards the buffer.
31
+ */
32
+ export declare class UsbmuxDeviceEventStream implements AsyncIterableIterator<UsbmuxDeviceEvent> {
33
+ private readonly onStop;
34
+ private readonly signal?;
35
+ private readonly queue;
36
+ private readonly waiters;
37
+ private isStopped;
38
+ private failure;
39
+ private readonly onAbort;
40
+ /**
41
+ * @param onStop - Invoked exactly once when the stream stops
42
+ * @param signal - When aborted, stops the stream
43
+ */
44
+ constructor(onStop: UsbmuxDeviceEventStreamStopHandler, signal?: AbortSignal);
45
+ /**
46
+ * Whether the stream has stopped accepting events.
47
+ */
48
+ get stopped(): boolean;
49
+ /**
50
+ * Enqueues an event for the consumer. Ignored once the stream has stopped.
51
+ * @param event - Device event to deliver
52
+ */
53
+ push(event: UsbmuxDeviceEvent): void;
54
+ /**
55
+ * Stops the stream and makes the next `next()` call reject with `err`.
56
+ * @param err - Error to surface to the consumer
57
+ */
58
+ fail(err: Error): void;
59
+ /**
60
+ * Stops the stream. Idempotent.
61
+ */
62
+ stop(): void;
63
+ /**
64
+ * Resolves with the next buffered event, waiting for one if necessary. Concurrent calls are
65
+ * each resolved in turn.
66
+ * @returns The next event, or `done` once the stream has stopped and drained
67
+ * @throws The error passed to {@link fail}, once all buffered events have been delivered
68
+ */
69
+ next(): Promise<IteratorResult<UsbmuxDeviceEvent>>;
70
+ /**
71
+ * Stops the stream and discards buffered events. Called by `break`/`return` in `for await`.
72
+ * @returns A `done` iterator result
73
+ */
74
+ return(): Promise<IteratorResult<UsbmuxDeviceEvent>>;
75
+ /**
76
+ * @returns This stream, which is its own iterator
77
+ */
78
+ [Symbol.asyncIterator](): AsyncIterableIterator<UsbmuxDeviceEvent>;
79
+ private notifyWaiters;
80
+ }
81
+ //# sourceMappingURL=device-event-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-event-stream.d.ts","sourceRoot":"","sources":["../../../../src/lib/usbmux/device-event-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;AAE3F;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB,CAAC,iBAAiB,CAAC;IAYpF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C;;;OAGG;gBAEgB,MAAM,EAAE,kCAAkC,EAC1C,MAAM,CAAC,EAAE,WAAW;IASvC;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQpC;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAQtB;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAkBxD;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAO1D;;OAEG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,iBAAiB,CAAC;IAIlE,OAAO,CAAC,aAAa;CAKtB"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Async-iterable queue of usbmuxd device notifications for a single `Listen` subscription.
3
+ *
4
+ * The owning {@link Usbmux} instance feeds it via {@link push} / {@link fail}; consumers
5
+ * drain it with `for await`. Events that arrive while no consumer is waiting are buffered.
6
+ * Once the stream stops (via {@link stop}, {@link fail} or the abort signal), already-buffered
7
+ * events are still delivered first; only then does iteration end, or reject after `fail()`.
8
+ * `return()` (e.g. `break` in `for await`) ends iteration immediately and discards the buffer.
9
+ */
10
+ export class UsbmuxDeviceEventStream {
11
+ onStop;
12
+ signal;
13
+ queue = [];
14
+ waiters = [];
15
+ isStopped = false;
16
+ failure = null;
17
+ onAbort = () => this.stop();
18
+ /**
19
+ * @param onStop - Invoked exactly once when the stream stops
20
+ * @param signal - When aborted, stops the stream
21
+ */
22
+ constructor(onStop, signal) {
23
+ this.onStop = onStop;
24
+ this.signal = signal;
25
+ if (signal?.aborted) {
26
+ this.isStopped = true;
27
+ }
28
+ else {
29
+ signal?.addEventListener('abort', this.onAbort);
30
+ }
31
+ }
32
+ /**
33
+ * Whether the stream has stopped accepting events.
34
+ */
35
+ get stopped() {
36
+ return this.isStopped;
37
+ }
38
+ /**
39
+ * Enqueues an event for the consumer. Ignored once the stream has stopped.
40
+ * @param event - Device event to deliver
41
+ */
42
+ push(event) {
43
+ if (this.isStopped) {
44
+ return;
45
+ }
46
+ this.queue.push(event);
47
+ this.notifyWaiters();
48
+ }
49
+ /**
50
+ * Stops the stream and makes the next `next()` call reject with `err`.
51
+ * @param err - Error to surface to the consumer
52
+ */
53
+ fail(err) {
54
+ if (this.isStopped) {
55
+ return;
56
+ }
57
+ this.failure = err;
58
+ this.stop();
59
+ }
60
+ /**
61
+ * Stops the stream. Idempotent.
62
+ */
63
+ stop() {
64
+ if (this.isStopped) {
65
+ return;
66
+ }
67
+ this.isStopped = true;
68
+ this.signal?.removeEventListener('abort', this.onAbort);
69
+ this.onStop(this);
70
+ this.notifyWaiters();
71
+ }
72
+ /**
73
+ * Resolves with the next buffered event, waiting for one if necessary. Concurrent calls are
74
+ * each resolved in turn.
75
+ * @returns The next event, or `done` once the stream has stopped and drained
76
+ * @throws The error passed to {@link fail}, once all buffered events have been delivered
77
+ */
78
+ async next() {
79
+ while (this.queue.length === 0 && !this.isStopped) {
80
+ await new Promise((resolve) => {
81
+ this.waiters.push(resolve);
82
+ });
83
+ }
84
+ const event = this.queue.shift();
85
+ if (event) {
86
+ return { done: false, value: event };
87
+ }
88
+ if (this.failure) {
89
+ const err = this.failure;
90
+ this.failure = null;
91
+ throw err;
92
+ }
93
+ return { done: true, value: undefined };
94
+ }
95
+ /**
96
+ * Stops the stream and discards buffered events. Called by `break`/`return` in `for await`.
97
+ * @returns A `done` iterator result
98
+ */
99
+ async return() {
100
+ this.stop();
101
+ this.queue.length = 0;
102
+ this.failure = null;
103
+ return { done: true, value: undefined };
104
+ }
105
+ /**
106
+ * @returns This stream, which is its own iterator
107
+ */
108
+ [Symbol.asyncIterator]() {
109
+ return this;
110
+ }
111
+ notifyWaiters() {
112
+ for (const wake of this.waiters.splice(0)) {
113
+ wake();
114
+ }
115
+ }
116
+ }
117
+ //# sourceMappingURL=device-event-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-event-stream.js","sourceRoot":"","sources":["../../../../src/lib/usbmux/device-event-stream.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type Socket } from 'node:net';
2
2
  import { BaseSocketService } from '../../base-socket-service.js';
3
3
  import { type PairRecord } from '../pair-record/index.js';
4
+ import { type UsbmuxDeviceEvent } from './device-event-stream.js';
4
5
  /**
5
6
  * Interface for device properties
6
7
  */
@@ -21,6 +22,7 @@ export interface Device {
21
22
  MessageType: string;
22
23
  Properties: DeviceProperties;
23
24
  }
25
+ export type { UsbmuxAttachEvent, UsbmuxDetachEvent, UsbmuxDeviceEvent } from './device-event-stream.js';
24
26
  export declare const USBMUXD_PORT = 27015;
25
27
  export declare const DEFAULT_USBMUXD_SOCKET = "/var/run/usbmuxd";
26
28
  export declare const DEFAULT_USBMUXD_HOST = "127.0.0.1";
@@ -47,6 +49,8 @@ export declare class Usbmux extends BaseSocketService {
47
49
  private readonly _encoder;
48
50
  private _tag;
49
51
  private readonly _responseCallbacks;
52
+ private readonly _eventStreams;
53
+ private _closePromise;
50
54
  /**
51
55
  * Creates a new usbmux instance
52
56
  * @param socketClient - Connected socket to usbmuxd
@@ -78,6 +82,24 @@ export declare class Usbmux extends BaseSocketService {
78
82
  * @returns Promise that resolves with the device or undefined if not found
79
83
  */
80
84
  findDevice(udid: string, timeout?: number): Promise<Device | undefined>;
85
+ /**
86
+ * Subscribes to usbmuxd's `Listen` notifications, yielding one event per device
87
+ * attach/detach for as long as this connection stays open. usbmuxd immediately reports
88
+ * every already-connected device as an attach event once the request is acknowledged.
89
+ *
90
+ * usbmuxd has no way to unsubscribe, so listening takes over the connection: only one
91
+ * listen() is allowed per connection, and the connection is closed once iteration stops
92
+ * (`break`, `return`, an aborted `signal`, or calling {@link close}). If the connection drops
93
+ * (e.g. usbmuxd restarts), iteration rejects after delivering any already-received events,
94
+ * so the caller can resubscribe on a new connection.
95
+ *
96
+ * @param opts.signal - When aborted, ends the iteration
97
+ * @returns Async iterable of attach/detach events
98
+ * @throws If the connection is already closed or already has an active listen()
99
+ */
100
+ listen(opts?: {
101
+ signal?: AbortSignal;
102
+ }): AsyncIterableIterator<UsbmuxDeviceEvent>;
81
103
  /**
82
104
  * Connects to a certain port on the device
83
105
  * @param deviceID - Device ID
@@ -95,12 +117,26 @@ export declare class Usbmux extends BaseSocketService {
95
117
  * @returns Promise that resolves when the socket is closed.
96
118
  */
97
119
  close(): Promise<void>;
120
+ private _closeSocket;
98
121
  /**
99
122
  * Handles incoming data from the decoder
100
123
  * @param data - Decoded data
101
124
  * @private
102
125
  */
103
126
  private _handleData;
127
+ /**
128
+ * Closes the connection once a listen() stream stops, since usbmuxd cannot unsubscribe it.
129
+ * Runs in the background, so a failure is logged rather than thrown.
130
+ * @private
131
+ */
132
+ private _closeAfterListen;
133
+ /**
134
+ * Runs `fn` for every active listen() stream. Iterates over a snapshot, since stopping a
135
+ * stream removes it from the set.
136
+ * @param fn - Callback invoked with each stream
137
+ * @private
138
+ */
139
+ private _forEachEventStream;
104
140
  /**
105
141
  * Sends a plist to usbmuxd
106
142
  * @param json - JSON object with tag and payload
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/usbmux/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/usbmux/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { processPlistResponse } from '../pair-record/index.js';
7
7
  import { parsePlist } from '../plist/index.js';
8
8
  import { UsbmuxDecoder } from '../usbmux/usbmux-decoder.js';
9
9
  import { UsbmuxEncoder } from '../usbmux/usbmux-encoder.js';
10
+ import { UsbmuxDeviceEventStream } from './device-event-stream.js';
10
11
  import { prioritizeUsbOverNetworkForDuplicateUdids } from './utils.js';
11
12
  const log = getLogger('Usbmux');
12
13
  export const USBMUXD_PORT = 27015;
@@ -22,6 +23,14 @@ export const USBMUX_RESULT = {
22
23
  // Package info for client identification
23
24
  const PROG_NAME = 'appium-internal';
24
25
  const CLIENT_VERSION_STRING = 'appium-internal-1.0.0';
26
+ /**
27
+ * The decoder only casts the parsed plist, so its root is not guaranteed to be a dictionary.
28
+ */
29
+ function asPlistDictionary(value) {
30
+ return value && typeof value === 'object' && !Array.isArray(value) && !Buffer.isBuffer(value)
31
+ ? value
32
+ : null;
33
+ }
25
34
  /**
26
35
  * usbmux class for communicating with usbmuxd
27
36
  */
@@ -30,6 +39,8 @@ export class Usbmux extends BaseSocketService {
30
39
  _encoder;
31
40
  _tag;
32
41
  _responseCallbacks;
42
+ _eventStreams = new Set();
43
+ _closePromise = null;
33
44
  /**
34
45
  * Creates a new usbmux instance
35
46
  * @param socketClient - Connected socket to usbmuxd
@@ -47,6 +58,11 @@ export class Usbmux extends BaseSocketService {
47
58
  this._tag = 0;
48
59
  this._responseCallbacks = {};
49
60
  this._decoder.on('data', this._handleData.bind(this));
61
+ // Unless close() already stopped them, surface a dropped connection (e.g. usbmuxd restarting)
62
+ // to listen() consumers instead of leaving them waiting forever
63
+ this._socketClient.on('close', () => {
64
+ this._forEachEventStream((stream) => stream.fail(new Error('usbmuxd connection closed')));
65
+ });
50
66
  this.on('error', (err) => {
51
67
  log.error(`Usbmux socket error: ${err.message}`);
52
68
  });
@@ -139,6 +155,56 @@ export class Usbmux extends BaseSocketService {
139
155
  const devices = await this.listDevices(timeout);
140
156
  return devices.find((device) => device.Properties.SerialNumber.toLowerCase() === udid.toLowerCase());
141
157
  }
158
+ /**
159
+ * Subscribes to usbmuxd's `Listen` notifications, yielding one event per device
160
+ * attach/detach for as long as this connection stays open. usbmuxd immediately reports
161
+ * every already-connected device as an attach event once the request is acknowledged.
162
+ *
163
+ * usbmuxd has no way to unsubscribe, so listening takes over the connection: only one
164
+ * listen() is allowed per connection, and the connection is closed once iteration stops
165
+ * (`break`, `return`, an aborted `signal`, or calling {@link close}). If the connection drops
166
+ * (e.g. usbmuxd restarts), iteration rejects after delivering any already-received events,
167
+ * so the caller can resubscribe on a new connection.
168
+ *
169
+ * @param opts.signal - When aborted, ends the iteration
170
+ * @returns Async iterable of attach/detach events
171
+ * @throws If the connection is already closed or already has an active listen()
172
+ */
173
+ listen(opts = {}) {
174
+ if (this._closePromise || this._socketClient.destroyed || this._socketClient.writableEnded) {
175
+ throw new Error('Cannot listen on a closed usbmuxd connection');
176
+ }
177
+ if (this._eventStreams.size > 0) {
178
+ throw new Error('listen() is already active on this usbmuxd connection; use a separate connection');
179
+ }
180
+ const tag = this._tag++;
181
+ const stream = new UsbmuxDeviceEventStream((s) => {
182
+ delete this._responseCallbacks[tag];
183
+ this._eventStreams.delete(s);
184
+ this._closeAfterListen();
185
+ }, opts.signal);
186
+ if (stream.stopped) {
187
+ this._closeAfterListen();
188
+ return stream;
189
+ }
190
+ this._eventStreams.add(stream);
191
+ this._responseCallbacks[tag] = (data) => {
192
+ delete this._responseCallbacks[tag];
193
+ const payload = asPlistDictionary(data.payload);
194
+ if (payload?.MessageType !== 'Result' || payload.Number !== USBMUX_RESULT.OK) {
195
+ stream.fail(new Error(`Listen request failed: ${JSON.stringify(data.payload)}`));
196
+ }
197
+ };
198
+ this._sendPlist({
199
+ tag,
200
+ payload: {
201
+ MessageType: 'Listen',
202
+ ProgName: PROG_NAME,
203
+ ClientVersionString: CLIENT_VERSION_STRING,
204
+ },
205
+ });
206
+ return stream;
207
+ }
142
208
  /**
143
209
  * Connects to a certain port on the device
144
210
  * @param deviceID - Device ID
@@ -193,6 +259,13 @@ export class Usbmux extends BaseSocketService {
193
259
  * @returns Promise that resolves when the socket is closed.
194
260
  */
195
261
  close() {
262
+ // Memoized: a stopping listen() stream also closes the connection, and ending the socket
263
+ // twice would fail the second caller
264
+ this._closePromise ??= this._closeSocket();
265
+ return this._closePromise;
266
+ }
267
+ _closeSocket() {
268
+ this._forEachEventStream((stream) => stream.stop());
196
269
  return new Promise((resolve, reject) => {
197
270
  // If the socket is still open, end it gracefully.
198
271
  if (!this._socketClient.destroyed) {
@@ -224,6 +297,39 @@ export class Usbmux extends BaseSocketService {
224
297
  const handler = this._responseCallbacks[data.header.tag];
225
298
  if (handler) {
226
299
  handler(data);
300
+ return;
301
+ }
302
+ // Listen notifications arrive unsolicited with tag 0, not the Listen request's tag, so only
303
+ // frames no pending request is waiting for are treated as such. (Before the plist parser fix
304
+ // in v5.14.5, a ListDevices reply also exposed its entries' MessageType 'Attached' at the top
305
+ // level; checking pending requests first keeps replies from ever being mistaken for events.)
306
+ const payload = asPlistDictionary(data.payload);
307
+ if (payload?.MessageType === 'Attached' || payload?.MessageType === 'Detached') {
308
+ const event = payload.MessageType === 'Attached'
309
+ ? { type: 'attach', device: payload }
310
+ : { type: 'detach', deviceId: payload.DeviceID };
311
+ this._forEachEventStream((stream) => stream.push(event));
312
+ }
313
+ }
314
+ /**
315
+ * Closes the connection once a listen() stream stops, since usbmuxd cannot unsubscribe it.
316
+ * Runs in the background, so a failure is logged rather than thrown.
317
+ * @private
318
+ */
319
+ _closeAfterListen() {
320
+ this.close().catch((err) => {
321
+ log.warn(`Failed to close usbmux connection after listen() stopped: ${err.message}`);
322
+ });
323
+ }
324
+ /**
325
+ * Runs `fn` for every active listen() stream. Iterates over a snapshot, since stopping a
326
+ * stream removes it from the set.
327
+ * @param fn - Callback invoked with each stream
328
+ * @private
329
+ */
330
+ _forEachEventStream(fn) {
331
+ for (const stream of [...this._eventStreams]) {
332
+ fn(stream);
227
333
  }
228
334
  }
229
335
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/usbmux/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/usbmux/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import AfcService from './services/ios/afc/index.js';
4
4
  import { AmfiService } from './services/ios/amfi/index.js';
5
5
  import { AppService } from './services/ios/app-service/index.js';
6
6
  import { type Service } from './services/ios/base-service.js';
7
+ import { CompanionProxyService } from './services/ios/companion-proxy/index.js';
7
8
  import { ConfigurationService } from './services/ios/configuration/index.js';
8
9
  import { CrashReportsService } from './services/ios/crash-reports/index.js';
9
10
  import { DeviceControlService } from './services/ios/device-control/index.js';
@@ -28,6 +29,10 @@ export { getAvailableDevices, getTunnelForDevice } from './lib/tunnel/tunnel-ava
28
29
  * Start the diagnostics service for the given device UDID.
29
30
  */
30
31
  export declare function startDiagnosticsService(udid: string): Promise<DiagnosticsService>;
32
+ /**
33
+ * Start the companion proxy service for the given device UDID.
34
+ */
35
+ export declare function startCompanionProxyService(udid: string): Promise<CompanionProxyService>;
31
36
  /**
32
37
  * Start the notification proxy service for the given device UDID.
33
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { AccessibilityAuditService } from './services/ios/accessibility-audit/in
3
3
  import AfcService from './services/ios/afc/index.js';
4
4
  import { AmfiService } from './services/ios/amfi/index.js';
5
5
  import { AppService } from './services/ios/app-service/index.js';
6
+ import { CompanionProxyService } from './services/ios/companion-proxy/index.js';
6
7
  import { ConfigurationService } from './services/ios/configuration/index.js';
7
8
  import { CrashReportsService } from './services/ios/crash-reports/index.js';
8
9
  import { DeviceControlService } from './services/ios/device-control/index.js';
@@ -45,6 +46,13 @@ export async function startDiagnosticsService(udid) {
45
46
  await requireCatalogService(udid, DiagnosticsService.RSD_SERVICE_NAME);
46
47
  return new DiagnosticsService(udid);
47
48
  }
49
+ /**
50
+ * Start the companion proxy service for the given device UDID.
51
+ */
52
+ export async function startCompanionProxyService(udid) {
53
+ await requireCatalogService(udid, CompanionProxyService.RSD_SERVICE_NAME);
54
+ return new CompanionProxyService(udid);
55
+ }
48
56
  /**
49
57
  * Start the notification proxy service for the given device UDID.
50
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAC,yBAAyB,EAAC,MAAM,6CAA6C,CAAC;AACtF,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAC,2BAA2B,EAAC,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAC,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAC,kBAAkB,EAAC,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAC,gBAAgB,EAAC,MAAM,qDAAqD,CAAC;AACrF,OAAO,EAAC,UAAU,EAAC,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAC,QAAQ,EAAC,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAC,UAAU,EAAC,MAAM,8CAA8C,CAAC;AACxE,OAAO,EAAC,SAAS,EAAC,MAAM,6CAA6C,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,yBAAyB,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAC/E,OAAO,aAAa,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAC,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAE5F,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACxD,MAAM,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACvE,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,IAAY;IAC9D,MAAM,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC7E,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY;IACzD,MAAM,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACxE,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,IAAY;IAC/D,MAAM,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC9E,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACxD,MAAM,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACvE,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACpE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAY;IAC3D,MAAM,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC1E,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChE,MAAM,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC9E,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY;IACtD,MAAM,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACrE,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/D,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY;IACvD,MAAM,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAY;IAC3D,MAAM,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC1E,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,IAAY;IAC/D,MAAM,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC9E,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAY;IAC1D,MAAM,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACzE,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAY;IAC1D,MAAM,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACzE,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,MAAM,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACnE,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,8BAA8B,GAAG,sCAAsC,CAAC;AAC9E,MAAM,4BAA4B,GAAG,oCAAoC,CAAC;AAQ1E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,qBAAqB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;IAClE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY;IAEZ,OAAO,0BAA0B,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY;IAEZ,OAAO,0BAA0B,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/D,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY;IACvD,MAAM,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY;IACzD,MAAM,sBAAsB,CAAC,IAAI,EAAE;QACjC,mBAAmB,CAAC,oBAAoB;QACxC,mBAAmB,CAAC,oBAAoB;KACzC,CAAC,CAAC;IACH,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACxD,MAAM,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACvE,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,IAAY;IAC9D,MAAM,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC7E,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY;IACzD,MAAM,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACxE,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,qBAAqB,CAAC,IAAI,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAEhF,MAAM,UAAU,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAE3B,OAAO;QACL,UAAU;QACV,kBAAkB,EAAE,IAAI,kBAAkB,CAAC,UAAU,CAAC;QACtD,gBAAgB,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC;QAClD,UAAU,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;QACtC,UAAU,EAAE,IAAI,kBAAkB,CAAC,UAAU,CAAC;QAC9C,QAAQ,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;QACtC,YAAY,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC;QAC3C,cAAc,EAAE,IAAI,cAAc,CAAC,UAAU,CAAC;QAC9C,cAAc,EAAE,IAAI,cAAc,CAAC,UAAU,CAAC;QAC9C,SAAS,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC;QACpC,aAAa,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC;QAC5C,gBAAgB,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY;IACzD,MAAM,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IAE/E,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC;IACpC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAoC;IAC1F,MAAM,YAAY,GAAG,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IACjH,IAAI,OAAO,EAAE,wBAAwB,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,sBAAsB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEjD,IAAI,gBAAgB,GAAsC,IAAI,CAAC;IAC/D,IAAI,mBAAmB,GAAsC,IAAI,CAAC;IAClE,IAAI,UAAU,GAAuC,IAAI,CAAC;IAC1D,IAAI,iBAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAEjC,mBAAmB,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC;QAEpC,UAAU,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAE3B,IAAI,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACtC,iBAAiB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iBAAiB,EAAE,KAAK,EAAE,CAAC;QAC3B,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,mBAAmB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnD,MAAM,gBAAgB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,gBAAgB;QAChB,mBAAmB;QACnB,UAAU;QACV,cAAc;QACd,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,WAAmB;IACpE,MAAM,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAC,MAAM,EAAE,eAAe,EAAC,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,YAAsB;IACxE,MAAM,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE;QAClD,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,IAAY,EACZ,WAAmB;IAEnB,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE;QAC3D,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;IACH,OAAO;QACL,aAAa,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC;QACtC,iBAAiB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "5.20.4",
3
+ "version": "5.22.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "bugs": {
@@ -48,6 +48,7 @@
48
48
  "test:all": "node --enable-source-maps --experimental-test-module-mocks --test --test-timeout=60000 \"build/test/unit/**/*.spec.js\" \"build/test/integration/**/*.spec.js\"",
49
49
  "test:app-service": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/app-service.spec.js\"",
50
50
  "test:accessibility-audit": "node --enable-source-maps --test --test-timeout=300000 \"build/test/integration/accessibility-audit.spec.js\"",
51
+ "test:companion-proxy": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/companion-proxy.spec.js\"",
51
52
  "test:coredevice-device-info": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/device-info-coredevice.spec.js\"",
52
53
  "test:device-control": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/device-control.spec.js\"",
53
54
  "test:configuration": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/configuration.spec.js\"",
package/src/index.ts CHANGED
@@ -16,6 +16,7 @@ import * as Services from './services.js';
16
16
  import {startCoreDeviceProxyTcp} from './services/ios/tunnel-service/index.js';
17
17
 
18
18
  export type {Device as UsbmuxDevice} from './lib/usbmux/index.js';
19
+ export type {UsbmuxAttachEvent, UsbmuxDetachEvent, UsbmuxDeviceEvent} from './lib/usbmux/index.js';
19
20
  export type {
20
21
  DevicePortForwarderEvents,
21
22
  DevicePortForwarderOptions,
@@ -0,0 +1,150 @@
1
+ import type {Device} from './index.js';
2
+
3
+ /**
4
+ * Emitted by {@link Usbmux.listen} when a device is plugged in (or an already-connected
5
+ * device is reported for the first time after the Listen request is acknowledged).
6
+ */
7
+ export interface UsbmuxAttachEvent {
8
+ type: 'attach';
9
+ device: Device;
10
+ }
11
+
12
+ /**
13
+ * Emitted by {@link Usbmux.listen} when a device is unplugged. usbmuxd's `Detached`
14
+ * message only carries the numeric `DeviceID`, not the device's properties.
15
+ */
16
+ export interface UsbmuxDetachEvent {
17
+ type: 'detach';
18
+ deviceId: number;
19
+ }
20
+
21
+ export type UsbmuxDeviceEvent = UsbmuxAttachEvent | UsbmuxDetachEvent;
22
+
23
+ /**
24
+ * Called exactly once when a {@link UsbmuxDeviceEventStream} stops, so its owner can unregister it.
25
+ */
26
+ export type UsbmuxDeviceEventStreamStopHandler = (stream: UsbmuxDeviceEventStream) => void;
27
+
28
+ /**
29
+ * Async-iterable queue of usbmuxd device notifications for a single `Listen` subscription.
30
+ *
31
+ * The owning {@link Usbmux} instance feeds it via {@link push} / {@link fail}; consumers
32
+ * drain it with `for await`. Events that arrive while no consumer is waiting are buffered.
33
+ * Once the stream stops (via {@link stop}, {@link fail} or the abort signal), already-buffered
34
+ * events are still delivered first; only then does iteration end, or reject after `fail()`.
35
+ * `return()` (e.g. `break` in `for await`) ends iteration immediately and discards the buffer.
36
+ */
37
+ export class UsbmuxDeviceEventStream implements AsyncIterableIterator<UsbmuxDeviceEvent> {
38
+ private readonly queue: UsbmuxDeviceEvent[] = [];
39
+ private readonly waiters: (() => void)[] = [];
40
+ private isStopped = false;
41
+ private failure: Error | null = null;
42
+ private readonly onAbort = () => this.stop();
43
+
44
+ /**
45
+ * @param onStop - Invoked exactly once when the stream stops
46
+ * @param signal - When aborted, stops the stream
47
+ */
48
+ constructor(
49
+ private readonly onStop: UsbmuxDeviceEventStreamStopHandler,
50
+ private readonly signal?: AbortSignal,
51
+ ) {
52
+ if (signal?.aborted) {
53
+ this.isStopped = true;
54
+ } else {
55
+ signal?.addEventListener('abort', this.onAbort);
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Whether the stream has stopped accepting events.
61
+ */
62
+ get stopped(): boolean {
63
+ return this.isStopped;
64
+ }
65
+
66
+ /**
67
+ * Enqueues an event for the consumer. Ignored once the stream has stopped.
68
+ * @param event - Device event to deliver
69
+ */
70
+ push(event: UsbmuxDeviceEvent): void {
71
+ if (this.isStopped) {
72
+ return;
73
+ }
74
+ this.queue.push(event);
75
+ this.notifyWaiters();
76
+ }
77
+
78
+ /**
79
+ * Stops the stream and makes the next `next()` call reject with `err`.
80
+ * @param err - Error to surface to the consumer
81
+ */
82
+ fail(err: Error): void {
83
+ if (this.isStopped) {
84
+ return;
85
+ }
86
+ this.failure = err;
87
+ this.stop();
88
+ }
89
+
90
+ /**
91
+ * Stops the stream. Idempotent.
92
+ */
93
+ stop(): void {
94
+ if (this.isStopped) {
95
+ return;
96
+ }
97
+ this.isStopped = true;
98
+ this.signal?.removeEventListener('abort', this.onAbort);
99
+ this.onStop(this);
100
+ this.notifyWaiters();
101
+ }
102
+
103
+ /**
104
+ * Resolves with the next buffered event, waiting for one if necessary. Concurrent calls are
105
+ * each resolved in turn.
106
+ * @returns The next event, or `done` once the stream has stopped and drained
107
+ * @throws The error passed to {@link fail}, once all buffered events have been delivered
108
+ */
109
+ async next(): Promise<IteratorResult<UsbmuxDeviceEvent>> {
110
+ while (this.queue.length === 0 && !this.isStopped) {
111
+ await new Promise<void>((resolve) => {
112
+ this.waiters.push(resolve);
113
+ });
114
+ }
115
+ const event = this.queue.shift();
116
+ if (event) {
117
+ return {done: false, value: event};
118
+ }
119
+ if (this.failure) {
120
+ const err = this.failure;
121
+ this.failure = null;
122
+ throw err;
123
+ }
124
+ return {done: true, value: undefined};
125
+ }
126
+
127
+ /**
128
+ * Stops the stream and discards buffered events. Called by `break`/`return` in `for await`.
129
+ * @returns A `done` iterator result
130
+ */
131
+ async return(): Promise<IteratorResult<UsbmuxDeviceEvent>> {
132
+ this.stop();
133
+ this.queue.length = 0;
134
+ this.failure = null;
135
+ return {done: true, value: undefined};
136
+ }
137
+
138
+ /**
139
+ * @returns This stream, which is its own iterator
140
+ */
141
+ [Symbol.asyncIterator](): AsyncIterableIterator<UsbmuxDeviceEvent> {
142
+ return this;
143
+ }
144
+
145
+ private notifyWaiters(): void {
146
+ for (const wake of this.waiters.splice(0)) {
147
+ wake();
148
+ }
149
+ }
150
+ }
@@ -10,6 +10,7 @@ import {parsePlist} from '../plist/index.js';
10
10
  import type {PlistDictionary} from '../types.js';
11
11
  import {type DecodedUsbmux, UsbmuxDecoder} from '../usbmux/usbmux-decoder.js';
12
12
  import {UsbmuxEncoder} from '../usbmux/usbmux-encoder.js';
13
+ import {type UsbmuxDeviceEvent, UsbmuxDeviceEventStream} from './device-event-stream.js';
13
14
  import {prioritizeUsbOverNetworkForDuplicateUdids} from './utils.js';
14
15
 
15
16
  /**
@@ -34,6 +35,8 @@ export interface Device {
34
35
  Properties: DeviceProperties;
35
36
  }
36
37
 
38
+ export type {UsbmuxAttachEvent, UsbmuxDetachEvent, UsbmuxDeviceEvent} from './device-event-stream.js';
39
+
37
40
  const log = getLogger('Usbmux');
38
41
 
39
42
  export const USBMUXD_PORT = 27015;
@@ -62,6 +65,15 @@ export interface SocketOptions {
62
65
  timeout?: number;
63
66
  }
64
67
 
68
+ /**
69
+ * The decoder only casts the parsed plist, so its root is not guaranteed to be a dictionary.
70
+ */
71
+ function asPlistDictionary(value: unknown): PlistDictionary | null {
72
+ return value && typeof value === 'object' && !Array.isArray(value) && !Buffer.isBuffer(value)
73
+ ? (value as PlistDictionary)
74
+ : null;
75
+ }
76
+
65
77
  /**
66
78
  * usbmux class for communicating with usbmuxd
67
79
  */
@@ -70,6 +82,8 @@ export class Usbmux extends BaseSocketService {
70
82
  private readonly _encoder: UsbmuxEncoder;
71
83
  private _tag: number;
72
84
  private readonly _responseCallbacks: Record<number, (data: DecodedUsbmux) => void>;
85
+ private readonly _eventStreams = new Set<UsbmuxDeviceEventStream>();
86
+ private _closePromise: Promise<void> | null = null;
73
87
 
74
88
  /**
75
89
  * Creates a new usbmux instance
@@ -91,6 +105,11 @@ export class Usbmux extends BaseSocketService {
91
105
  this._tag = 0;
92
106
  this._responseCallbacks = {};
93
107
  this._decoder.on('data', this._handleData.bind(this));
108
+ // Unless close() already stopped them, surface a dropped connection (e.g. usbmuxd restarting)
109
+ // to listen() consumers instead of leaving them waiting forever
110
+ this._socketClient.on('close', () => {
111
+ this._forEachEventStream((stream) => stream.fail(new Error('usbmuxd connection closed')));
112
+ });
94
113
 
95
114
  this.on('error', (err: Error) => {
96
115
  log.error(`Usbmux socket error: ${err.message}`);
@@ -196,6 +215,61 @@ export class Usbmux extends BaseSocketService {
196
215
  return devices.find((device) => device.Properties.SerialNumber.toLowerCase() === udid.toLowerCase());
197
216
  }
198
217
 
218
+ /**
219
+ * Subscribes to usbmuxd's `Listen` notifications, yielding one event per device
220
+ * attach/detach for as long as this connection stays open. usbmuxd immediately reports
221
+ * every already-connected device as an attach event once the request is acknowledged.
222
+ *
223
+ * usbmuxd has no way to unsubscribe, so listening takes over the connection: only one
224
+ * listen() is allowed per connection, and the connection is closed once iteration stops
225
+ * (`break`, `return`, an aborted `signal`, or calling {@link close}). If the connection drops
226
+ * (e.g. usbmuxd restarts), iteration rejects after delivering any already-received events,
227
+ * so the caller can resubscribe on a new connection.
228
+ *
229
+ * @param opts.signal - When aborted, ends the iteration
230
+ * @returns Async iterable of attach/detach events
231
+ * @throws If the connection is already closed or already has an active listen()
232
+ */
233
+ listen(opts: {signal?: AbortSignal} = {}): AsyncIterableIterator<UsbmuxDeviceEvent> {
234
+ if (this._closePromise || this._socketClient.destroyed || this._socketClient.writableEnded) {
235
+ throw new Error('Cannot listen on a closed usbmuxd connection');
236
+ }
237
+ if (this._eventStreams.size > 0) {
238
+ throw new Error('listen() is already active on this usbmuxd connection; use a separate connection');
239
+ }
240
+
241
+ const tag = this._tag++;
242
+ const stream = new UsbmuxDeviceEventStream((s) => {
243
+ delete this._responseCallbacks[tag];
244
+ this._eventStreams.delete(s);
245
+ this._closeAfterListen();
246
+ }, opts.signal);
247
+ if (stream.stopped) {
248
+ this._closeAfterListen();
249
+ return stream;
250
+ }
251
+ this._eventStreams.add(stream);
252
+
253
+ this._responseCallbacks[tag] = (data) => {
254
+ delete this._responseCallbacks[tag];
255
+ const payload = asPlistDictionary(data.payload);
256
+ if (payload?.MessageType !== 'Result' || payload.Number !== USBMUX_RESULT.OK) {
257
+ stream.fail(new Error(`Listen request failed: ${JSON.stringify(data.payload)}`));
258
+ }
259
+ };
260
+
261
+ this._sendPlist({
262
+ tag,
263
+ payload: {
264
+ MessageType: 'Listen',
265
+ ProgName: PROG_NAME,
266
+ ClientVersionString: CLIENT_VERSION_STRING,
267
+ },
268
+ });
269
+
270
+ return stream;
271
+ }
272
+
199
273
  /**
200
274
  * Connects to a certain port on the device
201
275
  * @param deviceID - Device ID
@@ -253,6 +327,15 @@ export class Usbmux extends BaseSocketService {
253
327
  * @returns Promise that resolves when the socket is closed.
254
328
  */
255
329
  close(): Promise<void> {
330
+ // Memoized: a stopping listen() stream also closes the connection, and ending the socket
331
+ // twice would fail the second caller
332
+ this._closePromise ??= this._closeSocket();
333
+ return this._closePromise;
334
+ }
335
+
336
+ private _closeSocket(): Promise<void> {
337
+ this._forEachEventStream((stream) => stream.stop());
338
+
256
339
  return new Promise((resolve, reject) => {
257
340
  // If the socket is still open, end it gracefully.
258
341
  if (!this._socketClient.destroyed) {
@@ -283,6 +366,43 @@ export class Usbmux extends BaseSocketService {
283
366
  const handler = this._responseCallbacks[data.header.tag];
284
367
  if (handler) {
285
368
  handler(data);
369
+ return;
370
+ }
371
+
372
+ // Listen notifications arrive unsolicited with tag 0, not the Listen request's tag, so only
373
+ // frames no pending request is waiting for are treated as such. (Before the plist parser fix
374
+ // in v5.14.5, a ListDevices reply also exposed its entries' MessageType 'Attached' at the top
375
+ // level; checking pending requests first keeps replies from ever being mistaken for events.)
376
+ const payload = asPlistDictionary(data.payload);
377
+ if (payload?.MessageType === 'Attached' || payload?.MessageType === 'Detached') {
378
+ const event: UsbmuxDeviceEvent =
379
+ payload.MessageType === 'Attached'
380
+ ? {type: 'attach', device: payload as unknown as Device}
381
+ : {type: 'detach', deviceId: payload.DeviceID as number};
382
+ this._forEachEventStream((stream) => stream.push(event));
383
+ }
384
+ }
385
+
386
+ /**
387
+ * Closes the connection once a listen() stream stops, since usbmuxd cannot unsubscribe it.
388
+ * Runs in the background, so a failure is logged rather than thrown.
389
+ * @private
390
+ */
391
+ private _closeAfterListen(): void {
392
+ this.close().catch((err: Error) => {
393
+ log.warn(`Failed to close usbmux connection after listen() stopped: ${err.message}`);
394
+ });
395
+ }
396
+
397
+ /**
398
+ * Runs `fn` for every active listen() stream. Iterates over a snapshot, since stopping a
399
+ * stream removes it from the set.
400
+ * @param fn - Callback invoked with each stream
401
+ * @private
402
+ */
403
+ private _forEachEventStream(fn: (stream: UsbmuxDeviceEventStream) => void): void {
404
+ for (const stream of [...this._eventStreams]) {
405
+ fn(stream);
286
406
  }
287
407
  }
288
408
 
package/src/services.ts CHANGED
@@ -9,6 +9,7 @@ import AfcService from './services/ios/afc/index.js';
9
9
  import {AmfiService} from './services/ios/amfi/index.js';
10
10
  import {AppService} from './services/ios/app-service/index.js';
11
11
  import {type Service} from './services/ios/base-service.js';
12
+ import {CompanionProxyService} from './services/ios/companion-proxy/index.js';
12
13
  import {ConfigurationService} from './services/ios/configuration/index.js';
13
14
  import {CrashReportsService} from './services/ios/crash-reports/index.js';
14
15
  import {DeviceControlService} from './services/ios/device-control/index.js';
@@ -55,6 +56,14 @@ export async function startDiagnosticsService(udid: string): Promise<Diagnostics
55
56
  return new DiagnosticsService(udid);
56
57
  }
57
58
 
59
+ /**
60
+ * Start the companion proxy service for the given device UDID.
61
+ */
62
+ export async function startCompanionProxyService(udid: string): Promise<CompanionProxyService> {
63
+ await requireCatalogService(udid, CompanionProxyService.RSD_SERVICE_NAME);
64
+ return new CompanionProxyService(udid);
65
+ }
66
+
58
67
  /**
59
68
  * Start the notification proxy service for the given device UDID.
60
69
  */