@honeybbq/teamspeak-client 0.2.2 → 0.3.0
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/address.test.d.ts +2 -0
- package/dist/address.test.d.ts.map +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.test.d.ts +2 -0
- package/dist/api.test.d.ts.map +1 -0
- 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-caXc4h0n.js → command-BLe-C2L2.js} +2 -4
- package/dist/{command-caXc4h0n.js.map → command-BLe-C2L2.js.map} +1 -1
- package/dist/command-DAK4pUBP.cjs +4 -0
- package/dist/{command-Cu2v-5-K.cjs.map → command-DAK4pUBP.cjs.map} +1 -1
- package/dist/crypt-handshake-CQkQreLx.cjs +2 -0
- package/dist/{crypt-handshake-Dbj2cSBZ.cjs.map → crypt-handshake-CQkQreLx.cjs.map} +1 -1
- package/dist/crypt-handshake-DziOY4Lq.js +55 -0
- package/dist/{crypt-handshake-CHmvZ2qs.js.map → crypt-handshake-DziOY4Lq.js.map} +1 -1
- package/dist/{crypt-init2-DWX7Tp-_.js → crypt-init2-D70ha4LB.js} +25 -27
- package/dist/{crypt-init2-DWX7Tp-_.js.map → crypt-init2-D70ha4LB.js.map} +1 -1
- package/dist/crypt-init2-DparLekm.cjs +2 -0
- package/dist/{crypt-init2-C2oihZ7e.cjs.map → crypt-init2-DparLekm.cjs.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-VC7n6YJb.js → crypto-Bg02m4ZE.js} +9 -9
- 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/{handler-C_JhqGTd.js → handler-DI_abe9c.js} +159 -131
- 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/helpers.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +155 -141
- package/dist/index.mjs.map +1 -1
- package/dist/{parser-DhAWj-TI.cjs → parser-CL33R9tr.cjs} +2 -2
- package/dist/{parser-DhAWj-TI.cjs.map → parser-CL33R9tr.cjs.map} +1 -1
- package/dist/{parser-CJjP3LlO.js → parser-DZMv3Jm-.js} +2 -2
- package/dist/{parser-CJjP3LlO.js.map → parser-DZMv3Jm-.js.map} +1 -1
- 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/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/whisper.test.d.ts +2 -0
- package/dist/transport/whisper.test.d.ts.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/command-Cu2v-5-K.cjs +0 -4
- package/dist/crypt-handshake-CHmvZ2qs.js +0 -55
- package/dist/crypt-handshake-Dbj2cSBZ.cjs +0 -2
- package/dist/crypt-init2-C2oihZ7e.cjs +0 -2
- package/dist/crypto-2veVY1fC.cjs +0 -2
- package/dist/crypto-2veVY1fC.cjs.map +0 -1
- package/dist/crypto-VC7n6YJb.js.map +0 -1
- package/dist/handler-C_JhqGTd.js.map +0 -1
- package/dist/handler-CqCD93f0.cjs +0 -2
- package/dist/handler-CqCD93f0.cjs.map +0 -1
- package/dist/primitives-BIAYfJ2Y.js +0 -1842
- package/dist/primitives-BIAYfJ2Y.js.map +0 -1
- package/dist/primitives-bj-ml31v.cjs +0 -2
- package/dist/primitives-bj-ml31v.cjs.map +0 -1
- package/dist/resolver-Br0QefWx.js +0 -162
- package/dist/resolver-Br0QefWx.js.map +0 -1
- package/dist/resolver-DDD2FFhD.cjs +0 -4
- package/dist/resolver-DDD2FFhD.cjs.map +0 -1
- package/dist/types-CGKgXvpG.js +0 -18
- package/dist/types-CGKgXvpG.js.map +0 -1
- package/dist/types-DrnoCdSW.cjs +0 -2
- package/dist/types-DrnoCdSW.cjs.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
|
|
179
|
-
let r = Buffer.from(n, "base64"), i = new Uint8Array(86);
|
|
178
|
+
function U(e, t, n) {
|
|
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,10 +420,10 @@ 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
429
|
#u = [];
|
|
@@ -427,7 +440,7 @@ var pe = class {
|
|
|
427
440
|
#x;
|
|
428
441
|
#S;
|
|
429
442
|
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 =
|
|
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.#T(e), this.handler.onClosed = (e) => this.#P(e), i.commandMiddleware && this.#y.push(...i.commandMiddleware), i.eventMiddleware && this.#b.push(...i.eventMiddleware), this.#x = this.#F(), this.#S = this.#I();
|
|
431
444
|
}
|
|
432
445
|
get status() {
|
|
433
446
|
return this.#i;
|
|
@@ -436,23 +449,23 @@ var pe = class {
|
|
|
436
449
|
return this.#r;
|
|
437
450
|
}
|
|
438
451
|
async connect() {
|
|
439
|
-
if (this.#i !==
|
|
440
|
-
this.#C(), this.#i =
|
|
452
|
+
if (this.#i !== t.Disconnected) throw new l();
|
|
453
|
+
this.#C(), this.#i = t.Connecting;
|
|
441
454
|
let e = await this.#w();
|
|
442
455
|
this.logger.info("connecting to server", { address: e }), await this.handler.connect(e);
|
|
443
456
|
}
|
|
444
457
|
async disconnect() {
|
|
445
|
-
if (this.#i ===
|
|
446
|
-
let e = this.#i ===
|
|
447
|
-
if (this.#i =
|
|
458
|
+
if (this.#i === t.Disconnected) return;
|
|
459
|
+
let e = this.#i === t.Connected;
|
|
460
|
+
if (this.#i = t.Disconnected, this.logger.info("disconnecting from server"), e) try {
|
|
448
461
|
await this.execCommand("clientdisconnect reasonmsg=Shutdown", 1e3);
|
|
449
462
|
} catch {}
|
|
450
463
|
this.handler.close();
|
|
451
|
-
let
|
|
452
|
-
for (let e of
|
|
464
|
+
let n = this.#_.slice();
|
|
465
|
+
for (let e of n) setImmediate(() => e(void 0));
|
|
453
466
|
}
|
|
454
467
|
waitConnected(e) {
|
|
455
|
-
return this.#i ===
|
|
468
|
+
return this.#i === t.Connected ? Promise.resolve() : new Promise((t, n) => {
|
|
456
469
|
this.#l.push(t), e && e.addEventListener("abort", () => n(e.reason), { once: !0 });
|
|
457
470
|
});
|
|
458
471
|
}
|
|
@@ -463,7 +476,7 @@ var pe = class {
|
|
|
463
476
|
await this.execCommandWithResponse(e, t);
|
|
464
477
|
}
|
|
465
478
|
async execCommandWithResponse(e, t = 1e4) {
|
|
466
|
-
let [n, r] = this.#o.register(), i =
|
|
479
|
+
let [n, r] = this.#o.register(), i = A(e, n);
|
|
467
480
|
try {
|
|
468
481
|
await this.#a.wait(), await this.#x(i);
|
|
469
482
|
} catch (e) {
|
|
@@ -499,9 +512,7 @@ var pe = class {
|
|
|
499
512
|
case "disconnected":
|
|
500
513
|
this.#_.push(t);
|
|
501
514
|
break;
|
|
502
|
-
case "kicked":
|
|
503
|
-
this.#v.push(t);
|
|
504
|
-
break;
|
|
515
|
+
case "kicked": this.#v.push(t);
|
|
505
516
|
}
|
|
506
517
|
return this;
|
|
507
518
|
}
|
|
@@ -517,11 +528,14 @@ var pe = class {
|
|
|
517
528
|
channelID() {
|
|
518
529
|
return this.#c.get(this.clid)?.channelID ?? 0n;
|
|
519
530
|
}
|
|
531
|
+
sendWhisper(e, t, n) {
|
|
532
|
+
this.handler.sendWhisperPacket(e, t, n);
|
|
533
|
+
}
|
|
520
534
|
sendVoice(e, t) {
|
|
521
535
|
this.handler.sendVoicePacket(e, t);
|
|
522
536
|
}
|
|
523
537
|
async fileTransferInitUpload(e, t, n, r, i = !1) {
|
|
524
|
-
let [a, s] = this.#s.register(), c =
|
|
538
|
+
let [a, s] = this.#s.register(), c = F(e, t, n, r, a, i);
|
|
525
539
|
try {
|
|
526
540
|
await this.execCommand(c, 1e4);
|
|
527
541
|
} catch (e) {
|
|
@@ -536,7 +550,7 @@ var pe = class {
|
|
|
536
550
|
return l;
|
|
537
551
|
}
|
|
538
552
|
async fileTransferInitDownload(e, t, n) {
|
|
539
|
-
let [r, i] = this.#s.register(), a =
|
|
553
|
+
let [r, i] = this.#s.register(), a = I(e, t, n, r);
|
|
540
554
|
try {
|
|
541
555
|
await this.execCommand(a, 1e4);
|
|
542
556
|
} catch (e) {
|
|
@@ -551,13 +565,13 @@ var pe = class {
|
|
|
551
565
|
return s;
|
|
552
566
|
}
|
|
553
567
|
uploadFileData(e, t, n) {
|
|
554
|
-
return
|
|
568
|
+
return N(e, t, n);
|
|
555
569
|
}
|
|
556
570
|
downloadFileData(e, t, n) {
|
|
557
|
-
return
|
|
571
|
+
return P(e, t, n);
|
|
558
572
|
}
|
|
559
573
|
_markConnected() {
|
|
560
|
-
this.#i =
|
|
574
|
+
this.#i = t.Connected;
|
|
561
575
|
for (let e of this.#l) e();
|
|
562
576
|
this.#l = [];
|
|
563
577
|
let e = this.#g.slice();
|
|
@@ -606,26 +620,26 @@ var pe = class {
|
|
|
606
620
|
let t = e.split("\0").join("\n").split("\n");
|
|
607
621
|
for (let e of t) {
|
|
608
622
|
let t = e.replace(/\r$/, "");
|
|
609
|
-
if (t) for (let e of
|
|
623
|
+
if (t) for (let e of Z(t)) this.#k(e);
|
|
610
624
|
}
|
|
611
625
|
}
|
|
612
626
|
#k(e) {
|
|
613
|
-
let t =
|
|
614
|
-
if (
|
|
627
|
+
let t = T(e);
|
|
628
|
+
if (t && t.name) {
|
|
615
629
|
if (t.name.startsWith("notify")) {
|
|
616
|
-
let e =
|
|
630
|
+
let e = re(t, this.clid, this.#c, this.nickname);
|
|
617
631
|
this.#j(e, t.params);
|
|
618
632
|
return;
|
|
619
633
|
}
|
|
620
634
|
switch (t.name) {
|
|
621
635
|
case "clientinitiv":
|
|
622
|
-
|
|
636
|
+
z(this, t.params);
|
|
623
637
|
break;
|
|
624
638
|
case "initivexpand2":
|
|
625
|
-
|
|
639
|
+
B(this, t.params);
|
|
626
640
|
break;
|
|
627
641
|
case "initserver":
|
|
628
|
-
|
|
642
|
+
V(this, t.params);
|
|
629
643
|
break;
|
|
630
644
|
case "error":
|
|
631
645
|
this.#A(t.params);
|
|
@@ -646,14 +660,14 @@ var pe = class {
|
|
|
646
660
|
}
|
|
647
661
|
}
|
|
648
662
|
#A(e) {
|
|
649
|
-
let { err: t, rc: n } =
|
|
663
|
+
let { err: t, rc: n } = k(e);
|
|
650
664
|
n === null ? this.#o.discardBuffer() : this.#o.resolve(n, t), (e.id ?? "0") === "3329" && setImmediate(() => this.disconnect().catch(() => {}));
|
|
651
665
|
}
|
|
652
666
|
#j(e, t) {
|
|
653
667
|
switch (e.kind) {
|
|
654
668
|
case "clientEnter": {
|
|
655
669
|
let t = e.info;
|
|
656
|
-
t.id !== 0 &&
|
|
670
|
+
t.id !== 0 && X(this.nickname, t.nickname) && (this.clid = t.id, this.handler.setClientID(t.id), this.#o.signalWelcomeComplete()), this.#M("clientEnter", t);
|
|
657
671
|
break;
|
|
658
672
|
}
|
|
659
673
|
case "clientLeave":
|
|
@@ -677,9 +691,7 @@ var pe = class {
|
|
|
677
691
|
case "startDownload":
|
|
678
692
|
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
679
693
|
break;
|
|
680
|
-
case "fileTransferStatus":
|
|
681
|
-
this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
682
|
-
break;
|
|
694
|
+
case "fileTransferStatus": this.#s.notify(e.info.clientFileTransferID, e.info);
|
|
683
695
|
}
|
|
684
696
|
}
|
|
685
697
|
#M(e, t) {
|
|
@@ -699,31 +711,29 @@ var pe = class {
|
|
|
699
711
|
case "clientMoved":
|
|
700
712
|
for (let e of this.#p) setImmediate(() => e(t));
|
|
701
713
|
break;
|
|
702
|
-
case "poked":
|
|
703
|
-
for (let e of this.#m) setImmediate(() => e(t));
|
|
704
|
-
break;
|
|
714
|
+
case "poked": for (let e of this.#m) setImmediate(() => e(t));
|
|
705
715
|
}
|
|
706
716
|
}
|
|
707
717
|
#P(e) {
|
|
708
|
-
if (this.#i ===
|
|
709
|
-
this.#i =
|
|
710
|
-
let
|
|
711
|
-
for (let
|
|
718
|
+
if (this.#i === t.Disconnected) return;
|
|
719
|
+
this.#i = t.Disconnected;
|
|
720
|
+
let n = this.#_.slice();
|
|
721
|
+
for (let t of n) setImmediate(() => t(e ?? void 0));
|
|
712
722
|
}
|
|
713
723
|
#F() {
|
|
714
|
-
return
|
|
724
|
+
return L(this.#y, async (e) => {
|
|
715
725
|
this.handler.sendPacket(b.Command, Buffer.from(e), 0);
|
|
716
726
|
});
|
|
717
727
|
}
|
|
718
728
|
#I() {
|
|
719
|
-
return
|
|
729
|
+
return R(this.#b, (e) => {
|
|
720
730
|
typeof e == "object" && e && "invokerName" in e && "message" in e && "targetMode" in e ? this.#N("textMessage", e) : typeof e == "object" && e && "invokerName" in e && "message" in e && !("targetMode" in e) ? this.#N("poked", e) : typeof e == "object" && e && "id" in e && "uid" in e ? this.#N("clientEnter", e) : typeof e == "object" && e && "id" in e && "reasonID" in e && "targetChannelID" in e ? this.#N("clientMoved", e) : typeof e == "object" && e && "id" in e && "reasonID" in e && this.#N("clientLeave", e);
|
|
721
731
|
});
|
|
722
732
|
}
|
|
723
733
|
};
|
|
724
734
|
//#endregion
|
|
725
735
|
//#region src/api.ts
|
|
726
|
-
async function
|
|
736
|
+
async function me(e, t, n, r) {
|
|
727
737
|
let i = C("sendtextmessage", [
|
|
728
738
|
["targetmode", String(t)],
|
|
729
739
|
["target", String(n)],
|
|
@@ -731,30 +741,34 @@ async function $(e, t, n, r) {
|
|
|
731
741
|
]);
|
|
732
742
|
await e.sendCommandNoWait(i);
|
|
733
743
|
}
|
|
734
|
-
async function
|
|
744
|
+
async function he(e, t, n, r = "") {
|
|
735
745
|
let i = [["clid", String(t)], ["cid", String(n)]];
|
|
736
|
-
r && i.push(["cpw", r]);
|
|
746
|
+
r && i.push(["cpw", ge(r)]);
|
|
737
747
|
let a = C("clientmove", i);
|
|
738
748
|
await e.execCommand(a, 1e4);
|
|
739
749
|
}
|
|
740
|
-
|
|
750
|
+
function ge(e) {
|
|
751
|
+
return E("sha1").update(e).digest("base64");
|
|
752
|
+
}
|
|
753
|
+
async function _e(e, t, n) {
|
|
741
754
|
let r = C("clientpoke", [["clid", String(t)], ["msg", n]]);
|
|
742
755
|
await e.execCommand(r, 1e4);
|
|
743
756
|
}
|
|
744
|
-
async function
|
|
757
|
+
async function ve(e, t) {
|
|
745
758
|
let n = (await e.execCommandWithResponse(`clientinfo clid=${t}`, 5e3))[0];
|
|
746
759
|
if (!n) throw Error(`no data returned for client ${t}`);
|
|
747
760
|
return n;
|
|
748
761
|
}
|
|
749
|
-
async function
|
|
762
|
+
async function ye(e) {
|
|
750
763
|
return (await e.execCommandWithResponse("channellist", 5e3)).map((e) => ({
|
|
751
764
|
id: BigInt(e.cid ?? "0"),
|
|
752
|
-
parentID: BigInt(e.pid ?? "0"),
|
|
765
|
+
parentID: BigInt(e.pid ?? e.cpid ?? "0"),
|
|
766
|
+
order: BigInt(e.channel_order ?? "0"),
|
|
753
767
|
name: S(e.channel_name ?? ""),
|
|
754
768
|
description: ""
|
|
755
769
|
}));
|
|
756
770
|
}
|
|
757
|
-
async function
|
|
771
|
+
async function be(e) {
|
|
758
772
|
return (await e.execCommandWithResponse("clientlist -uid -away -voice -groups", 5e3)).map((e) => {
|
|
759
773
|
let t = e.client_servergroups ?? "";
|
|
760
774
|
return {
|
|
@@ -767,7 +781,7 @@ async function ve(e) {
|
|
|
767
781
|
};
|
|
768
782
|
});
|
|
769
783
|
}
|
|
770
|
-
async function
|
|
784
|
+
async function xe(e, t, n) {
|
|
771
785
|
if (n.length === 0) return;
|
|
772
786
|
let r = n.join("|"), i = w("ftdeletefile", {
|
|
773
787
|
cid: String(t),
|
|
@@ -777,6 +791,6 @@ async function ye(e, t, n) {
|
|
|
777
791
|
await e.execCommand(i, 1e4);
|
|
778
792
|
}
|
|
779
793
|
//#endregion
|
|
780
|
-
export { l as AlreadyConnectedError,
|
|
794
|
+
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
795
|
|
|
782
796
|
//# sourceMappingURL=index.mjs.map
|