@honeybbq/teamspeak-client 0.2.3 → 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/README.md +1 -0
- package/dist/address-BR-5unVo.cjs +2 -0
- package/dist/address-BR-5unVo.cjs.map +1 -0
- package/dist/address-BfmovVpp.js +65 -0
- package/dist/address-BfmovVpp.js.map +1 -0
- package/dist/address.d.ts +9 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/command/index.cjs +1 -1
- package/dist/command/index.mjs +2 -2
- package/dist/{command-CTDmBXd_.js → command-BLe-C2L2.js} +2 -4
- package/dist/{command-CUPNiKRl.cjs.map → command-BLe-C2L2.js.map} +1 -1
- package/dist/command-DAK4pUBP.cjs +4 -0
- package/dist/command-DAK4pUBP.cjs.map +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/{crypt-handshake-D2Rsi2e3.cjs → crypt-handshake-CQkQreLx.cjs} +2 -2
- package/dist/crypt-handshake-CQkQreLx.cjs.map +1 -0
- package/dist/{crypt-handshake-DIj51kno.js → crypt-handshake-DziOY4Lq.js} +2 -2
- package/dist/crypt-handshake-DziOY4Lq.js.map +1 -0
- package/dist/{crypt-init2-C2X9oK4i.js → crypt-init2-D70ha4LB.js} +6 -6
- package/dist/crypt-init2-D70ha4LB.js.map +1 -0
- package/dist/{crypt-init2-CazdFwqF.cjs → crypt-init2-DparLekm.cjs} +2 -2
- package/dist/crypt-init2-DparLekm.cjs.map +1 -0
- 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/index.cjs +1 -1
- package/dist/crypto/index.mjs +2 -2
- package/dist/{crypto-CwIMggQG.js → crypto-Bg02m4ZE.js} +7 -7
- package/dist/crypto-Bg02m4ZE.js.map +1 -0
- package/dist/crypto-CDlweUL3.cjs +2 -0
- package/dist/crypto-CDlweUL3.cjs.map +1 -0
- package/dist/discovery/index.cjs +1 -1
- package/dist/discovery/index.mjs +1 -1
- package/dist/discovery/resolver.d.ts.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/{handler-BP38rMNl.js → handler-DI_abe9c.js} +153 -125
- package/dist/handler-DI_abe9c.js.map +1 -0
- package/dist/handler-DuwoO5RC.cjs +2 -0
- package/dist/handler-DuwoO5RC.cjs.map +1 -0
- package/dist/handshake/index.cjs +1 -1
- package/dist/handshake/index.mjs +2 -2
- package/dist/handshake/license.d.ts.map +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +236 -191
- package/dist/index.mjs.map +1 -1
- package/dist/{parser-B6cGUByG.cjs → parser-CL33R9tr.cjs} +2 -2
- package/dist/parser-CL33R9tr.cjs.map +1 -0
- package/dist/{parser-BPzO8py_.js → parser-DZMv3Jm-.js} +2 -2
- package/dist/parser-DZMv3Jm-.js.map +1 -0
- package/dist/primitives-cNNAeFCo.cjs +2 -0
- package/dist/primitives-cNNAeFCo.cjs.map +1 -0
- package/dist/primitives-xIr6Tjk4.js +1457 -0
- package/dist/primitives-xIr6Tjk4.js.map +1 -0
- package/dist/resolver-6B8dI9gr.js +141 -0
- package/dist/resolver-6B8dI9gr.js.map +1 -0
- package/dist/resolver-DCcmyWSK.cjs +4 -0
- package/dist/resolver-DCcmyWSK.cjs.map +1 -0
- 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 +2 -0
- package/dist/transport/handler.d.ts.map +1 -1
- package/dist/transport/index.cjs +1 -1
- package/dist/transport/index.mjs +1 -1
- package/dist/transport/quicklz.d.ts.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -7
- package/dist/command/command.test.d.ts +0 -2
- package/dist/command/command.test.d.ts.map +0 -1
- package/dist/command-CTDmBXd_.js.map +0 -1
- package/dist/command-CUPNiKRl.cjs +0 -4
- package/dist/crypt-handshake-D2Rsi2e3.cjs.map +0 -1
- package/dist/crypt-handshake-DIj51kno.js.map +0 -1
- package/dist/crypt-init2-C2X9oK4i.js.map +0 -1
- package/dist/crypt-init2-CazdFwqF.cjs.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/crypto-CwIMggQG.js.map +0 -1
- package/dist/crypto-IbzNNTgO.cjs +0 -2
- package/dist/crypto-IbzNNTgO.cjs.map +0 -1
- package/dist/handler-BJdwhtkp.cjs +0 -2
- package/dist/handler-BJdwhtkp.cjs.map +0 -1
- package/dist/handler-BP38rMNl.js.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/parser-B6cGUByG.cjs.map +0 -1
- package/dist/parser-BPzO8py_.js.map +0 -1
- package/dist/primitives-Bt-L4BZa.js +0 -1483
- package/dist/primitives-Bt-L4BZa.js.map +0 -1
- package/dist/primitives-ClIhDdNZ.cjs +0 -2
- package/dist/primitives-ClIhDdNZ.cjs.map +0 -1
- package/dist/resolver-B7jho9CP.cjs +0 -4
- package/dist/resolver-B7jho9CP.cjs.map +0 -1
- package/dist/resolver-BDCF2KbM.js +0 -162
- package/dist/resolver-BDCF2KbM.js.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/types-ANvuLFWH.cjs +0 -2
- package/dist/types-ANvuLFWH.cjs.map +0 -1
- package/dist/types-Xm1vrW4s.js +0 -18
- package/dist/types-Xm1vrW4s.js.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as r, S as i, _ as a, b as o, d as s, g as c, h as l, l as u, o as d, p as
|
|
3
|
-
import { t as v } from "./crypto-
|
|
4
|
-
import { t as y } from "./resolver-
|
|
5
|
-
import { a as b, t as x } from "./handler-
|
|
6
|
-
import { i as S, n as C, t as w } from "./command-
|
|
7
|
-
import { n as te } from "./crypt-handshake-
|
|
8
|
-
import { t as
|
|
9
|
-
import { t as
|
|
10
|
-
import { createHash as
|
|
11
|
-
import { createConnection as
|
|
1
|
+
import { a as e, i as t, o as n } from "./address-BfmovVpp.js";
|
|
2
|
+
import { C as r, S as i, _ as a, b as o, d as s, g as c, h as l, l as u, o as d, p as f, r as p, u as m, v as h, w as ee, x as g, y as _ } from "./primitives-xIr6Tjk4.js";
|
|
3
|
+
import { t as v } from "./crypto-Bg02m4ZE.js";
|
|
4
|
+
import { t as y } from "./resolver-6B8dI9gr.js";
|
|
5
|
+
import { a as b, t as x } from "./handler-DI_abe9c.js";
|
|
6
|
+
import { i as S, n as C, t as w } from "./command-BLe-C2L2.js";
|
|
7
|
+
import { n as te } from "./crypt-handshake-DziOY4Lq.js";
|
|
8
|
+
import { t as ne } from "./crypt-init2-D70ha4LB.js";
|
|
9
|
+
import { t as T } from "./parser-DZMv3Jm-.js";
|
|
10
|
+
import { createHash as E } from "node:crypto";
|
|
11
|
+
import { createConnection as D } from "node:net";
|
|
12
12
|
//#region src/commands.ts
|
|
13
|
-
var
|
|
13
|
+
var O = class {
|
|
14
14
|
#e = /* @__PURE__ */ new Map();
|
|
15
15
|
#t = 0;
|
|
16
16
|
#n = [];
|
|
@@ -50,7 +50,7 @@ var k = class {
|
|
|
50
50
|
this.#e.clear(), this.#n = [], this.#r = !1, this.#t = 0;
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
function
|
|
53
|
+
function k(e) {
|
|
54
54
|
let t = e.id ?? "0", n = e.msg ?? "", i = e.return_code, a = null;
|
|
55
55
|
t !== "0" && (a = new r(t, n));
|
|
56
56
|
let o = null;
|
|
@@ -63,12 +63,12 @@ function A(e) {
|
|
|
63
63
|
rc: o
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function A(e, t) {
|
|
67
67
|
return e.includes("return_code=") ? e : `${e} return_code=${t}`;
|
|
68
68
|
}
|
|
69
69
|
//#endregion
|
|
70
70
|
//#region src/transfer.ts
|
|
71
|
-
var
|
|
71
|
+
var j = class {
|
|
72
72
|
#e = /* @__PURE__ */ new Map();
|
|
73
73
|
#t = 0;
|
|
74
74
|
register() {
|
|
@@ -89,9 +89,9 @@ var M = class {
|
|
|
89
89
|
this.#e.clear(), this.#t = 0;
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
|
-
function
|
|
92
|
+
function M(e, t, n) {
|
|
93
93
|
return new Promise((r, i) => {
|
|
94
|
-
let a =
|
|
94
|
+
let a = D({
|
|
95
95
|
host: e,
|
|
96
96
|
port: t
|
|
97
97
|
}, () => {
|
|
@@ -104,19 +104,19 @@ function N(e, t, n) {
|
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
|
-
async function
|
|
108
|
-
let r = await
|
|
107
|
+
async function N(e, t, n) {
|
|
108
|
+
let r = await M(e, t.port, t.fileTransferKey);
|
|
109
109
|
await new Promise((e, t) => {
|
|
110
110
|
n.pipe(r), r.on("finish", e), r.on("error", t);
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
|
-
async function
|
|
114
|
-
let r = await
|
|
113
|
+
async function P(e, t, n) {
|
|
114
|
+
let r = await M(e, t.port, t.fileTransferKey);
|
|
115
115
|
await new Promise((e, t) => {
|
|
116
116
|
r.pipe(n), n.on("finish", e), r.on("error", t), n.on("error", t);
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function F(e, t, n, r, i, a) {
|
|
120
120
|
let o = t.startsWith("/") ? t : `/${t}`;
|
|
121
121
|
return w("ftinitupload", {
|
|
122
122
|
cid: String(e),
|
|
@@ -128,7 +128,7 @@ function I(e, t, n, r, i, a) {
|
|
|
128
128
|
resume: "0"
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function I(e, t, n, r) {
|
|
132
132
|
let i = t.startsWith("/") ? t : `/${t}`;
|
|
133
133
|
return w("ftinitdownload", {
|
|
134
134
|
cid: String(e),
|
|
@@ -140,28 +140,28 @@ function L(e, t, n, r) {
|
|
|
140
140
|
}
|
|
141
141
|
//#endregion
|
|
142
142
|
//#region src/events.ts
|
|
143
|
-
function
|
|
143
|
+
function L(e, t) {
|
|
144
144
|
let n = t;
|
|
145
145
|
for (let t = e.length - 1; t >= 0; t--) n = e[t](n);
|
|
146
146
|
return n;
|
|
147
147
|
}
|
|
148
|
-
function
|
|
148
|
+
function R(e, t) {
|
|
149
149
|
let n = t;
|
|
150
150
|
for (let t = e.length - 1; t >= 0; t--) n = e[t](n);
|
|
151
151
|
return n;
|
|
152
152
|
}
|
|
153
153
|
//#endregion
|
|
154
154
|
//#region src/handshake.ts
|
|
155
|
-
function
|
|
155
|
+
function z(e, t) {
|
|
156
156
|
let n = t.alpha ?? "", r = t.beta ?? "", i = t.omega ?? "";
|
|
157
|
-
e.crypt.initCrypto(n, r, i), e.logger.info("crypto initialized (P-256 path), sending clientinit"),
|
|
157
|
+
e.crypt.initCrypto(n, r, i), e.logger.info("crypto initialized (P-256 path), sending clientinit"), G(e);
|
|
158
158
|
}
|
|
159
|
-
function
|
|
159
|
+
function B(e, t) {
|
|
160
160
|
e.logger.info("received initivexpand2"), e.handler.receivedFinalInitAck();
|
|
161
|
-
let n = t.l ?? "", r = t.omega ?? "", i = t.proof ?? "", a = t.beta ?? "", o =
|
|
162
|
-
|
|
161
|
+
let n = t.l ?? "", r = t.omega ?? "", i = t.proof ?? "", a = t.beta ?? "", o = H(e, a);
|
|
162
|
+
ne(e.crypt, n, r, i, a, o), G(e);
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function V(e, t) {
|
|
165
165
|
let n = t.aclid ?? t.clid ?? "", r = n ? parseInt(n, 10) : 0;
|
|
166
166
|
r > 0 && (e.clid = r, e.handler.setClientID(r)), e.logger.info("connected to server", { selfId: e.clid }), e._markConnected(), setImmediate(() => {
|
|
167
167
|
let t = w("clientupdate", {
|
|
@@ -171,25 +171,25 @@ function H(e, t) {
|
|
|
171
171
|
e.sendCommandNoWait(t).catch(() => {});
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
|
-
function
|
|
175
|
-
let [n, r] =
|
|
174
|
+
function H(e, t) {
|
|
175
|
+
let [n, r] = p(), i = Buffer.from(n).toString("base64"), a = U(e, n, t), o = C("clientek", [["ek", i], ["proof", a]]);
|
|
176
176
|
return e.handler.sendPacket(b.Command, Buffer.from(o), 0), r;
|
|
177
177
|
}
|
|
178
|
-
function
|
|
178
|
+
function U(e, t, n) {
|
|
179
179
|
let r = Buffer.from(n, "base64"), i = /* @__PURE__ */ new Uint8Array(86);
|
|
180
180
|
i.set(t.slice(0, 32)), i.set(r.slice(0, Math.min(54, r.length)), 32);
|
|
181
181
|
let a = d(e.crypt.identity.privateKey, i);
|
|
182
182
|
return Buffer.from(a).toString("base64");
|
|
183
183
|
}
|
|
184
|
-
function
|
|
185
|
-
return e === "" ? "" :
|
|
184
|
+
function W(e) {
|
|
185
|
+
return e === "" ? "" : E("sha1").update(e).digest().toString("base64");
|
|
186
186
|
}
|
|
187
|
-
function
|
|
188
|
-
let t =
|
|
187
|
+
function G(e) {
|
|
188
|
+
let t = K(e);
|
|
189
189
|
e.handler.sendPacket(b.Command, Buffer.from(t), 0);
|
|
190
190
|
}
|
|
191
|
-
function
|
|
192
|
-
let t = e.crypt.identity.publicKeyBase64(), n = e.getClientInitOptions(), r =
|
|
191
|
+
function K(e) {
|
|
192
|
+
let t = e.crypt.identity.publicKeyBase64(), n = e.getClientInitOptions(), r = W(n.defaultChannelPassword), i = W(n.serverPassword), a = E("sha1").update(t).digest().toString("base64");
|
|
193
193
|
return C("clientinit", [
|
|
194
194
|
["client_nickname", e.nickname],
|
|
195
195
|
["client_version", "3.?.? [Build: 5680278000]"],
|
|
@@ -209,7 +209,7 @@ function q(e) {
|
|
|
209
209
|
}
|
|
210
210
|
//#endregion
|
|
211
211
|
//#region src/helpers.ts
|
|
212
|
-
function
|
|
212
|
+
function q(e) {
|
|
213
213
|
if (e === "" || e === void 0) return 0n;
|
|
214
214
|
try {
|
|
215
215
|
return BigInt(e);
|
|
@@ -217,55 +217,68 @@ function J(e) {
|
|
|
217
217
|
return 0n;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
function
|
|
220
|
+
function J(e) {
|
|
221
221
|
let t = parseInt(e, 10);
|
|
222
222
|
return isNaN(t) || t < 0 || t > 65535 ? 0 : t;
|
|
223
223
|
}
|
|
224
|
-
function
|
|
224
|
+
function Y(e) {
|
|
225
225
|
let t = parseInt(e, 10);
|
|
226
226
|
return isNaN(t) ? 0 : t;
|
|
227
227
|
}
|
|
228
|
-
function
|
|
228
|
+
function X(e, t) {
|
|
229
229
|
if (t === e) return !0;
|
|
230
230
|
if (!t.startsWith(e)) return !1;
|
|
231
231
|
let n = t.slice(e.length);
|
|
232
232
|
return /^\d+$/.test(n);
|
|
233
233
|
}
|
|
234
|
-
function
|
|
234
|
+
function Z(e) {
|
|
235
235
|
let t = e.indexOf(" ");
|
|
236
236
|
if (t < 0) return [e];
|
|
237
237
|
let n = e.slice(0, t), r = e.slice(t + 1);
|
|
238
238
|
if (!r.includes("|")) return [e];
|
|
239
|
-
let i = r.split("|"), a = [];
|
|
240
|
-
for (let e of i)
|
|
239
|
+
let i = r.split("|"), a = [], o = /* @__PURE__ */ new Map();
|
|
240
|
+
for (let e of i) {
|
|
241
|
+
if (e === "") continue;
|
|
242
|
+
let t = e.split(" ").filter(Boolean), r = /* @__PURE__ */ new Set();
|
|
243
|
+
for (let e of t) r.add(Q(e));
|
|
244
|
+
let i = [];
|
|
245
|
+
for (let [e, t] of o) r.has(e) || i.push(t);
|
|
246
|
+
let s = [...i, ...t];
|
|
247
|
+
a.push(`${n} ${s.join(" ")}`), o = /* @__PURE__ */ new Map();
|
|
248
|
+
for (let e of s) o.set(Q(e), e);
|
|
249
|
+
}
|
|
241
250
|
return a.length === 0 ? [e] : a;
|
|
242
251
|
}
|
|
252
|
+
function Q(e) {
|
|
253
|
+
let t = e.indexOf("=");
|
|
254
|
+
return t > 0 ? e.slice(0, t) : e;
|
|
255
|
+
}
|
|
243
256
|
//#endregion
|
|
244
257
|
//#region src/notifications.ts
|
|
245
|
-
function
|
|
258
|
+
function re(e, t, n, r) {
|
|
246
259
|
switch (e.name) {
|
|
247
|
-
case "notifycliententerview": return
|
|
248
|
-
case "notifyclientleftview": return
|
|
249
|
-
case "notifyclientmoved": return
|
|
250
|
-
case "notifytextmessage": return
|
|
251
|
-
case "notifyclientpoke": return
|
|
260
|
+
case "notifycliententerview": return ie(e, n, r);
|
|
261
|
+
case "notifyclientleftview": return ae(e, t, n);
|
|
262
|
+
case "notifyclientmoved": return oe(e, n);
|
|
263
|
+
case "notifytextmessage": return se(e, n);
|
|
264
|
+
case "notifyclientpoke": return de(e);
|
|
252
265
|
case "notifystartupload": return {
|
|
253
266
|
kind: "startUpload",
|
|
254
|
-
info:
|
|
267
|
+
info: ce(e)
|
|
255
268
|
};
|
|
256
269
|
case "notifystartdownload": return {
|
|
257
270
|
kind: "startDownload",
|
|
258
|
-
info:
|
|
271
|
+
info: le(e)
|
|
259
272
|
};
|
|
260
273
|
case "notifystatusfiletransfer": return {
|
|
261
274
|
kind: "fileTransferStatus",
|
|
262
|
-
info:
|
|
275
|
+
info: ue(e)
|
|
263
276
|
};
|
|
264
277
|
default: return { kind: "unknown" };
|
|
265
278
|
}
|
|
266
279
|
}
|
|
267
|
-
function
|
|
268
|
-
let r =
|
|
280
|
+
function ie(e, t, n) {
|
|
281
|
+
let r = J(e.params.clid ?? ""), i = q(e.params.ctid ?? ""), a = Y(e.params.client_type ?? ""), o = e.params.client_servergroups ?? "", s = {
|
|
269
282
|
id: r,
|
|
270
283
|
nickname: e.params.client_nickname ?? "",
|
|
271
284
|
uid: e.params.client_unique_identifier ?? "",
|
|
@@ -278,21 +291,21 @@ function re(e, t, n) {
|
|
|
278
291
|
info: s
|
|
279
292
|
};
|
|
280
293
|
}
|
|
281
|
-
function
|
|
282
|
-
let r =
|
|
294
|
+
function ae(e, t, n) {
|
|
295
|
+
let r = J(e.params.clid ?? ""), i = Y(e.params.reasonid ?? ""), a = r === t;
|
|
283
296
|
return r !== 0 && n.delete(r), {
|
|
284
297
|
kind: "clientLeave",
|
|
285
298
|
event: {
|
|
286
299
|
id: r,
|
|
287
300
|
reasonID: i,
|
|
288
301
|
reasonMsg: e.params.reasonmsg ?? "",
|
|
289
|
-
targetID:
|
|
302
|
+
targetID: J(e.params.targetid ?? "")
|
|
290
303
|
},
|
|
291
304
|
isSelf: a
|
|
292
305
|
};
|
|
293
306
|
}
|
|
294
|
-
function
|
|
295
|
-
let n =
|
|
307
|
+
function oe(e, t) {
|
|
308
|
+
let n = J(e.params.clid ?? ""), r = q(e.params.ctid ?? "");
|
|
296
309
|
if (n !== 0) {
|
|
297
310
|
let e = t.get(n);
|
|
298
311
|
e && t.set(n, {
|
|
@@ -305,20 +318,20 @@ function ae(e, t) {
|
|
|
305
318
|
event: {
|
|
306
319
|
id: n,
|
|
307
320
|
targetChannelID: r,
|
|
308
|
-
reasonID:
|
|
309
|
-
invokerID:
|
|
321
|
+
reasonID: Y(e.params.reasonid ?? ""),
|
|
322
|
+
invokerID: J(e.params.invokerid ?? ""),
|
|
310
323
|
invokerName: e.params.invokername ?? "",
|
|
311
324
|
invokerUID: e.params.invokeruid ?? ""
|
|
312
325
|
}
|
|
313
326
|
};
|
|
314
327
|
}
|
|
315
|
-
function
|
|
316
|
-
let n =
|
|
328
|
+
function se(e, t) {
|
|
329
|
+
let n = J(e.params.invokerid ?? ""), r = t.get(n);
|
|
317
330
|
return {
|
|
318
331
|
kind: "textMessage",
|
|
319
332
|
message: {
|
|
320
|
-
targetMode:
|
|
321
|
-
targetID:
|
|
333
|
+
targetMode: Y(e.params.targetmode ?? ""),
|
|
334
|
+
targetID: q(e.params.target ?? ""),
|
|
322
335
|
invokerID: n,
|
|
323
336
|
invokerName: e.params.invokername ?? "",
|
|
324
337
|
invokerUID: e.params.invokeruid ?? r?.uid ?? "",
|
|
@@ -327,36 +340,36 @@ function oe(e, t) {
|
|
|
327
340
|
}
|
|
328
341
|
};
|
|
329
342
|
}
|
|
330
|
-
function
|
|
343
|
+
function ce(e) {
|
|
331
344
|
return {
|
|
332
|
-
clientFileTransferID:
|
|
333
|
-
serverFileTransferID:
|
|
345
|
+
clientFileTransferID: J(e.params.clientftfid ?? ""),
|
|
346
|
+
serverFileTransferID: J(e.params.serverftfid ?? ""),
|
|
334
347
|
fileTransferKey: e.params.ftkey ?? "",
|
|
335
|
-
port:
|
|
336
|
-
seekPosition:
|
|
348
|
+
port: J(e.params.port ?? ""),
|
|
349
|
+
seekPosition: q(e.params.seekpos ?? "")
|
|
337
350
|
};
|
|
338
351
|
}
|
|
339
|
-
function
|
|
352
|
+
function le(e) {
|
|
340
353
|
return {
|
|
341
|
-
clientFileTransferID:
|
|
342
|
-
serverFileTransferID:
|
|
354
|
+
clientFileTransferID: J(e.params.clientftfid ?? ""),
|
|
355
|
+
serverFileTransferID: J(e.params.serverftfid ?? ""),
|
|
343
356
|
fileTransferKey: e.params.ftkey ?? "",
|
|
344
|
-
port:
|
|
345
|
-
size:
|
|
357
|
+
port: J(e.params.port ?? ""),
|
|
358
|
+
size: q(e.params.size ?? "")
|
|
346
359
|
};
|
|
347
360
|
}
|
|
348
|
-
function
|
|
361
|
+
function ue(e) {
|
|
349
362
|
return {
|
|
350
|
-
clientFileTransferID:
|
|
351
|
-
status:
|
|
363
|
+
clientFileTransferID: J(e.params.clientftfid ?? ""),
|
|
364
|
+
status: Y(e.params.status ?? ""),
|
|
352
365
|
message: e.params.msg ?? ""
|
|
353
366
|
};
|
|
354
367
|
}
|
|
355
|
-
function
|
|
368
|
+
function de(e) {
|
|
356
369
|
return {
|
|
357
370
|
kind: "poked",
|
|
358
371
|
event: {
|
|
359
|
-
invokerID:
|
|
372
|
+
invokerID: J(e.params.invokerid ?? ""),
|
|
360
373
|
invokerName: S(e.params.invokername ?? ""),
|
|
361
374
|
invokerUID: e.params.invokeruid ?? "",
|
|
362
375
|
message: S(e.params.msg ?? "")
|
|
@@ -365,7 +378,7 @@ function ue(e) {
|
|
|
365
378
|
}
|
|
366
379
|
//#endregion
|
|
367
380
|
//#region src/throttle.ts
|
|
368
|
-
var
|
|
381
|
+
var fe = class e {
|
|
369
382
|
static TOKEN_RATE = 4;
|
|
370
383
|
static TOKEN_MAX = 8;
|
|
371
384
|
#e = 5;
|
|
@@ -390,14 +403,14 @@ var de = class e {
|
|
|
390
403
|
};
|
|
391
404
|
//#endregion
|
|
392
405
|
//#region src/client.ts
|
|
393
|
-
function
|
|
406
|
+
function pe(e) {
|
|
394
407
|
return {
|
|
395
408
|
serverPassword: e.serverPassword ?? "",
|
|
396
409
|
defaultChannel: e.defaultChannel ?? "",
|
|
397
410
|
defaultChannelPassword: e.defaultChannelPassword ?? ""
|
|
398
411
|
};
|
|
399
412
|
}
|
|
400
|
-
var
|
|
413
|
+
var $ = class {
|
|
401
414
|
crypt;
|
|
402
415
|
handler;
|
|
403
416
|
logger;
|
|
@@ -407,13 +420,13 @@ var pe = class {
|
|
|
407
420
|
#t;
|
|
408
421
|
#n;
|
|
409
422
|
#r;
|
|
410
|
-
#i =
|
|
411
|
-
#a = new
|
|
412
|
-
#o = new
|
|
413
|
-
#s = new
|
|
423
|
+
#i = t.Disconnected;
|
|
424
|
+
#a = new fe();
|
|
425
|
+
#o = new O();
|
|
426
|
+
#s = new j();
|
|
414
427
|
#c = /* @__PURE__ */ new Map();
|
|
415
428
|
#l = [];
|
|
416
|
-
#u =
|
|
429
|
+
#u = null;
|
|
417
430
|
#d = [];
|
|
418
431
|
#f = [];
|
|
419
432
|
#p = [];
|
|
@@ -424,10 +437,11 @@ var pe = class {
|
|
|
424
437
|
#v = [];
|
|
425
438
|
#y = [];
|
|
426
439
|
#b = [];
|
|
427
|
-
#x;
|
|
440
|
+
#x = [];
|
|
428
441
|
#S;
|
|
442
|
+
#C;
|
|
429
443
|
constructor(t, n, r, i = {}) {
|
|
430
|
-
this.#e = t, this.#t = n, this.nickname = r, this.logger = i.logger ?? e, this.#n = i.resolver ?? new y(this.logger), this.#r =
|
|
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();
|
|
431
445
|
}
|
|
432
446
|
get status() {
|
|
433
447
|
return this.#i;
|
|
@@ -436,36 +450,49 @@ var pe = class {
|
|
|
436
450
|
return this.#r;
|
|
437
451
|
}
|
|
438
452
|
async connect() {
|
|
439
|
-
if (this.#i !==
|
|
440
|
-
this.#
|
|
441
|
-
let e = await this.#
|
|
453
|
+
if (this.#i !== t.Disconnected) throw new l();
|
|
454
|
+
this.#w(), this.#i = t.Connecting;
|
|
455
|
+
let e = await this.#T();
|
|
442
456
|
this.logger.info("connecting to server", { address: e }), await this.handler.connect(e);
|
|
443
457
|
}
|
|
444
458
|
async disconnect() {
|
|
445
|
-
if (this.#i ===
|
|
446
|
-
let e = this.#i ===
|
|
447
|
-
if (this.#i =
|
|
459
|
+
if (this.#i === t.Disconnected) return;
|
|
460
|
+
let e = this.#i === t.Connected;
|
|
461
|
+
if (this.#i = t.Disconnected, this.logger.info("disconnecting from server"), e) try {
|
|
448
462
|
await this.execCommand("clientdisconnect reasonmsg=Shutdown", 1e3);
|
|
449
463
|
} catch {}
|
|
450
464
|
this.handler.close();
|
|
451
|
-
let
|
|
452
|
-
for (let e of
|
|
465
|
+
let n = this.#v.slice();
|
|
466
|
+
for (let e of n) setImmediate(() => e(void 0));
|
|
453
467
|
}
|
|
454
468
|
waitConnected(e) {
|
|
455
|
-
return this.#i ===
|
|
456
|
-
|
|
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 });
|
|
457
484
|
});
|
|
458
485
|
}
|
|
459
486
|
async sendCommandNoWait(e) {
|
|
460
|
-
await this.#a.wait(), await this.#
|
|
487
|
+
await this.#a.wait(), await this.#S(e);
|
|
461
488
|
}
|
|
462
489
|
async execCommand(e, t = 1e4) {
|
|
463
490
|
await this.execCommandWithResponse(e, t);
|
|
464
491
|
}
|
|
465
492
|
async execCommandWithResponse(e, t = 1e4) {
|
|
466
|
-
let [n, r] = this.#o.register(), i =
|
|
493
|
+
let [n, r] = this.#o.register(), i = A(e, n);
|
|
467
494
|
try {
|
|
468
|
-
await this.#a.wait(), await this.#
|
|
495
|
+
await this.#a.wait(), await this.#S(i);
|
|
469
496
|
} catch (e) {
|
|
470
497
|
throw this.#o.unregister(n), e;
|
|
471
498
|
}
|
|
@@ -476,40 +503,38 @@ var pe = class {
|
|
|
476
503
|
on(e, t) {
|
|
477
504
|
switch (e) {
|
|
478
505
|
case "textMessage":
|
|
479
|
-
this.#u.push(t);
|
|
480
|
-
break;
|
|
481
|
-
case "clientEnter":
|
|
482
506
|
this.#d.push(t);
|
|
483
507
|
break;
|
|
484
|
-
case "
|
|
508
|
+
case "clientEnter":
|
|
485
509
|
this.#f.push(t);
|
|
486
510
|
break;
|
|
487
|
-
case "
|
|
511
|
+
case "clientLeave":
|
|
488
512
|
this.#p.push(t);
|
|
489
513
|
break;
|
|
490
|
-
case "
|
|
514
|
+
case "clientMoved":
|
|
491
515
|
this.#m.push(t);
|
|
492
516
|
break;
|
|
493
|
-
case "
|
|
517
|
+
case "poked":
|
|
494
518
|
this.#h.push(t);
|
|
495
519
|
break;
|
|
496
|
-
case "
|
|
520
|
+
case "voiceData":
|
|
497
521
|
this.#g.push(t);
|
|
498
522
|
break;
|
|
499
|
-
case "
|
|
523
|
+
case "connected":
|
|
500
524
|
this.#_.push(t);
|
|
501
525
|
break;
|
|
502
|
-
case "
|
|
526
|
+
case "disconnected":
|
|
503
527
|
this.#v.push(t);
|
|
504
528
|
break;
|
|
529
|
+
case "kicked": this.#y.push(t);
|
|
505
530
|
}
|
|
506
531
|
return this;
|
|
507
532
|
}
|
|
508
533
|
useCommandMiddleware(...e) {
|
|
509
|
-
return this.#
|
|
534
|
+
return this.#b.push(...e), this.#S = this.#L(), this;
|
|
510
535
|
}
|
|
511
536
|
useEventMiddleware(...e) {
|
|
512
|
-
return this.#
|
|
537
|
+
return this.#x.push(...e), this.#C = this.#R(), this;
|
|
513
538
|
}
|
|
514
539
|
clientID() {
|
|
515
540
|
return this.clid;
|
|
@@ -517,11 +542,14 @@ var pe = class {
|
|
|
517
542
|
channelID() {
|
|
518
543
|
return this.#c.get(this.clid)?.channelID ?? 0n;
|
|
519
544
|
}
|
|
545
|
+
sendWhisper(e, t, n) {
|
|
546
|
+
this.handler.sendWhisperPacket(e, t, n);
|
|
547
|
+
}
|
|
520
548
|
sendVoice(e, t) {
|
|
521
549
|
this.handler.sendVoicePacket(e, t);
|
|
522
550
|
}
|
|
523
551
|
async fileTransferInitUpload(e, t, n, r, i = !1) {
|
|
524
|
-
let [a, s] = this.#s.register(), c =
|
|
552
|
+
let [a, s] = this.#s.register(), c = F(e, t, n, r, a, i);
|
|
525
553
|
try {
|
|
526
554
|
await this.execCommand(c, 1e4);
|
|
527
555
|
} catch (e) {
|
|
@@ -536,7 +564,7 @@ var pe = class {
|
|
|
536
564
|
return l;
|
|
537
565
|
}
|
|
538
566
|
async fileTransferInitDownload(e, t, n) {
|
|
539
|
-
let [r, i] = this.#s.register(), a =
|
|
567
|
+
let [r, i] = this.#s.register(), a = I(e, t, n, r);
|
|
540
568
|
try {
|
|
541
569
|
await this.execCommand(a, 1e4);
|
|
542
570
|
} catch (e) {
|
|
@@ -551,22 +579,22 @@ var pe = class {
|
|
|
551
579
|
return s;
|
|
552
580
|
}
|
|
553
581
|
uploadFileData(e, t, n) {
|
|
554
|
-
return
|
|
582
|
+
return N(e, t, n);
|
|
555
583
|
}
|
|
556
584
|
downloadFileData(e, t, n) {
|
|
557
|
-
return
|
|
585
|
+
return P(e, t, n);
|
|
558
586
|
}
|
|
559
587
|
_markConnected() {
|
|
560
|
-
this.#i =
|
|
561
|
-
for (let e of this.#l) e();
|
|
588
|
+
this.#i = t.Connected, this.#u = null;
|
|
589
|
+
for (let e of this.#l) e.resolve();
|
|
562
590
|
this.#l = [];
|
|
563
|
-
let e = this.#
|
|
591
|
+
let e = this.#_.slice();
|
|
564
592
|
for (let t of e) setImmediate(() => t());
|
|
565
593
|
}
|
|
566
|
-
#
|
|
567
|
-
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();
|
|
568
596
|
}
|
|
569
|
-
async #
|
|
597
|
+
async #T() {
|
|
570
598
|
let e = this.#t.includes(":") ? this.#t : `${this.#t}:9987`;
|
|
571
599
|
try {
|
|
572
600
|
return (await this.#n.resolve(this.#t))[0]?.addr ?? e;
|
|
@@ -574,10 +602,10 @@ var pe = class {
|
|
|
574
602
|
return e;
|
|
575
603
|
}
|
|
576
604
|
}
|
|
577
|
-
#T(e) {
|
|
578
|
-
this.#E(e);
|
|
579
|
-
}
|
|
580
605
|
#E(e) {
|
|
606
|
+
this.#D(e);
|
|
607
|
+
}
|
|
608
|
+
#D(e) {
|
|
581
609
|
let t = e.typeFlagged & 15;
|
|
582
610
|
if (t === 8) {
|
|
583
611
|
let t = te(this.crypt, e.data);
|
|
@@ -585,13 +613,13 @@ var pe = class {
|
|
|
585
613
|
return;
|
|
586
614
|
}
|
|
587
615
|
if ((t === 0 || t === 1) && e.data.length > 5) {
|
|
588
|
-
this.#
|
|
616
|
+
this.#O(e.data);
|
|
589
617
|
return;
|
|
590
618
|
}
|
|
591
|
-
(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"));
|
|
592
620
|
}
|
|
593
|
-
#
|
|
594
|
-
if (this.#
|
|
621
|
+
#O(e) {
|
|
622
|
+
if (this.#g.length === 0) return;
|
|
595
623
|
let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint16(2, !1);
|
|
596
624
|
if (t === this.clid) return;
|
|
597
625
|
let n = {
|
|
@@ -599,36 +627,36 @@ var pe = class {
|
|
|
599
627
|
codec: e[4],
|
|
600
628
|
data: e.subarray(5)
|
|
601
629
|
};
|
|
602
|
-
for (let e of this.#
|
|
630
|
+
for (let e of this.#g) setImmediate(() => e(n));
|
|
603
631
|
}
|
|
604
|
-
#
|
|
632
|
+
#k(e) {
|
|
605
633
|
if (!e) return;
|
|
606
634
|
let t = e.split("\0").join("\n").split("\n");
|
|
607
635
|
for (let e of t) {
|
|
608
636
|
let t = e.replace(/\r$/, "");
|
|
609
|
-
if (t) for (let e of
|
|
637
|
+
if (t) for (let e of Z(t)) this.#A(e);
|
|
610
638
|
}
|
|
611
639
|
}
|
|
612
|
-
#
|
|
613
|
-
let t =
|
|
614
|
-
if (
|
|
640
|
+
#A(e) {
|
|
641
|
+
let t = T(e);
|
|
642
|
+
if (t && t.name) {
|
|
615
643
|
if (t.name.startsWith("notify")) {
|
|
616
|
-
let e =
|
|
617
|
-
this.#
|
|
644
|
+
let e = re(t, this.clid, this.#c, this.nickname);
|
|
645
|
+
this.#M(e, t.params);
|
|
618
646
|
return;
|
|
619
647
|
}
|
|
620
648
|
switch (t.name) {
|
|
621
649
|
case "clientinitiv":
|
|
622
|
-
|
|
650
|
+
z(this, t.params);
|
|
623
651
|
break;
|
|
624
652
|
case "initivexpand2":
|
|
625
|
-
|
|
653
|
+
B(this, t.params);
|
|
626
654
|
break;
|
|
627
655
|
case "initserver":
|
|
628
|
-
|
|
656
|
+
V(this, t.params);
|
|
629
657
|
break;
|
|
630
658
|
case "error":
|
|
631
|
-
this.#
|
|
659
|
+
this.#j(t.params);
|
|
632
660
|
break;
|
|
633
661
|
default: {
|
|
634
662
|
let e = t.params;
|
|
@@ -645,31 +673,35 @@ var pe = class {
|
|
|
645
673
|
}
|
|
646
674
|
}
|
|
647
675
|
}
|
|
648
|
-
#
|
|
649
|
-
let { err:
|
|
650
|
-
|
|
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(() => {}));
|
|
651
683
|
}
|
|
652
|
-
#
|
|
684
|
+
#M(e, t) {
|
|
653
685
|
switch (e.kind) {
|
|
654
686
|
case "clientEnter": {
|
|
655
687
|
let t = e.info;
|
|
656
|
-
t.id !== 0 &&
|
|
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);
|
|
657
689
|
break;
|
|
658
690
|
}
|
|
659
691
|
case "clientLeave":
|
|
660
|
-
if (this.#
|
|
692
|
+
if (this.#N("clientLeave", e.event), e.isSelf && (e.event.reasonID === 4 || e.event.reasonID === 5)) {
|
|
661
693
|
let t = e.event.reasonMsg;
|
|
662
|
-
for (let e of this.#
|
|
694
|
+
for (let e of this.#y) setImmediate(() => e(t));
|
|
663
695
|
}
|
|
664
696
|
break;
|
|
665
697
|
case "clientMoved":
|
|
666
|
-
this.#
|
|
698
|
+
this.#N("clientMoved", e.event);
|
|
667
699
|
break;
|
|
668
700
|
case "textMessage":
|
|
669
|
-
this.#
|
|
701
|
+
this.#N("textMessage", e.message);
|
|
670
702
|
break;
|
|
671
703
|
case "poked":
|
|
672
|
-
this.#
|
|
704
|
+
this.#N("poked", e.event);
|
|
673
705
|
break;
|
|
674
706
|
case "startUpload":
|
|
675
707
|
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
@@ -677,53 +709,62 @@ var pe = class {
|
|
|
677
709
|
case "startDownload":
|
|
678
710
|
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
679
711
|
break;
|
|
680
|
-
case "fileTransferStatus":
|
|
681
|
-
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
682
|
-
break;
|
|
712
|
+
case "fileTransferStatus": this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
683
713
|
}
|
|
684
714
|
}
|
|
685
|
-
#M(e, t) {
|
|
686
|
-
this.#S(t);
|
|
687
|
-
}
|
|
688
715
|
#N(e, t) {
|
|
716
|
+
this.#C(t);
|
|
717
|
+
}
|
|
718
|
+
#P(e, t) {
|
|
689
719
|
switch (e) {
|
|
690
720
|
case "textMessage":
|
|
691
|
-
for (let e of this.#u) setImmediate(() => e(t));
|
|
692
|
-
break;
|
|
693
|
-
case "clientEnter":
|
|
694
721
|
for (let e of this.#d) setImmediate(() => e(t));
|
|
695
722
|
break;
|
|
696
|
-
case "
|
|
723
|
+
case "clientEnter":
|
|
697
724
|
for (let e of this.#f) setImmediate(() => e(t));
|
|
698
725
|
break;
|
|
699
|
-
case "
|
|
726
|
+
case "clientLeave":
|
|
700
727
|
for (let e of this.#p) setImmediate(() => e(t));
|
|
701
728
|
break;
|
|
702
|
-
case "
|
|
729
|
+
case "clientMoved":
|
|
703
730
|
for (let e of this.#m) setImmediate(() => e(t));
|
|
704
731
|
break;
|
|
732
|
+
case "poked": for (let e of this.#h) setImmediate(() => e(t));
|
|
705
733
|
}
|
|
706
734
|
}
|
|
707
|
-
#
|
|
708
|
-
if (this.#i ===
|
|
709
|
-
this.#i
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
735
|
+
#F(e) {
|
|
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
|
+
}
|
|
741
|
+
this.#i = t.Disconnected;
|
|
742
|
+
let n = this.#v.slice();
|
|
743
|
+
for (let t of n) setImmediate(() => t(e ?? void 0));
|
|
744
|
+
}
|
|
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) => {
|
|
715
756
|
this.handler.sendPacket(b.Command, Buffer.from(e), 0);
|
|
716
757
|
});
|
|
717
758
|
}
|
|
718
|
-
#
|
|
719
|
-
return
|
|
720
|
-
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);
|
|
721
762
|
});
|
|
722
763
|
}
|
|
723
764
|
};
|
|
724
765
|
//#endregion
|
|
725
766
|
//#region src/api.ts
|
|
726
|
-
async function
|
|
767
|
+
async function me(e, t, n, r) {
|
|
727
768
|
let i = C("sendtextmessage", [
|
|
728
769
|
["targetmode", String(t)],
|
|
729
770
|
["target", String(n)],
|
|
@@ -731,30 +772,34 @@ async function $(e, t, n, r) {
|
|
|
731
772
|
]);
|
|
732
773
|
await e.sendCommandNoWait(i);
|
|
733
774
|
}
|
|
734
|
-
async function
|
|
775
|
+
async function he(e, t, n, r = "") {
|
|
735
776
|
let i = [["clid", String(t)], ["cid", String(n)]];
|
|
736
|
-
r && i.push(["cpw", r]);
|
|
777
|
+
r && i.push(["cpw", ge(r)]);
|
|
737
778
|
let a = C("clientmove", i);
|
|
738
779
|
await e.execCommand(a, 1e4);
|
|
739
780
|
}
|
|
740
|
-
|
|
781
|
+
function ge(e) {
|
|
782
|
+
return E("sha1").update(e).digest("base64");
|
|
783
|
+
}
|
|
784
|
+
async function _e(e, t, n) {
|
|
741
785
|
let r = C("clientpoke", [["clid", String(t)], ["msg", n]]);
|
|
742
786
|
await e.execCommand(r, 1e4);
|
|
743
787
|
}
|
|
744
|
-
async function
|
|
788
|
+
async function ve(e, t) {
|
|
745
789
|
let n = (await e.execCommandWithResponse(`clientinfo clid=${t}`, 5e3))[0];
|
|
746
790
|
if (!n) throw Error(`no data returned for client ${t}`);
|
|
747
791
|
return n;
|
|
748
792
|
}
|
|
749
|
-
async function
|
|
793
|
+
async function ye(e) {
|
|
750
794
|
return (await e.execCommandWithResponse("channellist", 5e3)).map((e) => ({
|
|
751
795
|
id: BigInt(e.cid ?? "0"),
|
|
752
|
-
parentID: BigInt(e.pid ?? "0"),
|
|
796
|
+
parentID: BigInt(e.pid ?? e.cpid ?? "0"),
|
|
797
|
+
order: BigInt(e.channel_order ?? "0"),
|
|
753
798
|
name: S(e.channel_name ?? ""),
|
|
754
799
|
description: ""
|
|
755
800
|
}));
|
|
756
801
|
}
|
|
757
|
-
async function
|
|
802
|
+
async function be(e) {
|
|
758
803
|
return (await e.execCommandWithResponse("clientlist -uid -away -voice -groups", 5e3)).map((e) => {
|
|
759
804
|
let t = e.client_servergroups ?? "";
|
|
760
805
|
return {
|
|
@@ -767,7 +812,7 @@ async function ve(e) {
|
|
|
767
812
|
};
|
|
768
813
|
});
|
|
769
814
|
}
|
|
770
|
-
async function
|
|
815
|
+
async function xe(e, t, n) {
|
|
771
816
|
if (n.length === 0) return;
|
|
772
817
|
let r = n.join("|"), i = w("ftdeletefile", {
|
|
773
818
|
cid: String(t),
|
|
@@ -777,6 +822,6 @@ async function ye(e, t, n) {
|
|
|
777
822
|
await e.execCommand(i, 1e4);
|
|
778
823
|
}
|
|
779
824
|
//#endregion
|
|
780
|
-
export { l as AlreadyConnectedError,
|
|
825
|
+
export { l as AlreadyConnectedError, $ as Client, t as ClientStatus, c as CommandTimeoutError, a as CryptoInitError, h as EAXTagMismatchError, _ as FakeSignatureMismatchError, o as FileTransferError, g as FileTransferTimeoutError, u as Identity, i as InvalidIdentityError, r as ServerError, ee as TeamspeakError, he as clientMove, e as consoleLogger, M as dialFileTransfer, P as downloadFileData, xe as fileTransferDeleteFile, m as generateIdentity, ve as getClientInfo, s as getUidFromPublicKey, f as identityFromString, ye as listChannels, be as listClients, n as noopLogger, _e as poke, me as sendTextMessage, N as uploadFileData };
|
|
781
826
|
|
|
782
827
|
//# sourceMappingURL=index.mjs.map
|