@badzz88/baileys 8.5.6 → 8.5.8

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 (225) hide show
  1. package/README.md +337 -1055
  2. package/WAProto/WAProto.proto +28 -1189
  3. package/WAProto/fix-imports.js +79 -69
  4. package/WAProto/index.d.ts +71491 -15254
  5. package/WAProto/index.js +126436 -19814
  6. package/engine-requirements.js +8 -15
  7. package/lib/Defaults/index.js +130 -0
  8. package/{src → lib}/Signal/Group/ciphertext-message.js +2 -5
  9. package/lib/Signal/Group/group-session-builder.js +30 -0
  10. package/{src → lib}/Signal/Group/group_cipher.js +11 -11
  11. package/lib/Signal/Group/index.js +12 -0
  12. package/lib/Signal/Group/keyhelper.js +18 -0
  13. package/{src → lib}/Signal/Group/sender-chain-key.js +6 -9
  14. package/{src → lib}/Signal/Group/sender-key-distribution-message.js +6 -9
  15. package/{src → lib}/Signal/Group/sender-key-message.js +9 -12
  16. package/{src → lib}/Signal/Group/sender-key-name.js +2 -5
  17. package/{src → lib}/Signal/Group/sender-key-record.js +8 -11
  18. package/{src → lib}/Signal/Group/sender-key-state.js +6 -9
  19. package/lib/Signal/Group/sender-message-key.js +26 -0
  20. package/{src → lib}/Signal/libsignal.js +131 -155
  21. package/{src → lib}/Signal/lid-mapping.js +27 -23
  22. package/lib/Socket/Client/index.js +3 -0
  23. package/lib/Socket/Client/types.js +11 -0
  24. package/{src → lib}/Socket/Client/websocket.js +11 -18
  25. package/{src → lib}/Socket/business.js +35 -67
  26. package/{src → lib}/Socket/chats.js +294 -550
  27. package/{src → lib}/Socket/communities.js +82 -114
  28. package/lib/Socket/graphql.js +716 -0
  29. package/lib/Socket/groups.js +374 -0
  30. package/lib/Socket/index.js +18 -0
  31. package/lib/Socket/interop.js +463 -0
  32. package/{src → lib}/Socket/luxu.js +120 -82
  33. package/lib/Socket/messages-recv.js +1916 -0
  34. package/lib/Socket/messages-send.js +1436 -0
  35. package/lib/Socket/mex.js +54 -0
  36. package/lib/Socket/newsletter.js +757 -0
  37. package/lib/Socket/privacy.js +318 -0
  38. package/{src → lib}/Socket/socket.js +356 -244
  39. package/lib/Socket/username.js +236 -0
  40. package/lib/Store/index.js +10 -0
  41. package/{src → lib}/Store/keyed-db.js +11 -21
  42. package/lib/Store/make-cache-manager-store.js +85 -0
  43. package/lib/Store/make-in-memory-store.js +244 -0
  44. package/{src → lib}/Store/make-ordered-dictionary.js +19 -25
  45. package/{src → lib}/Store/object-repository.js +11 -5
  46. package/lib/Types/Auth.js +2 -0
  47. package/lib/Types/Bussines.js +2 -0
  48. package/lib/Types/Call.js +2 -0
  49. package/lib/Types/Chat.js +8 -0
  50. package/lib/Types/Contact.js +2 -0
  51. package/lib/Types/Events.js +2 -0
  52. package/lib/Types/GroupMetadata.js +2 -0
  53. package/lib/Types/Label.js +25 -0
  54. package/lib/Types/LabelAssociation.js +7 -0
  55. package/lib/Types/Message.js +11 -0
  56. package/lib/Types/Mex.js +111 -0
  57. package/lib/Types/Product.js +2 -0
  58. package/lib/Types/Signal.js +2 -0
  59. package/lib/Types/Socket.js +3 -0
  60. package/lib/Types/State.js +56 -0
  61. package/lib/Types/USync.js +2 -0
  62. package/lib/Types/index.js +26 -0
  63. package/{src → lib}/Utils/auth-utils.js +91 -43
  64. package/lib/Utils/browser-utils.js +48 -0
  65. package/lib/Utils/business.js +231 -0
  66. package/lib/Utils/chat-utils.js +872 -0
  67. package/lib/Utils/companion-reg-client-utils.js +35 -0
  68. package/lib/Utils/crypto.js +118 -0
  69. package/lib/Utils/decode-wa-message.js +350 -0
  70. package/{src → lib}/Utils/event-buffer.js +81 -39
  71. package/lib/Utils/generics.js +403 -0
  72. package/lib/Utils/history.js +134 -0
  73. package/{src → lib}/Utils/identity-change-handler.js +9 -11
  74. package/lib/Utils/index.js +23 -0
  75. package/lib/Utils/link-preview.js +85 -0
  76. package/lib/Utils/logger.js +3 -0
  77. package/lib/Utils/lt-hash.js +8 -0
  78. package/{src → lib}/Utils/make-mutex.js +7 -10
  79. package/lib/Utils/message-composer.js +273 -0
  80. package/{src → lib}/Utils/message-retry-manager.js +76 -28
  81. package/lib/Utils/messages-media.js +870 -0
  82. package/lib/Utils/messages.js +1337 -0
  83. package/lib/Utils/noise-handler.js +201 -0
  84. package/{src → lib}/Utils/offline-node-processor.js +10 -4
  85. package/{src → lib}/Utils/pre-key-manager.js +27 -11
  86. package/lib/Utils/process-message.js +630 -0
  87. package/{src → lib}/Utils/reporting-utils.js +12 -15
  88. package/lib/Utils/signal.js +201 -0
  89. package/{src → lib}/Utils/stanza-ack.js +12 -4
  90. package/lib/Utils/sticker.js +110 -0
  91. package/{src → lib}/Utils/sync-action-utils.js +14 -10
  92. package/{src → lib}/Utils/tc-token-utils.js +48 -43
  93. package/{src → lib}/Utils/use-multi-file-auth-state.js +35 -25
  94. package/lib/Utils/validate-connection.js +203 -0
  95. package/{src → lib}/WABinary/constants.js +9 -12
  96. package/{src → lib}/WABinary/decode.js +38 -118
  97. package/{src → lib}/WABinary/encode.js +6 -11
  98. package/lib/WABinary/generic-utils.js +204 -0
  99. package/lib/WABinary/index.js +6 -0
  100. package/lib/WABinary/jid-utils.js +98 -0
  101. package/lib/WABinary/types.js +2 -0
  102. package/{src → lib}/WAM/BinaryInfo.js +2 -5
  103. package/{src → lib}/WAM/constants.js +4 -16635
  104. package/{src → lib}/WAM/encode.js +18 -17
  105. package/lib/WAM/index.js +4 -0
  106. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  107. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  108. package/lib/WAUSync/Protocols/USyncContactProtocol.js +54 -0
  109. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  110. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  111. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +58 -0
  112. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +30 -0
  113. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  114. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +28 -0
  115. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +39 -0
  116. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  117. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +27 -0
  118. package/lib/WAUSync/Protocols/index.js +12 -0
  119. package/lib/WAUSync/USyncQuery.js +151 -0
  120. package/lib/WAUSync/USyncUser.js +56 -0
  121. package/lib/WAUSync/index.js +3 -0
  122. package/{src → lib}/index.js +16 -51
  123. package/package.json +129 -99
  124. package/LICENSE +0 -21
  125. package/src/Defaults/index.js +0 -186
  126. package/src/Defaults/phonenumber-mcc.json +0 -223
  127. package/src/Signal/Group/group-session-builder.js +0 -86
  128. package/src/Signal/Group/index.js +0 -140
  129. package/src/Signal/Group/keyhelper.js +0 -77
  130. package/src/Signal/Group/sender-message-key.js +0 -29
  131. package/src/Socket/Client/index.js +0 -31
  132. package/src/Socket/Client/types.js +0 -13
  133. package/src/Socket/aigroups.js +0 -221
  134. package/src/Socket/graphql.js +0 -523
  135. package/src/Socket/groups.js +0 -516
  136. package/src/Socket/index.js +0 -31
  137. package/src/Socket/interactive-handler.js +0 -527
  138. package/src/Socket/interop.js +0 -339
  139. package/src/Socket/managed-account.js +0 -98
  140. package/src/Socket/messages-recv.js +0 -2685
  141. package/src/Socket/messages-send.js +0 -2047
  142. package/src/Socket/mex.js +0 -57
  143. package/src/Socket/newsletter.js +0 -455
  144. package/src/Socket/privacy.js +0 -125
  145. package/src/Socket/registration.js +0 -236
  146. package/src/Socket/text-router.js +0 -65
  147. package/src/Socket/username.js +0 -130
  148. package/src/Store/index.js +0 -33
  149. package/src/Store/make-cache-manager-store.js +0 -84
  150. package/src/Store/make-in-memory-store.js +0 -551
  151. package/src/Types/Auth.js +0 -31
  152. package/src/Types/Bussines.js +0 -2
  153. package/src/Types/Call.js +0 -2
  154. package/src/Types/Chat.js +0 -4
  155. package/src/Types/Contact.js +0 -2
  156. package/src/Types/Events.js +0 -2
  157. package/src/Types/GroupMetadata.js +0 -2
  158. package/src/Types/Label.js +0 -26
  159. package/src/Types/LabelAssociation.js +0 -8
  160. package/src/Types/Message.js +0 -93
  161. package/src/Types/Mex.js +0 -112
  162. package/src/Types/Newsletter.js +0 -109
  163. package/src/Types/Product.js +0 -2
  164. package/src/Types/Signal.js +0 -2
  165. package/src/Types/Socket.js +0 -2
  166. package/src/Types/State.js +0 -62
  167. package/src/Types/USync.js +0 -2
  168. package/src/Types/index.js +0 -56
  169. package/src/Utils/browser-utils.js +0 -112
  170. package/src/Utils/business.js +0 -240
  171. package/src/Utils/chat-utils.js +0 -1230
  172. package/src/Utils/command-loader.d.ts +0 -27
  173. package/src/Utils/command-loader.js +0 -89
  174. package/src/Utils/companion-reg-client-utils.js +0 -40
  175. package/src/Utils/consumer-application.js +0 -105
  176. package/src/Utils/crypto.js +0 -118
  177. package/src/Utils/curve25519-js.js +0 -242
  178. package/src/Utils/decode-wa-message.js +0 -529
  179. package/src/Utils/generics.js +0 -483
  180. package/src/Utils/group-history.js +0 -44
  181. package/src/Utils/history.js +0 -232
  182. package/src/Utils/index.js +0 -58
  183. package/src/Utils/jid-display-normalization.js +0 -195
  184. package/src/Utils/link-preview.js +0 -135
  185. package/src/Utils/logger.js +0 -8
  186. package/src/Utils/lt-hash.js +0 -25
  187. package/src/Utils/message-composer.js +0 -471
  188. package/src/Utils/messages-media.js +0 -843
  189. package/src/Utils/messages.js +0 -2817
  190. package/src/Utils/meta-ai-msmsg.js +0 -222
  191. package/src/Utils/native-bridge.js +0 -68
  192. package/src/Utils/noise-handler.js +0 -169
  193. package/src/Utils/process-message.js +0 -950
  194. package/src/Utils/session-pool.d.ts +0 -14
  195. package/src/Utils/session-pool.js +0 -70
  196. package/src/Utils/signal.js +0 -217
  197. package/src/Utils/sticker.d.ts +0 -13
  198. package/src/Utils/sticker.js +0 -123
  199. package/src/Utils/validate-connection.js +0 -209
  200. package/src/Utils/view-once-cache.d.ts +0 -12
  201. package/src/Utils/view-once-cache.js +0 -63
  202. package/src/Utils/voip-rekey.js +0 -22
  203. package/src/WABinary/generic-utils.js +0 -238
  204. package/src/WABinary/index.js +0 -34
  205. package/src/WABinary/jid-utils.js +0 -351
  206. package/src/WABinary/types.js +0 -2
  207. package/src/WAM/index.js +0 -32
  208. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -53
  209. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -44
  210. package/src/WAUSync/Protocols/USyncContactProtocol.js +0 -55
  211. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +0 -55
  212. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -31
  213. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +0 -54
  214. package/src/WAUSync/Protocols/USyncLIDProtocol.js +0 -32
  215. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -473
  216. package/src/WAUSync/Protocols/USyncPictureProtocol.js +0 -34
  217. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  218. package/src/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  219. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  220. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +0 -28
  221. package/src/WAUSync/Protocols/index.js +0 -40
  222. package/src/WAUSync/USyncQuery.js +0 -126
  223. package/src/WAUSync/USyncUser.js +0 -50
  224. package/src/WAUSync/index.js +0 -32
  225. package/src/antiban.js +0 -4152
