@ikonai/sdk 1.10.0 → 1.11.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 (210) hide show
  1. package/app-messaging.d.ts +2 -1
  2. package/app-messaging.d.ts.map +1 -0
  3. package/assets/audio-playback-worker-BA5LbdyM.js +1 -0
  4. package/assets/protocol-worker-Byc-OmNW.js +3 -0
  5. package/assets/video-capture-worker-DRYxkwR0.js +1 -0
  6. package/assets/video-playback-worker-v179IJ-C.js +1 -0
  7. package/assets/viseme-worker-CmvzHAbf.js +1 -0
  8. package/audio-constants-0i9B4zLJ.js +4 -0
  9. package/backend/account-functions.d.ts +22 -0
  10. package/backend/account-functions.d.ts.map +1 -0
  11. package/backend/user-account.d.ts +58 -0
  12. package/backend/user-account.d.ts.map +1 -0
  13. package/capabilities-ljRyAKpA.js +248 -0
  14. package/capture/capture-functions.d.ts +34 -0
  15. package/capture/capture-functions.d.ts.map +1 -0
  16. package/capture/view-capture.d.ts +35 -0
  17. package/capture/view-capture.d.ts.map +1 -0
  18. package/channel/channel-manager.d.ts +3 -2
  19. package/channel/channel-manager.d.ts.map +1 -0
  20. package/channel/channel.d.ts +6 -2
  21. package/channel/channel.d.ts.map +1 -0
  22. package/channel/index.d.ts +1 -0
  23. package/channel/index.d.ts.map +1 -0
  24. package/channel-manager-ehgy3BJp.js +878 -0
  25. package/client/connection-state.d.ts +1 -0
  26. package/client/connection-state.d.ts.map +1 -0
  27. package/client/endpoint-selector.d.ts +2 -1
  28. package/client/endpoint-selector.d.ts.map +1 -0
  29. package/client/ikon-client-config.d.ts +14 -1
  30. package/client/ikon-client-config.d.ts.map +1 -0
  31. package/client/ikon-client.d.ts +122 -4
  32. package/client/ikon-client.d.ts.map +1 -0
  33. package/connection/authenticator.d.ts +6 -1
  34. package/connection/authenticator.d.ts.map +1 -0
  35. package/connection/urls.d.ts +1 -0
  36. package/connection/urls.d.ts.map +1 -0
  37. package/consent/consent-api.d.ts +61 -0
  38. package/consent/consent-api.d.ts.map +1 -0
  39. package/dist-BrkppKKs.js +801 -0
  40. package/errors/index.d.ts +11 -0
  41. package/errors/index.d.ts.map +1 -0
  42. package/feedback/feedback-api.d.ts +63 -0
  43. package/feedback/feedback-api.d.ts.map +1 -0
  44. package/functions/browser-functions.d.ts +2 -1
  45. package/functions/browser-functions.d.ts.map +1 -0
  46. package/functions/download-functions.d.ts +12 -0
  47. package/functions/download-functions.d.ts.map +1 -0
  48. package/functions/function-registry.d.ts +2 -1
  49. package/functions/function-registry.d.ts.map +1 -0
  50. package/functions/index.d.ts +2 -1
  51. package/functions/index.d.ts.map +1 -0
  52. package/functions/media-capture-functions.d.ts +1 -0
  53. package/functions/media-capture-functions.d.ts.map +1 -0
  54. package/functions/sound-functions.d.ts +3 -1
  55. package/functions/sound-functions.d.ts.map +1 -0
  56. package/functions/type-conversion.d.ts +1 -0
  57. package/functions/type-conversion.d.ts.map +1 -0
  58. package/functions/types.d.ts +2 -1
  59. package/functions/types.d.ts.map +1 -0
  60. package/ikon-media-BQjL59S_.js +2074 -0
  61. package/ikon-media-capture-BiGydwdg.js +1422 -0
  62. package/index.d.ts +23 -10
  63. package/index.d.ts.map +1 -0
  64. package/index.js +6709 -10102
  65. package/log-type-DewKVFaU.js +832 -0
  66. package/logger-gjegmH6K.js +80 -0
  67. package/login/index.d.ts +1 -0
  68. package/login/index.d.ts.map +1 -0
  69. package/login/login-error-interceptor.d.ts +1 -0
  70. package/login/login-error-interceptor.d.ts.map +1 -0
  71. package/login/login-store.d.ts +1 -0
  72. package/login/login-store.d.ts.map +1 -0
  73. package/login/reprovision.d.ts +1 -0
  74. package/login/reprovision.d.ts.map +1 -0
  75. package/media/audio-constants.d.ts +1 -0
  76. package/media/audio-constants.d.ts.map +1 -0
  77. package/media/capabilities.d.ts +1 -0
  78. package/media/capabilities.d.ts.map +1 -0
  79. package/media/device-detection.d.ts +1 -0
  80. package/media/device-detection.d.ts.map +1 -0
  81. package/media/ikon-audio-capture.d.ts +1 -0
  82. package/media/ikon-audio-capture.d.ts.map +1 -0
  83. package/media/ikon-audio-playback.d.ts +2 -1
  84. package/media/ikon-audio-playback.d.ts.map +1 -0
  85. package/media/ikon-image-capture.d.ts +1 -0
  86. package/media/ikon-image-capture.d.ts.map +1 -0
  87. package/media/ikon-media-capture.d.ts +1 -0
  88. package/media/ikon-media-capture.d.ts.map +1 -0
  89. package/media/ikon-media.d.ts +1 -0
  90. package/media/ikon-media.d.ts.map +1 -0
  91. package/media/ikon-video-capture.d.ts +1 -0
  92. package/media/ikon-video-capture.d.ts.map +1 -0
  93. package/media/ikon-video-playback.d.ts +2 -1
  94. package/media/ikon-video-playback.d.ts.map +1 -0
  95. package/media/index.d.ts +1 -0
  96. package/media/index.d.ts.map +1 -0
  97. package/media/media-permission.d.ts +1 -0
  98. package/media/media-permission.d.ts.map +1 -0
  99. package/media/media-session-helper.d.ts +1 -0
  100. package/media/media-session-helper.d.ts.map +1 -0
  101. package/media/ring-buffer.d.ts +1 -0
  102. package/media/ring-buffer.d.ts.map +1 -0
  103. package/media/video-constants.d.ts +1 -0
  104. package/media/video-constants.d.ts.map +1 -0
  105. package/media/viseme-tracker.d.ts +2 -1
  106. package/media/viseme-tracker.d.ts.map +1 -0
  107. package/media-session-helper-Do-OxyU6.js +51 -0
  108. package/package.json +1 -1
  109. package/reactive/reactive-registry.d.ts +1 -0
  110. package/reactive/reactive-registry.d.ts.map +1 -0
  111. package/sha2-DPTGfEM2.js +261 -0
  112. package/storage.d.ts +1 -0
  113. package/storage.d.ts.map +1 -0
  114. package/transport/http-stream-transport.d.ts +16 -1
  115. package/transport/http-stream-transport.d.ts.map +1 -0
  116. package/transport/keepalive-watchdog.d.ts +19 -0
  117. package/transport/keepalive-watchdog.d.ts.map +1 -0
  118. package/transport/message-framer.d.ts +1 -0
  119. package/transport/message-framer.d.ts.map +1 -0
  120. package/transport/transport-probe.d.ts +2 -1
  121. package/transport/transport-probe.d.ts.map +1 -0
  122. package/transport/transport.d.ts +9 -1
  123. package/transport/transport.d.ts.map +1 -0
  124. package/transport/web-socket-transport.d.ts +3 -1
  125. package/transport/web-socket-transport.d.ts.map +1 -0
  126. package/transport/web-transport-support.d.ts +5 -0
  127. package/transport/web-transport-support.d.ts.map +1 -0
  128. package/transport/web-transport-transport.d.ts +3 -8
  129. package/transport/web-transport-transport.d.ts.map +1 -0
  130. package/upload/file-upload.d.ts +62 -0
  131. package/upload/file-upload.d.ts.map +1 -0
  132. package/utils/abort-signal.d.ts +1 -0
  133. package/utils/abort-signal.d.ts.map +1 -0
  134. package/utils/app-routes.d.ts +1 -0
  135. package/utils/app-routes.d.ts.map +1 -0
  136. package/utils/boot-signal.d.ts +1 -0
  137. package/utils/boot-signal.d.ts.map +1 -0
  138. package/utils/browser-compat.d.ts +1 -0
  139. package/utils/browser-compat.d.ts.map +1 -0
  140. package/utils/browser-support.d.ts +1 -0
  141. package/utils/browser-support.d.ts.map +1 -0
  142. package/utils/client-identity.d.ts +1 -0
  143. package/utils/client-identity.d.ts.map +1 -0
  144. package/utils/connect-timeline.d.ts +1 -0
  145. package/utils/connect-timeline.d.ts.map +1 -0
  146. package/utils/debug-mode.d.ts +1 -0
  147. package/utils/debug-mode.d.ts.map +1 -0
  148. package/utils/deferred.d.ts +1 -0
  149. package/utils/deferred.d.ts.map +1 -0
  150. package/utils/delay.d.ts +1 -0
  151. package/utils/delay.d.ts.map +1 -0
  152. package/utils/embedded-oauth.d.ts +1 -0
  153. package/utils/embedded-oauth.d.ts.map +1 -0
  154. package/utils/external-link.d.ts +1 -0
  155. package/utils/external-link.d.ts.map +1 -0
  156. package/utils/inspect-mode.d.ts +1 -0
  157. package/utils/inspect-mode.d.ts.map +1 -0
  158. package/utils/log-sender.d.ts +1 -0
  159. package/utils/log-sender.d.ts.map +1 -0
  160. package/utils/log-sink.d.ts +1 -0
  161. package/utils/log-sink.d.ts.map +1 -0
  162. package/utils/logger.d.ts +1 -0
  163. package/utils/logger.d.ts.map +1 -0
  164. package/utils/oauth-start-url.d.ts +22 -0
  165. package/utils/oauth-start-url.d.ts.map +1 -0
  166. package/utils/opcode-names.d.ts +1 -0
  167. package/utils/opcode-names.d.ts.map +1 -0
  168. package/utils/parent-log-forward.d.ts +1 -0
  169. package/utils/parent-log-forward.d.ts.map +1 -0
  170. package/utils/pkce.d.ts +1 -0
  171. package/utils/pkce.d.ts.map +1 -0
  172. package/utils/platform.d.ts +1 -0
  173. package/utils/platform.d.ts.map +1 -0
  174. package/utils/query-params.d.ts +21 -0
  175. package/utils/query-params.d.ts.map +1 -0
  176. package/utils/user-gesture.d.ts +1 -0
  177. package/utils/user-gesture.d.ts.map +1 -0
  178. package/utils/uuid.d.ts +1 -0
  179. package/utils/uuid.d.ts.map +1 -0
  180. package/viseme-tracker-CAtczW00.js +183 -0
  181. package/web-transport-support-Cdyk4mQe.js +229 -0
  182. package/webrtc/index.d.ts +1 -0
  183. package/webrtc/index.d.ts.map +1 -0
  184. package/webrtc/webrtc-config.d.ts +1 -0
  185. package/webrtc/webrtc-config.d.ts.map +1 -0
  186. package/webrtc/webrtc-connection.d.ts +10 -0
  187. package/webrtc/webrtc-connection.d.ts.map +1 -0
  188. package/webrtc/webrtc-reachability.d.ts +1 -0
  189. package/webrtc/webrtc-reachability.d.ts.map +1 -0
  190. package/webrtc/webrtc-signaling.d.ts +12 -1
  191. package/webrtc/webrtc-signaling.d.ts.map +1 -0
  192. package/worker/audio-capture-worker.d.ts +1 -0
  193. package/worker/audio-capture-worker.d.ts.map +1 -0
  194. package/worker/audio-playback-worker.d.ts +2 -1
  195. package/worker/audio-playback-worker.d.ts.map +1 -0
  196. package/worker/protocol-worker.d.ts +1 -0
  197. package/worker/protocol-worker.d.ts.map +1 -0
  198. package/worker/video-capture-worker.d.ts +1 -0
  199. package/worker/video-capture-worker.d.ts.map +1 -0
  200. package/worker/video-playback-worker.d.ts +2 -1
  201. package/worker/video-playback-worker.d.ts.map +1 -0
  202. package/worker/viseme-worker.d.ts +2 -1
  203. package/worker/viseme-worker.d.ts.map +1 -0
  204. package/assets/audio-playback-worker-D9_GcJw4.js +0 -1
  205. package/assets/protocol-worker-DA6wieqV.js +0 -3
  206. package/assets/video-capture-worker-DLndrZf8.js +0 -1
  207. package/assets/video-playback-worker-DAAVfeBm.js +0 -1
  208. package/assets/viseme-worker-Bfd95xP6.js +0 -1
  209. package/capabilities-lcsAlVUh.js +0 -1146
  210. package/vite.config.d.ts +0 -2
