@honeybbq/teamspeak 1.0.0-beta.29 → 1.0.0-beta.31

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.
Files changed (77) hide show
  1. package/dist/client/api/s3-avatars.d.ts +67 -0
  2. package/dist/client/api/s3-avatars.d.ts.map +1 -0
  3. package/dist/client/api/s3-avatars.js +95 -0
  4. package/dist/client/api/s3-avatars.js.map +1 -0
  5. package/dist/client/api/s3.d.ts +50 -5
  6. package/dist/client/api/s3.d.ts.map +1 -1
  7. package/dist/client/api/s3.js +116 -16
  8. package/dist/client/api/s3.js.map +1 -1
  9. package/dist/client/capabilities.d.ts +3 -2
  10. package/dist/client/capabilities.d.ts.map +1 -1
  11. package/dist/client/capabilities.js.map +1 -1
  12. package/dist/client/client.d.ts +9 -0
  13. package/dist/client/client.d.ts.map +1 -1
  14. package/dist/client/client.js +13 -1
  15. package/dist/client/client.js.map +1 -1
  16. package/dist/client/errors.d.ts +7 -1
  17. package/dist/client/errors.d.ts.map +1 -1
  18. package/dist/client/errors.js +12 -1
  19. package/dist/client/errors.js.map +1 -1
  20. package/dist/client/index.d.ts +2 -0
  21. package/dist/client/index.d.ts.map +1 -1
  22. package/dist/client/index.js +2 -0
  23. package/dist/client/index.js.map +1 -1
  24. package/dist/client/transport/handler.d.ts +8 -0
  25. package/dist/client/transport/handler.d.ts.map +1 -1
  26. package/dist/client/transport/handler.js +11 -0
  27. package/dist/client/transport/handler.js.map +1 -1
  28. package/dist/core/command/responses.d.ts.map +1 -1
  29. package/dist/core/command/responses.js +7 -0
  30. package/dist/core/command/responses.js.map +1 -1
  31. package/dist/core/command-name.d.ts +6 -0
  32. package/dist/core/command-name.d.ts.map +1 -1
  33. package/dist/core/command-name.js +6 -0
  34. package/dist/core/command-name.js.map +1 -1
  35. package/dist/core/events.d.ts +15 -1
  36. package/dist/core/events.d.ts.map +1 -1
  37. package/dist/core/index.d.ts +1 -1
  38. package/dist/core/index.d.ts.map +1 -1
  39. package/dist/core/index.js +1 -1
  40. package/dist/core/index.js.map +1 -1
  41. package/dist/core/notification-name.d.ts +3 -1
  42. package/dist/core/notification-name.d.ts.map +1 -1
  43. package/dist/core/notification-name.js +3 -1
  44. package/dist/core/notification-name.js.map +1 -1
  45. package/dist/core/notifications.js +5 -0
  46. package/dist/core/notifications.js.map +1 -1
  47. package/dist/core/types.d.ts +21 -0
  48. package/dist/core/types.d.ts.map +1 -1
  49. package/dist/core/types.js +17 -0
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/query/client.js +3 -0
  52. package/dist/query/client.js.map +1 -1
  53. package/dist/stream/streams.d.ts.map +1 -1
  54. package/dist/stream/streams.js +4 -4
  55. package/dist/stream/streams.js.map +1 -1
  56. package/dist/stream/wire.d.ts +0 -5
  57. package/dist/stream/wire.d.ts.map +1 -1
  58. package/dist/stream/wire.js +0 -5
  59. package/dist/stream/wire.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/client/api/s3-avatars.ts +137 -0
  62. package/src/client/api/s3.ts +150 -18
  63. package/src/client/capabilities.ts +3 -2
  64. package/src/client/client.ts +19 -1
  65. package/src/client/errors.ts +11 -1
  66. package/src/client/index.ts +2 -0
  67. package/src/client/transport/handler.ts +13 -0
  68. package/src/core/command/responses.ts +7 -0
  69. package/src/core/command-name.ts +6 -0
  70. package/src/core/events.ts +15 -1
  71. package/src/core/index.ts +1 -0
  72. package/src/core/notification-name.ts +3 -1
  73. package/src/core/notifications.ts +6 -0
  74. package/src/core/types.ts +23 -0
  75. package/src/query/client.ts +4 -0
  76. package/src/stream/streams.ts +3 -3
  77. 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"}
