diff --git a/discord.11.5-dev.js b/discord.11.5-dev.js index fbc5e510..b357a731 100644 --- a/discord.11.5-dev.js +++ b/discord.11.5-dev.js @@ -1961,7 +1961,7 @@ eval("const util = __webpack_require__(/*! util */ \"./node_modules/util/util.js /*! ModuleConcatenation bailout: Module is not an ECMAScript module */ /***/ (function(module, exports, __webpack_require__) { -eval("/* WEBPACK VAR INJECTION */(function(process) {exports.Package = __webpack_require__(/*! ../../package.json */ \"./package.json\");\n\n/**\n * Options for a client.\n * @typedef {Object} ClientOptions\n * @property {string} [apiRequestMethod='sequential'] One of `sequential` or `burst`. The sequential handler executes\n * all requests in the order they are triggered, whereas the burst handler runs multiple in parallel, and doesn't\n * provide the guarantee of any particular order. Burst mode is more likely to hit a 429 ratelimit error by its nature,\n * and is therefore slightly riskier to use.\n * @property {number} [shardId=0] ID of the shard to run\n * @property {number} [shardCount=0] Total number of shards\n * @property {number} [messageCacheMaxSize=200] Maximum number of messages to cache per channel\n * (-1 or Infinity for unlimited - don't do this without message sweeping, otherwise memory usage will climb\n * indefinitely)\n * @property {number} [messageCacheLifetime=0] How long a message should stay in the cache until it is considered\n * sweepable (in seconds, 0 for forever)\n * @property {number} [messageSweepInterval=0] How frequently to remove messages from the cache that are older than\n * the message cache lifetime (in seconds, 0 for never)\n * @property {boolean} [fetchAllMembers=false] Whether to cache all guild members and users upon startup, as well as\n * upon joining a guild (should be avoided whenever possible)\n * @property {boolean} [disableEveryone=false] Default value for {@link MessageOptions#disableEveryone}\n * @property {boolean} [sync=false] Whether to periodically sync guilds (for user accounts)\n * @property {number} [restWsBridgeTimeout=5000] Maximum time permitted between REST responses and their\n * corresponding websocket events\n * @property {number} [restTimeOffset=500] Extra time in millseconds to wait before continuing to make REST\n * requests (higher values will reduce rate-limiting errors on bad connections)\n * @property {number} [retryLimit=Infinity] How many times to retry on 5XX errors\n * (Infinity for indefinite amount of retries)\n * @property {WSEventType[]} [disabledEvents] An array of disabled websocket events. Events in this array will not be\n * processed, potentially resulting in performance improvements for larger bots. Only disable events you are\n * 100% certain you don't need, as many are important, but not obviously so. The safest one to disable with the\n * most impact is typically `TYPING_START`.\n * @property {WebsocketOptions} [ws] Options for the WebSocket\n * @property {HTTPOptions} [http] HTTP options\n */\nexports.DefaultOptions = {\n apiRequestMethod: 'sequential',\n shardId: 0,\n shardCount: 0,\n messageCacheMaxSize: 200,\n messageCacheLifetime: 0,\n messageSweepInterval: 0,\n fetchAllMembers: false,\n disableEveryone: false,\n sync: false,\n restWsBridgeTimeout: 5000,\n retryLimit: Infinity,\n disabledEvents: [],\n restTimeOffset: 500,\n\n /**\n * WebSocket options (these are left as snake_case to match the API)\n * @typedef {Object} WebsocketOptions\n * @property {number} [large_threshold=250] Number of members in a guild to be considered large\n * @property {boolean} [compress=true] Whether to compress data sent on the connection\n * (defaults to `false` for browsers)\n */\n ws: {\n large_threshold: 250,\n compress: __webpack_require__(/*! os */ \"./node_modules/os-browserify/browser.js\").platform() !== 'browser',\n properties: {\n $os: process ? process.platform : 'discord.js',\n $browser: 'discord.js',\n $device: 'discord.js',\n $referrer: '',\n $referring_domain: '',\n },\n version: 6,\n },\n\n /**\n * HTTP options\n * @typedef {Object} HTTPOptions\n * @property {number} [version=7] API version to use\n * @property {string} [api='https://discordapp.com/api'] Base url of the API\n * @property {string} [cdn='https://cdn.discordapp.com'] Base url of the CDN\n * @property {string} [invite='https://discord.gg'] Base url of invites\n */\n http: {\n version: 7,\n host: 'https://discordapp.com',\n cdn: 'https://cdn.discordapp.com',\n },\n};\n\nexports.WSCodes = {\n 1000: 'Connection gracefully closed',\n 4004: 'Tried to identify with an invalid token',\n 4010: 'Sharding data provided was invalid',\n 4011: 'Shard would be on too many guilds if connected',\n};\n\nexports.Errors = {\n NO_TOKEN: 'Request to use token, but token was unavailable to the client.',\n NO_BOT_ACCOUNT: 'Only bot accounts are able to make use of this feature.',\n NO_USER_ACCOUNT: 'Only user accounts are able to make use of this feature.',\n BAD_WS_MESSAGE: 'A bad message was received from the websocket; either bad compression, or not JSON.',\n TOOK_TOO_LONG: 'Something took too long to do.',\n NOT_A_PERMISSION: 'Invalid permission string or number.',\n INVALID_RATE_LIMIT_METHOD: 'Unknown rate limiting method.',\n BAD_LOGIN: 'Incorrect login details were provided.',\n INVALID_SHARD: 'Invalid shard settings were provided.',\n SHARDING_REQUIRED: 'This session would have handled too many guilds - Sharding is required.',\n INVALID_TOKEN: 'An invalid token was provided.',\n};\n\nconst Endpoints = exports.Endpoints = {\n User: userID => {\n if (userID.id) userID = userID.id;\n const base = `/users/${userID}`;\n return {\n toString: () => base,\n channels: `${base}/channels`,\n profile: `${base}/profile`,\n relationships: `${base}/relationships`,\n settings: `${base}/settings`,\n Relationship: uID => `${base}/relationships/${uID}`,\n Guild: guildID => ({\n toString: () => `${base}/guilds/${guildID}`,\n settings: `${base}/guilds/${guildID}/settings`,\n }),\n Note: id => `${base}/notes/${id}`,\n Mentions: (limit, roles, everyone, guildID) =>\n `${base}/mentions?limit=${limit}&roles=${roles}&everyone=${everyone}${guildID ? `&guild_id=${guildID}` : ''}`,\n Avatar: (root, hash) => {\n if (userID === '1') return hash;\n return Endpoints.CDN(root).Avatar(userID, hash);\n },\n };\n },\n guilds: '/guilds',\n Guild: guildID => {\n if (guildID.id) guildID = guildID.id;\n const base = `/guilds/${guildID}`;\n return {\n toString: () => base,\n prune: `${base}/prune`,\n embed: `${base}/embed`,\n bans: `${base}/bans`,\n integrations: `${base}/integrations`,\n members: `${base}/members`,\n channels: `${base}/channels`,\n invites: `${base}/invites`,\n roles: `${base}/roles`,\n emojis: `${base}/emojis`,\n search: `${base}/messages/search`,\n vanityURL: `${base}/vanity-url`,\n voiceRegions: `${base}/regions`,\n webhooks: `${base}/webhooks`,\n ack: `${base}/ack`,\n settings: `${base}/settings`,\n auditLogs: `${base}/audit-logs`,\n Emoji: emojiID => `${base}/emojis/${emojiID}`,\n Icon: (root, hash) => Endpoints.CDN(root).Icon(guildID, hash),\n Banner: (root, hash) => Endpoints.CDN(root).Banner(guildID, hash),\n Splash: (root, hash) => Endpoints.CDN(root).Splash(guildID, hash),\n Role: roleID => `${base}/roles/${roleID}`,\n Member: memberID => {\n if (memberID.id) memberID = memberID.id;\n const mbase = `${base}/members/${memberID}`;\n return {\n toString: () => mbase,\n Role: roleID => `${mbase}/roles/${roleID}`,\n nickname: `${base}/members/@me/nick`,\n };\n },\n };\n },\n channels: '/channels',\n Channel: channelID => {\n if (channelID.id) channelID = channelID.id;\n const base = `/channels/${channelID}`;\n return {\n toString: () => base,\n messages: {\n toString: () => `${base}/messages`,\n bulkDelete: `${base}/messages/bulk-delete`,\n },\n invites: `${base}/invites`,\n typing: `${base}/typing`,\n permissions: `${base}/permissions`,\n webhooks: `${base}/webhooks`,\n search: `${base}/messages/search`,\n pins: `${base}/pins`,\n Icon: (root, hash) => Endpoints.CDN(root).GDMIcon(channelID, hash),\n Pin: messageID => `${base}/pins/${messageID}`,\n Recipient: recipientID => `${base}/recipients/${recipientID}`,\n Message: messageID => {\n if (messageID.id) messageID = messageID.id;\n const mbase = `${base}/messages/${messageID}`;\n return {\n toString: () => mbase,\n reactions: `${mbase}/reactions`,\n ack: `${mbase}/ack`,\n Reaction: emoji => {\n const rbase = `${mbase}/reactions/${emoji}`;\n return {\n toString: () => rbase,\n User: userID => `${rbase}/${userID}`,\n };\n },\n };\n },\n };\n },\n Message: m => exports.Endpoints.Channel(m.channel).Message(m),\n Member: m => exports.Endpoints.Guild(m.guild).Member(m),\n CDN(root) {\n return {\n Emoji: (emojiID, format = 'png') => `${root}/emojis/${emojiID}.${format}`,\n Asset: name => `${root}/assets/${name}`,\n Avatar: (userID, hash) => `${root}/avatars/${userID}/${hash}.${hash.startsWith('a_') ? 'gif' : 'png?size=2048'}`,\n Icon: (guildID, hash) => `${root}/icons/${guildID}/${hash}.jpg`,\n Banner: (guildID, hash) => `${root}/banners/${guildID}/${hash}.jpg`,\n AppIcon: (clientID, hash) => `${root}/app-icons/${clientID}/${hash}.png`,\n AppAsset: (clientID, hash) => `${root}/app-assets/${clientID}/${hash}.png`,\n GDMIcon: (channelID, hash) => `${root}/channel-icons/${channelID}/${hash}.jpg?size=2048`,\n Splash: (guildID, hash) => `${root}/splashes/${guildID}/${hash}.jpg`,\n TeamIcon: (teamID, hash) => `${root}/team-icons/${teamID}/${hash}.jpg`,\n };\n },\n OAUTH2: {\n Application: appID => {\n const base = `/oauth2/applications/${appID}`;\n return {\n toString: () => base,\n resetSecret: `${base}/reset`,\n resetToken: `${base}/bot/reset`,\n };\n },\n App: appID => `/oauth2/authorize?client_id=${appID}`,\n },\n login: '/auth/login',\n logout: '/auth/logout',\n voiceRegions: '/voice/regions',\n gateway: {\n toString: () => '/gateway',\n bot: '/gateway/bot',\n },\n Invite: inviteID => `/invite/${inviteID}?with_counts=true`,\n inviteLink: id => `https://discord.gg/${id}`,\n Webhook: (webhookID, token) => `/webhooks/${webhookID}${token ? `/${token}` : ''}`,\n};\n\n\n/**\n * The current status of the client. Here are the available statuses:\n * * READY: 0\n * * CONNECTING: 1\n * * RECONNECTING: 2\n * * IDLE: 3\n * * NEARLY: 4\n * * DISCONNECTED: 5\n * @typedef {number} Status\n */\nexports.Status = {\n READY: 0,\n CONNECTING: 1,\n RECONNECTING: 2,\n IDLE: 3,\n NEARLY: 4,\n DISCONNECTED: 5,\n};\n\n/**\n * The current status of a voice connection. Here are the available statuses:\n * * CONNECTED\n * * CONNECTING\n * * AUTHENTICATING\n * * RECONNECTING\n * * DISCONNECTED\n * @typedef {number} VoiceStatus\n */\nexports.VoiceStatus = {\n CONNECTED: 0,\n CONNECTING: 1,\n AUTHENTICATING: 2,\n RECONNECTING: 3,\n DISCONNECTED: 4,\n};\n\nexports.ChannelTypes = {\n TEXT: 0,\n DM: 1,\n VOICE: 2,\n GROUP_DM: 3,\n CATEGORY: 4,\n NEWS: 5,\n STORE: 6,\n};\n\nexports.OPCodes = {\n DISPATCH: 0,\n HEARTBEAT: 1,\n IDENTIFY: 2,\n STATUS_UPDATE: 3,\n VOICE_STATE_UPDATE: 4,\n VOICE_GUILD_PING: 5,\n RESUME: 6,\n RECONNECT: 7,\n REQUEST_GUILD_MEMBERS: 8,\n INVALID_SESSION: 9,\n HELLO: 10,\n HEARTBEAT_ACK: 11,\n};\n\nexports.VoiceOPCodes = {\n IDENTIFY: 0,\n SELECT_PROTOCOL: 1,\n READY: 2,\n HEARTBEAT: 3,\n SESSION_DESCRIPTION: 4,\n SPEAKING: 5,\n};\n\nexports.Events = {\n RATE_LIMIT: 'rateLimit',\n READY: 'ready',\n RESUME: 'resume',\n GUILD_CREATE: 'guildCreate',\n GUILD_DELETE: 'guildDelete',\n GUILD_UPDATE: 'guildUpdate',\n GUILD_UNAVAILABLE: 'guildUnavailable',\n GUILD_AVAILABLE: 'guildAvailable',\n GUILD_MEMBER_ADD: 'guildMemberAdd',\n GUILD_MEMBER_REMOVE: 'guildMemberRemove',\n GUILD_MEMBER_UPDATE: 'guildMemberUpdate',\n GUILD_MEMBER_AVAILABLE: 'guildMemberAvailable',\n GUILD_MEMBER_SPEAKING: 'guildMemberSpeaking',\n GUILD_MEMBERS_CHUNK: 'guildMembersChunk',\n GUILD_INTEGRATIONS_UPDATE: 'guildIntegrationsUpdate',\n GUILD_ROLE_CREATE: 'roleCreate',\n GUILD_ROLE_DELETE: 'roleDelete',\n GUILD_ROLE_UPDATE: 'roleUpdate',\n GUILD_EMOJI_CREATE: 'emojiCreate',\n GUILD_EMOJI_DELETE: 'emojiDelete',\n GUILD_EMOJI_UPDATE: 'emojiUpdate',\n GUILD_BAN_ADD: 'guildBanAdd',\n GUILD_BAN_REMOVE: 'guildBanRemove',\n CHANNEL_CREATE: 'channelCreate',\n CHANNEL_DELETE: 'channelDelete',\n CHANNEL_UPDATE: 'channelUpdate',\n CHANNEL_PINS_UPDATE: 'channelPinsUpdate',\n MESSAGE_CREATE: 'message',\n MESSAGE_DELETE: 'messageDelete',\n MESSAGE_UPDATE: 'messageUpdate',\n MESSAGE_BULK_DELETE: 'messageDeleteBulk',\n MESSAGE_REACTION_ADD: 'messageReactionAdd',\n MESSAGE_REACTION_REMOVE: 'messageReactionRemove',\n MESSAGE_REACTION_REMOVE_ALL: 'messageReactionRemoveAll',\n USER_UPDATE: 'userUpdate',\n USER_NOTE_UPDATE: 'userNoteUpdate',\n USER_SETTINGS_UPDATE: 'clientUserSettingsUpdate',\n USER_GUILD_SETTINGS_UPDATE: 'clientUserGuildSettingsUpdate',\n PRESENCE_UPDATE: 'presenceUpdate',\n VOICE_STATE_UPDATE: 'voiceStateUpdate',\n TYPING_START: 'typingStart',\n TYPING_STOP: 'typingStop',\n WEBHOOKS_UPDATE: 'webhookUpdate',\n DISCONNECT: 'disconnect',\n RECONNECTING: 'reconnecting',\n ERROR: 'error',\n WARN: 'warn',\n DEBUG: 'debug',\n};\n\n/**\n * The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types:\n * * PLAYING\n * * STREAMING\n * * LISTENING\n * * WATCHING\n * @typedef {string} ActivityType\n */\nexports.ActivityTypes = [\n 'PLAYING',\n 'STREAMING',\n 'LISTENING',\n 'WATCHING',\n];\n\nexports.ActivityFlags = {\n INSTANCE: 1 << 0,\n JOIN: 1 << 1,\n SPECTATE: 1 << 2,\n JOIN_REQUEST: 1 << 3,\n SYNC: 1 << 4,\n PLAY: 1 << 5,\n};\n\n/**\n * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:\n * * READY\n * * RESUMED\n * * GUILD_SYNC\n * * GUILD_CREATE\n * * GUILD_DELETE\n * * GUILD_UPDATE\n * * GUILD_MEMBER_ADD\n * * GUILD_MEMBER_REMOVE\n * * GUILD_MEMBER_UPDATE\n * * GUILD_MEMBERS_CHUNK\n * * GUILD_INTEGRATIONS_UPDATE\n * * GUILD_ROLE_CREATE\n * * GUILD_ROLE_DELETE\n * * GUILD_ROLE_UPDATE\n * * GUILD_BAN_ADD\n * * GUILD_BAN_REMOVE\n * * CHANNEL_CREATE\n * * CHANNEL_DELETE\n * * CHANNEL_UPDATE\n * * CHANNEL_PINS_UPDATE\n * * MESSAGE_CREATE\n * * MESSAGE_DELETE\n * * MESSAGE_UPDATE\n * * MESSAGE_DELETE_BULK\n * * MESSAGE_REACTION_ADD\n * * MESSAGE_REACTION_REMOVE\n * * MESSAGE_REACTION_REMOVE_ALL\n * * USER_UPDATE\n * * USER_NOTE_UPDATE\n * * USER_SETTINGS_UPDATE\n * * PRESENCE_UPDATE\n * * VOICE_STATE_UPDATE\n * * TYPING_START\n * * VOICE_SERVER_UPDATE\n * * RELATIONSHIP_ADD\n * * RELATIONSHIP_REMOVE\n * * WEBHOOKS_UPDATE\n * @typedef {string} WSEventType\n */\nexports.WSEvents = {\n READY: 'READY',\n RESUMED: 'RESUMED',\n GUILD_SYNC: 'GUILD_SYNC',\n GUILD_CREATE: 'GUILD_CREATE',\n GUILD_DELETE: 'GUILD_DELETE',\n GUILD_UPDATE: 'GUILD_UPDATE',\n GUILD_MEMBER_ADD: 'GUILD_MEMBER_ADD',\n GUILD_MEMBER_REMOVE: 'GUILD_MEMBER_REMOVE',\n GUILD_MEMBER_UPDATE: 'GUILD_MEMBER_UPDATE',\n GUILD_MEMBERS_CHUNK: 'GUILD_MEMBERS_CHUNK',\n GUILD_INTEGRATIONS_UPDATE: 'GUILD_INTEGRATIONS_UPDATE',\n GUILD_ROLE_CREATE: 'GUILD_ROLE_CREATE',\n GUILD_ROLE_DELETE: 'GUILD_ROLE_DELETE',\n GUILD_ROLE_UPDATE: 'GUILD_ROLE_UPDATE',\n GUILD_BAN_ADD: 'GUILD_BAN_ADD',\n GUILD_BAN_REMOVE: 'GUILD_BAN_REMOVE',\n GUILD_EMOJIS_UPDATE: 'GUILD_EMOJIS_UPDATE',\n CHANNEL_CREATE: 'CHANNEL_CREATE',\n CHANNEL_DELETE: 'CHANNEL_DELETE',\n CHANNEL_UPDATE: 'CHANNEL_UPDATE',\n CHANNEL_PINS_UPDATE: 'CHANNEL_PINS_UPDATE',\n MESSAGE_CREATE: 'MESSAGE_CREATE',\n MESSAGE_DELETE: 'MESSAGE_DELETE',\n MESSAGE_UPDATE: 'MESSAGE_UPDATE',\n MESSAGE_DELETE_BULK: 'MESSAGE_DELETE_BULK',\n MESSAGE_REACTION_ADD: 'MESSAGE_REACTION_ADD',\n MESSAGE_REACTION_REMOVE: 'MESSAGE_REACTION_REMOVE',\n MESSAGE_REACTION_REMOVE_ALL: 'MESSAGE_REACTION_REMOVE_ALL',\n USER_UPDATE: 'USER_UPDATE',\n USER_NOTE_UPDATE: 'USER_NOTE_UPDATE',\n USER_SETTINGS_UPDATE: 'USER_SETTINGS_UPDATE',\n USER_GUILD_SETTINGS_UPDATE: 'USER_GUILD_SETTINGS_UPDATE',\n PRESENCE_UPDATE: 'PRESENCE_UPDATE',\n VOICE_STATE_UPDATE: 'VOICE_STATE_UPDATE',\n TYPING_START: 'TYPING_START',\n VOICE_SERVER_UPDATE: 'VOICE_SERVER_UPDATE',\n RELATIONSHIP_ADD: 'RELATIONSHIP_ADD',\n RELATIONSHIP_REMOVE: 'RELATIONSHIP_REMOVE',\n WEBHOOKS_UPDATE: 'WEBHOOKS_UPDATE',\n};\n\n/**\n * The type of a message, e.g. `DEFAULT`. Here are the available types:\n * * DEFAULT\n * * RECIPIENT_ADD\n * * RECIPIENT_REMOVE\n * * CALL\n * * CHANNEL_NAME_CHANGE\n * * CHANNEL_ICON_CHANGE\n * * PINS_ADD\n * * GUILD_MEMBER_JOIN\n * * USER_PREMIUM_GUILD_SUBSCRIPTION\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3\n * @typedef {string} MessageType\n */\nexports.MessageTypes = [\n 'DEFAULT',\n 'RECIPIENT_ADD',\n 'RECIPIENT_REMOVE',\n 'CALL',\n 'CHANNEL_NAME_CHANGE',\n 'CHANNEL_ICON_CHANGE',\n 'PINS_ADD',\n 'GUILD_MEMBER_JOIN',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3',\n];\n\n/**\n * The type of a message notification setting. Here are the available types:\n * * EVERYTHING\n * * MENTIONS\n * * NOTHING\n * * INHERIT (only for GuildChannel)\n * @typedef {string} MessageNotificationType\n */\nexports.MessageNotificationTypes = [\n 'EVERYTHING',\n 'MENTIONS',\n 'NOTHING',\n 'INHERIT',\n];\n\nexports.DefaultAvatars = {\n BLURPLE: '6debd47ed13483642cf09e832ed0bc1b',\n GREY: '322c936a8c8be1b803cd94861bdfa868',\n GREEN: 'dd4dbc0016779df1378e7812eabaa04d',\n ORANGE: '0e291f67c9274a1abdddeb3fd919cbaa',\n RED: '1cbd08c76f8af6dddce02c5138971129',\n};\n\nexports.ExplicitContentFilterTypes = [\n 'DISABLED',\n 'NON_FRIENDS',\n 'FRIENDS_AND_NON_FRIENDS',\n];\n\nexports.UserSettingsMap = {\n /**\n * Automatically convert emoticons in your messages to emoji\n * For example, when you type `:-)` Discord will convert it to 😃\n * @name ClientUserSettings#convertEmoticons\n * @type {boolean}\n */\n convert_emoticons: 'convertEmoticons',\n\n /**\n * If new guilds should automatically disable DMs between you and its members\n * @name ClientUserSettings#defaultGuildsRestricted\n * @type {boolean}\n */\n default_guilds_restricted: 'defaultGuildsRestricted',\n\n /**\n * Automatically detect accounts from services like Steam and Blizzard when you open the Discord client\n * @name ClientUserSettings#detectPlatformAccounts\n * @type {boolean}\n */\n detect_platform_accounts: 'detectPlatformAccounts',\n\n /**\n * Developer Mode exposes context menu items helpful for people writing bots using the Discord API\n * @name ClientUserSettings#developerMode\n * @type {boolean}\n */\n developer_mode: 'developerMode',\n\n /**\n * Allow playback and usage of the `/tts` command\n * @name ClientUserSettings#enableTTSCommand\n * @type {boolean}\n */\n enable_tts_command: 'enableTTSCommand',\n\n /**\n * The theme of the client. Either `light` or `dark`\n * @name ClientUserSettings#theme\n * @type {string}\n */\n theme: 'theme',\n\n /**\n * Last status set in the client\n * @name ClientUserSettings#status\n * @type {PresenceStatus}\n */\n status: 'status',\n\n /**\n * Display currently running game as status message\n * @name ClientUserSettings#showCurrentGame\n * @type {boolean}\n */\n show_current_game: 'showCurrentGame',\n\n /**\n * Display images, videos, and lolcats when uploaded directly to Discord\n * @name ClientUserSettings#inlineAttachmentMedia\n * @type {boolean}\n */\n inline_attachment_media: 'inlineAttachmentMedia',\n\n /**\n * Display images, videos, and lolcats when uploaded posted as links in chat\n * @name ClientUserSettings#inlineEmbedMedia\n * @type {boolean}\n */\n inline_embed_media: 'inlineEmbedMedia',\n\n /**\n * Language the Discord client will use, as an RFC 3066 language identifier\n * @name ClientUserSettings#locale\n * @type {string}\n */\n locale: 'locale',\n\n /**\n * Display messages in compact mode\n * @name ClientUserSettings#messageDisplayCompact\n * @type {boolean}\n */\n message_display_compact: 'messageDisplayCompact',\n\n /**\n * Show emoji reactions on messages\n * @name ClientUserSettings#renderReactions\n * @type {boolean}\n */\n render_reactions: 'renderReactions',\n\n /**\n * Array of snowflake IDs for guilds, in the order they appear in the Discord client\n * @name ClientUserSettings#guildPositions\n * @type {Snowflake[]}\n */\n guild_positions: 'guildPositions',\n\n /**\n * Array of snowflake IDs for guilds which you will not recieve DMs from\n * @name ClientUserSettings#restrictedGuilds\n * @type {Snowflake[]}\n */\n restricted_guilds: 'restrictedGuilds',\n\n explicit_content_filter: function explicitContentFilter(type) { // eslint-disable-line func-name-matching\n /**\n * Safe direct messaging; force people's messages with images to be scanned before they are sent to you.\n * One of `DISABLED`, `NON_FRIENDS`, `FRIENDS_AND_NON_FRIENDS`\n * @name ClientUserSettings#explicitContentFilter\n * @type {string}\n */\n return exports.ExplicitContentFilterTypes[type];\n },\n friend_source_flags: function friendSources(flags) { // eslint-disable-line func-name-matching\n /**\n * Who can add you as a friend\n * @name ClientUserSettings#friendSources\n * @type {Object}\n * @property {boolean} all Mutual friends and mutual guilds\n * @property {boolean} mutualGuilds Only mutual guilds\n * @property {boolean} mutualFriends Only mutual friends\n */\n return {\n all: flags.all || false,\n mutualGuilds: flags.all ? true : flags.mutual_guilds || false,\n mutualFriends: flags.all ? true : flags.mutualFriends || false,\n };\n },\n};\n\nexports.UserGuildSettingsMap = {\n message_notifications: function messageNotifications(type) { // eslint-disable-line func-name-matching\n /**\n * The type of message that should notify you\n * @name ClientUserGuildSettings#messageNotifications\n * @type {MessageNotificationType}\n */\n return exports.MessageNotificationTypes[type];\n },\n /**\n * Whether to receive mobile push notifications\n * @name ClientUserGuildSettings#mobilePush\n * @type {boolean}\n */\n mobile_push: 'mobilePush',\n /**\n * Whether the guild is muted\n * @name ClientUserGuildSettings#muted\n * @type {boolean}\n */\n muted: 'muted',\n /**\n * Whether to suppress everyone mention\n * @name ClientUserGuildSettings#suppressEveryone\n * @type {boolean}\n */\n suppress_everyone: 'suppressEveryone',\n /**\n * A collection containing all the channel overrides\n * @name ClientUserGuildSettings#channelOverrides\n * @type {Collection}\n */\n channel_overrides: 'channelOverrides',\n};\n\nexports.UserChannelOverrideMap = {\n message_notifications: function messageNotifications(type) { // eslint-disable-line func-name-matching\n /**\n * The type of message that should notify you\n * @name ClientUserChannelOverride#messageNotifications\n * @type {MessageNotificationType}\n */\n return exports.MessageNotificationTypes[type];\n },\n /**\n * Whether the channel is muted\n * @name ClientUserChannelOverride#muted\n * @type {boolean}\n */\n muted: 'muted',\n};\n\nexports.Colors = {\n DEFAULT: 0x000000,\n WHITE: 0xFFFFFF,\n AQUA: 0x1ABC9C,\n GREEN: 0x2ECC71,\n BLUE: 0x3498DB,\n PURPLE: 0x9B59B6,\n LUMINOUS_VIVID_PINK: 0xE91E63,\n GOLD: 0xF1C40F,\n ORANGE: 0xE67E22,\n RED: 0xE74C3C,\n GREY: 0x95A5A6,\n NAVY: 0x34495E,\n DARK_AQUA: 0x11806A,\n DARK_GREEN: 0x1F8B4C,\n DARK_BLUE: 0x206694,\n DARK_PURPLE: 0x71368A,\n DARK_VIVID_PINK: 0xAD1457,\n DARK_GOLD: 0xC27C0E,\n DARK_ORANGE: 0xA84300,\n DARK_RED: 0x992D22,\n DARK_GREY: 0x979C9F,\n DARKER_GREY: 0x7F8C8D,\n LIGHT_GREY: 0xBCC0C0,\n DARK_NAVY: 0x2C3E50,\n BLURPLE: 0x7289DA,\n GREYPLE: 0x99AAB5,\n DARK_BUT_NOT_BLACK: 0x2C2F33,\n NOT_QUITE_BLACK: 0x23272A,\n};\n\n/**\n * An error encountered while performing an API request. Here are the potential errors:\n * * UNKNOWN_ACCOUNT\n * * UNKNOWN_APPLICATION\n * * UNKNOWN_CHANNEL\n * * UNKNOWN_GUILD\n * * UNKNOWN_INTEGRATION\n * * UNKNOWN_INVITE\n * * UNKNOWN_MEMBER\n * * UNKNOWN_MESSAGE\n * * UNKNOWN_OVERWRITE\n * * UNKNOWN_PROVIDER\n * * UNKNOWN_ROLE\n * * UNKNOWN_TOKEN\n * * UNKNOWN_USER\n * * UNKNOWN_EMOJI\n * * UNKNOWN_WEBHOOK\n * * BOT_PROHIBITED_ENDPOINT\n * * BOT_ONLY_ENDPOINT\n * * MAXIMUM_GUILDS\n * * MAXIMUM_FRIENDS\n * * MAXIMUM_PINS\n * * MAXIMUM_ROLES\n * * MAXIMUM_REACTIONS\n * * UNAUTHORIZED\n * * MISSING_ACCESS\n * * INVALID_ACCOUNT_TYPE\n * * CANNOT_EXECUTE_ON_DM\n * * EMBED_DISABLED\n * * CANNOT_EDIT_MESSAGE_BY_OTHER\n * * CANNOT_SEND_EMPTY_MESSAGE\n * * CANNOT_MESSAGE_USER\n * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL\n * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH\n * * OAUTH2_APPLICATION_BOT_ABSENT\n * * MAXIMUM_OAUTH2_APPLICATIONS\n * * INVALID_OAUTH_STATE\n * * MISSING_PERMISSIONS\n * * INVALID_AUTHENTICATION_TOKEN\n * * NOTE_TOO_LONG\n * * INVALID_BULK_DELETE_QUANTITY\n * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL\n * * INVALID_OR_TAKEN_INVITE_CODE\n * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE\n * * BULK_DELETE_MESSAGE_TOO_OLD\n * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT\n * * REACTION_BLOCKED\n * @typedef {string} APIError\n */\nexports.APIErrors = {\n UNKNOWN_ACCOUNT: 10001,\n UNKNOWN_APPLICATION: 10002,\n UNKNOWN_CHANNEL: 10003,\n UNKNOWN_GUILD: 10004,\n UNKNOWN_INTEGRATION: 10005,\n UNKNOWN_INVITE: 10006,\n UNKNOWN_MEMBER: 10007,\n UNKNOWN_MESSAGE: 10008,\n UNKNOWN_OVERWRITE: 10009,\n UNKNOWN_PROVIDER: 10010,\n UNKNOWN_ROLE: 10011,\n UNKNOWN_TOKEN: 10012,\n UNKNOWN_USER: 10013,\n UNKNOWN_EMOJI: 10014,\n UNKNOWN_WEBHOOK: 10015,\n BOT_PROHIBITED_ENDPOINT: 20001,\n BOT_ONLY_ENDPOINT: 20002,\n MAXIMUM_GUILDS: 30001,\n MAXIMUM_FRIENDS: 30002,\n MAXIMUM_PINS: 30003,\n MAXIMUM_ROLES: 30005,\n MAXIMUM_REACTIONS: 30010,\n UNAUTHORIZED: 40001,\n MISSING_ACCESS: 50001,\n INVALID_ACCOUNT_TYPE: 50002,\n CANNOT_EXECUTE_ON_DM: 50003,\n EMBED_DISABLED: 50004,\n CANNOT_EDIT_MESSAGE_BY_OTHER: 50005,\n CANNOT_SEND_EMPTY_MESSAGE: 50006,\n CANNOT_MESSAGE_USER: 50007,\n CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: 50008,\n CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: 50009,\n OAUTH2_APPLICATION_BOT_ABSENT: 50010,\n MAXIMUM_OAUTH2_APPLICATIONS: 50011,\n INVALID_OAUTH_STATE: 50012,\n MISSING_PERMISSIONS: 50013,\n INVALID_AUTHENTICATION_TOKEN: 50014,\n NOTE_TOO_LONG: 50015,\n INVALID_BULK_DELETE_QUANTITY: 50016,\n CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: 50019,\n INVALID_OR_TAKEN_INVITE_CODE: 50020,\n CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: 50021,\n BULK_DELETE_MESSAGE_TOO_OLD: 50034,\n INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT: 50036,\n REACTION_BLOCKED: 90001,\n};\n\n/**\n * The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types:\n * * ALL\n * * MENTIONS\n * @typedef {string} DefaultMessageNotifications\n */\nexports.DefaultMessageNotifications = [\n 'ALL',\n 'MENTIONS',\n];\n\n/**\n * The value set for a team members's membership state:\n * * INVITED\n * * ACCEPTED\n * @typedef {string} MembershipStates\n */\nexports.MembershipStates = [\n // They start at 1\n null,\n 'INVITED',\n 'ACCEPTED',\n];\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./src/util/Constants.js?"); +eval("/* WEBPACK VAR INJECTION */(function(process) {exports.Package = __webpack_require__(/*! ../../package.json */ \"./package.json\");\n\n/**\n * Options for a client.\n * @typedef {Object} ClientOptions\n * @property {string} [apiRequestMethod='sequential'] One of `sequential` or `burst`. The sequential handler executes\n * all requests in the order they are triggered, whereas the burst handler runs multiple in parallel, and doesn't\n * provide the guarantee of any particular order. Burst mode is more likely to hit a 429 ratelimit error by its nature,\n * and is therefore slightly riskier to use.\n * @property {number} [shardId=0] ID of the shard to run\n * @property {number} [shardCount=0] Total number of shards\n * @property {number} [messageCacheMaxSize=200] Maximum number of messages to cache per channel\n * (-1 or Infinity for unlimited - don't do this without message sweeping, otherwise memory usage will climb\n * indefinitely)\n * @property {number} [messageCacheLifetime=0] How long a message should stay in the cache until it is considered\n * sweepable (in seconds, 0 for forever)\n * @property {number} [messageSweepInterval=0] How frequently to remove messages from the cache that are older than\n * the message cache lifetime (in seconds, 0 for never)\n * @property {boolean} [fetchAllMembers=false] Whether to cache all guild members and users upon startup, as well as\n * upon joining a guild (should be avoided whenever possible)\n * @property {boolean} [disableEveryone=false] Default value for {@link MessageOptions#disableEveryone}\n * @property {boolean} [sync=false] Whether to periodically sync guilds (for user accounts)\n * @property {number} [restWsBridgeTimeout=5000] Maximum time permitted between REST responses and their\n * corresponding websocket events\n * @property {number} [restTimeOffset=500] Extra time in millseconds to wait before continuing to make REST\n * requests (higher values will reduce rate-limiting errors on bad connections)\n * @property {number} [retryLimit=Infinity] How many times to retry on 5XX errors\n * (Infinity for indefinite amount of retries)\n * @property {WSEventType[]} [disabledEvents] An array of disabled websocket events. Events in this array will not be\n * processed, potentially resulting in performance improvements for larger bots. Only disable events you are\n * 100% certain you don't need, as many are important, but not obviously so. The safest one to disable with the\n * most impact is typically `TYPING_START`.\n * @property {WebsocketOptions} [ws] Options for the WebSocket\n * @property {HTTPOptions} [http] HTTP options\n */\nexports.DefaultOptions = {\n apiRequestMethod: 'sequential',\n shardId: 0,\n shardCount: 0,\n messageCacheMaxSize: 200,\n messageCacheLifetime: 0,\n messageSweepInterval: 0,\n fetchAllMembers: false,\n disableEveryone: false,\n sync: false,\n restWsBridgeTimeout: 5000,\n retryLimit: Infinity,\n disabledEvents: [],\n restTimeOffset: 500,\n\n /**\n * WebSocket options (these are left as snake_case to match the API)\n * @typedef {Object} WebsocketOptions\n * @property {number} [large_threshold=250] Number of members in a guild to be considered large\n * @property {boolean} [compress=true] Whether to compress data sent on the connection\n * (defaults to `false` for browsers)\n */\n ws: {\n large_threshold: 250,\n compress: __webpack_require__(/*! os */ \"./node_modules/os-browserify/browser.js\").platform() !== 'browser',\n properties: {\n $os: process ? process.platform : 'discord.js',\n $browser: 'discord.js',\n $device: 'discord.js',\n $referrer: '',\n $referring_domain: '',\n },\n version: 6,\n },\n\n /**\n * HTTP options\n * @typedef {Object} HTTPOptions\n * @property {number} [version=7] API version to use\n * @property {string} [api='https://discordapp.com/api'] Base url of the API\n * @property {string} [cdn='https://cdn.discordapp.com'] Base url of the CDN\n * @property {string} [invite='https://discord.gg'] Base url of invites\n */\n http: {\n version: 7,\n host: 'https://discordapp.com',\n cdn: 'https://cdn.discordapp.com',\n },\n};\n\nexports.WSCodes = {\n 1000: 'Connection gracefully closed',\n 4004: 'Tried to identify with an invalid token',\n 4010: 'Sharding data provided was invalid',\n 4011: 'Shard would be on too many guilds if connected',\n};\n\nexports.Errors = {\n NO_TOKEN: 'Request to use token, but token was unavailable to the client.',\n NO_BOT_ACCOUNT: 'Only bot accounts are able to make use of this feature.',\n NO_USER_ACCOUNT: 'Only user accounts are able to make use of this feature.',\n BAD_WS_MESSAGE: 'A bad message was received from the websocket; either bad compression, or not JSON.',\n TOOK_TOO_LONG: 'Something took too long to do.',\n NOT_A_PERMISSION: 'Invalid permission string or number.',\n INVALID_RATE_LIMIT_METHOD: 'Unknown rate limiting method.',\n BAD_LOGIN: 'Incorrect login details were provided.',\n INVALID_SHARD: 'Invalid shard settings were provided.',\n SHARDING_REQUIRED: 'This session would have handled too many guilds - Sharding is required.',\n INVALID_TOKEN: 'An invalid token was provided.',\n};\n\nconst Endpoints = exports.Endpoints = {\n User: userID => {\n if (userID.id) userID = userID.id;\n const base = `/users/${userID}`;\n return {\n toString: () => base,\n channels: `${base}/channels`,\n profile: `${base}/profile`,\n relationships: `${base}/relationships`,\n settings: `${base}/settings`,\n Relationship: uID => `${base}/relationships/${uID}`,\n Guild: guildID => ({\n toString: () => `${base}/guilds/${guildID}`,\n settings: `${base}/guilds/${guildID}/settings`,\n }),\n Note: id => `${base}/notes/${id}`,\n Mentions: (limit, roles, everyone, guildID) =>\n `${base}/mentions?limit=${limit}&roles=${roles}&everyone=${everyone}${guildID ? `&guild_id=${guildID}` : ''}`,\n Avatar: (root, hash) => {\n if (userID === '1') return hash;\n return Endpoints.CDN(root).Avatar(userID, hash);\n },\n };\n },\n guilds: '/guilds',\n Guild: guildID => {\n if (guildID.id) guildID = guildID.id;\n const base = `/guilds/${guildID}`;\n return {\n toString: () => base,\n prune: `${base}/prune`,\n embed: `${base}/embed`,\n bans: `${base}/bans`,\n integrations: `${base}/integrations`,\n members: `${base}/members`,\n channels: `${base}/channels`,\n invites: `${base}/invites`,\n roles: `${base}/roles`,\n emojis: `${base}/emojis`,\n search: `${base}/messages/search`,\n vanityURL: `${base}/vanity-url`,\n voiceRegions: `${base}/regions`,\n webhooks: `${base}/webhooks`,\n ack: `${base}/ack`,\n settings: `${base}/settings`,\n auditLogs: `${base}/audit-logs`,\n Emoji: emojiID => `${base}/emojis/${emojiID}`,\n Icon: (root, hash) => Endpoints.CDN(root).Icon(guildID, hash),\n Banner: (root, hash) => Endpoints.CDN(root).Banner(guildID, hash),\n Splash: (root, hash) => Endpoints.CDN(root).Splash(guildID, hash),\n Role: roleID => `${base}/roles/${roleID}`,\n Member: memberID => {\n if (memberID.id) memberID = memberID.id;\n const mbase = `${base}/members/${memberID}`;\n return {\n toString: () => mbase,\n Role: roleID => `${mbase}/roles/${roleID}`,\n nickname: `${base}/members/@me/nick`,\n };\n },\n };\n },\n channels: '/channels',\n Channel: channelID => {\n if (channelID.id) channelID = channelID.id;\n const base = `/channels/${channelID}`;\n return {\n toString: () => base,\n messages: {\n toString: () => `${base}/messages`,\n bulkDelete: `${base}/messages/bulk-delete`,\n },\n invites: `${base}/invites`,\n typing: `${base}/typing`,\n permissions: `${base}/permissions`,\n webhooks: `${base}/webhooks`,\n search: `${base}/messages/search`,\n pins: `${base}/pins`,\n Icon: (root, hash) => Endpoints.CDN(root).GDMIcon(channelID, hash),\n Pin: messageID => `${base}/pins/${messageID}`,\n Recipient: recipientID => `${base}/recipients/${recipientID}`,\n Message: messageID => {\n if (messageID.id) messageID = messageID.id;\n const mbase = `${base}/messages/${messageID}`;\n return {\n toString: () => mbase,\n reactions: `${mbase}/reactions`,\n ack: `${mbase}/ack`,\n Reaction: emoji => {\n const rbase = `${mbase}/reactions/${emoji}`;\n return {\n toString: () => rbase,\n User: userID => `${rbase}/${userID}`,\n };\n },\n };\n },\n };\n },\n Message: m => exports.Endpoints.Channel(m.channel).Message(m),\n Member: m => exports.Endpoints.Guild(m.guild).Member(m),\n CDN(root) {\n return {\n Emoji: (emojiID, format = 'png') => `${root}/emojis/${emojiID}.${format}`,\n Asset: name => `${root}/assets/${name}`,\n Avatar: (userID, hash) => `${root}/avatars/${userID}/${hash}.${hash.startsWith('a_') ? 'gif' : 'png?size=2048'}`,\n Icon: (guildID, hash) => `${root}/icons/${guildID}/${hash}.jpg`,\n Banner: (guildID, hash) => `${root}/banners/${guildID}/${hash}.jpg`,\n AppIcon: (clientID, hash) => `${root}/app-icons/${clientID}/${hash}.png`,\n AppAsset: (clientID, hash) => `${root}/app-assets/${clientID}/${hash}.png`,\n GDMIcon: (channelID, hash) => `${root}/channel-icons/${channelID}/${hash}.jpg?size=2048`,\n Splash: (guildID, hash) => `${root}/splashes/${guildID}/${hash}.jpg`,\n TeamIcon: (teamID, hash) => `${root}/team-icons/${teamID}/${hash}.jpg`,\n };\n },\n OAUTH2: {\n Application: appID => {\n const base = `/oauth2/applications/${appID}`;\n return {\n toString: () => base,\n resetSecret: `${base}/reset`,\n resetToken: `${base}/bot/reset`,\n };\n },\n App: appID => `/oauth2/authorize?client_id=${appID}`,\n },\n login: '/auth/login',\n logout: '/auth/logout',\n voiceRegions: '/voice/regions',\n gateway: {\n toString: () => '/gateway',\n bot: '/gateway/bot',\n },\n Invite: inviteID => `/invite/${inviteID}?with_counts=true`,\n inviteLink: id => `https://discord.gg/${id}`,\n Webhook: (webhookID, token) => `/webhooks/${webhookID}${token ? `/${token}` : ''}`,\n};\n\n\n/**\n * The current status of the client. Here are the available statuses:\n * * READY: 0\n * * CONNECTING: 1\n * * RECONNECTING: 2\n * * IDLE: 3\n * * NEARLY: 4\n * * DISCONNECTED: 5\n * @typedef {number} Status\n */\nexports.Status = {\n READY: 0,\n CONNECTING: 1,\n RECONNECTING: 2,\n IDLE: 3,\n NEARLY: 4,\n DISCONNECTED: 5,\n};\n\n/**\n * The current status of a voice connection. Here are the available statuses:\n * * CONNECTED: 0\n * * CONNECTING: 1\n * * AUTHENTICATING: 2\n * * RECONNECTING: 3\n * * DISCONNECTED: 4\n * @typedef {number} VoiceStatus\n */\nexports.VoiceStatus = {\n CONNECTED: 0,\n CONNECTING: 1,\n AUTHENTICATING: 2,\n RECONNECTING: 3,\n DISCONNECTED: 4,\n};\n\nexports.ChannelTypes = {\n TEXT: 0,\n DM: 1,\n VOICE: 2,\n GROUP_DM: 3,\n CATEGORY: 4,\n NEWS: 5,\n STORE: 6,\n};\n\nexports.OPCodes = {\n DISPATCH: 0,\n HEARTBEAT: 1,\n IDENTIFY: 2,\n STATUS_UPDATE: 3,\n VOICE_STATE_UPDATE: 4,\n VOICE_GUILD_PING: 5,\n RESUME: 6,\n RECONNECT: 7,\n REQUEST_GUILD_MEMBERS: 8,\n INVALID_SESSION: 9,\n HELLO: 10,\n HEARTBEAT_ACK: 11,\n};\n\nexports.VoiceOPCodes = {\n IDENTIFY: 0,\n SELECT_PROTOCOL: 1,\n READY: 2,\n HEARTBEAT: 3,\n SESSION_DESCRIPTION: 4,\n SPEAKING: 5,\n};\n\nexports.Events = {\n RATE_LIMIT: 'rateLimit',\n READY: 'ready',\n RESUME: 'resume',\n GUILD_CREATE: 'guildCreate',\n GUILD_DELETE: 'guildDelete',\n GUILD_UPDATE: 'guildUpdate',\n GUILD_UNAVAILABLE: 'guildUnavailable',\n GUILD_AVAILABLE: 'guildAvailable',\n GUILD_MEMBER_ADD: 'guildMemberAdd',\n GUILD_MEMBER_REMOVE: 'guildMemberRemove',\n GUILD_MEMBER_UPDATE: 'guildMemberUpdate',\n GUILD_MEMBER_AVAILABLE: 'guildMemberAvailable',\n GUILD_MEMBER_SPEAKING: 'guildMemberSpeaking',\n GUILD_MEMBERS_CHUNK: 'guildMembersChunk',\n GUILD_INTEGRATIONS_UPDATE: 'guildIntegrationsUpdate',\n GUILD_ROLE_CREATE: 'roleCreate',\n GUILD_ROLE_DELETE: 'roleDelete',\n GUILD_ROLE_UPDATE: 'roleUpdate',\n GUILD_EMOJI_CREATE: 'emojiCreate',\n GUILD_EMOJI_DELETE: 'emojiDelete',\n GUILD_EMOJI_UPDATE: 'emojiUpdate',\n GUILD_BAN_ADD: 'guildBanAdd',\n GUILD_BAN_REMOVE: 'guildBanRemove',\n CHANNEL_CREATE: 'channelCreate',\n CHANNEL_DELETE: 'channelDelete',\n CHANNEL_UPDATE: 'channelUpdate',\n CHANNEL_PINS_UPDATE: 'channelPinsUpdate',\n MESSAGE_CREATE: 'message',\n MESSAGE_DELETE: 'messageDelete',\n MESSAGE_UPDATE: 'messageUpdate',\n MESSAGE_BULK_DELETE: 'messageDeleteBulk',\n MESSAGE_REACTION_ADD: 'messageReactionAdd',\n MESSAGE_REACTION_REMOVE: 'messageReactionRemove',\n MESSAGE_REACTION_REMOVE_ALL: 'messageReactionRemoveAll',\n USER_UPDATE: 'userUpdate',\n USER_NOTE_UPDATE: 'userNoteUpdate',\n USER_SETTINGS_UPDATE: 'clientUserSettingsUpdate',\n USER_GUILD_SETTINGS_UPDATE: 'clientUserGuildSettingsUpdate',\n PRESENCE_UPDATE: 'presenceUpdate',\n VOICE_STATE_UPDATE: 'voiceStateUpdate',\n TYPING_START: 'typingStart',\n TYPING_STOP: 'typingStop',\n WEBHOOKS_UPDATE: 'webhookUpdate',\n DISCONNECT: 'disconnect',\n RECONNECTING: 'reconnecting',\n ERROR: 'error',\n WARN: 'warn',\n DEBUG: 'debug',\n};\n\n/**\n * The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types:\n * * PLAYING\n * * STREAMING\n * * LISTENING\n * * WATCHING\n * @typedef {string} ActivityType\n */\nexports.ActivityTypes = [\n 'PLAYING',\n 'STREAMING',\n 'LISTENING',\n 'WATCHING',\n];\n\nexports.ActivityFlags = {\n INSTANCE: 1 << 0,\n JOIN: 1 << 1,\n SPECTATE: 1 << 2,\n JOIN_REQUEST: 1 << 3,\n SYNC: 1 << 4,\n PLAY: 1 << 5,\n};\n\n/**\n * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:\n * * READY\n * * RESUMED\n * * GUILD_SYNC\n * * GUILD_CREATE\n * * GUILD_DELETE\n * * GUILD_UPDATE\n * * GUILD_MEMBER_ADD\n * * GUILD_MEMBER_REMOVE\n * * GUILD_MEMBER_UPDATE\n * * GUILD_MEMBERS_CHUNK\n * * GUILD_INTEGRATIONS_UPDATE\n * * GUILD_ROLE_CREATE\n * * GUILD_ROLE_DELETE\n * * GUILD_ROLE_UPDATE\n * * GUILD_BAN_ADD\n * * GUILD_BAN_REMOVE\n * * CHANNEL_CREATE\n * * CHANNEL_DELETE\n * * CHANNEL_UPDATE\n * * CHANNEL_PINS_UPDATE\n * * MESSAGE_CREATE\n * * MESSAGE_DELETE\n * * MESSAGE_UPDATE\n * * MESSAGE_DELETE_BULK\n * * MESSAGE_REACTION_ADD\n * * MESSAGE_REACTION_REMOVE\n * * MESSAGE_REACTION_REMOVE_ALL\n * * USER_UPDATE\n * * USER_NOTE_UPDATE\n * * USER_SETTINGS_UPDATE\n * * PRESENCE_UPDATE\n * * VOICE_STATE_UPDATE\n * * TYPING_START\n * * VOICE_SERVER_UPDATE\n * * RELATIONSHIP_ADD\n * * RELATIONSHIP_REMOVE\n * * WEBHOOKS_UPDATE\n * @typedef {string} WSEventType\n */\nexports.WSEvents = {\n READY: 'READY',\n RESUMED: 'RESUMED',\n GUILD_SYNC: 'GUILD_SYNC',\n GUILD_CREATE: 'GUILD_CREATE',\n GUILD_DELETE: 'GUILD_DELETE',\n GUILD_UPDATE: 'GUILD_UPDATE',\n GUILD_MEMBER_ADD: 'GUILD_MEMBER_ADD',\n GUILD_MEMBER_REMOVE: 'GUILD_MEMBER_REMOVE',\n GUILD_MEMBER_UPDATE: 'GUILD_MEMBER_UPDATE',\n GUILD_MEMBERS_CHUNK: 'GUILD_MEMBERS_CHUNK',\n GUILD_INTEGRATIONS_UPDATE: 'GUILD_INTEGRATIONS_UPDATE',\n GUILD_ROLE_CREATE: 'GUILD_ROLE_CREATE',\n GUILD_ROLE_DELETE: 'GUILD_ROLE_DELETE',\n GUILD_ROLE_UPDATE: 'GUILD_ROLE_UPDATE',\n GUILD_BAN_ADD: 'GUILD_BAN_ADD',\n GUILD_BAN_REMOVE: 'GUILD_BAN_REMOVE',\n GUILD_EMOJIS_UPDATE: 'GUILD_EMOJIS_UPDATE',\n CHANNEL_CREATE: 'CHANNEL_CREATE',\n CHANNEL_DELETE: 'CHANNEL_DELETE',\n CHANNEL_UPDATE: 'CHANNEL_UPDATE',\n CHANNEL_PINS_UPDATE: 'CHANNEL_PINS_UPDATE',\n MESSAGE_CREATE: 'MESSAGE_CREATE',\n MESSAGE_DELETE: 'MESSAGE_DELETE',\n MESSAGE_UPDATE: 'MESSAGE_UPDATE',\n MESSAGE_DELETE_BULK: 'MESSAGE_DELETE_BULK',\n MESSAGE_REACTION_ADD: 'MESSAGE_REACTION_ADD',\n MESSAGE_REACTION_REMOVE: 'MESSAGE_REACTION_REMOVE',\n MESSAGE_REACTION_REMOVE_ALL: 'MESSAGE_REACTION_REMOVE_ALL',\n USER_UPDATE: 'USER_UPDATE',\n USER_NOTE_UPDATE: 'USER_NOTE_UPDATE',\n USER_SETTINGS_UPDATE: 'USER_SETTINGS_UPDATE',\n USER_GUILD_SETTINGS_UPDATE: 'USER_GUILD_SETTINGS_UPDATE',\n PRESENCE_UPDATE: 'PRESENCE_UPDATE',\n VOICE_STATE_UPDATE: 'VOICE_STATE_UPDATE',\n TYPING_START: 'TYPING_START',\n VOICE_SERVER_UPDATE: 'VOICE_SERVER_UPDATE',\n RELATIONSHIP_ADD: 'RELATIONSHIP_ADD',\n RELATIONSHIP_REMOVE: 'RELATIONSHIP_REMOVE',\n WEBHOOKS_UPDATE: 'WEBHOOKS_UPDATE',\n};\n\n/**\n * The type of a message, e.g. `DEFAULT`. Here are the available types:\n * * DEFAULT\n * * RECIPIENT_ADD\n * * RECIPIENT_REMOVE\n * * CALL\n * * CHANNEL_NAME_CHANGE\n * * CHANNEL_ICON_CHANGE\n * * PINS_ADD\n * * GUILD_MEMBER_JOIN\n * * USER_PREMIUM_GUILD_SUBSCRIPTION\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2\n * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3\n * @typedef {string} MessageType\n */\nexports.MessageTypes = [\n 'DEFAULT',\n 'RECIPIENT_ADD',\n 'RECIPIENT_REMOVE',\n 'CALL',\n 'CHANNEL_NAME_CHANGE',\n 'CHANNEL_ICON_CHANGE',\n 'PINS_ADD',\n 'GUILD_MEMBER_JOIN',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2',\n 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3',\n];\n\n/**\n * The type of a message notification setting. Here are the available types:\n * * EVERYTHING\n * * MENTIONS\n * * NOTHING\n * * INHERIT (only for GuildChannel)\n * @typedef {string} MessageNotificationType\n */\nexports.MessageNotificationTypes = [\n 'EVERYTHING',\n 'MENTIONS',\n 'NOTHING',\n 'INHERIT',\n];\n\nexports.DefaultAvatars = {\n BLURPLE: '6debd47ed13483642cf09e832ed0bc1b',\n GREY: '322c936a8c8be1b803cd94861bdfa868',\n GREEN: 'dd4dbc0016779df1378e7812eabaa04d',\n ORANGE: '0e291f67c9274a1abdddeb3fd919cbaa',\n RED: '1cbd08c76f8af6dddce02c5138971129',\n};\n\nexports.ExplicitContentFilterTypes = [\n 'DISABLED',\n 'NON_FRIENDS',\n 'FRIENDS_AND_NON_FRIENDS',\n];\n\nexports.UserSettingsMap = {\n /**\n * Automatically convert emoticons in your messages to emoji\n * For example, when you type `:-)` Discord will convert it to 😃\n * @name ClientUserSettings#convertEmoticons\n * @type {boolean}\n */\n convert_emoticons: 'convertEmoticons',\n\n /**\n * If new guilds should automatically disable DMs between you and its members\n * @name ClientUserSettings#defaultGuildsRestricted\n * @type {boolean}\n */\n default_guilds_restricted: 'defaultGuildsRestricted',\n\n /**\n * Automatically detect accounts from services like Steam and Blizzard when you open the Discord client\n * @name ClientUserSettings#detectPlatformAccounts\n * @type {boolean}\n */\n detect_platform_accounts: 'detectPlatformAccounts',\n\n /**\n * Developer Mode exposes context menu items helpful for people writing bots using the Discord API\n * @name ClientUserSettings#developerMode\n * @type {boolean}\n */\n developer_mode: 'developerMode',\n\n /**\n * Allow playback and usage of the `/tts` command\n * @name ClientUserSettings#enableTTSCommand\n * @type {boolean}\n */\n enable_tts_command: 'enableTTSCommand',\n\n /**\n * The theme of the client. Either `light` or `dark`\n * @name ClientUserSettings#theme\n * @type {string}\n */\n theme: 'theme',\n\n /**\n * Last status set in the client\n * @name ClientUserSettings#status\n * @type {PresenceStatus}\n */\n status: 'status',\n\n /**\n * Display currently running game as status message\n * @name ClientUserSettings#showCurrentGame\n * @type {boolean}\n */\n show_current_game: 'showCurrentGame',\n\n /**\n * Display images, videos, and lolcats when uploaded directly to Discord\n * @name ClientUserSettings#inlineAttachmentMedia\n * @type {boolean}\n */\n inline_attachment_media: 'inlineAttachmentMedia',\n\n /**\n * Display images, videos, and lolcats when uploaded posted as links in chat\n * @name ClientUserSettings#inlineEmbedMedia\n * @type {boolean}\n */\n inline_embed_media: 'inlineEmbedMedia',\n\n /**\n * Language the Discord client will use, as an RFC 3066 language identifier\n * @name ClientUserSettings#locale\n * @type {string}\n */\n locale: 'locale',\n\n /**\n * Display messages in compact mode\n * @name ClientUserSettings#messageDisplayCompact\n * @type {boolean}\n */\n message_display_compact: 'messageDisplayCompact',\n\n /**\n * Show emoji reactions on messages\n * @name ClientUserSettings#renderReactions\n * @type {boolean}\n */\n render_reactions: 'renderReactions',\n\n /**\n * Array of snowflake IDs for guilds, in the order they appear in the Discord client\n * @name ClientUserSettings#guildPositions\n * @type {Snowflake[]}\n */\n guild_positions: 'guildPositions',\n\n /**\n * Array of snowflake IDs for guilds which you will not recieve DMs from\n * @name ClientUserSettings#restrictedGuilds\n * @type {Snowflake[]}\n */\n restricted_guilds: 'restrictedGuilds',\n\n explicit_content_filter: function explicitContentFilter(type) { // eslint-disable-line func-name-matching\n /**\n * Safe direct messaging; force people's messages with images to be scanned before they are sent to you.\n * One of `DISABLED`, `NON_FRIENDS`, `FRIENDS_AND_NON_FRIENDS`\n * @name ClientUserSettings#explicitContentFilter\n * @type {string}\n */\n return exports.ExplicitContentFilterTypes[type];\n },\n friend_source_flags: function friendSources(flags) { // eslint-disable-line func-name-matching\n /**\n * Who can add you as a friend\n * @name ClientUserSettings#friendSources\n * @type {Object}\n * @property {boolean} all Mutual friends and mutual guilds\n * @property {boolean} mutualGuilds Only mutual guilds\n * @property {boolean} mutualFriends Only mutual friends\n */\n return {\n all: flags.all || false,\n mutualGuilds: flags.all ? true : flags.mutual_guilds || false,\n mutualFriends: flags.all ? true : flags.mutualFriends || false,\n };\n },\n};\n\nexports.UserGuildSettingsMap = {\n message_notifications: function messageNotifications(type) { // eslint-disable-line func-name-matching\n /**\n * The type of message that should notify you\n * @name ClientUserGuildSettings#messageNotifications\n * @type {MessageNotificationType}\n */\n return exports.MessageNotificationTypes[type];\n },\n /**\n * Whether to receive mobile push notifications\n * @name ClientUserGuildSettings#mobilePush\n * @type {boolean}\n */\n mobile_push: 'mobilePush',\n /**\n * Whether the guild is muted\n * @name ClientUserGuildSettings#muted\n * @type {boolean}\n */\n muted: 'muted',\n /**\n * Whether to suppress everyone mention\n * @name ClientUserGuildSettings#suppressEveryone\n * @type {boolean}\n */\n suppress_everyone: 'suppressEveryone',\n /**\n * A collection containing all the channel overrides\n * @name ClientUserGuildSettings#channelOverrides\n * @type {Collection}\n */\n channel_overrides: 'channelOverrides',\n};\n\nexports.UserChannelOverrideMap = {\n message_notifications: function messageNotifications(type) { // eslint-disable-line func-name-matching\n /**\n * The type of message that should notify you\n * @name ClientUserChannelOverride#messageNotifications\n * @type {MessageNotificationType}\n */\n return exports.MessageNotificationTypes[type];\n },\n /**\n * Whether the channel is muted\n * @name ClientUserChannelOverride#muted\n * @type {boolean}\n */\n muted: 'muted',\n};\n\nexports.Colors = {\n DEFAULT: 0x000000,\n WHITE: 0xFFFFFF,\n AQUA: 0x1ABC9C,\n GREEN: 0x2ECC71,\n BLUE: 0x3498DB,\n PURPLE: 0x9B59B6,\n LUMINOUS_VIVID_PINK: 0xE91E63,\n GOLD: 0xF1C40F,\n ORANGE: 0xE67E22,\n RED: 0xE74C3C,\n GREY: 0x95A5A6,\n NAVY: 0x34495E,\n DARK_AQUA: 0x11806A,\n DARK_GREEN: 0x1F8B4C,\n DARK_BLUE: 0x206694,\n DARK_PURPLE: 0x71368A,\n DARK_VIVID_PINK: 0xAD1457,\n DARK_GOLD: 0xC27C0E,\n DARK_ORANGE: 0xA84300,\n DARK_RED: 0x992D22,\n DARK_GREY: 0x979C9F,\n DARKER_GREY: 0x7F8C8D,\n LIGHT_GREY: 0xBCC0C0,\n DARK_NAVY: 0x2C3E50,\n BLURPLE: 0x7289DA,\n GREYPLE: 0x99AAB5,\n DARK_BUT_NOT_BLACK: 0x2C2F33,\n NOT_QUITE_BLACK: 0x23272A,\n};\n\n/**\n * An error encountered while performing an API request. Here are the potential errors:\n * * UNKNOWN_ACCOUNT\n * * UNKNOWN_APPLICATION\n * * UNKNOWN_CHANNEL\n * * UNKNOWN_GUILD\n * * UNKNOWN_INTEGRATION\n * * UNKNOWN_INVITE\n * * UNKNOWN_MEMBER\n * * UNKNOWN_MESSAGE\n * * UNKNOWN_OVERWRITE\n * * UNKNOWN_PROVIDER\n * * UNKNOWN_ROLE\n * * UNKNOWN_TOKEN\n * * UNKNOWN_USER\n * * UNKNOWN_EMOJI\n * * UNKNOWN_WEBHOOK\n * * BOT_PROHIBITED_ENDPOINT\n * * BOT_ONLY_ENDPOINT\n * * MAXIMUM_GUILDS\n * * MAXIMUM_FRIENDS\n * * MAXIMUM_PINS\n * * MAXIMUM_ROLES\n * * MAXIMUM_REACTIONS\n * * UNAUTHORIZED\n * * MISSING_ACCESS\n * * INVALID_ACCOUNT_TYPE\n * * CANNOT_EXECUTE_ON_DM\n * * EMBED_DISABLED\n * * CANNOT_EDIT_MESSAGE_BY_OTHER\n * * CANNOT_SEND_EMPTY_MESSAGE\n * * CANNOT_MESSAGE_USER\n * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL\n * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH\n * * OAUTH2_APPLICATION_BOT_ABSENT\n * * MAXIMUM_OAUTH2_APPLICATIONS\n * * INVALID_OAUTH_STATE\n * * MISSING_PERMISSIONS\n * * INVALID_AUTHENTICATION_TOKEN\n * * NOTE_TOO_LONG\n * * INVALID_BULK_DELETE_QUANTITY\n * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL\n * * INVALID_OR_TAKEN_INVITE_CODE\n * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE\n * * BULK_DELETE_MESSAGE_TOO_OLD\n * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT\n * * REACTION_BLOCKED\n * @typedef {string} APIError\n */\nexports.APIErrors = {\n UNKNOWN_ACCOUNT: 10001,\n UNKNOWN_APPLICATION: 10002,\n UNKNOWN_CHANNEL: 10003,\n UNKNOWN_GUILD: 10004,\n UNKNOWN_INTEGRATION: 10005,\n UNKNOWN_INVITE: 10006,\n UNKNOWN_MEMBER: 10007,\n UNKNOWN_MESSAGE: 10008,\n UNKNOWN_OVERWRITE: 10009,\n UNKNOWN_PROVIDER: 10010,\n UNKNOWN_ROLE: 10011,\n UNKNOWN_TOKEN: 10012,\n UNKNOWN_USER: 10013,\n UNKNOWN_EMOJI: 10014,\n UNKNOWN_WEBHOOK: 10015,\n BOT_PROHIBITED_ENDPOINT: 20001,\n BOT_ONLY_ENDPOINT: 20002,\n MAXIMUM_GUILDS: 30001,\n MAXIMUM_FRIENDS: 30002,\n MAXIMUM_PINS: 30003,\n MAXIMUM_ROLES: 30005,\n MAXIMUM_REACTIONS: 30010,\n UNAUTHORIZED: 40001,\n MISSING_ACCESS: 50001,\n INVALID_ACCOUNT_TYPE: 50002,\n CANNOT_EXECUTE_ON_DM: 50003,\n EMBED_DISABLED: 50004,\n CANNOT_EDIT_MESSAGE_BY_OTHER: 50005,\n CANNOT_SEND_EMPTY_MESSAGE: 50006,\n CANNOT_MESSAGE_USER: 50007,\n CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: 50008,\n CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: 50009,\n OAUTH2_APPLICATION_BOT_ABSENT: 50010,\n MAXIMUM_OAUTH2_APPLICATIONS: 50011,\n INVALID_OAUTH_STATE: 50012,\n MISSING_PERMISSIONS: 50013,\n INVALID_AUTHENTICATION_TOKEN: 50014,\n NOTE_TOO_LONG: 50015,\n INVALID_BULK_DELETE_QUANTITY: 50016,\n CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: 50019,\n INVALID_OR_TAKEN_INVITE_CODE: 50020,\n CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: 50021,\n BULK_DELETE_MESSAGE_TOO_OLD: 50034,\n INVITE_ACCEPTED_TO_GUILD_NOT_CONTANING_BOT: 50036,\n REACTION_BLOCKED: 90001,\n};\n\n/**\n * The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types:\n * * ALL\n * * MENTIONS\n * @typedef {string} DefaultMessageNotifications\n */\nexports.DefaultMessageNotifications = [\n 'ALL',\n 'MENTIONS',\n];\n\n/**\n * The value set for a team members's membership state:\n * * INVITED\n * * ACCEPTED\n * @typedef {string} MembershipStates\n */\nexports.MembershipStates = [\n // They start at 1\n null,\n 'INVITED',\n 'ACCEPTED',\n];\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./src/util/Constants.js?"); /***/ }),