appium-ios-remotexpc 2.1.0 → 2.1.2

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
+ ## [2.1.2](https://github.com/appium/appium-ios-remotexpc/compare/v2.1.1...v2.1.2) (2026-05-23)
2
+
3
+ ### Code Refactoring
4
+
5
+ * improve IORegistry query handling in DiagnosticService ([#222](https://github.com/appium/appium-ios-remotexpc/issues/222)) ([79a8b2c](https://github.com/appium/appium-ios-remotexpc/commit/79a8b2c265338cf897ab8e563c6697f2a0b2b324))
6
+
7
+ ## [2.1.1](https://github.com/appium/appium-ios-remotexpc/compare/v2.1.0...v2.1.1) (2026-05-23)
8
+
9
+ ### Bug Fixes
10
+
11
+ * Log a warning if mDNS query sending fails ([#223](https://github.com/appium/appium-ios-remotexpc/issues/223)) ([6fcdaa9](https://github.com/appium/appium-ios-remotexpc/commit/6fcdaa9fb2a34d9464ddeb6a8de1713481eac656))
12
+
1
13
  ## [2.1.0](https://github.com/appium/appium-ios-remotexpc/compare/v2.0.3...v2.1.0) (2026-05-22)
2
14
 
3
15
  ### Features
@@ -203,12 +203,18 @@ function dedupeSrvEntries(entries) {
203
203
  }
204
204
  return unique;
205
205
  }
206
+ function logMdnsQuerySendError(err) {
207
+ if (!err) {
208
+ return;
209
+ }
210
+ log.warn(`Failed to send mDNS query to ${MDNS_MCAST_V4}:${MDNS_PORT}: ${err instanceof Error ? err.message : String(err)}`);
211
+ }
206
212
  function sendQueryAll(handles, packet) {
207
213
  for (const { socket, family } of handles) {
208
214
  if (family !== 'ipv4') {
209
215
  continue;
210
216
  }
211
- socket.send(packet, MDNS_PORT, MDNS_MCAST_V4);
217
+ socket.send(packet, MDNS_PORT, MDNS_MCAST_V4, logMdnsQuerySendError);
212
218
  }
213
219
  }
214
220
  function collectResponses(handles, timeoutMs, onMessage) {
@@ -1 +1 @@
1
- {"version":3,"file":"mdns-browser.js","sourceRoot":"","sources":["../../../../src/lib/discovery/mdns-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mdns-browser.js","sourceRoot":"","sources":["../../../../src/lib/discovery/mdns-browser.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,18 @@ declare class DiagnosticsService extends BaseService implements DiagnosticsServi
40
40
  private connectToDiagnosticService;
41
41
  private sendRequest;
42
42
  private processIORegistryResponse;
43
- private handleMultipartIORegistryResponse;
43
+ /**
44
+ * Sends an IORegistry request and returns the diagnostics response.
45
+ * The shim's StartService greeting is drained in connectToDiagnosticService,
46
+ * so this is a plain single send/recv — matches pymobiledevice3.
47
+ */
48
+ private queryIORegistry;
49
+ /**
50
+ * Extracts the IORegistry payload from a diagnostics response.
51
+ * @returns the IORegistry object, or null when the query matched no entry
52
+ * (the device replies { Status: 'Success' } with no Diagnostics)
53
+ */
54
+ private extractIORegistry;
44
55
  }
45
56
  export default DiagnosticsService;
46
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/diagnostic-service/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,IAAI,2BAA2B,EACjD,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD;;;;;GAKG;AACH,cAAM,kBACJ,SAAQ,WACR,YAAW,2BAA2B;IAEtC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oDACmB;gBAEvC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAazC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAa1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAavC;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA4CpD,OAAO,CAAC,gBAAgB;YAOV,0BAA0B;YAK1B,WAAW;IAoBzB,OAAO,CAAC,yBAAyB;YA0CnB,iCAAiC;CA6BhD;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/diagnostic-service/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,IAAI,2BAA2B,EACjD,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD;;;;;GAKG;AACH,cAAM,kBACJ,SAAQ,WACR,YAAW,2BAA2B;IAEtC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oDACmB;gBAEvC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAazC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAa1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAavC;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAsCpD,OAAO,CAAC,gBAAgB;YAOV,0BAA0B;YAW1B,WAAW;IAoBzB,OAAO,CAAC,yBAAyB;IA0CjC;;;;OAIG;YACW,eAAe;IAkB7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAU1B;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { util } from '@appium/support';
1
2
  import { getLogger } from '../../../lib/logger.js';
2
3
  import { PlistServiceDecoder } from '../../../lib/plist/plist-decoder.js';
3
4
  import { BaseService } from '../base-service.js';
@@ -84,10 +85,11 @@ class DiagnosticsService extends BaseService {
84
85
  const timeout = options?.timeout || 3000;
85
86
  log.debug('Sending IORegistry request...');
86
87
  const conn = await this.connectToDiagnosticService();
87
- const response = await conn.sendPlistRequest(request, timeout);
88
- log.debug(`IORegistry response size: ${JSON.stringify(response).length} bytes`);
88
+ const response = await this.queryIORegistry(conn, request, timeout);
89
89
  if (options?.returnRawJson) {
90
- return await this.handleMultipartIORegistryResponse(conn, response, timeout);
90
+ // The query matched no entry when the device replies with a bare
91
+ // { Status: 'Success' } and no Diagnostics — surface an empty object.
92
+ return this.extractIORegistry(response) ?? {};
91
93
  }
92
94
  return this.processIORegistryResponse(response);
93
95
  }
@@ -103,8 +105,12 @@ class DiagnosticsService extends BaseService {
103
105
  };
104
106
  }
105
107
  async connectToDiagnosticService() {
106
- const service = this.getServiceConfig();
107
- return await this.startLockdownService(service);
108
+ const connection = await this.startLockdownService(this.getServiceConfig());
109
+ const startServiceResponse = await connection.receive();
110
+ if (startServiceResponse?.Request !== 'StartService') {
111
+ throw new Error(`Expected StartService response, got: ${JSON.stringify(startServiceResponse)}`);
112
+ }
113
+ return connection;
108
114
  }
109
115
  async sendRequest(request, timeout) {
110
116
  const conn = await this.connectToDiagnosticService();
@@ -147,22 +153,34 @@ class DiagnosticsService extends BaseService {
147
153
  }
148
154
  return [{ value: response }];
149
155
  }
150
- async handleMultipartIORegistryResponse(conn, initialResponse, timeout) {
151
- await new Promise((resolve) => setTimeout(resolve, 500));
152
- const emptyRequest = {
153
- Request: 'Status',
154
- };
155
- log.debug('Sending follow-up request for additional data');
156
- const additionalResponse = await conn.sendPlistRequest(emptyRequest, timeout);
157
- const hasDiagnostics = 'Diagnostics' in additionalResponse &&
158
- typeof additionalResponse.Diagnostics === 'object' &&
159
- additionalResponse.Diagnostics !== null &&
160
- 'IORegistry' in additionalResponse.Diagnostics;
161
- if (additionalResponse.Status !== 'Success' && hasDiagnostics) {
162
- throw new Error(`Error getting diagnostic data: ${additionalResponse}`);
163
- }
164
- log.debug('Using additional response with IORegistry data');
165
- return additionalResponse.Diagnostics.IORegistry;
156
+ /**
157
+ * Sends an IORegistry request and returns the diagnostics response.
158
+ * The shim's StartService greeting is drained in connectToDiagnosticService,
159
+ * so this is a plain single send/recv — matches pymobiledevice3.
160
+ */
161
+ async queryIORegistry(conn, request, timeout) {
162
+ const response = await conn.sendPlistRequest(request, timeout);
163
+ if (util.isPlainObject(response) &&
164
+ 'Status' in response &&
165
+ response.Status !== 'Success') {
166
+ throw new Error(`IORegistry query failed: ${JSON.stringify(response)}`);
167
+ }
168
+ return response;
169
+ }
170
+ /**
171
+ * Extracts the IORegistry payload from a diagnostics response.
172
+ * @returns the IORegistry object, or null when the query matched no entry
173
+ * (the device replies { Status: 'Success' } with no Diagnostics)
174
+ */
175
+ extractIORegistry(response) {
176
+ const diagnostics = response?.Diagnostics;
177
+ if (util.isPlainObject(diagnostics)) {
178
+ const ioRegistry = diagnostics.IORegistry;
179
+ if (util.isPlainObject(ioRegistry)) {
180
+ return ioRegistry;
181
+ }
182
+ }
183
+ return null;
166
184
  }
167
185
  }
168
186
  export default DiagnosticsService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/diagnostic-service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/diagnostic-service/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": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "main": "build/src/index.js",
5
5
  "types": "build/src/index.d.ts",
6
6
  "type": "module",
@@ -263,12 +263,23 @@ function dedupeSrvEntries(entries: SrvEntry[]): SrvEntry[] {
263
263
  return unique;
264
264
  }
265
265
 
266
+ function logMdnsQuerySendError(err: Error | null): void {
267
+ if (!err) {
268
+ return;
269
+ }
270
+ log.warn(
271
+ `Failed to send mDNS query to ${MDNS_MCAST_V4}:${MDNS_PORT}: ${
272
+ err instanceof Error ? err.message : String(err)
273
+ }`,
274
+ );
275
+ }
276
+
266
277
  function sendQueryAll(handles: MdnsSocketHandle[], packet: Buffer): void {
267
278
  for (const { socket, family } of handles) {
268
279
  if (family !== 'ipv4') {
269
280
  continue;
270
281
  }
271
- socket.send(packet, MDNS_PORT, MDNS_MCAST_V4);
282
+ socket.send(packet, MDNS_PORT, MDNS_MCAST_V4, logMdnsQuerySendError);
272
283
  }
273
284
  }
274
285
 
@@ -1,9 +1,12 @@
1
+ import { util } from '@appium/support';
2
+
1
3
  import { getLogger } from '../../../lib/logger.js';
2
4
  import { PlistServiceDecoder } from '../../../lib/plist/plist-decoder.js';
3
5
  import type {
4
6
  DiagnosticsService as DiagnosticsServiceInterface,
5
7
  PlistDictionary,
6
8
  } from '../../../lib/types.js';
9
+ import type { ServiceConnection } from '../../../service-connection.js';
7
10
  import { BaseService } from '../base-service.js';
8
11
 
9
12
  const log = getLogger('DiagnosticService');
@@ -110,18 +113,12 @@ class DiagnosticsService
110
113
  log.debug('Sending IORegistry request...');
111
114
 
112
115
  const conn = await this.connectToDiagnosticService();
113
- const response = await conn.sendPlistRequest(request, timeout);
114
-
115
- log.debug(
116
- `IORegistry response size: ${JSON.stringify(response).length} bytes`,
117
- );
116
+ const response = await this.queryIORegistry(conn, request, timeout);
118
117
 
119
118
  if (options?.returnRawJson) {
120
- return await this.handleMultipartIORegistryResponse(
121
- conn,
122
- response,
123
- timeout,
124
- );
119
+ // The query matched no entry when the device replies with a bare
120
+ // { Status: 'Success' } and no Diagnostics — surface an empty object.
121
+ return this.extractIORegistry(response) ?? {};
125
122
  }
126
123
 
127
124
  return this.processIORegistryResponse(response);
@@ -138,9 +135,15 @@ class DiagnosticsService
138
135
  };
139
136
  }
140
137
 
141
- private async connectToDiagnosticService() {
142
- const service = this.getServiceConfig();
143
- return await this.startLockdownService(service);
138
+ private async connectToDiagnosticService(): Promise<ServiceConnection> {
139
+ const connection = await this.startLockdownService(this.getServiceConfig());
140
+ const startServiceResponse = await connection.receive();
141
+ if (startServiceResponse?.Request !== 'StartService') {
142
+ throw new Error(
143
+ `Expected StartService response, got: ${JSON.stringify(startServiceResponse)}`,
144
+ );
145
+ }
146
+ return connection;
144
147
  }
145
148
 
146
149
  private async sendRequest(
@@ -205,34 +208,43 @@ class DiagnosticsService
205
208
  return [{ value: response } as PlistDictionary];
206
209
  }
207
210
 
208
- private async handleMultipartIORegistryResponse(
209
- conn: any,
210
- initialResponse: any,
211
+ /**
212
+ * Sends an IORegistry request and returns the diagnostics response.
213
+ * The shim's StartService greeting is drained in connectToDiagnosticService,
214
+ * so this is a plain single send/recv — matches pymobiledevice3.
215
+ */
216
+ private async queryIORegistry(
217
+ conn: ServiceConnection,
218
+ request: PlistDictionary,
211
219
  timeout: number,
212
- ): Promise<Record<string, any>> {
213
- await new Promise((resolve) => setTimeout(resolve, 500));
214
-
215
- const emptyRequest: PlistDictionary = {
216
- Request: 'Status',
217
- };
220
+ ): Promise<PlistDictionary> {
221
+ const response = await conn.sendPlistRequest(request, timeout);
218
222
 
219
- log.debug('Sending follow-up request for additional data');
220
-
221
- const additionalResponse = await conn.sendPlistRequest(
222
- emptyRequest,
223
- timeout,
224
- );
225
- const hasDiagnostics =
226
- 'Diagnostics' in additionalResponse &&
227
- typeof additionalResponse.Diagnostics === 'object' &&
228
- additionalResponse.Diagnostics !== null &&
229
- 'IORegistry' in additionalResponse.Diagnostics;
230
- if (additionalResponse.Status !== 'Success' && hasDiagnostics) {
231
- throw new Error(`Error getting diagnostic data: ${additionalResponse}`);
223
+ if (
224
+ util.isPlainObject(response) &&
225
+ 'Status' in response &&
226
+ response.Status !== 'Success'
227
+ ) {
228
+ throw new Error(`IORegistry query failed: ${JSON.stringify(response)}`);
232
229
  }
233
230
 
234
- log.debug('Using additional response with IORegistry data');
235
- return additionalResponse.Diagnostics.IORegistry as Record<string, any>;
231
+ return response as PlistDictionary;
232
+ }
233
+
234
+ /**
235
+ * Extracts the IORegistry payload from a diagnostics response.
236
+ * @returns the IORegistry object, or null when the query matched no entry
237
+ * (the device replies { Status: 'Success' } with no Diagnostics)
238
+ */
239
+ private extractIORegistry(response: any): Record<string, any> | null {
240
+ const diagnostics = response?.Diagnostics;
241
+ if (util.isPlainObject(diagnostics)) {
242
+ const ioRegistry = diagnostics.IORegistry;
243
+ if (util.isPlainObject(ioRegistry)) {
244
+ return ioRegistry as Record<string, any>;
245
+ }
246
+ }
247
+ return null;
236
248
  }
237
249
  }
238
250