@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 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/core/api/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File transfer commands.
|
|
3
|
+
*
|
|
4
|
+
* These are the control-plane half: they list, move and delete files, and they
|
|
5
|
+
* negotiate an upload or download. The actual bytes travel over a separate TCP
|
|
6
|
+
* connection to the file transfer port, which the voice client's
|
|
7
|
+
* `uploadFileData` and `downloadFileData` handle.
|
|
8
|
+
*
|
|
9
|
+
* Every command here takes a channel password as its `password` option, in
|
|
10
|
+
* cleartext: the voice client sends it as `base64(sha1(password))`, the same
|
|
11
|
+
* encoding `clientmove` uses, and ServerQuery as it is. Unset, it is sent
|
|
12
|
+
* empty, which is right for a channel with no password.
|
|
13
|
+
*/
|
|
14
|
+
import type { CommandExecutor, CommandOptions } from "../command/request.js";
|
|
15
|
+
import type { ChannelID, ClientFileTransferID, ClientID, ServerFileTransferID } from "../command/ids.js";
|
|
16
|
+
import type { FileDownloadInfo, FileUploadInfo } from "../types.js";
|
|
17
|
+
/** One entry of a directory listing, or one file's details. */
|
|
18
|
+
export interface FileEntry {
|
|
19
|
+
/** The file or directory name. */
|
|
20
|
+
readonly name: string;
|
|
21
|
+
/** The size in bytes; 0 for a directory. */
|
|
22
|
+
readonly size: bigint;
|
|
23
|
+
/**
|
|
24
|
+
* When it was last modified. TS3 sends seconds, TS6 milliseconds in a
|
|
25
|
+
* listing and nanoseconds in `getFileInfo`; all are read as the same time.
|
|
26
|
+
*/
|
|
27
|
+
readonly modifiedAt: Date | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Whether this is a directory. The listing sends `type=0` for a directory
|
|
30
|
+
* and `type=1` for a file; `getFileInfo`'s answer carries no type, so there
|
|
31
|
+
* it is always false.
|
|
32
|
+
*/
|
|
33
|
+
readonly isDirectory: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** The channel password a file command needs. */
|
|
36
|
+
export interface FileOptions extends CommandOptions {
|
|
37
|
+
/** The channel's password, in cleartext; "" by default (`cpw`). */
|
|
38
|
+
readonly password?: string | undefined;
|
|
39
|
+
}
|
|
40
|
+
/** Directory listing for one path in a channel's file area. */
|
|
41
|
+
export declare function listFiles(client: CommandExecutor, cid: ChannelID, path: string, options?: FileOptions): Promise<FileEntry[]>;
|
|
42
|
+
/** Size and timestamp of one file. */
|
|
43
|
+
export declare function getFileInfo(client: CommandExecutor, cid: ChannelID, path: string, options?: FileOptions): Promise<FileEntry>;
|
|
44
|
+
/**
|
|
45
|
+
* Delete one or more files, in one command: each name is a row of it
|
|
46
|
+
* (`name=/a|name=/b`).
|
|
47
|
+
*/
|
|
48
|
+
export declare function deleteFile(client: CommandExecutor, cid: ChannelID, paths: string | readonly string[], options?: FileOptions): Promise<void>;
|
|
49
|
+
/** Create a directory, including any missing parents. */
|
|
50
|
+
export declare function createDirectory(client: CommandExecutor, cid: ChannelID, dirname: string, options?: FileOptions): Promise<void>;
|
|
51
|
+
/** Where {@link renameFile} moves a file, and the passwords it needs. */
|
|
52
|
+
export interface FileRenameOptions extends CommandOptions {
|
|
53
|
+
/** The source channel's password, in cleartext; "" by default (`cpw`, always sent). */
|
|
54
|
+
readonly password?: string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Move the file into this channel's file area; unset or 0 keeps it in the
|
|
57
|
+
* same channel, and omits `tcid` and `tcpw` both (`tcid`).
|
|
58
|
+
*/
|
|
59
|
+
readonly targetChannelID?: ChannelID | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* The target channel's password, in cleartext; "" by default. Sent, as
|
|
62
|
+
* `tcpw`, only with a `targetChannelID`.
|
|
63
|
+
*/
|
|
64
|
+
readonly targetChannelPassword?: string | undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Rename or move a file, optionally into another channel.
|
|
68
|
+
*
|
|
69
|
+
* `cpw` is always sent, as for every file command; `tcid` and `tcpw` go
|
|
70
|
+
* together, and only when the file moves to another channel.
|
|
71
|
+
*/
|
|
72
|
+
export declare function renameFile(client: CommandExecutor, cid: ChannelID, oldName: string, newName: string, options?: FileRenameOptions): Promise<void>;
|
|
73
|
+
/** How {@link stopFileTransfer} cancels. */
|
|
74
|
+
export interface FileTransferStopOptions extends CommandOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Remove the partial file as well, which is usually what you want after a
|
|
77
|
+
* failed upload; false by default (`delete`, always sent).
|
|
78
|
+
*/
|
|
79
|
+
readonly removePartialFile?: boolean | undefined;
|
|
80
|
+
}
|
|
81
|
+
/** Cancel a running transfer. */
|
|
82
|
+
export declare function stopFileTransfer(client: CommandExecutor, serverFileTransferID: ServerFileTransferID, options?: FileTransferStopOptions): Promise<void>;
|
|
83
|
+
/** A running transfer, as `ftlist` reports it. */
|
|
84
|
+
export interface ActiveTransfer {
|
|
85
|
+
/** The client transferring. */
|
|
86
|
+
readonly clientID: ClientID;
|
|
87
|
+
/** The directory in the channel's file area. */
|
|
88
|
+
readonly path: string;
|
|
89
|
+
/** The file name. */
|
|
90
|
+
readonly name: string;
|
|
91
|
+
/** The file's size in bytes. */
|
|
92
|
+
readonly size: bigint;
|
|
93
|
+
/** How many bytes have been transferred. */
|
|
94
|
+
readonly sizeDone: bigint;
|
|
95
|
+
/** The client's id for the transfer. */
|
|
96
|
+
readonly clientFileTransferID: ClientFileTransferID;
|
|
97
|
+
/** The server's id for the transfer, which {@link stopFileTransfer} takes. */
|
|
98
|
+
readonly serverFileTransferID: ServerFileTransferID;
|
|
99
|
+
/** Which side sends the data, as the server reports it (`sender`). */
|
|
100
|
+
readonly sender: string;
|
|
101
|
+
/**
|
|
102
|
+
* The transfer's state, as the server reports it. A plain number: no table
|
|
103
|
+
* of its values is known.
|
|
104
|
+
*/
|
|
105
|
+
readonly status: number;
|
|
106
|
+
/** The current speed, in bytes per second. */
|
|
107
|
+
readonly currentSpeed: number;
|
|
108
|
+
/** The average speed, in bytes per second. */
|
|
109
|
+
readonly averageSpeed: number;
|
|
110
|
+
/** How long the transfer has been running, in milliseconds. The server reports seconds. */
|
|
111
|
+
readonly runtimeMs: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* File transfers in progress. Requires the file-transfer-info permission. None
|
|
115
|
+
* is an empty list.
|
|
116
|
+
*/
|
|
117
|
+
export declare function listActiveTransfers(client: CommandExecutor, options?: CommandOptions): Promise<ActiveTransfer[]>;
|
|
118
|
+
/** How {@link initFileUpload} negotiates an upload. */
|
|
119
|
+
export interface FileUploadOptions extends CommandOptions {
|
|
120
|
+
/** The channel's password, in cleartext; "" by default (`cpw`). */
|
|
121
|
+
readonly password?: string | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Replace a file already at the path; false by default, so an upload never
|
|
124
|
+
* destroys a file unless asked to (`overwrite`, always sent).
|
|
125
|
+
*/
|
|
126
|
+
readonly overwrite?: boolean | undefined;
|
|
127
|
+
/** Continue a partial upload; false by default (`resume`). */
|
|
128
|
+
readonly resume?: boolean | undefined;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Negotiate an upload, returning the key and port to dial over TCP.
|
|
132
|
+
*
|
|
133
|
+
* Pass the result to the client's `uploadFileData` to send the data; it does
|
|
134
|
+
* not go through this command. A refusal — no permission to upload, say — is
|
|
135
|
+
* thrown as a ServerError, even though the voice protocol reports it in a
|
|
136
|
+
* separate notification after the command itself has succeeded.
|
|
137
|
+
*/
|
|
138
|
+
export declare function initFileUpload(client: CommandExecutor, cid: ChannelID, path: string, size: bigint, options?: FileUploadOptions): Promise<FileUploadInfo>;
|
|
139
|
+
/** How {@link initFileDownload} negotiates a download. */
|
|
140
|
+
export interface FileDownloadOptions extends CommandOptions {
|
|
141
|
+
/** The channel's password, in cleartext; "" by default (`cpw`). */
|
|
142
|
+
readonly password?: string | undefined;
|
|
143
|
+
/** The byte offset to start from, to resume; 0 by default (`seekpos`). */
|
|
144
|
+
readonly seekPosition?: bigint | undefined;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Negotiate a download, returning the key, port and size to dial over TCP.
|
|
148
|
+
*
|
|
149
|
+
* Pass the result to the client's `downloadFileData`. Refusals are thrown as
|
|
150
|
+
* for {@link initFileUpload}.
|
|
151
|
+
*/
|
|
152
|
+
export declare function initFileDownload(client: CommandExecutor, cid: ChannelID, path: string, options?: FileDownloadOptions): Promise<FileDownloadInfo>;
|
|
153
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/core/api/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File transfer commands.
|
|
3
|
+
*
|
|
4
|
+
* These are the control-plane half: they list, move and delete files, and they
|
|
5
|
+
* negotiate an upload or download. The actual bytes travel over a separate TCP
|
|
6
|
+
* connection to the file transfer port, which the voice client's
|
|
7
|
+
* `uploadFileData` and `downloadFileData` handle.
|
|
8
|
+
*
|
|
9
|
+
* Every command here takes a channel password as its `password` option, in
|
|
10
|
+
* cleartext: the voice client sends it as `base64(sha1(password))`, the same
|
|
11
|
+
* encoding `clientmove` uses, and ServerQuery as it is. Unset, it is sent
|
|
12
|
+
* empty, which is right for a channel with no password.
|
|
13
|
+
*/
|
|
14
|
+
import { uint, U16, firstRow, commandOptions, exec, query, list, str, big, num, date, durationMs, SECOND, } from "./command.js";
|
|
15
|
+
import { asClientFileTransferID, asClientID, asServerFileTransferID } from "../command/ids.js";
|
|
16
|
+
const asPath = (path) => (path.startsWith("/") ? path : `/${path}`);
|
|
17
|
+
const parseFileEntry = (row) => ({
|
|
18
|
+
name: str(row, "name"),
|
|
19
|
+
size: big(row, "size"),
|
|
20
|
+
modifiedAt: date(row, "datetime"),
|
|
21
|
+
isDirectory: row["type"] === "0",
|
|
22
|
+
});
|
|
23
|
+
/** Directory listing for one path in a channel's file area. */
|
|
24
|
+
export async function listFiles(client, cid, path, options = {}) {
|
|
25
|
+
const rows = await list(client, "ftgetfilelist", [
|
|
26
|
+
["cid", cid],
|
|
27
|
+
["path", asPath(path)],
|
|
28
|
+
["cpw", options.password ?? ""],
|
|
29
|
+
], options, { passwords: ["cpw"] });
|
|
30
|
+
return rows.map(parseFileEntry);
|
|
31
|
+
}
|
|
32
|
+
/** Size and timestamp of one file. */
|
|
33
|
+
export async function getFileInfo(client, cid, path, options = {}) {
|
|
34
|
+
const rows = await query(client, "ftgetfileinfo", [
|
|
35
|
+
["cid", cid],
|
|
36
|
+
["name", asPath(path)],
|
|
37
|
+
["cpw", options.password ?? ""],
|
|
38
|
+
], options, ["cpw"]);
|
|
39
|
+
return parseFileEntry(firstRow(rows, "ftgetfileinfo"));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Delete one or more files, in one command: each name is a row of it
|
|
43
|
+
* (`name=/a|name=/b`).
|
|
44
|
+
*/
|
|
45
|
+
export async function deleteFile(client, cid, paths, options = {}) {
|
|
46
|
+
const names = (typeof paths === "string" ? [paths] : paths).map(asPath);
|
|
47
|
+
if (names.length === 0)
|
|
48
|
+
return;
|
|
49
|
+
await client.send({
|
|
50
|
+
command: "ftdeletefile",
|
|
51
|
+
params: [
|
|
52
|
+
["cid", cid],
|
|
53
|
+
["cpw", options.password ?? ""],
|
|
54
|
+
],
|
|
55
|
+
rows: names.map((name) => [["name", name]]),
|
|
56
|
+
passwords: ["cpw"],
|
|
57
|
+
}, commandOptions(options));
|
|
58
|
+
}
|
|
59
|
+
/** Create a directory, including any missing parents. */
|
|
60
|
+
export async function createDirectory(client, cid, dirname, options = {}) {
|
|
61
|
+
await exec(client, "ftcreatedir", [
|
|
62
|
+
["cid", cid],
|
|
63
|
+
["dirname", asPath(dirname)],
|
|
64
|
+
["cpw", options.password ?? ""],
|
|
65
|
+
], options, ["cpw"]);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Rename or move a file, optionally into another channel.
|
|
69
|
+
*
|
|
70
|
+
* `cpw` is always sent, as for every file command; `tcid` and `tcpw` go
|
|
71
|
+
* together, and only when the file moves to another channel.
|
|
72
|
+
*/
|
|
73
|
+
export async function renameFile(client, cid, oldName, newName, options = {}) {
|
|
74
|
+
await exec(client, "ftrenamefile", [
|
|
75
|
+
["cid", cid],
|
|
76
|
+
["oldname", asPath(oldName)],
|
|
77
|
+
["newname", asPath(newName)],
|
|
78
|
+
["cpw", options.password ?? ""],
|
|
79
|
+
...(options.targetChannelID === undefined || options.targetChannelID === 0n
|
|
80
|
+
? []
|
|
81
|
+
: [
|
|
82
|
+
["tcid", options.targetChannelID],
|
|
83
|
+
["tcpw", options.targetChannelPassword ?? ""],
|
|
84
|
+
]),
|
|
85
|
+
], options, ["cpw", "tcpw"]);
|
|
86
|
+
}
|
|
87
|
+
/** Cancel a running transfer. */
|
|
88
|
+
export async function stopFileTransfer(client, serverFileTransferID, options = {}) {
|
|
89
|
+
await exec(client, "ftstop", [
|
|
90
|
+
["serverftfid", serverFileTransferID],
|
|
91
|
+
["delete", options.removePartialFile ?? false],
|
|
92
|
+
], options);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* File transfers in progress. Requires the file-transfer-info permission. None
|
|
96
|
+
* is an empty list.
|
|
97
|
+
*/
|
|
98
|
+
export async function listActiveTransfers(client, options) {
|
|
99
|
+
const rows = await list(client, "ftlist", [], options);
|
|
100
|
+
return rows.map((row) => ({
|
|
101
|
+
clientID: asClientID(uint(row, "clid", U16)),
|
|
102
|
+
path: str(row, "path"),
|
|
103
|
+
name: str(row, "name"),
|
|
104
|
+
size: big(row, "size"),
|
|
105
|
+
sizeDone: big(row, "sizedone"),
|
|
106
|
+
clientFileTransferID: asClientFileTransferID(uint(row, "clientftfid", U16)),
|
|
107
|
+
serverFileTransferID: asServerFileTransferID(uint(row, "serverftfid", U16)),
|
|
108
|
+
sender: str(row, "sender"),
|
|
109
|
+
status: num(row, "status"),
|
|
110
|
+
currentSpeed: num(row, "current_speed"),
|
|
111
|
+
averageSpeed: num(row, "average_speed"),
|
|
112
|
+
runtimeMs: durationMs(row, "runtime", SECOND),
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The `clientftfid` for the next negotiation.
|
|
117
|
+
*
|
|
118
|
+
* The server echoes it in the answer, and the echo is the only thing tying the
|
|
119
|
+
* answer to the request — it arrives after the command has already returned —
|
|
120
|
+
* so two transfers negotiated at once must not share one.
|
|
121
|
+
*/
|
|
122
|
+
let lastClientFileTransferID = 0;
|
|
123
|
+
function nextClientFileTransferID() {
|
|
124
|
+
lastClientFileTransferID = (lastClientFileTransferID % 65535) + 1;
|
|
125
|
+
return asClientFileTransferID(lastClientFileTransferID);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Negotiate an upload, returning the key and port to dial over TCP.
|
|
129
|
+
*
|
|
130
|
+
* Pass the result to the client's `uploadFileData` to send the data; it does
|
|
131
|
+
* not go through this command. A refusal — no permission to upload, say — is
|
|
132
|
+
* thrown as a ServerError, even though the voice protocol reports it in a
|
|
133
|
+
* separate notification after the command itself has succeeded.
|
|
134
|
+
*/
|
|
135
|
+
export async function initFileUpload(client, cid, path, size, options = {}) {
|
|
136
|
+
const rows = await query(client, "ftinitupload", [
|
|
137
|
+
["clientftfid", nextClientFileTransferID()],
|
|
138
|
+
["name", asPath(path)],
|
|
139
|
+
["cid", cid],
|
|
140
|
+
["cpw", options.password ?? ""],
|
|
141
|
+
["size", size],
|
|
142
|
+
["overwrite", options.overwrite ?? false],
|
|
143
|
+
["resume", options.resume ?? false],
|
|
144
|
+
// proto is required: omitting it fails the whole call with 1539
|
|
145
|
+
// (parameter not found) rather than defaulting.
|
|
146
|
+
["proto", 0],
|
|
147
|
+
], options, ["cpw"]);
|
|
148
|
+
const row = firstRow(rows, "ftinitupload", "ftkey");
|
|
149
|
+
return {
|
|
150
|
+
fileTransferKey: str(row, "ftkey"),
|
|
151
|
+
port: num(row, "port"),
|
|
152
|
+
seekPosition: big(row, "seekpos"),
|
|
153
|
+
clientFileTransferID: asClientFileTransferID(uint(row, "clientftfid", U16)),
|
|
154
|
+
serverFileTransferID: asServerFileTransferID(uint(row, "serverftfid", U16)),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Negotiate a download, returning the key, port and size to dial over TCP.
|
|
159
|
+
*
|
|
160
|
+
* Pass the result to the client's `downloadFileData`. Refusals are thrown as
|
|
161
|
+
* for {@link initFileUpload}.
|
|
162
|
+
*/
|
|
163
|
+
export async function initFileDownload(client, cid, path, options = {}) {
|
|
164
|
+
const rows = await query(client, "ftinitdownload", [
|
|
165
|
+
["clientftfid", nextClientFileTransferID()],
|
|
166
|
+
["name", asPath(path)],
|
|
167
|
+
["cid", cid],
|
|
168
|
+
["cpw", options.password ?? ""],
|
|
169
|
+
["seekpos", options.seekPosition ?? 0n],
|
|
170
|
+
["proto", 0],
|
|
171
|
+
], options, ["cpw"]);
|
|
172
|
+
const row = firstRow(rows, "ftinitdownload", "ftkey");
|
|
173
|
+
return {
|
|
174
|
+
fileTransferKey: str(row, "ftkey"),
|
|
175
|
+
port: num(row, "port"),
|
|
176
|
+
size: big(row, "size"),
|
|
177
|
+
clientFileTransferID: asClientFileTransferID(uint(row, "clientftfid", U16)),
|
|
178
|
+
serverFileTransferID: asServerFileTransferID(uint(row, "serverftfid", U16)),
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/core/api/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel groups, the permission catalogue, and the privilege keys that grant groups.
|
|
3
|
+
*/
|
|
4
|
+
import type { PermissionEntry } from "./command.js";
|
|
5
|
+
import type { CommandExecutor, CommandOptions } from "../command/request.js";
|
|
6
|
+
import type { ChannelGroupID, ChannelID, ClientDBID, IconID, PermissionID, ServerGroupID } from "../command/ids.js";
|
|
7
|
+
import { PermissionTarget } from "../enums.js";
|
|
8
|
+
import type { GroupType } from "../enums.js";
|
|
9
|
+
import type { Permission } from "../permission.js";
|
|
10
|
+
/** A channel group as `channelgrouplist` reports it. */
|
|
11
|
+
export interface ChannelGroup {
|
|
12
|
+
/** The group's id. */
|
|
13
|
+
readonly id: ChannelGroupID;
|
|
14
|
+
/** The group's name. */
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/** What kind of group this is, one of {@link GroupType}. */
|
|
17
|
+
readonly type: number;
|
|
18
|
+
/** The group's icon, or undefined for none. */
|
|
19
|
+
readonly iconID: IconID | undefined;
|
|
20
|
+
/** Whether membership is stored, rather than lost when the server restarts. */
|
|
21
|
+
readonly savedInDatabase: boolean;
|
|
22
|
+
/** Where the group sorts among the others; a 32-bit value. */
|
|
23
|
+
readonly sortID: number;
|
|
24
|
+
/** Where the group's name shows beside a member's nickname, one of {@link GroupNameMode}. */
|
|
25
|
+
readonly nameMode: number;
|
|
26
|
+
/** The power needed to modify the group. */
|
|
27
|
+
readonly modifyPower: number;
|
|
28
|
+
/** The power needed to add a member. */
|
|
29
|
+
readonly memberAddPower: number;
|
|
30
|
+
/** The power needed to remove a member. */
|
|
31
|
+
readonly memberRemovePower: number;
|
|
32
|
+
}
|
|
33
|
+
/** Every channel group. */
|
|
34
|
+
export declare function listChannelGroups(client: CommandExecutor, options?: CommandOptions): Promise<ChannelGroup[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a channel group.
|
|
37
|
+
*
|
|
38
|
+
* `type` is required, and always sent: the server's own default is
|
|
39
|
+
* `GroupType.Regular`, while the type's first value is `Template`, so leaving
|
|
40
|
+
* it to a default on either side is a trap.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createChannelGroup(client: CommandExecutor, name: string, type: GroupType, options?: CommandOptions): Promise<ChannelGroupID>;
|
|
43
|
+
/** How a group is deleted. */
|
|
44
|
+
export interface GroupDeleteOptions extends CommandOptions {
|
|
45
|
+
/** Delete the group even while it has members; false by default (`force`, always sent). */
|
|
46
|
+
readonly force?: boolean | undefined;
|
|
47
|
+
}
|
|
48
|
+
/** Delete a channel group. */
|
|
49
|
+
export declare function deleteChannelGroup(client: CommandExecutor, cgid: ChannelGroupID, options?: GroupDeleteOptions): Promise<void>;
|
|
50
|
+
/** Rename a channel group. */
|
|
51
|
+
export declare function renameChannelGroup(client: CommandExecutor, cgid: ChannelGroupID, name: string, options?: CommandOptions): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Copy a channel group's permissions onto another; a `targetGroupID` of 0
|
|
54
|
+
* makes the server create a new group named `name`, of `type`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function copyChannelGroup(client: CommandExecutor, sourceGroupID: ChannelGroupID, targetGroupID: ChannelGroupID, name: string, type: GroupType, options?: CommandOptions): Promise<ChannelGroupID>;
|
|
57
|
+
/**
|
|
58
|
+
* Which channel group memberships {@link listChannelGroupClients} reports.
|
|
59
|
+
* Unset fields do not narrow the list.
|
|
60
|
+
*/
|
|
61
|
+
export interface ChannelGroupClientListOptions extends CommandOptions {
|
|
62
|
+
/** Only memberships in this channel (`cid`). */
|
|
63
|
+
readonly channelID?: ChannelID | undefined;
|
|
64
|
+
/** Only this client's memberships (`cldbid`). */
|
|
65
|
+
readonly databaseID?: ClientDBID | undefined;
|
|
66
|
+
/** Only memberships of this group (`cgid`). */
|
|
67
|
+
readonly groupID?: ChannelGroupID | undefined;
|
|
68
|
+
}
|
|
69
|
+
/** One client holding one channel group in one channel. */
|
|
70
|
+
export interface ChannelGroupMembership {
|
|
71
|
+
/** The channel. */
|
|
72
|
+
readonly channelID: ChannelID;
|
|
73
|
+
/** The client's database id. */
|
|
74
|
+
readonly databaseID: ClientDBID;
|
|
75
|
+
/** The channel group. */
|
|
76
|
+
readonly groupID: ChannelGroupID;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Which channel group each client holds in which channel.
|
|
80
|
+
*
|
|
81
|
+
* Set at least one filter field to narrow it; called with none the server may
|
|
82
|
+
* return nothing.
|
|
83
|
+
*/
|
|
84
|
+
export declare function listChannelGroupClients(client: CommandExecutor, options?: ChannelGroupClientListOptions): Promise<ChannelGroupMembership[]>;
|
|
85
|
+
/** Permissions set on a channel group. */
|
|
86
|
+
export declare function listChannelGroupPermissions(client: CommandExecutor, cgid: ChannelGroupID, options?: CommandOptions): Promise<PermissionEntry[]>;
|
|
87
|
+
/** Set a permission on a channel group. */
|
|
88
|
+
export declare function addChannelGroupPermission(client: CommandExecutor, cgid: ChannelGroupID, permission: Permission, value: number, options?: CommandOptions): Promise<void>;
|
|
89
|
+
/** Remove a permission from a channel group. */
|
|
90
|
+
export declare function deleteChannelGroupPermission(client: CommandExecutor, cgid: ChannelGroupID, permission: Permission, options?: CommandOptions): Promise<void>;
|
|
91
|
+
/** One permission in the server's catalogue. */
|
|
92
|
+
export interface PermissionInfo {
|
|
93
|
+
/** The permission's id on this server build (`permid`). */
|
|
94
|
+
readonly id: PermissionID;
|
|
95
|
+
/** The permission's name, such as "i_client_talk_power" (`permname`). */
|
|
96
|
+
readonly name: string;
|
|
97
|
+
/** What the permission controls (`permdesc`). */
|
|
98
|
+
readonly description: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The server's full permission catalogue.
|
|
102
|
+
*
|
|
103
|
+
* Rows that name no permission — the group markers some servers interleave —
|
|
104
|
+
* are left out.
|
|
105
|
+
*
|
|
106
|
+
* ServerQuery sends each permission's id. The voice protocol sends none: there
|
|
107
|
+
* a permission's id is its place in the list, counting from 1, which `id` is
|
|
108
|
+
* set to.
|
|
109
|
+
*/
|
|
110
|
+
export declare function listPermissions(client: CommandExecutor, options?: CommandOptions): Promise<PermissionInfo[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Resolve a permission name to its numeric id, or undefined when the server
|
|
113
|
+
* knows no such permission.
|
|
114
|
+
*
|
|
115
|
+
* Needs an instance-level permission (`b_serverinstance_*`), which not even the
|
|
116
|
+
* Server Admin group holds by default — expect error 2568 until it is granted.
|
|
117
|
+
* Granted, it works over the voice protocol like any other query.
|
|
118
|
+
*/
|
|
119
|
+
export declare function getPermissionIDByName(client: CommandExecutor, name: string, options?: CommandOptions): Promise<PermissionID | undefined>;
|
|
120
|
+
/**
|
|
121
|
+
* What a permission is set on, as `permfind` and `permoverview` report it:
|
|
122
|
+
* discriminated on `target`, so each kind carries its own typed ids. The wire
|
|
123
|
+
* sends them as `t`, `id1` and `id2`, whose meaning depends on `t`; a row with
|
|
124
|
+
* a target this table does not name is left out of the results.
|
|
125
|
+
*/
|
|
126
|
+
export type PermissionLocation = {
|
|
127
|
+
/** Set on a server group. */
|
|
128
|
+
readonly target: typeof PermissionTarget.ServerGroup;
|
|
129
|
+
/** The group (`id1`). */
|
|
130
|
+
readonly serverGroupID: ServerGroupID;
|
|
131
|
+
/** The permission (`p`). */
|
|
132
|
+
readonly permission: PermissionID;
|
|
133
|
+
} | {
|
|
134
|
+
/** Set on a client, server-wide. */
|
|
135
|
+
readonly target: typeof PermissionTarget.Client;
|
|
136
|
+
/** The client (`id1`). */
|
|
137
|
+
readonly databaseID: ClientDBID;
|
|
138
|
+
/** The permission (`p`). */
|
|
139
|
+
readonly permission: PermissionID;
|
|
140
|
+
} | {
|
|
141
|
+
/** Set on a channel. */
|
|
142
|
+
readonly target: typeof PermissionTarget.Channel;
|
|
143
|
+
/** The channel (`id1`). */
|
|
144
|
+
readonly channelID: ChannelID;
|
|
145
|
+
/** The permission (`p`). */
|
|
146
|
+
readonly permission: PermissionID;
|
|
147
|
+
} | {
|
|
148
|
+
/** Set on a channel group, in one channel. */
|
|
149
|
+
readonly target: typeof PermissionTarget.ChannelGroup;
|
|
150
|
+
/** The channel (`id1`). */
|
|
151
|
+
readonly channelID: ChannelID;
|
|
152
|
+
/** The group (`id2`). */
|
|
153
|
+
readonly channelGroupID: ChannelGroupID;
|
|
154
|
+
/** The permission (`p`). */
|
|
155
|
+
readonly permission: PermissionID;
|
|
156
|
+
} | {
|
|
157
|
+
/** Set on a client within one channel. */
|
|
158
|
+
readonly target: typeof PermissionTarget.ChannelClient;
|
|
159
|
+
/** The channel (`id1`). */
|
|
160
|
+
readonly channelID: ChannelID;
|
|
161
|
+
/** The client (`id2`). */
|
|
162
|
+
readonly databaseID: ClientDBID;
|
|
163
|
+
/** The permission (`p`). */
|
|
164
|
+
readonly permission: PermissionID;
|
|
165
|
+
};
|
|
166
|
+
/** Every place a permission is set. */
|
|
167
|
+
export declare function findPermission(client: CommandExecutor, permission: Permission, options?: CommandOptions): Promise<PermissionLocation[]>;
|
|
168
|
+
/** How a permission applies, in a {@link PermissionOverviewEntry}. */
|
|
169
|
+
export interface PermissionOverviewValue {
|
|
170
|
+
/** The permission's value there (`v`). */
|
|
171
|
+
readonly value: number;
|
|
172
|
+
/** Whether the value is negated (`n`). */
|
|
173
|
+
readonly negated: boolean;
|
|
174
|
+
/** Whether it skips channel and client overrides (`s`). */
|
|
175
|
+
readonly skip: boolean;
|
|
176
|
+
}
|
|
177
|
+
/** One permission applying to a client in a channel, as `permoverview` reports it. */
|
|
178
|
+
export type PermissionOverviewEntry = PermissionLocation & PermissionOverviewValue;
|
|
179
|
+
/**
|
|
180
|
+
* Every permission that applies to a client in a channel, from every source,
|
|
181
|
+
* unfiltered.
|
|
182
|
+
*
|
|
183
|
+
* It always asks for all of them (`permid=0`): the server requires a
|
|
184
|
+
* permission parameter — omitting it fails with 1539 — and treats 0 as "all".
|
|
185
|
+
* Each entry names its permission, so one is easy to pick out.
|
|
186
|
+
*/
|
|
187
|
+
export declare function getPermissionOverview(client: CommandExecutor, cid: ChannelID, cldbid: ClientDBID, options?: CommandOptions): Promise<PermissionOverviewEntry[]>;
|
|
188
|
+
/**
|
|
189
|
+
* Wipe all permission overrides and restore the defaults.
|
|
190
|
+
*
|
|
191
|
+
* Destructive: every custom permission on the server goes. It also drops the
|
|
192
|
+
* caller's own rights, because it resets the group they rely on.
|
|
193
|
+
*/
|
|
194
|
+
export declare function resetPermissions(client: CommandExecutor, options?: CommandOptions): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* A privilege key, which grants a group when redeemed. The server also
|
|
197
|
+
* accepts the older `token…` commands for the same keys; these functions use
|
|
198
|
+
* the `privilegekey…` ones.
|
|
199
|
+
*/
|
|
200
|
+
export interface PrivilegeKey {
|
|
201
|
+
/** The key itself. */
|
|
202
|
+
readonly token: string;
|
|
203
|
+
/** Which kind of group the key grants, one of {@link PrivilegeKeyType}. */
|
|
204
|
+
readonly type: number;
|
|
205
|
+
/** The server group a `PrivilegeKeyType.ServerGroup` key grants; undefined otherwise. */
|
|
206
|
+
readonly serverGroupID: ServerGroupID | undefined;
|
|
207
|
+
/** The channel group a `PrivilegeKeyType.ChannelGroup` key grants; undefined otherwise. */
|
|
208
|
+
readonly channelGroupID: ChannelGroupID | undefined;
|
|
209
|
+
/** The channel a `PrivilegeKeyType.ChannelGroup` key grants its group in; undefined otherwise. */
|
|
210
|
+
readonly channelID: ChannelID | undefined;
|
|
211
|
+
/** The key's description. */
|
|
212
|
+
readonly description: string;
|
|
213
|
+
/** When the key was created. */
|
|
214
|
+
readonly createdAt: Date | undefined;
|
|
215
|
+
}
|
|
216
|
+
/** Every privilege key on the server. */
|
|
217
|
+
export declare function listPrivilegeKeys(client: CommandExecutor, options?: CommandOptions): Promise<PrivilegeKey[]>;
|
|
218
|
+
/**
|
|
219
|
+
* A privilege key to create: one that grants a server group, or one that
|
|
220
|
+
* grants a channel group in one channel.
|
|
221
|
+
*/
|
|
222
|
+
export type PrivilegeKeyOptions = {
|
|
223
|
+
/** The server group the key grants. */
|
|
224
|
+
readonly serverGroupID: ServerGroupID;
|
|
225
|
+
readonly channelGroupID?: never;
|
|
226
|
+
readonly channelID?: never;
|
|
227
|
+
/** Shown in the key list; unset or "" sends none. */
|
|
228
|
+
readonly description?: string | undefined;
|
|
229
|
+
} | {
|
|
230
|
+
readonly serverGroupID?: never;
|
|
231
|
+
/** The channel group the key grants. */
|
|
232
|
+
readonly channelGroupID: ChannelGroupID;
|
|
233
|
+
/** The channel it grants the group in. */
|
|
234
|
+
readonly channelID: ChannelID;
|
|
235
|
+
/** Shown in the key list; unset or "" sends none. */
|
|
236
|
+
readonly description?: string | undefined;
|
|
237
|
+
};
|
|
238
|
+
/** Create a privilege key. Returns the key as the server generated it. */
|
|
239
|
+
export declare function addPrivilegeKey(client: CommandExecutor, key: PrivilegeKeyOptions, options?: CommandOptions): Promise<string>;
|
|
240
|
+
/** Delete a privilege key. */
|
|
241
|
+
export declare function deletePrivilegeKey(client: CommandExecutor, token: string, options?: CommandOptions): Promise<void>;
|
|
242
|
+
/**
|
|
243
|
+
* Redeem a privilege key.
|
|
244
|
+
*
|
|
245
|
+
* The key grants only if this connection has not already used one.
|
|
246
|
+
*/
|
|
247
|
+
export declare function usePrivilegeKey(client: CommandExecutor, token: string, options?: CommandOptions): Promise<void>;
|
|
248
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/core/api/groups.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,OAAO,KAAK,EAAU,eAAe,EAAa,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACd,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAeD,2BAA2B;AAC3B,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,EAAE,CAAC,CAEzB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED,8BAA8B;AAC9B,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,8BAA8B;AAC9B,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,8BAA8B;AAC9B,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,cAAc,EAC7B,aAAa,EAAE,cAAc,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,CAezB;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA8B,SAAQ,cAAc;IACnE,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC3C,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC/C;AASD,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,mBAAmB;IACnB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAYnC;AAED,0CAA0C;AAC1C,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC,CAI5B;AAED,2CAA2C;AAC3C,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,gDAAgD;AAChD,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf;AAID,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3B;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAInC;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC,WAAW,CAAC;IACrD,yBAAyB;IACzB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,GACD;IACE,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC;IAChD,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,GACD;IACE,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC,OAAO,CAAC;IACjD,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,GACD;IACE,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC,YAAY,CAAC;IACtD,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,yBAAyB;IACzB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,GACD;IACE,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC,aAAa,CAAC;IACvD,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;CACnC,CAAC;AAqCN,uCAAuC;AACvC,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAG/B;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,sFAAsF;AACtF,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAEnF;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgBpC;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf;AAID;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IACpD,kGAAkG;IAClG,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;CACtC;AAqBD,yCAAyC;AACzC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,EAAE,CAAC,CAEzB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,uCAAuC;IACvC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C,CAAC;AAqCN,0EAA0E;AAC1E,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,8BAA8B;AAC9B,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf"}
|