@velliajs/discord 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +133 -0
- package/package.json +82 -0
- package/src/client/BaseClient.js +83 -0
- package/src/client/Client.js +591 -0
- package/src/client/WebhookClient.js +103 -0
- package/src/client/actions/Action.js +119 -0
- package/src/client/actions/ActionsManager.js +79 -0
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
- package/src/client/actions/AutoModerationActionExecution.js +26 -0
- package/src/client/actions/AutoModerationRuleCreate.js +27 -0
- package/src/client/actions/AutoModerationRuleDelete.js +31 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +29 -0
- package/src/client/actions/ChannelCreate.js +23 -0
- package/src/client/actions/ChannelDelete.js +23 -0
- package/src/client/actions/ChannelUpdate.js +33 -0
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
- package/src/client/actions/GuildBanAdd.js +20 -0
- package/src/client/actions/GuildBanRemove.js +25 -0
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
- package/src/client/actions/GuildDelete.js +44 -0
- package/src/client/actions/GuildEmojiCreate.js +20 -0
- package/src/client/actions/GuildEmojiDelete.js +19 -0
- package/src/client/actions/GuildEmojiUpdate.js +20 -0
- package/src/client/actions/GuildEmojisUpdate.js +34 -0
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
- package/src/client/actions/GuildMemberRemove.js +31 -0
- package/src/client/actions/GuildMemberUpdate.js +44 -0
- package/src/client/actions/GuildRoleCreate.js +25 -0
- package/src/client/actions/GuildRoleDelete.js +29 -0
- package/src/client/actions/GuildRoleUpdate.js +39 -0
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
- package/src/client/actions/GuildScheduledEventCreate.js +27 -0
- package/src/client/actions/GuildScheduledEventDelete.js +31 -0
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
- package/src/client/actions/GuildStickerCreate.js +20 -0
- package/src/client/actions/GuildStickerDelete.js +19 -0
- package/src/client/actions/GuildStickerUpdate.js +20 -0
- package/src/client/actions/GuildStickersUpdate.js +34 -0
- package/src/client/actions/GuildUpdate.js +33 -0
- package/src/client/actions/InteractionCreate.js +101 -0
- package/src/client/actions/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +37 -0
- package/src/client/actions/MessageDelete.js +32 -0
- package/src/client/actions/MessageDeleteBulk.js +47 -0
- package/src/client/actions/MessageReactionAdd.js +55 -0
- package/src/client/actions/MessageReactionRemove.js +45 -0
- package/src/client/actions/MessageReactionRemoveAll.js +33 -0
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
- package/src/client/actions/MessageUpdate.js +26 -0
- package/src/client/actions/PresenceUpdate.js +42 -0
- package/src/client/actions/StageInstanceCreate.js +28 -0
- package/src/client/actions/StageInstanceDelete.js +31 -0
- package/src/client/actions/StageInstanceUpdate.js +30 -0
- package/src/client/actions/ThreadCreate.js +24 -0
- package/src/client/actions/ThreadDelete.js +26 -0
- package/src/client/actions/ThreadListSync.js +60 -0
- package/src/client/actions/ThreadMemberUpdate.js +30 -0
- package/src/client/actions/ThreadMembersUpdate.js +47 -0
- package/src/client/actions/TypingStart.js +29 -0
- package/src/client/actions/UserUpdate.js +36 -0
- package/src/client/actions/VoiceStateUpdate.js +43 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +44 -0
- package/src/client/websocket/WebSocketManager.js +393 -0
- package/src/client/websocket/WebSocketShard.js +231 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_CREATE.js +26 -0
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.js +5 -0
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/READY.js +27 -0
- package/src/client/websocket/handlers/RESUMED.js +14 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
- package/src/client/websocket/handlers/TYPING_START.js +5 -0
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/index.js +64 -0
- package/src/errors/DJSError.js +48 -0
- package/src/errors/ErrorCodes.js +319 -0
- package/src/errors/Messages.js +170 -0
- package/src/errors/index.js +5 -0
- package/src/index.js +213 -0
- package/src/managers/ApplicationCommandManager.js +263 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +434 -0
- package/src/managers/AutoModerationRuleManager.js +288 -0
- package/src/managers/BaseGuildEmojiManager.js +80 -0
- package/src/managers/BaseManager.js +19 -0
- package/src/managers/CachedManager.js +57 -0
- package/src/managers/CategoryChannelChildManager.js +77 -0
- package/src/managers/ChannelManager.js +128 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/GuildApplicationCommandManager.js +28 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +494 -0
- package/src/managers/GuildEmojiManager.js +174 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildForumThreadManager.js +83 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +283 -0
- package/src/managers/GuildMemberManager.js +540 -0
- package/src/managers/GuildMemberRoleManager.js +204 -0
- package/src/managers/GuildScheduledEventManager.js +297 -0
- package/src/managers/GuildStickerManager.js +182 -0
- package/src/managers/GuildTextThreadManager.js +91 -0
- package/src/managers/MessageManager.js +259 -0
- package/src/managers/PermissionOverwriteManager.js +168 -0
- package/src/managers/PresenceManager.js +58 -0
- package/src/managers/ReactionManager.js +68 -0
- package/src/managers/ReactionUserManager.js +77 -0
- package/src/managers/RoleManager.js +360 -0
- package/src/managers/StageInstanceManager.js +154 -0
- package/src/managers/ThreadManager.js +204 -0
- package/src/managers/ThreadMemberManager.js +182 -0
- package/src/managers/UserManager.js +139 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/sharding/Shard.js +457 -0
- package/src/sharding/ShardClientUtil.js +285 -0
- package/src/sharding/ShardingManager.js +326 -0
- package/src/structures/ActionRow.js +46 -0
- package/src/structures/ActionRowBuilder.js +35 -0
- package/src/structures/AnonymousGuild.js +97 -0
- package/src/structures/ApplicationCommand.js +606 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +46 -0
- package/src/structures/Attachment.js +140 -0
- package/src/structures/AttachmentBuilder.js +116 -0
- package/src/structures/AutoModerationActionExecution.js +116 -0
- package/src/structures/AutoModerationRule.js +284 -0
- package/src/structures/AutocompleteInteraction.js +97 -0
- package/src/structures/Base.js +43 -0
- package/src/structures/BaseChannel.js +160 -0
- package/src/structures/BaseGuild.js +119 -0
- package/src/structures/BaseGuildEmoji.js +56 -0
- package/src/structures/BaseGuildTextChannel.js +186 -0
- package/src/structures/BaseGuildVoiceChannel.js +234 -0
- package/src/structures/BaseInteraction.js +344 -0
- package/src/structures/BaseSelectMenuComponent.js +56 -0
- package/src/structures/ButtonBuilder.js +44 -0
- package/src/structures/ButtonComponent.js +65 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/CategoryChannel.js +45 -0
- package/src/structures/ChannelSelectMenuBuilder.js +31 -0
- package/src/structures/ChannelSelectMenuComponent.js +20 -0
- package/src/structures/ChannelSelectMenuInteraction.js +33 -0
- package/src/structures/ChatInputCommandInteraction.js +41 -0
- package/src/structures/ClientApplication.js +193 -0
- package/src/structures/ClientPresence.js +82 -0
- package/src/structures/ClientUser.js +185 -0
- package/src/structures/CommandInteraction.js +224 -0
- package/src/structures/CommandInteractionOptionResolver.js +308 -0
- package/src/structures/Component.js +47 -0
- package/src/structures/ContextMenuCommandInteraction.js +64 -0
- package/src/structures/DMChannel.js +129 -0
- package/src/structures/DirectoryChannel.js +36 -0
- package/src/structures/Embed.js +220 -0
- package/src/structures/EmbedBuilder.js +41 -0
- package/src/structures/Emoji.js +108 -0
- package/src/structures/ForumChannel.js +264 -0
- package/src/structures/Guild.js +1361 -0
- package/src/structures/GuildAuditLogs.js +91 -0
- package/src/structures/GuildAuditLogsEntry.js +527 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildChannel.js +457 -0
- package/src/structures/GuildEmoji.js +148 -0
- package/src/structures/GuildMember.js +518 -0
- package/src/structures/GuildPreview.js +193 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +439 -0
- package/src/structures/GuildTemplate.js +241 -0
- package/src/structures/Integration.js +220 -0
- package/src/structures/IntegrationApplication.js +85 -0
- package/src/structures/InteractionCollector.js +263 -0
- package/src/structures/InteractionResponse.js +102 -0
- package/src/structures/InteractionWebhook.js +59 -0
- package/src/structures/Invite.js +322 -0
- package/src/structures/InviteGuild.js +22 -0
- package/src/structures/InviteStageInstance.js +87 -0
- package/src/structures/MentionableSelectMenuBuilder.js +32 -0
- package/src/structures/MentionableSelectMenuComponent.js +11 -0
- package/src/structures/MentionableSelectMenuInteraction.js +71 -0
- package/src/structures/Message.js +997 -0
- package/src/structures/MessageCollector.js +146 -0
- package/src/structures/MessageComponentInteraction.js +107 -0
- package/src/structures/MessageContextMenuCommandInteraction.js +20 -0
- package/src/structures/MessageMentions.js +297 -0
- package/src/structures/MessagePayload.js +299 -0
- package/src/structures/MessageReaction.js +142 -0
- package/src/structures/ModalBuilder.js +34 -0
- package/src/structures/ModalSubmitFields.js +55 -0
- package/src/structures/ModalSubmitInteraction.js +121 -0
- package/src/structures/NewsChannel.js +32 -0
- package/src/structures/OAuth2Guild.js +28 -0
- package/src/structures/PartialGroupDMChannel.js +60 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +372 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/Role.js +458 -0
- package/src/structures/RoleSelectMenuBuilder.js +31 -0
- package/src/structures/RoleSelectMenuComponent.js +11 -0
- package/src/structures/RoleSelectMenuInteraction.js +33 -0
- package/src/structures/SelectMenuBuilder.js +26 -0
- package/src/structures/SelectMenuComponent.js +26 -0
- package/src/structures/SelectMenuInteraction.js +26 -0
- package/src/structures/SelectMenuOptionBuilder.js +26 -0
- package/src/structures/StageChannel.js +112 -0
- package/src/structures/StageInstance.js +167 -0
- package/src/structures/Sticker.js +272 -0
- package/src/structures/StickerPack.js +95 -0
- package/src/structures/StringSelectMenuBuilder.js +79 -0
- package/src/structures/StringSelectMenuComponent.js +20 -0
- package/src/structures/StringSelectMenuInteraction.js +21 -0
- package/src/structures/StringSelectMenuOptionBuilder.js +49 -0
- package/src/structures/Team.js +117 -0
- package/src/structures/TeamMember.js +70 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputBuilder.js +31 -0
- package/src/structures/TextInputComponent.js +29 -0
- package/src/structures/ThreadChannel.js +606 -0
- package/src/structures/ThreadMember.js +113 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +331 -0
- package/src/structures/UserContextMenuCommandInteraction.js +29 -0
- package/src/structures/UserSelectMenuBuilder.js +31 -0
- package/src/structures/UserSelectMenuComponent.js +11 -0
- package/src/structures/UserSelectMenuInteraction.js +51 -0
- package/src/structures/VoiceChannel.js +96 -0
- package/src/structures/VoiceRegion.js +46 -0
- package/src/structures/VoiceState.js +303 -0
- package/src/structures/Webhook.js +481 -0
- package/src/structures/WelcomeChannel.js +60 -0
- package/src/structures/WelcomeScreen.js +49 -0
- package/src/structures/Widget.js +88 -0
- package/src/structures/WidgetMember.js +99 -0
- package/src/structures/interfaces/Application.js +108 -0
- package/src/structures/interfaces/Collector.js +335 -0
- package/src/structures/interfaces/InteractionResponses.js +320 -0
- package/src/structures/interfaces/TextBasedChannel.js +413 -0
- package/src/util/APITypes.js +456 -0
- package/src/util/ActivityFlagsBitField.js +26 -0
- package/src/util/ApplicationFlagsBitField.js +26 -0
- package/src/util/BitField.js +176 -0
- package/src/util/ChannelFlagsBitField.js +41 -0
- package/src/util/Channels.js +150 -0
- package/src/util/Colors.js +73 -0
- package/src/util/Components.js +152 -0
- package/src/util/Constants.js +230 -0
- package/src/util/DataResolver.js +140 -0
- package/src/util/Enums.js +13 -0
- package/src/util/Events.js +160 -0
- package/src/util/Formatters.js +413 -0
- package/src/util/GuildMemberFlagsBitField.js +41 -0
- package/src/util/IntentsBitField.js +34 -0
- package/src/util/LimitedCollection.js +68 -0
- package/src/util/MessageFlagsBitField.js +32 -0
- package/src/util/Options.js +216 -0
- package/src/util/Partials.js +44 -0
- package/src/util/PermissionsBitField.js +104 -0
- package/src/util/ShardEvents.js +27 -0
- package/src/util/Status.js +33 -0
- package/src/util/Sweepers.js +467 -0
- package/src/util/SystemChannelFlagsBitField.js +43 -0
- package/src/util/ThreadMemberFlagsBitField.js +31 -0
- package/src/util/Transformers.js +36 -0
- package/src/util/UserFlagsBitField.js +32 -0
- package/src/util/Util.js +394 -0
- package/src/util/WebSocketShardEvents.js +25 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Buffer } = require('node:buffer');
|
|
4
|
+
const fs = require('node:fs/promises');
|
|
5
|
+
const path = require('node:path');
|
|
6
|
+
const { fetch } = require('undici');
|
|
7
|
+
const { DiscordjsError, DiscordjsTypeError, ErrorCodes } = require('../errors');
|
|
8
|
+
const Invite = require('../structures/Invite');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The DataResolver identifies different objects and tries to resolve a specific piece of information from them.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
class DataResolver extends null {
|
|
15
|
+
/**
|
|
16
|
+
* Data that can be resolved to give an invite code. This can be:
|
|
17
|
+
* * An invite code
|
|
18
|
+
* * An invite URL
|
|
19
|
+
* @typedef {string} InviteResolvable
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Data that can be resolved to give a template code. This can be:
|
|
24
|
+
* * A template code
|
|
25
|
+
* * A template URL
|
|
26
|
+
* @typedef {string} GuildTemplateResolvable
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Resolves the string to a code based on the passed regex.
|
|
31
|
+
* @param {string} data The string to resolve
|
|
32
|
+
* @param {RegExp} regex The RegExp used to extract the code
|
|
33
|
+
* @returns {string}
|
|
34
|
+
*/
|
|
35
|
+
static resolveCode(data, regex) {
|
|
36
|
+
return regex.exec(data)?.[1] ?? data;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Resolves InviteResolvable to an invite code.
|
|
41
|
+
* @param {InviteResolvable} data The invite resolvable to resolve
|
|
42
|
+
* @returns {string}
|
|
43
|
+
*/
|
|
44
|
+
static resolveInviteCode(data) {
|
|
45
|
+
return this.resolveCode(data, Invite.InvitesPattern);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Resolves GuildTemplateResolvable to a template code.
|
|
50
|
+
* @param {GuildTemplateResolvable} data The template resolvable to resolve
|
|
51
|
+
* @returns {string}
|
|
52
|
+
*/
|
|
53
|
+
static resolveGuildTemplateCode(data) {
|
|
54
|
+
const GuildTemplate = require('../structures/GuildTemplate');
|
|
55
|
+
return this.resolveCode(data, GuildTemplate.GuildTemplatesPattern);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Resolves a Base64Resolvable, a string, or a BufferResolvable to a Base 64 image.
|
|
60
|
+
* @param {BufferResolvable|Base64Resolvable} image The image to be resolved
|
|
61
|
+
* @returns {Promise<?string>}
|
|
62
|
+
*/
|
|
63
|
+
static async resolveImage(image) {
|
|
64
|
+
if (!image) return null;
|
|
65
|
+
if (typeof image === 'string' && image.startsWith('data:')) {
|
|
66
|
+
return image;
|
|
67
|
+
}
|
|
68
|
+
const file = await this.resolveFile(image);
|
|
69
|
+
return this.resolveBase64(file.data);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Data that resolves to give a Base64 string, typically for image uploading. This can be:
|
|
74
|
+
* * A Buffer
|
|
75
|
+
* * A base64 string
|
|
76
|
+
* @typedef {Buffer|string} Base64Resolvable
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Resolves a Base64Resolvable to a Base 64 image.
|
|
81
|
+
* @param {Base64Resolvable} data The base 64 resolvable you want to resolve
|
|
82
|
+
* @returns {?string}
|
|
83
|
+
*/
|
|
84
|
+
static resolveBase64(data) {
|
|
85
|
+
if (Buffer.isBuffer(data)) return `data:image/jpg;base64,${data.toString('base64')}`;
|
|
86
|
+
return data;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Data that can be resolved to give a Buffer. This can be:
|
|
91
|
+
* * A Buffer
|
|
92
|
+
* * The path to a local file
|
|
93
|
+
* * A URL <warn>When provided a URL, discord.js will fetch the URL internally in order to create a Buffer.
|
|
94
|
+
* This can pose a security risk when the URL has not been sanitized</warn>
|
|
95
|
+
* @typedef {string|Buffer} BufferResolvable
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @external Stream
|
|
100
|
+
* @see {@link https://nodejs.org/api/stream.html}
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @typedef {Object} ResolvedFile
|
|
105
|
+
* @property {Buffer} data Buffer containing the file data
|
|
106
|
+
* @property {string} [contentType] Content type of the file
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Resolves a BufferResolvable to a Buffer.
|
|
111
|
+
* @param {BufferResolvable|Stream} resource The buffer or stream resolvable to resolve
|
|
112
|
+
* @returns {Promise<ResolvedFile>}
|
|
113
|
+
*/
|
|
114
|
+
static async resolveFile(resource) {
|
|
115
|
+
if (Buffer.isBuffer(resource)) return { data: resource };
|
|
116
|
+
|
|
117
|
+
if (typeof resource[Symbol.asyncIterator] === 'function') {
|
|
118
|
+
const buffers = [];
|
|
119
|
+
for await (const data of resource) buffers.push(Buffer.from(data));
|
|
120
|
+
return { data: Buffer.concat(buffers) };
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (typeof resource === 'string') {
|
|
124
|
+
if (/^https?:\/\//.test(resource)) {
|
|
125
|
+
const res = await fetch(resource);
|
|
126
|
+
return { data: Buffer.from(await res.arrayBuffer()), contentType: res.headers.get('content-type') };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const file = path.resolve(resource);
|
|
130
|
+
|
|
131
|
+
const stats = await fs.stat(file);
|
|
132
|
+
if (!stats.isFile()) throw new DiscordjsError(ErrorCodes.FileNotFound, file);
|
|
133
|
+
return { data: await fs.readFile(file) };
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
throw new DiscordjsTypeError(ErrorCodes.ReqResourceType);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
module.exports = DataResolver;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {Object} Events
|
|
5
|
+
* @property {string} ApplicationCommandPermissionsUpdate applicationCommandPermissionsUpdate
|
|
6
|
+
* @property {string} AutoModerationActionExecution autoModerationActionExecution
|
|
7
|
+
* @property {string} AutoModerationRuleCreate autoModerationRuleCreate
|
|
8
|
+
* @property {string} AutoModerationRuleDelete autoModerationRuleDelete
|
|
9
|
+
* @property {string} AutoModerationRuleUpdate autoModerationRuleUpdate
|
|
10
|
+
* @property {string} CacheSweep cacheSweep
|
|
11
|
+
* @property {string} ChannelCreate channelCreate
|
|
12
|
+
* @property {string} ChannelDelete channelDelete
|
|
13
|
+
* @property {string} ChannelPinsUpdate channelPinsUpdate
|
|
14
|
+
* @property {string} ChannelUpdate channelUpdate
|
|
15
|
+
* @property {string} ClientReady ready
|
|
16
|
+
* @property {string} Debug debug
|
|
17
|
+
* @property {string} Error error
|
|
18
|
+
* @property {string} GuildAuditLogEntryCreate guildAuditLogEntryCreate
|
|
19
|
+
* @property {string} GuildBanAdd guildBanAdd
|
|
20
|
+
* @property {string} GuildBanRemove guildBanRemove
|
|
21
|
+
* @property {string} GuildCreate guildCreate
|
|
22
|
+
* @property {string} GuildDelete guildDelete
|
|
23
|
+
* @property {string} GuildEmojiCreate emojiCreate
|
|
24
|
+
* @property {string} GuildEmojiDelete emojiDelete
|
|
25
|
+
* @property {string} GuildEmojiUpdate emojiUpdate
|
|
26
|
+
* @property {string} GuildIntegrationsUpdate guildIntegrationsUpdate
|
|
27
|
+
* @property {string} GuildMemberAdd guildMemberAdd
|
|
28
|
+
* @property {string} GuildMemberAvailable guildMemberAvailable
|
|
29
|
+
* @property {string} GuildMemberRemove guildMemberRemove
|
|
30
|
+
* @property {string} GuildMembersChunk guildMembersChunk
|
|
31
|
+
* @property {string} GuildMemberUpdate guildMemberUpdate
|
|
32
|
+
* @property {string} GuildRoleCreate roleCreate
|
|
33
|
+
* @property {string} GuildRoleDelete roleDelete
|
|
34
|
+
* @property {string} GuildRoleUpdate roleUpdate
|
|
35
|
+
* @property {string} GuildScheduledEventCreate guildScheduledEventCreate
|
|
36
|
+
* @property {string} GuildScheduledEventDelete guildScheduledEventDelete
|
|
37
|
+
* @property {string} GuildScheduledEventUpdate guildScheduledEventUpdate
|
|
38
|
+
* @property {string} GuildScheduledEventUserAdd guildScheduledEventUserAdd
|
|
39
|
+
* @property {string} GuildScheduledEventUserRemove guildScheduledEventUserRemove
|
|
40
|
+
* @property {string} GuildStickerCreate stickerCreate
|
|
41
|
+
* @property {string} GuildStickerDelete stickerDelete
|
|
42
|
+
* @property {string} GuildStickerUpdate stickerUpdate
|
|
43
|
+
* @property {string} GuildUnavailable guildUnavailable
|
|
44
|
+
* @property {string} GuildUpdate guildUpdate
|
|
45
|
+
* @property {string} InteractionCreate interactionCreate
|
|
46
|
+
* @property {string} Invalidated invalidated
|
|
47
|
+
* @property {string} InviteCreate inviteCreate
|
|
48
|
+
* @property {string} InviteDelete inviteDelete
|
|
49
|
+
* @property {string} MessageBulkDelete messageDeleteBulk
|
|
50
|
+
* @property {string} MessageCreate messageCreate
|
|
51
|
+
* @property {string} MessageDelete messageDelete
|
|
52
|
+
* @property {string} MessageReactionAdd messageReactionAdd
|
|
53
|
+
* @property {string} MessageReactionRemove messageReactionRemove
|
|
54
|
+
* @property {string} MessageReactionRemoveAll messageReactionRemoveAll
|
|
55
|
+
* @property {string} MessageReactionRemoveEmoji messageReactionRemoveEmoji
|
|
56
|
+
* @property {string} MessageUpdate messageUpdate
|
|
57
|
+
* @property {string} PresenceUpdate presenceUpdate
|
|
58
|
+
* @property {string} ShardDisconnect shardDisconnect
|
|
59
|
+
* @property {string} ShardError shardError
|
|
60
|
+
* @property {string} ShardReady shardReady
|
|
61
|
+
* @property {string} ShardReconnecting shardReconnecting
|
|
62
|
+
* @property {string} ShardResume shardResume
|
|
63
|
+
* @property {string} StageInstanceCreate stageInstanceCreate
|
|
64
|
+
* @property {string} StageInstanceDelete stageInstanceDelete
|
|
65
|
+
* @property {string} StageInstanceUpdate stageInstanceUpdate
|
|
66
|
+
* @property {string} ThreadCreate threadCreate
|
|
67
|
+
* @property {string} ThreadDelete threadDelete
|
|
68
|
+
* @property {string} ThreadListSync threadListSync
|
|
69
|
+
* @property {string} ThreadMembersUpdate threadMembersUpdate
|
|
70
|
+
* @property {string} ThreadMemberUpdate threadMemberUpdate
|
|
71
|
+
* @property {string} ThreadUpdate threadUpdate
|
|
72
|
+
* @property {string} TypingStart typingStart
|
|
73
|
+
* @property {string} UserUpdate userUpdate
|
|
74
|
+
* @property {string} VoiceServerUpdate voiceServerUpdate
|
|
75
|
+
* @property {string} VoiceStateUpdate voiceStateUpdate
|
|
76
|
+
* @property {string} Warn warn
|
|
77
|
+
* @property {string} WebhooksUpdate webhookUpdate
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
// JSDoc for IntelliSense purposes
|
|
81
|
+
/**
|
|
82
|
+
* @type {Events}
|
|
83
|
+
* @ignore
|
|
84
|
+
*/
|
|
85
|
+
module.exports = {
|
|
86
|
+
ApplicationCommandPermissionsUpdate: 'applicationCommandPermissionsUpdate',
|
|
87
|
+
AutoModerationActionExecution: 'autoModerationActionExecution',
|
|
88
|
+
AutoModerationRuleCreate: 'autoModerationRuleCreate',
|
|
89
|
+
AutoModerationRuleDelete: 'autoModerationRuleDelete',
|
|
90
|
+
AutoModerationRuleUpdate: 'autoModerationRuleUpdate',
|
|
91
|
+
CacheSweep: 'cacheSweep',
|
|
92
|
+
ChannelCreate: 'channelCreate',
|
|
93
|
+
ChannelDelete: 'channelDelete',
|
|
94
|
+
ChannelPinsUpdate: 'channelPinsUpdate',
|
|
95
|
+
ChannelUpdate: 'channelUpdate',
|
|
96
|
+
ClientReady: 'ready',
|
|
97
|
+
Debug: 'debug',
|
|
98
|
+
Error: 'error',
|
|
99
|
+
GuildAuditLogEntryCreate: 'guildAuditLogEntryCreate',
|
|
100
|
+
GuildBanAdd: 'guildBanAdd',
|
|
101
|
+
GuildBanRemove: 'guildBanRemove',
|
|
102
|
+
GuildCreate: 'guildCreate',
|
|
103
|
+
GuildDelete: 'guildDelete',
|
|
104
|
+
GuildEmojiCreate: 'emojiCreate',
|
|
105
|
+
GuildEmojiDelete: 'emojiDelete',
|
|
106
|
+
GuildEmojiUpdate: 'emojiUpdate',
|
|
107
|
+
GuildIntegrationsUpdate: 'guildIntegrationsUpdate',
|
|
108
|
+
GuildMemberAdd: 'guildMemberAdd',
|
|
109
|
+
GuildMemberAvailable: 'guildMemberAvailable',
|
|
110
|
+
GuildMemberRemove: 'guildMemberRemove',
|
|
111
|
+
GuildMembersChunk: 'guildMembersChunk',
|
|
112
|
+
GuildMemberUpdate: 'guildMemberUpdate',
|
|
113
|
+
GuildRoleCreate: 'roleCreate',
|
|
114
|
+
GuildRoleDelete: 'roleDelete',
|
|
115
|
+
GuildRoleUpdate: 'roleUpdate',
|
|
116
|
+
GuildScheduledEventCreate: 'guildScheduledEventCreate',
|
|
117
|
+
GuildScheduledEventDelete: 'guildScheduledEventDelete',
|
|
118
|
+
GuildScheduledEventUpdate: 'guildScheduledEventUpdate',
|
|
119
|
+
GuildScheduledEventUserAdd: 'guildScheduledEventUserAdd',
|
|
120
|
+
GuildScheduledEventUserRemove: 'guildScheduledEventUserRemove',
|
|
121
|
+
GuildStickerCreate: 'stickerCreate',
|
|
122
|
+
GuildStickerDelete: 'stickerDelete',
|
|
123
|
+
GuildStickerUpdate: 'stickerUpdate',
|
|
124
|
+
GuildUnavailable: 'guildUnavailable',
|
|
125
|
+
GuildUpdate: 'guildUpdate',
|
|
126
|
+
InteractionCreate: 'interactionCreate',
|
|
127
|
+
Invalidated: 'invalidated',
|
|
128
|
+
InviteCreate: 'inviteCreate',
|
|
129
|
+
InviteDelete: 'inviteDelete',
|
|
130
|
+
MessageBulkDelete: 'messageDeleteBulk',
|
|
131
|
+
MessageCreate: 'messageCreate',
|
|
132
|
+
MessageDelete: 'messageDelete',
|
|
133
|
+
MessageReactionAdd: 'messageReactionAdd',
|
|
134
|
+
MessageReactionRemove: 'messageReactionRemove',
|
|
135
|
+
MessageReactionRemoveAll: 'messageReactionRemoveAll',
|
|
136
|
+
MessageReactionRemoveEmoji: 'messageReactionRemoveEmoji',
|
|
137
|
+
MessageUpdate: 'messageUpdate',
|
|
138
|
+
PresenceUpdate: 'presenceUpdate',
|
|
139
|
+
Raw: 'raw',
|
|
140
|
+
ShardDisconnect: 'shardDisconnect',
|
|
141
|
+
ShardError: 'shardError',
|
|
142
|
+
ShardReady: 'shardReady',
|
|
143
|
+
ShardReconnecting: 'shardReconnecting',
|
|
144
|
+
ShardResume: 'shardResume',
|
|
145
|
+
StageInstanceCreate: 'stageInstanceCreate',
|
|
146
|
+
StageInstanceDelete: 'stageInstanceDelete',
|
|
147
|
+
StageInstanceUpdate: 'stageInstanceUpdate',
|
|
148
|
+
ThreadCreate: 'threadCreate',
|
|
149
|
+
ThreadDelete: 'threadDelete',
|
|
150
|
+
ThreadListSync: 'threadListSync',
|
|
151
|
+
ThreadMembersUpdate: 'threadMembersUpdate',
|
|
152
|
+
ThreadMemberUpdate: 'threadMemberUpdate',
|
|
153
|
+
ThreadUpdate: 'threadUpdate',
|
|
154
|
+
TypingStart: 'typingStart',
|
|
155
|
+
UserUpdate: 'userUpdate',
|
|
156
|
+
VoiceServerUpdate: 'voiceServerUpdate',
|
|
157
|
+
VoiceStateUpdate: 'voiceStateUpdate',
|
|
158
|
+
Warn: 'warn',
|
|
159
|
+
WebhooksUpdate: 'webhookUpdate',
|
|
160
|
+
};
|