@ikonai/sdk 1.8.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 +13 -2
  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 +146 -5
  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 +20 -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 -0
  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 +24 -11
  63. package/index.d.ts.map +1 -0
  64. package/index.js +6707 -10749
  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 +23 -0
  82. package/media/ikon-audio-capture.d.ts.map +1 -0
  83. package/media/ikon-audio-playback.d.ts +3 -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 +9 -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 +2 -1
  113. package/storage.d.ts.map +1 -0
  114. package/transport/http-stream-transport.d.ts +17 -1
  115. package/transport/http-stream-transport.d.ts.map +1 -0
  116. package/transport/keepalive-watchdog.d.ts +32 -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 +16 -1
  123. package/transport/transport.d.ts.map +1 -0
  124. package/transport/web-socket-transport.d.ts +4 -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 +4 -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 +14 -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 +23 -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 +19 -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-BXZR_9iK.js +0 -1
  205. package/assets/protocol-worker-PNQ9dfGq.js +0 -3
  206. package/assets/video-capture-worker-mvwKyjOn.js +0 -1
  207. package/assets/video-playback-worker-DqNjooZJ.js +0 -1
  208. package/assets/viseme-worker-D0AKWUTO.js +0 -1
  209. package/capabilities-xDnE0vqq.js +0 -105
  210. package/vite.config.d.ts +0 -2
