@badzz88/baileys 8.4.7 → 8.4.9

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 (240) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1055 -337
  3. package/WAProto/WAProto.proto +347 -6
  4. package/WAProto/fix-import.js +38 -0
  5. package/WAProto/fix-imports.js +86 -85
  6. package/WAProto/index.d.ts +4913 -25
  7. package/WAProto/index.js +14074 -98
  8. package/package.json +50 -90
  9. package/src/Defaults/index.js +201 -0
  10. package/src/Defaults/phonenumber-mcc.json +223 -0
  11. package/src/Signal/Group/ciphertext-message.js +15 -0
  12. package/src/Signal/Group/group-session-builder.js +92 -0
  13. package/src/Signal/Group/group_cipher.js +89 -0
  14. package/src/Signal/Group/index.js +136 -0
  15. package/src/Signal/Group/keyhelper.js +73 -0
  16. package/src/Signal/Group/sender-chain-key.js +32 -0
  17. package/src/Signal/Group/sender-key-distribution-message.js +66 -0
  18. package/src/Signal/Group/sender-key-message.js +69 -0
  19. package/src/Signal/Group/sender-key-name.js +50 -0
  20. package/src/Signal/Group/sender-key-record.js +44 -0
  21. package/src/Signal/Group/sender-key-state.js +97 -0
  22. package/src/Signal/Group/sender-message-key.js +30 -0
  23. package/src/Signal/libsignal.js +470 -0
  24. package/src/Signal/lid-mapping.js +262 -0
  25. package/src/Socket/Client/index.js +30 -0
  26. package/src/Socket/Client/types.js +13 -0
  27. package/src/Socket/Client/websocket.js +62 -0
  28. package/src/Socket/aigroups.js +240 -0
  29. package/src/Socket/business.js +422 -0
  30. package/src/Socket/chats.js +2374 -0
  31. package/src/Socket/communities.js +580 -0
  32. package/src/Socket/graphql.js +915 -0
  33. package/src/Socket/groups.js +812 -0
  34. package/src/Socket/index.js +37 -0
  35. package/src/Socket/interactive-handler.js +579 -0
  36. package/src/Socket/interop.js +566 -0
  37. package/src/Socket/managed-account.js +214 -0
  38. package/src/Socket/messages-recv.js +3012 -0
  39. package/src/Socket/messages-send.js +2163 -0
  40. package/{lib → src}/Socket/mex.js +11 -5
  41. package/src/Socket/newsletter.js +1057 -0
  42. package/src/Socket/privacy.js +452 -0
  43. package/src/Socket/registration.js +434 -0
  44. package/src/Socket/socket.js +1079 -0
  45. package/src/Socket/text-router.js +67 -0
  46. package/src/Socket/username.js +234 -0
  47. package/src/Store/index.js +36 -0
  48. package/src/Store/make-cache-manager-store.js +90 -0
  49. package/src/Store/make-in-memory-store.js +506 -0
  50. package/src/Store/make-ordered-dictionary.js +81 -0
  51. package/src/Store/object-repository.js +29 -0
  52. package/src/Types/Auth.js +38 -0
  53. package/src/Types/Bussines.js +2 -0
  54. package/src/Types/Call.js +2 -0
  55. package/src/Types/Chat.js +4 -0
  56. package/src/Types/Contact.js +2 -0
  57. package/src/Types/Events.js +2 -0
  58. package/src/Types/GroupMetadata.js +2 -0
  59. package/src/Types/Label.js +27 -0
  60. package/src/Types/LabelAssociation.js +9 -0
  61. package/src/Types/Message.js +95 -0
  62. package/src/Types/Newsletter.js +152 -0
  63. package/src/Types/Product.js +2 -0
  64. package/src/Types/Signal.js +2 -0
  65. package/src/Types/Socket.js +2 -0
  66. package/src/Types/State.js +70 -0
  67. package/src/Types/USync.js +2 -0
  68. package/src/Types/index.js +54 -0
  69. package/src/Utils/auth-utils.js +306 -0
  70. package/src/Utils/browser-utils.js +114 -0
  71. package/src/Utils/business.js +247 -0
  72. package/src/Utils/chat-utils.js +1272 -0
  73. package/src/Utils/consumer-application.js +107 -0
  74. package/src/Utils/crypto.js +125 -0
  75. package/src/Utils/decode-wa-message.js +808 -0
  76. package/src/Utils/event-buffer.js +586 -0
  77. package/src/Utils/generics.js +640 -0
  78. package/src/Utils/group-history.js +60 -0
  79. package/src/Utils/history.js +244 -0
  80. package/src/Utils/identity-change-handler.js +52 -0
  81. package/src/Utils/index.js +53 -0
  82. package/src/Utils/jid-display-normalization.js +218 -0
  83. package/src/Utils/link-preview.js +143 -0
  84. package/src/Utils/logger.js +9 -0
  85. package/src/Utils/lt-hash.js +10 -0
  86. package/src/Utils/make-mutex.js +36 -0
  87. package/src/Utils/message-composer.js +479 -0
  88. package/src/Utils/message-inspect.js +400 -0
  89. package/src/Utils/message-retry-manager.js +231 -0
  90. package/src/Utils/messages-media.js +943 -0
  91. package/src/Utils/messages.js +2490 -0
  92. package/src/Utils/meta-ai-msmsg.js +133 -0
  93. package/src/Utils/noise-handler.js +194 -0
  94. package/src/Utils/offline-node-processor.js +42 -0
  95. package/src/Utils/pre-key-manager.js +107 -0
  96. package/src/Utils/process-message.js +1047 -0
  97. package/src/Utils/reporting-utils.js +262 -0
  98. package/src/Utils/signal.js +192 -0
  99. package/src/Utils/stanza-ack.js +74 -0
  100. package/src/Utils/sync-action-utils.js +54 -0
  101. package/src/Utils/tc-token-utils.js +161 -0
  102. package/src/Utils/use-multi-file-auth-state.js +121 -0
  103. package/src/Utils/validate-connection.js +248 -0
  104. package/src/Utils/voip-rekey.js +22 -0
  105. package/src/WABinary/constants.js +1304 -0
  106. package/src/WABinary/decode.js +377 -0
  107. package/src/WABinary/encode.js +58 -0
  108. package/src/WABinary/generic-utils.js +148 -0
  109. package/src/WABinary/index.js +33 -0
  110. package/src/WABinary/jid-utils.js +374 -0
  111. package/src/WABinary/types.js +2 -0
  112. package/src/WAM/BinaryInfo.js +13 -0
  113. package/src/WAM/constants.js +39486 -0
  114. package/src/WAM/encode.js +142 -0
  115. package/src/WAM/index.js +31 -0
  116. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +55 -0
  117. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +100 -0
  118. package/src/WAUSync/Protocols/USyncContactProtocol.js +60 -0
  119. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +65 -0
  120. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  121. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +74 -0
  122. package/src/WAUSync/Protocols/USyncLIDProtocol.js +31 -0
  123. package/src/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  124. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  125. package/src/WAUSync/Protocols/USyncStatusProtocol.js +44 -0
  126. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  127. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +28 -0
  128. package/src/WAUSync/Protocols/index.js +40 -0
  129. package/src/WAUSync/USyncBackoff.js +31 -0
  130. package/src/WAUSync/USyncQuery.js +204 -0
  131. package/src/WAUSync/USyncUser.js +58 -0
  132. package/src/WAUSync/index.js +32 -0
  133. package/src/antiban.js +4726 -0
  134. package/{lib → src}/index.js +48 -15
  135. package/lib/Defaults/index.js +0 -130
  136. package/lib/Signal/Group/ciphertext-message.js +0 -12
  137. package/lib/Signal/Group/group-session-builder.js +0 -30
  138. package/lib/Signal/Group/group_cipher.js +0 -82
  139. package/lib/Signal/Group/index.js +0 -12
  140. package/lib/Signal/Group/keyhelper.js +0 -18
  141. package/lib/Signal/Group/sender-chain-key.js +0 -26
  142. package/lib/Signal/Group/sender-key-distribution-message.js +0 -63
  143. package/lib/Signal/Group/sender-key-message.js +0 -66
  144. package/lib/Signal/Group/sender-key-name.js +0 -48
  145. package/lib/Signal/Group/sender-key-record.js +0 -41
  146. package/lib/Signal/Group/sender-key-state.js +0 -84
  147. package/lib/Signal/Group/sender-message-key.js +0 -26
  148. package/lib/Signal/libsignal.js +0 -431
  149. package/lib/Signal/lid-mapping.js +0 -277
  150. package/lib/Socket/Client/index.js +0 -3
  151. package/lib/Socket/Client/types.js +0 -11
  152. package/lib/Socket/Client/websocket.js +0 -54
  153. package/lib/Socket/business.js +0 -379
  154. package/lib/Socket/chats.js +0 -1193
  155. package/lib/Socket/communities.js +0 -431
  156. package/lib/Socket/groups.js +0 -374
  157. package/lib/Socket/index.js +0 -12
  158. package/lib/Socket/luxu.js +0 -386
  159. package/lib/Socket/messages-recv.js +0 -1916
  160. package/lib/Socket/messages-send.js +0 -1453
  161. package/lib/Socket/newsletter.js +0 -251
  162. package/lib/Socket/socket.js +0 -980
  163. package/lib/Socket/username.js +0 -146
  164. package/lib/Store/index.js +0 -10
  165. package/lib/Store/keyed-db.js +0 -108
  166. package/lib/Store/make-cache-manager-store.js +0 -85
  167. package/lib/Store/make-in-memory-store.js +0 -198
  168. package/lib/Store/make-ordered-dictionary.js +0 -75
  169. package/lib/Store/object-repository.js +0 -32
  170. package/lib/Types/Auth.js +0 -2
  171. package/lib/Types/Bussines.js +0 -2
  172. package/lib/Types/Call.js +0 -2
  173. package/lib/Types/Chat.js +0 -8
  174. package/lib/Types/Contact.js +0 -2
  175. package/lib/Types/Events.js +0 -2
  176. package/lib/Types/GroupMetadata.js +0 -2
  177. package/lib/Types/Label.js +0 -25
  178. package/lib/Types/LabelAssociation.js +0 -7
  179. package/lib/Types/Message.js +0 -11
  180. package/lib/Types/Mex.js +0 -37
  181. package/lib/Types/Product.js +0 -2
  182. package/lib/Types/Signal.js +0 -2
  183. package/lib/Types/Socket.js +0 -3
  184. package/lib/Types/State.js +0 -56
  185. package/lib/Types/USync.js +0 -2
  186. package/lib/Types/index.js +0 -26
  187. package/lib/Utils/auth-utils.js +0 -302
  188. package/lib/Utils/browser-utils.js +0 -49
  189. package/lib/Utils/business.js +0 -231
  190. package/lib/Utils/chat-utils.js +0 -872
  191. package/lib/Utils/companion-reg-client-utils.js +0 -35
  192. package/lib/Utils/crypto.js +0 -118
  193. package/lib/Utils/decode-wa-message.js +0 -350
  194. package/lib/Utils/event-buffer.js +0 -622
  195. package/lib/Utils/generics.js +0 -403
  196. package/lib/Utils/history.js +0 -134
  197. package/lib/Utils/identity-change-handler.js +0 -50
  198. package/lib/Utils/index.js +0 -23
  199. package/lib/Utils/link-preview.js +0 -85
  200. package/lib/Utils/logger.js +0 -3
  201. package/lib/Utils/lt-hash.js +0 -8
  202. package/lib/Utils/make-mutex.js +0 -33
  203. package/lib/Utils/message-composer.js +0 -273
  204. package/lib/Utils/message-retry-manager.js +0 -265
  205. package/lib/Utils/messages-media.js +0 -788
  206. package/lib/Utils/messages.js +0 -1260
  207. package/lib/Utils/noise-handler.js +0 -201
  208. package/lib/Utils/offline-node-processor.js +0 -40
  209. package/lib/Utils/pre-key-manager.js +0 -106
  210. package/lib/Utils/process-message.js +0 -630
  211. package/lib/Utils/reporting-utils.js +0 -258
  212. package/lib/Utils/signal.js +0 -201
  213. package/lib/Utils/stanza-ack.js +0 -38
  214. package/lib/Utils/sync-action-utils.js +0 -49
  215. package/lib/Utils/tc-token-utils.js +0 -163
  216. package/lib/Utils/use-multi-file-auth-state.js +0 -121
  217. package/lib/Utils/validate-connection.js +0 -203
  218. package/lib/WABinary/constants.js +0 -1301
  219. package/lib/WABinary/decode.js +0 -262
  220. package/lib/WABinary/encode.js +0 -220
  221. package/lib/WABinary/generic-utils.js +0 -204
  222. package/lib/WABinary/index.js +0 -6
  223. package/lib/WABinary/jid-utils.js +0 -98
  224. package/lib/WABinary/types.js +0 -2
  225. package/lib/WAM/BinaryInfo.js +0 -10
  226. package/lib/WAM/constants.js +0 -22853
  227. package/lib/WAM/encode.js +0 -150
  228. package/lib/WAM/index.js +0 -4
  229. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -52
  230. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -54
  231. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -27
  232. package/lib/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -263
  233. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -38
  234. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -25
  235. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -51
  236. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -29
  237. package/lib/WAUSync/Protocols/index.js +0 -6
  238. package/lib/WAUSync/USyncQuery.js +0 -98
  239. package/lib/WAUSync/USyncUser.js +0 -31
  240. package/lib/WAUSync/index.js +0 -4
