@honeybbq/teamspeak 1.0.0-beta.19 → 1.0.0-beta.21
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/client/api/avatars.d.ts.map +1 -1
- package/dist/client/api/avatars.js +11 -2
- package/dist/client/api/avatars.js.map +1 -1
- package/dist/client/api/files.d.ts +36 -14
- package/dist/client/api/files.d.ts.map +1 -1
- package/dist/client/api/files.js +58 -9
- package/dist/client/api/files.js.map +1 -1
- package/dist/client/api/upload-checks.d.ts +36 -0
- package/dist/client/api/upload-checks.d.ts.map +1 -0
- package/dist/client/api/upload-checks.js +77 -0
- package/dist/client/api/upload-checks.js.map +1 -0
- package/dist/client/api/voice.d.ts +2 -1
- package/dist/client/api/voice.d.ts.map +1 -1
- package/dist/client/api/voice.js +6 -2
- package/dist/client/api/voice.js.map +1 -1
- package/dist/client/client.d.ts +13 -3
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +151 -49
- package/dist/client/client.js.map +1 -1
- package/dist/client/crypto/crypt.d.ts +6 -0
- package/dist/client/crypto/crypt.d.ts.map +1 -1
- package/dist/client/crypto/crypt.js +13 -7
- package/dist/client/crypto/crypt.js.map +1 -1
- package/dist/client/crypto/eax.d.ts +4 -0
- package/dist/client/crypto/eax.d.ts.map +1 -1
- package/dist/client/crypto/eax.js +27 -21
- package/dist/client/crypto/eax.js.map +1 -1
- package/dist/client/errors.d.ts +13 -0
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +23 -0
- package/dist/client/errors.js.map +1 -1
- package/dist/client/handshake/crypt-handshake.d.ts +2 -1
- package/dist/client/handshake/crypt-handshake.d.ts.map +1 -1
- package/dist/client/handshake/crypt-handshake.js +4 -2
- package/dist/client/handshake/crypt-handshake.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/throttle.d.ts +11 -0
- package/dist/client/throttle.d.ts.map +1 -1
- package/dist/client/throttle.js +38 -3
- package/dist/client/throttle.js.map +1 -1
- package/dist/client/transfer.d.ts +37 -4
- package/dist/client/transfer.d.ts.map +1 -1
- package/dist/client/transfer.js +155 -15
- package/dist/client/transfer.js.map +1 -1
- package/dist/client/transport/handler.d.ts.map +1 -1
- package/dist/client/transport/handler.js +47 -43
- package/dist/client/transport/handler.js.map +1 -1
- package/dist/core/api/clients.d.ts +15 -15
- package/dist/core/api/clients.d.ts.map +1 -1
- package/dist/core/api/clients.js.map +1 -1
- package/dist/core/api/command.d.ts +8 -6
- package/dist/core/api/command.d.ts.map +1 -1
- package/dist/core/api/command.js +1 -1
- package/dist/core/api/command.js.map +1 -1
- package/dist/core/api/files.d.ts +23 -6
- package/dist/core/api/files.d.ts.map +1 -1
- package/dist/core/api/files.js +12 -9
- package/dist/core/api/files.js.map +1 -1
- package/dist/core/api/groups.d.ts +17 -2
- package/dist/core/api/groups.d.ts.map +1 -1
- package/dist/core/api/groups.js +13 -11
- package/dist/core/api/groups.js.map +1 -1
- package/dist/core/api/parse.d.ts +5 -5
- package/dist/core/api/parse.d.ts.map +1 -1
- package/dist/core/api/parse.js +16 -15
- package/dist/core/api/parse.js.map +1 -1
- package/dist/core/command/request.d.ts +6 -0
- package/dist/core/command/request.d.ts.map +1 -1
- package/dist/core/command/request.js +12 -0
- package/dist/core/command/request.js.map +1 -1
- package/dist/core/errors.d.ts +46 -3
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +73 -20
- package/dist/core/errors.js.map +1 -1
- package/dist/core/events.d.ts +24 -8
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/internal.d.ts +1 -1
- package/dist/core/internal.d.ts.map +1 -1
- package/dist/core/internal.js +1 -1
- package/dist/core/internal.js.map +1 -1
- package/dist/core/notifications.d.ts +1 -1
- package/dist/core/notifications.js +9 -8
- package/dist/core/notifications.js.map +1 -1
- package/dist/core/reconnect.d.ts +16 -5
- package/dist/core/reconnect.d.ts.map +1 -1
- package/dist/core/reconnect.js +32 -4
- package/dist/core/reconnect.js.map +1 -1
- package/dist/core/types.d.ts +15 -16
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/query/client.d.ts +4 -0
- package/dist/query/client.d.ts.map +1 -1
- package/dist/query/client.js +145 -23
- package/dist/query/client.js.map +1 -1
- package/dist/query/errors.d.ts +20 -0
- package/dist/query/errors.d.ts.map +1 -1
- package/dist/query/errors.js +31 -0
- package/dist/query/errors.js.map +1 -1
- package/dist/query/index.d.ts +1 -1
- package/dist/query/index.d.ts.map +1 -1
- package/dist/query/index.js +1 -1
- package/dist/query/index.js.map +1 -1
- package/dist/query/lines.d.ts +11 -0
- package/dist/query/lines.d.ts.map +1 -1
- package/dist/query/lines.js +36 -6
- package/dist/query/lines.js.map +1 -1
- package/dist/query/options.d.ts +30 -0
- package/dist/query/options.d.ts.map +1 -1
- package/dist/query/options.js +7 -0
- package/dist/query/options.js.map +1 -1
- package/dist/query/reconnect.d.ts +5 -0
- package/dist/query/reconnect.d.ts.map +1 -1
- package/dist/query/reconnect.js +26 -7
- package/dist/query/reconnect.js.map +1 -1
- package/dist/query/ssh.js +9 -4
- package/dist/query/ssh.js.map +1 -1
- package/dist/query/stream.d.ts +2 -0
- package/dist/query/stream.d.ts.map +1 -1
- package/dist/query/stream.js +19 -1
- package/dist/query/stream.js.map +1 -1
- package/dist/query/transport.d.ts +12 -2
- package/dist/query/transport.d.ts.map +1 -1
- package/dist/query/web.d.ts +3 -1
- package/dist/query/web.d.ts.map +1 -1
- package/dist/query/web.js +82 -18
- package/dist/query/web.js.map +1 -1
- package/dist/stream/published.d.ts.map +1 -1
- package/dist/stream/published.js +61 -25
- package/dist/stream/published.js.map +1 -1
- package/dist/stream/streams.d.ts.map +1 -1
- package/dist/stream/streams.js +51 -10
- package/dist/stream/streams.js.map +1 -1
- package/dist/stream/wire.d.ts +2 -2
- package/dist/stream/wire.d.ts.map +1 -1
- package/dist/stream/wire.js +27 -7
- package/dist/stream/wire.js.map +1 -1
- package/package.json +1 -1
- package/src/client/api/avatars.ts +15 -2
- package/src/client/api/files.ts +83 -23
- package/src/client/api/upload-checks.ts +96 -0
- package/src/client/api/voice.ts +5 -2
- package/src/client/client.ts +154 -42
- package/src/client/crypto/crypt.ts +15 -7
- package/src/client/crypto/eax.ts +27 -22
- package/src/client/errors.ts +25 -0
- package/src/client/handshake/crypt-handshake.ts +6 -3
- package/src/client/index.ts +1 -0
- package/src/client/throttle.ts +41 -3
- package/src/client/transfer.ts +172 -28
- package/src/client/transport/handler.ts +54 -46
- package/src/core/api/clients.ts +24 -21
- package/src/core/api/command.ts +9 -7
- package/src/core/api/files.ts +30 -16
- package/src/core/api/groups.ts +32 -13
- package/src/core/api/parse.ts +16 -15
- package/src/core/command/request.ts +18 -0
- package/src/core/errors.ts +74 -20
- package/src/core/events.ts +24 -8
- package/src/core/internal.ts +7 -1
- package/src/core/notifications.ts +9 -8
- package/src/core/reconnect.ts +60 -8
- package/src/core/types.ts +15 -16
- package/src/query/client.ts +144 -20
- package/src/query/errors.ts +34 -0
- package/src/query/index.ts +1 -0
- package/src/query/lines.ts +38 -6
- package/src/query/options.ts +36 -0
- package/src/query/reconnect.ts +27 -7
- package/src/query/ssh.ts +11 -4
- package/src/query/stream.ts +17 -1
- package/src/query/testing/live.ts +4 -4
- package/src/query/transport.ts +10 -2
- package/src/query/web.ts +76 -21
- package/src/stream/published.ts +70 -23
- package/src/stream/streams.ts +47 -13
- package/src/stream/wire.ts +30 -11
package/dist/query/lines.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
import { LineTooLongError } from "./errors.js";
|
|
1
2
|
import { trimCarriageReturns } from "./trim.js";
|
|
3
|
+
/**
|
|
4
|
+
* The longest line a connection reads, in bytes: 256 MiB. A line is a whole
|
|
5
|
+
* answer, and a client database listing is about 240 bytes a client, so this
|
|
6
|
+
* holds about a million of them; the permission list, the longest answer
|
|
7
|
+
* measured on TeamSpeak 3 and 6, is under 50 KiB. See {@link LineTooLongError}.
|
|
8
|
+
*/
|
|
9
|
+
export const MAX_LINE_BYTES = 256 * 1024 * 1024;
|
|
2
10
|
/**
|
|
3
11
|
* Splits a byte stream into the lines ServerQuery speaks.
|
|
4
12
|
*
|
|
@@ -6,22 +14,44 @@ import { trimCarriageReturns } from "./trim.js";
|
|
|
6
14
|
* start of the next line rather than the end of this one; both ends are
|
|
7
15
|
* trimmed. Bytes are decoded as UTF-8 only once a whole line is in, so a
|
|
8
16
|
* character split across two chunks arrives whole.
|
|
17
|
+
*
|
|
18
|
+
* Each byte is looked at once, however many chunks a line arrives in. A line
|
|
19
|
+
* past the limit throws {@link LineTooLongError}.
|
|
9
20
|
*/
|
|
10
21
|
export class LineReader {
|
|
11
|
-
|
|
22
|
+
/** The chunks of the line still being read; none holds a newline. */
|
|
23
|
+
#parts = [];
|
|
24
|
+
#length = 0;
|
|
25
|
+
#limit;
|
|
26
|
+
constructor(limit = MAX_LINE_BYTES) {
|
|
27
|
+
this.#limit = limit;
|
|
28
|
+
}
|
|
12
29
|
/** Add a chunk and return the lines it completed, without their terminators. */
|
|
13
30
|
push(chunk) {
|
|
14
|
-
this.#pending = Buffer.concat([this.#pending, chunk]);
|
|
15
31
|
const lines = [];
|
|
32
|
+
let start = 0;
|
|
16
33
|
for (;;) {
|
|
17
|
-
const end =
|
|
34
|
+
const end = Buffer.prototype.indexOf.call(chunk, 0x0a, start);
|
|
18
35
|
if (end < 0)
|
|
19
36
|
break;
|
|
20
|
-
|
|
21
|
-
this.#
|
|
22
|
-
|
|
37
|
+
this.#add(chunk.subarray(start, end));
|
|
38
|
+
lines.push(trimCarriageReturns(Buffer.concat(this.#parts, this.#length).toString("utf8")));
|
|
39
|
+
this.#parts = [];
|
|
40
|
+
this.#length = 0;
|
|
41
|
+
start = end + 1;
|
|
23
42
|
}
|
|
43
|
+
this.#add(chunk.subarray(start));
|
|
24
44
|
return lines;
|
|
25
45
|
}
|
|
46
|
+
#add(part) {
|
|
47
|
+
this.#length += part.byteLength;
|
|
48
|
+
if (this.#length > this.#limit) {
|
|
49
|
+
this.#parts = [];
|
|
50
|
+
this.#length = 0;
|
|
51
|
+
throw new LineTooLongError(this.#limit);
|
|
52
|
+
}
|
|
53
|
+
if (part.byteLength > 0)
|
|
54
|
+
this.#parts.push(part);
|
|
55
|
+
}
|
|
26
56
|
}
|
|
27
57
|
//# sourceMappingURL=lines.js.map
|
package/dist/query/lines.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/query/lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/query/lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAW,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAU;IACrB,qEAAqE;IACrE,MAAM,GAAiB,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,CAAC;IACH,MAAM,CAAS;IAExB,YAAY,KAAK,GAAW,cAAc;QACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,gFAAgF;IAChF,IAAI,CAAC,KAAiB;QACpB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAW,CAAC;YACxE,IAAI,GAAG,GAAG,CAAC;gBAAE,MAAM;YACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAgB;QACnB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF"}
|
package/dist/query/options.d.ts
CHANGED
|
@@ -115,6 +115,10 @@ export interface QueryClientOptions {
|
|
|
115
115
|
* WebQuery the transport answers `use` itself, by addressing that server in
|
|
116
116
|
* its requests. Unset leaves the instance selected on raw TCP, where the
|
|
117
117
|
* server's own default applies.
|
|
118
|
+
*
|
|
119
|
+
* Without it the client connects with no server selected, which serves the
|
|
120
|
+
* instance-level commands (`instanceinfo`, `serverlist`, `use`). The events
|
|
121
|
+
* need a server, so they are registered by the first {@link QueryClient.use}.
|
|
118
122
|
*/
|
|
119
123
|
readonly server?: {
|
|
120
124
|
readonly id: ServerID | number;
|
|
@@ -131,6 +135,14 @@ export interface QueryClientOptions {
|
|
|
131
135
|
* Registering for anything on a transport that cannot deliver notifications
|
|
132
136
|
* throws a `TypeError`, at construction when the `transport` kind says so
|
|
133
137
|
* and when connecting for a `custom` transport.
|
|
138
|
+
*
|
|
139
|
+
* The client keeps a roster of who is on the server, to fill the fields a
|
|
140
|
+
* notification leaves out, such as a sender's groups: a snapshot taken on
|
|
141
|
+
* connecting (`clientlist -uid -groups -away -voice`), kept up to date by the
|
|
142
|
+
* enter, leave and move notifications. A ServerQuery connection is not sent
|
|
143
|
+
* `clientupdated`, so a client's groups, away flag and mute state are as of
|
|
144
|
+
* the listing, or of the moment it entered view, and do not follow later
|
|
145
|
+
* changes.
|
|
134
146
|
*/
|
|
135
147
|
readonly events?: QueryEventsOption | undefined;
|
|
136
148
|
/**
|
|
@@ -139,6 +151,21 @@ export interface QueryClientOptions {
|
|
|
139
151
|
* decision is {@link defaultShouldRetry}.
|
|
140
152
|
*/
|
|
141
153
|
readonly reconnect?: ReconnectOptions | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* How long a raw TCP or SSH session may sit idle before the client sends
|
|
156
|
+
* `version` to keep it open, in milliseconds. 120000 (two minutes) by default;
|
|
157
|
+
* `0` turns it off.
|
|
158
|
+
*
|
|
159
|
+
* Measured on TeamSpeak 3 3.13.8 (raw TCP and SSH) and TeamSpeak 6
|
|
160
|
+
* 6.0.0-beta13.1 (SSH): the server closes a query session that has sent no
|
|
161
|
+
* command for 300 seconds, and a session that sends one every 200 seconds
|
|
162
|
+
* stays open. Notifications arriving do not count: a raw TCP session on
|
|
163
|
+
* TeamSpeak 3 that received nine and sent nothing was closed at 300 seconds
|
|
164
|
+
* all the same. The command is sent only when none has been
|
|
165
|
+
* for this long, so a busy client sends nothing extra. WebQuery has no session
|
|
166
|
+
* to keep, and a `custom` transport is left to its own owner.
|
|
167
|
+
*/
|
|
168
|
+
readonly keepAliveMs?: number | undefined;
|
|
142
169
|
/**
|
|
143
170
|
* Wraps every typed command, outermost first; see `CommandMiddleware`. Raw
|
|
144
171
|
* lines sent with `exec` do not pass through it. Fixed for the client's life.
|
|
@@ -198,8 +225,11 @@ export interface ResolvedQueryOptions {
|
|
|
198
225
|
readonly eventsRequested: boolean;
|
|
199
226
|
readonly reconnect: ReconnectOptions | undefined;
|
|
200
227
|
readonly commandMiddleware: readonly CommandMiddleware[] | undefined;
|
|
228
|
+
readonly keepAliveMs: number;
|
|
201
229
|
readonly logger: Logger | undefined;
|
|
202
230
|
}
|
|
231
|
+
/** How long a session may be idle before the client keeps it open; the server drops one at 300 s. */
|
|
232
|
+
export declare const DEFAULT_KEEP_ALIVE_MS = 120000;
|
|
203
233
|
/**
|
|
204
234
|
* Refuse a request to register on a transport that cannot deliver what it
|
|
205
235
|
* would register for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/query/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACnF,GACD,CAAC;IACC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;CAC3C,GAAG,cAAc,CAAC,GACnB;IACE,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAClE,CAAC;AAEN;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,aAAa,GACb,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,CAAC;AAElG,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/query/options.ts"],"names":[],"mappings":"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"}
|
package/dist/query/options.js
CHANGED
|
@@ -16,6 +16,8 @@ const CATEGORIES = new Set([
|
|
|
16
16
|
"bans",
|
|
17
17
|
"tokenused",
|
|
18
18
|
]);
|
|
19
|
+
/** How long a session may be idle before the client keeps it open; the server drops one at 300 s. */
|
|
20
|
+
export const DEFAULT_KEEP_ALIVE_MS = 120_000;
|
|
19
21
|
function nonEmpty(value, name) {
|
|
20
22
|
if (typeof value !== "string" || value === "") {
|
|
21
23
|
throw new TypeError(`${name} is a non-empty string`);
|
|
@@ -231,6 +233,10 @@ export function normalizeQueryOptions(options) {
|
|
|
231
233
|
throw new RangeError("server.port is an integer from 1 to 65535");
|
|
232
234
|
}
|
|
233
235
|
}
|
|
236
|
+
const keepAliveMs = options.keepAliveMs ?? DEFAULT_KEEP_ALIVE_MS;
|
|
237
|
+
if (!Number.isInteger(keepAliveMs) || keepAliveMs < 0) {
|
|
238
|
+
throw new RangeError("keepAliveMs is a non-negative integer, 0 to turn it off");
|
|
239
|
+
}
|
|
234
240
|
const nickname = options.nickname;
|
|
235
241
|
if (nickname !== undefined)
|
|
236
242
|
nonEmpty(nickname, "nickname");
|
|
@@ -248,6 +254,7 @@ export function normalizeQueryOptions(options) {
|
|
|
248
254
|
eventsRequested: options.events !== undefined,
|
|
249
255
|
reconnect: options.reconnect,
|
|
250
256
|
commandMiddleware,
|
|
257
|
+
keepAliveMs,
|
|
251
258
|
logger: options.logger,
|
|
252
259
|
};
|
|
253
260
|
assertEventsSupported(resolved);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/query/options.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/query/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record why a command of `connect()` failed, so that the default
|
|
3
|
+
* `shouldRetry` can tell a refused `login` or `use` from any other failure.
|
|
4
|
+
*/
|
|
5
|
+
export declare function noteConnectFailure(command: string, error: unknown): void;
|
|
1
6
|
/**
|
|
2
7
|
* Whether a failed connection attempt is worth another one.
|
|
3
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconnect.d.ts","sourceRoot":"","sources":["../../src/query/reconnect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconnect.d.ts","sourceRoot":"","sources":["../../src/query/reconnect.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAIxE;AAYD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAmBpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAKhF"}
|
package/dist/query/reconnect.js
CHANGED
|
@@ -11,14 +11,30 @@ import { MissingDependencyError, QueryAuthError, SshHostKeyError } from "./error
|
|
|
11
11
|
* reconnect loop is most likely to meet right after a drop.
|
|
12
12
|
*/
|
|
13
13
|
const PERMANENT_SERVER_ERRORS = new Set([
|
|
14
|
-
ErrorCode.ClientInvalidPassword,
|
|
15
|
-
ErrorCode.ClientNotLoggedIn,
|
|
16
|
-
ErrorCode.ClientLoginNotPermitted,
|
|
17
|
-
ErrorCode.ServerInvalidID,
|
|
18
|
-
ErrorCode.
|
|
19
|
-
ErrorCode.
|
|
20
|
-
ErrorCode.
|
|
14
|
+
ErrorCode.ClientInvalidPassword, // login: wrong name or password
|
|
15
|
+
ErrorCode.ClientNotLoggedIn, // use: this session has no login, and none is configured
|
|
16
|
+
ErrorCode.ClientLoginNotPermitted, // login: this account may not log in
|
|
17
|
+
ErrorCode.ServerInvalidID, // use: no such server
|
|
18
|
+
ErrorCode.ServerIsNotRunning, // use: that server is down
|
|
19
|
+
ErrorCode.ConnectFailedBanned, // retrying while banned extends the ban
|
|
20
|
+
ErrorCode.BanFlooding, // retrying while flood-banned extends the ban
|
|
21
|
+
ErrorCode.PermissionsClientInsufficient, // the account lacks the permission it needs
|
|
21
22
|
]);
|
|
23
|
+
/**
|
|
24
|
+
* Errors of a `login` or `use` that {@link isPermanentCommandError} found
|
|
25
|
+
* permanent. The error is the same object `shouldRetry` is later given, so
|
|
26
|
+
* the mark travels with it without changing its type.
|
|
27
|
+
*/
|
|
28
|
+
const connectRefusals = new WeakSet();
|
|
29
|
+
/**
|
|
30
|
+
* Record why a command of `connect()` failed, so that the default
|
|
31
|
+
* `shouldRetry` can tell a refused `login` or `use` from any other failure.
|
|
32
|
+
*/
|
|
33
|
+
export function noteConnectFailure(command, error) {
|
|
34
|
+
if (typeof error === "object" && error !== null && isPermanentCommandError(command, error)) {
|
|
35
|
+
connectRefusals.add(error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
22
38
|
/** Commands whose refusal is the credentials or the target, not the network. */
|
|
23
39
|
const CONNECT_COMMANDS = new Set(["login", "use"]);
|
|
24
40
|
/**
|
|
@@ -43,6 +59,9 @@ const TRANSIENT_SERVER_ERRORS = new Set([ErrorCode.ClientIsFlooding]);
|
|
|
43
59
|
* A custom `shouldRetry` replaces this; see `ReconnectOptions`.
|
|
44
60
|
*/
|
|
45
61
|
export function defaultShouldRetry(error) {
|
|
62
|
+
// A refused `login` or `use`, whatever its code; see `noteConnectFailure`.
|
|
63
|
+
if (error !== undefined && connectRefusals.has(error))
|
|
64
|
+
return false;
|
|
46
65
|
// The client is connected, or connecting, already: nothing is left to retry.
|
|
47
66
|
if (error instanceof AlreadyConnectedError)
|
|
48
67
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../src/query/reconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;;;;;GASG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,SAAS,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../src/query/reconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;;;;;GASG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,SAAS,CAAC,qBAAqB,EAAE,gCAAgC;IACjE,SAAS,CAAC,iBAAiB,EAAE,yDAAyD;IACtF,SAAS,CAAC,uBAAuB,EAAE,qCAAqC;IACxE,SAAS,CAAC,eAAe,EAAE,sBAAsB;IACjD,SAAS,CAAC,kBAAkB,EAAE,2BAA2B;IACzD,SAAS,CAAC,mBAAmB,EAAE,wCAAwC;IACvE,SAAS,CAAC,WAAW,EAAE,8CAA8C;IACrE,SAAS,CAAC,6BAA6B,EAAE,4CAA4C;CACtF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAc;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3F,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,2EAA2E;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,6EAA6E;IAC7E,IAAI,KAAK,YAAY,qBAAqB;QAAE,OAAO,KAAK,CAAC;IACzD,0EAA0E;IAC1E,oCAAoC;IACpC,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,KAAK,CAAC;IAClD,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,KAAK,YAAY,sBAAsB;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,sEAAsE;IACtE,yEAAyE;IACzE,mCAAmC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,KAAc;IACrE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/query/ssh.js
CHANGED
|
@@ -183,10 +183,15 @@ function loginOf(options) {
|
|
|
183
183
|
return { username: "guest", password: undefined };
|
|
184
184
|
}
|
|
185
185
|
const hint = "; to connect without a login, as a guest, set guest to true";
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
const username = nonEmptyString(options.username, "username", hint);
|
|
187
|
+
// Measured on TeamSpeak 6 6.0.0-beta13.1: the user `guest` logs in as a guest
|
|
188
|
+
// whatever password it is given, the administrator's included, so a password
|
|
189
|
+
// sent with it is silently ignored and the access is not the account's. The
|
|
190
|
+
// server matches the name exactly: `GUEST` is refused.
|
|
191
|
+
if (username === "guest") {
|
|
192
|
+
throw new TypeError('"guest" is the server\'s guest user, which takes no password; to connect as a guest, set guest to true');
|
|
193
|
+
}
|
|
194
|
+
return { username, password: nonEmptyString(options.password, "password", hint) };
|
|
190
195
|
}
|
|
191
196
|
function nonEmptyString(value, name, hint = "") {
|
|
192
197
|
if (typeof value !== "string" || value === "")
|
package/dist/query/ssh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/query/ssh.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/query/ssh.ts"],"names":[],"mappings":"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"}
|
package/dist/query/stream.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface QueryStream {
|
|
|
8
8
|
write(data: string, callback: (error?: Error | null) => void): unknown;
|
|
9
9
|
/** Close the stream. */
|
|
10
10
|
end(): unknown;
|
|
11
|
+
/** Drop the stream without waiting for the peer; used for a peer that must not be read on. */
|
|
12
|
+
destroy?(): unknown;
|
|
11
13
|
/** Listen for each chunk received. */
|
|
12
14
|
on(event: "data", listener: (chunk: Uint8Array) => void): unknown;
|
|
13
15
|
/** Listen for a failure, which ends the connection. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/query/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC;IACvE,wBAAwB;IACxB,GAAG,IAAI,OAAO,CAAC;IACf,sCAAsC;IACtC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC;IAClE,uDAAuD;IACvD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC;IAC9D,qCAAqC;IACrC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACnD;AAKD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,cAAc;;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,qBAAqB,QAAQ;IACtC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAiB5D;;;;OAIG;IACH,YACE,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,IAAI,EAClB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAU3E;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhC;IAED,KAAK,IAAI,mBAAmB,CAQ3B;IAED;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B3B;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/query/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC;IACvE,wBAAwB;IACxB,GAAG,IAAI,OAAO,CAAC;IACf,8FAA8F;IAC9F,OAAO,CAAC,IAAI,OAAO,CAAC;IACpB,sCAAsC;IACtC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC;IAClE,uDAAuD;IACvD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC;IAC9D,qCAAqC;IACrC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACnD;AAKD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,cAAc;;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,qBAAqB,QAAQ;IACtC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAiB5D;;;;OAIG;IACH,YACE,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,IAAI,EAClB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAU3E;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhC;IAED,KAAK,IAAI,mBAAmB,CAQ3B;IAED;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B3B;CAkCF"}
|
package/dist/query/stream.js
CHANGED
|
@@ -100,8 +100,26 @@ export class StreamTransport {
|
|
|
100
100
|
this.#handleClose();
|
|
101
101
|
}
|
|
102
102
|
#handleData(chunk) {
|
|
103
|
+
if (this.#ended)
|
|
104
|
+
return;
|
|
103
105
|
this.#bytesReceived += chunk.byteLength;
|
|
104
|
-
|
|
106
|
+
let lines;
|
|
107
|
+
try {
|
|
108
|
+
lines = this.#reader.push(chunk);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
// A server that is not speaking ServerQuery: nothing more is read, and
|
|
112
|
+
// the connection ends with the reason.
|
|
113
|
+
this.#error = error;
|
|
114
|
+
this.onLine = null;
|
|
115
|
+
if (this.#stream.destroy === undefined)
|
|
116
|
+
this.#stream.end();
|
|
117
|
+
else
|
|
118
|
+
this.#stream.destroy();
|
|
119
|
+
this.#handleClose();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
for (const line of lines) {
|
|
105
123
|
if (this.#banner > 0) {
|
|
106
124
|
this.#banner--;
|
|
107
125
|
continue;
|
package/dist/query/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/query/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/query/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,8 +52,18 @@ export interface QueryTransport {
|
|
|
52
52
|
* run.
|
|
53
53
|
*/
|
|
54
54
|
readonly supportsNotifications: boolean;
|
|
55
|
-
/**
|
|
56
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Send one command line; the transport adds the line terminator.
|
|
57
|
+
*
|
|
58
|
+
* `signal` aborts when the command has stopped waiting for its answer, by
|
|
59
|
+
* timeout, cancel or close. A transport whose `send` carries the whole round
|
|
60
|
+
* trip, as WebQuery's does, ends the request and rejects; a stream has
|
|
61
|
+
* nothing to take back once the line is written, and ignores it. A transport
|
|
62
|
+
* that ignores it must not deliver the answer to the next command either.
|
|
63
|
+
*/
|
|
64
|
+
send(line: string, options?: {
|
|
65
|
+
readonly signal?: AbortSignal;
|
|
66
|
+
}): Promise<void>;
|
|
57
67
|
/**
|
|
58
68
|
* Called with each line the server sends, without its terminator, in the
|
|
59
69
|
* order received.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/query/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IACvC,kGAAkG;IAClG,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/query/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IACvC,kGAAkG;IAClG,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,oFAAoF;IACpF,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACrD,0BAA0B;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,IAAI,mBAAmB,CAAC;CAC/B"}
|
package/dist/query/web.d.ts
CHANGED
|
@@ -89,7 +89,9 @@ export declare class WebQueryTransport implements QueryTransport {
|
|
|
89
89
|
onLine: ((line: string) => void) | null;
|
|
90
90
|
onClose: ((error: Error | undefined) => void) | null;
|
|
91
91
|
constructor(options: WebQueryOptions);
|
|
92
|
-
send(line: string
|
|
92
|
+
send(line: string, options?: {
|
|
93
|
+
readonly signal?: AbortSignal;
|
|
94
|
+
}): Promise<void>;
|
|
93
95
|
stats(): QueryTransportStats;
|
|
94
96
|
close(): Promise<void>;
|
|
95
97
|
}
|
package/dist/query/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/query/web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,4DAA4D;IAC5D,gBAAyB,IAAI,EAAE,MAAM,CAAuB;IAU5D,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAG7C;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACE,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEN,iCAAiC;AACjC,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;CAC3C,CAAC;AAaF;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,YAAW,cAAc;;IACtD,wEAAwE;IACxE,QAAQ,CAAC,qBAAqB,SAAS;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/query/web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,4DAA4D;IAC5D,gBAAyB,IAAI,EAAE,MAAM,CAAuB;IAU5D,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAG7C;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACE,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEN,iCAAiC;AACjC,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;CAC3C,CAAC;AAaF;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,YAAW,cAAc;;IACtD,wEAAwE;IACxE,QAAQ,CAAC,qBAAqB,SAAS;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAY5D,YAAY,OAAO,EAAE,eAAe,EAsBnC;IAEK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFnF;IAED,KAAK,IAAI,mBAAmB,CAY3B;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQrB;CAmBF"}
|
package/dist/query/web.js
CHANGED
|
@@ -51,6 +51,7 @@ export class WebQueryTransport {
|
|
|
51
51
|
#prefix;
|
|
52
52
|
#fetch;
|
|
53
53
|
#closed = false;
|
|
54
|
+
#inFlight = new Set();
|
|
54
55
|
#openedAt = new Date();
|
|
55
56
|
#bytesSent = 0;
|
|
56
57
|
#bytesReceived = 0;
|
|
@@ -74,7 +75,7 @@ export class WebQueryTransport {
|
|
|
74
75
|
}
|
|
75
76
|
this.#fetch = options.fetch ?? nodeFetch;
|
|
76
77
|
}
|
|
77
|
-
async send(line) {
|
|
78
|
+
async send(line, options) {
|
|
78
79
|
if (this.#closed)
|
|
79
80
|
throw new Error("the query connection is closed");
|
|
80
81
|
const rows = splitCommandRows(line)
|
|
@@ -87,23 +88,58 @@ export class WebQueryTransport {
|
|
|
87
88
|
}
|
|
88
89
|
const params = rows.map((row) => ({ ...row.params }));
|
|
89
90
|
const body = JSON.stringify(params.length === 1 ? params[0] : params);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
// One controller per request: the command's own signal and `close()` both
|
|
92
|
+
// end it, so a request nobody waits for any more is not left running.
|
|
93
|
+
const abort = new AbortController();
|
|
94
|
+
this.#inFlight.add(abort);
|
|
95
|
+
const onAbort = () => abort.abort(options?.signal?.reason);
|
|
96
|
+
if (options?.signal?.aborted === true)
|
|
97
|
+
onAbort();
|
|
98
|
+
else
|
|
99
|
+
options?.signal?.addEventListener("abort", onAbort, { once: true });
|
|
100
|
+
let response;
|
|
99
101
|
let answer;
|
|
100
102
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
response = await this.#fetch(`${this.#base}${this.#prefix}/${name}`, {
|
|
104
|
+
method: "POST",
|
|
105
|
+
headers: {
|
|
106
|
+
...(this.#apiKey === undefined ? {} : { "x-api-key": this.#apiKey }),
|
|
107
|
+
"content-type": "application/json",
|
|
108
|
+
},
|
|
109
|
+
body,
|
|
110
|
+
// The api key is a header, and a followed redirect would carry it to
|
|
111
|
+
// whatever host the answer names: the 3xx is the answer.
|
|
112
|
+
redirect: "manual",
|
|
113
|
+
signal: abort.signal,
|
|
114
|
+
});
|
|
115
|
+
this.#bytesSent += Buffer.byteLength(body);
|
|
116
|
+
let text;
|
|
117
|
+
try {
|
|
118
|
+
text = await response.text();
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
// An abort is the command's end, not an answer that was not JSON.
|
|
122
|
+
if (abort.signal.aborted)
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
if (text !== undefined) {
|
|
126
|
+
this.#bytesReceived += Buffer.byteLength(text);
|
|
127
|
+
try {
|
|
128
|
+
answer = JSON.parse(text);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Not JSON: nothing the server said about the command.
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// A fetch that ignores its signal still answers late. The command that
|
|
135
|
+
// asked has given up, and the client may be waiting on the next one: its
|
|
136
|
+
// lines must not be this answer's.
|
|
137
|
+
if (abort.signal.aborted)
|
|
138
|
+
throw abortReason(abort.signal);
|
|
104
139
|
}
|
|
105
|
-
|
|
106
|
-
|
|
140
|
+
finally {
|
|
141
|
+
options?.signal?.removeEventListener("abort", onAbort);
|
|
142
|
+
this.#inFlight.delete(abort);
|
|
107
143
|
}
|
|
108
144
|
const code = answer?.status?.code;
|
|
109
145
|
if (typeof code !== "number")
|
|
@@ -144,6 +180,9 @@ export class WebQueryTransport {
|
|
|
144
180
|
if (this.#closed)
|
|
145
181
|
return Promise.resolve();
|
|
146
182
|
this.#closed = true;
|
|
183
|
+
// Nothing is waiting for these any more, and none may deliver a line.
|
|
184
|
+
for (const request of this.#inFlight)
|
|
185
|
+
request.abort(new Error("the query connection is closed"));
|
|
147
186
|
this.onClose?.(undefined);
|
|
148
187
|
return Promise.resolve();
|
|
149
188
|
}
|
|
@@ -165,9 +204,30 @@ export class WebQueryTransport {
|
|
|
165
204
|
this.onLine?.("error id=0 msg=ok");
|
|
166
205
|
}
|
|
167
206
|
}
|
|
168
|
-
/**
|
|
207
|
+
/** Why an aborted request ended: the signal's own reason, as an error. */
|
|
208
|
+
function abortReason(signal) {
|
|
209
|
+
const reason = signal.reason;
|
|
210
|
+
return reason instanceof Error ? reason : new Error("the WebQuery request was aborted");
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* One JSON value as the text a command line carries: a string as it is, a
|
|
214
|
+
* number as written, a boolean as `1` or `0`, and anything else (a null, a
|
|
215
|
+
* nested object) as empty, which is a field the row did not carry. WebQuery
|
|
216
|
+
* sends every value as a string, measured on TeamSpeak 3 and 6; this is for
|
|
217
|
+
* a server that does not.
|
|
218
|
+
*/
|
|
219
|
+
function valueText(value) {
|
|
220
|
+
if (typeof value === "string")
|
|
221
|
+
return value;
|
|
222
|
+
if (typeof value === "number" || typeof value === "bigint")
|
|
223
|
+
return String(value);
|
|
224
|
+
if (typeof value === "boolean")
|
|
225
|
+
return value ? "1" : "0";
|
|
226
|
+
return "";
|
|
227
|
+
}
|
|
228
|
+
/** One answer row as a line of `key=value` fields. */
|
|
169
229
|
function rowLine(row) {
|
|
170
|
-
const fields = Object.entries(row).map(([key, value]) => [key,
|
|
230
|
+
const fields = Object.entries(row).map(([key, value]) => [key, valueText(value)]);
|
|
171
231
|
// buildCommandOrdered writes a name first; a row has none.
|
|
172
232
|
return buildCommandOrdered("", fields).slice(1);
|
|
173
233
|
}
|
|
@@ -178,7 +238,11 @@ function rowLine(row) {
|
|
|
178
238
|
*/
|
|
179
239
|
const nodeFetch = ((url, init) => new Promise((resolve, reject) => {
|
|
180
240
|
const request = new URL(url).protocol === "https:" ? httpsRequest : httpRequest;
|
|
181
|
-
const req = request(url, {
|
|
241
|
+
const req = request(url, {
|
|
242
|
+
method: init.method,
|
|
243
|
+
headers: init.headers,
|
|
244
|
+
...(init.signal ? { signal: init.signal } : {}),
|
|
245
|
+
}, (res) => {
|
|
182
246
|
const chunks = [];
|
|
183
247
|
res.on("data", (chunk) => chunks.push(chunk));
|
|
184
248
|
res.on("error", reject);
|