@honeybbq/teamspeak 0.0.1 → 1.0.0-beta.7
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/LICENSE +21 -0
- package/README.md +726 -2
- package/dist/client/abort.d.ts +5 -0
- package/dist/client/abort.d.ts.map +1 -0
- package/dist/client/abort.js +23 -0
- package/dist/client/abort.js.map +1 -0
- package/dist/client/address.d.ts +17 -0
- package/dist/client/address.d.ts.map +1 -0
- package/dist/client/address.js +66 -0
- package/dist/client/address.js.map +1 -0
- package/dist/client/api/voice.d.ts +24 -0
- package/dist/client/api/voice.d.ts.map +1 -0
- package/dist/client/api/voice.js +33 -0
- package/dist/client/api/voice.js.map +1 -0
- package/dist/client/capabilities.d.ts +68 -0
- package/dist/client/capabilities.d.ts.map +1 -0
- package/dist/client/capabilities.js +59 -0
- package/dist/client/capabilities.js.map +1 -0
- package/dist/client/client.d.ts +196 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +1523 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/commands.d.ts +66 -0
- package/dist/client/commands.d.ts.map +1 -0
- package/dist/client/commands.js +162 -0
- package/dist/client/commands.js.map +1 -0
- package/dist/client/crypto/crypt-ops.d.ts +7 -0
- package/dist/client/crypto/crypt-ops.d.ts.map +1 -0
- package/dist/client/crypto/crypt-ops.js +2 -0
- package/dist/client/crypto/crypt-ops.js.map +1 -0
- package/dist/client/crypto/crypt.d.ts +37 -0
- package/dist/client/crypto/crypt.d.ts.map +1 -0
- package/dist/client/crypto/crypt.js +203 -0
- package/dist/client/crypto/crypt.js.map +1 -0
- package/dist/client/crypto/eax.d.ts +12 -0
- package/dist/client/crypto/eax.d.ts.map +1 -0
- package/dist/client/crypto/eax.js +118 -0
- package/dist/client/crypto/eax.js.map +1 -0
- package/dist/client/crypto/identity.d.ts +97 -0
- package/dist/client/crypto/identity.d.ts.map +1 -0
- package/dist/client/crypto/identity.js +412 -0
- package/dist/client/crypto/identity.js.map +1 -0
- package/dist/client/crypto/index.d.ts +7 -0
- package/dist/client/crypto/index.d.ts.map +1 -0
- package/dist/client/crypto/index.js +5 -0
- package/dist/client/crypto/index.js.map +1 -0
- package/dist/client/crypto/primitives.d.ts +43 -0
- package/dist/client/crypto/primitives.d.ts.map +1 -0
- package/dist/client/crypto/primitives.js +116 -0
- package/dist/client/crypto/primitives.js.map +1 -0
- package/dist/client/diagnostics.d.ts +45 -0
- package/dist/client/diagnostics.d.ts.map +1 -0
- package/dist/client/diagnostics.js +30 -0
- package/dist/client/diagnostics.js.map +1 -0
- package/dist/client/discovery/index.d.ts +2 -0
- package/dist/client/discovery/index.d.ts.map +1 -0
- package/dist/client/discovery/index.js +2 -0
- package/dist/client/discovery/index.js.map +1 -0
- package/dist/client/discovery/resolver.d.ts +26 -0
- package/dist/client/discovery/resolver.d.ts.map +1 -0
- package/dist/client/discovery/resolver.js +275 -0
- package/dist/client/discovery/resolver.js.map +1 -0
- package/dist/client/errors.d.ts +82 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +201 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/events.d.ts +3 -0
- package/dist/client/events.d.ts.map +1 -0
- package/dist/client/events.js +8 -0
- package/dist/client/events.js.map +1 -0
- package/dist/client/handshake/crypt-handshake.d.ts +17 -0
- package/dist/client/handshake/crypt-handshake.d.ts.map +1 -0
- package/dist/client/handshake/crypt-handshake.js +128 -0
- package/dist/client/handshake/crypt-handshake.js.map +1 -0
- package/dist/client/handshake/crypt-init2.d.ts +7 -0
- package/dist/client/handshake/crypt-init2.d.ts.map +1 -0
- package/dist/client/handshake/crypt-init2.js +37 -0
- package/dist/client/handshake/crypt-init2.js.map +1 -0
- package/dist/client/handshake/index.d.ts +4 -0
- package/dist/client/handshake/index.d.ts.map +1 -0
- package/dist/client/handshake/index.js +4 -0
- package/dist/client/handshake/index.js.map +1 -0
- package/dist/client/handshake/license.d.ts +35 -0
- package/dist/client/handshake/license.d.ts.map +1 -0
- package/dist/client/handshake/license.js +169 -0
- package/dist/client/handshake/license.js.map +1 -0
- package/dist/client/handshake.d.ts +27 -0
- package/dist/client/handshake.d.ts.map +1 -0
- package/dist/client/handshake.js +126 -0
- package/dist/client/handshake.js.map +1 -0
- package/dist/client/helpers.d.ts +6 -0
- package/dist/client/helpers.d.ts.map +1 -0
- package/dist/client/helpers.js +13 -0
- package/dist/client/helpers.js.map +1 -0
- package/dist/client/hooks.d.ts +7 -0
- package/dist/client/hooks.d.ts.map +1 -0
- package/dist/client/hooks.js +28 -0
- package/dist/client/hooks.js.map +1 -0
- package/dist/client/index.d.ts +26 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +28 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/reconnect.d.ts +12 -0
- package/dist/client/reconnect.d.ts.map +1 -0
- package/dist/client/reconnect.js +44 -0
- package/dist/client/reconnect.js.map +1 -0
- package/dist/client/throttle.d.ts +20 -0
- package/dist/client/throttle.d.ts.map +1 -0
- package/dist/client/throttle.js +83 -0
- package/dist/client/throttle.js.map +1 -0
- package/dist/client/trace.d.ts +223 -0
- package/dist/client/trace.d.ts.map +1 -0
- package/dist/client/trace.js +13 -0
- package/dist/client/trace.js.map +1 -0
- package/dist/client/transfer.d.ts +111 -0
- package/dist/client/transfer.d.ts.map +1 -0
- package/dist/client/transfer.js +243 -0
- package/dist/client/transfer.js.map +1 -0
- package/dist/client/transport/generation-window.d.ts +30 -0
- package/dist/client/transport/generation-window.d.ts.map +1 -0
- package/dist/client/transport/generation-window.js +97 -0
- package/dist/client/transport/generation-window.js.map +1 -0
- package/dist/client/transport/handler.d.ts +61 -0
- package/dist/client/transport/handler.d.ts.map +1 -0
- package/dist/client/transport/handler.js +793 -0
- package/dist/client/transport/handler.js.map +1 -0
- package/dist/client/transport/index.d.ts +6 -0
- package/dist/client/transport/index.d.ts.map +1 -0
- package/dist/client/transport/index.js +5 -0
- package/dist/client/transport/index.js.map +1 -0
- package/dist/client/transport/packet.d.ts +36 -0
- package/dist/client/transport/packet.d.ts.map +1 -0
- package/dist/client/transport/packet.js +55 -0
- package/dist/client/transport/packet.js.map +1 -0
- package/dist/client/transport/quicklz.d.ts +24 -0
- package/dist/client/transport/quicklz.d.ts.map +1 -0
- package/dist/client/transport/quicklz.js +179 -0
- package/dist/client/transport/quicklz.js.map +1 -0
- package/dist/client/types.d.ts +226 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +39 -0
- package/dist/client/types.js.map +1 -0
- package/dist/core/api/channels.d.ts +182 -0
- package/dist/core/api/channels.d.ts.map +1 -0
- package/dist/core/api/channels.js +155 -0
- package/dist/core/api/channels.js.map +1 -0
- package/dist/core/api/clients.d.ts +304 -0
- package/dist/core/api/clients.d.ts.map +1 -0
- package/dist/core/api/clients.js +260 -0
- package/dist/core/api/clients.js.map +1 -0
- package/dist/core/api/command.d.ts +305 -0
- package/dist/core/api/command.d.ts.map +1 -0
- package/dist/core/api/command.js +363 -0
- package/dist/core/api/command.js.map +1 -0
- package/dist/core/api/files.d.ts +153 -0
- package/dist/core/api/files.d.ts.map +1 -0
- package/dist/core/api/files.js +181 -0
- package/dist/core/api/files.js.map +1 -0
- package/dist/core/api/groups.d.ts +248 -0
- package/dist/core/api/groups.d.ts.map +1 -0
- package/dist/core/api/groups.js +271 -0
- package/dist/core/api/groups.js.map +1 -0
- package/dist/core/api/moderation.d.ts +205 -0
- package/dist/core/api/moderation.d.ts.map +1 -0
- package/dist/core/api/moderation.js +209 -0
- package/dist/core/api/moderation.js.map +1 -0
- package/dist/core/api/parse.d.ts +16 -0
- package/dist/core/api/parse.d.ts.map +1 -0
- package/dist/core/api/parse.js +40 -0
- package/dist/core/api/parse.js.map +1 -0
- package/dist/core/api/server.d.ts +310 -0
- package/dist/core/api/server.d.ts.map +1 -0
- package/dist/core/api/server.js +290 -0
- package/dist/core/api/server.js.map +1 -0
- package/dist/core/command/command.d.ts +20 -0
- package/dist/core/command/command.d.ts.map +1 -0
- package/dist/core/command/command.js +112 -0
- package/dist/core/command/command.js.map +1 -0
- package/dist/core/command/ids.d.ts +125 -0
- package/dist/core/command/ids.d.ts.map +1 -0
- package/dist/core/command/ids.js +85 -0
- package/dist/core/command/ids.js.map +1 -0
- package/dist/core/command/parser.d.ts +17 -0
- package/dist/core/command/parser.d.ts.map +1 -0
- package/dist/core/command/parser.js +65 -0
- package/dist/core/command/parser.js.map +1 -0
- package/dist/core/command/request.d.ts +61 -0
- package/dist/core/command/request.d.ts.map +1 -0
- package/dist/core/command/request.js +64 -0
- package/dist/core/command/request.js.map +1 -0
- package/dist/core/command/responses.d.ts +59 -0
- package/dist/core/command/responses.d.ts.map +1 -0
- package/dist/core/command/responses.js +74 -0
- package/dist/core/command/responses.js.map +1 -0
- package/dist/core/command-name.d.ts +333 -0
- package/dist/core/command-name.d.ts.map +1 -0
- package/dist/core/command-name.js +331 -0
- package/dist/core/command-name.js.map +1 -0
- package/dist/core/enums.d.ts +146 -0
- package/dist/core/enums.d.ts.map +1 -0
- package/dist/core/enums.js +132 -0
- package/dist/core/enums.js.map +1 -0
- package/dist/core/errorcode.d.ts +413 -0
- package/dist/core/errorcode.d.ts.map +1 -0
- package/dist/core/errorcode.js +410 -0
- package/dist/core/errorcode.js.map +1 -0
- package/dist/core/errors.d.ts +111 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +233 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/events.d.ts +207 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +6 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/helpers.d.ts +42 -0
- package/dist/core/helpers.d.ts.map +1 -0
- package/dist/core/helpers.js +156 -0
- package/dist/core/helpers.js.map +1 -0
- package/dist/core/index.d.ts +35 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +34 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/internal.d.ts +23 -0
- package/dist/core/internal.d.ts.map +1 -0
- package/dist/core/internal.js +20 -0
- package/dist/core/internal.js.map +1 -0
- package/dist/core/middleware.d.ts +14 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +18 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/notification-name.d.ts +154 -0
- package/dist/core/notification-name.d.ts.map +1 -0
- package/dist/core/notification-name.js +152 -0
- package/dist/core/notification-name.js.map +1 -0
- package/dist/core/notifications.d.ts +43 -0
- package/dist/core/notifications.d.ts.map +1 -0
- package/dist/core/notifications.js +116 -0
- package/dist/core/notifications.js.map +1 -0
- package/dist/core/permission-name.d.ts +533 -0
- package/dist/core/permission-name.d.ts.map +1 -0
- package/dist/core/permission-name.js +531 -0
- package/dist/core/permission-name.js.map +1 -0
- package/dist/core/permission.d.ts +31 -0
- package/dist/core/permission.d.ts.map +1 -0
- package/dist/core/permission.js +20 -0
- package/dist/core/permission.js.map +1 -0
- package/dist/core/property-name.d.ts +403 -0
- package/dist/core/property-name.d.ts.map +1 -0
- package/dist/core/property-name.js +405 -0
- package/dist/core/property-name.js.map +1 -0
- package/dist/core/reason.d.ts +39 -0
- package/dist/core/reason.d.ts.map +1 -0
- package/dist/core/reason.js +36 -0
- package/dist/core/reason.js.map +1 -0
- package/dist/core/reconnect.d.ts +59 -0
- package/dist/core/reconnect.d.ts.map +1 -0
- package/dist/core/reconnect.js +55 -0
- package/dist/core/reconnect.js.map +1 -0
- package/dist/core/types.d.ts +110 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +27 -0
- package/dist/core/types.js.map +1 -0
- package/dist/query/client.d.ts +194 -0
- package/dist/query/client.d.ts.map +1 -0
- package/dist/query/client.js +967 -0
- package/dist/query/client.js.map +1 -0
- package/dist/query/errors.d.ts +61 -0
- package/dist/query/errors.d.ts.map +1 -0
- package/dist/query/errors.js +100 -0
- package/dist/query/errors.js.map +1 -0
- package/dist/query/index.d.ts +36 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +34 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/knownhosts.d.ts +61 -0
- package/dist/query/knownhosts.d.ts.map +1 -0
- package/dist/query/knownhosts.js +223 -0
- package/dist/query/knownhosts.js.map +1 -0
- package/dist/query/lines.d.ts +14 -0
- package/dist/query/lines.d.ts.map +1 -0
- package/dist/query/lines.js +29 -0
- package/dist/query/lines.js.map +1 -0
- package/dist/query/options.d.ts +187 -0
- package/dist/query/options.d.ts.map +1 -0
- package/dist/query/options.js +213 -0
- package/dist/query/options.js.map +1 -0
- package/dist/query/reconnect.d.ts +29 -0
- package/dist/query/reconnect.d.ts.map +1 -0
- package/dist/query/reconnect.js +87 -0
- package/dist/query/reconnect.js.map +1 -0
- package/dist/query/ssh.d.ts +345 -0
- package/dist/query/ssh.d.ts.map +1 -0
- package/dist/query/ssh.js +241 -0
- package/dist/query/ssh.js.map +1 -0
- package/dist/query/stream.d.ts +38 -0
- package/dist/query/stream.d.ts.map +1 -0
- package/dist/query/stream.js +70 -0
- package/dist/query/stream.js.map +1 -0
- package/dist/query/tcp.d.ts +38 -0
- package/dist/query/tcp.d.ts.map +1 -0
- package/dist/query/tcp.js +53 -0
- package/dist/query/tcp.js.map +1 -0
- package/dist/query/transport.d.ts +36 -0
- package/dist/query/transport.d.ts.map +1 -0
- package/dist/query/transport.js +2 -0
- package/dist/query/transport.js.map +1 -0
- package/dist/query/web.d.ts +54 -0
- package/dist/query/web.d.ts.map +1 -0
- package/dist/query/web.js +146 -0
- package/dist/query/web.js.map +1 -0
- package/dist/versions/index.d.ts +3094 -0
- package/dist/versions/index.d.ts.map +1 -0
- package/dist/versions/index.js +9237 -0
- package/dist/versions/index.js.map +1 -0
- package/package.json +118 -4
- package/src/client/abort.ts +24 -0
- package/src/client/address.ts +74 -0
- package/src/client/api/voice.ts +61 -0
- package/src/client/capabilities.ts +106 -0
- package/src/client/client.ts +1809 -0
- package/src/client/commands.ts +193 -0
- package/src/client/crypto/crypt-ops.ts +6 -0
- package/src/client/crypto/crypt.ts +275 -0
- package/src/client/crypto/eax.ts +152 -0
- package/src/client/crypto/identity.ts +484 -0
- package/src/client/crypto/index.ts +21 -0
- package/src/client/crypto/primitives.ts +141 -0
- package/src/client/diagnostics.ts +58 -0
- package/src/client/discovery/index.ts +1 -0
- package/src/client/discovery/resolver.ts +325 -0
- package/src/client/errors.ts +217 -0
- package/src/client/events.ts +12 -0
- package/src/client/handshake/crypt-handshake.ts +157 -0
- package/src/client/handshake/crypt-init2.ts +48 -0
- package/src/client/handshake/index.ts +3 -0
- package/src/client/handshake/license.ts +208 -0
- package/src/client/handshake.ts +150 -0
- package/src/client/helpers.ts +10 -0
- package/src/client/hooks.ts +30 -0
- package/src/client/index.ts +93 -0
- package/src/client/reconnect.ts +43 -0
- package/src/client/throttle.ts +92 -0
- package/src/client/trace.ts +237 -0
- package/src/client/transfer.ts +436 -0
- package/src/client/transport/generation-window.ts +108 -0
- package/src/client/transport/handler.ts +926 -0
- package/src/client/transport/index.ts +14 -0
- package/src/client/transport/packet.ts +69 -0
- package/src/client/transport/quicklz.ts +209 -0
- package/src/client/types.ts +268 -0
- package/src/core/api/channels.ts +396 -0
- package/src/core/api/clients.ts +654 -0
- package/src/core/api/command.ts +563 -0
- package/src/core/api/files.ts +405 -0
- package/src/core/api/groups.ts +622 -0
- package/src/core/api/moderation.ts +525 -0
- package/src/core/api/parse.ts +52 -0
- package/src/core/api/server.ts +709 -0
- package/src/core/command/command.ts +125 -0
- package/src/core/command/ids.ts +149 -0
- package/src/core/command/parser.ts +68 -0
- package/src/core/command/request.ts +119 -0
- package/src/core/command/responses.ts +114 -0
- package/src/core/command-name.ts +334 -0
- package/src/core/enums.ts +167 -0
- package/src/core/errorcode.ts +412 -0
- package/src/core/errors.ts +258 -0
- package/src/core/events.ts +219 -0
- package/src/core/helpers.ts +161 -0
- package/src/core/index.ts +126 -0
- package/src/core/internal.ts +23 -0
- package/src/core/middleware.ts +24 -0
- package/src/core/notification-name.ts +155 -0
- package/src/core/notifications.ts +157 -0
- package/src/core/permission-name.ts +538 -0
- package/src/core/permission.ts +34 -0
- package/src/core/property-name.ts +411 -0
- package/src/core/reason.ts +38 -0
- package/src/core/reconnect.ts +98 -0
- package/src/core/types.ts +138 -0
- package/src/query/client.ts +1132 -0
- package/src/query/errors.ts +108 -0
- package/src/query/index.ts +65 -0
- package/src/query/knownhosts.ts +257 -0
- package/src/query/lines.ts +28 -0
- package/src/query/options.ts +388 -0
- package/src/query/reconnect.ts +84 -0
- package/src/query/ssh.ts +614 -0
- package/src/query/stream.ts +91 -0
- package/src/query/tcp.ts +85 -0
- package/src/query/transport.ts +35 -0
- package/src/query/web.ts +195 -0
- package/src/versions/index.ts +10774 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** The values of the table below, before freezing. */
|
|
2
|
+
const eventNameValues = {
|
|
3
|
+
/** A text message to this client, its channel or the server. */
|
|
4
|
+
TextMessage: "textMessage",
|
|
5
|
+
/** A client coming into view, including every client already there on connecting. */
|
|
6
|
+
ClientEnter: "clientEnter",
|
|
7
|
+
/** A client going out of view. */
|
|
8
|
+
ClientLeave: "clientLeave",
|
|
9
|
+
/** A client changing channel. */
|
|
10
|
+
ClientMoved: "clientMoved",
|
|
11
|
+
/** This client being poked. */
|
|
12
|
+
Poked: "poked",
|
|
13
|
+
/** Audio from another client. Only decoded with a listener or event middleware. */
|
|
14
|
+
VoiceData: "voiceData",
|
|
15
|
+
/**
|
|
16
|
+
* Every notification the server sends, modelled or not, after any event it
|
|
17
|
+
* produces; one with a typed event arrives here as well, not only there.
|
|
18
|
+
*/
|
|
19
|
+
Notification: "notification",
|
|
20
|
+
/** The handshake completing, on `connect()` and on every reconnection. */
|
|
21
|
+
Connected: "connected",
|
|
22
|
+
/** The connection ending, with its cause and whether a reconnection follows. */
|
|
23
|
+
Disconnected: "disconnected",
|
|
24
|
+
/** A kick from the server, which also ends the connection. */
|
|
25
|
+
Kicked: "kicked",
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The names of the events `Client.on()` takes, as constants. `on(EventName.TextMessage, ...)`
|
|
29
|
+
* and `on("textMessage", ...)` are the same call, and both give the listener
|
|
30
|
+
* the same payload type.
|
|
31
|
+
*/
|
|
32
|
+
export const EventName = /* @__PURE__ */ Object.freeze(eventNameValues);
|
|
33
|
+
// Each direction fails to compile when `EventMap` and `EventName` drift: an
|
|
34
|
+
// event without a name, and a name that is not an event.
|
|
35
|
+
const eventNamesCoverEventMap = true;
|
|
36
|
+
const eventMapCoversEventNames = true;
|
|
37
|
+
void eventNamesCoverEventMap;
|
|
38
|
+
void eventMapCoversEventNames;
|
|
39
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAmDA,sDAAsD;AACtD,MAAM,eAAe,GAAG;IACtB,gEAAgE;IAChE,WAAW,EAAE,aAAa;IAC1B,qFAAqF;IACrF,WAAW,EAAE,aAAa;IAC1B,kCAAkC;IAClC,WAAW,EAAE,aAAa;IAC1B,iCAAiC;IACjC,WAAW,EAAE,aAAa;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,OAAO;IACd,mFAAmF;IACnF,SAAS,EAAE,WAAW;IACtB;;;OAGG;IACH,YAAY,EAAE,cAAc;IAC5B,0EAA0E;IAC1E,SAAS,EAAE,WAAW;IACtB,gFAAgF;IAChF,YAAY,EAAE,cAAc;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,QAAQ;CACR,CAAC;AACX;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAA2B,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAOhG,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,uBAAuB,GAC3B,IAAI,CAAC;AACP,MAAM,wBAAwB,GAElB,IAAI,CAAC;AACjB,KAAK,uBAAuB,CAAC;AAC7B,KAAK,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel commands.
|
|
3
|
+
*
|
|
4
|
+
* Channel settings are a wide, mostly-optional set. The options objects name
|
|
5
|
+
* them in camelCase without the `channel_` prefix (`codecQuality` for
|
|
6
|
+
* `channel_codec_quality`), and each options type has a table naming every
|
|
7
|
+
* field's wire parameter, so the mapping is written down once and a key the
|
|
8
|
+
* table does not know is never sent.
|
|
9
|
+
*/
|
|
10
|
+
import type { Channel, PermissionEntry } from "./command.js";
|
|
11
|
+
import type { CommandExecutor, CommandOptions } from "../command/request.js";
|
|
12
|
+
import type { ChannelID, ClientDBID } from "../command/ids.js";
|
|
13
|
+
import type { Codec } from "../enums.js";
|
|
14
|
+
import type { Permission } from "../permission.js";
|
|
15
|
+
/**
|
|
16
|
+
* Channel settings, as `channelcreate` and `channeledit` take them.
|
|
17
|
+
*
|
|
18
|
+
* Only the fields you set are sent. An unset (undefined) field is omitted and
|
|
19
|
+
* leaves the setting alone; any other value is sent, so `""` sends an empty
|
|
20
|
+
* value — `password: ""` clears a channel's password, while leaving `password`
|
|
21
|
+
* unset keeps it.
|
|
22
|
+
*/
|
|
23
|
+
export interface ChannelSettings {
|
|
24
|
+
/** The topic shown under the name (`channel_topic`). */
|
|
25
|
+
readonly topic?: string | undefined;
|
|
26
|
+
/** The description (`channel_description`). */
|
|
27
|
+
readonly description?: string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The channel password (`channel_password`), in cleartext: the voice client
|
|
30
|
+
* hashes it on the wire and ServerQuery sends it as is. `""` removes it.
|
|
31
|
+
*/
|
|
32
|
+
readonly password?: string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the channel is password-protected (`channel_flag_password`). The
|
|
35
|
+
* server sets this itself when a password is set.
|
|
36
|
+
*/
|
|
37
|
+
readonly hasPassword?: boolean | undefined;
|
|
38
|
+
/** The voice codec (`channel_codec`). */
|
|
39
|
+
readonly codec?: Codec | undefined;
|
|
40
|
+
/** The codec's quality, 0 to 10 (`channel_codec_quality`). */
|
|
41
|
+
readonly codecQuality?: number | undefined;
|
|
42
|
+
/** How many packets of voice to send at once, 1 to 10 (`channel_codec_latency_factor`). */
|
|
43
|
+
readonly codecLatencyFactor?: number | undefined;
|
|
44
|
+
/** Whether voice in the channel travels unencrypted (`channel_codec_is_unencrypted`). */
|
|
45
|
+
readonly isUnencrypted?: boolean | undefined;
|
|
46
|
+
/** How many clients may be in the channel (`channel_maxclients`). */
|
|
47
|
+
readonly maxClients?: number | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* How many clients may be in the channel and those under it
|
|
50
|
+
* (`channel_maxfamilyclients`).
|
|
51
|
+
*/
|
|
52
|
+
readonly maxFamilyClients?: number | undefined;
|
|
53
|
+
/** Whether `maxClients` is ignored (`channel_flag_maxclients_unlimited`). */
|
|
54
|
+
readonly isMaxClientsUnlimited?: boolean | undefined;
|
|
55
|
+
/** Whether `maxFamilyClients` is ignored (`channel_flag_maxfamilyclients_unlimited`). */
|
|
56
|
+
readonly isMaxFamilyClientsUnlimited?: boolean | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the family limit is taken from the parent
|
|
59
|
+
* (`channel_flag_maxfamilyclients_inherited`).
|
|
60
|
+
*/
|
|
61
|
+
readonly isMaxFamilyClientsInherited?: boolean | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* The channel to sort this one after among its siblings; 0 sorts it first
|
|
64
|
+
* (`channel_order`).
|
|
65
|
+
*/
|
|
66
|
+
readonly order?: ChannelID | undefined;
|
|
67
|
+
/** The talk power a client needs to speak here (`channel_needed_talk_power`). */
|
|
68
|
+
readonly neededTalkPower?: number | undefined;
|
|
69
|
+
/** Whether the channel survives a server restart (`channel_flag_permanent`). */
|
|
70
|
+
readonly isPermanent?: boolean | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the channel survives its last client leaving, but not a restart
|
|
73
|
+
* (`channel_flag_semi_permanent`).
|
|
74
|
+
*/
|
|
75
|
+
readonly isSemiPermanent?: boolean | undefined;
|
|
76
|
+
/** Whether new clients land here (`channel_flag_default`). */
|
|
77
|
+
readonly isDefault?: boolean | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* How long a temporary channel survives its last client leaving, in
|
|
80
|
+
* milliseconds (`channel_delete_delay`). Sent in whole seconds.
|
|
81
|
+
*/
|
|
82
|
+
readonly deleteDelayMs?: number | undefined;
|
|
83
|
+
/** How the name is pronounced, for text-to-speech (`channel_name_phonetic`). */
|
|
84
|
+
readonly namePhonetic?: string | undefined;
|
|
85
|
+
}
|
|
86
|
+
/** A new channel's settings. Only `name` is required; see {@link ChannelSettings}. */
|
|
87
|
+
export interface ChannelCreateOptions extends ChannelSettings {
|
|
88
|
+
/** The channel's name (`channel_name`). */
|
|
89
|
+
readonly name: string;
|
|
90
|
+
/**
|
|
91
|
+
* The channel to create the new one under; unset or 0 is the top level, and
|
|
92
|
+
* either omits the parameter (`cpid`).
|
|
93
|
+
*/
|
|
94
|
+
readonly parentID?: ChannelID | undefined;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a channel and return the id the server assigned.
|
|
98
|
+
*
|
|
99
|
+
* Over the voice protocol the server also moves the creator into the new
|
|
100
|
+
* channel.
|
|
101
|
+
*
|
|
102
|
+
* `channel` is what to send; the command's `signal` and `timeoutMs` go in
|
|
103
|
+
* `options`, a separate last argument — set among the fields, they are not
|
|
104
|
+
* read.
|
|
105
|
+
*/
|
|
106
|
+
export declare function createChannel(client: CommandExecutor, channel: ChannelCreateOptions, options?: CommandOptions): Promise<ChannelID>;
|
|
107
|
+
/** A channel's changed settings; see {@link ChannelSettings}. */
|
|
108
|
+
export interface ChannelEditOptions extends ChannelSettings {
|
|
109
|
+
/** The channel's new name (`channel_name`). */
|
|
110
|
+
readonly name?: string | undefined;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Change a channel's settings. Only the fields you set are sent.
|
|
114
|
+
*
|
|
115
|
+
* `settings` is what to send; the command's `signal` and `timeoutMs` go in
|
|
116
|
+
* `options`, a separate last argument — set among the fields, they are not
|
|
117
|
+
* read.
|
|
118
|
+
*/
|
|
119
|
+
export declare function editChannel(client: CommandExecutor, cid: ChannelID, settings: ChannelEditOptions, options?: CommandOptions): Promise<void>;
|
|
120
|
+
/** How {@link deleteChannel} deletes. */
|
|
121
|
+
export interface ChannelDeleteOptions extends CommandOptions {
|
|
122
|
+
/**
|
|
123
|
+
* Delete the channel even while clients are in it, moving them out; false
|
|
124
|
+
* by default, which the server then refuses for an occupied channel
|
|
125
|
+
* (`force`, always sent).
|
|
126
|
+
*/
|
|
127
|
+
readonly force?: boolean | undefined;
|
|
128
|
+
}
|
|
129
|
+
/** Delete a channel. */
|
|
130
|
+
export declare function deleteChannel(client: CommandExecutor, cid: ChannelID, options?: ChannelDeleteOptions): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* All channels on the server, in the server's own sort order.
|
|
133
|
+
*
|
|
134
|
+
* Always asks for the topic, flags, voice, limits and icon, which a bare
|
|
135
|
+
* `channellist` leaves out. `description` and `uid` are not part of
|
|
136
|
+
* `channellist` and stay empty; `getChannelInfo` has them.
|
|
137
|
+
*/
|
|
138
|
+
export declare function listChannels(client: CommandExecutor, options?: CommandOptions): Promise<Channel[]>;
|
|
139
|
+
/**
|
|
140
|
+
* One channel's full settings.
|
|
141
|
+
*
|
|
142
|
+
* `totalClients`, `totalFamilyClients` and `neededSubscribePower` are left
|
|
143
|
+
* undefined: `channelinfo` does not carry them. `listChannels` does.
|
|
144
|
+
*
|
|
145
|
+
* `channelinfo` answers with `pid` and the settings but no `cid` — the channel
|
|
146
|
+
* is whatever was asked for — so the id is taken from the argument rather than
|
|
147
|
+
* read from the row, where it would come back 0.
|
|
148
|
+
*/
|
|
149
|
+
export declare function getChannelInfo(client: CommandExecutor, cid: ChannelID, options?: CommandOptions): Promise<Channel>;
|
|
150
|
+
/** A channel whose name matched a search. */
|
|
151
|
+
export interface ChannelMatch {
|
|
152
|
+
/** The channel's id. */
|
|
153
|
+
readonly id: ChannelID;
|
|
154
|
+
/** The channel's name. */
|
|
155
|
+
readonly name: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Channels whose name contains `pattern`; none is an empty list. The server
|
|
159
|
+
* reports finding none as error 768 (invalid channelID), which this answers
|
|
160
|
+
* as `[]`.
|
|
161
|
+
*/
|
|
162
|
+
export declare function findChannels(client: CommandExecutor, pattern: string, options?: CommandOptions): Promise<ChannelMatch[]>;
|
|
163
|
+
/** Where {@link moveChannel} sorts the channel among its new siblings. */
|
|
164
|
+
export interface ChannelMoveOptions extends CommandOptions {
|
|
165
|
+
/** The sibling to sort after, 0 for first; unset leaves it to the server (`order`). */
|
|
166
|
+
readonly order?: ChannelID | undefined;
|
|
167
|
+
}
|
|
168
|
+
/** Move a channel under a new parent. */
|
|
169
|
+
export declare function moveChannel(client: CommandExecutor, cid: ChannelID, parentID: ChannelID, options?: ChannelMoveOptions): Promise<void>;
|
|
170
|
+
/** Set a permission on a channel. */
|
|
171
|
+
export declare function addChannelPermission(client: CommandExecutor, cid: ChannelID, permission: Permission, value: number, options?: CommandOptions): Promise<void>;
|
|
172
|
+
/** Remove a permission from a channel. */
|
|
173
|
+
export declare function deleteChannelPermission(client: CommandExecutor, cid: ChannelID, permission: Permission, options?: CommandOptions): Promise<void>;
|
|
174
|
+
/** Permissions set directly on a channel. */
|
|
175
|
+
export declare function listChannelPermissions(client: CommandExecutor, cid: ChannelID, options?: CommandOptions): Promise<PermissionEntry[]>;
|
|
176
|
+
/** Permissions granted to one client within one channel. */
|
|
177
|
+
export declare function listChannelClientPermissions(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, options?: CommandOptions): Promise<PermissionEntry[]>;
|
|
178
|
+
/** Set a permission on one client within one channel. */
|
|
179
|
+
export declare function addChannelClientPermission(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, permission: Permission, value: number, options?: CommandOptions): Promise<void>;
|
|
180
|
+
/** Remove a permission from one client within one channel. */
|
|
181
|
+
export declare function deleteChannelClientPermission(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, permission: Permission, options?: CommandOptions): Promise<void>;
|
|
182
|
+
//# sourceMappingURL=channels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/core/api/channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel commands.
|
|
3
|
+
*
|
|
4
|
+
* Channel settings are a wide, mostly-optional set. The options objects name
|
|
5
|
+
* them in camelCase without the `channel_` prefix (`codecQuality` for
|
|
6
|
+
* `channel_codec_quality`), and each options type has a table naming every
|
|
7
|
+
* field's wire parameter, so the mapping is written down once and a key the
|
|
8
|
+
* table does not know is never sent.
|
|
9
|
+
*/
|
|
10
|
+
import { nonZero, firstRow, exec, query, list, parseChannel, parsePermission, permissionParam, encodeFields, inSeconds, big, str, } from "./command.js";
|
|
11
|
+
import { asChannelID } from "../command/ids.js";
|
|
12
|
+
import { ErrorCode } from "../errorcode.js";
|
|
13
|
+
const settingNames = {
|
|
14
|
+
topic: "channel_topic",
|
|
15
|
+
description: "channel_description",
|
|
16
|
+
password: "channel_password",
|
|
17
|
+
hasPassword: "channel_flag_password",
|
|
18
|
+
codec: "channel_codec",
|
|
19
|
+
codecQuality: "channel_codec_quality",
|
|
20
|
+
codecLatencyFactor: "channel_codec_latency_factor",
|
|
21
|
+
isUnencrypted: "channel_codec_is_unencrypted",
|
|
22
|
+
maxClients: "channel_maxclients",
|
|
23
|
+
maxFamilyClients: "channel_maxfamilyclients",
|
|
24
|
+
isMaxClientsUnlimited: "channel_flag_maxclients_unlimited",
|
|
25
|
+
isMaxFamilyClientsUnlimited: "channel_flag_maxfamilyclients_unlimited",
|
|
26
|
+
isMaxFamilyClientsInherited: "channel_flag_maxfamilyclients_inherited",
|
|
27
|
+
order: "channel_order",
|
|
28
|
+
neededTalkPower: "channel_needed_talk_power",
|
|
29
|
+
isPermanent: "channel_flag_permanent",
|
|
30
|
+
isSemiPermanent: "channel_flag_semi_permanent",
|
|
31
|
+
isDefault: "channel_flag_default",
|
|
32
|
+
deleteDelayMs: ["channel_delete_delay", inSeconds],
|
|
33
|
+
namePhonetic: "channel_name_phonetic",
|
|
34
|
+
};
|
|
35
|
+
const createNames = {
|
|
36
|
+
name: "channel_name",
|
|
37
|
+
parentID: ["cpid", nonZero],
|
|
38
|
+
...settingNames,
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Create a channel and return the id the server assigned.
|
|
42
|
+
*
|
|
43
|
+
* Over the voice protocol the server also moves the creator into the new
|
|
44
|
+
* channel.
|
|
45
|
+
*
|
|
46
|
+
* `channel` is what to send; the command's `signal` and `timeoutMs` go in
|
|
47
|
+
* `options`, a separate last argument — set among the fields, they are not
|
|
48
|
+
* read.
|
|
49
|
+
*/
|
|
50
|
+
export async function createChannel(client, channel, options) {
|
|
51
|
+
const rows = await query(client, "channelcreate", encodeFields(channel, createNames), options, [
|
|
52
|
+
"channel_password",
|
|
53
|
+
]);
|
|
54
|
+
return asChannelID(big(firstRow(rows, "channelcreate", "cid"), "cid"));
|
|
55
|
+
}
|
|
56
|
+
const editNames = { name: "channel_name", ...settingNames };
|
|
57
|
+
/**
|
|
58
|
+
* Change a channel's settings. Only the fields you set are sent.
|
|
59
|
+
*
|
|
60
|
+
* `settings` is what to send; the command's `signal` and `timeoutMs` go in
|
|
61
|
+
* `options`, a separate last argument — set among the fields, they are not
|
|
62
|
+
* read.
|
|
63
|
+
*/
|
|
64
|
+
export async function editChannel(client, cid, settings, options) {
|
|
65
|
+
await exec(client, "channeledit", [["cid", cid], ...encodeFields(settings, editNames)], options, [
|
|
66
|
+
"channel_password",
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
/** Delete a channel. */
|
|
70
|
+
export async function deleteChannel(client, cid, options = {}) {
|
|
71
|
+
await exec(client, "channeldelete", [
|
|
72
|
+
["cid", cid],
|
|
73
|
+
["force", options.force ?? false],
|
|
74
|
+
], options);
|
|
75
|
+
}
|
|
76
|
+
const listFlags = [
|
|
77
|
+
["-topic", true],
|
|
78
|
+
["-flags", true],
|
|
79
|
+
["-voice", true],
|
|
80
|
+
["-limits", true],
|
|
81
|
+
["-icon", true],
|
|
82
|
+
];
|
|
83
|
+
/**
|
|
84
|
+
* All channels on the server, in the server's own sort order.
|
|
85
|
+
*
|
|
86
|
+
* Always asks for the topic, flags, voice, limits and icon, which a bare
|
|
87
|
+
* `channellist` leaves out. `description` and `uid` are not part of
|
|
88
|
+
* `channellist` and stay empty; `getChannelInfo` has them.
|
|
89
|
+
*/
|
|
90
|
+
export async function listChannels(client, options) {
|
|
91
|
+
return (await list(client, "channellist", listFlags, options)).map(parseChannel);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* One channel's full settings.
|
|
95
|
+
*
|
|
96
|
+
* `totalClients`, `totalFamilyClients` and `neededSubscribePower` are left
|
|
97
|
+
* undefined: `channelinfo` does not carry them. `listChannels` does.
|
|
98
|
+
*
|
|
99
|
+
* `channelinfo` answers with `pid` and the settings but no `cid` — the channel
|
|
100
|
+
* is whatever was asked for — so the id is taken from the argument rather than
|
|
101
|
+
* read from the row, where it would come back 0.
|
|
102
|
+
*/
|
|
103
|
+
export async function getChannelInfo(client, cid, options) {
|
|
104
|
+
const rows = await query(client, "channelinfo", [["cid", cid]], options);
|
|
105
|
+
return { ...parseChannel(firstRow(rows, "channelinfo")), id: cid };
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Channels whose name contains `pattern`; none is an empty list. The server
|
|
109
|
+
* reports finding none as error 768 (invalid channelID), which this answers
|
|
110
|
+
* as `[]`.
|
|
111
|
+
*/
|
|
112
|
+
export async function findChannels(client, pattern, options) {
|
|
113
|
+
const rows = await list(client, "channelfind", [["pattern", pattern]], options, {
|
|
114
|
+
noMatch: ErrorCode.ChannelInvalidID,
|
|
115
|
+
});
|
|
116
|
+
return rows.map((row) => ({ id: asChannelID(big(row, "cid")), name: str(row, "channel_name") }));
|
|
117
|
+
}
|
|
118
|
+
/** Move a channel under a new parent. */
|
|
119
|
+
export async function moveChannel(client, cid, parentID, options = {}) {
|
|
120
|
+
await exec(client, "channelmove", [
|
|
121
|
+
["cid", cid],
|
|
122
|
+
["cpid", parentID],
|
|
123
|
+
["order", options.order],
|
|
124
|
+
], options);
|
|
125
|
+
}
|
|
126
|
+
// ---- Channel permissions ----------------------------------------------------
|
|
127
|
+
/** Set a permission on a channel. */
|
|
128
|
+
export async function addChannelPermission(client, cid, permission, value, options) {
|
|
129
|
+
await exec(client, "channeladdperm", [["cid", cid], permissionParam(permission), ["permvalue", value]], options);
|
|
130
|
+
}
|
|
131
|
+
/** Remove a permission from a channel. */
|
|
132
|
+
export async function deleteChannelPermission(client, cid, permission, options) {
|
|
133
|
+
await exec(client, "channeldelperm", [["cid", cid], permissionParam(permission)], options);
|
|
134
|
+
}
|
|
135
|
+
/** Permissions set directly on a channel. */
|
|
136
|
+
export async function listChannelPermissions(client, cid, options) {
|
|
137
|
+
return (await list(client, "channelpermlist", [["cid", cid]], options)).map(parsePermission);
|
|
138
|
+
}
|
|
139
|
+
/** Permissions granted to one client within one channel. */
|
|
140
|
+
export async function listChannelClientPermissions(client, cid, cldbid, options) {
|
|
141
|
+
const rows = await list(client, "channelclientpermlist", [
|
|
142
|
+
["cid", cid],
|
|
143
|
+
["cldbid", cldbid],
|
|
144
|
+
], options);
|
|
145
|
+
return rows.map(parsePermission);
|
|
146
|
+
}
|
|
147
|
+
/** Set a permission on one client within one channel. */
|
|
148
|
+
export async function addChannelClientPermission(client, cid, cldbid, permission, value, options) {
|
|
149
|
+
await exec(client, "channelclientaddperm", [["cid", cid], ["cldbid", cldbid], permissionParam(permission), ["permvalue", value]], options);
|
|
150
|
+
}
|
|
151
|
+
/** Remove a permission from one client within one channel. */
|
|
152
|
+
export async function deleteChannelClientPermission(client, cid, cldbid, permission, options) {
|
|
153
|
+
await exec(client, "channelclientdelperm", [["cid", cid], ["cldbid", cldbid], permissionParam(permission)], options);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/core/api/channels.ts"],"names":[],"mappings":"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"}
|