socketon 0.31.0 → 1.51.16

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 (211) hide show
  1. package/README.md +313 -159
  2. package/WAProto/WAProto.proto +5311 -0
  3. package/WAProto/index.js +65801 -141371
  4. package/lib/Defaults/index.js +117 -141
  5. package/lib/KeyDB/BinarySearch.js +20 -0
  6. package/lib/KeyDB/KeyedDB.js +167 -0
  7. package/lib/KeyDB/index.js +4 -0
  8. package/lib/Signal/Group/ciphertext-message.js +12 -14
  9. package/lib/Signal/Group/group-session-builder.js +10 -42
  10. package/lib/Signal/Group/group_cipher.js +75 -87
  11. package/lib/Signal/Group/index.js +13 -57
  12. package/lib/Signal/Group/keyhelper.js +17 -52
  13. package/lib/Signal/Group/sender-chain-key.js +27 -33
  14. package/lib/Signal/Group/sender-key-distribution-message.js +62 -63
  15. package/lib/Signal/Group/sender-key-message.js +65 -66
  16. package/lib/Signal/Group/sender-key-name.js +45 -44
  17. package/lib/Signal/Group/sender-key-record.js +39 -49
  18. package/lib/Signal/Group/sender-key-state.js +80 -93
  19. package/lib/Signal/Group/sender-message-key.js +27 -28
  20. package/lib/Signal/libsignal.js +313 -163
  21. package/lib/Signal/lid-mapping.js +155 -0
  22. package/lib/Socket/Client/index.js +4 -19
  23. package/lib/Socket/Client/types.js +13 -0
  24. package/lib/Socket/Client/websocket.js +52 -0
  25. package/lib/Socket/Client/websocket.js.bak +53 -0
  26. package/lib/Socket/business.js +359 -242
  27. package/lib/Socket/chats.js +846 -935
  28. package/lib/Socket/communities.js +413 -0
  29. package/lib/Socket/groups.js +304 -309
  30. package/lib/Socket/index.js +15 -10
  31. package/lib/Socket/messages-recv.js +1107 -1054
  32. package/lib/Socket/messages-send.js +639 -448
  33. package/lib/Socket/mex.js +45 -0
  34. package/lib/Socket/newsletter.js +270 -282
  35. package/lib/Socket/socket.js +798 -635
  36. package/lib/Socket/socketon.js +402 -0
  37. package/lib/Store/index.js +6 -10
  38. package/lib/Store/make-cache-manager-store.js +73 -81
  39. package/lib/Store/make-in-memory-store.js +286 -423
  40. package/lib/Store/make-ordered-dictionary.js +77 -79
  41. package/lib/Store/object-repository.js +24 -26
  42. package/lib/Types/Auth.js +3 -2
  43. package/lib/Types/Bussines.js +3 -0
  44. package/lib/Types/Call.js +3 -2
  45. package/lib/Types/Chat.js +9 -4
  46. package/lib/Types/Contact.js +3 -2
  47. package/lib/Types/Events.js +3 -2
  48. package/lib/Types/GroupMetadata.js +3 -2
  49. package/lib/Types/Label.js +24 -26
  50. package/lib/Types/LabelAssociation.js +6 -8
  51. package/lib/Types/Message.js +12 -9
  52. package/lib/Types/Newsletter.js +33 -38
  53. package/lib/Types/Newsletter.js.bak +33 -0
  54. package/lib/Types/Product.js +3 -2
  55. package/lib/Types/Signal.js +3 -2
  56. package/lib/Types/Socket.js +4 -2
  57. package/lib/Types/State.js +11 -2
  58. package/lib/Types/USync.js +3 -2
  59. package/lib/Types/index.js +27 -41
  60. package/lib/Utils/auth-utils.js +211 -198
  61. package/lib/Utils/baileys-event-stream.js +42 -61
  62. package/lib/Utils/browser-utils.js +25 -0
  63. package/lib/Utils/business.js +213 -214
  64. package/lib/Utils/chat-utils.js +710 -687
  65. package/lib/Utils/crypto.js +112 -133
  66. package/lib/Utils/decode-wa-message.js +252 -183
  67. package/lib/Utils/decode-wa-message.js.bak +267 -0
  68. package/lib/Utils/event-buffer.js +510 -496
  69. package/lib/Utils/generics.js +319 -464
  70. package/lib/Utils/history.js +83 -92
  71. package/lib/Utils/index.js +21 -33
  72. package/lib/Utils/link-preview.js +71 -83
  73. package/lib/Utils/logger.js +5 -7
  74. package/lib/Utils/lt-hash.js +40 -46
  75. package/lib/Utils/make-mutex.js +34 -41
  76. package/lib/Utils/message-retry-manager.js +113 -0
  77. package/lib/Utils/messages-media.js +550 -768
  78. package/lib/Utils/messages.js +385 -261
  79. package/lib/Utils/noise-handler.js +138 -149
  80. package/lib/Utils/pre-key-manager.js +85 -0
  81. package/lib/Utils/process-message.js +323 -303
  82. package/lib/Utils/signal.js +149 -141
  83. package/lib/Utils/use-multi-file-auth-state.js +95 -103
  84. package/lib/Utils/validate-connection.js +183 -212
  85. package/lib/WABinary/constants.js +1298 -35
  86. package/lib/WABinary/decode.js +237 -249
  87. package/lib/WABinary/encode.js +213 -260
  88. package/lib/WABinary/generic-utils.js +56 -65
  89. package/lib/WABinary/index.js +7 -21
  90. package/lib/WABinary/jid-utils.js +89 -58
  91. package/lib/WABinary/types.js +3 -2
  92. package/lib/WAM/BinaryInfo.js +10 -12
  93. package/lib/WAM/constants.js +22851 -15348
  94. package/lib/WAM/encode.js +135 -136
  95. package/lib/WAM/index.js +5 -19
  96. package/lib/WAUSync/Protocols/USyncContactProtocol.js +28 -30
  97. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +49 -53
  98. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -28
  99. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +36 -39
  100. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +50 -50
  101. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +26 -20
  102. package/lib/WAUSync/Protocols/index.js +6 -20
  103. package/lib/WAUSync/USyncQuery.js +86 -85
  104. package/lib/WAUSync/USyncUser.js +23 -25
  105. package/lib/WAUSync/index.js +5 -19
  106. package/lib/index.js +27 -36
  107. package/package.json +61 -85
  108. package/engine-requirements.js +0 -10
  109. package/lib/Defaults/baileys-version.json +0 -3
  110. package/lib/Defaults/index.d.ts +0 -53
  111. package/lib/Defaults/phonenumber-mcc.json +0 -223
  112. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  113. package/lib/Signal/Group/group-session-builder.d.ts +0 -14
  114. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  115. package/lib/Signal/Group/index.d.ts +0 -11
  116. package/lib/Signal/Group/keyhelper.d.ts +0 -10
  117. package/lib/Signal/Group/queue-job.d.ts +0 -1
  118. package/lib/Signal/Group/queue-job.js +0 -57
  119. package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
  120. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
  121. package/lib/Signal/Group/sender-key-message.d.ts +0 -18
  122. package/lib/Signal/Group/sender-key-name.d.ts +0 -17
  123. package/lib/Signal/Group/sender-key-record.d.ts +0 -30
  124. package/lib/Signal/Group/sender-key-state.d.ts +0 -38
  125. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  126. package/lib/Signal/libsignal.d.ts +0 -3
  127. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  128. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  129. package/lib/Socket/Client/index.d.ts +0 -3
  130. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  131. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  132. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  133. package/lib/Socket/Client/web-socket-client.js +0 -62
  134. package/lib/Socket/business.d.ts +0 -171
  135. package/lib/Socket/chats.d.ts +0 -267
  136. package/lib/Socket/dugong.d.ts +0 -254
  137. package/lib/Socket/dugong.js +0 -484
  138. package/lib/Socket/groups.d.ts +0 -115
  139. package/lib/Socket/index.d.ts +0 -173
  140. package/lib/Socket/messages-recv.d.ts +0 -161
  141. package/lib/Socket/messages-send.d.ts +0 -149
  142. package/lib/Socket/newsletter.d.ts +0 -134
  143. package/lib/Socket/registration.d.ts +0 -267
  144. package/lib/Socket/registration.js +0 -166
  145. package/lib/Socket/socket.d.ts +0 -43
  146. package/lib/Socket/usync.d.ts +0 -36
  147. package/lib/Socket/usync.js +0 -70
  148. package/lib/Store/index.d.ts +0 -3
  149. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  150. package/lib/Store/make-in-memory-store.d.ts +0 -118
  151. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  152. package/lib/Store/object-repository.d.ts +0 -10
  153. package/lib/Types/Auth.d.ts +0 -110
  154. package/lib/Types/Call.d.ts +0 -13
  155. package/lib/Types/Chat.d.ts +0 -102
  156. package/lib/Types/Contact.d.ts +0 -19
  157. package/lib/Types/Events.d.ts +0 -157
  158. package/lib/Types/GroupMetadata.d.ts +0 -55
  159. package/lib/Types/Label.d.ts +0 -35
  160. package/lib/Types/LabelAssociation.d.ts +0 -29
  161. package/lib/Types/Message.d.ts +0 -273
  162. package/lib/Types/Newsletter.d.ts +0 -103
  163. package/lib/Types/Product.d.ts +0 -78
  164. package/lib/Types/Signal.d.ts +0 -57
  165. package/lib/Types/Socket.d.ts +0 -111
  166. package/lib/Types/State.d.ts +0 -27
  167. package/lib/Types/USync.d.ts +0 -25
  168. package/lib/Types/index.d.ts +0 -57
  169. package/lib/Utils/auth-utils.d.ts +0 -18
  170. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  171. package/lib/Utils/business.d.ts +0 -22
  172. package/lib/Utils/chat-utils.d.ts +0 -71
  173. package/lib/Utils/crypto.d.ts +0 -41
  174. package/lib/Utils/decode-wa-message.d.ts +0 -19
  175. package/lib/Utils/event-buffer.d.ts +0 -35
  176. package/lib/Utils/generics.d.ts +0 -92
  177. package/lib/Utils/history.d.ts +0 -15
  178. package/lib/Utils/index.d.ts +0 -17
  179. package/lib/Utils/link-preview.d.ts +0 -21
  180. package/lib/Utils/logger.d.ts +0 -4
  181. package/lib/Utils/lt-hash.d.ts +0 -12
  182. package/lib/Utils/make-mutex.d.ts +0 -7
  183. package/lib/Utils/messages-media.d.ts +0 -116
  184. package/lib/Utils/messages.d.ts +0 -77
  185. package/lib/Utils/noise-handler.d.ts +0 -21
  186. package/lib/Utils/process-message.d.ts +0 -41
  187. package/lib/Utils/signal.d.ts +0 -32
  188. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  189. package/lib/Utils/validate-connection.d.ts +0 -11
  190. package/lib/WABinary/constants.d.ts +0 -30
  191. package/lib/WABinary/decode.d.ts +0 -7
  192. package/lib/WABinary/encode.d.ts +0 -3
  193. package/lib/WABinary/generic-utils.d.ts +0 -17
  194. package/lib/WABinary/index.d.ts +0 -5
  195. package/lib/WABinary/jid-utils.d.ts +0 -31
  196. package/lib/WABinary/types.d.ts +0 -18
  197. package/lib/WAM/BinaryInfo.d.ts +0 -17
  198. package/lib/WAM/constants.d.ts +0 -38
  199. package/lib/WAM/encode.d.ts +0 -3
  200. package/lib/WAM/index.d.ts +0 -3
  201. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  202. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  203. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  204. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  205. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
  206. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
  207. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  208. package/lib/WAUSync/USyncQuery.d.ts +0 -28
  209. package/lib/WAUSync/USyncUser.d.ts +0 -12
  210. package/lib/WAUSync/index.d.ts +0 -3
  211. package/lib/index.d.ts +0 -12