@@ -21,3 +21,4 @@ export declare function isExternalHandlerScheme(href: string): boolean;
21
21
  * Trigger an external-handler URL (mailto:/tel:/sms:) without navigating the top-level document.
22
22
  */
23
23
  export declare function launchExternalHandler(href: string): void;
24
+ //# sourceMappingURL=external-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-link.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/external-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4BH;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAwBxD"}
@@ -5,3 +5,4 @@ export declare const IKON_INSPECT_MODE_CHANGED_EVENT = "ikon-inspect-mode-change
5
5
  export declare function initializeInspectMode(): boolean;
6
6
  export declare function isInspectModeEnabled(): boolean;
7
7
  export declare function enableInspectMode(): void;
8
+ //# sourceMappingURL=inspect-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-mode.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/inspect-mode.ts"],"names":[],"mappings":"AAEA;;qFAEqF;AACrF,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAU3E,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAQxC"}
@@ -2,3 +2,4 @@ export declare function startLogSender(backendUrl: string, authToken: string): v
2
2
  export declare function refreshLogSenderAuthToken(authToken: string): void;
3
3
  export declare function sendAnalyticsEvent(eventName: string, parameters: Record<string, string>): void;
4
4
  export declare function stopLogSender(): void;
5
+ //# sourceMappingURL=log-sender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-sender.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/log-sender.ts"],"names":[],"mappings":"AAiSA,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwB1E;AAQD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAQjE;AAKD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAe9F;AAED,wBAAgB,aAAa,IAAI,IAAI,CAwBpC"}
@@ -58,3 +58,4 @@ export declare function clearLogBuffer(): void;
58
58
  * Get the current buffer size.
