@ikonai/sdk 1.0.32 → 1.0.34
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/{protocol-worker-BNeN5rOx.js → protocol-worker-Df11kdu1.js} +352 -349
- package/assets/{video-playback-worker-DSozRiYd.js → video-playback-worker-eGtjWcFg.js} +1 -1
- package/client/ikon-client-config.d.ts +2 -0
- package/client/ikon-client.d.ts +7 -0
- package/index.js +639 -601
- package/media/video-constants.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3,98 +3,98 @@ function $(t) {
|
|
|
3
3
|
throw new Error("Protocol message too short");
|
|
4
4
|
return (t[4] | t[5] << 8 | t[6] << 16 | t[7] << 24) >>> 0;
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function V(t) {
|
|
7
7
|
return $(t) & 4294901760;
|
|
8
8
|
}
|
|
9
9
|
function X(t) {
|
|
10
|
-
const e = Et(t),
|
|
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
|
|
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
|
|
16
|
+
const T = [];
|
|
17
17
|
let O = 27;
|
|
18
18
|
for (let b = 0; b < l; b++)
|
|
19
|
-
|
|
19
|
+
T.push(s.getUint32(O, !0)), O += 4;
|
|
20
20
|
return {
|
|
21
|
-
length:
|
|
21
|
+
length: r,
|
|
22
22
|
opcode: i,
|
|
23
23
|
senderId: n,
|
|
24
24
|
trackId: a,
|
|
25
25
|
sequenceId: o,
|
|
26
|
-
targetIds:
|
|
26
|
+
targetIds: T,
|
|
27
27
|
payloadVersion: h,
|
|
28
28
|
payloadType: N,
|
|
29
29
|
flags: _
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
function it(t, e,
|
|
33
|
-
const l = [], N = 27 + l.length * 4, _ = N + e.length,
|
|
34
|
-
|
|
32
|
+
function it(t, e, s, r, i) {
|
|
33
|
+
const l = [], N = 27 + l.length * 4, _ = N + e.length, d = new Uint8Array(_), T = new DataView(d.buffer);
|
|
34
|
+
T.setUint32(0, _, !0), T.setUint32(4, t >>> 0, !0), T.setUint32(8, r >>> 0, !0), T.setUint32(12, 0, !0), T.setUint32(16, 0, !0), T.setUint32(20, l.length >>> 0, !0), T.setUint8(24, s & 255), T.setUint8(25, 8), T.setUint8(26, 0);
|
|
35
35
|
let O = 27;
|
|
36
36
|
for (let b = 0; b < l.length; b++)
|
|
37
|
-
|
|
38
|
-
return
|
|
37
|
+
T.setUint32(O, l[b] >>> 0, !0), O += 4;
|
|
38
|
+
return d.set(e, N), d;
|
|
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,
|
|
41
|
+
const nt = 161, at = 162, G = new TextEncoder();
|
|
42
42
|
new TextDecoder("utf-8", { fatal: !0 });
|
|
43
|
-
class
|
|
43
|
+
class B {
|
|
44
44
|
constructor(e = 1) {
|
|
45
45
|
this.version = e, this.buffer.writeByte(nt), this.buffer.writeVarUInt(e >>> 0);
|
|
46
46
|
}
|
|
47
47
|
buffer = new m();
|
|
48
48
|
closed = !1;
|
|
49
49
|
cached;
|
|
50
|
-
writeInt32Field(e,
|
|
51
|
-
this.writeFixedField(e, 3, () => this.buffer.writeInt32(
|
|
50
|
+
writeInt32Field(e, s) {
|
|
51
|
+
this.writeFixedField(e, 3, () => this.buffer.writeInt32(s | 0));
|
|
52
52
|
}
|
|
53
|
-
writeUInt32Field(e,
|
|
54
|
-
this.writeFixedField(e, 5, () => this.buffer.writeUInt32(
|
|
53
|
+
writeUInt32Field(e, s) {
|
|
54
|
+
this.writeFixedField(e, 5, () => this.buffer.writeUInt32(s >>> 0));
|
|
55
55
|
}
|
|
56
|
-
writeInt64Field(e,
|
|
57
|
-
this.writeFixedField(e, 4, () => this.buffer.writeBigInt64(
|
|
56
|
+
writeInt64Field(e, s) {
|
|
57
|
+
this.writeFixedField(e, 4, () => this.buffer.writeBigInt64(s));
|
|
58
58
|
}
|
|
59
|
-
writeUInt64Field(e,
|
|
60
|
-
this.writeFixedField(e, 6, () => this.buffer.writeBigUInt64(
|
|
59
|
+
writeUInt64Field(e, s) {
|
|
60
|
+
this.writeFixedField(e, 6, () => this.buffer.writeBigUInt64(s));
|
|
61
61
|
}
|
|
62
|
-
writeFloat32Field(e,
|
|
63
|
-
this.writeFixedField(e, 7, () => this.buffer.writeFloat32(
|
|
62
|
+
writeFloat32Field(e, s) {
|
|
63
|
+
this.writeFixedField(e, 7, () => this.buffer.writeFloat32(s));
|
|
64
64
|
}
|
|
65
|
-
writeFloat64Field(e,
|
|
66
|
-
this.writeFixedField(e, 8, () => this.buffer.writeFloat64(
|
|
65
|
+
writeFloat64Field(e, s) {
|
|
66
|
+
this.writeFixedField(e, 8, () => this.buffer.writeFloat64(s));
|
|
67
67
|
}
|
|
68
|
-
writeBoolField(e,
|
|
69
|
-
this.writeFixedField(e, 2, () => this.buffer.writeByte(
|
|
68
|
+
writeBoolField(e, s) {
|
|
69
|
+
this.writeFixedField(e, 2, () => this.buffer.writeByte(s ? 1 : 0));
|
|
70
70
|
}
|
|
71
|
-
writeGuidField(e,
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
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(
|
|
75
|
+
this.writeFixedField(e, 14, () => this.buffer.writeBytes(r));
|
|
76
76
|
}
|
|
77
|
-
writeStringField(e,
|
|
78
|
-
const
|
|
79
|
-
this.writeVariableField(e, 12,
|
|
77
|
+
writeStringField(e, s) {
|
|
78
|
+
const r = G.encode(s ?? "");
|
|
79
|
+
this.writeVariableField(e, 12, r);
|
|
80
80
|
}
|
|
81
|
-
writeBinaryField(e,
|
|
82
|
-
this.writeVariableField(e, 13,
|
|
81
|
+
writeBinaryField(e, s) {
|
|
82
|
+
this.writeVariableField(e, 13, s);
|
|
83
83
|
}
|
|
84
|
-
writeObjectField(e,
|
|
85
|
-
const i = new
|
|
86
|
-
|
|
84
|
+
writeObjectField(e, s, r) {
|
|
85
|
+
const i = new B(s);
|
|
86
|
+
r(i);
|
|
87
87
|
const n = i.finish();
|
|
88
88
|
this.writeVariableField(e, 11, n);
|
|
89
89
|
}
|
|
90
|
-
writeArrayField(e,
|
|
91
|
-
const i = new
|
|
92
|
-
|
|
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,
|
|
97
|
-
const n = new Q(
|
|
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,17 +102,17 @@ 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,
|
|
106
|
-
this.writeFieldHeader(e,
|
|
105
|
+
writeFixedField(e, s, r) {
|
|
106
|
+
this.writeFieldHeader(e, s, 0), r();
|
|
107
107
|
}
|
|
108
|
-
writeVariableField(e,
|
|
109
|
-
this.writeFieldHeader(e,
|
|
108
|
+
writeVariableField(e, s, r) {
|
|
109
|
+
this.writeFieldHeader(e, s, r.length), this.buffer.writeBytes(r);
|
|
110
110
|
}
|
|
111
|
-
writeFieldHeader(e,
|
|
112
|
-
this.buffer.writeUInt32(e >>> 0), this.buffer.writeByte(
|
|
111
|
+
writeFieldHeader(e, s, r) {
|
|
112
|
+
this.buffer.writeUInt32(e >>> 0), this.buffer.writeByte(p(s)), lt(s) && this.buffer.writeVarUInt(r >>> 0);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
class
|
|
115
|
+
class k {
|
|
116
116
|
constructor(e) {
|
|
117
117
|
this.elementType = e;
|
|
118
118
|
}
|
|
@@ -165,18 +165,18 @@ class K {
|
|
|
165
165
|
14
|
|
166
166
|
/* Guid */
|
|
167
167
|
), this.count++;
|
|
168
|
-
const
|
|
169
|
-
if (
|
|
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(
|
|
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
|
|
179
|
-
this.payload.writeVarUInt(
|
|
178
|
+
const s = G.encode(e ?? "");
|
|
179
|
+
this.payload.writeVarUInt(s.length), this.payload.writeBytes(s);
|
|
180
180
|
}
|
|
181
181
|
writeBinary(e) {
|
|
182
182
|
this.ensureElementType(
|
|
@@ -184,39 +184,39 @@ class K {
|
|
|
184
184
|
/* Binary */
|
|
185
185
|
), this.count++, this.payload.writeVarUInt(e.length), this.payload.writeBytes(e);
|
|
186
186
|
}
|
|
187
|
-
writeObject(e,
|
|
187
|
+
writeObject(e, s) {
|
|
188
188
|
this.ensureElementType(
|
|
189
189
|
11
|
|
190
190
|
/* Object */
|
|
191
191
|
), this.count++;
|
|
192
|
-
const
|
|
193
|
-
r
|
|
194
|
-
const i =
|
|
192
|
+
const r = new B(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,
|
|
197
|
+
writeArray(e, s) {
|
|
198
198
|
this.ensureElementType(
|
|
199
199
|
9
|
|
200
200
|
/* Array */
|
|
201
201
|
), this.count++;
|
|
202
|
-
const
|
|
203
|
-
r
|
|
204
|
-
const i =
|
|
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,
|
|
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,
|
|
213
|
-
|
|
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
218
|
const e = new m();
|
|
219
|
-
return e.writeByte(
|
|
219
|
+
return e.writeByte(p(this.elementType)), e.writeVarUInt(this.count), e.writeBytes(this.payload.toUint8Array()), e.toUint8Array();
|
|
220
220
|
}
|
|
221
221
|
ensureElementType(e) {
|
|
222
222
|
if (this.elementType !== e)
|
|
@@ -224,8 +224,8 @@ class K {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
class Q {
|
|
227
|
-
constructor(e,
|
|
228
|
-
this.keyType = e, this.valueType =
|
|
227
|
+
constructor(e, s) {
|
|
228
|
+
this.keyType = e, this.valueType = s, ht(e);
|
|
229
229
|
}
|
|
230
230
|
payload = new m();
|
|
231
231
|
count = 0;
|
|
@@ -241,12 +241,12 @@ class Q {
|
|
|
241
241
|
if (this.entryOpen)
|
|
242
242
|
throw new Error("Dictionary entry not completed");
|
|
243
243
|
const e = new m();
|
|
244
|
-
return e.writeByte(
|
|
244
|
+
return e.writeByte(p(this.keyType)), e.writeByte(p(this.valueType)), e.writeVarUInt(this.count), e.writeBytes(this.payload.toUint8Array()), e.toUint8Array();
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
class ot {
|
|
248
|
-
constructor(e,
|
|
249
|
-
this.keyType = e, this.valueType =
|
|
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
|
|
302
|
-
if (
|
|
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(
|
|
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
|
|
312
|
-
this.payload.writeVarUInt(
|
|
311
|
+
const s = G.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
|
|
368
|
-
if (
|
|
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(
|
|
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
|
|
390
|
-
this.payload.writeVarUInt(
|
|
389
|
+
const s = G.encode(e ?? "");
|
|
390
|
+
this.payload.writeVarUInt(s.length), this.payload.writeBytes(s), this.valueWritten = !0;
|
|
391
391
|
}
|
|
392
|
-
writeValueObject(e,
|
|
392
|
+
writeValueObject(e, s) {
|
|
393
393
|
this.ensureValueType(
|
|
394
394
|
11
|
|
395
395
|
/* Object */
|
|
396
396
|
);
|
|
397
|
-
const
|
|
398
|
-
r
|
|
399
|
-
const i =
|
|
397
|
+
const r = new B(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,
|
|
402
|
+
writeValueArray(e, s) {
|
|
403
403
|
this.ensureValueType(
|
|
404
404
|
9
|
|
405
405
|
/* Array */
|
|
406
406
|
);
|
|
407
|
-
const
|
|
408
|
-
r
|
|
409
|
-
const i =
|
|
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,
|
|
412
|
+
writeValueDictionary(e, s, r) {
|
|
413
413
|
this.ensureValueType(
|
|
414
414
|
10
|
|
415
415
|
/* Dict */
|
|
416
416
|
);
|
|
417
|
-
const i = new Q(e,
|
|
418
|
-
|
|
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
|
|
446
|
-
if (
|
|
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
|
|
449
|
-
E.writeUInt32LE(
|
|
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
|
-
|
|
452
|
-
return new E(
|
|
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),
|
|
464
|
-
if (
|
|
465
|
-
|
|
463
|
+
const e = new Uint8Array(16), s = globalThis.crypto;
|
|
464
|
+
if (s?.getRandomValues)
|
|
465
|
+
s.getRandomValues(e);
|
|
466
466
|
else
|
|
467
|
-
for (let
|
|
468
|
-
e[
|
|
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,28 +481,28 @@ class E {
|
|
|
481
481
|
asBytes() {
|
|
482
482
|
return this.bytes.slice();
|
|
483
483
|
}
|
|
484
|
-
static parseHexSlice(e,
|
|
485
|
-
const i = e.substr(
|
|
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,
|
|
491
|
-
const i =
|
|
492
|
-
e[
|
|
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,
|
|
495
|
-
const i =
|
|
496
|
-
e[
|
|
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,
|
|
499
|
-
return (e[
|
|
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,
|
|
502
|
-
return (e[
|
|
501
|
+
static readUInt16LE(e, s) {
|
|
502
|
+
return (e[s] | e[s + 1] << 8) & 65535;
|
|
503
503
|
}
|
|
504
|
-
static toHex(e,
|
|
505
|
-
return (e >>> 0).toString(16).padStart(
|
|
504
|
+
static toHex(e, s) {
|
|
505
|
+
return (e >>> 0).toString(16).padStart(s, "0");
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
class m {
|
|
@@ -514,13 +514,13 @@ class m {
|
|
|
514
514
|
this.buffer = new Uint8Array(m.INITIAL_CAPACITY), this.dataView = new DataView(this.buffer.buffer);
|
|
515
515
|
}
|
|
516
516
|
ensureCapacity(e) {
|
|
517
|
-
const
|
|
518
|
-
if (
|
|
517
|
+
const s = this.length + e;
|
|
518
|
+
if (s <= this.buffer.length)
|
|
519
519
|
return;
|
|
520
|
-
let
|
|
521
|
-
for (;
|
|
522
|
-
|
|
523
|
-
const i = new Uint8Array(
|
|
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,16 +548,16 @@ class m {
|
|
|
548
548
|
this.ensureCapacity(8), this.dataView.setBigUint64(this.length, e, !0), this.length += 8;
|
|
549
549
|
}
|
|
550
550
|
writeVarUInt(e) {
|
|
551
|
-
let
|
|
552
|
-
for (;
|
|
553
|
-
this.ensureCapacity(1), this.buffer[this.length++] =
|
|
554
|
-
this.ensureCapacity(1), this.buffer[this.length++] =
|
|
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);
|
|
558
558
|
}
|
|
559
559
|
}
|
|
560
|
-
function
|
|
560
|
+
function p(t, e = 0) {
|
|
561
561
|
if ((e & 240) !== 0)
|
|
562
562
|
throw new Error("Teleport flags must fit into 4 bits");
|
|
563
563
|
return (t & 15) << 4 | e & 15;
|
|
@@ -575,26 +575,26 @@ function j(t) {
|
|
|
575
575
|
function Et(t) {
|
|
576
576
|
return t instanceof Uint8Array ? t : new Uint8Array(t);
|
|
577
577
|
}
|
|
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 || {});
|
|
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 || {}), P = /* @__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))(P || {});
|
|
579
579
|
const J = 1, _t = 131074;
|
|
580
580
|
function Z(t) {
|
|
581
581
|
return {};
|
|
582
582
|
}
|
|
583
583
|
function Tt(t) {
|
|
584
|
-
return new
|
|
584
|
+
return new B(J).finish();
|
|
585
585
|
}
|
|
586
|
-
function tt(t, e,
|
|
587
|
-
const
|
|
588
|
-
return it(_t,
|
|
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,
|
|
592
|
-
super(e), this.cause =
|
|
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,
|
|
597
|
-
super(e,
|
|
596
|
+
constructor(e, s) {
|
|
597
|
+
super(e, s), this.name = "TransportError";
|
|
598
598
|
}
|
|
599
599
|
}
|
|
600
600
|
class z extends L {
|
|
@@ -608,38 +608,38 @@ class ct extends et {
|
|
|
608
608
|
}
|
|
609
609
|
}
|
|
610
610
|
function It(t, e) {
|
|
611
|
-
return new Promise((
|
|
611
|
+
return new Promise((s, r) => {
|
|
612
612
|
const i = () => {
|
|
613
|
-
clearTimeout(n),
|
|
613
|
+
clearTimeout(n), r(new Error("Aborted"));
|
|
614
614
|
}, n = setTimeout(() => {
|
|
615
|
-
e?.removeEventListener("abort", i),
|
|
615
|
+
e?.removeEventListener("abort", i), s();
|
|
616
616
|
}, t);
|
|
617
617
|
if (e?.aborted) {
|
|
618
|
-
clearTimeout(n),
|
|
618
|
+
clearTimeout(n), r(new Error("Aborted"));
|
|
619
619
|
return;
|
|
620
620
|
}
|
|
621
621
|
e?.addEventListener("abort", i, { once: !0 });
|
|
622
622
|
});
|
|
623
623
|
}
|
|
624
624
|
let ut = 1;
|
|
625
|
-
const At = /* @__PURE__ */ new Map(),
|
|
625
|
+
const At = /* @__PURE__ */ new Map(), ft = {
|
|
626
626
|
0: "DEBUG",
|
|
627
627
|
1: "INFO",
|
|
628
628
|
2: "WARN",
|
|
629
629
|
3: "ERROR",
|
|
630
630
|
4: "NONE"
|
|
631
631
|
};
|
|
632
|
-
function
|
|
632
|
+
function Ct(t, e) {
|
|
633
633
|
return `[${t}] ${e}`;
|
|
634
634
|
}
|
|
635
|
-
function
|
|
636
|
-
const i = (/* @__PURE__ */ new Date()).toISOString(), n =
|
|
635
|
+
function F(t, e, s, r) {
|
|
636
|
+
const i = (/* @__PURE__ */ new Date()).toISOString(), n = ft[t], a = {
|
|
637
637
|
timestamp: i,
|
|
638
638
|
level: t,
|
|
639
639
|
levelName: n,
|
|
640
640
|
component: e,
|
|
641
|
-
message:
|
|
642
|
-
args:
|
|
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 p(t, e, r, s) {
|
|
|
650
650
|
}
|
|
651
651
|
}
|
|
652
652
|
if (ut <= t) {
|
|
653
|
-
const o =
|
|
653
|
+
const o = Ct(e, s);
|
|
654
654
|
switch (t) {
|
|
655
655
|
case 0:
|
|
656
|
-
console.debug(o, ...
|
|
656
|
+
console.debug(o, ...r);
|
|
657
657
|
break;
|
|
658
658
|
case 1:
|
|
659
|
-
console.info(o, ...
|
|
659
|
+
console.info(o, ...r);
|
|
660
660
|
break;
|
|
661
661
|
case 2:
|
|
662
|
-
console.warn(o, ...
|
|
662
|
+
console.warn(o, ...r);
|
|
663
663
|
break;
|
|
664
664
|
case 3:
|
|
665
|
-
console.error(o, ...
|
|
665
|
+
console.error(o, ...r);
|
|
666
666
|
break;
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
669
|
}
|
|
670
|
-
function
|
|
670
|
+
function M(t) {
|
|
671
671
|
return {
|
|
672
|
-
debug(e, ...
|
|
673
|
-
|
|
672
|
+
debug(e, ...s) {
|
|
673
|
+
F(0, t, e, s);
|
|
674
674
|
},
|
|
675
|
-
info(e, ...
|
|
676
|
-
|
|
675
|
+
info(e, ...s) {
|
|
676
|
+
F(1, t, e, s);
|
|
677
677
|
},
|
|
678
|
-
warn(e, ...
|
|
679
|
-
|
|
678
|
+
warn(e, ...s) {
|
|
679
|
+
F(2, t, e, s);
|
|
680
680
|
},
|
|
681
|
-
error(e, ...
|
|
682
|
-
|
|
681
|
+
error(e, ...s) {
|
|
682
|
+
F(3, t, e, s);
|
|
683
683
|
}
|
|
684
684
|
};
|
|
685
685
|
}
|
|
686
|
-
const
|
|
686
|
+
const W = M("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,
|
|
703
|
-
return this.isClosed = !1, new Promise((
|
|
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) {
|
|
@@ -714,9 +714,9 @@ class Rt {
|
|
|
714
714
|
a || (a = !0, o(), this.ws?.close(), i(new L("WebSocket connection timeout")));
|
|
715
715
|
}, Nt);
|
|
716
716
|
this.ws.onopen = () => {
|
|
717
|
-
n = !0, clearTimeout(l), this.ws.send(
|
|
717
|
+
n = !0, clearTimeout(l), this.ws.send(s), this.resetKeepaliveTimeout(), a || (a = !0, r());
|
|
718
718
|
}, this.ws.onerror = () => {
|
|
719
|
-
clearTimeout(l),
|
|
719
|
+
clearTimeout(l), 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 N = h.wasClean && (h.code === 1e3 || h.code === 1001), _ = h.code === 1e3 || h.code === 1001,
|
|
728
|
-
this.callbacks.onClose(
|
|
727
|
+
const N = 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, 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) :
|
|
735
|
+
this.ws?.readyState === WebSocket.OPEN ? this.ws.send(e) : W.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,26 +745,26 @@ class Rt {
|
|
|
745
745
|
}
|
|
746
746
|
handleProtocolMessage(e) {
|
|
747
747
|
try {
|
|
748
|
-
if (X(e).opcode ===
|
|
748
|
+
if (X(e).opcode === P.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 (
|
|
754
|
-
|
|
753
|
+
} catch (s) {
|
|
754
|
+
W.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
|
-
|
|
759
|
+
W.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 y =
|
|
767
|
-
function
|
|
766
|
+
const y = M("WebTransportTransport"), q = 4, yt = 65536;
|
|
767
|
+
function st() {
|
|
768
768
|
return typeof WebTransport < "u";
|
|
769
769
|
}
|
|
770
770
|
class St {
|
|
@@ -793,18 +793,18 @@ class St {
|
|
|
793
793
|
get isConnected() {
|
|
794
794
|
return this.transport !== null && this.writer !== null;
|
|
795
795
|
}
|
|
796
|
-
async connect(e,
|
|
797
|
-
if (!
|
|
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
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((
|
|
804
|
-
y.error("WebTransport connection closed with error:",
|
|
805
|
-
}), this.stream = await this.transport.createBidirectionalStream(), this.reader = this.stream.readable.getReader(), this.writer = this.stream.writable.getWriter(), await this.writer.write(
|
|
806
|
-
} catch (
|
|
807
|
-
throw this.cleanup(), new L(`Failed to connect WebTransport: ${
|
|
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) {
|
|
@@ -812,8 +812,8 @@ class St {
|
|
|
812
812
|
y.warn("Cannot send: WebTransport not connected");
|
|
813
813
|
return;
|
|
814
814
|
}
|
|
815
|
-
this.writer.write(e).catch((
|
|
816
|
-
y.error("Failed to send protocol message:",
|
|
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,8 +827,8 @@ class St {
|
|
|
827
827
|
this.readLoopActive = !0;
|
|
828
828
|
try {
|
|
829
829
|
for (; this.readLoopActive && this.reader; ) {
|
|
830
|
-
const { value: e, done:
|
|
831
|
-
if (
|
|
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
|
}
|
|
@@ -843,13 +843,13 @@ class St {
|
|
|
843
843
|
* Compacts when offset exceeds half capacity and data is sparse.
|
|
844
844
|
*/
|
|
845
845
|
appendToBuffer(e) {
|
|
846
|
-
const
|
|
847
|
-
if (
|
|
848
|
-
if (
|
|
849
|
-
const i = Math.max(
|
|
850
|
-
n.set(this.receiveBuffer.subarray(this.receiveBufferOffset,
|
|
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,
|
|
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 St {
|
|
|
873
873
|
processBufferedMessages() {
|
|
874
874
|
const e = this.getReceiveDataView();
|
|
875
875
|
for (; this.receiveBufferLength >= q; ) {
|
|
876
|
-
const
|
|
877
|
-
if (
|
|
878
|
-
y.error(`Invalid message length: ${
|
|
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 <
|
|
881
|
+
if (this.receiveBufferLength < s)
|
|
882
882
|
return;
|
|
883
|
-
const
|
|
884
|
-
this.receiveBufferOffset +=
|
|
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,20 +890,20 @@ class St {
|
|
|
890
890
|
*/
|
|
891
891
|
handleProtocolMessage(e) {
|
|
892
892
|
try {
|
|
893
|
-
if (X(e).opcode ===
|
|
893
|
+
if (X(e).opcode === P.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 (
|
|
899
|
-
y.error("Failed to process protocol message:",
|
|
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,
|
|
906
|
-
this.isClosed || (this.isClosed = !0, this.clearKeepaliveTimeout(), this.readLoopActive = !1, this.cleanup(), this.callbacks.onClose(e,
|
|
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.
|
|
@@ -932,7 +932,7 @@ class St {
|
|
|
932
932
|
}
|
|
933
933
|
}
|
|
934
934
|
}
|
|
935
|
-
const
|
|
935
|
+
const K = M("Channel");
|
|
936
936
|
class Ut {
|
|
937
937
|
state = "disconnected";
|
|
938
938
|
transport = null;
|
|
@@ -975,7 +975,7 @@ class Ut {
|
|
|
975
975
|
try {
|
|
976
976
|
await this.connectTransport(), this.setState("connected");
|
|
977
977
|
} catch (e) {
|
|
978
|
-
throw
|
|
978
|
+
throw this.setState("disconnected"), e;
|
|
979
979
|
}
|
|
980
980
|
}
|
|
981
981
|
/**
|
|
@@ -996,7 +996,7 @@ class Ut {
|
|
|
996
996
|
*/
|
|
997
997
|
send(e) {
|
|
998
998
|
if (!this.transport?.isConnected) {
|
|
999
|
-
|
|
999
|
+
K.warn("Cannot send: channel not connected");
|
|
1000
1000
|
return;
|
|
1001
1001
|
}
|
|
1002
1002
|
this.transport.send(e);
|
|
@@ -1005,25 +1005,25 @@ class Ut {
|
|
|
1005
1005
|
* Connect the transport to the entrypoint.
|
|
1006
1006
|
*/
|
|
1007
1007
|
async connectTransport() {
|
|
1008
|
-
const e = this.entrypoint,
|
|
1008
|
+
const e = this.entrypoint, s = {
|
|
1009
1009
|
sessionId: this.config.sessionId,
|
|
1010
1010
|
keepaliveTimeoutMs: this.config.keepaliveTimeoutMs,
|
|
1011
1011
|
callbacks: {
|
|
1012
|
-
onProtocolMessage: (
|
|
1013
|
-
onClose: (
|
|
1014
|
-
onError: (
|
|
1012
|
+
onProtocolMessage: (r) => this.handleProtocolMessage(r),
|
|
1013
|
+
onClose: (r, i, n) => this.handleClose(r, i, n),
|
|
1014
|
+
onError: (r) => this.handleError(r)
|
|
1015
1015
|
}
|
|
1016
1016
|
};
|
|
1017
1017
|
switch (e.Type) {
|
|
1018
1018
|
case R.WebSocket:
|
|
1019
1019
|
case R.WebSocketProxy:
|
|
1020
|
-
this.transport = new Rt(
|
|
1020
|
+
this.transport = new Rt(s);
|
|
1021
1021
|
break;
|
|
1022
1022
|
case R.WebTransport:
|
|
1023
1023
|
case R.WebTransportProxy:
|
|
1024
|
-
if (!
|
|
1024
|
+
if (!st())
|
|
1025
1025
|
throw new Error("WebTransport is not supported in this browser");
|
|
1026
|
-
this.transport = new St(
|
|
1026
|
+
this.transport = new St(s);
|
|
1027
1027
|
break;
|
|
1028
1028
|
default:
|
|
1029
1029
|
throw new Error(`Unsupported entrypoint type: ${R[e.Type]}`);
|
|
@@ -1035,27 +1035,27 @@ class Ut {
|
|
|
1035
1035
|
*/
|
|
1036
1036
|
handleProtocolMessage(e) {
|
|
1037
1037
|
try {
|
|
1038
|
-
const
|
|
1039
|
-
if ($(
|
|
1040
|
-
|
|
1038
|
+
const s = e;
|
|
1039
|
+
if ($(s) === P.CORE_ON_SERVER_STOPPING) {
|
|
1040
|
+
K.debug("Received server stopping message"), this.setState("stopped"), this.transport?.close();
|
|
1041
1041
|
return;
|
|
1042
1042
|
}
|
|
1043
|
-
this.config.onProtocolMessage?.(
|
|
1044
|
-
} catch (
|
|
1045
|
-
|
|
1043
|
+
this.config.onProtocolMessage?.(s);
|
|
1044
|
+
} catch (s) {
|
|
1045
|
+
K.error("Failed to handle protocol message:", s), this.config.onError?.(s instanceof Error ? s : new Error(String(s)));
|
|
1046
1046
|
}
|
|
1047
1047
|
}
|
|
1048
1048
|
/**
|
|
1049
1049
|
* Handle transport close.
|
|
1050
1050
|
*/
|
|
1051
|
-
handleClose(e,
|
|
1052
|
-
this.transport = null, this.config.onClose?.(e,
|
|
1051
|
+
handleClose(e, s, r) {
|
|
1052
|
+
this.transport = null, this.config.onClose?.(e, s, r);
|
|
1053
1053
|
}
|
|
1054
1054
|
/**
|
|
1055
1055
|
* Handle transport error.
|
|
1056
1056
|
*/
|
|
1057
1057
|
handleError(e) {
|
|
1058
|
-
|
|
1058
|
+
this.config.onError?.(e), e instanceof z && this.handleClose("Keepalive timeout", !1);
|
|
1059
1059
|
}
|
|
1060
1060
|
/**
|
|
1061
1061
|
* Update and notify state change.
|
|
@@ -1064,7 +1064,7 @@ class Ut {
|
|
|
1064
1064
|
this.state !== e && (this.state = e, this.config.onStateChange?.(e));
|
|
1065
1065
|
}
|
|
1066
1066
|
}
|
|
1067
|
-
const
|
|
1067
|
+
const c = M("ChannelManager");
|
|
1068
1068
|
class wt {
|
|
1069
1069
|
channels = /* @__PURE__ */ new Map();
|
|
1070
1070
|
// keyed by opcode group
|
|
@@ -1096,10 +1096,10 @@ class wt {
|
|
|
1096
1096
|
/**
|
|
1097
1097
|
* Connect to the server using the provided entrypoints.
|
|
1098
1098
|
*/
|
|
1099
|
-
async connect(e,
|
|
1099
|
+
async connect(e, s) {
|
|
1100
1100
|
if (this.state !== "idle" && this.state !== "offline")
|
|
1101
1101
|
throw new Error(`Cannot connect: already in state ${this.state}`);
|
|
1102
|
-
if (this.entrypoints = e, this.shouldReconnect = !0, this.reconnectAttempts = 0, this.demotedTypes.clear(), this.connectionStable = !1, this.abortController = new AbortController(),
|
|
1102
|
+
if (this.entrypoints = e, this.shouldReconnect = !0, this.reconnectAttempts = 0, this.demotedTypes.clear(), this.connectionStable = !1, this.abortController = new AbortController(), s?.retry) {
|
|
1103
1103
|
this.attemptReconnect();
|
|
1104
1104
|
return;
|
|
1105
1105
|
}
|
|
@@ -1116,20 +1116,20 @@ class wt {
|
|
|
1116
1116
|
* The opcode group is extracted from the message automatically.
|
|
1117
1117
|
*/
|
|
1118
1118
|
sendProtocolMessage(e) {
|
|
1119
|
-
const
|
|
1120
|
-
for (const [
|
|
1121
|
-
if (
|
|
1119
|
+
const s = V(e);
|
|
1120
|
+
for (const [r, i] of this.channels)
|
|
1121
|
+
if (r & s) {
|
|
1122
1122
|
i.send(e);
|
|
1123
1123
|
return;
|
|
1124
1124
|
}
|
|
1125
|
-
|
|
1125
|
+
this.state === "connected" && c.warn("No channel found for message");
|
|
1126
1126
|
}
|
|
1127
1127
|
/**
|
|
1128
1128
|
* Send a protocol message to all channels (for broadcast messages).
|
|
1129
1129
|
*/
|
|
1130
1130
|
sendToAll(e) {
|
|
1131
|
-
for (const
|
|
1132
|
-
|
|
1131
|
+
for (const s of this.channels.values())
|
|
1132
|
+
s.send(e);
|
|
1133
1133
|
}
|
|
1134
1134
|
/**
|
|
1135
1135
|
* Check health of all channels.
|
|
@@ -1148,27 +1148,27 @@ class wt {
|
|
|
1148
1148
|
*/
|
|
1149
1149
|
async connectInternal(e = !1) {
|
|
1150
1150
|
this.setState("connecting");
|
|
1151
|
-
let
|
|
1151
|
+
let s = this.entrypoints;
|
|
1152
1152
|
if (this.config.webRtcEnabled) {
|
|
1153
|
-
|
|
1153
|
+
c.debug(`WebRTC enabled, filtering entrypoints (total: ${this.entrypoints.length})`);
|
|
1154
1154
|
for (const a of this.entrypoints)
|
|
1155
|
-
|
|
1156
|
-
const n =
|
|
1157
|
-
|
|
1155
|
+
c.debug(` Entrypoint: type=${a.Type} fromServer=0x${a.OpcodeGroupsFromServer.toString(16)} toServer=0x${a.OpcodeGroupsToServer.toString(16)} uri=${a.Uri}`);
|
|
1156
|
+
const n = P.GROUP_AUDIO | P.GROUP_VIDEO;
|
|
1157
|
+
s = this.entrypoints.filter((a) => {
|
|
1158
1158
|
if (a.Type === R.WebRTC)
|
|
1159
|
-
return
|
|
1159
|
+
return c.debug(` Filtered out WebRTC entrypoint (type=${a.Type})`), !1;
|
|
1160
1160
|
const o = a.OpcodeGroupsFromServer | a.OpcodeGroupsToServer;
|
|
1161
|
-
return (o & ~n) === 0 ? (
|
|
1162
|
-
}),
|
|
1161
|
+
return (o & ~n) === 0 ? (c.debug(` Filtered out audio/video-only entrypoint (type=${a.Type}, groups=0x${o.toString(16)})`), !1) : !0;
|
|
1162
|
+
}), c.debug(`After filtering: ${s.length} entrypoints remain for WS/WT channels`);
|
|
1163
1163
|
}
|
|
1164
|
-
const
|
|
1165
|
-
if (
|
|
1164
|
+
const r = this.groupByType(s);
|
|
1165
|
+
if (r.size === 0)
|
|
1166
1166
|
throw this.setState("offline"), new Error("No entrypoints available");
|
|
1167
1167
|
let i;
|
|
1168
1168
|
if (this.config.orderedEndpointTypes && this.config.orderedEndpointTypes.length > 0) {
|
|
1169
|
-
const n = new Set(
|
|
1169
|
+
const n = new Set(r.keys());
|
|
1170
1170
|
i = this.config.orderedEndpointTypes.filter((a) => n.has(a));
|
|
1171
|
-
} else this.config.endpointSelector ? i = this.config.endpointSelector.getOrderedTypes(
|
|
1171
|
+
} else this.config.endpointSelector ? i = this.config.endpointSelector.getOrderedTypes(r) : i = Array.from(r.keys());
|
|
1172
1172
|
if (this.demotedTypes.size > 0) {
|
|
1173
1173
|
const n = i.filter((o) => !this.demotedTypes.has(o)), a = i.filter((o) => this.demotedTypes.has(o));
|
|
1174
1174
|
i = [...n, ...a];
|
|
@@ -1176,15 +1176,15 @@ class wt {
|
|
|
1176
1176
|
for (const n of i) {
|
|
1177
1177
|
if (!this.shouldReconnect)
|
|
1178
1178
|
return;
|
|
1179
|
-
const a =
|
|
1179
|
+
const a = r.get(n);
|
|
1180
1180
|
try {
|
|
1181
1181
|
await this.connectAllChannels(a), this.config.endpointSelector?.rememberWorkingType(n), this.config.onRememberWorkingType?.(n), this.activeType = n, this.startStabilityTimer(), this.setState("connected");
|
|
1182
1182
|
return;
|
|
1183
1183
|
} catch (o) {
|
|
1184
|
-
|
|
1184
|
+
c.warn(`Failed to connect using ${R[n]}: ${o instanceof Error ? o.message : o}`), this.disconnectAll();
|
|
1185
1185
|
}
|
|
1186
1186
|
}
|
|
1187
|
-
throw
|
|
1187
|
+
throw e || this.setState("offline"), new Error("Failed to connect using any endpoint type");
|
|
1188
1188
|
}
|
|
1189
1189
|
/**
|
|
1190
1190
|
* Connect all channels for a given endpoint type in parallel.
|
|
@@ -1192,62 +1192,65 @@ class wt {
|
|
|
1192
1192
|
async connectAllChannels(e) {
|
|
1193
1193
|
if (e.length === 0)
|
|
1194
1194
|
throw new Error("No entrypoints to connect");
|
|
1195
|
-
const
|
|
1196
|
-
if (
|
|
1197
|
-
const i =
|
|
1198
|
-
|
|
1195
|
+
const r = (await Promise.allSettled(e.map((i) => this.connectChannel(i)))).filter((i) => i.status === "rejected");
|
|
1196
|
+
if (r.length > 0) {
|
|
1197
|
+
const i = r.map((n) => {
|
|
1198
|
+
const a = n.reason;
|
|
1199
|
+
return a instanceof Error ? a.message : String(a);
|
|
1200
|
+
});
|
|
1201
|
+
throw new Error(i.join(", "));
|
|
1199
1202
|
}
|
|
1200
1203
|
}
|
|
1201
1204
|
/**
|
|
1202
1205
|
* Connect a single channel.
|
|
1203
1206
|
*/
|
|
1204
1207
|
async connectChannel(e) {
|
|
1205
|
-
const
|
|
1208
|
+
const s = new Ut({
|
|
1206
1209
|
entrypoint: e,
|
|
1207
1210
|
sessionId: this.config.sessionId,
|
|
1208
1211
|
keepaliveTimeoutMs: this.config.keepaliveTimeoutMs,
|
|
1209
|
-
onProtocolMessage: (
|
|
1210
|
-
this.config.onProtocolMessage?.(
|
|
1212
|
+
onProtocolMessage: (r) => {
|
|
1213
|
+
this.config.onProtocolMessage?.(r);
|
|
1211
1214
|
},
|
|
1212
|
-
onStateChange: (
|
|
1213
|
-
this.handleChannelStateChange(e.OpcodeGroupsFromServer,
|
|
1215
|
+
onStateChange: (r) => {
|
|
1216
|
+
this.handleChannelStateChange(e.OpcodeGroupsFromServer, r);
|
|
1214
1217
|
},
|
|
1215
|
-
onClose: (
|
|
1216
|
-
this.handleChannelClose(e.OpcodeGroupsFromServer,
|
|
1218
|
+
onClose: (r, i, n) => {
|
|
1219
|
+
this.handleChannelClose(e.OpcodeGroupsFromServer, r, i, n);
|
|
1217
1220
|
},
|
|
1218
|
-
onError: (
|
|
1219
|
-
this.config.onError?.(
|
|
1221
|
+
onError: (r) => {
|
|
1222
|
+
this.config.onError?.(r);
|
|
1220
1223
|
}
|
|
1221
1224
|
});
|
|
1222
|
-
await
|
|
1225
|
+
await s.connect(), this.channels.set(e.OpcodeGroupsFromServer, s);
|
|
1223
1226
|
}
|
|
1224
1227
|
/**
|
|
1225
1228
|
* Group entrypoints by type.
|
|
1226
1229
|
*/
|
|
1227
1230
|
groupByType(e) {
|
|
1228
|
-
const
|
|
1229
|
-
for (const
|
|
1230
|
-
const i =
|
|
1231
|
-
i.push(
|
|
1231
|
+
const s = /* @__PURE__ */ new Map();
|
|
1232
|
+
for (const r of e) {
|
|
1233
|
+
const i = s.get(r.Type) ?? [];
|
|
1234
|
+
i.push(r), s.set(r.Type, i);
|
|
1232
1235
|
}
|
|
1233
|
-
return
|
|
1236
|
+
return s;
|
|
1234
1237
|
}
|
|
1235
1238
|
/**
|
|
1236
1239
|
* Handle channel state change.
|
|
1237
1240
|
*/
|
|
1238
|
-
handleChannelStateChange(e,
|
|
1239
|
-
|
|
1241
|
+
handleChannelStateChange(e, s) {
|
|
1242
|
+
s === "stopped" && (this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped"));
|
|
1240
1243
|
}
|
|
1241
1244
|
/**
|
|
1242
1245
|
* Handle channel close.
|
|
1243
1246
|
*/
|
|
1244
|
-
handleChannelClose(e,
|
|
1247
|
+
handleChannelClose(e, s, r, i) {
|
|
1245
1248
|
if (!(this.state === "idle" || this.state === "stopped" || this.state === "offline") && this.channels.has(e)) {
|
|
1246
1249
|
if (i) {
|
|
1247
|
-
|
|
1250
|
+
c.debug("Channel closed by server"), this.shouldReconnect = !1, this.disconnectAll(), this.setState("stopped");
|
|
1248
1251
|
return;
|
|
1249
1252
|
}
|
|
1250
|
-
this.state === "connected" && (!this.connectionStable && this.activeType !== null && (
|
|
1253
|
+
this.state === "connected" && (!this.connectionStable && this.activeType !== null && (c.warn(`Connection unstable with ${R[this.activeType]}, demoting`), this.demotedTypes.add(this.activeType)), c.warn("Channel closed unexpectedly, attempting reconnect"), this.disconnectAll(), this.attemptReconnect());
|
|
1251
1254
|
}
|
|
1252
1255
|
}
|
|
1253
1256
|
/**
|
|
@@ -1257,14 +1260,14 @@ class wt {
|
|
|
1257
1260
|
async attemptReconnect() {
|
|
1258
1261
|
if (this.shouldReconnect) {
|
|
1259
1262
|
if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
|
|
1260
|
-
|
|
1263
|
+
c.warn(`Max reconnect attempts (${this.config.maxReconnectAttempts}) reached`), this.setState("offline"), this.config.onError?.(new ct(this.config.maxReconnectAttempts));
|
|
1261
1264
|
return;
|
|
1262
1265
|
}
|
|
1263
|
-
if (this.setState("reconnecting"), this.reconnectAttempts++, this.reconnectAttempts > 1 ? (
|
|
1266
|
+
if (this.setState("reconnecting"), this.reconnectAttempts++, this.reconnectAttempts > 1 ? (c.info(`Reconnecting in ${this.config.reconnectBackoffMs}ms (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`), await It(this.config.reconnectBackoffMs, this.abortController?.signal)) : c.info(`Reconnecting immediately (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`), !!this.shouldReconnect)
|
|
1264
1267
|
try {
|
|
1265
1268
|
await this.connectInternal(!0);
|
|
1266
|
-
} catch
|
|
1267
|
-
|
|
1269
|
+
} catch {
|
|
1270
|
+
await this.attemptReconnect();
|
|
1268
1271
|
}
|
|
1269
1272
|
}
|
|
1270
1273
|
}
|
|
@@ -1299,73 +1302,73 @@ class wt {
|
|
|
1299
1302
|
this.state !== e && (this.state = e, this.config.onStateChange?.(e));
|
|
1300
1303
|
}
|
|
1301
1304
|
}
|
|
1302
|
-
const
|
|
1305
|
+
const rt = M("ProtocolWorker"), w = (t, e) => {
|
|
1303
1306
|
self.postMessage(t, e ?? []);
|
|
1304
1307
|
};
|
|
1305
1308
|
let A = null, H, u = null;
|
|
1306
|
-
const U = [],
|
|
1309
|
+
const U = [], f = [], D = /* @__PURE__ */ new Map(), C = [], I = [], S = /* @__PURE__ */ new Map(), x = [];
|
|
1307
1310
|
function Y() {
|
|
1308
1311
|
try {
|
|
1309
1312
|
A?.disconnect();
|
|
1310
1313
|
} catch (t) {
|
|
1311
|
-
|
|
1314
|
+
rt.warn(`Failed to disconnect channel manager: ${t}`);
|
|
1312
1315
|
}
|
|
1313
1316
|
A = null;
|
|
1314
|
-
for (let t = 0; t <
|
|
1317
|
+
for (let t = 0; t < f.length; t++)
|
|
1315
1318
|
try {
|
|
1316
|
-
|
|
1319
|
+
f[t].port.close();
|
|
1317
1320
|
} catch {
|
|
1318
1321
|
}
|
|
1319
|
-
U.length = 0,
|
|
1322
|
+
U.length = 0, f.length = 0, D.clear();
|
|
1320
1323
|
for (let t = 0; t < I.length; t++)
|
|
1321
1324
|
try {
|
|
1322
1325
|
I[t].port.close();
|
|
1323
1326
|
} catch {
|
|
1324
1327
|
}
|
|
1325
|
-
|
|
1328
|
+
C.length = 0, I.length = 0, S.clear();
|
|
1326
1329
|
}
|
|
1327
|
-
function
|
|
1330
|
+
function v(t) {
|
|
1328
1331
|
const e = t instanceof Error ? t : new Error(String(t));
|
|
1329
1332
|
w({ type: "error", error: { name: e.name, message: e.message, stack: e.stack } });
|
|
1330
1333
|
}
|
|
1331
1334
|
function gt() {
|
|
1332
1335
|
let t = 0;
|
|
1333
|
-
for (let e = 0; e <
|
|
1334
|
-
t |=
|
|
1336
|
+
for (let e = 0; e < f.length; e++)
|
|
1337
|
+
t |= f[e].opcodeGroupsMask;
|
|
1335
1338
|
return t;
|
|
1336
1339
|
}
|
|
1337
1340
|
function Lt(t) {
|
|
1338
1341
|
if (H === void 0)
|
|
1339
1342
|
return !0;
|
|
1340
|
-
const e =
|
|
1343
|
+
const e = V(t);
|
|
1341
1344
|
if ((e & H) !== 0)
|
|
1342
1345
|
return !0;
|
|
1343
|
-
const
|
|
1344
|
-
return (e &
|
|
1346
|
+
const s = gt();
|
|
1347
|
+
return (e & s) !== 0;
|
|
1345
1348
|
}
|
|
1346
1349
|
function mt(t) {
|
|
1347
1350
|
x.length = 0;
|
|
1348
|
-
for (let e = 0; e <
|
|
1349
|
-
const
|
|
1350
|
-
(
|
|
1351
|
+
for (let e = 0; e < f.length; e++) {
|
|
1352
|
+
const s = f[e];
|
|
1353
|
+
(s.opcodeGroupsMask & t) !== 0 && x.push(s.port);
|
|
1351
1354
|
}
|
|
1352
1355
|
return x;
|
|
1353
1356
|
}
|
|
1354
|
-
function dt(t, e) {
|
|
1355
|
-
return (W(t) & e) !== 0;
|
|
1356
|
-
}
|
|
1357
1357
|
function Pt(t, e) {
|
|
1358
|
+
return (V(t) & e) !== 0;
|
|
1359
|
+
}
|
|
1360
|
+
function dt(t, e) {
|
|
1358
1361
|
if (!A || !e || typeof e != "object")
|
|
1359
1362
|
return;
|
|
1360
|
-
const
|
|
1361
|
-
if (!(
|
|
1363
|
+
const s = e;
|
|
1364
|
+
if (!(s.type !== "send" || !(s.message instanceof ArrayBuffer)))
|
|
1362
1365
|
try {
|
|
1363
|
-
const
|
|
1364
|
-
if (!
|
|
1366
|
+
const r = new Uint8Array(s.message);
|
|
1367
|
+
if (!Pt(r, t))
|
|
1365
1368
|
return;
|
|
1366
|
-
A.sendProtocolMessage(
|
|
1367
|
-
} catch (
|
|
1368
|
-
|
|
1369
|
+
A.sendProtocolMessage(r), u && u.postMessage({ direction: "sent", message: Array.from(r) });
|
|
1370
|
+
} catch (r) {
|
|
1371
|
+
v(r);
|
|
1369
1372
|
}
|
|
1370
1373
|
}
|
|
1371
1374
|
async function bt(t) {
|
|
@@ -1383,20 +1386,20 @@ async function bt(t) {
|
|
|
1383
1386
|
w({ type: "state", state: A?.managerState ?? "idle", activeType: A?.activeEndpointType ?? void 0 });
|
|
1384
1387
|
},
|
|
1385
1388
|
onError: (e) => {
|
|
1386
|
-
|
|
1389
|
+
v(e);
|
|
1387
1390
|
},
|
|
1388
1391
|
onProtocolMessage: (e) => {
|
|
1389
|
-
u && (u.postMessage({ direction: "received", message: Array.from(e) }), $(e) ===
|
|
1390
|
-
const
|
|
1391
|
-
if (!(!
|
|
1392
|
+
u && (u.postMessage({ direction: "received", message: Array.from(e) }), $(e) === P.ANALYTICS_LOGS && u.postMessage({ type: "serverLogs", message: Array.from(e) }));
|
|
1393
|
+
const s = V(e), r = Lt(e), i = mt(s);
|
|
1394
|
+
if (!(!r && i.length === 0))
|
|
1392
1395
|
try {
|
|
1393
1396
|
const n = X(e), a = e.buffer instanceof ArrayBuffer && e.byteOffset === 0 && e.byteLength === e.buffer.byteLength, o = i.length > 0;
|
|
1394
|
-
if (o && !
|
|
1397
|
+
if (o && !r && i.length === 1 && a) {
|
|
1395
1398
|
const l = e.buffer;
|
|
1396
1399
|
i[0].postMessage({ type: "protocol", message: l, headers: n }, [l]);
|
|
1397
1400
|
return;
|
|
1398
1401
|
}
|
|
1399
|
-
if (!o &&
|
|
1402
|
+
if (!o && r && a) {
|
|
1400
1403
|
const l = e.buffer;
|
|
1401
1404
|
w({ type: "protocol", message: l, headers: n }, [l]);
|
|
1402
1405
|
return;
|
|
@@ -1405,7 +1408,7 @@ async function bt(t) {
|
|
|
1405
1408
|
const l = [];
|
|
1406
1409
|
for (let _ = 1; _ < i.length; _++)
|
|
1407
1410
|
l.push(e.slice().buffer);
|
|
1408
|
-
const h =
|
|
1411
|
+
const h = r ? e.slice().buffer : null, N = e.buffer;
|
|
1409
1412
|
i[0].postMessage({ type: "protocol", message: N, headers: n }, [N]);
|
|
1410
1413
|
for (let _ = 1; _ < i.length; _++)
|
|
1411
1414
|
i[_].postMessage({ type: "protocol", message: l[_ - 1], headers: n }, [l[_ - 1]]);
|
|
@@ -1417,12 +1420,12 @@ async function bt(t) {
|
|
|
1417
1420
|
const h = e.slice().buffer;
|
|
1418
1421
|
l.postMessage({ type: "protocol", message: h, headers: n }, [h]);
|
|
1419
1422
|
}
|
|
1420
|
-
if (
|
|
1423
|
+
if (r) {
|
|
1421
1424
|
const l = e.slice().buffer;
|
|
1422
1425
|
w({ type: "protocol", message: l, headers: n }, [l]);
|
|
1423
1426
|
}
|
|
1424
1427
|
} catch (n) {
|
|
1425
|
-
|
|
1428
|
+
v(n);
|
|
1426
1429
|
}
|
|
1427
1430
|
}
|
|
1428
1431
|
}), await A.connect(t.entrypoints, { retry: t.retry });
|
|
@@ -1430,8 +1433,8 @@ async function bt(t) {
|
|
|
1430
1433
|
self.addEventListener("message", (t) => {
|
|
1431
1434
|
const e = t.data;
|
|
1432
1435
|
if (e.type === "connect") {
|
|
1433
|
-
bt(e).catch((
|
|
1434
|
-
|
|
1436
|
+
bt(e).catch((s) => {
|
|
1437
|
+
rt.error(`Failed to connect: ${s}`), v(s), Y();
|
|
1435
1438
|
});
|
|
1436
1439
|
return;
|
|
1437
1440
|
}
|
|
@@ -1443,10 +1446,10 @@ self.addEventListener("message", (t) => {
|
|
|
1443
1446
|
if (!A)
|
|
1444
1447
|
return;
|
|
1445
1448
|
try {
|
|
1446
|
-
const
|
|
1447
|
-
A.sendProtocolMessage(
|
|
1448
|
-
} catch (
|
|
1449
|
-
|
|
1449
|
+
const s = new Uint8Array(e.message);
|
|
1450
|
+
A.sendProtocolMessage(s), u && u.postMessage({ direction: "sent", message: Array.from(s) });
|
|
1451
|
+
} catch (s) {
|
|
1452
|
+
v(s);
|
|
1450
1453
|
}
|
|
1451
1454
|
return;
|
|
1452
1455
|
}
|
|
@@ -1467,67 +1470,67 @@ self.addEventListener("message", (t) => {
|
|
|
1467
1470
|
e.port.start?.();
|
|
1468
1471
|
} catch {
|
|
1469
1472
|
}
|
|
1470
|
-
const
|
|
1471
|
-
U.push(e.portId),
|
|
1473
|
+
const s = U.length;
|
|
1474
|
+
U.push(e.portId), f.push({ port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }), D.set(e.portId, s);
|
|
1472
1475
|
return;
|
|
1473
1476
|
}
|
|
1474
1477
|
if (e.type === "detachPort") {
|
|
1475
|
-
const
|
|
1476
|
-
if (
|
|
1477
|
-
const
|
|
1478
|
+
const s = D.get(e.portId);
|
|
1479
|
+
if (s !== void 0) {
|
|
1480
|
+
const r = f[s];
|
|
1478
1481
|
try {
|
|
1479
|
-
|
|
1482
|
+
r.port.close();
|
|
1480
1483
|
} catch {
|
|
1481
1484
|
}
|
|
1482
1485
|
const i = U.length - 1;
|
|
1483
|
-
if (
|
|
1486
|
+
if (s !== i) {
|
|
1484
1487
|
const n = U[i];
|
|
1485
|
-
U[
|
|
1488
|
+
U[s] = n, f[s] = f[i], D.set(n, s);
|
|
1486
1489
|
}
|
|
1487
|
-
U.length--,
|
|
1490
|
+
U.length--, f.length--, D.delete(e.portId);
|
|
1488
1491
|
}
|
|
1489
1492
|
return;
|
|
1490
1493
|
}
|
|
1491
1494
|
if (e.type === "attachSendPort") {
|
|
1492
|
-
const
|
|
1493
|
-
if (
|
|
1494
|
-
const n = I[
|
|
1495
|
+
const s = S.get(e.portId);
|
|
1496
|
+
if (s !== void 0) {
|
|
1497
|
+
const n = I[s];
|
|
1495
1498
|
try {
|
|
1496
1499
|
n.port.close();
|
|
1497
1500
|
} catch {
|
|
1498
1501
|
}
|
|
1499
|
-
const a =
|
|
1500
|
-
if (
|
|
1501
|
-
const o =
|
|
1502
|
-
|
|
1502
|
+
const a = C.length - 1;
|
|
1503
|
+
if (s !== a) {
|
|
1504
|
+
const o = C[a];
|
|
1505
|
+
C[s] = o, I[s] = I[a], S.set(o, s);
|
|
1503
1506
|
}
|
|
1504
|
-
|
|
1507
|
+
C.length--, I.length--, S.delete(e.portId);
|
|
1505
1508
|
}
|
|
1506
|
-
const
|
|
1507
|
-
|
|
1509
|
+
const r = { port: e.port, opcodeGroupsMask: e.opcodeGroupsMask }, i = C.length;
|
|
1510
|
+
C.push(e.portId), I.push(r), S.set(e.portId, i);
|
|
1508
1511
|
try {
|
|
1509
|
-
|
|
1512
|
+
r.port.start?.();
|
|
1510
1513
|
} catch {
|
|
1511
1514
|
}
|
|
1512
|
-
|
|
1513
|
-
|
|
1515
|
+
r.port.addEventListener("message", (n) => {
|
|
1516
|
+
dt(r.opcodeGroupsMask, n.data);
|
|
1514
1517
|
});
|
|
1515
1518
|
return;
|
|
1516
1519
|
}
|
|
1517
1520
|
if (e.type === "detachSendPort") {
|
|
1518
|
-
const
|
|
1519
|
-
if (
|
|
1520
|
-
const
|
|
1521
|
+
const s = S.get(e.portId);
|
|
1522
|
+
if (s !== void 0) {
|
|
1523
|
+
const r = I[s];
|
|
1521
1524
|
try {
|
|
1522
|
-
|
|
1525
|
+
r.port.close();
|
|
1523
1526
|
} catch {
|
|
1524
1527
|
}
|
|
1525
|
-
const i =
|
|
1526
|
-
if (
|
|
1527
|
-
const n =
|
|
1528
|
-
|
|
1528
|
+
const i = C.length - 1;
|
|
1529
|
+
if (s !== i) {
|
|
1530
|
+
const n = C[i];
|
|
1531
|
+
C[s] = n, I[s] = I[i], S.set(n, s);
|
|
1529
1532
|
}
|
|
1530
|
-
|
|
1533
|
+
C.length--, I.length--, S.delete(e.portId);
|
|
1531
1534
|
}
|
|
1532
1535
|
return;
|
|
1533
1536
|
}
|