@biggy1337/discord-sbjs 1.3.11

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 (373) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +147 -0
  3. package/package.json +80 -0
  4. package/src/WebSocket.js +39 -0
  5. package/src/client/BaseClient.js +110 -0
  6. package/src/client/Client.js +1076 -0
  7. package/src/client/WebhookClient.js +61 -0
  8. package/src/client/actions/Action.js +133 -0
  9. package/src/client/actions/ActionsManager.js +80 -0
  10. package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
  11. package/src/client/actions/AutoModerationActionExecution.js +27 -0
  12. package/src/client/actions/AutoModerationRuleCreate.js +28 -0
  13. package/src/client/actions/AutoModerationRuleDelete.js +32 -0
  14. package/src/client/actions/AutoModerationRuleUpdate.js +30 -0
  15. package/src/client/actions/ChannelCreate.js +23 -0
  16. package/src/client/actions/ChannelDelete.js +39 -0
  17. package/src/client/actions/ChannelUpdate.js +43 -0
  18. package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
  19. package/src/client/actions/GuildBanAdd.js +20 -0
  20. package/src/client/actions/GuildBanRemove.js +25 -0
  21. package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
  22. package/src/client/actions/GuildDelete.js +65 -0
  23. package/src/client/actions/GuildEmojiCreate.js +20 -0
  24. package/src/client/actions/GuildEmojiDelete.js +21 -0
  25. package/src/client/actions/GuildEmojiUpdate.js +20 -0
  26. package/src/client/actions/GuildEmojisUpdate.js +34 -0
  27. package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
  28. package/src/client/actions/GuildMemberRemove.js +33 -0
  29. package/src/client/actions/GuildMemberUpdate.js +44 -0
  30. package/src/client/actions/GuildRoleCreate.js +25 -0
  31. package/src/client/actions/GuildRoleDelete.js +31 -0
  32. package/src/client/actions/GuildRoleUpdate.js +39 -0
  33. package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
  34. package/src/client/actions/GuildScheduledEventCreate.js +27 -0
  35. package/src/client/actions/GuildScheduledEventDelete.js +31 -0
  36. package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
  37. package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
  38. package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
  39. package/src/client/actions/GuildStickerCreate.js +20 -0
  40. package/src/client/actions/GuildStickerDelete.js +21 -0
  41. package/src/client/actions/GuildStickerUpdate.js +20 -0
  42. package/src/client/actions/GuildStickersUpdate.js +34 -0
  43. package/src/client/actions/GuildUpdate.js +33 -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 +50 -0
  47. package/src/client/actions/MessageDelete.js +34 -0
  48. package/src/client/actions/MessageDeleteBulk.js +43 -0
  49. package/src/client/actions/MessagePollVoteAdd.js +33 -0
  50. package/src/client/actions/MessagePollVoteRemove.js +33 -0
  51. package/src/client/actions/MessageReactionAdd.js +71 -0
  52. package/src/client/actions/MessageReactionRemove.js +39 -0
  53. package/src/client/actions/MessageReactionRemoveAll.js +36 -0
  54. package/src/client/actions/MessageReactionRemoveEmoji.js +30 -0
  55. package/src/client/actions/MessageUpdate.js +28 -0
  56. package/src/client/actions/PresenceUpdate.js +55 -0
  57. package/src/client/actions/StageInstanceCreate.js +28 -0
  58. package/src/client/actions/StageInstanceDelete.js +33 -0
  59. package/src/client/actions/StageInstanceUpdate.js +30 -0
  60. package/src/client/actions/ThreadCreate.js +24 -0
  61. package/src/client/actions/ThreadDelete.js +32 -0
  62. package/src/client/actions/ThreadListSync.js +60 -0
  63. package/src/client/actions/ThreadMemberUpdate.js +30 -0
  64. package/src/client/actions/ThreadMembersUpdate.js +38 -0
  65. package/src/client/actions/TypingStart.js +31 -0
  66. package/src/client/actions/UserUpdate.js +35 -0
  67. package/src/client/actions/VoiceStateUpdate.js +63 -0
  68. package/src/client/actions/WebhooksUpdate.js +20 -0
  69. package/src/client/voice/ClientVoiceManager.js +162 -0
  70. package/src/client/voice/StreamEventRouter.js +60 -0
  71. package/src/client/voice/VoiceConnection.js +1173 -0
  72. package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
  73. package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
  74. package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
  75. package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
  76. package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
  77. package/src/client/voice/networking/VoiceUDPClient.js +187 -0
  78. package/src/client/voice/networking/VoiceWebSocket.js +347 -0
  79. package/src/client/voice/player/MediaPlayer.js +321 -0
  80. package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
  81. package/src/client/voice/player/processing/IvfSplitter.js +106 -0
  82. package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
  83. package/src/client/voice/receiver/PacketHandler.js +260 -0
  84. package/src/client/voice/receiver/Receiver.js +96 -0
  85. package/src/client/voice/receiver/Recorder.js +191 -0
  86. package/src/client/voice/util/Function.js +116 -0
  87. package/src/client/voice/util/PlayInterface.js +122 -0
  88. package/src/client/voice/util/Secretbox.js +64 -0
  89. package/src/client/voice/util/Silence.js +16 -0
  90. package/src/client/voice/util/Socket.js +62 -0
  91. package/src/client/voice/util/VolumeInterface.js +104 -0
  92. package/src/client/websocket/DispatchTable.js +7 -0
  93. package/src/client/websocket/GatewaySendScheduler.js +122 -0
  94. package/src/client/websocket/WebSocketManager.js +439 -0
  95. package/src/client/websocket/WebSocketShard.js +1085 -0
  96. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
  97. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
  98. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  99. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
  100. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  101. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  102. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  103. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  104. package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
  105. package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
  106. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
  107. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  108. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  109. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  110. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -0
  111. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
  112. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  113. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  114. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  115. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  116. package/src/client/websocket/handlers/GUILD_CREATE.js +51 -0
  117. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  118. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  119. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  120. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +45 -0
  121. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  122. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  123. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  124. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  125. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  126. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  127. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  128. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  129. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  130. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  131. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  132. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  133. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  134. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -0
  135. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  136. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  137. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  138. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  139. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  140. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -0
  141. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
  142. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  143. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  144. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  145. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  146. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  147. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  148. package/src/client/websocket/handlers/READY.js +156 -0
  149. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
  150. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
  151. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -0
  152. package/src/client/websocket/handlers/RESUMED.js +14 -0
  153. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  154. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  155. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  156. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  157. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  158. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  159. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  160. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  161. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  162. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  163. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -0
  164. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
  165. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +82 -0
  166. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
  167. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  168. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  169. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
  170. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +12 -0
  171. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  172. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  173. package/src/client/websocket/handlers/index.js +84 -0
  174. package/src/errors/DJSError.js +61 -0
  175. package/src/errors/Messages.js +218 -0
  176. package/src/errors/index.js +4 -0
  177. package/src/index.js +172 -0
  178. package/src/managers/ApplicationCommandManager.js +264 -0
  179. package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
  180. package/src/managers/AutoModerationRuleManager.js +296 -0
  181. package/src/managers/BaseGuildEmojiManager.js +80 -0
  182. package/src/managers/BaseManager.js +19 -0
  183. package/src/managers/BillingManager.js +66 -0
  184. package/src/managers/CachedManager.js +72 -0
  185. package/src/managers/ChannelManager.js +148 -0
  186. package/src/managers/ClientUserSettingManager.js +372 -0
  187. package/src/managers/DataManager.js +61 -0
  188. package/src/managers/DeveloperManager.js +265 -0
  189. package/src/managers/GuildBanManager.js +252 -0
  190. package/src/managers/GuildChannelManager.js +488 -0
  191. package/src/managers/GuildEmojiManager.js +171 -0
  192. package/src/managers/GuildEmojiRoleManager.js +118 -0
  193. package/src/managers/GuildForumThreadManager.js +108 -0
  194. package/src/managers/GuildInviteManager.js +213 -0
  195. package/src/managers/GuildManager.js +401 -0
  196. package/src/managers/GuildMemberManager.js +608 -0
  197. package/src/managers/GuildMemberRoleManager.js +195 -0
  198. package/src/managers/GuildScheduledEventManager.js +314 -0
  199. package/src/managers/GuildSettingManager.js +155 -0
  200. package/src/managers/GuildStickerManager.js +179 -0
  201. package/src/managers/GuildTextThreadManager.js +98 -0
  202. package/src/managers/InteractionManager.js +39 -0
  203. package/src/managers/MessageManager.js +457 -0
  204. package/src/managers/PermissionOverwriteManager.js +169 -0
  205. package/src/managers/PresenceManager.js +71 -0
  206. package/src/managers/QuestManager.js +391 -0
  207. package/src/managers/ReactionManager.js +67 -0
  208. package/src/managers/ReactionUserManager.js +73 -0
  209. package/src/managers/RelationshipManager.js +341 -0
  210. package/src/managers/RoleManager.js +448 -0
  211. package/src/managers/SessionManager.js +66 -0
  212. package/src/managers/StageInstanceManager.js +162 -0
  213. package/src/managers/ThreadManager.js +175 -0
  214. package/src/managers/ThreadMemberManager.js +186 -0
  215. package/src/managers/UserManager.js +274 -0
  216. package/src/managers/UserNoteManager.js +53 -0
  217. package/src/managers/VoiceStateManager.js +59 -0
  218. package/src/rest/APIRequest.js +198 -0
  219. package/src/rest/APIRouter.js +94 -0
  220. package/src/rest/DiscordAPIError.js +120 -0
  221. package/src/rest/HTTPError.js +62 -0
  222. package/src/rest/RESTManager.js +203 -0
  223. package/src/rest/RateLimitCoordinator.js +156 -0
  224. package/src/rest/RateLimitError.js +55 -0
  225. package/src/rest/RequestHandler.js +552 -0
  226. package/src/sharding/Shard.js +444 -0
  227. package/src/sharding/ShardClientUtil.js +279 -0
  228. package/src/sharding/ShardingManager.js +319 -0
  229. package/src/structures/AnonymousGuild.js +98 -0
  230. package/src/structures/ApplicationCommand.js +593 -0
  231. package/src/structures/ApplicationRoleConnectionMetadata.js +48 -0
  232. package/src/structures/AutoModerationActionExecution.js +89 -0
  233. package/src/structures/AutoModerationRule.js +294 -0
  234. package/src/structures/AutocompleteInteraction.js +107 -0
  235. package/src/structures/Base.js +43 -0
  236. package/src/structures/BaseCommandInteraction.js +211 -0
  237. package/src/structures/BaseGuild.js +124 -0
  238. package/src/structures/BaseGuildEmoji.js +56 -0
  239. package/src/structures/BaseGuildTextChannel.js +191 -0
  240. package/src/structures/BaseGuildVoiceChannel.js +241 -0
  241. package/src/structures/BaseMessageComponent.js +181 -0
  242. package/src/structures/ButtonInteraction.js +11 -0
  243. package/src/structures/CallState.js +63 -0
  244. package/src/structures/CategoryChannel.js +85 -0
  245. package/src/structures/Channel.js +284 -0
  246. package/src/structures/ClientPresence.js +77 -0
  247. package/src/structures/ClientUser.js +706 -0
  248. package/src/structures/CommandInteraction.js +41 -0
  249. package/src/structures/CommandInteractionOptionResolver.js +276 -0
  250. package/src/structures/ContainerComponent.js +68 -0
  251. package/src/structures/ContextMenuInteraction.js +65 -0
  252. package/src/structures/DMChannel.js +222 -0
  253. package/src/structures/DirectoryChannel.js +20 -0
  254. package/src/structures/Emoji.js +148 -0
  255. package/src/structures/FileComponent.js +49 -0
  256. package/src/structures/ForumChannel.js +31 -0
  257. package/src/structures/GroupDMChannel.js +415 -0
  258. package/src/structures/Guild.js +1804 -0
  259. package/src/structures/GuildAuditLogs.js +746 -0
  260. package/src/structures/GuildBan.js +59 -0
  261. package/src/structures/GuildBoost.js +108 -0
  262. package/src/structures/GuildChannel.js +470 -0
  263. package/src/structures/GuildEmoji.js +161 -0
  264. package/src/structures/GuildMember.js +636 -0
  265. package/src/structures/GuildPreview.js +191 -0
  266. package/src/structures/GuildPreviewEmoji.js +27 -0
  267. package/src/structures/GuildScheduledEvent.js +536 -0
  268. package/src/structures/GuildTemplate.js +236 -0
  269. package/src/structures/Integration.js +188 -0
  270. package/src/structures/IntegrationApplication.js +96 -0
  271. package/src/structures/Interaction.js +290 -0
  272. package/src/structures/InteractionCollector.js +248 -0
  273. package/src/structures/InteractionWebhook.js +43 -0
  274. package/src/structures/Invite.js +358 -0
  275. package/src/structures/InviteGuild.js +23 -0
  276. package/src/structures/InviteStageInstance.js +86 -0
  277. package/src/structures/MediaChannel.js +11 -0
  278. package/src/structures/MediaGalleryComponent.js +41 -0
  279. package/src/structures/MediaGalleryItem.js +47 -0
  280. package/src/structures/Message.js +1272 -0
  281. package/src/structures/MessageActionRow.js +105 -0
  282. package/src/structures/MessageAttachment.js +216 -0
  283. package/src/structures/MessageButton.js +166 -0
  284. package/src/structures/MessageCollector.js +146 -0
  285. package/src/structures/MessageComponentInteraction.js +120 -0
  286. package/src/structures/MessageContextMenuInteraction.js +20 -0
  287. package/src/structures/MessageEmbed.js +596 -0
  288. package/src/structures/MessageMentions.js +273 -0
  289. package/src/structures/MessagePayload.js +354 -0
  290. package/src/structures/MessageReaction.js +181 -0
  291. package/src/structures/MessageSelectMenu.js +141 -0
  292. package/src/structures/Modal.js +161 -0
  293. package/src/structures/ModalSubmitFieldsResolver.js +53 -0
  294. package/src/structures/ModalSubmitInteraction.js +119 -0
  295. package/src/structures/NewsChannel.js +32 -0
  296. package/src/structures/OAuth2Guild.js +28 -0
  297. package/src/structures/PermissionOverwrites.js +198 -0
  298. package/src/structures/Poll.js +108 -0
  299. package/src/structures/PollAnswer.js +88 -0
  300. package/src/structures/Presence.js +1165 -0
  301. package/src/structures/ReactionCollector.js +229 -0
  302. package/src/structures/ReactionEmoji.js +31 -0
  303. package/src/structures/Role.js +590 -0
  304. package/src/structures/SectionComponent.js +48 -0
  305. package/src/structures/SelectMenuInteraction.js +21 -0
  306. package/src/structures/SeparatorComponent.js +48 -0
  307. package/src/structures/Session.js +81 -0
  308. package/src/structures/StageChannel.js +104 -0
  309. package/src/structures/StageInstance.js +208 -0
  310. package/src/structures/Sticker.js +310 -0
  311. package/src/structures/StickerPack.js +95 -0
  312. package/src/structures/StoreChannel.js +56 -0
  313. package/src/structures/Team.js +118 -0
  314. package/src/structures/TeamMember.js +80 -0
  315. package/src/structures/TextChannel.js +33 -0
  316. package/src/structures/TextDisplayComponent.js +40 -0
  317. package/src/structures/TextInputComponent.js +132 -0
  318. package/src/structures/ThreadChannel.js +605 -0
  319. package/src/structures/ThreadMember.js +105 -0
  320. package/src/structures/ThreadOnlyChannel.js +249 -0
  321. package/src/structures/ThumbnailComponent.js +57 -0
  322. package/src/structures/Typing.js +74 -0
  323. package/src/structures/UnfurledMediaItem.js +29 -0
  324. package/src/structures/User.js +992 -0
  325. package/src/structures/UserContextMenuInteraction.js +29 -0
  326. package/src/structures/VoiceChannel.js +110 -0
  327. package/src/structures/VoiceChannelEffect.js +69 -0
  328. package/src/structures/VoiceRegion.js +53 -0
  329. package/src/structures/VoiceState.js +354 -0
  330. package/src/structures/WebEmbed.js +373 -0
  331. package/src/structures/Webhook.js +478 -0
  332. package/src/structures/WelcomeChannel.js +60 -0
  333. package/src/structures/WelcomeScreen.js +48 -0
  334. package/src/structures/Widget.js +87 -0
  335. package/src/structures/WidgetMember.js +100 -0
  336. package/src/structures/interfaces/Application.js +953 -0
  337. package/src/structures/interfaces/Collector.js +301 -0
  338. package/src/structures/interfaces/InteractionResponses.js +313 -0
  339. package/src/structures/interfaces/TextBasedChannel.js +821 -0
  340. package/src/util/APITypes.js +59 -0
  341. package/src/util/ActivityFlags.js +44 -0
  342. package/src/util/ApplicationFlags.js +76 -0
  343. package/src/util/AttachmentFlags.js +38 -0
  344. package/src/util/BitField.js +170 -0
  345. package/src/util/ChannelFlags.js +45 -0
  346. package/src/util/Constants.js +1953 -0
  347. package/src/util/DataResolver.js +162 -0
  348. package/src/util/FastQueue.js +93 -0
  349. package/src/util/FetchUtil.js +77 -0
  350. package/src/util/Formatters.js +228 -0
  351. package/src/util/GuildMemberFlags.js +43 -0
  352. package/src/util/Intents.js +74 -0
  353. package/src/util/InviteFlags.js +34 -0
  354. package/src/util/LimitedCollection.js +131 -0
  355. package/src/util/ListenerUtil.js +12 -0
  356. package/src/util/MessageFlags.js +63 -0
  357. package/src/util/Options.js +431 -0
  358. package/src/util/Permissions.js +202 -0
  359. package/src/util/PremiumUsageFlags.js +31 -0
  360. package/src/util/PurchasedFlags.js +33 -0
  361. package/src/util/RemoteAuth.js +425 -0
  362. package/src/util/RoleFlags.js +37 -0
  363. package/src/util/SnowflakeUtil.js +92 -0
  364. package/src/util/Speaking.js +33 -0
  365. package/src/util/Sweepers.js +493 -0
  366. package/src/util/SystemChannelFlags.js +55 -0
  367. package/src/util/ThreadMemberFlags.js +30 -0
  368. package/src/util/UserFlags.js +104 -0
  369. package/src/util/Util.js +1144 -0
  370. package/typings/enums.d.ts +437 -0
  371. package/typings/index.d.ts +8857 -0
  372. package/typings/index.test-d.ts +0 -0
  373. package/typings/rawDataTypes.d.ts +403 -0
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ const { Buffer } = require('node:buffer');
4
+ const fs = require('node:fs');
5
+ const path = require('node:path');
6
+ const stream = require('node:stream');
7
+ const { getNativeFetch } = require('./FetchUtil');
8
+ const { Error: DiscordError, TypeError } = require('../errors');
9
+ const Invite = require('../structures/Invite');
10
+
11
+ const fetch = getNativeFetch();
12
+
13
+ /**
14
+ * The DataResolver identifies different objects and tries to resolve a specific piece of information from them.
15
+ * @private
16
+ */
17
+ class DataResolver extends null {
18
+ /**
19
+ * Data that can be resolved to give an invite code. This can be:
20
+ * * An invite code
21
+ * * An invite URL
22
+ * @typedef {string} InviteResolvable
23
+ */
24
+
25
+ /**
26
+ * Data that can be resolved to give a template code. This can be:
27
+ * * A template code
28
+ * * A template URL
29
+ * @typedef {string} GuildTemplateResolvable
30
+ */
31
+
32
+ /**
33
+ * Resolves the string to a code based on the passed regex.
34
+ * @param {string} data The string to resolve
35
+ * @param {RegExp} regex The RegExp used to extract the code
36
+ * @returns {string}
37
+ */
38
+ static resolveCode(data, regex) {
39
+ return new RegExp(regex.source).exec(data)?.[1] ?? data;
40
+ }
41
+
42
+ /**
43
+ * Resolves InviteResolvable to an invite code.
44
+ * @param {InviteResolvable} data The invite resolvable to resolve
45
+ * @returns {string}
46
+ */
47
+ static resolveInviteCode(data) {
48
+ return this.resolveCode(data, Invite.INVITES_PATTERN);
49
+ }
50
+
51
+ /**
52
+ * Resolves GuildTemplateResolvable to a template code.
53
+ * @param {GuildTemplateResolvable} data The template resolvable to resolve
54
+ * @returns {string}
55
+ */
56
+ static resolveGuildTemplateCode(data) {
57
+ const GuildTemplate = require('../structures/GuildTemplate');
58
+ return this.resolveCode(data, GuildTemplate.GUILD_TEMPLATES_PATTERN);
59
+ }
60
+
61
+ /**
62
+ * Resolves a Base64Resolvable, a string, or a BufferResolvable to a Base 64 image.
63
+ * @param {BufferResolvable|Base64Resolvable} image The image to be resolved
64
+ * @returns {Promise<?string>}
65
+ */
66
+ static async resolveImage(image) {
67
+ if (!image) return null;
68
+ if (typeof image === 'string' && image.startsWith('data:')) {
69
+ return image;
70
+ }
71
+ const file = await this.resolveFileAsBuffer(image);
72
+ return DataResolver.resolveBase64(file);
73
+ }
74
+
75
+ /**
76
+ * Data that resolves to give a Base64 string, typically for image uploading. This can be:
77
+ * * A Buffer
78
+ * * A base64 string
79
+ * @typedef {Buffer|string} Base64Resolvable
80
+ */
81
+
82
+ /**
83
+ * Resolves a Base64Resolvable to a Base 64 image.
84
+ * @param {Base64Resolvable} data The base 64 resolvable you want to resolve
85
+ * @returns {?string}
86
+ */
87
+ static resolveBase64(data) {
88
+ if (Buffer.isBuffer(data)) return `data:image/jpg;base64,${data.toString('base64')}`;
89
+ return data;
90
+ }
91
+
92
+ /**
93
+ * Data that can be resolved to give a Buffer. This can be:
94
+ * * A Buffer
95
+ * * The path to a local file
96
+ * * A URL <warn>When provided a URL, discord.js will fetch the URL internally in order to create a Buffer.
97
+ * This can pose a security risk when the URL has not been sanitized</warn>
98
+ * @typedef {string|Buffer} BufferResolvable
99
+ */
100
+
101
+ /**
102
+ * @external Stream
103
+ * @see {@link https://nodejs.org/api/stream.html}
104
+ */
105
+
106
+ /**
107
+ * Resolves a BufferResolvable to a Buffer or a Stream.
108
+ * @param {BufferResolvable|Stream} resource The buffer or stream resolvable to resolve
109
+ * @returns {Promise<Buffer|Stream>}
110
+ */
111
+ static async resolveFile(resource) {
112
+ if (Buffer.isBuffer(resource) || resource instanceof stream.Readable) return resource;
113
+ if (resource instanceof Blob) return resource;
114
+ if (typeof resource === 'string') {
115
+ if (/^https?:\/\//.test(resource)) {
116
+ const res = await fetch(resource);
117
+ if (res.ok) {
118
+ const arrayBuffer = await res.arrayBuffer();
119
+ return Buffer.from(arrayBuffer);
120
+ }
121
+ throw new DiscordError('FILE_NOT_FOUND', resource);
122
+ }
123
+
124
+ const file = path.resolve(resource);
125
+ if (typeof Bun !== 'undefined') {
126
+ const bunFile = Bun.file(file);
127
+ if (await bunFile.exists()) return bunFile;
128
+ throw new DiscordError('FILE_NOT_FOUND', file);
129
+ }
130
+
131
+ return new Promise((resolve, reject) => {
132
+ fs.stat(file, (err, stats) => {
133
+ if (err) return reject(err);
134
+ if (!stats.isFile()) return reject(new DiscordError('FILE_NOT_FOUND', file));
135
+ return resolve(fs.createReadStream(file));
136
+ });
137
+ });
138
+ }
139
+
140
+ throw new TypeError('REQ_RESOURCE_TYPE');
141
+ }
142
+
143
+ /**
144
+ * Resolves a BufferResolvable to a Buffer.
145
+ * @param {BufferResolvable|Stream} resource The buffer or stream resolvable to resolve
146
+ * @returns {Promise<Buffer>}
147
+ */
148
+ static async resolveFileAsBuffer(resource) {
149
+ const file = await this.resolveFile(resource);
150
+ if (Buffer.isBuffer(file)) return file;
151
+ if (file instanceof Blob) {
152
+ const arrayBuffer = await file.arrayBuffer();
153
+ return Buffer.from(arrayBuffer);
154
+ }
155
+
156
+ const buffers = [];
157
+ for await (const data of file) buffers.push(data);
158
+ return Buffer.concat(buffers);
159
+ }
160
+ }
161
+
162
+ module.exports = DataResolver;
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * A small O(1) FIFO queue with O(1) "priority" insert at the front.
5
+ *
6
+ * Ordering matches Array semantics:
7
+ * - `push()` appends to the end
8
+ * - `unshift()` prepends to the front
9
+ * - `shift()` removes from the front
10
+ * - Multiple `unshift()` calls are LIFO relative to each other (same as Array)
11
+ */
12
+ class FastQueue {
13
+ static MIN_BACK_CAPACITY = 16;
14
+
15
+ constructor(iterable) {
16
+ this._front = [];
17
+ this._back = new Array(FastQueue.MIN_BACK_CAPACITY);
18
+ this._backHead = 0;
19
+ this._backTail = 0;
20
+ this._backLength = 0;
21
+
22
+ if (iterable) {
23
+ for (const value of iterable) this.push(value);
24
+ }
25
+ }
26
+
27
+ get length() {
28
+ return this._front.length + this._backLength;
29
+ }
30
+
31
+ _resizeBack(newCapacity) {
32
+ const next = new Array(newCapacity);
33
+ const mask = this._back.length - 1;
34
+ for (let i = 0; i < this._backLength; i++) {
35
+ next[i] = this._back[(this._backHead + i) & mask];
36
+ }
37
+ this._back = next;
38
+ this._backHead = 0;
39
+ this._backTail = this._backLength;
40
+ }
41
+
42
+ push(value) {
43
+ if (this._backLength === this._back.length) {
44
+ this._resizeBack(this._back.length << 1);
45
+ }
46
+
47
+ this._back[this._backTail] = value;
48
+ this._backTail = (this._backTail + 1) & (this._back.length - 1);
49
+ this._backLength++;
50
+ return this.length;
51
+ }
52
+
53
+ unshift(value) {
54
+ this._front.push(value);
55
+ return this.length;
56
+ }
57
+
58
+ shift() {
59
+ if (this._front.length) return this._front.pop();
60
+ if (this._backLength === 0) return undefined;
61
+
62
+ const value = this._back[this._backHead];
63
+ this._back[this._backHead] = undefined;
64
+ this._backHead = (this._backHead + 1) & (this._back.length - 1);
65
+ this._backLength--;
66
+
67
+ if (this._backLength === 0) {
68
+ this._backHead = 0;
69
+ this._backTail = 0;
70
+ return value;
71
+ }
72
+
73
+ if (
74
+ this._back.length > FastQueue.MIN_BACK_CAPACITY &&
75
+ this._backLength <= this._back.length >> 2 &&
76
+ this._backLength >= FastQueue.MIN_BACK_CAPACITY
77
+ ) {
78
+ this._resizeBack(this._back.length >> 1);
79
+ }
80
+
81
+ return value;
82
+ }
83
+
84
+ clear() {
85
+ this._front.length = 0;
86
+ this._back = new Array(FastQueue.MIN_BACK_CAPACITY);
87
+ this._backHead = 0;
88
+ this._backTail = 0;
89
+ this._backLength = 0;
90
+ }
91
+ }
92
+
93
+ module.exports = FastQueue;
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ const isBun = typeof Bun !== 'undefined';
4
+
5
+ if (!isBun) {
6
+ throw new Error('discord-sb.js Bun-only build requires Bun runtime.');
7
+ }
8
+
9
+ const getNativeFetch = () => globalThis.fetch.bind(globalThis);
10
+
11
+ let _impitInstance = null;
12
+ const getImpitFetch = (options = {}) => {
13
+ if (_impitInstance) return _impitInstance.fetch.bind(_impitInstance);
14
+ try {
15
+ const { Impit } = require('impit');
16
+ _impitInstance = new Impit({
17
+ browser: options.browser ?? 'chrome',
18
+ proxyUrl: options.proxyUrl ?? undefined,
19
+ ignoreTlsErrors: options.ignoreTlsErrors ?? false,
20
+ });
21
+ return _impitInstance.fetch.bind(_impitInstance);
22
+ } catch (e) {
23
+ return null;
24
+ }
25
+ };
26
+ const getNativeFormData = () => globalThis.FormData;
27
+
28
+ const createCookieJar = () => new Bun.CookieMap();
29
+
30
+ const serializeCookieMap = cookieMap => {
31
+ if (!cookieMap || cookieMap.size === 0) return '';
32
+ const parts = [];
33
+ for (const [name, value] of cookieMap) parts.push(`${name}=${value}`);
34
+ return parts.join('; ');
35
+ };
36
+
37
+ const applyCookiesToHeaders = (headers, cookieJar) => {
38
+ if (!cookieJar || cookieJar.size === 0) return;
39
+ if (headers.has('cookie')) return;
40
+ const cookieHeader = serializeCookieMap(cookieJar);
41
+ if (cookieHeader) headers.set('cookie', cookieHeader);
42
+ };
43
+
44
+ const storeCookiesFromResponse = (response, cookieJar) => {
45
+ if (!cookieJar || !response?.headers?.getAll) return;
46
+ const setCookies = response.headers.getAll('set-cookie');
47
+ if (!setCookies?.length) return;
48
+ for (const setCookie of setCookies) {
49
+ try {
50
+ const parsed = Bun.Cookie.parse(setCookie);
51
+ if (parsed) cookieJar.set(parsed.toJSON());
52
+ } catch {
53
+ // Ignore invalid cookie entries
54
+ }
55
+ }
56
+ };
57
+
58
+ const wrapFetchWithCookies =
59
+ (fetchFn, cookieJar) =>
60
+ async (url, options = {}) => {
61
+ const headers = new Headers(options.headers ?? {});
62
+ applyCookiesToHeaders(headers, cookieJar);
63
+ const response = await fetchFn(url, { ...options, headers });
64
+ storeCookiesFromResponse(response, cookieJar);
65
+ return response;
66
+ };
67
+
68
+ module.exports = {
69
+ isBun,
70
+ getNativeFetch,
71
+ getImpitFetch,
72
+ getNativeFormData,
73
+ createCookieJar,
74
+ wrapFetchWithCookies,
75
+ applyCookiesToHeaders,
76
+ storeCookiesFromResponse,
77
+ };
@@ -0,0 +1,228 @@
1
+ 'use strict';
2
+
3
+ const {
4
+ blockQuote,
5
+ bold,
6
+ channelMention,
7
+ codeBlock,
8
+ formatEmoji,
9
+ hideLinkEmbed,
10
+ hyperlink,
11
+ inlineCode,
12
+ italic,
13
+ quote,
14
+ roleMention,
15
+ spoiler,
16
+ strikethrough,
17
+ time,
18
+ TimestampStyles,
19
+ underscore,
20
+ userMention,
21
+ } = require('@discordjs/builders');
22
+
23
+ /**
24
+ * Contains various Discord-specific functions for formatting messages.
25
+ */
26
+ class Formatters extends null {}
27
+
28
+ /**
29
+ * Formats the content into a block quote. This needs to be at the start of the line for Discord to format it.
30
+ * @method blockQuote
31
+ * @memberof Formatters
32
+ * @param {string} content The content to wrap.
33
+ * @returns {string}
34
+ */
35
+ Formatters.blockQuote = blockQuote;
36
+
37
+ /**
38
+ * Formats the content into bold text.
39
+ * @method bold
40
+ * @memberof Formatters
41
+ * @param {string} content The content to wrap.
42
+ * @returns {string}
43
+ */
44
+ Formatters.bold = bold;
45
+
46
+ /**
47
+ * Formats a channel id into a channel mention.
48
+ * @method channelMention
49
+ * @memberof Formatters
50
+ * @param {string} channelId The channel id to format.
51
+ * @returns {string}
52
+ */
53
+ Formatters.channelMention = channelMention;
54
+
55
+ /**
56
+ * Formats an application command name, subcommand group name, subcommand name, and ID
57
+ * into an application command mention
58
+ * @method chatInputApplicationCommandMention
59
+ * @memberof Formatters
60
+ * @param {string} commandName The name of the application command
61
+ * @param {string|Snowflake} subcommandGroupOrSubOrId
62
+ * The subcommand group name, subcommand name, or application command id
63
+ * @param {?(string|Snowflake)} [subcommandNameOrId] The subcommand name or application command id
64
+ * @param {?Snowflake} [commandId] The id of the application command
65
+ * @returns {string}
66
+ * @static
67
+ */
68
+ Formatters.chatInputApplicationCommandMention = function chatInputApplicationCommandMention(
69
+ commandName,
70
+ subcommandGroupOrSubOrId,
71
+ subcommandNameOrId,
72
+ commandId,
73
+ ) {
74
+ if (typeof commandId !== 'undefined') {
75
+ return `</${commandName} ${subcommandGroupOrSubOrId} ${subcommandNameOrId}:${commandId}>`;
76
+ }
77
+
78
+ if (typeof subcommandNameOrId !== 'undefined') {
79
+ return `</${commandName} ${subcommandGroupOrSubOrId}:${subcommandNameOrId}>`;
80
+ }
81
+
82
+ return `</${commandName}:${subcommandGroupOrSubOrId}>`;
83
+ };
84
+
85
+ /**
86
+ * Wraps the content inside a code block with an optional language.
87
+ * @method codeBlock
88
+ * @memberof Formatters
89
+ * @param {string} contentOrLanguage The language to use, content if a second parameter isn't provided.
90
+ * @param {string} [content] The content to wrap.
91
+ * @returns {string}
92
+ */
93
+ Formatters.codeBlock = codeBlock;
94
+
95
+ /**
96
+ * Formats an emoji id into a fully qualified emoji identifier
97
+ * @method formatEmoji
98
+ * @memberof Formatters
99
+ * @param {string} emojiId The emoji id to format.
100
+ * @param {boolean} [animated] Whether the emoji is animated or not. Defaults to `false`
101
+ * @returns {string}
102
+ */
103
+ Formatters.formatEmoji = formatEmoji;
104
+
105
+ /**
106
+ * Wraps the URL into `<>`, which stops it from embedding.
107
+ * @method hideLinkEmbed
108
+ * @memberof Formatters
109
+ * @param {string} content The content to wrap.
110
+ * @returns {string}
111
+ */
112
+ Formatters.hideLinkEmbed = hideLinkEmbed;
113
+
114
+ /**
115
+ * Formats the content and the URL into a masked URL with an optional title.
116
+ * @method hyperlink
117
+ * @memberof Formatters
118
+ * @param {string} content The content to display.
119
+ * @param {string} url The URL the content links to.
120
+ * @param {string} [title] The title shown when hovering on the masked link.
121
+ * @returns {string}
122
+ */
123
+ Formatters.hyperlink = hyperlink;
124
+
125
+ /**
126
+ * Wraps the content inside \`backticks\`, which formats it as inline code.
127
+ * @method inlineCode
128
+ * @memberof Formatters
129
+ * @param {string} content The content to wrap.
130
+ * @returns {string}
131
+ */
132
+ Formatters.inlineCode = inlineCode;
133
+
134
+ /**
135
+ * Formats the content into italic text.
136
+ * @method italic
137
+ * @memberof Formatters
138
+ * @param {string} content The content to wrap.
139
+ * @returns {string}
140
+ */
141
+ Formatters.italic = italic;
142
+
143
+ /**
144
+ * Formats the content into a quote. This needs to be at the start of the line for Discord to format it.
145
+ * @method quote
146
+ * @memberof Formatters
147
+ * @param {string} content The content to wrap.
148
+ * @returns {string}
149
+ */
150
+ Formatters.quote = quote;
151
+
152
+ /**
153
+ * Formats a role id into a role mention.
154
+ * @method roleMention
155
+ * @memberof Formatters
156
+ * @param {string} roleId The role id to format.
157
+ * @returns {string}
158
+ */
159
+ Formatters.roleMention = roleMention;
160
+
161
+ /**
162
+ * Formats the content into spoiler text.
163
+ * @method spoiler
164
+ * @memberof Formatters
165
+ * @param {string} content The content to spoiler.
166
+ * @returns {string}
167
+ */
168
+ Formatters.spoiler = spoiler;
169
+
170
+ /**
171
+ * Formats the content into strike-through text.
172
+ * @method strikethrough
173
+ * @memberof Formatters
174
+ * @param {string} content The content to wrap.
175
+ * @returns {string}
176
+ */
177
+ Formatters.strikethrough = strikethrough;
178
+
179
+ /**
180
+ * Formats a date into a short date-time string.
181
+ * @method time
182
+ * @memberof Formatters
183
+ * @param {number|Date} [date] The date to format.
184
+ * @param {TimestampStylesString} [style] The style to use.
185
+ * @returns {string}
186
+ */
187
+ Formatters.time = time;
188
+
189
+ /**
190
+ * A message formatting timestamp style, as defined in
191
+ * [here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).
192
+ * * `t` Short time format, consisting of hours and minutes, e.g. 16:20.
193
+ * * `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.
194
+ * * `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.
195
+ * * `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.
196
+ * * `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.
197
+ * * `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.
198
+ * * `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.
199
+ * @typedef {string} TimestampStylesString
200
+ */
201
+
202
+ /**
203
+ * The message formatting timestamp
204
+ * [styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.
205
+ * @memberof Formatters
206
+ * @type {Object<string, TimestampStylesString>}
207
+ */
208
+ Formatters.TimestampStyles = TimestampStyles;
209
+
210
+ /**
211
+ * Formats the content into underscored text.
212
+ * @method underscore
213
+ * @memberof Formatters
214
+ * @param {string} content The content to wrap.
215
+ * @returns {string}
216
+ */
217
+ Formatters.underscore = underscore;
218
+
219
+ /**
220
+ * Formats a user id into a user mention.
221
+ * @method userMention
222
+ * @memberof Formatters
223
+ * @param {string} userId The user id to format.
224
+ * @returns {string}
225
+ */
226
+ Formatters.userMention = userMention;
227
+
228
+ module.exports = Formatters;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with an {@link GuildMember#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class GuildMemberFlags extends BitField {}
10
+
11
+ /**
12
+ * @name GuildMemberFlags
13
+ * @kind constructor
14
+ * @memberof GuildMemberFlags
15
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
16
+ */
17
+
18
+ /**
19
+ * Numeric guild member flags. All available properties:
20
+ * * `DID_REJOIN`
21
+ * * `COMPLETED_ONBOARDING`
22
+ * * `BYPASSES_VERIFICATION`
23
+ * * `STARTED_ONBOARDING`
24
+ * @type {Object}
25
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags}
26
+ */
27
+ GuildMemberFlags.FLAGS = {
28
+ DID_REJOIN: 1 << 0,
29
+ COMPLETED_ONBOARDING: 1 << 1,
30
+ BYPASSES_VERIFICATION: 1 << 2,
31
+ STARTED_ONBOARDING: 1 << 3,
32
+ };
33
+
34
+ /**
35
+ * Data that can be resolved to give a guild member flag bitfield. This can be:
36
+ * * A string (see {@link GuildMemberFlags.FLAGS})
37
+ * * A guild member flag
38
+ * * An instance of GuildMemberFlags
39
+ * * An Array of GuildMemberFlagsResolvable
40
+ * @typedef {string|number|GuildMemberFlags|GuildMemberFlagsResolvable[]} GuildMemberFlagsResolvable
41
+ */
42
+
43
+ module.exports = GuildMemberFlags;
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+ const BitField = require('./BitField');
3
+
4
+ /**
5
+ * Data structure that makes it easy to calculate intents.
6
+ * @extends {BitField}
7
+ */
8
+ class Intents extends BitField {}
9
+
10
+ /**
11
+ * @name Intents
12
+ * @kind constructor
13
+ * @memberof Intents
14
+ * @param {IntentsResolvable} [bits=0] Bit(s) to read from
15
+ */
16
+
17
+ /**
18
+ * Data that can be resolved to give a permission number. This can be:
19
+ * * A string (see {@link Intents.FLAGS})
20
+ * * An intents flag
21
+ * * An instance of Intents
22
+ * * An array of IntentsResolvable
23
+ * @typedef {string|number|Intents|IntentsResolvable[]} IntentsResolvable
24
+ */
25
+
26
+ /**
27
+ * Numeric WebSocket intents. All available properties:
28
+ * * `GUILDS`
29
+ * * `GUILD_MEMBERS`
30
+ * * `GUILD_BANS`
31
+ * * `GUILD_EMOJIS_AND_STICKERS`
32
+ * * `GUILD_INTEGRATIONS`
33
+ * * `GUILD_WEBHOOKS`
34
+ * * `GUILD_INVITES`
35
+ * * `GUILD_VOICE_STATES`
36
+ * * `GUILD_PRESENCES`
37
+ * * `GUILD_MESSAGES`
38
+ * * `GUILD_MESSAGE_REACTIONS`
39
+ * * `GUILD_MESSAGE_TYPING`
40
+ * * `DIRECT_MESSAGES`
41
+ * * `DIRECT_MESSAGE_REACTIONS`
42
+ * * `DIRECT_MESSAGE_TYPING`
43
+ * * `MESSAGE_CONTENT`
44
+ * * `GUILD_SCHEDULED_EVENTS`
45
+ * * `AUTO_MODERATION_CONFIGURATION`
46
+ * * `AUTO_MODERATION_EXECUTION`
47
+ * @type {Object}
48
+ * @see {@link https://discord.com/developers/docs/topics/gateway#list-of-intents}
49
+ */
50
+ Intents.FLAGS = {
51
+ GUILDS: 1 << 0,
52
+ GUILD_MEMBERS: 1 << 1,
53
+ GUILD_BANS: 1 << 2,
54
+ GUILD_EMOJIS_AND_STICKERS: 1 << 3,
55
+ GUILD_INTEGRATIONS: 1 << 4,
56
+ GUILD_WEBHOOKS: 1 << 5,
57
+ GUILD_INVITES: 1 << 6,
58
+ GUILD_VOICE_STATES: 1 << 7,
59
+ GUILD_PRESENCES: 1 << 8,
60
+ GUILD_MESSAGES: 1 << 9,
61
+ GUILD_MESSAGE_REACTIONS: 1 << 10,
62
+ GUILD_MESSAGE_TYPING: 1 << 11,
63
+ DIRECT_MESSAGES: 1 << 12,
64
+ DIRECT_MESSAGE_REACTIONS: 1 << 13,
65
+ DIRECT_MESSAGE_TYPING: 1 << 14,
66
+ MESSAGE_CONTENT: 1 << 15,
67
+ GUILD_SCHEDULED_EVENTS: 1 << 16,
68
+ AUTO_MODERATION_CONFIGURATION: 1 << 20,
69
+ AUTO_MODERATION_EXECUTION: 1 << 21,
70
+ };
71
+
72
+ Intents.ALL = Object.values(Intents.FLAGS).reduce((all, p) => all | p, 0);
73
+
74
+ module.exports = Intents;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with an {@link InviteFlags#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class InviteFlags extends BitField {}
10
+
11
+ /**
12
+ * @name InviteFlags
13
+ * @kind constructor
14
+ * @memberof InviteFlags
15
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
16
+ */
17
+
18
+ /**
19
+ * Numeric the Discord invite flags. All available properties:
20
+ * * `IS_GUEST_INVITE`
21
+ * * `IS_VIEWED`
22
+ * * `IS_ENHANCED`
23
+ * * `IS_APPLICATION_BYPASS`
24
+ * @type {Object}
25
+ * @see {@link https://docs.discord.food/resources/invite#invite-flags}
26
+ */
27
+ InviteFlags.FLAGS = {
28
+ IS_GUEST_INVITE: 1 << 0,
29
+ IS_VIEWED: 1 << 1,
30
+ IS_ENHANCED: 1 << 2,
31
+ IS_APPLICATION_BYPASS: 1 << 3,
32
+ };
33
+
34
+ module.exports = InviteFlags;