Skip to content

Tipe TypeScript ​

VibeGram mengekspor deklarasi TypeScript untuk objek utama Telegram Bot API 10.1, helper framework, opsi middleware, dan class error.

ts
import type { Update, Message, User, Chat, Context } from 'vibegram';

Tipe Core ​

TipeDeskripsi
UpdateUpdate masuk dari Telegram.
MessagePayload pesan.
UserUser Telegram.
ChatIdentitas chat ringkas dari update.
ChatFullInfoMetadata chat lengkap dari getChat.
CallbackQueryCallback tombol inline.
InlineQueryQuery inline mode.
Context<S>Context handler per update, opsional diketik dengan data session.

Tipe Media ​

TipeDeskripsi
PhotoSizeMetadata foto dengan dimensi.
AudioFile audio.
DocumentFile umum.
VideoFile video.
VoiceVoice note.
VideoNoteVideo note bulat.
AnimationGIF atau animasi H.264.
LivePhotoPayload live photo Bot API 10.0.
StickerMetadata sticker.
ContactKontak yang dibagikan.
LocationKoordinat geografis.

Tipe Interaktif ​

TipeDeskripsi
PollPayload poll atau quiz.
PollOptionSatu opsi poll.
PollMediaMedia Bot API 10.0 yang melekat ke poll.
DiceHasil dice animasi.
VenueVenue dengan lokasi.
GamePayload game Telegram.
WebAppDataData dari Mini App.

Tipe Keyboard ​

TipeDeskripsi
ReplyMarkupUnion payload reply markup yang didukung.
InlineKeyboardMarkupLayout inline keyboard.
InlineKeyboardButtonTombol inline keyboard.
ReplyKeyboardMarkupLayout reply keyboard native.
KeyboardButtonTombol reply keyboard native.
ReplyKeyboardRemovePayload hapus keyboard.
ForceReplyPayload force reply.

Tipe Entity ​

TipeDeskripsi
MessageEntityEntity teks seperti command, link, bold, code, spoiler, atau blockquote.

String entity yang didukung mencakup mention, hashtag, bot_command, url, email, phone_number, bold, italic, underline, strikethrough, spoiler, code, pre, text_link, text_mention, custom_emoji, blockquote, expandable_blockquote, dan date_time.

Tipe Update ​

TipeDeskripsi
ChatMemberUpdatedPerubahan status member.
ChatJoinRequestRequest join chat.
ShippingQueryQuery shipping pembayaran.
PreCheckoutQueryQuery pre-checkout pembayaran.
ChatBoostUpdatedEvent chat boost.
ChatBoostRemovedEvent chat boost dihapus.
PaidMediaPurchasedEvent pembelian paid media.

Tipe Extra ​

Tipe extra mendeskripsikan parameter opsional untuk shortcut method.

ts
import type {
    ExtraReplyMessage,
    ExtraMedia,
    ExtraEditMessage,
    ExtraPoll,
    ExtraBanMember,
    ExtraRestrictMember,
    ExtraPromoteMember,
    ExtraInviteLink,
} from 'vibegram';

Tipe State dan Helper ​

ts
import type {
    BotOptions,
    BotLaunchOptions,
    Middleware,
    NextFunction,
    SessionStore,
    RateLimitStore,
    UpdateDedupeStore,
} from 'vibegram';

Gunakan tipe ini saat menulis middleware, plugin, store, atau instance bot yang strongly typed.

Tipe Bot API 10.0 ​

TipeDeskripsi
SentGuestMessageHasil dari answerGuestQuery.
BotAccessSettingsPengaturan akses managed bot.
LivePhotoObjek live photo di message.
InputMediaLivePhotoPayload input media live photo.
PollMediaMedia untuk poll dan explanation poll.
DeleteMessageReactionOptionsOpsi menghapus satu reaction message.
DeleteAllMessageReactionsOptionsOpsi menghapus reaction terbaru.
SendLivePhotoOptionsOpsi tambahan untuk sendLivePhoto.

Tipe Bot API 10.1 ​

Rich Messages ​

TipeDeskripsi
RichMessagePesan rich (blocks + is_rtl opsional).
InputRichMessageRich message yang dikirim; pakai tepat satu dari html atau markdown.
InputRichMessageContentKonten rich message untuk hasil inline query.
RichTextString biasa, array RichText, atau elemen RichText*.
RichBlockUnion block rich seperti paragraph, heading, table, dan photo.
RichBlockCaptionCaption (text + credit opsional) untuk block media.
RichBlockTableCellSel pada RichBlockTable.
RichBlockListItemItem pada RichBlockList.

Tipe inline RichText* dan block RichBlock* diekspor satu per satu untuk typing yang presisi.

Join Request Queries dan Polls ​

TipeDeskripsi
ChatJoinRequestQueryResultHasil 'approve' | 'decline' | 'queue' untuk answerChatJoinRequestQuery.
LinkObjek HTTP link (url).
InputMediaLinkMedia link yang bisa dipakai sebagai media opsi poll.

Field baru pada tipe lama mencakup User.supports_join_request_queries, ChatFullInfo.guard_bot, ChatJoinRequest.query_id, dan Message.rich_message.

Interface Pagination ​

ts
import type { PaginationItem, PaginationOptions } from 'vibegram';

const item: PaginationItem = {
    text: 'Produk',
    callback_data: 'product:1',
};

PaginationOptions mengatur nomor halaman, ukuran halaman, callback data navigasi, pola label halaman opsional, dan kolom grid opsional.

Interface Session ​

ts
import type { SessionStore } from 'vibegram';

class RedisSessionStore implements SessionStore {
    async get(key: string) {
        const value = await redis.get(key);
        return value ? JSON.parse(value) : undefined;
    }

    async set(key: string, value: unknown) {
        await redis.set(key, JSON.stringify(value));
    }

    async delete(key: string) {
        await redis.del(key);
    }
}

Gunakan MemorySessionStore untuk storage in-memory lokal atau implementasikan SessionStore untuk Redis, SQL, atau store eksternal lain.

Session Bertipe ​

ts
type MySession = {
    count: number;
    language: string;
};

bot.use(
    session<MySession>({
        initial: () => ({ count: 0, language: 'id' }),
    })
);

Typing middleware session membuat ctx.session strongly typed di handler berikutnya.

Extending Context ​

ts
import type { Context } from 'vibegram';

interface AppContext extends Context<MySession> {
    user?: { id: string; role: 'admin' | 'member' };
}

const bot = new Bot<AppContext>(process.env.BOT_TOKEN!);

Gunakan tipe context kustom saat middleware menempelkan data aplikasi sendiri.

Tipe Error ​

ts
import {
    ConversationTimeoutError,
    InvalidTokenError,
    NetworkError,
    RateLimitError,
    TelegramApiError,
    VibeGramError,
    WebAppValidationError,
} from 'vibegram';

Catch subclass spesifik saat perilaku recovery berbeda per kategori error.

Released under the ISC License.