djs-selfbot-v13 3.1.8 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +48 -37
- package/package.json +44 -26
- package/src/WebSocket.js +39 -39
- package/src/client/BaseClient.js +86 -86
- package/src/client/Client.js +934 -765
- package/src/client/WebhookClient.js +61 -61
- package/src/client/actions/Action.js +116 -120
- package/src/client/actions/ActionsManager.js +80 -78
- package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -34
- package/src/client/actions/AutoModerationActionExecution.js +27 -27
- package/src/client/actions/AutoModerationRuleCreate.js +28 -28
- package/src/client/actions/AutoModerationRuleDelete.js +32 -32
- package/src/client/actions/AutoModerationRuleUpdate.js +30 -30
- package/src/client/actions/ChannelCreate.js +23 -23
- package/src/client/actions/ChannelDelete.js +39 -39
- package/src/client/actions/ChannelUpdate.js +43 -43
- package/src/client/actions/GuildAuditLogEntryCreate.js +29 -29
- package/src/client/actions/GuildBanAdd.js +20 -20
- package/src/client/actions/GuildBanRemove.js +25 -25
- package/src/client/actions/GuildChannelsPositionUpdate.js +21 -21
- package/src/client/actions/GuildDelete.js +65 -65
- package/src/client/actions/GuildEmojiCreate.js +20 -20
- package/src/client/actions/GuildEmojiDelete.js +21 -21
- package/src/client/actions/GuildEmojiUpdate.js +20 -20
- package/src/client/actions/GuildEmojisUpdate.js +34 -34
- package/src/client/actions/GuildIntegrationsUpdate.js +19 -19
- package/src/client/actions/GuildMemberRemove.js +33 -33
- package/src/client/actions/GuildMemberUpdate.js +44 -44
- package/src/client/actions/GuildRoleCreate.js +25 -25
- package/src/client/actions/GuildRoleDelete.js +31 -31
- package/src/client/actions/GuildRoleUpdate.js +39 -39
- package/src/client/actions/GuildRolesPositionUpdate.js +21 -21
- package/src/client/actions/GuildScheduledEventCreate.js +27 -27
- package/src/client/actions/GuildScheduledEventDelete.js +31 -31
- package/src/client/actions/GuildScheduledEventUpdate.js +30 -30
- package/src/client/actions/GuildScheduledEventUserAdd.js +32 -32
- package/src/client/actions/GuildScheduledEventUserRemove.js +32 -32
- package/src/client/actions/GuildStickerCreate.js +20 -20
- package/src/client/actions/GuildStickerDelete.js +21 -21
- package/src/client/actions/GuildStickerUpdate.js +20 -20
- package/src/client/actions/GuildStickersUpdate.js +34 -34
- package/src/client/actions/GuildUpdate.js +33 -33
- package/src/client/actions/InviteCreate.js +28 -28
- package/src/client/actions/InviteDelete.js +30 -30
- package/src/client/actions/MessageCreate.js +50 -46
- package/src/client/actions/MessageDelete.js +32 -32
- package/src/client/actions/MessageDeleteBulk.js +46 -46
- package/src/client/actions/MessagePollVoteAdd.js +33 -0
- package/src/client/actions/MessagePollVoteRemove.js +33 -0
- package/src/client/actions/MessageReactionAdd.js +68 -56
- package/src/client/actions/MessageReactionRemove.js +50 -45
- package/src/client/actions/MessageReactionRemoveAll.js +33 -33
- package/src/client/actions/MessageReactionRemoveEmoji.js +28 -28
- package/src/client/actions/MessageUpdate.js +26 -26
- package/src/client/actions/PresenceUpdate.js +50 -46
- package/src/client/actions/StageInstanceCreate.js +28 -28
- package/src/client/actions/StageInstanceDelete.js +33 -33
- package/src/client/actions/StageInstanceUpdate.js +30 -30
- package/src/client/actions/ThreadCreate.js +24 -24
- package/src/client/actions/ThreadDelete.js +32 -32
- package/src/client/actions/ThreadListSync.js +59 -59
- package/src/client/actions/ThreadMemberUpdate.js +30 -30
- package/src/client/actions/ThreadMembersUpdate.js +34 -34
- package/src/client/actions/TypingStart.js +29 -29
- package/src/client/actions/UserUpdate.js +35 -35
- package/src/client/actions/VoiceStateUpdate.js +50 -57
- package/src/client/actions/WebhooksUpdate.js +20 -20
- package/src/client/voice/ClientVoiceManager.js +151 -51
- package/src/client/voice/VoiceConnection.js +1249 -0
- package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
- package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
- package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
- package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
- package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
- package/src/client/voice/networking/VoiceUDPClient.js +173 -0
- package/src/client/voice/networking/VoiceWebSocket.js +286 -0
- package/src/client/voice/player/MediaPlayer.js +321 -0
- package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
- package/src/client/voice/player/processing/IvfSplitter.js +106 -0
- package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
- package/src/client/voice/receiver/PacketHandler.js +260 -0
- package/src/client/voice/receiver/Receiver.js +96 -0
- package/src/client/voice/receiver/Recorder.js +173 -0
- package/src/client/voice/util/Function.js +116 -0
- package/src/client/voice/util/PlayInterface.js +122 -0
- package/src/client/voice/util/Secretbox.js +64 -0
- package/src/client/voice/util/Silence.js +16 -0
- package/src/client/voice/util/Socket.js +62 -0
- package/src/client/voice/util/VolumeInterface.js +104 -0
- package/src/client/websocket/WebSocketManager.js +392 -392
- package/src/client/websocket/WebSocketShard.js +907 -906
- package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -18
- package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -20
- package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -20
- package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -5
- package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/CALL_CREATE.js +14 -14
- package/src/client/websocket/handlers/CALL_DELETE.js +11 -11
- package/src/client/websocket/handlers/CALL_UPDATE.js +11 -11
- package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -5
- package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -22
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -19
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -16
- package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -16
- package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_CREATE.js +52 -53
- package/src/client/websocket/handlers/GUILD_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -39
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -20
- package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -5
- package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -5
- package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -5
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -12
- package/src/client/websocket/handlers/INVITE_CREATE.js +5 -5
- package/src/client/websocket/handlers/INVITE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
- package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -5
- package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -16
- package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/READY.js +121 -80
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -19
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -17
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -41
- package/src/client/websocket/handlers/RESUMED.js +14 -14
- package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -5
- package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_CREATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_DELETE.js +5 -5
- package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -16
- package/src/client/websocket/handlers/TYPING_START.js +5 -5
- package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -6
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -78
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/USER_UPDATE.js +5 -5
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -12
- package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -6
- package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -5
- package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -5
- package/src/client/websocket/handlers/index.js +84 -81
- package/src/errors/DJSError.js +61 -61
- package/src/errors/Messages.js +217 -182
- package/src/errors/index.js +4 -4
- package/src/index.js +172 -158
- package/src/managers/ApplicationCommandManager.js +264 -264
- package/src/managers/ApplicationCommandPermissionsManager.js +417 -417
- package/src/managers/AutoModerationRuleManager.js +296 -296
- package/src/managers/BaseGuildEmojiManager.js +80 -80
- package/src/managers/BaseManager.js +19 -19
- package/src/managers/BillingManager.js +66 -66
- package/src/managers/CachedManager.js +71 -71
- package/src/managers/ChannelManager.js +148 -138
- package/src/managers/ClientUserSettingManager.js +372 -372
- package/src/managers/DataManager.js +61 -61
- package/src/managers/GuildBanManager.js +250 -204
- package/src/managers/GuildChannelManager.js +488 -504
- package/src/managers/GuildEmojiManager.js +171 -171
- package/src/managers/GuildEmojiRoleManager.js +118 -118
- package/src/managers/GuildForumThreadManager.js +108 -108
- package/src/managers/GuildInviteManager.js +213 -213
- package/src/managers/GuildManager.js +338 -304
- package/src/managers/GuildMemberManager.js +599 -593
- package/src/managers/GuildMemberRoleManager.js +195 -191
- package/src/managers/GuildScheduledEventManager.js +314 -296
- package/src/managers/GuildSettingManager.js +155 -155
- package/src/managers/GuildStickerManager.js +179 -179
- package/src/managers/GuildTextThreadManager.js +98 -98
- package/src/managers/InteractionManager.js +39 -39
- package/src/managers/MessageManager.js +423 -391
- package/src/managers/PermissionOverwriteManager.js +164 -166
- package/src/managers/PresenceManager.js +71 -58
- package/src/managers/ReactionManager.js +67 -67
- package/src/managers/ReactionUserManager.js +73 -71
- package/src/managers/RelationshipManager.js +278 -265
- package/src/managers/RoleManager.js +448 -352
- package/src/managers/SessionManager.js +66 -0
- package/src/managers/StageInstanceManager.js +162 -162
- package/src/managers/ThreadManager.js +175 -174
- package/src/managers/ThreadMemberManager.js +186 -186
- package/src/managers/UserManager.js +136 -146
- package/src/managers/UserNoteManager.js +53 -53
- package/src/managers/VoiceStateManager.js +59 -37
- package/src/rest/APIRequest.js +154 -154
- package/src/rest/APIRouter.js +53 -53
- package/src/rest/DiscordAPIError.js +119 -104
- package/src/rest/HTTPError.js +62 -62
- package/src/rest/RESTManager.js +67 -62
- package/src/rest/RateLimitError.js +55 -55
- package/src/rest/RequestHandler.js +466 -444
- package/src/sharding/Shard.js +444 -443
- package/src/sharding/ShardClientUtil.js +279 -275
- package/src/sharding/ShardingManager.js +319 -318
- package/src/structures/AnonymousGuild.js +98 -98
- package/src/structures/ApplicationCommand.js +593 -593
- package/src/structures/ApplicationRoleConnectionMetadata.js +48 -48
- package/src/structures/AutoModerationActionExecution.js +89 -89
- package/src/structures/AutoModerationRule.js +294 -294
- package/src/structures/AutocompleteInteraction.js +107 -107
- package/src/structures/Base.js +43 -43
- package/src/structures/BaseCommandInteraction.js +211 -211
- package/src/structures/BaseGuild.js +116 -116
- package/src/structures/BaseGuildEmoji.js +56 -56
- package/src/structures/BaseGuildTextChannel.js +191 -191
- package/src/structures/BaseGuildVoiceChannel.js +241 -241
- package/src/structures/BaseMessageComponent.js +181 -114
- package/src/structures/ButtonInteraction.js +11 -11
- package/src/structures/CallState.js +63 -63
- package/src/structures/CategoryChannel.js +85 -85
- package/src/structures/Channel.js +284 -270
- package/src/structures/ClientPresence.js +77 -88
- package/src/structures/ClientUser.js +479 -450
- package/src/structures/CommandInteraction.js +41 -41
- package/src/structures/CommandInteractionOptionResolver.js +276 -276
- package/src/structures/ContainerComponent.js +68 -0
- package/src/structures/ContextMenuInteraction.js +65 -65
- package/src/structures/DMChannel.js +219 -217
- package/src/structures/DirectoryChannel.js +20 -20
- package/src/structures/Emoji.js +148 -148
- package/src/structures/FileComponent.js +49 -0
- package/src/structures/ForumChannel.js +31 -261
- package/src/structures/GroupDMChannel.js +394 -387
- package/src/structures/Guild.js +1643 -1608
- package/src/structures/GuildAuditLogs.js +746 -729
- package/src/structures/GuildBan.js +59 -59
- package/src/structures/GuildBoost.js +108 -108
- package/src/structures/GuildChannel.js +470 -468
- package/src/structures/GuildEmoji.js +161 -161
- package/src/structures/GuildMember.js +636 -568
- package/src/structures/GuildPreview.js +191 -191
- package/src/structures/GuildPreviewEmoji.js +27 -27
- package/src/structures/GuildScheduledEvent.js +536 -441
- package/src/structures/GuildTemplate.js +236 -236
- package/src/structures/Integration.js +188 -188
- package/src/structures/IntegrationApplication.js +96 -96
- package/src/structures/Interaction.js +290 -290
- package/src/structures/InteractionCollector.js +248 -248
- package/src/structures/InteractionWebhook.js +43 -43
- package/src/structures/Invite.js +358 -358
- package/src/structures/InviteGuild.js +23 -23
- package/src/structures/InviteStageInstance.js +86 -86
- package/src/structures/MediaChannel.js +11 -0
- package/src/structures/MediaGalleryComponent.js +41 -0
- package/src/structures/MediaGalleryItem.js +47 -0
- package/src/structures/Message.js +1252 -1236
- package/src/structures/MessageActionRow.js +105 -103
- package/src/structures/MessageAttachment.js +216 -204
- package/src/structures/MessageButton.js +166 -165
- package/src/structures/MessageCollector.js +146 -146
- package/src/structures/MessageComponentInteraction.js +120 -120
- package/src/structures/MessageContextMenuInteraction.js +20 -20
- package/src/structures/MessageEmbed.js +596 -586
- package/src/structures/MessageMentions.js +273 -273
- package/src/structures/MessagePayload.js +354 -316
- package/src/structures/MessageReaction.js +181 -171
- package/src/structures/MessageSelectMenu.js +141 -140
- package/src/structures/Modal.js +161 -174
- package/src/structures/ModalSubmitFieldsResolver.js +53 -53
- package/src/structures/ModalSubmitInteraction.js +119 -119
- package/src/structures/NewsChannel.js +32 -32
- package/src/structures/OAuth2Guild.js +28 -28
- package/src/structures/PermissionOverwrites.js +198 -196
- package/src/structures/Poll.js +108 -0
- package/src/structures/PollAnswer.js +88 -0
- package/src/structures/Presence.js +1105 -443
- package/src/structures/ReactionCollector.js +229 -229
- package/src/structures/ReactionEmoji.js +31 -31
- package/src/structures/Role.js +590 -531
- package/src/structures/SectionComponent.js +48 -0
- package/src/structures/SelectMenuInteraction.js +21 -21
- package/src/structures/SeparatorComponent.js +48 -0
- package/src/structures/Session.js +81 -0
- package/src/structures/StageChannel.js +104 -104
- package/src/structures/StageInstance.js +208 -208
- package/src/structures/Sticker.js +310 -310
- package/src/structures/StickerPack.js +95 -95
- package/src/structures/StoreChannel.js +56 -56
- package/src/structures/Team.js +118 -118
- package/src/structures/TeamMember.js +80 -71
- package/src/structures/TextChannel.js +33 -33
- package/src/structures/TextDisplayComponent.js +40 -0
- package/src/structures/TextInputComponent.js +132 -131
- package/src/structures/ThreadChannel.js +605 -607
- package/src/structures/ThreadMember.js +105 -105
- package/src/structures/ThreadOnlyChannel.js +249 -0
- package/src/structures/ThumbnailComponent.js +57 -0
- package/src/structures/Typing.js +74 -74
- package/src/structures/UnfurledMediaItem.js +29 -0
- package/src/structures/User.js +640 -509
- package/src/structures/UserContextMenuInteraction.js +29 -29
- package/src/structures/VoiceChannel.js +110 -110
- package/src/structures/VoiceChannelEffect.js +69 -0
- package/src/structures/VoiceRegion.js +53 -53
- package/src/structures/VoiceState.js +354 -341
- package/src/structures/WebEmbed.js +373 -373
- package/src/structures/Webhook.js +478 -467
- package/src/structures/WelcomeChannel.js +60 -60
- package/src/structures/WelcomeScreen.js +48 -48
- package/src/structures/Widget.js +87 -87
- package/src/structures/WidgetMember.js +99 -99
- package/src/structures/interfaces/Application.js +825 -313
- package/src/structures/interfaces/Collector.js +300 -300
- package/src/structures/interfaces/InteractionResponses.js +313 -313
- package/src/structures/interfaces/TextBasedChannel.js +759 -721
- package/src/util/APITypes.js +59 -0
- package/src/util/ActivityFlags.js +44 -44
- package/src/util/ApplicationFlags.js +76 -76
- package/src/util/AttachmentFlags.js +38 -38
- package/src/util/BitField.js +170 -170
- package/src/util/ChannelFlags.js +45 -45
- package/src/util/Constants.js +1914 -1760
- package/src/util/DataResolver.js +146 -145
- package/src/util/Formatters.js +228 -228
- package/src/util/GuildMemberFlags.js +43 -43
- package/src/util/Intents.js +74 -74
- package/src/util/InviteFlags.js +34 -29
- package/src/util/LimitedCollection.js +131 -131
- package/src/util/MessageFlags.js +63 -54
- package/src/util/Options.js +358 -342
- package/src/util/Permissions.js +202 -192
- package/src/util/PremiumUsageFlags.js +31 -31
- package/src/util/PurchasedFlags.js +33 -33
- package/src/util/RemoteAuth.js +382 -379
- package/src/util/RoleFlags.js +37 -37
- package/src/util/SnowflakeUtil.js +92 -92
- package/src/util/Speaking.js +33 -0
- package/src/util/Sweepers.js +466 -466
- package/src/util/SystemChannelFlags.js +55 -55
- package/src/util/ThreadMemberFlags.js +30 -30
- package/src/util/UserFlags.js +104 -104
- package/src/util/Util.js +1048 -803
- package/typings/enums.d.ts +439 -291
- package/typings/index.d.ts +8247 -7390
- package/typings/rawDataTypes.d.ts +403 -342
- package/src/structures/RichPresence.js +0 -702
package/src/util/Intents.js
CHANGED
|
@@ -1,74 +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;
|
|
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;
|
package/src/util/InviteFlags.js
CHANGED
|
@@ -1,29 +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
|
-
* * `
|
|
21
|
-
* * `
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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;
|
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { setInterval } = require('node:timers');
|
|
4
|
-
const { Collection } = require('@discordjs/collection');
|
|
5
|
-
const { _cleanupSymbol } = require('./Constants.js');
|
|
6
|
-
const Sweepers = require('./Sweepers.js');
|
|
7
|
-
const { TypeError } = require('../errors/DJSError.js');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @typedef {Function} SweepFilter
|
|
11
|
-
* @param {LimitedCollection} collection The collection being swept
|
|
12
|
-
* @returns {Function|null} Return `null` to skip sweeping, otherwise a function passed to `sweep()`,
|
|
13
|
-
* See {@link [Collection#sweep](https://discord.js.org/docs/packages/collection/stable/Collection:Class#sweep)}
|
|
14
|
-
* for the definition of this function.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Options for defining the behavior of a LimitedCollection
|
|
19
|
-
* @typedef {Object} LimitedCollectionOptions
|
|
20
|
-
* @property {?number} [maxSize=Infinity] The maximum size of the Collection
|
|
21
|
-
* @property {?Function} [keepOverLimit=null] A function, which is passed the value and key of an entry, ran to decide
|
|
22
|
-
* to keep an entry past the maximum size
|
|
23
|
-
* @property {?SweepFilter} [sweepFilter=null] DEPRECATED: There is no direct alternative to this,
|
|
24
|
-
* however most of its purpose is fulfilled by {@link Client#sweepers}
|
|
25
|
-
* A function ran every `sweepInterval` to determine how to sweep
|
|
26
|
-
* @property {?number} [sweepInterval=0] DEPRECATED: There is no direct alternative to this,
|
|
27
|
-
* however most of its purpose is fulfilled by {@link Client#sweepers}
|
|
28
|
-
* How frequently, in seconds, to sweep the collection.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* A Collection which holds a max amount of entries and sweeps periodically.
|
|
33
|
-
* @extends {Collection}
|
|
34
|
-
* @param {LimitedCollectionOptions} [options={}] Options for constructing the Collection.
|
|
35
|
-
* @param {Iterable} [iterable=null] Optional entries passed to the Map constructor.
|
|
36
|
-
*/
|
|
37
|
-
class LimitedCollection extends Collection {
|
|
38
|
-
constructor(options = {}, iterable) {
|
|
39
|
-
if (typeof options !== 'object' || options === null) {
|
|
40
|
-
throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
41
|
-
}
|
|
42
|
-
const { maxSize = Infinity, keepOverLimit = null, sweepInterval = 0, sweepFilter = null } = options;
|
|
43
|
-
|
|
44
|
-
if (typeof maxSize !== 'number') {
|
|
45
|
-
throw new TypeError('INVALID_TYPE', 'maxSize', 'number');
|
|
46
|
-
}
|
|
47
|
-
if (keepOverLimit !== null && typeof keepOverLimit !== 'function') {
|
|
48
|
-
throw new TypeError('INVALID_TYPE', 'keepOverLimit', 'function');
|
|
49
|
-
}
|
|
50
|
-
if (typeof sweepInterval !== 'number') {
|
|
51
|
-
throw new TypeError('INVALID_TYPE', 'sweepInterval', 'number');
|
|
52
|
-
}
|
|
53
|
-
if (sweepFilter !== null && typeof sweepFilter !== 'function') {
|
|
54
|
-
throw new TypeError('INVALID_TYPE', 'sweepFilter', 'function');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
super(iterable);
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* The max size of the Collection.
|
|
61
|
-
* @type {number}
|
|
62
|
-
*/
|
|
63
|
-
this.maxSize = maxSize;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* A function called to check if an entry should be kept when the Collection is at max size.
|
|
67
|
-
* @type {?Function}
|
|
68
|
-
*/
|
|
69
|
-
this.keepOverLimit = keepOverLimit;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* A function called every sweep interval that returns a function passed to `sweep`.
|
|
73
|
-
* @deprecated in favor of {@link Client#sweepers}
|
|
74
|
-
* @type {?SweepFilter}
|
|
75
|
-
*/
|
|
76
|
-
this.sweepFilter = sweepFilter;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* The id of the interval being used to sweep.
|
|
80
|
-
* @deprecated in favor of {@link Client#sweepers}
|
|
81
|
-
* @type {?Timeout}
|
|
82
|
-
*/
|
|
83
|
-
this.interval =
|
|
84
|
-
sweepInterval > 0 && sweepInterval !== Infinity && sweepFilter
|
|
85
|
-
? setInterval(() => {
|
|
86
|
-
const sweepFn = this.sweepFilter(this);
|
|
87
|
-
if (sweepFn === null) return;
|
|
88
|
-
if (typeof sweepFn !== 'function') throw new TypeError('SWEEP_FILTER_RETURN');
|
|
89
|
-
this.sweep(sweepFn);
|
|
90
|
-
}, sweepInterval * 1_000).unref()
|
|
91
|
-
: null;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
set(key, value) {
|
|
95
|
-
if (this.maxSize === 0) return this;
|
|
96
|
-
if (this.size >= this.maxSize && !this.has(key)) {
|
|
97
|
-
for (const [k, v] of this.entries()) {
|
|
98
|
-
const keep = this.keepOverLimit?.(v, k, this) ?? false;
|
|
99
|
-
if (!keep) {
|
|
100
|
-
this.delete(k);
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return super.set(key, value);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Create a sweepFilter function that uses a lifetime to determine sweepability.
|
|
110
|
-
* @param {LifetimeFilterOptions} [options={}] The options used to generate the filter function
|
|
111
|
-
* @deprecated Use {@link Sweepers.filterByLifetime} instead
|
|
112
|
-
* @returns {SweepFilter}
|
|
113
|
-
*/
|
|
114
|
-
static filterByLifetime({
|
|
115
|
-
lifetime = 14400,
|
|
116
|
-
getComparisonTimestamp = e => e?.createdTimestamp,
|
|
117
|
-
excludeFromSweep = () => false,
|
|
118
|
-
} = {}) {
|
|
119
|
-
return Sweepers.filterByLifetime({ lifetime, getComparisonTimestamp, excludeFromSweep });
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
[_cleanupSymbol]() {
|
|
123
|
-
return this.interval ? () => clearInterval(this.interval) : null;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
static get [Symbol.species]() {
|
|
127
|
-
return Collection;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
module.exports = LimitedCollection;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { setInterval } = require('node:timers');
|
|
4
|
+
const { Collection } = require('@discordjs/collection');
|
|
5
|
+
const { _cleanupSymbol } = require('./Constants.js');
|
|
6
|
+
const Sweepers = require('./Sweepers.js');
|
|
7
|
+
const { TypeError } = require('../errors/DJSError.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {Function} SweepFilter
|
|
11
|
+
* @param {LimitedCollection} collection The collection being swept
|
|
12
|
+
* @returns {Function|null} Return `null` to skip sweeping, otherwise a function passed to `sweep()`,
|
|
13
|
+
* See {@link [Collection#sweep](https://discord.js.org/docs/packages/collection/stable/Collection:Class#sweep)}
|
|
14
|
+
* for the definition of this function.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Options for defining the behavior of a LimitedCollection
|
|
19
|
+
* @typedef {Object} LimitedCollectionOptions
|
|
20
|
+
* @property {?number} [maxSize=Infinity] The maximum size of the Collection
|
|
21
|
+
* @property {?Function} [keepOverLimit=null] A function, which is passed the value and key of an entry, ran to decide
|
|
22
|
+
* to keep an entry past the maximum size
|
|
23
|
+
* @property {?SweepFilter} [sweepFilter=null] DEPRECATED: There is no direct alternative to this,
|
|
24
|
+
* however most of its purpose is fulfilled by {@link Client#sweepers}
|
|
25
|
+
* A function ran every `sweepInterval` to determine how to sweep
|
|
26
|
+
* @property {?number} [sweepInterval=0] DEPRECATED: There is no direct alternative to this,
|
|
27
|
+
* however most of its purpose is fulfilled by {@link Client#sweepers}
|
|
28
|
+
* How frequently, in seconds, to sweep the collection.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A Collection which holds a max amount of entries and sweeps periodically.
|
|
33
|
+
* @extends {Collection}
|
|
34
|
+
* @param {LimitedCollectionOptions} [options={}] Options for constructing the Collection.
|
|
35
|
+
* @param {Iterable} [iterable=null] Optional entries passed to the Map constructor.
|
|
36
|
+
*/
|
|
37
|
+
class LimitedCollection extends Collection {
|
|
38
|
+
constructor(options = {}, iterable) {
|
|
39
|
+
if (typeof options !== 'object' || options === null) {
|
|
40
|
+
throw new TypeError('INVALID_TYPE', 'options', 'object', true);
|
|
41
|
+
}
|
|
42
|
+
const { maxSize = Infinity, keepOverLimit = null, sweepInterval = 0, sweepFilter = null } = options;
|
|
43
|
+
|
|
44
|
+
if (typeof maxSize !== 'number') {
|
|
45
|
+
throw new TypeError('INVALID_TYPE', 'maxSize', 'number');
|
|
46
|
+
}
|
|
47
|
+
if (keepOverLimit !== null && typeof keepOverLimit !== 'function') {
|
|
48
|
+
throw new TypeError('INVALID_TYPE', 'keepOverLimit', 'function');
|
|
49
|
+
}
|
|
50
|
+
if (typeof sweepInterval !== 'number') {
|
|
51
|
+
throw new TypeError('INVALID_TYPE', 'sweepInterval', 'number');
|
|
52
|
+
}
|
|
53
|
+
if (sweepFilter !== null && typeof sweepFilter !== 'function') {
|
|
54
|
+
throw new TypeError('INVALID_TYPE', 'sweepFilter', 'function');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
super(iterable);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The max size of the Collection.
|
|
61
|
+
* @type {number}
|
|
62
|
+
*/
|
|
63
|
+
this.maxSize = maxSize;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* A function called to check if an entry should be kept when the Collection is at max size.
|
|
67
|
+
* @type {?Function}
|
|
68
|
+
*/
|
|
69
|
+
this.keepOverLimit = keepOverLimit;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* A function called every sweep interval that returns a function passed to `sweep`.
|
|
73
|
+
* @deprecated in favor of {@link Client#sweepers}
|
|
74
|
+
* @type {?SweepFilter}
|
|
75
|
+
*/
|
|
76
|
+
this.sweepFilter = sweepFilter;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The id of the interval being used to sweep.
|
|
80
|
+
* @deprecated in favor of {@link Client#sweepers}
|
|
81
|
+
* @type {?Timeout}
|
|
82
|
+
*/
|
|
83
|
+
this.interval =
|
|
84
|
+
sweepInterval > 0 && sweepInterval !== Infinity && sweepFilter
|
|
85
|
+
? setInterval(() => {
|
|
86
|
+
const sweepFn = this.sweepFilter(this);
|
|
87
|
+
if (sweepFn === null) return;
|
|
88
|
+
if (typeof sweepFn !== 'function') throw new TypeError('SWEEP_FILTER_RETURN');
|
|
89
|
+
this.sweep(sweepFn);
|
|
90
|
+
}, sweepInterval * 1_000).unref()
|
|
91
|
+
: null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
set(key, value) {
|
|
95
|
+
if (this.maxSize === 0) return this;
|
|
96
|
+
if (this.size >= this.maxSize && !this.has(key)) {
|
|
97
|
+
for (const [k, v] of this.entries()) {
|
|
98
|
+
const keep = this.keepOverLimit?.(v, k, this) ?? false;
|
|
99
|
+
if (!keep) {
|
|
100
|
+
this.delete(k);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return super.set(key, value);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Create a sweepFilter function that uses a lifetime to determine sweepability.
|
|
110
|
+
* @param {LifetimeFilterOptions} [options={}] The options used to generate the filter function
|
|
111
|
+
* @deprecated Use {@link Sweepers.filterByLifetime} instead
|
|
112
|
+
* @returns {SweepFilter}
|
|
113
|
+
*/
|
|
114
|
+
static filterByLifetime({
|
|
115
|
+
lifetime = 14400,
|
|
116
|
+
getComparisonTimestamp = e => e?.createdTimestamp,
|
|
117
|
+
excludeFromSweep = () => false,
|
|
118
|
+
} = {}) {
|
|
119
|
+
return Sweepers.filterByLifetime({ lifetime, getComparisonTimestamp, excludeFromSweep });
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[_cleanupSymbol]() {
|
|
123
|
+
return this.interval ? () => clearInterval(this.interval) : null;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
static get [Symbol.species]() {
|
|
127
|
+
return Collection;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
module.exports = LimitedCollection;
|
package/src/util/MessageFlags.js
CHANGED
|
@@ -1,54 +1,63 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const BitField = require('./BitField');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Data structure that makes it easy to interact with a {@link Message#flags} bitfield.
|
|
7
|
-
* @extends {BitField}
|
|
8
|
-
*/
|
|
9
|
-
class MessageFlags extends BitField {}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @name MessageFlags
|
|
13
|
-
* @kind constructor
|
|
14
|
-
* @memberof MessageFlags
|
|
15
|
-
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Bitfield of the packed bits
|
|
20
|
-
* @type {number}
|
|
21
|
-
* @name MessageFlags#bitfield
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Numeric message flags. All available properties:
|
|
26
|
-
* * `CROSSPOSTED`
|
|
27
|
-
* * `IS_CROSSPOST`
|
|
28
|
-
* * `SUPPRESS_EMBEDS`
|
|
29
|
-
* * `SOURCE_MESSAGE_DELETED`
|
|
30
|
-
* * `URGENT`
|
|
31
|
-
* * `HAS_THREAD`
|
|
32
|
-
* * `EPHEMERAL`
|
|
33
|
-
* * `LOADING`
|
|
34
|
-
* * `FAILED_TO_MENTION_SOME_ROLES_IN_THREAD`
|
|
35
|
-
* * `
|
|
36
|
-
* * `
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BitField = require('./BitField');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Data structure that makes it easy to interact with a {@link Message#flags} bitfield.
|
|
7
|
+
* @extends {BitField}
|
|
8
|
+
*/
|
|
9
|
+
class MessageFlags extends BitField {}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @name MessageFlags
|
|
13
|
+
* @kind constructor
|
|
14
|
+
* @memberof MessageFlags
|
|
15
|
+
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Bitfield of the packed bits
|
|
20
|
+
* @type {number}
|
|
21
|
+
* @name MessageFlags#bitfield
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Numeric message flags. All available properties:
|
|
26
|
+
* * `CROSSPOSTED`
|
|
27
|
+
* * `IS_CROSSPOST`
|
|
28
|
+
* * `SUPPRESS_EMBEDS`
|
|
29
|
+
* * `SOURCE_MESSAGE_DELETED`
|
|
30
|
+
* * `URGENT`
|
|
31
|
+
* * `HAS_THREAD`
|
|
32
|
+
* * `EPHEMERAL`
|
|
33
|
+
* * `LOADING`
|
|
34
|
+
* * `FAILED_TO_MENTION_SOME_ROLES_IN_THREAD`
|
|
35
|
+
* * `GUILD_FEED_HIDDEN`
|
|
36
|
+
* * `SHOULD_SHOW_LINK_NOT_DISCORD_WARNING`
|
|
37
|
+
* * `SUPPRESS_NOTIFICATIONS`
|
|
38
|
+
* * `IS_VOICE_MESSAGE`
|
|
39
|
+
* * `HAS_SNAPSHOT`
|
|
40
|
+
* * `IS_COMPONENTS_V2`
|
|
41
|
+
* @type {Object}
|
|
42
|
+
* @see {@link https://discord.com/developers/docs/resources/channel#message-object-message-flags}
|
|
43
|
+
* @see {@link https://docs.discord.food/resources/message#message-flags}
|
|
44
|
+
*/
|
|
45
|
+
MessageFlags.FLAGS = {
|
|
46
|
+
CROSSPOSTED: 1 << 0,
|
|
47
|
+
IS_CROSSPOST: 1 << 1,
|
|
48
|
+
SUPPRESS_EMBEDS: 1 << 2,
|
|
49
|
+
SOURCE_MESSAGE_DELETED: 1 << 3,
|
|
50
|
+
URGENT: 1 << 4,
|
|
51
|
+
HAS_THREAD: 1 << 5,
|
|
52
|
+
EPHEMERAL: 1 << 6,
|
|
53
|
+
LOADING: 1 << 7,
|
|
54
|
+
FAILED_TO_MENTION_SOME_ROLES_IN_THREAD: 1 << 8,
|
|
55
|
+
GUILD_FEED_HIDDEN: 1 << 9,
|
|
56
|
+
SHOULD_SHOW_LINK_NOT_DISCORD_WARNING: 1 << 10,
|
|
57
|
+
SUPPRESS_NOTIFICATIONS: 1 << 12,
|
|
58
|
+
IS_VOICE_MESSAGE: 1 << 13,
|
|
59
|
+
HAS_SNAPSHOT: 1 << 14,
|
|
60
|
+
IS_COMPONENTS_V2: 1 << 15,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
module.exports = MessageFlags;
|