59
59
  */
60
60
  export declare function getLogBufferSize(): number;
61
+ //# sourceMappingURL=log-sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-sink.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/log-sink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,QAAQ,EAAc,MAAM,UAAU,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAoCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAM9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAEvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,QAAQ,EAAE,CAErD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,QAAQ,EAAE,CAI7C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
package/utils/logger.d.ts CHANGED
@@ -79,3 +79,4 @@ export interface Logger {
79
79
  * ```
80
80
  */
81
81
  export declare function createLogger(component: string): Logger;
82
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACT;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,GAAG,IAAI,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,2BAA2B,GAAG,MAAM,IAAI,CAKlH;AAoED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAetD"}
@@ -0,0 +1,22 @@
1
+ /** A provider string naming one of the space's own identity providers: `sso:<connectionId>`. */
2
+ export declare const SSO_PROVIDER_PREFIX = "sso:";
3
+ /** The connection an `sso:<connectionId>` provider string names; undefined for any other provider. */
4
+ export declare function ssoConnectionOf(provider: string): string | undefined;
5
+ export interface OAuthStartUrlOptions {
6
+ authUrl: string;
7
+ /** A provider name (`google`, …) or `sso:<connectionId>`. */
8
+ provider: string;
9
+ spaceId: string;
10
+ returnUrl: string;
11
+ /** The PKCE challenge that asks for the code flow. SSO takes nothing else. */
12
+ codeChallenge?: string;
13
+ /** SSO only: joins the signed-in account to the connection instead of signing in anew. */
14
+ linkTicket?: string;
15
+ }
16
+ /**
17
+ * Where a sign-in starts on the auth service. Every provider starts at `/oauth/<provider>`; an SSO
18
+ * connection starts at `/oauth/sso` and names itself in the query, since the auth service's
19
+ * canonical-host handling covers one path segment.
20
+ */
21
+ export declare function buildOAuthStartUrl(options: OAuthStartUrlOptions): string;
22
+ //# sourceMappingURL=oauth-start-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-start-url.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/oauth-start-url.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQpE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAqBxE"}
@@ -1 +1,2 @@
1
1
  export declare function getOpcodeName(opcode: number): string;
2
+ //# sourceMappingURL=opcode-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcode-names.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/opcode-names.ts"],"names":[],"mappings":"AAUA,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -20,3 +20,4 @@ export declare function parentTargetOrigin(): string;
20
20
  * that already forwards. Returns a function that stops it; production never calls it.
21
21
  */
22
22
  export declare function installParentLogForwarding(): () => void;
23
+ //# sourceMappingURL=parent-log-forward.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-log-forward.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/parent-log-forward.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAU5D;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AA8DD;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAqEvD"}
package/utils/pkce.d.ts CHANGED
@@ -21,3 +21,4 @@ export declare function restorePkceVerifier(verifier: string): void;
21
21
  * verifier that outlived its redemption is only useful to whoever finds it later.
22
22
  */
23
23
  export declare function takePkceVerifier(): string | null;
24
+ //# sourceMappingURL=pkce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/pkce.ts"],"names":[],"mappings":"AAsBA,mGAAmG;AACnG,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAelE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAUhD"}
@@ -7,3 +7,4 @@ export declare const isIOS: () => boolean;
7
7
  * Detect if running on a mobile or tablet device (Android, iOS, and other mobile UAs).
8
8
  */
9
9
  export declare const isMobileDevice: () => boolean;
10
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/platform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,OAQxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAO,OASjC,CAAC"}
@@ -27,6 +27,8 @@ import { HttpStreamMode } from '../transport/transport';
27
27
  * - ikon-retry Retry loops in auth/channel connect; false fails fast (default true)
28
28
  * - ikon-snapshot Connect as a build-time snapshot client; sets Context.IsSnapshot
29
29
  * - ikon-signed-out The user signed out; suppresses auto-login for this load
30
+ * - ikon-feedback Open the feedback sheet once the connection is live, as a tap on the button would
31
+ * - ikon-test A test link's secret: enters the app as a guest marked as a tester; kept for the tab
30
32
  *
31
33
  * Read by the app shell's index.html rather than by the SDK, and listed so the name stays taken:
32
34
  * - ikon-logs Mirror the console onto the screen, for devices with no developer tools
@@ -54,6 +56,8 @@ export declare const IKON_PARAM_ICE_TRANSPORT = "ikon-ice-transport";
54
56
  export declare const IKON_PARAM_RETRY = "ikon-retry";
55
57
  export declare const IKON_PARAM_SNAPSHOT = "ikon-snapshot";
56
58
  export declare const IKON_PARAM_SIGNED_OUT = "ikon-signed-out";
59
+ export declare const IKON_PARAM_FEEDBACK = "ikon-feedback";
60
+ export declare const IKON_PARAM_TEST = "ikon-test";
57
61
  export declare const IKON_PARAM_OAUTH_TOKEN = "ikon_token";
58
62
  export declare const IKON_PARAM_OAUTH_CODE = "ikon_code";
59
63
  export declare const IKON_PARAM_OAUTH_PROVIDER = "ikon_provider";
@@ -166,3 +170,20 @@ export declare function getSessionParam(): string | null;
166
170
  * otherwise put the user straight back into the session they just left.
167
171
  */
168
172
  export declare function getSignedOutParam(): boolean;
173
+ /**
174
+ * Whether this link asks to report feedback (`?ikon-feedback`), for a tester told "report it from
175
+ * the link". A valueless flag, so presence is the whole signal.
176
+ */
177
+ export declare function getFeedbackParam(): boolean;
178
+ /** Drops `?ikon-feedback` from the address once it has opened the sheet, so a reload does not reopen it. */
179
+ export declare function clearFeedbackParam(): void;
180
+ /**
181
+ * The test link's secret this tab entered with (`?ikon-test=<secret>`), or null.
182
+ *
183
+ * Kept for the tab once seen: the app routes on its own, a reconnect re-runs the whole entry, and
184
+ * the secret has to reach every /anonymous and /init call of the visit, not only the first. Per tab
185
+ * rather than per browser, so a link handed to one person does not outlive their visit on a shared
186
+ * machine.
187
+ */
188
+ export declare function getTestLinkParam(): string | null;
189
+ //# sourceMappingURL=query-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-params.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/query-params.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,4 @@ export interface UserGestureRequest {
5
5
  cancel?: () => void;
6
6
  }
7
7
  export declare function isPermissionOrGestureError(error: unknown): boolean;
8
+ //# sourceMappingURL=user-gesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-gesture.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/user-gesture.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAsBlE"}
package/utils/uuid.d.ts CHANGED
@@ -10,3 +10,4 @@
10
10
  * to `Math.random` as a last resort.
11
11
  */
12
12
  export declare function randomUuid(): string;
13
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/utils/uuid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA2BnC"}
@@ -0,0 +1,183 @@
1
+ import { c as e, n as t } from "./logger-gjegmH6K.js";
2
+ import { a as n, o as r, r as i } from "./audio-constants-0i9B4zLJ.js";
3
+ //#region src/worker/viseme-worker.ts?worker
4
+ function a(e) {
5
+ return new Worker(new URL("assets/viseme-worker-CmvzHAbf.js", import.meta.url).href, {
6
+ type: "module",
7
+ name: e?.name
8
+ });
9
+ }
10
+ //#endregion
11
+ //#region src/media/viseme-tracker.ts
12
+ var o = t("VisemeTracker"), s = i * 2, c = class t {
13
+ static MAX_WORKER_REBUILD_ATTEMPTS = 3;
14
+ client;
15
+ worker = null;
16
+ protocolPort = null;
17
+ workerRebuildAttempts = 0;
18
+ streamShapeSets = /* @__PURE__ */ new Map();
19
+ currentShapeSetValues = /* @__PURE__ */ new Map();
20
+ visemeBuffers = /* @__PURE__ */ new Map();
21
+ visemeDelayMs = -20;
22
+ _visemeResult = {
23
+ mouthOpenY: 0,
24
+ mouthForm: 0
25
+ };
26
+ constructor(e) {
27
+ this.client = e;
28
+ }
29
+ enable() {
30
+ if (this.worker) return;
31
+ if (typeof Worker > "u") {
32
+ o.warn("Viseme worker unavailable (Workers not supported)");
33
+ return;
34
+ }
35
+ let n = this.client.createProtocolMessagePort({ opcodeGroupsMask: e.GROUP_AUDIO });
36
+ if (!n) return;
37
+ this.protocolPort = n;
38
+ try {
39
+ this.worker = new a();
40
+ } catch (e) {
41
+ o.warn(`Failed to create viseme worker: ${e}`), this.protocolPort.close(), this.protocolPort = null;
42
+ return;
43
+ }
44
+ let r = this.worker;
45
+ r.addEventListener("message", (e) => this.onWorkerMessage(e.data)), r.addEventListener("error", (e) => {
46
+ let n = [
47
+ e.message,
48
+ e.filename,
49
+ e.lineno,
50
+ e.colno
51
+ ].filter((e) => e != null && String(e).length > 0);
52
+ o.warn(`Viseme worker failed, rebuilding: ${n.join(" ")}`.trim()), this.dispose(), this.workerRebuildAttempts < t.MAX_WORKER_REBUILD_ATTEMPTS ? (this.workerRebuildAttempts++, this.enable()) : o.error("Viseme worker crashed repeatedly, giving up on rebuilds");
53
+ }), r.postMessage({
54
+ type: "attachProtocolPort",
55
+ port: n.port
56
+ }, [n.port]);
57
+ let i = this.client.globalState;
58
+ i && this.syncStreamsFromGlobalState(i);
59
+ }
60
+ syncStreamsFromGlobalState(e) {
61
+ if (!this.worker) return;
62
+ let t = Object.values(e.AudioStreams ?? {}).map((e) => ({
63
+ senderId: e.ClientSessionId,
64
+ trackId: e.TrackId,
65
+ info: e.Info
66
+ }));
67
+ if (t.length !== 0) try {
68
+ this.worker.postMessage({
69
+ type: "syncStreams",
70
+ streams: t
71
+ });
72
+ } catch {}
73
+ }
74
+ dispose() {
75
+ if (this.worker) {
76
+ try {
77
+ this.worker.postMessage({ type: "dispose" });
78
+ } catch {}
79
+ this.worker.terminate(), this.worker = null;
80
+ }
81
+ this.protocolPort &&= (this.protocolPort.close(), null), this.streamShapeSets.clear(), this.currentShapeSetValues.clear(), this.visemeBuffers.clear();
82
+ }
83
+ getShapeSets(e) {
84
+ return this.streamShapeSets.get(e) ?? null;
85
+ }
86
+ getShapeSetValues(e, t) {
87
+ let n = this.streamShapeSets.get(e);
88
+ if (!n) return null;
89
+ let r = n.find((e) => e.Name === t);
90
+ if (!r) return null;
91
+ let i = this.currentShapeSetValues.get(e);
92
+ return i ? i.get(r.SetId) ?? null : null;
93
+ }
94
+ getShapeSetValuesById(e, t) {
95
+ let n = this.currentShapeSetValues.get(e);
96
+ return n ? n.get(t) ?? null : null;
97
+ }
98
+ getAllShapeSetValues(e) {
99
+ return this.currentShapeSetValues.get(e) ?? null;
100
+ }
101
+ getCurrentVisemeValues() {
102
+ let e = performance.now() / 1e3;
103
+ for (let t of this.visemeBuffers.values()) {
104
+ if (!t.timingEstablished || t.count === 0) continue;
105
+ let n = e - t.playbackStartTime;
106
+ if (n < 0) continue;
107
+ let i = n * s, a = t.frames, o = t.count, c = (t.head - o + r) % r, l = null, u = null;
108
+ for (let e = 0; e < o; e++) {
109
+ let t = a[(c + e) % r], n = t.samplePosition + Math.max(t.frameSamples, 1);
110
+ if (t.samplePosition <= i && (l = t), n > i && !u && (u = t, t.samplePosition <= i)) break;
111
+ }
112
+ if (!l || i > l.samplePosition + Math.max(l.frameSamples, 1) && !u) continue;
113
+ if (!u) return this._visemeResult.mouthOpenY = l.mouthOpenY, this._visemeResult.mouthForm = l.mouthForm, this._visemeResult;
114
+ let d = l.samplePosition, f = d + Math.max(l.frameSamples, 1);
115
+ if (l !== u && u.samplePosition > l.samplePosition && f > d) {
116
+ let e = Math.min(1, Math.max(0, (i - d) / (f - d)));
117
+ this._visemeResult.mouthOpenY = l.mouthOpenY + e * (u.mouthOpenY - l.mouthOpenY), this._visemeResult.mouthForm = l.mouthForm + e * (u.mouthForm - l.mouthForm);
118
+ } else this._visemeResult.mouthOpenY = l.mouthOpenY, this._visemeResult.mouthForm = l.mouthForm;
119
+ return this._visemeResult;
120
+ }
121
+ return null;
122
+ }
123
+ setVisemeDelayMs(e) {
124
+ this.visemeDelayMs = Math.min(200, Math.max(n, e));
125
+ }
126
+ getVisemeDelayMs() {
127
+ return this.visemeDelayMs;
128
+ }
129
+ onWorkerMessage(e) {
130
+ if (e.type === "streamBegin") {
131
+ if (this.streamShapeSets.has(e.streamId)) return;
132
+ if (e.shapeSets && e.shapeSets.length > 0 && (this.streamShapeSets.set(e.streamId, e.shapeSets), this.currentShapeSetValues.set(e.streamId, /* @__PURE__ */ new Map()), e.shapeSets.some((e) => e.Name === "Viseme"))) {
133
+ let t = Array(r);
134
+ for (let e = 0; e < r; e++) t[e] = {
135
+ samplePosition: 0,
136
+ frameSamples: 0,
137
+ mouthOpenY: 0,
138
+ mouthForm: 0
139
+ };
140
+ this.visemeBuffers.set(e.streamId, {
141
+ frames: t,
142
+ head: 0,
143
+ count: 0,
144
+ playbackStartTime: 0,
145
+ epochTimestampSamples: 0,
146
+ timingEstablished: !1,
147
+ currentEpoch: -1
148
+ });
149
+ }
150
+ return;
151
+ }
152
+ if (e.type === "shapeFrame") {
153
+ this.processShapeSetValues(e.streamId, e.epoch, e.timestampInterleavedSamples, e.frameSizeInterleavedSamples, e.shapeSetValues);
154
+ return;
155
+ }
156
+ if (e.type === "streamEnd") {
157
+ this.streamShapeSets.delete(e.streamId), this.currentShapeSetValues.delete(e.streamId), this.visemeBuffers.delete(e.streamId);
158
+ return;
159
+ }
160
+ }
161
+ processShapeSetValues(e, t, i, a, o) {
162
+ let s = this.currentShapeSetValues.get(e);
163
+ if (s) for (let e of o) s.set(e.SetId, e.Values);
164
+ let c = this.visemeBuffers.get(e);
165
+ if (!c) return;
166
+ let l = this.streamShapeSets.get(e)?.find((e) => e.Name === "Viseme");
167
+ if (!l) return;
168
+ let u = o.find((e) => e.SetId === l.SetId);
169
+ if (!(!u || u.Values.length < 2)) {
170
+ if (c.currentEpoch !== t && (c.currentEpoch = t, c.timingEstablished = !1, c.count = 0, c.head = 0), !c.timingEstablished) {
171
+ c.epochTimestampSamples = i;
172
+ let e = Math.min(200, Math.max(n, this.visemeDelayMs));
173
+ c.playbackStartTime = performance.now() / 1e3 + e / 1e3, c.timingEstablished = !0;
174
+ }
175
+ if (a > 0) {
176
+ let e = c.frames[c.head];
177
+ e.samplePosition = i - c.epochTimestampSamples, e.frameSamples = a, e.mouthOpenY = u.Values[0], e.mouthForm = u.Values[1], c.head = (c.head + 1) % r, c.count < 1500 && c.count++;
178
+ }
179
+ }
180
+ }
181
+ };
182
+ //#endregion
183
+ export { c as VisemeTracker };
@@ -0,0 +1,229 @@
1
+ //#region src/errors/index.ts
2
+ var e = class extends Error {
3
+ cause;
4
+ constructor(e, t) {
5
+ super(e), this.cause = t, this.name = "ConnectionError";
6
+ }
7
+ }, t = class extends e {
8
+ constructor(e, t) {
9
+ super(e, t), this.name = "AuthenticationError";
10
+ }
11
+ }, n = class extends e {
12
+ constructor(e, t) {
13
+ super(e, t), this.name = "TransportError";
14
+ }
15
+ }, r = class extends n {
16
+ constructor(e) {
17
+ super(`No keepalive received within ${e}ms`), this.name = "KeepaliveTimeoutError";
18
+ }
19
+ }, i = class extends n {
20
+ constructor(e, t) {
21
+ super(e, t), this.name = "AuthRejectedError";
22
+ }
23
+ }, a = class extends e {
24
+ constructor(e) {
25
+ super(`Maximum reconnection attempts (${e}) exceeded`), this.name = "MaxRetriesExceededError";
26
+ }
27
+ }, ee = class extends t {
28
+ constructor(e) {
29
+ super(`App session provisioning timeout after ${e}ms`), this.name = "ProvisioningTimeoutError";
30
+ }
31
+ }, o = class extends t {
32
+ constructor(e = "The app failed to start") {
33
+ super(e), this.name = "AppStartupFailedError";
34
+ }
35
+ }, s = class extends t {
36
+ constructor(e) {
37
+ super(`Space not found for domain: ${e}`), this.name = "SpaceNotFoundError";
38
+ }
39
+ }, c = class extends t {
40
+ reason;
41
+ constructor(e, t) {
42
+ super(e), this.reason = t, this.name = "AccessDeniedError";
43
+ }
44
+ }, te = class extends c {
45
+ connectionId;
46
+ constructor(e, t, n) {
47
+ super(e, t), this.connectionId = n, this.name = "SsoRequiredError";
48
+ }
49
+ }, l = class extends t {
50
+ constructor(e) {
51
+ super(e), this.name = "CredentialRejectedError";
52
+ }
53
+ }, u = class extends t {
54
+ sessionIdentityHash;
55
+ constructor(e) {
56
+ super(`No live app session for sessionIdentityHash ${e}`), this.sessionIdentityHash = e, this.name = "SessionNotFoundError";
57
+ }
58
+ }, d = class extends t {
59
+ constructor(e) {
60
+ super(e), this.name = "ServerFullError";
61
+ }
62
+ }, f = class extends t {
63
+ status;
64
+ constructor(e, t) {
65
+ super(e), this.status = t, this.name = "ServerUnavailableError";
66
+ }
67
+ }, p = class extends e {
68
+ missingFeatures;
69
+ constructor(e) {
70
+ super(`Browser is not supported: missing required features (${e.join(", ")})`), this.missingFeatures = e, this.name = "BrowserNotSupportedError";
71
+ }
72
+ }, m = class extends e {
73
+ pinnedTransport;
74
+ pinnedTier;
75
+ offeredTypes;
76
+ constructor(e, t, n) {
77
+ let r = [e && `?ikon-transport=${e}`, t && `?ikon-proxy=${t}`].filter(Boolean).join(" and ");
78
+ super(`No entrypoint matches ${r || "the pinned transport"}; the server offered [${n.join(", ")}]. Change or remove the pin.`), this.pinnedTransport = e, this.pinnedTier = t, this.offeredTypes = n, this.name = "NoMatchingEndpointTypeError";
79
+ }
80
+ }, h = "ikon-proxy", g = "ikon-transport", _ = "ikon-connect", v = "ikon-session", y = "ikon-same-origin", b = "ikon-debug", x = "ikon-debug-overlay", S = "ikon-inspect", C = "ikon-lang", w = "ikon-audio", T = "ikon-video", E = "ikon-webrtc", D = "ikon-ice-transport", O = "ikon-retry", k = "ikon-snapshot", A = "ikon-signed-out", j = "ikon-feedback", M = "ikon-test", N = "ikon_token", P = "ikon_code", F = "ikon_provider", I = "ikon_pkce";
81
+ function L(e) {
82
+ if (typeof window > "u") return null;
83
+ let t = new URLSearchParams(window.location.search), n = t.get(e);
84
+ return n === null ? t.get(e.replace(/-/g, "_")) : n;
85
+ }
86
+ function R(e) {
87
+ let t = L(e);
88
+ return t === "true" || t !== "false" && null;
89
+ }
90
+ function z(e) {
91
+ if (typeof window > "u") return !1;
92
+ let t = new URLSearchParams(window.location.search);
93
+ return t.has(e) || t.has(e.replace(/-/g, "_"));
94
+ }
95
+ function B(e, t) {
96
+ if (typeof window > "u") return;
97
+ let n = new URL(window.location.href);
98
+ n.searchParams.get(e) !== t && (n.searchParams.set(e, t), window.history.replaceState(null, "", n.toString()));
99
+ }
100
+ function V() {
101
+ let e = L(h);
102
+ return e === "false" ? "direct" : e === "true" ? "proxy" : e === "lb" || e === "stream" ? "lb" : null;
103
+ }
104
+ function H(e) {
105
+ return e === "binary" || e === "sse" || e === "poll" ? e : null;
106
+ }
107
+ var U = {
108
+ ws: "websocket",
109
+ websocket: "websocket",
110
+ wt: "webtransport",
111
+ webtransport: "webtransport",
112
+ http: "httpstream",
113
+ httpstream: "httpstream"
114
+ };
115
+ function W() {
116
+ let e = L(g)?.toLowerCase();
117
+ if (!e) return null;
118
+ let t = U[e];
119
+ if (t) return { family: t };
120
+ let n = e.lastIndexOf("-");
121
+ if (n === -1) return null;
122
+ let r = U[e.slice(0, n)], i = H(e.slice(n + 1));
123
+ return r !== "httpstream" || !i ? null : {
124
+ family: r,
125
+ mode: i
126
+ };
127
+ }
128
+ function G() {
129
+ return R(b) === !0;
130
+ }
131
+ function ne() {
132
+ return L(C);
133
+ }
134
+ function K() {
135
+ let e = L(_);
136
+ if (!e || typeof window > "u") return null;
137
+ if (/^https?:\/\//i.test(e)) return e;
138
+ let t = e.indexOf("~"), n = t < 0 ? e : e.substring(t + 1), r = t < 0 ? window.location.port : e.substring(0, t), i = r ? `${window.location.hostname}:${r}` : window.location.hostname;
139
+ return `${window.location.protocol}//${i}/connect?token=${encodeURIComponent(n)}`;
140
+ }
141
+ function q() {
142
+ let e = typeof window < "u" ? window.__IKON_RESUME__ : void 0;
143
+ if (!e) return null;
144
+ let t = e.replace(/-/g, "+").replace(/_/g, "/"), n = t + "=".repeat((4 - t.length % 4) % 4);
145
+ try {
146
+ let e = atob(n), t = new Uint8Array(e.length);
147
+ for (let n = 0; n < e.length; n++) t[n] = e.charCodeAt(n);
148
+ return t;
149
+ } catch {
150
+ return null;
151
+ }
152
+ }
153
+ function J() {
154
+ return R(w);
155
+ }
156
+ function Y() {
157
+ return R(T);
158
+ }
159
+ function X() {
160
+ return R(E);
161
+ }
162
+ function Z() {
163
+ let e = L(D);
164
+ return e === "relay" ? "relay" : e === "all" ? "all" : null;
165
+ }
166
+ function re() {
167
+ return R(S) === !0;
168
+ }
169
+ function ie() {
170
+ return R(x) === !0;
171
+ }
172
+ function ae() {
173
+ return R(y);
174
+ }
175
+ function oe() {
176
+ return R(O) !== !1;
177
+ }
178
+ function se() {
179
+ return R(k) === !0;
180
+ }
181
+ function ce() {
182
+ return L(v);
183
+ }
184
+ function le() {
185
+ return z(A);
186
+ }
187
+ function ue() {
188
+ return z(j);
189
+ }
190
+ function de() {
191
+ if (typeof window > "u") return;
192
+ let e = new URL(window.location.href), t = [j, j.replace(/-/g, "_")];
193
+ if (t.some((t) => e.searchParams.has(t))) {
194
+ for (let n of t) e.searchParams.delete(n);
195
+ window.history.replaceState(window.history.state, "", e.toString());
196
+ }
197
+ }
198
+ var Q = "ikon-test-link", $ = null;
199
+ function fe() {
200
+ let e = L(M);
201
+ try {
202
+ return e ? (sessionStorage.setItem(Q, e), e) : sessionStorage.getItem(Q) ?? $;
203
+ } catch {
204
+ return e && ($ = e), $;
205
+ }
206
+ }
207
+ //#endregion
208
+ //#region src/utils/delay.ts
209
+ function pe(e, t) {
210
+ return new Promise((n, r) => {
211
+ let i = () => {
212
+ clearTimeout(a), r(new DOMException("Aborted", "AbortError"));
213
+ }, a = setTimeout(() => {
214
+ t?.removeEventListener("abort", i), n();
215
+ }, e);
216
+ if (t?.aborted) {
217
+ clearTimeout(a), r(new DOMException("Aborted", "AbortError"));
218
+ return;
219
+ }
220
+ t?.addEventListener("abort", i, { once: !0 });
221
+ });
222
+ }
223
+ //#endregion
224
+ //#region src/transport/web-transport-support.ts
225
+ function me() {
226
+ return typeof WebTransport < "u";
227
+ }
228
+ //#endregion
229
+ export { r as $, ue as A, se as B, T as C, K as D, J as E, q as F, B as G, W as H, oe as I, i as J, c as K, ae as L, re as M, ne as N, ie as O, V as P, l as Q, ce as R, g as S, de as T, Y as U, fe as V, X as W, p as X, t as Y, e as Z, y as _, b as a, u as at, k as b, D as c, n as ct, P as d, a as et, I as f, O as g, h, _ as i, f as it, Z as j, G as k, S as l, N as m, pe as n, ee as nt, x as o, s as ot, F as p, o as q, w as r, d as rt, j as s, te as st, me as t, m as tt, C as u, v, E as w, M as x, A as y, le as z };
package/webrtc/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { WebRTCConnection, type WebRTCConnectionConfig, type WebRTCConnectionState } from './webrtc-connection';
2
2
  export { WebRTCSignaling, type WebRTCSignalingConfig } from './webrtc-signaling';
