appium-ios-remotexpc 1.1.5 → 1.1.7

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/src/lib/apple-tv/constants.d.ts +15 -1
  3. package/build/src/lib/apple-tv/constants.d.ts.map +1 -1
  4. package/build/src/lib/apple-tv/constants.js +15 -1
  5. package/build/src/lib/apple-tv/constants.js.map +1 -1
  6. package/build/src/lib/apple-tv/pairing/pairing-service.js +2 -2
  7. package/build/src/lib/apple-tv/pairing/pairing-service.js.map +1 -1
  8. package/build/src/lib/apple-tv/tunnel/remoted-controller.d.ts +25 -0
  9. package/build/src/lib/apple-tv/tunnel/remoted-controller.d.ts.map +1 -0
  10. package/build/src/lib/apple-tv/tunnel/remoted-controller.js +92 -0
  11. package/build/src/lib/apple-tv/tunnel/remoted-controller.js.map +1 -0
  12. package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts +1 -0
  13. package/build/src/lib/apple-tv/tunnel/tunnel-service.d.ts.map +1 -1
  14. package/build/src/lib/apple-tv/tunnel/tunnel-service.js +41 -19
  15. package/build/src/lib/apple-tv/tunnel/tunnel-service.js.map +1 -1
  16. package/build/src/lib/discovery/base-discovery-backend.d.ts +18 -0
  17. package/build/src/lib/discovery/base-discovery-backend.d.ts.map +1 -0
  18. package/build/src/lib/discovery/base-discovery-backend.js +37 -0
  19. package/build/src/lib/discovery/base-discovery-backend.js.map +1 -0
  20. package/build/src/lib/discovery/bonjour-discovery-backend.d.ts +21 -0
  21. package/build/src/lib/discovery/bonjour-discovery-backend.d.ts.map +1 -0
  22. package/build/src/lib/discovery/bonjour-discovery-backend.js +221 -0
  23. package/build/src/lib/discovery/bonjour-discovery-backend.js.map +1 -0
  24. package/build/src/lib/discovery/bonjour-output-parsers.d.ts +37 -0
  25. package/build/src/lib/discovery/bonjour-output-parsers.d.ts.map +1 -0
  26. package/build/src/lib/discovery/bonjour-output-parsers.js +77 -0
  27. package/build/src/lib/discovery/bonjour-output-parsers.js.map +1 -0
  28. package/build/src/lib/discovery/discovery-backend-factory.d.ts +9 -0
  29. package/build/src/lib/discovery/discovery-backend-factory.d.ts.map +1 -1
  30. package/build/src/lib/discovery/discovery-backend-factory.js +13 -1
  31. package/build/src/lib/discovery/discovery-backend-factory.js.map +1 -1
  32. package/build/src/lib/discovery/discovery-utils.d.ts +13 -0
  33. package/build/src/lib/discovery/discovery-utils.d.ts.map +1 -0
  34. package/build/src/lib/discovery/discovery-utils.js +38 -0
  35. package/build/src/lib/discovery/discovery-utils.js.map +1 -0
  36. package/build/src/lib/discovery/dnssd-discovery-backend.d.ts +11 -6
  37. package/build/src/lib/discovery/dnssd-discovery-backend.d.ts.map +1 -1
  38. package/build/src/lib/discovery/dnssd-discovery-backend.js +15 -56
  39. package/build/src/lib/discovery/dnssd-discovery-backend.js.map +1 -1
  40. package/build/src/lib/discovery/index.d.ts +1 -0
  41. package/build/src/lib/discovery/index.d.ts.map +1 -1
  42. package/build/src/lib/discovery/index.js +1 -0
  43. package/build/src/lib/discovery/index.js.map +1 -1
  44. package/build/src/lib/tunnel/packet-stream-server.d.ts +4 -0
  45. package/build/src/lib/tunnel/packet-stream-server.d.ts.map +1 -1
  46. package/build/src/lib/tunnel/packet-stream-server.js +27 -8
  47. package/build/src/lib/tunnel/packet-stream-server.js.map +1 -1
  48. package/package.json +3 -3
  49. package/src/lib/apple-tv/constants.ts +19 -1
  50. package/src/lib/apple-tv/pairing/pairing-service.ts +2 -2
  51. package/src/lib/apple-tv/tunnel/remoted-controller.ts +99 -0
  52. package/src/lib/apple-tv/tunnel/tunnel-service.ts +50 -27
  53. package/src/lib/discovery/base-discovery-backend.ts +51 -0
  54. package/src/lib/discovery/bonjour-discovery-backend.ts +316 -0
  55. package/src/lib/discovery/bonjour-output-parsers.ts +101 -0
  56. package/src/lib/discovery/discovery-backend-factory.ts +13 -1
  57. package/src/lib/discovery/discovery-utils.ts +42 -0
  58. package/src/lib/discovery/dnssd-discovery-backend.ts +18 -67
  59. package/src/lib/discovery/index.ts +1 -0
  60. package/src/lib/tunnel/packet-stream-server.ts +32 -11
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [1.1.7](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.6...v1.1.7) (2026-05-11)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **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)
6
+
7
+ ## [1.1.6](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.5...v1.1.6) (2026-05-06)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **packet-stream-server:** only evict client on actual broadcast write error ([#202](https://github.com/appium/appium-ios-remotexpc/issues/202)) ([0d9595e](https://github.com/appium/appium-ios-remotexpc/commit/0d9595e8b4ac2e6582b9f84ed6ac8516fb20006e))
12
+
1
13
  ## [1.1.5](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.4...v1.1.5) (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
