@honeybbq/teamspeak 1.0.0-beta.29 → 1.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/api/s3-avatars.d.ts +67 -0
- package/dist/client/api/s3-avatars.d.ts.map +1 -0
- package/dist/client/api/s3-avatars.js +95 -0
- package/dist/client/api/s3-avatars.js.map +1 -0
- package/dist/client/api/s3.d.ts +50 -5
- package/dist/client/api/s3.d.ts.map +1 -1
- package/dist/client/api/s3.js +116 -16
- package/dist/client/api/s3.js.map +1 -1
- package/dist/client/capabilities.d.ts +3 -2
- package/dist/client/capabilities.d.ts.map +1 -1
- package/dist/client/capabilities.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/core/command/responses.d.ts.map +1 -1
- package/dist/core/command/responses.js +7 -0
- package/dist/core/command/responses.js.map +1 -1
- package/dist/core/command-name.d.ts +6 -0
- package/dist/core/command-name.d.ts.map +1 -1
- package/dist/core/command-name.js +6 -0
- package/dist/core/command-name.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/notification-name.d.ts +3 -1
- package/dist/core/notification-name.d.ts.map +1 -1
- package/dist/core/notification-name.js +3 -1
- package/dist/core/notification-name.js.map +1 -1
- package/dist/core/types.d.ts +21 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +17 -0
- package/dist/core/types.js.map +1 -1
- package/dist/stream/streams.d.ts.map +1 -1
- package/dist/stream/streams.js +4 -4
- package/dist/stream/streams.js.map +1 -1
- package/dist/stream/wire.d.ts +0 -5
- package/dist/stream/wire.d.ts.map +1 -1
- package/dist/stream/wire.js +0 -5
- package/dist/stream/wire.js.map +1 -1
- package/package.json +1 -1
- package/src/client/api/s3-avatars.ts +137 -0
- package/src/client/api/s3.ts +150 -18
- package/src/client/capabilities.ts +3 -2
- package/src/client/index.ts +1 -0
- package/src/core/command/responses.ts +7 -0
- package/src/core/command-name.ts +6 -0
- package/src/core/index.ts +1 -0
- package/src/core/notification-name.ts +3 -1
- package/src/core/types.ts +23 -0
- package/src/stream/streams.ts +3 -3
- package/src/stream/wire.ts +0 -6
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avatars and icons on a TeamSpeak 6 server with S3 file transfer: the S3
|
|
3
|
+
* transfers behind them, in channel 0's S3 file area.
|
|
4
|
+
*
|
|
5
|
+
* Measured on TeamSpeak 6 6.0.0-beta13.1. In channel 0 the server signs an
|
|
6
|
+
* upload only for a name that starts with `avatar_` or `icon_`, and keeps the
|
|
7
|
+
* file under the name it is given: unlike the classic upload, which the server
|
|
8
|
+
* stores under the uploader's {@link avatarFileName} whatever it was asked,
|
|
9
|
+
* an avatar here has to be uploaded under that name for others to find it.
|
|
10
|
+
* The classic avatars and icons are a separate store: one uploaded one way is
|
|
11
|
+
* not found the other.
|
|
12
|
+
*/
|
|
13
|
+
import type { CommandOptions, IconID, UID } from "@honeybbq/teamspeak";
|
|
14
|
+
import type { Client } from "../client.js";
|
|
15
|
+
import type { S3TransferOptions } from "./s3.js";
|
|
16
|
+
/** Options for the S3 avatar and icon transfers: the commands' and the requests'. */
|
|
17
|
+
export interface S3AvatarOptions extends CommandOptions, S3TransferOptions {
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Upload `data` as this client's avatar over S3 and set `client_flag_avatar`
|
|
21
|
+
* to its MD5, so that other clients see the change in a `clientUpdated` event.
|
|
22
|
+
* Returns the MD5, lower-case hex.
|
|
23
|
+
*
|
|
24
|
+
* On the wire: an upload signed for `/<avatarFileName(uid)>` in channel 0, the
|
|
25
|
+
* bytes to the storage, the server told the upload is done, then
|
|
26
|
+
* `clientupdate client_flag_avatar=<md5>`. An avatar already there is replaced.
|
|
27
|
+
*
|
|
28
|
+
* The size limit is the permission `i_client_max_avatar_filesize`, 200000
|
|
29
|
+
* bytes by default; over it, the signing is refused with 2049 (invalid file
|
|
30
|
+
* permissions) and nothing is sent or changed. A file of exactly the limit
|
|
31
|
+
* passes.
|
|
32
|
+
*/
|
|
33
|
+
export declare function uploadS3Avatar(client: Client, data: Uint8Array, options?: S3AvatarOptions): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* The bytes of the S3 avatar of the client with this unique id, or undefined
|
|
36
|
+
* when the storage has none for it (a download of `/<avatarFileName(uid)>` in
|
|
37
|
+
* channel 0, answered 404).
|
|
38
|
+
*/
|
|
39
|
+
export declare function downloadS3Avatar(client: Client, uid: UID | string, options?: S3AvatarOptions): Promise<Uint8Array | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* Remove this client's own S3 avatar: delete `/<avatarFileName(uid)>` in
|
|
42
|
+
* channel 0, then empty `client_flag_avatar`, which the delete leaves as it
|
|
43
|
+
* was. A client may delete its own avatar only: another's is refused with 2568.
|
|
44
|
+
* Resolves whether or not there was an avatar, as the storage's delete does.
|
|
45
|
+
*/
|
|
46
|
+
export declare function removeS3Avatar(client: Client, options?: CommandOptions): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Upload `data` as an icon over S3 and return its id, the CRC-32 of the bytes
|
|
49
|
+
* ({@link iconIDOf}): an upload signed for `/icon_<id>` in channel 0, the
|
|
50
|
+
* bytes to the storage, and the server told the upload is done. Pass the id to
|
|
51
|
+
* `setChannelIcon`, `setServerGroupIcon`, `setChannelGroupIcon`,
|
|
52
|
+
* `setClientIcon` or `setServerIcon`.
|
|
53
|
+
*
|
|
54
|
+
* Needs `b_icon_manage`, and the size limit is `i_max_icon_filesize`, 8192
|
|
55
|
+
* bytes for a Server Admin: without the one, or over the other, the signing is
|
|
56
|
+
* refused with 2049 (invalid file permissions).
|
|
57
|
+
*/
|
|
58
|
+
export declare function uploadS3Icon(client: Client, data: Uint8Array, options?: S3AvatarOptions): Promise<IconID>;
|
|
59
|
+
/** The bytes of an S3 icon, or undefined when the storage has no file for the id. */
|
|
60
|
+
export declare function downloadS3Icon(client: Client, id: IconID, options?: S3AvatarOptions): Promise<Uint8Array | undefined>;
|
|
61
|
+
/**
|
|
62
|
+
* Delete an S3 icon's file (`/icon_<id>` in channel 0). Needs `b_icon_manage`
|
|
63
|
+
* (2568 without it). A channel, group or client that still names the icon
|
|
64
|
+
* keeps the id; deleting a file that is not there succeeds.
|
|
65
|
+
*/
|
|
66
|
+
export declare function deleteS3Icon(client: Client, id: IconID, options?: CommandOptions): Promise<void>;
|
|
67
|
+
//# sourceMappingURL=s3-avatars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-avatars.d.ts","sourceRoot":"","sources":["../../../src/client/api/s3-avatars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,qFAAqF;AACrF,MAAM,WAAW,eAAgB,SAAQ,cAAc,EAAE,iBAAiB;CAAG;AAkB7E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAEjC;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAEjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avatars and icons on a TeamSpeak 6 server with S3 file transfer: the S3
|
|
3
|
+
* transfers behind them, in channel 0's S3 file area.
|
|
4
|
+
*
|
|
5
|
+
* Measured on TeamSpeak 6 6.0.0-beta13.1. In channel 0 the server signs an
|
|
6
|
+
* upload only for a name that starts with `avatar_` or `icon_`, and keeps the
|
|
7
|
+
* file under the name it is given: unlike the classic upload, which the server
|
|
8
|
+
* stores under the uploader's {@link avatarFileName} whatever it was asked,
|
|
9
|
+
* an avatar here has to be uploaded under that name for others to find it.
|
|
10
|
+
* The classic avatars and icons are a separate store: one uploaded one way is
|
|
11
|
+
* not found the other.
|
|
12
|
+
*/
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
14
|
+
import { asChannelID, avatarFileName, iconFileName, iconIDOf, updateClient, } from "@honeybbq/teamspeak";
|
|
15
|
+
import { S3TransferError } from "../errors.js";
|
|
16
|
+
import { deleteS3File, downloadS3File, uploadS3File } from "./s3.js";
|
|
17
|
+
const CHANNEL_ZERO = asChannelID(0n);
|
|
18
|
+
/** The bytes at `path` in channel 0, or undefined when the storage has no file there. */
|
|
19
|
+
async function download(client, path, options) {
|
|
20
|
+
try {
|
|
21
|
+
return await downloadS3File(client, CHANNEL_ZERO, path, options);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error instanceof S3TransferError && error.status === 404)
|
|
25
|
+
return undefined;
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Upload `data` as this client's avatar over S3 and set `client_flag_avatar`
|
|
31
|
+
* to its MD5, so that other clients see the change in a `clientUpdated` event.
|
|
32
|
+
* Returns the MD5, lower-case hex.
|
|
33
|
+
*
|
|
34
|
+
* On the wire: an upload signed for `/<avatarFileName(uid)>` in channel 0, the
|
|
35
|
+
* bytes to the storage, the server told the upload is done, then
|
|
36
|
+
* `clientupdate client_flag_avatar=<md5>`. An avatar already there is replaced.
|
|
37
|
+
*
|
|
38
|
+
* The size limit is the permission `i_client_max_avatar_filesize`, 200000
|
|
39
|
+
* bytes by default; over it, the signing is refused with 2049 (invalid file
|
|
40
|
+
* permissions) and nothing is sent or changed. A file of exactly the limit
|
|
41
|
+
* passes.
|
|
42
|
+
*/
|
|
43
|
+
export async function uploadS3Avatar(client, data, options = {}) {
|
|
44
|
+
const md5 = createHash("md5").update(data).digest("hex");
|
|
45
|
+
await uploadS3File(client, CHANNEL_ZERO, `/${avatarFileName(client.uid)}`, data, options);
|
|
46
|
+
await updateClient(client, { avatar: md5 }, options);
|
|
47
|
+
return md5;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The bytes of the S3 avatar of the client with this unique id, or undefined
|
|
51
|
+
* when the storage has none for it (a download of `/<avatarFileName(uid)>` in
|
|
52
|
+
* channel 0, answered 404).
|
|
53
|
+
*/
|
|
54
|
+
export function downloadS3Avatar(client, uid, options = {}) {
|
|
55
|
+
return download(client, `/${avatarFileName(uid)}`, options);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Remove this client's own S3 avatar: delete `/<avatarFileName(uid)>` in
|
|
59
|
+
* channel 0, then empty `client_flag_avatar`, which the delete leaves as it
|
|
60
|
+
* was. A client may delete its own avatar only: another's is refused with 2568.
|
|
61
|
+
* Resolves whether or not there was an avatar, as the storage's delete does.
|
|
62
|
+
*/
|
|
63
|
+
export async function removeS3Avatar(client, options = {}) {
|
|
64
|
+
await deleteS3File(client, CHANNEL_ZERO, `/${avatarFileName(client.uid)}`, options);
|
|
65
|
+
await updateClient(client, { avatar: "" }, options);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Upload `data` as an icon over S3 and return its id, the CRC-32 of the bytes
|
|
69
|
+
* ({@link iconIDOf}): an upload signed for `/icon_<id>` in channel 0, the
|
|
70
|
+
* bytes to the storage, and the server told the upload is done. Pass the id to
|
|
71
|
+
* `setChannelIcon`, `setServerGroupIcon`, `setChannelGroupIcon`,
|
|
72
|
+
* `setClientIcon` or `setServerIcon`.
|
|
73
|
+
*
|
|
74
|
+
* Needs `b_icon_manage`, and the size limit is `i_max_icon_filesize`, 8192
|
|
75
|
+
* bytes for a Server Admin: without the one, or over the other, the signing is
|
|
76
|
+
* refused with 2049 (invalid file permissions).
|
|
77
|
+
*/
|
|
78
|
+
export async function uploadS3Icon(client, data, options = {}) {
|
|
79
|
+
const id = iconIDOf(data);
|
|
80
|
+
await uploadS3File(client, CHANNEL_ZERO, iconFileName(id), data, options);
|
|
81
|
+
return id;
|
|
82
|
+
}
|
|
83
|
+
/** The bytes of an S3 icon, or undefined when the storage has no file for the id. */
|
|
84
|
+
export function downloadS3Icon(client, id, options = {}) {
|
|
85
|
+
return download(client, iconFileName(id), options);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Delete an S3 icon's file (`/icon_<id>` in channel 0). Needs `b_icon_manage`
|
|
89
|
+
* (2568 without it). A channel, group or client that still names the icon
|
|
90
|
+
* keeps the id; deleting a file that is not there succeeds.
|
|
91
|
+
*/
|
|
92
|
+
export async function deleteS3Icon(client, id, options = {}) {
|
|
93
|
+
await deleteS3File(client, CHANNEL_ZERO, iconFileName(id), options);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=s3-avatars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-avatars.js","sourceRoot":"","sources":["../../../src/client/api/s3-avatars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMrE,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAErC,yFAAyF;AACzF,KAAK,UAAU,QAAQ,CACrB,MAAc,EACd,IAAY,EACZ,OAAwB;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QAC/E,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,IAAgB,EAChB,OAAO,GAAoB,EAAE;IAE7B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1F,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,GAAiB,EACjB,OAAO,GAAoB,EAAE;IAE7B,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,OAAO,GAAmB,EAAE;IAC/E,MAAM,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAgB,EAChB,OAAO,GAAoB,EAAE;IAE7B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,EAAU,EACV,OAAO,GAAoB,EAAE;IAE7B,OAAO,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,EAAU,EACV,OAAO,GAAmB,EAAE;IAE5B,MAAM,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
|
package/dist/client/api/s3.d.ts
CHANGED
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
* - The classic file commands (`ftinitupload`, `ftgetfilelist`, …) still work
|
|
22
22
|
* on such a server, and reach a separate store: a file uploaded one way is
|
|
23
23
|
* not listed the other.
|
|
24
|
+
* - A rename is a copy the server makes in the storage, and its copy request
|
|
25
|
+
* leaves a header unsigned that a storage checking signatures refuses: see
|
|
26
|
+
* {@link renameS3File}.
|
|
24
27
|
*
|
|
25
28
|
* Every function takes the channel password as `password`, in cleartext, and
|
|
26
29
|
* sends it the way every file command does.
|
|
@@ -140,15 +143,57 @@ export declare function completeS3FileUpload(client: Client, info: S3FileUploadI
|
|
|
140
143
|
*/
|
|
141
144
|
export declare function listS3Files(client: Client, channelID: ChannelID, options?: S3FileOptions): Promise<S3FileEntry[]>;
|
|
142
145
|
/**
|
|
143
|
-
* Delete
|
|
144
|
-
*
|
|
146
|
+
* Delete files from a channel's S3 file area: one path, or several in one
|
|
147
|
+
* command (`s3ft_deletefiles`, each file on a row of its own). The server
|
|
148
|
+
* deletes them from the storage and from the file list it keeps; an empty list
|
|
149
|
+
* sends nothing.
|
|
145
150
|
*
|
|
146
151
|
* Deleting a file that is not there succeeds, as the storage's delete does. A
|
|
147
152
|
* client without delete power is refused with 2568 (insufficient client
|
|
148
|
-
* permissions)
|
|
149
|
-
* that its own request to the
|
|
153
|
+
* permissions), and then nothing is deleted. Rejects with an
|
|
154
|
+
* {@link S3TransferError} when the server reports that its own request to the
|
|
155
|
+
* storage failed.
|
|
150
156
|
*/
|
|
151
|
-
export declare function deleteS3File(client: Client, channelID: ChannelID,
|
|
157
|
+
export declare function deleteS3File(client: Client, channelID: ChannelID, paths: string | readonly string[], options?: S3FileOptions): Promise<void>;
|
|
158
|
+
/** One file of a {@link renameS3Files} batch: its path now, and the one it moves to. */
|
|
159
|
+
export interface S3FileRename {
|
|
160
|
+
/** The file's path now, from the channel's root. */
|
|
161
|
+
readonly oldPath: string;
|
|
162
|
+
/** The path it moves to, in the same channel. */
|
|
163
|
+
readonly newPath: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Rename or move one file within a channel's S3 file area (`s3ft_renamefile`).
|
|
167
|
+
* The server copies the file in the storage to the new path, deletes the old
|
|
168
|
+
* one, and updates the file list it keeps. A file already at the new path is
|
|
169
|
+
* replaced. There is no move to another channel.
|
|
170
|
+
*
|
|
171
|
+
* A client without rename power is refused with 2568 (insufficient client
|
|
172
|
+
* permissions). Rejects with an {@link S3TransferError} when the server
|
|
173
|
+
* reports that it did not rename the file: there is none at the old path, the
|
|
174
|
+
* new path is the old one, or the storage refused the server's copy.
|
|
175
|
+
*
|
|
176
|
+
* Measured on TeamSpeak 6 6.0.0-beta13.1: the server's copy carries an
|
|
177
|
+
* `x-amz-copy-source` header it does not sign, which a storage that checks
|
|
178
|
+
* every request's signature refuses (RustFS, versitygw, SeaweedFS and
|
|
179
|
+
* CloudServer did, as S3's signing rules have it), so the rename fails there
|
|
180
|
+
* and the file stays where it was.
|
|
181
|
+
*/
|
|
182
|
+
export declare function renameS3File(client: Client, channelID: ChannelID, oldPath: string, newPath: string, options?: S3FileOptions): Promise<void>;
|
|
183
|
+
/**
|
|
184
|
+
* Rename several files within a channel's S3 file area in one command
|
|
185
|
+
* (`s3ft_renamefiles`, each file on a row of its own). Each is renamed as by
|
|
186
|
+
* {@link renameS3File}; an empty list sends nothing.
|
|
187
|
+
*
|
|
188
|
+
* The server tries every rename, and answers once: whether the batch's last
|
|
189
|
+
* rename was done, and nothing about the others. So this rejects with an
|
|
190
|
+
* {@link S3TransferError} when the last one failed, whatever became of the
|
|
191
|
+
* rest, and resolves when it succeeded even if an earlier one failed. List the
|
|
192
|
+
* files, or rename them one at a time, to know each outcome. After a batch
|
|
193
|
+
* whose last rename failed, the list the server keeps shows the others a
|
|
194
|
+
* moment later rather than at once.
|
|
195
|
+
*/
|
|
196
|
+
export declare function renameS3Files(client: Client, channelID: ChannelID, renames: readonly S3FileRename[], options?: S3FileOptions): Promise<void>;
|
|
152
197
|
/**
|
|
153
198
|
* Send a file to the storage, over an upload {@link initS3FileUpload} signed.
|
|
154
199
|
* `data` must be exactly `info.size` bytes: bytes or a `Blob` of another size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"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"}
|
package/dist/client/api/s3.js
CHANGED
|
@@ -21,22 +21,23 @@
|
|
|
21
21
|
* - The classic file commands (`ftinitupload`, `ftgetfilelist`, …) still work
|
|
22
22
|
* on such a server, and reach a separate store: a file uploaded one way is
|
|
23
23
|
* not listed the other.
|
|
24
|
+
* - A rename is a copy the server makes in the storage, and its copy request
|
|
25
|
+
* leaves a header unsigned that a storage checking signatures refuses: see
|
|
26
|
+
* {@link renameS3File}.
|
|
24
27
|
*
|
|
25
28
|
* Every function takes the channel password as `password`, in cleartext, and
|
|
26
29
|
* sends it the way every file command does.
|
|
27
30
|
*/
|
|
28
31
|
import { Readable, Transform, Writable, pipeline } from "node:stream";
|
|
29
32
|
import { pipeline as pipelineAsync } from "node:stream/promises";
|
|
30
|
-
import { NoDataError } from "@honeybbq/teamspeak";
|
|
33
|
+
import { NoDataError, ServerExtension } from "@honeybbq/teamspeak";
|
|
31
34
|
import { FileTransferError, S3TransferError, S3UnsupportedError } from "../errors.js";
|
|
32
35
|
import { exactSize, intoStream } from "../transfer.js";
|
|
33
36
|
import { parseFileList } from "./s3-list.js";
|
|
34
|
-
/** The extension a server names when it does S3 file transfer. */
|
|
35
|
-
const S3_EXTENSION = "s3";
|
|
36
37
|
/** Refuse before sending unless the server names the S3 extension. */
|
|
37
38
|
function assertS3(client) {
|
|
38
39
|
const { family, version, extensions } = client.serverCapabilities;
|
|
39
|
-
if (!extensions.includes(
|
|
40
|
+
if (!extensions.includes(ServerExtension.S3)) {
|
|
40
41
|
throw new S3UnsupportedError(family, version, extensions);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -191,30 +192,129 @@ export async function listS3Files(client, channelID, options = {}) {
|
|
|
191
192
|
return parseFileList(row["b64_json"]);
|
|
192
193
|
}
|
|
193
194
|
/**
|
|
194
|
-
* Delete
|
|
195
|
-
*
|
|
195
|
+
* Delete files from a channel's S3 file area: one path, or several in one
|
|
196
|
+
* command (`s3ft_deletefiles`, each file on a row of its own). The server
|
|
197
|
+
* deletes them from the storage and from the file list it keeps; an empty list
|
|
198
|
+
* sends nothing.
|
|
196
199
|
*
|
|
197
200
|
* Deleting a file that is not there succeeds, as the storage's delete does. A
|
|
198
201
|
* client without delete power is refused with 2568 (insufficient client
|
|
199
|
-
* permissions)
|
|
200
|
-
* that its own request to the
|
|
202
|
+
* permissions), and then nothing is deleted. Rejects with an
|
|
203
|
+
* {@link S3TransferError} when the server reports that its own request to the
|
|
204
|
+
* storage failed.
|
|
201
205
|
*/
|
|
202
|
-
export async function deleteS3File(client, channelID,
|
|
206
|
+
export async function deleteS3File(client, channelID, paths, options = {}) {
|
|
203
207
|
assertS3(client);
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
208
|
+
const keys = (typeof paths === "string" ? [paths] : paths).map(s3Path);
|
|
209
|
+
if (keys.length === 0)
|
|
210
|
+
return;
|
|
211
|
+
// The single command deletes the file of its first row and passes over any
|
|
212
|
+
// further row; the batch reads the channel from each file's own row, the
|
|
213
|
+
// first row carrying the channel and its password only.
|
|
214
|
+
const command = keys.length === 1
|
|
215
|
+
? {
|
|
216
|
+
command: "s3ft_deletefile",
|
|
217
|
+
params: [
|
|
218
|
+
["chid", channelID],
|
|
219
|
+
["chpw", options.password ?? ""],
|
|
220
|
+
["key", keys[0]],
|
|
221
|
+
],
|
|
222
|
+
passwords: ["chpw"],
|
|
223
|
+
}
|
|
224
|
+
: {
|
|
225
|
+
command: "s3ft_deletefiles",
|
|
226
|
+
params: [
|
|
227
|
+
["chid", channelID],
|
|
228
|
+
["chpw", options.password ?? ""],
|
|
229
|
+
],
|
|
230
|
+
rows: [
|
|
231
|
+
[],
|
|
232
|
+
...keys.map((key) => [
|
|
233
|
+
["chid", channelID],
|
|
234
|
+
["key", key],
|
|
235
|
+
]),
|
|
236
|
+
],
|
|
237
|
+
passwords: ["chpw"],
|
|
238
|
+
};
|
|
239
|
+
const rows = await client.send(command, commandOptions(options));
|
|
240
|
+
if (!succeeded(rows, command.command)) {
|
|
241
|
+
throw new S3TransferError(keys.length === 1
|
|
242
|
+
? `the server could not delete ${keys[0]} from its storage`
|
|
243
|
+
: `the server could not delete the ${keys.length} files from its storage`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Rename or move one file within a channel's S3 file area (`s3ft_renamefile`).
|
|
248
|
+
* The server copies the file in the storage to the new path, deletes the old
|
|
249
|
+
* one, and updates the file list it keeps. A file already at the new path is
|
|
250
|
+
* replaced. There is no move to another channel.
|
|
251
|
+
*
|
|
252
|
+
* A client without rename power is refused with 2568 (insufficient client
|
|
253
|
+
* permissions). Rejects with an {@link S3TransferError} when the server
|
|
254
|
+
* reports that it did not rename the file: there is none at the old path, the
|
|
255
|
+
* new path is the old one, or the storage refused the server's copy.
|
|
256
|
+
*
|
|
257
|
+
* Measured on TeamSpeak 6 6.0.0-beta13.1: the server's copy carries an
|
|
258
|
+
* `x-amz-copy-source` header it does not sign, which a storage that checks
|
|
259
|
+
* every request's signature refuses (RustFS, versitygw, SeaweedFS and
|
|
260
|
+
* CloudServer did, as S3's signing rules have it), so the rename fails there
|
|
261
|
+
* and the file stays where it was.
|
|
262
|
+
*/
|
|
263
|
+
export async function renameS3File(client, channelID, oldPath, newPath, options = {}) {
|
|
264
|
+
assertS3(client);
|
|
265
|
+
const from = s3Path(oldPath);
|
|
266
|
+
const to = s3Path(newPath);
|
|
267
|
+
const rows = await client.send({
|
|
268
|
+
command: "s3ft_renamefile",
|
|
269
|
+
params: [
|
|
270
|
+
["chid", channelID],
|
|
271
|
+
["chpw", options.password ?? ""],
|
|
272
|
+
["key_old", from],
|
|
273
|
+
["key_new", to],
|
|
274
|
+
],
|
|
275
|
+
passwords: ["chpw"],
|
|
276
|
+
}, commandOptions(options));
|
|
277
|
+
if (!succeeded(rows, "s3ft_renamefile")) {
|
|
278
|
+
throw new S3TransferError(`the server did not rename ${from} to ${to}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Rename several files within a channel's S3 file area in one command
|
|
283
|
+
* (`s3ft_renamefiles`, each file on a row of its own). Each is renamed as by
|
|
284
|
+
* {@link renameS3File}; an empty list sends nothing.
|
|
285
|
+
*
|
|
286
|
+
* The server tries every rename, and answers once: whether the batch's last
|
|
287
|
+
* rename was done, and nothing about the others. So this rejects with an
|
|
288
|
+
* {@link S3TransferError} when the last one failed, whatever became of the
|
|
289
|
+
* rest, and resolves when it succeeded even if an earlier one failed. List the
|
|
290
|
+
* files, or rename them one at a time, to know each outcome. After a batch
|
|
291
|
+
* whose last rename failed, the list the server keeps shows the others a
|
|
292
|
+
* moment later rather than at once.
|
|
293
|
+
*/
|
|
294
|
+
export async function renameS3Files(client, channelID, renames, options = {}) {
|
|
295
|
+
assertS3(client);
|
|
296
|
+
const pairs = renames.map(({ oldPath, newPath }) => [s3Path(oldPath), s3Path(newPath)]);
|
|
297
|
+
if (pairs.length === 0)
|
|
298
|
+
return;
|
|
207
299
|
const rows = await client.send({
|
|
208
|
-
command: "
|
|
300
|
+
command: "s3ft_renamefiles",
|
|
209
301
|
params: [
|
|
210
302
|
["chid", channelID],
|
|
211
303
|
["chpw", options.password ?? ""],
|
|
212
|
-
|
|
304
|
+
],
|
|
305
|
+
rows: [
|
|
306
|
+
[],
|
|
307
|
+
...pairs.map(([from, to]) => [
|
|
308
|
+
["chid", channelID],
|
|
309
|
+
["key_old", from],
|
|
310
|
+
["key_new", to],
|
|
311
|
+
]),
|
|
213
312
|
],
|
|
214
313
|
passwords: ["chpw"],
|
|
215
314
|
}, commandOptions(options));
|
|
216
|
-
if (!succeeded(rows, "
|
|
217
|
-
|
|
315
|
+
if (!succeeded(rows, "s3ft_renamefiles")) {
|
|
316
|
+
const [from, to] = pairs[pairs.length - 1];
|
|
317
|
+
throw new S3TransferError(`the server reports that the last rename of the batch, ${from} to ${to}, was not done`);
|
|
218
318
|
}
|
|
219
319
|
}
|
|
220
320
|
/** How much of a storage's error answer is read for its code. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,9 @@ export interface ServerCapabilities {
|
|
|
35
35
|
/**
|
|
36
36
|
* The optional protocol features the server says it supports
|
|
37
37
|
* (`virtualserver_capability_extensions`), in the server's order and each
|
|
38
|
-
* once, such as `["FILETIME", "STREAM_P2P"]`; test one with `includes
|
|
39
|
-
* Empty when it names none, as a
|
|
38
|
+
* once, such as `["FILETIME", "STREAM_P2P"]`; test one with `includes`, as
|
|
39
|
+
* `extensions.includes(ServerExtension.S3)`. Empty when it names none, as a
|
|
40
|
+
* TeamSpeak 3 server does. Frozen.
|
|
40
41
|
*
|
|
41
42
|
* It is what the server claims, read as sent. A raw command is never refused
|
|
42
43
|
* because a name is missing from it; the features built on one (streams on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,eAAe,EAEf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjF,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,eAAe,EAEf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjF,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACpD,kBAAkB,CAmBpB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,kBAAkB,CAE9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAqB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAqB,MAAM,sBAAsB,CAAC;AA6CjF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAqD;IAErD,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhD,OAAO;QACL,OAAO;QACP,KAAK;QACL,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC;QACvC,YAAY,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAC7C,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;QACrE,cAAc,EAAE,MAAM,CAAC,8BAA8B,CAAC,IAAI,EAAE;QAC5D,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,SAAS,EAAE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE;QAC1D,WAAW,EAAE,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE;QACtD,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACxB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAoB,CAAC;AACnF,CAAC"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from "./api/voice.js";
|
|
|
19
19
|
export * from "./api/avatars.js";
|
|
20
20
|
export * from "./api/files.js";
|
|
21
21
|
export * from "./api/s3.js";
|
|
22
|
+
export * from "./api/s3-avatars.js";
|
|
22
23
|
export { dialFileTransfer, uploadFileData, downloadFileData, FileTransferStage, } from "./transfer.js";
|
|
23
24
|
export type { FileTransferOptions, FileTransferTrace, FileTransferDialStartInfo, FileTransferDialDoneInfo, FileTransferProgressInfo, FileTransferDoneInfo, FileTransferFailedInfo, } from "./transfer.js";
|
|
24
25
|
export { ConnectPhase } from "./trace.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE9E,YAAY,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE9E,YAAY,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export * from "./api/voice.js";
|
|
|
18
18
|
export * from "./api/avatars.js";
|
|
19
19
|
export * from "./api/files.js";
|
|
20
20
|
export * from "./api/s3.js";
|
|
21
|
+
export * from "./api/s3-avatars.js";
|
|
21
22
|
// File transfer data
|
|
22
23
|
export { dialFileTransfer, uploadFileData, downloadFileData, FileTransferStage, } from "./transfer.js";
|
|
23
24
|
// Tracing a connection attempt
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAqBvC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,wCAAwC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAqBvC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,wCAAwC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAWvB,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB1C,+CAA+C;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnE,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,WAAW;AACX,OAAO,EACL,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/core/command/responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,gDAAgD;QAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB;;;;WAIG;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B;;;;WAIG;QACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AA2BD,4HAA4H;AAC5H,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/core/command/responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,gDAAgD;QAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB;;;;WAIG;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B;;;;WAIG;QACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AA2BD,4HAA4H;AAC5H,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CA2F5D,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE"}
|
|
@@ -102,8 +102,15 @@ export const RESPONSES = {
|
|
|
102
102
|
// The answer carries `success`; no `error` follows it, but a refusal (2568
|
|
103
103
|
// for a client without delete power) is an `error` and no answer.
|
|
104
104
|
s3ft_deletefile: s3("notify_s3ft_delete", true),
|
|
105
|
+
// One answer for the whole batch, with no `error` after it.
|
|
106
|
+
s3ft_deletefiles: s3("notify_s3ft_delete", true),
|
|
105
107
|
// The file list, as one base64 JSON field, sent ahead of the `error`.
|
|
106
108
|
s3ft_list_files: s3("notify_s3ft_file_list"),
|
|
109
|
+
// The answer carries `success`, and no `error` follows it; a refusal (2568
|
|
110
|
+
// for a client without rename power) is an `error` and no answer.
|
|
111
|
+
s3ft_renamefile: s3("notify_s3ft_rename", true),
|
|
112
|
+
// One answer for the whole batch, whose `success` is the last rename's.
|
|
113
|
+
s3ft_renamefiles: s3("notify_s3ft_rename", true),
|
|
107
114
|
// The answer carries `success`, and no `error` follows it.
|
|
108
115
|
s3ft_upload_done_notification: s3("notify_s3ft_upload_done", true),
|
|
109
116
|
privilegekeylist: inline("notifytokenlist"),
|