@ikonai/sdk 1.0.28 → 1.0.29

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.
@@ -7,94 +7,94 @@ function W(t) {
7
7
  return $(t) & 4294901760;
8
8
  }
9
9
  function X(t) {
10
- const e = Et(t), r = new DataView(e.buffer, e.byteOffset, e.byteLength);
10
+ const e = Et(t), s = new DataView(e.buffer, e.byteOffset, e.byteLength);
11
11
  if (e.length < 27)
12
12
  throw new Error("Protocol payload too short");
13
- const s = r.getUint32(0, !0), i = r.getUint32(4, !0), n = r.getUint32(8, !0), a = r.getUint32(12, !0), o = r.getUint32(16, !0), l = r.getUint32(20, !0), h = r.getUint8(24), f = r.getUint8(25), _ = r.getUint8(26);
13
+ const r = s.getUint32(0, !0), i = s.getUint32(4, !0), n = s.getUint32(8, !0), a = s.getUint32(12, !0), o = s.getUint32(16, !0), l = s.getUint32(20, !0), h = s.getUint8(24), N = s.getUint8(25), _ = s.getUint8(26);
14
14
  if (27 + l * 4 > e.length)
15
15
  throw new Error("Protocol header exceeds payload length");
16
- const T = [];
16
+ const c = [];
17
17
  let O = 27;
18
18
  for (let b = 0; b < l; b++)
19
- T.push(r.getUint32(O, !0)), O += 4;
19
+ c.push(s.getUint32(O, !0)), O += 4;
20
20
  return {
21
- length: s,
21
+ length: r,
22
22
  opcode: i,
23
23
  senderId: n,
24
24
  trackId: a,
25
25
  sequenceId: o,
26
- targetIds: T,
26
+ targetIds: c,
27
27
  payloadVersion: h,
28
- payloadType: f,
28
+ payloadType: N,
29
29
  flags: _
30
30
  };
31
31
  }
32
- function it(t, e, r, s, i) {
33
- const l = [], f = 27 + l.length * 4, _ = f + e.length, d = new Uint8Array(_), T = new DataView(d.buffer);
34
- T.setUint32(0, _, !0), T.setUint32(4, t >>> 0, !0), T.setUint32(8, s >>> 0, !0), T.setUint32(12, 0, !0), T.setUint32(16, 0, !0), T.setUint32(20, l.length >>> 0, !0), T.setUint8(24, r & 255), T.setUint8(25, 8), T.setUint8(26, 0);
32
+ function it(t, e, s, r, i) {
33
+ const l = [], N = 27 + l.length * 4, _ = N + e.length, P = new Uint8Array(_), c = new DataView(P.buffer);
34
+ c.setUint32(0, _, !0), c.setUint32(4, t >>> 0, !0), c.setUint32(8, r >>> 0, !0), c.setUint32(12, 0, !0), c.setUint32(16, 0, !0), c.setUint32(20, l.length >>> 0, !0), c.setUint8(24, s & 255), c.setUint8(25, 8), c.setUint8(26, 0);
35
35
  let O = 27;
36
36
  for (let b = 0; b < l.length; b++)
37
- T.setUint32(O, l[b] >>> 0, !0), O += 4;
38
- return d.set(e, f), d;
37
+ c.setUint32(O, l[b] >>> 0, !0), O += 4;
38
+ return P.set(e, N), P;
39
39
  }
40
40
  var g = /* @__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))(g || {});
41
- const nt = 161, at = 162, p = new TextEncoder();
41
+ const nt = 161, at = 162, V = new TextEncoder();
42
42
  new TextDecoder("utf-8", { fatal: !0 });
43
43
  class M {
44
44
  constructor(e = 1) {
45
45
  this.version = e, this.buffer.writeByte(nt), this.buffer.writeVarUInt(e >>> 0);
46
46
  }
47
- buffer = new P();
47
+ buffer = new m();
48
48
  closed = !1;
49
49
  cached;
50
- writeInt32Field(e, r) {
51
- this.writeFixedField(e, 3, () => this.buffer.writeInt32(r | 0));
50
+ writeInt32Field(e, s) {
51
+ this.writeFixedField(e, 3, () => this.buffer.writeInt32(s | 0));
52
52
  }
53
- writeUInt32Field(e, r) {
54
- this.writeFixedField(e, 5, () => this.buffer.writeUInt32(r >>> 0));
53
+ writeUInt32Field(e, s) {
54
+ this.writeFixedField(e, 5, () => this.buffer.writeUInt32(s >>> 0));
55
55
  }
56
- writeInt64Field(e, r) {
57
- this.writeFixedField(e, 4, () => this.buffer.writeBigInt64(r));
56
+ writeInt64Field(e, s) {
57
+ this.writeFixedField(e, 4, () => this.buffer.writeBigInt64(s));
58
58
  }
59
- writeUInt64Field(e, r) {
60
- this.writeFixedField(e, 6, () => this.buffer.writeBigUInt64(r));
59
+ writeUInt64Field(e, s) {
60
+ this.writeFixedField(e, 6, () => this.buffer.writeBigUInt64(s));
61
61
  }
62
- writeFloat32Field(e, r) {
63
- this.writeFixedField(e, 7, () => this.buffer.writeFloat32(r));
62
+ writeFloat32Field(e, s) {
63
+ this.writeFixedField(e, 7, () => this.buffer.writeFloat32(s));
64
64
  }
65
- writeFloat64Field(e, r) {
66
- this.writeFixedField(e, 8, () => this.buffer.writeFloat64(r));
65
+ writeFloat64Field(e, s) {
66
+ this.writeFixedField(e, 8, () => this.buffer.writeFloat64(s));
67
67
  }
68
- writeBoolField(e, r) {
69
- this.writeFixedField(e, 2, () => this.buffer.writeByte(r ? 1 : 0));
68
+ writeBoolField(e, s) {
69
+ this.writeFixedField(e, 2, () => this.buffer.writeByte(s ? 1 : 0));
70
70
  }
71
- writeGuidField(e, r) {
72
- const s = r instanceof E ? r.asBytes() : r;
73
- if (s.length !== 16)
71
+ writeGuidField(e, s) {
72
+ const r = s instanceof E ? s.asBytes() : s;
73
+ if (r.length !== 16)
74
74
  throw new Error("Guid payload must be 16 bytes");
75
- this.writeFixedField(e, 14, () => this.buffer.writeBytes(s));
75
+ this.writeFixedField(e, 14, () => this.buffer.writeBytes(r));
76
76
  }
77
- writeStringField(e, r) {
78
- const s = p.encode(r ?? "");
79
- this.writeVariableField(e, 12, s);
77
+ writeStringField(e, s) {
78
+ const r = V.encode(s ?? "");
79
+ this.writeVariableField(e, 12, r);
80
80
  }
81
- writeBinaryField(e, r) {
82
- this.writeVariableField(e, 13, r);
81
+ writeBinaryField(e, s) {
82
+ this.writeVariableField(e, 13, s);
83
83
  }
84
- writeObjectField(e, r, s) {
85
- const i = new M(r);
86
- s(i);
84
+ writeObjectField(e, s, r) {
85
+ const i = new M(s);
86
+ r(i);
87
87
  const n = i.finish();
88
88
  this.writeVariableField(e, 11, n);
89
89
  }
90
- writeArrayField(e, r, s) {
91
- const i = new K(r);
92
- s(i);
90
+ writeArrayField(e, s, r) {
91
+ const i = new K(s);
92
+ r(i);
93
93
  const n = i.finish();
94
94
  this.writeVariableField(e, 9, n);
95
95
  }
96
- writeDictionaryField(e, r, s, i) {
97
- const n = new Q(r, s);
96
+ writeDictionaryField(e, s, r, i) {
97
+ const n = new Q(s, r);
98
98
  i(n);
99
99
  const a = n.finish();
100
100
  this.writeVariableField(e, 10, a);
@@ -102,21 +102,21 @@ class M {
102
102
  finish() {
103
103
  return this.closed || (this.buffer.writeByte(at), this.closed = !0, this.cached = this.buffer.toUint8Array()), this.cached;
104
104
  }
105
- writeFixedField(e, r, s) {
106
- this.writeFieldHeader(e, r, 0), s();
105
+ writeFixedField(e, s, r) {
106
+ this.writeFieldHeader(e, s, 0), r();
107
107
  }
108
- writeVariableField(e, r, s) {
109
- this.writeFieldHeader(e, r, s.length), this.buffer.writeBytes(s);
108
+ writeVariableField(e, s, r) {
109
+ this.writeFieldHeader(e, s, r.length), this.buffer.writeBytes(r);
110
110
  }
111
- writeFieldHeader(e, r, s) {
112
- this.buffer.writeUInt32(e >>> 0), this.buffer.writeByte(k(r)), lt(r) && this.buffer.writeVarUInt(s >>> 0);
111
+ writeFieldHeader(e, s, r) {
112
+ this.buffer.writeUInt32(e >>> 0), this.buffer.writeByte(k(s)), lt(s) && this.buffer.writeVarUInt(r >>> 0);
113
113
  }
114
114
  }
115
115
  class K {
116
116
  constructor(e) {
117
117
  this.elementType = e;
118
118
  }
119
- payload = new P();
119
+ payload = new m();
120
120
  count = 0;
121
121
  writeInt32(e) {
122
122
  this.ensureElementType(
@@ -165,18 +165,18 @@ class K {
165
165
  14
166
166
  /* Guid */
167
167
  ), this.count++;
168
- const r = e instanceof E ? e.asBytes() : e;
169
- if (r.length !== 16)
168
+ const s = e instanceof E ? e.asBytes() : e;
169
+ if (s.length !== 16)
170
170
  throw new Error("Guid payload must be 16 bytes");
