{"version":3,"sources":["../../src/lib/limits.ts","../../src/lib/regexes.ts","../../src/lib/resolvers/AutocompleteInteractionOptionResolver.ts","../../src/lib/resolvers/ChatInputInteractionOptionResolver.ts","../../src/lib/resolvers/ContextMenuInteractionOptionResolver.ts","../../src/lib/resolvers/ModalInteractionOptionResolver.ts","../../src/lib/TwemojiRegex.ts"],"names":["ApplicationCommandOptionType","InteractionType","option","ApplicationCommandType","ComponentType"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Namespace containing limits related to Discord channels.\n */\nexport const ChannelLimits = {\n\t/**\n\t * Maximum characters allowed in a channel description.\n\t */\n\tMaximumDescriptionLength: 1024,\n\n\t/**\n\t * Maximum characters allowed in a channel name.\n\t */\n\tMaximumNameLength: 100,\n\n\t/**\n\t * Maximum viewers allowed per screen share.\n\t * @deprecated Use `VoiceChannelLimits.MaximumViewersPerScreenShare` instead.\n\t */\n\tMaximumViewersPerScreenShare: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord voice channels.\n */\nexport const VoiceChannelLimits = {\n\t/**\n\t * Maximum viewers allowed per screen share.\n\t */\n\tMaximumViewersPerScreenShare: 50,\n\n\t/**\n\t * Maximum user limit of voice channel.\n\t */\n\tMaximumUserLimit: 99\n};\n\n/**\n * Namespace containing limits related to Discord stage channels.\n */\nexport const StageChannelLimits = {\n\t/**\n\t * Maximum user limit of stage channel.\n\t */\n\tMaximumUserLimit: 250\n};\n\n/**\n * Namespace containing limits related to Discord text channels.\n */\nexport const TextChannelLimits = {\n\t/**\n\t * Maximum pins allowed in a text channel.\n\t */\n\tMaximumMessagePins: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord threads.\n */\nexport const ThreadLimits = {\n\t/**\n\t * Minimum number of threads to return from the threads API.\n\t */\n\tMinimumThreadsToFetch: 1,\n\n\t/**\n\t * Maximum number of threads to return from the threads API.\n\t */\n\tMaximumThreadsToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord embeds.\n */\nexport const EmbedLimits = {\n\t/**\n\t * Maximum characters allowed in the author field of an embed.\n\t */\n\tMaximumAuthorNameLength: 256,\n\n\t/**\n\t * Maximum characters allowed in an embed description.\n\t */\n\tMaximumDescriptionLength: 4096,\n\n\t/**\n\t * Maximum characters allowed in the name of a field in an embed.\n\t */\n\tMaximumFieldNameLength: 256,\n\n\t/**\n\t * Maximum fields allowed in an embed.\n\t */\n\tMaximumFields: 25,\n\n\t/**\n\t * Maximum characters allowed in the value of a field in an embed.\n\t */\n\tMaximumFieldValueLength: 1024,\n\n\t/**\n\t * Maximum characters allowed in a footer of an embed.\n\t */\n\tMaximumFooterLength: 2048,\n\n\t/**\n\t * Maximum characters allowed in the title of an embed.\n\t */\n\tMaximumTitleLength: 256,\n\n\t/**\n\t * Maximum characters allowed in an embed, in total.\n\t */\n\tMaximumTotalCharacters: 6000\n} as const;\n\n/**\n * Namespace containing limits related to Discord emojis.\n */\nexport const EmojiLimits = {\n\t/**\n\t * Maximum characters allowed in a custom guild emoji.\n\t */\n\tMaximumEmojiNameLength: 32,\n\n\t/**\n\t * Maximum size allowed for a custom guild emoji.\n\t * Size is in bytes, and corresponds to 256KB.\n\t */\n\tMaximumEmojiSize: 256_000\n} as const;\n\n/**\n * Namespace containing limits related to Discord guilds.\n */\nexport const GuildLimits = {\n\t/**\n\t * Maximum channels allowed per guild, including category channels.\n\t */\n\tMaximumChannels: 500,\n\n\t/**\n\t * Maximum roles allowed in a guild.\n\t */\n\tMaximumRoles: 250,\n\n\t/**\n\t * Maximum scheduled or active events allowed in a guild.\n\t */\n\tMaximumScheduledOrActiveEvents: 100,\n\n\t/**\n\t * Minimum number of user guilds to return from the user guilds API.\n\t */\n\tMinimumUserGuildsToFetch: 1,\n\n\t/**\n\t * Maximum number of user guilds to return from the user guilds API.\n\t */\n\tMaximumUserGuildsToFetch: 200,\n\n\t/**\n\t * Maximum static emojis allowed in a guild.\n\t */\n\tMaximumStaticEmojis: 50,\n\n\t/**\n\t * Maximum animated emojis allowed in a guild.\n\t */\n\tMaximumAnimatedEmojis: 50,\n\n\t/**\n\t * Maximum emojis (static and animated) allowed in a guild.\n\t */\n\tMaximumEmojis: 100,\n\n\t/**\n\t * Maximum stickers allowed in a guild.\n\t */\n\tMaximumStickers: 5\n} as const;\n\n/**\n * Namespace containing limits related to premium Discord guilds.\n */\nexport const PremiumGuildLimits = {\n\tTierOne: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 100,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 100,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 200,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 15\n\t},\n\tTierTwo: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 150,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 150,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 300,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 30\n\t},\n\tTierThree: {\n\t\t/**\n\t\t * Maximum static emojis allowed in a guild.\n\t\t */\n\t\tMaximumStaticEmojis: 250,\n\n\t\t/**\n\t\t * Maximum animated emojis allowed in a guild.\n\t\t */\n\t\tMaximumAnimatedEmojis: 250,\n\n\t\t/**\n\t\t * Maximum emojis (static and animated) allowed in a guild.\n\t\t */\n\t\tMaximumEmojis: 500,\n\n\t\t/**\n\t\t * Maximum stickers allowed in a guild.\n\t\t */\n\t\tMaximumStickers: 60\n\t}\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild scheduled events.\n */\nexport const GuildScheduledEventLimits = {\n\t/**\n\t * Maximum number of users to return from the guild scheduled event users API.\n\t */\n\tMaximumUsersToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild members.\n */\nexport const GuildMemberLimits = {\n\t/**\n\t * Maximum characters allowed in the display name of a guild member.\n\t */\n\tMaximumDisplayNameLength: 32,\n\n\t/**\n\t * Minimum number of members to return from the guild members API.\n\t */\n\tMinimumMembersToFetch: 1,\n\n\t/**\n\t * Maximum number of members to return from the guild members API.\n\t */\n\tMaximumMembersToFetch: 1000\n} as const;\n\n/**\n * Namespace containing limits related to Discord guild bans.\n */\nexport const GuildBansLimits = {\n\t/**\n\t * Minimum number of bans to return from the guild bans API.\n\t */\n\tMinimumBansToFetch: 1,\n\n\t/**\n\t * Maximum number of bans to return from the guild bans API.\n\t */\n\tMaximumBansToFetch: 1000\n} as const;\n\n/**\n * Namespace containing limits related to Discord interactions.\n */\nexport const InteractionLimits = {\n\t/**\n\t * Maximum buttons allowed in a single action row.\n\t */\n\tMaximumButtonsPerActionRow: 5,\n\n\t/**\n\t * Maximum select menus allowed in a single action row.\n\t */\n\tMaximumSelectMenusPerActionRow: 1,\n\n\t/**\n\t * Maximum text inputs allowed in a single action row.\n\t */\n\tMaximumTextInputsPerActionRow: 1,\n\n\t/**\n\t * Maximum options allowed in a single select menu.\n\t */\n\tMaximumOptionsInSelectMenus: 25\n} as const;\n\n/**\n * Namespace containing limits related to Discord application commands (slash commands).\n */\nexport const ApplicationCommandLimits = {\n\t/**\n\t * Maximum characters allowed in an application command name.\n\t */\n\tMaximumNameCharacters: 32,\n\n\t/**\n\t * Maximum characters allowed in an application command description.\n\t */\n\tMaximumDescriptionCharacters: 100,\n\n\t/**\n\t * Maximum options allowed in an application command.\n\t */\n\tMaximumOptionsLength: 25,\n\n\t/**\n\t * Maximum combined characters allowed in the name, description, and value properties of an application command, its options (including subcommands and groups), and choices.\n\t */\n\tMaximumCombinedCharacters: 4000\n} as const;\n\n/**\n * Namespace containing limits related to Choices of Discord Application Commands.\n */\nexport const ApplicationCommandOptionLimits = {\n\t/**\n\t * Maximum characters allowed in the name of an option of an application command.\n\t */\n\tMaximumNameCharacters: 32,\n\n\t/**\n\t * Maximum characters allowed in the description of an option of an application command.\n\t */\n\tMaximumDescriptionCharacters: 100,\n\n\t/**\n\t * Maximum length of choices allowed in the option of an application command.\n\t */\n\tMaximumChoicesLength: 25,\n\n\t/**\n\t * Maximum length of string allowed in the string option of an application command.\n\t */\n\tMaximumStringLength: 6000\n} as const;\n\n/**\n * Namespace containing limits related to Permissions of Discord Application Commands.\n */\nexport const ApplicationCommandPermissionLimits = {\n\t/**\n\t * Maximum length of permissions allowed in the option of an application command.\n\t */\n\tMaximumPermissionsLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Message Buttons.\n */\nexport const ButtonLimits = {\n\t/**\n\t * Maximum characters allowed in a button label.\n\t */\n\tMaximumLabelCharacters: 80,\n\n\t/**\n\t * Maximum characters allowed in a button custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100\n} as const;\n\n/**\n * Namespace containing limits related to Select Menus.\n */\nexport const SelectMenuLimits = {\n\t/**\n\t * Maximum characters allowed in a select menu custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum amount of options allowed in a select menu.\n\t */\n\tMaximumOptionsLength: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu placeholder.\n\t */\n\tMaximumPlaceholderCharacters: 150,\n\n\t/**\n\t * Maximum \"minimum\" values allowed in a select menu.\n\t */\n\tMaximumMinValuesSize: 25,\n\n\t/**\n\t * Maximum \"maximum\" values allowed in a select menu.\n\t */\n\tMaximumMaxValuesSize: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's name.\n\t */\n\tMaximumLengthOfNameOfOption: 100,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's description.\n\t */\n\tMaximumLengthOfDescriptionOfOption: 100,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's value.\n\t */\n\tMaximumLengthOfValueOfOption: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord messages.\n */\nexport const MessageLimits = {\n\t/**\n\t * Maximum embeds allowed in a single message.\n\t */\n\tMaximumEmbeds: 10,\n\n\t/**\n\t * Maximum action rows allowed in a single message.\n\t */\n\tMaximumActionRows: 5,\n\n\t/**\n\t * Maximum characters allowed in a single message for a user.\n\t */\n\tMaximumLength: 2000,\n\n\t/**\n\t * Maximum characters allowed in a single message for a nitro user.\n\t */\n\tMaximumNitroLength: 4000,\n\n\t/**\n\t * Maximum numbers of reactions allowed for a message.\n\t */\n\tMaximumReactions: 20,\n\n\t/**\n\t * Maximum upload size for a free user in a guild of tier 1 or below, or in DMs.\n\t * Size is in bytes, and corresponds to 25MB.\n\t */\n\tMaximumUploadSize: 25_000_000,\n\n\t/**\n\t * Maximum upload size for a Nitro Basic user, in any guild or in DMs.\n\t * Size is in bytes, and corresponds to 50MB.\n\t */\n\tMaximumNitroBasicUploadSize: 50_000_000,\n\n\t/**\n\t * Maximum upload size for a Nitro user, in any guild or in DMs.\n\t * Size is in bytes, and corresponds to 500MB.\n\t */\n\tMaximumNitroUploadSize: 500_000_000,\n\n\t/**\n\t * Maximum upload size for a free user for all different boost levels available in a guild.\n\t * Sizes are in bytes, and correspond to 25MB, 25MB, 50MB, and 100MB.\n\t */\n\tMaximumUploadSizeInGuild: [25_000_000, 25_000_000, 50_000_000, 100_000_000],\n\n\t/**\n\t * Minimum number of messages to return from the channel messages API.\n\t */\n\tMinimumMessagesToFetch: 1,\n\n\t/**\n\t * Maximum number of messages to return from the channel messages API.\n\t */\n\tMaximumMessagesToFetch: 100,\n\n\t/**\n\t * Maximum request size when sending a messages.\n\t * Size is in bytes, and corresponds to 25MB.\n\t */\n\tMaximumRequestSize: 25_000_000,\n\n\t/**\n\t * Minimum number of messages to delete in a single bulk delete request.\n\t */\n\tMinimumMessagesToBulkDelete: 2,\n\n\t/**\n\t * Maximum number of messages to delete in a single bulk delete request.\n\t */\n\tMaximumMessagesToBulkDelete: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord message reactions.\n */\nexport const ReactionLimits = {\n\t/**\n\t * Minimum number of reactions to fetch from the message reactions API.\n\t */\n\tMinimumReactionToFetch: 1,\n\n\t/**\n\t * Maximum number of reactions to fetch from the message reactions API.\n\t */\n\tMaximumReactionsToFetch: 100\n};\n\n/**\n * Namespace containing limits related to built-in moderation features.\n */\nexport const ModerationLimits = {\n\t/**\n\t * Maximum duration of a guild timeout, in seconds (corresponds to 28 days).\n\t */\n\tMaximumTimeoutDuration: 2_419_200\n} as const;\n\n/**\n * Namespace containing limits related to Discord roles.\n */\nexport const RoleLimits = {\n\t/**\n\t * Maximum characters allowed in a role name.\n\t */\n\tMaximumNameLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord users and Direct Messages.\n */\nexport const UserLimits = {\n\t/**\n\t * Maximum numbers of users in a DM group.\n\t */\n\tMaximumUsersPerDMGroup: 10,\n\n\t/**\n\t * Maximum characters allowed in a user's biography (the \"About Me\" section).\n\t */\n\tMaximumBiographyLength: 190\n} as const;\n\n/**\n * Namespace container limits related to Discord autocomplete interactions.\n */\nexport const AutoCompleteLimits = {\n\t/**\n\t * Maximum options allowed in a single autocomplete response.\n\t */\n\tMaximumAmountOfOptions: 25,\n\n\t/**\n\t * Maximum characters allowed in a select menu option's name.\n\t */\n\tMaximumLengthOfNameOfOption: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Modals.\n */\nexport const ModalLimits = {\n\t/**\n\t * Maximum characters allowed in a modal custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a modal title.\n\t */\n\tMaximumTitleCharacters: 45,\n\n\t/**\n\t * Maximum components allowed in a modal.\n\t */\n\tMaximumComponents: 5\n} as const;\n\n/**\n * Namespace containing limits related to Discord Modal Text Input component.\n */\nexport const TextInputLimits = {\n\t/**\n\t * Maximum characters allowed in a text input custom ID.\n\t */\n\tMaximumCustomIdCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a text input label.\n\t */\n\tMaximumLabelCharacters: 45,\n\n\t/**\n\t * Maximum characters allowed in a text input placeholder.\n\t */\n\tMaximumPlaceholderCharacters: 100,\n\n\t/**\n\t * Maximum characters allowed in a text input value.\n\t */\n\tMaximumValueCharacters: 4000\n} as const;\n\n/**\n * Namespace containing limits related to Discord Application Role Connections.\n */\nexport const ApplicationRoleConnectionLimits = {\n\t/**\n\t * Maximum application role connection metadata records an application can have.\n\t */\n\tMaximumMetadataRecords: 5,\n\n\t/**\n\t * Maximum characters allowed in metadata values.\n\t */\n\tMaximumMetadataValueLength: 100,\n\n\t/**\n\t * Maximum characters allowed in a platform name.\n\t */\n\tMaximumPlatformNameLength: 50,\n\n\t/**\n\t * Maximum characters allowed in a platform username.\n\t */\n\tMaximumPlatformUsernameLength: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Guild Audit Logs.\n */\nexport const GuildAuditLogsLimits = {\n\t/**\n\t * Minimum number of entries to return from the guild audit log API.\n\t */\n\tMinimumEntriesToFetch: 1,\n\n\t/**\n\t * Maximum number of entries to return from the guild audit log API.\n\t */\n\tMaximumEntriesToFetch: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Rules.\n */\nexport const AutoModerationRuleLimits = {\n\t/**\n\t * Maximum number of exempt roles a rule can have.\n\t */\n\tMaximumExemptRoles: 20,\n\n\t/**\n\t * Maximum number of exempt channels a rule can have.\n\t */\n\tMaximumExemptChannels: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Triggers.\n */\nexport const TriggerTypeLimits = {\n\t/**\n\t * Maximum number of keyword triggers a guild can have.\n\t */\n\tMaximumKeywordTriggersPerGuild: 6,\n\n\t/**\n\t * Maximum number of mention spam triggers a guild can have.\n\t */\n\tMaximumSpamTriggersPerGuild: 1,\n\n\t/**\n\t * Maximum number of keyword triggers a channel can have.\n\t */\n\tMaximumKeywordPresetTriggersPerChannel: 1,\n\n\t/**\n\t * Maximum number of mention spam triggers a channel can have.\n\t */\n\tMaximumMentionSpamTriggersPerChannel: 1\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Trigger Metadata.\n */\nexport const TriggerMetadataLimits = {\n\t/**\n\t * Maximum number of substrings which will be searched for in content.\n\t */\n\tMaximumKeywordFilters: 1000,\n\n\t/**\n\t * Maximum number of characters allowed in a keyword filter.\n\t */\n\tMaximumKeywordFilterLength: 60,\n\n\t/**\n\t * Maximum number of regular expression patterns which will be matched against content.\n\t */\n\tMaximumRegexPatterns: 10,\n\n\t/**\n\t * Maximum number of characters allowed in a regular expression pattern.\n\t */\n\tMaximumCharactersPerRegexPattern: 260,\n\n\t/**\n\t * Maximum number of substrings which should not trigger the keyword rule.\n\t */\n\tMaximumKeywordAllowListLength: 100,\n\n\t/**\n\t * Maximum characters per keyword that should not trigger the keyword rule.\n\t */\n\tMaximumKeywordAllowListKeywordLength: 60,\n\n\t/**\n\t * Maximum characters per keyword should not trigger the keyword preset rule.\n\t */\n\tMaximumKeywordPresetAllowListKeywordPresetLength: 60,\n\n\t/**\n\t * Maximum number of substrings which should not trigger the keyword preset rule.\n\t */\n\tMaximumKeywordPresetAllowListLength: 1000,\n\n\t/**\n\t * Maximum number of unique role and user mentions allowed per message.\n\t */\n\tMaximumMentionSpamTotalMentions: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Auto Moderation Action Metadata.\n */\nexport const ActionMetadataLimits = {\n\t/**\n\t * Maximum timeout duration in seconds.\n\t */\n\tMaximumTimeoutDurationSeconds: 2_419_200,\n\n\t/**\n\t * Maximum number of characters allowed in a custom block message.\n\t */\n\tMaximumCustomBlockMessageLength: 150\n} as const;\n\n/**\n * Namespace containing limits related to Discord Message Allowed Mentions.\n */\nexport const AllowedMentionsLimits = {\n\t/**\n\t * Maximum number of users allowed in an allowed mentions object.\n\t */\n\tMaximumUsers: 100,\n\n\t/**\n\t * Maximum number of roles allowed in an allowed mentions object.\n\t */\n\tMaximumRoles: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Channel Invites.\n */\nexport const ChannelInviteLimits = {\n\t/**\n\t * Maximum age of an invite in seconds.\n\t */\n\tMaximumAgeSeconds: 604_800,\n\n\t/**\n\t * Maximum number of uses allowed for an invite.\n\t */\n\tMaximumUses: 100\n} as const;\n\n/**\n * Namespace containing limits related to Discord Guild Integrations.\n */\nexport const GuildIntegrationLimits = {\n\t/**\n\t * Maximum number of integrations returned from the guild integrations API. Needs a more description name than \"MaximumIntegrations\".\n\t */\n\tMaximumIntegrationsToFetch: 50\n} as const;\n\n/**\n * Namespace containing limits related to Discord Stickers.\n */\nexport const StickerLimits = {\n\t/**\n\t * Maximum number of characters allowed in the autocomplete/suggestion tags for the sticker.\n\t */\n\tMaximumTagsLength: 200,\n\n\t/**\n\t * Maximum size allowed for a sticker.\n\t * Size is in bytes, and corresponds to 512KB.\n\t */\n\tMaximumStickerSize: 512_000\n};\n","/**\n * Regex that can capture the ID in Discord Channel mentions\n * @raw `/^<#(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the channel. It is named `id`.\n */\nexport const ChannelMentionRegex = /^<#(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that can capture the channel and message IDs in a channelId-messageId pattern\n * This pattern can be found when you hold Shift and hover over a message, and click the \"ID\" button\n * @raw `/^(?<channelId>\\d{17,20})-(?<messageId>\\d{17,20})$/`\n * @remark Capture group 1 is the ID of the channel, named `channelId`.\n * @remark Capture group 2 is the ID of the message, named `messageId`.\n */\nexport const ChannelMessageRegex = /^(?<channelId>\\d{17,20})-(?<messageId>\\d{17,20})$/;\n\n/**\n * Regex that matches links on the known Discord host names\n * @raw `/(?<subdomain>\\w+)\\.?(?<hostname>dis(?:cord)?(?:app|merch|status)?)\\.(?<tld>com|g(?:d|g|ift)|(?:de(?:sign|v))|media|new|store|net)/i`\n * @remark The regex is case insensitive\n * @remark Capture group 1 is the subdomain for this URL. It is named `subdomain`.\n * @remark Capture group 2 is the hostname for this URL, primarily `discord` but can also be `discordmerch`, `discordstatus`, `dis`, and `discordapp`. It is named `hostname`.\n * @remark Capture group 3 is the Top-Level Domain *without* `.`. It is named `tld`.\n */\nexport const DiscordHostnameRegex =\n\t/(?<subdomain>\\w+)\\.?(?<hostname>dis(?:cord)?(?:app|merch|status)?)\\.(?<tld>com|g(?:d|g|ift)|(?:de(?:sign|v))|media|new|store|net)/i;\n\n/**\n * Regex that can can capture the code of Discord invite links\n * @raw `/(?:^|\\b)discord(?:(?:app)?\\.com\\/invite|\\.gg(?:\\/invite)?)\\/(?<code>[\\w-]{2,255})(?:$|\\b)/gi`\n * @remark Capture group 1 is the invite URL's unique code. It is named `code`.\n */\nexport const DiscordInviteLinkRegex = /(?:^|\\b)discord(?:(?:app)?\\.com\\/invite|\\.gg(?:\\/invite)?)\\/(?<code>[\\w-]{2,255})(?:$|\\b)/gi;\n\n/**\n * Regex that can capture the ID of any animated or non-animated custom Discord emoji\n * @raw `/^(?:<(?<animated>a)?:(?<name>\\w{2,32}):)?(?<id>\\d{17,21})>?$/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const EmojiRegex = /^(?:<(?<animated>a)?:(?<name>\\w{2,32}):)?(?<id>\\d{17,21})>?$/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji.\n * Unlike {@link EmojiRegex} It can be a substring of a larger string.\n * @raw `/<a?:\\w{2,32}:\\d{17,20}>/`\n */\nexport const FormattedCustomEmoji = /<a?:\\w{2,32}:\\d{17,20}>/;\n\n/**\n * Regex that can capture any animated or non-animated custom Discord emoji.\n * Similar to {@link FormattedCustomEmoji} and unlike {@link EmojiRegex} can also be a substring of a larger string.\n * @raw `/(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const FormattedCustomEmojiWithGroups = /(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/;\n\n/**\n * Regex that matches any URL starting with `http` or `https`\n * @raw `/^https?:\\/\\//`\n * @remark for WebSocket URLs see {@link WebSocketUrlRegex}\n */\nexport const HttpUrlRegex = /^https?:\\/\\//;\n\n/**\n * Regex that can capture the Guild, Channel, and Message ID based on a shareable Discord message link.\n * @raw `/^(?:https:\\/\\/)?(?:ptb\\.|canary\\.)?discord(?:app)?\\.com\\/channels\\/(?<guildId>(?:\\d{17,20}|@me))\\/(?<channelId>\\d{17,20})\\/(?<messageId>\\d{17,20})$/`\n * @remark Capture group 1 is the ID of the guild the message was sent in. It is named `guildId`.\n * @remark Capture group 2 is the ID of the channel in that guild the message was sent in. It is named `channelId`.\n * @remark Capture group 3 is the ID of the message itself. It is named `messageId`.\n */\nexport const MessageLinkRegex =\n\t/^(?:https:\\/\\/)?(?:ptb\\.|canary\\.)?discord(?:app)?\\.com\\/channels\\/(?<guildId>(?:\\d{17,20}|@me))\\/(?<channelId>\\d{17,20})\\/(?<messageId>\\d{17,20})$/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji *without the wrapping `<...>` symbols.\n * This means that a string that matches this regex can directly be send inside a Discord message.\n * Other than this difference it is similar to {@link FormattedCustomEmoji}.\n * @raw `/a?:\\w{2,32}:\\d{17,20}/`\n */\nexport const ParsedCustomEmoji = /a?:\\w{2,32}:\\d{17,20}/;\n\n/**\n * Regex that matches any animated or non-animated custom Discord emoji *without the wrapping `<...>` symbols.\n * This means that a string that matches this regex can directly be send inside a Discord message.\n * Other than this difference it is similar to {@link FormattedCustomEmojiWithGroups}.\n * @raw `/(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/`\n * @remark Capture group 1 can be used to determine whether the emoji is animated or not. It is named `animated`.\n * @remark Capture group 2 is the name of the emoji as it is typed in a message. It is named `name`.\n * @remark Capture group 3 is the ID of the emoji. It is named `id`.\n */\nexport const ParsedCustomEmojiWithGroups = /(?<animated>a?):(?<name>[^:]+):(?<id>\\d{17,20})/;\n\n/**\n * Regex that can capture the ID in Discord Role mentions\n * @raw `/^<@&(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the role. It is named `id`.\n */\nexport const RoleMentionRegex = /^<@&(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that can capture any Discord Snowflake ID\n * @raw `/^(?<id>\\d{17,20})$/`\n * @remark Capture group 1 is the Snowflake. It is named `id`.\n */\nexport const SnowflakeRegex = /^(?<id>\\d{17,20})$/;\n\n/**\n * Regex that can capture a Discord Token\n * @raw `/(?<mfaToken>mfa\\.[a-z0-9_-]{20,})|(?<basicToken>[a-z0-9_-]{23,28}\\.[a-z0-9_-]{6,7}\\.[a-z0-9_-]{27})/i`\n * @remark Capture group 1 can be used to retrieve a token for a User that has Multi-Factor Authentication enabled. It is named `mfaToken`.\n * @remark Capture group 2 can be used to retrieve a token for a User that doesn't have Multi-Factor Authentication enabled, or a Bot application. It is named `basicToken`.\n * @remark For a valid token, either Capture group 1 or Capture group 2 will always be undefined, whereas the other group will then be defined and\n * contain the matched token.\n * You can use the name of the capture group to determine if the validated token was configured for a user with Multi-Factor Authentication, for a user without Multi-Factor Authentication, or for a bot application.\n * If both capture groups are undefined, then the token is invalid.\n */\nexport const TokenRegex = /(?<mfaToken>mfa\\.[a-z0-9_-]{20,})|(?<basicToken>[a-z0-9_-]{23,28}\\.[a-z0-9_-]{6,7}\\.[a-z0-9_-]{27})/i;\n\n/**\n * Regex that can capture the ID of a user in Discord user mentions\n * @raw `/^<@!?(?<id>\\d{17,20})>$/`\n * @remark Capture group 1 is the ID of the user. It is named `id`.\n */\nexport const UserOrMemberMentionRegex = /^<@!?(?<id>\\d{17,20})>$/;\n\n/**\n * Regex that matches any WebSocket URL starting with `ws` or `wss`\n * @raw `/^wss?:\\/\\//`\n * @remark for regular HTTP URLs see {@link HttpUrlRegex}\n */\nexport const WebSocketUrlRegex = /^wss?:\\/\\//;\n\n/**\n * Regex that captures the Webhook ID and token from a Discord Webhook URL.\n * @raw `/(?<url>^https:\\/\\/(?:(?:canary|ptb).)?discord(?:app)?.com\\/api(?:\\/v\\d+)?\\/webhooks\\/(?<id>\\d+)\\/(?<token>[\\w-]+)\\/?$)/`\n * @remark Capture group 1 is the full URL of the Discord Webhook. It is named `url`.\n * @remark Capture group 2 is the ID of the Discord Webhook. It is named `id`.\n * @remark Capture group 3 is the token of the Discord Webhook. It is named `token`.\n * @remark for regular HTTP URLs see {@link HttpUrlRegex}\n */\nexport const WebhookRegex = /(?<url>^https:\\/\\/(?:(?:canary|ptb).)?discord(?:app)?.com\\/api(?:\\/v\\d+)?\\/webhooks\\/(?<id>\\d+)\\/(?<token>[\\w-]+)\\/?$)/;\n","import {\n\tApplicationCommandOptionType,\n\tInteractionType,\n\ttype APIApplicationCommandAutocompleteInteraction,\n\ttype APIApplicationCommandInteractionDataIntegerOption,\n\ttype APIApplicationCommandInteractionDataNumberOption,\n\ttype APIApplicationCommandInteractionDataOption,\n\ttype APIApplicationCommandInteractionDataStringOption\n} from 'discord-api-types/v10';\nimport type { RequiredIf } from './util';\n\n/**\n * Utility class for resolving (autocomplete) interaction options while working with the raw API.\n * Based on {@linkplain https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js}\n */\nexport class AutocompleteInteractionOptionResolver {\n\tprivate readonly interaction: APIApplicationCommandAutocompleteInteraction;\n\n\t/**\n\t * The interaction options array\n\t */\n\tprivate readonly data: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * Bottom-level options for the interaction\n\t * If there is a subcommand (or subcommand and group), this represents the options for the subcommand.\n\t */\n\tprivate readonly hoistedOptions: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * The name of the subcommand group\n\t */\n\tprivate readonly group: string | null = null;\n\n\t/**\n\t * The name of the subcommand\n\t */\n\tprivate readonly subcommand: string | null = null;\n\n\tpublic constructor(interaction: APIApplicationCommandAutocompleteInteraction) {\n\t\tthis.interaction = interaction;\n\n\t\tthis.data = 'options' in interaction.data ? (interaction.data.options ?? null) : null;\n\n\t\tthis.hoistedOptions = this.data;\n\n\t\t// Hoist subcommand group if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.SubcommandGroup) {\n\t\t\tthis.group = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\n\t\t// Hoist subcommand if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.Subcommand) {\n\t\t\tthis.subcommand = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\t}\n\n\t/**\n\t * Gets the selected subcommand\n\t * @param required Whether to throw an error if there is no subcommand\n\t */\n\tpublic getSubcommand<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommand(required = true): string | null {\n\t\tif (required && !this.subcommand) {\n\t\t\tthrow new Error('A subcommand was not selected');\n\t\t}\n\n\t\treturn this.subcommand;\n\t}\n\n\t/**\n\t * Gets the selected subcommand group\n\t * @param required Whether to throw an error if there is no subcommand group\n\t */\n\tpublic getSubcommandGroup<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommandGroup(required = true): string | null {\n\t\tif (required && !this.group) {\n\t\t\tthrow new Error('A subcommand group was not selected');\n\t\t}\n\n\t\treturn this.group;\n\t}\n\n\t/**\n\t * Gets the focused option for an autocomplete interaction\n\t */\n\tpublic getFocusedOption() {\n\t\tif (this.interaction.type !== InteractionType.ApplicationCommandAutocomplete) {\n\t\t\tthrow new Error('This method can only be used on autocomplete interactions');\n\t\t}\n\n\t\tconst focusedOption = this.hoistedOptions?.find((option) => 'focused' in option && option.focused) as\n\t\t\t| APIApplicationCommandInteractionDataStringOption\n\t\t\t| APIApplicationCommandInteractionDataIntegerOption\n\t\t\t| APIApplicationCommandInteractionDataNumberOption\n\t\t\t| undefined;\n\n\t\t// Considering the earlier check, this should be impossible, but it's here for good measure\n\t\tif (!focusedOption) {\n\t\t\tthrow new Error('No focused option for autocomplete interaction');\n\t\t}\n\n\t\tconst { focused, ...option } = focusedOption;\n\n\t\treturn option;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandInteractionDataOption,\n\ttype APIAttachment,\n\ttype APIChatInputApplicationCommandInteraction,\n\ttype APIInteractionDataResolved,\n\ttype APIInteractionDataResolvedChannel,\n\ttype APIInteractionDataResolvedGuildMember,\n\ttype APIRole,\n\ttype APIUser\n} from 'discord-api-types/v10';\nimport type { BasicApplicationCommandOptionType, RequiredIf, TypeToOptionMap } from './util';\n\n/**\n * Utility class for resolving (application command) interaction options while working with the raw API.\n * Based on {@linkplain https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js}\n */\nexport class ChatInputInteractionOptionResolver {\n\t/**\n\t * The interaction options array\n\t */\n\tprivate readonly data: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * The interaction resolved data\n\t */\n\tprivate readonly resolved: APIInteractionDataResolved | null = null;\n\n\t/**\n\t * Bottom-level options for the interaction\n\t * If there is a subcommand (or subcommand and group), this represents the options for the subcommand.\n\t */\n\tprivate readonly hoistedOptions: APIApplicationCommandInteractionDataOption[] | null = null;\n\n\t/**\n\t * The name of the subcommand group\n\t */\n\tprivate readonly group: string | null = null;\n\n\t/**\n\t * The name of the subcommand\n\t */\n\tprivate readonly subcommand: string | null = null;\n\n\tpublic constructor(interaction: APIChatInputApplicationCommandInteraction) {\n\t\tthis.data = 'options' in interaction.data ? (interaction.data.options ?? null) : null;\n\n\t\tthis.resolved = 'resolved' in interaction.data ? (interaction.data.resolved ?? null) : null;\n\n\t\tthis.hoistedOptions = this.data;\n\n\t\t// Hoist subcommand group if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.SubcommandGroup) {\n\t\t\tthis.group = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\n\t\t// Hoist subcommand if present\n\t\tif (this.hoistedOptions?.[0]?.type === ApplicationCommandOptionType.Subcommand) {\n\t\t\tthis.subcommand = this.hoistedOptions[0].name;\n\t\t\tthis.hoistedOptions = this.hoistedOptions[0].options ?? [];\n\t\t}\n\t}\n\n\t/**\n\t * Gets an option by its name\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic get<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIApplicationCommandInteractionDataOption>;\n\tpublic get(name: string, required = false): APIApplicationCommandInteractionDataOption | null {\n\t\tconst option = this.hoistedOptions?.find((opt) => opt.name === name);\n\t\tif (!option) {\n\t\t\tif (required) {\n\t\t\t\tthrow new Error(`Missing required option \"${name}\"`);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\treturn option;\n\t}\n\n\t/**\n\t * Gets the selected subcommand\n\t * @param required Whether to throw an error if there is no subcommand\n\t */\n\tpublic getSubcommand<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommand(required = true): string | null {\n\t\tif (required && !this.subcommand) {\n\t\t\tthrow new Error('A subcommand was not selected');\n\t\t}\n\n\t\treturn this.subcommand;\n\t}\n\n\t/**\n\t * Gets the selected subcommand group\n\t * @param required Whether to throw an error if there is no subcommand group\n\t */\n\tpublic getSubcommandGroup<Required extends boolean = false>(required?: Required): RequiredIf<Required, string>;\n\tpublic getSubcommandGroup(required = true): string | null {\n\t\tif (required && !this.group) {\n\t\t\tthrow new Error('A subcommand group was not selected');\n\t\t}\n\n\t\treturn this.group;\n\t}\n\n\t/**\n\t * Gets a boolean option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getBoolean<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, boolean>;\n\tpublic getBoolean(name: string, required = false): boolean | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Boolean, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets a channel option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getChannel<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIInteractionDataResolvedChannel>;\n\tpublic getChannel(name: string, required = false): APIInteractionDataResolvedChannel | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Channel, required);\n\t\treturn option && this.resolved && 'channels' in this.resolved ? (this.resolved.channels?.[option.value] ?? null) : null;\n\t}\n\n\t/**\n\t * Gets a string option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getString<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, string>;\n\tpublic getString(name: string, required = false): string | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.String, required);\n\t\treturn option?.value ?? null;\n\t}\n\n\t/**\n\t * Gets an integer option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getInteger<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, number>;\n\tpublic getInteger(name: string, required = false): number | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Integer, required);\n\t\treturn (option?.value as number | null) ?? null;\n\t}\n\n\t/**\n\t * Gets a number option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getNumber<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, number>;\n\tpublic getNumber(name: string, required = false): number | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Number, required);\n\t\treturn (option?.value as number | null) ?? null;\n\t}\n\n\t/**\n\t * Gets a user option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getUser<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIUser>;\n\tpublic getUser(name: string, required = false): APIUser | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.User, required);\n\t\treturn option?.value ? this.resolved!.users![option.value] : null;\n\t}\n\n\t/**\n\t * Gets a member option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getMember<Required extends boolean = false>(\n\t\tname: string,\n\t\trequired?: Required\n\t): RequiredIf<Required, APIInteractionDataResolvedGuildMember>;\n\n\tpublic getMember(name: string, required = false): APIInteractionDataResolvedGuildMember | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.User, required);\n\t\treturn option?.value ? this.resolved!.members![option.value] : null;\n\t}\n\n\t/**\n\t * Gets a role option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getRole<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIRole>;\n\tpublic getRole(name: string, required = false): APIRole | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Role, required);\n\t\treturn option?.value ? this.resolved!.roles![option.value] : null;\n\t}\n\n\t/**\n\t * Gets an attachment option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getAttachment<Required extends boolean = false>(name: string, required?: Required): RequiredIf<Required, APIAttachment>;\n\tpublic getAttachment(name: string, required = false): APIAttachment | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Attachment, required);\n\t\treturn option?.value ? this.resolved!.attachments![option.value] : null;\n\t}\n\n\t/**\n\t * Gets a mentionable option\n\t * @param name The name of the option\n\t * @param required Whether to throw an error if the option is not found\n\t */\n\tpublic getMentionable<Required extends boolean = false>(\n\t\tname: string,\n\t\trequired?: Required\n\t): RequiredIf<Required, APIUser | APIInteractionDataResolvedGuildMember | APIRole>;\n\n\tpublic getMentionable(name: string, required = false): APIUser | APIInteractionDataResolvedGuildMember | APIRole | null {\n\t\tconst option = this.getTypedOption(name, ApplicationCommandOptionType.Mentionable, required);\n\n\t\tif (!option || !this.resolved) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ('members' in this.resolved && this.resolved.members && option.value in this.resolved.members) {\n\t\t\treturn this.resolved.members[option.value] ?? null;\n\t\t}\n\n\t\tif ('users' in this.resolved && this.resolved.users && option.value in this.resolved.users) {\n\t\t\treturn this.resolved.users[option.value] ?? null;\n\t\t}\n\n\t\tif ('roles' in this.resolved && this.resolved.roles && option.value in this.resolved.roles) {\n\t\t\treturn this.resolved.roles[option.value] ?? null;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate getTypedOption<Option extends BasicApplicationCommandOptionType, Required extends boolean = false>(\n\t\tname: string,\n\t\ttype: Option,\n\t\trequired: Required\n\t): RequiredIf<Required, TypeToOptionMap[Option]>;\n\n\tprivate getTypedOption<Option extends BasicApplicationCommandOptionType>(\n\t\tname: string,\n\t\ttype: Option,\n\t\trequired: boolean\n\t): TypeToOptionMap[Option] | null {\n\t\tconst option = this.get(name, required);\n\t\tif (!option) {\n\t\t\treturn null;\n\t\t} else if (option.type !== type) {\n\t\t\tthrow new Error(`Option with name \"${name}\" is not of the correct type`);\n\t\t}\n\n\t\treturn option as TypeToOptionMap[Option];\n\t}\n}\n","import {\n\tApplicationCommandType,\n\ttype APIContextMenuInteraction,\n\ttype APIInteractionDataResolvedGuildMember,\n\ttype APIMessage,\n\ttype APIMessageApplicationCommandInteractionDataResolved,\n\ttype APIUser,\n\ttype APIUserInteractionDataResolved\n} from 'discord-api-types/v10';\nimport type { RequiredIf } from './util';\n\n/**\n * Utility class for resolving (context menu) interaction options while working with the raw API.\n * Based on {@linkplain https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js}\n */\nexport class ContextMenuInteractionOptionResolver {\n\tprivate readonly interaction: APIContextMenuInteraction;\n\n\t/**\n\t * The interaction resolved data\n\t */\n\tprivate readonly resolved: APIMessageApplicationCommandInteractionDataResolved | APIUserInteractionDataResolved | null = null;\n\n\tpublic constructor(interaction: APIContextMenuInteraction) {\n\t\tthis.interaction = interaction;\n\n\t\tthis.resolved = 'resolved' in interaction.data ? (interaction.data.resolved ?? null) : null;\n\t}\n\n\t/**\n\t * Gets the target user for a context menu interaction\n\t */\n\tpublic getTargetUser(): APIUser {\n\t\tif (this.interaction.data.type !== ApplicationCommandType.User) {\n\t\t\tthrow new Error('This method can only be used on user context menu interactions');\n\t\t}\n\n\t\treturn (this.resolved as APIUserInteractionDataResolved).users[this.interaction.data.target_id];\n\t}\n\n\t/**\n\t * Gets the target member for a context menu interaction\n\t * @param required Whether to throw an error if the member data is not present\n\t */\n\tpublic getTargetMember<Required extends boolean = false>(required?: Required): RequiredIf<Required, APIInteractionDataResolvedGuildMember>;\n\tpublic getTargetMember(required = false): APIInteractionDataResolvedGuildMember | null {\n\t\tif (this.interaction.data.type !== ApplicationCommandType.User) {\n\t\t\tthrow new Error('This method can only be used on user context menu interactions');\n\t\t}\n\n\t\tconst member = (this.resolved as APIUserInteractionDataResolved).members?.[this.interaction.data.target_id] ?? null;\n\n\t\tif (!member && required) {\n\t\t\tthrow new Error('Member data is not present');\n\t\t}\n\n\t\treturn member;\n\t}\n\n\t/**\n\t * Gets the target message for a context menu interaction\n\t */\n\tpublic getTargetMessage(): APIMessage {\n\t\tif (this.interaction.data.type !== ApplicationCommandType.Message) {\n\t\t\tthrow new Error('This method can only be used on message context menu interactions');\n\t\t}\n\n\t\treturn (this.resolved as APIMessageApplicationCommandInteractionDataResolved).messages[this.interaction.data.target_id];\n\t}\n}\n","import {\n\tComponentType,\n\ttype APIAttachment,\n\ttype APIInteractionDataResolved,\n\ttype APIInteractionDataResolvedChannel,\n\ttype APIInteractionDataResolvedGuildMember,\n\ttype APIModalSubmitInteraction,\n\ttype APIRole,\n\ttype APIUser,\n\ttype ModalSubmitComponent\n} from 'discord-api-types/v10';\nimport type { ModalComponentType, TypeToModalComponentMap } from './util';\n\n/**\n * Utility class for resolving (modal) interaction options while working with the raw API.\n * Based on {@linkplain https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js}\n */\nexport class ModalInteractionOptionResolver {\n\t/**\n\t * The interaction resolved data\n\t */\n\tprivate readonly resolved: APIInteractionDataResolved | null = null;\n\n\t/**\n\t * Bottom-level components from the modal submission\n\t */\n\tprivate readonly hoistedComponents: ModalSubmitComponent[];\n\n\tpublic constructor(interaction: APIModalSubmitInteraction) {\n\t\tthis.resolved = 'resolved' in interaction.data ? (interaction.data.resolved ?? null) : null;\n\n\t\tthis.hoistedComponents = interaction.data.components.flatMap((component) => {\n\t\t\t// Action rows\n\t\t\tif ('components' in component) {\n\t\t\t\treturn component.components;\n\t\t\t}\n\n\t\t\t// Labels and whatever else\n\t\t\tif ('component' in component) {\n\t\t\t\treturn [component.component];\n\t\t\t}\n\n\t\t\t// Uhh... unsupported\n\t\t\treturn [];\n\t\t});\n\t}\n\n\t/**\n\t * Gets a component.\n\t * @param customId The custom ID of the component to get.\n\t */\n\tpublic get(customId: string): ModalSubmitComponent {\n\t\tconst component = this.hoistedComponents.find((c) => c.custom_id === customId);\n\t\tif (!component) {\n\t\t\tthrow new Error(`Component with custom ID \"${customId}\" not found.`);\n\t\t}\n\n\t\treturn component;\n\t}\n\n\t/**\n\t * Gets a text input component.\n\t * @param customId The custom ID of the text input component to get.\n\t */\n\tpublic getTextInput(customId: string): string {\n\t\treturn this.getTyped(customId, ComponentType.TextInput).value;\n\t}\n\n\t/**\n\t * Gets a string select component.\n\t * @param customId The custom ID of the string select component to get.\n\t */\n\tpublic getSelectedStrings(customId: string): string[] {\n\t\treturn this.getTyped(customId, ComponentType.StringSelect).values;\n\t}\n\n\t/**\n\t * Gets selected users.\n\t * @param customId The custom ID of the user select component to get.\n\t */\n\tpublic getSelectedUsers(customId: string): APIUser[] {\n\t\tconst component = this.getTyped(customId, ComponentType.UserSelect);\n\t\treturn component.values.map((userId) => this.resolved!.users![userId]!);\n\t}\n\n\t/**\n\t * Gets selected roles.\n\t * @param customId The custom ID of the role select component to get.\n\t */\n\tpublic getSelectedRoles(customId: string): APIRole[] {\n\t\tconst component = this.getTyped(customId, ComponentType.RoleSelect);\n\t\treturn component.values.map((roleId) => this.resolved!.roles![roleId]!);\n\t}\n\n\t/**\n\t * Gets selected channels.\n\t * @param customId The custom ID of the channel select component to get.\n\t */\n\tpublic getSelectedChannels(customId: string): APIInteractionDataResolvedChannel[] {\n\t\tconst component = this.getTyped(customId, ComponentType.ChannelSelect);\n\t\treturn component.values.map((channelId) => this.resolved!.channels![channelId]!);\n\t}\n\n\t/**\n\t * Gets selected members.\n\t * @param customId The custom ID of the member select component to get.\n\t */\n\tpublic getSelectedMembers(customId: string): APIInteractionDataResolvedGuildMember[] {\n\t\tconst component = this.getTyped(customId, ComponentType.UserSelect);\n\t\treturn component.values.map((memberId) => this.resolved!.members![memberId]!);\n\t}\n\n\t/**\n\t * Gets selected mentionables.\n\t * @param customId The custom ID of the mentionable select component to get.\n\t */\n\tpublic getSelectedMentionables(customId: string): (APIUser | APIRole)[] {\n\t\tconst component = this.getTyped(customId, ComponentType.MentionableSelect);\n\t\treturn component.values.map((id) => {\n\t\t\tif (this.resolved!.users && id in this.resolved!.users) {\n\t\t\t\treturn this.resolved!.users![id]!;\n\t\t\t}\n\n\t\t\treturn this.resolved!.roles![id]!;\n\t\t});\n\t}\n\n\t/**\n\t * Gets attachments.\n\t * @param customId The custom ID of the file upload component to get.\n\t */\n\tpublic getAttachments(customId: string): APIAttachment[] {\n\t\tconst component = this.getTyped(customId, ComponentType.FileUpload);\n\t\treturn component.values.map((id) => this.resolved!.attachments![id]!);\n\t}\n\n\tprivate getTyped<AllowedType extends ModalComponentType>(customId: string, allowedType: AllowedType): TypeToModalComponentMap[AllowedType] {\n\t\tconst component = this.get(customId);\n\t\tif (component.type !== allowedType) {\n\t\t\tthrow new Error(`Component with custom ID \"${customId}\" is not one of the allowed type: ${allowedType}.`);\n\t\t}\n\n\t\treturn component as TypeToModalComponentMap[AllowedType];\n\t}\n}\n","/**\n * Regex that can capture a Twemoji (Twitter Emoji)\n * @raw {@linkplain https://github.com/jdecked/twemoji-parser/blob/main/src/lib/regex.js See official source code}\n */\nexport const TwemojiRegex =\n\t/(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83d\\udc30\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udeef\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udeef\\u200d\\ud83e\\uddd1\\ud83c[\\udffc\\udffc\\udffd\\udffd\\udffe\\udffe\\udfff\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udeef\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffb\\udffd\\udffd\\udffe\\udffe\\udfff\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udeef\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffb\\udffc\\udffc\\udffe\\udffe\\udfff\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udeef\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffb\\udffc\\udffc\\udffd\\udffd\\udfff\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udeef\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffb\\udffc\\udffc\\udffd\\udffd\\udffe\\udffe]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\udef1\\ud83c\\udffb\\u200d\\ud83e\\udef2\\ud83c[\\udffc-\\udfff]|\\ud83e\\udef1\\ud83c\\udffc\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\udef1\\ud83c\\udffd\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\udef1\\ud83c\\udffe\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\udef1\\ud83c\\udfff\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6f\\ud83c\\udffb\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffb\\u200d\\u2642\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffc\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffc\\u200d\\u2642\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffd\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffd\\u200d\\u2642\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffe\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\ud83c\\udffe\\u200d\\u2642\\ufe0f|\\ud83d\\udc6f\\ud83c\\udfff\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\ud83c\\udfff\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffb\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffb\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffc\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffc\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffd\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffd\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffe\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\ud83c\\udffe\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\ud83c\\udfff\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\ud83c\\udfff\\u200d\\u2642\\ufe0f|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6f\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc8f\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc91\\ud83c[\\udffb-\\udfff]|\\ud83e\\udd1d\\ud83c[\\udffb-\\udfff]|\\ud83e\\udd3c\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d\\udc6f\\udc8f\\udc91]|\\ud83e[\\udd1d\\udd3c])|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf7c\\udf84\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd\\ude70])(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f(?:\\u200d\\u27a1\\ufe0f)?)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc70\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd4\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83e\\uddd1\\u200d\\ud83e\\uddd1\\u200d\\ud83e\\uddd2\\u200d\\ud83e\\uddd2|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83e\\uddd1\\u200d\\ud83e\\uddd1\\u200d\\ud83e\\uddd2|\\ud83e\\uddd1\\u200d\\ud83e\\uddd2\\u200d\\ud83e\\uddd2|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83d\\ude36\\u200d\\ud83c\\udf2b\\ufe0f|\\u26d3\\ufe0f\\u200d\\ud83d\\udca5|\\u2764\\ufe0f\\u200d\\ud83d\\udd25|\\u2764\\ufe0f\\u200d\\ud83e\\ude79|\\ud83c\\udf44\\u200d\\ud83d\\udfeb|\\ud83c\\udf4b\\u200d\\ud83d\\udfe9|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc26\\u200d\\ud83d\\udd25|\\ud83d\\udc3b\\u200d\\u2744\\ufe0f|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\ude2e\\u200d\\ud83d\\udca8|\\ud83d\\ude35\\u200d\\ud83d\\udcab|\\ud83d\\ude42\\u200d\\u2194\\ufe0f|\\ud83d\\ude42\\u200d\\u2195\\ufe0f|\\ud83e\\uddd1\\u200d\\ud83e\\uddd2|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f|\\ud83d\\udc08\\u200d\\u2b1b|\\ud83d\\udc26\\u200d\\u2b1b)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|\\ud83e\\udef0|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c\\udfc3|\\ud83d\\udeb6|\\ud83e\\uddce)(?:\\ud83c[\\udffb-\\udfff])?(?:\\u200d\\u27a1\\ufe0f)?|(?:\\ud83c[\\udf85\\udfc2\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4\\udeb5\\udec0\\udecc]|\\ud83e[\\udd0c\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\udd77\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd\\uddcf\\uddd1-\\udddd\\udec3-\\udec5\\udef1-\\udef8]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udc8e\\udc90\\udc92-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5-\\uded8\\udedc-\\udedf\\udeeb\\udeec\\udef4-\\udefc\\udfe0-\\udfeb\\udff0]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3f-\\udd45\\udd47-\\udd76\\udd78-\\uddb4\\uddb7\\uddba\\uddbc-\\uddcc\\uddd0\\uddde-\\uddff\\ude70-\\ude7c\\ude80-\\ude8a\\ude8e-\\udec2\\udec6\\udec8\\udecd-\\udedc\\udedf-\\udeea\\udeef]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g;\n\n/**\n * Creates a fresh instance of the Twemoji regex, which is useful if you don't want to worry about the effects of a global regex and the lastIndex\n * @returns A clone of the Twemoji regex\n */\nexport function createTwemojiRegex(): RegExp {\n\treturn new RegExp(TwemojiRegex);\n}\n"]}