- export declare const REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE = "_remotepairing._tcp";
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,qCAAqC,wBAAwB,CAAC;AAC3E,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"}
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
- export const REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE = '_remotepairing._tcp';
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":"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"}
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, REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE, } from '../constants.js';
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: REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE,
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,qCAAqC,GACtC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D,MAAM,GAAG,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;AAE/C,uEAAuE;AACvE,MAAM,OAAO,qBAAqB;IACf,aAAa,CAAgB;IAC7B,MAAM,CAAgB;IACtB,SAAS,CAAqB;IAC9B,eAAe,CAAkB;IAElD,YACE,SAA6B,EAC7B,SAAwB,sBAAsB;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CACxC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,cAAuB;QAEvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAChB,4GAA4G,CAAC;gBAC/G,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxB,MAAM,IAAI,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEtD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,MAAM,CAAC,UAAU;gBAC3B,WAAW;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAqB;QACxC,IAAI,CAAC;YACH,uDAAuD;YACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC;YAEtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,YAAY,CACpB,sDAAsD,EACtD,sBAAsB,CACvB,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,IAAI,CACN,wBAAwB,MAAM,CAAC,IAAI,OAAO,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAC5E,CAAC;YACF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvD,WAAW,EAAE,qCAAqC;gBAClD,MAAM,EAAE,+BAA+B;aACxC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CACN,yCAAyC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,cAAc,CAC3F,CAAC;YACF,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,eAAe,CACrD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;YACF,MAAM,eAAe,GACnB,MAAM,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;YAChE,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,YAAY,CACpB,yBAAyB,EACzB,iBAAiB,EACjB,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAwB,EACxB,cAAuB;QAEvB,iFAAiF;QACjF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChC,GAAG,CAAC,IAAI,CACN,MAAM,KAAK,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,EAAE,CAC1F,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,oDAAoD;gBACtD,CAAC,CAAC,6BAA6B,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;YAE3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhC,oEAAoE;YACpE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,IAAI,CACN,oBAAoB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CACjE,CAAC;gBACF,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzD,MAAM,IAAI,YAAY,CACpB,yBAAyB,OAAO,2BAA2B,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,EAC/E,0BAA0B,CAC3B,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,IAAI,CACN,oBAAoB,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CACzE,CAAC;YACF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CACN,4BAA4B,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CACtE,CAAC;YACF,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,0CAA0C;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAC5B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CACvE,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CACN,4BAA4B,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,GAAG,CACvE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,gDAAgD;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CACnE,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CACN,kCAAkC,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,GAAG,CACzF,CAAC;YACF,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,OAAO;aAC7B,GAAG,CACF,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,GAAG,CACxE;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,IAAI,YAAY,CACpB,WAAW,cAAc,oCAAoC,gBAAgB,EAAE,EAC/E,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF"}
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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"}
@@ -20,6 +20,7 @@ export declare class TunnelService {
20
20
  export declare class AppleTVTunnelService {
21
21
  private readonly networkClient;
22
22
  private readonly storage;
23
+ private readonly remoted;
23
24
  private sequenceNumber;
24
25
  constructor();
25
26
  disconnect(): void;
@@ -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;AACjD,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;IAkF7C,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,cAAc,CAAK;;IAO3B,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAkB3C,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;IAiD5D;;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"}
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, REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE, } from '../constants.js';
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('Invalid createListener response:', responseJson);
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: REMOTE_PAIRING_DISCOVERY_SERVICE_TYPE,
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 (const device of devicesToProcess) {
174
- for (const identifier of identifiersToTry) {
175
- appleTVLog.debug(`\n--- Attempting connection with pair record: ${identifier} ---`);
176
- appleTVLog.debug(`Device: ${device.ip}:${device.port}`);
177
- const pairRecord = await this.storage.load(identifier);
178
- if (!pairRecord) {
179
- appleTVLog.debug(`Failed to load pair record for ${identifier}`);
180
- failedAttempts.push({
181
- identifier,
182
- error: 'Failed to load pair record',
183
- });
184
- continue;
185
- }
186
- const result = await this.attemptDeviceConnection(device, identifier, pairRecord, failedAttempts);
187
- if (result) {
188
- return result;
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":"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,qCAAqC,GACtC,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;AAK/D,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,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;YAC5D,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;IACjC,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;IAC5D,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvD,WAAW,EAAE,qCAAqC;YAClD,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,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;gBAC1C,UAAU,CAAC,KAAK,CACd,iDAAiD,UAAU,MAAM,CAClE,CAAC;gBACF,UAAU,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAExD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,UAAU,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;oBACjE,cAAc,CAAC,IAAI,CAAC;wBAClB,UAAU;wBACV,KAAK,EAAE,4BAA4B;qBACpC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,CACf,CAAC;gBAEF,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,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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"}
@@ -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"}