171
- this.payload.writeBytes(r);
171
+ this.payload.writeBytes(s);
172
172
  }
173
173
  writeString(e) {
174
174
  this.ensureElementType(
175
175
  12
176
176
  /* String */
177
177
  ), this.count++;
178
- const r = p.encode(e ?? "");
179
- this.payload.writeVarUInt(r.length), this.payload.writeBytes(r);
178
+ const s = V.encode(e ?? "");
179
+ this.payload.writeVarUInt(s.length), this.payload.writeBytes(s);
180
180
  }
181
181
  writeBinary(e) {
182
182
  this.ensureElementType(
@@ -184,38 +184,38 @@ class K {
184
184
  /* Binary */
185
185
  ), this.count++, this.payload.writeVarUInt(e.length), this.payload.writeBytes(e);
186
186
  }
187
- writeObject(e, r) {
187
+ writeObject(e, s) {
188
188
  this.ensureElementType(
189
189
  11
190
190
  /* Object */
191
191
  ), this.count++;
192
- const s = new M(e);
193
- r(s);
194
- const i = s.finish();
192
+ const r = new M(e);
193
+ s(r);
194
+ const i = r.finish();
195
195
  this.payload.writeVarUInt(i.length), this.payload.writeBytes(i);
196
196
  }
197
- writeArray(e, r) {
197
+ writeArray(e, s) {
198
198
  this.ensureElementType(
199
199
  9
200
200
  /* Array */
201
201
  ), this.count++;
202
- const s = new K(e);
203
- r(s);
204
- const i = s.finish();
202
+ const r = new K(e);
203
+ s(r);
204
+ const i = r.finish();
205
205
  this.payload.writeBytes(i);
206
206
  }
207
- writeDictionary(e, r, s) {
207
+ writeDictionary(e, s, r) {
208
208
  this.ensureElementType(
209
209
  10
210
210
  /* Dict */
211
211
  ), this.count++;
212
- const i = new Q(e, r);
213
- s(i);
212
+ const i = new Q(e, s);
213
+ r(i);
214
214
  const n = i.finish();
215
215
  this.payload.writeBytes(n);
216
216
  }
217
217
  finish() {
218
- const e = new P();
218
+ const e = new m();
219
219
  return e.writeByte(k(this.elementType)), e.writeVarUInt(this.count), e.writeBytes(this.payload.toUint8Array()), e.toUint8Array();
220
220
  }
221
221
  ensureElementType(e) {
@@ -224,10 +224,10 @@ class K {
224
224
  }
225
225
  }
226
226
  class Q {
227
- constructor(e, r) {
228
- this.keyType = e, this.valueType = r, ht(e);
227
+ constructor(e, s) {
228
+ this.keyType = e, this.valueType = s, ht(e);
229
229
  }
230
- payload = new P();
230
+ payload = new m();
231
231
  count = 0;
232
232
  entryOpen = !1;
233
233
  beginEntry() {
@@ -240,13 +240,13 @@ class Q {
240
240
  finish() {
241
241
  if (this.entryOpen)
242
242
  throw new Error("Dictionary entry not completed");
243
- const e = new P();
243
+ const e = new m();
244
244
  return e.writeByte(k(this.keyType)), e.writeByte(k(this.valueType)), e.writeVarUInt(this.count), e.writeBytes(this.payload.toUint8Array()), e.toUint8Array();
245
245
  }
246
246
  }
247
247
  class ot {
248
- constructor(e, r, s, i) {
249
- this.keyType = e, this.valueType = r, this.payload = s, this.onComplete = i;
248
+ constructor(e, s, r, i) {
249
+ this.keyType = e, this.valueType = s, this.payload = r, this.onComplete = i;
250
250
  }
251
251
  keyWritten = !1;
252
252
  valueWritten = !1;
@@ -298,18 +298,18 @@ class ot {
298
298
  14
299
299
  /* Guid */
300
300
  );
301
- const r = e instanceof E ? e.asBytes() : e;
302
- if (r.length !== 16)
301
+ const s = e instanceof E ? e.asBytes() : e;
302
+ if (s.length !== 16)
303
303
  throw new Error("Guid payload must be 16 bytes");
304
- this.payload.writeBytes(r), this.keyWritten = !0;
304
+ this.payload.writeBytes(s), this.keyWritten = !0;
305
305
  }
306
306
  writeKeyString(e) {
307
307
  this.ensureKeyType(
308
308
  12
309
309
  /* String */
310
310
  );
311
- const r = p.encode(e ?? "");
312
- this.payload.writeVarUInt(r.length), this.payload.writeBytes(r), this.keyWritten = !0;
311
+ const s = V.encode(e ?? "");
312
+ this.payload.writeVarUInt(s.length), this.payload.writeBytes(s), this.keyWritten = !0;
313
313
  }
314
314
  writeKeyBinary(e) {
315
315
  this.ensureKeyType(
@@ -364,10 +364,10 @@ class ot {
364
364
  14
365
365
  /* Guid */
366
366
  );
367
- const r = e instanceof E ? e.asBytes() : e;
368
- if (r.length !== 16)
367
+ const s = e instanceof E ? e.asBytes() : e;
368
+ if (s.length !== 16)
369
369
  throw new Error("Guid payload must be 16 bytes");
370
- this.payload.writeBytes(r), this.valueWritten = !0;
370
+ this.payload.writeBytes(s), this.valueWritten = !0;
371
371
  }
372
372
  writeNullValue() {
373
373
  this.ensureValueType(
@@ -386,36 +386,36 @@ class ot {
386
386
  12
387
387
  /* String */
388
388
  );
389
- const r = p.encode(e ?? "");
390
- this.payload.writeVarUInt(r.length), this.payload.writeBytes(r), this.valueWritten = !0;
389
+ const s = V.encode(e ?? "");
390
+ this.payload.writeVarUInt(s.length), this.payload.writeBytes(s), this.valueWritten = !0;
391
391
  }
392
- writeValueObject(e, r) {
392
+ writeValueObject(e, s) {
393
393
  this.ensureValueType(
394
394
  11
395
395
  /* Object */
396
396
  );
397
- const s = new M(e);
398
- r(s);
399
- const i = s.finish();
397
+ const r = new M(e);
398
+ s(r);
399
+ const i = r.finish();
400
400
  this.payload.writeVarUInt(i.length), this.payload.writeBytes(i), this.valueWritten = !0;
401
401
  }
402
- writeValueArray(e, r) {
402
+ writeValueArray(e, s) {
403
403
  this.ensureValueType(
404
404
  9
405
405
  /* Array */
406
406
  );
407
- const s = new K(e);
408
- r(s);
409
- const i = s.finish();
407
+ const r = new K(e);
408
+ s(r);
409
+ const i = r.finish();
410
410
  this.payload.writeBytes(i), this.valueWritten = !0;
411
411
  }
412
- writeValueDictionary(e, r, s) {
412
+ writeValueDictionary(e, s, r) {
413
413
  this.ensureValueType(
414
414
  10
415
415
  /* Dict */
416
416
  );
417
- const i = new Q(e, r);
418
- s(i);
417
+ const i = new Q(e, s);
418
+ r(i);
419
419
  const n = i.finish();
420
420
  this.payload.writeBytes(n), this.valueWritten = !0;
421
421
  }
@@ -442,14 +442,14 @@ class E {
442
442
  static fromString(e) {
443
443
  if (!e)
444
444
  throw new Error("Guid string is empty");
445
- const r = e.replace(/-/g, "");
446
- if (r.length !== 32)
445
+ const s = e.replace(/-/g, "");
446
+ if (s.length !== 32)
447
447
  throw new Error("Guid string must be 32 hex characters");
448
- const s = new Uint8Array(16), i = E.parseHexSlice(r, 0, 8), n = E.parseHexSlice(r, 8, 4), a = E.parseHexSlice(r, 12, 4);
449
- E.writeUInt32LE(s, 0, i), E.writeUInt16LE(s, 4, n), E.writeUInt16LE(s, 6, a);
448
+ const r = new Uint8Array(16), i = E.parseHexSlice(s, 0, 8), n = E.parseHexSlice(s, 8, 4), a = E.parseHexSlice(s, 12, 4);
449
+ E.writeUInt32LE(r, 0, i), E.writeUInt16LE(r, 4, n), E.writeUInt16LE(r, 6, a);
450
450
  for (let o = 0; o < 8; o++)
451
- s[8 + o] = E.parseHexSlice(r, 16 + o * 2, 2);
452
- return new E(s);
451
+ r[8 + o] = E.parseHexSlice(s, 16 + o * 2, 2);
452
+ return new E(r);
453
453
  }
454
454
  static fromBytes(e) {
455
455
  if (e.length !== 16)
@@ -460,12 +460,12 @@ class E {
460
460
  return new E(new Uint8Array(16));
461
461
  }
462
462
  static createRandom() {
463
- const e = new Uint8Array(16), r = globalThis.crypto;
464
- if (r?.getRandomValues)
465
- r.getRandomValues(e);
463
+ const e = new Uint8Array(16), s = globalThis.crypto;
464
+ if (s?.getRandomValues)
465
+ s.getRandomValues(e);
466
466
  else
467
- for (let s = 0; s < e.length; s++)
468
- e[s] = Math.floor(Math.random() * 256);
467
+ for (let r = 0; r < e.length; r++)
468
+ e[r] = Math.floor(Math.random() * 256);
469
469
  return e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128, new E(e);
470
470
  }
471
471
  toString() {
@@ -481,46 +481,46 @@ class E {
481
481
  asBytes() {
482
482
  return this.bytes.slice();
483
483
  }
484
- static parseHexSlice(e, r, s) {
485
- const i = e.substr(r, s), n = Number.parseInt(i, 16);
484
+ static parseHexSlice(e, s, r) {
485
+ const i = e.substr(s, r), n = Number.parseInt(i, 16);
486
486
  if (Number.isNaN(n))
487
487
  throw new Error("Guid string contains invalid characters");
488
488
  return n >>> 0;
489
489
  }
490
- static writeUInt32LE(e, r, s) {
491
- const i = s >>> 0;
492
- e[r] = i & 255, e[r + 1] = i >>> 8 & 255, e[r + 2] = i >>> 16 & 255, e[r + 3] = i >>> 24 & 255;
490
+ static writeUInt32LE(e, s, r) {
491
+ const i = r >>> 0;
492
+ e[s] = i & 255, e[s + 1] = i >>> 8 & 255, e[s + 2] = i >>> 16 & 255, e[s + 3] = i >>> 24 & 255;
493
493
  }
494
- static writeUInt16LE(e, r, s) {
495
- const i = s & 65535;
496
- e[r] = i & 255, e[r + 1] = i >>> 8 & 255;
494
+ static writeUInt16LE(e, s, r) {
495
+ const i = r & 65535;
496
+ e[s] = i & 255, e[s + 1] = i >>> 8 & 255;
497
497
  }
498
- static readUInt32LE(e, r) {
499
- return (e[r] | e[r + 1] << 8 | e[r + 2] << 16 | e[r + 3] << 24) >>> 0;
498
+ static readUInt32LE(e, s) {
499
+ return (e[s] | e[s + 1] << 8 | e[s + 2] << 16 | e[s + 3] << 24) >>> 0;
500
500
  }
501
- static readUInt16LE(e, r) {
502
- return (e[r] | e[r + 1] << 8) & 65535;
501
+ static readUInt16LE(e, s) {
502
+ return (e[s] | e[s + 1] << 8) & 65535;
503
503
  }
504
- static toHex(e, r) {
505
- return (e >>> 0).toString(16).padStart(r, "0");
504
+ static toHex(e, s) {
505
+ return (e >>> 0).toString(16).padStart(s, "0");
506
506
  }
507
507
  }
508
- class P {
508
+ class m {
509
509
  static INITIAL_CAPACITY = 256;
510
510
  buffer;
511
511
  dataView;
512
512
  length = 0;
513
513
  constructor() {
514
- this.buffer = new Uint8Array(P.INITIAL_CAPACITY), this.dataView = new DataView(this.buffer.buffer);
514
+ this.buffer = new Uint8Array(m.INITIAL_CAPACITY), this.dataView = new DataView(this.buffer.buffer);
515
515
  }
516
516
  ensureCapacity(e) {
517
- const r = this.length + e;
518
- if (r <= this.buffer.length)
517
+ const s = this.length + e;
518
+ if (s <= this.buffer.length)
519
519
  return;
520
- let s = this.buffer.length;
521
- for (; s < r; )
522
- s *= 2;
523
- const i = new Uint8Array(s);
520
+ let r = this.buffer.length;
521
+ for (; r < s; )
522
+ r *= 2;
523
+ const i = new Uint8Array(r);
524
524
  i.set(this.buffer.subarray(0, this.length)), this.buffer = i, this.dataView = new DataView(this.buffer.buffer);
525
525
  }
526
526
  writeByte(e) {
@@ -548,10 +548,10 @@ class P {
548
548
  this.ensureCapacity(8), this.dataView.setBigUint64(this.length, e, !0), this.length += 8;
549
549
  }
550
550
  writeVarUInt(e) {
551
- let r = e >>> 0;
552
- for (; r >= 128; )
553
- this.ensureCapacity(1), this.buffer[this.length++] = r & 127 | 128, r >>>= 7;
554
- this.ensureCapacity(1), this.buffer[this.length++] = r & 127;
551
+ let s = e >>> 0;
552
+ for (; s >= 128; )
553
+ this.ensureCapacity(1), this.buffer[this.length++] = s & 127 | 128, s >>>= 7;
554
+ this.ensureCapacity(1), this.buffer[this.length++] = s & 127;
555
555
  }
556
556
  toUint8Array() {
557
557
  return this.buffer.slice(0, this.length);
@@ -575,7 +575,7 @@ function j(t) {
575
575
  function Et(t) {
576
576
  return t instanceof Uint8Array ? t : new Uint8Array(t);
577
577
  }
578
- var U = /* @__PURE__ */ ((t) => (t[t.None = 0] = "None", t[t.WebSocket = 1] = "WebSocket", t[t.WebSocketProxy = 2] = "WebSocketProxy", t[t.WebTransport = 4] = "WebTransport", t[t.WebTransportProxy = 8] = "WebTransportProxy", t[t.Tcp = 16] = "Tcp", t[t.TcpProxy = 32] = "TcpProxy", t[t.Https = 64] = "Https", t[t.WebRTC = 128] = "WebRTC", t[t.TcpTls = 256] = "TcpTls", t))(U || {}), m = /* @__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.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.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_OPTIMISTIC_CLIENT_CALLS = 1048626] = "ACTION_OPTIMISTIC_CLIENT_CALLS", 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.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.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.CONSTANT_GROUP_MASK = 2147418112] = "CONSTANT_GROUP_MASK", t))(m || {});
578
+ var R = /* @__PURE__ */ ((t) => (t[t.None = 0] = "None", t[t.WebSocket = 1] = "WebSocket", t[t.WebSocketProxy = 2] = "WebSocketProxy", t[t.WebTransport = 4] = "WebTransport", t[t.WebTransportProxy = 8] = "WebTransportProxy", t[t.Tcp = 16] = "Tcp", t[t.TcpProxy = 32] = "TcpProxy", t[t.Https = 64] = "Https", t[t.WebRTC = 128] = "WebRTC", t[t.TcpTls = 256] = "TcpTls", t))(R || {}), d = /* @__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.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.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_OPTIMISTIC_CLIENT_CALLS = 1048626] = "ACTION_OPTIMISTIC_CLIENT_CALLS", 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.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.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.CONSTANT_GROUP_MASK = 2147418112] = "CONSTANT_GROUP_MASK", t))(d || {});
579
579
  const J = 1, _t = 131074;
580
580
  function Z(t) {
581
581
  return {};
@@ -583,18 +583,18 @@ function Z(t) {
583
583
  function Tt(t) {
584
584
  return new M(J).finish();
585
585
  }
586
- function tt(t, e, r) {
587
- const s = Tt();
588
- return it(_t, s, J, e);
586
+ function tt(t, e, s) {
587
+ const r = Tt();
588
+ return it(_t, r, J, e);
589
589
  }
590
590
  class et extends Error {
591
- constructor(e, r) {
592
- super(e), this.cause = r, this.name = "ConnectionError";
591
+ constructor(e, s) {
592
+ super(e), this.cause = s, this.name = "ConnectionError";
593
593
  }
594
594
  }
595
595
  class L extends et {
596
- constructor(e, r) {
597
- super(e, r), this.name = "TransportError";
596
+ constructor(e, s) {
597
+ super(e, s), this.name = "TransportError";
598
598
  }
599
599
  }
600
600
  class z extends L {
@@ -602,20 +602,20 @@ class z extends L {
602
602
  super(`No keepalive received within ${e}ms`), this.name = "KeepaliveTimeoutError";
603
603
  }
604
604
  }
605
- class It extends et {
605
+ class ct extends et {
606
606
  constructor(e) {
607
607
  super(`Maximum reconnection attempts (${e}) exceeded`), this.name = "MaxRetriesExceededError";
608
608
  }
609
609
  }
610
- function ct(t, e) {
611
- return new Promise((r, s) => {
610
+ function It(t, e) {
611
+ return new Promise((s, r) => {
612
612
  const i = () => {
613
- clearTimeout(n), s(new Error("Aborted"));
613
+ clearTimeout(n), r(new Error("Aborted"));
614
614
  }, n = setTimeout(() => {
615
- e?.removeEventListener("abort", i), r();
615
+ e?.removeEventListener("abort", i), s();
616
616
  }, t);
617
617
  if (e?.aborted) {
618
- clearTimeout(n), s(new Error("Aborted"));
618
+ clearTimeout(n), r(new Error("Aborted"));
619
619
  return;
620
620
  }
621
621
  e?.addEventListener("abort", i, { once: !0 });
@@ -629,17 +629,17 @@ const At = /* @__PURE__ */ new Map(), Ct = {
629
629
  3: "ERROR",
630
630
  4: "NONE"
631
631
  };
632
- function Nt(t, e) {
632
+ function ft(t, e) {
633
633
  return `[${t}] ${e}`;
634
634
  }
635
- function G(t, e, r, s) {
635
+ function p(t, e, s, r) {
636
636
  const i = (/* @__PURE__ */ new Date()).toISOString(), n = Ct[t], a = {
637
637
  timestamp: i,
638
638
  level: t,
639
639
  levelName: n,
640
640
  component: e,
641
- message: r,
642
- args: s
641
+ message: s,
642
+ args: r
643
643
  };
644
644
  for (const [o, l] of At) {
645
645
  const h = l?.minLevel ?? 2;
@@ -650,40 +650,40 @@ function G(t, e, r, s) {
650
650
  }
651
651
  }
652
652
  if (ut <= t) {
653
- const o = Nt(e, r);
653
+ const o = ft(e, s);
654
654
  switch (t) {
655
655
  case 0:
656
- console.debug(o, ...s);
656
+ console.debug(o, ...r);
657
657
  break;
658
658
  case 1:
659
- console.info(o, ...s);
659
+ console.info(o, ...r);
660
660
  break;
661
661
  case 2:
662
- console.warn(o, ...s);
662
+ console.warn(o, ...r);
663
663
  break;
664
664
  case 3:
665
- console.error(o, ...s);
665
+ console.error(o, ...r);
666
666
  break;
667
667
  }
668
668
  }
669
669
  }
670
670
  function F(t) {
671
671
  return {
672
- debug(e, ...r) {
673
- G(0, t, e, r);
672
+ debug(e, ...s) {
673
+ p(0, t, e, s);
674
674
  },
675
- info(e, ...r) {
676
- G(1, t, e, r);
675
+ info(e, ...s) {
676
+ p(1, t, e, s);
677
677
  },
678
- warn(e, ...r) {
679
- G(2, t, e, r);
678
+ warn(e, ...s) {
679
+ p(2, t, e, s);
680
680
  },
681
- error(e, ...r) {
682
- G(3, t, e, r);
681
+ error(e, ...s) {
682
+ p(3, t, e, s);
683
683
  }
684
684
  };
685
685
  }
686
- const V = F("WebSocketTransport"), ft = 1e4;
686
+ const G = F("WebSocketTransport"), Nt = 1e4;
687
687
  class Rt {
688
688
  ws = null;
689
689
  keepaliveTimeout = null;
@@ -699,8 +699,8 @@ class Rt {
699
699
  get isConnected() {
700
700
  return this.ws?.readyState === WebSocket.OPEN;
701
701
  }
702
- async connect(e, r) {
703
- return this.isClosed = !1, new Promise((s, i) => {
702
+ async connect(e, s) {
703
+ return this.isClosed = !1, new Promise((r, i) => {
704
704
  try {
705
705
  this.ws = new WebSocket(e), this.ws.binaryType = "arraybuffer";
706
706
  } catch (h) {
@@ -712,11 +712,11 @@ class Rt {
712
712
  clearTimeout(l), this.ws && (this.ws.onopen = null, this.ws.onerror = null, this.ws.onclose = null, this.ws.onmessage = null);
713
713
  }, l = setTimeout(() => {
714
714
  a || (a = !0, o(), this.ws?.close(), i(new L("WebSocket connection timeout")));
715
- }, ft);
715
+ }, Nt);
716
716
  this.ws.onopen = () => {
717
- n = !0, clearTimeout(l), this.ws.send(r), this.resetKeepaliveTimeout(), a || (a = !0, s());
717
+ n = !0, clearTimeout(l), this.ws.send(s), this.resetKeepaliveTimeout(), a || (a = !0, r());
718
718
  }, this.ws.onerror = () => {
719
- clearTimeout(l), V.error("WebSocket error"), a || (a = !0, o(), i(new L("WebSocket connection failed")));
719
+ clearTimeout(l), G.error("WebSocket error"), a || (a = !0, o(), i(new L("WebSocket connection failed")));
720
720
  }, this.ws.onclose = (h) => {
721
721
  if (this.clearKeepaliveTimeout(), !n && !a) {
722
722
  a = !0, o(), i(new L("WebSocket connection closed before opening"));
@@ -724,15 +724,15 @@ class Rt {
724
724
  }
725
725
  if (this.isClosed)
726
726
  return;
727
- const f = h.wasClean && (h.code === 1e3 || h.code === 1001), _ = h.code === 1e3 || h.code === 1001, d = h.reason || `code=${h.code}`;
728
- this.callbacks.onClose(d, f, _);
727
+ const N = h.wasClean && (h.code === 1e3 || h.code === 1001), _ = h.code === 1e3 || h.code === 1001, P = h.reason || `code=${h.code}`;
728
+ this.callbacks.onClose(P, N, _);
729
729
  }, this.ws.onmessage = (h) => {
730
730
  this.handleProtocolMessage(new Uint8Array(h.data));
731
731
  };
732
732
  });
733
733
  }
734
734
  send(e) {
735
- this.ws?.readyState === WebSocket.OPEN ? this.ws.send(e) : V.warn("Cannot send: WebSocket not connected");
735
+ this.ws?.readyState === WebSocket.OPEN ? this.ws.send(e) : G.warn("Cannot send: WebSocket not connected");
736
736
  }
737
737
  close() {
738
738
  this.isClosed = !0, this.clearKeepaliveTimeout(), this.ws && (this.ws.close(1e3, "Client closing"), this.ws = null);
@@ -745,29 +745,29 @@ class Rt {
745
745
  }
746
746
  handleProtocolMessage(e) {
747
747
  try {
748
- if (X(e).opcode === m.KEEPALIVE_REQUEST) {
748
+ if (X(e).opcode === d.KEEPALIVE_REQUEST) {
749
749
  this.send(this.getKeepaliveResponse()), this.resetKeepaliveTimeout();
750
750
  return;
751
751
  }
752
752
  this.resetKeepaliveTimeout(), this.callbacks.onProtocolMessage(e);
753
- } catch (r) {
754
- V.error("Failed to process protocol message:", r), this.callbacks.onError(r instanceof Error ? r : new Error(String(r)));
753
+ } catch (s) {
754
+ G.error("Failed to process protocol message:", s), this.callbacks.onError(s instanceof Error ? s : new Error(String(s)));
755
755
  }
756
756
  }
757
757
  resetKeepaliveTimeout() {
758
758
  this.clearKeepaliveTimeout(), this.keepaliveTimeout = setTimeout(() => {
759
- V.error(`No keepalive received in ${this.keepaliveTimeoutMs}ms, closing connection`), this.callbacks.onError(new z(this.keepaliveTimeoutMs)), this.close();
759
+ G.error(`No keepalive received in ${this.keepaliveTimeoutMs}ms, closing connection`), this.callbacks.onError(new z(this.keepaliveTimeoutMs)), this.close();
760
760
  }, this.keepaliveTimeoutMs);
761
761
  }
762
762
  clearKeepaliveTimeout() {
763
763
  this.keepaliveTimeout && (clearTimeout(this.keepaliveTimeout), this.keepaliveTimeout = null);
764
764
  }
765
765
  }
766
- const R = F("WebTransportTransport"), q = 4, yt = 65536;
767
- function rt() {
766
+ const y = F("WebTransportTransport"), q = 4, yt = 65536;
767
+ function st() {
768
768
  return typeof WebTransport < "u";
769
769
  }
770
- class Ut {
770
+ class St {
771
771
  transport = null;
772
772
  stream = null;
773
773
  reader = null;
@@ -793,27 +793,27 @@ class Ut {
793
793
  get isConnected() {
794
794
  return this.transport !== null && this.writer !== null;
795
795
  }
796
- async connect(e, r) {
797
- if (!rt())
796
+ async connect(e, s) {
797
+ if (!st())
798
798
  throw new L("WebTransport is not supported in this browser");
799
799
  this.isClosed = !1;
800
800
  try {
801
- this.transport = new WebTransport(e), await this.transport.ready, R.debug(`Connected to WebTransport entrypoint: ${e}`), this.transport.closed.then(() => {
801
+ this.transport = new WebTransport(e), await this.transport.ready, y.debug(`Connected to WebTransport entrypoint: ${e}`), this.transport.closed.then(() => {
802
802
  this.handleClose("Connection closed", !0);
803
- }).catch((s) => {
804
- R.error("WebTransport connection closed with error:", s), this.handleClose(s.message || "Connection error", !1);
805
- }), this.stream = await this.transport.createBidirectionalStream(), this.reader = this.stream.readable.getReader(), this.writer = this.stream.writable.getWriter(), await this.writer.write(r), this.resetKeepaliveTimeout(), this.startReadLoop();
806
- } catch (s) {
807
- throw this.cleanup(), new L(`Failed to connect WebTransport: ${s}`, s instanceof Error ? s : void 0);
803
+ }).catch((r) => {
804
+ y.error("WebTransport connection closed with error:", r), this.handleClose(r.message || "Connection error", !1);
805
+ }), this.stream = await this.transport.createBidirectionalStream(), this.reader = this.stream.readable.getReader(), this.writer = this.stream.writable.getWriter(), await this.writer.write(s), this.resetKeepaliveTimeout(), this.startReadLoop();
806
+ } catch (r) {
807
+ throw this.cleanup(), new L(`Failed to connect WebTransport: ${r}`, r instanceof Error ? r : void 0);
808
808
  }
809
809
  }
810
810
  send(e) {
811
811
  if (!this.writer) {
812
- R.warn("Cannot send: WebTransport not connected");
812
+ y.warn("Cannot send: WebTransport not connected");
813
813
  return;
814
814
  }
815
- this.writer.write(e).catch((r) => {
816
- R.error("Failed to send protocol message:", r), this.callbacks.onError(r instanceof Error ? r : new Error(String(r)));
815
+ this.writer.write(e).catch((s) => {
816
+ y.error("Failed to send protocol message:", s), this.callbacks.onError(s instanceof Error ? s : new Error(String(s)));
817
817
  });
818
818
  }
819
819
  close() {
@@ -827,14 +827,14 @@ class Ut {
827
827
  this.readLoopActive = !0;
828
828
  try {
829
829
  for (; this.readLoopActive && this.reader; ) {
830
- const { value: e, done: r } = await this.reader.read();
831
- if (r)
830
+ const { value: e, done: s } = await this.reader.read();
831
+ if (s)
832
832
  break;
833
833
  e && (this.appendToBuffer(e), this.processBufferedMessages());
834
834
  }
835
835
  this.readLoopActive && this.handleClose("Stream ended", !1);
836
836
  } catch (e) {
837
- this.readLoopActive && (R.error("Read loop error:", e), this.callbacks.onError(e instanceof Error ? e : new Error(String(e))));
837
+ this.readLoopActive && (y.error("Read loop error:", e), this.callbacks.onError(e instanceof Error ? e : new Error(String(e))));
838
838
  }
839
839
  }
840
840
  }
@@ -843,13 +843,13 @@ class Ut {
843
843
  * Compacts when offset exceeds half capacity and data is sparse.
844
844
  */
845
845
  appendToBuffer(e) {
846
- const r = this.receiveBufferLength + e.length, s = this.receiveBufferOffset + this.receiveBufferLength;
847
- if (s + e.length > this.receiveBuffer.length)
848
- if (r > this.receiveBuffer.length) {
849
- const i = Math.max(r, this.receiveBuffer.length * 2), n = new Uint8Array(i);
850
- n.set(this.receiveBuffer.subarray(this.receiveBufferOffset, s)), this.receiveBuffer = n, this.receiveBufferOffset = 0, this.receiveDataViewBuffer = null;
846
+ const s = this.receiveBufferLength + e.length, r = this.receiveBufferOffset + this.receiveBufferLength;
847
+ if (r + e.length > this.receiveBuffer.length)
848
+ if (s > this.receiveBuffer.length) {
849
+ const i = Math.max(s, this.receiveBuffer.length * 2), n = new Uint8Array(i);
850
+ n.set(this.receiveBuffer.subarray(this.receiveBufferOffset, r)), this.receiveBuffer = n, this.receiveBufferOffset = 0, this.receiveDataViewBuffer = null;
851
851
  } else
852
- this.receiveBuffer.copyWithin(0, this.receiveBufferOffset, s), this.receiveBufferOffset = 0;
852
+ this.receiveBuffer.copyWithin(0, this.receiveBufferOffset, r), this.receiveBufferOffset = 0;
853
853
  this.receiveBuffer.set(e, this.receiveBufferOffset + this.receiveBufferLength), this.receiveBufferLength += e.length;
854
854
  }
855
855
  /**
@@ -873,15 +873,15 @@ class Ut {
873
873
  processBufferedMessages() {
874
874
  const e = this.getReceiveDataView();
875
875
  for (; this.receiveBufferLength >= q; ) {
876
- const r = e.getUint32(this.receiveBufferOffset, !0);
877
- if (r < q) {
878
- R.error(`Invalid message length: ${r}`), this.callbacks.onError(new Error(`Invalid protocol message length: ${r}`)), this.receiveBufferOffset = 0, this.receiveBufferLength = 0;
876
+ const s = e.getUint32(this.receiveBufferOffset, !0);
877
+ if (s < q) {
878
+ y.error(`Invalid message length: ${s}`), this.callbacks.onError(new Error(`Invalid protocol message length: ${s}`)), this.receiveBufferOffset = 0, this.receiveBufferLength = 0;
879
879
  return;
880
880
  }
881
- if (this.receiveBufferLength < r)
881
+ if (this.receiveBufferLength < s)
882
882
  return;
883
- const s = this.receiveBuffer.subarray(this.receiveBufferOffset, this.receiveBufferOffset + r);
884
- this.receiveBufferOffset += r, this.receiveBufferLength -= r, this.handleProtocolMessage(s);
883
+ const r = this.receiveBuffer.subarray(this.receiveBufferOffset, this.receiveBufferOffset + s);
884
+ this.receiveBufferOffset += s, this.receiveBufferLength -= s, this.handleProtocolMessage(r);
885
885
  }
886
886
  this.receiveBufferLength === 0 && (this.receiveBufferOffset = 0);
887
887
  }
@@ -890,27 +890,27 @@ class Ut {
890
890
  */
891
891
  handleProtocolMessage(e) {
892
892
  try {
893
- if (X(e).opcode === m.KEEPALIVE_REQUEST) {
893
+ if (X(e).opcode === d.KEEPALIVE_REQUEST) {
894
894
  this.send(this.getKeepaliveResponse()), this.resetKeepaliveTimeout();
895
895
  return;
896
896
  }
897
897
  this.resetKeepaliveTimeout(), this.callbacks.onProtocolMessage(e);
898
- } catch (r) {
899
- R.error("Failed to process protocol message:", r), this.callbacks.onError(r instanceof Error ? r : new Error(String(r)));
898
+ } catch (s) {
899
+ y.error("Failed to process protocol message:", s), this.callbacks.onError(s instanceof Error ? s : new Error(String(s)));
900
900
  }
901
901
  }
902
902
  /**
903
903
  * Handle connection close.
904
904
  */
905
- handleClose(e, r) {
906
- this.isClosed || (this.isClosed = !0, this.clearKeepaliveTimeout(), this.readLoopActive = !1, this.cleanup(), this.callbacks.onClose(e, r, !1));
905
+ handleClose(e, s) {
906
+ this.isClosed || (this.isClosed = !0, this.clearKeepaliveTimeout(), this.readLoopActive = !1, this.cleanup(), this.callbacks.onClose(e, s, !1));
907
907
  }
908
908
  /**
909
909
  * Reset the keepalive timeout.
910
910
  */
911
911
  resetKeepaliveTimeout() {
912
912
  this.clearKeepaliveTimeout(), this.keepaliveTimeout = setTimeout(() => {
913
- R.error(`No keepalive received in ${this.keepaliveTimeoutMs}ms, closing connection`), this.callbacks.onError(new z(this.keepaliveTimeoutMs)), this.close();
913
+ y.error(`No keepalive received in ${this.keepaliveTimeoutMs}ms, closing connection`), this.callbacks.onError(new z(this.keepaliveTimeoutMs)), this.close();
914
914
  }, this.keepaliveTimeoutMs);
915
915
  }
916
916
  /**
@@ -933,7 +933,7 @@ class Ut {
933
933
  }
934
934
  }
935
935
  const D = F("Channel");
936
- class St {
936
+ class Ut {
937
937
  state = "disconnected";
938
938
  transport = null;
939
939
  config;
@@ -984,6 +984,13 @@ class St {
984
984
  disconnect() {
985
985
  this.transport && (this.transport.close(), this.transport = null), this.setState("disconnected");
986
986
  }
987
+ /**
988
+ * Check transport health and trigger close if the connection is dead.
989
+ * Used after tab resume to detect WebSockets closed by the OS while suspended.
990
+ */
991
+ checkHealth() {
992
+ this.state === "connected" && this.transport && !this.transport.isConnected && this.handleClose("Transport dead after tab resume", !1);
993
+ }
987
994
  /**
988
995
  * Send a protocol message through the channel.
989
996
  */
@@ -998,28 +1005,28 @@ class St {
998
1005
  * Connect the transport to the entrypoint.
999
1006
  */
1000
1007
  async connectTransport() {
1001
- const e = this.entrypoint, r = {
1008
+ const e = this.entrypoint, s = {
1002
1009
  sessionId: this.config.sessionId,
1003
1010
  keepaliveTimeoutMs: this.config.keepaliveTimeoutMs,
1004
1011
  callbacks: {
1005
- onProtocolMessage: (s) => this.handleProtocolMessage(s),
1006
- onClose: (s, i, n) => this.handleClose(s, i, n),
1007
- onError: (s) => this.handleError(s)
1012
+ onProtocolMessage: (r) => this.handleProtocolMessage(r),
1013
+ onClose: (r, i, n) => this.handleClose(r, i, n),
1014
+ onError: (r) => this.handleError(r)
1008
1015
  }
1009
1016
  };
1010
1017
  switch (e.Type) {
1011
- case U.WebSocket:
1012
- case U.WebSocketProxy:
1013
- this.transport = new Rt(r);
1018
+ case R.WebSocket:
1019
+ case R.WebSocketProxy:
1020
+ this.transport = new Rt(s);
1014
1021
  break;
1015
- case U.WebTransport:
1016
- case U.WebTransportProxy:
1017
- if (!rt())
1022
+ case R.WebTransport:
1023
+ case R.WebTransportProxy:
1024
+ if (!st())
1018
1025
  throw new Error("WebTransport is not supported in this browser");
1019
- this.transport = new Ut(r);
1026
+ this.transport = new St(s);
1020
1027
  break;
1021
1028
  default:
1022
- throw new Error(`Unsupported entrypoint type: ${U[e.Type]}`);
1029
+ throw new Error(`Unsupported entrypoint type: ${R[e.Type]}`);
1023
1030
  }
1024
1031
  await this.transport.connect(e.Uri, e.AuthTicket);
1025
1032
  }
@@ -1028,21 +1035,21 @@ class St {
1028
1035
  */
1029
1036
  handleProtocolMessage(e) {
1030
1037
  try {
1031
- const r = e;
1032
- if ($(r) === m.CORE_ON_SERVER_STOPPING) {
1038
+ const s = e;
1039
+ if ($(s) === d.CORE_ON_SERVER_STOPPING) {
1033
1040
  D.debug("Received server stopping message"), this.setState("stopped"), this.transport?.close();
1034
1041
  return;
1035
1042
  }
1036
- this.config.onProtocolMessage?.(r);
1037
- } catch (r) {
1038
- D.error("Failed to handle protocol message:", r), this.config.onError?.(r instanceof Error ? r : new Error(String(r)));
1043
+ this.config.onProtocolMessage?.(s);
1044
+ } catch (s) {
1045
+ D.error("Failed to handle protocol message:", s), this.config.onError?.(s instanceof Error ? s : new Error(String(s)));
1039
1046
  }
1040
1047
  }
1041
1048
  /**
1042
1049
  * Handle transport close.
1043
1050
  */
1044
- handleClose(e, r, s) {
1045
- this.transport = null, this.config.onClose?.(e, r, s);
1051
+ handleClose(e, s, r) {
1052
+ this.transport = null, this.config.onClose?.(e, s, r);
1046
1053
  }
1047
1054
  /**
1048
1055
  * Handle transport error.
@@ -1057,7 +1064,7 @@ class St {
1057
1064
  this.state !== e && (this.state = e, this.config.onStateChange?.(e));
1058
1065
  }
1059
1066
  }
1060
- const I = F("ChannelManager");
1067
+ const T = F("ChannelManager");
1061
1068
  class wt {
1062
1069
  channels = /* @__PURE__ */ new Map();
1063
1070
  // keyed by opcode group
@@ -1068,6 +1075,8 @@ class wt {
1068
1075
  shouldReconnect = !0;
1069
1076
  entrypoints = [];
1070
1077
  abortController = null;
1078
+ demotedTypes = /* @__PURE__ */ new Set();
1079
+ connectionStable = !1;
1071
1080
  config;
1072
1081
  constructor(e) {
1073
1082
  this.config = e;
@@ -1090,7 +1099,7 @@ class wt {
1090
1099
  async connect(e) {
1091
1100
  if (this.state !== "idle" && this.state !== "offline")
1092
1101
  throw new Error(`Cannot connect: already in state ${this.state}`);
1093
- this.entrypoints = e, this.shouldReconnect = !0, this.reconnectAttempts = 0, this.abortController = new AbortController(), await this.connectInternal();
1102
+ this.entrypoints = e, this.shouldReconnect = !0, this.reconnectAttempts = 0, this.demotedTypes.clear(), this.connectionStable = !1, this.abortController = new AbortController(), await this.connectInternal();
1094
1103
  }
1095
1104
  /**
1096
1105
  * Disconnect all channels.
@@ -1103,20 +1112,31 @@ class wt {
1103
1112
  * The opcode group is extracted from the message automatically.
1104
1113
  */
1105
1114
  sendProtocolMessage(e) {
1106
- const r = W(e);
1107
- for (const [s, i] of this.channels)
1108
- if (s & r) {
1115
+ const s = W(e);
1116
+ for (const [r, i] of this.channels)
1117
+ if (r & s) {
1109
1118
  i.send(e);
1110
1119
  return;
1111
1120
  }
1112
- I.warn("No channel found for message");
1121
+ T.warn("No channel found for message");
1113
1122
  }
1114
1123
  /**
1115
1124
  * Send a protocol message to all channels (for broadcast messages).
1116
1125
  */
1117
1126
  sendToAll(e) {
1118
- for (const r of this.channels.values())
1119
- r.send(e);
1127
+ for (const s of this.channels.values())
1128
+ s.send(e);
1129
+ }
1130
+ /**
1131
+ * Check health of all channels.
1132
+ * Used after tab resume to detect WebSockets closed by the OS while suspended.
1133
+ * Only checks when connected — non-sudden disconnects (SDK-initiated or server
1134
+ * stopping) clear the channels and transition to idle/stopped before this runs.
1135
+ */
1136
+ checkHealth() {
1137
+ if (this.state === "connected")
1138
+ for (const e of this.channels.values())
1139
+ e.checkHealth();
1120
1140
  }
1121
1141
  /**
1122
1142
  * Internal connect implementation.
@@ -1124,39 +1144,43 @@ class wt {
1124
1144
  */
1125
1145
  async connectInternal(e = !1) {
1126
1146
  this.setState("connecting");
1127
- let r = this.entrypoints;
1147
+ let s = this.entrypoints;
1128
1148
  if (this.config.webRtcEnabled) {
1129
- I.debug(`WebRTC enabled, filtering entrypoints (total: ${this.entrypoints.length})`);
1149
+ T.debug(`WebRTC enabled, filtering entrypoints (total: ${this.entrypoints.length})`);
1130
1150
  for (const a of this.entrypoints)
1131
- I.debug(` Entrypoint: type=${a.Type} fromServer=0x${a.OpcodeGroupsFromServer.toString(16)} toServer=0x${a.OpcodeGroupsToServer.toString(16)} uri=${a.Uri}`);
1132
- const n = m.GROUP_AUDIO | m.GROUP_VIDEO;
1133
- r = this.entrypoints.filter((a) => {
1134
- if (a.Type === U.WebRTC)
1135
- return I.debug(` Filtered out WebRTC entrypoint (type=${a.Type})`), !1;
1151
+ T.debug(` Entrypoint: type=${a.Type} fromServer=0x${a.OpcodeGroupsFromServer.toString(16)} toServer=0x${a.OpcodeGroupsToServer.toString(16)} uri=${a.Uri}`);
1152
+ const n = d.GROUP_AUDIO | d.GROUP_VIDEO;
1153
+ s = this.entrypoints.filter((a) => {
1154
+ if (a.Type === R.WebRTC)
1155
+ return T.debug(` Filtered out WebRTC entrypoint (type=${a.Type})`), !1;
1136
1156
  const o = a.OpcodeGroupsFromServer | a.OpcodeGroupsToServer;
1137
- return (o & ~n) === 0 ? (I.debug(` Filtered out audio/video-only entrypoint (type=${a.Type}, groups=0x${o.toString(16)})`), !1) : !0;
1138
- }), I.debug(`After filtering: ${r.length} entrypoints remain for WS/WT channels`);
1157
+ return (o & ~n) === 0 ? (T.debug(` Filtered out audio/video-only entrypoint (type=${a.Type}, groups=0x${o.toString(16)})`), !1) : !0;
1158
+ }), T.debug(`After filtering: ${s.length} entrypoints remain for WS/WT channels`);
1139
1159
  }
1140
- const s = this.groupByType(r);
1141
- if (s.size === 0)
1160
+ const r = this.groupByType(s);
1161
+ if (r.size === 0)
1142
1162
  throw this.setState("offline"), new Error("No entrypoints available");
1143
1163
  let i;
1144
1164
  if (this.config.orderedEndpointTypes && this.config.orderedEndpointTypes.length > 0) {
1145
- const n = new Set(s.keys());
1165
+ const n = new Set(r.keys());
1146
1166
  i = this.config.orderedEndpointTypes.filter((a) => n.has(a));
1147
- } else this.config.endpointSelector ? i = this.config.endpointSelector.getOrderedTypes(s) : i = Array.from(s.keys());
1167
+ } else this.config.endpointSelector ? i = this.config.endpointSelector.getOrderedTypes(r) : i = Array.from(r.keys());
1168
+ if (this.demotedTypes.size > 0) {
1169
+ const n = i.filter((o) => !this.demotedTypes.has(o)), a = i.filter((o) => this.demotedTypes.has(o));
1170
+ i = [...n, ...a];
1171
+ }
1148
1172
  for (const n of i) {
1149
1173
  if (!this.shouldReconnect)
1150
1174
  return;
1151
- const a = s.get(n);
1175
+ const a = r.get(n);
1152
1176
  try {
1153
1177
  await this.connectAllChannels(a), this.config.endpointSelector?.rememberWorkingType(n), this.config.onRememberWorkingType?.(n), this.activeType = n, this.startStabilityTimer(), this.setState("connected");
1154
1178
  return;
1155
1179
  } catch (o) {
1156
- I.warn(`Failed to connect using ${U[n]}: ${o}`), this.disconnectAll();
1180
+ T.warn(`Failed to connect using ${R[n]}: ${o}`), this.disconnectAll();
1157
1181
  }
1158
1182
  }
1159
- throw I.error("All endpoint types failed"), e || this.setState("offline"), new Error("Failed to connect using any endpoint type");
1183
+ throw T.error("All endpoint types failed"), e || this.setState("offline"), new Error("Failed to connect using any endpoint type");
1160
1184
  }
1161
1185
  /**
1162
1186
  * Connect all channels for a given endpoint type in parallel.
@@ -1164,82 +1188,81 @@ class wt {
1164
1188
  async connectAllChannels(e) {
1165
1189
  if (e.length === 0)
1166
1190
  throw new Error("No entrypoints to connect");
1167
- const s = (await Promise.allSettled(e.map((i) => this.connectChannel(i)))).filter((i) => i.status === "rejected");
1168
- if (s.length > 0) {
1169
- const i = s.map((n) => n.reason);
1170
- throw new Error(`${s.length} channel(s) failed: ${i.join(", ")}`);
1191
+ const r = (await Promise.allSettled(e.map((i) => this.connectChannel(i)))).filter((i) => i.status === "rejected");
1192
+ if (r.length > 0) {
1193
+ const i = r.map((n) => n.reason);
1194
+ throw new Error(`${r.length} channel(s) failed: ${i.join(", ")}`);
1171
1195
  }
1172
1196
  }
1173
1197
  /**
1174
1198
  * Connect a single channel.
1175
1199
  */
1176
1200
  async connectChannel(e) {
1177
- const r = new St({
1201
+ const s = new Ut({
1178
1202
  entrypoint: e,
1179
1203
  sessionId: this.config.sessionId,
1180
1204
  keepaliveTimeoutMs: this.config.keepaliveTimeoutMs,
1181
- onProtocolMessage: (s) => {
1182
- this.config.onProtocolMessage?.(s);
1205
+ onProtocolMessage: (r) => {
1206
+ this.config.onProtocolMessage?.(r);
1183
1207
  },
1184
- onStateChange: (s) => {
1185
- this.handleChannelStateChange(e.OpcodeGroupsFromServer, s);
1208
+ onStateChange: (r) => {
1209
+ this.handleChannelStateChange(e.OpcodeGroupsFromServer, r);
1186
1210
  },
1187
- onClose: (s, i, n) => {
1188
- this.handleChannelClose(e.OpcodeGroupsFromServer, s, i, n);
1211
+ onClose: (r, i, n) => {
1212
+ this.handleChannelClose(e.OpcodeGroupsFromServer, r, i, n);
1189
1213
  },
1190
- onError: (s) => {
1191
- this.config.onError?.(s);
1214
+ onError: (r) => {
1215
+ this.config.onError?.(r);
1192
1216
  }
1193
1217
  });
1194
- await r.connect(), this.channels.set(e.OpcodeGroupsFromServer, r);
1218
+ await s.connect(), this.channels.set(e.OpcodeGroupsFromServer, s);
1195
1219
  }
1196
1220
  /**
1197
1221
  * Group entrypoints by type.
1198
1222
  */
1199
1223
  groupByType(e) {
1200
- const r = /* @__PURE__ */ new Map();
1201
- for (const s of e) {
1202
- const i = r.get(s.Type) ?? [];
1203
- i.push(s), r.set(s.Type, i);
1224
+ const s = /* @__PURE__ */ new Map();
1225
+ for (const r of e) {
1226
+ const i = s.get(r.Type) ?? [];
1227
+ i.push(r), s.set(r.Type, i);
1204
1228
  }
1205
- return r;
1229
+ return s;
1206
1230
  }
1207
1231
  /**
1208
1232
  * Handle channel state change.
1209
1233
  */
1210
- handleChannelStateChange(e, r) {
1211
- r === "stopped" && (this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped"));
1234
+ handleChannelStateChange(e, s) {
1235
+ s === "stopped" && (this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped"));
1212
1236
  }
1213
1237
  /**
1214
1238
  * Handle channel close.
1215
1239
  */
1216
- handleChannelClose(e, r, s, i) {
1240
+ handleChannelClose(e, s, r, i) {
1217
1241
  if (!(this.state === "idle" || this.state === "stopped" || this.state === "offline") && this.channels.has(e)) {
1218
1242
  if (i) {
1219
- I.debug("Channel closed by server"), this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped");
1243
+ T.debug("Channel closed by server"), this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped");
1220
1244
  return;
1221
1245
  }
1222
- this.state === "connected" && (I.error("Channel closed unexpectedly, attempting reconnect"), this.disconnectAll(), this.attemptReconnect());
1246
+ this.state === "connected" && (!this.connectionStable && this.activeType !== null && (T.warn(`Connection unstable with ${R[this.activeType]}, demoting`), this.demotedTypes.add(this.activeType)), T.error("Channel closed unexpectedly, attempting reconnect"), this.disconnectAll(), this.attemptReconnect());
1223
1247
  }
1224
1248
  }
1225
1249
  /**
1226
- * Attempt to reconnect with exponential backoff.
1250
+ * Attempt to reconnect with fixed-interval retry.
1251
+ * First attempt is immediate, subsequent attempts wait reconnectBackoffMs.
1227
1252
  */
1228
1253
  async attemptReconnect() {
1229
- if (!this.shouldReconnect)
1230
- return;
1231
- if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
1232
- I.error(`Max reconnect attempts (${this.config.maxReconnectAttempts}) reached`), this.setState("offline"), this.config.onError?.(new It(this.config.maxReconnectAttempts));
1233
- return;
1234
- }
1235
- this.setState("reconnecting"), this.reconnectAttempts++;
1236
- const e = this.config.reconnectBackoffMs * Math.pow(2, this.reconnectAttempts - 1);
1237
- if (I.info(`Reconnecting in ${e}ms (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`), await ct(e, this.abortController?.signal), !!this.shouldReconnect)
1238
- try {
1239
- await this.connectInternal(!0);
1240
- } catch (r) {
1241
- I.error("Reconnect failed:", r), await this.attemptReconnect();
1254
+ if (this.shouldReconnect) {
1255
+ if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
1256
+ T.error(`Max reconnect attempts (${this.config.maxReconnectAttempts}) reached`), this.setState("offline"), this.config.onError?.(new ct(this.config.maxReconnectAttempts));
1257
+ return;
1242
1258
  }
1259
+ if (this.setState("reconnecting"), this.reconnectAttempts++, this.reconnectAttempts > 1 ? (T.info(`Reconnecting in ${this.config.reconnectBackoffMs}ms (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`), await It(this.config.reconnectBackoffMs, this.abortController?.signal)) : T.info(`Reconnecting immediately (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`), !!this.shouldReconnect)
1260
+ try {
1261
+ await this.connectInternal(!0);
1262
+ } catch (e) {
1263
+ T.error("Reconnect failed:", e), await this.attemptReconnect();
1264
+ }
1265
+ }
1243
1266
  }
1244
1267
  /**
1245
1268
  * Disconnect all channels.
@@ -1255,8 +1278,8 @@ class wt {
1255
1278
  * survives one keepalive timeout period without dying.
1256
1279
  */
1257
1280
  startStabilityTimer() {
1258
- this.clearStabilityTimer(), this.stabilityTimer = setTimeout(() => {
1259
- this.stabilityTimer = null, this.reconnectAttempts = 0;
1281
+ this.clearStabilityTimer(), this.connectionStable = !1, this.stabilityTimer = setTimeout(() => {
1282
+ this.stabilityTimer = null, this.reconnectAttempts = 0, this.connectionStable = !0, this.demotedTypes.clear();
1260
1283
  }, this.config.keepaliveTimeoutMs);
1261
1284
  }
1262
1285
  /**
@@ -1272,30 +1295,30 @@ class wt {
1272
1295
  this.state !== e && (this.state = e, this.config.onStateChange?.(e));
1273
1296
  }
1274
1297
  }
1275
- const st = F("ProtocolWorker"), w = (t, e) => {
1298
+ const rt = F("ProtocolWorker"), w = (t, e) => {
1276
1299
  self.postMessage(t, e ?? []);
1277
1300
  };
1278
- let N = null, H, u = null;
1279
- const S = [], A = [], v = /* @__PURE__ */ new Map(), C = [], c = [], y = /* @__PURE__ */ new Map(), x = [];
1301
+ let A = null, H, u = null;
1302
+ const U = [], C = [], v = /* @__PURE__ */ new Map(), f = [], I = [], S = /* @__PURE__ */ new Map(), x = [];
1280
1303
  function Y() {
1281
1304
  try {
1282
- N?.disconnect();
1305
+ A?.disconnect();
1283
1306
  } catch (t) {
1284
- st.warn(`Failed to disconnect channel manager: ${t}`);
1307
+ rt.warn(`Failed to disconnect channel manager: ${t}`);
1285
1308
  }
1286
- N = null;
1287
- for (let t = 0; t < A.length; t++)
1309
+ A = null;
1310
+ for (let t = 0; t < C.length; t++)
1288
1311
  try {
1289
- A[t].port.close();
1312
+ C[t].port.close();
1290
1313
  } catch {
1291
1314
  }
1292
- S.length = 0, A.length = 0, v.clear();
1293
- for (let t = 0; t < c.length; t++)
1315
+ U.length = 0, C.length = 0, v.clear();
1316
+ for (let t = 0; t < I.length; t++)
1294
1317
  try {
1295
- c[t].port.close();
1318
+ I[t].port.close();
1296
1319
  } catch {
1297
1320
  }
1298
- C.length = 0, c.length = 0, y.clear();
1321
+ f.length = 0, I.length = 0, S.clear();
1299
1322
  }
1300
1323
  function B(t) {
1301
1324
  const e = t instanceof Error ? t : new Error(String(t));
@@ -1303,8 +1326,8 @@ function B(t) {
1303
1326
  }
1304
1327
  function gt() {
1305
1328
  let t = 0;
1306
- for (let e = 0; e < A.length; e++)
1307
- t |= A[e].opcodeGroupsMask;
1329
+ for (let e = 0; e < C.length; e++)
1330
+ t |= C[e].opcodeGroupsMask;
1308
1331
  return t;
1309
1332
  }
1310
1333
  function Lt(t) {
@@ -1313,36 +1336,36 @@ function Lt(t) {
1313
1336
  const e = W(t);
1314
1337
  if ((e & H) !== 0)
1315
1338
  return !0;
1316
- const r = gt();
1317
- return (e & r) !== 0;
1339
+ const s = gt();
1340
+ return (e & s) !== 0;
1318
1341
  }
1319
- function Pt(t) {
1342
+ function mt(t) {
1320
1343
  x.length = 0;
1321
- for (let e = 0; e < A.length; e++) {
1322
- const r = A[e];
1323
- (r.opcodeGroupsMask & t) !== 0 && x.push(r.port);
1344
+ for (let e = 0; e < C.length; e++) {
1345
+ const s = C[e];
1346
+ (s.opcodeGroupsMask & t) !== 0 && x.push(s.port);
1324
1347
  }
1325
1348
  return x;
1326
1349
  }
1327
- function mt(t, e) {
1350
+ function dt(t, e) {
1328
1351
  return (W(t) & e) !== 0;
1329
1352
  }
1330
- function dt(t, e) {
1331
- if (!N || !e || typeof e != "object")
1353
+ function Pt(t, e) {
1354
+ if (!A || !e || typeof e != "object")
1332
1355
  return;
1333
- const r = e;
1334
- if (!(r.type !== "send" || !(r.message instanceof ArrayBuffer)))
1356
+ const s = e;
1357
+ if (!(s.type !== "send" || !(s.message instanceof ArrayBuffer)))
1335
1358
  try {
1336
- const s = new Uint8Array(r.message);
1337
- if (!mt(s, t))
1359
+ const r = new Uint8Array(s.message);
1360
+ if (!dt(r, t))
1338
1361
  return;
1339
- N.sendProtocolMessage(s), u && u.postMessage({ direction: "sent", message: Array.from(s) });
1340
- } catch (s) {
1341
- B(s);
1362
+ A.sendProtocolMessage(r), u && u.postMessage({ direction: "sent", message: Array.from(r) });
1363
+ } catch (r) {
1364
+ B(r);
1342
1365
  }
1343
1366
  }
1344
1367
  async function bt(t) {
1345
- Y(), N = new wt({
1368
+ Y(), A = new wt({
1346
1369
  sessionId: t.sessionId,
1347
1370
  keepaliveTimeoutMs: t.keepaliveTimeoutMs,
1348
1371
  reconnectBackoffMs: t.reconnectBackoffMs,
@@ -1350,26 +1373,26 @@ async function bt(t) {
1350
1373
  orderedEndpointTypes: t.orderedEndpointTypes,
1351
1374
  webRtcEnabled: t.webRtcEnabled,
1352
1375
  onStateChange: (e) => {
1353
- w({ type: "state", state: e, activeType: N?.activeEndpointType ?? void 0 });
1376
+ w({ type: "state", state: e, activeType: A?.activeEndpointType ?? void 0 });
1354
1377
  },
1355
1378
  onRememberWorkingType: () => {
1356
- w({ type: "state", state: N?.managerState ?? "idle", activeType: N?.activeEndpointType ?? void 0 });
1379
+ w({ type: "state", state: A?.managerState ?? "idle", activeType: A?.activeEndpointType ?? void 0 });
1357
1380
  },
1358
1381
  onError: (e) => {
1359
1382
  B(e);
1360
1383
  },
1361
1384
  onProtocolMessage: (e) => {
1362
- u && (u.postMessage({ direction: "received", message: Array.from(e) }), $(e) === m.ANALYTICS_LOGS && u.postMessage({ type: "serverLogs", message: Array.from(e) }));
1363
- const r = W(e), s = Lt(e), i = Pt(r);
1364
- if (!(!s && i.length === 0))
1385
+ u && (u.postMessage({ direction: "received", message: Array.from(e) }), $(e) === d.ANALYTICS_LOGS && u.postMessage({ type: "serverLogs", message: Array.from(e) }));
1386
+ const s = W(e), r = Lt(e), i = mt(s);
1387
+ if (!(!r && i.length === 0))
1365
1388
  try {
1366
1389
  const n = X(e), a = e.buffer instanceof ArrayBuffer && e.byteOffset === 0 && e.byteLength === e.buffer.byteLength, o = i.length > 0;
1367
- if (o && !s && i.length === 1 && a) {
1390
+ if (o && !r && i.length === 1 && a) {
1368
1391
  const l = e.buffer;
1369
1392
  i[0].postMessage({ type: "protocol", message: l, headers: n }, [l]);
1370
1393
  return;
1371
1394
  }
1372
- if (!o && s && a) {
1395
+ if (!o && r && a) {
1373
1396
  const l = e.buffer;
1374
1397
  w({ type: "protocol", message: l, headers: n }, [l]);
1375
1398
  return;
@@ -1378,8 +1401,8 @@ async function bt(t) {
1378
1401
  const l = [];
1379
1402
  for (let _ = 1; _ < i.length; _++)
1380
1403
  l.push(e.slice().buffer);
1381
- const h = s ? e.slice().buffer : null, f = e.buffer;
1382
- i[0].postMessage({ type: "protocol", message: f, headers: n }, [f]);
1404
+ const h = r ? e.slice().buffer : null, N = e.buffer;
1405
+ i[0].postMessage({ type: "protocol", message: N, headers: n }, [N]);
1383
1406
  for (let _ = 1; _ < i.length; _++)
1384
1407
  i[_].postMessage({ type: "protocol", message: l[_ - 1], headers: n }, [l[_ - 1]]);
1385
1408
  h && w({ type: "protocol", message: h, headers: n }, [h]);
@@ -1390,7 +1413,7 @@ async function bt(t) {
1390
1413
  const h = e.slice().buffer;
1391
1414
  l.postMessage({ type: "protocol", message: h, headers: n }, [h]);
1392
1415
  }
1393
- if (s) {
1416
+ if (r) {
1394
1417
  const l = e.slice().buffer;
1395
1418
  w({ type: "protocol", message: l, headers: n }, [l]);
1396
1419
  }
@@ -1398,13 +1421,13 @@ async function bt(t) {
1398
1421
  B(n);
1399
1422
  }
1400
1423
  }
1401
- }), await N.connect(t.entrypoints);
1424
+ }), await A.connect(t.entrypoints);
1402
1425
  }
1403
1426
  self.addEventListener("message", (t) => {
1404
1427
  const e = t.data;
1405
1428
  if (e.type === "connect") {
1406
- bt(e).catch((r) => {
1407
- st.error(`Failed to connect: ${r}`), B(r), Y();
1429
+ bt(e).catch((s) => {
1430
+ rt.error(`Failed to connect: ${s}`), B(s), Y();
1408
1431
  });
1409
1432
  return;
1410
1433
  }
@@ -1413,13 +1436,13 @@ self.addEventListener("message", (t) => {
1413
1436
  return;
1414
1437
  }
1415
1438
  if (e.type === "send") {
1416
- if (!N)
1439
+ if (!A)
1417
1440
  return;
1418
1441
  try {
1419
- const r = new Uint8Array(e.message);
1420
- N.sendProtocolMessage(r), u && u.postMessage({ direction: "sent", message: Array.from(r) });
1421
- } catch (r) {
1422
- B(r);
1442
+ const s = new Uint8Array(e.message);
1443
+ A.sendProtocolMessage(s), u && u.postMessage({ direction: "sent", message: Array.from(s) });
1444
+ } catch (s) {
1445
+ B(s);
1423
1446
  }
1424
1447
  return;
1425
1448
  }
@@ -1431,72 +1454,76 @@ self.addEventListener("message", (t) => {
1431
1454
  e.enabled && !u ? u = new BroadcastChannel("ikon:devtools") : !e.enabled && u && (u.close(), u = null);
1432
1455
  return;
1433
1456
  }
1457
+ if (e.type === "checkHealth") {
1458
+ A?.checkHealth();
1459
+ return;
1460
+ }
1434
1461
  if (e.type === "attachPort") {
1435
1462
  try {
1436
1463
  e.port.start?.();
1437
1464
  } catch {
1438
1465
  }
1439
- const r = S.length;
1440
- S.push(e.portId), A.push({ port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }), v.set(e.portId, r);
1466
+ const s = U.length;
1467
+ U.push(e.portId), C.push({ port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }), v.set(e.portId, s);
1441
1468
  return;
1442
1469
  }
1443
1470
  if (e.type === "detachPort") {
1444
- const r = v.get(e.portId);
1445
- if (r !== void 0) {
1446
- const s = A[r];
1471
+ const s = v.get(e.portId);
1472
+ if (s !== void 0) {
1473
+ const r = C[s];
1447
1474
  try {
1448
- s.port.close();
1475
+ r.port.close();
1449
1476
  } catch {
1450
1477
  }
1451
- const i = S.length - 1;
1452
- if (r !== i) {
1453
- const n = S[i];
1454
- S[r] = n, A[r] = A[i], v.set(n, r);
1478
+ const i = U.length - 1;
1479
+ if (s !== i) {
1480
+ const n = U[i];
1481
+ U[s] = n, C[s] = C[i], v.set(n, s);
1455
1482
  }
1456
- S.length--, A.length--, v.delete(e.portId);
1483
+ U.length--, C.length--, v.delete(e.portId);
1457
1484
  }
1458
1485
  return;
1459
1486
  }
1460
1487
  if (e.type === "attachSendPort") {
1461
- const r = y.get(e.portId);
1462
- if (r !== void 0) {
1463
- const n = c[r];
1488
+ const s = S.get(e.portId);
1489
+ if (s !== void 0) {
1490
+ const n = I[s];
1464
1491
  try {
1465
1492
  n.port.close();
1466
1493
  } catch {
1467
1494
  }
1468
- const a = C.length - 1;
1469
- if (r !== a) {
1470
- const o = C[a];
1471
- C[r] = o, c[r] = c[a], y.set(o, r);
1495
+ const a = f.length - 1;
1496
+ if (s !== a) {
1497
+ const o = f[a];
1498
+ f[s] = o, I[s] = I[a], S.set(o, s);
1472
1499
  }
1473
- C.length--, c.length--, y.delete(e.portId);
1500
+ f.length--, I.length--, S.delete(e.portId);
1474
1501
  }
1475
- const s = { port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }, i = C.length;
1476
- C.push(e.portId), c.push(s), y.set(e.portId, i);
1502
+ const r = { port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }, i = f.length;
1503
+ f.push(e.portId), I.push(r), S.set(e.portId, i);
1477
1504
  try {
1478
- s.port.start?.();
1505
+ r.port.start?.();
1479
1506
  } catch {
1480
1507
  }
1481
- s.port.addEventListener("message", (n) => {
1482
- dt(s.opcodeGroupsMask, n.data);
1508
+ r.port.addEventListener("message", (n) => {
1509
+ Pt(r.opcodeGroupsMask, n.data);
1483
1510
  });
1484
1511
  return;
1485
1512
  }
1486
1513
  if (e.type === "detachSendPort") {
1487
- const r = y.get(e.portId);
1488
- if (r !== void 0) {
1489
- const s = c[r];
1514
+ const s = S.get(e.portId);
1515
+ if (s !== void 0) {
1516
+ const r = I[s];
1490
1517
  try {
1491
- s.port.close();
1518
+ r.port.close();
1492
1519
  } catch {
1493
1520
  }
1494
- const i = C.length - 1;
1495
- if (r !== i) {
1496
- const n = C[i];
1497
- C[r] = n, c[r] = c[i], y.set(n, r);
1521
+ const i = f.length - 1;
1522
+ if (s !== i) {
1523
+ const n = f[i];
1524
+ f[s] = n, I[s] = I[i], S.set(n, s);
1498
1525
  }
1499
- C.length--, c.length--, y.delete(e.portId);
1526
+ f.length--, I.length--, S.delete(e.portId);
1500
1527
  }
1501
1528
  return;
1502
1529
  }