alipclutch-baileys 8.5.3 → 8.5.5

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.
Files changed (112) hide show
  1. package/engine-requirements.js +10 -0
  2. package/lib/Defaults/baileys-version.json +2 -2
  3. package/lib/Defaults/index.d.ts +7 -16
  4. package/lib/Defaults/index.js +119 -90
  5. package/lib/Defaults/phonenumber-mcc.json +223 -0
  6. package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
  7. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  8. package/lib/Socket/Client/index.d.ts +3 -2
  9. package/lib/Socket/Client/index.js +3 -2
  10. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  11. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  12. package/lib/Socket/Client/web-socket-client.d.ts +12 -0
  13. package/lib/Socket/Client/web-socket-client.js +62 -0
  14. package/lib/Socket/business.d.ts +58 -59
  15. package/lib/Socket/chats.d.ts +230 -45
  16. package/lib/Socket/chats.js +238 -139
  17. package/lib/Socket/groups.d.ts +32 -41
  18. package/lib/Socket/groups.js +23 -38
  19. package/lib/Socket/index.d.ts +64 -63
  20. package/lib/Socket/index.js +3 -2
  21. package/lib/Socket/messages-recv.js +65 -9
  22. package/lib/Socket/messages-send.d.ts +47 -49
  23. package/lib/Socket/messages-send.js +395 -543
  24. package/lib/Socket/newsletter.d.ts +37 -39
  25. package/lib/Socket/newsletter.js +123 -88
  26. package/lib/Socket/registration.d.ts +267 -0
  27. package/lib/Socket/registration.js +166 -0
  28. package/lib/Socket/setup.d.ts +253 -0
  29. package/lib/Socket/setup.js +4 -5
  30. package/lib/Socket/socket.d.ts +43 -270
  31. package/lib/Socket/socket.js +19 -8
  32. package/lib/Socket/usync.d.ts +3 -3
  33. package/lib/Store/index.d.ts +2 -1
  34. package/lib/Store/index.js +3 -1
  35. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  36. package/lib/Store/make-cache-manager-store.js +83 -0
  37. package/lib/Store/make-in-memory-store.d.ts +24 -24
  38. package/lib/Store/make-in-memory-store.js +14 -26
  39. package/lib/Store/make-ordered-dictionary.d.ts +1 -1
  40. package/lib/Store/make-ordered-dictionary.js +2 -2
  41. package/lib/Types/Auth.d.ts +7 -0
  42. package/lib/Types/Call.d.ts +1 -1
  43. package/lib/Types/Chat.d.ts +7 -14
  44. package/lib/Types/Contact.d.ts +1 -5
  45. package/lib/Types/Events.d.ts +2 -44
  46. package/lib/Types/GroupMetadata.d.ts +2 -11
  47. package/lib/Types/Label.js +1 -1
  48. package/lib/Types/LabelAssociation.js +1 -1
  49. package/lib/Types/Message.d.ts +21 -148
  50. package/lib/Types/Message.js +2 -0
  51. package/lib/Types/Newsletter.d.ts +97 -73
  52. package/lib/Types/Newsletter.js +38 -18
  53. package/lib/Types/Socket.d.ts +9 -17
  54. package/lib/Types/index.d.ts +1 -8
  55. package/lib/Types/index.js +2 -2
  56. package/lib/Utils/auth-utils.d.ts +3 -3
  57. package/lib/Utils/auth-utils.js +13 -6
  58. package/lib/Utils/business.js +2 -2
  59. package/lib/Utils/chat-utils.d.ts +16 -15
  60. package/lib/Utils/chat-utils.js +35 -36
  61. package/lib/Utils/crypto.d.ts +16 -15
  62. package/lib/Utils/crypto.js +29 -71
  63. package/lib/Utils/decode-wa-message.d.ts +6 -22
  64. package/lib/Utils/decode-wa-message.js +56 -65
  65. package/lib/Utils/event-buffer.d.ts +2 -2
  66. package/lib/Utils/event-buffer.js +7 -11
  67. package/lib/Utils/generics.d.ts +20 -17
  68. package/lib/Utils/generics.js +75 -95
  69. package/lib/Utils/history.d.ts +0 -4
  70. package/lib/Utils/history.js +6 -4
  71. package/lib/Utils/link-preview.d.ts +2 -2
  72. package/lib/Utils/link-preview.js +1 -34
  73. package/lib/Utils/logger.d.ts +3 -10
  74. package/lib/Utils/lt-hash.d.ts +2 -2
  75. package/lib/Utils/lt-hash.js +6 -6
  76. package/lib/Utils/make-mutex.d.ts +2 -2
  77. package/lib/Utils/messages-media.d.ts +24 -28
  78. package/lib/Utils/messages-media.js +111 -272
  79. package/lib/Utils/messages.d.ts +10 -13
  80. package/lib/Utils/messages.js +51 -336
  81. package/lib/Utils/noise-handler.d.ts +12 -10
  82. package/lib/Utils/noise-handler.js +23 -18
  83. package/lib/Utils/process-message.d.ts +4 -5
  84. package/lib/Utils/process-message.js +25 -108
  85. package/lib/Utils/signal.d.ts +1 -2
  86. package/lib/Utils/signal.js +26 -26
  87. package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
  88. package/lib/Utils/use-multi-file-auth-state.js +0 -6
  89. package/lib/Utils/validate-connection.d.ts +4 -3
  90. package/lib/Utils/validate-connection.js +1 -1
  91. package/lib/WABinary/constants.d.ts +27 -24
  92. package/lib/WABinary/constants.js +13 -1276
  93. package/lib/WABinary/decode.d.ts +4 -3
  94. package/lib/WABinary/decode.js +13 -26
  95. package/lib/WABinary/encode.d.ts +2 -1
  96. package/lib/WABinary/encode.js +152 -137
  97. package/lib/WABinary/generic-utils.d.ts +4 -1
  98. package/lib/WABinary/generic-utils.js +125 -37
  99. package/lib/WABinary/jid-utils.d.ts +5 -11
  100. package/lib/WABinary/jid-utils.js +5 -28
  101. package/lib/WAM/BinaryInfo.d.ts +11 -2
  102. package/lib/WAM/encode.d.ts +2 -1
  103. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
  104. package/lib/index.d.ts +1 -0
  105. package/lib/index.js +15 -27
  106. package/package.json +31 -18
  107. package/WAProto/GenerateStatics.sh +0 -4
  108. package/WAProto/WAProto.proto +0 -4775
  109. package/WAProto/index.d.ts +0 -55057
  110. package/WAProto/index.ts.ts +0 -53473
  111. package/lib/Socket/setup.ts +0 -623
  112. package/lib/WABinary/jid-utils.js.bak +0 -83
