@limrun/api 0.61.0 → 0.63.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 (57) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/destination-tunnel-dialer.d.mts +1 -1
  3. package/destination-tunnel-dialer.d.mts.map +1 -1
  4. package/destination-tunnel-dialer.d.ts +1 -1
  5. package/destination-tunnel-dialer.d.ts.map +1 -1
  6. package/destination-tunnel.d.mts +2 -2
  7. package/destination-tunnel.d.mts.map +1 -1
  8. package/destination-tunnel.d.ts +2 -2
  9. package/destination-tunnel.d.ts.map +1 -1
  10. package/internal/destination-tunnel-management.d.mts +1 -1
  11. package/internal/destination-tunnel-management.d.mts.map +1 -1
  12. package/internal/destination-tunnel-management.d.ts +1 -1
  13. package/internal/destination-tunnel-management.d.ts.map +1 -1
  14. package/internal/destination-tunnel-url.d.mts +1 -1
  15. package/internal/destination-tunnel-url.d.mts.map +1 -1
  16. package/internal/destination-tunnel-url.d.ts +1 -1
  17. package/internal/destination-tunnel-url.d.ts.map +1 -1
  18. package/internal/destination-tunnel-url.js +1 -1
  19. package/internal/destination-tunnel-url.js.map +1 -1
  20. package/internal/destination-tunnel-url.mjs +1 -1
  21. package/internal/destination-tunnel-url.mjs.map +1 -1
  22. package/ios-client.d.mts +5 -1
  23. package/ios-client.d.mts.map +1 -1
  24. package/ios-client.d.ts +5 -1
  25. package/ios-client.d.ts.map +1 -1
  26. package/ios-client.js +7 -7
  27. package/ios-client.js.map +1 -1
  28. package/ios-client.mjs +7 -7
  29. package/ios-client.mjs.map +1 -1
  30. package/package.json +1 -1
  31. package/resources/android-instances.d.mts +6 -6
  32. package/resources/android-instances.d.ts +6 -6
  33. package/resources/ios-instances.d.mts +14 -8
  34. package/resources/ios-instances.d.mts.map +1 -1
  35. package/resources/ios-instances.d.ts +14 -8
  36. package/resources/ios-instances.d.ts.map +1 -1
  37. package/src/destination-tunnel-dialer.ts +1 -1
  38. package/src/destination-tunnel.ts +2 -2
  39. package/src/internal/destination-tunnel-management.ts +1 -1
  40. package/src/internal/destination-tunnel-url.ts +1 -1
  41. package/src/ios-client.ts +14 -17
  42. package/src/resources/android-instances.ts +6 -6
  43. package/src/resources/ios-instances.ts +15 -8
  44. package/src/tunnel-connector.ts +19 -19
  45. package/src/version.ts +1 -1
  46. package/tunnel-connector.d.mts +5 -5
  47. package/tunnel-connector.d.mts.map +1 -1
  48. package/tunnel-connector.d.ts +5 -5
  49. package/tunnel-connector.d.ts.map +1 -1
  50. package/tunnel-connector.js +14 -14
  51. package/tunnel-connector.js.map +1 -1
  52. package/tunnel-connector.mjs +14 -14
  53. package/tunnel-connector.mjs.map +1 -1
  54. package/version.d.mts +1 -1
  55. package/version.d.ts +1 -1
  56. package/version.js +1 -1
  57. package/version.mjs +1 -1
@@ -55,9 +55,9 @@ export declare namespace AndroidInstance {
55
55
  */
56
56
  hardTimeout?: string;
57
57
  /**
58
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
59
- * instance. Creation fails while that tunnel is offline, and the instance
60
- * becomes ready only after the tunnel attaches.
58
+ * Names a private tunnel, created in the console (Network) or the API, that
59
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
60
+ * holds it, and the instance becomes ready only after the tunnel attaches.
61
61
  */
62
62
  tunnel?: string;
63
63
  }
@@ -188,9 +188,9 @@ export declare namespace AndroidInstanceCreateParams {
188
188
  region?: string;
189
189
  sandbox?: Spec.Sandbox;
190
190
  /**
191
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
192
- * instance. Creation fails while that tunnel is offline, and the instance
193
- * becomes ready only after the tunnel attaches.
191
+ * Names a private tunnel, created in the console (Network) or the API, that
192
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
193
+ * holds it, and the instance becomes ready only after the tunnel attaches.
194
194
  */
195
195
  tunnel?: string;
196
196
  }
