mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-11 13:14:06 +01:00
605 lines
16 KiB
TypeScript
605 lines
16 KiB
TypeScript
|
export const WSCodes = {
|
||
|
1000: "WS_CLOSE_REQUESTED",
|
||
|
4004: "TOKEN_INVALID",
|
||
|
4010: "SHARDING_INVALID",
|
||
|
4011: "SHARDING_REQUIRED",
|
||
|
4013: "INVALID_INTENTS",
|
||
|
4014: "DISALLOWED_INTENTS",
|
||
|
};
|
||
|
|
||
|
const AllowedImageFormats = ["webp", "png", "jpg", "jpeg", "gif"];
|
||
|
|
||
|
const AllowedImageSizes = Array.from({ length: 9 }, (e, i) => 2 ** (i + 4));
|
||
|
|
||
|
function makeImageUrl(root: string, { format = "webp", size = 512 } = {}) {
|
||
|
if (format && !AllowedImageFormats.includes(format)) throw new Error("IMAGE_FORMAT: " + format);
|
||
|
if (size && !AllowedImageSizes.includes(size)) throw new RangeError("IMAGE_SIZE: " + size);
|
||
|
return `${root}.${format}${size ? `?size=${size}` : ""}`;
|
||
|
}
|
||
|
/**
|
||
|
* Options for Image URLs.
|
||
|
* @typedef {Object} ImageURLOptions
|
||
|
* @property {string} [format] One of `webp`, `png`, `jpg`, `jpeg`, `gif`. If no format is provided,
|
||
|
* defaults to `webp`.
|
||
|
* @property {boolean} [dynamic] If true, the format will dynamically change to `gif` for
|
||
|
* animated avatars; the default is false.
|
||
|
* @property {number} [size] One of `16`, `32`, `64`, `128`, `256`, `512`, `1024`, `2048`, `4096`
|
||
|
*/
|
||
|
|
||
|
export const Endpoints = {
|
||
|
CDN(root: string) {
|
||
|
return {
|
||
|
Emoji: (emojiID: string, format = "png") => `${root}/emojis/${emojiID}.${format}`,
|
||
|
Asset: (name: string) => `${root}/assets/${name}`,
|
||
|
DefaultAvatar: (discriminator: string) => `${root}/embed/avatars/${discriminator}.png`,
|
||
|
Avatar: (userID: string, hash: string, format = "webp", size: number, dynamic = false) => {
|
||
|
if (dynamic) format = hash.startsWith("a_") ? "gif" : format;
|
||
|
return makeImageUrl(`${root}/avatars/${userID}/${hash}`, { format, size });
|
||
|
},
|
||
|
Banner: (guildID: string, hash: string, format = "webp", size: number) =>
|
||
|
makeImageUrl(`${root}/banners/${guildID}/${hash}`, { format, size }),
|
||
|
Icon: (guildID: string, hash: string, format = "webp", size: number, dynamic = false) => {
|
||
|
if (dynamic) format = hash.startsWith("a_") ? "gif" : format;
|
||
|
return makeImageUrl(`${root}/icons/${guildID}/${hash}`, { format, size });
|
||
|
},
|
||
|
AppIcon: (
|
||
|
clientID: string,
|
||
|
hash: string,
|
||
|
{ format = "webp", size }: { format?: string; size?: number } = {}
|
||
|
) => makeImageUrl(`${root}/app-icons/${clientID}/${hash}`, { size, format }),
|
||
|
AppAsset: (
|
||
|
clientID: string,
|
||
|
hash: string,
|
||
|
{ format = "webp", size }: { format?: string; size?: number } = {}
|
||
|
) => makeImageUrl(`${root}/app-assets/${clientID}/${hash}`, { size, format }),
|
||
|
GDMIcon: (channelID: string, hash: string, format = "webp", size: number) =>
|
||
|
makeImageUrl(`${root}/channel-icons/${channelID}/${hash}`, { size, format }),
|
||
|
Splash: (guildID: string, hash: string, format = "webp", size: number) =>
|
||
|
makeImageUrl(`${root}/splashes/${guildID}/${hash}`, { size, format }),
|
||
|
DiscoverySplash: (guildID: string, hash: string, format = "webp", size: number) =>
|
||
|
makeImageUrl(`${root}/discovery-splashes/${guildID}/${hash}`, { size, format }),
|
||
|
TeamIcon: (
|
||
|
teamID: string,
|
||
|
hash: string,
|
||
|
{ format = "webp", size }: { format?: string; size?: number } = {}
|
||
|
) => makeImageUrl(`${root}/team-icons/${teamID}/${hash}`, { size, format }),
|
||
|
};
|
||
|
},
|
||
|
invite: (root: string, code: string) => `${root}/${code}`,
|
||
|
botGateway: "/gateway/bot",
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* The current status of the client. Here are the available statuses:
|
||
|
* * READY: 0
|
||
|
* * CONNECTING: 1
|
||
|
* * RECONNECTING: 2
|
||
|
* * IDLE: 3
|
||
|
* * NEARLY: 4
|
||
|
* * DISCONNECTED: 5
|
||
|
* * WAITING_FOR_GUILDS: 6
|
||
|
* * IDENTIFYING: 7
|
||
|
* * RESUMING: 8
|
||
|
* @typedef {number} Status
|
||
|
*/
|
||
|
export const Status = {
|
||
|
READY: 0,
|
||
|
CONNECTING: 1,
|
||
|
RECONNECTING: 2,
|
||
|
IDLE: 3,
|
||
|
NEARLY: 4,
|
||
|
DISCONNECTED: 5,
|
||
|
WAITING_FOR_GUILDS: 6,
|
||
|
IDENTIFYING: 7,
|
||
|
RESUMING: 8,
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* The current status of a voice connection. Here are the available statuses:
|
||
|
* * CONNECTED: 0
|
||
|
* * CONNECTING: 1
|
||
|
* * AUTHENTICATING: 2
|
||
|
* * RECONNECTING: 3
|
||
|
* * DISCONNECTED: 4
|
||
|
* @typedef {number} VoiceStatus
|
||
|
*/
|
||
|
export const VoiceStatus = {
|
||
|
CONNECTED: 0,
|
||
|
CONNECTING: 1,
|
||
|
AUTHENTICATING: 2,
|
||
|
RECONNECTING: 3,
|
||
|
DISCONNECTED: 4,
|
||
|
};
|
||
|
|
||
|
export const OPCodes = {
|
||
|
DISPATCH: 0,
|
||
|
HEARTBEAT: 1,
|
||
|
IDENTIFY: 2,
|
||
|
STATUS_UPDATE: 3,
|
||
|
VOICE_STATE_UPDATE: 4,
|
||
|
VOICE_GUILD_PING: 5,
|
||
|
RESUME: 6,
|
||
|
RECONNECT: 7,
|
||
|
REQUEST_GUILD_MEMBERS: 8,
|
||
|
INVALID_SESSION: 9,
|
||
|
HELLO: 10,
|
||
|
HEARTBEAT_ACK: 11,
|
||
|
};
|
||
|
|
||
|
export const VoiceOPCodes = {
|
||
|
IDENTIFY: 0,
|
||
|
SELECT_PROTOCOL: 1,
|
||
|
READY: 2,
|
||
|
HEARTBEAT: 3,
|
||
|
SESSION_DESCRIPTION: 4,
|
||
|
SPEAKING: 5,
|
||
|
HELLO: 8,
|
||
|
CLIENT_CONNECT: 12,
|
||
|
CLIENT_DISCONNECT: 13,
|
||
|
};
|
||
|
|
||
|
export const Events = {
|
||
|
RATE_LIMIT: "rateLimit",
|
||
|
CLIENT_READY: "ready",
|
||
|
GUILD_CREATE: "guildCreate",
|
||
|
GUILD_DELETE: "guildDelete",
|
||
|
GUILD_UPDATE: "guildUpdate",
|
||
|
GUILD_UNAVAILABLE: "guildUnavailable",
|
||
|
GUILD_AVAILABLE: "guildAvailable",
|
||
|
GUILD_MEMBER_ADD: "guildMemberAdd",
|
||
|
GUILD_MEMBER_REMOVE: "guildMemberRemove",
|
||
|
GUILD_MEMBER_UPDATE: "guildMemberUpdate",
|
||
|
GUILD_MEMBER_AVAILABLE: "guildMemberAvailable",
|
||
|
GUILD_MEMBER_SPEAKING: "guildMemberSpeaking",
|
||
|
GUILD_MEMBERS_CHUNK: "guildMembersChunk",
|
||
|
GUILD_INTEGRATIONS_UPDATE: "guildIntegrationsUpdate",
|
||
|
GUILD_ROLE_CREATE: "roleCreate",
|
||
|
GUILD_ROLE_DELETE: "roleDelete",
|
||
|
INVITE_CREATE: "inviteCreate",
|
||
|
INVITE_DELETE: "inviteDelete",
|
||
|
GUILD_ROLE_UPDATE: "roleUpdate",
|
||
|
GUILD_EMOJI_CREATE: "emojiCreate",
|
||
|
GUILD_EMOJI_DELETE: "emojiDelete",
|
||
|
GUILD_EMOJI_UPDATE: "emojiUpdate",
|
||
|
GUILD_BAN_ADD: "guildBanAdd",
|
||
|
GUILD_BAN_REMOVE: "guildBanRemove",
|
||
|
CHANNEL_CREATE: "channelCreate",
|
||
|
CHANNEL_DELETE: "channelDelete",
|
||
|
CHANNEL_UPDATE: "channelUpdate",
|
||
|
CHANNEL_PINS_UPDATE: "channelPinsUpdate",
|
||
|
MESSAGE_CREATE: "message",
|
||
|
MESSAGE_DELETE: "messageDelete",
|
||
|
MESSAGE_UPDATE: "messageUpdate",
|
||
|
MESSAGE_BULK_DELETE: "messageDeleteBulk",
|
||
|
MESSAGE_REACTION_ADD: "messageReactionAdd",
|
||
|
MESSAGE_REACTION_REMOVE: "messageReactionRemove",
|
||
|
MESSAGE_REACTION_REMOVE_ALL: "messageReactionRemoveAll",
|
||
|
MESSAGE_REACTION_REMOVE_EMOJI: "messageReactionRemoveEmoji",
|
||
|
USER_UPDATE: "userUpdate",
|
||
|
PRESENCE_UPDATE: "presenceUpdate",
|
||
|
VOICE_SERVER_UPDATE: "voiceServerUpdate",
|
||
|
VOICE_STATE_UPDATE: "voiceStateUpdate",
|
||
|
VOICE_BROADCAST_SUBSCRIBE: "subscribe",
|
||
|
VOICE_BROADCAST_UNSUBSCRIBE: "unsubscribe",
|
||
|
TYPING_START: "typingStart",
|
||
|
TYPING_STOP: "typingStop",
|
||
|
WEBHOOKS_UPDATE: "webhookUpdate",
|
||
|
ERROR: "error",
|
||
|
WARN: "warn",
|
||
|
DEBUG: "debug",
|
||
|
SHARD_DISCONNECT: "shardDisconnect",
|
||
|
SHARD_ERROR: "shardError",
|
||
|
SHARD_RECONNECTING: "shardReconnecting",
|
||
|
SHARD_READY: "shardReady",
|
||
|
SHARD_RESUME: "shardResume",
|
||
|
INVALIDATED: "invalidated",
|
||
|
RAW: "raw",
|
||
|
};
|
||
|
|
||
|
export const ShardEvents = {
|
||
|
CLOSE: "close",
|
||
|
DESTROYED: "destroyed",
|
||
|
INVALID_SESSION: "invalidSession",
|
||
|
READY: "ready",
|
||
|
RESUMED: "resumed",
|
||
|
ALL_READY: "allReady",
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* The type of Structure allowed to be a partial:
|
||
|
* * USER
|
||
|
* * CHANNEL (only affects DMChannels)
|
||
|
* * GUILD_MEMBER
|
||
|
* * MESSAGE
|
||
|
* * REACTION
|
||
|
* <warn>Partials require you to put checks in place when handling data, read the Partials topic listed in the
|
||
|
* sidebar for more information.</warn>
|
||
|
* @typedef {string} PartialType
|
||
|
*/
|
||
|
export const PartialTypes = keyMirror(["USER", "CHANNEL", "GUILD_MEMBER", "MESSAGE", "REACTION"]);
|
||
|
|
||
|
/**
|
||
|
* The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:
|
||
|
* * READY
|
||
|
* * RESUMED
|
||
|
* * GUILD_CREATE
|
||
|
* * GUILD_DELETE
|
||
|
* * GUILD_UPDATE
|
||
|
* * INVITE_CREATE
|
||
|
* * INVITE_DELETE
|
||
|
* * GUILD_MEMBER_ADD
|
||
|
* * GUILD_MEMBER_REMOVE
|
||
|
* * GUILD_MEMBER_UPDATE
|
||
|
* * GUILD_MEMBERS_CHUNK
|
||
|
* * GUILD_INTEGRATIONS_UPDATE
|
||
|
* * GUILD_ROLE_CREATE
|
||
|
* * GUILD_ROLE_DELETE
|
||
|
* * GUILD_ROLE_UPDATE
|
||
|
* * GUILD_BAN_ADD
|
||
|
* * GUILD_BAN_REMOVE
|
||
|
* * GUILD_EMOJIS_UPDATE
|
||
|
* * CHANNEL_CREATE
|
||
|
* * CHANNEL_DELETE
|
||
|
* * CHANNEL_UPDATE
|
||
|
* * CHANNEL_PINS_UPDATE
|
||
|
* * MESSAGE_CREATE
|
||
|
* * MESSAGE_DELETE
|
||
|
* * MESSAGE_UPDATE
|
||
|
* * MESSAGE_DELETE_BULK
|
||
|
* * MESSAGE_REACTION_ADD
|
||
|
* * MESSAGE_REACTION_REMOVE
|
||
|
* * MESSAGE_REACTION_REMOVE_ALL
|
||
|
* * MESSAGE_REACTION_REMOVE_EMOJI
|
||
|
* * USER_UPDATE
|
||
|
* * PRESENCE_UPDATE
|
||
|
* * TYPING_START
|
||
|
* * VOICE_STATE_UPDATE
|
||
|
* * VOICE_SERVER_UPDATE
|
||
|
* * WEBHOOKS_UPDATE
|
||
|
* @typedef {string} WSEventType
|
||
|
*/
|
||
|
export const WSEvents = keyMirror([
|
||
|
"READY",
|
||
|
"RESUMED",
|
||
|
"GUILD_CREATE",
|
||
|
"GUILD_DELETE",
|
||
|
"GUILD_UPDATE",
|
||
|
"INVITE_CREATE",
|
||
|
"INVITE_DELETE",
|
||
|
"GUILD_MEMBER_ADD",
|
||
|
"GUILD_MEMBER_REMOVE",
|
||
|
"GUILD_MEMBER_UPDATE",
|
||
|
"GUILD_MEMBERS_CHUNK",
|
||
|
"GUILD_INTEGRATIONS_UPDATE",
|
||
|
"GUILD_ROLE_CREATE",
|
||
|
"GUILD_ROLE_DELETE",
|
||
|
"GUILD_ROLE_UPDATE",
|
||
|
"GUILD_BAN_ADD",
|
||
|
"GUILD_BAN_REMOVE",
|
||
|
"GUILD_EMOJIS_UPDATE",
|
||
|
"CHANNEL_CREATE",
|
||
|
"CHANNEL_DELETE",
|
||
|
"CHANNEL_UPDATE",
|
||
|
"CHANNEL_PINS_UPDATE",
|
||
|
"MESSAGE_CREATE",
|
||
|
"MESSAGE_DELETE",
|
||
|
"MESSAGE_UPDATE",
|
||
|
"MESSAGE_DELETE_BULK",
|
||
|
"MESSAGE_REACTION_ADD",
|
||
|
"MESSAGE_REACTION_REMOVE",
|
||
|
"MESSAGE_REACTION_REMOVE_ALL",
|
||
|
"MESSAGE_REACTION_REMOVE_EMOJI",
|
||
|
"USER_UPDATE",
|
||
|
"PRESENCE_UPDATE",
|
||
|
"TYPING_START",
|
||
|
"VOICE_STATE_UPDATE",
|
||
|
"VOICE_SERVER_UPDATE",
|
||
|
"WEBHOOKS_UPDATE",
|
||
|
]);
|
||
|
|
||
|
/**
|
||
|
* The type of a message, e.g. `DEFAULT`. Here are the available types:
|
||
|
* * DEFAULT
|
||
|
* * RECIPIENT_ADD
|
||
|
* * RECIPIENT_REMOVE
|
||
|
* * CALL
|
||
|
* * CHANNEL_NAME_CHANGE
|
||
|
* * CHANNEL_ICON_CHANGE
|
||
|
* * PINS_ADD
|
||
|
* * GUILD_MEMBER_JOIN
|
||
|
* * USER_PREMIUM_GUILD_SUBSCRIPTION
|
||
|
* * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1
|
||
|
* * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2
|
||
|
* * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3
|
||
|
* * CHANNEL_FOLLOW_ADD
|
||
|
* * GUILD_DISCOVERY_DISQUALIFIED
|
||
|
* * GUILD_DISCOVERY_REQUALIFIED
|
||
|
* * REPLY
|
||
|
* @typedef {string} MessageType
|
||
|
*/
|
||
|
export const MessageTypes = [
|
||
|
"DEFAULT",
|
||
|
"RECIPIENT_ADD",
|
||
|
"RECIPIENT_REMOVE",
|
||
|
"CALL",
|
||
|
"CHANNEL_NAME_CHANGE",
|
||
|
"CHANNEL_ICON_CHANGE",
|
||
|
"PINS_ADD",
|
||
|
"GUILD_MEMBER_JOIN",
|
||
|
"USER_PREMIUM_GUILD_SUBSCRIPTION",
|
||
|
"USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1",
|
||
|
"USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2",
|
||
|
"USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3",
|
||
|
"CHANNEL_FOLLOW_ADD",
|
||
|
null,
|
||
|
"GUILD_DISCOVERY_DISQUALIFIED",
|
||
|
"GUILD_DISCOVERY_REQUALIFIED",
|
||
|
null,
|
||
|
null,
|
||
|
null,
|
||
|
"REPLY",
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* The types of messages that are `System`. The available types are `MessageTypes` excluding:
|
||
|
* * DEFAULT
|
||
|
* * REPLY
|
||
|
* @typedef {string} SystemMessageType
|
||
|
*/
|
||
|
export const SystemMessageTypes = MessageTypes.filter(
|
||
|
(type: string | null) => type && type !== "DEFAULT" && type !== "REPLY"
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
* <info>Bots cannot set a `CUSTOM_STATUS`, it is only for custom statuses received from users</info>
|
||
|
* The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types:
|
||
|
* * PLAYING
|
||
|
* * STREAMING
|
||
|
* * LISTENING
|
||
|
* * WATCHING
|
||
|
* * CUSTOM_STATUS
|
||
|
* * COMPETING
|
||
|
* @typedef {string} ActivityType
|
||
|
*/
|
||
|
export const ActivityTypes = ["PLAYING", "STREAMING", "LISTENING", "WATCHING", "CUSTOM_STATUS", "COMPETING"];
|
||
|
|
||
|
export const ChannelTypes = {
|
||
|
TEXT: 0,
|
||
|
DM: 1,
|
||
|
VOICE: 2,
|
||
|
GROUP: 3,
|
||
|
CATEGORY: 4,
|
||
|
NEWS: 5,
|
||
|
STORE: 6,
|
||
|
};
|
||
|
|
||
|
export const ClientApplicationAssetTypes = {
|
||
|
SMALL: 1,
|
||
|
BIG: 2,
|
||
|
};
|
||
|
|
||
|
export const Colors = {
|
||
|
DEFAULT: 0x000000,
|
||
|
WHITE: 0xffffff,
|
||
|
AQUA: 0x1abc9c,
|
||
|
GREEN: 0x2ecc71,
|
||
|
BLUE: 0x3498db,
|
||
|
YELLOW: 0xffff00,
|
||
|
PURPLE: 0x9b59b6,
|
||
|
LUMINOUS_VIVID_PINK: 0xe91e63,
|
||
|
GOLD: 0xf1c40f,
|
||
|
ORANGE: 0xe67e22,
|
||
|
RED: 0xe74c3c,
|
||
|
GREY: 0x95a5a6,
|
||
|
NAVY: 0x34495e,
|
||
|
DARK_AQUA: 0x11806a,
|
||
|
DARK_GREEN: 0x1f8b4c,
|
||
|
DARK_BLUE: 0x206694,
|
||
|
DARK_PURPLE: 0x71368a,
|
||
|
DARK_VIVID_PINK: 0xad1457,
|
||
|
DARK_GOLD: 0xc27c0e,
|
||
|
DARK_ORANGE: 0xa84300,
|
||
|
DARK_RED: 0x992d22,
|
||
|
DARK_GREY: 0x979c9f,
|
||
|
DARKER_GREY: 0x7f8c8d,
|
||
|
LIGHT_GREY: 0xbcc0c0,
|
||
|
DARK_NAVY: 0x2c3e50,
|
||
|
BLURPLE: 0x7289da,
|
||
|
GREYPLE: 0x99aab5,
|
||
|
DARK_BUT_NOT_BLACK: 0x2c2f33,
|
||
|
NOT_QUITE_BLACK: 0x23272a,
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* The value set for the explicit content filter levels for a guild:
|
||
|
* * DISABLED
|
||
|
* * MEMBERS_WITHOUT_ROLES
|
||
|
* * ALL_MEMBERS
|
||
|
* @typedef {string} ExplicitContentFilterLevel
|
||
|
*/
|
||
|
export const ExplicitContentFilterLevels = ["DISABLED", "MEMBERS_WITHOUT_ROLES", "ALL_MEMBERS"];
|
||
|
|
||
|
/**
|
||
|
* The value set for the verification levels for a guild:
|
||
|
* * NONE
|
||
|
* * LOW
|
||
|
* * MEDIUM
|
||
|
* * HIGH
|
||
|
* * VERY_HIGH
|
||
|
* @typedef {string} VerificationLevel
|
||
|
*/
|
||
|
export const VerificationLevels = ["NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH"];
|
||
|
|
||
|
/**
|
||
|
* An error encountered while performing an API request. Here are the potential errors:
|
||
|
* * UNKNOWN_ACCOUNT
|
||
|
* * UNKNOWN_APPLICATION
|
||
|
* * UNKNOWN_CHANNEL
|
||
|
* * UNKNOWN_GUILD
|
||
|
* * UNKNOWN_INTEGRATION
|
||
|
* * UNKNOWN_INVITE
|
||
|
* * UNKNOWN_MEMBER
|
||
|
* * UNKNOWN_MESSAGE
|
||
|
* * UNKNOWN_OVERWRITE
|
||
|
* * UNKNOWN_PROVIDER
|
||
|
* * UNKNOWN_ROLE
|
||
|
* * UNKNOWN_TOKEN
|
||
|
* * UNKNOWN_USER
|
||
|
* * UNKNOWN_EMOJI
|
||
|
* * UNKNOWN_WEBHOOK
|
||
|
* * UNKNOWN_BAN
|
||
|
* * UNKNOWN_GUILD_TEMPLATE
|
||
|
* * BOT_PROHIBITED_ENDPOINT
|
||
|
* * BOT_ONLY_ENDPOINT
|
||
|
* * CHANNEL_HIT_WRITE_RATELIMIT
|
||
|
* * MAXIMUM_GUILDS
|
||
|
* * MAXIMUM_FRIENDS
|
||
|
* * MAXIMUM_PINS
|
||
|
* * MAXIMUM_ROLES
|
||
|
* * MAXIMUM_WEBHOOKS
|
||
|
* * MAXIMUM_REACTIONS
|
||
|
* * MAXIMUM_CHANNELS
|
||
|
* * MAXIMUM_ATTACHMENTS
|
||
|
* * MAXIMUM_INVITES
|
||
|
* * GUILD_ALREADY_HAS_TEMPLATE
|
||
|
* * UNAUTHORIZED
|
||
|
* * ACCOUNT_VERIFICATION_REQUIRED
|
||
|
* * REQUEST_ENTITY_TOO_LARGE
|
||
|
* * FEATURE_TEMPORARILY_DISABLED
|
||
|
* * USER_BANNED
|
||
|
* * ALREADY_CROSSPOSTED
|
||
|
* * MISSING_ACCESS
|
||
|
* * INVALID_ACCOUNT_TYPE
|
||
|
* * CANNOT_EXECUTE_ON_DM
|
||
|
* * EMBED_DISABLED
|
||
|
* * CANNOT_EDIT_MESSAGE_BY_OTHER
|
||
|
* * CANNOT_SEND_EMPTY_MESSAGE
|
||
|
* * CANNOT_MESSAGE_USER
|
||
|
* * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL
|
||
|
* * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH
|
||
|
* * OAUTH2_APPLICATION_BOT_ABSENT
|
||
|
* * MAXIMUM_OAUTH2_APPLICATIONS
|
||
|
* * INVALID_OAUTH_STATE
|
||
|
* * MISSING_PERMISSIONS
|
||
|
* * INVALID_AUTHENTICATION_TOKEN
|
||
|
* * NOTE_TOO_LONG
|
||
|
* * INVALID_BULK_DELETE_QUANTITY
|
||
|
* * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL
|
||
|
* * INVALID_OR_TAKEN_INVITE_CODE
|
||
|
* * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE
|
||
|
* * INVALID_OAUTH_TOKEN
|
||
|
* * BULK_DELETE_MESSAGE_TOO_OLD
|
||
|
* * INVALID_FORM_BODY
|
||
|
* * INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT
|
||
|
* * INVALID_API_VERSION
|
||
|
* * CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL
|
||
|
* * REACTION_BLOCKED
|
||
|
* * RESOURCE_OVERLOADED
|
||
|
* @typedef {string} APIError
|
||
|
*/
|
||
|
export const APIErrors = {
|
||
|
UNKNOWN_ACCOUNT: 10001,
|
||
|
UNKNOWN_APPLICATION: 10002,
|
||
|
UNKNOWN_CHANNEL: 10003,
|
||
|
UNKNOWN_GUILD: 10004,
|
||
|
UNKNOWN_INTEGRATION: 10005,
|
||
|
UNKNOWN_INVITE: 10006,
|
||
|
UNKNOWN_MEMBER: 10007,
|
||
|
UNKNOWN_MESSAGE: 10008,
|
||
|
UNKNOWN_OVERWRITE: 10009,
|
||
|
UNKNOWN_PROVIDER: 10010,
|
||
|
UNKNOWN_ROLE: 10011,
|
||
|
UNKNOWN_TOKEN: 10012,
|
||
|
UNKNOWN_USER: 10013,
|
||
|
UNKNOWN_EMOJI: 10014,
|
||
|
UNKNOWN_WEBHOOK: 10015,
|
||
|
UNKNOWN_BAN: 10026,
|
||
|
UNKNOWN_GUILD_TEMPLATE: 10057,
|
||
|
BOT_PROHIBITED_ENDPOINT: 20001,
|
||
|
BOT_ONLY_ENDPOINT: 20002,
|
||
|
CHANNEL_HIT_WRITE_RATELIMIT: 20028,
|
||
|
MAXIMUM_GUILDS: 30001,
|
||
|
MAXIMUM_FRIENDS: 30002,
|
||
|
MAXIMUM_PINS: 30003,
|
||
|
MAXIMUM_ROLES: 30005,
|
||
|
MAXIMUM_WEBHOOKS: 30007,
|
||
|
MAXIMUM_REACTIONS: 30010,
|
||
|
MAXIMUM_CHANNELS: 30013,
|
||
|
MAXIMUM_ATTACHMENTS: 30015,
|
||
|
MAXIMUM_INVITES: 30016,
|
||
|
GUILD_ALREADY_HAS_TEMPLATE: 30031,
|
||
|
UNAUTHORIZED: 40001,
|
||
|
ACCOUNT_VERIFICATION_REQUIRED: 40002,
|
||
|
REQUEST_ENTITY_TOO_LARGE: 40005,
|
||
|
FEATURE_TEMPORARILY_DISABLED: 40006,
|
||
|
USER_BANNED: 40007,
|
||
|
ALREADY_CROSSPOSTED: 40033,
|
||
|
MISSING_ACCESS: 50001,
|
||
|
INVALID_ACCOUNT_TYPE: 50002,
|
||
|
CANNOT_EXECUTE_ON_DM: 50003,
|
||
|
EMBED_DISABLED: 50004,
|
||
|
CANNOT_EDIT_MESSAGE_BY_OTHER: 50005,
|
||
|
CANNOT_SEND_EMPTY_MESSAGE: 50006,
|
||
|
CANNOT_MESSAGE_USER: 50007,
|
||
|
CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: 50008,
|
||
|
CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: 50009,
|
||
|
OAUTH2_APPLICATION_BOT_ABSENT: 50010,
|
||
|
MAXIMUM_OAUTH2_APPLICATIONS: 50011,
|
||
|
INVALID_OAUTH_STATE: 50012,
|
||
|
MISSING_PERMISSIONS: 50013,
|
||
|
INVALID_AUTHENTICATION_TOKEN: 50014,
|
||
|
NOTE_TOO_LONG: 50015,
|
||
|
INVALID_BULK_DELETE_QUANTITY: 50016,
|
||
|
CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: 50019,
|
||
|
INVALID_OR_TAKEN_INVITE_CODE: 50020,
|
||
|
CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: 50021,
|
||
|
INVALID_OAUTH_TOKEN: 50025,
|
||
|
BULK_DELETE_MESSAGE_TOO_OLD: 50034,
|
||
|
INVALID_FORM_BODY: 50035,
|
||
|
INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT: 50036,
|
||
|
INVALID_API_VERSION: 50041,
|
||
|
CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL: 50074,
|
||
|
REACTION_BLOCKED: 90001,
|
||
|
RESOURCE_OVERLOADED: 130000,
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types:
|
||
|
* * ALL
|
||
|
* * MENTIONS
|
||
|
* @typedef {string} DefaultMessageNotifications
|
||
|
*/
|
||
|
export const DefaultMessageNotifications = ["ALL", "MENTIONS"];
|
||
|
|
||
|
/**
|
||
|
* The value set for a team members's membership state:
|
||
|
* * INVITED
|
||
|
* * ACCEPTED
|
||
|
* @typedef {string} MembershipStates
|
||
|
*/
|
||
|
export const MembershipStates = [
|
||
|
// They start at 1
|
||
|
null,
|
||
|
"INVITED",
|
||
|
"ACCEPTED",
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* The value set for a webhook's type:
|
||
|
* * Incoming
|
||
|
* * Channel Follower
|
||
|
* @typedef {string} WebhookTypes
|
||
|
*/
|
||
|
export const WebhookTypes = [
|
||
|
// They start at 1
|
||
|
null,
|
||
|
"Incoming",
|
||
|
"Channel Follower",
|
||
|
];
|
||
|
|
||
|
function keyMirror(arr: string[]) {
|
||
|
let tmp = Object.create(null);
|
||
|
for (const value of arr) tmp[value] = value;
|
||
|
return tmp;
|
||
|
}
|