discord-sb-v13 0.0.1-security → 2.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.
Potentially problematic release.
This version of discord-sb-v13 might be problematic. Click here for more details.
- package/LICENSE +674 -0
- package/README.md +119 -5
- package/package.json +101 -6
- package/src/WebSocket.js +39 -0
- package/src/client/BaseClient.js +87 -0
- package/src/client/Client.js +1154 -0
- package/src/client/WebhookClient.js +61 -0
- package/src/client/actions/Action.js +115 -0
- package/src/client/actions/ActionsManager.js +72 -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 +39 -0
- package/src/client/actions/ChannelUpdate.js +34 -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/InteractionCreate.js +115 -0
- package/src/client/actions/InviteCreate.js +28 -0
- package/src/client/actions/InviteDelete.js +30 -0
- package/src/client/actions/MessageCreate.js +50 -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 +45 -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 +51 -0
- package/src/client/websocket/WebSocketManager.js +412 -0
- package/src/client/websocket/WebSocketShard.js +908 -0
- package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +23 -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 +16 -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_APPLICATION_COMMANDS_UPDATE.js +11 -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 +46 -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_LIST_UPDATE.js +55 -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 +16 -0
- package/src/client/websocket/handlers/INTERACTION_FAILURE.js +18 -0
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +11 -0
- package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +30 -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_ACK.js +16 -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 +172 -0
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +17 -0
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +15 -0
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +18 -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 +12 -0
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +9 -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 +86 -0
- package/src/errors/DJSError.js +61 -0
- package/src/errors/Messages.js +227 -0
- package/src/errors/index.js +4 -0
- package/src/index.js +190 -0
- package/src/main.js +42 -0
- package/src/managers/ApplicationCommandManager.js +267 -0
- package/src/managers/ApplicationCommandPermissionsManager.js +425 -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 +139 -0
- package/src/managers/ClientUserSettingManager.js +490 -0
- package/src/managers/DataManager.js +61 -0
- package/src/managers/DeveloperPortalManager.js +104 -0
- package/src/managers/GuildApplicationCommandManager.js +28 -0
- package/src/managers/GuildBanManager.js +204 -0
- package/src/managers/GuildChannelManager.js +502 -0
- package/src/managers/GuildEmojiManager.js +171 -0
- package/src/managers/GuildEmojiRoleManager.js +118 -0
- package/src/managers/GuildFolderManager.js +24 -0
- package/src/managers/GuildForumThreadManager.js +114 -0
- package/src/managers/GuildInviteManager.js +213 -0
- package/src/managers/GuildManager.js +304 -0
- package/src/managers/GuildMemberManager.js +724 -0
- package/src/managers/GuildMemberRoleManager.js +191 -0
- package/src/managers/GuildScheduledEventManager.js +296 -0
- package/src/managers/GuildSettingManager.js +148 -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 +393 -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 +258 -0
- package/src/managers/RoleManager.js +352 -0
- package/src/managers/SessionManager.js +57 -0
- package/src/managers/StageInstanceManager.js +162 -0
- package/src/managers/ThreadManager.js +207 -0
- package/src/managers/ThreadMemberManager.js +186 -0
- package/src/managers/UserManager.js +150 -0
- package/src/managers/VoiceStateManager.js +37 -0
- package/src/rest/APIRequest.js +136 -0
- package/src/rest/APIRouter.js +53 -0
- package/src/rest/CaptchaSolver.js +78 -0
- package/src/rest/DiscordAPIError.js +103 -0
- package/src/rest/HTTPError.js +62 -0
- package/src/rest/RESTManager.js +81 -0
- package/src/rest/RateLimitError.js +55 -0
- package/src/rest/RequestHandler.js +446 -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 +1028 -0
- package/src/structures/ApplicationRoleConnectionMetadata.js +45 -0
- package/src/structures/AutoModerationActionExecution.js +89 -0
- package/src/structures/AutoModerationRule.js +294 -0
- package/src/structures/AutocompleteInteraction.js +106 -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 +193 -0
- package/src/structures/BaseGuildVoiceChannel.js +243 -0
- package/src/structures/BaseMessageComponent.js +114 -0
- package/src/structures/ButtonInteraction.js +11 -0
- package/src/structures/Call.js +58 -0
- package/src/structures/CategoryChannel.js +83 -0
- package/src/structures/Channel.js +271 -0
- package/src/structures/ClientApplication.js +204 -0
- package/src/structures/ClientPresence.js +84 -0
- package/src/structures/ClientUser.js +624 -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 +280 -0
- package/src/structures/DeveloperPortalApplication.js +520 -0
- package/src/structures/DirectoryChannel.js +20 -0
- package/src/structures/Emoji.js +148 -0
- package/src/structures/ForumChannel.js +271 -0
- package/src/structures/Guild.js +1744 -0
- package/src/structures/GuildAuditLogs.js +734 -0
- package/src/structures/GuildBan.js +59 -0
- package/src/structures/GuildBoost.js +108 -0
- package/src/structures/GuildChannel.js +454 -0
- package/src/structures/GuildEmoji.js +161 -0
- package/src/structures/GuildFolder.js +75 -0
- package/src/structures/GuildMember.js +686 -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 +351 -0
- package/src/structures/InteractionCollector.js +248 -0
- package/src/structures/InteractionResponse.js +114 -0
- package/src/structures/InteractionWebhook.js +43 -0
- package/src/structures/Invite.js +375 -0
- package/src/structures/InviteGuild.js +23 -0
- package/src/structures/InviteStageInstance.js +86 -0
- package/src/structures/Message.js +1188 -0
- package/src/structures/MessageActionRow.js +103 -0
- package/src/structures/MessageAttachment.js +193 -0
- package/src/structures/MessageButton.js +231 -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 +272 -0
- package/src/structures/MessagePayload.js +358 -0
- package/src/structures/MessageReaction.js +171 -0
- package/src/structures/MessageSelectMenu.js +391 -0
- package/src/structures/Modal.js +279 -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/PartialGroupDMChannel.js +430 -0
- package/src/structures/PermissionOverwrites.js +196 -0
- package/src/structures/Presence.js +441 -0
- package/src/structures/ReactionCollector.js +229 -0
- package/src/structures/ReactionEmoji.js +31 -0
- package/src/structures/RichPresence.js +722 -0
- package/src/structures/Role.js +515 -0
- package/src/structures/SelectMenuInteraction.js +170 -0
- package/src/structures/Session.js +81 -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 +167 -0
- package/src/structures/TeamMember.js +71 -0
- package/src/structures/TextChannel.js +33 -0
- package/src/structures/TextInputComponent.js +201 -0
- package/src/structures/ThreadChannel.js +626 -0
- package/src/structures/ThreadMember.js +105 -0
- package/src/structures/Typing.js +74 -0
- package/src/structures/User.js +697 -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 +306 -0
- package/src/structures/WebEmbed.js +401 -0
- package/src/structures/Webhook.js +461 -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 +190 -0
- package/src/structures/interfaces/Collector.js +300 -0
- package/src/structures/interfaces/InteractionResponses.js +313 -0
- package/src/structures/interfaces/TextBasedChannel.js +566 -0
- package/src/util/ActivityFlags.js +44 -0
- package/src/util/ApplicationFlags.js +74 -0
- package/src/util/BitField.js +170 -0
- package/src/util/ChannelFlags.js +45 -0
- package/src/util/Constants.js +1917 -0
- package/src/util/DataResolver.js +145 -0
- package/src/util/Formatters.js +214 -0
- package/src/util/GuildMemberFlags.js +43 -0
- package/src/util/Intents.js +74 -0
- package/src/util/LimitedCollection.js +131 -0
- package/src/util/MessageFlags.js +54 -0
- package/src/util/Options.js +360 -0
- package/src/util/Permissions.js +187 -0
- package/src/util/PremiumUsageFlags.js +31 -0
- package/src/util/PurchasedFlags.js +31 -0
- package/src/util/RemoteAuth.js +522 -0
- package/src/util/SnowflakeUtil.js +92 -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 +741 -0
- package/src/util/Voice.js +1456 -0
- package/src/util/arRPC/index.js +229 -0
- package/src/util/arRPC/process/detectable.json +1 -0
- package/src/util/arRPC/process/index.js +102 -0
- package/src/util/arRPC/process/native/index.js +5 -0
- package/src/util/arRPC/process/native/linux.js +37 -0
- package/src/util/arRPC/process/native/win32.js +25 -0
- package/src/util/arRPC/transports/ipc.js +281 -0
- package/src/util/arRPC/transports/websocket.js +128 -0
- package/typings/enums.d.ts +346 -0
- package/typings/index.d.ts +7725 -0
- package/typings/index.test-d.ts +0 -0
- package/typings/rawDataTypes.d.ts +283 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
4
|
+
const Base = require('./Base');
|
5
|
+
const { Sticker } = require('./Sticker');
|
6
|
+
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Represents a pack of standard stickers.
|
10
|
+
* @extends {Base}
|
11
|
+
*/
|
12
|
+
class StickerPack extends Base {
|
13
|
+
constructor(client, pack) {
|
14
|
+
super(client);
|
15
|
+
/**
|
16
|
+
* The Sticker pack's id
|
17
|
+
* @type {Snowflake}
|
18
|
+
*/
|
19
|
+
this.id = pack.id;
|
20
|
+
|
21
|
+
/**
|
22
|
+
* The stickers in the pack
|
23
|
+
* @type {Collection<Snowflake, Sticker>}
|
24
|
+
*/
|
25
|
+
this.stickers = new Collection(pack.stickers.map(s => [s.id, new Sticker(client, s)]));
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The name of the sticker pack
|
29
|
+
* @type {string}
|
30
|
+
*/
|
31
|
+
this.name = pack.name;
|
32
|
+
|
33
|
+
/**
|
34
|
+
* The id of the pack's SKU
|
35
|
+
* @type {Snowflake}
|
36
|
+
*/
|
37
|
+
this.skuId = pack.sku_id;
|
38
|
+
|
39
|
+
/**
|
40
|
+
* The id of a sticker in the pack which is shown as the pack's icon
|
41
|
+
* @type {?Snowflake}
|
42
|
+
*/
|
43
|
+
this.coverStickerId = pack.cover_sticker_id ?? null;
|
44
|
+
|
45
|
+
/**
|
46
|
+
* The description of the sticker pack
|
47
|
+
* @type {string}
|
48
|
+
*/
|
49
|
+
this.description = pack.description;
|
50
|
+
|
51
|
+
/**
|
52
|
+
* The id of the sticker pack's banner image
|
53
|
+
* @type {?Snowflake}
|
54
|
+
*/
|
55
|
+
this.bannerId = pack.banner_asset_id ?? null;
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* The timestamp the sticker was created at
|
60
|
+
* @type {number}
|
61
|
+
* @readonly
|
62
|
+
*/
|
63
|
+
get createdTimestamp() {
|
64
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
65
|
+
}
|
66
|
+
|
67
|
+
/**
|
68
|
+
* The time the sticker was created at
|
69
|
+
* @type {Date}
|
70
|
+
* @readonly
|
71
|
+
*/
|
72
|
+
get createdAt() {
|
73
|
+
return new Date(this.createdTimestamp);
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* The sticker which is shown as the pack's icon
|
78
|
+
* @type {?Sticker}
|
79
|
+
* @readonly
|
80
|
+
*/
|
81
|
+
get coverSticker() {
|
82
|
+
return this.coverStickerId && this.stickers.get(this.coverStickerId);
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* The URL to this sticker pack's banner.
|
87
|
+
* @param {StaticImageURLOptions} [options={}] Options for the Image URL
|
88
|
+
* @returns {?string}
|
89
|
+
*/
|
90
|
+
bannerURL({ format, size } = {}) {
|
91
|
+
return this.bannerId && this.client.rest.cdn.StickerPackBanner(this.bannerId, format, size);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
module.exports = StickerPack;
|
@@ -0,0 +1,56 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const GuildChannel = require('./GuildChannel');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Represents a guild store channel on Discord.
|
7
|
+
* <warn>Store channels have been removed from Discord. See
|
8
|
+
* [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/6309018858647)
|
9
|
+
* for more information.</warn>
|
10
|
+
* @extends {GuildChannel}
|
11
|
+
*/
|
12
|
+
class StoreChannel extends GuildChannel {
|
13
|
+
constructor(guild, data, client) {
|
14
|
+
super(guild, data, client);
|
15
|
+
|
16
|
+
/**
|
17
|
+
* If the guild considers this channel NSFW
|
18
|
+
* @type {boolean}
|
19
|
+
*/
|
20
|
+
this.nsfw = Boolean(data.nsfw);
|
21
|
+
}
|
22
|
+
|
23
|
+
_patch(data) {
|
24
|
+
super._patch(data);
|
25
|
+
|
26
|
+
if ('nsfw' in data) {
|
27
|
+
this.nsfw = Boolean(data.nsfw);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Creates an invite to this guild channel.
|
33
|
+
* @param {CreateInviteOptions} [options={}] The options for creating the invite
|
34
|
+
* @returns {Promise<Invite>}
|
35
|
+
* @example
|
36
|
+
* // Create an invite to a channel
|
37
|
+
* channel.createInvite()
|
38
|
+
* .then(invite => console.log(`Created an invite with a code of ${invite.code}`))
|
39
|
+
* .catch(console.error);
|
40
|
+
*/
|
41
|
+
createInvite(options) {
|
42
|
+
return this.guild.invites.create(this.id, options);
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Fetches a collection of invites to this guild channel.
|
47
|
+
* Resolves with a collection mapping invites by their codes.
|
48
|
+
* @param {boolean} [cache=true] Whether or not to cache the fetched invites
|
49
|
+
* @returns {Promise<Collection<string, Invite>>}
|
50
|
+
*/
|
51
|
+
fetchInvites(cache = true) {
|
52
|
+
return this.guild.invites.fetch({ channelId: this.id, cache });
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
module.exports = StoreChannel;
|
@@ -0,0 +1,167 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const { Collection } = require('@discordjs/collection');
|
4
|
+
const Base = require('./Base');
|
5
|
+
const TeamMember = require('./TeamMember');
|
6
|
+
const User = require('./User');
|
7
|
+
const { Error } = require('../errors');
|
8
|
+
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Represents a Client OAuth2 Application Team.
|
12
|
+
* @extends {Base}
|
13
|
+
*/
|
14
|
+
class Team extends Base {
|
15
|
+
constructor(client, data) {
|
16
|
+
super(client);
|
17
|
+
this._patch(data);
|
18
|
+
}
|
19
|
+
|
20
|
+
_patch(data) {
|
21
|
+
/**
|
22
|
+
* The Team's id
|
23
|
+
* @type {Snowflake}
|
24
|
+
*/
|
25
|
+
this.id = data.id;
|
26
|
+
|
27
|
+
if ('name' in data) {
|
28
|
+
/**
|
29
|
+
* The name of the Team
|
30
|
+
* @type {string}
|
31
|
+
*/
|
32
|
+
this.name = data.name;
|
33
|
+
}
|
34
|
+
|
35
|
+
if ('icon' in data) {
|
36
|
+
/**
|
37
|
+
* The Team's icon hash
|
38
|
+
* @type {?string}
|
39
|
+
*/
|
40
|
+
this.icon = data.icon;
|
41
|
+
} else {
|
42
|
+
this.icon ??= null;
|
43
|
+
}
|
44
|
+
|
45
|
+
if ('owner_user_id' in data) {
|
46
|
+
/**
|
47
|
+
* The Team's owner id
|
48
|
+
* @type {?Snowflake}
|
49
|
+
*/
|
50
|
+
this.ownerId = data.owner_user_id;
|
51
|
+
} else {
|
52
|
+
this.ownerId ??= null;
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* The Team's members
|
56
|
+
* @type {Collection<Snowflake, TeamMember>}
|
57
|
+
*/
|
58
|
+
this.members = new Collection();
|
59
|
+
|
60
|
+
for (const memberData of data.members) {
|
61
|
+
const member = new TeamMember(this, memberData);
|
62
|
+
this.members.set(member.id, member);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* The owner of this team
|
68
|
+
* @type {?TeamMember}
|
69
|
+
* @readonly
|
70
|
+
*/
|
71
|
+
get owner() {
|
72
|
+
return this.members.get(this.ownerId) ?? null;
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* The timestamp the team was created at
|
77
|
+
* @type {number}
|
78
|
+
* @readonly
|
79
|
+
*/
|
80
|
+
get createdTimestamp() {
|
81
|
+
return SnowflakeUtil.timestampFrom(this.id);
|
82
|
+
}
|
83
|
+
|
84
|
+
/**
|
85
|
+
* The time the team was created at
|
86
|
+
* @type {Date}
|
87
|
+
* @readonly
|
88
|
+
*/
|
89
|
+
get createdAt() {
|
90
|
+
return new Date(this.createdTimestamp);
|
91
|
+
}
|
92
|
+
|
93
|
+
/**
|
94
|
+
* A link to the team's icon.
|
95
|
+
* @param {StaticImageURLOptions} [options={}] Options for the Image URL
|
96
|
+
* @returns {?string}
|
97
|
+
*/
|
98
|
+
iconURL({ format, size } = {}) {
|
99
|
+
if (!this.icon) return null;
|
100
|
+
return this.client.rest.cdn.TeamIcon(this.id, this.icon, { format, size });
|
101
|
+
}
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Invite a team member to the team
|
105
|
+
* @param {User} user The user to invite to the team
|
106
|
+
* @param {number} MFACode The mfa code
|
107
|
+
* @returns {Promise<TeamMember>}
|
108
|
+
*/
|
109
|
+
async inviteMember(user, MFACode) {
|
110
|
+
if (!(user instanceof User)) return new Error('TEAM_MEMBER_FORMAT');
|
111
|
+
const regex = /([0-9]{6})/g;
|
112
|
+
|
113
|
+
const payload = {
|
114
|
+
username: user.username,
|
115
|
+
discriminator: user.discriminator,
|
116
|
+
};
|
117
|
+
if (MFACode && !regex.test(MFACode)) return new Error('MFA_INVALID');
|
118
|
+
if (MFACode) payload.code = MFACode;
|
119
|
+
|
120
|
+
const member = await this.client.api.teams(this.id).members.post({
|
121
|
+
data: payload,
|
122
|
+
});
|
123
|
+
|
124
|
+
this.members.set(member.user.id, new TeamMember(this, member));
|
125
|
+
return this.members.get(member.user.id);
|
126
|
+
}
|
127
|
+
|
128
|
+
/**
|
129
|
+
* Remove a member from the team
|
130
|
+
* @param {Snowflake} userID The ID of the user you want to remove
|
131
|
+
* @returns {boolean}
|
132
|
+
*/
|
133
|
+
async removeMember(userID) {
|
134
|
+
await this.client.api.teams[this.id].members[userID].delete();
|
135
|
+
return this.members.delete(userID);
|
136
|
+
}
|
137
|
+
|
138
|
+
/**
|
139
|
+
* Delete this team
|
140
|
+
* @param {number} MFACode The 2fa code
|
141
|
+
* @returns {Promise<boolean>}
|
142
|
+
*/
|
143
|
+
async delete(MFACode) {
|
144
|
+
const regex = /([0-9]{6})/g;
|
145
|
+
if (!regex.test(MFACode)) return new Error('MFA_INVALID');
|
146
|
+
await this.client.api.teams[this.id].delete({ data: { code: MFACode } });
|
147
|
+
return this.client.developerPortal.teams.delete(this.id);
|
148
|
+
}
|
149
|
+
|
150
|
+
/**
|
151
|
+
* When concatenated with a string, this automatically returns the Team's name instead of the
|
152
|
+
* Team object.
|
153
|
+
* @returns {string}
|
154
|
+
* @example
|
155
|
+
* // Logs: Team name: My Team
|
156
|
+
* console.log(`Team name: ${team}`);
|
157
|
+
*/
|
158
|
+
toString() {
|
159
|
+
return this.name;
|
160
|
+
}
|
161
|
+
|
162
|
+
toJSON() {
|
163
|
+
return super.toJSON({ createdTimestamp: true });
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
module.exports = Team;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Base = require('./Base');
|
4
|
+
const { MembershipStates } = require('../util/Constants');
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Represents a Client OAuth2 Application Team Member.
|
8
|
+
* @extends {Base}
|
9
|
+
*/
|
10
|
+
class TeamMember extends Base {
|
11
|
+
constructor(team, data) {
|
12
|
+
super(team.client);
|
13
|
+
|
14
|
+
/**
|
15
|
+
* The Team this member is part of
|
16
|
+
* @type {Team}
|
17
|
+
*/
|
18
|
+
this.team = team;
|
19
|
+
|
20
|
+
this._patch(data);
|
21
|
+
}
|
22
|
+
|
23
|
+
_patch(data) {
|
24
|
+
if ('permissions' in data) {
|
25
|
+
/**
|
26
|
+
* The permissions this Team Member has with regard to the team
|
27
|
+
* @type {string[]}
|
28
|
+
*/
|
29
|
+
this.permissions = data.permissions;
|
30
|
+
}
|
31
|
+
|
32
|
+
if ('membership_state' in data) {
|
33
|
+
/**
|
34
|
+
* The permissions this Team Member has with regard to the team
|
35
|
+
* @type {MembershipState}
|
36
|
+
*/
|
37
|
+
this.membershipState = MembershipStates[data.membership_state];
|
38
|
+
}
|
39
|
+
|
40
|
+
if ('user' in data) {
|
41
|
+
/**
|
42
|
+
* The user for this Team Member
|
43
|
+
* @type {User}
|
44
|
+
*/
|
45
|
+
this.user = this.client.users._add(data.user);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* The Team Member's id
|
51
|
+
* @type {Snowflake}
|
52
|
+
* @readonly
|
53
|
+
*/
|
54
|
+
get id() {
|
55
|
+
return this.user.id;
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* When concatenated with a string, this automatically returns the team member's mention instead of the
|
60
|
+
* TeamMember object.
|
61
|
+
* @returns {string}
|
62
|
+
* @example
|
63
|
+
* // Logs: Team Member's mention: <@123456789012345678>
|
64
|
+
* console.log(`Team Member's mention: ${teamMember}`);
|
65
|
+
*/
|
66
|
+
toString() {
|
67
|
+
return this.user.toString();
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
module.exports = TeamMember;
|
@@ -0,0 +1,33 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BaseGuildTextChannel = require('./BaseGuildTextChannel');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Represents a guild text channel on Discord.
|
7
|
+
* @extends {BaseGuildTextChannel}
|
8
|
+
*/
|
9
|
+
class TextChannel extends BaseGuildTextChannel {
|
10
|
+
_patch(data) {
|
11
|
+
super._patch(data);
|
12
|
+
|
13
|
+
if ('rate_limit_per_user' in data) {
|
14
|
+
/**
|
15
|
+
* The rate limit per user (slowmode) for this channel in seconds
|
16
|
+
* @type {number}
|
17
|
+
*/
|
18
|
+
this.rateLimitPerUser = data.rate_limit_per_user;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Sets the rate limit per user (slowmode) for this channel.
|
24
|
+
* @param {number} rateLimitPerUser The new rate limit in seconds
|
25
|
+
* @param {string} [reason] Reason for changing the channel's rate limit
|
26
|
+
* @returns {Promise<TextChannel>}
|
27
|
+
*/
|
28
|
+
setRateLimitPerUser(rateLimitPerUser, reason) {
|
29
|
+
return this.edit({ rateLimitPerUser }, reason);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
module.exports = TextChannel;
|
@@ -0,0 +1,201 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const BaseMessageComponent = require('./BaseMessageComponent');
|
4
|
+
const { RangeError } = require('../errors');
|
5
|
+
const { TextInputStyles, MessageComponentTypes } = require('../util/Constants');
|
6
|
+
const Util = require('../util/Util');
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Represents a text input component in a modal
|
10
|
+
* @extends {BaseMessageComponent}
|
11
|
+
*/
|
12
|
+
|
13
|
+
class TextInputComponent extends BaseMessageComponent {
|
14
|
+
/**
|
15
|
+
* @typedef {BaseMessageComponentOptions} TextInputComponentOptions
|
16
|
+
* @property {string} [customId] A unique string to be sent in the interaction when submitted
|
17
|
+
* @property {string} [label] The text to be displayed above this text input component
|
18
|
+
* @property {number} [maxLength] Maximum length of text that can be entered
|
19
|
+
* @property {number} [minLength] Minimum length of text required to be entered
|
20
|
+
* @property {string} [placeholder] Custom placeholder text to display when no text is entered
|
21
|
+
* @property {boolean} [required] Whether or not this text input component is required
|
22
|
+
* @property {TextInputStyleResolvable} [style] The style of this text input component
|
23
|
+
* @property {string} [value] Value of this text input component
|
24
|
+
*/
|
25
|
+
|
26
|
+
/**
|
27
|
+
* @param {TextInputComponent|TextInputComponentOptions} [data={}] TextInputComponent to clone or raw data
|
28
|
+
*/
|
29
|
+
constructor(data = {}) {
|
30
|
+
super({ type: 'TEXT_INPUT' });
|
31
|
+
|
32
|
+
this.setup(data);
|
33
|
+
}
|
34
|
+
|
35
|
+
setup(data) {
|
36
|
+
/**
|
37
|
+
* A unique string to be sent in the interaction when submitted
|
38
|
+
* @type {?string}
|
39
|
+
*/
|
40
|
+
this.customId = data.custom_id ?? data.customId ?? null;
|
41
|
+
|
42
|
+
/**
|
43
|
+
* The text to be displayed above this text input component
|
44
|
+
* @type {?string}
|
45
|
+
*/
|
46
|
+
this.label = data.label ?? null;
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Maximum length of text that can be entered
|
50
|
+
* @type {?number}
|
51
|
+
*/
|
52
|
+
this.maxLength = data.max_length ?? data.maxLength ?? null;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Minimum length of text required to be entered
|
56
|
+
* @type {?string}
|
57
|
+
*/
|
58
|
+
this.minLength = data.min_length ?? data.minLength ?? null;
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Custom placeholder text to display when no text is entered
|
62
|
+
* @type {?string}
|
63
|
+
*/
|
64
|
+
this.placeholder = data.placeholder ?? null;
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Whether or not this text input component is required
|
68
|
+
* @type {?boolean}
|
69
|
+
*/
|
70
|
+
this.required = data.required ?? false;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* The style of this text input component
|
74
|
+
* @type {?TextInputStyle}
|
75
|
+
*/
|
76
|
+
this.style = data.style ? TextInputComponent.resolveStyle(data.style) : null;
|
77
|
+
|
78
|
+
/**
|
79
|
+
* Value of this text input component
|
80
|
+
* @type {?string}
|
81
|
+
*/
|
82
|
+
this.value = data.value ?? null;
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Sets the custom id of this text input component
|
87
|
+
* @param {string} customId A unique string to be sent in the interaction when submitted
|
88
|
+
* @returns {TextInputComponent}
|
89
|
+
*/
|
90
|
+
setCustomId(customId) {
|
91
|
+
this.customId = Util.verifyString(customId, RangeError, 'TEXT_INPUT_CUSTOM_ID');
|
92
|
+
return this;
|
93
|
+
}
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Sets the label of this text input component
|
97
|
+
* @param {string} label The text to be displayed above this text input component
|
98
|
+
* @returns {TextInputComponent}
|
99
|
+
*/
|
100
|
+
setLabel(label) {
|
101
|
+
this.label = Util.verifyString(label, RangeError, 'TEXT_INPUT_LABEL');
|
102
|
+
return this;
|
103
|
+
}
|
104
|
+
|
105
|
+
/**
|
106
|
+
* Sets the text input component to be required for modal submission
|
107
|
+
* @param {boolean} [required=true] Whether this text input component is required
|
108
|
+
* @returns {TextInputComponent}
|
109
|
+
*/
|
110
|
+
setRequired(required = true) {
|
111
|
+
this.required = required;
|
112
|
+
return this;
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Sets the maximum length of text input required in this text input component
|
117
|
+
* @param {number} maxLength Maximum length of text to be required
|
118
|
+
* @returns {TextInputComponent}
|
119
|
+
*/
|
120
|
+
setMaxLength(maxLength) {
|
121
|
+
this.maxLength = maxLength;
|
122
|
+
return this;
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Sets the minimum length of text input required in this text input component
|
127
|
+
* @param {number} minLength Minimum length of text to be required
|
128
|
+
* @returns {TextInputComponent}
|
129
|
+
*/
|
130
|
+
setMinLength(minLength) {
|
131
|
+
this.minLength = minLength;
|
132
|
+
return this;
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Sets the placeholder of this text input component
|
137
|
+
* @param {string} placeholder Custom placeholder text to display when no text is entered
|
138
|
+
* @returns {TextInputComponent}
|
139
|
+
*/
|
140
|
+
setPlaceholder(placeholder) {
|
141
|
+
this.placeholder = Util.verifyString(placeholder, RangeError, 'TEXT_INPUT_PLACEHOLDER');
|
142
|
+
return this;
|
143
|
+
}
|
144
|
+
|
145
|
+
/**
|
146
|
+
* Sets the style of this text input component
|
147
|
+
* @param {TextInputStyleResolvable} style The style of this text input component
|
148
|
+
* @returns {TextInputComponent}
|
149
|
+
*/
|
150
|
+
setStyle(style) {
|
151
|
+
this.style = TextInputComponent.resolveStyle(style);
|
152
|
+
return this;
|
153
|
+
}
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Sets the value of this text input component
|
157
|
+
* @param {string} value Value of this text input component
|
158
|
+
* @returns {TextInputComponent}
|
159
|
+
*/
|
160
|
+
setValue(value) {
|
161
|
+
this.value = Util.verifyString(value, RangeError, 'TEXT_INPUT_VALUE');
|
162
|
+
return this;
|
163
|
+
}
|
164
|
+
|
165
|
+
/**
|
166
|
+
* Transforms the text input component into a plain object
|
167
|
+
* @returns {APITextInput} The raw data of this text input component
|
168
|
+
*/
|
169
|
+
toJSON() {
|
170
|
+
return {
|
171
|
+
custom_id: this.customId,
|
172
|
+
label: this.label,
|
173
|
+
max_length: this.maxLength,
|
174
|
+
min_length: this.minLength,
|
175
|
+
placeholder: this.placeholder,
|
176
|
+
required: this.required,
|
177
|
+
style: TextInputStyles[this.style],
|
178
|
+
type: MessageComponentTypes[this.type],
|
179
|
+
value: this.value,
|
180
|
+
};
|
181
|
+
}
|
182
|
+
|
183
|
+
/**
|
184
|
+
* Data that can be resolved to a TextInputStyle. This can be
|
185
|
+
* * TextInputStyle
|
186
|
+
* * number
|
187
|
+
* @typedef {number|TextInputStyle} TextInputStyleResolvable
|
188
|
+
*/
|
189
|
+
|
190
|
+
/**
|
191
|
+
* Resolves the style of a text input component
|
192
|
+
* @param {TextInputStyleResolvable} style The style to resolve
|
193
|
+
* @returns {TextInputStyle}
|
194
|
+
* @private
|
195
|
+
*/
|
196
|
+
static resolveStyle(style) {
|
197
|
+
return typeof style === 'string' ? style : TextInputStyles[style];
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|
201
|
+
module.exports = TextInputComponent;
|