appium-ios-remotexpc 5.22.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +14 -0
  3. package/build/src/lib/plist/length-based-splitter.d.ts +6 -0
  4. package/build/src/lib/plist/length-based-splitter.d.ts.map +1 -1
  5. package/build/src/lib/plist/length-based-splitter.js +12 -2
  6. package/build/src/lib/plist/length-based-splitter.js.map +1 -1
  7. package/build/src/lib/plist/plist-service.d.ts +15 -0
  8. package/build/src/lib/plist/plist-service.d.ts.map +1 -1
  9. package/build/src/lib/plist/plist-service.js +34 -0
  10. package/build/src/lib/plist/plist-service.js.map +1 -1
  11. package/build/src/service-connection.d.ts +5 -0
  12. package/build/src/service-connection.d.ts.map +1 -1
  13. package/build/src/service-connection.js +7 -0
  14. package/build/src/service-connection.js.map +1 -1
  15. package/build/src/services/ios/afc/codec.js +3 -0
  16. package/build/src/services/ios/afc/codec.js.map +1 -1
  17. package/build/src/services/ios/configuration/index.d.ts +6 -2
  18. package/build/src/services/ios/configuration/index.d.ts.map +1 -1
  19. package/build/src/services/ios/configuration/index.js +10 -1
  20. package/build/src/services/ios/configuration/index.js.map +1 -1
  21. package/build/src/services/ios/house-arrest/index.d.ts.map +1 -1
  22. package/build/src/services/ios/house-arrest/index.js +3 -1
  23. package/build/src/services/ios/house-arrest/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/scripts/tunnel-creation.mjs +284 -5
  26. package/src/lib/plist/length-based-splitter.ts +14 -2
  27. package/src/lib/plist/plist-service.ts +37 -0
  28. package/src/service-connection.ts +8 -0
  29. package/src/services/ios/afc/codec.ts +3 -0
  30. package/src/services/ios/configuration/index.ts +10 -1
  31. package/src/services/ios/house-arrest/index.ts +3 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [5.23.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.22.1...v5.23.0) (2026-10-01)