@@ -55,9 +55,9 @@ export declare namespace IosInstance {
55
55
  */
56
56
  hardTimeout?: string;
57
57
  /**
58
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
59
- * instance. Creation fails while that tunnel is offline, and the instance
60
- * becomes ready only after the tunnel attaches.
58
+ * Names a private tunnel, created in the console (Network) or the API, that
59
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
60
+ * holds it, and the instance becomes ready only after the tunnel attaches.
61
61
  */
62
62
  tunnel?: string;
63
63
  }
@@ -157,7 +157,8 @@ export declare namespace IosInstanceCreateParams {
157
157
  */
158
158
  jurisdiction?: 'us' | 'eu' | 'as';
159
159
  /**
160
- * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and iOS 27.1 or newer. Default is iphone.
160
+ * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and runs iOS 27, see
161
+ * the OSVersion clue. Default is iphone.
161
162
  */
162
163
  model?: 'iphone' | 'iphone-duo' | 'ipad' | 'watch';
163
164
  /**
@@ -181,21 +182,26 @@ export declare namespace IosInstanceCreateParams {
181
182
  */
182
183
  region?: string;
183
184
  /**
184
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
185
- * instance. Creation fails while that tunnel is offline, and the instance
186
- * becomes ready only after the tunnel attaches.
185
+ * Names a private tunnel, created in the console (Network) or the API, that
186
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
187
+ * holds it, and the instance becomes ready only after the tunnel attaches.
187
188
  */
188
189
  tunnel?: string;
189
190
  }
