UNPKG

redai-automation-web-sdk

Version:

TypeScript SDK for RedAI Automation Web API - Zalo Personal automation, messaging, advanced sticker search, and bulk operations. 100% compatible with automation-web backend. v1.8.0: Added SessionProxyService for managing proxy assignments to sessions with

451 lines 19.9 kB
/** * Zalo Personal Webhook Events SDK * Chuẩn hóa types cho tất cả webhook events từ automation-web * Source: automation-web/src/shared/types/zalo-webhook-events.types.ts */ /** * Thread Type enum */ export declare enum ZaloThreadType { USER = "user", GROUP = "group" } /** * Event Type enum - Chuẩn hóa tất cả event types */ export declare enum ZaloWebhookEventType { TEXT_MESSAGE_SENT_TO_USER = "text-message-sent-to-user",// Gửi tin nhắn text cho user cá nhân TEXT_MESSAGE_SENT_TO_GROUP = "text-message-sent-to-group",// Gửi tin nhắn text vào nhóm TEXT_MESSAGE_RECEIVED_FROM_USER = "text-message-received-from-user",// Nhận tin nhắn text từ user cá nhân TEXT_MESSAGE_RECEIVED_FROM_GROUP = "text-message-received-from-group",// Nhận tin nhắn text từ nhóm IMAGE_MESSAGE_SENT_TO_USER = "image-message-sent-to-user",// Gửi hình ảnh cho user cá nhân IMAGE_MESSAGE_SENT_TO_GROUP = "image-message-sent-to-group",// Gửi hình ảnh vào nhóm IMAGE_MESSAGE_RECEIVED_FROM_USER = "image-message-received-from-user",// Nhận hình ảnh từ user cá nhân IMAGE_MESSAGE_RECEIVED_FROM_GROUP = "image-message-received-from-group",// Nhận hình ảnh từ nhóm VIDEO_MESSAGE_SENT_TO_USER = "video-message-sent-to-user",// Gửi video cho user cá nhân VIDEO_MESSAGE_SENT_TO_GROUP = "video-message-sent-to-group",// Gửi video vào nhóm VIDEO_MESSAGE_RECEIVED_FROM_USER = "video-message-received-from-user",// Nhận video từ user cá nhân VIDEO_MESSAGE_RECEIVED_FROM_GROUP = "video-message-received-from-group",// Nhận video từ nhóm VOICE_MESSAGE_SENT_TO_USER = "voice-message-sent-to-user",// Gửi voice/audio cho user cá nhân VOICE_MESSAGE_SENT_TO_GROUP = "voice-message-sent-to-group",// Gửi voice/audio vào nhóm VOICE_MESSAGE_RECEIVED_FROM_USER = "voice-message-received-from-user",// Nhận voice/audio từ user cá nhân VOICE_MESSAGE_RECEIVED_FROM_GROUP = "voice-message-received-from-group",// Nhận voice/audio từ nhóm FILE_MESSAGE_SENT_TO_USER = "file-message-sent-to-user",// Gửi file cho user cá nhân FILE_MESSAGE_SENT_TO_GROUP = "file-message-sent-to-group",// Gửi file vào nhóm FILE_MESSAGE_RECEIVED_FROM_USER = "file-message-received-from-user",// Nhận file từ user cá nhân FILE_MESSAGE_RECEIVED_FROM_GROUP = "file-message-received-from-group",// Nhận file từ nhóm STICKER_MESSAGE_SENT_TO_USER = "sticker-message-sent-to-user",// Gửi sticker cho user cá nhân STICKER_MESSAGE_SENT_TO_GROUP = "sticker-message-sent-to-group",// Gửi sticker vào nhóm STICKER_MESSAGE_RECEIVED_FROM_USER = "sticker-message-received-from-user",// Nhận sticker từ user cá nhân STICKER_MESSAGE_RECEIVED_FROM_GROUP = "sticker-message-received-from-group",// Nhận sticker từ nhóm LOCATION_MESSAGE_SENT_TO_USER = "location-message-sent-to-user",// Gửi vị trí cho user cá nhân LOCATION_MESSAGE_SENT_TO_GROUP = "location-message-sent-to-group",// Gửi vị trí vào nhóm LOCATION_MESSAGE_RECEIVED_FROM_USER = "location-message-received-from-user",// Nhận vị trí từ user cá nhân LOCATION_MESSAGE_RECEIVED_FROM_GROUP = "location-message-received-from-group",// Nhận vị trí từ nhóm GIF_MESSAGE_SENT_TO_USER = "gif-message-sent-to-user",// Gửi GIF cho user cá nhân GIF_MESSAGE_SENT_TO_GROUP = "gif-message-sent-to-group",// Gửi GIF vào nhóm GIF_MESSAGE_RECEIVED_FROM_USER = "gif-message-received-from-user",// Nhận GIF từ user cá nhân GIF_MESSAGE_RECEIVED_FROM_GROUP = "gif-message-received-from-group",// Nhận GIF từ nhóm LINK_MESSAGE_SENT_TO_USER = "link-message-sent-to-user",// Gửi link cho user cá nhân LINK_MESSAGE_SENT_TO_GROUP = "link-message-sent-to-group",// Gửi link vào nhóm LINK_MESSAGE_RECEIVED_FROM_USER = "link-message-received-from-user",// Nhận link từ user cá nhân LINK_MESSAGE_RECEIVED_FROM_GROUP = "link-message-received-from-group",// Nhận link từ nhóm DOODLE_MESSAGE_SENT_TO_USER = "doodle-message-sent-to-user",// Gửi doodle/vẽ cho user cá nhân DOODLE_MESSAGE_SENT_TO_GROUP = "doodle-message-sent-to-group",// Gửi doodle/vẽ vào nhóm DOODLE_MESSAGE_RECEIVED_FROM_USER = "doodle-message-received-from-user",// Nhận doodle/vẽ từ user cá nhân DOODLE_MESSAGE_RECEIVED_FROM_GROUP = "doodle-message-received-from-group",// Nhận doodle/vẽ từ nhóm RECOMMENDED_MESSAGE_SENT_TO_USER = "recommended-message-sent-to-user", RECOMMENDED_MESSAGE_SENT_TO_GROUP = "recommended-message-sent-to-group", RECOMMENDED_MESSAGE_RECEIVED_FROM_USER = "recommended-message-received-from-user", RECOMMENDED_MESSAGE_RECEIVED_FROM_GROUP = "recommended-message-received-from-group", OLD_MESSAGES = "old-messages",// Lấy tin nhắn cũ từ lịch sử TYPING_BY_SELF_IN_USER = "typing-by-self-in-user",// Mình đang soạn tin trong chat cá nhân TYPING_BY_SELF_IN_GROUP = "typing-by-self-in-group",// Mình đang soạn tin trong nhóm TYPING_BY_OTHER_IN_USER = "typing-by-other-in-user",// Người khác đang soạn tin trong chat cá nhân TYPING_BY_OTHER_IN_GROUP = "typing-by-other-in-group",// Người khác đang soạn tin trong nhóm SEEN_MESSAGES_BY_SELF_IN_USER = "seen-messages-by-self-in-user",// Mình đã xem tin nhắn trong chat cá nhân SEEN_MESSAGES_BY_SELF_IN_GROUP = "seen-messages-by-self-in-group",// Mình đã xem tin nhắn trong nhóm SEEN_MESSAGES_BY_OTHER_IN_USER = "seen-messages-by-other-in-user",// Người khác đã xem tin nhắn trong chat cá nhân SEEN_MESSAGES_BY_OTHER_IN_GROUP = "seen-messages-by-other-in-group",// Người khác đã xem tin nhắn trong nhóm DELIVERED_MESSAGES_BY_SELF_IN_USER = "delivered-messages-by-self-in-user",// Tin nhắn của mình đã được gửi đến user cá nhân DELIVERED_MESSAGES_BY_SELF_IN_GROUP = "delivered-messages-by-self-in-group",// Tin nhắn của mình đã được gửi đến nhóm DELIVERED_MESSAGES_BY_OTHER_IN_USER = "delivered-messages-by-other-in-user",// Tin nhắn của người khác đã được gửi đến mình (chat cá nhân) DELIVERED_MESSAGES_BY_OTHER_IN_GROUP = "delivered-messages-by-other-in-group",// Tin nhắn của người khác đã được gửi đến nhóm REACTION_BY_SELF_IN_USER = "reaction-by-self-in-user",// Mình react tin nhắn trong chat cá nhân REACTION_BY_SELF_IN_GROUP = "reaction-by-self-in-group",// Mình react tin nhắn trong nhóm REACTION_BY_OTHER_IN_USER = "reaction-by-other-in-user",// Người khác react tin nhắn trong chat cá nhân REACTION_BY_OTHER_IN_GROUP = "reaction-by-other-in-group",// Người khác react tin nhắn trong nhóm OLD_REACTIONS_BY_SELF_IN_USER = "old-reactions-by-self-in-user",// Lấy reaction cũ của mình trong chat cá nhân OLD_REACTIONS_BY_SELF_IN_GROUP = "old-reactions-by-self-in-group",// Lấy reaction cũ của mình trong nhóm OLD_REACTIONS_BY_OTHER_IN_USER = "old-reactions-by-other-in-user",// Lấy reaction cũ của người khác trong chat cá nhân OLD_REACTIONS_BY_OTHER_IN_GROUP = "old-reactions-by-other-in-group",// Lấy reaction cũ của người khác trong nhóm FRIEND_EVENT_ADD = "friend-event-add",// Thêm bạn bè FRIEND_EVENT_REMOVE = "friend-event-remove",// Xóa bạn bè FRIEND_EVENT_REQUEST = "friend-event-request",// Gửi lời mời kết bạn FRIEND_EVENT_UNDO_REQUEST = "friend-event-undo-request",// Hủy lời mời kết bạn FRIEND_EVENT_REJECT_REQUEST = "friend-event-reject-request",// Từ chối lời mời kết bạn FRIEND_EVENT_SEEN_REQUEST = "friend-event-seen-request",// Đã xem lời mời kết bạn FRIEND_EVENT_BLOCK = "friend-event-block",// Chặn bạn bè FRIEND_EVENT_UNBLOCK = "friend-event-unblock",// Bỏ chặn bạn bè FRIEND_EVENT_BLOCK_CALL = "friend-event-block-call",// Chặn cuộc gọi từ bạn bè FRIEND_EVENT_UNBLOCK_CALL = "friend-event-unblock-call",// Bỏ chặn cuộc gọi từ bạn bè FRIEND_EVENT_PIN_UNPIN = "friend-event-pin-unpin",// Ghim/bỏ ghim bạn bè FRIEND_EVENT_PIN_CREATE = "friend-event-pin-create",// Tạo ghim bạn bè FRIEND_EVENT_UNKNOWN = "friend-event-unknown",// Sự kiện bạn bè không xác định GROUP_EVENT_JOIN_REQUEST = "group-event-join-request",// Yêu cầu tham gia nhóm GROUP_EVENT_JOIN = "group-event-join",// Tham gia nhóm GROUP_EVENT_LEAVE = "group-event-leave",// Rời khỏi nhóm GROUP_EVENT_REMOVE_MEMBER = "group-event-remove-member",// Xóa thành viên khỏi nhóm GROUP_EVENT_BLOCK_MEMBER = "group-event-block-member",// Chặn thành viên trong nhóm GROUP_EVENT_UPDATE_SETTING = "group-event-update-setting",// Cập nhật cài đặt nhóm GROUP_EVENT_UPDATE = "group-event-update",// Cập nhật thông tin nhóm GROUP_EVENT_NEW_LINK = "group-event-new-link",// Tạo link mời nhóm mới GROUP_EVENT_ADD_ADMIN = "group-event-add-admin",// Thêm admin nhóm GROUP_EVENT_REMOVE_ADMIN = "group-event-remove-admin",// Xóa admin nhóm GROUP_EVENT_NEW_PIN_TOPIC = "group-event-new-pin-topic",// Tạo chủ đề ghim mới GROUP_EVENT_UPDATE_PIN_TOPIC = "group-event-update-pin-topic",// Cập nhật chủ đề ghim GROUP_EVENT_REORDER_PIN_TOPIC = "group-event-reorder-pin-topic",// Sắp xếp lại chủ đề ghim GROUP_EVENT_UPDATE_BOARD = "group-event-update-board",// Cập nhật bảng nhóm GROUP_EVENT_REMOVE_BOARD = "group-event-remove-board",// Xóa bảng nhóm GROUP_EVENT_UPDATE_TOPIC = "group-event-update-topic",// Cập nhật chủ đề GROUP_EVENT_UNPIN_TOPIC = "group-event-unpin-topic",// Bỏ ghim chủ đề GROUP_EVENT_REMOVE_TOPIC = "group-event-remove-topic",// Xóa chủ đề GROUP_EVENT_ACCEPT_REMIND = "group-event-accept-remind",// Chấp nhận nhắc nhở GROUP_EVENT_REJECT_REMIND = "group-event-reject-remind",// Từ chối nhắc nhở GROUP_EVENT_REMIND_TOPIC = "group-event-remind-topic",// Nhắc nhở về chủ đề GROUP_EVENT_UPDATE_AVATAR = "group-event-update-avatar",// Cập nhật avatar nhóm GROUP_EVENT_UNKNOWN = "group-event-unknown",// Sự kiện nhóm không xác định UNDO_BY_SELF_IN_USER = "undo-by-self-in-user",// Mình thu hồi tin nhắn trong chat cá nhân UNDO_BY_SELF_IN_GROUP = "undo-by-self-in-group",// Mình thu hồi tin nhắn trong nhóm UNDO_BY_OTHER_IN_USER = "undo-by-other-in-user",// Người khác thu hồi tin nhắn trong chat cá nhân UNDO_BY_OTHER_IN_GROUP = "undo-by-other-in-group",// Người khác thu hồi tin nhắn trong nhóm CONNECTION_STATUS_CONNECTED = "connection-status-connected",// Đã kết nối thành công CONNECTION_STATUS_DISCONNECTED = "connection-status-disconnected",// Mất kết nối CONNECTION_STATUS_RECONNECTING = "connection-status-reconnecting",// Đang kết nối lại CONNECTION_STATUS_LOGGED_OUT = "connection-status-logged-out",// Đã đăng xuất UPLOAD_ATTACHMENT_IN_PROGRESS = "upload-attachment-in-progress",// Đang upload file UPLOAD_ATTACHMENT_COMPLETED = "upload-attachment-completed",// Upload file thành công UPLOAD_ATTACHMENT_FAILED = "upload-attachment-failed",// Upload file thất bại CIPHER_KEY_UPDATED_IN_USER = "cipher-key-updated-in-user",// Cập nhật cipher key trong chat cá nhân CIPHER_KEY_UPDATED_IN_GROUP = "cipher-key-updated-in-group",// Cập nhật cipher key trong nhóm CIPHER_KEY_EXPIRED_IN_USER = "cipher-key-expired-in-user",// Cipher key hết hạn trong chat cá nhân CIPHER_KEY_EXPIRED_IN_GROUP = "cipher-key-expired-in-group",// Cipher key hết hạn trong nhóm ERROR_SYSTEM = "error-system",// Lỗi hệ thống ERROR_NETWORK = "error-network",// Lỗi mạng ERROR_AUTHENTICATION = "error-authentication",// Lỗi xác thực ERROR_VALIDATION = "error-validation",// Lỗi validation dữ liệu ERROR_BUSINESS_LOGIC = "error-business-logic",// Lỗi logic nghiệp vụ ERROR_UNKNOWN = "error-unknown" } /** * Base webhook event interface */ export interface BaseZaloWebhookEvent { sessionId: string; userUuid: string; timestamp: number; eventType: ZaloWebhookEventType; metadata?: Record<string, any>; } /** * Attachment content interface */ export interface ZaloAttachmentContent { title: string; description: string; href: string; thumb: string; childnumber: number; action: string; params: string; type: string; } /** * Message mention interface */ export interface ZaloMessageMention { uid: string; name: string; startIndex: number; length: number; } /** * Message quote interface */ export interface ZaloMessageQuote { ownerId: number; cliMsgId: number; globalMsgId: number; cliMsgType: number; ts: number; msg: string; attach: string; fromD: string; ttl: number; } /** * Complete message data từ SDK - FULL FIELDS */ export interface ZaloMessageData { actionId: string; msgId: string; cliMsgId: string; msgType: string; uidFrom: string; idTo: string; dName: string; ts: string; status: number; content: string | ZaloAttachmentContent | Record<string, any>; notify: string; ttl: number; userId: string; uin: string; realMsgId: string; topOut: string; topOutTimeOut: string; topOutImprTimeOut: string; propertyExt?: { color: number; size: number; type: number; subType: number; ext: string; }; paramsExt: { countUnread: number; containType: number; platformType: number; }; cmd: number; st: number; at: number; mentions?: ZaloMessageMention[]; quote?: ZaloMessageQuote; } /** * Message Type enum từ SDK - đồng nhất với automation-web */ export declare enum ZaloMessageType { TEXT = "webchat", VOICE = "chat.voice", PHOTO = "chat.photo", STICKER = "chat.sticker", DOODLE = "chat.doodle", RECOMMENDED = "chat.recommended", LINK = "chat.link", VIDEO = "chat.video.msg", FILE = "share.file", GIF = "chat.gif", LOCATION = "chat.location.new" } /** * Message Category enum */ export declare enum ZaloMessageCategory { TEXT = "text", MEDIA = "media", FILE = "file", SOCIAL = "social", OTHER = "other" } /** * Base message event data - chứa tất cả fields từ SDK */ export interface BaseMessageEventData extends ZaloMessageData { threadId: string; threadType: ZaloThreadType; isSelf: boolean; messageType: ZaloMessageType; messageCategory: ZaloMessageCategory; hasAttachment: boolean; } /** * TEXT message data - chỉ chứa text content */ export interface ZaloTextMessageData extends BaseMessageEventData { messageType: ZaloMessageType.TEXT; messageCategory: ZaloMessageCategory.TEXT; hasAttachment: false; content: string; } /** * IMAGE message data - chứa thông tin hình ảnh */ export interface ZaloImageMessageData extends BaseMessageEventData { messageType: ZaloMessageType.PHOTO; messageCategory: ZaloMessageCategory.MEDIA; hasAttachment: true; content: ZaloAttachmentContent & { type: 'image'; width?: number; height?: number; fileSize?: number; mimeType?: string; }; } /** * VIDEO message data - chứa thông tin video */ export interface ZaloVideoMessageData extends BaseMessageEventData { messageType: ZaloMessageType.VIDEO; messageCategory: ZaloMessageCategory.MEDIA; hasAttachment: true; content: ZaloAttachmentContent & { type: 'video'; duration?: number; width?: number; height?: number; fileSize?: number; mimeType?: string; }; } /** * VOICE message data - chứa thông tin voice/audio */ export interface ZaloVoiceMessageData extends BaseMessageEventData { messageType: ZaloMessageType.VOICE; messageCategory: ZaloMessageCategory.MEDIA; hasAttachment: true; content: ZaloAttachmentContent & { type: 'voice' | 'audio'; duration?: number; fileSize?: number; mimeType?: string; }; } /** * FILE message data - chứa thông tin file */ export interface ZaloFileMessageData extends BaseMessageEventData { messageType: ZaloMessageType.FILE; messageCategory: ZaloMessageCategory.FILE; hasAttachment: true; content: ZaloAttachmentContent & { type: 'file'; fileName?: string; fileSize?: number; mimeType?: string; extension?: string; }; } /** * STICKER message data - chứa thông tin sticker */ export interface ZaloStickerMessageData extends BaseMessageEventData { messageType: ZaloMessageType.STICKER; messageCategory: ZaloMessageCategory.SOCIAL; hasAttachment: true; content: ZaloAttachmentContent & { type: 'sticker'; stickerId?: string; stickerPackId?: string; width?: number; height?: number; }; } /** * TYPING event data - chứa thông tin typing status */ export interface ZaloTypingEventData { uid: string; ts: string; isPC: number; gid?: string; threadId: string; threadType: ZaloThreadType; fromId: string; fromName: string; isTyping: boolean; } /** * REACTION event data - chứa thông tin reaction */ export interface ZaloReactionEventData { msgId: string; uidFrom: string; dName: string; ts: string; content: { rIcon: ZaloReactionType; rType: number; }; realMsgId: string; groupId?: string; threadId: string; threadType: ZaloThreadType; fromId: string; fromName: string; reaction: string; timestamp: number; } /** * Reaction types enum từ SDK */ export declare enum ZaloReactionType { LIKE = "/-heart", LOVE = "/-heart", HAHA = ":))", WOW = ":-o", SAD = ":(", ANGRY = ":-@", NONE = "" } /** * UNDO event data - chứa thông tin thu hồi tin nhắn */ export interface ZaloUndoEventData { msgId: string; cliMsgId: string; uidFrom: string; idTo: string; dName: string; ts: string; realMsgId: string; groupId?: string; threadId: string; threadType: ZaloThreadType; fromId: string; fromName: string; undoMsgId: string; timestamp: number; } /** * CONNECTION STATUS event data - chứa thông tin trạng thái kết nối */ export interface ZaloConnectionStatusEventData { status: ZaloConnectionStatus; reason?: string; timestamp: number; sessionInfo?: { sessionId: string; userUuid: string; userId?: string; }; } /** * Connection Status enum */ export declare enum ZaloConnectionStatus { CONNECTED = "connected", DISCONNECTED = "disconnected", RECONNECTING = "reconnecting", LOGGED_OUT = "logged_out" } /** * Simplified webhook event for SDK usage * Updated to match automation-web WebhookJobData interface */ export interface WebhookEvent extends BaseZaloWebhookEvent { eventData: ZaloMessageData | ZaloTypingEventData | ZaloReactionEventData | ZaloUndoEventData | any; } /** * Webhook event handler function type */ export type WebhookEventHandler<T extends WebhookEvent = WebhookEvent> = (event: T) => void | Promise<void>; export declare const WebhookEventType: typeof ZaloWebhookEventType; export type MessageEventData = ZaloMessageData; export type BaseWebhookEvent = BaseZaloWebhookEvent; export type TypingEventData = ZaloTypingEventData; export type ReactionEventData = ZaloReactionEventData; //# sourceMappingURL=webhook.types.d.ts.map