@@ -1,386 +0,0 @@
1
- import { proto } from '../../WAProto/index.js'
2
- import * as Utils from '../Utils/index.js'
3
- import crypto from 'crypto'
4
-
5
- export default class imup {
6
- constructor(utils, waUploadToServer, relayMessageFn) {
7
- this.utils = utils
8
- this.relayMessage = relayMessageFn
9
- this.waUploadToServer = waUploadToServer
10
- }
11
-
12
- detectType(content) {
13
- if (content.requestPaymentMessage) return 'PAYMENT'
14
- if (content.productMessage) return 'PRODUCT'
15
- if (content.albumMessage) return 'ALBUM'
16
- if (content.eventMessage) return 'EVENT'
17
- if (content.pollResultMessage) return 'POLL_RESULT'
18
- if (content.orderMessage) return 'ORDER'
19
- if (content.groupStatus) return 'GROUP_STATUS'
20
- if (content.groupLabel) return 'GROUP_LABEL'
21
- return null
22
- }
23
-
24
- async handlePayment(content, quoted) {
25
- const data = content.requestPaymentMessage
26
- let notes = {}
27
-
28
- if (data.sticker?.stickerMessage) {
29
- notes = {
30
- stickerMessage: {
31
- ...data.sticker.stickerMessage,
32
- contextInfo: {
33
- stanzaId: quoted?.key?.id,
34
- participant: quoted?.key?.participant || content.sender,
35
- quotedMessage: quoted?.message
36
- }
37
- }
38
- }
39
- } else if (data.note) {
40
- notes = {
41
- extendedTextMessage: {
42
- text: data.note,
43
- contextInfo: {
44
- stanzaId: quoted?.key?.id,
45
- participant: quoted?.key?.participant || content.sender,
46
- quotedMessage: quoted?.message
47
- }
48
- }
49
- }
50
- }
51
-
52
- return {
53
- requestPaymentMessage: proto.Message.RequestPaymentMessage.fromObject({
54
- expiryTimestamp: data.expiry || 0,
55
- amount1000: data.amount || 0,
56
- currencyCodeIso4217: data.currency || "IDR",
57
- requestFrom: data.from || "0@s.whatsapp.net",
58
- noteMessage: notes,
59
- background: data.background?? {
60
- id: "DEFAULT",
61
- placeholderArgb: 0xFFF0F0F0
62
- }
63
- })
64
- }
65
- }
66
-
67
- async handleProduct(content, jid, quoted) {
68
- const {
69
- title,
70
- description,
71
- thumbnail,
72
- productId,
73
- retailerId,
74
- url,
75
- body = "",
76
- footer = "",
77
- buttons = [],
78
- priceAmount1000 = null,
79
- currencyCode = "IDR"
80
- } = content.productMessage
81
-
82
- let productImage
83
-
84
- if (Buffer.isBuffer(thumbnail)) {
85
- const { imageMessage } = await this.utils.generateWAMessageContent(
86
- { image: thumbnail },
87
- { upload: this.waUploadToServer }
88
- )
89
- productImage = imageMessage
90
- } else if (typeof thumbnail === 'object' && thumbnail.url) {
91
- const { imageMessage } = await this.utils.generateWAMessageContent(
92
- { image: { url: thumbnail.url } },
93
- { upload: this.waUploadToServer }
94
- )
95
- productImage = imageMessage
96
- }
97
-
98
- return {
99
- viewOnceMessage: {
100
- message: {
101
- interactiveMessage: {
102
- body: { text: body },
103
- footer: { text: footer },
104
- header: {
105
- title,
106
- hasMediaAttachment: true,
107
- productMessage: {
108
- product: {
109
- productImage,
110
- productId,
111
- title,
112
- description,
113
- currencyCode,
114
- priceAmount1000,
115
- retailerId,
116
- url,
117
- productImageCount: 1
118
- },
119
- businessOwnerJid: "0@s.whatsapp.net"
120
- }
121
- },
122
- nativeFlowMessage: { buttons }
123
- }
124
- }
125
- }
126
- }
127
- }
128
-
129
- async handleAlbum(content, jid, quoted) {
130
- const array = content.albumMessage
131
- const album = await this.utils.generateWAMessageFromContent(jid, {
132
- messageContextInfo: {
133
- messageSecret: crypto.randomBytes(32),
134
- },
135
- albumMessage: {
136
- expectedImageCount: array.filter((a) => a.hasOwnProperty("image")).length,
137
- expectedVideoCount: array.filter((a) => a.hasOwnProperty("video")).length,
138
- },
139
- }, {
140
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
141
- quoted,
142
- upload: this.waUploadToServer
143
- })
144
-
145
- await this.relayMessage(jid, album.message, {
146
- messageId: album.key.id,
147
- })
148
-
149
- for (let content of array) {
150
- const img = await this.utils.generateWAMessage(jid, content, {
151
- upload: this.waUploadToServer,
152
- })
153
-
154
- img.message.messageContextInfo = {
155
- messageSecret: crypto.randomBytes(32),
156
- messageAssociation: {
157
- associationType: 1,
158
- parentMessageKey: album.key,
159
- },
160
- participant: "0@s.whatsapp.net",
161
- remoteJid: "status@broadcast",
162
- forwardingScore: 99999,
163
- isForwarded: true,
164
- mentionedJid: [jid],
165
- starred: true,
166
- labels: ["Y", "Important"],
167
- isHighlighted: true,
168
- businessMessageForwardInfo: {
169
- businessOwnerJid: jid,
170
- },
171
- dataSharingContext: {
172
- showMmDisclosure: true,
173
- },
174
- }
175
-
176
- img.message.forwardedNewsletterMessageInfo = {
177
- newsletterJid: "0@newsletter",
178
- serverMessageId: 1,
179
- newsletterName: `WhatsApp`,
180
- timestamp: new Date().toISOString(),
181
- senderName: "7-Yuukey",
182
- contentType: "UPDATE_CARD",
183
- priority: "high",
184
- status: "sent",
185
- }
186
-
187
- img.message.disappearingMode = {
188
- initiator: 3,
189
- trigger: 4,
190
- initiatorDeviceJid: jid,
191
- initiatedByExternalService: true,
192
- initiatedByUserDevice: true,
193
- initiatedBySystem: true,
194
- initiatedByServer: true,
195
- initiatedByAdmin: true,
196
- initiatedByUser: true,
197
- initiatedByApp: true,
198
- initiatedByBot: true,
199
- initiatedByMe: true,
200
- }
201
-
202
- await this.relayMessage(jid, img.message, {
203
- messageId: img.key.id,
204
- quoted: {
205
- key: {
206
- remoteJid: album.key.remoteJid,
207
- id: album.key.id,
208
- fromMe: true,
209
- participant: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
210
- },
211
- message: album.message,
212
- },
213
- })
214
- }
215
- return album
216
- }
217
-
218
- async handleEvent(content, jid, quoted) {
219
- const eventData = content.eventMessage
220
-
221
- const msg = await this.utils.generateWAMessageFromContent(jid, {
222
- viewOnceMessage: {
223
- message: {
224
- messageContextInfo: {
225
- deviceListMetadata: {},
226
- deviceListMetadataVersion: 2,
227
- messageSecret: crypto.randomBytes(32),
228
- supportPayload: JSON.stringify({
229
- version: 2,
230
- is_ai_message: true,
231
- should_show_system_message: true,
232
- ticket_id: crypto.randomBytes(16).toString('hex')
233
- })
234
- },
235
- eventMessage: {
236
- contextInfo: {
237
- mentionedJid: [jid],
238
- participant: jid,
239
- remoteJid: "status@broadcast",
240
- forwardedNewsletterMessageInfo: {
241
- newsletterName: "cikikomo",
242
- newsletterJid: "120363421563597486@newsletter",
243
- serverMessageId: 1
244
- }
245
- },
246
- isCanceled: eventData.isCanceled || false,
247
- name: eventData.name,
248
- description: eventData.description,
249
- location: eventData.location || {
250
- degreesLatitude: 0,
251
- degreesLongitude: 0,
252
- name: "Location"
253
- },
254
- joinLink: eventData.joinLink || '',
255
- startTime: typeof eventData.startTime === 'string'? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
256
- endTime: typeof eventData.endTime === 'string'? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
257
- extraGuestsAllowed: eventData.extraGuestsAllowed!== false
258
- }
259
- }
260
- }
261
- }, { quoted })
262
-
263
- await this.relayMessage(jid, msg.message, {
264
- messageId: msg.key.id
265
- })
266
- return msg
267
- }
268
-
269
- async handlePollResult(content, jid, quoted) {
270
- const pollData = content.pollResultMessage
271
- const msg = await this.utils.generateWAMessageFromContent(jid, {
272
- pollResultSnapshotMessage: {
273
- name: pollData.name,
274
- pollVotes: pollData.pollVotes.map(vote => ({
275
- optionName: vote.optionName,
276
- optionVoteCount: typeof vote.optionVoteCount === 'number'
277
- ? vote.optionVoteCount.toString()
278
- : vote.optionVoteCount
279
- })),
280
- contextInfo: {
281
- isForwarded: true,
282
- forwardingScore: 1,
283
- forwardedNewsletterMessageInfo: {
284
- newsletterName: pollData.newsletter.newsletterName || "120363399602691477@newsletter",
285
- newsletterJid: pollData.newsletter.newsletterJid || "Newsletter",
286
- serverMessageId: 1000,
287
- contentType: "UPDATE"
288
- }
289
- }
290
- }
291
- }, {
292
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
293
- quoted
294
- })
295
-
296
- await this.relayMessage(jid, msg.message, {
297
- messageId: msg.key.id
298
- })
299
-
300
- return msg
301
- }
302
-
303
- async handleOrderMessage(content, jid, quoted) {
304
- const orderData = content.orderMessage
305
-
306
- const Haha = await this.utils.generateWAMessageFromContent(jid, {
307
- orderMessage: {
308
- orderId: orderData.orderId || ("POUCODE" + Date.now()),
309
- thumbnail: orderData.thumbnail || null,
310
- itemCount: orderData.itemCount || 0,
311
- status: "ACCEPTED",
312
- surface: "CATALOG",
313
- message: orderData.message,
314
- orderTitle: orderData.orderTitle,
315
- sellerJid: "0@whatsapp.net",
316
- token: orderData.token || "POUCODE_EXAMPLE_TOKEN",
317
- totalAmount1000: orderData.totalAmount1000 || 0,
318
- totalCurrencyCode: orderData.totalCurrencyCode || "IDR",
319
- messageVersion: 2
320
- }
321
- }, { quoted: quoted })
322
-
323
- await this.relayMessage(jid, Haha.message, {})
324
- return Haha
325
- }
326
-
327
- async handleGroupStory(content, jid, quoted) {
328
- const storyData = content.groupStatus
329
- let messageContent
330
-
331
- if (storyData.message) {
332
- messageContent = storyData
333
- } else {
334
- if (typeof this.utils?.generateWAMessageContent === "function") {
335
- messageContent = await this.utils.generateWAMessageContent(storyData, {
336
- upload: this.waUploadToServer
337
- })
338
- } else {
339
- messageContent = await Utils.generateWAMessageContent(storyData, {
340
- upload: this.waUploadToServer
341
- })
342
- }
343
- }
344
-
345
- let msg = {
346
- message: {
347
- groupStatusMessageV2: {
348
- message: messageContent.message || messageContent
349
- }
350
- }
351
- }
352
-
353
- return await this.relayMessage(jid, msg.message, {
354
- messageId: this.utils.generateMessageID()
355
- })
356
- }
357
-
358
- async handleGbLabel(content, jid) {
359
- const x = content.groupLabel
360
- if (!jid.endsWith('@g.us')) {
361
- throw new Error('group required!')
362
- }
363
-
364
- const msg = await this.utils.generateWAMessageFromContent(jid, {
365
- protocolMessage: {
366
- type: "GROUP_MEMBER_LABEL_CHANGE",
367
- memberLabel: {
368
- label: x.labelText.slice(0, 30)
369
- }
370
- }
371
- }, {})
372
-
373
- await this.relayMessage(jid, msg.message, {
374
- additionalNodes: [
375
- {
376
- tag: 'meta',
377
- attrs: {
378
- tag_reason: 'user_update',
379
- appdata: 'member_tag'
380
- },
381
- content: undefined
382
- }
383
- ]
384
- })
385
- }
386
- }