@@ -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 one file from a channel's S3 file area. The server deletes it from
144
- * the storage and from the file list it keeps.
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). Rejects with an {@link S3TransferError} when the server reports
149
- * that its own request to the storage failed.
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, path: string, options?: S3FileOptions): Promise<void>;
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":"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"}
1
+ {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"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"}
@@ -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(S3_EXTENSION)) {
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 one file from a channel's S3 file area. The server deletes it from
195
- * the storage and from the file list it keeps.
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). Rejects with an {@link S3TransferError} when the server reports
200
- * that its own request to the storage failed.
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, path, options = {}) {
206
+ export async function deleteS3File(client, channelID, paths, options = {}) {
203
207
  assertS3(client);
204
- const key = s3Path(path);
205
- // One file per command: the server deletes the file on the first row and
206
- // passes over any further row.
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: "s3ft_deletefile",
300
+ command: "s3ft_renamefiles",
209
301
  params: [
210
302
  ["chid", channelID],
211
303
  ["chpw", options.password ?? ""],
212
- ["key", key],
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, "s3ft_deletefile")) {
217
- throw new S3TransferError(`the server could not delete ${key} from its storage`);
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,kEAAkE;AAClE,MAAM,YAAY,GAAG,IAAI,CAAC;AAwE1B,sEAAsE;AACtE,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+CAA+C;AAC/C,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AAClE,CAAC;AAED,iCAAiC;AACjC,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAmB,EACnB,MAAc,EACd,OAAsB;IAEtB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,EAAE;YACF;gBACE,CAAC,KAAK,EAAE,GAAG,CAAC;gBACZ,CAAC,MAAM,EAAE,IAAI,CAAC;gBACd,CAAC,QAAQ,EAAE,MAAM,CAAC;aACnB;SACF;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9E,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACrE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAY,EACZ,OAAO,GAAkB,EAAE;IAE3B,IAAI,IAAI,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,OAAO,GAAkB,EAAE;IAE3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED,8FAA8F;AAC9F,SAAS,SAAS,CAAC,IAA2C,EAAE,OAAe;IAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,IAAsB,EACtB,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,+BAA+B,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,eAAe,CACvB,sDAAsD,IAAI,CAAC,SAAS,mBAAmB,CACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,SAAoB,EACpB,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChE,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,yEAAyE;IACzE,+BAA+B;IAC/B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAChC,CAAC,KAAK,EAAE,GAAG,CAAC;SACb;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,+BAA+B,GAAG,mBAAmB,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,QAAkB;IAC5D,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,IAAI,eAAe,CACxB,uBAAuB,IAAI,UAAU,QAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,EAC7F,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAClC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,UAAU,CAAC,QAAkB,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,KAAK,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,GAAW,EACX,IAAiB,EACjB,OAA0B;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,yEAAyE;QACzE,0BAA0B;QAC1B,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,KAAK,GAAI,KAAoC,EAAE,KAAK,CAAC;QAC3D,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,iCAAiC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAsB,EACtB,IAAkC,EAClC,OAAO,GAAsB,EAAE;IAE/B,MAAM,IAAI,GAAG,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1C,qEAAqE;IACrE,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9F,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,4BAA4B,IAAI,CAAC,IAAI,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAA+B,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAwB,EACxB,IAAc,EACd,OAAO,GAA0B,EAAE;IAEnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,CACb,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAC9B,QAAQ,EACR,IAAI,EACJ,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,OAAO,CAAC,QAAkB,EAAE,OAA8B;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IACxC,OAAO,IAAI,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,gGAAgG;AAChG,KAAK,UAAU,YAAY,CACzB,IAAwB,EACxB,OAA8B;IAE9B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACzD,OAAO,CACR,CAAC;IACF,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iDAAiD;AACjD,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,IAAI,SAAS,CAAC;QACnB,SAAS,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;YAC1C,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;gBACrB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,CAAC;YACT,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,SAAS,CACtB,IAAY,EACZ,QAAkB,EAClB,IAAc,EACd,IAAY,EACZ,OAA0B;IAE1B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,aAAa,CACjB,QAAQ,CAAC,OAAO,CAAC,IAAsC,CAAC,EACxD,SAAS,CAAC,IAAI,CAAC,EACf,UAAU,CAAC,IAAI,CAAC,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,mEAAmE;QACnE,IAAI,KAAK,YAAY,iBAAiB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,MAAM,KAAK,CAAC;QAC9E,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAkC,EAClC,OAAO,GAAwB,EAAE;IAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,MAAM,CAAC,IAAkC,EAAE,QAAqC;IACvF,IACE,QAAQ,KAAK,SAAS;QACtB,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,EAChG,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,qDAAqD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,aAAa,IAAI,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA0CD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,OAAO,GAA0B,EAAE;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAAC,kDAAkD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;QAC7D,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,SAAS,GAAG,IAAI,oBAAoB,OAAO,iCAAiC,CAChG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,KAAK,CAAC,KAAa,EAAE,SAAS,EAAE,IAAI;YAClC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,uEAAuE;YACvE,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACnB,IAAI,CACF,IAAI,iBAAiB,CACnB,4BAA4B,OAAO,iCAAiC,CACrE,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/client/api/s3.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAwE7C,sEAAsE;AACtE,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+CAA+C;AAC/C,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AAClE,CAAC;AAED,iCAAiC;AACjC,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAmB,EACnB,MAAc,EACd,OAAsB;IAEtB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,EAAE;YACF;gBACE,CAAC,KAAK,EAAE,GAAG,CAAC;gBACZ,CAAC,MAAM,EAAE,IAAI,CAAC;gBACd,CAAC,QAAQ,EAAE,MAAM,CAAC;aACnB;SACF;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9E,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACrE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAY,EACZ,OAAO,GAAkB,EAAE;IAE3B,IAAI,IAAI,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,OAAO,GAAkB,EAAE;IAE3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED,8FAA8F;AAC9F,SAAS,SAAS,CAAC,IAA2C,EAAE,OAAe;IAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,IAAsB,EACtB,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,+BAA+B,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,eAAe,CACvB,sDAAsD,IAAI,CAAC,SAAS,mBAAmB,CACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,SAAoB,EACpB,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChE,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAoB,EACpB,KAAiC,EACjC,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,2EAA2E;IAC3E,yEAAyE;IACzE,wDAAwD;IACxD,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,KAAK,CAAC;QACf,CAAC,CAAC;YACE,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE;gBACN,CAAC,MAAM,EAAE,SAAS,CAAC;gBACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAChC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC;aAClB;YACD,SAAS,EAAE,CAAC,MAAM,CAAC;SACpB;QACH,CAAC,CAAC;YACE,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE;gBACN,CAAC,MAAM,EAAE,SAAS,CAAC;gBACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;aACjC;YACD,IAAI,EAAE;gBACJ,EAAE;gBACF,GAAG,IAAI,CAAC,GAAG,CACT,CAAC,GAAG,EAAE,EAAE,CACN;oBACE,CAAC,MAAM,EAAE,SAAS,CAAC;oBACnB,CAAC,KAAK,EAAE,GAAG,CAAC;iBACJ,CACb;aACF;YACD,SAAS,EAAE,CAAC,MAAM,CAAC;SACpB,CAAC;IACR,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,eAAe,CACvB,IAAI,CAAC,MAAM,KAAK,CAAC;YACf,CAAC,CAAC,+BAA+B,IAAI,CAAC,CAAC,CAAE,mBAAmB;YAC5D,CAAC,CAAC,mCAAmC,IAAI,CAAC,MAAM,yBAAyB,CAC5E,CAAC;IACJ,CAAC;AACH,CAAC;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAoB,EACpB,OAAe,EACf,OAAe,EACf,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAChC,CAAC,SAAS,EAAE,IAAI,CAAC;YACjB,CAAC,SAAS,EAAE,EAAE,CAAC;SAChB;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,6BAA6B,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,SAAoB,EACpB,OAAgC,EAChC,OAAO,GAAkB,EAAE;IAE3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAU,CAAC,CAAC;IACjG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B;QACE,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE;YACN,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,EAAE;YACF,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CACb;gBACE,CAAC,MAAM,EAAE,SAAS,CAAC;gBACnB,CAAC,SAAS,EAAE,IAAI,CAAC;gBACjB,CAAC,SAAS,EAAE,EAAE,CAAC;aACP,CACb;SACF;QACD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,EACD,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CACvB,yDAAyD,IAAI,OAAO,EAAE,gBAAgB,CACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,QAAkB;IAC5D,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,IAAI,eAAe,CACxB,uBAAuB,IAAI,UAAU,QAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,EAC7F,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAClC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,UAAU,CAAC,QAAkB,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,KAAK,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,GAAW,EACX,IAAiB,EACjB,OAA0B;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,yEAAyE;QACzE,0BAA0B;QAC1B,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,KAAK,GAAI,KAAoC,EAAE,KAAK,CAAC;QAC3D,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,iCAAiC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAsB,EACtB,IAAkC,EAClC,OAAO,GAAsB,EAAE;IAE/B,MAAM,IAAI,GAAG,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1C,qEAAqE;IACrE,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9F,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,4BAA4B,IAAI,CAAC,IAAI,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAA+B,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAwB,EACxB,IAAc,EACd,OAAO,GAA0B,EAAE;IAEnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,CACb,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAC9B,QAAQ,EACR,IAAI,EACJ,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,OAAO,CAAC,QAAkB,EAAE,OAA8B;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IACxC,OAAO,IAAI,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,gGAAgG;AAChG,KAAK,UAAU,YAAY,CACzB,IAAwB,EACxB,OAA8B;IAE9B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACzD,OAAO,CACR,CAAC;IACF,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iDAAiD;AACjD,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,IAAI,SAAS,CAAC;QACnB,SAAS,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;YAC1C,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;gBACrB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,CAAC;YACT,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,SAAS,CACtB,IAAY,EACZ,QAAkB,EAClB,IAAc,EACd,IAAY,EACZ,OAA0B;IAE1B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,aAAa,CACjB,QAAQ,CAAC,OAAO,CAAC,IAAsC,CAAC,EACxD,SAAS,CAAC,IAAI,CAAC,EACf,UAAU,CAAC,IAAI,CAAC,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,mEAAmE;QACnE,IAAI,KAAK,YAAY,iBAAiB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,MAAM,KAAK,CAAC;QAC9E,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,IAAkC,EAClC,OAAO,GAAwB,EAAE;IAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,MAAM,CAAC,IAAkC,EAAE,QAAqC;IACvF,IACE,QAAQ,KAAK,SAAS;QACtB,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,EAChG,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,qDAAqD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,aAAa,IAAI,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA0CD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,SAAoB,EACpB,IAAY,EACZ,OAAO,GAA0B,EAAE;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAAC,kDAAkD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;QAC7D,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,SAAS,GAAG,IAAI,oBAAoB,OAAO,iCAAiC,CAChG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,KAAK,CAAC,KAAa,EAAE,SAAS,EAAE,IAAI;YAClC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,uEAAuE;YACvE,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACnB,IAAI,CACF,IAAI,iBAAiB,CACnB,4BAA4B,OAAO,iCAAiC,CACrE,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC"}
@@ -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 TeamSpeak 3 server does. Frozen.
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;;;;;;;;;OASG;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
+ {"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;AA4CjF;;;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"}
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"}
@@ -265,6 +265,15 @@ export declare class Client implements CommandExecutor, AsyncDisposable {
265
265
  * error. A listener gets it only while it is not output-muted and has
266
266
  * output hardware. Subscribing to a channel does not bring its voice.
267
267
  * Measured on TeamSpeak 3 3.13.8 and TeamSpeak 6 6.0.0-beta13.1.
268
+ *
269
+ * A frame is at most {@link MAX_VOICE_FRAME_SIZE} (484) bytes, and a larger
270
+ * one throws a `RangeError` before taking a voice packet id: a voice packet
271
+ * is at most 500 bytes, and the server drops a larger one without an error,
272
+ * while whispers are not limited this way. Opus in VBR mode at a high
273
+ * bitrate can exceed it on dense passages; a constant bitrate, a lower
274
+ * bitrate, shorter frames, or libopus's `max_data_bytes = 484` keeps every
275
+ * frame under it. Measured on TeamSpeak 3 3.13.8 and TeamSpeak 6
276
+ * 6.0.0-beta13.1.
268
277
  */
269
278
  sendVoice(data: Uint8Array, codec: Codec, options?: VoiceOptions): void;
270
279
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -1028,6 +1028,15 @@ export class Client {
1028
1028
  * error. A listener gets it only while it is not output-muted and has
1029
1029
  * output hardware. Subscribing to a channel does not bring its voice.
1030
1030
  * Measured on TeamSpeak 3 3.13.8 and TeamSpeak 6 6.0.0-beta13.1.
1031
+ *
1032
+ * A frame is at most {@link MAX_VOICE_FRAME_SIZE} (484) bytes, and a larger
1033
+ * one throws a `RangeError` before taking a voice packet id: a voice packet
1034
+ * is at most 500 bytes, and the server drops a larger one without an error,
1035
+ * while whispers are not limited this way. Opus in VBR mode at a high
1036
+ * bitrate can exceed it on dense passages; a constant bitrate, a lower
1037
+ * bitrate, shorter frames, or libopus's `max_data_bytes = 484` keeps every
1038
+ * frame under it. Measured on TeamSpeak 3 3.13.8 and TeamSpeak 6
1039
+ * 6.0.0-beta13.1.
1031
1040
  */
1032
1041
  sendVoice(data, codec, options) {
1033
1042
  // Reserved: VoiceOptions has no fields to read yet.
@@ -1581,7 +1590,7 @@ export class Client {
1581
1590
  if (event.reason === Reason.KickServer || event.reason === Reason.KickServerBan) {
1582
1591
  this.#emit("kicked", kickedEvent(event));
1583
1592
  }
1584
- this.#removedByServer(new RemovedError(event.reason, event.reasonMessage, event.invokerName));
1593
+ this.#removedByServer(new RemovedError(event.reason, event.reasonMessage, event.invokerName, event.banDurationMs));
1585
1594
  break;
1586
1595
  }
1587
1596
  case "clientMoved":
@@ -2004,6 +2013,9 @@ function kickedEvent(event) {
2004
2013
  invokerName: event.invokerName,
2005
2014
  invokerUID: event.invokerUID,
2006
2015
  invokerID: event.invokerID,
2016
+ ...(event.reason === Reason.KickServerBan && event.banDurationMs !== undefined
2017
+ ? { banDurationMs: event.banDurationMs }
2018
+ : {}),
2007
2019
  };
2008
2020
  }
2009
2021
  //# sourceMappingURL=client.js.map