appium-ios-remotexpc 1.1.6 → 1.1.8
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 +12 -0
- package/build/src/lib/apple-tv/constants.d.ts +15 -1
- package/build/src/lib/apple-tv/constants.d.ts.map +1 -1
- package/build/src/lib/apple-tv/constants.js +15 -1
- package/build/src/lib/apple-tv/constants.js.map +1 -1
- package/build/src/lib/apple-tv/pairing/pairing-service.js +2 -2
- package/build/src/lib/apple-tv/pairing/pairing-service.js.map +1 -1
- package/build/src/lib/apple-tv/tunnel/remoted-controller.d.ts +25 -0
- package/build/src/lib/apple-tv/tunnel/remoted-controller.d.ts.map +1 -0
- package/build/src/lib/apple-tv/tunnel/remoted-controller.js +92 -0
- package/build/src/lib/apple-tv/tunnel/remoted-controller.js.map +1 -0
- package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts +1 -0
- package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts.map +1 -1
- package/build/src/lib/apple-tv/tunnel/tunnel-service.js +41 -19
- package/build/src/lib/apple-tv/tunnel/tunnel-service.js.map +1 -1
- package/build/src/lib/discovery/base-discovery-backend.d.ts +18 -0
- package/build/src/lib/discovery/base-discovery-backend.d.ts.map +1 -0
- package/build/src/lib/discovery/base-discovery-backend.js +37 -0
- package/build/src/lib/discovery/base-discovery-backend.js.map +1 -0
- package/build/src/lib/discovery/bonjour-discovery-backend.d.ts +21 -0
- package/build/src/lib/discovery/bonjour-discovery-backend.d.ts.map +1 -0
- package/build/src/lib/discovery/bonjour-discovery-backend.js +221 -0
- package/build/src/lib/discovery/bonjour-discovery-backend.js.map +1 -0
- package/build/src/lib/discovery/bonjour-output-parsers.d.ts +37 -0
- package/build/src/lib/discovery/bonjour-output-parsers.d.ts.map +1 -0
- package/build/src/lib/discovery/bonjour-output-parsers.js +77 -0
- package/build/src/lib/discovery/bonjour-output-parsers.js.map +1 -0
- package/build/src/lib/discovery/discovery-backend-factory.d.ts +9 -0
- package/build/src/lib/discovery/discovery-backend-factory.d.ts.map +1 -1
- package/build/src/lib/discovery/discovery-backend-factory.js +13 -1
- package/build/src/lib/discovery/discovery-backend-factory.js.map +1 -1
- package/build/src/lib/discovery/discovery-utils.d.ts +13 -0
- package/build/src/lib/discovery/discovery-utils.d.ts.map +1 -0
- package/build/src/lib/discovery/discovery-utils.js +38 -0
- package/build/src/lib/discovery/discovery-utils.js.map +1 -0
- package/build/src/lib/discovery/dnssd-discovery-backend.d.ts +11 -6
- package/build/src/lib/discovery/dnssd-discovery-backend.d.ts.map +1 -1
- package/build/src/lib/discovery/dnssd-discovery-backend.js +15 -56
- package/build/src/lib/discovery/dnssd-discovery-backend.js.map +1 -1
- package/build/src/lib/discovery/index.d.ts +1 -0
- package/build/src/lib/discovery/index.d.ts.map +1 -1
- package/build/src/lib/discovery/index.js +1 -0
- package/build/src/lib/discovery/index.js.map +1 -1
- package/package.json +3 -3
- package/src/lib/apple-tv/constants.ts +19 -1
- package/src/lib/apple-tv/pairing/pairing-service.ts +2 -2
- package/src/lib/apple-tv/tunnel/remoted-controller.ts +99 -0
- package/src/lib/apple-tv/tunnel/tunnel-service.ts +50 -27
- package/src/lib/discovery/base-discovery-backend.ts +51 -0
- package/src/lib/discovery/bonjour-discovery-backend.ts +316 -0
- package/src/lib/discovery/bonjour-output-parsers.ts +101 -0
- package/src/lib/discovery/discovery-backend-factory.ts +13 -1
- package/src/lib/discovery/discovery-utils.ts +42 -0
- package/src/lib/discovery/dnssd-discovery-backend.ts +18 -67
- package/src/lib/discovery/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.1.8](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.7...v1.1.8) (2026-05-12)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **discovery:** accept single-digit hour in dns-sd timestamps ([#207](https://github.com/appium/appium-ios-remotexpc/issues/207)) ([0c084d9](https://github.com/appium/appium-ios-remotexpc/commit/0c084d974dc8f4dc629691beffd5a1e68a66082e))
|
|
6
|
+
|
|
7
|
+
## [1.1.7](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.6...v1.1.7) (2026-05-11)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **apple-tv:** correct mDNS service usage for pair-setup and tunnel ([#205](https://github.com/appium/appium-ios-remotexpc/issues/205)) ([f139e63](https://github.com/appium/appium-ios-remotexpc/commit/f139e6307555117848606c0f64e0bf6ac7ea4ff9)), closes [#171](https://github.com/appium/appium-ios-remotexpc/issues/171)
|
|
12
|
+
|
|
1
13
|
## [1.1.6](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.5...v1.1.6) (2026-05-06)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -3,7 +3,21 @@ export declare const DEFAULT_PAIRING_CONFIG: {
|
|
|
3
3
|
readonly discoveryTimeout: number;
|
|
4
4
|
readonly maxRetries: number;
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* mDNS service type for the PIN-based manual pairing flow. The Apple TV
|
|
8
|
+
* advertises this only while in pair-mode (Settings → Remotes and Devices →
|
|
9
|
+
* Remote App and Devices). It is used exclusively for initial pair-setup;
|
|
10
|
+
* `createListener` is *not* available on this service ("Tunnel listener
|
|
11
|
+
* creator not set" if attempted).
|
|
12
|
+
*/
|
|
13
|
+
export declare const REMOTE_PAIRING_MANUAL_DISCOVERY_SERVICE_TYPE = "_remotepairing-manual-pairing._tcp";
|
|
14
|
+
/**
|
|
15
|
+
* mDNS service type for the trusted/verified Remote Pairing service. The
|
|
16
|
+
* Apple TV starts advertising this once at least one host has paired with it.
|
|
17
|
+
* Tunnel-listener requests must be issued on this service after re-doing
|
|
18
|
+
* pair-verify with the stored pair record.
|
|
19
|
+
*/
|
|
20
|
+
export declare const REMOTE_PAIRING_VERIFIED_DISCOVERY_SERVICE_TYPE = "_remotepairing._tcp";
|
|
7
21
|
export declare const REMOTE_PAIRING_DISCOVERY_DOMAIN = "local";
|
|
8
22
|
export declare const PairingDataComponentType: {
|
|
9
23
|
readonly METHOD: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/apple-tv/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/apple-tv/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,4CAA4C,uCACnB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,8CAA8C,wBACpC,CAAC;AAExB,eAAO,MAAM,+BAA+B,UAAU,CAAC;AAGvD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC;AAGX,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAG1C,eAAO,MAAM,cAAc,QAc1B,CAAC;AAGF,eAAO,MAAM,aAAa,QAAY,CAAC;AAGvC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAG3C,eAAO,MAAM,YAAY,eAAe,CAAC;AAGzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAG5C,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,WAAW,IAAO,CAAC;AAChC,eAAO,MAAM,WAAW,IAAO,CAAC;AAChC,eAAO,MAAM,YAAY,IAAO,CAAC;AACjC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAO,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAO,CAAC;AAC5C,eAAO,MAAM,sBAAsB,KAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAGxC,eAAO,MAAM,kBAAkB,KAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,KAAO,CAAC;AACxC,eAAO,MAAM,mBAAmB,KAAO,CAAC;AACxC,eAAO,MAAM,mBAAmB,KAAO,CAAC;AAGxC,eAAO,MAAM,wBAAwB,KAAO,CAAC;AAC7C,eAAO,MAAM,6BAA6B,KAAO,CAAC;AAClD,eAAO,MAAM,8BAA8B,KAAO,CAAC;AACnD,eAAO,MAAM,8BAA8B,KAAO,CAAC;AAGnD,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAC5C,eAAO,MAAM,4BAA4B,MAAO,CAAC;AACjD,eAAO,MAAM,6BAA6B,MAAO,CAAC;AAClD,eAAO,MAAM,6BAA6B,MAAO,CAAC;AAGlD,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAC5C,eAAO,MAAM,4BAA4B,MAAO,CAAC;AAGjD,eAAO,MAAM,sBAAsB,MAAO,CAAC;AAC3C,eAAO,MAAM,2BAA2B,MAAO,CAAC;AAGhD,eAAO,MAAM,gBAAgB,MAAO,CAAC;AACrC,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,aAAa,CAAC"}
|
|
@@ -9,7 +9,21 @@ export const DEFAULT_PAIRING_CONFIG = {
|
|
|
9
9
|
discoveryTimeout: Number(process.env.APPLETV_DISCOVERY_TIMEOUT) || 10000,
|
|
10
10
|
maxRetries: Number(process.env.APPLETV_MAX_RETRIES) || 3,
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* mDNS service type for the PIN-based manual pairing flow. The Apple TV
|
|
14
|
+
* advertises this only while in pair-mode (Settings → Remotes and Devices →
|
|
15
|
+
* Remote App and Devices). It is used exclusively for initial pair-setup;
|
|
16
|
+
* `createListener` is *not* available on this service ("Tunnel listener
|
|
17
|
+
* creator not set" if attempted).
|
|
18
|
+
*/
|
|
19
|
+
export const REMOTE_PAIRING_MANUAL_DISCOVERY_SERVICE_TYPE = '_remotepairing-manual-pairing._tcp';
|
|
20
|
+
/**
|
|
21
|
+
* mDNS service type for the trusted/verified Remote Pairing service. The
|
|
22
|
+
* Apple TV starts advertising this once at least one host has paired with it.
|
|
23
|
+
* Tunnel-listener requests must be issued on this service after re-doing
|
|
24
|
+
* pair-verify with the stored pair record.
|
|
25
|
+
*/
|
|
26
|
+
export const REMOTE_PAIRING_VERIFIED_DISCOVERY_SERVICE_TYPE = '_remotepairing._tcp';
|
|
13
27
|
export const REMOTE_PAIRING_DISCOVERY_DOMAIN = 'local';
|
|
14
28
|
// TLV8 component type identifiers used in pairing data exchange
|
|
15
29
|
export const PairingDataComponentType = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/apple-tv/constants.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,qDAAqD;AACrD,gFAAgF;AAChF,yFAAyF;AACzF,uGAAuG;AACvG,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK;IACrD,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,KAAK;IACxE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;CAChD,CAAC;AAEX,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/apple-tv/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createDiscoveryBackend } from '../../discovery/index.js';
|
|
2
2
|
import { getLogger } from '../../logger.js';
|
|
3
|
-
import { DEFAULT_PAIRING_CONFIG, REMOTE_PAIRING_DISCOVERY_DOMAIN,
|
|
3
|
+
import { DEFAULT_PAIRING_CONFIG, REMOTE_PAIRING_DISCOVERY_DOMAIN, REMOTE_PAIRING_MANUAL_DISCOVERY_SERVICE_TYPE, } from '../constants.js';
|
|
4
4
|
import { enrichDiscoveredDevicesWithDevicectl } from '../devicectl-enrichment.js';
|
|
5
5
|
import { toAppleTVDevices } from '../discovered-device-mapper.js';
|
|
6
6
|
import { PairingError } from '../errors.js';
|
|
@@ -66,7 +66,7 @@ export class AppleTVPairingService {
|
|
|
66
66
|
async discoverDevices() {
|
|
67
67
|
try {
|
|
68
68
|
const backend = createDiscoveryBackend(process.platform, {
|
|
69
|
-
serviceType:
|
|
69
|
+
serviceType: REMOTE_PAIRING_MANUAL_DISCOVERY_SERVICE_TYPE,
|
|
70
70
|
domain: REMOTE_PAIRING_DISCOVERY_DOMAIN,
|
|
71
71
|
});
|
|
72
72
|
log.info(`Discovering Apple TV devices (waiting ${this.config.discoveryTimeout / 1000} seconds)...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing/pairing-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,
|
|
1
|
+
{"version":3,"file":"pairing-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing/pairing-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suspends and resumes macOS' `remoted` daemon around tunnel operations.
|
|
3
|
+
*
|
|
4
|
+
* `remoted` holds the trusted RemoteXPC tunnel for any paired device on this
|
|
5
|
+
* Mac. While it is active, the device may refuse a second `createListener`
|
|
6
|
+
* request from another client (returning `errorExtended`). pymobiledevice3
|
|
7
|
+
* solves this by SIGSTOP'ing `remoted` for the duration of the tunnel
|
|
8
|
+
* handshake, then SIGCONT'ing it afterwards. This class mirrors that
|
|
9
|
+
* behavior and is a no-op on non-darwin platforms.
|
|
10
|
+
*/
|
|
11
|
+
export declare class RemotedController {
|
|
12
|
+
private suspendedPid;
|
|
13
|
+
/**
|
|
14
|
+
* Suspends `remoted` if it is currently running and not already suspended
|
|
15
|
+
* by this controller. No-op on non-darwin platforms. Safe to call multiple
|
|
16
|
+
* times.
|
|
17
|
+
*/
|
|
18
|
+
suspend(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Resumes the `remoted` process previously suspended by this controller.
|
|
21
|
+
* No-op when nothing has been suspended. Safe to call multiple times.
|
|
22
|
+
*/
|
|
23
|
+
resume(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=remoted-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remoted-controller.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/remoted-controller.ts"],"names":[],"mappings":"AAaA;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B;;;OAGG;IACH,MAAM,IAAI,IAAI;CAaf"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
import { getLogger } from '../../logger.js';
|
|
4
|
+
const execFileAsync = promisify(execFile);
|
|
5
|
+
const log = getLogger('RemotedController');
|
|
6
|
+
const REMOTED_PROCESS_NAME = 'remoted';
|
|
7
|
+
const PGREP_BIN = 'pgrep';
|
|
8
|
+
const PGREP_NO_MATCH_EXIT_CODE = 1;
|
|
9
|
+
/**
|
|
10
|
+
* Suspends and resumes macOS' `remoted` daemon around tunnel operations.
|
|
11
|
+
*
|
|
12
|
+
* `remoted` holds the trusted RemoteXPC tunnel for any paired device on this
|
|
13
|
+
* Mac. While it is active, the device may refuse a second `createListener`
|
|
14
|
+
* request from another client (returning `errorExtended`). pymobiledevice3
|
|
15
|
+
* solves this by SIGSTOP'ing `remoted` for the duration of the tunnel
|
|
16
|
+
* handshake, then SIGCONT'ing it afterwards. This class mirrors that
|
|
17
|
+
* behavior and is a no-op on non-darwin platforms.
|
|
18
|
+
*/
|
|
19
|
+
export class RemotedController {
|
|
20
|
+
suspendedPid = null;
|
|
21
|
+
/**
|
|
22
|
+
* Suspends `remoted` if it is currently running and not already suspended
|
|
23
|
+
* by this controller. No-op on non-darwin platforms. Safe to call multiple
|
|
24
|
+
* times.
|
|
25
|
+
*/
|
|
26
|
+
async suspend() {
|
|
27
|
+
if (process.platform !== 'darwin' || this.suspendedPid !== null) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const pids = await findPidsByName(REMOTED_PROCESS_NAME);
|
|
31
|
+
if (pids.length === 0) {
|
|
32
|
+
log.debug('remoted is not running; nothing to suspend');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const pid = pids[0];
|
|
36
|
+
try {
|
|
37
|
+
process.kill(pid, 'SIGSTOP');
|
|
38
|
+
this.suspendedPid = pid;
|
|
39
|
+
log.debug(`Suspended remoted (pid ${pid})`);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
const reason = err?.code === 'EPERM'
|
|
43
|
+
? `permission denied (run with sudo so we can SIGSTOP remoted; otherwise ` +
|
|
44
|
+
`the device may reject createListener with "Tunnel listener creator not set")`
|
|
45
|
+
: String(err);
|
|
46
|
+
log.warn(`Failed to suspend remoted (pid ${pid}); continuing without suspension: ${reason}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resumes the `remoted` process previously suspended by this controller.
|
|
51
|
+
* No-op when nothing has been suspended. Safe to call multiple times.
|
|
52
|
+
*/
|
|
53
|
+
resume() {
|
|
54
|
+
if (this.suspendedPid === null) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const pid = this.suspendedPid;
|
|
58
|
+
this.suspendedPid = null;
|
|
59
|
+
try {
|
|
60
|
+
process.kill(pid, 'SIGCONT');
|
|
61
|
+
log.debug(`Resumed remoted (pid ${pid})`);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
log.warn(`Failed to resume remoted (pid ${pid}): ${err}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Locate all running processes that exactly match `name` and return their PIDs.
|
|
70
|
+
* Uses `pgrep -x` (exact match on process name) which is robust against
|
|
71
|
+
* launchd adding arguments to the daemon's command line.
|
|
72
|
+
*
|
|
73
|
+
* Returns an empty list when no processes match (`pgrep` exit code 1) or
|
|
74
|
+
* when `pgrep` itself cannot be invoked.
|
|
75
|
+
*/
|
|
76
|
+
async function findPidsByName(name) {
|
|
77
|
+
try {
|
|
78
|
+
const { stdout } = await execFileAsync(PGREP_BIN, ['-x', name]);
|
|
79
|
+
return stdout
|
|
80
|
+
.split('\n')
|
|
81
|
+
.map((line) => parseInt(line.trim(), 10))
|
|
82
|
+
.filter((pid) => Number.isFinite(pid) && pid > 0);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
const code = err?.code;
|
|
86
|
+
if (code !== PGREP_NO_MATCH_EXIT_CODE) {
|
|
87
|
+
log.debug(`pgrep failed for "${name}": ${err}`);
|
|
88
|
+
}
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=remoted-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remoted-controller.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/remoted-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,EAA2B,MAAM,YAAY,CAAC;AAK3E,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;IAoF7C,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IA4DzB,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;QAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;IA0D5D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;YACW,uBAAuB;IAoErC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YAWX,gBAAgB;YA4BhB,uBAAuB;YAmBvB,iBAAiB;YAiBjB,sBAAsB;CAYrC"}
|
|
@@ -2,7 +2,7 @@ import { util } from '@appium/support';
|
|
|
2
2
|
import * as tls from 'node:tls';
|
|
3
3
|
import { createDiscoveryBackend } from '../../discovery/discovery-backend-factory.js';
|
|
4
4
|
import { getLogger } from '../../logger.js';
|
|
5
|
-
import { DEFAULT_PAIRING_CONFIG, REMOTE_PAIRING_DISCOVERY_DOMAIN,
|
|
5
|
+
import { DEFAULT_PAIRING_CONFIG, REMOTE_PAIRING_DISCOVERY_DOMAIN, REMOTE_PAIRING_VERIFIED_DISCOVERY_SERVICE_TYPE, } from '../constants.js';
|
|
6
6
|
import { enrichDiscoveredDevicesWithDevicectl } from '../devicectl-enrichment.js';
|
|
7
7
|
import { toAppleTVDevices } from '../discovered-device-mapper.js';
|
|
8
8
|
import { decryptChaCha20Poly1305, encryptChaCha20Poly1305, } from '../encryption/index.js';
|
|
@@ -10,6 +10,7 @@ import { PairingError } from '../errors.js';
|
|
|
10
10
|
import { NetworkClient } from '../network/index.js';
|
|
11
11
|
import { PairVerificationProtocol } from '../pairing-protocol/index.js';
|
|
12
12
|
import { PairingStorage } from '../storage/pairing-storage.js';
|
|
13
|
+
import { RemotedController } from './remoted-controller.js';
|
|
13
14
|
const log = getLogger('TunnelService');
|
|
14
15
|
const appleTVLog = getLogger('AppleTVTunnelService');
|
|
15
16
|
export class TunnelService {
|
|
@@ -74,7 +75,7 @@ export class TunnelService {
|
|
|
74
75
|
const responseJson = JSON.parse(decrypted.toString('utf8'));
|
|
75
76
|
const createListenerResponse = responseJson?.response?._1?.createListener;
|
|
76
77
|
if (!createListenerResponse?.port) {
|
|
77
|
-
log.error(
|
|
78
|
+
log.error(`Invalid createListener response: ${JSON.stringify(responseJson, null, 2)}`);
|
|
78
79
|
throw new PairingError('TCP listener creation failed: missing port in response', 'LISTENER_PORT_MISSING', { response: responseJson });
|
|
79
80
|
}
|
|
80
81
|
log.debug(`TCP Listener created on port: ${createListenerResponse.port}`);
|
|
@@ -140,20 +141,31 @@ export class TunnelService {
|
|
|
140
141
|
export class AppleTVTunnelService {
|
|
141
142
|
networkClient;
|
|
142
143
|
storage;
|
|
144
|
+
remoted;
|
|
143
145
|
sequenceNumber = 0;
|
|
144
146
|
constructor() {
|
|
145
147
|
this.networkClient = new NetworkClient(DEFAULT_PAIRING_CONFIG);
|
|
146
148
|
this.storage = new PairingStorage(DEFAULT_PAIRING_CONFIG);
|
|
149
|
+
this.remoted = new RemotedController();
|
|
147
150
|
}
|
|
148
151
|
disconnect() {
|
|
149
152
|
this.networkClient.disconnect();
|
|
153
|
+
// Safety net: startTunnel() already resumes remoted in its own finally
|
|
154
|
+
// block, this guards against callers that abandon a partially-started
|
|
155
|
+
// tunnel without that path executing.
|
|
156
|
+
this.remoted.resume();
|
|
150
157
|
}
|
|
151
158
|
/**
|
|
152
159
|
* Discovers Apple TV devices advertising Remote Pairing on the local network.
|
|
153
160
|
*/
|
|
154
161
|
async discoverDevices() {
|
|
162
|
+
// The tunnel flow must use the trusted `_remotepairing._tcp` service.
|
|
163
|
+
// The PIN-setup `_remotepairing-manual-pairing._tcp` service does not
|
|
164
|
+
// expose a tunnel listener creator and rejects createListener with
|
|
165
|
+
// `errorExtended: { code: 3, NSLocalizedDescription: 'Unsupported
|
|
166
|
+
// operation: Tunnel listener creator not set' }`.
|
|
155
167
|
const backend = createDiscoveryBackend(process.platform, {
|
|
156
|
-
serviceType:
|
|
168
|
+
serviceType: REMOTE_PAIRING_VERIFIED_DISCOVERY_SERVICE_TYPE,
|
|
157
169
|
domain: REMOTE_PAIRING_DISCOVERY_DOMAIN,
|
|
158
170
|
});
|
|
159
171
|
const discoveredDevices = await backend.discoverDevices(DEFAULT_PAIRING_CONFIG.discoveryTimeout);
|
|
@@ -170,25 +182,35 @@ export class AppleTVTunnelService {
|
|
|
170
182
|
const devicesToProcess = this.selectDevicesToProcess(devices, specificDeviceIdentifier);
|
|
171
183
|
const identifiersToTry = await this.validateAndGetPairRecords(deviceId);
|
|
172
184
|
const failedAttempts = [];
|
|
173
|
-
for
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
// Suspend macOS' remoted daemon for the duration of the tunnel handshake.
|
|
186
|
+
// While remoted holds the trusted tunnel for a paired device, the device
|
|
187
|
+
// refuses a second createListener request from another client. Resumed in
|
|
188
|
+
// finally so the daemon never stays suspended after this method returns.
|
|
189
|
+
await this.remoted.suspend();
|
|
190
|
+
try {
|
|
191
|
+
for (const device of devicesToProcess) {
|
|
192
|
+
for (const identifier of identifiersToTry) {
|
|
193
|
+
appleTVLog.debug(`\n--- Attempting connection with pair record: ${identifier} ---`);
|
|
194
|
+
appleTVLog.debug(`Device: ${device.ip}:${device.port}`);
|
|
195
|
+
const pairRecord = await this.storage.load(identifier);
|
|
196
|
+
if (!pairRecord) {
|
|
197
|
+
appleTVLog.debug(`Failed to load pair record for ${identifier}`);
|
|
198
|
+
failedAttempts.push({
|
|
199
|
+
identifier,
|
|
200
|
+
error: 'Failed to load pair record',
|
|
201
|
+
});
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
const result = await this.attemptDeviceConnection(device, identifier, pairRecord, failedAttempts);
|
|
205
|
+
if (result) {
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
189
208
|
}
|
|
190
209
|
}
|
|
191
210
|
}
|
|
211
|
+
finally {
|
|
212
|
+
this.remoted.resume();
|
|
213
|
+
}
|
|
192
214
|
this.logFailureSummary(failedAttempts);
|
|
193
215
|
throw new Error('Failed to establish tunnel with any pair record. All authentication attempts failed.');
|
|
194
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tunnel-service.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/tunnel/tunnel-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DiscoveredDevice, DiscoveryOptions, IDeviceDiscoveryBackend } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Common scaffolding for discovery backends.
|
|
4
|
+
*
|
|
5
|
+
* Centralizes the in-flight deduplication so concurrent `discoverDevices`
|
|
6
|
+
* calls share a single underlying browse, and provides default options.
|
|
7
|
+
* Concrete backends only implement `runDiscovery`.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class BaseDiscoveryBackend implements IDeviceDiscoveryBackend {
|
|
10
|
+
protected readonly options: DiscoveryOptions;
|
|
11
|
+
private inFlightDiscovery?;
|
|
12
|
+
protected constructor(options?: DiscoveryOptions);
|
|
13
|
+
discoverDevices(timeoutMs: number): Promise<DiscoveredDevice[]>;
|
|
14
|
+
protected get serviceType(): string;
|
|
15
|
+
protected get domain(): string;
|
|
16
|
+
protected abstract runDiscovery(timeoutMs: number): Promise<DiscoveredDevice[]>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=base-discovery-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-discovery-backend.d.ts","sourceRoot":"","sources":["../../../../src/lib/discovery/base-discovery-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,8BAAsB,oBAAqB,YAAW,uBAAuB;IAIzE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;IAH9C,OAAO,CAAC,iBAAiB,CAAC,CAA8B;IAExD,SAAS,aACY,OAAO,GAAE,gBAG3B;IAGG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAYrE,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAED,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DISCOVERY_DEFAULT_DOMAIN, DISCOVERY_DEFAULT_SERVICE_TYPE, } from './constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Common scaffolding for discovery backends.
|
|
4
|
+
*
|
|
5
|
+
* Centralizes the in-flight deduplication so concurrent `discoverDevices`
|
|
6
|
+
* calls share a single underlying browse, and provides default options.
|
|
7
|
+
* Concrete backends only implement `runDiscovery`.
|
|
8
|
+
*/
|
|
9
|
+
export class BaseDiscoveryBackend {
|
|
10
|
+
options;
|
|
11
|
+
inFlightDiscovery;
|
|
12
|
+
constructor(options = {
|
|
13
|
+
serviceType: DISCOVERY_DEFAULT_SERVICE_TYPE,
|
|
14
|
+
domain: DISCOVERY_DEFAULT_DOMAIN,
|
|
15
|
+
}) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
}
|
|
18
|
+
async discoverDevices(timeoutMs) {
|
|
19
|
+
if (this.inFlightDiscovery) {
|
|
20
|
+
return await this.inFlightDiscovery;
|
|
21
|
+
}
|
|
22
|
+
this.inFlightDiscovery = this.runDiscovery(timeoutMs);
|
|
23
|
+
try {
|
|
24
|
+
return await this.inFlightDiscovery;
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
this.inFlightDiscovery = undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get serviceType() {
|
|
31
|
+
return this.options.serviceType || DISCOVERY_DEFAULT_SERVICE_TYPE;
|
|
32
|
+
}
|
|
33
|
+
get domain() {
|
|
34
|
+
return this.options.domain || DISCOVERY_DEFAULT_DOMAIN;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=base-discovery-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-discovery-backend.js","sourceRoot":"","sources":["../../../../src/lib/discovery/base-discovery-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AAOxB;;;;;;GAMG;AACH,MAAM,OAAgB,oBAAoB;IAInB;IAHb,iBAAiB,CAA+B;IAExD,YACqB,UAA4B;QAC7C,WAAW,EAAE,8BAA8B;QAC3C,MAAM,EAAE,wBAAwB;KACjC;QAHkB,YAAO,GAAP,OAAO,CAGzB;IACA,CAAC;IAEJ,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAc,WAAW;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,8BAA8B,CAAC;IACpE,CAAC;IAED,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,wBAAwB,CAAC;IACzD,CAAC;CAKF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseDiscoveryBackend } from './base-discovery-backend.js';
|
|
2
|
+
import type { DiscoveredDevice, DiscoveryOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Discovery backend that wraps macOS' built-in `dns-sd` CLI (Apple's Bonjour
|
|
5
|
+
* implementation).
|
|
6
|
+
*
|
|
7
|
+
* Apple's mDNSResponder advertises non-RFC-6335-compliant service names
|
|
8
|
+
* (e.g. `_remotepairing-manual-pairing._tcp`, 28 chars) which strict pure-JS
|
|
9
|
+
* mDNS libraries reject. The system `dns-sd` tool has no such restriction,
|
|
10
|
+
* making it the reliable choice on macOS.
|
|
11
|
+
*
|
|
12
|
+
* Historical note: this module is the spiritual successor to the original
|
|
13
|
+
* `src/lib/bonjour/bonjour-discovery.ts` removed by PR #171 in favor of the
|
|
14
|
+
* cross-platform `dnssd` library; the library turned out to be unable to
|
|
15
|
+
* handle Apple's long service names so the CLI-backed implementation is back.
|
|
16
|
+
*/
|
|
17
|
+
export declare class BonjourDiscoveryBackend extends BaseDiscoveryBackend {
|
|
18
|
+
constructor(options?: DiscoveryOptions);
|
|
19
|
+
protected runDiscovery(timeoutMs: number): Promise<DiscoveredDevice[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=bonjour-discovery-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bonjour-discovery-backend.d.ts","sourceRoot":"","sources":["../../../../src/lib/discovery/bonjour-discovery-backend.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AASnE,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAsCpB;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAwB,SAAQ,oBAAoB;gBACnD,OAAO,CAAC,EAAE,gBAAgB;cAIb,YAAY,CACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAuB/B"}
|