3
3
  export { WEBRTC_AUDIO_CODEC, WEBRTC_AUDIO_SAMPLE_RATE, WEBRTC_AUDIO_CHANNELS, WEBRTC_AUDIO_BITRATE, WEBRTC_AUDIO_JITTER_BUFFER_TARGET_MS, WEBRTC_VIDEO_CODEC, WEBRTC_VIDEO_MAX_BITRATE, WEBRTC_VIDEO_MAX_FRAMERATE, WEBRTC_MAX_AUDIO_TRACKS, WEBRTC_MAX_VIDEO_TRACKS, WEBRTC_BUNDLE_POLICY, WEBRTC_RTCP_MUX_POLICY, WEBRTC_DATA_CHANNEL_LABEL, WEBRTC_DATA_CHANNEL_ORDERED, WEBRTC_DATA_CHANNEL_MAX_RETRANSMITS, WEBRTC_CONNECT_TIMEOUT_MS, } from './webrtc-config';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/webrtc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC"}
@@ -16,3 +16,4 @@ export declare const WEBRTC_MAX_VIDEO_TRACKS = 16;
16
16
  export declare const WEBRTC_DATA_CHANNEL_LABEL = "ikon-data";
17
17
  export declare const WEBRTC_DATA_CHANNEL_ORDERED = false;