@@ -1,232 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.getHistoryMsg =
4
- exports.downloadAndProcessHistorySyncNotification =
5
- exports.processHistoryMessage =
6
- exports.downloadHistory =
7
- void 0;
8
- const util_1 = require('util');
9
- const zlib_1 = require('zlib');
10
- const index_js_1 = require('../../WAProto/index.js');
11
- const Types_1 = require('../Types');
12
- const WABinary_1 = require('../WABinary');
13
- const generics_1 = require('./generics');
14
- const messages_1 = require('./messages');
15
- const messages_media_1 = require('./messages-media');
16
- const inflatePromise = (0, util_1.promisify)(zlib_1.inflate);
17
- const extractPnFromMessages = messages => {
18
- for (const msgItem of messages) {
19
- const message = msgItem.message;
20
- if (!message?.key?.fromMe || !message.userReceipt?.length) {
21
- continue;
22
- }
23
- const userJid = message.userReceipt[0]?.userJid;
24
- if (userJid && ((0, WABinary_1.isPnUser)(userJid) || (0, WABinary_1.isHostedPnUser)(userJid))) {
25
- return userJid;
26
- }
27
- }
28
- return undefined;
29
- };
30
- const downloadHistory = async (msg, options) => {
31
- const stream = await (0, messages_media_1.downloadContentFromMessage)(msg, 'md-msg-hist', { options });
32
- const bufferArray = [];
33
- for await (const chunk of stream) {
34
- bufferArray.push(chunk);
35
- }
36
- let buffer = Buffer.concat(bufferArray);
37
- buffer = await inflatePromise(buffer);
38
- const syncData = index_js_1.proto.HistorySync.decode(buffer);
39
- return syncData;
40
- };
41
- exports.downloadHistory = downloadHistory;
42
- const processHistoryMessage = (item, logger) => {
43
- const messages = [];
44
- const contacts = [];
45
- const chats = [];
46
- const lidPnMappings = [];
47
- const callLogRecords = [];
48
- const pastParticipants = [];
49
- const recentStickers = [];
50
- let globalSettings = undefined;
51
- let statusV3Messages = undefined;
52
- logger?.trace({ progress: item.progress }, 'processing history of type ' + item.syncType?.toString());
53
- for (const m of item.phoneNumberToLidMappings || []) {
54
- if (m.lidJid && m.pnJid) {
55
- lidPnMappings.push({ lid: m.lidJid, pn: m.pnJid });
56
- }
57
- }
58
- for (const c of item.inlineContacts || []) {
59
- if (c.lidJid && c.pnJid) {
60
- lidPnMappings.push({ lid: c.lidJid, pn: c.pnJid });
61
- }
62
- if (c.pnJid) {
63
- contacts.push({
64
- id: c.pnJid,
65
- name: c.fullName || c.firstName || c.username || undefined,
66
- notify: c.pushname || undefined,
67
- username: c.username || undefined,
68
- shortName: c.shortName || undefined,
69
- verifiedName: c.verifiedBizName || undefined,
70
- businessName: c.verifiedBizName || undefined,
71
- lid: c.lidJid || undefined
72
- });
73
- }
74
- }
75
- for (const rec of item.callLogRecords || []) {
76
- callLogRecords.push({
77
- ...rec,
78
- callType: rec.callType,
79
- duration: rec.duration ? (0, generics_1.toNumber)(rec.duration) : undefined,
80
- isVideo: rec.isVideo,
81
- callInitiator: rec.callInitiatorJid,
82
- callEndReason: rec.callResult,
83
- timestamp: rec.startTime ? (0, generics_1.toNumber)(rec.startTime) : undefined
84
- });
85
- }
86
- const stickerKeys = new Set();
87
- for (const s of item.recentStickers || []) {
88
- const stickerKey = s.fileSha256 ? Buffer.from(s.fileSha256).toString('base64') : undefined;
89
- if (!stickerKey || !stickerKeys.has(stickerKey)) {
90
- if (stickerKey)
91
- stickerKeys.add(stickerKey);
92
- recentStickers.push(s);
93
- }
94
- }
95
- switch (item.syncType) {
96
- case index_js_1.proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP:
97
- case index_js_1.proto.HistorySync.HistorySyncType.RECENT:
98
- case index_js_1.proto.HistorySync.HistorySyncType.FULL:
99
- case index_js_1.proto.HistorySync.HistorySyncType.ON_DEMAND:
100
- if (item.globalSettings) {
101
- const gs = item.globalSettings;
102
- globalSettings = {
103
- ...gs,
104
- autoDownloadSettings: {
105
- photos: gs.autoDownloadPhotos,
106
- audio: gs.autoDownloadAudio,
107
- documents: gs.autoDownloadDocuments,
108
- videos: gs.autoDownloadVideos
109
- },
110
- disappearingMode: gs.disappearingMode
111
- ? {
112
- duration: gs.disappearingMode.duration
113
- ? (0, generics_1.toNumber)(gs.disappearingMode.duration)
114
- : undefined,
115
- isDefaultDisappearingMode: gs.disappearingMode.isDefaultDisappearingMode ?? false
116
- }
117
- : undefined,
118
- archiveChats: gs.archiveChats,
119
- wallpaper: gs.wallpaper,
120
- mediaEncryptionBackupEnabled: gs.mediaEncryptionBackupEnabled,
121
- lightWeightContactsEnabled: gs.lightWeightContactsEnabled,
122
- privacySettings: gs.privacy
123
- ? {
124
- readReceipts: gs.privacy.readreceipts,
125
- lastSeen: gs.privacy.lastseen,
126
- status: gs.privacy.status,
127
- profile: gs.privacy.profile,
128
- groupsAddPrivacy: gs.privacy.groupadd,
129
- callPrivacy: gs.privacy.calladd
130
- }
131
- : undefined
132
- };
133
- }
134
- if (item.statusV3Messages?.length) {
135
- const now = Math.floor(Date.now() / 1000);
136
- statusV3Messages = item.statusV3Messages.filter(s => {
137
- const ts = s.message?.messageTimestamp;
138
- if (!ts)
139
- return true;
140
- const timestamp = (0, generics_1.toNumber)(ts);
141
- return timestamp + 24 * 60 * 60 > now;
142
- });
143
- }
144
- for (const chat of item.conversations) {
145
- contacts.push({
146
- id: chat.id,
147
- name: chat.displayName || chat.name || chat.username || undefined,
148
- username: chat.username || undefined,
149
- lid: chat.lidJid || chat.accountLid || undefined,
150
- phoneNumber: chat.pnJid || undefined
151
- });
152
- const chatId = chat.id;
153
- const isLid = (0, WABinary_1.isLidUser)(chatId) || (0, WABinary_1.isHostedLidUser)(chatId);
154
- const isPn = (0, WABinary_1.isPnUser)(chatId) || (0, WABinary_1.isHostedPnUser)(chatId);
155
- if (isLid && chat.pnJid) {
156
- lidPnMappings.push({ lid: chatId, pn: chat.pnJid });
157
- }
158
- else if (isPn && chat.lidJid) {
159
- lidPnMappings.push({ lid: chat.lidJid, pn: chatId });
160
- }
161
- else if (isLid && !chat.pnJid) {
162
- const pnFromReceipt = extractPnFromMessages(chat.messages || []);
163
- if (pnFromReceipt) {
164
- lidPnMappings.push({ lid: chatId, pn: pnFromReceipt });
165
- }
166
- }
167
- const msgs = chat.messages || [];
168
- delete chat.messages;
169
- for (const item of msgs) {
170
- const message = item.message;
171
- messages.push(message);
172
- if (!chat.messages?.length) {
173
- chat.messages = [{ message }];
174
- }
175
- if (!message.key.fromMe && !chat.lastMessageRecvTimestamp) {
176
- chat.lastMessageRecvTimestamp = (0, generics_1.toNumber)(message.messageTimestamp);
177
- }
178
- if ((message.messageStubType === Types_1.WAMessageStubType.BIZ_PRIVACY_MODE_TO_BSP ||
179
- message.messageStubType === Types_1.WAMessageStubType.BIZ_PRIVACY_MODE_TO_FB) &&
180
- message.messageStubParameters?.[0]) {
181
- contacts.push({
182
- id: message.key.participant || message.key.remoteJid,
183
- verifiedName: message.messageStubParameters?.[0]
184
- });
185
- }
186
- }
187
- if (chat.id && (0, WABinary_1.isJidGroup)(chat.id)) {
188
- }
189
- chats.push({ ...chat });
190
- }
191
- for (const pp of item.pastParticipants || []) {
192
- pastParticipants.push(pp);
193
- }
194
- break;
195
- case index_js_1.proto.HistorySync.HistorySyncType.PUSH_NAME:
196
- for (const c of item.pushnames) {
197
- contacts.push({ id: c.id, notify: c.pushname });
198
- }
199
- break;
200
- }
201
- return {
202
- chats,
203
- contacts,
204
- messages,
205
- lidPnMappings,
206
- syncType: item.syncType,
207
- progress: item.progress,
208
- globalSettings,
209
- callLogRecords,
210
- recentStickers,
211
- pastParticipants,
212
- statusV3Messages
213
- };
214
- };
215
- exports.processHistoryMessage = processHistoryMessage;
216
- const downloadAndProcessHistorySyncNotification = async (msg, options, logger) => {
217
- let historyMsg;
218
- if (msg.initialHistBootstrapInlinePayload) {
219
- historyMsg = index_js_1.proto.HistorySync.decode(await inflatePromise(msg.initialHistBootstrapInlinePayload));
220
- }
221
- else {
222
- historyMsg = await (0, exports.downloadHistory)(msg, options);
223
- }
224
- return (0, exports.processHistoryMessage)(historyMsg, logger);
225
- };
226
- exports.downloadAndProcessHistorySyncNotification = downloadAndProcessHistorySyncNotification;
227
- const getHistoryMsg = message => {
228
- const normalizedContent = !!message ? (0, messages_1.normalizeMessageContent)(message) : undefined;
229
- const anyHistoryMsg = normalizedContent?.protocolMessage?.historySyncNotification;
230
- return anyHistoryMsg;
231
- };
232
- exports.getHistoryMsg = getHistoryMsg;
@@ -1,58 +0,0 @@
1
- 'use strict';
2
- var __createBinding = (this && this.__createBinding) ||
3
- (Object.create
4
- ? function (o, m, k, k2) {
5
- if (k2 === undefined)
6
- k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- }
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined)
20
- k2 = k;
21
- o[k2] = m[k];
22
- });
23
- var __exportStar = (this && this.__exportStar) ||
24
- function (m, exports) {
25
- for (var p in m)
26
- if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p))
27
- __createBinding(exports, m, p);
28
- };
29
- Object.defineProperty(exports, '__esModule', { value: true });
30
- __exportStar(require('./generics'), exports);
31
- __exportStar(require('./decode-wa-message'), exports);
32
- __exportStar(require('./messages'), exports);
33
- __exportStar(require('./messages-media'), exports);
34
- __exportStar(require('./validate-connection'), exports);
35
- __exportStar(require('./crypto'), exports);
36
- __exportStar(require('./signal'), exports);
37
- __exportStar(require('./noise-handler'), exports);
38
- __exportStar(require('./history'), exports);
39
- __exportStar(require('./chat-utils'), exports);
40
- __exportStar(require('./lt-hash'), exports);
41
- __exportStar(require('./auth-utils'), exports);
42
- __exportStar(require('./use-multi-file-auth-state'), exports);
43
- __exportStar(require('./link-preview'), exports);
44
- __exportStar(require('./event-buffer'), exports);
45
- __exportStar(require('./process-message'), exports);
46
- __exportStar(require('./message-retry-manager'), exports);
47
- __exportStar(require('./browser-utils'), exports);
48
- __exportStar(require('./identity-change-handler'), exports);
49
- __exportStar(require('./stanza-ack'), exports);
50
- __exportStar(require('./message-composer'), exports);
51
- __exportStar(require('./group-history'), exports);
52
- __exportStar(require('./consumer-application'), exports);
53
- __exportStar(require('./voip-rekey'), exports);
54
- __exportStar(require('./companion-reg-client-utils'), exports);
55
- __exportStar(require('./view-once-cache'), exports);
56
- __exportStar(require('./sticker'), exports);
57
- __exportStar(require('./command-loader'), exports);
58
- __exportStar(require('./session-pool'), exports);
@@ -1,195 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.normalizeMessageForDisplayJids = void 0;
4
- exports.normalizeMentionedJidsForSend = void 0;
5
- const WABinary_1 = require('../WABinary');
6
- const createLidPnDebug = logger => {
7
- const enabled = process.env.LID_PN_DEBUG === '1' || process.env.LID_PN_DEBUG === 'true';
8
- return (phase, payload) => {
9
- if (!enabled) {
10
- return;
11
- }
12
- logger?.debug({ ...payload, phase }, 'lid->pn normalization trace');
13
- };
14
- };
15
- const fallbackPnFromLidJid = jid => {
16
- const decoded = (0, WABinary_1.jidDecode)(jid);
17
- const rawUser = decoded?.user || (typeof jid === 'string' ? jid.split('@')[0] : '');
18
- const user = rawUser.split(':')[0];
19
- if (!user) {
20
- return jid;
21
- }
22
- return `${user}@s.whatsapp.net`;
23
- };
24
- const toDisplayPnJid = jid => {
25
- if (!jid || typeof jid !== 'string') {
26
- return jid;
27
- }
28
- const decoded = (0, WABinary_1.jidDecode)(jid);
29
- if (!decoded?.user) {
30
- return jid;
31
- }
32
- if (!(0, WABinary_1.isPnUser)(jid) && !(0, WABinary_1.isHostedPnUser)(jid)) {
33
- return jid;
34
- }
35
- const user = decoded.user.split(':')[0];
36
- if (!user) {
37
- return jid;
38
- }
39
- const server = decoded.server === 'hosted' ? 'hosted' : 's.whatsapp.net';
40
- return `${user}@${server}`;
41
- };
42
- const buildLidPnHints = key => {
43
- const hints = new Map();
44
- if (!key) {
45
- return hints;
46
- }
47
- const addHint = (lid, pn) => {
48
- if (!(0, WABinary_1.isLidUser)(lid) && !(0, WABinary_1.isHostedLidUser)(lid)) {
49
- return;
50
- }
51
- if (!(0, WABinary_1.isPnUser)(pn) && !(0, WABinary_1.isHostedPnUser)(pn)) {
52
- return;
53
- }
54
- hints.set(lid, pn);
55
- const lidDecoded = (0, WABinary_1.jidDecode)(lid);
56
- const pnDecoded = (0, WABinary_1.jidDecode)(pn);
57
- if (lidDecoded?.user && pnDecoded?.user) {
58
- hints.set(`${lidDecoded.user}@lid`, `${pnDecoded.user}@s.whatsapp.net`);
59
- }
60
- };
61
- addHint(key.participant, key.participantAlt);
62
- addHint(key.remoteJid, key.remoteJidAlt);
63
- addHint(key.participantAlt, key.participant);
64
- addHint(key.remoteJidAlt, key.remoteJid);
65
- return hints;
66
- };
67
- const mergeGroupDataHints = (hints, groupData, debug) => {
68
- if (!groupData?.participants?.length) {
69
- return;
70
- }
71
- debug?.('groupData-size', { participants: groupData.participants.length });
72
- for (const participant of groupData.participants) {
73
- const lidCandidate = participant?.lid;
74
- const idCandidate = participant?.id;
75
- const pnCandidate = participant?.phoneNumber;
76
- const lid = ((0, WABinary_1.isLidUser)(lidCandidate) || (0, WABinary_1.isHostedLidUser)(lidCandidate)
77
- ? lidCandidate
78
- : undefined) ||
79
- ((0, WABinary_1.isLidUser)(idCandidate) || (0, WABinary_1.isHostedLidUser)(idCandidate) ? idCandidate : undefined);
80
- const pn = ((0, WABinary_1.isPnUser)(pnCandidate) || (0, WABinary_1.isHostedPnUser)(pnCandidate)
81
- ? pnCandidate
82
- : undefined) ||
83
- ((0, WABinary_1.isPnUser)(idCandidate) || (0, WABinary_1.isHostedPnUser)(idCandidate) ? idCandidate : undefined);
84
- if (!lid || !pn) {
85
- continue;
86
- }
87
- if (((0, WABinary_1.isLidUser)(lid) || (0, WABinary_1.isHostedLidUser)(lid)) &&
88
- ((0, WABinary_1.isPnUser)(pn) || (0, WABinary_1.isHostedPnUser)(pn))) {
89
- const displayPn = toDisplayPnJid(pn);
90
- hints.set(lid, displayPn);
91
- const lidDecoded = (0, WABinary_1.jidDecode)(lid);
92
- if (lidDecoded?.user) {
93
- hints.set(`${lidDecoded.user}@lid`, displayPn);
94
- }
95
- debug?.('group-hint', { lid, pn: displayPn });
96
- }
97
- }
98
- };
99
- const normalizeToPnJid = async (jid, hints, signalRepository, debug) => {
100
- if (!jid || typeof jid !== 'string') {
101
- return jid;
102
- }
103
- if (!(0, WABinary_1.isLidUser)(jid) && !(0, WABinary_1.isHostedLidUser)(jid)) {
104
- return jid;
105
- }
106
- debug?.('input', { lid: jid });
107
- const hinted = hints.get(jid);
108
- if (hinted) {
109
- const normalized = toDisplayPnJid(hinted);
110
- debug?.('hint-exact', { lid: jid, hinted, normalized });
111
- return normalized;
112
- }
113
- const decoded = (0, WABinary_1.jidDecode)(jid);
114
- if (decoded?.user) {
115
- const userHint = hints.get(`${decoded.user}@lid`);
116
- if (userHint) {
117
- const normalized = toDisplayPnJid(userHint);
118
- debug?.('hint-user', { lid: jid, userHint, normalized });
119
- return normalized;
120
- }
121
- }
122
- const mapped = await signalRepository?.lidMapping?.getPNForLID?.(jid);
123
- if (mapped) {
124
- const normalized = toDisplayPnJid(mapped);
125
- debug?.('mapping', { lid: jid, mapped, normalized });
126
- return normalized;
127
- }
128
- const fallback = fallbackPnFromLidJid(jid);
129
- debug?.('fallback', { lid: jid, fallback });
130
- return fallback;
131
- };
132
- const normalizeMentionedJidsToPn = async (node, hints, signalRepository, debug) => {
133
- if (!node || typeof node !== 'object') {
134
- return;
135
- }
136
- if (Array.isArray(node)) {
137
- for (const item of node) {
138
- await normalizeMentionedJidsToPn(item, hints, signalRepository, debug);
139
- }
140
- return;
141
- }
142
- if (Array.isArray(node.mentionedJid)) {
143
- const before = [...node.mentionedJid];
144
- node.mentionedJid = await Promise.all(node.mentionedJid.map(jid => normalizeToPnJid(jid, hints, signalRepository, debug)));
145
- debug?.('mentions', { before, after: node.mentionedJid });
146
- }
147
- if (typeof node.participant === 'string') {
148
- const before = node.participant;
149
- node.participant = await normalizeToPnJid(node.participant, hints, signalRepository, debug);
150
- if (before !== node.participant) {
151
- debug?.('participant-field', { before, after: node.participant });
152
- }
153
- }
154
- if (typeof node.remoteJid === 'string') {
155
- const before = node.remoteJid;
156
- node.remoteJid = await normalizeToPnJid(node.remoteJid, hints, signalRepository, debug);
157
- if (before !== node.remoteJid) {
158
- debug?.('remoteJid-field', { before, after: node.remoteJid });
159
- }
160
- }
161
- for (const value of Object.values(node)) {
162
- if (value && typeof value === 'object') {
163
- await normalizeMentionedJidsToPn(value, hints, signalRepository, debug);
164
- }
165
- }
166
- };
167
- const normalizeMentionedJidsForSend = async (mentions, groupData, signalRepository, logger) => {
168
- if (!Array.isArray(mentions)) {
169
- return mentions;
170
- }
171
- const debug = createLidPnDebug(logger);
172
- const hints = new Map();
173
- mergeGroupDataHints(hints, groupData, debug);
174
- const normalized = await Promise.all(mentions.map(jid => normalizeToPnJid(jid, hints, signalRepository, debug)));
175
- debug('send-mentions-result', { before: mentions, after: normalized });
176
- return normalized;
177
- };
178
- const normalizeMessageForDisplayJids = async (messageInfo, signalRepository, logger, groupData) => {
179
- if (!messageInfo?.key) {
180
- return messageInfo;
181
- }
182
- const debug = createLidPnDebug(logger);
183
- const hints = buildLidPnHints(messageInfo.key);
184
- mergeGroupDataHints(hints, groupData, debug);
185
- const beforeKey = { ...messageInfo.key };
186
- messageInfo.key.participant = await normalizeToPnJid(messageInfo.key.participant, hints, signalRepository, debug);
187
- messageInfo.key.participantAlt = await normalizeToPnJid(messageInfo.key.participantAlt, hints, signalRepository, debug);
188
- messageInfo.key.remoteJid = await normalizeToPnJid(messageInfo.key.remoteJid, hints, signalRepository, debug);
189
- messageInfo.key.remoteJidAlt = await normalizeToPnJid(messageInfo.key.remoteJidAlt, hints, signalRepository, debug);
190
- await normalizeMentionedJidsToPn(messageInfo.message, hints, signalRepository, debug);
191
- debug('display-key-result', { before: beforeKey, after: messageInfo.key });
192
- return messageInfo;
193
- };
194
- exports.normalizeMessageForDisplayJids = normalizeMessageForDisplayJids;
195
- exports.normalizeMentionedJidsForSend = normalizeMentionedJidsForSend;
@@ -1,135 +0,0 @@
1
- 'use strict';
2
- var __createBinding = (this && this.__createBinding) ||
3
- (Object.create
4
- ? function (o, m, k, k2) {
5
- if (k2 === undefined)
6
- k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- }
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined)
20
- k2 = k;
21
- o[k2] = m[k];
22
- });
23
- var __setModuleDefault = (this && this.__setModuleDefault) ||
24
- (Object.create
25
- ? function (o, v) {
26
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
27
- }
28
- : function (o, v) {
29
- o['default'] = v;
30
- });
31
- var __importStar = (this && this.__importStar) ||
32
- (function () {
33
- var ownKeys = function (o) {
34
- ownKeys =
35
- Object.getOwnPropertyNames ||
36
- function (o) {
37
- var ar = [];
38
- for (var k in o)
39
- if (Object.prototype.hasOwnProperty.call(o, k))
40
- ar[ar.length] = k;
41
- return ar;
42
- };
43
- return ownKeys(o);
44
- };
45
- return function (mod) {
46
- if (mod && mod.__esModule)
47
- return mod;
48
- var result = {};
49
- if (mod != null)
50
- for (var k = ownKeys(mod), i = 0; i < k.length; i++)
51
- if (k[i] !== 'default')
52
- __createBinding(result, mod, k[i]);
53
- __setModuleDefault(result, mod);
54
- return result;
55
- };
56
- })();
57
- Object.defineProperty(exports, '__esModule', { value: true });
58
- exports.getUrlInfo = void 0;
59
- const messages_1 = require('./messages');
60
- const messages_media_1 = require('./messages-media');
61
- const THUMBNAIL_WIDTH_PX = 192;
62
- const getCompressedJpegThumbnail = async (url, { thumbnailWidth, fetchOpts }) => {
63
- const stream = await (0, messages_media_1.getHttpStream)(url, fetchOpts);
64
- const result = await (0, messages_media_1.extractImageThumb)(stream, thumbnailWidth);
65
- return result;
66
- };
67
- const getUrlInfo = async (text, opts = {
68
- thumbnailWidth: THUMBNAIL_WIDTH_PX,
69
- fetchOpts: { timeout: 3000 }
70
- }) => {
71
- try {
72
- const retries = 0;
73
- const maxRetry = 5;
74
- const { getLinkPreview } = await Promise.resolve().then(() => __importStar(require('link-preview-js')));
75
- let previewLink = text;
76
- if (!text.startsWith('https://') && !text.startsWith('http://')) {
77
- previewLink = 'https://' + previewLink;
78
- }
79
- const info = await getLinkPreview(previewLink, {
80
- ...opts.fetchOpts,
81
- followRedirects: 'follow',
82
- handleRedirects: (baseURL, forwardedURL) => {
83
- const urlObj = new URL(baseURL);
84
- const forwardedURLObj = new URL(forwardedURL);
85
- if (retries >= maxRetry) {
86
- return false;
87
- }
88
- if (forwardedURLObj.hostname === urlObj.hostname ||
89
- forwardedURLObj.hostname === 'www.' + urlObj.hostname ||
90
- 'www.' + forwardedURLObj.hostname === urlObj.hostname) {
91
- retries + 1;
92
- return true;
93
- }
94
- else {
95
- return false;
96
- }
97
- },
98
- headers: opts.fetchOpts?.headers
99
- });
100
- if (info && 'title' in info && info.title) {
101
- const [image] = info.images;
102
- const urlInfo = {
103
- 'canonical-url': info.url,
104
- 'matched-text': text,
105
- title: info.title,
106
- description: info.description,
107
- originalThumbnailUrl: image
108
- };
109
- if (opts.uploadImage) {
110
- const { imageMessage } = await (0, messages_1.prepareWAMessageMedia)({ image: { url: image } }, {
111
- upload: opts.uploadImage,
112
- mediaTypeOverride: 'thumbnail-link',
113
- options: opts.fetchOpts
114
- });
115
- urlInfo.jpegThumbnail = imageMessage?.jpegThumbnail ? Buffer.from(imageMessage.jpegThumbnail) : undefined;
116
- urlInfo.highQualityThumbnail = imageMessage || undefined;
117
- }
118
- else {
119
- try {
120
- urlInfo.jpegThumbnail = image ? (await getCompressedJpegThumbnail(image, opts)).buffer : undefined;
121
- }
122
- catch (error) {
123
- opts.logger?.debug({ err: error.stack, url: previewLink }, 'error in generating thumbnail');
124
- }
125
- }
126
- return urlInfo;
127
- }
128
- }
129
- catch (error) {
130
- if (!error.message.includes('receive a valid')) {
131
- throw error;
132
- }
133
- }
134
- };
135
- exports.getUrlInfo = getUrlInfo;
@@ -1,8 +0,0 @@
1
- 'use strict';
2
- var __importDefault = (this && this.__importDefault) ||
3
- function (mod) {
4
- return mod && mod.__esModule ? mod : { default: mod };
5
- };
6
- Object.defineProperty(exports, '__esModule', { value: true });
7
- const pino_1 = __importDefault(require('pino'));
8
- exports.default = (0, pino_1.default)({ timestamp: () => `,"time":"${new Date().toJSON()}"` });
@@ -1,25 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.LT_HASH_ANTI_TAMPERING = void 0;
4
- const crypto_1 = require('./crypto');
5
- const LTHASH_INFO = 'WhatsApp Patch Integrity';
6
- const LTHASH_SIZE = 128;
7
- const expand = element => (0, crypto_1.hkdf)(element, LTHASH_SIZE, { info: LTHASH_INFO });
8
- const applyDelta = (result, element, sign) => {
9
- const expanded = expand(element);
10
- for (let i = 0; i < LTHASH_SIZE; i += 2) {
11
- const lane = result.readUInt16LE(i);
12
- const delta = expanded.readUInt16LE(i);
13
- result.writeUInt16LE((lane + sign * delta) & 0xffff, i);
14
- }
15
- };
16
- exports.LT_HASH_ANTI_TAMPERING = {
17
- subtractThenAdd: (base, subtract = [], add = []) => {
18
- const result = Buffer.from(base);
19
- for (const element of subtract)
20
- applyDelta(result, element, -1);
21
- for (const element of add)
22
- applyDelta(result, element, 1);
23
- return result;
24
- }
25
- };