@green-api/greenapi-integration 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,7 +109,7 @@ export interface QueueMessage {
109
109
  export interface ClearMessagesQueue {
110
110
  isCleared: boolean;
111
111
  }
112
- export type MessageType = "textMessage" | "extendedTextMessage" | "imageMessage" | "videoMessage" | "documentMessage" | "audioMessage" | "contactMessage" | "locationMessage" | "contactsArrayMessage" | "pollMessage" | "reactionMessage" | "pollUpdateMessage" | "quotedMessage" | "stickerMessage";
112
+ export type MessageType = "textMessage" | "extendedTextMessage" | "imageMessage" | "videoMessage" | "documentMessage" | "audioMessage" | "contactMessage" | "locationMessage" | "contactsArrayMessage" | "pollMessage" | "reactionMessage" | "pollUpdateMessage" | "quotedMessage" | "stickerMessage" | "editedMessage" | "deletedMessage" | "buttonsMessage" | "listMessage" | "templateMessage" | "groupInviteMessage";
113
113
  export interface GetMessage {
114
114
  chatId: string;
115
115
  idMessage: string;
@@ -140,13 +140,17 @@ export interface OutgoingJournalFields {
140
140
  export type BaseIncomingJournalMessage = BaseJournalMessage & IncomingJournalFields;
141
141
  export type BaseOutgoingJournalMessage = BaseJournalMessage & OutgoingJournalFields;
142
142
  export type BaseJournalResponse = BaseIncomingJournalMessage | BaseOutgoingJournalMessage;
143
- export type OutgoingJournalResponse = BaseOutgoingJournalMessage & WebhookMessageData & {
143
+ export type JournalMessageData<T> = T extends {
144
+ typeMessage: "imageMessage" | "videoMessage" | "documentMessage" | "audioMessage" | "stickerMessage";
145
+ fileMessageData: FileMessageData;
146
+ } ? Omit<T, "fileMessageData"> & FileMessageData : T;
147
+ export type OutgoingJournalResponse = BaseOutgoingJournalMessage & JournalMessageData<WebhookMessageData> & {
144
148
  quotedMessage?: QuotedMessage;
145
149
  };
146
- export type IncomingJournalResponse = BaseIncomingJournalMessage & WebhookMessageData & {
150
+ export type IncomingJournalResponse = BaseIncomingJournalMessage & JournalMessageData<WebhookMessageData> & {
147
151
  quotedMessage?: QuotedMessage;
148
152
  };
149
- export type JournalResponse = BaseJournalResponse & WebhookMessageData & {
153
+ export type JournalResponse = BaseJournalResponse & JournalMessageData<WebhookMessageData> & {
150
154
  quotedMessage?: QuotedMessage;
151
155
  };
152
156
  export interface ForwardableMessage {
@@ -159,6 +163,76 @@ export interface MediaMessage extends ForwardableMessage {
159
163
  export interface TextMessageData {
160
164
  textMessage: string;
161
165
  }
166
+ export interface EditedMessageData {
167
+ textMessage?: string;
168
+ caption?: string;
169
+ stanzaId: string;
170
+ }
171
+ export interface DeletedMessageData {
172
+ stanzaId: string;
173
+ }
174
+ export interface ReactionMessageData {
175
+ text: string;
176
+ }
177
+ export interface ButtonData {
178
+ buttonId: string;
179
+ buttonText: string;
180
+ }
181
+ export interface ButtonsMessageData extends ForwardableMessage {
182
+ contentText: string;
183
+ footer: string;
184
+ buttons: ButtonData[];
185
+ }
186
+ export interface ListRowData {
187
+ title: string;
188
+ rowId: string;
189
+ description?: string;
190
+ }
191
+ export interface ListSectionData {
192
+ title: string;
193
+ rows: ListRowData[];
194
+ }
195
+ export interface ListMessageData extends ForwardableMessage {
196
+ contentText: string;
197
+ title?: string;
198
+ footer?: string;
199
+ buttonText?: string;
200
+ sections: ListSectionData[];
201
+ }
202
+ export interface UrlButtonData {
203
+ displayText: string;
204
+ url: string;
205
+ }
206
+ export interface CallButtonData {
207
+ displayText: string;
208
+ phoneNumber: string;
209
+ }
210
+ export interface QuickReplyButtonData {
211
+ displayText: string;
212
+ id: string;
213
+ }
214
+ export interface TemplateButtonData {
215
+ index: number;
216
+ urlButton?: UrlButtonData;
217
+ callButton?: CallButtonData;
218
+ quickReplyButton?: QuickReplyButtonData;
219
+ }
220
+ export interface TemplateMessageData extends ForwardableMessage {
221
+ namespace?: string;
222
+ elementName?: string;
223
+ contentText: string;
224
+ footer?: string;
225
+ buttons: TemplateButtonData[];
226
+ }
227
+ export interface GroupInviteMessageData {
228
+ groupJid: string;
229
+ inviteCode: string;
230
+ inviteExpiration: string;
231
+ groupName: string;
232
+ caption: string;
233
+ name: string;
234
+ jpegThumbnail: string;
235
+ }
162
236
  export interface ExtendedTextMessageData extends MediaMessage {
163
237
  text: string;
164
238
  description: string;
@@ -169,6 +243,7 @@ export interface FileMessageData extends MediaMessage {
169
243
  caption: string;
170
244
  mimeType: string;
171
245
  fileName: string;
246
+ isAnimated?: boolean;
172
247
  }
173
248
  export interface LocationMessageData extends MediaMessage {
174
249
  nameLocation: string;
@@ -233,6 +308,32 @@ export type QuotedMessage = {
233
308
  downloadUrl: string;
234
309
  caption: string;
235
310
  jpegThumbnail: string;
311
+ } | {
312
+ typeMessage: "stickerMessage";
313
+ downloadUrl: string;
314
+ caption: string;
315
+ jpegThumbnail: string;
316
+ isAnimated: boolean;
317
+ } | {
318
+ typeMessage: "buttonsMessage";
319
+ contentText: string;
320
+ footer?: string;
321
+ buttons: ButtonData[];
322
+ } | {
323
+ typeMessage: "listMessage";
324
+ contentText: string;
325
+ title?: string;
326
+ footer?: string;
327
+ buttonText?: string;
328
+ sections: ListSectionData[];
329
+ } | {
330
+ typeMessage: "templateMessage";
331
+ contentText: string;
332
+ footer?: string;
333
+ buttons: TemplateButtonData[];
334
+ } | {
335
+ typeMessage: "groupInviteMessage";
336
+ groupInviteMessageData: GroupInviteMessageData;
236
337
  });
237
338
  export interface PollVote {
238
339
  optionName: string;
@@ -245,7 +346,7 @@ export interface PollUpdateMessageData {
245
346
  multipleAnswers: boolean;
246
347
  }
247
348
  export type OutgoingMessageStatus = "sent" | "delivered" | "read" | "failed" | "noAccount" | "notInGroup" | "yellowCard";
248
- export type WebhookType = "stateInstanceChanged" | "outgoingMessageStatus" | "outgoingAPIMessageReceived" | "outgoingMessageReceived" | "incomingMessageReceived";
349
+ export type WebhookType = "stateInstanceChanged" | "outgoingMessageStatus" | "outgoingAPIMessageReceived" | "outgoingMessageReceived" | "incomingMessageReceived" | "incomingCall";
249
350
  /**
250
351
  * Webhook payload received when a message status changes.
251
352
  * Used to track delivery and read receipts.
@@ -302,6 +403,31 @@ export type WebhookMessageData = {
302
403
  } | {
303
404
  typeMessage: "contactsArrayMessage";
304
405
  messageData: ContactsArrayMessageData;
406
+ } | {
407
+ typeMessage: "editedMessage";
408
+ editedMessageData: EditedMessageData;
409
+ } | {
410
+ typeMessage: "deletedMessage";
411
+ deletedMessageData: DeletedMessageData;
412
+ } | {
413
+ typeMessage: "reactionMessage";
414
+ extendedTextMessageData: ReactionMessageData;
415
+ quotedMessage: QuotedMessage;
416
+ } | {
417
+ typeMessage: "buttonsMessage";
418
+ buttonsMessage: ButtonsMessageData;
419
+ } | {
420
+ typeMessage: "listMessage";
421
+ listMessage: ListMessageData;
422
+ } | {
423
+ typeMessage: "templateMessage";
424
+ templateMessage: TemplateMessageData;
425
+ } | {
426
+ typeMessage: "stickerMessage";
427
+ fileMessageData: FileMessageData;
428
+ } | {
429
+ typeMessage: "groupInviteMessage";
430
+ groupInviteMessageData: GroupInviteMessageData;
305
431
  };
306
432
  export interface MessageWebhook {
307
433
  typeWebhook: "incomingMessageReceived" | "outgoingMessageReceived" | "outgoingAPIMessageReceived";
@@ -323,10 +449,23 @@ export interface MessageWebhook {
323
449
  quotedMessage?: QuotedMessage;
324
450
  };
325
451
  }
452
+ export type CallStatus = "offer" | "pickUp" | "hangUp" | "missed" | "declined";
453
+ export interface IncomingCallWebhook {
454
+ from: string;
455
+ typeWebhook: "incomingCall";
456
+ instanceData: {
457
+ idInstance: number;
458
+ wid: string;
459
+ typeInstance: string;
460
+ };
461
+ status: CallStatus;
462
+ timestamp: number;
463
+ idMessage: string;
464
+ }
326
465
  /**
327
466
  * Primary webhook types received from GREEN-API.
328
467
  */
329
- export type GreenApiWebhook = MessageWebhook | OutgoingMessageStatusWebhook | StateInstanceWebhook;
468
+ export type GreenApiWebhook = MessageWebhook | OutgoingMessageStatusWebhook | StateInstanceWebhook | IncomingCallWebhook;
330
469
  /**
331
470
  * Configuration settings for a GREEN-API instance.
332
471
  * Controls webhook behavior, message handling, and other instance features.
@@ -346,6 +485,9 @@ export interface Settings {
346
485
  keepOnlineStatus?: "yes" | "no";
347
486
  pollMessageWebhook?: "yes" | "no";
348
487
  incomingCallWebhook?: "yes" | "no";
488
+ incomingBlockWebhook?: "yes" | "no";
489
+ editedMessageWebhook?: "yes" | "no";
490
+ deletedMessageWebhook?: "yes" | "no";
349
491
  }
350
492
  export interface Reboot {
351
493
  isReboot: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@green-api/greenapi-integration",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "GREEN-API Integration library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",