@honeybbq/teamspeak-client 0.3.0 → 0.3.1
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/dist/address-BR-5unVo.cjs.map +1 -1
- package/dist/address-BfmovVpp.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/command-BLe-C2L2.js.map +1 -1
- package/dist/command-DAK4pUBP.cjs.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/crypt-handshake-CQkQreLx.cjs.map +1 -1
- package/dist/crypt-handshake-DziOY4Lq.js.map +1 -1
- package/dist/crypt-init2-D70ha4LB.js.map +1 -1
- package/dist/crypt-init2-DparLekm.cjs.map +1 -1
- package/dist/crypto/crypt.d.ts.map +1 -1
- package/dist/crypto/eax.d.ts.map +1 -1
- package/dist/crypto/identity.d.ts.map +1 -1
- package/dist/crypto-Bg02m4ZE.js.map +1 -1
- package/dist/crypto-CDlweUL3.cjs.map +1 -1
- package/dist/discovery/resolver.d.ts.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/handler-DI_abe9c.js.map +1 -1
- package/dist/handler-DuwoO5RC.cjs.map +1 -1
- package/dist/handshake/license.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +96 -65
- package/dist/index.mjs.map +1 -1
- package/dist/parser-CL33R9tr.cjs.map +1 -1
- package/dist/parser-DZMv3Jm-.js.map +1 -1
- package/dist/primitives-cNNAeFCo.cjs.map +1 -1
- package/dist/primitives-xIr6Tjk4.js.map +1 -1
- package/dist/resolver-6B8dI9gr.js.map +1 -1
- package/dist/resolver-DCcmyWSK.cjs.map +1 -1
- package/dist/throttle.d.ts.map +1 -1
- package/dist/transfer.d.ts.map +1 -1
- package/dist/transport/generation-window.d.ts.map +1 -1
- package/dist/transport/handler.d.ts.map +1 -1
- package/dist/transport/quicklz.d.ts.map +1 -1
- package/package.json +4 -5
- package/dist/address.test.d.ts +0 -2
- package/dist/address.test.d.ts.map +0 -1
- package/dist/api.test.d.ts +0 -2
- package/dist/api.test.d.ts.map +0 -1
- package/dist/command/command.test.d.ts +0 -2
- package/dist/command/command.test.d.ts.map +0 -1
- package/dist/crypto/eax.test.d.ts +0 -2
- package/dist/crypto/eax.test.d.ts.map +0 -1
- package/dist/crypto/identity.test.d.ts +0 -2
- package/dist/crypto/identity.test.d.ts.map +0 -1
- package/dist/handshake.test.d.ts +0 -2
- package/dist/handshake.test.d.ts.map +0 -1
- package/dist/helpers.test.d.ts +0 -2
- package/dist/helpers.test.d.ts.map +0 -1
- package/dist/integration.test.d.ts +0 -12
- package/dist/integration.test.d.ts.map +0 -1
- package/dist/notifications.test.d.ts +0 -2
- package/dist/notifications.test.d.ts.map +0 -1
- package/dist/throttle.test.d.ts +0 -2
- package/dist/throttle.test.d.ts.map +0 -1
- package/dist/transport/generation-window.test.d.ts +0 -2
- package/dist/transport/generation-window.test.d.ts.map +0 -1
- package/dist/transport/packet.test.d.ts +0 -2
- package/dist/transport/packet.test.d.ts.map +0 -1
- package/dist/transport/quicklz.test.d.ts +0 -2
- package/dist/transport/quicklz.test.d.ts.map +0 -1
- package/dist/transport/whisper.test.d.ts +0 -2
- package/dist/transport/whisper.test.d.ts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -426,7 +426,7 @@ var $ = class {
|
|
|
426
426
|
#s = new j();
|
|
427
427
|
#c = /* @__PURE__ */ new Map();
|
|
428
428
|
#l = [];
|
|
429
|
-
#u =
|
|
429
|
+
#u = null;
|
|
430
430
|
#d = [];
|
|
431
431
|
#f = [];
|
|
432
432
|
#p = [];
|
|
@@ -437,10 +437,11 @@ var $ = class {
|
|
|
437
437
|
#v = [];
|
|
438
438
|
#y = [];
|
|
439
439
|
#b = [];
|
|
440
|
-
#x;
|
|
440
|
+
#x = [];
|
|
441
441
|
#S;
|
|
442
|
+
#C;
|
|
442
443
|
constructor(t, n, r, i = {}) {
|
|
443
|
-
this.#e = t, this.#t = n, this.nickname = r, this.logger = i.logger ?? e, this.#n = i.resolver ?? new y(this.logger), this.#r = pe(i), this.crypt = new v(t), this.handler = new x(this.crypt, this.logger), this.handler.onPacket = (e) => this.#
|
|
444
|
+
this.#e = t, this.#t = n, this.nickname = r, this.logger = i.logger ?? e, this.#n = i.resolver ?? new y(this.logger), this.#r = pe(i), this.crypt = new v(t), this.handler = new x(this.crypt, this.logger), this.handler.onPacket = (e) => this.#E(e), this.handler.onClosed = (e) => this.#F(e), i.commandMiddleware && this.#b.push(...i.commandMiddleware), i.eventMiddleware && this.#x.push(...i.eventMiddleware), this.#S = this.#L(), this.#C = this.#R();
|
|
444
445
|
}
|
|
445
446
|
get status() {
|
|
446
447
|
return this.#i;
|
|
@@ -450,8 +451,8 @@ var $ = class {
|
|
|
450
451
|
}
|
|
451
452
|
async connect() {
|
|
452
453
|
if (this.#i !== t.Disconnected) throw new l();
|
|
453
|
-
this.#
|
|
454
|
-
let e = await this.#
|
|
454
|
+
this.#w(), this.#i = t.Connecting;
|
|
455
|
+
let e = await this.#T();
|
|
455
456
|
this.logger.info("connecting to server", { address: e }), await this.handler.connect(e);
|
|
456
457
|
}
|
|
457
458
|
async disconnect() {
|
|
@@ -461,16 +462,29 @@ var $ = class {
|
|
|
461
462
|
await this.execCommand("clientdisconnect reasonmsg=Shutdown", 1e3);
|
|
462
463
|
} catch {}
|
|
463
464
|
this.handler.close();
|
|
464
|
-
let n = this.#
|
|
465
|
+
let n = this.#v.slice();
|
|
465
466
|
for (let e of n) setImmediate(() => e(void 0));
|
|
466
467
|
}
|
|
467
468
|
waitConnected(e) {
|
|
468
|
-
return this.#i === t.Connected ? Promise.resolve() : new Promise((t, n) => {
|
|
469
|
-
|
|
469
|
+
return this.#i === t.Connected ? Promise.resolve() : this.#u ? Promise.reject(this.#u) : new Promise((t, n) => {
|
|
470
|
+
let r = {
|
|
471
|
+
resolve: () => {
|
|
472
|
+
e?.removeEventListener("abort", i), t();
|
|
473
|
+
},
|
|
474
|
+
reject: (t) => {
|
|
475
|
+
e?.removeEventListener("abort", i), n(t);
|
|
476
|
+
}
|
|
477
|
+
}, i = () => {
|
|
478
|
+
let t = this.#l.indexOf(r);
|
|
479
|
+
t >= 0 && this.#l.splice(t, 1);
|
|
480
|
+
let n = e?.reason;
|
|
481
|
+
r.reject(n instanceof Error ? n : Error(String(n ?? "Connection wait aborted")));
|
|
482
|
+
};
|
|
483
|
+
this.#l.push(r), e?.aborted ? i() : e?.addEventListener("abort", i, { once: !0 });
|
|
470
484
|
});
|
|
471
485
|
}
|
|
472
486
|
async sendCommandNoWait(e) {
|
|
473
|
-
await this.#a.wait(), await this.#
|
|
487
|
+
await this.#a.wait(), await this.#S(e);
|
|
474
488
|
}
|
|
475
489
|
async execCommand(e, t = 1e4) {
|
|
476
490
|
await this.execCommandWithResponse(e, t);
|
|
@@ -478,7 +492,7 @@ var $ = class {
|
|
|
478
492
|
async execCommandWithResponse(e, t = 1e4) {
|
|
479
493
|
let [n, r] = this.#o.register(), i = A(e, n);
|
|
480
494
|
try {
|
|
481
|
-
await this.#a.wait(), await this.#
|
|
495
|
+
await this.#a.wait(), await this.#S(i);
|
|
482
496
|
} catch (e) {
|
|
483
497
|
throw this.#o.unregister(n), e;
|
|
484
498
|
}
|
|
@@ -489,38 +503,38 @@ var $ = class {
|
|
|
489
503
|
on(e, t) {
|
|
490
504
|
switch (e) {
|
|
491
505
|
case "textMessage":
|
|
492
|
-
this.#
|
|
506
|
+
this.#d.push(t);
|
|
493
507
|
break;
|
|
494
508
|
case "clientEnter":
|
|
495
|
-
this.#
|
|
509
|
+
this.#f.push(t);
|
|
496
510
|
break;
|
|
497
511
|
case "clientLeave":
|
|
498
|
-
this.#
|
|
512
|
+
this.#p.push(t);
|
|
499
513
|
break;
|
|
500
514
|
case "clientMoved":
|
|
501
|
-
this.#
|
|
515
|
+
this.#m.push(t);
|
|
502
516
|
break;
|
|
503
517
|
case "poked":
|
|
504
|
-
this.#
|
|
518
|
+
this.#h.push(t);
|
|
505
519
|
break;
|
|
506
520
|
case "voiceData":
|
|
507
|
-
this.#
|
|
521
|
+
this.#g.push(t);
|
|
508
522
|
break;
|
|
509
523
|
case "connected":
|
|
510
|
-
this.#
|
|
524
|
+
this.#_.push(t);
|
|
511
525
|
break;
|
|
512
526
|
case "disconnected":
|
|
513
|
-
this.#
|
|
527
|
+
this.#v.push(t);
|
|
514
528
|
break;
|
|
515
|
-
case "kicked": this.#
|
|
529
|
+
case "kicked": this.#y.push(t);
|
|
516
530
|
}
|
|
517
531
|
return this;
|
|
518
532
|
}
|
|
519
533
|
useCommandMiddleware(...e) {
|
|
520
|
-
return this.#
|
|
534
|
+
return this.#b.push(...e), this.#S = this.#L(), this;
|
|
521
535
|
}
|
|
522
536
|
useEventMiddleware(...e) {
|
|
523
|
-
return this.#
|
|
537
|
+
return this.#x.push(...e), this.#C = this.#R(), this;
|
|
524
538
|
}
|
|
525
539
|
clientID() {
|
|
526
540
|
return this.clid;
|
|
@@ -571,16 +585,16 @@ var $ = class {
|
|
|
571
585
|
return P(e, t, n);
|
|
572
586
|
}
|
|
573
587
|
_markConnected() {
|
|
574
|
-
this.#i = t.Connected;
|
|
575
|
-
for (let e of this.#l) e();
|
|
588
|
+
this.#i = t.Connected, this.#u = null;
|
|
589
|
+
for (let e of this.#l) e.resolve();
|
|
576
590
|
this.#l = [];
|
|
577
|
-
let e = this.#
|
|
591
|
+
let e = this.#_.slice();
|
|
578
592
|
for (let t of e) setImmediate(() => t());
|
|
579
593
|
}
|
|
580
|
-
#
|
|
581
|
-
this.handler.close(), this.crypt = new v(this.#e), this.handler = new x(this.crypt, this.logger), this.handler.onPacket = (e) => this.#
|
|
594
|
+
#w() {
|
|
595
|
+
this.#u = null, this.handler.close(), this.crypt = new v(this.#e), this.handler = new x(this.crypt, this.logger), this.handler.onPacket = (e) => this.#E(e), this.handler.onClosed = (e) => this.#F(e), this.#o.reset(), this.#s.reset(), this.#c.clear(), this.clid = 0, this.#S = this.#L();
|
|
582
596
|
}
|
|
583
|
-
async #
|
|
597
|
+
async #T() {
|
|
584
598
|
let e = this.#t.includes(":") ? this.#t : `${this.#t}:9987`;
|
|
585
599
|
try {
|
|
586
600
|
return (await this.#n.resolve(this.#t))[0]?.addr ?? e;
|
|
@@ -588,10 +602,10 @@ var $ = class {
|
|
|
588
602
|
return e;
|
|
589
603
|
}
|
|
590
604
|
}
|
|
591
|
-
#T(e) {
|
|
592
|
-
this.#E(e);
|
|
593
|
-
}
|
|
594
605
|
#E(e) {
|
|
606
|
+
this.#D(e);
|
|
607
|
+
}
|
|
608
|
+
#D(e) {
|
|
595
609
|
let t = e.typeFlagged & 15;
|
|
596
610
|
if (t === 8) {
|
|
597
611
|
let t = te(this.crypt, e.data);
|
|
@@ -599,13 +613,13 @@ var $ = class {
|
|
|
599
613
|
return;
|
|
600
614
|
}
|
|
601
615
|
if ((t === 0 || t === 1) && e.data.length > 5) {
|
|
602
|
-
this.#
|
|
616
|
+
this.#O(e.data);
|
|
603
617
|
return;
|
|
604
618
|
}
|
|
605
|
-
(t === 2 || t === 3) && e.data.length > 0 && this.#
|
|
619
|
+
(t === 2 || t === 3) && e.data.length > 0 && this.#k(Buffer.from(e.data).toString("utf8"));
|
|
606
620
|
}
|
|
607
|
-
#
|
|
608
|
-
if (this.#
|
|
621
|
+
#O(e) {
|
|
622
|
+
if (this.#g.length === 0) return;
|
|
609
623
|
let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint16(2, !1);
|
|
610
624
|
if (t === this.clid) return;
|
|
611
625
|
let n = {
|
|
@@ -613,22 +627,22 @@ var $ = class {
|
|
|
613
627
|
codec: e[4],
|
|
614
628
|
data: e.subarray(5)
|
|
615
629
|
};
|
|
616
|
-
for (let e of this.#
|
|
630
|
+
for (let e of this.#g) setImmediate(() => e(n));
|
|
617
631
|
}
|
|
618
|
-
#
|
|
632
|
+
#k(e) {
|
|
619
633
|
if (!e) return;
|
|
620
634
|
let t = e.split("\0").join("\n").split("\n");
|
|
621
635
|
for (let e of t) {
|
|
622
636
|
let t = e.replace(/\r$/, "");
|
|
623
|
-
if (t) for (let e of Z(t)) this.#
|
|
637
|
+
if (t) for (let e of Z(t)) this.#A(e);
|
|
624
638
|
}
|
|
625
639
|
}
|
|
626
|
-
#
|
|
640
|
+
#A(e) {
|
|
627
641
|
let t = T(e);
|
|
628
642
|
if (t && t.name) {
|
|
629
643
|
if (t.name.startsWith("notify")) {
|
|
630
644
|
let e = re(t, this.clid, this.#c, this.nickname);
|
|
631
|
-
this.#
|
|
645
|
+
this.#M(e, t.params);
|
|
632
646
|
return;
|
|
633
647
|
}
|
|
634
648
|
switch (t.name) {
|
|
@@ -642,7 +656,7 @@ var $ = class {
|
|
|
642
656
|
V(this, t.params);
|
|
643
657
|
break;
|
|
644
658
|
case "error":
|
|
645
|
-
this.#
|
|
659
|
+
this.#j(t.params);
|
|
646
660
|
break;
|
|
647
661
|
default: {
|
|
648
662
|
let e = t.params;
|
|
@@ -659,31 +673,35 @@ var $ = class {
|
|
|
659
673
|
}
|
|
660
674
|
}
|
|
661
675
|
}
|
|
662
|
-
#
|
|
663
|
-
let { err:
|
|
664
|
-
|
|
676
|
+
#j(e) {
|
|
677
|
+
let { err: n, rc: r } = k(e);
|
|
678
|
+
if (r === null ? this.#o.discardBuffer() : this.#o.resolve(r, n), n && this.#i !== t.Connected) {
|
|
679
|
+
this.#I(n);
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
(e.id ?? "0") === "3329" && setImmediate(() => this.disconnect().catch(() => {}));
|
|
665
683
|
}
|
|
666
|
-
#
|
|
684
|
+
#M(e, t) {
|
|
667
685
|
switch (e.kind) {
|
|
668
686
|
case "clientEnter": {
|
|
669
687
|
let t = e.info;
|
|
670
|
-
t.id !== 0 && X(this.nickname, t.nickname) && (this.clid = t.id, this.handler.setClientID(t.id), this.#o.signalWelcomeComplete()), this.#
|
|
688
|
+
t.id !== 0 && t.id === this.clid ? (this.nickname = t.nickname, this.#o.signalWelcomeComplete()) : t.id !== 0 && this.clid === 0 && X(this.nickname, t.nickname) && (this.clid = t.id, this.handler.setClientID(t.id), this.nickname = t.nickname, this.#o.signalWelcomeComplete()), this.#N("clientEnter", t);
|
|
671
689
|
break;
|
|
672
690
|
}
|
|
673
691
|
case "clientLeave":
|
|
674
|
-
if (this.#
|
|
692
|
+
if (this.#N("clientLeave", e.event), e.isSelf && (e.event.reasonID === 4 || e.event.reasonID === 5)) {
|
|
675
693
|
let t = e.event.reasonMsg;
|
|
676
|
-
for (let e of this.#
|
|
694
|
+
for (let e of this.#y) setImmediate(() => e(t));
|
|
677
695
|
}
|
|
678
696
|
break;
|
|
679
697
|
case "clientMoved":
|
|
680
|
-
this.#
|
|
698
|
+
this.#N("clientMoved", e.event);
|
|
681
699
|
break;
|
|
682
700
|
case "textMessage":
|
|
683
|
-
this.#
|
|
701
|
+
this.#N("textMessage", e.message);
|
|
684
702
|
break;
|
|
685
703
|
case "poked":
|
|
686
|
-
this.#
|
|
704
|
+
this.#N("poked", e.event);
|
|
687
705
|
break;
|
|
688
706
|
case "startUpload":
|
|
689
707
|
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
@@ -694,40 +712,53 @@ var $ = class {
|
|
|
694
712
|
case "fileTransferStatus": this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
695
713
|
}
|
|
696
714
|
}
|
|
697
|
-
#M(e, t) {
|
|
698
|
-
this.#S(t);
|
|
699
|
-
}
|
|
700
715
|
#N(e, t) {
|
|
716
|
+
this.#C(t);
|
|
717
|
+
}
|
|
718
|
+
#P(e, t) {
|
|
701
719
|
switch (e) {
|
|
702
720
|
case "textMessage":
|
|
703
|
-
for (let e of this.#
|
|
721
|
+
for (let e of this.#d) setImmediate(() => e(t));
|
|
704
722
|
break;
|
|
705
723
|
case "clientEnter":
|
|
706
|
-
for (let e of this.#
|
|
724
|
+
for (let e of this.#f) setImmediate(() => e(t));
|
|
707
725
|
break;
|
|
708
726
|
case "clientLeave":
|
|
709
|
-
for (let e of this.#
|
|
727
|
+
for (let e of this.#p) setImmediate(() => e(t));
|
|
710
728
|
break;
|
|
711
729
|
case "clientMoved":
|
|
712
|
-
for (let e of this.#
|
|
730
|
+
for (let e of this.#m) setImmediate(() => e(t));
|
|
713
731
|
break;
|
|
714
|
-
case "poked": for (let e of this.#
|
|
732
|
+
case "poked": for (let e of this.#h) setImmediate(() => e(t));
|
|
715
733
|
}
|
|
716
734
|
}
|
|
717
|
-
#
|
|
735
|
+
#F(e) {
|
|
718
736
|
if (this.#i === t.Disconnected) return;
|
|
737
|
+
if (this.#i !== t.Connected) {
|
|
738
|
+
this.#I(e ?? /* @__PURE__ */ Error("Connection closed before the TeamSpeak handshake completed"));
|
|
739
|
+
return;
|
|
740
|
+
}
|
|
719
741
|
this.#i = t.Disconnected;
|
|
720
|
-
let n = this.#
|
|
742
|
+
let n = this.#v.slice();
|
|
721
743
|
for (let t of n) setImmediate(() => t(e ?? void 0));
|
|
722
744
|
}
|
|
723
|
-
#
|
|
724
|
-
|
|
745
|
+
#I(e) {
|
|
746
|
+
this.#u = e;
|
|
747
|
+
let n = this.#l.splice(0);
|
|
748
|
+
for (let t of n) t.reject(e);
|
|
749
|
+
if (this.#i === t.Disconnected) return;
|
|
750
|
+
this.#i = t.Disconnected, this.handler.close();
|
|
751
|
+
let r = this.#v.slice();
|
|
752
|
+
for (let t of r) setImmediate(() => t(e));
|
|
753
|
+
}
|
|
754
|
+
#L() {
|
|
755
|
+
return L(this.#b, async (e) => {
|
|
725
756
|
this.handler.sendPacket(b.Command, Buffer.from(e), 0);
|
|
726
757
|
});
|
|
727
758
|
}
|
|
728
|
-
#
|
|
729
|
-
return R(this.#
|
|
730
|
-
typeof e == "object" && e && "invokerName" in e && "message" in e && "targetMode" in e ? this.#
|
|
759
|
+
#R() {
|
|
760
|
+
return R(this.#x, (e) => {
|
|
761
|
+
typeof e == "object" && e && "invokerName" in e && "message" in e && "targetMode" in e ? this.#P("textMessage", e) : typeof e == "object" && e && "invokerName" in e && "message" in e && !("targetMode" in e) ? this.#P("poked", e) : typeof e == "object" && e && "id" in e && "uid" in e ? this.#P("clientEnter", e) : typeof e == "object" && e && "id" in e && "reasonID" in e && "targetChannelID" in e ? this.#P("clientMoved", e) : typeof e == "object" && e && "id" in e && "reasonID" in e && this.#P("clientLeave", e);
|
|
731
762
|
});
|
|
732
763
|
}
|
|
733
764
|
};
|