@@ -74,11 +74,7 @@ exports.default = (config) => {
74
74
  ev.on('connection.update', update => {
75
75
  Object.assign(state, update);
76
76
  });
77
- ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest, syncType }) => {
78
- if (syncType === WAProto_1.proto.HistorySync.HistorySyncType.ON_DEMAND) {
79
- return; // FOR NOW,
80
- //TODO: HANDLE
81
- }
77
+ ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest }) => {
82
78
  if (isLatest) {
83
79
  chats.clear();
84
80
  for (const id in messages) {
@@ -191,14 +187,16 @@ exports.default = (config) => {
191
187
  const jid = (0, WABinary_1.jidNormalizedUser)(msg.key.remoteJid);
192
188
  const list = assertMessageList(jid);
193
189
  list.upsert(msg, 'append');
194
- if (type === 'notify' && !chats.get(jid)) {
195
- ev.emit('chats.upsert', [
196
- {
197
- id: jid,
198
- conversationTimestamp: (0, Utils_1.toNumber)(msg.messageTimestamp),
199
- unreadCount: 1
200
- }
201
- ]);
190
+ if (type === 'notify') {
191
+ if (!chats.get(jid)) {
192
+ ev.emit('chats.upsert', [
193
+ {
194
+ id: jid,
195
+ conversationTimestamp: (0, Utils_1.toNumber)(msg.messageTimestamp),
196
+ unreadCount: 1
197
+ }
198
+ ]);
199
+ }
202
200
  }
203
201
  }
204
202
  break;
@@ -420,19 +418,9 @@ exports.default = (config) => {
420
418
  const { readFileSync, existsSync } = require('fs');
421
419
  if (existsSync(path)) {
422
420
  logger.debug({ path }, 'reading from file');
423
- try {
424
- const jsonStr = readFileSync(path, { encoding: 'utf-8' });
425
- if (jsonStr.trim().length) {
426
- const json = JSON.parse(jsonStr);
427
- fromJSON(json);
428
- }
429
- else {
430
- logger.warn({ path }, 'skipping empty json file');
431
- }
432
- }
433
- catch (err) {
434
- logger.warn({ path, err }, 'failed to parse json from file');
435
- }
421
+ const jsonStr = readFileSync(path, { encoding: 'utf-8' });
422
+ const json = JSON.parse(jsonStr);
423
+ fromJSON(json);
436
424
  }
437
425
  }
438
426
  };
@@ -1,7 +1,7 @@
1
1
  declare function makeOrderedDictionary<T>(idGetter: (item: T) => string): {
2
2
  array: T[];
3
3
  get: (id: string) => T | undefined;
4
- upsert: (item: T, mode: "append" | "prepend") => void;
4
+ upsert: (item: T, mode: 'append' | 'prepend') => void;
5
5
  update: (item: T) => boolean;
6
6
  remove: (item: T) => boolean;
7
7
  updateAssign: (id: string, update: Partial<T>) => boolean;
@@ -56,9 +56,9 @@ function makeOrderedDictionary(idGetter) {
56
56
  },
57
57
  clear: () => {
58
58
  array.splice(0, array.length);
59
- for (const key of Object.keys(dict)) {
59
+ Object.keys(dict).forEach(key => {
60
60
  delete dict[key];
61
- }
61
+ });
62
62
  },
63
63
  filter: (contain) => {
64
64
  let i = 0;
@@ -1,4 +1,6 @@
1
+ /// <reference types="node" />
1
2
  import type { proto } from '../../WAProto';
3
+ import { RegistrationOptions } from '../Socket/registration';
2
4
  import type { Contact } from './Contact';
3
5
  import type { MinimalMessage } from './Message';
4
6
  export type KeyPair = {
@@ -55,7 +57,12 @@ export type AuthenticationCreds = SignalCreds & {
55
57
  /** number of times history & app state has been synced */
56
58
  accountSyncCounter: number;
57
59
  accountSettings: AccountSettings;
60
+ deviceId: string;
61
+ phoneId: string;
62
+ identityId: Buffer;
58
63
  registered: boolean;
64
+ backupToken: Buffer;
65
+ registration: RegistrationOptions;
59
66
  pairingCode: string | undefined;
60
67
  lastPropHash: string | undefined;
61
68
  routingInfo: Buffer | undefined;
@@ -1,4 +1,4 @@
1
- export type WACallUpdateType = 'offer' | 'ringing' | 'timeout' | 'reject' | 'accept' | 'terminate';
1
+ export type WACallUpdateType = 'offer' | 'ringing' | 'timeout' | 'reject' | 'accept';
2
2
  export type WACallEvent = {
3
3
  chatId: string;
4
4
  from: string;
@@ -3,13 +3,10 @@ import type { AccountSettings } from './Auth';
3
3
  import type { BufferedEventData } from './Events';
4
4
  import type { ChatLabelAssociationActionBody } from './LabelAssociation';
5
5
  import type { MessageLabelAssociationActionBody } from './LabelAssociation';
6
- import type { MinimalMessage, WAMessageKey } from './Message';
6
+ import type { MinimalMessage } from './Message';
7
7
  /** privacy settings in WhatsApp Web */
8
8
  export type WAPrivacyValue = 'all' | 'contacts' | 'contact_blacklist' | 'none';
9
- export type WAPrivacyCallValue = 'all' | 'known';
10
- export type WAPrivacyMessagesValue = 'all' | 'contacts';
11
9
  export type WAPrivacyOnlineValue = 'all' | 'match_last_seen';
12
- export type WAPrivacyGroupAddValue = 'all' | 'contacts' | 'contact_blacklist';
13
10
  export type WAReadReceiptsValue = 'all' | 'none';
14
11
  /** set of statuses visible to other people; see updatePresence() in WhatsAppWeb.Send */
15
12
  export type WAPresence = 'unavailable' | 'available' | 'composing' | 'recording' | 'paused';
@@ -19,10 +16,6 @@ export interface PresenceData {
19
16
  lastKnownPresence: WAPresence;
20
17
  lastSeen?: number;
21
18
  }
22
- export type BotListInfo = {
23
- jid: string;
24
- personaId: string;
25
- };
26
19
  export type ChatMutation = {
27
20
  syncAction: proto.ISyncActionData;
28
21
  index: string[];
@@ -66,12 +59,12 @@ export type ChatModification = {
66
59
  /** mute for duration, or provide timestamp of mute to remove*/
67
60
  mute: number | null;
68
61
  } | {
69
- clear: boolean;
70
- } | {
71
- deleteForMe: {
72
- deleteMedia: boolean;
73
- key: WAMessageKey;
74
- timestamp: number;
62
+ clear: 'all' | {
63
+ messages: {
64
+ id: string;
65
+ fromMe?: boolean;
66
+ timestamp: number;
67
+ }[];
75
68
  };
76
69
  } | {
77
70
  star: {
@@ -1,10 +1,6 @@
1
1
  export interface Contact {
2
- /** ID either in lid or jid format **/
3
2
  id: string;
4
- /** ID in Lid (anonymous) format (@lid) **/
5
3
  lid?: string;
6
- /** ID in Phone Number format (@s.whatsapp.net) **/
7
- jid?: string;
8
4
  /** name of the contact, you have saved on your WA */
9
5
  name?: string;
10
6
  /** name of the contact, the contact has set on their own on WA */
@@ -18,6 +14,6 @@ export interface Contact {
18
14
  * null => if the profile picture has not been set (default profile picture)
19
15
  * any other string => url of the profile picture
20
16
  */
21
- imgUrl?: string | null;
17
+ imgUrl?: string | null | 'changed';
22
18
  status?: string;
23
19
  }
@@ -4,12 +4,11 @@ import { AuthenticationCreds } from './Auth';
4
4
  import { WACallEvent } from './Call';
5
5
  import { Chat, ChatUpdate, PresenceData } from './Chat';
6
6
  import { Contact } from './Contact';
7
- import { GroupMetadata, ParticipantAction, RequestJoinAction, RequestJoinMethod } from './GroupMetadata';
7
+ import { GroupMetadata, ParticipantAction } from './GroupMetadata';
8
8
  import { Label } from './Label';
9
9
  import { LabelAssociation } from './LabelAssociation';
10
10
  import { MessageUpsertType, MessageUserReceiptUpdate, WAMessage, WAMessageKey, WAMessageUpdate } from './Message';
11
11
  import { ConnectionState } from './State';
12
- import { NewsletterSettingsUpdate, SubscriberAction, NewsletterViewRole } from './Newsletter';
13
12
  export type BaileysEventMap = {
14
13
  /** connection state has been updated -- WS closed, opened, connecting etc. */
15
14
  'connection.update': Partial<ConnectionState>;
@@ -20,10 +19,7 @@ export type BaileysEventMap = {
20
19
  chats: Chat[];
21
20
  contacts: Contact[];
22
21
  messages: WAMessage[];
23
- isLatest?: boolean;
24
- progress?: number | null;
25
- syncType?: proto.HistorySync.HistorySyncType;
26
- peerDataRequestSessionId?: string | null;
22
+ isLatest: boolean;
27
23
  };
28
24
  /** upsert chats */
29
25
  'chats.upsert': Chat[];
@@ -62,12 +58,10 @@ export type BaileysEventMap = {
62
58
  /**
63
59
  * add/update the given messages. If they were received while the connection was online,
64
60
  * the update will have type: "notify"
65
- * if requestId is provided, then the messages was received from the phone due to it being unavailable
66
61
  * */
67
62
  'messages.upsert': {
68
63
  messages: WAMessage[];
69
64
  type: MessageUpsertType;
70
- requestId?: string;
71
65
  };
72
66
  /** message was reacted to. If reaction was removed -- then "reaction.text" will be falsey */
73
67
  'messages.reaction': {
@@ -84,39 +78,6 @@ export type BaileysEventMap = {
84
78
  participants: string[];
85
79
  action: ParticipantAction;
86
80
  };
87
- 'group.join-request': {
88
- id: string;
89
- author: string;
90
- participant: string;
91
- action: RequestJoinAction;
92
- method: RequestJoinMethod;
93
- };
94
- 'newsletter.reaction': {
95
- id: string;
96
- server_id: string;
97
- reaction: {
98
- code?: string;
99
- count?: number;
100
- removed?: boolean;
101
- };
102
- };
103
- 'newsletter.view': {
104
- id: string;
105
- server_id: string;
106
- count: number;
107
- };
108
- /**don't handles subscribe/unsubscribe actions */
109
- 'newsletter-participants.update': {
110
- id: string;
111
- author: string;
112
- user: string;
113
- new_role: NewsletterViewRole;
114
- action: SubscriberAction;
115
- };
116
- 'newsletter-settings.update': {
117
- id: string;
118
- update: NewsletterSettingsUpdate;
119
- };
120
81
  'blocklist.set': {
121
82
  blocklist: string[];
122
83
  };
@@ -145,9 +106,6 @@ export type BufferedEventData = {
145
106
  };
146
107
  empty: boolean;
147
108
  isLatest: boolean;
148
- progress?: number | null;
149
- syncType?: proto.HistorySync.HistorySyncType;
150
- peerDataRequestSessionId?: string;
151
109
  };
152
110
  chatUpserts: {
153
111
  [jid: string]: Chat;
@@ -3,30 +3,21 @@ export type GroupParticipant = (Contact & {
3
3
  isAdmin?: boolean;
4
4
  isSuperAdmin?: boolean;
5
5
  admin?: 'admin' | 'superadmin' | null;
6
- jid?: string;
7
- lid?: string;
8
6
  });
9
- export type ParticipantAction = 'add' | 'remove' | 'promote' | 'demote' | 'modify';
10
- export type RequestJoinAction = 'created' | 'revoked' | 'rejected';
11
- export type RequestJoinMethod = 'invite_link' | 'linked_group_join' | 'non_admin_add' | undefined;
7
+ export type ParticipantAction = 'add' | 'remove' | 'promote' | 'demote';
12
8
  export interface GroupMetadata {
13
9
  id: string;
14
- /** group uses 'lid' or 'pn' to send messages */
15
- addressingMode: 'pn' | 'lid';
16
10
  owner: string | undefined;
17
- ownerLid?: string | undefined;
18
11
  subject: string;
12
+ addressingMode: "pn" | "lid";
19
13
  /** group subject owner */
20
14
  subjectOwner?: string;
21
- subjectOwnerLid?: string;
22
15
  /** group subject modification date */
23
16
  subjectTime?: number;
24
17
  creation?: number;
25
18
  desc?: string;
26
19
  descOwner?: string;
27
- descOwnerLid?: string;
28
20
  descId?: string;
29
- descTime?: number;
30
21
  /** if this group is part of a community, it returns the jid of the community to which it belongs */
31
22
  linkedParent?: string;
32
23
  /** is set when the group only allows admins to change group settings */
@@ -24,4 +24,4 @@ var LabelColor;
24
24
  LabelColor[LabelColor["Color18"] = 17] = "Color18";
25
25
  LabelColor[LabelColor["Color19"] = 18] = "Color19";
26
26
  LabelColor[LabelColor["Color20"] = 19] = "Color20";
27
- })(LabelColor || (exports.LabelColor = LabelColor = {}));
27
+ })(LabelColor = exports.LabelColor || (exports.LabelColor = {}));
@@ -6,4 +6,4 @@ var LabelAssociationType;
6
6
  (function (LabelAssociationType) {
7
7
  LabelAssociationType["Chat"] = "label_jid";
8
8
  LabelAssociationType["Message"] = "label_message";
9
- })(LabelAssociationType || (exports.LabelAssociationType = LabelAssociationType = {}));
9
+ })(LabelAssociationType = exports.LabelAssociationType || (exports.LabelAssociationType = {}));
@@ -1,39 +1,32 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
1
4
  import { AxiosRequestConfig } from 'axios';
5
+ import type { Logger } from 'pino';
2
6
  import type { Readable } from 'stream';
3
7
  import type { URL } from 'url';
8
+ import { BinaryNode } from '../WABinary';
4
9
  import { proto } from '../../WAProto';
5
10
  import { MEDIA_HKDF_KEY_MAPPING } from '../Defaults';
6
- import { BinaryNode } from '../WABinary';
7
11
  import type { GroupMetadata } from './GroupMetadata';
8
12
  import { CacheStore } from './Socket';
9
- import { ILogger } from '../Utils/logger';
10
13
  export { proto as WAProto };
11
- export type WAMessage = proto.IWebMessageInfo & {
12
- key: WAMessageKey;
13
- };
14
+ export type WAMessage = proto.IWebMessageInfo;
14
15
  export type WAMessageContent = proto.IMessage;
15
16
  export type WAContactMessage = proto.Message.IContactMessage;
16
17
  export type WAContactsArrayMessage = proto.Message.IContactsArrayMessage;
17
- export type WAMessageKey = proto.IMessageKey & {
18
- senderPn?: string;
19
- senderLid?: string;
20
- participantLid?: string;
21
- server_id?: string;
22
- isViewOnce?: boolean;
23
- };
18
+ export type WAMessageKey = proto.IMessageKey;
24
19
  export type WATextMessage = proto.Message.IExtendedTextMessage;
25
20
  export type WAContextInfo = proto.IContextInfo;
26
21
  export type WALocationMessage = proto.Message.ILocationMessage;
27
22
  export type WAGenericMediaMessage = proto.Message.IVideoMessage | proto.Message.IImageMessage | proto.Message.IAudioMessage | proto.Message.IDocumentMessage | proto.Message.IStickerMessage;
28
- export declare const WAMessageStubType: typeof proto.WebMessageInfo.StubType;
29
- export declare const WAMessageStatus: typeof proto.WebMessageInfo.Status;
30
- export type WAMediaPayloadURL = {
23
+ export import WAMessageStubType = proto.WebMessageInfo.StubType;
24
+ export import WAMessageStatus = proto.WebMessageInfo.Status;
25
+ export type WAMediaUpload = Buffer | {
31
26
  url: URL | string;
32
- };
33
- export type WAMediaPayloadStream = {
27
+ } | {
34
28
  stream: Readable;
35
29
  };
36
- export type WAMediaUpload = Buffer | WAMediaPayloadStream | WAMediaPayloadURL;
37
30
  /** Set of message types that are supported by the library */
38
31
  export type MessageType = keyof proto.Message;
39
32
  export type DownloadableMessage = {
@@ -80,24 +73,6 @@ type Templatable = {
80
73
  templateButtons?: proto.IHydratedTemplateButton[];
81
74
  footer?: string;
82
75
  };
83
- type Interactiveable = {
84
- /** add buttons to the message */
85
- interactiveButtons?: proto.Message.InteractiveMessage.NativeFlowMessage.NativeFlowButton[];
86
- title?: string;
87
- subtitle?: string;
88
- media?: boolean;
89
- };
90
- type Shopable = {
91
- shop?: proto.Message.InteractiveMessage.ShopMessage.Surface;
92
- id?: string;
93
- title?: string;
94
- subtitle?: string;
95
- media?: boolean;
96
- };
97
- type Cardsable = {
98
- cards?: string[];
99
- subtitle?: string;
100
- };
101
76
  type Editable = {
102
77
  edit?: WAMessageKey;
103
78
  };
@@ -106,10 +81,8 @@ type Listable = {
106
81
  sections?: proto.Message.ListMessage.ISection[];
107
82
  /** Title of a List Message only */
108
83
  title?: string;
109
- /** Text of the button on the list (required) */
84
+ /** Text of the bnutton on the list (required) */
110
85
  buttonText?: string;
111
- /** ListType of a List Message only */
112
- listType?: proto.Message.ListMessage.ListType;
113
86
  };
114
87
  type WithDimensions = {
115
88
  width?: number;
@@ -121,7 +94,6 @@ export type PollMessageOptions = {
121
94
  values: string[];
122
95
  /** 32 byte message secret to encrypt poll selections */
123
96
  messageSecret?: Uint8Array;
124
- toAnnouncementGroup?: boolean;
125
97
  };
126
98
  type SharePhoneNumber = {
127
99
  sharePhoneNumber: boolean;
@@ -134,14 +106,14 @@ export type AnyMediaMessageContent = (({
134
106
  image: WAMediaUpload;
135
107
  caption?: string;
136
108
  jpegThumbnail?: string;
137
- } & Mentionable & Contextable & Buttonable & Templatable & Interactiveable & Shopable & Cardsable & WithDimensions) | ({
109
+ } & Mentionable & Contextable & Buttonable & Templatable & WithDimensions) | ({
138
110
  video: WAMediaUpload;
139
111
  caption?: string;
140
112
  gifPlayback?: boolean;
141
113
  jpegThumbnail?: string;
142
114
  /** if set to true, will send as a `video note` */
143
115
  ptv?: boolean;
144
- } & Mentionable & Contextable & Buttonable & Templatable & Interactiveable & Shopable & Cardsable & WithDimensions) | {
116
+ } & Mentionable & Contextable & Buttonable & Templatable & WithDimensions) | {
145
117
  audio: WAMediaUpload;
146
118
  /** if set to true, will send as a `voice note` */
147
119
  ptt?: boolean;
@@ -155,7 +127,7 @@ export type AnyMediaMessageContent = (({
155
127
  mimetype: string;
156
128
  fileName?: string;
157
129
  caption?: string;
158
- } & Contextable & Buttonable & Templatable & Interactiveable & Shopable & Cardsable)) & {
130
+ } & Contextable & Buttonable & Templatable)) & {
159
131
  mimetype?: string;
160
132
  } & Editable;
161
133
  export type ButtonReplyInfo = {
@@ -163,76 +135,13 @@ export type ButtonReplyInfo = {
163
135
  id: string;
164
136
  index: number;
165
137
  };
166
- export type GroupInviteInfo = {
167
- inviteCode: string;
168
- inviteExpiration: number;
169
- text: string;
170
- jid: string;
171
- subject: string;
172
- };
173
- export type CallCreationInfo = {
174
- time?: number;
175
- title?: string;
176
- type?: number;
177
- };
178
- export type AdminInviteInfo = {
179
- inviteExpiration: number;
180
- text: string;
181
- jid: string;
182
- subject: string;
183
- thumbnail: Buffer;
184
- };
185
- export type PaymentInviteInfo = {
186
- type?: number;
187
- expiry?: number;
188
- };
189
- export type RequestPaymentInfo = {
190
- expiry: number;
191
- amount: number;
192
- currency: string;
193
- from: string;
194
- note?: string;
195
- sticker?: WAMediaUpload;
196
- background: string;
197
- /** add contextInfo to the message */
198
- contextInfo?: proto.IContextInfo;
199
- };
200
- export type EventsInfo = {
201
- isCanceled?: boolean;
202
- name: string;
203
- description: string;
204
- joinLink?: string;
205
- startTime?: number;
206
- messageSecret?: Uint8Array;
207
- };
208
- export type OrderInfo = {
209
- id: number;
210
- thumbnail: string;
211
- itemCount: number;
212
- status: number;
213
- surface: number;
214
- title: string;
215
- text: string;
216
- seller: string;
217
- token: string;
218
- amount: number;
219
- currency: string;
220
- };
221
138
  export type WASendableProduct = Omit<proto.Message.ProductMessage.IProductSnapshot, 'productImage'> & {
222
139
  productImage: WAMediaUpload;
223
140
  };
224
- export type AlbumMedia = {
225
- image: WAMediaUpload;
226
- caption?: string;
227
- } | {
228
- video: WAMediaUpload;
229
- caption?: string;
230
- gifPlayback?: boolean;
231
- };
232
141
  export type AnyRegularMessageContent = (({
233
142
  text: string;
234
143
  linkPreview?: WAUrlInfo | null;
235
- } & Mentionable & Contextable & Buttonable & Templatable & Interactiveable & Shopable & Cardsable & Listable & Editable) | AnyMediaMessageContent | ({
144
+ } & Mentionable & Contextable & Buttonable & Templatable & Listable & Editable) | AnyMediaMessageContent | ({
236
145
  poll: PollMessageOptions;
237
146
  } & Mentionable & Contextable & Buttonable & Templatable & Editable) | {
238
147
  contacts: {
@@ -246,47 +155,14 @@ export type AnyRegularMessageContent = (({
246
155
  } | {
247
156
  buttonReply: ButtonReplyInfo;
248
157
  type: 'template' | 'plain';
249
- } | {
250
- groupInvite: GroupInviteInfo;
251
158
  } | {
252
159
  listReply: Omit<proto.Message.IListResponseMessage, 'contextInfo'>;
253
160
  } | {
254
- pin: WAMessageKey;
255
- type: proto.PinInChat.Type;
256
- /**
257
- * 24 hours, 7 days, 30 days
258
- */
259
- time?: 86400 | 604800 | 2592000;
260
- } | {
261
- keep: WAMessageKey;
262
- type: number;
263
- /**
264
- * 24 hours, 7 days, 90 days
265
- */
266
- time?: 86400 | 604800 | 7776000;
267
- } | {
268
- paymentInvite: PaymentInviteInfo;
269
- } | {
270
- requestPayment: RequestPaymentInfo;
271
- } | {
272
- event: EventsInfo;
273
- } | {
274
- order: OrderInfo;
275
- } | {
276
- call: CallCreationInfo;
277
- } | {
278
- inviteAdmin: AdminInviteInfo;
279
- } | {
280
- listReply: Omit<proto.Message.IListResponseMessage, 'contextInfo'>;
281
- } | ({
282
161
  product: WASendableProduct;
283
162
  businessOwnerJid?: string;
284
163
  body?: string;
285
164
  footer?: string;
286
- } & Mentionable & Contextable & Interactiveable & Shopable & Cardsable & WithDimensions) | SharePhoneNumber | RequestPhoneNumber | ({
287
- album: AlbumMedia[];
288
- caption?: string;
289
- } & Mentionable & Contextable & Editable)) & ViewOnce;
165
+ } | SharePhoneNumber | RequestPhoneNumber) & ViewOnce;
290
166
  export type AnyMessageContent = AnyRegularMessageContent | {
291
167
  forward: WAMessage;
292
168
  force?: boolean;
@@ -300,8 +176,8 @@ export type GroupMetadataParticipants = Pick<GroupMetadata, 'participants'>;
300
176
  type MinimalRelayOptions = {
301
177
  /** override the message ID with a custom provided string */
302
178
  messageId?: string;
303
- /** should we use group metadata cache, or fetch afresh from the server; default assumed to be "true" */
304
- useCachedGroupMetadata?: boolean;
179
+ /** cached group metadata, use to prevent redundant requests to WA & speed up msg sending */
180
+ cachedGroupMetadata?: (jid: string) => Promise<GroupMetadataParticipants | undefined>;
305
181
  };
306
182
  export type MessageRelayOptions = MinimalRelayOptions & {
307
183
  /** only send to a specific participant; used when a message decryption fails for a single user */
@@ -318,13 +194,13 @@ export type MessageRelayOptions = MinimalRelayOptions & {
318
194
  useUserDevicesCache?: boolean;
319
195
  /** jid list of participants for status@broadcast */
320
196
  statusJidList?: string[];
321
- newsletter?: boolean;
322
197
  };
323
198
  export type MiscMessageGenerationOptions = MinimalRelayOptions & {
324
199
  /** optional, if you want to manually set the timestamp of the message */
325
200
  timestamp?: Date;
326
201
  /** the message you want to quote */
327
202
  quoted?: WAMessage;
203
+ additionalNodes?: BinaryNode[];
328
204
  /** disappearing messages settings */
329
205
  ephemeralExpiration?: number | string;
330
206
  /** timeout for media upload to WA server */
@@ -337,8 +213,6 @@ export type MiscMessageGenerationOptions = MinimalRelayOptions & {
337
213
  font?: number;
338
214
  /** if it is broadcast */
339
215
  broadcast?: boolean;
340
- newsletter?: boolean;
341
- additionalNodes?: BinaryNode[];
342
216
  };
343
217
  export type MessageGenerationOptionsFromContent = MiscMessageGenerationOptions & {
344
218
  userJid: string;
@@ -355,7 +229,7 @@ export type WAMediaUploadFunction = (readStream: Readable | Buffer, opts: WAMedi
355
229
  handle?: string;
356
230
  }>;
357
231
  export type MediaGenerationOptions = {
358
- logger?: ILogger;
232
+ logger?: Logger;
359
233
  mediaTypeOverride?: MediaType;
360
234
  upload: WAMediaUploadFunction;
361
235
  /** cache media so it does not have to be uploaded again */
@@ -369,7 +243,6 @@ export type MediaGenerationOptions = {
369
243
  };
370
244
  export type MessageContentGenerationOptions = MediaGenerationOptions & {
371
245
  getUrlInfo?: (text: string) => Promise<WAUrlInfo | undefined>;
372
- getProfilePicUrl?: (jid: string, type: 'image' | 'preview') => Promise<string | undefined>;
373
246
  };
374
247
  export type MessageGenerationOptions = MessageContentGenerationOptions & MessageGenerationOptionsFromContent;
375
248
  /**
@@ -3,5 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WAMessageStatus = exports.WAMessageStubType = exports.WAProto = void 0;
4
4
  const WAProto_1 = require("../../WAProto");
5
5
  Object.defineProperty(exports, "WAProto", { enumerable: true, get: function () { return WAProto_1.proto; } });
6
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
6
7
  exports.WAMessageStubType = WAProto_1.proto.WebMessageInfo.StubType;
8
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
7
9
  exports.WAMessageStatus = WAProto_1.proto.WebMessageInfo.Status;