18
18
  export declare const WEBRTC_DATA_CHANNEL_MAX_RETRANSMITS = 0;
19
+ //# sourceMappingURL=webrtc-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc-config.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/webrtc/webrtc-config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,wBAAwB,UAAY,CAAC;AAClD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAGtD,eAAO,MAAM,oBAAoB,EAAE,eAA8B,CAAC;AAClE,eAAO,MAAM,sBAAsB,EAAE,gBAA4B,CAAC;AAMlE,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAQ1D,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAG9C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AACjD,eAAO,MAAM,mCAAmC,IAAI,CAAC"}
@@ -28,6 +28,15 @@ export declare class WebRTCConnection {
28
28
  get isDataChannelOpen(): boolean;
29
29
  initialize(): Promise<void>;
30
30
  createOffer(): Promise<string>;
31
+ /**
32
+ * Re-gather candidates over whatever path exists now and offer the result, for a peer connection
33
+ * whose transport survived but whose route did not — a laptop changing interface keeps the
34
+ * session and loses every candidate pair it was using.
35
+ *
36
+ * The caller signals the returned SDP exactly as it signals the initial offer; the server answers
37
+ * on the same opcode.
38
+ */
39
+ restartIce(): Promise<string>;
31
40
  setRemoteDescription(sdp: string, type: 'answer' | 'offer'): Promise<void>;
32
41
  addIceCandidate(candidate: RTCIceCandidateInit): Promise<void>;
33
42
  addTrack(track: MediaStreamTrack, stream: MediaStream): RTCRtpSender;
@@ -39,3 +48,4 @@ export declare class WebRTCConnection {
39
48
  private setupDataChannelHandlers;
40
49
  private setState;
41
50
  }
51
+ //# sourceMappingURL=webrtc-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc-connection.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/webrtc/webrtc-connection.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9G,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1F,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3F;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,EAAE,sBAAsB;IAI1C,IAAI,KAAK,IAAI,qBAAqB,CAEjC;IAED,IAAI,cAAc,IAAI,iBAAiB,GAAG,IAAI,CAE7C;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAapC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAW7B,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1E,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAQ9D,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA+B9H,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAQvC,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAS/C,KAAK,IAAI,IAAI;IAcb,OAAO,CAAC,kBAAkB;IAwF1B,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,QAAQ;CAMjB"}
@@ -52,3 +52,4 @@ export declare class WebRtcReachabilityStore {
52
52
  * recording a guess here would pin the wrong ICE policy for every later session.
53
53
  */
54
54
  export declare function detectRelayUse(pc: RTCPeerConnection): Promise<boolean | null>;
55
+ //# sourceMappingURL=webrtc-reachability.d.ts.map