summaryrefslogtreecommitdiff
path: root/node_modules/discord.js/src/util/Constants.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/discord.js/src/util/Constants.js')
-rw-r--r--node_modules/discord.js/src/util/Constants.js230
1 files changed, 230 insertions, 0 deletions
diff --git a/node_modules/discord.js/src/util/Constants.js b/node_modules/discord.js/src/util/Constants.js
new file mode 100644
index 0000000..c2d3da9
--- /dev/null
+++ b/node_modules/discord.js/src/util/Constants.js
@@ -0,0 +1,230 @@
+'use strict';
+
+const { ChannelType, MessageType, ComponentType, ImageFormat, StickerFormatType } = require('discord-api-types/v10');
+
+/**
+ * Max bulk deletable message age
+ * @typedef {number} MaxBulkDeletableMessageAge
+ */
+exports.MaxBulkDeletableMessageAge = 1_209_600_000;
+
+/**
+ * The name of an item to be swept in Sweepers
+ * * `autoModerationRules`
+ * * `applicationCommands` - both global and guild commands
+ * * `bans`
+ * * `emojis`
+ * * `invites` - accepts the `lifetime` property, using it will sweep based on expires timestamp
+ * * `guildMembers`
+ * * `messages` - accepts the `lifetime` property, using it will sweep based on edited or created timestamp
+ * * `presences`
+ * * `reactions`
+ * * `stageInstances`
+ * * `stickers`
+ * * `threadMembers`
+ * * `threads` - accepts the `lifetime` property, using it will sweep archived threads based on archived timestamp
+ * * `users`
+ * * `voiceStates`
+ * @typedef {string} SweeperKey
+ */
+exports.SweeperKeys = [
+ 'autoModerationRules',
+ 'applicationCommands',
+ 'bans',
+ 'emojis',
+ 'invites',
+ 'guildMembers',
+ 'messages',
+ 'presences',
+ 'reactions',
+ 'stageInstances',
+ 'stickers',
+ 'threadMembers',
+ 'threads',
+ 'users',
+ 'voiceStates',
+];
+
+/**
+ * The types of messages that are not `System`. The available types are:
+ * * {@link MessageType.Default}
+ * * {@link MessageType.Reply}
+ * * {@link MessageType.ChatInputCommand}
+ * * {@link MessageType.ContextMenuCommand}
+ * @typedef {MessageType[]} NonSystemMessageTypes
+ */
+exports.NonSystemMessageTypes = [
+ MessageType.Default,
+ MessageType.Reply,
+ MessageType.ChatInputCommand,
+ MessageType.ContextMenuCommand,
+];
+
+/**
+ * The guild channels that are text-based.
+ * * TextChannel
+ * * NewsChannel
+ * * ThreadChannel
+ * * VoiceChannel
+ * * StageChannel
+ * @typedef {TextChannel|NewsChannel|ThreadChannel|VoiceChannel|StageChannel} GuildTextBasedChannel
+ */
+
+/**
+ * The types of guild channels that are text-based. The available types are:
+ * * {@link ChannelType.GuildText}
+ * * {@link ChannelType.GuildAnnouncement}
+ * * {@link ChannelType.AnnouncementThread}
+ * * {@link ChannelType.PublicThread}
+ * * {@link ChannelType.PrivateThread}
+ * * {@link ChannelType.GuildVoice}
+ * * {@link ChannelType.GuildStageVoice}
+ * @typedef {ChannelType[]} GuildTextBasedChannelTypes
+ */
+exports.GuildTextBasedChannelTypes = [
+ ChannelType.GuildText,
+ ChannelType.GuildAnnouncement,
+ ChannelType.AnnouncementThread,
+ ChannelType.PublicThread,
+ ChannelType.PrivateThread,
+ ChannelType.GuildVoice,
+ ChannelType.GuildStageVoice,
+];
+
+/**
+ * The channels that are text-based.
+ * * DMChannel
+ * * GuildTextBasedChannel
+ * @typedef {DMChannel|GuildTextBasedChannel} TextBasedChannels
+ */
+
+/**
+ * Data that resolves to give a text-based channel. This can be:
+ * * A text-based channel
+ * * A snowflake
+ * @typedef {TextBasedChannels|Snowflake} TextBasedChannelsResolvable
+ */
+
+/**
+ * The types of channels that are text-based. The available types are:
+ * * {@link ChannelType.DM}
+ * * {@link ChannelType.GuildText}
+ * * {@link ChannelType.GuildAnnouncement}
+ * * {@link ChannelType.AnnouncementThread}
+ * * {@link ChannelType.PublicThread}
+ * * {@link ChannelType.PrivateThread}
+ * * {@link ChannelType.GuildVoice}
+ * * {@link ChannelType.GuildStageVoice}
+ * @typedef {ChannelType[]} TextBasedChannelTypes
+ */
+exports.TextBasedChannelTypes = [...exports.GuildTextBasedChannelTypes, ChannelType.DM];
+
+/**
+ * The types of channels that are threads. The available types are:
+ * * {@link ChannelType.AnnouncementThread}
+ * * {@link ChannelType.PublicThread}
+ * * {@link ChannelType.PrivateThread}
+ * @typedef {ChannelType[]} ThreadChannelTypes
+ */
+exports.ThreadChannelTypes = [ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread];
+
+/**
+ * The types of channels that are voice-based. The available types are:
+ * * {@link ChannelType.GuildVoice}
+ * * {@link ChannelType.GuildStageVoice}
+ * @typedef {ChannelType[]} VoiceBasedChannelTypes
+ */
+exports.VoiceBasedChannelTypes = [ChannelType.GuildVoice, ChannelType.GuildStageVoice];
+
+/**
+ * The types of select menus. The available types are:
+ * * {@link ComponentType.StringSelect}
+ * * {@link ComponentType.UserSelect}
+ * * {@link ComponentType.RoleSelect}
+ * * {@link ComponentType.MentionableSelect}
+ * * {@link ComponentType.ChannelSelect}
+ * @typedef {ComponentType[]} SelectMenuTypes
+ */
+exports.SelectMenuTypes = [
+ ComponentType.StringSelect,
+ ComponentType.UserSelect,
+ ComponentType.RoleSelect,
+ ComponentType.MentionableSelect,
+ ComponentType.ChannelSelect,
+];
+
+/**
+ * The types of messages that can be deleted. The available types are:
+ * * {@link MessageType.AutoModerationAction}
+ * * {@link MessageType.ChannelFollowAdd}
+ * * {@link MessageType.ChannelPinnedMessage}
+ * * {@link MessageType.ChatInputCommand}
+ * * {@link MessageType.ContextMenuCommand}
+ * * {@link MessageType.Default}
+ * * {@link MessageType.GuildBoost}
+ * * {@link MessageType.GuildBoostTier1}
+ * * {@link MessageType.GuildBoostTier2}
+ * * {@link MessageType.GuildBoostTier3}
+ * * {@link MessageType.GuildInviteReminder}
+ * * {@link MessageType.InteractionPremiumUpsell}
+ * * {@link MessageType.Reply}
+ * * {@link MessageType.RoleSubscriptionPurchase}
+ * * {@link MessageType.StageEnd}
+ * * {@link MessageType.StageRaiseHand}
+ * * {@link MessageType.StageSpeaker}
+ * * {@link MessageType.StageStart}
+ * * {@link MessageType.StageTopic}
+ * * {@link MessageType.ThreadCreated}
+ * * {@link MessageType.UserJoin}
+ * @typedef {MessageType[]} DeletableMessageTypes
+ */
+exports.DeletableMessageTypes = [
+ MessageType.AutoModerationAction,
+ MessageType.ChannelFollowAdd,
+ MessageType.ChannelPinnedMessage,
+ MessageType.ChatInputCommand,
+ MessageType.ContextMenuCommand,
+ MessageType.Default,
+ MessageType.GuildBoost,
+ MessageType.GuildBoostTier1,
+ MessageType.GuildBoostTier2,
+ MessageType.GuildBoostTier3,
+ MessageType.GuildInviteReminder,
+ MessageType.InteractionPremiumUpsell,
+ MessageType.Reply,
+ MessageType.RoleSubscriptionPurchase,
+ MessageType.StageEnd,
+ MessageType.StageRaiseHand,
+ MessageType.StageSpeaker,
+ MessageType.StageStart,
+ MessageType.StageTopic,
+ MessageType.ThreadCreated,
+ MessageType.UserJoin,
+];
+
+/**
+ * A mapping between sticker formats and their respective image formats.
+ * * {@link StickerFormatType.PNG} -> {@link ImageFormat.PNG}
+ * * {@link StickerFormatType.APNG} -> {@link ImageFormat.PNG}
+ * * {@link StickerFormatType.Lottie} -> {@link ImageFormat.Lottie}
+ * * {@link StickerFormatType.GIF} -> {@link ImageFormat.GIF}
+ * @typedef {Object} StickerFormatExtensionMap
+ */
+exports.StickerFormatExtensionMap = {
+ [StickerFormatType.PNG]: ImageFormat.PNG,
+ [StickerFormatType.APNG]: ImageFormat.PNG,
+ [StickerFormatType.Lottie]: ImageFormat.Lottie,
+ [StickerFormatType.GIF]: ImageFormat.GIF,
+};
+
+/**
+ * @typedef {Object} Constants Constants that can be used in an enum or object-like way.
+ * @property {number} MaxBulkDeletableMessageAge Max bulk deletable message age
+ * @property {SweeperKey[]} SweeperKeys The possible names of items that can be swept in sweepers
+ * @property {NonSystemMessageTypes} NonSystemMessageTypes The types of messages that are not deemed a system type
+ * @property {TextBasedChannelTypes} TextBasedChannelTypes The types of channels that are text-based
+ * @property {ThreadChannelTypes} ThreadChannelTypes The types of channels that are threads
+ * @property {VoiceBasedChannelTypes} VoiceBasedChannelTypes The types of channels that are voice-based
+ * @property {SelectMenuTypes} SelectMenuTypes The types of components that are select menus.
+ * @property {Object} StickerFormatExtensionMap A mapping between sticker formats and their respective image formats.
+ */