@@ -0,0 +1,80 @@
1
+ //#region ../../shared/protocol/src/enums/opcode.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e[e.NONE = 0] = "NONE", e[e.CONSTANT_GROUP_BITS = 15] = "CONSTANT_GROUP_BITS", e[e.CONSTANT_GROUP_OFFSET = 16] = "CONSTANT_GROUP_OFFSET", e[e.GROUP_CORE = 65536] = "GROUP_CORE", e[e.CORE_AUTH_RESPONSE = 65537] = "CORE_AUTH_RESPONSE", e[e.CORE_AUTH_TICKET = 65538] = "CORE_AUTH_TICKET", e[e.CORE_GLOBAL_STATE = 65539] = "CORE_GLOBAL_STATE", e[e.CORE_ON_SERVER_STATUS_PING = 65540] = "CORE_ON_SERVER_STATUS_PING", e[e.CORE_ON_USER_JOINED = 65541] = "CORE_ON_USER_JOINED", e[e.CORE_ON_USER_LEFT = 65542] = "CORE_ON_USER_LEFT", e[e.CORE_ON_CLIENT_JOINED = 65543] = "CORE_ON_CLIENT_JOINED", e[e.CORE_ON_CLIENT_LEFT = 65544] = "CORE_ON_CLIENT_LEFT", e[e.CORE_ON_SERVER_STARTED = 65545] = "CORE_ON_SERVER_STARTED", e[e.CORE_ON_SERVER_STOPPED = 65546] = "CORE_ON_SERVER_STOPPED", e[e.CORE_ON_SERVER_STOPPING = 65547] = "CORE_ON_SERVER_STOPPING", e[e.CORE_ON_CLIENT_READY = 65548] = "CORE_ON_CLIENT_READY", e[e.CORE_CLIENT_READY = 65549] = "CORE_CLIENT_READY", e[e.CORE_SERVER_INIT = 65550] = "CORE_SERVER_INIT", e[e.CORE_ON_PLUGIN_RELOADED = 65551] = "CORE_ON_PLUGIN_RELOADED", e[e.CORE_PROXY_RPC_AUTH_TICKET = 65556] = "CORE_PROXY_RPC_AUTH_TICKET", e[e.CORE_UPDATE_CLIENT_CONTEXT = 65558] = "CORE_UPDATE_CLIENT_CONTEXT", e[e.CORE_BACKGROUND_WORK_ACTIVE = 65559] = "CORE_BACKGROUND_WORK_ACTIVE", e[e.CORE_RESET_IDLE = 65560] = "CORE_RESET_IDLE", e[e.CORE_CLIENT_DISCONNECTING = 65561] = "CORE_CLIENT_DISCONNECTING", e[e.CORE_ON_APP_READY = 65562] = "CORE_ON_APP_READY", e[e.CORE_ON_FRONTEND_RELOADED = 65563] = "CORE_ON_FRONTEND_RELOADED", e[e.CORE_WEBRTC_OFFER = 65566] = "CORE_WEBRTC_OFFER", e[e.CORE_WEBRTC_ANSWER = 65567] = "CORE_WEBRTC_ANSWER", e[e.CORE_WEBRTC_ICE_CANDIDATE = 65568] = "CORE_WEBRTC_ICE_CANDIDATE", e[e.CORE_WEBRTC_READY = 65569] = "CORE_WEBRTC_READY", e[e.CORE_WEBRTC_AUDIO_SEGMENT = 65570] = "CORE_WEBRTC_AUDIO_SEGMENT", e[e.CORE_WEBRTC_TRACK_MAP = 65571] = "CORE_WEBRTC_TRACK_MAP", e[e.CORE_WEBRTC_VIDEO_CAPTURE = 65572] = "CORE_WEBRTC_VIDEO_CAPTURE", e[e.CORE_WEBRTC_ICE_SERVERS_REQUEST = 65573] = "CORE_WEBRTC_ICE_SERVERS_REQUEST", e[e.CORE_WEBRTC_ICE_SERVERS_RESPONSE = 65574] = "CORE_WEBRTC_ICE_SERVERS_RESPONSE", e[e.CORE_WEBRTC_CLOSE = 65575] = "CORE_WEBRTC_CLOSE", e[e.CORE_RELAY_AGENT_AUTH = 65576] = "CORE_RELAY_AGENT_AUTH", e[e.CORE_RELAY_AGENT_AUTH_RESULT = 65577] = "CORE_RELAY_AGENT_AUTH_RESULT", e[e.CORE_RELAY_HEARTBEAT = 65578] = "CORE_RELAY_HEARTBEAT", e[e.CORE_RELAY_TCP_CONNECTION_OPENED = 65579] = "CORE_RELAY_TCP_CONNECTION_OPENED", e[e.CORE_RELAY_TCP_CONNECTION_CLOSED = 65580] = "CORE_RELAY_TCP_CONNECTION_CLOSED", e[e.CORE_RELAY_TCP_DATA = 65581] = "CORE_RELAY_TCP_DATA", e[e.CORE_RELAY_UDP_DATA = 65582] = "CORE_RELAY_UDP_DATA", e[e.CORE_RELAY_ADD_TUNNEL = 65583] = "CORE_RELAY_ADD_TUNNEL", e[e.CORE_RELAY_TUNNEL_ADDED = 65584] = "CORE_RELAY_TUNNEL_ADDED", e[e.CORE_RELAY_REMOVE_TUNNEL = 65585] = "CORE_RELAY_REMOVE_TUNNEL", e[e.CORE_IKON_SERVER_ENDPOINT_HOST_INFO = 65586] = "CORE_IKON_SERVER_ENDPOINT_HOST_INFO", e[e.CORE_CLIENT_INITIALIZATION = 65587] = "CORE_CLIENT_INITIALIZATION", e[e.CORE_CLIENT_LIFECYCLE_BATCH = 65588] = "CORE_CLIENT_LIFECYCLE_BATCH", e[e.CORE_APP_CONFIG = 65589] = "CORE_APP_CONFIG", e[e.CORE_ON_TRIGGER_EVENT_HANDLED = 65590] = "CORE_ON_TRIGGER_EVENT_HANDLED", e[e.GROUP_KEEPALIVE = 131072] = "GROUP_KEEPALIVE", e[e.KEEPALIVE_REQUEST = 131073] = "KEEPALIVE_REQUEST", e[e.KEEPALIVE_RESPONSE = 131074] = "KEEPALIVE_RESPONSE", e[e.GROUP_EVENTS = 262144] = "GROUP_EVENTS", e[e.EVENTS_PROFILE_UPDATE = 262145] = "EVENTS_PROFILE_UPDATE", e[e.EVENTS_SPEECH_PLAYBACK_COMPLETE = 262147] = "EVENTS_SPEECH_PLAYBACK_COMPLETE", e[e.GROUP_ANALYTICS = 524288] = "GROUP_ANALYTICS", e[e.ANALYTICS_LOGS = 524289] = "ANALYTICS_LOGS", e[e.ANALYTICS_EVENTS = 524290] = "ANALYTICS_EVENTS", e[e.ANALYTICS_USAGES = 524291] = "ANALYTICS_USAGES", e[e.ANALYTICS_USAGE = 524292] = "ANALYTICS_USAGE", e[e.ANALYTICS_SPECIAL_LOG = 524293] = "ANALYTICS_SPECIAL_LOG", e[e.ANALYTICS_PROCESSING_UPDATE = 524294] = "ANALYTICS_PROCESSING_UPDATE", e[e.ANALYTICS_REACTIVE_PROCESSING_UPDATE = 524295] = "ANALYTICS_REACTIVE_PROCESSING_UPDATE", e[e.ANALYTICS_IKON_PROXY_SERVER_STATS = 524296] = "ANALYTICS_IKON_PROXY_SERVER_STATS", e[e.ANALYTICS_IKON_RELAY_SERVER_STATS = 524297] = "ANALYTICS_IKON_RELAY_SERVER_STATS", e[e.ANALYTICS_IKON_TURN_SERVER_STATS = 524298] = "ANALYTICS_IKON_TURN_SERVER_STATS", e[e.ANALYTICS_IKON_HOST_SERVER_STATS = 524299] = "ANALYTICS_IKON_HOST_SERVER_STATS", e[e.ANALYTICS_TRAFFIC_USAGE = 524300] = "ANALYTICS_TRAFFIC_USAGE", e[e.GROUP_ACTIONS = 1048576] = "GROUP_ACTIONS", e[e.ACTION_ACTIVE = 1048578] = "ACTION_ACTIVE", e[e.ACTION_TEXT_OUTPUT = 1048579] = "ACTION_TEXT_OUTPUT", e[e.ACTION_TEXT_OUTPUT_DELTA = 1048580] = "ACTION_TEXT_OUTPUT_DELTA", e[e.ACTION_TEXT_OUTPUT_DELTA_FULL = 1048581] = "ACTION_TEXT_OUTPUT_DELTA_FULL", e[e.ACTION_SET_STATE = 1048582] = "ACTION_SET_STATE", e[e.ACTION_TAP = 1048583] = "ACTION_TAP", e[e.ACTION_PAN = 1048584] = "ACTION_PAN", e[e.ACTION_ZOOM = 1048585] = "ACTION_ZOOM", e[e.ACTION_OPEN_EXTERNAL_URL = 1048592] = "ACTION_OPEN_EXTERNAL_URL", e[e.ACTION_FUNCTION_REGISTER = 1048600] = "ACTION_FUNCTION_REGISTER", e[e.ACTION_FUNCTION_CALL = 1048601] = "ACTION_FUNCTION_CALL", e[e.ACTION_FUNCTION_RESULT = 1048602] = "ACTION_FUNCTION_RESULT", e[e.ACTION_GENERATE_ANSWER = 1048603] = "ACTION_GENERATE_ANSWER", e[e.ACTION_REGENERATE_ANSWER = 1048604] = "ACTION_REGENERATE_ANSWER", e[e.ACTION_CLEAR_STATE = 1048606] = "ACTION_CLEAR_STATE", e[e.ACTION_CLASSIFICATION_RESULT = 1048609] = "ACTION_CLASSIFICATION_RESULT", e[e.ACTION_AUDIO_STOP = 1048610] = "ACTION_AUDIO_STOP", e[e.ACTION_CALL_TEXT = 1048611] = "ACTION_CALL_TEXT", e[e.ACTION_CANCEL_GENERATION = 1048613] = "ACTION_CANCEL_GENERATION", e[e.ACTION_SPEECH_RECOGNIZED = 1048615] = "ACTION_SPEECH_RECOGNIZED", e[e.ACTION_CALL_RESULT = 1048616] = "ACTION_CALL_RESULT", e[e.ACTION_DOWNLOAD = 1048618] = "ACTION_DOWNLOAD", e[e.ACTION_PLAY_SOUND = 1048621] = "ACTION_PLAY_SOUND", e[e.ACTION_STOP_SOUND = 1048623] = "ACTION_STOP_SOUND", e[e.ACTION_START_RECORDING = 1048624] = "ACTION_START_RECORDING", e[e.ACTION_STOP_RECORDING = 1048625] = "ACTION_STOP_RECORDING", e[e.ACTION_FUNCTION_ENUMERATION_ITEM = 1048627] = "ACTION_FUNCTION_ENUMERATION_ITEM", e[e.ACTION_FUNCTION_ENUMERATION_END = 1048628] = "ACTION_FUNCTION_ENUMERATION_END", e[e.ACTION_FUNCTION_CANCEL = 1048629] = "ACTION_FUNCTION_CANCEL", e[e.ACTION_FUNCTION_DISPOSE = 1048630] = "ACTION_FUNCTION_DISPOSE", e[e.ACTION_FUNCTION_ERROR = 1048631] = "ACTION_FUNCTION_ERROR", e[e.ACTION_FUNCTION_ACK = 1048632] = "ACTION_FUNCTION_ACK", e[e.ACTION_FUNCTION_AWAITING_APPROVAL = 1048633] = "ACTION_FUNCTION_AWAITING_APPROVAL", e[e.ACTION_FUNCTION_APPROVAL_REQUIRED = 1048634] = "ACTION_FUNCTION_APPROVAL_REQUIRED", e[e.ACTION_FUNCTION_APPROVAL_RESPONSE = 1048635] = "ACTION_FUNCTION_APPROVAL_RESPONSE", e[e.UI_UPDATE_ACK = 1048636] = "UI_UPDATE_ACK", e[e.ACTION_CALL2 = 1048637] = "ACTION_CALL2", e[e.ACTION_FUNCTION_REGISTER_BATCH = 1048638] = "ACTION_FUNCTION_REGISTER_BATCH", e[e.ACTION_CUSTOM_USER_MESSAGE = 1048641] = "ACTION_CUSTOM_USER_MESSAGE", e[e.ACTION_URL_CHANGED = 1048642] = "ACTION_URL_CHANGED", e[e.ACTION_FILE_UPLOAD_PRE_START2 = 1048643] = "ACTION_FILE_UPLOAD_PRE_START2", e[e.ACTION_FILE_UPLOAD_PRE_START_RESPONSE2 = 1048644] = "ACTION_FILE_UPLOAD_PRE_START_RESPONSE2", e[e.ACTION_FILE_UPLOAD_START2 = 1048645] = "ACTION_FILE_UPLOAD_START2", e[e.ACTION_FILE_UPLOAD_START_RESPONSE2 = 1048646] = "ACTION_FILE_UPLOAD_START_RESPONSE2", e[e.ACTION_FILE_UPLOAD_DATA2 = 1048647] = "ACTION_FILE_UPLOAD_DATA2", e[e.ACTION_FILE_UPLOAD_ACK2 = 1048648] = "ACTION_FILE_UPLOAD_ACK2", e[e.ACTION_FILE_UPLOAD_END2 = 1048649] = "ACTION_FILE_UPLOAD_END2", e[e.ACTION_FILE_UPLOAD_COMPLETE2 = 1048650] = "ACTION_FILE_UPLOAD_COMPLETE2", e[e.ACTION_FUNCTION_ENUMERATION_ITEM_BATCH = 1048651] = "ACTION_FUNCTION_ENUMERATION_ITEM_BATCH", e[e.ACTION_CALL_ACK = 1048652] = "ACTION_CALL_ACK", e[e.ACTION_TRIGGER_CRON = 1048653] = "ACTION_TRIGGER_CRON", e[e.ACTION_RESULT = 1048654] = "ACTION_RESULT", e[e.UI_RESYNC_REQUEST = 1048655] = "UI_RESYNC_REQUEST", e[e.ACTION_FILE_UPLOAD_RESUME2 = 1048657] = "ACTION_FILE_UPLOAD_RESUME2", e[e.ACTION_FILE_UPLOAD_RESUME_RESPONSE2 = 1048658] = "ACTION_FILE_UPLOAD_RESUME_RESPONSE2", e[e.ACTION_TRIGGER_EVENT = 1048659] = "ACTION_TRIGGER_EVENT", e[e.ACTION_EVICT_USER_STATE = 1048660] = "ACTION_EVICT_USER_STATE", e[e.GROUP_UI = 2097152] = "GROUP_UI", e[e.UI_STREAM_BEGIN = 2097153] = "UI_STREAM_BEGIN", e[e.UI_STREAM_END = 2097154] = "UI_STREAM_END", e[e.UI_STYLES = 2097188] = "UI_STYLES", e[e.UI_UPDATE = 2097190] = "UI_UPDATE", e[e.UI_STYLES_BATCH = 2097192] = "UI_STYLES_BATCH", e[e.UI_STYLES_DELETE = 2097193] = "UI_STYLES_DELETE", e[e.GROUP_COMMON = 4128768] = "GROUP_COMMON", e[e.GROUP_AUDIO = 4194304] = "GROUP_AUDIO", e[e.AUDIO_STREAM_BEGIN = 4194305] = "AUDIO_STREAM_BEGIN", e[e.AUDIO_STREAM_END = 4194306] = "AUDIO_STREAM_END", e[e.AUDIO_FRAME_VOLUME = 4194308] = "AUDIO_FRAME_VOLUME", e[e.AUDIO_FRAME = 4194309] = "AUDIO_FRAME", e[e.AUDIO_SHAPE_FRAME = 4194310] = "AUDIO_SHAPE_FRAME", e[e.AUDIO_PLAYBACK_REPORT = 4194311] = "AUDIO_PLAYBACK_REPORT", e[e.GROUP_VIDEO = 8388608] = "GROUP_VIDEO", e[e.VIDEO_STREAM_BEGIN = 8388609] = "VIDEO_STREAM_BEGIN", e[e.VIDEO_STREAM_END = 8388610] = "VIDEO_STREAM_END", e[e.VIDEO_FRAME = 8388611] = "VIDEO_FRAME", e[e.VIDEO_REQUEST_IDR_FRAME = 8388612] = "VIDEO_REQUEST_IDR_FRAME", e[e.VIDEO_INVALIDATE_FRAME = 8388613] = "VIDEO_INVALIDATE_FRAME", e[e.GROUP_ALL = 16711680] = "GROUP_ALL", e[e.GROUP_APP_LOCAL = 1073741824] = "GROUP_APP_LOCAL", e[e.CONSTANT_GROUP_MASK = 2147418112] = "CONSTANT_GROUP_MASK", e;
4
+ }({}), t = /* @__PURE__ */ function(e) {
5
+ return e[e.DEBUG = 0] = "DEBUG", e[e.INFO = 1] = "INFO", e[e.WARN = 2] = "WARN", e[e.ERROR = 3] = "ERROR", e[e.NONE = 4] = "NONE", e;
6
+ }({}), n = 1, r = null, i = /* @__PURE__ */ new Map();
7
+ function a(e) {
8
+ n = e;
9
+ }
10
+ function o() {
11
+ return n;
12
+ }
13
+ function s(e) {
14
+ r = e;
15
+ }
16
+ function c() {
17
+ return r;
18
+ }
19
+ function l(e, t) {
20
+ return i.set(e, t ?? { minLevel: 2 }), () => {
21
+ i.delete(e);
22
+ };
23
+ }
24
+ var u = {
25
+ 0: "DEBUG",
26
+ 1: "INFO",
27
+ 2: "WARN",
28
+ 3: "ERROR",
29
+ 4: "NONE"
30
+ };
31
+ function d(e, t) {
32
+ return `[${e}] ${t}`;
33
+ }
34
+ function f(e, t, a, o) {
35
+ let s = {
36
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
37
+ level: e,
38
+ levelName: u[e],
39
+ component: t,
40
+ message: a,
41
+ args: o
42
+ };
43
+ r && r(s);
44
+ for (let [t, n] of i) if (e >= (n?.minLevel ?? 2)) try {
45
+ t(s);
46
+ } catch {}
47
+ if (n <= e) {
48
+ let n = d(t, a);
49
+ switch (e) {
50
+ case 0:
51
+ console.debug(n, ...o);
52
+ break;
53
+ case 1:
54
+ console.info(n, ...o);
55
+ break;
56
+ case 2:
57
+ console.warn(n, ...o);
58
+ break;
59
+ case 3: console.error(n, ...o);
60
+ }
61
+ }
62
+ }
63
+ function p(e) {
64
+ return {
65
+ debug(t, ...n) {
66
+ f(0, e, t, n);
67
+ },
68
+ info(t, ...n) {
69
+ f(1, e, t, n);
70
+ },
71
+ warn(t, ...n) {
72
+ f(2, e, t, n);
73
+ },
74
+ error(t, ...n) {
75
+ f(3, e, t, n);
76
+ }
77
+ };
78
+ }
79
+ //#endregion
80
+ export { a, e as c, c as i, p as n, s as o, o as r, l as s, t };
package/login/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export { getLoginPromptState, setLoginPromptRequired, clearLoginPrompt, subscrib
2
2
  export type { LoginPromptState, LoginPendingCall } from './login-store';
3
3
  export { loginErrorInterceptor } from './login-error-interceptor';
4
4
  export { reprovisionAfterLogin, consumeLoginHandoff } from './reprovision';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/login/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzK,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -11,3 +11,4 @@ import { ErrorInterceptor } from '../functions/function-registry';
11
11
  * The app's mount logic reads the pending call from sessionStorage and auto-invokes it.
12
12
  */
13
13
  export declare const loginErrorInterceptor: ErrorInterceptor;
14
+ //# sourceMappingURL=login-error-interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-error-interceptor.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/login/login-error-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAYnC,CAAC"}
@@ -15,3 +15,4 @@ export declare function subscribe(listener: Listener): () => void;
15
15
  export declare function setLoginPendingCall(pending: LoginPendingCall): void;
16
16
  export declare function consumeLoginPendingCall(): LoginPendingCall | null;
17
17
  export {};
18
+ //# sourceMappingURL=login-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-store.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/login/login-store.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAW3B,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAGlE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAGxD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAMnE;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,GAAG,IAAI,CAQjE"}
@@ -20,3 +20,4 @@ export declare function consumeLoginHandoff(): {
20
20
  appRoute: string | null;
21
21
  pendingCall: ReturnType<typeof consumeLoginPendingCall>;
22
22
  };
23
+ //# sourceMappingURL=reprovision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reprovision.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/login/reprovision.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAc9D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;CAAE,CAW1H"}
@@ -31,3 +31,4 @@ export declare const VISEME_BUFFER_DELAY_MS = -20;
31
31
  export declare const VISEME_BUFFER_DELAY_MIN_MS = -100;
32
32
  export declare const VISEME_BUFFER_DELAY_MAX_MS = 200;
33
33
  export declare const VISEME_INTERPOLATION_ENABLED = true;
34
+ //# sourceMappingURL=audio-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-constants.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/audio-constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,eAAe,IAAI,CAAC;AAGjC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,aAAa,CAAc,CAAC;AAGzF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAGrC,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAGhD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAGlD,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAGhD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,4BAA4B,OAAO,CAAC"}
@@ -20,3 +20,4 @@ export declare function isAudioWorkletSupported(ctx: BaseAudioContext): boolean;
20
20
  * Supported in Chrome 87+, Firefox 104+, Safari 16.4+.
21
21
  */
22
22
  export declare function isAtomicsWaitAsyncSupported(): boolean;
23
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/capabilities.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAwBtD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAOtE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAOrD"}
@@ -9,3 +9,4 @@
9
9
  * pipeline (which is part of the lazily-loaded capture chunk).
10
10
  */
11
11
  export declare function isMobileBrowserLikely(): boolean;
12
+ //# sourceMappingURL=device-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-detection.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/device-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAU/C"}
@@ -127,6 +127,16 @@ export declare class IkonAudioCapture {
127
127
  private audioContext;
128
128
  private nextTrackId;
129
129
  private captures;
130
+ /**
131
+ * A silent node held on the shared context for as long as any capture is running.
132
+ *
133
+ * Chrome suspends an AudioContext in a hidden tab unless it is producing audio, which stops
134
+ * microphone frames the moment the user switches away — no error, no track-ended, nothing to
135
+ * auto-restart from, and the room goes unheard until they come back. A zero-gain source counts
136
+ * as producing audio and keeps the context running, so a capture survives a backgrounded tab.
137
+ */
138
+ private keepAliveSource;
139
+ private keepAliveGain;
130
140
  private pendingCaptures;
131
141
  private activeWebRtcCaptureInvalidate;
132
142
  private readonly config;
@@ -197,7 +207,19 @@ export declare class IkonAudioCapture {
197
207
  private allocateTrackId;
198
208
  private startMicWebRtc;
199
209
  private ensureWorker;
210
+ /**
211
+ * The crashed worker owned every capture's encoder and its AudioStreamEnd, so the captures
212
+ * still registered are dead streams with live handles: the worklet keeps posting PCM into
213
+ * nothing, the button stays lit and the server waits for an end that will never come. Close
214
+ * each stream from here and stop it through the error path so owners are told.
215
+ */
216
+ private failActiveCapturesAfterWorkerCrash;
200
217
  private ensureSendPort;
218
+ /**
219
+ * Idempotent: one keep-alive per context, however many captures share it.
220
+ */
221
+ private startKeepAlive;
222
+ private stopKeepAlive;
201
223
  private ensureAudioContext;
202
224
  /**
203
225
  * Resume with a timeout: on iOS an interrupted context's resume() can return a promise
@@ -277,3 +299,4 @@ export declare class IkonAudioCapture {
277
299
  */
278
300
  resumeContext(captureId: string): Promise<boolean>;
279
301
  }
302
+ //# sourceMappingURL=ikon-audio-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-audio-capture.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-audio-capture.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GlobalState } from '../../shared/protocol/src/index.ts';
1
+ import { GlobalState } from '@ikonai/protocol';
2
2
  import { IkonClient } from '../client/ikon-client';
3
3
  export interface IkonAudioPlaybackConfig {
4
4
  /**
@@ -64,6 +64,7 @@ export declare class IkonAudioPlayback {
64
64
  private static readonly RESUME_TIMEOUT_MS;
65
65
  private static readonly MAX_WORKER_REBUILD_ATTEMPTS;
66
66
  private workerRebuildAttempts;
67
+ private workerGivenUp;
67
68
  private audioContext;
68
69
  private outputSampleRateHz;
69
70
  private audioWorkletNode;
@@ -207,3 +208,4 @@ export declare class IkonAudioPlayback {
207
208
  private stopWorkers;
208
209
  private ensureStateSubscription;
209
210
  }
211
+ //# sourceMappingURL=ikon-audio-playback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-audio-playback.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-audio-playback.ts"],"names":[],"mappings":"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"}
@@ -37,3 +37,4 @@ export declare class IkonImageCapture {
37
37
  */
38
38
  captureFromNativeCamera(request?: IkonNativeCameraCaptureRequest): Promise<IkonImageCaptureResult | null>;
39
39
  }
40
+ //# sourceMappingURL=ikon-image-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-image-capture.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-image-capture.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,aAAa,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAwB3D,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB;AA8BD,qBAAa,gBAAgB;IAC3B;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAiGtG,mBAAmB;IAkB3B,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAuG/F;;;;;OAKG;IACG,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAYpH"}
@@ -12,3 +12,4 @@ export declare class IkonMediaCapture {
12
12
  constructor(client: IkonClient, config?: IkonMediaCaptureConfig);
13
13
  dispose(): void;
14
14
  }
15
+ //# sourceMappingURL=ikon-media-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-media-capture.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-media-capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBAErB,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,sBAAsB;IAM/D,OAAO,IAAI,IAAI;CAIhB"}
@@ -33,3 +33,4 @@ export declare class IkonMedia {
33
33
  */
34
34
  dispose(): void;
35
35
  }
36
+ //# sourceMappingURL=ikon-media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-media.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,uFAAuF;IACvF,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;gBAEtB,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,eAAe;IAQxD;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -15,11 +15,18 @@ export interface IkonVideoCaptureRequest {
15
15
  */
16
16
  correlationId?: string;
17
17
  onStopped?: () => void;
18
+ /**
19
+ * Called when the capture dies after start() resolved — the encoder worker reported an error
20
+ * or crashed. The capture is stopped (and onStopped fires) right after.
21
+ */
22
+ onError?: (error: Error) => void;
18
23
  }
19
24
  export interface IkonVideoCaptureHandle {
20
25
  captureId: string;
21
26
  streamId: string;
22
27
  readonly sourceType: VideoCaptureSource;
28
+ /** Whether the capture is still active (not stopped). */
29
+ readonly isActive: boolean;
23
30
  readonly currentOptions: IkonVideoCaptureOptions | undefined;
24
31
  stop(): Promise<void>;
25
32
  updateOptions(options: IkonVideoCaptureOptions): Promise<void>;
@@ -34,6 +41,7 @@ export declare class IkonVideoCapture {
34
41
  constructor(client: IkonClient);
35
42
  private allocateTrackId;
36
43
  private ensureWorker;
44
+ private failCapture;
37
45
  private ensurePorts;
38
46
  private getMediaStream;
39
47
  private startCameraWebRtc;
@@ -48,3 +56,4 @@ export declare class IkonVideoCapture {
48
56
  getActiveScreenStream(): MediaStream | null;
49
57
  dispose(): void;
50
58
  }
59
+ //# sourceMappingURL=ikon-video-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-video-capture.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-video-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAyC,MAAM,uBAAuB,CAAC;AAE/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAQhF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC7D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAgCD,qBAAa,gBAAgB;IAOf,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAoC;gBAEvB,MAAM,EAAE,UAAU;IAE/C,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;YA0BL,cAAc;YAmCd,iBAAiB;YAmEjB,iBAAiB;IAyDzB,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoPxE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAInG,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAInG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/C;;OAEG;IACH,qBAAqB,IAAI,WAAW,GAAG,IAAI;IAS3C,OAAO,IAAI,IAAI;CA0BhB"}
@@ -1,4 +1,4 @@
1
- import { GlobalState } from '../../shared/protocol/src/index.ts';
1
+ import { GlobalState } from '@ikonai/protocol';
2
2
  import { IkonClient } from '../client/ikon-client';
3
3
  export interface IkonVideoPlaybackConfig {
4
4
  /**
@@ -80,3 +80,4 @@ export declare class IkonVideoPlayback {
80
80
  private stopWorker;
81
81
  private ensureStateSubscription;
82
82
  }
83
+ //# sourceMappingURL=ikon-video-playback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ikon-video-playback.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ikon-video-playback.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAO7E,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QACZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;CACH;AASD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAK;IAExD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CASrB;gBAEQ,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,uBAAuB;IAQhE;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC9E;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0BpC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BjD;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,qBAAqB;YAQf,YAAY;IAiD1B,OAAO,CAAC,eAAe;IA6EvB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,kBAAkB;IAwB1B;;;;;;OAMG;IACH,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAsB1D;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAYtC;;;;OAIG;IACH,2BAA2B,IAAI,IAAI;IAWnC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,uBAAuB;CAoBhC"}
package/media/index.d.ts CHANGED
@@ -17,3 +17,4 @@ export type { IkonImageCaptureRequest, IkonImageCaptureResult, IkonNativeCameraC
17
17
  export { isMobileBrowserLikely } from './device-detection';
18
18
  export { queryMediaPermission, requestMediaPermission, watchMediaPermission } from './media-permission';
19
19
  export type { MediaPermissionState, MediaPermissionKind } from './media-permission';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzI,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7I,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGpJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxG,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -45,3 +45,4 @@ export declare function requestMediaPermission(kind: MediaPermissionKind): Promi
45
45
  * unsubscribe function; call it on teardown.
46
46
  */
47
47
  export declare function watchMediaPermission(kind: MediaPermissionKind, onChange: (state: MediaPermissionState) => void): () => void;
48
+ //# sourceMappingURL=media-permission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-permission.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/media-permission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,yDAAyD;AACzD,MAAM,MAAM,oBAAoB;AAC9B,4DAA4D;AAC1D,SAAS;AACX,iFAAiF;GAC/E,QAAQ;AACV,yFAAyF;GACvF,QAAQ;AACV,gFAAgF;GAC9E,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAgC1D;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuBnG;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0BrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI,CAuC3H"}
@@ -21,3 +21,4 @@ export declare class MediaSessionHelper {
21
21
  setup(config: MediaSessionConfig | undefined, callbacks: MediaSessionCallbacks): void;
22
22
  cleanup(): void;
23
23
  }
24
+ //# sourceMappingURL=media-session-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-session-helper.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/media-session-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAqCvE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,IAAI,kBAAkB,IAAI,gBAAgB,GAAG,IAAI,CAEhD;IAED;;;;;;OAMG;IACH,2BAA2B,IAAI,IAAI;IAmBnC,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EAAE,SAAS,EAAE,qBAAqB,GAAG,IAAI;IA4CrF,OAAO,IAAI,IAAI;CAwBhB"}
@@ -20,3 +20,4 @@ export declare class RingBuffer<TArray extends Float32Array = Float32Array> {
20
20
  pop(target: Float32Array): number;
21
21
  skip(count: number): number;
22
22
  }
23
+ //# sourceMappingURL=ring-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/ring-buffer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY;IAChE,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,YAAY,GAAG,iBAAiB;IAO5F,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;gBAEpB,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAAE,KAAK,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IASrI,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,KAAK,IAAI,IAAI;IAKb,aAAa,IAAI,MAAM;IASvB,cAAc,IAAI,MAAM;IAKxB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAwBjC,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAoBjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAW5B"}
@@ -50,3 +50,4 @@ export declare const VIDEO_ENCODER_MAX_QUEUE_DEPTH = 3;
50
50
  export declare const VIDEO_DECODER_MAX_PENDING_DECODES = 8;
51
51
  export declare const IMAGE_CAPTURE_DEFAULT_MIME_TYPE = "image/jpeg";
52
52
  export declare const IMAGE_CAPTURE_DEFAULT_JPEG_QUALITY = 0.92;
53
+ //# sourceMappingURL=video-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-constants.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/video-constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,wCAAwC,QAAS,CAAC;AAI/D,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AACF,eAAO,MAAM,uBAAuB,QAA8B,CAAC;AACnE,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C,eAAO,MAAM,uBAAuB,UAKnC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AAEjE,eAAO,MAAM,uBAAuB,UAKnC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AAGjE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAGlE,eAAO,MAAM,uCAAuC,EAAE,SAAS,oBAAoB,EAAkC,CAAC;AAEtH;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,SAAS,GAAG,oBAAoB,EAAE,CA0BjH;AAGD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAM7B,CAAC;AAGX,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,iCAAiC,SAAU,CAAC;AACzD,eAAO,MAAM,iCAAiC,UAAY,CAAC;AAG3D,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAGnD,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAC5D,eAAO,MAAM,kCAAkC,OAAO,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AudioShapeSet, GlobalState } from '../../shared/protocol/src/index.ts';
1
+ import { AudioShapeSet, GlobalState } from '@ikonai/protocol';
2
2
  import { IkonClient } from '../client/ikon-client';
3
3
  /**
4
4
  * Time-synchronized lip-sync / shape-set receiver.
@@ -60,3 +60,4 @@ export declare class VisemeTracker {
60
60
  private onWorkerMessage;
61
61
  private processShapeSetValues;
62
62
  }
63
+ //# sourceMappingURL=viseme-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viseme-tracker.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/media/viseme-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAA4B,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AA0C7E;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAK;IAExD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4C;IAClF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IAEjE,OAAO,CAAC,aAAa,CAAkC;IAGvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;gBAErD,MAAM,EAAE,UAAU;IAI9B;;;OAGG;IACH,MAAM,IAAI,IAAI;IAsDd;;;;;OAKG;IACH,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAsB1D,OAAO,IAAI,IAAI;IAqBf,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI;IAItD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAmBrE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IASvE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAIpE;;;;;;OAMG;IACH,sBAAsB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAsF1E,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,qBAAqB;CAmD9B"}
@@ -0,0 +1,51 @@
1
+ //#region src/media/media-session-helper.ts
2
+ function e() {
3
+ let e = 44100, t = /* @__PURE__ */ new ArrayBuffer(882044), n = new DataView(t), r = (e, t) => {
4
+ for (let r = 0; r < t.length; r++) n.setUint8(e + r, t.charCodeAt(r));
5
+ };
6
+ r(0, "RIFF"), n.setUint32(4, 882036, !0), r(8, "WAVE"), r(12, "fmt "), n.setUint32(16, 16, !0), n.setUint16(20, 1, !0), n.setUint16(22, 1, !0), n.setUint32(24, e, !0), n.setUint32(28, e * 2, !0), n.setUint16(32, 2, !0), n.setUint16(34, 16, !0), r(36, "data"), n.setUint32(40, 882e3, !0);
7
+ let i = new Blob([t], { type: "audio/wav" });
8
+ return URL.createObjectURL(i);
9
+ }
10
+ var t = class {
11
+ _silentAudioElement = null;
12
+ get silentAudioElement() {
13
+ return this._silentAudioElement;
14
+ }
15
+ ensureSilentPlaybackElement() {
16
+ typeof document > "u" || (this._silentAudioElement || (this._silentAudioElement = document.createElement("audio"), this._silentAudioElement.src = e(), this._silentAudioElement.loop = !0, this._silentAudioElement.volume = .01), this._silentAudioElement.paused && this._silentAudioElement.play().catch(() => {}));
17
+ }
18
+ setup(e, t) {
19
+ if (!(typeof document > "u") && (this.ensureSilentPlaybackElement(), typeof navigator < "u" && "mediaSession" in navigator)) {
20
+ let n = e ?? {};
21
+ navigator.mediaSession.metadata = new MediaMetadata({
22
+ title: n.title || "Audio",
23
+ artist: n.artist || "Ikon AI App"
24
+ }), navigator.mediaSession.playbackState = "playing";
25
+ try {
26
+ navigator.mediaSession.setPositionState({
27
+ duration: 86400,
28
+ playbackRate: 1,
29
+ position: 0
30
+ });
31
+ } catch {}
32
+ navigator.mediaSession.setActionHandler("play", () => {
33
+ t.onPlay(), this._silentAudioElement?.play().catch(() => {}), navigator.mediaSession.playbackState = "playing";
34
+ }), navigator.mediaSession.setActionHandler("pause", () => {
35
+ t.onPause(), this._silentAudioElement?.pause(), navigator.mediaSession.playbackState = "paused";
36
+ });
37
+ }
38
+ }
39
+ cleanup() {
40
+ if (this._silentAudioElement) try {
41
+ this._silentAudioElement.pause();
42
+ let e = this._silentAudioElement.src;
43
+ this._silentAudioElement.src = "", e.startsWith("blob:") && URL.revokeObjectURL(e), this._silentAudioElement = null;
44
+ } catch {}
45
+ if (typeof navigator < "u" && "mediaSession" in navigator) try {
46
+ navigator.mediaSession.setActionHandler("play", null), navigator.mediaSession.setActionHandler("pause", null);
47
+ } catch {}
48
+ }
49
+ };
50
+ //#endregion
51
+ export { t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonai/sdk",
3
- "version": "1.8.0",
3
+ "version": "1.11.0",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -39,3 +39,4 @@ export declare class ReactiveRegistry {
39
39
  private unsubscribeOne;
40
40
  private registerUpdateHandler;
41
41
  }
42
+ //# sourceMappingURL=reactive-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-registry.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk/src/reactive/reactive-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAyBvE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoD;IACrF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,uBAAuB,CAA6B;gBAEhD,gBAAgB,EAAE,gBAAgB;IAK9C;;;;;;OAMG;IACG,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAoC5H;;;;OAIG;IACH,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,qBAAqB;CA4B9B"}