@ikonai/sdk 1.0.45 → 1.0.46
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.
- package/assets/{audio-capture-worker-BnmgtUMV.js → audio-capture-worker-Brmt2Z7a.js} +156 -152
- package/assets/{audio-playback-worker-os3j8TEw.js → audio-playback-worker-CyEW91Py.js} +91 -83
- package/assets/{protocol-worker-CMTcdGdm.js → protocol-worker-z-5Xst2M.js} +466 -448
- package/assets/{video-capture-worker-CUqzL0P7.js → video-capture-worker-_LRzpUOA.js} +152 -143
- package/assets/{video-playback-worker-BoE6foO2.js → video-playback-worker-Dlf8ieLP.js} +61 -53
- package/channel/channel-manager.d.ts +12 -8
- package/channel/channel.d.ts +8 -2
- package/client/endpoint-selector.d.ts +0 -7
- package/client/ikon-client-config.d.ts +18 -3
- package/client/ikon-client.d.ts +23 -1
- package/connection/urls.d.ts +2 -2
- package/index.js +2723 -2517
- package/media/ikon-audio-capture.d.ts +15 -2
- package/media/ikon-video-capture.d.ts +7 -0
- package/package.json +1 -1
- package/transport/transport.d.ts +1 -2
- package/utils/query-params.d.ts +2 -2
- package/webrtc/webrtc-signaling.d.ts +16 -4
|
@@ -52,7 +52,7 @@ async function tt(t) {
|
|
|
52
52
|
i.set(n[f], N), N += n[f].length;
|
|
53
53
|
return i;
|
|
54
54
|
}
|
|
55
|
-
var
|
|
55
|
+
var l = /* @__PURE__ */ ((t) => (t[t.Null = 1] = "Null", t[t.Bool = 2] = "Bool", t[t.Int32 = 3] = "Int32", t[t.Int64 = 4] = "Int64", t[t.UInt32 = 5] = "UInt32", t[t.UInt64 = 6] = "UInt64", t[t.Float32 = 7] = "Float32", t[t.Float64 = 8] = "Float64", t[t.Array = 9] = "Array", t[t.Dict = 10] = "Dict", t[t.Object = 11] = "Object", t[t.String = 12] = "String", t[t.Binary = 13] = "Binary", t[t.Guid = 14] = "Guid", t))(l || {});
|
|
56
56
|
const rt = 161, et = 162;
|
|
57
57
|
new TextEncoder();
|
|
58
58
|
const _t = new TextDecoder("utf-8", { fatal: !0 });
|
|
@@ -81,7 +81,7 @@ class P {
|
|
|
81
81
|
const e = this.buffer[this.offset++], _ = e >> 4 & 15;
|
|
82
82
|
if ((e & 15) !== 0)
|
|
83
83
|
throw new Error("Teleport field flags must be zero");
|
|
84
|
-
const E =
|
|
84
|
+
const E = S(_);
|
|
85
85
|
let n;
|
|
86
86
|
if (E >= 0)
|
|
87
87
|
a(this.buffer, this.offset, E), n = this.buffer.subarray(this.offset, this.offset + E), this.offset += E;
|
|
@@ -182,7 +182,7 @@ class C {
|
|
|
182
182
|
}
|
|
183
183
|
ensureType(r) {
|
|
184
184
|
if (this.type !== r)
|
|
185
|
-
throw new Error(`Teleport value has type ${
|
|
185
|
+
throw new Error(`Teleport value has type ${l[this.type]}, expected ${l[r]}`);
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
class Et extends C {
|
|
@@ -230,7 +230,7 @@ class G {
|
|
|
230
230
|
case 4:
|
|
231
231
|
case 6:
|
|
232
232
|
case 14: {
|
|
233
|
-
const r =
|
|
233
|
+
const r = S(this.elementType);
|
|
234
234
|
a(this.payload, this.offset, r);
|
|
235
235
|
const e = this.payload.subarray(this.offset, this.offset + r);
|
|
236
236
|
return this.offset += r, new L(this.elementType, e);
|
|
@@ -257,7 +257,7 @@ class G {
|
|
|
257
257
|
return this.offset += r, new L(10, e);
|
|
258
258
|
}
|
|
259
259
|
default:
|
|
260
|
-
throw new Error(`Unsupported array element type ${
|
|
260
|
+
throw new Error(`Unsupported array element type ${l[this.elementType]}`);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -295,7 +295,7 @@ class d {
|
|
|
295
295
|
return this.index++, new nt(r, e);
|
|
296
296
|
}
|
|
297
297
|
readKey() {
|
|
298
|
-
const r =
|
|
298
|
+
const r = S(this.keyType);
|
|
299
299
|
if (r >= 0) {
|
|
300
300
|
a(this.payload, this.offset, r);
|
|
301
301
|
const e = this.payload.subarray(this.offset, this.offset + r);
|
|
@@ -341,13 +341,13 @@ class d {
|
|
|
341
341
|
case 6:
|
|
342
342
|
case 14:
|
|
343
343
|
case 1: {
|
|
344
|
-
const r =
|
|
344
|
+
const r = S(this.valueType);
|
|
345
345
|
a(this.payload, this.offset, r);
|
|
346
346
|
const e = this.payload.subarray(this.offset, this.offset + r);
|
|
347
347
|
return this.offset += r, new C(this.valueType, e);
|
|
348
348
|
}
|
|
349
349
|
default:
|
|
350
|
-
throw new Error(`Unsupported dictionary value type ${
|
|
350
|
+
throw new Error(`Unsupported dictionary value type ${l[this.valueType]}`);
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
353
|
}
|
|
@@ -445,7 +445,7 @@ function A(t, r, e) {
|
|
|
445
445
|
function st(t) {
|
|
446
446
|
return t < 128 ? 1 : t < 16384 ? 2 : t < 2097152 ? 3 : t < 268435456 ? 4 : 5;
|
|
447
447
|
}
|
|
448
|
-
function
|
|
448
|
+
function S(t) {
|
|
449
449
|
switch (t) {
|
|
450
450
|
case 3:
|
|
451
451
|
case 5:
|
|
@@ -482,7 +482,7 @@ function B(t, r) {
|
|
|
482
482
|
const e = t[r], _ = e >> 4 & 15;
|
|
483
483
|
if ((e & 15) !== 0)
|
|
484
484
|
throw new Error("Array flags must be zero");
|
|
485
|
-
const E = { offset: r + 1 }, n = A(t, E, "ArrayMalformed"), s =
|
|
485
|
+
const E = { offset: r + 1 }, n = A(t, E, "ArrayMalformed"), s = S(_);
|
|
486
486
|
if (s >= 0) {
|
|
487
487
|
const N = s * n;
|
|
488
488
|
return a(t, E.offset, N), E.offset + N - r;
|
|
@@ -506,7 +506,7 @@ function b(t, r) {
|
|
|
506
506
|
return s - r;
|
|
507
507
|
}
|
|
508
508
|
function M(t, r, e, _) {
|
|
509
|
-
const E =
|
|
509
|
+
const E = S(t);
|
|
510
510
|
if (E >= 0)
|
|
511
511
|
return a(r, e, E), e + E;
|
|
512
512
|
switch (t) {
|
|
@@ -524,7 +524,7 @@ function M(t, r, e, _) {
|
|
|
524
524
|
case 10:
|
|
525
525
|
return e + b(r, e);
|
|
526
526
|
default:
|
|
527
|
-
throw new Error(`Unsupported Teleport type ${
|
|
527
|
+
throw new Error(`Unsupported Teleport type ${l[t]}`);
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
530
|
function x(t) {
|
|
@@ -533,7 +533,7 @@ function x(t) {
|
|
|
533
533
|
function w(t) {
|
|
534
534
|
return t instanceof Uint8Array ? t : new Uint8Array(t);
|
|
535
535
|
}
|
|
536
|
-
var h = /* @__PURE__ */ ((t) => (t[t.Unknown = 0] = "Unknown", t[t.H264 = 1] = "H264", t[t.Vp8 = 2] = "Vp8", t[t.Vp9 = 3] = "Vp9", t[t.Av1 = 4] = "Av1", t))(h || {}), c = /* @__PURE__ */ ((t) => (t[t.NONE = 0] = "NONE", t[t.CONSTANT_GROUP_BITS = 15] = "CONSTANT_GROUP_BITS", t[t.CONSTANT_GROUP_OFFSET = 16] = "CONSTANT_GROUP_OFFSET", t[t.GROUP_CORE = 65536] = "GROUP_CORE", t[t.CORE_AUTH_RESPONSE = 65537] = "CORE_AUTH_RESPONSE", t[t.CORE_AUTH_TICKET = 65538] = "CORE_AUTH_TICKET", t[t.CORE_GLOBAL_STATE = 65539] = "CORE_GLOBAL_STATE", t[t.CORE_ON_SERVER_STATUS_PING = 65540] = "CORE_ON_SERVER_STATUS_PING", t[t.CORE_ON_USER_JOINED = 65541] = "CORE_ON_USER_JOINED", t[t.CORE_ON_USER_LEFT = 65542] = "CORE_ON_USER_LEFT", t[t.CORE_ON_CLIENT_JOINED = 65543] = "CORE_ON_CLIENT_JOINED", t[t.CORE_ON_CLIENT_LEFT = 65544] = "CORE_ON_CLIENT_LEFT", t[t.CORE_ON_SERVER_STARTED = 65545] = "CORE_ON_SERVER_STARTED", t[t.CORE_ON_SERVER_STOPPED = 65546] = "CORE_ON_SERVER_STOPPED", t[t.CORE_ON_SERVER_STOPPING = 65547] = "CORE_ON_SERVER_STOPPING", t[t.CORE_ON_CLIENT_READY = 65548] = "CORE_ON_CLIENT_READY", t[t.CORE_CLIENT_READY = 65549] = "CORE_CLIENT_READY", t[t.CORE_SERVER_INIT = 65550] = "CORE_SERVER_INIT", t[t.CORE_ON_PLUGIN_RELOADED = 65551] = "CORE_ON_PLUGIN_RELOADED", t[t.CORE_SERVER_START = 65552] = "CORE_SERVER_START", t[t.CORE_SERVER_STOP = 65553] = "CORE_SERVER_STOP", t[t.CORE_ON_HOSTED_SERVER_EXIT = 65554] = "CORE_ON_HOSTED_SERVER_EXIT", t[t.CORE_DYNAMIC_CONFIG = 65555] = "CORE_DYNAMIC_CONFIG", t[t.CORE_PROXY_RPC_AUTH_TICKET = 65556] = "CORE_PROXY_RPC_AUTH_TICKET", t[t.CORE_SERVER_INIT2 = 65557] = "CORE_SERVER_INIT2", t[t.CORE_UPDATE_CLIENT_CONTEXT = 65558] = "CORE_UPDATE_CLIENT_CONTEXT", t[t.CORE_BACKGROUND_WORK_ACTIVE = 65559] = "CORE_BACKGROUND_WORK_ACTIVE", t[t.CORE_WEBRTC_OFFER = 65566] = "CORE_WEBRTC_OFFER", t[t.CORE_WEBRTC_ANSWER = 65567] = "CORE_WEBRTC_ANSWER", t[t.CORE_WEBRTC_ICE_CANDIDATE = 65568] = "CORE_WEBRTC_ICE_CANDIDATE", t[t.CORE_WEBRTC_READY = 65569] = "CORE_WEBRTC_READY", t[t.CORE_WEBRTC_AUDIO_SEGMENT = 65570] = "CORE_WEBRTC_AUDIO_SEGMENT", t[t.CORE_WEBRTC_TRACK_MAP = 65571] = "CORE_WEBRTC_TRACK_MAP", t[t.CORE_RELAY_AGENT_AUTH = 65576] = "CORE_RELAY_AGENT_AUTH", t[t.CORE_RELAY_AGENT_AUTH_RESULT = 65577] = "CORE_RELAY_AGENT_AUTH_RESULT", t[t.CORE_RELAY_HEARTBEAT = 65578] = "CORE_RELAY_HEARTBEAT", t[t.CORE_RELAY_TCP_CONNECTION_OPENED = 65579] = "CORE_RELAY_TCP_CONNECTION_OPENED", t[t.CORE_RELAY_TCP_CONNECTION_CLOSED = 65580] = "CORE_RELAY_TCP_CONNECTION_CLOSED", t[t.CORE_RELAY_TCP_DATA = 65581] = "CORE_RELAY_TCP_DATA", t[t.CORE_RELAY_UDP_DATA = 65582] = "CORE_RELAY_UDP_DATA", t[t.CORE_RELAY_ADD_TUNNEL = 65583] = "CORE_RELAY_ADD_TUNNEL", t[t.CORE_RELAY_TUNNEL_ADDED = 65584] = "CORE_RELAY_TUNNEL_ADDED", t[t.CORE_RELAY_REMOVE_TUNNEL = 65585] = "CORE_RELAY_REMOVE_TUNNEL", t[t.GROUP_KEEPALIVE = 131072] = "GROUP_KEEPALIVE", t[t.KEEPALIVE_REQUEST = 131073] = "KEEPALIVE_REQUEST", t[t.KEEPALIVE_RESPONSE = 131074] = "KEEPALIVE_RESPONSE", t[t.GROUP_EVENTS = 262144] = "GROUP_EVENTS", t[t.EVENTS_PROFILE_UPDATE = 262145] = "EVENTS_PROFILE_UPDATE", t[t.EVENTS_CHANNEL_COMPLETE = 262146] = "EVENTS_CHANNEL_COMPLETE", t[t.EVENTS_SPEECH_PLAYBACK_COMPLETE = 262147] = "EVENTS_SPEECH_PLAYBACK_COMPLETE", t[t.GROUP_ANALYTICS = 524288] = "GROUP_ANALYTICS", t[t.ANALYTICS_LOGS = 524289] = "ANALYTICS_LOGS", t[t.ANALYTICS_EVENTS = 524290] = "ANALYTICS_EVENTS", t[t.ANALYTICS_USAGES = 524291] = "ANALYTICS_USAGES", t[t.ANALYTICS_USAGE = 524292] = "ANALYTICS_USAGE", t[t.ANALYTICS_SPECIAL_LOG = 524293] = "ANALYTICS_SPECIAL_LOG", t[t.ANALYTICS_PROCESSING_UPDATE = 524294] = "ANALYTICS_PROCESSING_UPDATE", t[t.ANALYTICS_REACTIVE_PROCESSING_UPDATE = 524295] = "ANALYTICS_REACTIVE_PROCESSING_UPDATE", t[t.ANALYTICS_IKON_PROXY_SERVER_STATS = 524296] = "ANALYTICS_IKON_PROXY_SERVER_STATS", t[t.ANALYTICS_IKON_RELAY_SERVER_STATS = 524297] = "ANALYTICS_IKON_RELAY_SERVER_STATS", t[t.ANALYTICS_IKON_TURN_SERVER_STATS = 524298] = "ANALYTICS_IKON_TURN_SERVER_STATS", t[t.GROUP_ACTIONS = 1048576] = "GROUP_ACTIONS", t[t.ACTION_CALL = 1048577] = "ACTION_CALL", t[t.ACTION_ACTIVE = 1048578] = "ACTION_ACTIVE", t[t.ACTION_TEXT_OUTPUT = 1048579] = "ACTION_TEXT_OUTPUT", t[t.ACTION_TEXT_OUTPUT_DELTA = 1048580] = "ACTION_TEXT_OUTPUT_DELTA", t[t.ACTION_TEXT_OUTPUT_DELTA_FULL = 1048581] = "ACTION_TEXT_OUTPUT_DELTA_FULL", t[t.ACTION_SET_STATE = 1048582] = "ACTION_SET_STATE", t[t.ACTION_TAP = 1048583] = "ACTION_TAP", t[t.ACTION_PAN = 1048584] = "ACTION_PAN", t[t.ACTION_ZOOM = 1048585] = "ACTION_ZOOM", t[t.ACTION_FILE_UPLOAD_BEGIN = 1048586] = "ACTION_FILE_UPLOAD_BEGIN", t[t.ACTION_FILE_UPLOAD_DATA = 1048587] = "ACTION_FILE_UPLOAD_DATA", t[t.ACTION_FILE_UPLOAD_ACK = 1048588] = "ACTION_FILE_UPLOAD_ACK", t[t.ACTION_FILE_UPLOAD_END = 1048589] = "ACTION_FILE_UPLOAD_END", t[t.ACTION_FILE_UPLOAD_RESULT = 1048590] = "ACTION_FILE_UPLOAD_RESULT", t[t.ACTION_OPEN_CHANNEL = 1048591] = "ACTION_OPEN_CHANNEL", t[t.ACTION_OPEN_EXTERNAL_URL = 1048592] = "ACTION_OPEN_EXTERNAL_URL", t[t.ACTION_UI_OPEN_VIEW = 1048593] = "ACTION_UI_OPEN_VIEW", t[t.ACTION_UI_CLOSE_VIEW = 1048594] = "ACTION_UI_CLOSE_VIEW", t[t.ACTION_UI_BLOCKING_BEGIN = 1048595] = "ACTION_UI_BLOCKING_BEGIN", t[t.ACTION_UI_BLOCKING_END = 1048596] = "ACTION_UI_BLOCKING_END", t[t.ACTION_UI_UPDATE_TEXT_DELTA = 1048597] = "ACTION_UI_UPDATE_TEXT_DELTA", t[t.ACTION_UI_DELETE_CONTAINER = 1048598] = "ACTION_UI_DELETE_CONTAINER", t[t.ACTION_UPDATE_GFX_SHADER = 1048599] = "ACTION_UPDATE_GFX_SHADER", t[t.ACTION_FUNCTION_REGISTER = 1048600] = "ACTION_FUNCTION_REGISTER", t[t.ACTION_FUNCTION_CALL = 1048601] = "ACTION_FUNCTION_CALL", t[t.ACTION_FUNCTION_RESULT = 1048602] = "ACTION_FUNCTION_RESULT", t[t.ACTION_GENERATE_ANSWER = 1048603] = "ACTION_GENERATE_ANSWER", t[t.ACTION_REGENERATE_ANSWER = 1048604] = "ACTION_REGENERATE_ANSWER", t[t.ACTION_CLEAR_CHAT_MESSAGE_HISTORY = 1048605] = "ACTION_CLEAR_CHAT_MESSAGE_HISTORY", t[t.ACTION_CLEAR_STATE = 1048606] = "ACTION_CLEAR_STATE", t[t.ACTION_RELOAD_CHANNELS = 1048607] = "ACTION_RELOAD_CHANNELS", t[t.ACTION_RELOAD_PROFILE = 1048608] = "ACTION_RELOAD_PROFILE", t[t.ACTION_CLASSIFICATION_RESULT = 1048609] = "ACTION_CLASSIFICATION_RESULT", t[t.ACTION_AUDIO_STOP = 1048610] = "ACTION_AUDIO_STOP", t[t.ACTION_CALL_TEXT = 1048611] = "ACTION_CALL_TEXT", t[t.ACTION_RELOAD_APPLICATION = 1048612] = "ACTION_RELOAD_APPLICATION", t[t.ACTION_CANCEL_GENERATION = 1048613] = "ACTION_CANCEL_GENERATION", t[t.ACTION_UI_SET_CONTAINER_STABLE = 1048614] = "ACTION_UI_SET_CONTAINER_STABLE", t[t.ACTION_SPEECH_RECOGNIZED = 1048615] = "ACTION_SPEECH_RECOGNIZED", t[t.ACTION_CALL_RESULT = 1048616] = "ACTION_CALL_RESULT", t[t.ACTION_RELOAD_PROVIDER = 1048617] = "ACTION_RELOAD_PROVIDER", t[t.ACTION_DOWNLOAD = 1048618] = "ACTION_DOWNLOAD", t[t.ACTION_SCROLL_TO_CONTAINER = 1048619] = "ACTION_SCROLL_TO_CONTAINER", t[t.ACTION_UI_CLEAR_STREAM = 1048620] = "ACTION_UI_CLEAR_STREAM", t[t.ACTION_PLAY_SOUND = 1048621] = "ACTION_PLAY_SOUND", t[t.ACTION_ENTER_FULLSCREEN = 1048622] = "ACTION_ENTER_FULLSCREEN", t[t.ACTION_STOP_SOUND = 1048623] = "ACTION_STOP_SOUND", t[t.ACTION_START_RECORDING = 1048624] = "ACTION_START_RECORDING", t[t.ACTION_STOP_RECORDING = 1048625] = "ACTION_STOP_RECORDING", t[t.ACTION_FUNCTION_ENUMERATION_ITEM = 1048627] = "ACTION_FUNCTION_ENUMERATION_ITEM", t[t.ACTION_FUNCTION_ENUMERATION_END = 1048628] = "ACTION_FUNCTION_ENUMERATION_END", t[t.ACTION_FUNCTION_CANCEL = 1048629] = "ACTION_FUNCTION_CANCEL", t[t.ACTION_FUNCTION_DISPOSE = 1048630] = "ACTION_FUNCTION_DISPOSE", t[t.ACTION_FUNCTION_ERROR = 1048631] = "ACTION_FUNCTION_ERROR", t[t.ACTION_FUNCTION_ACK = 1048632] = "ACTION_FUNCTION_ACK", t[t.ACTION_FUNCTION_AWAITING_APPROVAL = 1048633] = "ACTION_FUNCTION_AWAITING_APPROVAL", t[t.ACTION_FUNCTION_APPROVAL_REQUIRED = 1048634] = "ACTION_FUNCTION_APPROVAL_REQUIRED", t[t.ACTION_FUNCTION_APPROVAL_RESPONSE = 1048635] = "ACTION_FUNCTION_APPROVAL_RESPONSE", t[t.UI_UPDATE_ACK = 1048636] = "UI_UPDATE_ACK", t[t.ACTION_CALL2 = 1048637] = "ACTION_CALL2", t[t.ACTION_FUNCTION_REGISTER_BATCH = 1048638] = "ACTION_FUNCTION_REGISTER_BATCH", t[t.ACTION_TRIGGER_GIT_PULL = 1048639] = "ACTION_TRIGGER_GIT_PULL", t[t.ACTION_FILE_UPLOAD_CALLBACK = 1048640] = "ACTION_FILE_UPLOAD_CALLBACK", t[t.ACTION_CUSTOM_USER_MESSAGE = 1048641] = "ACTION_CUSTOM_USER_MESSAGE", t[t.ACTION_URL_CHANGED = 1048642] = "ACTION_URL_CHANGED", t[t.ACTION_FILE_UPLOAD_PRE_START2 = 1048643] = "ACTION_FILE_UPLOAD_PRE_START2", t[t.ACTION_FILE_UPLOAD_PRE_START_RESPONSE2 = 1048644] = "ACTION_FILE_UPLOAD_PRE_START_RESPONSE2", t[t.ACTION_FILE_UPLOAD_START2 = 1048645] = "ACTION_FILE_UPLOAD_START2", t[t.ACTION_FILE_UPLOAD_START_RESPONSE2 = 1048646] = "ACTION_FILE_UPLOAD_START_RESPONSE2", t[t.ACTION_FILE_UPLOAD_DATA2 = 1048647] = "ACTION_FILE_UPLOAD_DATA2", t[t.ACTION_FILE_UPLOAD_ACK2 = 1048648] = "ACTION_FILE_UPLOAD_ACK2", t[t.ACTION_FILE_UPLOAD_END2 = 1048649] = "ACTION_FILE_UPLOAD_END2", t[t.ACTION_FILE_UPLOAD_COMPLETE2 = 1048650] = "ACTION_FILE_UPLOAD_COMPLETE2", t[t.ACTION_FUNCTION_ENUMERATION_ITEM_BATCH = 1048651] = "ACTION_FUNCTION_ENUMERATION_ITEM_BATCH", t[t.GROUP_UI = 2097152] = "GROUP_UI", t[t.UI_STREAM_BEGIN = 2097153] = "UI_STREAM_BEGIN", t[t.UI_STREAM_END = 2097154] = "UI_STREAM_END", t[t.UI_CONTAINER_BEGIN = 2097155] = "UI_CONTAINER_BEGIN", t[t.UI_CONTAINER_END = 2097156] = "UI_CONTAINER_END", t[t.UI_SECTION_BEGIN = 2097157] = "UI_SECTION_BEGIN", t[t.UI_SECTION_END = 2097158] = "UI_SECTION_END", t[t.UI_LIST_BEGIN = 2097159] = "UI_LIST_BEGIN", t[t.UI_LIST_ITEM = 2097160] = "UI_LIST_ITEM", t[t.UI_LIST_END = 2097161] = "UI_LIST_END", t[t.UI_TEXT = 2097162] = "UI_TEXT", t[t.UI_HEADER = 2097163] = "UI_HEADER", t[t.UI_SEPARATOR = 2097164] = "UI_SEPARATOR", t[t.UI_BUTTON = 2097165] = "UI_BUTTON", t[t.UI_ICON_BUTTON = 2097166] = "UI_ICON_BUTTON", t[t.UI_IMAGE = 2097167] = "UI_IMAGE", t[t.UI_FILE = 2097168] = "UI_FILE", t[t.UI_BADGE = 2097169] = "UI_BADGE", t[t.UI_CONTENT_LINK = 2097170] = "UI_CONTENT_LINK", t[t.UI_MAP = 2097171] = "UI_MAP", t[t.UI_VEGA_CHART = 2097172] = "UI_VEGA_CHART", t[t.UI_ICON = 2097173] = "UI_ICON", t[t.UI_FILE_UPLOAD_SECTION_BEGIN = 2097174] = "UI_FILE_UPLOAD_SECTION_BEGIN", t[t.UI_FILE_UPLOAD_SECTION_END = 2097175] = "UI_FILE_UPLOAD_SECTION_END", t[t.UI_MATERIAL_SYMBOL = 2097176] = "UI_MATERIAL_SYMBOL", t[t.UI_BUTTON_BEGIN = 2097177] = "UI_BUTTON_BEGIN", t[t.UI_BUTTON_END = 2097178] = "UI_BUTTON_END", t[t.UI_CONTAINER_DELETE = 2097179] = "UI_CONTAINER_DELETE", t[t.UI_INPUT_TEXT = 2097180] = "UI_INPUT_TEXT", t[t.UI_PROGRESS_BAR = 2097181] = "UI_PROGRESS_BAR", t[t.UI_UPDATE_BEGIN = 2097182] = "UI_UPDATE_BEGIN", t[t.UI_UPDATE_END = 2097183] = "UI_UPDATE_END", t[t.UI_AUTOCOMPLETE = 2097184] = "UI_AUTOCOMPLETE", t[t.UI_CHECKBOX = 2097185] = "UI_CHECKBOX", t[t.UI_QS = 2097186] = "UI_QS", t[t.UI_ELEMENT = 2097187] = "UI_ELEMENT", t[t.UI_STYLES = 2097188] = "UI_STYLES", t[t.UI_SVG = 2097189] = "UI_SVG", t[t.UI_UPDATE = 2097190] = "UI_UPDATE", t[t.UI_INIT = 2097191] = "UI_INIT", t[t.UI_STYLES_BATCH = 2097192] = "UI_STYLES_BATCH", t[t.UI_STYLES_DELETE = 2097193] = "UI_STYLES_DELETE", t[t.GROUP_COMMON = 4128768] = "GROUP_COMMON", t[t.GROUP_AUDIO = 4194304] = "GROUP_AUDIO", t[t.AUDIO_STREAM_BEGIN = 4194305] = "AUDIO_STREAM_BEGIN", t[t.AUDIO_STREAM_END = 4194306] = "AUDIO_STREAM_END", t[t.AUDIO_FRAME = 4194307] = "AUDIO_FRAME", t[t.AUDIO_FRAME_VOLUME = 4194308] = "AUDIO_FRAME_VOLUME", t[t.AUDIO_FRAME2 = 4194309] = "AUDIO_FRAME2", t[t.AUDIO_SHAPE_FRAME = 4194310] = "AUDIO_SHAPE_FRAME", t[t.GROUP_VIDEO = 8388608] = "GROUP_VIDEO", t[t.VIDEO_STREAM_BEGIN = 8388609] = "VIDEO_STREAM_BEGIN", t[t.VIDEO_STREAM_END = 8388610] = "VIDEO_STREAM_END", t[t.VIDEO_FRAME = 8388611] = "VIDEO_FRAME", t[t.VIDEO_REQUEST_IDR_FRAME = 8388612] = "VIDEO_REQUEST_IDR_FRAME", t[t.VIDEO_INVALIDATE_FRAME = 8388613] = "VIDEO_INVALIDATE_FRAME", t[t.GROUP_TRACKING = 16777216] = "GROUP_TRACKING", t[t.TRACKING_STREAM_BEGIN = 16777217] = "TRACKING_STREAM_BEGIN", t[t.TRACKING_STREAM_END = 16777218] = "TRACKING_STREAM_END", t[t.TRACKING_FRAME = 16777219] = "TRACKING_FRAME", t[t.GROUP_SCENE = 33554432] = "GROUP_SCENE", t[t.SCENE_MESH = 33554433] = "SCENE_MESH", t[t.SCENE_ARRAY = 33554434] = "SCENE_ARRAY", t[t.GROUP_ALL = 67043328] = "GROUP_ALL", t[t.GROUP_APP_LOCAL = 1073741824] = "GROUP_APP_LOCAL", t[t.CONSTANT_GROUP_MASK = 2147418112] = "CONSTANT_GROUP_MASK", t))(c || {});
|
|
536
|
+
var h = /* @__PURE__ */ ((t) => (t[t.Unknown = 0] = "Unknown", t[t.H264 = 1] = "H264", t[t.Vp8 = 2] = "Vp8", t[t.Vp9 = 3] = "Vp9", t[t.Av1 = 4] = "Av1", t))(h || {}), c = /* @__PURE__ */ ((t) => (t[t.NONE = 0] = "NONE", t[t.CONSTANT_GROUP_BITS = 15] = "CONSTANT_GROUP_BITS", t[t.CONSTANT_GROUP_OFFSET = 16] = "CONSTANT_GROUP_OFFSET", t[t.GROUP_CORE = 65536] = "GROUP_CORE", t[t.CORE_AUTH_RESPONSE = 65537] = "CORE_AUTH_RESPONSE", t[t.CORE_AUTH_TICKET = 65538] = "CORE_AUTH_TICKET", t[t.CORE_GLOBAL_STATE = 65539] = "CORE_GLOBAL_STATE", t[t.CORE_ON_SERVER_STATUS_PING = 65540] = "CORE_ON_SERVER_STATUS_PING", t[t.CORE_ON_USER_JOINED = 65541] = "CORE_ON_USER_JOINED", t[t.CORE_ON_USER_LEFT = 65542] = "CORE_ON_USER_LEFT", t[t.CORE_ON_CLIENT_JOINED = 65543] = "CORE_ON_CLIENT_JOINED", t[t.CORE_ON_CLIENT_LEFT = 65544] = "CORE_ON_CLIENT_LEFT", t[t.CORE_ON_SERVER_STARTED = 65545] = "CORE_ON_SERVER_STARTED", t[t.CORE_ON_SERVER_STOPPED = 65546] = "CORE_ON_SERVER_STOPPED", t[t.CORE_ON_SERVER_STOPPING = 65547] = "CORE_ON_SERVER_STOPPING", t[t.CORE_ON_CLIENT_READY = 65548] = "CORE_ON_CLIENT_READY", t[t.CORE_CLIENT_READY = 65549] = "CORE_CLIENT_READY", t[t.CORE_SERVER_INIT = 65550] = "CORE_SERVER_INIT", t[t.CORE_ON_PLUGIN_RELOADED = 65551] = "CORE_ON_PLUGIN_RELOADED", t[t.CORE_SERVER_START = 65552] = "CORE_SERVER_START", t[t.CORE_SERVER_STOP = 65553] = "CORE_SERVER_STOP", t[t.CORE_ON_HOSTED_SERVER_EXIT = 65554] = "CORE_ON_HOSTED_SERVER_EXIT", t[t.CORE_DYNAMIC_CONFIG = 65555] = "CORE_DYNAMIC_CONFIG", t[t.CORE_PROXY_RPC_AUTH_TICKET = 65556] = "CORE_PROXY_RPC_AUTH_TICKET", t[t.CORE_SERVER_INIT2 = 65557] = "CORE_SERVER_INIT2", t[t.CORE_UPDATE_CLIENT_CONTEXT = 65558] = "CORE_UPDATE_CLIENT_CONTEXT", t[t.CORE_BACKGROUND_WORK_ACTIVE = 65559] = "CORE_BACKGROUND_WORK_ACTIVE", t[t.CORE_WEBRTC_OFFER = 65566] = "CORE_WEBRTC_OFFER", t[t.CORE_WEBRTC_ANSWER = 65567] = "CORE_WEBRTC_ANSWER", t[t.CORE_WEBRTC_ICE_CANDIDATE = 65568] = "CORE_WEBRTC_ICE_CANDIDATE", t[t.CORE_WEBRTC_READY = 65569] = "CORE_WEBRTC_READY", t[t.CORE_WEBRTC_AUDIO_SEGMENT = 65570] = "CORE_WEBRTC_AUDIO_SEGMENT", t[t.CORE_WEBRTC_TRACK_MAP = 65571] = "CORE_WEBRTC_TRACK_MAP", t[t.CORE_WEBRTC_VIDEO_CAPTURE = 65572] = "CORE_WEBRTC_VIDEO_CAPTURE", t[t.CORE_RELAY_AGENT_AUTH = 65576] = "CORE_RELAY_AGENT_AUTH", t[t.CORE_RELAY_AGENT_AUTH_RESULT = 65577] = "CORE_RELAY_AGENT_AUTH_RESULT", t[t.CORE_RELAY_HEARTBEAT = 65578] = "CORE_RELAY_HEARTBEAT", t[t.CORE_RELAY_TCP_CONNECTION_OPENED = 65579] = "CORE_RELAY_TCP_CONNECTION_OPENED", t[t.CORE_RELAY_TCP_CONNECTION_CLOSED = 65580] = "CORE_RELAY_TCP_CONNECTION_CLOSED", t[t.CORE_RELAY_TCP_DATA = 65581] = "CORE_RELAY_TCP_DATA", t[t.CORE_RELAY_UDP_DATA = 65582] = "CORE_RELAY_UDP_DATA", t[t.CORE_RELAY_ADD_TUNNEL = 65583] = "CORE_RELAY_ADD_TUNNEL", t[t.CORE_RELAY_TUNNEL_ADDED = 65584] = "CORE_RELAY_TUNNEL_ADDED", t[t.CORE_RELAY_REMOVE_TUNNEL = 65585] = "CORE_RELAY_REMOVE_TUNNEL", t[t.GROUP_KEEPALIVE = 131072] = "GROUP_KEEPALIVE", t[t.KEEPALIVE_REQUEST = 131073] = "KEEPALIVE_REQUEST", t[t.KEEPALIVE_RESPONSE = 131074] = "KEEPALIVE_RESPONSE", t[t.GROUP_EVENTS = 262144] = "GROUP_EVENTS", t[t.EVENTS_PROFILE_UPDATE = 262145] = "EVENTS_PROFILE_UPDATE", t[t.EVENTS_CHANNEL_COMPLETE = 262146] = "EVENTS_CHANNEL_COMPLETE", t[t.EVENTS_SPEECH_PLAYBACK_COMPLETE = 262147] = "EVENTS_SPEECH_PLAYBACK_COMPLETE", t[t.GROUP_ANALYTICS = 524288] = "GROUP_ANALYTICS", t[t.ANALYTICS_LOGS = 524289] = "ANALYTICS_LOGS", t[t.ANALYTICS_EVENTS = 524290] = "ANALYTICS_EVENTS", t[t.ANALYTICS_USAGES = 524291] = "ANALYTICS_USAGES", t[t.ANALYTICS_USAGE = 524292] = "ANALYTICS_USAGE", t[t.ANALYTICS_SPECIAL_LOG = 524293] = "ANALYTICS_SPECIAL_LOG", t[t.ANALYTICS_PROCESSING_UPDATE = 524294] = "ANALYTICS_PROCESSING_UPDATE", t[t.ANALYTICS_REACTIVE_PROCESSING_UPDATE = 524295] = "ANALYTICS_REACTIVE_PROCESSING_UPDATE", t[t.ANALYTICS_IKON_PROXY_SERVER_STATS = 524296] = "ANALYTICS_IKON_PROXY_SERVER_STATS", t[t.ANALYTICS_IKON_RELAY_SERVER_STATS = 524297] = "ANALYTICS_IKON_RELAY_SERVER_STATS", t[t.ANALYTICS_IKON_TURN_SERVER_STATS = 524298] = "ANALYTICS_IKON_TURN_SERVER_STATS", t[t.GROUP_ACTIONS = 1048576] = "GROUP_ACTIONS", t[t.ACTION_CALL = 1048577] = "ACTION_CALL", t[t.ACTION_ACTIVE = 1048578] = "ACTION_ACTIVE", t[t.ACTION_TEXT_OUTPUT = 1048579] = "ACTION_TEXT_OUTPUT", t[t.ACTION_TEXT_OUTPUT_DELTA = 1048580] = "ACTION_TEXT_OUTPUT_DELTA", t[t.ACTION_TEXT_OUTPUT_DELTA_FULL = 1048581] = "ACTION_TEXT_OUTPUT_DELTA_FULL", t[t.ACTION_SET_STATE = 1048582] = "ACTION_SET_STATE", t[t.ACTION_TAP = 1048583] = "ACTION_TAP", t[t.ACTION_PAN = 1048584] = "ACTION_PAN", t[t.ACTION_ZOOM = 1048585] = "ACTION_ZOOM", t[t.ACTION_FILE_UPLOAD_BEGIN = 1048586] = "ACTION_FILE_UPLOAD_BEGIN", t[t.ACTION_FILE_UPLOAD_DATA = 1048587] = "ACTION_FILE_UPLOAD_DATA", t[t.ACTION_FILE_UPLOAD_ACK = 1048588] = "ACTION_FILE_UPLOAD_ACK", t[t.ACTION_FILE_UPLOAD_END = 1048589] = "ACTION_FILE_UPLOAD_END", t[t.ACTION_FILE_UPLOAD_RESULT = 1048590] = "ACTION_FILE_UPLOAD_RESULT", t[t.ACTION_OPEN_CHANNEL = 1048591] = "ACTION_OPEN_CHANNEL", t[t.ACTION_OPEN_EXTERNAL_URL = 1048592] = "ACTION_OPEN_EXTERNAL_URL", t[t.ACTION_UI_OPEN_VIEW = 1048593] = "ACTION_UI_OPEN_VIEW", t[t.ACTION_UI_CLOSE_VIEW = 1048594] = "ACTION_UI_CLOSE_VIEW", t[t.ACTION_UI_BLOCKING_BEGIN = 1048595] = "ACTION_UI_BLOCKING_BEGIN", t[t.ACTION_UI_BLOCKING_END = 1048596] = "ACTION_UI_BLOCKING_END", t[t.ACTION_UI_UPDATE_TEXT_DELTA = 1048597] = "ACTION_UI_UPDATE_TEXT_DELTA", t[t.ACTION_UI_DELETE_CONTAINER = 1048598] = "ACTION_UI_DELETE_CONTAINER", t[t.ACTION_UPDATE_GFX_SHADER = 1048599] = "ACTION_UPDATE_GFX_SHADER", t[t.ACTION_FUNCTION_REGISTER = 1048600] = "ACTION_FUNCTION_REGISTER", t[t.ACTION_FUNCTION_CALL = 1048601] = "ACTION_FUNCTION_CALL", t[t.ACTION_FUNCTION_RESULT = 1048602] = "ACTION_FUNCTION_RESULT", t[t.ACTION_GENERATE_ANSWER = 1048603] = "ACTION_GENERATE_ANSWER", t[t.ACTION_REGENERATE_ANSWER = 1048604] = "ACTION_REGENERATE_ANSWER", t[t.ACTION_CLEAR_CHAT_MESSAGE_HISTORY = 1048605] = "ACTION_CLEAR_CHAT_MESSAGE_HISTORY", t[t.ACTION_CLEAR_STATE = 1048606] = "ACTION_CLEAR_STATE", t[t.ACTION_RELOAD_CHANNELS = 1048607] = "ACTION_RELOAD_CHANNELS", t[t.ACTION_RELOAD_PROFILE = 1048608] = "ACTION_RELOAD_PROFILE", t[t.ACTION_CLASSIFICATION_RESULT = 1048609] = "ACTION_CLASSIFICATION_RESULT", t[t.ACTION_AUDIO_STOP = 1048610] = "ACTION_AUDIO_STOP", t[t.ACTION_CALL_TEXT = 1048611] = "ACTION_CALL_TEXT", t[t.ACTION_RELOAD_APPLICATION = 1048612] = "ACTION_RELOAD_APPLICATION", t[t.ACTION_CANCEL_GENERATION = 1048613] = "ACTION_CANCEL_GENERATION", t[t.ACTION_UI_SET_CONTAINER_STABLE = 1048614] = "ACTION_UI_SET_CONTAINER_STABLE", t[t.ACTION_SPEECH_RECOGNIZED = 1048615] = "ACTION_SPEECH_RECOGNIZED", t[t.ACTION_CALL_RESULT = 1048616] = "ACTION_CALL_RESULT", t[t.ACTION_RELOAD_PROVIDER = 1048617] = "ACTION_RELOAD_PROVIDER", t[t.ACTION_DOWNLOAD = 1048618] = "ACTION_DOWNLOAD", t[t.ACTION_SCROLL_TO_CONTAINER = 1048619] = "ACTION_SCROLL_TO_CONTAINER", t[t.ACTION_UI_CLEAR_STREAM = 1048620] = "ACTION_UI_CLEAR_STREAM", t[t.ACTION_PLAY_SOUND = 1048621] = "ACTION_PLAY_SOUND", t[t.ACTION_ENTER_FULLSCREEN = 1048622] = "ACTION_ENTER_FULLSCREEN", t[t.ACTION_STOP_SOUND = 1048623] = "ACTION_STOP_SOUND", t[t.ACTION_START_RECORDING = 1048624] = "ACTION_START_RECORDING", t[t.ACTION_STOP_RECORDING = 1048625] = "ACTION_STOP_RECORDING", t[t.ACTION_FUNCTION_ENUMERATION_ITEM = 1048627] = "ACTION_FUNCTION_ENUMERATION_ITEM", t[t.ACTION_FUNCTION_ENUMERATION_END = 1048628] = "ACTION_FUNCTION_ENUMERATION_END", t[t.ACTION_FUNCTION_CANCEL = 1048629] = "ACTION_FUNCTION_CANCEL", t[t.ACTION_FUNCTION_DISPOSE = 1048630] = "ACTION_FUNCTION_DISPOSE", t[t.ACTION_FUNCTION_ERROR = 1048631] = "ACTION_FUNCTION_ERROR", t[t.ACTION_FUNCTION_ACK = 1048632] = "ACTION_FUNCTION_ACK", t[t.ACTION_FUNCTION_AWAITING_APPROVAL = 1048633] = "ACTION_FUNCTION_AWAITING_APPROVAL", t[t.ACTION_FUNCTION_APPROVAL_REQUIRED = 1048634] = "ACTION_FUNCTION_APPROVAL_REQUIRED", t[t.ACTION_FUNCTION_APPROVAL_RESPONSE = 1048635] = "ACTION_FUNCTION_APPROVAL_RESPONSE", t[t.UI_UPDATE_ACK = 1048636] = "UI_UPDATE_ACK", t[t.ACTION_CALL2 = 1048637] = "ACTION_CALL2", t[t.ACTION_FUNCTION_REGISTER_BATCH = 1048638] = "ACTION_FUNCTION_REGISTER_BATCH", t[t.ACTION_TRIGGER_GIT_PULL = 1048639] = "ACTION_TRIGGER_GIT_PULL", t[t.ACTION_FILE_UPLOAD_CALLBACK = 1048640] = "ACTION_FILE_UPLOAD_CALLBACK", t[t.ACTION_CUSTOM_USER_MESSAGE = 1048641] = "ACTION_CUSTOM_USER_MESSAGE", t[t.ACTION_URL_CHANGED = 1048642] = "ACTION_URL_CHANGED", t[t.ACTION_FILE_UPLOAD_PRE_START2 = 1048643] = "ACTION_FILE_UPLOAD_PRE_START2", t[t.ACTION_FILE_UPLOAD_PRE_START_RESPONSE2 = 1048644] = "ACTION_FILE_UPLOAD_PRE_START_RESPONSE2", t[t.ACTION_FILE_UPLOAD_START2 = 1048645] = "ACTION_FILE_UPLOAD_START2", t[t.ACTION_FILE_UPLOAD_START_RESPONSE2 = 1048646] = "ACTION_FILE_UPLOAD_START_RESPONSE2", t[t.ACTION_FILE_UPLOAD_DATA2 = 1048647] = "ACTION_FILE_UPLOAD_DATA2", t[t.ACTION_FILE_UPLOAD_ACK2 = 1048648] = "ACTION_FILE_UPLOAD_ACK2", t[t.ACTION_FILE_UPLOAD_END2 = 1048649] = "ACTION_FILE_UPLOAD_END2", t[t.ACTION_FILE_UPLOAD_COMPLETE2 = 1048650] = "ACTION_FILE_UPLOAD_COMPLETE2", t[t.ACTION_FUNCTION_ENUMERATION_ITEM_BATCH = 1048651] = "ACTION_FUNCTION_ENUMERATION_ITEM_BATCH", t[t.ACTION_CALL_ACK = 1048652] = "ACTION_CALL_ACK", t[t.GROUP_UI = 2097152] = "GROUP_UI", t[t.UI_STREAM_BEGIN = 2097153] = "UI_STREAM_BEGIN", t[t.UI_STREAM_END = 2097154] = "UI_STREAM_END", t[t.UI_CONTAINER_BEGIN = 2097155] = "UI_CONTAINER_BEGIN", t[t.UI_CONTAINER_END = 2097156] = "UI_CONTAINER_END", t[t.UI_SECTION_BEGIN = 2097157] = "UI_SECTION_BEGIN", t[t.UI_SECTION_END = 2097158] = "UI_SECTION_END", t[t.UI_LIST_BEGIN = 2097159] = "UI_LIST_BEGIN", t[t.UI_LIST_ITEM = 2097160] = "UI_LIST_ITEM", t[t.UI_LIST_END = 2097161] = "UI_LIST_END", t[t.UI_TEXT = 2097162] = "UI_TEXT", t[t.UI_HEADER = 2097163] = "UI_HEADER", t[t.UI_SEPARATOR = 2097164] = "UI_SEPARATOR", t[t.UI_BUTTON = 2097165] = "UI_BUTTON", t[t.UI_ICON_BUTTON = 2097166] = "UI_ICON_BUTTON", t[t.UI_IMAGE = 2097167] = "UI_IMAGE", t[t.UI_FILE = 2097168] = "UI_FILE", t[t.UI_BADGE = 2097169] = "UI_BADGE", t[t.UI_CONTENT_LINK = 2097170] = "UI_CONTENT_LINK", t[t.UI_MAP = 2097171] = "UI_MAP", t[t.UI_VEGA_CHART = 2097172] = "UI_VEGA_CHART", t[t.UI_ICON = 2097173] = "UI_ICON", t[t.UI_FILE_UPLOAD_SECTION_BEGIN = 2097174] = "UI_FILE_UPLOAD_SECTION_BEGIN", t[t.UI_FILE_UPLOAD_SECTION_END = 2097175] = "UI_FILE_UPLOAD_SECTION_END", t[t.UI_MATERIAL_SYMBOL = 2097176] = "UI_MATERIAL_SYMBOL", t[t.UI_BUTTON_BEGIN = 2097177] = "UI_BUTTON_BEGIN", t[t.UI_BUTTON_END = 2097178] = "UI_BUTTON_END", t[t.UI_CONTAINER_DELETE = 2097179] = "UI_CONTAINER_DELETE", t[t.UI_INPUT_TEXT = 2097180] = "UI_INPUT_TEXT", t[t.UI_PROGRESS_BAR = 2097181] = "UI_PROGRESS_BAR", t[t.UI_UPDATE_BEGIN = 2097182] = "UI_UPDATE_BEGIN", t[t.UI_UPDATE_END = 2097183] = "UI_UPDATE_END", t[t.UI_AUTOCOMPLETE = 2097184] = "UI_AUTOCOMPLETE", t[t.UI_CHECKBOX = 2097185] = "UI_CHECKBOX", t[t.UI_QS = 2097186] = "UI_QS", t[t.UI_ELEMENT = 2097187] = "UI_ELEMENT", t[t.UI_STYLES = 2097188] = "UI_STYLES", t[t.UI_SVG = 2097189] = "UI_SVG", t[t.UI_UPDATE = 2097190] = "UI_UPDATE", t[t.UI_INIT = 2097191] = "UI_INIT", t[t.UI_STYLES_BATCH = 2097192] = "UI_STYLES_BATCH", t[t.UI_STYLES_DELETE = 2097193] = "UI_STYLES_DELETE", t[t.GROUP_COMMON = 4128768] = "GROUP_COMMON", t[t.GROUP_AUDIO = 4194304] = "GROUP_AUDIO", t[t.AUDIO_STREAM_BEGIN = 4194305] = "AUDIO_STREAM_BEGIN", t[t.AUDIO_STREAM_END = 4194306] = "AUDIO_STREAM_END", t[t.AUDIO_FRAME = 4194307] = "AUDIO_FRAME", t[t.AUDIO_FRAME_VOLUME = 4194308] = "AUDIO_FRAME_VOLUME", t[t.AUDIO_FRAME2 = 4194309] = "AUDIO_FRAME2", t[t.AUDIO_SHAPE_FRAME = 4194310] = "AUDIO_SHAPE_FRAME", t[t.GROUP_VIDEO = 8388608] = "GROUP_VIDEO", t[t.VIDEO_STREAM_BEGIN = 8388609] = "VIDEO_STREAM_BEGIN", t[t.VIDEO_STREAM_END = 8388610] = "VIDEO_STREAM_END", t[t.VIDEO_FRAME = 8388611] = "VIDEO_FRAME", t[t.VIDEO_REQUEST_IDR_FRAME = 8388612] = "VIDEO_REQUEST_IDR_FRAME", t[t.VIDEO_INVALIDATE_FRAME = 8388613] = "VIDEO_INVALIDATE_FRAME", t[t.GROUP_TRACKING = 16777216] = "GROUP_TRACKING", t[t.TRACKING_STREAM_BEGIN = 16777217] = "TRACKING_STREAM_BEGIN", t[t.TRACKING_STREAM_END = 16777218] = "TRACKING_STREAM_END", t[t.TRACKING_FRAME = 16777219] = "TRACKING_FRAME", t[t.GROUP_SCENE = 33554432] = "GROUP_SCENE", t[t.SCENE_MESH = 33554433] = "SCENE_MESH", t[t.SCENE_ARRAY = 33554434] = "SCENE_ARRAY", t[t.GROUP_ALL = 67043328] = "GROUP_ALL", t[t.GROUP_APP_LOCAL = 1073741824] = "GROUP_APP_LOCAL", t[t.CONSTANT_GROUP_MASK = 2147418112] = "CONSTANT_GROUP_MASK", t))(c || {});
|
|
537
537
|
const It = 8388611, at = 271275304, At = 2541432218, Tt = 2986785889, Nt = 3105403172, Ct = 3456383222;
|
|
538
538
|
function ft(t) {
|
|
539
539
|
const r = {};
|
|
@@ -585,32 +585,32 @@ async function ht(t, r) {
|
|
|
585
585
|
const e = await k(t, It);
|
|
586
586
|
return Rt(e, r);
|
|
587
587
|
}
|
|
588
|
-
const Ut = 8388609,
|
|
589
|
-
function
|
|
588
|
+
const Ut = 8388609, lt = 161083277, St = 164808083, Dt = 1368629611, Lt = 2514959030, ct = 2745379226, yt = 2950031986, Ot = 3282782683, Pt = 3284746250, wt = 4065070594;
|
|
589
|
+
function gt(t) {
|
|
590
590
|
const r = {};
|
|
591
591
|
return z(r), r;
|
|
592
592
|
}
|
|
593
593
|
function z(t) {
|
|
594
|
-
return t.StreamId = "", t.Description = "", t.SourceType = "", t.Codec = h.H264, t.CodecDetails = "", t.Width = 0, t.Height = 0, t.Framerate = 30, t;
|
|
595
|
-
}
|
|
596
|
-
function gt(t, r) {
|
|
597
|
-
const e = P.create(t);
|
|
598
|
-
return mt(e, r);
|
|
594
|
+
return t.StreamId = "", t.Description = "", t.SourceType = "", t.Codec = h.H264, t.CodecDetails = "", t.Width = 0, t.Height = 0, t.Framerate = 30, t.CorrelationId = void 0, t;
|
|
599
595
|
}
|
|
600
596
|
function mt(t, r) {
|
|
601
|
-
const e =
|
|
602
|
-
return
|
|
597
|
+
const e = P.create(t);
|
|
598
|
+
return Ft(e, r);
|
|
603
599
|
}
|
|
604
600
|
function Ft(t, r) {
|
|
601
|
+
const e = r ?? gt();
|
|
602
|
+
return z(e), Mt(t, e), e;
|
|
603
|
+
}
|
|
604
|
+
function Mt(t, r) {
|
|
605
605
|
let e;
|
|
606
606
|
for (; (e = t.next()) !== null; )
|
|
607
607
|
switch (e.fieldId) {
|
|
608
|
-
case
|
|
608
|
+
case lt: {
|
|
609
609
|
if (e.isNull) throw new Error();
|
|
610
610
|
r.StreamId = e.asString();
|
|
611
611
|
break;
|
|
612
612
|
}
|
|
613
|
-
case
|
|
613
|
+
case St: {
|
|
614
614
|
if (e.isNull) throw new Error();
|
|
615
615
|
r.Framerate = e.asFloat64();
|
|
616
616
|
break;
|
|
@@ -621,37 +621,45 @@ function Ft(t, r) {
|
|
|
621
621
|
break;
|
|
622
622
|
}
|
|
623
623
|
case Lt: {
|
|
624
|
+
if (e.isNull) {
|
|
625
|
+
r.CorrelationId = void 0;
|
|
626
|
+
break;
|
|
627
|
+
}
|
|
628
|
+
r.CorrelationId = e.asString();
|
|
629
|
+
break;
|
|
630
|
+
}
|
|
631
|
+
case ct: {
|
|
624
632
|
if (e.isNull) throw new Error();
|
|
625
633
|
r.CodecDetails = e.asString();
|
|
626
634
|
break;
|
|
627
635
|
}
|
|
628
|
-
case
|
|
636
|
+
case yt: {
|
|
629
637
|
if (e.isNull) throw new Error();
|
|
630
638
|
r.Height = e.asInt32();
|
|
631
639
|
break;
|
|
632
640
|
}
|
|
633
|
-
case
|
|
641
|
+
case Ot: {
|
|
634
642
|
if (e.isNull) throw new Error();
|
|
635
643
|
r.SourceType = e.asString();
|
|
636
644
|
break;
|
|
637
645
|
}
|
|
638
|
-
case
|
|
646
|
+
case Pt: {
|
|
639
647
|
if (e.isNull) throw new Error();
|
|
640
648
|
r.Codec = e.asInt32();
|
|
641
649
|
break;
|
|
642
650
|
}
|
|
643
|
-
case
|
|
651
|
+
case wt: {
|
|
644
652
|
if (e.isNull) throw new Error();
|
|
645
653
|
r.Width = e.asInt32();
|
|
646
654
|
break;
|
|
647
655
|
}
|
|
648
656
|
}
|
|
649
657
|
}
|
|
650
|
-
async function
|
|
658
|
+
async function Vt(t, r) {
|
|
651
659
|
const e = await k(t, Ut);
|
|
652
|
-
return
|
|
660
|
+
return mt(e, r);
|
|
653
661
|
}
|
|
654
|
-
const
|
|
662
|
+
const Gt = "avc1.42E01E", dt = "vp8", Bt = "vp09.00.10.08", bt = "av01.0.04M.08", Ht = 8, D = (t, r) => self.postMessage(t, r ?? []);
|
|
655
663
|
let U = null, O = !0, $ = !1;
|
|
656
664
|
const T = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Map();
|
|
657
665
|
function u(t) {
|
|
@@ -686,10 +694,10 @@ function V(t) {
|
|
|
686
694
|
return T.set(t, e), e;
|
|
687
695
|
}
|
|
688
696
|
function v(t) {
|
|
689
|
-
if (t === h.H264) return
|
|
690
|
-
if (t === h.Vp8) return
|
|
691
|
-
if (t === h.Vp9) return
|
|
692
|
-
if (t === h.Av1) return
|
|
697
|
+
if (t === h.H264) return Gt;
|
|
698
|
+
if (t === h.Vp8) return dt;
|
|
699
|
+
if (t === h.Vp9) return Bt;
|
|
700
|
+
if (t === h.Av1) return bt;
|
|
693
701
|
throw new Error(`Unknown codec: ${t}`);
|
|
694
702
|
}
|
|
695
703
|
function o(t) {
|
|
@@ -699,7 +707,7 @@ function o(t) {
|
|
|
699
707
|
const e = r.numericKey >> 16 & 65535, _ = r.numericKey & 65535;
|
|
700
708
|
D({ type: "requestIdr", streamId: t, senderId: e, trackId: _ });
|
|
701
709
|
}
|
|
702
|
-
async function
|
|
710
|
+
async function Kt(t, r) {
|
|
703
711
|
try {
|
|
704
712
|
if (!O || !t.watched)
|
|
705
713
|
return;
|
|
@@ -717,7 +725,7 @@ async function Ht(t, r) {
|
|
|
717
725
|
}
|
|
718
726
|
}
|
|
719
727
|
}
|
|
720
|
-
async function
|
|
728
|
+
async function Yt(t, r, e) {
|
|
721
729
|
const _ = {
|
|
722
730
|
codec: t,
|
|
723
731
|
codedWidth: r > 0 ? r : void 0,
|
|
@@ -752,7 +760,7 @@ function F(t) {
|
|
|
752
760
|
}
|
|
753
761
|
return;
|
|
754
762
|
}
|
|
755
|
-
if (t.pendingDecodeCount >
|
|
763
|
+
if (t.pendingDecodeCount > Ht) {
|
|
756
764
|
t.pendingDecodeCount--;
|
|
757
765
|
try {
|
|
758
766
|
r.close();
|
|
@@ -775,7 +783,7 @@ function F(t) {
|
|
|
775
783
|
}
|
|
776
784
|
return;
|
|
777
785
|
}
|
|
778
|
-
|
|
786
|
+
Kt(t, r);
|
|
779
787
|
},
|
|
780
788
|
error: (r) => {
|
|
781
789
|
if (u(r), t.isKeyFrameRequired = !0, t.isReconfiguring = !0, t.decoder && t.decoder.state !== "closed")
|
|
@@ -807,7 +815,7 @@ async function y(t) {
|
|
|
807
815
|
t.decoder = F(t);
|
|
808
816
|
}
|
|
809
817
|
try {
|
|
810
|
-
const E = await
|
|
818
|
+
const E = await Yt(r, t.width, t.height);
|
|
811
819
|
if (v(t.codec) !== r) {
|
|
812
820
|
if (t.decoder && t.decoder.state !== "closed")
|
|
813
821
|
try {
|
|
@@ -834,11 +842,11 @@ async function y(t) {
|
|
|
834
842
|
t.isReconfiguring = !1;
|
|
835
843
|
}
|
|
836
844
|
}
|
|
837
|
-
async function
|
|
838
|
-
const e = await
|
|
845
|
+
async function xt(t, r) {
|
|
846
|
+
const e = await Vt(t), _ = e.StreamId, E = g(r.senderId, r.trackId), n = V(_);
|
|
839
847
|
n.numericKey = E, n.codec = e.Codec, n.width = e.Width, n.height = e.Height, n.framerate = e.Framerate, R.set(E, _), D({ type: "streamBegin", streamId: _, width: e.Width, height: e.Height, codec: e.Codec }), n.watched ? (n.surface && n.ctx2d && e.Width > 0 && e.Height > 0 && (n.surface.width !== e.Width || n.surface.height !== e.Height) && (n.surface.width = e.Width, n.surface.height = e.Height), y(n)) : n.isReconfiguring = !1;
|
|
840
848
|
}
|
|
841
|
-
function
|
|
849
|
+
function vt(t) {
|
|
842
850
|
const r = g(t.senderId, t.trackId), e = R.get(r);
|
|
843
851
|
if (!e)
|
|
844
852
|
return;
|
|
@@ -872,7 +880,7 @@ function j(t) {
|
|
|
872
880
|
r.isReconfiguring = !1;
|
|
873
881
|
}
|
|
874
882
|
}
|
|
875
|
-
async function
|
|
883
|
+
async function kt(t, r) {
|
|
876
884
|
const e = g(r.senderId, r.trackId), _ = R.get(e);
|
|
877
885
|
if (!_)
|
|
878
886
|
return;
|
|
@@ -904,14 +912,14 @@ async function vt(t, r) {
|
|
|
904
912
|
}
|
|
905
913
|
}
|
|
906
914
|
}
|
|
907
|
-
function
|
|
915
|
+
function Wt(t) {
|
|
908
916
|
const r = g(t.senderId, t.trackId), e = R.get(r);
|
|
909
917
|
if (!e)
|
|
910
918
|
return;
|
|
911
919
|
const _ = T.get(e);
|
|
912
920
|
_ && (_.isKeyFrameRequired = !0, _.watched && o(_.streamId));
|
|
913
921
|
}
|
|
914
|
-
function
|
|
922
|
+
function Xt(t, r) {
|
|
915
923
|
switch (r.opcode) {
|
|
916
924
|
case c.VIDEO_STREAM_BEGIN: {
|
|
917
925
|
const e = g(r.senderId, r.trackId), _ = R.get(e);
|
|
@@ -919,17 +927,17 @@ function Wt(t, r) {
|
|
|
919
927
|
const E = T.get(_);
|
|
920
928
|
E && (E.isReconfiguring = !0);
|
|
921
929
|
}
|
|
922
|
-
|
|
930
|
+
xt(t, r);
|
|
923
931
|
return;
|
|
924
932
|
}
|
|
925
933
|
case c.VIDEO_STREAM_END:
|
|
926
|
-
|
|
934
|
+
vt(r);
|
|
927
935
|
return;
|
|
928
936
|
case c.VIDEO_FRAME:
|
|
929
|
-
|
|
937
|
+
kt(t, r);
|
|
930
938
|
return;
|
|
931
939
|
case c.VIDEO_INVALIDATE_FRAME:
|
|
932
|
-
|
|
940
|
+
Wt(r);
|
|
933
941
|
return;
|
|
934
942
|
default:
|
|
935
943
|
return;
|
|
@@ -944,7 +952,7 @@ function Q() {
|
|
|
944
952
|
U = null;
|
|
945
953
|
}
|
|
946
954
|
}
|
|
947
|
-
function
|
|
955
|
+
function zt() {
|
|
948
956
|
Q();
|
|
949
957
|
for (const t of T.values())
|
|
950
958
|
j(t.streamId);
|
|
@@ -974,7 +982,7 @@ self.addEventListener("message", (t) => {
|
|
|
974
982
|
if (r.type === "attachProtocolPort") {
|
|
975
983
|
Q(), U = r.port, U.addEventListener("message", (e) => {
|
|
976
984
|
const _ = e.data;
|
|
977
|
-
_?.type === "protocol" && _.message instanceof ArrayBuffer && _.headers &&
|
|
985
|
+
_?.type === "protocol" && _.message instanceof ArrayBuffer && _.headers && Xt(new Uint8Array(_.message), _.headers);
|
|
978
986
|
}), U.start?.();
|
|
979
987
|
return;
|
|
980
988
|
}
|
|
@@ -993,5 +1001,5 @@ self.addEventListener("message", (t) => {
|
|
|
993
1001
|
e.watched && (e.isKeyFrameRequired = !0, y(e), o(e.streamId));
|
|
994
1002
|
return;
|
|
995
1003
|
}
|
|
996
|
-
r.type === "dispose" &&
|
|
1004
|
+
r.type === "dispose" && zt();
|
|
997
1005
|
});
|
|
@@ -33,12 +33,6 @@ export interface ChannelManagerConfig {
|
|
|
33
33
|
* Useful for worker environments where localStorage might be unavailable.
|
|
34
34
|
*/
|
|
35
35
|
orderedEndpointTypes?: EntrypointType[];
|
|
36
|
-
/**
|
|
37
|
-
* True when the user has explicitly constrained the allowed transports via
|
|
38
|
-
* `proxy`, `websocket`, or `webtransport` settings. When set, unstable types
|
|
39
|
-
* are not demoted on reconnect — the user's transport choice is respected.
|
|
40
|
-
*/
|
|
41
|
-
hasTransportConstraint?: boolean;
|
|
42
36
|
/**
|
|
43
37
|
* Called when a working endpoint type is discovered.
|
|
44
38
|
* Typically used by the host to persist endpoint preference.
|
|
@@ -90,8 +84,6 @@ export declare class ChannelManager {
|
|
|
90
84
|
private shouldReconnect;
|
|
91
85
|
private entrypoints;
|
|
92
86
|
private abortController;
|
|
93
|
-
private demotedTypes;
|
|
94
|
-
private connectionStable;
|
|
95
87
|
private connectionTimeoutMs;
|
|
96
88
|
private readonly config;
|
|
97
89
|
constructor(config: ChannelManagerConfig);
|
|
@@ -129,6 +121,13 @@ export declare class ChannelManager {
|
|
|
129
121
|
* stopping) clear the channels and transition to idle/stopped before this runs.
|
|
130
122
|
*/
|
|
131
123
|
checkHealth(): void;
|
|
124
|
+
/**
|
|
125
|
+
* Force every active channel to drop its transport and notify the manager,
|
|
126
|
+
* kicking off the normal reconnect flow. Used when a higher layer has
|
|
127
|
+
* evidence that the connection is dead (e.g. no ACK received for a user
|
|
128
|
+
* action within the ack-timeout window).
|
|
129
|
+
*/
|
|
130
|
+
triggerReconnect(reason: string): void;
|
|
132
131
|
/**
|
|
133
132
|
* Internal connect implementation.
|
|
134
133
|
* @param isReconnect - If true, don't set offline state on failure (let attemptReconnect handle it)
|
|
@@ -152,6 +151,11 @@ export declare class ChannelManager {
|
|
|
152
151
|
private handleChannelStateChange;
|
|
153
152
|
/**
|
|
154
153
|
* Handle channel close.
|
|
154
|
+
*
|
|
155
|
+
* Only `CORE_ON_SERVER_STOPPING` (handled separately via channel state →
|
|
156
|
+
* `handleChannelStateChange`) means the server is gone. Any transport-level
|
|
157
|
+
* close — including a clean WebSocket code 1000 — just means this transport
|
|
158
|
+
* dropped, and we reconnect.
|
|
155
159
|
*/
|
|
156
160
|
private handleChannelClose;
|
|
157
161
|
/**
|
package/channel/channel.d.ts
CHANGED
|
@@ -36,9 +36,8 @@ export interface ChannelConfig {
|
|
|
36
36
|
* Callback when channel is closed.
|
|
37
37
|
* @param reason - Optional reason for the close
|
|
38
38
|
* @param wasClean - Whether the close was clean (normal)
|
|
39
|
-
* @param isServerClose - Whether the close code was 1000 or 1001, indicating server-initiated close
|
|
40
39
|
*/
|
|
41
|
-
onClose?: (reason?: string, wasClean?: boolean
|
|
40
|
+
onClose?: (reason?: string, wasClean?: boolean) => void;
|
|
42
41
|
/**
|
|
43
42
|
* Callback when an error occurs.
|
|
44
43
|
*/
|
|
@@ -83,6 +82,13 @@ export declare class Channel {
|
|
|
83
82
|
* Disconnect the channel.
|
|
84
83
|
*/
|
|
85
84
|
disconnect(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Force the channel to drop its transport and notify the manager so the
|
|
87
|
+
* normal reconnect flow kicks in. Used when an upper layer (e.g. action-ack
|
|
88
|
+
* timeout) has evidence the connection is dead even though the transport
|
|
89
|
+
* still believes it is open.
|
|
90
|
+
*/
|
|
91
|
+
triggerReconnect(reason: string): void;
|
|
86
92
|
/**
|
|
87
93
|
* Check transport health and trigger close if the connection is dead.
|
|
88
94
|
* Used after tab resume to detect WebSockets closed by the OS while suspended.
|
|
@@ -29,13 +29,6 @@ export declare class EndpointSelector {
|
|
|
29
29
|
});
|
|
30
30
|
get proxyMode(): ProxyMode;
|
|
31
31
|
get proxyPreferred(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* True when the user has explicitly narrowed the set of allowed transports
|
|
34
|
-
* via `proxy`, `websocket`, or `webtransport` settings. In that case the SDK
|
|
35
|
-
* should respect the user's choice rather than silently reordering types
|
|
36
|
-
* (e.g. demoting an "unstable" type on transient failure).
|
|
37
|
-
*/
|
|
38
|
-
get hasTransportConstraint(): boolean;
|
|
39
32
|
/**
|
|
40
33
|
* Mark proxy as preferred and persist to localStorage.
|
|
41
34
|
* Called by IkonClient when auth-level proxy fallback succeeds in auto mode.
|
|
@@ -197,6 +197,14 @@ export interface TimeoutConfig {
|
|
|
197
197
|
* Default: 2
|
|
198
198
|
*/
|
|
199
199
|
maxReconnectAttempts?: number;
|
|
200
|
+
/**
|
|
201
|
+
* Timeout in ms for server ACK of a user action call.
|
|
202
|
+
* If the server does not acknowledge an action call within this window, the SDK
|
|
203
|
+
* assumes the connection is dead and triggers reconnection. Kept well under
|
|
204
|
+
* keepaliveTimeoutMs so we detect network-down faster than the keepalive watchdog.
|
|
205
|
+
* Default: 5000 (5 seconds)
|
|
206
|
+
*/
|
|
207
|
+
actionAckTimeoutMs?: number;
|
|
200
208
|
}
|
|
201
209
|
/**
|
|
202
210
|
* Media Session metadata for OS-level media controls (lock screen, notifications).
|
|
@@ -338,9 +346,15 @@ export interface IkonClientConfig {
|
|
|
338
346
|
*/
|
|
339
347
|
websocket?: boolean;
|
|
340
348
|
/**
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
349
|
+
* Enable WebTransport.
|
|
350
|
+
*
|
|
351
|
+
* WebTransport is disabled by default because it has proven unreliable on bad
|
|
352
|
+
* networks. Apps opt in by setting this to `true`, which makes the SDK include
|
|
353
|
+
* WebTransport (and WebTransportProxy) endpoint types and prefer them over
|
|
354
|
+
* WebSocket. When left unset or set to `false`, WebTransport types are excluded
|
|
355
|
+
* and the SDK uses WebSocket / WebSocketProxy only.
|
|
356
|
+
*
|
|
357
|
+
* Can be overridden by the `?ikon-webtransport=true|false` query parameter.
|
|
344
358
|
*/
|
|
345
359
|
webtransport?: boolean;
|
|
346
360
|
/**
|
|
@@ -355,6 +369,7 @@ export declare const DEFAULT_CONNECTION_TIMEOUT_MS = 180000;
|
|
|
355
369
|
export declare const DEFAULT_KEEPALIVE_TIMEOUT_MS = 15000;
|
|
356
370
|
export declare const DEFAULT_RECONNECT_BACKOFF_MS = 2000;
|
|
357
371
|
export declare const DEFAULT_MAX_RECONNECT_ATTEMPTS = 2;
|
|
372
|
+
export declare const DEFAULT_ACTION_ACK_TIMEOUT_MS = 5000;
|
|
358
373
|
export declare const DEFAULT_PROVISIONING_TIMEOUT_MS = 60000;
|
|
359
374
|
export declare const OFFLINE_SOFT_RETRY_THRESHOLD_MS: number;
|
|
360
375
|
export declare const RECONNECT_RETRY_INTERVAL_MS: number;
|
package/client/ikon-client.d.ts
CHANGED
|
@@ -106,12 +106,15 @@ export declare class IkonClient {
|
|
|
106
106
|
private readonly config;
|
|
107
107
|
private readonly slowConnectionThresholdMs;
|
|
108
108
|
private readonly connectionTimeoutMs;
|
|
109
|
+
private readonly actionAckTimeoutMs;
|
|
110
|
+
private readonly _pendingActionAcks;
|
|
109
111
|
private readonly endpointSelector;
|
|
110
112
|
private boundBeforeUnload;
|
|
111
113
|
private boundPageHide;
|
|
112
114
|
private boundVisibilityChange;
|
|
113
115
|
private boundPopstate;
|
|
114
116
|
private boundOnline;
|
|
117
|
+
private boundOffline;
|
|
115
118
|
private _globalState;
|
|
116
119
|
private _globalStateReceived;
|
|
117
120
|
private _channelsConnected;
|
|
@@ -141,6 +144,7 @@ export declare class IkonClient {
|
|
|
141
144
|
private _disconnectedAt;
|
|
142
145
|
private _reconnectTimer;
|
|
143
146
|
private _serverStopped;
|
|
147
|
+
private _hasBeenConnected;
|
|
144
148
|
private _waitForExternalConnectUrl;
|
|
145
149
|
private _externalConnectUrlCleanup;
|
|
146
150
|
/**
|
|
@@ -183,7 +187,9 @@ export declare class IkonClient {
|
|
|
183
187
|
onWebRtcTrackMapChanged?: (info: WebRTCTrackMapInfo) => void;
|
|
184
188
|
/**
|
|
185
189
|
* Look up the WebRTC video MediaStream for a given app-level stream ID.
|
|
186
|
-
*
|
|
190
|
+
* Checks remote tracks first, then falls back to local capture streams so single-user
|
|
191
|
+
* self-preview works (e.g. a security-camera app showing its own webcam).
|
|
192
|
+
* Returns null if no match or if the stream is inactive.
|
|
187
193
|
*/
|
|
188
194
|
getWebRtcVideoStreamByStreamId(streamId: string): MediaStream | null;
|
|
189
195
|
/**
|
|
@@ -231,6 +237,14 @@ export declare class IkonClient {
|
|
|
231
237
|
*/
|
|
232
238
|
disconnect(): void;
|
|
233
239
|
sendActionCall(actionId: string, payload?: string): void;
|
|
240
|
+
/**
|
|
241
|
+
* Register an outstanding action call and start its ack-timeout timer. If the
|
|
242
|
+
* server does not echo back an ActionCallAck for this CallId within
|
|
243
|
+
* `actionAckTimeoutMs`, we assume the connection is dead and force reconnect.
|
|
244
|
+
*/
|
|
245
|
+
private trackPendingActionAck;
|
|
246
|
+
private onActionAckTimeout;
|
|
247
|
+
private clearPendingActionAcks;
|
|
234
248
|
/**
|
|
235
249
|
* Send a protocol message to the server.
|
|
236
250
|
* Routes to appropriate channel based on the message's opcode group.
|
|
@@ -303,6 +317,13 @@ export declare class IkonClient {
|
|
|
303
317
|
private handleChannelManagerStateChange;
|
|
304
318
|
/**
|
|
305
319
|
* Update the connection state and notify subscribers.
|
|
320
|
+
*
|
|
321
|
+
* Principle: once connected, the only allowed path to 'offline' is an
|
|
322
|
+
* explicit `CORE_ON_SERVER_STOPPING` from the server, which sets
|
|
323
|
+
* `_serverStopped = true` first. Any other attempt is a bug — redirect to
|
|
324
|
+
* the infinite reconnect loop and log so we notice in dev. Exception: when
|
|
325
|
+
* retry is disabled via ikon-retry=false the caller has opted out of
|
|
326
|
+
* reconnection, so let the offline transition through.
|
|
306
327
|
*/
|
|
307
328
|
private setState;
|
|
308
329
|
/**
|
|
@@ -338,6 +359,7 @@ export declare class IkonClient {
|
|
|
338
359
|
private scheduleReconnectRetry;
|
|
339
360
|
private clearReconnectTimer;
|
|
340
361
|
private attemptReconnectOnVisible;
|
|
362
|
+
private handleBrowserOffline;
|
|
341
363
|
/**
|
|
342
364
|
* Clear all timers.
|
|
343
365
|
*/
|
package/connection/urls.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare const IKON_AUTH_URL_DEV = "https://auth.dev.ikonai.com";
|
|
|
15
15
|
export declare const IKON_AUTH_BASE_URL = "https://auth.ikonai.com";
|
|
16
16
|
/**
|
|
17
17
|
* Get backend URL from BackendType.
|
|
18
|
-
*
|
|
18
|
+
* Defaults to same-origin /ikon/api on deployed apps; honors ?ikon-api=false to opt out.
|
|
19
19
|
*/
|
|
20
20
|
export declare function getBackendUrl(backendType?: BackendType): string;
|
|
21
21
|
/**
|
|
@@ -23,7 +23,7 @@ export declare function getBackendUrl(backendType?: BackendType): string;
|
|
|
23
23
|
* Priority:
|
|
24
24
|
* 1. Explicit override (e.g. from config)
|
|
25
25
|
* 2. VITE_IKON_BACKEND_URL env var (set by .NET server during local dev)
|
|
26
|
-
* 3. ikon-api=
|
|
26
|
+
* 3. Cloud environment, not opted out via ?ikon-api=false → same-origin /ikon/api (default)
|
|
27
27
|
* 4. Local environment (localhost, LAN IPs) → IKON_BACKEND_URL_DEV
|
|
28
28
|
* 5. Hostname contains '.dev.' → IKON_BACKEND_URL_DEV
|
|
29
29
|
* 6. Default → IKON_BACKEND_URL_PROD
|