@@ -1,484 +0,0 @@
1
- // "kikyy dugonggg", ah dejavu (r)
2
- // tanggal 14 agustus 2025 makassar
3
- // telegram: @tskiofc & @kyuucode
4
-
5
- const WAProto = require('../../WAProto').proto;
6
- const crypto = require('crypto');
7
- const Utils_1 = require("../Utils");
8
-
9
- class kikyy {
10
- constructor(utils, waUploadToServer, relayMessageFn) {
11
- this.utils = utils;
12
- this.relayMessage = relayMessageFn
13
- this.waUploadToServer = waUploadToServer;
14
-
15
- this.bail = {
16
- generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
17
- generateMessageID: Utils_1.generateMessageID,
18
- getContentType: (msg) => Object.keys(msg.message || {})[0]
19
- };
20
- }
21
-
22
- detectType(content) {
23
- if (content.requestPaymentMessage) return 'PAYMENT';
24
- if (content.productMessage) return 'PRODUCT';
25
- if (content.interactiveMessage) return 'INTERACTIVE';
26
- if (content.albumMessage) return 'ALBUM';
27
- if (content.eventMessage) return 'EVENT';
28
- if (content.pollResultMessage) return 'POLL_RESULT';
29
- if (content.groupStatusMessage) return 'GROUP_STORY';
30
- return null;
31
- }
32
-
33
- async handlePayment(content, quoted) {
34
- const data = content.requestPaymentMessage;
35
- let notes = {};
36
-
37
- if (data.sticker?.stickerMessage) {
38
- notes = {
39
- stickerMessage: {
40
- ...data.sticker.stickerMessage,
41
- contextInfo: {
42
- stanzaId: quoted?.key?.id,
43
- participant: quoted?.key?.participant || content.sender,
44
- quotedMessage: quoted?.message
45
- }
46
- }
47
- };
48
- } else if (data.note) {
49
- notes = {
50
- extendedTextMessage: {
51
- text: data.note,
52
- contextInfo: {
53
- stanzaId: quoted?.key?.id,
54
- participant: quoted?.key?.participant || content.sender,
55
- quotedMessage: quoted?.message
56
- }
57
- }
58
- };
59
- }
60
-
61
- return {
62
- requestPaymentMessage: WAProto.Message.RequestPaymentMessage.fromObject({
63
- expiryTimestamp: data.expiry || 0,
64
- amount1000: data.amount || 0,
65
- currencyCodeIso4217: data.currency || "IDR",
66
- requestFrom: data.from || "0@s.whatsapp.net",
67
- noteMessage: notes,
68
- background: data.background ?? {
69
- id: "DEFAULT",
70
- placeholderArgb: 0xFFF0F0F0
71
- }
72
- })
73
- };
74
- }
75
-
76
- async handleProduct(content, jid, quoted) {
77
- const {
78
- title,
79
- description,
80
- thumbnail,
81
- productId,
82
- retailerId,
83
- url,
84
- body = "",
85
- footer = "",
86
- buttons = [],
87
- priceAmount1000 = null,
88
- currencyCode = "IDR"
89
- } = content.productMessage;
90
-
91
- let productImage;
92
-
93
- if (Buffer.isBuffer(thumbnail)) {
94
- const { imageMessage } = await this.utils.generateWAMessageContent(
95
- { image: thumbnail },
96
- { upload: this.waUploadToServer }
97
- );
98
- productImage = imageMessage;
99
- } else if (typeof thumbnail === 'object' && thumbnail.url) {
100
- const { imageMessage } = await this.utils.generateWAMessageContent(
101
- { image: { url: thumbnail.url }},
102
- { upload: this.waUploadToServer }
103
- );
104
- productImage = imageMessage;
105
- }
106
-
107
- return {
108
- viewOnceMessage: {
109
- message: {
110
- interactiveMessage: {
111
- body: { text: body },
112
- footer: { text: footer },
113
- header: {
114
- title,
115
- hasMediaAttachment: true,
116
- productMessage: {
117
- product: {
118
- productImage,
119
- productId,
120
- title,
121
- description,
122
- currencyCode,
123
- priceAmount1000,
124
- retailerId,
125
- url,
126
- productImageCount: 1
127
- },
128
- businessOwnerJid: "0@s.whatsapp.net"
129
- }
130
- },
131
- nativeFlowMessage: { buttons }
132
- }
133
- }
134
- }
135
- };
136
- }
137
-
138
- async handleInteractive(content, jid, quoted) {
139
- const {
140
- title,
141
- footer,
142
- thumbnail,
143
- image,
144
- video,
145
- document,
146
- mimetype,
147
- fileName,
148
- jpegThumbnail,
149
- contextInfo,
150
- externalAdReply,
151
- buttons = [],
152
- nativeFlowMessage,
153
- header
154
- } = content.interactiveMessage;
155
-
156
- let media = null;
157
- let mediaType = null;
158
-
159
- if (thumbnail) {
160
- media = await this.utils.prepareWAMessageMedia(
161
- { image: { url: thumbnail } },
162
- { upload: this.waUploadToServer }
163
- );
164
- mediaType = 'image';
165
- } else if (image) {
166
- if (typeof image === 'object' && image.url) {
167
- media = await this.utils.prepareWAMessageMedia(
168
- { image: { url: image.url } },
169
- { upload: this.waUploadToServer }
170
- );
171
- } else {
172
- media = await this.utils.prepareWAMessageMedia(
173
- { image: image },
174
- { upload: this.waUploadToServer }
175
- );
176
- }
177
- mediaType = 'image';
178
- } else if (video) {
179
- if (typeof video === 'object' && video.url) {
180
- media = await this.utils.prepareWAMessageMedia(
181
- { video: { url: video.url } },
182
- { upload: this.waUploadToServer }
183
- );
184
- } else {
185
- media = await this.utils.prepareWAMessageMedia(
186
- { video: video },
187
- { upload: this.waUploadToServer }
188
- );
189
- }
190
- mediaType = 'video';
191
- } else if (document) {
192
- let documentPayload = {
193
- document: document
194
- };
195
- if (jpegThumbnail) {
196
- if (typeof jpegThumbnail === 'object' && jpegThumbnail.url) {
197
- documentPayload.jpegThumbnail = { url: jpegThumbnail.url };
198
- } else {
199
- documentPayload.jpegThumbnail = jpegThumbnail;
200
- }
201
- }
202
-
203
- media = await this.utils.prepareWAMessageMedia(
204
- documentPayload,
205
- { upload: this.waUploadToServer }
206
- );
207
- if (fileName) {
208
- media.documentMessage.fileName = fileName;
209
- }
210
- if (mimetype) {
211
- media.documentMessage.mimetype = mimetype;
212
- }
213
- mediaType = 'document';
214
- }
215
- let interactiveMessage = {
216
- body: { text: title || "" },
217
- footer: { text: footer || "" }
218
- };
219
- if (buttons && buttons.length > 0) {
220
- interactiveMessage.nativeFlowMessage = {
221
- buttons: buttons
222
- };
223
- if (nativeFlowMessage) {
224
- interactiveMessage.nativeFlowMessage = {
225
- ...interactiveMessage.nativeFlowMessage,
226
- ...nativeFlowMessage
227
- };
228
- }
229
- } else if (nativeFlowMessage) {
230
- interactiveMessage.nativeFlowMessage = nativeFlowMessage;
231
- }
232
-
233
- if (media) {
234
- interactiveMessage.header = {
235
- title: header || "",
236
- hasMediaAttachment: true,
237
- ...media
238
- };
239
- } else {
240
- interactiveMessage.header = {
241
- title: header || "",
242
- hasMediaAttachment: false
243
- };
244
- }
245
-
246
- let finalContextInfo = {};
247
- if (contextInfo) {
248
- finalContextInfo = {
249
- mentionedJid: contextInfo.mentionedJid || [],
250
- forwardingScore: contextInfo.forwardingScore || 0,
251
- isForwarded: contextInfo.isForwarded || false,
252
- ...contextInfo
253
- };
254
- }
255
-
256
- if (externalAdReply) {
257
- finalContextInfo.externalAdReply = {
258
- title: externalAdReply.title || "",
259
- body: externalAdReply.body || "",
260
- mediaType: externalAdReply.mediaType || 1,
261
- thumbnailUrl: externalAdReply.thumbnailUrl || "",
262
- mediaUrl: externalAdReply.mediaUrl || "",
263
- sourceUrl: externalAdReply.sourceUrl || "",
264
- showAdAttribution: externalAdReply.showAdAttribution || false,
265
- renderLargerThumbnail: externalAdReply.renderLargerThumbnail || false,
266
- ...externalAdReply
267
- };
268
- }
269
-
270
- if (Object.keys(finalContextInfo).length > 0) {
271
- interactiveMessage.contextInfo = finalContextInfo;
272
- }
273
- return {
274
- interactiveMessage: interactiveMessage
275
- };
276
- }
277
-
278
- async handleAlbum(content, jid, quoted) {
279
- const array = content.albumMessage;
280
- const album = await this.utils.generateWAMessageFromContent(jid, {
281
- messageContextInfo: {
282
- messageSecret: crypto.randomBytes(32),
283
- },
284
- albumMessage: {
285
- expectedImageCount: array.filter((a) => a.hasOwnProperty("image")).length,
286
- expectedVideoCount: array.filter((a) => a.hasOwnProperty("video")).length,
287
- },
288
- }, {
289
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
290
- quoted,
291
- upload: this.waUploadToServer
292
- });
293
-
294
- await this.relayMessage(jid, album.message, {
295
- messageId: album.key.id,
296
- });
297
-
298
- for (let content of array) {
299
- const img = await this.utils.generateWAMessage(jid, content, {
300
- upload: this.waUploadToServer,
301
- });
302
-
303
- img.message.messageContextInfo = {
304
- messageSecret: crypto.randomBytes(32),
305
- messageAssociation: {
306
- associationType: 1,
307
- parentMessageKey: album.key,
308
- },
309
- participant: "0@s.whatsapp.net",
310
- remoteJid: "status@broadcast",
311
- forwardingScore: 99999,
312
- isForwarded: true,
313
- mentionedJid: [jid],
314
- starred: true,
315
- labels: ["Y", "Important"],
316
- isHighlighted: true,
317
- businessMessageForwardInfo: {
318
- businessOwnerJid: jid,
319
- },
320
- dataSharingContext: {
321
- showMmDisclosure: true,
322
- },
323
- };
324
-
325
- img.message.forwardedNewsletterMessageInfo = {
326
- newsletterJid: "0@newsletter",
327
- serverMessageId: 1,
328
- newsletterName: `WhatsApp`,
329
- contentType: 1,
330
- timestamp: new Date().toISOString(),
331
- senderName: "kikyy dugonggg",
332
- content: "Text Message",
333
- priority: "high",
334
- status: "sent",
335
- };
336
-
337
- img.message.disappearingMode = {
338
- initiator: 3,
339
- trigger: 4,
340
- initiatorDeviceJid: jid,
341
- initiatedByExternalService: true,
342
- initiatedByUserDevice: true,
343
- initiatedBySystem: true,
344
- initiatedByServer: true,
345
- initiatedByAdmin: true,
346
- initiatedByUser: true,
347
- initiatedByApp: true,
348
- initiatedByBot: true,
349
- initiatedByMe: true,
350
- };
351
-
352
- await this.relayMessage(jid, img.message, {
353
- messageId: img.key.id,
354
- quoted: {
355
- key: {
356
- remoteJid: album.key.remoteJid,
357
- id: album.key.id,
358
- fromMe: true,
359
- participant: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
360
- },
361
- message: album.message,
362
- },
363
- });
364
- }
365
- return album;
366
- }
367
-
368
- async handleEvent(content, jid, quoted) {
369
- const eventData = content.eventMessage;
370
-
371
- const msg = await this.utils.generateWAMessageFromContent(jid, {
372
- viewOnceMessage: {
373
- message: {
374
- messageContextInfo: {
375
- deviceListMetadata: {},
376
- deviceListMetadataVersion: 2,
377
- messageSecret: crypto.randomBytes(32),
378
- supportPayload: JSON.stringify({
379
- version: 2,
380
- is_ai_message: true,
381
- should_show_system_message: true,
382
- ticket_id: crypto.randomBytes(16).toString('hex')
383
- })
384
- },
385
- eventMessage: {
386
- contextInfo: {
387
- mentionedJid: [jid],
388
- participant: jid,
389
- remoteJid: "status@broadcast",
390
- forwardedNewsletterMessageInfo: {
391
- newsletterName: "shenvn.",
392
- newsletterJid: "120363297591152843@newsletter",
393
- serverMessageId: 1
394
- }
395
- },
396
- isCanceled: eventData.isCanceled || false,
397
- name: eventData.name,
398
- description: eventData.description,
399
- location: eventData.location || {
400
- degreesLatitude: 0,
401
- degreesLongitude: 0,
402
- name: "Location"
403
- },
404
- joinLink: eventData.joinLink || '',
405
- startTime: typeof eventData.startTime === 'string' ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
406
- endTime: typeof eventData.endTime === 'string' ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
407
- extraGuestsAllowed: eventData.extraGuestsAllowed !== false
408
- }
409
- }
410
- }
411
- }, { quoted });
412
-
413
- await this.relayMessage(jid, msg.message, {
414
- messageId: msg.key.id
415
- });
416
- return msg;
417
- }
418
-
419
- async handlePollResult(content, jid, quoted) {
420
- const pollData = content.pollResultMessage;
421
-
422
- const msg = await this.utils.generateWAMessageFromContent(jid, {
423
- pollResultSnapshotMessage: {
424
- name: pollData.name,
425
- pollVotes: pollData.pollVotes.map(vote => ({
426
- optionName: vote.optionName,
427
- optionVoteCount: typeof vote.optionVoteCount === 'number'
428
- ? vote.optionVoteCount.toString()
429
- : vote.optionVoteCount
430
- }))
431
- }
432
- }, {
433
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
434
- quoted
435
- });
436
-
437
- await this.relayMessage(jid, msg.message, {
438
- messageId: msg.key.id
439
- });
440
-
441
- return msg;
442
- }
443
-
444
- async handleGroupStory(content, jid, quoted) {
445
- const storyData = content.groupStatusMessage;
446
- let waMsgContent;
447
-
448
- if (storyData.message) {
449
- waMsgContent = storyData;
450
- } else {
451
- if (typeof this.bail?.generateWAMessageContent === "function") {
452
- waMsgContent = await this.bail.generateWAMessageContent(storyData, {
453
- upload: this.waUploadToServer
454
- });
455
- } else if (typeof this.utils?.generateWAMessageContent === "function") {
456
- waMsgContent = await this.utils.generateWAMessageContent(storyData, {
457
- upload: this.waUploadToServer
458
- });
459
- } else if (typeof this.utils?.prepareMessageContent === "function") {
460
- waMsgContent = await this.utils.prepareMessageContent(storyData, {
461
- upload: this.waUploadToServer
462
- });
463
- } else {
464
- waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
465
- upload: this.waUploadToServer
466
- });
467
- }
468
- }
469
-
470
- let msg = {
471
- message: {
472
- groupStatusMessageV2: {
473
- message: waMsgContent.message || waMsgContent
474
- }
475
- }
476
- };
477
-
478
- return await this.relayMessage(jid, msg.message, {
479
- messageId: this.bail.generateMessageID()
480
- });
481
- }
482
- }
483
-
484
- module.exports = kikyy;
@@ -1,115 +0,0 @@
1
- /// <reference types="node" />
2
- import { proto } from '../../WAProto';
3
- import { GroupMetadata, ParticipantAction, SocketConfig } from '../Types';
4
- import { BinaryNode } from '../WABinary';
5
- export declare const makeGroupsSocket: (config: SocketConfig) => {
6
- groupMetadata: (jid: string) => Promise<GroupMetadata>;
7
- groupCreate: (subject: string, participants: string[]) => Promise<GroupMetadata>;
8
- groupLeave: (id: string) => Promise<void>;
9
- groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
10
- groupRequestParticipantsList: (jid: string) => Promise<{
11
- [key: string]: string;
12
- }[]>;
13
- groupRequestParticipantsUpdate: (jid: string, participants: string[], action: 'approve' | 'reject') => Promise<{
14
- status: string;
15
- jid: string;
16
- }[]>;
17
- groupParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
18
- status: string;
19
- jid: string;
20
- content: BinaryNode;
21
- }[]>;
22
- groupUpdateDescription: (jid: string, description?: string) => Promise<void>;
23
- groupInviteCode: (jid: string) => Promise<string | undefined>;
24
- groupRevokeInvite: (jid: string) => Promise<string | undefined>;
25
- groupAcceptInvite: (code: string) => Promise<string | undefined>;
26
- /**
27
- * accept a GroupInviteMessage
28
- * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
29
- * @param inviteMessage the message to accept
30
- */
31
- groupAcceptInviteV4: (key: string | proto.IMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<string>;
32
- groupGetInviteInfo: (code: string) => Promise<GroupMetadata>;
33
- groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
34
- groupSettingUpdate: (jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => Promise<void>;
35
- groupMemberAddMode: (jid: string, mode: 'admin_add' | 'all_member_add') => Promise<void>;
36
- groupJoinApprovalMode: (jid: string, mode: 'on' | 'off') => Promise<void>;
37
- groupFetchAllParticipating: () => Promise<{
38
- [_: string]: GroupMetadata;
39
- }>;
40
- processingMutex: {
41
- mutex<T>(code: () => T | Promise<T>): Promise<T>;
42
- };
43
- fetchPrivacySettings: (force?: boolean) => Promise<{
44
- [_: string]: string;
45
- }>;
46
- upsertMessage: (msg: proto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
47
- appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
48
- sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
49
- presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
50
- profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
51
- onWhatsApp: (...jids: string[]) => Promise<{
52
- jid: string;
53
- exists: unknown;
54
- lid: unknown;
55
- }[] | undefined>;
56
- fetchBlocklist: () => Promise<string[]>;
57
- fetchStatus: (jid: string) => Promise<{
58
- status: string | undefined;
59
- setAt: Date;
60
- } | undefined>;
61
- updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
62
- removeProfilePicture: (jid: string) => Promise<void>;
63
- updateProfileStatus: (status: string) => Promise<void>;
64
- updateProfileName: (name: string) => Promise<void>;
65
- updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
66
- updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
67
- updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
68
- updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
69
- updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
70
- updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
71
- updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
72
- updateDefaultDisappearingMode: (duration: number) => Promise<void>;
73
- getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
74
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
75
- chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
76
- cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
77
- addChatLabel: (jid: string, labelId: string) => Promise<void>;
78
- removeChatLabel: (jid: string, labelId: string) => Promise<void>;
79
- addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
80
- removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
81
- star: (jid: string, messages: {
82
- id: string;
83
- fromMe?: boolean | undefined;
84
- }[], star: boolean) => Promise<void>;
85
- type: "md";
86
- ws: any;
87
- ev: import("../Types").BaileysEventEmitter & {
88
- process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
89
- buffer(): void;
90
- createBufferedFunction<A extends any[], T_1>(work: (...args: A) => Promise<T_1>): (...args: A) => Promise<T_1>;
91
- flush(force?: boolean | undefined): boolean;
92
- isBuffering(): boolean;
93
- };
94
- authState: {
95
- creds: import("../Types").AuthenticationCreds;
96
- keys: import("../Types").SignalKeyStoreWithTransaction;
97
- };
98
- signalRepository: import("../Types").SignalRepository;
99
- user: import("../Types").Contact | undefined;
100
- generateMessageTag: () => string;
101
- query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise<BinaryNode>;
102
- waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
103
- waitForSocketOpen: () => Promise<void>;
104
- sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
105
- sendNode: (frame: BinaryNode) => Promise<void>;
106
- logout: (msg?: string | undefined) => Promise<void>;
107
- end: (error: Error | undefined) => void;
108
- onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
109
- uploadPreKeys: (count?: number) => Promise<void>;
110
- uploadPreKeysToServerIfRequired: () => Promise<void>;
111
- requestPairingCode: (phoneNumber: string, pairKey?: string) => Promise<string>;
112
- waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
113
- sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>;
114
- };
115
- export declare const extractGroupMetadata: (result: BinaryNode) => GroupMetadata;