appium-ios-remotexpc 5.16.1 → 5.16.3

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.16.3](https://github.com/appium/appium-ios-remotexpc/compare/v5.16.2...v5.16.3) (2026-08-28)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **accessibility:** reject unknown audit types before they reach the device ([#306](https://github.com/appium/appium-ios-remotexpc/issues/306)) ([9b4200b](https://github.com/appium/appium-ios-remotexpc/commit/9b4200b419817aae9969a99e3e103e28e8e03115))
6
+
7
+ ## [5.16.2](https://github.com/appium/appium-ios-remotexpc/compare/v5.16.1...v5.16.2) (2026-08-27)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **port-forwarding:** destroy upstream socket when client disconnects during connect ([#305](https://github.com/appium/appium-ios-remotexpc/issues/305)) ([957181d](https://github.com/appium/appium-ios-remotexpc/commit/957181d05a8ae4fdcfed7c0ddf73446408c5f444))
12
+
1
13
  ## [5.16.1](https://github.com/appium/appium-ios-remotexpc/compare/v5.16.0...v5.16.1) (2026-08-27)
2
14
 
3
15
  ### Bug Fixes
@@ -25,6 +25,15 @@ export declare class DevicePortForwarder extends EventEmitter {
25
25
  once<K extends keyof DevicePortForwarderEvents>(eventName: K, listener: DevicePortForwarderEvents[K]): this;
26
26
  off<K extends keyof DevicePortForwarderEvents>(eventName: K, listener: DevicePortForwarderEvents[K]): this;
27
27
  private handleDownstreamConnection;
28
+ /**
29
+ * Opens the upstream socket while watching for the client going away.
30
+ * Returns undefined after cleanup if the connect fails or the client disconnected meanwhile.
31
+ */
32
+ private openUpstreamForClient;
33
+ /**
34
+ * Pipes the two sockets together and tears both down when either side closes or errors.
35
+ */
36
+ private bridgeSockets;
28
37
  private openUpstreamSocket;
29
38
  }
30
39
  //# sourceMappingURL=device-port-forwarder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-port-forwarder.d.ts","sourceRoot":"","sources":["../../../../src/lib/port-forwarding/device-port-forwarder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAC,yBAAyB,EAAE,0BAA0B,EAA0B,MAAM,YAAY,CAAC;AAE/G;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAStF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlB,EAAE,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzG,IAAI,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3G,GAAG,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;YAIrG,0BAA0B;YAyD1B,kBAAkB;CAUjC"}
1
+ {"version":3,"file":"device-port-forwarder.d.ts","sourceRoot":"","sources":["../../../../src/lib/port-forwarding/device-port-forwarder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAC,yBAAyB,EAAE,0BAA0B,EAA0B,MAAM,YAAY,CAAC;AAE/G;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;IAStF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlB,EAAE,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzG,IAAI,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3G,GAAG,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;YAIrG,0BAA0B;IAcxC;;;OAGG;YACW,qBAAqB;IAqCnC;;OAEG;IACH,OAAO,CAAC,aAAa;YAwCP,kBAAkB;CAUjC"}
@@ -67,6 +67,29 @@ export class DevicePortForwarder extends EventEmitter {
67
67
  async handleDownstreamConnection(localSocket) {
68
68
  this.activeSockets.add(localSocket);
69
69
  this.emit('clientConnected', localSocket);
70
+ const upstreamSocket = await this.openUpstreamForClient(localSocket);
71
+ if (!upstreamSocket) {
72
+ return;
73
+ }
74
+ this.activeSockets.add(upstreamSocket);
75
+ this.emit('upstreamConnected', upstreamSocket);
76
+ this.bridgeSockets(localSocket, upstreamSocket);
77
+ }
78
+ /**
79
+ * Opens the upstream socket while watching for the client going away.
80
+ * Returns undefined after cleanup if the connect fails or the client disconnected meanwhile.
81
+ */
82
+ async openUpstreamForClient(localSocket) {
83
+ let clientError;
84
+ let clientClosed = false;
85
+ const onEarlyError = (err) => {
86
+ clientError = err;
87
+ };
88
+ const onEarlyClose = () => {
89
+ clientClosed = true;
90
+ };
91
+ localSocket.once('error', onEarlyError);
92
+ localSocket.once('close', onEarlyClose);
70
93
  let upstreamSocket;
71
94
  try {
72
95
  upstreamSocket = await this.openUpstreamSocket();
@@ -76,10 +99,25 @@ export class DevicePortForwarder extends EventEmitter {
76
99
  this.emit('upstreamConnectError', err);
77
100
  this.emit('clientDisconnected', localSocket, err);
78
101
  localSocket.destroy();
79
- return;
102
+ return undefined;
80
103
  }
81
- this.activeSockets.add(upstreamSocket);
82
- this.emit('upstreamConnected', upstreamSocket);
104
+ finally {
105
+ localSocket.off('error', onEarlyError);
106
+ localSocket.off('close', onEarlyClose);
107
+ }
108
+ if (clientClosed || localSocket.destroyed || clientError !== undefined) {
109
+ this.activeSockets.delete(localSocket);
110
+ this.emit('clientDisconnected', localSocket, clientError);
111
+ localSocket.destroy();
112
+ upstreamSocket.destroy();
113
+ return undefined;
114
+ }
115
+ return upstreamSocket;
116
+ }
117
+ /**
118
+ * Pipes the two sockets together and tears both down when either side closes or errors.
119
+ */
120
+ bridgeSockets(localSocket, upstreamSocket) {
83
121
  let cleanedUp = false;
84
122
  const teardown = () => {
85
123
  this.activeSockets.delete(localSocket);
@@ -1 +1 @@
1
- {"version":3,"file":"device-port-forwarder.js","sourceRoot":"","sources":["../../../../src/lib/port-forwarding/device-port-forwarder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-port-forwarder.js","sourceRoot":"","sources":["../../../../src/lib/port-forwarding/device-port-forwarder.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,13 @@ export declare class AccessibilityAuditService {
57
57
  * fixed for the device, so repeated writes need not re-read the catalogue.
58
58
  */
59
59
  private settingTypes;
60
+ /**
61
+ * Supported audit types, read once per connection.
62
+ *
63
+ * Like the setting catalogue this is fixed for the device, so validating a
64
+ * name costs one round trip per connection rather than one per audit.
65
+ */
66
+ private auditTypeNames;
60
67
  private constructor();
61
68
  /**
62
69
  * Connects to the daemon and completes the DTX handshake.
@@ -120,6 +127,14 @@ export declare class AccessibilityAuditService {
120
127
  * @param options Timeout for the completion callback.
121
128
  */
122
129
  runAudit(auditTypes: string[], options?: RunAuditOptions): Promise<AxAuditIssue[]>;
130
+ /**
131
+ * Rejects audit types the device does not implement.
132
+ *
133
+ * An unrecognised name makes the daemon return neither issues nor a
134
+ * completion, and that connection can never run another audit — so the name
135
+ * must never reach the device.
136
+ */
137
+ private assertKnownAuditTypes;
123
138
  /**
124
139
  * Returns the element the device's accessibility focus is currently on.
125
140
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,mBAAmB,EAAE,KAAK,aAAa,EAAC,MAAM,oBAAoB,CAAC;AA8C3E;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,yBAAyB;IAiBhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAhB9C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oEAAwC;IAExE,0FAA0F;IAC1F,OAAO,CAAC,aAAa,CAAK;IAE1B,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAS;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAA8C;IAElE,OAAO;IAEP;;;;OAIG;WACU,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIpE,0DAA0D;IACpD,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D,oDAAoD;IAC9C,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjE,oEAAoE;IAC9D,sBAAsB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOxE;;OAEG;IACG,wBAAwB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQnF;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlH,6EAA6E;YAC/D,gBAAgB;IAQ9B;;;;;;;;;OASG;IACG,0BAA0B,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;;;;;;;;;;;;OAeG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAgD5F;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4BlF;;;;;;;;;;OAUG;IACH,qBAAqB,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,EAC/C,OAAO,GAAE;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAM,GACpC,MAAM,IAAI;IA2Bb;;;;;;;;;;OAUG;IACG,wBAAwB,CAC5B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;;;OAOG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAO/F,qDAAqD;IACrD,OAAO,CAAC,qBAAqB;IAM7B,8EAA8E;IAC9E,OAAO,CAAC,cAAc;IAMtB,wCAAwC;IACxC,KAAK,IAAI,IAAI;CAGd;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AA4BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ9E;AAsBD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAC,CAAC;AACzD,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,13 @@ export class AccessibilityAuditService {
76
76
  * fixed for the device, so repeated writes need not re-read the catalogue.
77
77
  */
78
78
  settingTypes;
79
+ /**
80
+ * Supported audit types, read once per connection.
81
+ *
82
+ * Like the setting catalogue this is fixed for the device, so validating a
83
+ * name costs one round trip per connection rather than one per audit.
84
+ */
85
+ auditTypeNames;
79
86
  constructor(transport) {
80
87
  this.transport = transport;
81
88
  }
@@ -209,6 +216,7 @@ export class AccessibilityAuditService {
209
216
  })
210
217
  : undefined;
211
218
  try {
219
+ await this.assertKnownAuditTypes(auditTypes);
212
220
  if (options.targetPid !== undefined) {
213
221
  // Narrows the audit to one process; omitted, the daemon uses the
214
222
  // foreground app.
@@ -229,6 +237,35 @@ export class AccessibilityAuditService {
229
237
  stopLog?.();
230
238
  }
231
239
  }
240
+ /**
241
+ * Rejects audit types the device does not implement.
242
+ *
243
+ * An unrecognised name makes the daemon return neither issues nor a
244
+ * completion, and that connection can never run another audit — so the name
245
+ * must never reach the device.
246
+ */
247
+ async assertKnownAuditTypes(auditTypes) {
248
+ if (auditTypes.length === 0) {
249
+ return;
250
+ }
251
+ // Deliberately not the caller's `timeoutMs`: that budget is for the audit
252
+ // itself, and reusing it here would let a long audit spend it twice.
253
+ const known = this.auditTypeNames ?? new Set(await this.getSupportedAuditTypes());
254
+ if (known.size === 0) {
255
+ // Nothing to validate against. Caching an empty catalogue would reject
256
+ // every type from here on — including after the daemon recovered — which
257
+ // is worse than the wedge this guards against, so let the call through.
258
+ log.debug('Device reported no supported audit types; skipping validation');
259
+ return;
260
+ }
261
+ this.auditTypeNames = known;
262
+ const unknown = auditTypes.filter((auditType) => !known.has(auditType));
263
+ if (unknown.length > 0) {
264
+ throw new Error(`Unknown ${util.pluralize('audit type', unknown.length)} ` +
265
+ `${unknown.map((auditType) => JSON.stringify(auditType)).join(', ')}; ` +
266
+ `the device supports: ${[...known].join(', ')}`);
267
+ }
268
+ }
232
269
  /**
233
270
  * Returns the element the device's accessibility focus is currently on.
234
271
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.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.16.1",
3
+ "version": "5.16.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "bugs": {
@@ -83,7 +83,33 @@ export class DevicePortForwarder extends EventEmitter {
83
83
  this.activeSockets.add(localSocket);
84
84
  this.emit('clientConnected', localSocket);
85
85
 
86
- let upstreamSocket: Socket | undefined;
86
+ const upstreamSocket = await this.openUpstreamForClient(localSocket);
87
+ if (!upstreamSocket) {
88
+ return;
89
+ }
90
+
91
+ this.activeSockets.add(upstreamSocket);
92
+ this.emit('upstreamConnected', upstreamSocket);
93
+ this.bridgeSockets(localSocket, upstreamSocket);
94
+ }
95
+
96
+ /**
97
+ * Opens the upstream socket while watching for the client going away.
98
+ * Returns undefined after cleanup if the connect fails or the client disconnected meanwhile.
99
+ */
100
+ private async openUpstreamForClient(localSocket: Socket): Promise<Socket | undefined> {
101
+ let clientError: Error | undefined;
102
+ let clientClosed = false;
103
+ const onEarlyError = (err: Error): void => {
104
+ clientError = err;
105
+ };
106
+ const onEarlyClose = (): void => {
107
+ clientClosed = true;
108
+ };
109
+ localSocket.once('error', onEarlyError);
110
+ localSocket.once('close', onEarlyClose);
111
+
112
+ let upstreamSocket: Socket;
87
113
  try {
88
114
  upstreamSocket = await this.openUpstreamSocket();
89
115
  } catch (err) {
@@ -91,12 +117,27 @@ export class DevicePortForwarder extends EventEmitter {
91
117
  this.emit('upstreamConnectError', err);
92
118
  this.emit('clientDisconnected', localSocket, err);
93
119
  localSocket.destroy();
94
- return;
120
+ return undefined;
121
+ } finally {
122
+ localSocket.off('error', onEarlyError);
123
+ localSocket.off('close', onEarlyClose);
95
124
  }
96
125
 
97
- this.activeSockets.add(upstreamSocket);
98
- this.emit('upstreamConnected', upstreamSocket);
126
+ if (clientClosed || localSocket.destroyed || clientError !== undefined) {
127
+ this.activeSockets.delete(localSocket);
128
+ this.emit('clientDisconnected', localSocket, clientError);
129
+ localSocket.destroy();
130
+ upstreamSocket.destroy();
131
+ return undefined;
132
+ }
133
+
134
+ return upstreamSocket;
135
+ }
99
136
 
137
+ /**
138
+ * Pipes the two sockets together and tears both down when either side closes or errors.
139
+ */
140
+ private bridgeSockets(localSocket: Socket, upstreamSocket: Socket): void {
100
141
  let cleanedUp = false;
101
142
  const teardown = (): void => {
102
143
  this.activeSockets.delete(localSocket);
@@ -117,6 +117,14 @@ export class AccessibilityAuditService {
117
117
  */
118
118
  private settingTypes: Map<string, number | undefined> | undefined;
119
119
 
120
+ /**
121
+ * Supported audit types, read once per connection.
122
+ *
123
+ * Like the setting catalogue this is fixed for the device, so validating a
124
+ * name costs one round trip per connection rather than one per audit.
125
+ */
126
+ private auditTypeNames: Set<string> | undefined;
127
+
120
128
  private constructor(private readonly transport: AxAuditDtxTransport) {}
121
129
 
122
130
  /**
@@ -264,6 +272,7 @@ export class AccessibilityAuditService {
264
272
  : undefined;
265
273
 
266
274
  try {
275
+ await this.assertKnownAuditTypes(auditTypes);
267
276
  if (options.targetPid !== undefined) {
268
277
  // Narrows the audit to one process; omitted, the daemon uses the
269
278
  // foreground app.
@@ -287,6 +296,39 @@ export class AccessibilityAuditService {
287
296
  }
288
297
  }
289
298
 
299
+ /**
300
+ * Rejects audit types the device does not implement.
301
+ *
302
+ * An unrecognised name makes the daemon return neither issues nor a
303
+ * completion, and that connection can never run another audit — so the name
304
+ * must never reach the device.
305
+ */
306
+ private async assertKnownAuditTypes(auditTypes: string[]): Promise<void> {
307
+ if (auditTypes.length === 0) {
308
+ return;
309
+ }
310
+ // Deliberately not the caller's `timeoutMs`: that budget is for the audit
311
+ // itself, and reusing it here would let a long audit spend it twice.
312
+ const known = this.auditTypeNames ?? new Set(await this.getSupportedAuditTypes());
313
+ if (known.size === 0) {
314
+ // Nothing to validate against. Caching an empty catalogue would reject
315
+ // every type from here on — including after the daemon recovered — which
316
+ // is worse than the wedge this guards against, so let the call through.
317
+ log.debug('Device reported no supported audit types; skipping validation');
318
+ return;
319
+ }
320
+ this.auditTypeNames = known;
321
+
322
+ const unknown = auditTypes.filter((auditType) => !known.has(auditType));
323
+ if (unknown.length > 0) {
324
+ throw new Error(
325
+ `Unknown ${util.pluralize('audit type', unknown.length)} ` +
326
+ `${unknown.map((auditType) => JSON.stringify(auditType)).join(', ')}; ` +
327
+ `the device supports: ${[...known].join(', ')}`,
328
+ );
329
+ }
330
+ }
331
+
290
332
  /**
291
333
  * Returns the element the device's accessibility focus is currently on.
292
334
  *