appium-remote-debugger 15.2.14 → 15.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/build/lib/rpc/remote-messages.js +3 -3
- package/build/lib/rpc/remote-messages.js.map +1 -1
- package/build/lib/rpc/rpc-client-real-device.d.ts +26 -8
- package/build/lib/rpc/rpc-client-real-device.d.ts.map +1 -1
- package/build/lib/rpc/rpc-client-real-device.js +21 -16
- package/build/lib/rpc/rpc-client-real-device.js.map +1 -1
- package/build/lib/rpc/rpc-client-simulator.d.ts +36 -28
- package/build/lib/rpc/rpc-client-simulator.d.ts.map +1 -1
- package/build/lib/rpc/rpc-client-simulator.js +39 -36
- package/build/lib/rpc/rpc-client-simulator.js.map +1 -1
- package/build/lib/rpc/rpc-client.d.ts +278 -189
- package/build/lib/rpc/rpc-client.d.ts.map +1 -1
- package/build/lib/rpc/rpc-client.js +222 -178
- package/build/lib/rpc/rpc-client.js.map +1 -1
- package/build/lib/types.d.ts +25 -0
- package/build/lib/types.d.ts.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/rpc/remote-messages.ts +3 -3
- package/lib/rpc/rpc-client-real-device.ts +68 -0
- package/lib/rpc/{rpc-client-simulator.js → rpc-client-simulator.ts} +54 -57
- package/lib/rpc/{rpc-client.js → rpc-client.ts} +368 -284
- package/lib/types.ts +27 -0
- package/package.json +1 -1
- package/lib/rpc/rpc-client-real-device.js +0 -64
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [15.3.0](https://github.com/appium/appium-remote-debugger/compare/v15.2.14...v15.3.0) (2026-01-24)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Migrate RPC clients to typescript ([#472](https://github.com/appium/appium-remote-debugger/issues/472)) ([81f3aab](https://github.com/appium/appium-remote-debugger/commit/81f3aabb73257c87ae24261e00614e6d530662d0))
|
|
6
|
+
|
|
1
7
|
## [15.2.14](https://github.com/appium/appium-remote-debugger/compare/v15.2.13...v15.2.14) (2026-01-24)
|
|
2
8
|
|
|
3
9
|
### Miscellaneous Chores
|
|
@@ -136,7 +136,7 @@ class RemoteMessages {
|
|
|
136
136
|
const realParams = {
|
|
137
137
|
targetId,
|
|
138
138
|
message: JSON.stringify({
|
|
139
|
-
id,
|
|
139
|
+
id: parseInt(id, 10),
|
|
140
140
|
method,
|
|
141
141
|
params: Object.assign({
|
|
142
142
|
objectGroup: OBJECT_GROUP,
|
|
@@ -176,7 +176,7 @@ class RemoteMessages {
|
|
|
176
176
|
const realParams = {
|
|
177
177
|
targetId,
|
|
178
178
|
message: JSON.stringify({
|
|
179
|
-
id,
|
|
179
|
+
id: parseInt(id, 10),
|
|
180
180
|
method,
|
|
181
181
|
params,
|
|
182
182
|
}),
|
|
@@ -208,7 +208,7 @@ class RemoteMessages {
|
|
|
208
208
|
const plist = {
|
|
209
209
|
__argument: {
|
|
210
210
|
WIRSocketDataKey: {
|
|
211
|
-
id,
|
|
211
|
+
id: parseInt(id, 10),
|
|
212
212
|
method,
|
|
213
213
|
params,
|
|
214
214
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-messages.js","sourceRoot":"","sources":["../../../lib/rpc/remote-messages.ts"],"names":[],"mappings":";;;;;;AAmUA,0CAEC;AArUD,oDAAuB;AACvB,0CAAiD;AAGjD,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,8DAA8D;AAC9D,wEAAwE;AACxE,MAAM,QAAQ,GAAG;IACf,iBAAiB,EAAE,YAAY;IAC/B,eAAe,EAAE,YAAY;IAE7B,sBAAsB,EAAE,YAAY;IACpC,wBAAwB,EAAE,YAAY;IACtC,kBAAkB,EAAE,YAAY;IAEhC,eAAe,EAAE,cAAc;IAC/B,wBAAwB,EAAE,cAAc;IACxC,eAAe,EAAE,cAAc;IAE/B,gBAAgB,EAAE,YAAY;IAC9B,eAAe,EAAE,YAAY;CACrB,CAAC;AAIX;;;;GAIG;AACH,MAAa,cAAc;IACzB;;;;;OAKG;IACH,gBAAgB,CAAC,MAAc;QAC7B,OAAO;YACL,UAAU,EAAE;gBACV,0BAA0B,EAAE,MAAM;aACnC;YACD,UAAU,EAAE,wBAAwB;SACrC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc,EAAE,QAAkB;QAC7C,OAAO;YACL,UAAU,EAAE;gBACV,0BAA0B,EAAE,MAAM;gBAClC,2BAA2B,EAAE,QAAQ;aACtC;YACD,UAAU,EAAE,yBAAyB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAkB,EAAE,SAAqB;QACtF,OAAO;YACL,UAAU,EAAE;gBACV,2BAA2B,EAAE,QAAQ;gBACrC,0BAA0B,EAAE,MAAM;gBAClC,YAAY,EAAE,QAAQ;gBACtB,oBAAoB,EAAE,SAAS;gBAC/B,qBAAqB,EAAE,KAAK;aAC7B;YACD,UAAU,EAAE,0BAA0B;SACvC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,MAAc,EAAE,QAAkB,EAAE,SAAqB,EAAE,OAAiB;QAC1F,OAAO;YACL,UAAU,EAAE;gBACV,2BAA2B,EAAE,QAAQ;gBACrC,qBAAqB,EAAE,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;gBACxD,0BAA0B,EAAE,MAAM;gBAClC,oBAAoB,EAAE,SAAS;aAChC;YACD,UAAU,EAAE,8BAA8B;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,QAAgB;QAChC,OAAO;YACL,UAAU,EAAE;gBACV,iCAAiC,EAAE,QAAQ;aAC5C;YACD,UAAU,EAAE,gCAAgC;SAC7C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,IAA6C;QAC1D,MAAM,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,EAAE,GACH,GAAG,IAAI,CAAC;QAET;;;;;;WAMG;QAEH,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAChD,MAAM,UAAU,GAAG;YACjB,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,EAAE;
|
|
1
|
+
{"version":3,"file":"remote-messages.js","sourceRoot":"","sources":["../../../lib/rpc/remote-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { RpcClient } from './rpc-client';
|
|
2
|
+
import type { RemoteCommand } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* RPC client implementation for real iOS devices.
|
|
5
|
+
* Extends RpcClient to provide device-specific connection handling.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RpcClientRealDevice extends RpcClient {
|
|
8
|
+
protected service?: any;
|
|
9
|
+
/**
|
|
10
|
+
* Connects to the Web Inspector service on a real iOS device.
|
|
11
|
+
* Starts the Web Inspector service and sets up message listening.
|
|
12
|
+
*/
|
|
13
|
+
connect(): Promise<void>;
|
|
3
14
|
/**
|
|
4
|
-
*
|
|
15
|
+
* Disconnects from the Web Inspector service on the real device.
|
|
16
|
+
* Closes the service connection and cleans up resources.
|
|
5
17
|
*/
|
|
6
|
-
|
|
18
|
+
disconnect(): Promise<void>;
|
|
7
19
|
/**
|
|
8
|
-
*
|
|
20
|
+
* Sends a command message to the Web Inspector service.
|
|
21
|
+
*
|
|
22
|
+
* @param cmd - The command to send to the device.
|
|
9
23
|
*/
|
|
10
|
-
|
|
24
|
+
sendMessage(cmd: RemoteCommand): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Receives data from the Web Inspector service and handles it.
|
|
27
|
+
*
|
|
28
|
+
* @param data - The data received from the service.
|
|
29
|
+
*/
|
|
30
|
+
receive(data: any): Promise<void>;
|
|
11
31
|
}
|
|
12
|
-
export default RpcClientRealDevice;
|
|
13
|
-
import { RpcClient } from './rpc-client';
|
|
14
32
|
//# sourceMappingURL=rpc-client-real-device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client-real-device.d.ts","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-real-device.
|
|
1
|
+
{"version":3,"file":"rpc-client-real-device.d.ts","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-real-device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IAExB;;;OAGG;IACY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAcvC;;;OAGG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;;;OAIG;IACY,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7D;;;;OAIG;IACY,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjD"}
|
|
@@ -4,15 +4,15 @@ exports.RpcClientRealDevice = void 0;
|
|
|
4
4
|
const logger_1 = require("../logger");
|
|
5
5
|
const rpc_client_1 = require("./rpc-client");
|
|
6
6
|
const appium_ios_device_1 = require("appium-ios-device");
|
|
7
|
+
/**
|
|
8
|
+
* RPC client implementation for real iOS devices.
|
|
9
|
+
* Extends RpcClient to provide device-specific connection handling.
|
|
10
|
+
*/
|
|
7
11
|
class RpcClientRealDevice extends rpc_client_1.RpcClient {
|
|
12
|
+
service;
|
|
8
13
|
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
constructor(opts = {}) {
|
|
12
|
-
super(opts);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @override
|
|
14
|
+
* Connects to the Web Inspector service on a real iOS device.
|
|
15
|
+
* Starts the Web Inspector service and sets up message listening.
|
|
16
16
|
*/
|
|
17
17
|
async connect() {
|
|
18
18
|
this.service = await appium_ios_device_1.services.startWebInspectorService(this.udid, {
|
|
@@ -27,7 +27,8 @@ class RpcClientRealDevice extends rpc_client_1.RpcClient {
|
|
|
27
27
|
this.isConnected = true;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Disconnects from the Web Inspector service on the real device.
|
|
31
|
+
* Closes the service connection and cleans up resources.
|
|
31
32
|
*/
|
|
32
33
|
async disconnect() {
|
|
33
34
|
if (!this.isConnected) {
|
|
@@ -35,26 +36,30 @@ class RpcClientRealDevice extends rpc_client_1.RpcClient {
|
|
|
35
36
|
}
|
|
36
37
|
logger_1.log.debug('Disconnecting from remote debugger');
|
|
37
38
|
await super.disconnect();
|
|
38
|
-
this.service
|
|
39
|
+
this.service?.close();
|
|
39
40
|
this.isConnected = false;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
|
-
*
|
|
43
|
+
* Sends a command message to the Web Inspector service.
|
|
44
|
+
*
|
|
45
|
+
* @param cmd - The command to send to the device.
|
|
43
46
|
*/
|
|
44
47
|
async sendMessage(cmd) {
|
|
48
|
+
if (!this.service) {
|
|
49
|
+
throw new Error('RPC service is not initialized. Is the client connected?');
|
|
50
|
+
}
|
|
45
51
|
this.service.sendMessage(cmd);
|
|
46
52
|
}
|
|
47
53
|
/**
|
|
48
|
-
*
|
|
54
|
+
* Receives data from the Web Inspector service and handles it.
|
|
55
|
+
*
|
|
56
|
+
* @param data - The data received from the service.
|
|
49
57
|
*/
|
|
50
58
|
async receive(data) {
|
|
51
|
-
if (
|
|
52
|
-
|
|
59
|
+
if (this.isConnected) {
|
|
60
|
+
await this.messageHandler.handleMessage(data);
|
|
53
61
|
}
|
|
54
|
-
// @ts-ignore messageHandler must be defined here
|
|
55
|
-
await this.messageHandler.handleMessage(data);
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
64
|
exports.RpcClientRealDevice = RpcClientRealDevice;
|
|
59
|
-
exports.default = RpcClientRealDevice;
|
|
60
65
|
//# sourceMappingURL=rpc-client-real-device.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client-real-device.js","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-real-device.
|
|
1
|
+
{"version":3,"file":"rpc-client-real-device.js","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-real-device.ts"],"names":[],"mappings":";;;AAAA,sCAAgC;AAChC,6CAAyC;AACzC,yDAA6C;AAG7C;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,sBAAS;IACtC,OAAO,CAAO;IAExB;;;OAGG;IACM,KAAK,CAAC,OAAO;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,4BAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE;YAChE,SAAS,EAAE,IAAI,CAAC,eAAe;YAC/B,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,IAAI,CAAC,mBAAmB;YACjC,cAAc,EAAE,IAAI,CAAC,0BAA0B;YAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,0BAA0B;SAChD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACM,KAAK,CAAC,UAAU;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,YAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,WAAW,CAAC,GAAkB;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,OAAO,CAAC,IAAS;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AA1DD,kDA0DC"}
|
|
@@ -1,38 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import net from 'net';
|
|
2
|
+
import { RpcClient } from './rpc-client';
|
|
3
|
+
import type { RpcClientOptions, RpcClientSimulatorOptions, RemoteCommand } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* RPC client implementation for iOS simulators.
|
|
6
|
+
* Extends RpcClient to provide simulator-specific connection handling
|
|
7
|
+
* via TCP sockets or Unix domain sockets.
|
|
8
|
+
*/
|
|
9
|
+
export declare class RpcClientSimulator extends RpcClient {
|
|
10
|
+
protected readonly host?: string;
|
|
11
|
+
protected port?: number;
|
|
12
|
+
protected readonly messageProxy?: any;
|
|
13
|
+
protected socket: net.Socket | null;
|
|
14
|
+
protected readonly socketPath?: string;
|
|
15
|
+
protected service?: any;
|
|
16
|
+
/**
|
|
17
|
+
* @param opts - Options for configuring the RPC client, including
|
|
18
|
+
* simulator-specific options like socketPath, host, and port.
|
|
19
|
+
*/
|
|
20
|
+
constructor(opts?: RpcClientOptions & RpcClientSimulatorOptions);
|
|
2
21
|
/**
|
|
3
|
-
*
|
|
22
|
+
* Connects to the Web Inspector service on an iOS simulator.
|
|
23
|
+
* Supports both Unix domain sockets and TCP connections, with optional proxy support.
|
|
4
24
|
*/
|
|
5
|
-
|
|
6
|
-
/** @type {string|undefined} */
|
|
7
|
-
host: string | undefined;
|
|
8
|
-
/** @type {number|undefined} */
|
|
9
|
-
port: number | undefined;
|
|
10
|
-
/** @type {any} */
|
|
11
|
-
messageProxy: any;
|
|
12
|
-
/** @type {import('node:net').Socket|null} */
|
|
13
|
-
socket: import("node:net").Socket | null;
|
|
14
|
-
/** @type {string|undefined} */
|
|
15
|
-
socketPath: string | undefined;
|
|
25
|
+
connect(): Promise<void>;
|
|
16
26
|
/**
|
|
17
|
-
*
|
|
27
|
+
* Disconnects from the Web Inspector service on the simulator.
|
|
28
|
+
* Closes the socket and service connection, and cleans up resources.
|
|
18
29
|
*/
|
|
19
|
-
|
|
20
|
-
service: any;
|
|
30
|
+
disconnect(): Promise<void>;
|
|
21
31
|
/**
|
|
22
|
-
*
|
|
32
|
+
* Sends a command message to the Web Inspector service via the socket.
|
|
33
|
+
* Handles socket errors and ensures the socket is available before sending.
|
|
34
|
+
*
|
|
35
|
+
* @param cmd - The command to send to the simulator.
|
|
23
36
|
*/
|
|
24
|
-
|
|
37
|
+
sendMessage(cmd: RemoteCommand): Promise<void>;
|
|
25
38
|
/**
|
|
26
|
-
*
|
|
39
|
+
* Receives data from the Web Inspector service and handles it.
|
|
40
|
+
* Converts Buffer data to strings for certain message keys.
|
|
41
|
+
*
|
|
42
|
+
* @param data - The data received from the service.
|
|
27
43
|
*/
|
|
28
|
-
|
|
44
|
+
receive(data: any): Promise<void>;
|
|
29
45
|
}
|
|
30
|
-
export default RpcClientSimulator;
|
|
31
|
-
export type RpcClientSimulatorOptions = {
|
|
32
|
-
socketPath?: string | undefined;
|
|
33
|
-
host?: string | undefined;
|
|
34
|
-
port?: number | undefined;
|
|
35
|
-
messageProxy?: any;
|
|
36
|
-
};
|
|
37
|
-
import { RpcClient } from './rpc-client';
|
|
38
46
|
//# sourceMappingURL=rpc-client-simulator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client-simulator.d.ts","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-simulator.
|
|
1
|
+
{"version":3,"file":"rpc-client-simulator.d.ts","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-simulator.ts"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3F;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IAExB;;;OAGG;gBACS,IAAI,GAAE,gBAAgB,GAAG,yBAA8B;IAmBnE;;;OAGG;IACY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqFvC;;;OAGG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;;;;OAKG;IACY,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7D;;;;;OAKG;IACY,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAYjD"}
|
|
@@ -10,19 +10,21 @@ const bluebird_1 = __importDefault(require("bluebird"));
|
|
|
10
10
|
const net_1 = __importDefault(require("net"));
|
|
11
11
|
const rpc_client_1 = require("./rpc-client");
|
|
12
12
|
const appium_ios_device_1 = require("appium-ios-device");
|
|
13
|
+
/**
|
|
14
|
+
* RPC client implementation for iOS simulators.
|
|
15
|
+
* Extends RpcClient to provide simulator-specific connection handling
|
|
16
|
+
* via TCP sockets or Unix domain sockets.
|
|
17
|
+
*/
|
|
13
18
|
class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
14
|
-
/** @type {string|undefined} */
|
|
15
19
|
host;
|
|
16
|
-
/** @type {number|undefined} */
|
|
17
20
|
port;
|
|
18
|
-
/** @type {any} */
|
|
19
21
|
messageProxy;
|
|
20
|
-
/** @type {import('node:net').Socket|null} */
|
|
21
22
|
socket;
|
|
22
|
-
/** @type {string|undefined} */
|
|
23
23
|
socketPath;
|
|
24
|
+
service;
|
|
24
25
|
/**
|
|
25
|
-
* @param
|
|
26
|
+
* @param opts - Options for configuring the RPC client, including
|
|
27
|
+
* simulator-specific options like socketPath, host, and port.
|
|
26
28
|
*/
|
|
27
29
|
constructor(opts = {}) {
|
|
28
30
|
super(opts);
|
|
@@ -35,7 +37,8 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
35
37
|
this.socketPath = socketPath;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
|
-
*
|
|
40
|
+
* Connects to the Web Inspector service on an iOS simulator.
|
|
41
|
+
* Supports both Unix domain sockets and TCP connections, with optional proxy support.
|
|
39
42
|
*/
|
|
40
43
|
async connect() {
|
|
41
44
|
// create socket and handle its messages
|
|
@@ -47,10 +50,11 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
47
50
|
// Forward the actual socketPath to the proxy
|
|
48
51
|
this.socket.once('connect', () => {
|
|
49
52
|
logger_1.log.debug(`Forwarding the actual web inspector socket to the proxy: '${this.socketPath}'`);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
if (this.socket) {
|
|
54
|
+
this.socket.write(JSON.stringify({
|
|
55
|
+
socketPath: this.socketPath
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
else {
|
|
@@ -67,7 +71,12 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
67
71
|
// tcp socket
|
|
68
72
|
logger_1.log.debug(`Connecting to remote debugger ${this.messageProxy ? 'via proxy ' : ''}through TCP: ${this.host}:${this.port}`);
|
|
69
73
|
this.socket = new net_1.default.Socket();
|
|
70
|
-
|
|
74
|
+
if (this.port && this.host) {
|
|
75
|
+
this.socket.connect(this.port, this.host);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error('Both port and host must be defined for TCP connection');
|
|
79
|
+
}
|
|
71
80
|
}
|
|
72
81
|
this.socket.setNoDelay(true);
|
|
73
82
|
this.socket.setKeepAlive(true);
|
|
@@ -93,13 +102,14 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
93
102
|
// connect the socket
|
|
94
103
|
return await new bluebird_1.default((resolve, reject) => {
|
|
95
104
|
// only resolve this function when we are actually connected
|
|
96
|
-
|
|
105
|
+
if (!this.socket) {
|
|
106
|
+
return reject(new Error('RPC socket is not connected. Please contact developers'));
|
|
107
|
+
}
|
|
97
108
|
this.socket.on('connect', () => {
|
|
98
109
|
logger_1.log.debug(`Debugger socket connected`);
|
|
99
110
|
this.isConnected = true;
|
|
100
111
|
resolve();
|
|
101
112
|
});
|
|
102
|
-
// @ts-ignore socket must be defined here
|
|
103
113
|
this.socket.on('error', (err) => {
|
|
104
114
|
if (this.isConnected) {
|
|
105
115
|
logger_1.log.error(`Socket error: ${err.message}`);
|
|
@@ -111,7 +121,8 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
111
121
|
});
|
|
112
122
|
}
|
|
113
123
|
/**
|
|
114
|
-
*
|
|
124
|
+
* Disconnects from the Web Inspector service on the simulator.
|
|
125
|
+
* Closes the socket and service connection, and cleans up resources.
|
|
115
126
|
*/
|
|
116
127
|
async disconnect() {
|
|
117
128
|
if (!this.isConnected) {
|
|
@@ -119,11 +130,14 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
119
130
|
}
|
|
120
131
|
logger_1.log.debug('Disconnecting from remote debugger');
|
|
121
132
|
await super.disconnect();
|
|
122
|
-
this.service
|
|
133
|
+
this.service?.close();
|
|
123
134
|
this.isConnected = false;
|
|
124
135
|
}
|
|
125
136
|
/**
|
|
126
|
-
*
|
|
137
|
+
* Sends a command message to the Web Inspector service via the socket.
|
|
138
|
+
* Handles socket errors and ensures the socket is available before sending.
|
|
139
|
+
*
|
|
140
|
+
* @param cmd - The command to send to the simulator.
|
|
127
141
|
*/
|
|
128
142
|
async sendMessage(cmd) {
|
|
129
143
|
let onSocketError;
|
|
@@ -134,8 +148,8 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
134
148
|
// the connection was refused, so reject the connect promise
|
|
135
149
|
reject(err);
|
|
136
150
|
};
|
|
137
|
-
if (!this.socket) {
|
|
138
|
-
return reject(new Error('The RPC
|
|
151
|
+
if (!this.socket || !this.service) {
|
|
152
|
+
return reject(new Error('The RPC client is not connected. Have you called `connect()` before sending a message?'));
|
|
139
153
|
}
|
|
140
154
|
this.socket.on('error', onSocketError);
|
|
141
155
|
this.service.sendMessage(cmd);
|
|
@@ -143,21 +157,19 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
143
157
|
})
|
|
144
158
|
.finally(() => {
|
|
145
159
|
// remove this listener, so we don't exhaust the system
|
|
146
|
-
|
|
147
|
-
// @ts-ignore socket must be defined
|
|
160
|
+
if (this.socket && onSocketError) {
|
|
148
161
|
this.socket.removeListener('error', onSocketError);
|
|
149
162
|
}
|
|
150
|
-
catch { }
|
|
151
163
|
});
|
|
152
164
|
}
|
|
153
165
|
/**
|
|
154
|
-
*
|
|
166
|
+
* Receives data from the Web Inspector service and handles it.
|
|
167
|
+
* Converts Buffer data to strings for certain message keys.
|
|
168
|
+
*
|
|
169
|
+
* @param data - The data received from the service.
|
|
155
170
|
*/
|
|
156
171
|
async receive(data) {
|
|
157
|
-
if (!this.isConnected) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
if (!data) {
|
|
172
|
+
if (!this.isConnected || !data) {
|
|
161
173
|
return;
|
|
162
174
|
}
|
|
163
175
|
for (const key of ['WIRMessageDataKey', 'WIRDestinationKey', 'WIRSocketDataKey']) {
|
|
@@ -165,17 +177,8 @@ class RpcClientSimulator extends rpc_client_1.RpcClient {
|
|
|
165
177
|
data[key] = data[key].toString('utf8');
|
|
166
178
|
}
|
|
167
179
|
}
|
|
168
|
-
// @ts-ignore messageHandler must be defined
|
|
169
180
|
await this.messageHandler.handleMessage(data);
|
|
170
181
|
}
|
|
171
182
|
}
|
|
172
183
|
exports.RpcClientSimulator = RpcClientSimulator;
|
|
173
|
-
exports.default = RpcClientSimulator;
|
|
174
|
-
/**
|
|
175
|
-
* @typedef {Object} RpcClientSimulatorOptions
|
|
176
|
-
* @property {string} [socketPath]
|
|
177
|
-
* @property {string} [host='::1']
|
|
178
|
-
* @property {number} [port]
|
|
179
|
-
* @property {any} [messageProxy]
|
|
180
|
-
*/
|
|
181
184
|
//# sourceMappingURL=rpc-client-simulator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client-simulator.js","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-simulator.
|
|
1
|
+
{"version":3,"file":"rpc-client-simulator.js","sourceRoot":"","sources":["../../../lib/rpc/rpc-client-simulator.ts"],"names":[],"mappings":"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"}
|