190
191
  namespace Spec {
191
192
  interface Clue {
192
- kind: 'ClientIP' | 'ClientLocation';
193
+ kind: 'ClientIP' | 'ClientLocation' | 'OSVersion';
193
194
  clientIp?: string;
194
195
  /**
195
196
  * Required for ClientLocation. Both coordinates must be finite and within their
196
197
  * ranges. This location takes precedence over ClientIP.
197
198
  */
198
199
  clientLocation?: Clue.ClientLocation;
200
+ /**
201
+ * The major version of iOS, "26" or "27". iphone runs both, iphone-duo runs 27,
202
+ * ipad and watch run 26. Default is 26, or 27 on iphone-duo.
203
+ */
204
+ osVersion?: string;
199
205
  }
200
206
  namespace Clue {
201
207
  interface ClientLocation {
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.d.mts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios-instances.d.mts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
@@ -55,9 +55,9 @@ export declare namespace IosInstance {
55
55
  */
56
56
  hardTimeout?: string;
57
57
  /**
58
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
59
- * instance. Creation fails while that tunnel is offline, and the instance
60
- * becomes ready only after the tunnel attaches.
58
+ * Names a private tunnel, created in the console (Network) or the API, that
59
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
60
+ * holds it, and the instance becomes ready only after the tunnel attaches.
61
61
  */
62
62
  tunnel?: string;
63
63
  }
@@ -157,7 +157,8 @@ export declare namespace IosInstanceCreateParams {
157
157
  */
158
158
  jurisdiction?: 'us' | 'eu' | 'as';
159
159
  /**
160
- * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and iOS 27.1 or newer. Default is iphone.
160
+ * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and runs iOS 27, see
161
+ * the OSVersion clue. Default is iphone.
161
162
  */
162
163
  model?: 'iphone' | 'iphone-duo' | 'ipad' | 'watch';
163
164
  /**
@@ -181,21 +182,26 @@ export declare namespace IosInstanceCreateParams {
181
182
  */
182
183
  region?: string;
183
184
  /**
184
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
185
- * instance. Creation fails while that tunnel is offline, and the instance
186
- * becomes ready only after the tunnel attaches.
185
+ * Names a private tunnel, created in the console (Network) or the API, that
186
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
187
+ * holds it, and the instance becomes ready only after the tunnel attaches.
187
188
  */
188
189
  tunnel?: string;
189
190
  }
190
191
  namespace Spec {
191
192
  interface Clue {
192
- kind: 'ClientIP' | 'ClientLocation';
193
+ kind: 'ClientIP' | 'ClientLocation' | 'OSVersion';
193
194
  clientIp?: string;
194
195
  /**
195
196
  * Required for ClientLocation. Both coordinates must be finite and within their
196
197
  * ranges. This location takes precedence over ClientIP.
197
198
  */
198
199
  clientLocation?: Clue.ClientLocation;
200
+ /**
201
+ * The major version of iOS, "26" or "27". iphone runs both, iphone-duo runs 27,
202
+ * ipad and watch run 26. Default is 26, or 27 on iphone-duo.
203
+ */
204
+ osVersion?: string;
199
205
  }
200
206
  namespace Clue {
201
207
  interface ClientLocation {
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.d.ts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios-instances.d.ts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAC/C,OAAO,EAAE,UAAU,EAAE,+BAA4B;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,8BAA2B;AAE1E,OAAO,EAAE,cAAc,EAAE,uCAAoC;AAG7D,qBAAa,YAAa,SAAQ,WAAW;IAC3C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC;IAK1F;;OAEG;IACH,IAAI,CACF,KAAK,GAAE,qBAAqB,GAAG,IAAI,GAAG,SAAc,EACpD,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,iBAAiB,EAAE,WAAW,CAAC;IAI9C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IAO9D;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC;CAGnE;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;IAE/B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;IAEvB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;CAC5B;AAED,yBAAiB,WAAW,CAAC;IAC3B,UAAiB,QAAQ;QACvB,EAAE,EAAE,MAAM,CAAC;QAEX,SAAS,EAAE,MAAM,CAAC;QAElB,cAAc,EAAE,MAAM,CAAC;QAEvB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAEnC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAED,UAAiB,IAAI;QACnB;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAE1B;;;WAGG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAED,UAAiB,MAAM;QACrB;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;QAEpE,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAE9B,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QAEjC;;;;;;;;;;;WAWG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC;IAE5C;;OAEG;IACH,IAAI,CAAC,EAAE,uBAAuB,CAAC,IAAI,CAAC;CACrC;AAED,yBAAiB,uBAAuB,CAAC;IACvC,UAAiB,QAAQ;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACpC;IAED,UAAiB,IAAI;QACnB;;;WAGG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAElC;;;WAGG;QACH,KAAK,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;QAEnD;;;;;;;;;;;;;;;;;;WAkBG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAED,UAAiB,IAAI,CAAC;QACpB,UAAiB,IAAI;YACnB,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC;YAElD,QAAQ,CAAC,EAAE,MAAM,CAAC;YAElB;;;eAGG;YACH,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;YAErC;;;eAGG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB;QAED,UAAiB,IAAI,CAAC;YACpB,UAAiB,cAAc;gBAC7B;;mBAEG;gBACH,QAAQ,EAAE,MAAM,CAAC;gBAEjB;;mBAEG;gBACH,SAAS,EAAE,MAAM,CAAC;aACnB;SACF;QAED,UAAiB,YAAY;YAC3B,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;YAEzB,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;YAExC,OAAO,CAAC,EAAE,MAAM,CAAC;YAEjB,SAAS,CAAC,EAAE,MAAM,CAAC;YAEnB;;;eAGG;YACH,aAAa,CAAC,EAAE,MAAM,CAAC;YAEvB;;eAEG;YACH,UAAU,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;YAEzD,GAAG,CAAC,EAAE,MAAM,CAAC;SACd;KACF;CACF;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,OAAO,EACL,KAAK,WAAW,IAAI,WAAW,EAC/B,KAAK,iBAAiB,IAAI,iBAAiB,EAC3C,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,qBAAqB,IAAI,qBAAqB,GACpD,CAAC;CACH"}
@@ -70,7 +70,7 @@ export interface DestinationTcpTunnelOptions {
70
70
  onInspectionError?: DestinationTunnelInspectionErrorCallback;
71
71
  /** Per-flow receive window in bytes. Defaults to 1 MiB. */
72
72
  window?: number;
73
- /** Persistent tunnel this session serves; the instance reports it in tunnel status. */
73
+ /** Private tunnel this session serves; the instance reports it in tunnel status. */
74
74
  name?: string;
75
75
  logLevel?: LogLevel;
76
76
  maxConnections?: number;
@@ -136,7 +136,7 @@ export type DestinationTunnelClientMessage =
136
136
  inspection: DestinationTunnelInspectionConfig;
137
137
  /** Default per-flow receive window this client grants. */
138
138
  window: number;
139
- /** Persistent tunnel this session serves. The instance only echoes it in status. */
139
+ /** Private tunnel this session serves. The instance only echoes it in status. */
140
140
  name?: string;
141
141
  }
142
142
  | {
@@ -162,7 +162,7 @@ export type DestinationTunnelServerMessage =
162
162
  tunnelId: string;
163
163
  selectors: DestinationTunnelSelectorReport[];
164
164
  configHash: string;
165
- /** The persistent tunnel name the client sent in start, echoed back. */
165
+ /** The private tunnel name the client sent in start, echoed back. */
166
166
  name?: string;
167
167
  }
168
168
  | {
@@ -17,7 +17,7 @@ import {
17
17
  export interface DestinationTunnelStatus {
18
18
  active?: {
19
19
  tunnelId: string;
20
- /** Persistent tunnel the session serves, absent for a one-instance tunnel. */
20
+ /** Private tunnel the session serves, absent for a one-instance tunnel. */
21
21
  name?: string;
22
22
  state: 'starting' | 'ready' | 'stopping';
23
23
  selectors: DestinationTunnelSelectorReport[];
@@ -29,7 +29,7 @@ export function deriveDestinationTunnelURL(apiUrl: string): string {
29
29
  return webSocketURL(deriveEndpointURL(apiUrl, 'tunnel'));
30
30
  }
31
31
 
32
- /** The control WebSocket of a persistent tunnel, under the Limrun API base URL. */
32
+ /** The control WebSocket of a private tunnel, under the Limrun API base URL. */
33
33
  export function deriveTunnelConnectURL(baseURL: string, organizationId: string, name: string): string {
34
34
  return webSocketURL(
35
35
  deriveEndpointURL(
package/src/ios-client.ts CHANGED
@@ -287,6 +287,8 @@ export type DeviceInfo = {
287
287
  screenHeight: number;
288
288
  /** Device model name */
289
289
  model: string;
290
+ /** Simulator OS version, e.g. "26.4" */
291
+ osVersion?: string;
290
292
  };
291
293
 
292
294
  export type AppInstallationResult = {
@@ -895,7 +897,8 @@ export type InstanceClient = {
895
897
  * On Duo, follows native display activity and fits each panel into the initial
896
898
  * canvas without stretching. Pass display to keep recording one panel.
897
899
  * When provided, `quality` must be one of `5`, `6`, `7`, `8`, `9`, or `10`.
898
- * The server default is `5`.
900
+ * The server default is `5`. Touch ripples and drag trails are enabled while
901
+ * recording by default. Set `touchIndicators: false` to omit them.
899
902
  * With `persist`, the completed recording is uploaded to Limrun's bucket
900
903
  * when the recording stops or the instance terminates; list it with
901
904
  * `iosInstances.listRecordings`.
@@ -904,6 +907,7 @@ export type InstanceClient = {
904
907
  quality?: RecordingQuality;
905
908
  persist?: PersistOption;
906
909
  display?: DuoDisplay;
910
+ touchIndicators?: boolean;
907
911
  }) => Promise<void>;
908
912
 
909
913
  /**
@@ -1419,6 +1423,7 @@ type ServerResponse = {
1419
1423
  screenWidth?: number;
1420
1424
  screenHeight?: number;
1421
1425
  model?: string;
1426
+ osVersion?: string;
1422
1427
  // Simctl streaming fields
1423
1428
  stdout?: string;
1424
1429
  stderr?: string;
@@ -1936,6 +1941,7 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
1936
1941
  screenWidth: msg.screenWidth!,
1937
1942
  screenHeight: msg.screenHeight!,
1938
1943
  model: msg.model!,
1944
+ osVersion: msg.osVersion,
1939
1945
  }),
1940
1946
  openUrlResult: () => undefined,
1941
1947
  appInstallationResult: (msg) => ({
@@ -2559,27 +2565,18 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
2559
2565
  );
2560
2566
  };
2561
2567
 
2562
- const startRecording = async (opts?: {
2563
- quality?: RecordingQuality;
2564
- persist?: PersistOption;
2565
- display?: DuoDisplay;
2566
- }): Promise<void> => {
2567
- const request: {
2568
- quality?: RecordingQuality;
2569
- persist?: boolean;
2570
- ttlSeconds?: number;
2571
- display?: DuoDisplay;
2572
- } = {
2573
- ...persistFields(opts?.persist),
2574
- };
2568
+ const startRecording: InstanceClient['startRecording'] = async (opts) => {
2575
2569
  if (opts?.quality !== undefined) {
2576
2570
  if (!Number.isInteger(opts.quality) || opts.quality < 5 || opts.quality > 10) {
2577
2571
  throw new Error('quality must be one of: 5, 6, 7, 8, 9, 10');
2578
2572
  }
2579
- request.quality = opts.quality;
2580
2573
  }
2581
- if (opts?.display !== undefined) request.display = opts.display;
2582
- await sendRequest<void>('startVideoRecording', request);
2574
+ await sendRequest<void>('startVideoRecording', {
2575
+ ...persistFields(opts?.persist),
2576
+ quality: opts?.quality,
2577
+ display: opts?.display,
2578
+ touchIndicators: opts?.touchIndicators,
2579
+ });
2583
2580
  };
2584
2581
 
2585
2582
  const startAppLogCapture = async (opts: { bundleId: string; persist?: PersistOption }): Promise<void> => {
@@ -90,9 +90,9 @@ export namespace AndroidInstance {
90
90
  hardTimeout?: string;
91
91
 
92
92
  /**
93
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
94
- * instance. Creation fails while that tunnel is offline, and the instance
95
- * becomes ready only after the tunnel attaches.
93
+ * Names a private tunnel, created in the console (Network) or the API, that
94
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
95
+ * holds it, and the instance becomes ready only after the tunnel attaches.
96
96
  */
97
97
  tunnel?: string;
98
98
  }
@@ -250,9 +250,9 @@ export namespace AndroidInstanceCreateParams {
250
250
  sandbox?: Spec.Sandbox;
251
251
 
252
252
  /**
253
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
254
- * instance. Creation fails while that tunnel is offline, and the instance
255
- * becomes ready only after the tunnel attaches.
253
+ * Names a private tunnel, created in the console (Network) or the API, that
254
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
255
+ * holds it, and the instance becomes ready only after the tunnel attaches.
256
256
  */
257
257
  tunnel?: string;
258
258
  }
@@ -90,9 +90,9 @@ export namespace IosInstance {
90
90
  hardTimeout?: string;
91
91
 
92
92
  /**
93
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
94
- * instance. Creation fails while that tunnel is offline, and the instance
95
- * becomes ready only after the tunnel attaches.
93
+ * Names a private tunnel, created in the console (Network) or the API, that
94
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
95
+ * holds it, and the instance becomes ready only after the tunnel attaches.
96
96
  */
97
97
  tunnel?: string;
98
98
  }
@@ -213,7 +213,8 @@ export namespace IosInstanceCreateParams {
213
213
  jurisdiction?: 'us' | 'eu' | 'as';
214
214
 
215
215
  /**
216
- * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and iOS 27.1 or newer. Default is iphone.
216
+ * The Apple Simulator model. iPhone Duo requires Xcode 27.1 and runs iOS 27, see
217
+ * the OSVersion clue. Default is iphone.
217
218
  */
218
219
  model?: 'iphone' | 'iphone-duo' | 'ipad' | 'watch';
219
220
 
@@ -239,16 +240,16 @@ export namespace IosInstanceCreateParams {
239
240
  region?: string;
240
241
 
241
242
  /**
242
- * Names a persistent tunnel (`lim tunnel run --name`) that serves this
243
- * instance. Creation fails while that tunnel is offline, and the instance
244
- * becomes ready only after the tunnel attaches.
243
+ * Names a private tunnel, created in the console (Network) or the API, that
244
+ * serves this instance. Creation fails while no connector (`lim tunnel run`)
245
+ * holds it, and the instance becomes ready only after the tunnel attaches.
245
246
  */
246
247
  tunnel?: string;
247
248
  }
248
249
 
249
250
  export namespace Spec {
250
251
  export interface Clue {
251
- kind: 'ClientIP' | 'ClientLocation';
252
+ kind: 'ClientIP' | 'ClientLocation' | 'OSVersion';
252
253
 
253
254
  clientIp?: string;
254
255
 
@@ -257,6 +258,12 @@ export namespace IosInstanceCreateParams {
257
258
  * ranges. This location takes precedence over ClientIP.
258
259
  */
259
260
  clientLocation?: Clue.ClientLocation;
261
+
262
+ /**
263
+ * The major version of iOS, "26" or "27". iphone runs both, iphone-duo runs 27,
264
+ * ipad and watch run 26. Default is 26, or 27 on iphone-duo.
265
+ */
266
+ osVersion?: string;
260
267
  }
261
268
 
262
269
  export namespace Clue {
@@ -51,13 +51,13 @@ const ATTACH_GIVE_UP_MS = 5 * 60_000;
51
51
  const TAKEN_OVER_MESSAGE = 'another connector for this tunnel took the instance over';
52
52
  /** A token this close to its expiry is not dialed with; the hub refreshes it at half its life. */
53
53
  const TOKEN_EXPIRY_MARGIN_MS = 5_000;
54
- /** How long before its key expires the connector starts warning, and how often. */
55
- const KEY_WARNING_WINDOW_MS = 14 * 24 * 60 * 60_000;
56
- const KEY_WARNING_EVERY_MS = 24 * 60 * 60_000;
54
+ /** How long before its token expires the connector starts warning, and how often. */
55
+ const TOKEN_WARNING_WINDOW_MS = 14 * 24 * 60 * 60_000;
56
+ const TOKEN_WARNING_EVERY_MS = 24 * 60 * 60_000;
57
57
 
58
58
  export interface TunnelConnectorOptions {
59
- /** The tunnel's own key, or an admin's credential. */
60
- apiKey: string;
59
+ /** The tunnel's token; no other credential connects. */
60
+ token: string;
61
61
  /** Limrun API base URL, such as https://api.limrun.com. */
62
62
  baseURL: string;
63
63
  organizationId: string;
@@ -82,8 +82,8 @@ export interface TunnelConnectorOptions {
82
82
  export type TunnelConnectorEvent =
83
83
  /** This connector holds the tunnel; emitted once per session and control connection. */
84
84
  | { type: 'active'; sessionId: string; name: string }
85
- /** The connector's key expires within two weeks; emitted once a day until it does. */
86
- | { type: 'keyExpiring'; expiresAt: string }
85
+ /** The connector's tunnel token expires within two weeks; emitted once a day until it does. */
86
+ | { type: 'tokenExpiring'; expiresAt: string }
87
87
  /** Another connector holds the name; emitted once per holder. */
88
88
  | { type: 'standby'; holder: { hostname: string; since?: string } }
89
89
  | { type: 'attached'; instanceId: string; tunnelId: string }
@@ -115,7 +115,7 @@ type ControlClientMessage =
115
115
  | { type: 'bye' };
116
116
 
117
117
  type ControlServerMessage =
118
- | { type: 'active'; sessionId: string; leaseSeconds: number; name: string; keyExpiresAt?: string }
118
+ | { type: 'active'; sessionId: string; leaseSeconds: number; name: string; tokenExpiresAt?: string }
119
119
  | { type: 'standby'; holder: { hostname: string; since?: string } }
120
120
  | {
121
121
  type: 'attach';
@@ -152,7 +152,7 @@ interface InstanceAttachment {
152
152
  }
153
153
 
154
154
  /**
155
- * Serve a persistent tunnel: hold it through one control WebSocket to the
155
+ * Serve a private tunnel: hold it through one control WebSocket to the
156
156
  * Limrun API and open a destination tunnel to every instance created with
157
157
  * `spec.tunnel` set to its name, with a short-lived token the API hands out
158
158
  * for each. Instance tunnels stay up while the control channel reconnects,
@@ -181,7 +181,7 @@ export function runTunnel(options: TunnelConnectorOptions): TunnelConnector {
181
181
  let leaseExpiresAt = 0;
182
182
  // The tunnel's name, from the first active; instances set it in spec.tunnel.
183
183
  let tunnelName: string | undefined;
184
- let lastKeyWarning = 0;
184
+ let lastTokenWarning = 0;
185
185
  let announcedSession: string | undefined;
186
186
  let announcedHolder: string | undefined;
187
187
 
@@ -362,7 +362,7 @@ export function runTunnel(options: TunnelConnectorOptions): TunnelConnector {
362
362
  // A token past its life is refused; the API sends a fresh one at half
363
363
  // life, so this only waits while the control channel is down.
364
364
  if (!tokenUsable(attachment)) {
365
- retryAfterFailure(instanceId, attachment, 'token_expired', 'waiting for a fresh tunnel token');
365
+ retryAfterFailure(instanceId, attachment, 'token_expired', 'waiting for a fresh attach token');
366
366
  return;
367
367
  }
368
368
  let tunnel: DestinationTcpTunnel;
@@ -443,12 +443,12 @@ export function runTunnel(options: TunnelConnectorOptions): TunnelConnector {
443
443
  }
444
444
  const now = Date.now();
445
445
  if (
446
- message.keyExpiresAt !== undefined &&
447
- Date.parse(message.keyExpiresAt) - now < KEY_WARNING_WINDOW_MS &&
448
- now - lastKeyWarning >= KEY_WARNING_EVERY_MS
446
+ message.tokenExpiresAt !== undefined &&
447
+ Date.parse(message.tokenExpiresAt) - now < TOKEN_WARNING_WINDOW_MS &&
448
+ now - lastTokenWarning >= TOKEN_WARNING_EVERY_MS
449
449
  ) {
450
- lastKeyWarning = now;
451
- emit({ type: 'keyExpiring', expiresAt: message.keyExpiresAt });
450
+ lastTokenWarning = now;
451
+ emit({ type: 'tokenExpiring', expiresAt: message.tokenExpiresAt });
452
452
  }
453
453
  return;
454
454
  }
@@ -565,7 +565,7 @@ export function runTunnel(options: TunnelConnectorOptions): TunnelConnector {
565
565
  if (stopped) return;
566
566
  const proxyAgent = nodeProxyTransport.getWebSocketAgent(controlURL);
567
567
  const socket = new WebSocket(controlURL, {
568
- headers: { Authorization: `Bearer ${options.apiKey}` },
568
+ headers: { Authorization: `Bearer ${options.token}` },
569
569
  ...(proxyAgent ? { agent: proxyAgent } : {}),
570
570
  perMessageDeflate: false,
571
571
  // A stalled upgrade, such as after a laptop wakes, would otherwise
@@ -698,7 +698,7 @@ function decodeControlServerMessage(value: unknown): ControlServerMessage | unde
698
698
  sessionId: readNonEmptyString(message, 'sessionId'),
699
699
  leaseSeconds: readPositiveInteger(message, 'leaseSeconds'),
700
700
  name: readNonEmptyString(message, 'name'),
701
- ...readOptionalString(message, 'keyExpiresAt'),
701
+ ...readOptionalString(message, 'tokenExpiresAt'),
702
702
  };
703
703
  }
704
704
  case 'standby': {
@@ -752,7 +752,7 @@ function revokedMessage(reason: string): string {
752
752
  case 'deleted':
753
753
  return 'the tunnel was deleted';
754
754
  case 'credential':
755
- return 'the API key was revoked';
755
+ return 'its tunnel token was rotated, revoked or has expired';
756
756
  default:
757
757
  return `the tunnel was revoked (${reason})`;
758
758
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.61.0'; // x-release-please-version
1
+ export const VERSION = '0.63.0'; // x-release-please-version
@@ -1,8 +1,8 @@
1
1
  import { type DestinationTunnelInspectionConfig } from "./destination-tunnel.mjs";
2
2
  import { type LogLevel } from "./tunnel.mjs";
3
3
  export interface TunnelConnectorOptions {
4
- /** The tunnel's own key, or an admin's credential. */
5
- apiKey: string;
4
+ /** The tunnel's token; no other credential connects. */
5
+ token: string;
6
6
  /** Limrun API base URL, such as https://api.limrun.com. */
7
7
  baseURL: string;
8
8
  organizationId: string;
@@ -30,9 +30,9 @@ export type TunnelConnectorEvent =
30
30
  sessionId: string;
31
31
  name: string;
32
32
  }
33
- /** The connector's key expires within two weeks; emitted once a day until it does. */
33
+ /** The connector's tunnel token expires within two weeks; emitted once a day until it does. */
34
34
  | {
35
- type: 'keyExpiring';
35
+ type: 'tokenExpiring';
36
36
  expiresAt: string;
37
37
  }
38
38
  /** Another connector holds the name; emitted once per holder. */
@@ -77,7 +77,7 @@ export interface TunnelConnector {
77
77
  close: () => Promise<void>;
78
78
  }
79
79
  /**
80
- * Serve a persistent tunnel: hold it through one control WebSocket to the
80
+ * Serve a private tunnel: hold it through one control WebSocket to the
81
81
  * Limrun API and open a destination tunnel to every instance created with
82
82
  * `spec.tunnel` set to its name, with a short-lived token the API hands out
83
83
  * for each. Instance tunnels stay up while the control channel reconnects,
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-connector.d.mts","sourceRoot":"","sources":["src/tunnel-connector.ts"],"names":[],"mappings":"AA0BA,OAAO,EAGL,KAAK,iCAAiC,EAEvC,iCAA6B;AAC9B,OAAO,EAAiB,KAAK,QAAQ,EAAE,qBAAiB;AAyBxD,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB;AAC9B,wFAAwF;AACtF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,sFAAsF;GACpF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5C,iEAAiE;GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC5D,6CAA6C;GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACxE,mFAAmF;GACjF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,uFAAuF;IACvF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoDD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+gB1E"}
1
+ {"version":3,"file":"tunnel-connector.d.mts","sourceRoot":"","sources":["src/tunnel-connector.ts"],"names":[],"mappings":"AA0BA,OAAO,EAGL,KAAK,iCAAiC,EAEvC,iCAA6B;AAC9B,OAAO,EAAiB,KAAK,QAAQ,EAAE,qBAAiB;AAyBxD,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB;AAC9B,wFAAwF;AACtF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,+FAA+F;GAC7F;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC9C,iEAAiE;GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC5D,6CAA6C;GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACxE,mFAAmF;GACjF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,uFAAuF;IACvF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoDD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+gB1E"}
@@ -1,8 +1,8 @@
1
1
  import { type DestinationTunnelInspectionConfig } from "./destination-tunnel.js";
2
2
  import { type LogLevel } from "./tunnel.js";
3
3
  export interface TunnelConnectorOptions {
4
- /** The tunnel's own key, or an admin's credential. */
5
- apiKey: string;
4
+ /** The tunnel's token; no other credential connects. */
5
+ token: string;
6
6
  /** Limrun API base URL, such as https://api.limrun.com. */
7
7
  baseURL: string;
8
8
  organizationId: string;
@@ -30,9 +30,9 @@ export type TunnelConnectorEvent =
30
30
  sessionId: string;
31
31
  name: string;
32
32
  }
33
- /** The connector's key expires within two weeks; emitted once a day until it does. */
33
+ /** The connector's tunnel token expires within two weeks; emitted once a day until it does. */
34
34
  | {
35
- type: 'keyExpiring';
35
+ type: 'tokenExpiring';
36
36
  expiresAt: string;
37
37
  }
38
38
  /** Another connector holds the name; emitted once per holder. */
@@ -77,7 +77,7 @@ export interface TunnelConnector {
77
77
  close: () => Promise<void>;
78
78
  }
79
79
  /**
80
- * Serve a persistent tunnel: hold it through one control WebSocket to the
80
+ * Serve a private tunnel: hold it through one control WebSocket to the
81
81
  * Limrun API and open a destination tunnel to every instance created with
82
82
  * `spec.tunnel` set to its name, with a short-lived token the API hands out
83
83
  * for each. Instance tunnels stay up while the control channel reconnects,
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-connector.d.ts","sourceRoot":"","sources":["src/tunnel-connector.ts"],"names":[],"mappings":"AA0BA,OAAO,EAGL,KAAK,iCAAiC,EAEvC,gCAA6B;AAC9B,OAAO,EAAiB,KAAK,QAAQ,EAAE,oBAAiB;AAyBxD,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB;AAC9B,wFAAwF;AACtF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,sFAAsF;GACpF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5C,iEAAiE;GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC5D,6CAA6C;GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACxE,mFAAmF;GACjF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,uFAAuF;IACvF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoDD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+gB1E"}
1
+ {"version":3,"file":"tunnel-connector.d.ts","sourceRoot":"","sources":["src/tunnel-connector.ts"],"names":[],"mappings":"AA0BA,OAAO,EAGL,KAAK,iCAAiC,EAEvC,gCAA6B;AAC9B,OAAO,EAAiB,KAAK,QAAQ,EAAE,oBAAiB;AAyBxD,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB;AAC9B,wFAAwF;AACtF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,+FAA+F;GAC7F;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC9C,iEAAiE;GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC5D,6CAA6C;GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACxE,mFAAmF;GACjF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,uFAAuF;IACvF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoDD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+gB1E"}