appium-ios-remotexpc 4.0.0 → 5.0.1
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 +18 -0
- package/README.md +4 -5
- package/build/src/index.d.ts +3 -3
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +3 -3
- package/build/src/index.js.map +1 -1
- package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts +3 -4
- package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts.map +1 -1
- package/build/src/lib/apple-tv/tunnel/tunnel-service.js +11 -56
- package/build/src/lib/apple-tv/tunnel/tunnel-service.js.map +1 -1
- package/build/src/lib/apple-tv/tunnel/types.d.ts +0 -16
- package/build/src/lib/apple-tv/tunnel/types.d.ts.map +1 -1
- package/build/src/lib/tunnel/index.d.ts +14 -9
- package/build/src/lib/tunnel/index.d.ts.map +1 -1
- package/build/src/lib/tunnel/index.js +42 -49
- package/build/src/lib/tunnel/index.js.map +1 -1
- package/build/src/lib/tunnel/tunnel-registry-lifecycle.d.ts +20 -0
- package/build/src/lib/tunnel/tunnel-registry-lifecycle.d.ts.map +1 -1
- package/build/src/lib/tunnel/tunnel-registry-lifecycle.js +58 -0
- package/build/src/lib/tunnel/tunnel-registry-lifecycle.js.map +1 -1
- package/build/src/services/ios/diagnostic-service/index.d.ts.map +1 -1
- package/build/src/services/ios/diagnostic-service/index.js +23 -13
- package/build/src/services/ios/diagnostic-service/index.js.map +1 -1
- package/build/src/services/ios/tunnel-service/index.d.ts +9 -13
- package/build/src/services/ios/tunnel-service/index.d.ts.map +1 -1
- package/build/src/services/ios/tunnel-service/index.js +6 -18
- package/build/src/services/ios/tunnel-service/index.js.map +1 -1
- package/package.json +2 -2
- package/scripts/start-appletv-tunnel.mjs +137 -91
- package/scripts/tunnel-creation.mjs +169 -95
- package/src/index.ts +4 -2
- package/src/lib/apple-tv/tunnel/tunnel-service.ts +25 -82
- package/src/lib/apple-tv/tunnel/types.ts +0 -18
- package/src/lib/tunnel/index.ts +65 -54
- package/src/lib/tunnel/tunnel-registry-lifecycle.ts +88 -0
- package/src/services/ios/diagnostic-service/index.ts +25 -17
- package/src/services/ios/tunnel-service/index.ts +16 -27
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## [5.0.1](https://github.com/appium/appium-ios-remotexpc/compare/v5.0.0...v5.0.1) (2026-06-17)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **diagnostics:** ensure connection closure after querying IORegistry ([#239](https://github.com/appium/appium-ios-remotexpc/issues/239)) ([8d3b5b5](https://github.com/appium/appium-ios-remotexpc/commit/8d3b5b5b7f77c57211a0c180988df0e2b144ac1e))
|
|
6
|
+
|
|
7
|
+
## [5.0.0](https://github.com/appium/appium-ios-remotexpc/compare/v4.0.0...v5.0.0) (2026-06-15)
|
|
8
|
+
|
|
9
|
+
### ⚠ BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* TunnelManager.getTunnel now requires (tcpSocket, { cert, key }). Pass plain TCP from startCoreDeviceProxyTcp; do not upgrade to Node TLSSocket first.
|
|
12
|
+
* startCoreDeviceProxy removed. Use startCoreDeviceProxyTcp + TunnelManager.getTunnel(socket, { cert, key }).
|
|
13
|
+
* AppleTVTunnelService.startTunnel() returns { tcpSocket, psk, device } instead of { socket: TLSSocket, device }. Use TunnelManager.getTunnelPsk(tcpSocket, { psk }).
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Bump appium-ios-tuntap to ^1.0.0 ([#238](https://github.com/appium/appium-ios-remotexpc/issues/238)) ([e8fc72f](https://github.com/appium/appium-ios-remotexpc/commit/e8fc72fdd4ba7bcc8f37bd347b278d911d8cf32b))
|
|
18
|
+
|
|
1
19
|
## [4.0.0](https://github.com/appium/appium-ios-remotexpc/compare/v3.0.0...v4.0.0) (2026-06-14)
|
|
2
20
|
|
|
3
21
|
### ⚠ BREAKING CHANGES
|
package/README.md
CHANGED
|
@@ -106,23 +106,22 @@ The `appium-ios-tuntap (previously tuntap-bridge)` module plays a crucial role i
|
|
|
106
106
|
import {
|
|
107
107
|
createLockdownServiceByUDID,
|
|
108
108
|
rsdSessionLockKey,
|
|
109
|
-
|
|
109
|
+
startCoreDeviceProxyTcp,
|
|
110
110
|
TunnelManager,
|
|
111
111
|
} from 'appium-ios-remotexpc';
|
|
112
112
|
|
|
113
113
|
// Create lockdown service
|
|
114
114
|
const { lockdownService, device } = await createLockdownServiceByUDID(udid);
|
|
115
115
|
|
|
116
|
-
// Start CoreDeviceProxy
|
|
117
|
-
const { socket } = await
|
|
116
|
+
// Start CoreDeviceProxy (raw TCP; TLS handled in native forwarder)
|
|
117
|
+
const { socket, cert, key } = await startCoreDeviceProxyTcp(
|
|
118
118
|
lockdownService,
|
|
119
119
|
device.DeviceID,
|
|
120
120
|
device.Properties.SerialNumber,
|
|
121
|
-
{ rejectUnauthorized: false }
|
|
122
121
|
);
|
|
123
122
|
|
|
124
123
|
// Create tunnel using tuntap
|
|
125
|
-
const tunnel = await TunnelManager.getTunnel(socket);
|
|
124
|
+
const tunnel = await TunnelManager.getTunnel(socket, { cert, key });
|
|
126
125
|
console.log(`Tunnel created at ${tunnel.Address} with RSD port ${tunnel.RsdPort}`);
|
|
127
126
|
|
|
128
127
|
// Discover RSD services (serialized per tunnel; closed before return)
|
package/build/src/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME } from './constants.js';
|
|
2
2
|
import { createLockdownServiceByUDID, createLockdownServiceForTunnel } from './lib/lockdown/index.js';
|
|
3
3
|
import { DevicePortForwarder } from './lib/port-forwarding/index.js';
|
|
4
|
-
import { TunnelManager, TunnelReadinessCoordinator, discoverServices, servicesToCatalog, watchTunnelRegistrySockets } from './lib/tunnel/index.js';
|
|
4
|
+
import { TunnelManager, TunnelReadinessCoordinator, discoverServices, servicesToCatalog, watchTunnelRegistryOnDead, watchTunnelRegistrySockets } from './lib/tunnel/index.js';
|
|
5
5
|
import { TunnelRegistryServer, startTunnelRegistryServer } from './lib/tunnel/tunnel-registry-server.js';
|
|
6
6
|
import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
|
|
7
7
|
import * as Services from './services.js';
|
|
8
|
-
import {
|
|
8
|
+
import { startCoreDeviceProxyTcp } from './services/ios/tunnel-service/index.js';
|
|
9
9
|
export type { Device as UsbmuxDevice } from './lib/usbmux/index.js';
|
|
10
10
|
export type { DevicePortForwarderEvents, DevicePortForwarderOptions, UpstreamSocketConnector, } from './lib/port-forwarding/index.js';
|
|
11
11
|
export type { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
|
|
@@ -33,5 +33,5 @@ export { AppleTVTunnelService } from './lib/apple-tv/tunnel/index.js';
|
|
|
33
33
|
export type { AppleTVPairingResult } from './lib/apple-tv/types.js';
|
|
34
34
|
export type { LockdownService } from './lib/lockdown/index.js';
|
|
35
35
|
export { connectViaTunnel, connectViaUsbmux, } from './lib/port-forwarding/index.js';
|
|
36
|
-
export { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME, createUsbmux, Services, Usbmux, DevicePortForwarder, TunnelManager, discoverServices, servicesToCatalog, TunnelReadinessCoordinator, createLockdownServiceForTunnel, createLockdownServiceByUDID,
|
|
36
|
+
export { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME, createUsbmux, Services, Usbmux, DevicePortForwarder, TunnelManager, discoverServices, servicesToCatalog, TunnelReadinessCoordinator, createLockdownServiceForTunnel, createLockdownServiceByUDID, startCoreDeviceProxyTcp, TunnelRegistryServer, startTunnelRegistryServer, watchTunnelRegistrySockets, watchTunnelRegistryOnDead, };
|
|
37
37
|
//# sourceMappingURL=index.d.ts.map
|
package/build/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME, } from './constants.js';
|
|
2
2
|
import { createLockdownServiceByUDID, createLockdownServiceForTunnel, } from './lib/lockdown/index.js';
|
|
3
3
|
import { DevicePortForwarder } from './lib/port-forwarding/index.js';
|
|
4
|
-
import { TunnelManager, TunnelReadinessCoordinator, discoverServices, servicesToCatalog, watchTunnelRegistrySockets, } from './lib/tunnel/index.js';
|
|
4
|
+
import { TunnelManager, TunnelReadinessCoordinator, discoverServices, servicesToCatalog, watchTunnelRegistryOnDead, watchTunnelRegistrySockets, } from './lib/tunnel/index.js';
|
|
5
5
|
import { TunnelRegistryServer, startTunnelRegistryServer, } from './lib/tunnel/tunnel-registry-server.js';
|
|
6
6
|
import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
|
|
7
7
|
import * as Services from './services.js';
|
|
8
|
-
import {
|
|
8
|
+
import { startCoreDeviceProxyTcp } from './services/ios/tunnel-service/index.js';
|
|
9
9
|
export { AfcConnectionError } from './services/ios/afc/errors.js';
|
|
10
10
|
export { PowerAssertionType } from './lib/types.js';
|
|
11
11
|
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
@@ -20,5 +20,5 @@ export { createBinaryPlist } from './lib/plist/index.js';
|
|
|
20
20
|
export { AppleTVPairingService, UserInputService, } from './lib/apple-tv/pairing/index.js';
|
|
21
21
|
export { AppleTVTunnelService } from './lib/apple-tv/tunnel/index.js';
|
|
22
22
|
export { connectViaTunnel, connectViaUsbmux, } from './lib/port-forwarding/index.js';
|
|
23
|
-
export { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME, createUsbmux, Services, Usbmux, DevicePortForwarder, TunnelManager, discoverServices, servicesToCatalog, TunnelReadinessCoordinator, createLockdownServiceForTunnel, createLockdownServiceByUDID,
|
|
23
|
+
export { STRONGBOX_CONTAINER_NAME, TUNNEL_CONTAINER_NAME, createUsbmux, Services, Usbmux, DevicePortForwarder, TunnelManager, discoverServices, servicesToCatalog, TunnelReadinessCoordinator, createLockdownServiceForTunnel, createLockdownServiceByUDID, startCoreDeviceProxyTcp, TunnelRegistryServer, startTunnelRegistryServer, watchTunnelRegistrySockets, watchTunnelRegistryOnDead, };
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAUjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAuDlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,8CAA8C,CAAC;AAWtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as net from 'node:net';
|
|
2
2
|
import type { NetworkClientInterface } from '../network/types.js';
|
|
3
3
|
import type { VerificationKeys } from '../pairing-protocol/pair-verification-protocol.js';
|
|
4
4
|
import type { AppleTVDevice } from '../types.js';
|
|
@@ -10,7 +10,6 @@ export declare class TunnelService {
|
|
|
10
10
|
private encryptedSequenceNumber;
|
|
11
11
|
constructor(networkClient: NetworkClientInterface, keys: VerificationKeys, sequenceNumber: number);
|
|
12
12
|
createTcpListener(): Promise<TcpListenerInfo>;
|
|
13
|
-
createTlsPskConnection(hostname: string, port: number): Promise<tls.TLSSocket>;
|
|
14
13
|
getSequenceNumber(): number;
|
|
15
14
|
}
|
|
16
15
|
/**
|
|
@@ -29,7 +28,8 @@ export declare class AppleTVTunnelService {
|
|
|
29
28
|
*/
|
|
30
29
|
discoverDevices(): Promise<AppleTVDevice[]>;
|
|
31
30
|
startTunnel(deviceId?: string, specificDeviceIdentifier?: string): Promise<{
|
|
32
|
-
|
|
31
|
+
tcpSocket: net.Socket;
|
|
32
|
+
psk: Buffer;
|
|
33
33
|
device: AppleTVDevice;
|
|
34
34
|
}>;
|
|
35
35
|
/**
|
|
@@ -55,6 +55,5 @@ export declare class AppleTVTunnelService {
|
|
|
55
55
|
private performHandshake;
|
|
56
56
|
private performPairVerification;
|
|
57
57
|
private createTcpListener;
|
|
58
|
-
private createTlsPskConnection;
|
|
59
58
|
}
|
|
60
59
|
//# sourceMappingURL=tunnel-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAiBhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAiBhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,cAAc;IALxB,OAAO,CAAC,uBAAuB,CAAK;gBAGjB,aAAa,EAAE,sBAAsB,EACrC,IAAI,EAAE,gBAAgB,EAC/B,cAAc,EAAE,MAAM;IAG1B,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoFnD,iBAAiB,IAAI,MAAM;CAG5B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,cAAc,CAAK;;IAQ3B,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAuB3C,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC;QACT,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IA0DF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;YACW,uBAAuB;IAuErC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YAWX,gBAAgB;YA4BhB,uBAAuB;YAmBvB,iBAAiB;CAgBhC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { util } from '@appium/support';
|
|
2
|
-
import * as
|
|
2
|
+
import * as net from 'node:net';
|
|
3
3
|
import { createDiscoveryBackend } from '../../discovery/discovery-backend-factory.js';
|
|
4
4
|
import { getLogger } from '../../logger.js';
|
|
5
5
|
import { DEFAULT_PAIRING_CONFIG, REMOTE_PAIRING_DISCOVERY_DOMAIN, REMOTE_PAIRING_VERIFIED_DISCOVERY_SERVICE_TYPE, } from '../constants.js';
|
|
@@ -81,55 +81,6 @@ export class TunnelService {
|
|
|
81
81
|
log.debug(`TCP Listener created on port: ${createListenerResponse.port}`);
|
|
82
82
|
return createListenerResponse;
|
|
83
83
|
}
|
|
84
|
-
async createTlsPskConnection(hostname, port) {
|
|
85
|
-
log.debug(`Creating TLS-PSK connection to ${hostname}:${port}`);
|
|
86
|
-
return new Promise((resolve, reject) => {
|
|
87
|
-
const options = {
|
|
88
|
-
host: hostname,
|
|
89
|
-
port,
|
|
90
|
-
pskCallback: (hint) => {
|
|
91
|
-
log.debug(`PSK callback invoked with hint: ${hint}`);
|
|
92
|
-
return {
|
|
93
|
-
psk: this.keys.encryptionKey,
|
|
94
|
-
identity: '',
|
|
95
|
-
};
|
|
96
|
-
},
|
|
97
|
-
ciphers: 'PSK-AES256-CBC-SHA:PSK-AES128-CBC-SHA:PSK-3DES-EDE-CBC-SHA:PSK-RC4-SHA:PSK',
|
|
98
|
-
secureProtocol: 'TLSv1_2_method',
|
|
99
|
-
// SECURITY NOTE: Disabling certificate validation is intentional and safe in this context.
|
|
100
|
-
// This connection uses TLS-PSK (Pre-Shared Key) authentication, where the pre-shared key
|
|
101
|
-
// itself provides mutual authentication between client and server. Traditional X.509
|
|
102
|
-
// certificate validation is not used in PSK-based TLS connections. The encryption key
|
|
103
|
-
// was securely established during the pairing process (which involves PIN verification),
|
|
104
|
-
// and this key authenticates both parties. This is the standard approach for Apple TV's
|
|
105
|
-
// RemoteXPC protocol and should NOT be changed to use certificate validation.
|
|
106
|
-
rejectUnauthorized: false,
|
|
107
|
-
checkServerIdentity: () => undefined,
|
|
108
|
-
};
|
|
109
|
-
const socket = tls.connect(options, () => {
|
|
110
|
-
log.debug('TLS-PSK connection established');
|
|
111
|
-
resolve(socket);
|
|
112
|
-
});
|
|
113
|
-
socket.on('error', (error) => {
|
|
114
|
-
log.error('TLS-PSK connection error:', error);
|
|
115
|
-
if (error.message?.includes('no shared cipher') ||
|
|
116
|
-
error.code === 'ECONNRESET') {
|
|
117
|
-
log.error('PSK ciphers may not be available in your Node.js build');
|
|
118
|
-
log.error('You may need to:');
|
|
119
|
-
log.error('1. Use Node.js compiled with PSK-enabled OpenSSL');
|
|
120
|
-
log.error('2. Use a Python subprocess for the TLS-PSK connection');
|
|
121
|
-
log.error('3. Use a native module like node-openssl');
|
|
122
|
-
}
|
|
123
|
-
reject(error);
|
|
124
|
-
});
|
|
125
|
-
socket.on('secureConnect', () => {
|
|
126
|
-
log.debug('Secure connection event fired');
|
|
127
|
-
});
|
|
128
|
-
socket.on('tlsClientError', (error) => {
|
|
129
|
-
log.error('TLS client error:', error);
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
84
|
getSequenceNumber() {
|
|
134
85
|
return this.sequenceNumber;
|
|
135
86
|
}
|
|
@@ -284,12 +235,12 @@ export class AppleTVTunnelService {
|
|
|
284
235
|
appleTVLog.info(`✅ Successfully verified with pair record: ${identifier}`);
|
|
285
236
|
const listenerInfo = await this.createTcpListener(keys);
|
|
286
237
|
this.networkClient.disconnect();
|
|
287
|
-
const
|
|
238
|
+
const tcpSocket = await connectToListenerPort(connectionTarget, listenerInfo.port);
|
|
288
239
|
appleTVLog.debug('Step 6: Tunnel Establishment success');
|
|
289
240
|
appleTVLog.info(`🔑 Using pair record: ${identifier}`);
|
|
290
241
|
appleTVLog.info(`📱 Connected to device: ${device.identifier} (${device.name})`);
|
|
291
242
|
appleTVLog.info(` Target: ${connectionTarget}:${device.port}`);
|
|
292
|
-
return {
|
|
243
|
+
return { tcpSocket, psk: keys.encryptionKey, device };
|
|
293
244
|
}
|
|
294
245
|
catch (error) {
|
|
295
246
|
const errorMessage = error.message || String(error);
|
|
@@ -362,9 +313,13 @@ export class AppleTVTunnelService {
|
|
|
362
313
|
this.sequenceNumber = tunnelService.getSequenceNumber();
|
|
363
314
|
return listenerInfo;
|
|
364
315
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
316
|
+
}
|
|
317
|
+
function connectToListenerPort(hostname, port) {
|
|
318
|
+
return new Promise((resolve, reject) => {
|
|
319
|
+
const socket = net.connect({ host: hostname, port }, () => {
|
|
320
|
+
resolve(socket);
|
|
321
|
+
});
|
|
322
|
+
socket.once('error', reject);
|
|
323
|
+
});
|
|
369
324
|
}
|
|
370
325
|
//# sourceMappingURL=tunnel-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,8CAA8C,GAC/C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACvC,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAErD,MAAM,OAAO,aAAa;IAIL;IACA;IACT;IALF,uBAAuB,GAAG,CAAC,CAAC;IAEpC,YACmB,aAAqC,EACrC,IAAsB,EAC/B,cAAsB;QAFb,kBAAa,GAAb,aAAa,CAAwB;QACrC,SAAI,GAAJ,IAAI,CAAkB;QAC/B,mBAAc,GAAd,cAAc,CAAQ;IAC7B,CAAC;IAEJ,KAAK,CAAC,iBAAiB;QACrB,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,EAAE,EAAE;oBACF,cAAc,EAAE;wBACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAC/C,mBAAmB,EAAE;4BACnB;gCACE,SAAS,EAAE,OAAO,CAAC,GAAG;gCACtB,iBAAiB,EAAE,mBAAmB;6BACvC;yBACF;wBACD,qBAAqB,EAAE,KAAK;qBAC7B;iBACF;aACF;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,uBAAuB,CAAC;YACxC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAClC,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG;YACvB,OAAO,EAAE;gBACP,eAAe,EAAE;oBACf,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACjC;aACF;YACD,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;SACtC,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAE5D,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC;QAE5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,YAAY,CACpB,kDAAkD,EAClD,4BAA4B,EAC5B,EAAE,QAAQ,EAAE,CACb,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,uBAAuB,CAAC;YACxC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAClC,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,sBAAsB,GAAG,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,CAAC;QAE1E,IAAI,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,KAAK,CACP,oCAAoC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC5E,CAAC;YACF,MAAM,IAAI,YAAY,CACpB,wDAAwD,EACxD,uBAAuB,EACvB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,iCAAiC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1E,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,IAAY;QAEZ,GAAG,CAAC,KAAK,CAAC,kCAAkC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAA4B;gBACvC,IAAI,EAAE,QAAQ;gBACd,IAAI;gBACJ,WAAW,EAAE,CAAC,IAAmB,EAAE,EAAE;oBACnC,GAAG,CAAC,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;oBACrD,OAAO;wBACL,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;wBAC5B,QAAQ,EAAE,EAAE;qBACb,CAAC;gBACJ,CAAC;gBACD,OAAO,EACL,4EAA4E;gBAC9E,cAAc,EAAE,gBAAgB;gBAChC,2FAA2F;gBAC3F,yFAAyF;gBACzF,qFAAqF;gBACrF,sFAAsF;gBACtF,yFAAyF;gBACzF,wFAAwF;gBACxF,8EAA8E;gBAC9E,kBAAkB,EAAE,KAAK;gBACzB,mBAAmB,EAAE,GAAG,EAAE,CAAC,SAAS;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC5C,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAgC,EAAE,EAAE;gBACtD,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAE9C,IACE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC;oBAC3C,KAAK,CAAC,IAAI,KAAK,YAAY,EAC3B,CAAC;oBACD,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACpE,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBAC9B,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBAC9D,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;oBACnE,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACxD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC9B,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACd,aAAa,CAAgB;IAC7B,OAAO,CAAiB;IACxB,OAAO,CAAoB;IACpC,cAAc,GAAG,CAAC,CAAC;IAE3B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAChC,uEAAuE;QACvE,sEAAsE;QACtE,sCAAsC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,kEAAkE;QAClE,kDAAkD;QAClD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvD,WAAW,EAAE,8CAA8C;YAC3D,MAAM,EAAE,+BAA+B;SACxC,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,eAAe,CACrD,sBAAsB,CAAC,gBAAgB,CACxC,CAAC;QACF,MAAM,eAAe,GACnB,MAAM,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAAiB,EACjB,wBAAiC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAClD,OAAO,EACP,wBAAwB,CACzB,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAExE,MAAM,cAAc,GAA4C,EAAE,CAAC;QAEnE,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACtC,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;oBAC1C,UAAU,CAAC,KAAK,CACd,iDAAiD,UAAU,MAAM,CAClE,CAAC;oBACF,UAAU,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAExD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACvD,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,UAAU,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;wBACjE,cAAc,CAAC,IAAI,CAAC;4BAClB,UAAU;4BACV,KAAK,EAAE,4BAA4B;yBACpC,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,CACf,CAAC;oBAEF,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,MAAM,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAEvC,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAwB;QACnD,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrD,UAAU,CAAC,KAAK,CACd,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAChF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,iBAAiB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpE,UAAU,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7C,UAAU,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,OAAwB,EACxB,wBAAiC;QAEjC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,wBAAwB,CAC3D,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,UAAU,CAAC,KAAK,CACd,4BAA4B,wBAAwB,mCAAmC,CACxF,CAAC;YACF,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,UAAU,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CACb,0BAA0B,wBAAwB,mDAAmD,CACtG,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,IAAI,CACb,kCAAkC,wBAAwB,EAAE,CAC7D,CAAC;QAEF,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CACrC,QAAiB;QAEjB,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAEtE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CACnC,MAAqB,EACrB,UAAkB,EAClB,UAAsB,EACtB,cAAuD;QAEvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC;gBAClB,UAAU;gBACV,KAAK,EAAE,gDAAgD;aACxD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAEhE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CACb,6CAA6C,UAAU,EAAE,CAC1D,CAAC;gBAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAEhC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACjD,gBAAgB,EAChB,YAAY,CAAC,IAAI,EACjB,IAAI,CACL,CAAC;gBAEF,UAAU,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACzD,UAAU,CAAC,IAAI,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CACb,2BAA2B,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,GAAG,CAChE,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,cAAc,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpD,UAAU,CAAC,KAAK,CACd,6BAA6B,UAAU,KAAK,YAAY,EAAE,CAC3D,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,eAAoB,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;YACxE,UAAU,CAAC,KAAK,CACd,wBAAwB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAC3E,CAAC;YACF,cAAc,CAAC,IAAI,CAAC;gBAClB,UAAU;gBACV,KAAK,EAAE,sBAAsB,YAAY,EAAE;aAC5C,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,cAAuD;QAEvD,UAAU,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC/D,UAAU,CAAC,KAAK,CAAC,6BAA6B,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/C,UAAU,CAAC,KAAK,CAAC,OAAO,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,gBAAgB,GAAG;YACvB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,EAAE,EAAE;wBACF,OAAO,EAAE;4BACP,EAAE,EAAE;gCACF,SAAS,EAAE;oCACT,EAAE,EAAE;wCACF,WAAW,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;wCACxC,mBAAmB,EAAE,EAAE;qCACxB;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;YACD,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;SACtC,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAE3C,UAAU,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAsB,EACtB,QAAgB;QAEhB,UAAU,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAE/D,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,CACvD,IAAI,CAAC,aAAa,CACnB,CAAC;QACF,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;QAE/D,UAAU,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,IAAsB;QAEtB,UAAU,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEtE,MAAM,aAAa,GAAG,IAAI,aAAa,CACrC,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAE7D,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAExD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,QAAgB,EAChB,IAAY,EACZ,IAAsB;QAEtB,MAAM,aAAa,GAAG,IAAI,aAAa,CACrC,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,aAAa,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"tunnel-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
import type * as tls from 'node:tls';
|
|
2
1
|
export interface TcpListenerInfo {
|
|
3
2
|
port: number;
|
|
4
3
|
serviceName: string;
|
|
5
4
|
devicePublicKey: string;
|
|
6
5
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Extended TLS connection options that include PSK (Pre-Shared Key) callback support.
|
|
9
|
-
* This interface extends the standard Node.js TLS ConnectionOptions to add PSK authentication.
|
|
10
|
-
*/
|
|
11
|
-
export interface TlsPskConnectionOptions extends tls.ConnectionOptions {
|
|
12
|
-
/**
|
|
13
|
-
* Callback function invoked during TLS handshake to provide PSK credentials.
|
|
14
|
-
* @param hint - Optional hint from the server about which PSK identity to use
|
|
15
|
-
* @returns Object containing the pre-shared key and identity string
|
|
16
|
-
*/
|
|
17
|
-
pskCallback?: (hint: string | null) => {
|
|
18
|
-
psk: Buffer;
|
|
19
|
-
identity: string;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
6
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type TunnelConnection } from 'appium-ios-tuntap';
|
|
2
|
-
import type {
|
|
1
|
+
import { type TunnelConnection, type TunnelLockdownTlsCredentials, type TunnelPskTlsCredentials } from 'appium-ios-tuntap';
|
|
2
|
+
import type { Socket } from 'node:net';
|
|
3
3
|
/**
|
|
4
4
|
* A wrapper around the tunnel connection that
|
|
5
5
|
* maintains a registry of active tunnels that can be reused.
|
|
@@ -20,13 +20,17 @@ declare class TunnelManagerService {
|
|
|
20
20
|
*/
|
|
21
21
|
getActiveTunnels(): string[];
|
|
22
22
|
/**
|
|
23
|
-
* Establishes a tunnel
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
* Establishes a tunnel via native OpenSSL forwarding (raw TCP + pair-record PEM).
|
|
24
|
+
*/
|
|
25
|
+
getTunnel(tcpSocket: Socket, credentials: TunnelLockdownTlsCredentials, options?: {
|
|
26
|
+
onDead?: (reason: string) => void;
|
|
27
|
+
}): Promise<TunnelConnection>;
|
|
28
|
+
/**
|
|
29
|
+
* Establishes an Apple TV tunnel via native OpenSSL TLS-PSK forwarding.
|
|
28
30
|
*/
|
|
29
|
-
|
|
31
|
+
getTunnelPsk(tcpSocket: Socket, credentials: TunnelPskTlsCredentials, options?: {
|
|
32
|
+
onDead?: (reason: string) => void;
|
|
33
|
+
}): Promise<TunnelConnection>;
|
|
30
34
|
/**
|
|
31
35
|
* Gets an existing tunnel by address if available
|
|
32
36
|
*
|
|
@@ -54,10 +58,11 @@ declare class TunnelManagerService {
|
|
|
54
58
|
* @returns A promise that resolves when all tunnels are closed.
|
|
55
59
|
*/
|
|
56
60
|
closeTunnel(): Promise<void>;
|
|
61
|
+
private registerTunnel;
|
|
57
62
|
}
|
|
58
63
|
export declare const TunnelManager: TunnelManagerService;
|
|
59
64
|
export { discoverServices, servicesToCatalog } from './tunnel-rsd-discovery.js';
|
|
60
65
|
export { TunnelReadinessCoordinator } from './tunnel-readiness.js';
|
|
61
|
-
export { watchTunnelRegistrySockets, type TunnelRegistrySocketWatch, type WatchTunnelRegistryOptions, } from './tunnel-registry-lifecycle.js';
|
|
66
|
+
export { watchTunnelRegistrySockets, watchTunnelRegistryOnDead, type TunnelRegistrySocketWatch, type TunnelRegistryOnDeadWatch, type WatchTunnelRegistryOptions, type WatchTunnelRegistryOnDeadOptions, } from './tunnel-registry-lifecycle.js';
|
|
62
67
|
export type { TunnelConnection };
|
|
63
68
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAG7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAevC;;;GAGG;AACH,cAAM,oBAAoB;IAExB,OAAO,CAAC,cAAc,CAA+C;IACrE;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKtC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAM5B;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,4BAA4B,EACzC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC9C,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,uBAAuB,EACpC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC9C,OAAO,CAAC,gBAAgB,CAAC;IAK5B;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAU5D;;;;;OAKG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1D;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAatC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAIpB,cAAc;CAkC7B;AAGD,eAAO,MAAM,aAAa,sBAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,GACtC,MAAM,gCAAgC,CAAC;AAExC,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { connectToTunnelLockdown, } from 'appium-ios-tuntap';
|
|
1
|
+
import { connectToTunnelLockdown, connectToTunnelPsk, } from 'appium-ios-tuntap';
|
|
2
2
|
import { getLogger } from '../logger.js';
|
|
3
3
|
const log = getLogger('TunnelManager');
|
|
4
4
|
/**
|
|
@@ -29,54 +29,18 @@ class TunnelManagerService {
|
|
|
29
29
|
.map(([address]) => address);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* Establishes a tunnel
|
|
33
|
-
* If a tunnel is already open for the same address, it will be reused.
|
|
34
|
-
*
|
|
35
|
-
* @param secureServiceSocket - The secure service socket used to create the tunnel.
|
|
36
|
-
* @returns A promise that resolves to the tunnel connection instance.
|
|
32
|
+
* Establishes a tunnel via native OpenSSL forwarding (raw TCP + pair-record PEM).
|
|
37
33
|
*/
|
|
38
|
-
async getTunnel(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (tunnel.tunnelManager?.emit instanceof Function) {
|
|
49
|
-
// Close the new tunnel since we're reusing an existing one
|
|
50
|
-
try {
|
|
51
|
-
await tunnel.closer();
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
log.warn(`Error closing redundant tunnel: ${error}`);
|
|
55
|
-
}
|
|
56
|
-
// Update the last used timestamp
|
|
57
|
-
existingTunnel.lastUsed = Date.now();
|
|
58
|
-
return existingTunnel.tunnel;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
log.warn('Existing tunnel appears to be non-functional, creating a new one');
|
|
62
|
-
// Mark the existing tunnel as inactive
|
|
63
|
-
existingTunnel.isActive = false;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
log.warn(`Error checking tunnel functionality: ${error}, creating a new one`);
|
|
68
|
-
// Mark the existing tunnel as inactive
|
|
69
|
-
existingTunnel.isActive = false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Register the new tunnel
|
|
73
|
-
log.info(`Creating new tunnel for address: ${tunnel.Address}`);
|
|
74
|
-
this.tunnelRegistry.set(tunnel.Address, {
|
|
75
|
-
tunnel,
|
|
76
|
-
lastUsed: Date.now(),
|
|
77
|
-
isActive: true,
|
|
78
|
-
});
|
|
79
|
-
return tunnel;
|
|
34
|
+
async getTunnel(tcpSocket, credentials, options) {
|
|
35
|
+
const tunnel = await connectToTunnelLockdown(tcpSocket, credentials, options);
|
|
36
|
+
return this.registerTunnel(tunnel, 'tunnel');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Establishes an Apple TV tunnel via native OpenSSL TLS-PSK forwarding.
|
|
40
|
+
*/
|
|
41
|
+
async getTunnelPsk(tcpSocket, credentials, options) {
|
|
42
|
+
const tunnel = await connectToTunnelPsk(tcpSocket, credentials, options);
|
|
43
|
+
return this.registerTunnel(tunnel, 'Apple TV tunnel');
|
|
80
44
|
}
|
|
81
45
|
/**
|
|
82
46
|
* Gets an existing tunnel by address if available
|
|
@@ -145,10 +109,39 @@ class TunnelManagerService {
|
|
|
145
109
|
async closeTunnel() {
|
|
146
110
|
return this.closeAllTunnels();
|
|
147
111
|
}
|
|
112
|
+
async registerTunnel(tunnel, kindLabel) {
|
|
113
|
+
const existingTunnel = this.tunnelRegistry.get(tunnel.Address);
|
|
114
|
+
if (existingTunnel?.isActive) {
|
|
115
|
+
log.info(`Reusing existing tunnel for address: ${tunnel.Address}`);
|
|
116
|
+
try {
|
|
117
|
+
if (tunnel.tunnelManager) {
|
|
118
|
+
try {
|
|
119
|
+
await tunnel.closer();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
log.warn(`Error closing redundant tunnel: ${error}`);
|
|
123
|
+
}
|
|
124
|
+
existingTunnel.lastUsed = Date.now();
|
|
125
|
+
return existingTunnel.tunnel;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
log.warn(`Error checking tunnel functionality: ${error}, creating a new one`);
|
|
130
|
+
existingTunnel.isActive = false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
log.info(`Creating new ${kindLabel} for address: ${tunnel.Address}`);
|
|
134
|
+
this.tunnelRegistry.set(tunnel.Address, {
|
|
135
|
+
tunnel,
|
|
136
|
+
lastUsed: Date.now(),
|
|
137
|
+
isActive: true,
|
|
138
|
+
});
|
|
139
|
+
return tunnel;
|
|
140
|
+
}
|
|
148
141
|
}
|
|
149
142
|
// Create and export the singleton instance
|
|
150
143
|
export const TunnelManager = new TunnelManagerService();
|
|
151
144
|
export { discoverServices, servicesToCatalog } from './tunnel-rsd-discovery.js';
|
|
152
145
|
export { TunnelReadinessCoordinator } from './tunnel-readiness.js';
|
|
153
|
-
export { watchTunnelRegistrySockets, } from './tunnel-registry-lifecycle.js';
|
|
146
|
+
export { watchTunnelRegistrySockets, watchTunnelRegistryOnDead, } from './tunnel-registry-lifecycle.js';
|
|
154
147
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAWvC;;;GAGG;AACH,MAAM,oBAAoB;IACxB,iDAAiD;IACzC,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;IACrE;;;;;OAKG;IACH,YAAY,CAAC,OAAe;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,WAAyC,EACzC,OAA+C;QAE/C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,SAAS,EACT,WAAW,EACX,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,WAAoC,EACpC,OAA+C;QAE/C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,OAAe;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,iCAAiC;YACjC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,mBAAmB;gBACnB,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC5B,GAAG,CAAC,IAAI,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,oCAAoC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;gBACrE,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACvB,GAAG,CAAC,IAAI,CAAC,6BAA6B,OAAO,cAAc,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,oCAAoC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAwB,EACxB,SAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,cAAc,EAAE,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,wCAAwC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,CAAC,IAAI,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;oBACvD,CAAC;oBACD,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACrC,OAAO,cAAc,CAAC,MAAM,CAAC;gBAC/B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CACN,wCAAwC,KAAK,sBAAsB,CACpE,CAAC;gBACF,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,gBAAgB,SAAS,iBAAiB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;YACtC,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,GAK1B,MAAM,gCAAgC,CAAC"}
|
|
@@ -20,6 +20,20 @@ export interface WatchTunnelRegistryOptions {
|
|
|
20
20
|
address: string;
|
|
21
21
|
}) => void | Promise<void>;
|
|
22
22
|
}
|
|
23
|
+
export interface TunnelRegistryOnDeadWatch {
|
|
24
|
+
udid: string;
|
|
25
|
+
/** Register a handler invoked when the native forwarder exits unexpectedly. */
|
|
26
|
+
registerOnDead: (handler: (reason: string) => void) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface WatchTunnelRegistryOnDeadOptions {
|
|
29
|
+
registry: TunnelRegistry;
|
|
30
|
+
watches: TunnelRegistryOnDeadWatch[];
|
|
31
|
+
onRemove?: (udid: string) => void | Promise<void>;
|
|
32
|
+
onTunnelDead?: (ctx: {
|
|
33
|
+
udid: string;
|
|
34
|
+
address: string;
|
|
35
|
+
}) => void | Promise<void>;
|
|
36
|
+
}
|
|
23
37
|
/**
|
|
24
38
|
* Removes a tunnel from the registry when its upstream CoreDeviceProxy socket dies.
|
|
25
39
|
*
|
|
@@ -28,4 +42,10 @@ export interface WatchTunnelRegistryOptions {
|
|
|
28
42
|
export declare function watchTunnelRegistrySockets(options: WatchTunnelRegistryOptions): {
|
|
29
43
|
stop: () => void;
|
|
30
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Removes a tunnel from the registry when its native forwarder dies (lockdown or TLS-PSK).
|
|
47
|
+
*/
|
|
48
|
+
export declare function watchTunnelRegistryOnDead(options: WatchTunnelRegistryOnDeadOptions): {
|
|
49
|
+
stop: () => void;
|
|
50
|
+
};
|
|
31
51
|
//# sourceMappingURL=tunnel-registry-lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-registry-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,0BAA0B,GAClC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAqEtB"}
|
|
1
|
+
{"version":3,"file":"tunnel-registry-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,cAAc,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,0BAA0B,GAClC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAqEtB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAiEtB"}
|