Spaces:
Paused
Paused
| /* | |
| * This file is part of WPPConnect. | |
| * | |
| * WPPConnect is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU Lesser General Public License as published by | |
| * the Free Software Foundation, either version 3 of the License, or | |
| * (at your option) any later version. | |
| * | |
| * WPPConnect is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public License | |
| * along with WPPConnect. If not, see <https://www.gnu.org/licenses/>. | |
| */ | |
| import { Chat } from './chat'; | |
| import { Contact } from './contact'; | |
| import { MessageType } from './enum'; | |
| import { Wid } from './wid'; | |
| /** available during the `onMessage` event */ | |
| export interface Message { | |
| id: string; | |
| /** exists when it is a displayable message (i.e. `MessageType.CHAT` / `"chat"`); the body is not included in notifications like group removal, etc. (`gp2`) */ | |
| body?: string; | |
| type: MessageType; | |
| /** | |
| * When type is GP2: {@link GroupNotificationType} | |
| */ | |
| subtype: string; | |
| t: number; | |
| /** profile alias chosen by the sender */ | |
| notifyName: string; | |
| from: string; | |
| to: string; | |
| author: string; | |
| self: string; | |
| ack: number; | |
| invis: boolean; | |
| isNewMsg: boolean; | |
| star: boolean; | |
| kicNotified: boolean; | |
| recvFresh: boolean; | |
| interactiveAnnotations: any[]; | |
| clientUrl: string; | |
| deprecatedMms3Url: string; | |
| directPath: string; | |
| mimetype: string; | |
| filehash: string; | |
| uploadhash: string; | |
| size: number; | |
| mediaKey: string; | |
| mediaKeyTimestamp: number; | |
| width: number; | |
| height: number; | |
| /** exists when `type` is set to {@link MessageType.VIDEO} || {@link MessageType.IMAGE} */ | |
| isViewOnce?: boolean; | |
| broadcast: boolean; | |
| /** array of the users who were mentioned in this message; given in the serialized format: "xxxxxxxxxx@c.us" / "xxxxxxxxxx@g.us" */ | |
| mentionedJidList: string[]; | |
| isVcardOverMmsDocument: boolean; | |
| /** exists when `type` is set to {@link MessageType.VCARD}; it is the name of the sent contact */ | |
| vcardFormattedName?: string; | |
| isForwarded: boolean; | |
| hasReaction: boolean; | |
| productHeaderImageRejected: boolean; | |
| lastPlaybackProgress: number; | |
| isDynamicReplyButtonsMsg: boolean; | |
| isCarouselCard: boolean; | |
| parentMsgId: any; //TODO: specify the type, `null` spotted often | |
| isMdHistoryMsg: boolean; | |
| stickerSentTs: number; | |
| isAvatar: boolean; | |
| lastUpdateFromServerTs: number; | |
| invokedBotWid: null | Wid; | |
| bizBotType: null; //TODO: amend this type definition | |
| botResponseTargetId: null; //TODO: amend this type definition | |
| botPluginType: null; //TODO: amend this type definition | |
| botPluginReferenceIndex: null; //TODO: amend this type definition | |
| botPluginSearchProvider: null; //TODO: amend this type definition | |
| botPluginSearchUrl: null; //TODO: amend this type definition | |
| botPluginSearchQuery: null; //TODO: amend this type definition | |
| botPluginMaybeParent: boolean; | |
| botReelPluginThumbnailCdnUrl: null; //TODO: amend this type definition | |
| botMsgBodyType: null; //TODO: amend this type definition | |
| requiresDirectConnection: null; //TODO: amend this type definition | |
| bizContentPlaceholderType: null; //TODO: amend this type definition | |
| hostedBizEncStateMismatch: boolean; | |
| senderOrRecipientAccountTypeHosted: boolean; | |
| placeholderCreatedWhenAccountIsHosted: boolean; | |
| labels?: any[]; | |
| sender: Contact; | |
| timestamp: number; | |
| content: string; | |
| isGroupMsg: boolean; | |
| isMMS: boolean; | |
| isMedia: boolean; | |
| isNotification: boolean; | |
| isPSA: boolean; | |
| /** | |
| * @deprecated Use `getChat` to get chat details | |
| */ | |
| chat: Chat; | |
| lastSeen: null | number | boolean; | |
| /** if `string`, it is serialized: `"user@server"` */ | |
| chatId: string | Wid; | |
| fromMe: boolean; | |
| /** | |
| * @deprecated Use the `quotedMsgId` attribute in `getMessageById` to get the message details | |
| */ | |
| quotedMsgObj: null; | |
| quotedMsgId: null; | |
| mediaData: MediaData; | |
| recipients?: string[]; | |
| /** exists for image and video types {@link GroupNotificationType} */ | |
| caption?: string; | |
| // Messages originated from ads have this ctwaContext | |
| ctwaContext?: { | |
| conversionSource?: string; | |
| conversionData?: object; | |
| sourceUrl?: string; | |
| description?: string; | |
| title?: string; | |
| thumbnail?: string; | |
| thumbnailUrl?: string; | |
| mediaType?: number; | |
| adContextPreviewDismissed?: boolean; | |
| sourceApp?: string; | |
| greetingMessageBody?: string; | |
| automatedGreetingMessageShown?: boolean; | |
| sourceId?: string; | |
| originalImageUrl?: string; | |
| mediaUrl?: string; | |
| }; | |
| } | |
| export interface MediaData { | |
| type: string; | |
| mediaStage: string; | |
| animationDuration: number; | |
| animatedAsNewMsg: boolean; | |
| _swStreamingSupported: boolean; | |
| _listeningToSwSupport: boolean; | |
| } | |