2
+
3
+ ### Features
4
+
5
+ * **tunnel-creation:** add opt-in --watch-devices hot-plug handling ([#337](https://github.com/appium/appium-ios-remotexpc/issues/337)) ([eb7c885](https://github.com/appium/appium-ios-remotexpc/commit/eb7c885adaea2c7dc37f56b7a9151ac06541a298)), closes [Usbmux#_eventStreams](https://github.com/appium/Usbmux/issues/_eventStreams)
6
+
7
+ ## [5.22.1](https://github.com/appium/appium-ios-remotexpc/compare/v5.22.0...v5.22.1) (2026-09-25)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **house-arrest:** detach the plist pipeline before handing the socket to AFC ([#339](https://github.com/appium/appium-ios-remotexpc/issues/339)) ([df9d605](https://github.com/appium/appium-ios-remotexpc/commit/df9d6055cd33d5c7ad24db61c91ba341e52bf93e))
12
+
1
13
  ## [5.22.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.21.0...v5.22.0) (2026-09-23)
2
14
 
3
15
  ### Features
package/README.md CHANGED
@@ -218,6 +218,20 @@ CLI helpers under `scripts/` are ESM (`.mjs`) and load the library via the packa
218
218
 
219
219
  - `npm run tunnel-creation` — Create USB tunnels and start the tunnel registry HTTP API (requires `sudo`)
220
220
  - `npm run tunnel-creation -- --keep-open` — Same as above with `--keep-open` (for inspecting open sockets)
221
+ - `npm run tunnel-creation -- --watch-devices` — Keep running after startup, creating tunnels for devices attached later and removing detached ones (usbmux-visible devices only). Combine with `--udid` to watch a single device — startup then waits for it instead of requiring it to already be connected. Devices attached while watching use the same `--reconnect-retries` policy as devices found at startup; `--keep-open` applies independently.
222
+
223
+ `--watch-devices` combined with the other `tunnel-creation` flags:
224
+
225
+ | `--watch-devices` | `--reconnect-retries` | `--udid` | Behavior |
226
+ | ----------------- | --------------------- | -------- | -------- |
227
+ | off | off | any | Unchanged: devices are listed once at startup. A device attached later, or one whose tunnel drops, is not picked up until the script restarts. With `--udid`, exits with an error if that device isn't connected. |
228
+ | off | on | any | Unchanged: a dropped tunnel is retried up to N times (0 = unlimited). Detaching a device does not stop the retries. |
229
+ | on | off | none | Tunnels for all devices at startup, then for every device attached later. Detached devices lose their tunnel and registry entry. A dropped tunnel is not retried; unplugging and re-plugging the device creates a new one. |
230
+ | on | on | none | As above, and dropped tunnels are retried. Retries for a device stop as soon as it detaches. An attach during a retry is ignored; the retry loop picks the device up on its next attempt. |
231
+ | on | off | set | As "on / off / none", but only that UDID is watched (matched case-insensitively). Startup waits for it to attach instead of exiting if it isn't connected. |
232
+ | on | on | set | As "on / on / none", restricted to that UDID, with the same wait-at-startup behavior. |
233
+
234
+ In every `--watch-devices` row, if usbmuxd restarts the watcher resubscribes and removes devices that were unplugged in the meantime. `--keep-open` applies independently.
221
235
  - `npm run pair-appletv` — Pair an Apple TV over WiFi for Remote XPC (requires `sudo`)
222
236
  - `npm run start-appletv-tunnel` — Start an Apple TV WiFi tunnel and tunnel registry (requires `sudo`)
223
237
 
@@ -14,6 +14,7 @@ export interface LengthBasedSplitterOptions {
14
14
  * Splits incoming data into length-prefixed chunks
15
15
  */
16
16
  export declare class LengthBasedSplitter extends Transform {
17
+ private static readonly EMPTY;
17
18
  private buffer;
18
19
  private readonly littleEndian;
19
20
  private readonly maxFrameLength;
@@ -30,6 +31,11 @@ export declare class LengthBasedSplitter extends Transform {
30
31
  * Shutdown the splitter and remove all listeners
31
32
  */
32
33
  shutdown(): void;
34
+ /**
35
+ * Returns the bytes received but not yet emitted as a complete frame, and
36
+ * forgets them.
37
+ */
38
+ takeBufferedData(): Buffer;
33
39
  _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
34
40
  /**
35
41
  * Process data as XML
@@ -1 +1 @@
1
- {"version":3,"file":"length-based-splitter.d.ts","sourceRoot":"","sources":["../../../../src/lib/plist/length-based-splitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,iBAAiB,EAAC,MAAM,aAAa,CAAC;AA2B9D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;OAGG;gBACS,OAAO,GAAE,0BAA+B;IAepD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAwBtF;;OAEG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6E1B"}
1
+ {"version":3,"file":"length-based-splitter.d.ts","sourceRoot":"","sources":["../../../../src/lib/plist/length-based-splitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,iBAAiB,EAAC,MAAM,aAAa,CAAC;AA2B9D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEhD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;OAGG;gBACS,OAAO,GAAE,0BAA+B;IAepD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAM1B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAwBtF;;OAEG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6E1B"}
@@ -13,6 +13,7 @@ const MAX_PREVIEW_LENGTH = 100; // Maximum number of bytes to preview for conten
13
13
  * Splits incoming data into length-prefixed chunks
14
14
  */
15
15
  export class LengthBasedSplitter extends Transform {
16
+ static EMPTY = Buffer.alloc(0);
16
17
  buffer;
17
18
  littleEndian;
18
19
  maxFrameLength;
@@ -26,7 +27,7 @@ export class LengthBasedSplitter extends Transform {
26
27
  */
27
28
  constructor(options = {}) {
28
29
  super();
29
- this.buffer = Buffer.alloc(0);
30
+ this.buffer = LengthBasedSplitter.EMPTY;
30
31
  this.littleEndian = options.littleEndian ?? false;
31
32
  this.maxFrameLength = options.maxFrameLength ?? DEFAULT_MAX_FRAME_LENGTH;
32
33
  this.lengthFieldOffset = options.lengthFieldOffset ?? DEFAULT_LENGTH_FIELD_OFFSET;
@@ -42,11 +43,20 @@ export class LengthBasedSplitter extends Transform {
42
43
  */
43
44
  shutdown() {
44
45
  // Reset internal state
45
- this.buffer = Buffer.alloc(0);
46
+ this.buffer = LengthBasedSplitter.EMPTY;
46
47
  this.isXmlMode = false;
47
48
  // Remove all listeners
48
49
  this.removeAllListeners();
49
50
  }
51
+ /**
52
+ * Returns the bytes received but not yet emitted as a complete frame, and
53
+ * forgets them.
54
+ */
55
+ takeBufferedData() {
56
+ const data = this.buffer;
57
+ this.buffer = LengthBasedSplitter.EMPTY;
58
+ return data;
59
+ }
50
60
  _transform(chunk, encoding, callback) {
51
61
  try {
52
62
  // Add the new chunk to our buffer
@@ -1 +1 @@
1
- {"version":3,"file":"length-based-splitter.js","sourceRoot":"","sources":["../../../../src/lib/plist/length-based-splitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"length-based-splitter.js","sourceRoot":"","sources":["../../../../src/lib/plist/length-based-splitter.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,21 @@ export declare class PlistService {
65
65
  * @throws Error if the timeout is reached, or if close() is called before a message arrives
66
66
  */
67
67
  receivePlist(timeout?: number): Promise<PlistMessage>;
68
+ /**
69
+ * Stops exchanging plist messages on the socket and returns it, so another
70
+ * protocol can take over the same connection (e.g. AFC after a House Arrest
71
+ * vend).
72
+ *
73
+ * The socket is unpiped from the plist transformers, so they no longer
74
+ * consume its data, and any bytes they buffered are put back into it. Pending
75
+ * receives are rejected. The socket is returned paused, so no data is lost
76
+ * before the new owner attaches its reader; the new owner must `resume()` it
77
+ * after that, since adding a `'data'` listener does not resume an explicitly
78
+ * paused stream.
79
+ *
80
+ * @returns The paused socket, ready to be read by the new owner
81
+ */
82
+ detachSocket(): Socket | TLSSocket;
68
83
  /**
69
84
  * Close the connection and clean up resources
70
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plist-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/plist/plist-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,UAAU,CAAC;AAGxC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAYjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,KAAK,YAAY,GAAG,eAAe,CAAC;AAQpC;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,IAAI;IAKxC;;OAEG;IACH,MAAM,CAAC,0BAA0B,IAAI,IAAI;IAIzC;;;OAGG;IACH,MAAM,CAAC,4BAA4B,IAAI,OAAO;IAI9C;;;OAGG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAGtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IA8B7D;;;;;OAKG;IACU,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAK3F;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAO1C;;;;;OAKG;IACU,YAAY,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBhE;;OAEG;IACI,KAAK,IAAI,IAAI;IAmCpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAapB"}
1
+ {"version":3,"file":"plist-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/plist/plist-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,UAAU,CAAC;AAGxC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAYjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,KAAK,YAAY,GAAG,eAAe,CAAC;AAQpC;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,IAAI;IAKxC;;OAEG;IACH,MAAM,CAAC,0BAA0B,IAAI,IAAI;IAIzC;;;OAGG;IACH,MAAM,CAAC,4BAA4B,IAAI,OAAO;IAI9C;;;OAGG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAGtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IA8B7D;;;;;OAKG;IACU,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAK3F;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAO1C;;;;;OAKG;IACU,YAAY,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBhE;;;;;;;;;;;;;OAaG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;IAuBzC;;OAEG;IACI,KAAK,IAAI,IAAI;IAmCpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAapB"}
@@ -121,6 +121,40 @@ export class PlistService {
121
121
  this._waiters.push(waiter);
122
122
  });
123
123
  }
124
+ /**
125
+ * Stops exchanging plist messages on the socket and returns it, so another
126
+ * protocol can take over the same connection (e.g. AFC after a House Arrest
127
+ * vend).
128
+ *
129
+ * The socket is unpiped from the plist transformers, so they no longer
130
+ * consume its data, and any bytes they buffered are put back into it. Pending
131
+ * receives are rejected. The socket is returned paused, so no data is lost
132
+ * before the new owner attaches its reader; the new owner must `resume()` it
133
+ * after that, since adding a `'data'` listener does not resume an explicitly
134
+ * paused stream.
135
+ *
136
+ * @returns The paused socket, ready to be read by the new owner
137
+ */
138
+ detachSocket() {
139
+ // Unpipe before removing listeners: the pipes' own 'unpipe' handlers take
140
+ // their 'data' listener off the socket, which would otherwise keep feeding
141
+ // every byte into the splitter
142
+ this._socket.unpipe(this._splitter);
143
+ this._splitter.unpipe(this._decoder);
144
+ this._encoder.unpipe(this._socket);
145
+ this._splitter.removeAllListeners();
146
+ this._decoder.removeAllListeners();
147
+ this._messageQueue = [];
148
+ for (const waiter of this._waiters.splice(0)) {
149
+ clearTimeout(waiter.timeoutId);
150
+ waiter.reject(new Error('The socket was detached while waiting for a plist response'));
151
+ }
152
+ const bufferedData = this._splitter.takeBufferedData();
153
+ if (bufferedData.length > 0) {
154
+ this._socket.unshift(bufferedData);
155
+ }
156
+ return this._socket;
157
+ }
124
158
  /**
125
159
  * Close the connection and clean up resources
126
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plist-service.js","sourceRoot":"","sources":["../../../../src/lib/plist/plist-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plist-service.js","sourceRoot":"","sources":["../../../../src/lib/plist/plist-service.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,11 @@ export declare class ServiceConnection extends BasePlistService {
31
31
  * @returns The socket used by this service
32
32
  */
33
33
  getSocket(): net.Socket;
34
+ /**
35
+ * Stops exchanging plist messages and returns the socket for another protocol
36
+ * to take over (see {@link PlistService.detachSocket}).
37
+ */
38
+ detachSocket(): net.Socket;
34
39
  /**
35
40
  * Closes the connection
36
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service-connection.d.ts","sourceRoot":"","sources":["../../src/service-connection.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAIlE;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxF;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIzC;;;OAGG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"service-connection.d.ts","sourceRoot":"","sources":["../../src/service-connection.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAIlE;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxF;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIzC;;;OAGG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM;IAIvB;;;OAGG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,iBAAiB,CAAC"}
@@ -49,6 +49,13 @@ export class ServiceConnection extends BasePlistService {
49
49
  getSocket() {
50
50
  return this.getPlistService().getSocket();
51
51
  }
52
+ /**
53
+ * Stops exchanging plist messages and returns the socket for another protocol
54
+ * to take over (see {@link PlistService.detachSocket}).
55
+ */
56
+ detachSocket() {
57
+ return this.getPlistService().detachSocket();
58
+ }
52
59
  /**
53
60
  * Closes the connection
54
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service-connection.js","sourceRoot":"","sources":["../../src/service-connection.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAUzD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,MAAkB,EAAE,OAAkC;QAChE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAgB,EAChB,IAAY,EACZ,OAAkC;QAElC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAC7C,MAAM,uBAAuB,GAAG,OAAO,EAAE,uBAAuB,IAAI,KAAK,CAAC;QAE1E,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC,EAAE,GAAG,EAAE;gBAC7E,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC9C,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAA2B,EAAE,OAAO,GAAG,KAAK;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAwB;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,EAAgB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"service-connection.js","sourceRoot":"","sources":["../../src/service-connection.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAUzD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,MAAkB,EAAE,OAAkC;QAChE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAgB,EAChB,IAAY,EACZ,OAAkC;QAElC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAC7C,MAAM,uBAAuB,GAAG,OAAO,EAAE,uBAAuB,IAAI,KAAK,CAAC;QAE1E,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC,EAAE,GAAG,EAAE;gBAC7E,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC9C,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAA2B,EAAE,OAAO,GAAG,KAAK;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAwB;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,EAAgB,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,EAAgB,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
@@ -421,6 +421,9 @@ function ensureSocketState(socket) {
421
421
  socket.once('close', state.onClose);
422
422
  socket.once('end', state.onClose);
423
423
  SOCKET_STATES.set(socket, state);
424
+ // A socket handed over by another protocol (e.g. House Arrest) arrives paused,
425
+ // and a 'data' listener alone does not resume an explicitly paused stream
426
+ socket.resume();
424
427
  return state;
425
428
  }
426
429
  //# sourceMappingURL=codec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../../../src/services/ios/afc/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../../../src/services/ios/afc/codec.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,13 @@ import { type CoreDeviceInvokeOptions, CoreDeviceService } from '../core-device/
8
8
  export type UserInterfaceStyle = 'dark' | 'light' | (string & {});
9
9
  /**
10
10
  * Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
11
- * action. These are the seven standard sizes.
11
+ * action, from smallest to largest: the seven standard sizes followed by the five
12
+ * accessibility sizes. The daemon only accepts an accessibility size while
13
+ * Settings > Accessibility > Display & Text Size > Larger Text >
14
+ * "Larger Accessibility Sizes" is enabled on the device, and fails with
15
+ * `CoreDeviceError 21063` otherwise.
12
16
  */
13
- declare const DEVICE_TEXT_SIZES: readonly ["extraSmall", "small", "medium", "large", "extraLarge", "extraExtraLarge", "extraExtraExtraLarge"];
17
+ declare const DEVICE_TEXT_SIZES: readonly ["extraSmall", "small", "medium", "large", "extraLarge", "extraExtraLarge", "extraExtraExtraLarge", "accessibilityMedium", "accessibilityLarge", "accessibilityExtraLarge", "accessibilityExtraExtraLarge", "accessibilityExtraExtraExtraLarge"];
14
18
  /** A valid Dynamic Type content-size name. See {@link DEVICE_TEXT_SIZES}. */
15
19
  export type DeviceTextSize = (typeof DEVICE_TEXT_SIZES)[number];
16
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,uBAAuB,EAAmB,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAoBvH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE;;;GAGG;AACH,QAAA,MAAM,iBAAiB,8GAQb,CAAC;AAEX,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;GAEG;AACH,QAAA,MAAM,kBAAkB,oEAAqE,CAAC;AAE9F,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACrD,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;gBAE5D,IAAI,EAAE,MAAM;IAIxB;;;;;OAKG;IACG,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS/F;;;;;OAKG;IACG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5G;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IASlG;;;OAGG;IACG,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKtF;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,qBAAqB,GAAG,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpH,uEAAuE;IACjE,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAMnG,qEAAqE;IAC/D,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnG,gDAAgD;IAC1C,eAAe,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9E,6BAA6B;IACvB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,oDAAoD;IAC9C,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,iCAAiC;IAC3B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjG,mEAAmE;IAC7D,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,gDAAgD;IAC1C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F,sDAAsD;IAChD,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpF,mCAAmC;IAC7B,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAInG,wFAAwF;YAC1E,MAAM;IAQpB,kEAAkE;YACpD,UAAU;CAIzB;AAWD,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,uBAAuB,EAAmB,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAoBvH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE;;;;;;;GAOG;AACH,QAAA,MAAM,iBAAiB,2PAab,CAAC;AAEX,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;GAEG;AACH,QAAA,MAAM,kBAAkB,oEAAqE,CAAC;AAE9F,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACrD,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;gBAE5D,IAAI,EAAE,MAAM;IAIxB;;;;;OAKG;IACG,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS/F;;;;;OAKG;IACG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5G;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IASlG;;;OAGG;IACG,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKtF;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,qBAAqB,GAAG,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpH,uEAAuE;IACjE,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAMnG,qEAAqE;IAC/D,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnG,gDAAgD;IAC1C,eAAe,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9E,6BAA6B;IACvB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,oDAAoD;IAC9C,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,iCAAiC;IAC3B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjG,mEAAmE;IAC7D,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,gDAAgD;IAC1C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F,sDAAsD;IAChD,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpF,mCAAmC;IAC7B,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAInG,wFAAwF;YAC1E,MAAM;IAQpB,kEAAkE;YACpD,UAAU;CAIzB;AAWD,eAAe,oBAAoB,CAAC"}
@@ -19,7 +19,11 @@ const ACTION = {
19
19
  };
20
20
  /**
21
21
  * Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
22
- * action. These are the seven standard sizes.
22
+ * action, from smallest to largest: the seven standard sizes followed by the five
23
+ * accessibility sizes. The daemon only accepts an accessibility size while
24
+ * Settings > Accessibility > Display & Text Size > Larger Text >
25
+ * "Larger Accessibility Sizes" is enabled on the device, and fails with
26
+ * `CoreDeviceError 21063` otherwise.
23
27
  */
24
28
  const DEVICE_TEXT_SIZES = [
25
29
  'extraSmall',
@@ -29,6 +33,11 @@ const DEVICE_TEXT_SIZES = [
29
33
  'extraLarge',
30
34
  'extraExtraLarge',
31
35
  'extraExtraExtraLarge',
36
+ 'accessibilityMedium',
37
+ 'accessibilityLarge',
38
+ 'accessibilityExtraLarge',
39
+ 'accessibilityExtraExtraLarge',
40
+ 'accessibilityExtraExtraExtraLarge',
32
41
  ];
33
42
  /**
34
43
  * Color-filter presets that enable from `filterType` alone.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAA+B,eAAe,EAAE,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAEvH,MAAM,MAAM,GAAG;IACb,wBAAwB,EAAE,mDAAmD;IAC7E,wBAAwB,EAAE,mDAAmD;IAC7E,gBAAgB,EAAE,yDAAyD;IAC3E,gBAAgB,EAAE,4CAA4C;IAC9D,gBAAgB,EAAE,4CAA4C;IAC9D,oBAAoB,EAAE,+CAA+C;IACrE,oBAAoB,EAAE,+CAA+C;IACrE,iBAAiB,EAAE,6CAA6C;IAChE,iBAAiB,EAAE,6CAA6C;IAChE,qBAAqB,EAAE,uDAAuD;IAC9E,qBAAqB,EAAE,uDAAuD;IAC9E,gBAAgB,EAAE,4CAA4C;IAC9D,gBAAgB,EAAE,4CAA4C;IAC9D,uBAAuB,EAAE,mDAAmD;IAC5E,uBAAuB,EAAE,mDAAmD;CACpE,CAAC;AAUX;;;GAGG;AACH,MAAM,iBAAiB,GAAG;IACxB,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;CACd,CAAC;AAKX;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAU,CAAC;AAwB9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IACzD,MAAM,CAAU,gBAAgB,GAAG,oCAAoC,CAAC;IAExE,YAAY,IAAY;QACtB,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,UAAmC,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,eAAe,CAAC,oDAAoD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,KAAyB,EAAE,UAAmC,EAAE;QAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,0CAA0C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAC,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,UAAmC,EAAE;QAChF,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAAC,sCAAsC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,2EAA2E;QAC3E,gDAAgD;QAChD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,UAAmC,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAC,OAAO,EAAE,KAAK,EAAC,CAAqB,CAAC;IACpF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,UAA2D,EAAE;QAClG,MAAM,EAAC,UAAU,EAAE,SAAS,EAAE,GAAG,aAAa,EAAC,GAAG,OAAO,CAAC;QAC1D,MAAM,WAAW,GAAkB,EAAC,OAAO,EAAC,CAAC;QAC7C,6EAA6E;QAC7E,oDAAoD;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,SAAS,CAAC,6BAA6B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjH,CAAC;YACD,WAAW,CAAC,UAAU,GAAG,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAC,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,iBAAiB,CAAC,UAAmC,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,iBAAiB,CAAC,IAAoB,EAAE,UAAmC,EAAE;QACjF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,eAAe,CAAC,UAAmC,EAAE;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAC,YAAY,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,mBAAmB,CAAC,UAAmC,EAAE;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,mBAAmB,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAC,gBAAgB,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,cAAc,CAAC,UAAmC,EAAE;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,qBAAqB,CAAC,UAAmC,EAAE;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,qBAAqB,CAAC,OAAgB,EAAE,UAAmC,EAAE;QACjF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAC,kBAAkB,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,MAAM,CAClB,gBAAwB,EACxB,KAAoB,EACpB,OAAgC;QAEhC,OAAO,YAAY,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,EAAC,GAAG,OAAO,EAAE,gBAAgB,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,CAAC;IAED,kEAAkE;IAC1D,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,GAAW,EAAE,OAAgC;QAC9F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,CAAC;;AAGH;;;;GAIG;AACH,SAAS,OAAO,CAA8B,MAAS,EAAE,KAAa;IACpE,OAAQ,MAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAA+B,eAAe,EAAE,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAEvH,MAAM,MAAM,GAAG;IACb,wBAAwB,EAAE,mDAAmD;IAC7E,wBAAwB,EAAE,mDAAmD;IAC7E,gBAAgB,EAAE,yDAAyD;IAC3E,gBAAgB,EAAE,4CAA4C;IAC9D,gBAAgB,EAAE,4CAA4C;IAC9D,oBAAoB,EAAE,+CAA+C;IACrE,oBAAoB,EAAE,+CAA+C;IACrE,iBAAiB,EAAE,6CAA6C;IAChE,iBAAiB,EAAE,6CAA6C;IAChE,qBAAqB,EAAE,uDAAuD;IAC9E,qBAAqB,EAAE,uDAAuD;IAC9E,gBAAgB,EAAE,4CAA4C;IAC9D,gBAAgB,EAAE,4CAA4C;IAC9D,uBAAuB,EAAE,mDAAmD;IAC5E,uBAAuB,EAAE,mDAAmD;CACpE,CAAC;AAUX;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG;IACxB,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;IACzB,8BAA8B;IAC9B,mCAAmC;CAC3B,CAAC;AAKX;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAU,CAAC;AAwB9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IACzD,MAAM,CAAU,gBAAgB,GAAG,oCAAoC,CAAC;IAExE,YAAY,IAAY;QACtB,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,UAAmC,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,eAAe,CAAC,oDAAoD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,KAAyB,EAAE,UAAmC,EAAE;QAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,0CAA0C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAC,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,UAAmC,EAAE;QAChF,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAAC,sCAAsC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,2EAA2E;QAC3E,gDAAgD;QAChD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,UAAmC,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAC,OAAO,EAAE,KAAK,EAAC,CAAqB,CAAC;IACpF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,UAA2D,EAAE;QAClG,MAAM,EAAC,UAAU,EAAE,SAAS,EAAE,GAAG,aAAa,EAAC,GAAG,OAAO,CAAC;QAC1D,MAAM,WAAW,GAAkB,EAAC,OAAO,EAAC,CAAC;QAC7C,6EAA6E;QAC7E,oDAAoD;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,SAAS,CAAC,6BAA6B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjH,CAAC;YACD,WAAW,CAAC,UAAU,GAAG,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAC,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,iBAAiB,CAAC,UAAmC,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,iBAAiB,CAAC,IAAoB,EAAE,UAAmC,EAAE;QACjF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,eAAe,CAAC,UAAmC,EAAE;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAC,YAAY,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,mBAAmB,CAAC,UAAmC,EAAE;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,mBAAmB,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAC,gBAAgB,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,cAAc,CAAC,UAAmC,EAAE;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,UAAmC,EAAE;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,qBAAqB,CAAC,UAAmC,EAAE;QAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,qBAAqB,CAAC,OAAgB,EAAE,UAAmC,EAAE;QACjF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAC,kBAAkB,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,MAAM,CAClB,gBAAwB,EACxB,KAAoB,EACpB,OAAgC;QAEhC,OAAO,YAAY,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,EAAC,GAAG,OAAO,EAAE,gBAAgB,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,CAAC;IAED,kEAAkE;IAC1D,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,GAAW,EAAE,OAAgC;QAC9F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,CAAC;;AAGH;;;;GAIG;AACH,SAAS,OAAO,CAA8B,MAAS,EAAE,KAAa;IACpE,OAAQ,MAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/house-arrest/index.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAO/C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,+CAA+C;IAE/E;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;;;;;;OAOG;YACW,KAAK;CA0CpB;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/house-arrest/index.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAO/C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,+CAA+C;IAE/E;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;;;;;;OAOG;YACW,KAAK;CA4CpB;AAED,eAAe,kBAAkB,CAAC"}
@@ -64,7 +64,9 @@ export class HouseArrestService extends BaseService {
64
64
  throw new Error(`House Arrest vend failed with status: ${status}`);
65
65
  }
66
66
  log.debug(`Successfully vended into ${bundleId}`);
67
- return AfcService.fromSocket(connection.getSocket());
67
+ // The plist layer must let go of the socket: otherwise it keeps consuming the AFC
68
+ // replies, and once its buffer fills up it pauses the socket and AFC reads stall.
69
+ return AfcService.fromSocket(connection.detachSocket());
68
70
  }
69
71
  catch (error) {
70
72
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/house-arrest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAE5C,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAU,gBAAgB,GAAG,2CAA2C,CAAC;IAE/E;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,OAAe;QACnD,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAExF,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,oBAAoB,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YACxD,IAAI,oBAAoB,EAAE,OAAO,KAAK,cAAc,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC;gBACjD,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,QAAQ;aACrB,CAAC,CAAC;YAEH,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;YAEhD,IAAI,KAAK,KAAK,yBAAyB,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,KAAK,KAAK,0BAA0B,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,0EAA0E,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;YAElD,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;;AAGH,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/house-arrest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAE5C,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAU,gBAAgB,GAAG,2CAA2C,CAAC;IAE/E;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,OAAe;QACnD,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAExF,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,oBAAoB,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YACxD,IAAI,oBAAoB,EAAE,OAAO,KAAK,cAAc,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC;gBACjD,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,QAAQ;aACrB,CAAC,CAAC;YAEH,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;YAEhD,IAAI,KAAK,KAAK,yBAAyB,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,KAAK,KAAK,0BAA0B,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,0EAA0E,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;YAElD,kFAAkF;YAClF,kFAAkF;YAClF,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;;AAGH,eAAe,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "5.22.0",
3
+ "version": "5.23.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "bugs": {
@@ -33,6 +33,9 @@ const log = logger.getLogger('TunnelCreation');
33
33
  /** @type {import('appium-ios-remotexpc').TunnelRegistryServer | null} */
34
34
  let registryServer = null;
35
35
 
36
+ /** @type {DeviceWatcher | null} */
37
+ let deviceWatcher = null;
38
+
36
39
  /** @type {Map<string, TunnelCreationSuccessResult>} */
37
40
  const establishedTunnelsByUdid = new Map();
38
41
 
@@ -78,6 +81,19 @@ function registerEstablishedTunnel(result) {
78
81
  establishedTunnelsByUdid.set(udid, result);
79
82
  }
80
83
 
84
+ /**
85
+ * Drops the bookkeeping entry of a tunnel that died, unless a newer tunnel has replaced it already.
86
+ *
87
+ * @param {string} udid
88
+ * @param {string} deadAddress
89
+ * @returns {void}
90
+ */
91
+ function forgetEstablishedTunnel(udid, deadAddress) {
92
+ if (establishedTunnelsByUdid.get(udid)?.tunnel.Address === deadAddress) {
93
+ establishedTunnelsByUdid.delete(udid);
94
+ }
95
+ }
96
+
81
97
  /**
82
98
  *
83
99
  * @param {string} connectionType
@@ -93,6 +109,18 @@ function connectionTypeRank(connectionType) {
93
109
  return 2;
94
110
  }
95
111
 
112
+ /**
113
+ * UDID comparison used elsewhere in the library (`Usbmux.findDevice`, lockdown) is case-insensitive,
114
+ * so a user-supplied `--udid` must match the same way.
115
+ *
116
+ * @param {string} a
117
+ * @param {string} b
118
+ * @returns {boolean}
119
+ */
120
+ function isSameUdid(a, b) {
121
+ return a.toLowerCase() === b.toLowerCase();
122
+ }
123
+
96
124
  /**
97
125
  * usbmux may list the same UDID twice (USB + Network). Prefer USB for tunneling.
98
126
  *
@@ -186,6 +214,8 @@ function attachTunnelRegistryLifecycleWatch(registry, successful, callbacks = {}
186
214
  },
187
215
  onTunnelDead: async ({udid: droppedUdid, address}) => {
188
216
  await TunnelManager.closeTunnelByAddress(address).catch(() => {});
217
+ // A dead tunnel must not keep blocking later attaches of this UDID, whether or not a reconnect follows
218
+ forgetEstablishedTunnel(droppedUdid, address);
189
219
  if (callbacks.onTunnelDead) {
190
220
  await callbacks.onTunnelDead({udid: droppedUdid, address});
191
221
  }
@@ -204,12 +234,18 @@ function attachTunnelRegistryLifecycleWatch(registry, successful, callbacks = {}
204
234
  * @param {string} opts.udid
205
235
  * @param {number} opts.maxRetries
206
236
  * @param {import('appium-ios-remotexpc').UsbmuxDevice} opts.device
237
+ * @param {Set<string>} [opts.watchedUdids] - UDIDs currently attached; only defined with `--watch-devices`.
238
+ * Retrying stops once the UDID is no longer in the set. Without it, retries are never cut short by detach.
207
239
  * @param {function(string): Promise<void>} opts.reconnectTunnelByUdid
208
240
  * @returns {Promise<void>}
209
241
  */
210
- async function runReconnectAttempts({udid, maxRetries, device, reconnectTunnelByUdid}) {
242
+ async function runReconnectAttempts({udid, maxRetries, device, watchedUdids, reconnectTunnelByUdid}) {
211
243
  let attempt = 0;
212
244
  while (maxRetries === 0 || attempt < maxRetries) {
245
+ if (watchedUdids && !watchedUdids.has(udid)) {
246
+ log.info(`Stopped reconnecting ${udid}: device detached`);
247
+ return;
248
+ }
213
249
  attempt += 1;
214
250
  log.warn(
215
251
  `Reconnecting dropped tunnel for ${udid} (attempt ${attempt}${maxRetries === 0 ? ', unlimited mode' : `/${maxRetries}`})...`,
@@ -241,9 +277,10 @@ async function runReconnectAttempts({udid, maxRetries, device, reconnectTunnelBy
241
277
  * @param {object} opts
242
278
  * @param {number} opts.reconnectRetries
243
279
  * @param {Map<string, import('appium-ios-remotexpc').UsbmuxDevice>} opts.devicesByUdid
280
+ * @param {Set<string>} [opts.watchedUdids] - See {@link runReconnectAttempts}
244
281
  * @returns {function(string): Promise<void>}
245
282
  */
246
- function createReconnectTunnelByUdid({reconnectRetries, devicesByUdid}) {
283
+ function createReconnectTunnelByUdid({reconnectRetries, devicesByUdid, watchedUdids}) {
247
284
  return async function reconnectTunnelByUdid(udid) {
248
285
  if (typeof reconnectRetries !== 'number') {
249
286
  return;
@@ -262,6 +299,7 @@ function createReconnectTunnelByUdid({reconnectRetries, devicesByUdid}) {
262
299
  udid,
263
300
  maxRetries: reconnectRetries,
264
301
  device,
302
+ watchedUdids,
265
303
  reconnectTunnelByUdid,
266
304
  });
267
305
 
@@ -285,6 +323,8 @@ function setupCleanupHandlers() {
285
323
  const cleanup = async (signal) => {
286
324
  log.warn(`\nCleaning up (${signal})...`);
287
325
 
326
+ deviceWatcher?.stop();
327
+
288
328
  while (registryWatcherStops.length > 0) {
289
329
  const stop = registryWatcherStops.pop();
290
330
  try {
@@ -409,6 +449,225 @@ async function createTunnelForDevice(device) {
409
449
  }
410
450
  }
411
451
 
452
+ /**
453
+ * Tears down the tunnel and registry entry of a device that is no longer attached.
454
+ *
455
+ * @param {string} udid
456
+ * @returns {Promise<void>}
457
+ */
458
+ async function removeDetachedDevice(udid) {
459
+ stopLifecycleWatch(udid);
460
+ registryServer?.removeTunnelEntry(udid);
461
+ const established = establishedTunnelsByUdid.get(udid);
462
+ establishedTunnelsByUdid.delete(udid);
463
+ if (established?.tunnelConnection) {
464
+ await closeTunnelQuietly(established.tunnelConnection);
465
+ }
466
+ }
467
+
468
+ /**
469
+ * Follows usbmuxd attach/detach notifications after the initial batch (`--watch-devices`), so
470
+ * devices plugged in or re-trusted later get a tunnel and registry entry without a restart. Only
471
+ * covers devices visible to usbmuxd. Resubscribes if the usbmuxd connection drops (e.g. usbmuxd
472
+ * restarts) and stops once `stop()` is called.
473
+ *
474
+ * Shares state with the reconnect path: an attach is ignored while a tunnel exists or a reconnect
475
+ * is in flight for that UDID, and a detach removes the UDID from `watchedUdids`, which stops any
476
+ * pending reconnect attempts for it.
477
+ */
478
+ class DeviceWatcher {
479
+ /**
480
+ * @param {object} opts
481
+ * @param {Map<string, import('appium-ios-remotexpc').UsbmuxDevice>} opts.devicesByUdid - Preferred usbmux entry per tracked UDID, used as device context by reconnects
482
+ * @param {Set<string>} opts.watchedUdids - UDIDs currently attached; shared with the reconnect path
483
+ * @param {string | undefined} opts.specificUdid - When set, events for other UDIDs are ignored
484
+ * @param {function(string): Promise<void>} opts.reconnectTunnelByUdid
485
+ */
486
+ constructor({devicesByUdid, watchedUdids, specificUdid, reconnectTunnelByUdid}) {
487
+ this.devicesByUdid = devicesByUdid;
488
+ this.watchedUdids = watchedUdids;
489
+ this.specificUdid = specificUdid;
490
+ this.reconnectTunnelByUdid = reconnectTunnelByUdid;
491
+ /** @type {Map<number, import('appium-ios-remotexpc').UsbmuxDevice>} */
492
+ this.attachedByDeviceId = new Map();
493
+ this.abortController = new AbortController();
494
+ }
495
+
496
+ /**
497
+ * @param {string} udid
498
+ * @returns {import('appium-ios-remotexpc').UsbmuxDevice[]}
499
+ */
500
+ attachedEntriesFor(udid) {
501
+ return [...this.attachedByDeviceId.values()].filter((device) => device.Properties.SerialNumber === udid);
502
+ }
503
+
504
+ /**
505
+ * @param {string} udid
506
+ * @returns {void}
507
+ */
508
+ forget(udid) {
509
+ this.devicesByUdid.delete(udid);
510
+ this.watchedUdids.delete(udid);
511
+ }
512
+
513
+ /** @returns {void} */
514
+ stop() {
515
+ this.abortController.abort();
516
+ }
517
+
518
+ /**
519
+ * @param {import('appium-ios-remotexpc').UsbmuxDeviceEvent} event
520
+ * @returns {Promise<void>}
521
+ */
522
+ async handleEvent(event) {
523
+ switch (event.type) {
524
+ case 'attach':
525
+ await this.handleAttach(event.device);
526
+ break;
527
+ case 'detach':
528
+ await this.handleDetach(event.deviceId);
529
+ break;
530
+ default:
531
+ log.debug(`Ignoring unknown usbmux event: ${JSON.stringify(event)}`);
532
+ }
533
+ }
534
+
535
+ /**
536
+ * @param {import('appium-ios-remotexpc').UsbmuxDevice} device
537
+ * @returns {Promise<void>}
538
+ */
539
+ async handleAttach(device) {
540
+ const udid = device.Properties.SerialNumber;
541
+ if (this.specificUdid && !isSameUdid(udid, this.specificUdid)) {
542
+ return;
543
+ }
544
+ this.attachedByDeviceId.set(device.DeviceID, device);
545
+ const [preferred] = dedupeDevicesByUdid(this.attachedEntriesFor(udid));
546
+ this.devicesByUdid.set(udid, preferred);
547
+ this.watchedUdids.add(udid);
548
+
549
+ if (establishedTunnelsByUdid.has(udid) || reconnectingByUdid.has(udid)) {
550
+ log.debug(`Ignoring attach of ${udid} (${device.Properties.ConnectionType}): tunnel already managed`);
551
+ return;
552
+ }
553
+
554
+ log.info(`\n🔌 Device attached: ${udid}`);
555
+ const result = await createTunnelForDevice(preferred);
556
+ if (!result.success) {
557
+ return;
558
+ }
559
+ attachTunnelRegistryLifecycleWatch(registryServer.getRegistry(), [result], {
560
+ onTunnelDead: async ({udid: droppedUdid}) => {
561
+ await this.reconnectTunnelByUdid(droppedUdid);
562
+ },
563
+ });
564
+ let published = false;
565
+ try {
566
+ published = await publishDiscoveredTunnelEntry(result);
567
+ } catch (err) {
568
+ log.warn(`Failed to publish tunnel for ${udid}: ${err}`);
569
+ }
570
+ if (!published) {
571
+ // Otherwise the live but unpublished tunnel would make every later attach of this UDID a no-op
572
+ await removeDetachedDevice(udid);
573
+ }
574
+ }
575
+
576
+ /**
577
+ * @param {number} deviceId
578
+ * @returns {Promise<void>}
579
+ */
580
+ async handleDetach(deviceId) {
581
+ const device = this.attachedByDeviceId.get(deviceId);
582
+ if (!device) {
583
+ return;
584
+ }
585
+ this.attachedByDeviceId.delete(deviceId);
586
+ const udid = device.Properties.SerialNumber;
587
+
588
+ const [remaining] = dedupeDevicesByUdid(this.attachedEntriesFor(udid));
589
+ if (remaining) {
590
+ // e.g. USB unplugged while still reachable over Network; the lifecycle watch handles the drop
591
+ log.info(
592
+ `Device ${udid} lost its ${device.Properties.ConnectionType} connection, still attached via ${remaining.Properties.ConnectionType}`,
593
+ );
594
+ this.devicesByUdid.set(udid, remaining);
595
+ return;
596
+ }
597
+
598
+ log.info(`\n🔌 Device detached: ${udid}`);
599
+ this.forget(udid);
600
+ await removeDetachedDevice(udid);
601
+ }
602
+
603
+ /**
604
+ * Devices unplugged while no subscription was active (during startup, or while usbmuxd was down)
605
+ * are never reported as detached.
606
+ *
607
+ * @returns {Promise<void>}
608
+ */
609
+ async detachDevicesMissingFromUsbmux() {
610
+ const lister = await createUsbmux();
611
+ let listed;
612
+ try {
613
+ listed = new Set((await lister.listDevices()).map((device) => device.Properties.SerialNumber));
614
+ } finally {
615
+ await lister.close().catch((err) => log.warn(`Failed to close usbmux listing connection: ${err}`));
616
+ }
617
+ for (const udid of [...this.watchedUdids]) {
618
+ if (!listed.has(udid)) {
619
+ log.info(`\n🔌 Device detached while usbmuxd was unavailable: ${udid}`);
620
+ this.forget(udid);
621
+ await removeDetachedDevice(udid);
622
+ }
623
+ }
624
+ }
625
+
626
+ /**
627
+ * Runs the subscribe/handle/resubscribe loop until `stop()` is called.
628
+ *
629
+ * @returns {Promise<void>}
630
+ */
631
+ async run() {
632
+ const {signal} = this.abortController;
633
+ let backoffMs = 1000;
634
+
635
+ while (!signal.aborted) {
636
+ /** @type {import('appium-ios-remotexpc').Usbmux | null} */
637
+ let usbmux = null;
638
+ try {
639
+ usbmux = await createUsbmux();
640
+ // Listen re-reports every attached device, possibly under new DeviceIDs (e.g. replugged while
641
+ // startup was still creating tunnels, or usbmuxd restarted), so entries from before are stale
642
+ this.attachedByDeviceId.clear();
643
+ const events = usbmux.listen({signal});
644
+ log.info('Watching usbmuxd for device attach/detach events...');
645
+ await this.detachDevicesMissingFromUsbmux();
646
+ for await (const event of events) {
647
+ backoffMs = 1000;
648
+ try {
649
+ await this.handleEvent(event);
650
+ } catch (err) {
651
+ // One failed event must not end the subscription
652
+ log.warn(`Failed to handle usbmux ${event.type} event: ${err}`);
653
+ }
654
+ }
655
+ } catch (err) {
656
+ if (!signal.aborted) {
657
+ log.warn(`Device watch interrupted (${err}); resubscribing in ${backoffMs}ms`);
658
+ }
659
+ } finally {
660
+ await usbmux?.close().catch((err) => log.warn(`Failed to close usbmux watch connection: ${err}`));
661
+ }
662
+ if (signal.aborted) {
663
+ break;
664
+ }
665
+ await sleep(backoffMs);
666
+ backoffMs = Math.min(backoffMs * 2, 30000);
667
+ }
668
+ }
669
+ }
670
+
412
671
  /**
413
672
  * @returns {Promise<void>}
414
673
  */
@@ -429,6 +688,12 @@ async function main() {
429
688
  )
430
689
  .option('--reconnect-retries <count>', 'Reconnect retries after unexpected tunnel drop (0 = unlimited)', (value) =>
431
690
  parseNonNegativeIntegerOption(value, 'retry count'),
691
+ )
692
+ .option(
693
+ '--watch-devices',
694
+ 'Keep watching usbmuxd after startup: create tunnels for newly attached devices and remove detached ones (usbmux-visible devices only). ' +
695
+ 'With --udid, only that UDID is watched, and startup no longer requires it to already be connected. ' +
696
+ 'Tunnels created after startup use the same --reconnect-retries policy as the initial ones. Independent of --keep-open.',
432
697
  );
433
698
 
434
699
  program.parse(process.argv);
@@ -458,7 +723,7 @@ async function main() {
458
723
 
459
724
  await usbmux.close();
460
725
 
461
- if (devices.length === 0) {
726
+ if (devices.length === 0 && !options.watchDevices) {
462
727
  log.warn('No devices found. Make sure iOS devices are connected and trusted.');
463
728
  process.exit(0);
464
729
  }
@@ -473,9 +738,11 @@ async function main() {
473
738
 
474
739
  let devicesToProcess = devices;
475
740
  if (specificUdid) {
476
- devicesToProcess = devices.filter((device) => device.Properties.SerialNumber === specificUdid);
741
+ devicesToProcess = devices.filter((device) => isSameUdid(device.Properties.SerialNumber, specificUdid));
477
742
 
478
- if (devicesToProcess.length === 0) {
743
+ if (devicesToProcess.length === 0 && options.watchDevices) {
744
+ log.warn(`Device with UDID ${specificUdid} is not connected yet; waiting for it to attach.`);
745
+ } else if (devicesToProcess.length === 0) {
479
746
  log.error(`Device with UDID ${specificUdid} not found in connected devices.`);
480
747
  log.error('Available devices:');
481
748
  devices.forEach((device) => {
@@ -505,9 +772,11 @@ async function main() {
505
772
 
506
773
  const reconnectRetries = options.reconnectRetries;
507
774
  const devicesByUdid = new Map(devicesToProcess.map((device) => [device.Properties.SerialNumber, device]));
775
+ const watchedUdids = options.watchDevices ? new Set(devicesByUdid.keys()) : undefined;
508
776
  const reconnectTunnelByUdid = createReconnectTunnelByUdid({
509
777
  reconnectRetries,
510
778
  devicesByUdid,
779
+ watchedUdids,
511
780
  });
512
781
 
513
782
  const results = [];
@@ -562,6 +831,16 @@ async function main() {
562
831
  const firstUdid = successful[0].device.Properties.SerialNumber;
563
832
  log.info(` curl "http://localhost:${registryPort}/remotexpc/tunnels/${firstUdid}?waitMs=15000"`);
564
833
  }
834
+
835
+ if (options.watchDevices) {
836
+ deviceWatcher = new DeviceWatcher({
837
+ devicesByUdid,
838
+ watchedUdids,
839
+ specificUdid,
840
+ reconnectTunnelByUdid,
841
+ });
842
+ await deviceWatcher.run();
843
+ }
565
844
  } catch (error) {
566
845
  log.error(`Error during tunnel creation test: ${error}`);
567
846
  throw error;
@@ -41,6 +41,8 @@ export interface LengthBasedSplitterOptions {
41
41
  * Splits incoming data into length-prefixed chunks
42
42
  */
43
43
  export class LengthBasedSplitter extends Transform {
44
+ private static readonly EMPTY = Buffer.alloc(0);
45
+
44
46
  private buffer: Buffer;
45
47
  private readonly littleEndian: boolean;
46
48
  private readonly maxFrameLength: number;
@@ -55,7 +57,7 @@ export class LengthBasedSplitter extends Transform {
55
57
  */
56
58
  constructor(options: LengthBasedSplitterOptions = {}) {
57
59
  super();
58
- this.buffer = Buffer.alloc(0);
60
+ this.buffer = LengthBasedSplitter.EMPTY;
59
61
  this.littleEndian = options.littleEndian ?? false;
60
62
  this.maxFrameLength = options.maxFrameLength ?? DEFAULT_MAX_FRAME_LENGTH;
61
63
  this.lengthFieldOffset = options.lengthFieldOffset ?? DEFAULT_LENGTH_FIELD_OFFSET;
@@ -73,13 +75,23 @@ export class LengthBasedSplitter extends Transform {
73
75
  */
74
76
  shutdown(): void {
75
77
  // Reset internal state
76
- this.buffer = Buffer.alloc(0);
78
+ this.buffer = LengthBasedSplitter.EMPTY;
77
79
  this.isXmlMode = false;
78
80
 
79
81
  // Remove all listeners
80
82
  this.removeAllListeners();
81
83
  }
82
84
 
85
+ /**
86
+ * Returns the bytes received but not yet emitted as a complete frame, and
87
+ * forgets them.
88
+ */
89
+ takeBufferedData(): Buffer {
90
+ const data = this.buffer;
91
+ this.buffer = LengthBasedSplitter.EMPTY;
92
+ return data;
93
+ }
94
+
83
95
  _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void {
84
96
  try {
85
97
  // Add the new chunk to our buffer
@@ -160,6 +160,43 @@ export class PlistService {
160
160
  });
161
161
  }
162
162
 
163
+ /**
164
+ * Stops exchanging plist messages on the socket and returns it, so another
165
+ * protocol can take over the same connection (e.g. AFC after a House Arrest
166
+ * vend).
167
+ *
168
+ * The socket is unpiped from the plist transformers, so they no longer
169
+ * consume its data, and any bytes they buffered are put back into it. Pending
170
+ * receives are rejected. The socket is returned paused, so no data is lost
171
+ * before the new owner attaches its reader; the new owner must `resume()` it
172
+ * after that, since adding a `'data'` listener does not resume an explicitly
173
+ * paused stream.
174
+ *
175
+ * @returns The paused socket, ready to be read by the new owner
176
+ */
177
+ public detachSocket(): Socket | TLSSocket {
178
+ // Unpipe before removing listeners: the pipes' own 'unpipe' handlers take
179
+ // their 'data' listener off the socket, which would otherwise keep feeding
180
+ // every byte into the splitter
181
+ this._socket.unpipe(this._splitter);
182
+ this._splitter.unpipe(this._decoder);
183
+ this._encoder.unpipe(this._socket);
184
+ this._splitter.removeAllListeners();
185
+ this._decoder.removeAllListeners();
186
+
187
+ this._messageQueue = [];
188
+ for (const waiter of this._waiters.splice(0)) {
189
+ clearTimeout(waiter.timeoutId);
190
+ waiter.reject(new Error('The socket was detached while waiting for a plist response'));
191
+ }
192
+
193
+ const bufferedData = this._splitter.takeBufferedData();
194
+ if (bufferedData.length > 0) {
195
+ this._socket.unshift(bufferedData);
196
+ }
197
+ return this._socket;
198
+ }
199
+
163
200
  /**
164
201
  * Close the connection and clean up resources
165
202
  */
@@ -71,6 +71,14 @@ export class ServiceConnection extends BasePlistService {
71
71
  return this.getPlistService().getSocket() as net.Socket;
72
72
  }
73
73
 
74
+ /**
75
+ * Stops exchanging plist messages and returns the socket for another protocol
76
+ * to take over (see {@link PlistService.detachSocket}).
77
+ */
78
+ detachSocket(): net.Socket {
79
+ return this.getPlistService().detachSocket() as net.Socket;
80
+ }
81
+
74
82
  /**
75
83
  * Closes the connection
76
84
  */
@@ -513,5 +513,8 @@ function ensureSocketState(socket: net.Socket): SocketState {
513
513
  socket.once('close', state.onClose);
514
514
  socket.once('end', state.onClose);
515
515
  SOCKET_STATES.set(socket, state);
516
+ // A socket handed over by another protocol (e.g. House Arrest) arrives paused,
517
+ // and a 'data' listener alone does not resume an explicitly paused stream
518
+ socket.resume();
516
519
  return state;
517
520
  }
@@ -30,7 +30,11 @@ export type UserInterfaceStyle = 'dark' | 'light' | (string & {});
30
30
 
31
31
  /**
32
32
  * Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
33
- * action. These are the seven standard sizes.
33
+ * action, from smallest to largest: the seven standard sizes followed by the five
34
+ * accessibility sizes. The daemon only accepts an accessibility size while
35
+ * Settings > Accessibility > Display & Text Size > Larger Text >
36
+ * "Larger Accessibility Sizes" is enabled on the device, and fails with
37
+ * `CoreDeviceError 21063` otherwise.
34
38
  */
35
39
  const DEVICE_TEXT_SIZES = [
36
40
  'extraSmall',
@@ -40,6 +44,11 @@ const DEVICE_TEXT_SIZES = [
40
44
  'extraLarge',
41
45
  'extraExtraLarge',
42
46
  'extraExtraExtraLarge',
47
+ 'accessibilityMedium',
48
+ 'accessibilityLarge',
49
+ 'accessibilityExtraLarge',
50
+ 'accessibilityExtraExtraLarge',
51
+ 'accessibilityExtraExtraExtraLarge',
43
52
  ] as const;
44
53
 
45
54
  /** A valid Dynamic Type content-size name. See {@link DEVICE_TEXT_SIZES}. */
@@ -77,7 +77,9 @@ export class HouseArrestService extends BaseService {
77
77
 
78
78
  log.debug(`Successfully vended into ${bundleId}`);
79
79
 
80
- return AfcService.fromSocket(connection.getSocket());
80
+ // The plist layer must let go of the socket: otherwise it keeps consuming the AFC
81
+ // replies, and once its buffer fills up it pauses the socket and AFC reads stall.
82
+ return AfcService.fromSocket(connection.detachSocket());
81
83
  } catch (error) {
82
84
  try {
83
85
  connection.close();