appium-ios-remotexpc 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/src/index.d.ts +2 -1
  3. package/build/src/index.d.ts.map +1 -1
  4. package/build/src/index.js +2 -1
  5. package/build/src/index.js.map +1 -1
  6. package/build/src/lib/tunnel/constants.d.ts +9 -0
  7. package/build/src/lib/tunnel/constants.d.ts.map +1 -0
  8. package/build/src/lib/tunnel/constants.js +9 -0
  9. package/build/src/lib/tunnel/constants.js.map +1 -0
  10. package/build/src/lib/tunnel/errors.d.ts +7 -0
  11. package/build/src/lib/tunnel/errors.d.ts.map +1 -0
  12. package/build/src/lib/tunnel/errors.js +9 -0
  13. package/build/src/lib/tunnel/errors.js.map +1 -0
  14. package/build/src/lib/tunnel/tunnel-api-client.d.ts +3 -1
  15. package/build/src/lib/tunnel/tunnel-api-client.d.ts.map +1 -1
  16. package/build/src/lib/tunnel/tunnel-api-client.js +22 -7
  17. package/build/src/lib/tunnel/tunnel-api-client.js.map +1 -1
  18. package/build/src/lib/tunnel/tunnel-availability.d.ts +19 -0
  19. package/build/src/lib/tunnel/tunnel-availability.d.ts.map +1 -0
  20. package/build/src/lib/tunnel/tunnel-availability.js +113 -0
  21. package/build/src/lib/tunnel/tunnel-availability.js.map +1 -0
  22. package/build/src/lib/tunnel/tunnel-registry-routes.d.ts +0 -4
  23. package/build/src/lib/tunnel/tunnel-registry-routes.d.ts.map +1 -1
  24. package/build/src/lib/tunnel/tunnel-registry-routes.js +0 -4
  25. package/build/src/lib/tunnel/tunnel-registry-routes.js.map +1 -1
  26. package/build/src/lib/tunnel/tunnel-registry-server.js +2 -1
  27. package/build/src/lib/tunnel/tunnel-registry-server.js.map +1 -1
  28. package/build/src/services.d.ts +2 -22
  29. package/build/src/services.d.ts.map +1 -1
  30. package/build/src/services.js +2 -58
  31. package/build/src/services.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/index.ts +2 -2
  34. package/src/lib/tunnel/constants.ts +11 -0
  35. package/src/lib/tunnel/errors.ts +9 -0
  36. package/src/lib/tunnel/tunnel-api-client.ts +33 -7
  37. package/src/lib/tunnel/tunnel-availability.ts +159 -0
  38. package/src/lib/tunnel/tunnel-registry-routes.ts +0 -5
  39. package/src/lib/tunnel/tunnel-registry-server.ts +1 -1
  40. package/src/services.ts +6 -84
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [2.2.0](https://github.com/appium/appium-ios-remotexpc/compare/v2.1.2...v2.2.0) (2026-05-25)
2
+
3
+ ### Features
4
+
5
+ * Fail fast if a tunnel registry is not running ([#224](https://github.com/appium/appium-ios-remotexpc/issues/224)) ([9c5907b](https://github.com/appium/appium-ios-remotexpc/commit/9c5907be76acfe7ef74dcab799ec0b89bc95f1ff))
6
+
1
7
  ## [2.1.2](https://github.com/appium/appium-ios-remotexpc/compare/v2.1.1...v2.1.2) (2026-05-23)
2
8
 
3
9
  ### Code Refactoring
@@ -16,7 +16,8 @@ export type { SyslogEntry, SyslogLabel, SyslogLogLevel, } from './services/ios/s
16
16
  export type { CrashReportsService, CrashReportsPullOptions, DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, HouseArrestService, DVTSecureSocketProxyService, LocationSimulationService, ConditionInducerService, ScreenshotService, GraphicsService, DeviceInfoService, NetworkMonitorService, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DVTInstruments, NetworkAddress, InterfaceDetectionEvent, ConnectionDetectionEvent, ConnectionUpdateEvent, NetworkEvent, ProcessControlService, ProcessLaunchOptions, OutputReceivedEvent, SendMessageOptions, TestmanagerdService, XCTestServices, } from './lib/types.js';
17
17
  export { PowerAssertionType } from './lib/types.js';
18
18
  export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
19
- export { TunnelAvailabilityError, getTunnelForDevice, withRemoteXpcConnection, } from './services.js';
19
+ export { TunnelAvailabilityError, getTunnelForDevice, } from './lib/tunnel/tunnel-availability.js';
20
+ export { withRemoteXpcConnection } from './services.js';
20
21
  export type { TunnelEndpoint } from './lib/tunnel/tunnel-api-client.js';
21
22
  export { XCTestConfigurationEncoder } from './services/ios/testmanagerd/xctestconfiguration.js';
22
23
  export type { XCTestConfigurationParams } from './services/ios/testmanagerd/xctestconfiguration.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,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,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAC3F,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,sDAAsD,CAAC;AAE9D,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,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,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,YAAY,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AACpG,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;AACtD,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,8CAA8C,CAAC;AACtD,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;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,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,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
@@ -9,7 +9,8 @@ import { startCoreDeviceProxy } 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';
12
- export { TunnelAvailabilityError, getTunnelForDevice, withRemoteXpcConnection, } from './services.js';
12
+ export { TunnelAvailabilityError, getTunnelForDevice, } from './lib/tunnel/tunnel-availability.js';
13
+ export { withRemoteXpcConnection } from './services.js';
13
14
  export { XCTestConfigurationEncoder } from './services/ios/testmanagerd/xctestconfiguration.js';
14
15
  export { ProcessControl } from './services/ios/dvt/instruments/process-control.js';
15
16
  export { XCUITestService, XCTestRunner, createXCTestRunner, runXCTest, } from './services/ios/testmanagerd/xcuitest.js';
@@ -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,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,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,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAU9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAiDlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,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,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
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,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,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,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAU9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAiDlE,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,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,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,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Host for the local tunnel registry HTTP API and TCP health probe. */
2
+ export declare const TUNNEL_REGISTRY_HOST = "127.0.0.1";
3
+ /** Base URL path for the tunnel registry HTTP API. */
4
+ export declare const TUNNEL_REGISTRY_API_BASE_PATH = "/remotexpc/tunnels";
5
+ /** Timeout for tunnel registry HTTP lookups (single GET per device). */
6
+ export declare const TUNNEL_REGISTRY_HTTP_TIMEOUT_MS = 500;
7
+ /** Timeout for TCP probe that the registry HTTP server is listening. */
8
+ export declare const TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS = 300;
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/constants.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD,sDAAsD;AACtD,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,wEAAwE;AACxE,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,wEAAwE;AACxE,eAAO,MAAM,qCAAqC,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Host for the local tunnel registry HTTP API and TCP health probe. */
2
+ export const TUNNEL_REGISTRY_HOST = '127.0.0.1';
3
+ /** Base URL path for the tunnel registry HTTP API. */
4
+ export const TUNNEL_REGISTRY_API_BASE_PATH = '/remotexpc/tunnels';
5
+ /** Timeout for tunnel registry HTTP lookups (single GET per device). */
6
+ export const TUNNEL_REGISTRY_HTTP_TIMEOUT_MS = 500;
7
+ /** Timeout for TCP probe that the registry HTTP server is listening. */
8
+ export const TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS = 300;
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/constants.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAEhD,sDAAsD;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,wEAAwE;AACxE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class TunnelAvailabilityError extends Error {
2
+ readonly code = "ERR_TUNNEL_AVAILABILITY";
3
+ constructor(message: string, options?: {
4
+ cause?: unknown;
5
+ });
6
+ }
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,6BAA6B;gBAE9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAK3D"}
@@ -0,0 +1,9 @@
1
+ export class TunnelAvailabilityError extends Error {
2
+ code = 'ERR_TUNNEL_AVAILABILITY';
3
+ constructor(message, options) {
4
+ super(message, options);
5
+ this.name = new.target.name;
6
+ Object.setPrototypeOf(this, new.target.prototype);
7
+ }
8
+ }
9
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,yBAAyB,CAAC;IAE1C,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -93,9 +93,11 @@ export declare class TunnelApiClient {
93
93
  */
94
94
  deleteTunnel(udid: string): Promise<boolean>;
95
95
  /**
96
- * On strict: throws Error with message and cause. Otherwise logs and returns.
96
+ * On strict: throws {@link TunnelAvailabilityError} with message and cause.
97
+ * Otherwise logs and returns.
97
98
  */
98
99
  private handleFetchError;
100
+ private logFetchFailure;
99
101
  private fetchWithTimeout;
100
102
  }
101
103
  //# sourceMappingURL=tunnel-api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-api-client.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-api-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAcvE,MAAM,WAAW,sBAAsB;IACrC,wGAAwG;IACxG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;OAIG;gBACS,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAMpE;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAe9C;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAqBxE;;;;OAIG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAwBtC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAUrD;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAUxD;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAcvE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAU9C;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBhE;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBlD;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAiBV,gBAAgB;CAuB/B"}
1
+ {"version":3,"file":"tunnel-api-client.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-api-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAevE,MAAM,WAAW,sBAAsB;IACrC,wGAAwG;IACxG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;OAIG;gBACS,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAMpE;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAiB9C;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAuBxE;;;;OAIG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA0BtC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAUrD;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAUxD;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAcvE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAU9C;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBhE;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBlD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,eAAe;YAQT,gBAAgB;CA8B/B"}
@@ -1,4 +1,5 @@
1
1
  import { getLogger } from '../logger.js';
2
+ import { TunnelAvailabilityError } from './errors.js';
2
3
  const log = getLogger('TunnelApiClient');
3
4
  const EMPTY_REGISTRY = {
4
5
  tunnels: {},
@@ -42,7 +43,7 @@ export class TunnelApiClient {
42
43
  try {
43
44
  const response = await this.fetchWithTimeout(this.apiBaseUrl);
44
45
  if (!response.ok) {
45
- throw new Error(`API request failed with status: ${response.status}`);
46
+ throw new TunnelAvailabilityError(`Failed to fetch tunnel registry from API: HTTP ${response.status}`);
46
47
  }
47
48
  return (await response.json());
48
49
  }
@@ -63,7 +64,7 @@ export class TunnelApiClient {
63
64
  return null;
64
65
  }
65
66
  if (!response.ok) {
66
- throw new Error(`API request failed with status: ${response.status}`);
67
+ throw new TunnelAvailabilityError(`Failed to fetch tunnel for UDID ${udid}: HTTP ${response.status}`);
67
68
  }
68
69
  return (await response.json());
69
70
  }
@@ -84,7 +85,7 @@ export class TunnelApiClient {
84
85
  return null;
85
86
  }
86
87
  if (!response.ok) {
87
- throw new Error(`API request failed with status: ${response.status}`);
88
+ throw new TunnelAvailabilityError(`Failed to fetch tunnel for device ID ${deviceId}: HTTP ${response.status}`);
88
89
  }
89
90
  return (await response.json());
90
91
  }
@@ -198,14 +199,25 @@ export class TunnelApiClient {
198
199
  }
199
200
  }
200
201
  /**
201
- * On strict: throws Error with message and cause. Otherwise logs and returns.
202
+ * On strict: throws {@link TunnelAvailabilityError} with message and cause.
203
+ * Otherwise logs and returns.
202
204
  */
203
205
  handleFetchError(messagePrefix, error, logLevel = 'warn') {
206
+ if (error instanceof TunnelAvailabilityError) {
207
+ if (this.strict) {
208
+ throw error;
209
+ }
210
+ this.logFetchFailure(error.message, logLevel);
211
+ return;
212
+ }
204
213
  const detail = error instanceof Error ? error.message : String(error);
205
214
  const message = `${messagePrefix}: ${detail}`;
206
215
  if (this.strict) {
207
- throw new Error(message, { cause: error });
216
+ throw new TunnelAvailabilityError(message, { cause: error });
208
217
  }
218
+ this.logFetchFailure(message, logLevel);
219
+ }
220
+ logFetchFailure(message, logLevel) {
209
221
  if (logLevel === 'error') {
210
222
  log.error(message);
211
223
  }
@@ -224,10 +236,13 @@ export class TunnelApiClient {
224
236
  return response;
225
237
  }
226
238
  catch (error) {
239
+ if (error instanceof TunnelAvailabilityError) {
240
+ throw error;
241
+ }
227
242
  if (error instanceof Error && error.name === 'AbortError') {
228
- throw new Error(`Tunnel registry request timed out after ${this.timeoutMs}ms`);
243
+ throw new TunnelAvailabilityError(`Tunnel registry request timed out after ${this.timeoutMs}ms`, { cause: error });
229
244
  }
230
- throw error;
245
+ throw new TunnelAvailabilityError(`Tunnel registry request failed for ${url}`, { cause: error });
231
246
  }
232
247
  finally {
233
248
  clearTimeout(timeoutId);
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-api-client.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel-api-client.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TunnelAvailabilityError } from './errors.js';
2
+ import { type TunnelEndpoint } from './tunnel-api-client.js';
3
+ export { TunnelAvailabilityError };
4
+ /**
5
+ * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
6
+ * Strongbox port, TCP probe, then a single `GET /remotexpc/tunnels/{udid}`.
7
+ * @throws {TunnelAvailabilityError} When registry or tunnel for the UDID is unavailable.
8
+ */
9
+ export declare function getTunnelForDevice(udid: string): Promise<TunnelEndpoint>;
10
+ /**
11
+ * Returns the list of device UDIDs currently in the tunnel registry.
12
+ * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
13
+ * in the "connected devices" list for session validation.
14
+ *
15
+ * @returns UDIDs when the registry is reachable (possibly empty).
16
+ * @throws {TunnelAvailabilityError} When the registry port is missing or unreachable.
17
+ */
18
+ export declare function getAvailableDevices(): Promise<string[]>;
19
+ //# sourceMappingURL=tunnel-availability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel-availability.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-availability.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAInC;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAG7D"}
@@ -0,0 +1,113 @@
1
+ import { BaseItem, strongbox } from '@appium/strongbox';
2
+ import * as net from 'node:net';
3
+ import { TUNNEL_CONTAINER_NAME } from '../../constants.js';
4
+ import { TUNNEL_REGISTRY_API_BASE_PATH, TUNNEL_REGISTRY_HOST, TUNNEL_REGISTRY_HTTP_TIMEOUT_MS, TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS, } from './constants.js';
5
+ import { TunnelAvailabilityError } from './errors.js';
6
+ import { TunnelApiClient, } from './tunnel-api-client.js';
7
+ export { TunnelAvailabilityError };
8
+ const TUNNEL_REGISTRY_PORT = 'tunnelRegistryPort';
9
+ /**
10
+ * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
11
+ * Strongbox port, TCP probe, then a single `GET /remotexpc/tunnels/{udid}`.
12
+ * @throws {TunnelAvailabilityError} When registry or tunnel for the UDID is unavailable.
13
+ */
14
+ export async function getTunnelForDevice(udid) {
15
+ const client = await createValidatedStrictRegistryClient();
16
+ const entry = await client.getTunnelByUdid(udid);
17
+ if (!entry) {
18
+ throw new TunnelAvailabilityError(`No tunnel found for device ${udid}. Please run the tunnel creation script first`);
19
+ }
20
+ return mapEntryToEndpoint(entry);
21
+ }
22
+ /**
23
+ * Returns the list of device UDIDs currently in the tunnel registry.
24
+ * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
25
+ * in the "connected devices" list for session validation.
26
+ *
27
+ * @returns UDIDs when the registry is reachable (possibly empty).
28
+ * @throws {TunnelAvailabilityError} When the registry port is missing or unreachable.
29
+ */
30
+ export async function getAvailableDevices() {
31
+ const client = await createValidatedStrictRegistryClient();
32
+ return await client.getAvailableDevices();
33
+ }
34
+ /**
35
+ * Read the tunnel registry HTTP port from strongbox.
36
+ * @throws {TunnelAvailabilityError} When the port was never stored or is not a valid TCP port.
37
+ */
38
+ async function readTunnelRegistryPort() {
39
+ const box = strongbox(TUNNEL_CONTAINER_NAME);
40
+ const item = new BaseItem(TUNNEL_REGISTRY_PORT, box);
41
+ const tunnelRegistryPort = await item.read();
42
+ if (tunnelRegistryPort === undefined ||
43
+ String(tunnelRegistryPort).trim() === '') {
44
+ throw new TunnelAvailabilityError('Tunnel registry port not found. Please run the tunnel creation script first');
45
+ }
46
+ const stored = String(tunnelRegistryPort).trim();
47
+ const port = Number.parseInt(stored, 10);
48
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
49
+ throw new TunnelAvailabilityError(`Tunnel registry port "${stored}" is invalid; expected an integer between 1 and 65535`);
50
+ }
51
+ return port;
52
+ }
53
+ /**
54
+ * Verify the registry HTTP server is accepting TCP connections on localhost.
55
+ * @throws {TunnelAvailabilityError} When the port is closed or the probe times out.
56
+ */
57
+ async function assertRegistryPortAcceptingConnections(port) {
58
+ const registryAddress = `${TUNNEL_REGISTRY_HOST}:${port}`;
59
+ const unreachableMessage = `Tunnel registry at ${registryAddress} is not reachable. Please run the tunnel creation script first`;
60
+ await new Promise((resolve, reject) => {
61
+ const socket = net.connect({ host: TUNNEL_REGISTRY_HOST, port });
62
+ const timer = setTimeout(() => {
63
+ socket.destroy();
64
+ reject(new TunnelAvailabilityError(unreachableMessage));
65
+ }, TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS);
66
+ const finish = (err) => {
67
+ clearTimeout(timer);
68
+ socket.removeAllListeners();
69
+ if (!socket.destroyed) {
70
+ socket.destroy();
71
+ }
72
+ if (err) {
73
+ reject(err);
74
+ }
75
+ else {
76
+ resolve();
77
+ }
78
+ };
79
+ socket.once('connect', () => finish());
80
+ socket.once('error', (err) => {
81
+ if (err.code === 'ECONNREFUSED' || err.code === 'ENOTFOUND') {
82
+ finish(new TunnelAvailabilityError(unreachableMessage, { cause: err }));
83
+ return;
84
+ }
85
+ finish(new TunnelAvailabilityError(`Tunnel registry port probe failed for ${registryAddress}: ${err.message}`, { cause: err }));
86
+ });
87
+ });
88
+ }
89
+ /** Map a registry entry to a flat tunnel endpoint for RSD connect. */
90
+ function mapEntryToEndpoint(entry) {
91
+ return {
92
+ host: entry.address,
93
+ port: entry.rsdPort,
94
+ udid: entry.udid,
95
+ packetStreamPort: entry.packetStreamPort,
96
+ };
97
+ }
98
+ /**
99
+ * Build a strict tunnel registry API client (caller supplies port via base URL).
100
+ */
101
+ function createTunnelRegistryClient(port, options = {}) {
102
+ return new TunnelApiClient(`http://${TUNNEL_REGISTRY_HOST}:${port}${TUNNEL_REGISTRY_API_BASE_PATH}`, options);
103
+ }
104
+ /** Strongbox port, TCP probe, then a strict registry client with the lookup timeout. */
105
+ async function createValidatedStrictRegistryClient() {
106
+ const port = await readTunnelRegistryPort();
107
+ await assertRegistryPortAcceptingConnections(port);
108
+ return createTunnelRegistryClient(port, {
109
+ strict: true,
110
+ timeoutMs: TUNNEL_REGISTRY_HTTP_TIMEOUT_MS,
111
+ });
112
+ }
113
+ //# sourceMappingURL=tunnel-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel-availability.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-availability.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- /**
3
- * Base URL path for the tunnel registry HTTP API.
4
- */
5
- export declare const TUNNEL_REGISTRY_API_BASE_PATH = "/remotexpc/tunnels";
6
2
  export type RouteHandler = (req: IncomingMessage, res: ServerResponse, params: Record<string, string>) => Promise<void>;
7
3
  /**
8
4
  * Declarative route: method + path template + optional guard + handler.
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-registry-routes.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE;;GAEG;AACH,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;CAC9D;AAOD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,WAAW,EAAE,GAC7B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAuBjE"}
1
+ {"version":3,"file":"tunnel-registry-routes.d.ts","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;CAC9D;AAOD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,WAAW,EAAE,GAC7B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAuBjE"}
@@ -1,8 +1,4 @@
1
1
  import { match } from 'path-to-regexp';
2
- /**
3
- * Base URL path for the tunnel registry HTTP API.
4
- */
5
- export const TUNNEL_REGISTRY_API_BASE_PATH = '/remotexpc/tunnels';
6
2
  /**
7
3
  * Pathname from {@link IncomingMessage.url} (path + query on the request line).
8
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-registry-routes.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AA2BlE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA8B;IAE9B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAA8B;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAkD;IAElD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"tunnel-registry-routes.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AA2BvC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA8B;IAE9B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAA8B;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAkD;IAElD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import * as http from 'node:http';
2
2
  import { getLogger } from '../logger.js';
3
- import { TUNNEL_REGISTRY_API_BASE_PATH, createRouteDispatcher, getRequestPathname, } from './tunnel-registry-routes.js';
3
+ import { TUNNEL_REGISTRY_API_BASE_PATH } from './constants.js';
4
+ import { createRouteDispatcher, getRequestPathname, } from './tunnel-registry-routes.js';
4
5
  // Constants
5
6
  export const DEFAULT_TUNNEL_REGISTRY_PORT = 42314;
6
7
  /** Path segments that must not bind to `:udid` (reserved static routes). */
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-registry-server.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAEL,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,YAAY;AACZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD,4EAA4E;AAC5E,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE5D,kBAAkB;AAClB,MAAM,GAAG,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAe;IACtB,IAAI,CAAS;IACb,WAAW,CAAkB;IAC5B,QAAQ,GAAmB;QACjC,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE;YACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;SACjB;KACF,CAAC;IAEF;;;;OAIG;IACc,aAAa,GAAG,qBAAqB,CACpD,IAAI,CAAC,wBAAwB,EAAE,CAChC,CAAC;IAEF,YAAY,WAAuC,EAAE,IAAY;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAY,QAAQ;QAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACrD,OAAO;YACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,WAAW,EAAE,kCAAkC;SAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,YAAY;QACtB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,0CAA0C;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;oBAClC,GAAG,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,IAAI,CACN,qCAAqC,IAAI,CAAC,IAAI,GAAG,6BAA6B,EAAE,CACjF,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEH,uBAAuB;gBACvB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjC,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE;oBACnC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,GAAyB,EACzB,GAAwB;QAExB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEzC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC9C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,uBAAuB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,GAAwB;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;YACjD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,uBAAuB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,GAAwB;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;YACvD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,iCAAiC;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAwB,EACxB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,8BAA8B,IAAI,EAAE;iBAC5C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,sBAAsB;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,GAAwB,EACxB,QAAgB;QAEhB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC/B,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,mCAAmC,QAAQ,EAAE;iBACrD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,sBAAsB;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,GAAyB,EACzB,GAAwB,EACxB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,UAAU,GAA+B,IAAI,CAAC;YAClD,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,aAAa,CAAsB,GAAG,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,UAAmB,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAChB,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;gBACxD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,gCAAgC;iBACxC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAClD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,qBAAqB;iBAC7B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,0DAA0D;YAC1D,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,qCAAqC;iBAC7C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBAC5B,GAAG,UAAU;gBACb,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;YAEF,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC7C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,yBAAyB;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,CAAC;YACD,6DAA6D;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YAC9C,sDAAsD;YACtD,IAAI,CAAC,QAAQ,GAAG;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE;oBACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;iBACjB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,MAAM,IAAI,GAAG,6BAA6B,CAAC;QAC3C,OAAO;YACL;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aACtD;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;aAC5D;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,mBAAmB;gBAChC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CACnC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC/D;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,QAAQ;gBACrB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CACnC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;aACzC;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,QAAQ;gBACrB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;aAC3C;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAuC,EACvC,OAAe,4BAA4B;IAE3C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAyB;IAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAAC,CAAC,CAAE,EAAQ,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,GAAwB,EACxB,UAAkB,EAClB,IAAa;IAEb,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,YAAY,GAChB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE;QACjC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"tunnel-registry-server.js","sourceRoot":"","sources":["../../../../src/lib/tunnel/tunnel-registry-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAEL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,YAAY;AACZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD,4EAA4E;AAC5E,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE5D,kBAAkB;AAClB,MAAM,GAAG,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAe;IACtB,IAAI,CAAS;IACb,WAAW,CAAkB;IAC5B,QAAQ,GAAmB;QACjC,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE;YACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;SACjB;KACF,CAAC;IAEF;;;;OAIG;IACc,aAAa,GAAG,qBAAqB,CACpD,IAAI,CAAC,wBAAwB,EAAE,CAChC,CAAC;IAEF,YAAY,WAAuC,EAAE,IAAY;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAY,QAAQ;QAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACrD,OAAO;YACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,WAAW,EAAE,kCAAkC;SAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,YAAY;QACtB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,0CAA0C;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;oBAClC,GAAG,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,IAAI,CACN,qCAAqC,IAAI,CAAC,IAAI,GAAG,6BAA6B,EAAE,CACjF,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEH,uBAAuB;gBACvB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjC,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE;oBACnC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,GAAyB,EACzB,GAAwB;QAExB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEzC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC9C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,uBAAuB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,GAAwB;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;YACjD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,uBAAuB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,GAAwB;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;YACvD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,iCAAiC;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAwB,EACxB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,8BAA8B,IAAI,EAAE;iBAC5C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,sBAAsB;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,GAAwB,EACxB,QAAgB;QAEhB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC/B,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,mCAAmC,QAAQ,EAAE;iBACrD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,sBAAsB;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,GAAyB,EACzB,GAAwB,EACxB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,UAAU,GAA+B,IAAI,CAAC;YAClD,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,aAAa,CAAsB,GAAG,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,UAAmB,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAChB,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;gBACxD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,gCAAgC;iBACxC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAClD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,qBAAqB;iBAC7B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,0DAA0D;YAC1D,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,qCAAqC;iBAC7C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBAC5B,GAAG,UAAU;gBACb,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;YAEF,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC7C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,yBAAyB;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,CAAC;YACD,6DAA6D;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YAC9C,sDAAsD;YACtD,IAAI,CAAC,QAAQ,GAAG;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE;oBACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;iBACjB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,MAAM,IAAI,GAAG,6BAA6B,CAAC;QAC3C,OAAO;YACL;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aACtD;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;aAC5D;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,mBAAmB;gBAChC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CACnC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC/D;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,QAAQ;gBACrB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CACnC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;aACzC;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,IAAI,QAAQ;gBACrB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;aAC3C;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAuC,EACvC,OAAe,4BAA4B;IAE3C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAyB;IAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAAC,CAAC,CAAE,EAAQ,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,GAAwB,EACxB,UAAkB,EAClB,IAAa;IAEb,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,YAAY,GAChB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE;QACjC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
2
- import { type TunnelEndpoint } from './lib/tunnel/tunnel-api-client.js';
2
+ import type { TunnelEndpoint } from './lib/tunnel/tunnel-api-client.js';
3
3
  import type { DVTInstruments, SyslogService as SyslogServiceType, XCTestServices } from './lib/types.js';
4
4
  import AfcService from './services/ios/afc/index.js';
5
5
  import { type Service } from './services/ios/base-service.js';
@@ -15,10 +15,7 @@ import { PowerAssertionService } from './services/ios/power-assertion/index.js';
15
15
  import { SpringBoardService } from './services/ios/springboard-service/index.js';
16
16
  import { DvtTestmanagedProxyService } from './services/ios/testmanagerd/index.js';
17
17
  import { WebInspectorService } from './services/ios/webinspector/index.js';
18
- export declare class TunnelAvailabilityError extends Error {
19
- readonly code = "ERR_TUNNEL_AVAILABILITY";
20
- constructor(message: string);
21
- }
18
+ export { getAvailableDevices, getTunnelForDevice, } from './lib/tunnel/tunnel-availability.js';
22
19
  /**
23
20
  * Start the diagnostics service for the given device UDID.
24
21
  */
@@ -114,23 +111,6 @@ export declare function startTestmanagerdService(udid: string): Promise<DvtTestm
114
111
  * and dvtService when done.
115
112
  */
116
113
  export declare function startXCTestServices(udid: string, options?: StartXCTestServicesOptions): Promise<XCTestServices>;
117
- /**
118
- * Returns the list of device UDIDs currently in the tunnel registry.
119
- * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
120
- * in the "connected devices" list for session validation.
121
- *
122
- * @returns Promise resolving to an array of UDIDs. Returns [] only when the
123
- * registry is reachable and reports no tunnels.
124
- * @throws When tunnel registry port is missing or empty in strongbox.
125
- * @throws When registry is unreachable or response is invalid.
126
- */
127
- export declare function getAvailableDevices(): Promise<string[]>;
128
- /**
129
- * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
130
- * Does not open a discovery `RemoteXpcConnection`; use {@link withRemoteXpcConnection}
131
- * when service ports must be looked up via RSD.
132
- */
133
- export declare function getTunnelForDevice(udid: string): Promise<TunnelEndpoint>;
134
114
  /**
135
115
  * Run `fn` with a freshly opened discovery `RemoteXpcConnection` and close
136
116
  * that connection unconditionally when `fn` settles. Use this whenever a
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- import { BaseItem, strongbox } from '@appium/strongbox';
2
- import { TUNNEL_CONTAINER_NAME } from './constants.js';
3
1
  import { getLogger } from './lib/logger.js';
4
2
  import { TunnelManager, rsdSessionLockKey } from './lib/tunnel/index.js';
5
- import { TunnelApiClient, } from './lib/tunnel/tunnel-api-client.js';
3
+ import { getTunnelForDevice } from './lib/tunnel/tunnel-availability.js';
6
4
  import AfcService from './services/ios/afc/index.js';
7
5
  import { CrashReportsService } from './services/ios/crash-reports/index.js';
8
6
  import DiagnosticsService from './services/ios/diagnostic-service/index.js';
@@ -27,18 +25,10 @@ import { SpringBoardService } from './services/ios/springboard-service/index.js'
27
25
  import SyslogService from './services/ios/syslog-service/index.js';
28
26
  import { DvtTestmanagedProxyService } from './services/ios/testmanagerd/index.js';
29
27
  import { WebInspectorService } from './services/ios/webinspector/index.js';
30
- const TUNNEL_REGISTRY_PORT = 'tunnelRegistryPort';
31
28
  const log = getLogger('Services');
32
29
  /** Pause after closing discovery RSD so device `remoted` can accept the next session. */
33
30
  const RSD_RELEASE_DELAY_MS = 300;
34
- export class TunnelAvailabilityError extends Error {
35
- code = 'ERR_TUNNEL_AVAILABILITY';
36
- constructor(message) {
37
- super(message);
38
- this.name = new.target.name;
39
- Object.setPrototypeOf(this, new.target.prototype);
40
- }
41
- }
31
+ export { getAvailableDevices, getTunnelForDevice, } from './lib/tunnel/tunnel-availability.js';
42
32
  /**
43
33
  * Start the diagnostics service for the given device UDID.
44
34
  */
@@ -311,37 +301,6 @@ export async function startXCTestServices(udid, options) {
311
301
  installationProxy,
312
302
  };
313
303
  }
314
- /**
315
- * Returns the list of device UDIDs currently in the tunnel registry.
316
- * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
317
- * in the "connected devices" list for session validation.
318
- *
319
- * @returns Promise resolving to an array of UDIDs. Returns [] only when the
320
- * registry is reachable and reports no tunnels.
321
- * @throws When tunnel registry port is missing or empty in strongbox.
322
- * @throws When registry is unreachable or response is invalid.
323
- */
324
- export async function getAvailableDevices() {
325
- const client = await getTunnelRegistryClient({ strict: true });
326
- return await client.getAvailableDevices();
327
- }
328
- /**
329
- * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
330
- * Does not open a discovery `RemoteXpcConnection`; use {@link withRemoteXpcConnection}
331
- * when service ports must be looked up via RSD.
332
- */
333
- export async function getTunnelForDevice(udid) {
334
- const tunnelApiClient = await getTunnelRegistryClient();
335
- const tunnelExists = await tunnelApiClient.hasTunnel(udid);
336
- if (!tunnelExists) {
337
- throw new TunnelAvailabilityError(`No tunnel found for device ${udid}. Please run the tunnel creation script first`);
338
- }
339
- const tunnelConnection = await tunnelApiClient.getTunnelConnection(udid);
340
- if (!tunnelConnection) {
341
- throw new TunnelAvailabilityError(`Failed to get tunnel connection details for device ${udid}`);
342
- }
343
- return tunnelConnection;
344
- }
345
304
  /**
346
305
  * Run `fn` with a freshly opened discovery `RemoteXpcConnection` and close
347
306
  * that connection unconditionally when `fn` settles. Use this whenever a
@@ -390,19 +349,4 @@ async function startSyslogWithServiceName(udid, serviceName) {
390
349
  serviceDescriptor: remoteXPC.findService(serviceName),
391
350
  }));
392
351
  }
393
- // #region Private Functions
394
- /**
395
- * Build a tunnel registry API client from the stored registry port.
396
- */
397
- async function getTunnelRegistryClient(options = {}) {
398
- const box = strongbox(TUNNEL_CONTAINER_NAME);
399
- const item = new BaseItem(TUNNEL_REGISTRY_PORT, box);
400
- const tunnelRegistryPort = await item.read();
401
- if (tunnelRegistryPort === undefined ||
402
- String(tunnelRegistryPort).trim() === '') {
403
- throw new TunnelAvailabilityError('Tunnel registry port not found. Please run the tunnel creation script first');
404
- }
405
- return new TunnelApiClient(`http://127.0.0.1:${tunnelRegistryPort}/remotexpc/tunnels`, options);
406
- }
407
- // #endregion
408
352
  //# sourceMappingURL=services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "main": "build/src/index.js",
5
5
  "types": "build/src/index.d.ts",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -84,8 +84,8 @@ export { NetworkMessageType } from './services/ios/dvt/instruments/network-monit
84
84
  export {
85
85
  TunnelAvailabilityError,
86
86
  getTunnelForDevice,
87
- withRemoteXpcConnection,
88
- } from './services.js';
87
+ } from './lib/tunnel/tunnel-availability.js';
88
+ export { withRemoteXpcConnection } from './services.js';
89
89
  export type { TunnelEndpoint } from './lib/tunnel/tunnel-api-client.js';
90
90
  export { XCTestConfigurationEncoder } from './services/ios/testmanagerd/xctestconfiguration.js';
91
91
  export type { XCTestConfigurationParams } from './services/ios/testmanagerd/xctestconfiguration.js';
@@ -0,0 +1,11 @@
1
+ /** Host for the local tunnel registry HTTP API and TCP health probe. */
2
+ export const TUNNEL_REGISTRY_HOST = '127.0.0.1';
3
+
4
+ /** Base URL path for the tunnel registry HTTP API. */
5
+ export const TUNNEL_REGISTRY_API_BASE_PATH = '/remotexpc/tunnels';
6
+
7
+ /** Timeout for tunnel registry HTTP lookups (single GET per device). */
8
+ export const TUNNEL_REGISTRY_HTTP_TIMEOUT_MS = 500;
9
+
10
+ /** Timeout for TCP probe that the registry HTTP server is listening. */
11
+ export const TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS = 300;
@@ -0,0 +1,9 @@
1
+ export class TunnelAvailabilityError extends Error {
2
+ readonly code = 'ERR_TUNNEL_AVAILABILITY';
3
+
4
+ constructor(message: string, options?: { cause?: unknown }) {
5
+ super(message, options);
6
+ this.name = new.target.name;
7
+ Object.setPrototypeOf(this, new.target.prototype);
8
+ }
9
+ }
@@ -1,5 +1,6 @@
1
1
  import { getLogger } from '../logger.js';
2
2
  import type { TunnelRegistry, TunnelRegistryEntry } from '../types.js';
3
+ import { TunnelAvailabilityError } from './errors.js';
3
4
 
4
5
  const log = getLogger('TunnelApiClient');
5
6
 
@@ -70,7 +71,9 @@ export class TunnelApiClient {
70
71
  const response = await this.fetchWithTimeout(this.apiBaseUrl);
71
72
 
72
73
  if (!response.ok) {
73
- throw new Error(`API request failed with status: ${response.status}`);
74
+ throw new TunnelAvailabilityError(
75
+ `Failed to fetch tunnel registry from API: HTTP ${response.status}`,
76
+ );
74
77
  }
75
78
 
76
79
  return (await response.json()) as TunnelRegistry;
@@ -96,7 +99,9 @@ export class TunnelApiClient {
96
99
  }
97
100
 
98
101
  if (!response.ok) {
99
- throw new Error(`API request failed with status: ${response.status}`);
102
+ throw new TunnelAvailabilityError(
103
+ `Failed to fetch tunnel for UDID ${udid}: HTTP ${response.status}`,
104
+ );
100
105
  }
101
106
 
102
107
  return (await response.json()) as TunnelRegistryEntry;
@@ -124,7 +129,9 @@ export class TunnelApiClient {
124
129
  }
125
130
 
126
131
  if (!response.ok) {
127
- throw new Error(`API request failed with status: ${response.status}`);
132
+ throw new TunnelAvailabilityError(
133
+ `Failed to fetch tunnel for device ID ${deviceId}: HTTP ${response.status}`,
134
+ );
128
135
  }
129
136
 
130
137
  return (await response.json()) as TunnelRegistryEntry;
@@ -261,18 +268,30 @@ export class TunnelApiClient {
261
268
  }
262
269
 
263
270
  /**
264
- * On strict: throws Error with message and cause. Otherwise logs and returns.
271
+ * On strict: throws {@link TunnelAvailabilityError} with message and cause.
272
+ * Otherwise logs and returns.
265
273
  */
266
274
  private handleFetchError(
267
275
  messagePrefix: string,
268
276
  error: unknown,
269
277
  logLevel: 'warn' | 'error' = 'warn',
270
278
  ): void {
279
+ if (error instanceof TunnelAvailabilityError) {
280
+ if (this.strict) {
281
+ throw error;
282
+ }
283
+ this.logFetchFailure(error.message, logLevel);
284
+ return;
285
+ }
271
286
  const detail = error instanceof Error ? error.message : String(error);
272
287
  const message = `${messagePrefix}: ${detail}`;
273
288
  if (this.strict) {
274
- throw new Error(message, { cause: error });
289
+ throw new TunnelAvailabilityError(message, { cause: error });
275
290
  }
291
+ this.logFetchFailure(message, logLevel);
292
+ }
293
+
294
+ private logFetchFailure(message: string, logLevel: 'warn' | 'error'): void {
276
295
  if (logLevel === 'error') {
277
296
  log.error(message);
278
297
  } else {
@@ -293,12 +312,19 @@ export class TunnelApiClient {
293
312
  });
294
313
  return response;
295
314
  } catch (error) {
315
+ if (error instanceof TunnelAvailabilityError) {
316
+ throw error;
317
+ }
296
318
  if (error instanceof Error && error.name === 'AbortError') {
297
- throw new Error(
319
+ throw new TunnelAvailabilityError(
298
320
  `Tunnel registry request timed out after ${this.timeoutMs}ms`,
321
+ { cause: error },
299
322
  );
300
323
  }
301
- throw error;
324
+ throw new TunnelAvailabilityError(
325
+ `Tunnel registry request failed for ${url}`,
326
+ { cause: error },
327
+ );
302
328
  } finally {
303
329
  clearTimeout(timeoutId);
304
330
  }
@@ -0,0 +1,159 @@
1
+ import { BaseItem, strongbox } from '@appium/strongbox';
2
+ import * as net from 'node:net';
3
+
4
+ import { TUNNEL_CONTAINER_NAME } from '../../constants.js';
5
+ import type { TunnelRegistryEntry } from '../types.js';
6
+ import {
7
+ TUNNEL_REGISTRY_API_BASE_PATH,
8
+ TUNNEL_REGISTRY_HOST,
9
+ TUNNEL_REGISTRY_HTTP_TIMEOUT_MS,
10
+ TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS,
11
+ } from './constants.js';
12
+ import { TunnelAvailabilityError } from './errors.js';
13
+ import {
14
+ TunnelApiClient,
15
+ type TunnelApiClientOptions,
16
+ type TunnelEndpoint,
17
+ } from './tunnel-api-client.js';
18
+
19
+ export { TunnelAvailabilityError };
20
+
21
+ const TUNNEL_REGISTRY_PORT = 'tunnelRegistryPort';
22
+
23
+ /**
24
+ * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
25
+ * Strongbox port, TCP probe, then a single `GET /remotexpc/tunnels/{udid}`.
26
+ * @throws {TunnelAvailabilityError} When registry or tunnel for the UDID is unavailable.
27
+ */
28
+ export async function getTunnelForDevice(
29
+ udid: string,
30
+ ): Promise<TunnelEndpoint> {
31
+ const client = await createValidatedStrictRegistryClient();
32
+ const entry = await client.getTunnelByUdid(udid);
33
+
34
+ if (!entry) {
35
+ throw new TunnelAvailabilityError(
36
+ `No tunnel found for device ${udid}. Please run the tunnel creation script first`,
37
+ );
38
+ }
39
+
40
+ return mapEntryToEndpoint(entry);
41
+ }
42
+
43
+ /**
44
+ * Returns the list of device UDIDs currently in the tunnel registry.
45
+ * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
46
+ * in the "connected devices" list for session validation.
47
+ *
48
+ * @returns UDIDs when the registry is reachable (possibly empty).
49
+ * @throws {TunnelAvailabilityError} When the registry port is missing or unreachable.
50
+ */
51
+ export async function getAvailableDevices(): Promise<string[]> {
52
+ const client = await createValidatedStrictRegistryClient();
53
+ return await client.getAvailableDevices();
54
+ }
55
+
56
+ /**
57
+ * Read the tunnel registry HTTP port from strongbox.
58
+ * @throws {TunnelAvailabilityError} When the port was never stored or is not a valid TCP port.
59
+ */
60
+ async function readTunnelRegistryPort(): Promise<number> {
61
+ const box = strongbox(TUNNEL_CONTAINER_NAME);
62
+ const item = new BaseItem(TUNNEL_REGISTRY_PORT, box);
63
+ const tunnelRegistryPort = await item.read();
64
+ if (
65
+ tunnelRegistryPort === undefined ||
66
+ String(tunnelRegistryPort).trim() === ''
67
+ ) {
68
+ throw new TunnelAvailabilityError(
69
+ 'Tunnel registry port not found. Please run the tunnel creation script first',
70
+ );
71
+ }
72
+ const stored = String(tunnelRegistryPort).trim();
73
+ const port = Number.parseInt(stored, 10);
74
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
75
+ throw new TunnelAvailabilityError(
76
+ `Tunnel registry port "${stored}" is invalid; expected an integer between 1 and 65535`,
77
+ );
78
+ }
79
+ return port;
80
+ }
81
+
82
+ /**
83
+ * Verify the registry HTTP server is accepting TCP connections on localhost.
84
+ * @throws {TunnelAvailabilityError} When the port is closed or the probe times out.
85
+ */
86
+ async function assertRegistryPortAcceptingConnections(
87
+ port: number,
88
+ ): Promise<void> {
89
+ const registryAddress = `${TUNNEL_REGISTRY_HOST}:${port}`;
90
+ const unreachableMessage = `Tunnel registry at ${registryAddress} is not reachable. Please run the tunnel creation script first`;
91
+
92
+ await new Promise<void>((resolve, reject) => {
93
+ const socket = net.connect({ host: TUNNEL_REGISTRY_HOST, port });
94
+ const timer = setTimeout(() => {
95
+ socket.destroy();
96
+ reject(new TunnelAvailabilityError(unreachableMessage));
97
+ }, TUNNEL_REGISTRY_PORT_PROBE_TIMEOUT_MS);
98
+
99
+ const finish = (err?: Error) => {
100
+ clearTimeout(timer);
101
+ socket.removeAllListeners();
102
+ if (!socket.destroyed) {
103
+ socket.destroy();
104
+ }
105
+ if (err) {
106
+ reject(err);
107
+ } else {
108
+ resolve();
109
+ }
110
+ };
111
+
112
+ socket.once('connect', () => finish());
113
+ socket.once('error', (err: NodeJS.ErrnoException) => {
114
+ if (err.code === 'ECONNREFUSED' || err.code === 'ENOTFOUND') {
115
+ finish(new TunnelAvailabilityError(unreachableMessage, { cause: err }));
116
+ return;
117
+ }
118
+ finish(
119
+ new TunnelAvailabilityError(
120
+ `Tunnel registry port probe failed for ${registryAddress}: ${err.message}`,
121
+ { cause: err },
122
+ ),
123
+ );
124
+ });
125
+ });
126
+ }
127
+
128
+ /** Map a registry entry to a flat tunnel endpoint for RSD connect. */
129
+ function mapEntryToEndpoint(entry: TunnelRegistryEntry): TunnelEndpoint {
130
+ return {
131
+ host: entry.address,
132
+ port: entry.rsdPort,
133
+ udid: entry.udid,
134
+ packetStreamPort: entry.packetStreamPort,
135
+ };
136
+ }
137
+
138
+ /**
139
+ * Build a strict tunnel registry API client (caller supplies port via base URL).
140
+ */
141
+ function createTunnelRegistryClient(
142
+ port: number,
143
+ options: TunnelApiClientOptions = {},
144
+ ): TunnelApiClient {
145
+ return new TunnelApiClient(
146
+ `http://${TUNNEL_REGISTRY_HOST}:${port}${TUNNEL_REGISTRY_API_BASE_PATH}`,
147
+ options,
148
+ );
149
+ }
150
+
151
+ /** Strongbox port, TCP probe, then a strict registry client with the lookup timeout. */
152
+ async function createValidatedStrictRegistryClient(): Promise<TunnelApiClient> {
153
+ const port = await readTunnelRegistryPort();
154
+ await assertRegistryPortAcceptingConnections(port);
155
+ return createTunnelRegistryClient(port, {
156
+ strict: true,
157
+ timeoutMs: TUNNEL_REGISTRY_HTTP_TIMEOUT_MS,
158
+ });
159
+ }
@@ -1,11 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { match } from 'path-to-regexp';
3
3
 
4
- /**
5
- * Base URL path for the tunnel registry HTTP API.
6
- */
7
- export const TUNNEL_REGISTRY_API_BASE_PATH = '/remotexpc/tunnels';
8
-
9
4
  export type RouteHandler = (
10
5
  req: IncomingMessage,
11
6
  res: ServerResponse,
@@ -2,9 +2,9 @@ import * as http from 'node:http';
2
2
 
3
3
  import { getLogger } from '../logger.js';
4
4
  import type { TunnelRegistry, TunnelRegistryEntry } from '../types.js';
5
+ import { TUNNEL_REGISTRY_API_BASE_PATH } from './constants.js';
5
6
  import {
6
7
  type RouteRecord,
7
- TUNNEL_REGISTRY_API_BASE_PATH,
8
8
  createRouteDispatcher,
9
9
  getRequestPathname,
10
10
  } from './tunnel-registry-routes.js';
package/src/services.ts CHANGED
@@ -1,14 +1,8 @@
1
- import { BaseItem, strongbox } from '@appium/strongbox';
2
-
3
- import { TUNNEL_CONTAINER_NAME } from './constants.js';
4
1
  import { getLogger } from './lib/logger.js';
5
2
  import type { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
6
3
  import { TunnelManager, rsdSessionLockKey } from './lib/tunnel/index.js';
7
- import {
8
- TunnelApiClient,
9
- type TunnelApiClientOptions,
10
- type TunnelEndpoint,
11
- } from './lib/tunnel/tunnel-api-client.js';
4
+ import type { TunnelEndpoint } from './lib/tunnel/tunnel-api-client.js';
5
+ import { getTunnelForDevice } from './lib/tunnel/tunnel-availability.js';
12
6
  import type {
13
7
  DVTInstruments,
14
8
  SyslogService as SyslogServiceType,
@@ -40,21 +34,15 @@ import SyslogService from './services/ios/syslog-service/index.js';
40
34
  import { DvtTestmanagedProxyService } from './services/ios/testmanagerd/index.js';
41
35
  import { WebInspectorService } from './services/ios/webinspector/index.js';
42
36
 
43
- const TUNNEL_REGISTRY_PORT = 'tunnelRegistryPort';
44
37
  const log = getLogger('Services');
45
38
 
46
39
  /** Pause after closing discovery RSD so device `remoted` can accept the next session. */
47
40
  const RSD_RELEASE_DELAY_MS = 300;
48
41
 
49
- export class TunnelAvailabilityError extends Error {
50
- readonly code = 'ERR_TUNNEL_AVAILABILITY';
51
-
52
- constructor(message: string) {
53
- super(message);
54
- this.name = new.target.name;
55
- Object.setPrototypeOf(this, new.target.prototype);
56
- }
57
- }
42
+ export {
43
+ getAvailableDevices,
44
+ getTunnelForDevice,
45
+ } from './lib/tunnel/tunnel-availability.js';
58
46
 
59
47
  /**
60
48
  * Start the diagnostics service for the given device UDID.
@@ -443,45 +431,6 @@ export async function startXCTestServices(
443
431
  };
444
432
  }
445
433
 
446
- /**
447
- * Returns the list of device UDIDs currently in the tunnel registry.
448
- * Used to include tunnel-only devices (e.g. Apple TV over WiFi)
449
- * in the "connected devices" list for session validation.
450
- *
451
- * @returns Promise resolving to an array of UDIDs. Returns [] only when the
452
- * registry is reachable and reports no tunnels.
453
- * @throws When tunnel registry port is missing or empty in strongbox.
454
- * @throws When registry is unreachable or response is invalid.
455
- */
456
- export async function getAvailableDevices(): Promise<string[]> {
457
- const client = await getTunnelRegistryClient({ strict: true });
458
- return await client.getAvailableDevices();
459
- }
460
-
461
- /**
462
- * Resolve tunnel registry metadata for a device (host, RSD port, packet stream).
463
- * Does not open a discovery `RemoteXpcConnection`; use {@link withRemoteXpcConnection}
464
- * when service ports must be looked up via RSD.
465
- */
466
- export async function getTunnelForDevice(
467
- udid: string,
468
- ): Promise<TunnelEndpoint> {
469
- const tunnelApiClient = await getTunnelRegistryClient();
470
- const tunnelExists = await tunnelApiClient.hasTunnel(udid);
471
- if (!tunnelExists) {
472
- throw new TunnelAvailabilityError(
473
- `No tunnel found for device ${udid}. Please run the tunnel creation script first`,
474
- );
475
- }
476
- const tunnelConnection = await tunnelApiClient.getTunnelConnection(udid);
477
- if (!tunnelConnection) {
478
- throw new TunnelAvailabilityError(
479
- `Failed to get tunnel connection details for device ${udid}`,
480
- );
481
- }
482
- return tunnelConnection;
483
- }
484
-
485
434
  /**
486
435
  * Run `fn` with a freshly opened discovery `RemoteXpcConnection` and close
487
436
  * that connection unconditionally when `fn` settles. Use this whenever a
@@ -548,30 +497,3 @@ async function startSyslogWithServiceName(
548
497
  serviceDescriptor: remoteXPC.findService(serviceName),
549
498
  }));
550
499
  }
551
-
552
- // #region Private Functions
553
-
554
- /**
555
- * Build a tunnel registry API client from the stored registry port.
556
- */
557
- async function getTunnelRegistryClient(
558
- options: TunnelApiClientOptions = {},
559
- ): Promise<TunnelApiClient> {
560
- const box = strongbox(TUNNEL_CONTAINER_NAME);
561
- const item = new BaseItem(TUNNEL_REGISTRY_PORT, box);
562
- const tunnelRegistryPort = await item.read();
563
- if (
564
- tunnelRegistryPort === undefined ||
565
- String(tunnelRegistryPort).trim() === ''
566
- ) {
567
- throw new TunnelAvailabilityError(
568
- 'Tunnel registry port not found. Please run the tunnel creation script first',
569
- );
570
- }
571
- return new TunnelApiClient(
572
- `http://127.0.0.1:${tunnelRegistryPort}/remotexpc/tunnels`,
573
- options,
574
- );
575
- }
576
-
577
- // #endregion