@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.
Files changed (317) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +133 -0
  3. package/package.json +82 -0
  4. package/src/client/BaseClient.js +83 -0
  5. package/src/client/Client.js +591 -0
  6. package/src/client/WebhookClient.js +103 -0
  7. package/src/client/actions/Action.js +119 -0
  8. package/src/client/actions/ActionsManager.js +79 -0
  9. package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
  10. package/src/client/actions/AutoModerationActionExecution.js +26 -0
  11. package/src/client/actions/AutoModerationRuleCreate.js +27 -0
  12. package/src/client/actions/AutoModerationRuleDelete.js +31 -0
  13. package/src/client/actions/AutoModerationRuleUpdate.js +29 -0
  14. package/src/client/actions/ChannelCreate.js +23 -0
  15. package/src/client/actions/ChannelDelete.js +23 -0
  16. package/src/client/actions/ChannelUpdate.js +33 -0
  17. package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
  18. package/src/client/actions/GuildBanAdd.js +20 -0
  19. package/src/client/actions/GuildBanRemove.js +25 -0
  20. package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
  21. package/src/client/actions/GuildDelete.js +44 -0
  22. package/src/client/actions/GuildEmojiCreate.js +20 -0
  23. package/src/client/actions/GuildEmojiDelete.js +19 -0
  24. package/src/client/actions/GuildEmojiUpdate.js +20 -0
  25. package/src/client/actions/GuildEmojisUpdate.js +34 -0
  26. package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
  27. package/src/client/actions/GuildMemberRemove.js +31 -0
  28. package/src/client/actions/GuildMemberUpdate.js +44 -0
  29. package/src/client/actions/GuildRoleCreate.js +25 -0
  30. package/src/client/actions/GuildRoleDelete.js +29 -0
  31. package/src/client/actions/GuildRoleUpdate.js +39 -0
  32. package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
  33. package/src/client/actions/GuildScheduledEventCreate.js +27 -0
  34. package/src/client/actions/GuildScheduledEventDelete.js +31 -0
  35. package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
  36. package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
  37. package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
  38. package/src/client/actions/GuildStickerCreate.js +20 -0
  39. package/src/client/actions/GuildStickerDelete.js +19 -0
  40. package/src/client/actions/GuildStickerUpdate.js +20 -0
  41. package/src/client/actions/GuildStickersUpdate.js +34 -0
  42. package/src/client/actions/GuildUpdate.js +33 -0
  43. package/src/client/actions/InteractionCreate.js +101 -0
  44. package/src/client/actions/InviteCreate.js +28 -0
  45. package/src/client/actions/InviteDelete.js +30 -0
  46. package/src/client/actions/MessageCreate.js +37 -0
  47. package/src/client/actions/MessageDelete.js +32 -0
  48. package/src/client/actions/MessageDeleteBulk.js +47 -0
  49. package/src/client/actions/MessageReactionAdd.js +55 -0
  50. package/src/client/actions/MessageReactionRemove.js +45 -0
  51. package/src/client/actions/MessageReactionRemoveAll.js +33 -0
  52. package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
  53. package/src/client/actions/MessageUpdate.js +26 -0
  54. package/src/client/actions/PresenceUpdate.js +42 -0
  55. package/src/client/actions/StageInstanceCreate.js +28 -0
  56. package/src/client/actions/StageInstanceDelete.js +31 -0
  57. package/src/client/actions/StageInstanceUpdate.js +30 -0
  58. package/src/client/actions/ThreadCreate.js +24 -0
  59. package/src/client/actions/ThreadDelete.js +26 -0
  60. package/src/client/actions/ThreadListSync.js +60 -0
  61. package/src/client/actions/ThreadMemberUpdate.js +30 -0
  62. package/src/client/actions/ThreadMembersUpdate.js +47 -0
  63. package/src/client/actions/TypingStart.js +29 -0
  64. package/src/client/actions/UserUpdate.js +36 -0
  65. package/src/client/actions/VoiceStateUpdate.js +43 -0
  66. package/src/client/actions/WebhooksUpdate.js +20 -0
  67. package/src/client/voice/ClientVoiceManager.js +44 -0
  68. package/src/client/websocket/WebSocketManager.js +393 -0
  69. package/src/client/websocket/WebSocketShard.js +231 -0
  70. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  71. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  72. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  73. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  74. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  75. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  76. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  77. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  78. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  79. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  80. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  81. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  82. package/src/client/websocket/handlers/GUILD_CREATE.js +26 -0
  83. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  84. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  85. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  86. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
  87. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  88. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  89. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  90. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  91. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  92. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  93. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  94. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  95. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  96. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  97. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  98. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  99. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  100. package/src/client/websocket/handlers/INTERACTION_CREATE.js +5 -0
  101. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  102. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  103. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  104. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  105. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  106. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  107. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  108. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  109. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  110. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  111. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  112. package/src/client/websocket/handlers/READY.js +27 -0
  113. package/src/client/websocket/handlers/RESUMED.js +14 -0
  114. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  115. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  116. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  117. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  118. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  119. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  120. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  121. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  122. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  123. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  124. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  125. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
  126. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  127. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  128. package/src/client/websocket/handlers/index.js +64 -0
  129. package/src/errors/DJSError.js +48 -0
  130. package/src/errors/ErrorCodes.js +319 -0
  131. package/src/errors/Messages.js +170 -0
  132. package/src/errors/index.js +5 -0
  133. package/src/index.js +213 -0
  134. package/src/managers/ApplicationCommandManager.js +263 -0
  135. package/src/managers/ApplicationCommandPermissionsManager.js +434 -0
  136. package/src/managers/AutoModerationRuleManager.js +288 -0
  137. package/src/managers/BaseGuildEmojiManager.js +80 -0
  138. package/src/managers/BaseManager.js +19 -0
  139. package/src/managers/CachedManager.js +57 -0
  140. package/src/managers/CategoryChannelChildManager.js +77 -0
  141. package/src/managers/ChannelManager.js +128 -0
  142. package/src/managers/DataManager.js +61 -0
  143. package/src/managers/GuildApplicationCommandManager.js +28 -0
  144. package/src/managers/GuildBanManager.js +204 -0
  145. package/src/managers/GuildChannelManager.js +494 -0
  146. package/src/managers/GuildEmojiManager.js +174 -0
  147. package/src/managers/GuildEmojiRoleManager.js +118 -0
  148. package/src/managers/GuildForumThreadManager.js +83 -0
  149. package/src/managers/GuildInviteManager.js +213 -0
  150. package/src/managers/GuildManager.js +283 -0
  151. package/src/managers/GuildMemberManager.js +540 -0
  152. package/src/managers/GuildMemberRoleManager.js +204 -0
  153. package/src/managers/GuildScheduledEventManager.js +297 -0
  154. package/src/managers/GuildStickerManager.js +182 -0
  155. package/src/managers/GuildTextThreadManager.js +91 -0
  156. package/src/managers/MessageManager.js +259 -0
  157. package/src/managers/PermissionOverwriteManager.js +168 -0
  158. package/src/managers/PresenceManager.js +58 -0
  159. package/src/managers/ReactionManager.js +68 -0
  160. package/src/managers/ReactionUserManager.js +77 -0
  161. package/src/managers/RoleManager.js +360 -0
  162. package/src/managers/StageInstanceManager.js +154 -0
  163. package/src/managers/ThreadManager.js +204 -0
  164. package/src/managers/ThreadMemberManager.js +182 -0
  165. package/src/managers/UserManager.js +139 -0
  166. package/src/managers/VoiceStateManager.js +37 -0
  167. package/src/sharding/Shard.js +457 -0
  168. package/src/sharding/ShardClientUtil.js +285 -0
  169. package/src/sharding/ShardingManager.js +326 -0
  170. package/src/structures/ActionRow.js +46 -0
  171. package/src/structures/ActionRowBuilder.js +35 -0
  172. package/src/structures/AnonymousGuild.js +97 -0
  173. package/src/structures/ApplicationCommand.js +606 -0
  174. package/src/structures/ApplicationRoleConnectionMetadata.js +46 -0
  175. package/src/structures/Attachment.js +140 -0
  176. package/src/structures/AttachmentBuilder.js +116 -0
  177. package/src/structures/AutoModerationActionExecution.js +116 -0
  178. package/src/structures/AutoModerationRule.js +284 -0
  179. package/src/structures/AutocompleteInteraction.js +97 -0
  180. package/src/structures/Base.js +43 -0
  181. package/src/structures/BaseChannel.js +160 -0
  182. package/src/structures/BaseGuild.js +119 -0
  183. package/src/structures/BaseGuildEmoji.js +56 -0
  184. package/src/structures/BaseGuildTextChannel.js +186 -0
  185. package/src/structures/BaseGuildVoiceChannel.js +234 -0
  186. package/src/structures/BaseInteraction.js +344 -0
  187. package/src/structures/BaseSelectMenuComponent.js +56 -0
  188. package/src/structures/ButtonBuilder.js +44 -0
  189. package/src/structures/ButtonComponent.js +65 -0
  190. package/src/structures/ButtonInteraction.js +11 -0
  191. package/src/structures/CategoryChannel.js +45 -0
  192. package/src/structures/ChannelSelectMenuBuilder.js +31 -0
  193. package/src/structures/ChannelSelectMenuComponent.js +20 -0
  194. package/src/structures/ChannelSelectMenuInteraction.js +33 -0
  195. package/src/structures/ChatInputCommandInteraction.js +41 -0
  196. package/src/structures/ClientApplication.js +193 -0
  197. package/src/structures/ClientPresence.js +82 -0
  198. package/src/structures/ClientUser.js +185 -0
  199. package/src/structures/CommandInteraction.js +224 -0
  200. package/src/structures/CommandInteractionOptionResolver.js +308 -0
  201. package/src/structures/Component.js +47 -0
  202. package/src/structures/ContextMenuCommandInteraction.js +64 -0
  203. package/src/structures/DMChannel.js +129 -0
  204. package/src/structures/DirectoryChannel.js +36 -0
  205. package/src/structures/Embed.js +220 -0
  206. package/src/structures/EmbedBuilder.js +41 -0
  207. package/src/structures/Emoji.js +108 -0
  208. package/src/structures/ForumChannel.js +264 -0
  209. package/src/structures/Guild.js +1361 -0
  210. package/src/structures/GuildAuditLogs.js +91 -0
  211. package/src/structures/GuildAuditLogsEntry.js +527 -0
  212. package/src/structures/GuildBan.js +59 -0
  213. package/src/structures/GuildChannel.js +457 -0
  214. package/src/structures/GuildEmoji.js +148 -0
  215. package/src/structures/GuildMember.js +518 -0
  216. package/src/structures/GuildPreview.js +193 -0
  217. package/src/structures/GuildPreviewEmoji.js +27 -0
  218. package/src/structures/GuildScheduledEvent.js +439 -0
  219. package/src/structures/GuildTemplate.js +241 -0
  220. package/src/structures/Integration.js +220 -0
  221. package/src/structures/IntegrationApplication.js +85 -0
  222. package/src/structures/InteractionCollector.js +263 -0
  223. package/src/structures/InteractionResponse.js +102 -0
  224. package/src/structures/InteractionWebhook.js +59 -0
  225. package/src/structures/Invite.js +322 -0
  226. package/src/structures/InviteGuild.js +22 -0
  227. package/src/structures/InviteStageInstance.js +87 -0
  228. package/src/structures/MentionableSelectMenuBuilder.js +32 -0
  229. package/src/structures/MentionableSelectMenuComponent.js +11 -0
  230. package/src/structures/MentionableSelectMenuInteraction.js +71 -0
  231. package/src/structures/Message.js +997 -0
  232. package/src/structures/MessageCollector.js +146 -0
  233. package/src/structures/MessageComponentInteraction.js +107 -0
  234. package/src/structures/MessageContextMenuCommandInteraction.js +20 -0
  235. package/src/structures/MessageMentions.js +297 -0
  236. package/src/structures/MessagePayload.js +299 -0
  237. package/src/structures/MessageReaction.js +142 -0
  238. package/src/structures/ModalBuilder.js +34 -0
  239. package/src/structures/ModalSubmitFields.js +55 -0
  240. package/src/structures/ModalSubmitInteraction.js +121 -0
  241. package/src/structures/NewsChannel.js +32 -0
  242. package/src/structures/OAuth2Guild.js +28 -0
  243. package/src/structures/PartialGroupDMChannel.js +60 -0
  244. package/src/structures/PermissionOverwrites.js +196 -0
  245. package/src/structures/Presence.js +372 -0
  246. package/src/structures/ReactionCollector.js +229 -0
  247. package/src/structures/ReactionEmoji.js +31 -0
  248. package/src/structures/Role.js +458 -0
  249. package/src/structures/RoleSelectMenuBuilder.js +31 -0
  250. package/src/structures/RoleSelectMenuComponent.js +11 -0
  251. package/src/structures/RoleSelectMenuInteraction.js +33 -0
  252. package/src/structures/SelectMenuBuilder.js +26 -0
  253. package/src/structures/SelectMenuComponent.js +26 -0
  254. package/src/structures/SelectMenuInteraction.js +26 -0
  255. package/src/structures/SelectMenuOptionBuilder.js +26 -0
  256. package/src/structures/StageChannel.js +112 -0
  257. package/src/structures/StageInstance.js +167 -0
  258. package/src/structures/Sticker.js +272 -0
  259. package/src/structures/StickerPack.js +95 -0
  260. package/src/structures/StringSelectMenuBuilder.js +79 -0
  261. package/src/structures/StringSelectMenuComponent.js +20 -0
  262. package/src/structures/StringSelectMenuInteraction.js +21 -0
  263. package/src/structures/StringSelectMenuOptionBuilder.js +49 -0
  264. package/src/structures/Team.js +117 -0
  265. package/src/structures/TeamMember.js +70 -0
  266. package/src/structures/TextChannel.js +33 -0
  267. package/src/structures/TextInputBuilder.js +31 -0
  268. package/src/structures/TextInputComponent.js +29 -0
  269. package/src/structures/ThreadChannel.js +606 -0
  270. package/src/structures/ThreadMember.js +113 -0
  271. package/src/structures/Typing.js +74 -0
  272. package/src/structures/User.js +331 -0
  273. package/src/structures/UserContextMenuCommandInteraction.js +29 -0
  274. package/src/structures/UserSelectMenuBuilder.js +31 -0
  275. package/src/structures/UserSelectMenuComponent.js +11 -0
  276. package/src/structures/UserSelectMenuInteraction.js +51 -0
  277. package/src/structures/VoiceChannel.js +96 -0
  278. package/src/structures/VoiceRegion.js +46 -0
  279. package/src/structures/VoiceState.js +303 -0
  280. package/src/structures/Webhook.js +481 -0
  281. package/src/structures/WelcomeChannel.js +60 -0
  282. package/src/structures/WelcomeScreen.js +49 -0
  283. package/src/structures/Widget.js +88 -0
  284. package/src/structures/WidgetMember.js +99 -0
  285. package/src/structures/interfaces/Application.js +108 -0
  286. package/src/structures/interfaces/Collector.js +335 -0
  287. package/src/structures/interfaces/InteractionResponses.js +320 -0
  288. package/src/structures/interfaces/TextBasedChannel.js +413 -0
  289. package/src/util/APITypes.js +456 -0
  290. package/src/util/ActivityFlagsBitField.js +26 -0
  291. package/src/util/ApplicationFlagsBitField.js +26 -0
  292. package/src/util/BitField.js +176 -0
  293. package/src/util/ChannelFlagsBitField.js +41 -0
  294. package/src/util/Channels.js +150 -0
  295. package/src/util/Colors.js +73 -0
  296. package/src/util/Components.js +152 -0
  297. package/src/util/Constants.js +230 -0
  298. package/src/util/DataResolver.js +140 -0
  299. package/src/util/Enums.js +13 -0
  300. package/src/util/Events.js +160 -0
  301. package/src/util/Formatters.js +413 -0
  302. package/src/util/GuildMemberFlagsBitField.js +41 -0
  303. package/src/util/IntentsBitField.js +34 -0
  304. package/src/util/LimitedCollection.js +68 -0
  305. package/src/util/MessageFlagsBitField.js +32 -0
  306. package/src/util/Options.js +216 -0
  307. package/src/util/Partials.js +44 -0
  308. package/src/util/PermissionsBitField.js +104 -0
  309. package/src/util/ShardEvents.js +27 -0
  310. package/src/util/Status.js +33 -0
  311. package/src/util/Sweepers.js +467 -0
  312. package/src/util/SystemChannelFlagsBitField.js +43 -0
  313. package/src/util/ThreadMemberFlagsBitField.js +31 -0
  314. package/src/util/Transformers.js +36 -0
  315. package/src/util/UserFlagsBitField.js +32 -0
  316. package/src/util/Util.js +394 -0
  317. package/src/util/WebSocketShardEvents.js +25 -0
