safeness-sb-new 0.0.1
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/README.md +115 -0
- package/package.json +96 -0
- package/src/WebSocket.js +39 -0
- package/src/client/BaseClient.js +86 -0
- package/src/client/Client.js +836 -0
- package/src/client/WebhookClient.js +61 -0
- package/src/client/actions/Action.js +120 -0
- package/src/client/actions/ActionsManager.js +78 -0
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
- package/src/client/actions/AutoModerationActionExecution.js +27 -0
- package/src/client/actions/AutoModerationRuleCreate.js +28 -0
- package/src/client/actions/AutoModerationRuleDelete.js +32 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +30 -0
- package/src/client/actions/ChannelCreate.js +23 -0
- package/src/client/actions/ChannelDelete.js +39 -0
- package/src/client/actions/ChannelUpdate.js +43 -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 +65 -0
- package/src/client/actions/GuildEmojiCreate.js +20 -0
- package/src/client/actions/GuildEmojiDelete.js +21 -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 +33 -0
- package/src/client/actions/GuildMemberUpdate.js +44 -0
- package/src/client/actions/GuildRoleCreate.js +25 -0
- package/src/client/actions/GuildRoleDelete.js +31 -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 +21 -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/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +46 -0
- package/src/client/actions/MessageDelete.js +32 -0
- package/src/client/actions/MessageDeleteBulk.js +46 -0
- package/src/client/actions/MessageReactionAdd.js +56 -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 +46 -0
- package/src/client/actions/StageInstanceCreate.js +28 -0
- package/src/client/actions/StageInstanceDelete.js +33 -0
- package/src/client/actions/StageInstanceUpdate.js +30 -0
- package/src/client/actions/ThreadCreate.js +24 -0
- package/src/client/actions/ThreadDelete.js +32 -0
- package/src/client/actions/ThreadListSync.js +59 -0
- package/src/client/actions/ThreadMemberUpdate.js +30 -0
- package/src/client/actions/ThreadMembersUpdate.js +34 -0
- package/src/client/actions/TypingStart.js +29 -0
- package/src/client/actions/UserUpdate.js +35 -0
- package/src/client/actions/VoiceStateUpdate.js +57 -0
- package/src/client/actions/WebhooksUpdate.js +20 -0
- package/src/client/voice/ClientVoiceManager.js +150 -0
- package/src/client/voice/VoiceConnection.js +849 -0
- package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
- package/src/client/voice/dispatcher/AudioDispatcher.js +115 -0
- package/src/client/voice/dispatcher/BaseDispatcher.js +405 -0
- package/src/client/voice/dispatcher/VPxDispatcher.js +52 -0
- package/src/client/voice/dispatcher/VideoDispatcher.js +31 -0
- package/src/client/voice/networking/VoiceUDPClient.js +188 -0
- package/src/client/voice/networking/VoiceWebSocket.js +280 -0
- package/src/client/voice/player/MediaPlayer.js +294 -0
- package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
- package/src/client/voice/player/processing/IvfSplitter.js +106 -0
- package/src/client/voice/receiver/PacketHandler.js +170 -0
- package/src/client/voice/receiver/Receiver.js +82 -0
- package/src/client/voice/receiver/video/IvfJoinner.js +106 -0
- package/src/client/voice/util/Function.js +14 -0
- package/src/client/voice/util/PlayInterface.js +122 -0
- package/src/client/voice/util/Secretbox.js +42 -0
- package/src/client/voice/util/Silence.js +16 -0
- package/src/client/voice/util/Socket.js +62 -0
- package/src/client/voice/util/VolumeInterface.js +104 -0
- package/src/client/websocket/WebSocketManager.js +392 -0
- package/src/client/websocket/WebSocketShard.js +906 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -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/CALL_CREATE.js +14 -0
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -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_RECIPIENT_ADD.js +19 -0
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -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 +52 -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_MODAL_CREATE.js +12 -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_POLL_VOTE_ADD.js +22 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +12 -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 +120 -0
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -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_GUILD_SETTINGS_UPDATE.js +6 -0
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -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 +83 -0
- package/src/errors/DJSError.js +61 -0
- package/src/errors/Messages.js +208 -0
- package/src/errors/index.js +4 -0
- package/src/index.js +159 -0
- package/src/managers/ApplicationCommandManager.js +264 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
- package/src/managers/AutoModerationRuleManager.js +296 -0
- package/src/managers/BaseGuildEmojiManager.js +80 -0
- package/src/managers/BaseManager.js +19 -0
- package/src/managers/BillingManager.js +66 -0
- package/src/managers/CachedManager.js +71 -0
- package/src/managers/ChannelManager.js +138 -0
- package/src/managers/ClientUserSettingManager.js +372 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +488 -0
- package/src/managers/GuildEmojiManager.js +171 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildForumThreadManager.js +108 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +304 -0
- package/src/managers/GuildMemberManager.js +597 -0
- package/src/managers/GuildMemberRoleManager.js +191 -0
- package/src/managers/GuildScheduledEventManager.js +296 -0
- package/src/managers/GuildSettingManager.js +155 -0
- package/src/managers/GuildStickerManager.js +179 -0
- package/src/managers/GuildTextThreadManager.js +98 -0
- package/src/managers/InteractionManager.js +39 -0
- package/src/managers/MessageManager.js +391 -0
- package/src/managers/PermissionOverwriteManager.js +166 -0
- package/src/managers/PresenceManager.js +58 -0
- package/src/managers/ReactionManager.js +67 -0
- package/src/managers/ReactionUserManager.js +71 -0
- package/src/managers/RelationshipManager.js +265 -0
- package/src/managers/RoleManager.js +352 -0
- package/src/managers/StageInstanceManager.js +162 -0
- package/src/managers/ThreadManager.js +174 -0
- package/src/managers/ThreadMemberManager.js +186 -0
- package/src/managers/UserManager.js +146 -0
- package/src/managers/UserNoteManager.js +53 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/rest/APIRequest.js +159 -0
- package/src/rest/APIRouter.js +53 -0
- package/src/rest/DiscordAPIError.js +104 -0
- package/src/rest/HTTPError.js +62 -0
- package/src/rest/RESTManager.js +62 -0
- package/src/rest/RateLimitError.js +55 -0
- package/src/rest/RequestHandler.js +444 -0
- package/src/sharding/Shard.js +443 -0
- package/src/sharding/ShardClientUtil.js +275 -0
- package/src/sharding/ShardingManager.js +318 -0
- package/src/structures/AnonymousGuild.js +98 -0
- package/src/structures/ApplicationCommand.js +593 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +48 -0
- package/src/structures/AutoModerationActionExecution.js +89 -0
- package/src/structures/AutoModerationRule.js +294 -0
- package/src/structures/AutocompleteInteraction.js +107 -0
- package/src/structures/Base.js +43 -0
- package/src/structures/BaseCommandInteraction.js +211 -0
- package/src/structures/BaseGuild.js +116 -0
- package/src/structures/BaseGuildEmoji.js +56 -0
- package/src/structures/BaseGuildTextChannel.js +191 -0
- package/src/structures/BaseGuildVoiceChannel.js +241 -0
- package/src/structures/BaseMessageComponent.js +114 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/CallState.js +63 -0
- package/src/structures/CategoryChannel.js +85 -0
- package/src/structures/Channel.js +270 -0
- package/src/structures/ClientPresence.js +77 -0
- package/src/structures/ClientUser.js +450 -0
- package/src/structures/CommandInteraction.js +41 -0
- package/src/structures/CommandInteractionOptionResolver.js +276 -0
- package/src/structures/ContextMenuInteraction.js +65 -0
- package/src/structures/DMChannel.js +217 -0
- package/src/structures/DirectoryChannel.js +20 -0
- package/src/structures/Emoji.js +148 -0
- package/src/structures/ForumChannel.js +261 -0
- package/src/structures/GroupDMChannel.js +387 -0
- package/src/structures/Guild.js +1608 -0
- package/src/structures/GuildAuditLogs.js +729 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildBoost.js +108 -0
- package/src/structures/GuildChannel.js +468 -0
- package/src/structures/GuildEmoji.js +161 -0
- package/src/structures/GuildMember.js +568 -0
- package/src/structures/GuildPreview.js +191 -0
- package/src/structures/GuildPreviewEmoji.js +27 -0
- package/src/structures/GuildScheduledEvent.js +441 -0
- package/src/structures/GuildTemplate.js +236 -0
- package/src/structures/Integration.js +188 -0
- package/src/structures/IntegrationApplication.js +96 -0
- package/src/structures/Interaction.js +290 -0
- package/src/structures/InteractionCollector.js +248 -0
- package/src/structures/InteractionWebhook.js +43 -0
- package/src/structures/Invite.js +358 -0
- package/src/structures/InviteGuild.js +23 -0
- package/src/structures/InviteStageInstance.js +86 -0
- package/src/structures/Message.js +1227 -0
- package/src/structures/MessageActionRow.js +103 -0
- package/src/structures/MessageAttachment.js +204 -0
- package/src/structures/MessageButton.js +165 -0
- package/src/structures/MessageCollector.js +146 -0
- package/src/structures/MessageComponentInteraction.js +120 -0
- package/src/structures/MessageContextMenuInteraction.js +20 -0
- package/src/structures/MessageEmbed.js +586 -0
- package/src/structures/MessageMentions.js +273 -0
- package/src/structures/MessagePayload.js +318 -0
- package/src/structures/MessagePoll.js +238 -0
- package/src/structures/MessageReaction.js +171 -0
- package/src/structures/MessageSelectMenu.js +140 -0
- package/src/structures/Modal.js +161 -0
- package/src/structures/ModalSubmitFieldsResolver.js +53 -0
- package/src/structures/ModalSubmitInteraction.js +119 -0
- package/src/structures/NewsChannel.js +32 -0
- package/src/structures/OAuth2Guild.js +28 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +1131 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/Role.js +531 -0
- package/src/structures/SelectMenuInteraction.js +21 -0
- package/src/structures/StageChannel.js +104 -0
- package/src/structures/StageInstance.js +208 -0
- package/src/structures/Sticker.js +310 -0
- package/src/structures/StickerPack.js +95 -0
- package/src/structures/StoreChannel.js +56 -0
- package/src/structures/Team.js +118 -0
- package/src/structures/TeamMember.js +71 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputComponent.js +131 -0
- package/src/structures/ThreadChannel.js +607 -0
- package/src/structures/ThreadMember.js +105 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +543 -0
- package/src/structures/UserContextMenuInteraction.js +29 -0
- package/src/structures/VoiceChannel.js +110 -0
- package/src/structures/VoiceRegion.js +53 -0
- package/src/structures/VoiceState.js +345 -0
- package/src/structures/WebEmbed.js +373 -0
- package/src/structures/Webhook.js +467 -0
- package/src/structures/WelcomeChannel.js +60 -0
- package/src/structures/WelcomeScreen.js +48 -0
- package/src/structures/Widget.js +87 -0
- package/src/structures/WidgetMember.js +99 -0
- package/src/structures/interfaces/Application.js +313 -0
- package/src/structures/interfaces/Collector.js +300 -0
- package/src/structures/interfaces/InteractionResponses.js +313 -0
- package/src/structures/interfaces/TextBasedChannel.js +719 -0
- package/src/util/ActivityFlags.js +44 -0
- package/src/util/ApplicationFlags.js +76 -0
- package/src/util/AttachmentFlags.js +38 -0
- package/src/util/BitField.js +170 -0
- package/src/util/ChannelFlags.js +45 -0
- package/src/util/Constants.js +1815 -0
- package/src/util/DataResolver.js +145 -0
- package/src/util/Formatters.js +228 -0
- package/src/util/GuildMemberFlags.js +43 -0
- package/src/util/Intents.js +74 -0
- package/src/util/InviteFlags.js +29 -0
- package/src/util/LimitedCollection.js +131 -0
- package/src/util/MessageFlags.js +54 -0
- package/src/util/Options.js +336 -0
- package/src/util/Permissions.js +202 -0
- package/src/util/PremiumUsageFlags.js +31 -0
- package/src/util/PurchasedFlags.js +33 -0
- package/src/util/RemoteAuth.js +382 -0
- package/src/util/RoleFlags.js +37 -0
- package/src/util/SnowflakeUtil.js +92 -0
- package/src/util/Speaking.js +33 -0
- package/src/util/Sweepers.js +466 -0
- package/src/util/SystemChannelFlags.js +55 -0
- package/src/util/ThreadMemberFlags.js +30 -0
- package/src/util/UserFlags.js +104 -0
- package/src/util/Util.js +889 -0
- package/typings/enums.d.ts +297 -0
- package/typings/index.d.ts +7670 -0
- package/typings/index.test-d.ts +0 -0
- package/typings/rawDataTypes.d.ts +342 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { TypeError } = require('../errors');
|
|
4
|
+
const { MessageComponentTypes } = require('../util/Constants');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A resolver for modal submit interaction text inputs.
|
|
8
|
+
*/
|
|
9
|
+
class ModalSubmitFieldsResolver {
|
|
10
|
+
constructor(components) {
|
|
11
|
+
/**
|
|
12
|
+
* The components within the modal
|
|
13
|
+
* @type {PartialModalActionRow[]} The components in the modal
|
|
14
|
+
*/
|
|
15
|
+
this.components = components;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The extracted fields from the modal
|
|
20
|
+
* @type {PartialInputTextData[]} The fields in the modal
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
get _fields() {
|
|
24
|
+
return this.components.reduce((previous, next) => previous.concat(next.components), []);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Gets a field given a custom id from a component
|
|
29
|
+
* @param {string} customId The custom id of the component
|
|
30
|
+
* @returns {?PartialInputTextData}
|
|
31
|
+
*/
|
|
32
|
+
getField(customId) {
|
|
33
|
+
const field = this._fields.find(f => f.customId === customId);
|
|
34
|
+
if (!field) throw new TypeError('MODAL_SUBMIT_INTERACTION_FIELD_NOT_FOUND', customId);
|
|
35
|
+
return field;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Gets the value of a text input component given a custom id
|
|
40
|
+
* @param {string} customId The custom id of the text input component
|
|
41
|
+
* @returns {?string}
|
|
42
|
+
*/
|
|
43
|
+
getTextInputValue(customId) {
|
|
44
|
+
const field = this.getField(customId);
|
|
45
|
+
const expectedType = MessageComponentTypes[MessageComponentTypes.TEXT_INPUT];
|
|
46
|
+
if (field.type !== expectedType) {
|
|
47
|
+
throw new TypeError('MODAL_SUBMIT_INTERACTION_FIELD_TYPE', customId, field.type, expectedType);
|
|
48
|
+
}
|
|
49
|
+
return field.value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
module.exports = ModalSubmitFieldsResolver;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Interaction = require('./Interaction');
|
|
4
|
+
const InteractionWebhook = require('./InteractionWebhook');
|
|
5
|
+
const ModalSubmitFieldsResolver = require('./ModalSubmitFieldsResolver');
|
|
6
|
+
const InteractionResponses = require('./interfaces/InteractionResponses');
|
|
7
|
+
const { MessageComponentTypes } = require('../util/Constants');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents a modal submit interaction.
|
|
11
|
+
* @extends {Interaction}
|
|
12
|
+
* @implements {InteractionResponses}
|
|
13
|
+
*/
|
|
14
|
+
class ModalSubmitInteraction extends Interaction {
|
|
15
|
+
constructor(client, data) {
|
|
16
|
+
super(client, data);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The custom id of the modal.
|
|
20
|
+
* @type {string}
|
|
21
|
+
*/
|
|
22
|
+
this.customId = data.data.custom_id;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @typedef {Object} PartialTextInputData
|
|
26
|
+
* @property {string} [customId] A unique string to be sent in the interaction when submitted
|
|
27
|
+
* @property {MessageComponentType} [type] The type of this component
|
|
28
|
+
* @property {string} [value] Value of this text input component
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @typedef {Object} PartialModalActionRow
|
|
33
|
+
* @property {MessageComponentType} [type] The type of this component
|
|
34
|
+
* @property {PartialTextInputData[]} [components] Partial text input components
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The inputs within the modal
|
|
39
|
+
* @type {PartialModalActionRow[]}
|
|
40
|
+
*/
|
|
41
|
+
this.components =
|
|
42
|
+
data.data.components?.map(c => ({
|
|
43
|
+
type: MessageComponentTypes[c.type],
|
|
44
|
+
components: ModalSubmitInteraction.transformComponent(c),
|
|
45
|
+
})) ?? [];
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The message associated with this interaction
|
|
49
|
+
* @type {Message|APIMessage|null}
|
|
50
|
+
*/
|
|
51
|
+
this.message = data.message ? this.channel?.messages._add(data.message) ?? data.message : null;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The fields within the modal
|
|
55
|
+
* @type {ModalSubmitFieldsResolver}
|
|
56
|
+
*/
|
|
57
|
+
this.fields = new ModalSubmitFieldsResolver(this.components);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Whether the reply to this interaction has been deferred
|
|
61
|
+
* @type {boolean}
|
|
62
|
+
*/
|
|
63
|
+
this.deferred = false;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Whether the reply to this interaction is ephemeral
|
|
67
|
+
* @type {?boolean}
|
|
68
|
+
*/
|
|
69
|
+
this.ephemeral = null;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Whether this interaction has already been replied to
|
|
73
|
+
* @type {boolean}
|
|
74
|
+
*/
|
|
75
|
+
this.replied = false;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* An associated interaction webhook, can be used to further interact with this interaction
|
|
79
|
+
* @type {InteractionWebhook}
|
|
80
|
+
*/
|
|
81
|
+
this.webhook = new InteractionWebhook(this.client, this.applicationId, this.token);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Transforms component data to discord.js-compatible data
|
|
86
|
+
* @param {*} rawComponent The data to transform
|
|
87
|
+
* @returns {PartialTextInputData[]}
|
|
88
|
+
*/
|
|
89
|
+
static transformComponent(rawComponent) {
|
|
90
|
+
return rawComponent.components.map(c => ({
|
|
91
|
+
value: c.value,
|
|
92
|
+
type: MessageComponentTypes[c.type],
|
|
93
|
+
customId: c.custom_id,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Whether this is from a {@link MessageComponentInteraction}.
|
|
99
|
+
* @returns {boolean}
|
|
100
|
+
*/
|
|
101
|
+
isFromMessage() {
|
|
102
|
+
return Boolean(this.message);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// These are here only for documentation purposes - they are implemented by InteractionResponses
|
|
106
|
+
/* eslint-disable no-empty-function */
|
|
107
|
+
deferReply() {}
|
|
108
|
+
reply() {}
|
|
109
|
+
fetchReply() {}
|
|
110
|
+
editReply() {}
|
|
111
|
+
deleteReply() {}
|
|
112
|
+
followUp() {}
|
|
113
|
+
update() {}
|
|
114
|
+
deferUpdate() {}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
InteractionResponses.applyToClass(ModalSubmitInteraction, ['showModal', 'awaitModalSubmit']);
|
|
118
|
+
|
|
119
|
+
module.exports = ModalSubmitInteraction;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseGuildTextChannel = require('./BaseGuildTextChannel');
|
|
4
|
+
const { Error } = require('../errors');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a guild news channel on Discord.
|
|
8
|
+
* @extends {BaseGuildTextChannel}
|
|
9
|
+
*/
|
|
10
|
+
class NewsChannel extends BaseGuildTextChannel {
|
|
11
|
+
/**
|
|
12
|
+
* Adds the target to this channel's followers.
|
|
13
|
+
* <info>If you need the created webhook id, use {@link GuildChannelManager#addFollower}.</info>
|
|
14
|
+
* @param {TextChannelResolvable} channel The channel where the webhook should be created
|
|
15
|
+
* @param {string} [reason] Reason for creating the webhook
|
|
16
|
+
* @returns {Promise<NewsChannel>}
|
|
17
|
+
* @example
|
|
18
|
+
* if (channel.type === 'GUILD_NEWS') {
|
|
19
|
+
* channel.addFollower('222197033908436994', 'Important announcements')
|
|
20
|
+
* .then(() => console.log('Added follower'))
|
|
21
|
+
* .catch(console.error);
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
async addFollower(channel, reason) {
|
|
25
|
+
const channelId = this.guild.channels.resolveId(channel);
|
|
26
|
+
if (!channelId) throw new Error('GUILD_CHANNEL_RESOLVE');
|
|
27
|
+
await this.client.api.channels(this.id).followers.post({ data: { webhook_channel_id: channelId }, reason });
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = NewsChannel;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BaseGuild = require('./BaseGuild');
|
|
4
|
+
const Permissions = require('../util/Permissions');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A partial guild received when using {@link GuildManager#fetch} to fetch multiple guilds.
|
|
8
|
+
* @extends {BaseGuild}
|
|
9
|
+
*/
|
|
10
|
+
class OAuth2Guild extends BaseGuild {
|
|
11
|
+
constructor(client, data) {
|
|
12
|
+
super(client, data);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Whether the client user is the owner of the guild
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
*/
|
|
18
|
+
this.owner = data.owner;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The permissions that the client user has in this guild
|
|
22
|
+
* @type {Readonly<Permissions>}
|
|
23
|
+
*/
|
|
24
|
+
this.permissions = new Permissions(BigInt(data.permissions)).freeze();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
module.exports = OAuth2Guild;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Base = require('./Base');
|
|
4
|
+
const { Role } = require('./Role');
|
|
5
|
+
const { TypeError } = require('../errors');
|
|
6
|
+
const { OverwriteTypes } = require('../util/Constants');
|
|
7
|
+
const Permissions = require('../util/Permissions');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents a permission overwrite for a role or member in a guild channel.
|
|
11
|
+
* @extends {Base}
|
|
12
|
+
*/
|
|
13
|
+
class PermissionOverwrites extends Base {
|
|
14
|
+
constructor(client, data, channel) {
|
|
15
|
+
super(client);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The GuildChannel this overwrite is for
|
|
19
|
+
* @name PermissionOverwrites#channel
|
|
20
|
+
* @type {GuildChannel}
|
|
21
|
+
* @readonly
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(this, 'channel', { value: channel });
|
|
24
|
+
|
|
25
|
+
if (data) this._patch(data);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_patch(data) {
|
|
29
|
+
/**
|
|
30
|
+
* The overwrite's id, either a {@link User} or a {@link Role} id
|
|
31
|
+
* @type {Snowflake}
|
|
32
|
+
*/
|
|
33
|
+
this.id = data.id;
|
|
34
|
+
|
|
35
|
+
if ('type' in data) {
|
|
36
|
+
/**
|
|
37
|
+
* The type of this overwrite
|
|
38
|
+
* @type {OverwriteType}
|
|
39
|
+
*/
|
|
40
|
+
this.type = typeof data.type === 'number' ? OverwriteTypes[data.type] : data.type;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if ('deny' in data) {
|
|
44
|
+
/**
|
|
45
|
+
* The permissions that are denied for the user or role.
|
|
46
|
+
* @type {Readonly<Permissions>}
|
|
47
|
+
*/
|
|
48
|
+
this.deny = new Permissions(BigInt(data.deny)).freeze();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if ('allow' in data) {
|
|
52
|
+
/**
|
|
53
|
+
* The permissions that are allowed for the user or role.
|
|
54
|
+
* @type {Readonly<Permissions>}
|
|
55
|
+
*/
|
|
56
|
+
this.allow = new Permissions(BigInt(data.allow)).freeze();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Edits this Permission Overwrite.
|
|
62
|
+
* @param {PermissionOverwriteOptions} options The options for the update
|
|
63
|
+
* @param {string} [reason] Reason for creating/editing this overwrite
|
|
64
|
+
* @returns {Promise<PermissionOverwrites>}
|
|
65
|
+
* @example
|
|
66
|
+
* // Update permission overwrites
|
|
67
|
+
* permissionOverwrites.edit({
|
|
68
|
+
* SEND_MESSAGES: false
|
|
69
|
+
* })
|
|
70
|
+
* .then(channel => console.log(channel.permissionOverwrites.get(message.author.id)))
|
|
71
|
+
* .catch(console.error);
|
|
72
|
+
*/
|
|
73
|
+
async edit(options, reason) {
|
|
74
|
+
await this.channel.permissionOverwrites.upsert(this.id, options, { type: OverwriteTypes[this.type], reason }, this);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Deletes this Permission Overwrite.
|
|
80
|
+
* @param {string} [reason] Reason for deleting this overwrite
|
|
81
|
+
* @returns {Promise<PermissionOverwrites>}
|
|
82
|
+
*/
|
|
83
|
+
async delete(reason) {
|
|
84
|
+
await this.channel.permissionOverwrites.delete(this.id, reason);
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
toJSON() {
|
|
89
|
+
return {
|
|
90
|
+
id: this.id,
|
|
91
|
+
type: OverwriteTypes[this.type],
|
|
92
|
+
allow: this.allow,
|
|
93
|
+
deny: this.deny,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* An object mapping permission flags to `true` (enabled), `null` (unset) or `false` (disabled).
|
|
99
|
+
* ```js
|
|
100
|
+
* {
|
|
101
|
+
* 'SEND_MESSAGES': true,
|
|
102
|
+
* 'EMBED_LINKS': null,
|
|
103
|
+
* 'ATTACH_FILES': false,
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
* @typedef {Object} PermissionOverwriteOptions
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @typedef {Object} ResolvedOverwriteOptions
|
|
111
|
+
* @property {Permissions} allow The allowed permissions
|
|
112
|
+
* @property {Permissions} deny The denied permissions
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Resolves bitfield permissions overwrites from an object.
|
|
117
|
+
* @param {PermissionOverwriteOptions} options The options for the update
|
|
118
|
+
* @param {ResolvedOverwriteOptions} initialPermissions The initial permissions
|
|
119
|
+
* @returns {ResolvedOverwriteOptions}
|
|
120
|
+
*/
|
|
121
|
+
static resolveOverwriteOptions(options, { allow, deny } = {}) {
|
|
122
|
+
allow = new Permissions(allow);
|
|
123
|
+
deny = new Permissions(deny);
|
|
124
|
+
|
|
125
|
+
for (const [perm, value] of Object.entries(options)) {
|
|
126
|
+
if (value === true) {
|
|
127
|
+
allow.add(perm);
|
|
128
|
+
deny.remove(perm);
|
|
129
|
+
} else if (value === false) {
|
|
130
|
+
allow.remove(perm);
|
|
131
|
+
deny.add(perm);
|
|
132
|
+
} else if (value === null) {
|
|
133
|
+
allow.remove(perm);
|
|
134
|
+
deny.remove(perm);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return { allow, deny };
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* The raw data for a permission overwrite
|
|
143
|
+
* @typedef {Object} RawOverwriteData
|
|
144
|
+
* @property {Snowflake} id The id of the {@link Role} or {@link User} this overwrite belongs to
|
|
145
|
+
* @property {string} allow The permissions to allow
|
|
146
|
+
* @property {string} deny The permissions to deny
|
|
147
|
+
* @property {number} type The type of this OverwriteData
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Data that can be resolved into {@link RawOverwriteData}. This can be:
|
|
152
|
+
* * PermissionOverwrites
|
|
153
|
+
* * OverwriteData
|
|
154
|
+
* @typedef {PermissionOverwrites|OverwriteData} OverwriteResolvable
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Data that can be used for a permission overwrite
|
|
159
|
+
* @typedef {Object} OverwriteData
|
|
160
|
+
* @property {GuildMemberResolvable|RoleResolvable} id Member or role this overwrite is for
|
|
161
|
+
* @property {PermissionResolvable} [allow] The permissions to allow
|
|
162
|
+
* @property {PermissionResolvable} [deny] The permissions to deny
|
|
163
|
+
* @property {OverwriteType} [type] The type of this OverwriteData
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Resolves an overwrite into {@link RawOverwriteData}.
|
|
168
|
+
* @param {OverwriteResolvable} overwrite The overwrite-like data to resolve
|
|
169
|
+
* @param {Guild} [guild] The guild to resolve from
|
|
170
|
+
* @returns {RawOverwriteData}
|
|
171
|
+
*/
|
|
172
|
+
static resolve(overwrite, guild) {
|
|
173
|
+
if (overwrite instanceof this) return overwrite.toJSON();
|
|
174
|
+
if (typeof overwrite.id === 'string' && overwrite.type in OverwriteTypes) {
|
|
175
|
+
return {
|
|
176
|
+
id: overwrite.id,
|
|
177
|
+
type: OverwriteTypes[overwrite.type],
|
|
178
|
+
allow: Permissions.resolve(overwrite.allow ?? Permissions.defaultBit).toString(),
|
|
179
|
+
deny: Permissions.resolve(overwrite.deny ?? Permissions.defaultBit).toString(),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const userOrRole = guild.roles.resolve(overwrite.id) ?? guild.client.users.resolve(overwrite.id);
|
|
184
|
+
if (!userOrRole) throw new TypeError('INVALID_TYPE', 'parameter', 'User nor a Role');
|
|
185
|
+
const type = userOrRole instanceof Role ? OverwriteTypes.role : OverwriteTypes.member;
|
|
186
|
+
|
|
187
|
+
return {
|
|
188
|
+
id: userOrRole.id,
|
|
189
|
+
type,
|
|
190
|
+
allow: Permissions.resolve(overwrite.allow ?? Permissions.defaultBit).toString(),
|
|
191
|
+
deny: Permissions.resolve(overwrite.deny ?? Permissions.defaultBit).toString(),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
module.exports = PermissionOverwrites;
|