oceanic.js 1.6.0 → 1.6.1-dev.09882c7

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 (111) hide show
  1. package/dist/lib/Client.d.ts +8 -3
  2. package/dist/lib/Client.js +64 -14
  3. package/dist/lib/Constants.d.ts +78 -76
  4. package/dist/lib/Constants.js +135 -108
  5. package/dist/lib/gateway/Shard.d.ts +1 -0
  6. package/dist/lib/gateway/Shard.js +25 -26
  7. package/dist/lib/gateway/ShardManager.d.ts +1 -0
  8. package/dist/lib/gateway/ShardManager.js +8 -2
  9. package/dist/lib/index.d.ts +2 -2
  10. package/dist/lib/index.js +5 -7
  11. package/dist/lib/rest/DiscordHTTPError.js +2 -1
  12. package/dist/lib/rest/DiscordRESTError.js +2 -1
  13. package/dist/lib/rest/RequestHandler.js +4 -4
  14. package/dist/lib/routes/Channels.d.ts +20 -14
  15. package/dist/lib/routes/Channels.js +115 -117
  16. package/dist/lib/routes/Guilds.d.ts +5 -5
  17. package/dist/lib/routes/Guilds.js +7 -5
  18. package/dist/lib/routes/Interactions.d.ts +6 -6
  19. package/dist/lib/routes/Interactions.js +1 -1
  20. package/dist/lib/routes/Miscellaneous.d.ts +5 -0
  21. package/dist/lib/routes/Miscellaneous.js +11 -1
  22. package/dist/lib/routes/Webhooks.d.ts +6 -6
  23. package/dist/lib/routes/Webhooks.js +1 -1
  24. package/dist/lib/structures/AnnouncementChannel.d.ts +1 -6
  25. package/dist/lib/structures/AnnouncementChannel.js +1 -8
  26. package/dist/lib/structures/AnnouncementThreadChannel.d.ts +1 -6
  27. package/dist/lib/structures/AnnouncementThreadChannel.js +1 -8
  28. package/dist/lib/structures/Application.d.ts +1 -1
  29. package/dist/lib/structures/Application.js +1 -1
  30. package/dist/lib/structures/ApplicationCommand.js +6 -7
  31. package/dist/lib/structures/Attachment.d.ts +4 -0
  32. package/dist/lib/structures/Attachment.js +7 -1
  33. package/dist/lib/structures/AutoModerationRule.js +4 -5
  34. package/dist/lib/structures/AutocompleteInteraction.d.ts +10 -10
  35. package/dist/lib/structures/AutocompleteInteraction.js +7 -8
  36. package/dist/lib/structures/Base.d.ts +1 -0
  37. package/dist/lib/structures/Base.js +9 -2
  38. package/dist/lib/structures/CategoryChannel.d.ts +1 -6
  39. package/dist/lib/structures/CategoryChannel.js +3 -9
  40. package/dist/lib/structures/CommandInteraction.d.ts +10 -10
  41. package/dist/lib/structures/CommandInteraction.js +9 -10
  42. package/dist/lib/structures/ComponentInteraction.d.ts +10 -10
  43. package/dist/lib/structures/ComponentInteraction.js +15 -13
  44. package/dist/lib/structures/ForumChannel.d.ts +1 -6
  45. package/dist/lib/structures/ForumChannel.js +3 -9
  46. package/dist/lib/structures/Guild.d.ts +9 -8
  47. package/dist/lib/structures/Guild.js +37 -11
  48. package/dist/lib/structures/GuildChannel.d.ts +3 -4
  49. package/dist/lib/structures/GuildChannel.js +10 -4
  50. package/dist/lib/structures/GuildScheduledEvent.js +9 -4
  51. package/dist/lib/structures/GuildTemplate.js +9 -4
  52. package/dist/lib/structures/Integration.js +9 -4
  53. package/dist/lib/structures/InteractionResolvedChannel.d.ts +4 -5
  54. package/dist/lib/structures/InteractionResolvedChannel.js +1 -1
  55. package/dist/lib/structures/Invite.d.ts +4 -4
  56. package/dist/lib/structures/Invite.js +1 -1
  57. package/dist/lib/structures/Member.js +10 -5
  58. package/dist/lib/structures/Message.d.ts +7 -7
  59. package/dist/lib/structures/Message.js +12 -7
  60. package/dist/lib/structures/ModalSubmitInteraction.d.ts +10 -10
  61. package/dist/lib/structures/ModalSubmitInteraction.js +19 -11
  62. package/dist/lib/structures/OAuthApplication.d.ts +4 -2
  63. package/dist/lib/structures/OAuthApplication.js +19 -7
  64. package/dist/lib/structures/PrivateThreadChannel.d.ts +1 -6
  65. package/dist/lib/structures/PrivateThreadChannel.js +1 -8
  66. package/dist/lib/structures/PublicThreadChannel.d.ts +1 -6
  67. package/dist/lib/structures/PublicThreadChannel.js +1 -8
  68. package/dist/lib/structures/Role.js +9 -4
  69. package/dist/lib/structures/StageChannel.d.ts +5 -33
  70. package/dist/lib/structures/StageChannel.js +6 -73
  71. package/dist/lib/structures/StageInstance.js +9 -4
  72. package/dist/lib/structures/TextChannel.d.ts +1 -6
  73. package/dist/lib/structures/TextChannel.js +1 -8
  74. package/dist/lib/structures/TextableChannel.d.ts +3 -11
  75. package/dist/lib/structures/TextableChannel.js +3 -9
  76. package/dist/lib/structures/TextableVoiceChannel.d.ts +39 -0
  77. package/dist/lib/structures/TextableVoiceChannel.js +81 -0
  78. package/dist/lib/structures/ThreadChannel.d.ts +2 -8
  79. package/dist/lib/structures/ThreadChannel.js +3 -9
  80. package/dist/lib/structures/VoiceChannel.d.ts +4 -33
  81. package/dist/lib/structures/VoiceChannel.js +4 -72
  82. package/dist/lib/structures/VoiceState.d.ts +3 -4
  83. package/dist/lib/structures/VoiceState.js +12 -11
  84. package/dist/lib/structures/Webhook.d.ts +7 -7
  85. package/dist/lib/structures/Webhook.js +20 -15
  86. package/dist/lib/types/application-commands.d.ts +5 -4
  87. package/dist/lib/types/channels.d.ts +107 -38
  88. package/dist/lib/types/client.d.ts +11 -1
  89. package/dist/lib/types/events.d.ts +8 -8
  90. package/dist/lib/types/guilds.d.ts +5 -19
  91. package/dist/lib/types/interactions.d.ts +50 -14
  92. package/dist/lib/types/json.d.ts +22 -21
  93. package/dist/lib/types/misc.d.ts +5 -0
  94. package/dist/lib/util/Collection.js +2 -2
  95. package/dist/lib/util/Errors.d.ts +29 -0
  96. package/dist/lib/util/Errors.js +56 -0
  97. package/dist/lib/util/InteractionOptionsWrapper.d.ts +8 -8
  98. package/dist/lib/util/InteractionOptionsWrapper.js +45 -43
  99. package/dist/lib/util/SelectMenuValuesWrapper.d.ts +3 -4
  100. package/dist/lib/util/SelectMenuValuesWrapper.js +9 -8
  101. package/dist/lib/util/TypedEmitter.js +3 -4
  102. package/dist/lib/util/Util.js +4 -4
  103. package/dist/package.json +17 -9
  104. package/esm.mjs +3 -4
  105. package/package.json +17 -9
  106. package/.gitattributes +0 -1
  107. package/.node-version +0 -1
  108. package/dist/lib/gateway/GatewayError.d.ts +0 -6
  109. package/dist/lib/gateway/GatewayError.js +0 -13
  110. package/dist/lib/util/UncaughtError.d.ts +0 -6
  111. package/dist/lib/util/UncaughtError.js +0 -12
