/**
* @fileoverview Definitions of enums
* @author Vlad Vnukovskiy <vvlad1973@gmail.com>
*
*/
/**
* @module enums
*/
'use strict'
/**
* Enum definitions of request poll button types
*
* @enum {string}
*/
export const ChatPermissionsTypes = {
CAN_SEND_MESSAGES: 'can_send_messages',
CAN_SEND_AUDIOS: 'can_send_audios',
CAN_SEND_DOCUMENTS: 'can_send_documents',
CAN_SEND_PHOTOS: 'can_send_photos',
CAN_SEND_VIDEOS: 'can_send_videos',
CAN_SEND_VIDEO_NOTES: 'can_send_video_notes',
CAN_SEND_VOICE_NOTES: 'can_send_voice_notes',
CAN_SEND_POLLS: 'can_send_polls',
CAN_SEND_OTHER_MESSAGES: 'can_send_other_messages',
CAN_ADD_WEB_PAGE_PREVIEWS: 'can_add_web_page_previews',
CAN_CHANGE_INFO: 'can_change_info',
CAN_INVITE_USERS: 'can_invite_users',
CAN_PIN_MESSAGES: 'can_pin_messages',
CAN_MANAGE_TOPICS: 'can_manage_topics',
}
/**
* Enum definitions of request poll button types
*
* @enum {string}
*/
export const KeyboardButtonPollTypes = {
QUIZ: 'quiz',
REGULAR: 'regular',
ANY: 'any',
}
/**
* Enum definitions of bot commands scope types
*
* @enum {string}
*/
export const BotCommandScopeTypes = {
DEFAULT: 'default',
ALL_PRIVATE_CHATS: 'all_private_chats',
ALL_GROUP_CHATS: 'all_group_chats',
ALL_CHAT_ADMINISTRATORS: 'all_chat_administrators',
CHAT: 'chat',
CHAT_ADMINISTRATORS: 'chat_administrators',
CHAT_MEMBER: 'chat_member',
}
/**
* Enum definitions of media types
*
* @enum {string}
*/
export const MediaTypes = {
PHOTO: 'photo',
AUDIO: 'audio',
VIDEO: 'video',
VIDEO_NOTE: 'video_note',
VOICE: 'voice',
ANIMATION: 'animation',
DOCUMENT: 'document',
STICKER: 'sticker',
}
/**
* Emum definition for chat actions
*
* @enum {number}
*/
export const DiceTypes = {
DICE: '🎲',
TARGET: '🎯',
BASKETBALL: '🏀',
FOOTBALL: '⚽',
BOWLING: '🎳',
SLOT_MACHINE: '🎰',
}
/**
* Emum definition for chat actions
*
* @enum {number}
*/
export const ChatActions = {
TYPING: 'typing',
UPLOAD_PHOTO: 'upload_photo',
RECORD_VIDEO: 'record_video',
UPLOAD_VIDEO: 'upload_video',
RECORD_VOICE: 'record_voice',
UPLOAD_VOICE: 'upload_voice',
UPLOAD_DOCUMENT: 'upload_document',
CHOOSE_STICKER: 'choose_sticker',
FIND_LOCATION: 'find_location',
RECORD_VIDEO_NOTE: 'record_video_note',
UPLOAD_VIDEO_NOTE: 'upload_video_note',
}
/**
* Emum definition for HTTP status codes
*
* @enum {number}
*/
export const StatusCodes = {
OK: 200,
BAD_REQUEST: 400,
NOT_FOUND: 404,
METHOD_NOT_ALLOWED: 405,
INTERNAL_SERVER_ERROR: 500,
NOT_IMPLEMENTED: 501,
}
/**
* Enum definition fo Telegram Update types
*
* @enum {string}
*/
export const UpdateTypes = {
MESSAGE: 'message',
CALLBACK_QUERY: 'callback_query',
MY_CHAT_MEMBER: 'my_chat_member',
CHAT_MEMBER: 'chat_member',
CHAT_JOIN_REQUEST: 'chat_join_request',
EDITED_MESSAGE: 'edited_message',
CHANNEL_POST: 'channel_post',
EDITED_CHANNEL_POST: 'edited_chattel_post',
INLINE_QUERY: 'inline_query',
CHOSEN_INLINE_RESULT: 'chosen_inline_result',
PRE_CHECKOUT_QUERY: 'pre_checkout_query',
POLL: 'pool',
POLL_ANSWER: 'pool_answer',
SHIPPING_QUERY: 'shipping_query',
}
/**
* Enum definition fo Telegram Poll types
*
* @enum {string}
*/
export const PollTypes = {
REGULAR: 'regular',
QUIZ: 'quiz',
}
/**
* Enum definition fo Telegram Message types
*
* @enum {string}
*/
export const MessageTypes = {
COMMAND: 'command',
TEXT: 'message.text',
AUDIO: 'message.audio',
ANIMATION: 'message.animation',
VIDEO: 'message.video',
PHOTO: 'message.photo',
DOCUMENT: 'message.document',
CONTACT: 'message.contact',
LOCATION: 'message.location',
POLL: 'message.poll',
NEW_CHAT_MEMBER: 'message.new_chat_member',
LEFT_CHAT_MEMBER: 'message.left_chat_member',
STICKER: 'message.sticker',
VIDEO_NOTE: 'message.video_note',
VOICE: 'message.voice',
DICE: 'message.dice',
GAME: 'message.game',
VENUE: 'message.venue',
INVOICE: 'message.invoice',
SERVICE_MESSAGE: 'service_message',
NEW_CHAT_MEMBER: 'message.new_chat_member',
LEFT_CHAT_MEMBER: 'message.left_chat_member',
NEW_CHAT_TITLE: 'message.new_chat_title',
NEW_CHAT_PHOTO: 'message.new_chat_photo',
DELETE_CHAT_PHOTO: 'message.delete_chat_photo',
GROUP_CHAT_CREATED: 'message.group_chat_created',
MESSAGE_AUTO_DELETE_TIMER_CHANGED: 'message.message_auto_delete_timer_changed',
MIGRATE_CHAT: 'message.migrate_chat',
PINNED_MESSAGE: 'message.pinned_message',
SUCCESSFUL_PAYMENT: 'message.successful_payment',
PROXIMITY_ALERT_TRIGGERED: 'message.proximity_alert_triggered',
VIDEO_CHAT_SCHEDULED: 'message.video_chat_scheduled',
VIDEO_CHAT_STARTED: 'message.video_chat_started',
VIDEO_CHAT_ENDED: 'message.video_chat_ended',
VIDEO_CHAT_PARTICIPANTS_INVITED: 'message.video_chat_participants_invited',
WEB_APP_DATA: 'message.web_app_data',
}
export const ServiceMessages = [
MessageTypes.NEW_CHAT_MEMBER,
MessageTypes.LEFT_CHAT_MEMBER,
MessageTypes.NEW_CHAT_TITLE,
MessageTypes.NEW_CHAT_PHOTO,
MessageTypes.DELETE_CHAT_PHOTO,
MessageTypes.GROUP_CHAT_CREATED,
MessageTypes.MESSAGE_AUTO_DELETE_TIMER_CHANGED,
MessageTypes.MIGRATE_CHAT,
MessageTypes.MIGRATE_CHAT,
MessageTypes.PINNED_MESSAGE,
MessageTypes.SUCCESSFUL_PAYMENT,
MessageTypes.PROXIMITY_ALERT_TRIGGERED,
MessageTypes.VIDEO_CHAT_SCHEDULED,
MessageTypes.VIDEO_CHAT_STARTED,
MessageTypes.VIDEO_CHAT_ENDED,
MessageTypes.VIDEO_CHAT_PARTICIPANTS_INVITED,
MessageTypes.WEB_APP_DATA,
]
/**
* Enum definition fo Telegram Bot API methods
*
* @enum {string}
*/
export const TelegramBotApiMethods = {
SEND_MESSAGE: 'sendMessage',
ANSWER_CALLBACK_QUERY: 'answerCallbackQuery',
FORWARD_MESSAGE: 'forwardMessage',
COPY_MESSAGE: 'copyMessage',
GET_ME: 'getMe',
GET_WEBHOOK_INFO: 'getWebhookInfo',
DELETE_WEBHOOK: 'deleteWebhook',
SET_WEBHOOK: 'setWebhook',
SEND_PHOTO: 'sendPhoto',
DELETE_MESSAGE: 'deleteMessage',
PIN_CHAT_MESSAGE: 'pinChatMessage',
UNPIN_CHAT_MESSAGE: 'unpinChatMessage',
UNPIN_ALL_CHAT_MESSAGES: 'unpinAllChatMessages',
GET_MY_COMMANDS: 'getMyCommands',
SET_MY_COMMANDS: 'setMyCommands',
DELETE_MY_COMMANDS: 'deleteMyCommands',
EDIT_MESSAGE_TEXT: 'editMessageText',
EDIT_MESSAGE_CAPTION: 'editMessageCaption',
EDIT_MESSAGE_REPLY_MARKUP: 'editMessageReplyMarkup',
EDIT_MESSAGE_MEDIA: 'editMessageMedia',
SEND_CHAT_ACTION: 'sendChatAction',
SEND_DICE: 'sendDice',
SEND_VIDEO: 'sendVideo',
SEND_VIDEO_NOTE: 'sendVideoNote',
SEND_CONTACT: 'sendContact',
SEND_AUDIO: 'sendAudio',
SEND_VOICE: 'sendVoice',
SEND_DOCUMENT: 'sendDocument',
SEND_ANIMATION: 'sendAnimation',
SEND_MEDIA_GROUP: 'sendMediaGroup',
GET_CHAT: 'getChat',
GET_CHAT_ADMINISTRATORS: 'getChatAdministrators',
GET_CHAT_MEMBER_COUNT: 'getChatMemberCount',
GET_CHAT_MEMBER: 'getChatMember',
GET_FILE: 'getFile',
SEND_POLL: 'sendPoll',
STOP_POLL: 'stopPoll',
SEND_STICKER: 'sendSticker',
BAN_CHAT_MEMBER: 'banChatMember',
UNBAN_CHAT_MEMBER: 'unbanChatMember',
RESTRICT_CHAT_MEMBER: 'restrictChatMember',
PROMOTE_CHAT_MEMBER: 'promoteChatMember',
}
/**
* Enum definitions methods with media
*
* @enum {string}
*/
export const TelegramBotApiMethodsWithMedia = {
SEND_VIDEO: 'sendVideo',
SEND_AUDIO: 'sendAudio',
SEND_VOICE: 'sendVoice',
SEND_DOCUMENT: 'sendDocument',
SEND_ANIMATION: 'sendAnimation',
EDIT_MESSAGE_MEDIA: 'editMessageMedia',
SEND_MEDIA_GROUP: 'sendMediaGroup',
SEND_VIDEO_NOTE: 'sendVideoNote',
SET_CHAT_PHOTO: 'setChatPhoto',
SEND_PHOTO: 'sendPhoto',
}
/**
* Enum definitions properties with media
*
* @enum {string}
*/
export const MediaProperties = {
PHOTO: 'photo',
AUDIO: 'audio',
VIDEO: 'video',
VOICE: 'voice',
ANIMATION: 'animation',
MEDIA: 'media',
DOCUMENT: 'document',
THUMB: 'thumb',
VIDEO_NOTE: 'video_note',
}
/**
* Enum definition for Telegram entity types
*
* @enum {string}
*/
export const EntityTypes = {
BOLD: 'bold',
ITALIC: 'italic',
UNDERLINE: 'underline',
STRIKETHROUGH: 'strikethrough',
CODE: 'code',
PRE: 'pre',
TEXT_LINK: 'text_link',
TEXT_MENTION: 'text_mention',
EMAIL: 'email',
PHONE_NUMBER: 'phone_number',
URL: 'url',
BOT_COMMAND: 'bot_command',
CASHTAG: 'cashtag',
HASHTAG: 'hashtag',
MENTION: 'mention',
SPOILER: 'spoiler',
}
/**
* Enum definition for Telegram parse modes
*
* @enum {string}
*/
export const ParseModes = {
NONE: '',
MARKDOWN2: 'MarkdownV2',
MARKDOWN: 'Markdown',
HTML: 'HTML',
}