@@ -0,0 +1,413 @@
1
+ 'use strict';
2
+
3
+ const { deprecate } = require('node:util');
4
+ const {
5
+ blockQuote,
6
+ bold,
7
+ channelMention,
8
+ codeBlock,
9
+ formatEmoji,
10
+ hideLinkEmbed,
11
+ hyperlink,
12
+ inlineCode,
13
+ italic,
14
+ quote,
15
+ roleMention,
16
+ spoiler,
17
+ strikethrough,
18
+ time,
19
+ TimestampStyles,
20
+ underscore,
21
+ userMention,
22
+ } = require('@discordjs/builders');
23
+
24
+ /**
25
+ * Formats an application command name and id into an application command mention.
26
+ * @method chatInputApplicationCommandMention
27
+ * @param {string} commandName The name of the application command
28
+ * @param {string|Snowflake} subcommandGroupOrSubOrId
29
+ * The subcommand group name, subcommand name, or application command id
30
+ * @param {string|Snowflake} [subcommandNameOrId] The subcommand name or application command id
31
+ * @param {string} [commandId] The id of the application command
32
+ * @returns {string}
33
+ */
34
+
35
+ /**
36
+ * Wraps the content inside a code block with an optional language.
37
+ * @method codeBlock
38
+ * @param {string} contentOrLanguage The language to use or content if a second parameter isn't provided
39
+ * @param {string} [content] The content to wrap
40
+ * @returns {string}
41
+ */
42
+
43
+ /**
44
+ * Wraps the content inside \`backticks\`, which formats it as inline code.
45
+ * @method inlineCode
46
+ * @param {string} content The content to wrap
47
+ * @returns {string}
48
+ */
49
+
50
+ /**
51
+ * Formats the content into italic text.
52
+ * @method italic
53
+ * @param {string} content The content to wrap
54
+ * @returns {string}
55
+ */
56
+
57
+ /**
58
+ * Formats the content into bold text.
59
+ * @method bold
60
+ * @param {string} content The content to wrap
61
+ * @returns {string}
62
+ */
63
+
64
+ /**
65
+ * Formats the content into underscored text.
66
+ * @method underscore
67
+ * @param {string} content The content to wrap
68
+ * @returns {string}
69
+ */
70
+
71
+ /**
72
+ * Formats the content into strike-through text.
73
+ * @method strikethrough
74
+ * @param {string} content The content to wrap
75
+ * @returns {string}
76
+ */
77
+
78
+ /**
79
+ * Formats the content into a quote.
80
+ * <info>This needs to be at the start of the line for Discord to format it.</info>
81
+ * @method quote
82
+ * @param {string} content The content to wrap
83
+ * @returns {string}
84
+ */
85
+
86
+ /**
87
+ * Formats the content into a block quote.
88
+ * <info>This needs to be at the start of the line for Discord to format it.</info>
89
+ * @method blockQuote
90
+ * @param {string} content The content to wrap
91
+ * @returns {string}
92
+ */
93
+
94
+ /**
95
+ * Wraps the URL into `<>`, which stops it from embedding.
96
+ * @method hideLinkEmbed
97
+ * @param {string} content The content to wrap
98
+ * @returns {string}
99
+ */
100
+
101
+ /**
102
+ * Formats the content and the URL into a masked URL with an optional title.
103
+ * @method hyperlink
104
+ * @param {string} content The content to display
105
+ * @param {string} url The URL the content links to
106
+ * @param {string} [title] The title shown when hovering on the masked link
107
+ * @returns {string}
108
+ */
109
+
110
+ /**
111
+ * Formats the content into spoiler text.
112
+ * @method spoiler
113
+ * @param {string} content The content to spoiler
114
+ * @returns {string}
115
+ */
116
+
117
+ /**
118
+ * Formats a user id into a user mention.
119
+ * @method userMention
120
+ * @param {Snowflake} userId The user id to format
121
+ * @returns {string}
122
+ */
123
+
124
+ /**
125
+ * Formats a channel id into a channel mention.
126
+ * @method channelMention
127
+ * @param {Snowflake} channelId The channel id to format
128
+ * @returns {string}
129
+ */
130
+
131
+ /**
132
+ * Formats a role id into a role mention.
133
+ * @method roleMention
134
+ * @param {Snowflake} roleId The role id to format
135
+ * @returns {string}
136
+ */
137
+
138
+ /**
139
+ * Formats an emoji id into a fully qualified emoji identifier.
140
+ * @method formatEmoji
141
+ * @param {Snowflake} emojiId The emoji id to format
142
+ * @param {boolean} [animated=false] Whether the emoji is animated
143
+ * @returns {string}
144
+ */
145
+
146
+ /**
147
+ * Formats a channel link for a channel.
148
+ * @method channelLink
149
+ * @param {Snowflake} channelId The id of the channel
150
+ * @param {Snowflake} [guildId] The id of the guild
151
+ * @returns {string}
152
+ */
153
+
154
+ /**
155
+ * Formats a message link for a channel.
156
+ * @method messageLink
157
+ * @param {Snowflake} channelId The id of the channel
158
+ * @param {Snowflake} messageId The id of the message
159
+ * @param {Snowflake} [guildId] The id of the guild
160
+ * @returns {string}
161
+ */
162
+
163
+ /**
164
+ * A message formatting timestamp style, as defined in
165
+ * [here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).
166
+ * * `t` Short time format, consisting of hours and minutes, e.g. 16:20.
167
+ * * `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.
168
+ * * `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.
169
+ * * `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.
170
+ * * `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.
171
+ * * `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.
172
+ * * `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.
173
+ * @typedef {string} TimestampStylesString
174
+ */
175
+
176
+ /**
177
+ * Formats a date into a short date-time string.
178
+ * @method time
179
+ * @param {number|Date} [date] The date to format
180
+ * @param {TimestampStylesString} [style] The style to use
181
+ * @returns {string}
182
+ */
183
+
184
+ /**
185
+ * Contains various Discord-specific functions for formatting messages.
186
+ * @deprecated This class is redundant as all methods of the class can be imported from discord.js directly.
187
+ */
188
+ class Formatters extends null {
189
+ /**
190
+ * Formats the content into a block quote.
191
+ * <info>This needs to be at the start of the line for Discord to format it.</info>
192
+ * @method blockQuote
193
+ * @memberof Formatters
194
+ * @param {string} content The content to wrap
195
+ * @returns {string}
196
+ * @deprecated Import this method directly from discord.js instead.
197
+ */
198
+ static blockQuote = deprecate(
199
+ blockQuote,
200
+ 'Formatters.blockQuote() is deprecated. Import this method directly from discord.js instead.',
201
+ );
202
+
203
+ /**
204
+ * Formats the content into bold text.
205
+ * @method bold
206
+ * @memberof Formatters
207
+ * @param {string} content The content to wrap
208
+ * @returns {string}
209
+ * @deprecated Import this method directly from discord.js instead.
210
+ */
211
+ static bold = deprecate(
212
+ bold,
213
+ 'Formatters.bold() is deprecated. Import this method directly from discord.js instead.',
214
+ );
215
+
216
+ /**
217
+ * Formats a channel id into a channel mention.
218
+ * @method channelMention
219
+ * @memberof Formatters
220
+ * @param {Snowflake} channelId The channel id to format
221
+ * @returns {string}
222
+ * @deprecated Import this method directly from discord.js instead.
223
+ */
224
+ static channelMention = deprecate(
225
+ channelMention,
226
+ 'Formatters.channelMention() is deprecated. Import this method directly from discord.js instead.',
227
+ );
228
+
229
+ /**
230
+ * Wraps the content inside a code block with an optional language.
231
+ * @method codeBlock
232
+ * @memberof Formatters
233
+ * @param {string} contentOrLanguage The language to use or content if a second parameter isn't provided
234
+ * @param {string} [content] The content to wrap
235
+ * @returns {string}
236
+ * @deprecated Import this method directly from discord.js instead.
237
+ */
238
+ static codeBlock = deprecate(
239
+ codeBlock,
240
+ 'Formatters.codeBlock() is deprecated. Import this method directly from discord.js instead.',
241
+ );
242
+
243
+ /**
244
+ * Formats an emoji id into a fully qualified emoji identifier.
245
+ * @method formatEmoji
246
+ * @memberof Formatters
247
+ * @param {string} emojiId The emoji id to format
248
+ * @param {boolean} [animated=false] Whether the emoji is animated
249
+ * @returns {string}
250
+ * @deprecated Import this method directly from discord.js instead.
251
+ */
252
+ static formatEmoji = deprecate(
253
+ formatEmoji,
254
+ 'Formatters.formatEmoji() is deprecated. Import this method directly from discord.js instead.',
255
+ );
256
+
257
+ /**
258
+ * Wraps the URL into `<>`, which stops it from embedding.
259
+ * @method hideLinkEmbed
260
+ * @memberof Formatters
261
+ * @param {string} content The content to wrap
262
+ * @returns {string}
263
+ * @deprecated Import this method directly from discord.js instead.
264
+ */
265
+ static hideLinkEmbed = deprecate(
266
+ hideLinkEmbed,
267
+ 'Formatters.hideLinkEmbed() is deprecated. Import this method directly from discord.js instead.',
268
+ );
269
+
270
+ /**
271
+ * Formats the content and the URL into a masked URL with an optional title.
272
+ * @method hyperlink
273
+ * @memberof Formatters
274
+ * @param {string} content The content to display
275
+ * @param {string} url The URL the content links to
276
+ * @param {string} [title] The title shown when hovering on the masked link
277
+ * @returns {string}
278
+ * @deprecated Import this method directly from discord.js instead.
279
+ */
280
+ static hyperlink = deprecate(
281
+ hyperlink,
282
+ 'Formatters.hyperlink() is deprecated. Import this method directly from discord.js instead.',
283
+ );
284
+
285
+ /**
286
+ * Wraps the content inside \`backticks\`, which formats it as inline code.
287
+ * @method inlineCode
288
+ * @memberof Formatters
289
+ * @param {string} content The content to wrap
290
+ * @returns {string}
291
+ * @deprecated Import this method directly from discord.js instead.
292
+ */
293
+ static inlineCode = deprecate(
294
+ inlineCode,
295
+ 'Formatters.inlineCode() is deprecated. Import this method directly from discord.js instead.',
296
+ );
297
+
298
+ /**
299
+ * Formats the content into italic text.
300
+ * @method italic
301
+ * @memberof Formatters
302
+ * @param {string} content The content to wrap
303
+ * @returns {string}
304
+ * @deprecated Import this method directly from discord.js instead.
305
+ */
306
+ static italic = deprecate(
307
+ italic,
308
+ 'Formatters.italic() is deprecated. Import this method directly from discord.js instead.',
309
+ );
310
+
311
+ /**
312
+ * Formats the content into a quote. This needs to be at the start of the line for Discord to format it.
313
+ * @method quote
314
+ * @memberof Formatters
315
+ * @param {string} content The content to wrap
316
+ * @returns {string}
317
+ * @deprecated Import this method directly from discord.js instead.
318
+ */
319
+ static quote = deprecate(
320
+ quote,
321
+ 'Formatters.quote() is deprecated. Import this method directly from discord.js instead.',
322
+ );
323
+
324
+ /**
325
+ * Formats a role id into a role mention.
326
+ * @method roleMention
327
+ * @memberof Formatters
328
+ * @param {Snowflake} roleId The role id to format
329
+ * @returns {string}
330
+ * @deprecated Import this method directly from discord.js instead.
331
+ */
332
+ static roleMention = deprecate(
333
+ roleMention,
334
+ 'Formatters.roleMention() is deprecated. Import this method directly from discord.js instead.',
335
+ );
336
+
337
+ /**
338
+ * Formats the content into spoiler text.
339
+ * @method spoiler
340
+ * @memberof Formatters
341
+ * @param {string} content The content to spoiler
342
+ * @returns {string}
343
+ * @deprecated Import this method directly from discord.js instead.
344
+ */
345
+ static spoiler = deprecate(
346
+ spoiler,
347
+ 'Formatters.spoiler() is deprecated. Import this method directly from discord.js instead.',
348
+ );
349
+
350
+ /**
351
+ * Formats the content into strike-through text.
352
+ * @method strikethrough
353
+ * @memberof Formatters
354
+ * @param {string} content The content to wrap
355
+ * @returns {string}
356
+ * @deprecated Import this method directly from discord.js instead.
357
+ */
358
+ static strikethrough = deprecate(
359
+ strikethrough,
360
+ 'Formatters.strikethrough() is deprecated. Import this method directly from discord.js instead.',
361
+ );
362
+
363
+ /**
364
+ * Formats a date into a short date-time string.
365
+ * @method time
366
+ * @memberof Formatters
367
+ * @param {number|Date} [date] The date to format
368
+ * @param {TimestampStylesString} [style] The style to use
369
+ * @returns {string}
370
+ * @deprecated Import this method directly from discord.js instead.
371
+ */
372
+ static time = deprecate(
373
+ time,
374
+ 'Formatters.time() is deprecated. Import this method directly from discord.js instead.',
375
+ );
376
+
377
+ /**
378
+ * The message formatting timestamp
379
+ * [styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.
380
+ * @type {Object<string, TimestampStylesString>}
381
+ * @memberof Formatters
382
+ * @deprecated Import this property directly from discord.js instead.
383
+ */
384
+ static TimestampStyles = TimestampStyles;
385
+
386
+ /**
387
+ * Formats the content into underscored text.
388
+ * @method underscore
389
+ * @memberof Formatters
390
+ * @param {string} content The content to wrap
391
+ * @returns {string}
392
+ * @deprecated Import this method directly from discord.js instead.
393
+ */
394
+ static underscore = deprecate(
395
+ underscore,
396
+ 'Formatters.underscore() is deprecated. Import this method directly from discord.js instead.',
397
+ );
398
+
399
+ /**
400
+ * Formats a user id into a user mention.
401
+ * @method userMention
402
+ * @memberof Formatters
403
+ * @param {Snowflake} userId The user id to format
404
+ * @returns {string}
405
+ * @deprecated Import this method directly from discord.js instead.
406
+ */
407
+ static userMention = deprecate(
408
+ userMention,
409
+ 'Formatters.userMention() is deprecated. Import this method directly from discord.js instead.',
410
+ );
411
+ }
412
+
413
+ module.exports = Formatters;
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ const { GuildMemberFlags } = require('discord-api-types/v10');
4
+ const BitField = require('./BitField');
5
+
6
+ /**
7
+ * Data structure that makes it easy to interact with a {@link GuildMember#flags} bitfield.
8
+ * @extends {BitField}
9
+ */
10
+ class GuildMemberFlagsBitField extends BitField {
11
+ /**
12
+ * Numeric guild guild member flags.
13
+ * @type {GuildMemberFlags}
14
+ * @memberof GuildMemberFlagsBitField
15
+ */
16
+ static Flags = GuildMemberFlags;
17
+ }
18
+
19
+ /**
20
+ * @name GuildMemberFlagsBitField
21
+ * @kind constructor
22
+ * @memberof GuildMemberFlagsBitField
23
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
24
+ */
25
+
26
+ /**
27
+ * Bitfield of the packed bits
28
+ * @type {number}
29
+ * @name GuildMemberFlagsBitField#bitfield
30
+ */
31
+
32
+ /**
33
+ * Data that can be resolved to give a guild member flag bitfield. This can be:
34
+ * * A string (see {@link GuildMemberFlagsBitField.Flags})
35
+ * * A guild member flag
36
+ * * An instance of GuildMemberFlagsBitField
37
+ * * An Array of GuildMemberFlagsResolvable
38
+ * @typedef {string|number|GuildMemberFlagsBitField|GuildMemberFlagsResolvable[]} GuildMemberFlagsResolvable
39
+ */
40
+
41
+ exports.GuildMemberFlagsBitField = GuildMemberFlagsBitField;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+ const { GatewayIntentBits } = require('discord-api-types/v10');
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to calculate intents.
7
+ * @extends {BitField}
8
+ */
9
+ class IntentsBitField extends BitField {
10
+ /**
11
+ * Numeric WebSocket intents
12
+ * @type {GatewayIntentBits}
13
+ * @memberof IntentsBitField
14
+ */
15
+ static Flags = GatewayIntentBits;
16
+ }
17
+
18
+ /**
19
+ * @name IntentsBitField
20
+ * @kind constructor
21
+ * @memberof IntentsBitField
22
+ * @param {IntentsResolvable} [bits=0] Bit(s) to read from
23
+ */
24
+
25
+ /**
26
+ * Data that can be resolved to give a permission number. This can be:
27
+ * * A string (see {@link IntentsBitField.Flags})
28
+ * * An intents flag
29
+ * * An instance of {@link IntentsBitField}
30
+ * * An array of IntentsResolvable
31
+ * @typedef {string|number|IntentsBitField|IntentsResolvable[]} IntentsResolvable
32
+ */
33
+
34
+ module.exports = IntentsBitField;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ const { Collection } = require('@discordjs/collection');
4
+ const { DiscordjsTypeError, ErrorCodes } = require('../errors');
5
+
6
+ /**
7
+ * Options for defining the behavior of a LimitedCollection
8
+ * @typedef {Object} LimitedCollectionOptions
9
+ * @property {?number} [maxSize=Infinity] The maximum size of the Collection
10
+ * @property {?Function} [keepOverLimit=null] A function, which is passed the value and key of an entry, ran to decide
11
+ * to keep an entry past the maximum size
12
+ */
13
+
14
+ /**
15
+ * A Collection which holds a max amount of entries.
16
+ * @extends {Collection}
17
+ * @param {LimitedCollectionOptions} [options={}] Options for constructing the Collection.
18
+ * @param {Iterable} [iterable=null] Optional entries passed to the Map constructor.
19
+ */
20
+ class LimitedCollection extends Collection {
21
+ constructor(options = {}, iterable) {
22
+ if (typeof options !== 'object' || options === null) {
23
+ throw new DiscordjsTypeError(ErrorCodes.InvalidType, 'options', 'object', true);
24
+ }
25
+ const { maxSize = Infinity, keepOverLimit = null } = options;
26
+
27
+ if (typeof maxSize !== 'number') {
28
+ throw new DiscordjsTypeError(ErrorCodes.InvalidType, 'maxSize', 'number');
29
+ }
30
+ if (keepOverLimit !== null && typeof keepOverLimit !== 'function') {
31
+ throw new DiscordjsTypeError(ErrorCodes.InvalidType, 'keepOverLimit', 'function');
32
+ }
33
+
34
+ super(iterable);
35
+
36
+ /**
37
+ * The max size of the Collection.
38
+ * @type {number}
39
+ */
40
+ this.maxSize = maxSize;
41
+
42
+ /**
43
+ * A function called to check if an entry should be kept when the Collection is at max size.
44
+ * @type {?Function}
45
+ */
46
+ this.keepOverLimit = keepOverLimit;
47
+ }
48
+
49
+ set(key, value) {
50
+ if (this.maxSize === 0) return this;
51
+ if (this.size >= this.maxSize && !this.has(key)) {
52
+ for (const [k, v] of this.entries()) {
53
+ const keep = this.keepOverLimit?.(v, k, this) ?? false;
54
+ if (!keep) {
55
+ this.delete(k);
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ return super.set(key, value);
61
+ }
62
+
63
+ static get [Symbol.species]() {
64
+ return Collection;
65
+ }
66
+ }
67
+
68
+ module.exports = LimitedCollection;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ const { MessageFlags } = require('discord-api-types/v10');
4
+ const BitField = require('./BitField');
5
+
6
+ /**
7
+ * Data structure that makes it easy to interact with a {@link Message#flags} bitfield.
8
+ * @extends {BitField}
9
+ */
10
+ class MessageFlagsBitField extends BitField {
11
+ /**
12
+ * Numeric message flags.
13
+ * @type {MessageFlags}
14
+ * @memberof MessageFlagsBitField
15
+ */
16
+ static Flags = MessageFlags;
17
+ }
18
+
19
+ /**
20
+ * @name MessageFlagsBitField
21
+ * @kind constructor
22
+ * @memberof MessageFlagsBitField
23
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
24
+ */
25
+
26
+ /**
27
+ * Bitfield of the packed bits
28
+ * @type {number}
29
+ * @name MessageFlagsBitField#bitfield
30
+ */
31
+
32
+ module.exports = MessageFlagsBitField;