@@ -21,12 +21,13 @@ import type { DiscordGatewayAdapterLibraryMethods, VoiceConnection } from "@disc
21
21
  /** The primary class for interfacing with Discord. See {@link Events~ClientEvents | Client Events} for a list of events. */
22
22
  export default class Client<E extends ClientEvents = ClientEvents> extends TypedEmitter<E> {
23
23
  private _application?;
24
+ private _connected;
24
25
  private _user?;
25
26
  channelGuildMap: Record<string, string>;
26
27
  gatewayURL: string;
27
28
  groupChannels: TypedCollection<string, RawGroupChannel, GroupChannel>;
28
29
  guildShardMap: Record<string, number>;
29
- guilds: TypedCollection<string, RawGuild, Guild>;
30
+ guilds: TypedCollection<string, RawGuild, Guild, [rest?: boolean]>;
30
31
  options: ClientInstanceOptions;
31
32
  privateChannels: TypedCollection<string, RawPrivateChannel, PrivateChannel>;
32
33
  ready: boolean;
@@ -43,10 +44,10 @@ export default class Client<E extends ClientEvents = ClientEvents> extends Typed
43
44
  * @param options The options to create the client with.
44
45
  */
45
46
  constructor(options?: ClientOptions);
46
- /** The client's partial application. This will throw an error if not using a gateway connection or no shard is READY. */
47
+ /** The client's partial application. This will throw an error if not using a gateway connection or no shard is READY. If using a client for rest only, consider enabling rest mode. */
47
48
  get application(): ClientApplication;
48
49
  get uptime(): number;
49
- /** The client's user application. This will throw an error if not using a gateway connection or no shard is READY. */
50
+ /** The client's user. This will throw an error if not using a gateway connection or no shard is READY. If using a client for rest only, consider enabling rest mode. */
50
51
  get user(): ExtendedUser;
51
52
  /** The active voice connections of this client. */
52
53
  get voiceConnections(): Map<string, VoiceConnection>;
@@ -83,4 +84,8 @@ export default class Client<E extends ClientEvents = ClientEvents> extends Typed
83
84
  * @param guildID The ID of the guild the voice channel belongs to.
84
85
  */
85
86
  leaveVoiceChannel(guildID: string): void;
87
+ /**
88
+ * Initialize this client for rest only use. Currently, this sets both the `application` and `user` properties, as would happen with a gateway connection.
89
+ */
90
+ restMode(): Promise<this>;
86
91
  }
@@ -13,6 +13,7 @@ const TypedEmitter_1 = tslib_1.__importDefault(require("./util/TypedEmitter"));
13
13
  const ShardManager_1 = tslib_1.__importDefault(require("./gateway/ShardManager"));
14
14
  const UnavailableGuild_1 = tslib_1.__importDefault(require("./structures/UnavailableGuild"));
15
15
  const Util_1 = tslib_1.__importDefault(require("./util/Util"));
16
+ const Errors_1 = require("./util/Errors");
16
17
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
18
  // @ts-ignore
18
19
  let DiscordJSVoice;
@@ -32,6 +33,7 @@ catch { }
32
33
  /** The primary class for interfacing with Discord. See {@link Events~ClientEvents | Client Events} for a list of events. */
33
34
  class Client extends TypedEmitter_1.default {
34
35
  _application;
36
+ _connected = false;
35
37
  _user;
36
38
  channelGuildMap;
37
39
  gatewayURL;
@@ -56,6 +58,27 @@ class Client extends TypedEmitter_1.default {
56
58
  constructor(options) {
57
59
  super();
58
60
  this.util = new Util_1.default(this);
61
+ const disableCache = options?.disableCache === true || options?.disableCache === "no-warning";
62
+ const colZero = {
63
+ auditLogEntries: 0,
64
+ autoModerationRules: 0,
65
+ channelThreads: 0,
66
+ channels: 0,
67
+ groupChannels: 0,
68
+ guildThreads: 0,
69
+ guilds: 0,
70
+ integrations: 0,
71
+ members: 0,
72
+ messages: 0,
73
+ privateChannels: 0,
74
+ roles: 0,
75
+ scheduledEvents: 0,
76
+ stageInstances: 0,
77
+ unavailableGuilds: 0,
78
+ users: 0,
79
+ voiceMembers: 0,
80
+ voiceStates: 0
81
+ };
59
82
  this.options = {
60
83
  allowedMentions: options?.allowedMentions ?? {
61
84
  everyone: false,
@@ -64,7 +87,7 @@ class Client extends TypedEmitter_1.default {
64
87
  roles: true
65
88
  },
66
89
  auth: options?.auth ?? null,
67
- collectionLimits: {
90
+ collectionLimits: disableCache ? colZero : {
68
91
  auditLogEntries: this.util._setLimit(options?.collectionLimits?.auditLogEntries, 50),
69
92
  autoModerationRules: this.util._setLimit(options?.collectionLimits?.autoModerationRules, Infinity),
70
93
  channelThreads: this.util._setLimit(options?.collectionLimits?.channelThreads, Infinity),
@@ -86,8 +109,22 @@ class Client extends TypedEmitter_1.default {
86
109
  },
87
110
  defaultImageFormat: options?.defaultImageFormat ?? "png",
88
111
  defaultImageSize: options?.defaultImageSize ?? 4096,
89
- disableMemberLimitScaling: options?.disableMemberLimitScaling ?? false
112
+ disableMemberLimitScaling: options?.disableMemberLimitScaling ?? false,
113
+ restMode: false,
114
+ disableCache
90
115
  };
116
+ if (options?.disableCache === true) {
117
+ process.emitWarning("Enabling the disableCache option is not recommended. This will break many aspects of the library, as it is not designed to function without cache.", {
118
+ code: "OCEANIC_CACHE_DISABLED",
119
+ detail: "Set the disableCache option to the literal string \"no-warning\" to disable this warning."
120
+ });
121
+ }
122
+ if (disableCache && options?.collectionLimits !== undefined && JSON.stringify(options.collectionLimits) !== JSON.stringify(colZero)) {
123
+ process.emitWarning("Providing the collectionsLimit option when the disableCache option has been enabled is redundant. Any provided values will be ignored.", {
124
+ code: "OCEANIC_COLLECTIONS_LIMIT_WITH_CACHE_DISABLED",
125
+ detail: "Remove the collectionsLimit option, or zero out all of the possible options to disable this warning."
126
+ });
127
+ }
91
128
  this.voiceAdapters = new Map();
92
129
  this.channelGuildMap = {};
93
130
  this.groupChannels = new TypedCollection_1.default(GroupChannel_1.default, this, this.options.collectionLimits.groupChannels);
@@ -101,39 +138,42 @@ class Client extends TypedEmitter_1.default {
101
138
  this.unavailableGuilds = new TypedCollection_1.default(UnavailableGuild_1.default, this, this.options.collectionLimits.unavailableGuilds);
102
139
  this.users = new TypedCollection_1.default(User_1.default, this, this.options.collectionLimits.users);
103
140
  }
104
- /** The client's partial application. This will throw an error if not using a gateway connection or no shard is READY. */
141
+ /** The client's partial application. This will throw an error if not using a gateway connection or no shard is READY. If using a client for rest only, consider enabling rest mode. */
105
142
  get application() {
106
143
  if (this._application) {
107
144
  return this._application;
108
145
  }
109
146
  else {
110
- throw new Error(`${this.constructor.name}#application is not present if not using a gateway connection or no shard is READY. Consider making sure you have connected your client.`);
147
+ throw new Errors_1.UncachedError(`${this.constructor.name}#application is not present if not using a gateway connection or no shard is READY. Consider making sure you have connected your client, or enable rest mode.`);
111
148
  }
112
149
  }
113
150
  get uptime() {
114
151
  return this.startTime ? Date.now() - this.startTime : 0;
115
152
  }
116
- /** The client's user application. This will throw an error if not using a gateway connection or no shard is READY. */
153
+ /** The client's user. This will throw an error if not using a gateway connection or no shard is READY. If using a client for rest only, consider enabling rest mode. */
117
154
  get user() {
118
155
  if (this._user) {
119
156
  return this._user;
120
157
  }
121
158
  else {
122
- throw new Error(`${this.constructor.name}#user is not present if not using a gateway connection or no shard is READY. Consider making sure you have connected your client.`);
159
+ throw new Errors_1.UncachedError(`${this.constructor.name}#user is not present if not using a gateway connection or no shard is READY. Consider making sure you have connected your client, or enable rest mode.`);
123
160
  }
124
161
  }
125
162
  /** The active voice connections of this client. */
126
163
  get voiceConnections() {
127
164
  if (!DiscordJSVoice) {
128
- throw new Error("Voice is only supported with @discordjs/voice installed.");
165
+ throw new Errors_1.DependencyError("Voice is only supported with @discordjs/voice installed.");
129
166
  }
130
167
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access
131
168
  return DiscordJSVoice.getVoiceConnections();
132
169
  }
133
170
  /** Connect the client to Discord. */
134
171
  async connect() {
172
+ if (this.options.restMode) {
173
+ throw new TypeError("Rest mode has been enabled on this client. You cannot connect to the gateway.");
174
+ }
135
175
  if (!this.options.auth || !this.options.auth.startsWith("Bot ")) {
136
- throw new Error("You must provide a bot token to connect. Make sure it has been prefixed with `Bot `.");
176
+ throw new TypeError("You must provide a bot token to connect. Make sure it has been prefixed with `Bot `.");
137
177
  }
138
178
  let url, data;
139
179
  try {
@@ -146,7 +186,7 @@ class Client extends TypedEmitter_1.default {
146
186
  }
147
187
  }
148
188
  catch (err) {
149
- throw new Error("Failed to get gateway information.", { cause: err });
189
+ throw new TypeError("Failed to get gateway information.", { cause: err });
150
190
  }
151
191
  if (url.includes("?")) {
152
192
  url = url.slice(0, url.indexOf("?"));
@@ -160,7 +200,7 @@ class Client extends TypedEmitter_1.default {
160
200
  }
161
201
  if (this.shards.options.maxShards === -1) {
162
202
  if (!data || !data.shards) {
163
- throw new Error("AutoSharding failed, missing required information from Discord.");
203
+ throw new TypeError("AutoSharding failed, missing required information from Discord.");
164
204
  }
165
205
  this.shards.options.maxShards = data.shards;
166
206
  if (this.shards.options.lastShardID === -1) {
@@ -169,7 +209,7 @@ class Client extends TypedEmitter_1.default {
169
209
  }
170
210
  if (this.shards.options.concurrency === -1) {
171
211
  if (!data) {
172
- throw new Error("AutoConcurrency failed, missing required information from Discord.");
212
+ throw new TypeError("AutoConcurrency failed, missing required information from Discord.");
173
213
  }
174
214
  this.shards.options.concurrency = data.sessionStartLimit.maxConcurrency;
175
215
  }
@@ -181,6 +221,7 @@ class Client extends TypedEmitter_1.default {
181
221
  this.shards.options.shardIDs.push(i);
182
222
  }
183
223
  }
224
+ this._connected = true;
184
225
  for (const id of this.shards.options.shardIDs) {
185
226
  this.shards.spawn(id);
186
227
  }
@@ -223,7 +264,7 @@ class Client extends TypedEmitter_1.default {
223
264
  */
224
265
  getVoiceConnection(guildID) {
225
266
  if (!DiscordJSVoice) {
226
- throw new Error("Voice is only supported with @discordjs/voice installed.");
267
+ throw new Errors_1.DependencyError("Voice is only supported with @discordjs/voice installed.");
227
268
  }
228
269
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
229
270
  return DiscordJSVoice.getVoiceConnection(guildID);
@@ -234,7 +275,7 @@ class Client extends TypedEmitter_1.default {
234
275
  * */
235
276
  joinVoiceChannel(options) {
236
277
  if (!DiscordJSVoice) {
237
- throw new Error("Voice is only supported with @discordjs/voice installed.");
278
+ throw new Errors_1.DependencyError("Voice is only supported with @discordjs/voice installed.");
238
279
  }
239
280
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access
240
281
  return DiscordJSVoice.joinVoiceChannel({
@@ -255,6 +296,15 @@ class Client extends TypedEmitter_1.default {
255
296
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access
256
297
  return this.getVoiceConnection(guildID)?.destroy();
257
298
  }
299
+ /**
300
+ * Initialize this client for rest only use. Currently, this sets both the `application` and `user` properties, as would happen with a gateway connection.
301
+ */
302
+ async restMode() {
303
+ this._application = await this.rest.misc.getClientApplication();
304
+ this._user = await this.rest.oauth.getCurrentUser();
305
+ this.options.restMode = true;
306
+ return this;
307
+ }
258
308
  }
259
309
  exports.default = Client;
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQkFBcUI7QUFDckIsMkNBQThDO0FBQzlDLDZFQUE2QztBQUM3QyxxRkFBcUQ7QUFDckQseUZBQXlEO0FBQ3pELHFGQUFxRDtBQUNyRCxxRUFBcUM7QUFDckMsdUVBQXVDO0FBS3ZDLCtFQUErQztBQUUvQyxrRkFBa0Q7QUFFbEQsNkZBQTZEO0FBRTdELCtEQUErQjtBQU8vQiw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLElBQUksY0FBNkQsQ0FBQztBQUNsRSxJQUFJO0lBQ0EsMEZBQTBGO0lBQzFGLGNBQWMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztDQUNoRDtBQUFDLE1BQU0sR0FBRTtBQUVWLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsSUFBSSxPQUE2QyxDQUFDO0FBQ2xELElBQUk7SUFDQSwwRkFBMEY7SUFDMUYsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztDQUNoQztBQUFDLE1BQU0sR0FBRTtBQUVWLDRIQUE0SDtBQUM1SCxNQUFxQixNQUE4QyxTQUFRLHNCQUFlO0lBQzlFLFlBQVksQ0FBcUI7SUFDakMsS0FBSyxDQUFnQjtJQUM3QixlQUFlLENBQXlCO0lBQ3hDLFVBQVUsQ0FBVTtJQUNwQixhQUFhLENBQXlEO0lBQ3RFLGFBQWEsQ0FBeUI7SUFDdEMsTUFBTSxDQUEyQztJQUNqRCxPQUFPLENBQXdCO0lBQy9CLGVBQWUsQ0FBNkQ7SUFDNUUsS0FBSyxDQUFVO0lBQ2YsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBZTtJQUNyQixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsY0FBYyxDQUF5QjtJQUN2QyxpQkFBaUIsQ0FBaUU7SUFDbEYsS0FBSyxDQUF5QztJQUM5QyxJQUFJLENBQU87SUFDWCxhQUFhLENBQW1EO0lBQ2hFOzs7T0FHRztJQUNILFlBQVksT0FB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
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQkFBcUI7QUFDckIsMkNBQThDO0FBQzlDLDZFQUE2QztBQUM3QyxxRkFBcUQ7QUFDckQseUZBQXlEO0FBQ3pELHFGQUFxRDtBQUNyRCxxRUFBcUM7QUFDckMsdUVBQXVDO0FBS3ZDLCtFQUErQztBQUUvQyxrRkFBa0Q7QUFFbEQsNkZBQTZEO0FBRTdELCtEQUErQjtBQUcvQiwwQ0FBK0Q7QUFLL0QsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixJQUFJLGNBQTZELENBQUM7QUFDbEUsSUFBSTtJQUNBLDBGQUEwRjtJQUMxRixjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Q0FDaEQ7QUFBQyxNQUFNLEdBQUU7QUFFViw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLElBQUksT0FBNkMsQ0FBQztBQUNsRCxJQUFJO0lBQ0EsMEZBQTBGO0lBQzFGLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FDaEM7QUFBQyxNQUFNLEdBQUU7QUFFViw0SEFBNEg7QUFDNUgsTUFBcUIsTUFBOEMsU0FBUSxzQkFBZTtJQUM5RSxZQUFZLENBQXFCO0lBQ2pDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsS0FBSyxDQUFnQjtJQUM3QixlQUFlLENBQXlCO0lBQ3hDLFVBQVUsQ0FBVTtJQUNwQixhQUFhLENBQXlEO0lBQ3RFLGFBQWEsQ0FBeUI7SUFDdEMsTUFBTSxDQUE2RDtJQUNuRSxPQUFPLENBQXdCO0lBQy9CLGVBQWUsQ0FBNkQ7SUFDNUUsS0FBSyxDQUFVO0lBQ2YsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBZTtJQUNyQixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsY0FBYyxDQUF5QjtJQUN2QyxpQkFBaUIsQ0FBaUU7SUFDbEYsS0FBSyxDQUF5QztJQUM5QyxJQUFJLENBQU87SUFD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
@@ -139,35 +139,34 @@ export declare enum ChannelTypes {
139
139
  GUILD_DIRECTORY = 14,
140
140
  GUILD_FORUM = 15
141
141
  }
142
- export type NotImplementedChannelTypes = ChannelTypes.GUILD_DIRECTORY;
143
- export type NotImplementedChannels = ChannelTypeMap[NotImplementedChannelTypes];
144
- export type PrivateChannelTypes = ChannelTypes.DM | ChannelTypes.GROUP_DM;
145
- export type PrivateChannels = ChannelTypeMap[PrivateChannelTypes];
146
- export type GuildChannelTypes = Exclude<ChannelTypes, PrivateChannelTypes | NotImplementedChannelTypes>;
147
- export type GuildChannels = ChannelTypeMap[GuildChannelTypes];
148
- export type GuildChannelTypesWithoutThreads = Exclude<GuildChannelTypes, ThreadChannelTypes>;
149
- export type GuildChannelsWithoutThreads = ChannelTypeMap[GuildChannelTypesWithoutThreads];
150
- export type TextChannelTypes = ChannelTypes.GUILD_TEXT | ChannelTypes.DM | ChannelTypes.GROUP_DM | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_STAGE_VOICE;
151
- export type TextChannels = ChannelTypeMap[TextChannelTypes];
152
- export type GuildTextChannelTypes = Exclude<TextChannelTypes, PrivateChannelTypes>;
153
- export type GuildTextChannels = ChannelTypeMap[GuildTextChannelTypes];
154
- export type ThreadChannelTypes = ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD;
155
- export type ThreadChannels = ChannelTypeMap[ThreadChannelTypes];
156
- export type VoiceChannelTypes = ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_STAGE_VOICE;
157
- export type VoiceChannels = ChannelTypeMap[VoiceChannelTypes];
158
- interface ChannelTypeMap {
159
- [ChannelTypes.ANNOUNCEMENT_THREAD]: AnnouncementThreadChannel;
142
+ export declare const AnyChannelTypes: ChannelTypes[];
143
+ export declare const NotImplementedChannelTypes: readonly [ChannelTypes.GUILD_DIRECTORY];
144
+ export declare const ImplementedChannelTypes: (ChannelTypes.GUILD_TEXT | ChannelTypes.DM | ChannelTypes.GUILD_VOICE | ChannelTypes.GROUP_DM | ChannelTypes.GUILD_CATEGORY | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_STAGE_VOICE | ChannelTypes.GUILD_FORUM)[];
145
+ export declare const GuildChannelTypes: readonly [ChannelTypes.GUILD_TEXT, ChannelTypes.GUILD_VOICE, ChannelTypes.GUILD_CATEGORY, ChannelTypes.GUILD_ANNOUNCEMENT, ChannelTypes.ANNOUNCEMENT_THREAD, ChannelTypes.PUBLIC_THREAD, ChannelTypes.PRIVATE_THREAD, ChannelTypes.GUILD_STAGE_VOICE, ChannelTypes.GUILD_DIRECTORY, ChannelTypes.GUILD_FORUM];
146
+ export declare const ThreadChannelTypes: readonly [ChannelTypes.ANNOUNCEMENT_THREAD, ChannelTypes.PUBLIC_THREAD, ChannelTypes.PRIVATE_THREAD];
147
+ export declare const GuildChannelTypesWithoutThreads: (ChannelTypes.GUILD_TEXT | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_CATEGORY | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.GUILD_STAGE_VOICE | ChannelTypes.GUILD_DIRECTORY | ChannelTypes.GUILD_FORUM)[];
148
+ export declare const PrivateChannelTypes: readonly [ChannelTypes.DM, ChannelTypes.GROUP_DM];
149
+ export declare const EditableChannelTypes: (ChannelTypes.GUILD_TEXT | ChannelTypes.GUILD_VOICE | ChannelTypes.GROUP_DM | ChannelTypes.GUILD_CATEGORY | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_STAGE_VOICE | ChannelTypes.GUILD_FORUM)[];
150
+ export declare const TextableChannelTypes: (ChannelTypes.GUILD_TEXT | ChannelTypes.DM | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_STAGE_VOICE)[];
151
+ export declare const TextableGuildChannelTypes: (ChannelTypes.GUILD_TEXT | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_STAGE_VOICE)[];
152
+ export declare const TextableChannelTypesWithoutThreads: (ChannelTypes.GUILD_TEXT | ChannelTypes.DM | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.GUILD_STAGE_VOICE)[];
153
+ export declare const TextableGuildChannelTypesWithoutThreads: (ChannelTypes.GUILD_TEXT | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.GUILD_STAGE_VOICE)[];
154
+ export declare const VoiceChannelTypes: readonly [ChannelTypes.GUILD_VOICE, ChannelTypes.GUILD_STAGE_VOICE];
155
+ export declare const InviteChannelTypes: readonly [ChannelTypes.GUILD_TEXT, ChannelTypes.GUILD_ANNOUNCEMENT, ChannelTypes.GUILD_VOICE, ChannelTypes.GUILD_STAGE_VOICE, ChannelTypes.GUILD_FORUM];
156
+ export declare const InteractionChannelTypes: readonly [...(ChannelTypes.GUILD_TEXT | ChannelTypes.DM | ChannelTypes.GUILD_VOICE | ChannelTypes.GUILD_ANNOUNCEMENT | ChannelTypes.ANNOUNCEMENT_THREAD | ChannelTypes.PUBLIC_THREAD | ChannelTypes.PRIVATE_THREAD | ChannelTypes.GUILD_STAGE_VOICE)[], ChannelTypes.GROUP_DM];
157
+ export interface ChannelTypeMap {
158
+ [ChannelTypes.GUILD_TEXT]: TextChannel;
160
159
  [ChannelTypes.DM]: PrivateChannel;
160
+ [ChannelTypes.GUILD_VOICE]: VoiceChannel;
161
161
  [ChannelTypes.GROUP_DM]: GroupChannel;
162
- [ChannelTypes.GUILD_ANNOUNCEMENT]: AnnouncementChannel;
163
162
  [ChannelTypes.GUILD_CATEGORY]: CategoryChannel;
163
+ [ChannelTypes.GUILD_ANNOUNCEMENT]: AnnouncementChannel;
164
+ [ChannelTypes.ANNOUNCEMENT_THREAD]: AnnouncementThreadChannel;
165
+ [ChannelTypes.PUBLIC_THREAD]: PublicThreadChannel;
166
+ [ChannelTypes.PRIVATE_THREAD]: PrivateThreadChannel;
167
+ [ChannelTypes.GUILD_STAGE_VOICE]: StageChannel;
164
168
  [ChannelTypes.GUILD_DIRECTORY]: never;
165
169
  [ChannelTypes.GUILD_FORUM]: ForumChannel;
166
- [ChannelTypes.GUILD_STAGE_VOICE]: StageChannel;
167
- [ChannelTypes.GUILD_TEXT]: TextChannel;
168
- [ChannelTypes.GUILD_VOICE]: VoiceChannel;
169
- [ChannelTypes.PRIVATE_THREAD]: PrivateThreadChannel;
170
- [ChannelTypes.PUBLIC_THREAD]: PublicThreadChannel;
171
170
  }
172
171
  export declare enum OverwriteTypes {
173
172
  ROLE = 0,
@@ -191,56 +190,58 @@ export declare enum IntegrationExpireBehaviors {
191
190
  REMOVE_ROLE = 0,
192
191
  KICK = 1
193
192
  }
194
- export declare const Permissions: {
195
- readonly CREATE_INSTANT_INVITE: 1n;
196
- readonly KICK_MEMBERS: 2n;
197
- readonly BAN_MEMBERS: 4n;
198
- readonly ADMINISTRATOR: 8n;
199
- readonly MANAGE_CHANNELS: 16n;
200
- readonly MANAGE_GUILD: 32n;
201
- readonly ADD_REACTIONS: 64n;
202
- readonly VIEW_AUDIT_LOG: 128n;
203
- readonly PRIORITY_SPEAKER: 256n;
204
- readonly STREAM: 512n;
205
- readonly VIEW_CHANNEL: 1024n;
206
- readonly SEND_MESSAGES: 2048n;
207
- readonly SEND_TTS_MESSAGES: 4096n;
208
- readonly MANAGE_MESSAGES: 8192n;
209
- readonly EMBED_LINKS: 16384n;
210
- readonly ATTACH_FILES: 32768n;
211
- readonly READ_MESSAGE_HISTORY: 65536n;
212
- readonly MENTION_EVERYONE: 131072n;
213
- readonly USE_EXTERNAL_EMOJIS: 262144n;
214
- readonly VIEW_GUILD_INSIGHTS: 524288n;
215
- readonly CONNECT: 1048576n;
216
- readonly SPEAK: 2097152n;
217
- readonly MUTE_MEMBERS: 4194304n;
218
- readonly DEAFEN_MEMBERS: 8388608n;
219
- readonly MOVE_MEMBERS: 16777216n;
220
- readonly USE_VAD: 33554432n;
221
- readonly CHANGE_NICKNAME: 67108864n;
222
- readonly MANAGE_NICKNAMES: 134217728n;
223
- readonly MANAGE_ROLES: 268435456n;
224
- readonly MANAGE_WEBHOOKS: 536870912n;
225
- readonly MANAGE_GUILD_EXPRESSIONS: 1073741824n;
226
- /** @deprecated Use {@link Constants~Permissions.MANAGE_GUILD_EXPRESSIONS | MANAGE_GUILD_EXPRESSIONS}. This will be removed in `1.8.0`. */
227
- readonly MANAGE_EMOJIS_AND_STICKERS: 1073741824n;
228
- readonly USE_APPLICATION_COMMANDS: 2147483648n;
229
- readonly REQUEST_TO_SPEAK: 4294967296n;
230
- readonly MANAGE_EVENTS: 8589934592n;
231
- readonly MANAGE_THREADS: 17179869184n;
232
- readonly CREATE_PUBLIC_THREADS: 34359738368n;
233
- readonly CREATE_PRIVATE_THREADS: 68719476736n;
234
- readonly USE_EXTERNAL_STICKERS: 137438953472n;
235
- readonly SEND_MESSAGES_IN_THREADS: 274877906944n;
236
- readonly USE_EMBEDDED_ACTIVITIES: 549755813888n;
237
- readonly MODERATE_MEMBERS: 1099511627776n;
238
- readonly VIEW_CREATOR_MONETIZATION_ANALYTICS: 2199023255552n;
239
- readonly USE_SOUNDBOARD: 4398046511104n;
240
- readonly CREATE_GUILD_EXPRESSIONS: 8796093022208n;
241
- readonly CREATE_EVENTS: 17592186044416n;
242
- readonly USE_EXTERNAL_SOUNDS: 35184372088832n;
243
- };
193
+ export declare namespace Permissions {
194
+ const CREATE_INSTANT_INVITE = 1n;
195
+ const KICK_MEMBERS = 2n;
196
+ const BAN_MEMBERS = 4n;
197
+ const ADMINISTRATOR = 8n;
198
+ const MANAGE_CHANNELS = 16n;
199
+ const MANAGE_GUILD = 32n;
200
+ const ADD_REACTIONS = 64n;
201
+ const VIEW_AUDIT_LOG = 128n;
202
+ const PRIORITY_SPEAKER = 256n;
203
+ const STREAM = 512n;
204
+ const VIEW_CHANNEL = 1024n;
205
+ const SEND_MESSAGES = 2048n;
206
+ const SEND_TTS_MESSAGES = 4096n;
207
+ const MANAGE_MESSAGES = 8192n;
208
+ const EMBED_LINKS = 16384n;
209
+ const ATTACH_FILES = 32768n;
210
+ const READ_MESSAGE_HISTORY = 65536n;
211
+ const MENTION_EVERYONE = 131072n;
212
+ const USE_EXTERNAL_EMOJIS = 262144n;
213
+ const VIEW_GUILD_INSIGHTS = 524288n;
214
+ const CONNECT = 1048576n;
215
+ const SPEAK = 2097152n;
216
+ const MUTE_MEMBERS = 4194304n;
217
+ const DEAFEN_MEMBERS = 8388608n;
218
+ const MOVE_MEMBERS = 16777216n;
219
+ const USE_VAD = 33554432n;
220
+ const CHANGE_NICKNAME = 67108864n;
221
+ const MANAGE_NICKNAMES = 134217728n;
222
+ const MANAGE_ROLES = 268435456n;
223
+ const MANAGE_WEBHOOKS = 536870912n;
224
+ const MANAGE_GUILD_EXPRESSIONS = 1073741824n;
225
+ /** @deprecated Use {@link Constants~Permissions | MANAGE_GUILD_EXPRESSIONS}. This will be removed in `1.8.0`. */
226
+ const MANAGE_EMOJIS_AND_STICKERS = 1073741824n;
227
+ const USE_APPLICATION_COMMANDS = 2147483648n;
228
+ const REQUEST_TO_SPEAK = 4294967296n;
229
+ const MANAGE_EVENTS = 8589934592n;
230
+ const MANAGE_THREADS = 17179869184n;
231
+ const CREATE_PUBLIC_THREADS = 34359738368n;
232
+ const CREATE_PRIVATE_THREADS = 68719476736n;
233
+ const USE_EXTERNAL_STICKERS = 137438953472n;
234
+ const SEND_MESSAGES_IN_THREADS = 274877906944n;
235
+ const USE_EMBEDDED_ACTIVITIES = 549755813888n;
236
+ const MODERATE_MEMBERS = 1099511627776n;
237
+ const VIEW_CREATOR_MONETIZATION_ANALYTICS = 2199023255552n;
238
+ const USE_SOUNDBOARD = 4398046511104n;
239
+ const CREATE_GUILD_EXPRESSIONS = 8796093022208n;
240
+ const CREATE_EVENTS = 17592186044416n;
241
+ const USE_EXTERNAL_SOUNDS = 35184372088832n;
242
+ const SEND_VOICE_MESSAGES = 70368744177664n;
243
+ }
244
+ export declare const PermissionNames: ("CREATE_INSTANT_INVITE" | "KICK_MEMBERS" | "BAN_MEMBERS" | "ADMINISTRATOR" | "MANAGE_CHANNELS" | "MANAGE_GUILD" | "ADD_REACTIONS" | "VIEW_AUDIT_LOG" | "PRIORITY_SPEAKER" | "STREAM" | "VIEW_CHANNEL" | "SEND_MESSAGES" | "SEND_TTS_MESSAGES" | "MANAGE_MESSAGES" | "EMBED_LINKS" | "ATTACH_FILES" | "READ_MESSAGE_HISTORY" | "MENTION_EVERYONE" | "USE_EXTERNAL_EMOJIS" | "VIEW_GUILD_INSIGHTS" | "CONNECT" | "SPEAK" | "MUTE_MEMBERS" | "DEAFEN_MEMBERS" | "MOVE_MEMBERS" | "USE_VAD" | "CHANGE_NICKNAME" | "MANAGE_NICKNAMES" | "MANAGE_ROLES" | "MANAGE_WEBHOOKS" | "MANAGE_GUILD_EXPRESSIONS" | "MANAGE_EMOJIS_AND_STICKERS" | "USE_APPLICATION_COMMANDS" | "REQUEST_TO_SPEAK" | "MANAGE_EVENTS" | "MANAGE_THREADS" | "CREATE_PUBLIC_THREADS" | "CREATE_PRIVATE_THREADS" | "USE_EXTERNAL_STICKERS" | "SEND_MESSAGES_IN_THREADS" | "USE_EMBEDDED_ACTIVITIES" | "MODERATE_MEMBERS" | "VIEW_CREATOR_MONETIZATION_ANALYTICS" | "USE_SOUNDBOARD" | "CREATE_GUILD_EXPRESSIONS" | "CREATE_EVENTS" | "USE_EXTERNAL_SOUNDS" | "SEND_VOICE_MESSAGES")[];
244
245
  export type PermissionName = keyof typeof Permissions;
245
246
  export declare const AllGuildPermissions: bigint;
246
247
  export declare const AllTextPermissions: bigint;
@@ -369,7 +370,8 @@ export declare enum MessageFlags {
369
370
  LOADING = 128,
370
371
  FAILED_TO_MENTION_SOME_ROLES_IN_THREAD = 256,
371
372
  SHOULD_SHOW_LINK_NOT_DISCORD_WARNING = 1024,
372
- SUPPRESS_NOTIFICATIONS = 4096
373
+ SUPPRESS_NOTIFICATIONS = 4096,
374
+ IS_VOICE_MESSAGE = 8192
373
375
  }
374
376
  export declare enum MessageTypes {
375
377
  DEFAULT = 0,
@@ -863,6 +865,7 @@ export declare enum JSONErrorCodes {
863
865
  CANNOT_CONVERT_BETWEEN_PREMIUM_AND_NORMAL_EMOJI = 50145,
864
866
  UPLOADED_FILE_NOT_FOUND = 50146,
865
867
  CANNOT_DELETE_GUILD_SUBSCRIPTION_INTEGRATION = 50163,
868
+ CANNOT_SEND_VOICE_MESSAGES_IN_CHANNEL = 50173,
866
869
  NO_PERMISSION_TO_SEND_STICKER = 50600,
867
870
  TWO_FACTOR_REQUIRED = 60003,
868
871
  NO_USERS_WITH_DISCORDTAG_EXIST = 80004,
@@ -893,4 +896,3 @@ export declare enum JSONErrorCodes {
893
896
  WEBHOOK_SERVICES_CANNOT_BE_USED_IN_FORUM_CHANNELS = 220004,
894
897
  MESSAGE_BLOCKED_BY_HARMFUL_LINKS_FILTER = 220005
895
898
  }
896
- export {};