riftcore 1.4.5 → 1.4.6

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 (117) hide show
  1. package/README.md +421 -0
  2. package/WAProto/fix-import.js +29 -0
  3. package/WAProto/index.js +65432 -137443
  4. package/engine-requirements.js +10 -0
  5. package/lib/Defaults/baileys-version.json +2 -2
  6. package/lib/Defaults/index.d.ts +7 -16
  7. package/lib/Defaults/index.js +124 -94
  8. package/lib/Defaults/phonenumber-mcc.json +223 -0
  9. package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +2 -1
  10. package/lib/Socket/Client/index.d.ts +3 -2
  11. package/lib/Socket/Client/index.js +3 -2
  12. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  13. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  14. package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -2
  15. package/lib/Socket/Client/{websocket.js → web-socket-client.js} +5 -54
  16. package/lib/Socket/business.d.ts +58 -59
  17. package/lib/Socket/chats.d.ts +230 -45
  18. package/lib/Socket/chats.js +238 -139
  19. package/lib/Socket/groups.d.ts +32 -41
  20. package/lib/Socket/groups.js +87 -38
  21. package/lib/Socket/index.d.ts +64 -63
  22. package/lib/Socket/index.js +3 -2
  23. package/lib/Socket/luxu.d.ts +287 -0
  24. package/lib/Socket/luxu.js +607 -0
  25. package/lib/Socket/messages-recv.js +65 -9
  26. package/lib/Socket/messages-send.d.ts +47 -49
  27. package/lib/Socket/messages-send.js +475 -543
  28. package/lib/Socket/newsletter.d.ts +37 -39
  29. package/lib/Socket/newsletter.js +134 -88
  30. package/lib/Socket/registration.d.ts +267 -0
  31. package/lib/Socket/registration.js +166 -0
  32. package/lib/Socket/socket.d.ts +44 -270
  33. package/lib/Socket/socket.js +90 -8
  34. package/lib/Socket/usync.d.ts +3 -3
  35. package/lib/Store/index.d.ts +2 -1
  36. package/lib/Store/index.js +3 -1
  37. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  38. package/lib/Store/make-cache-manager-store.js +83 -0
  39. package/lib/Store/make-in-memory-store.d.ts +24 -24
  40. package/lib/Store/make-in-memory-store.js +14 -26
  41. package/lib/Store/make-ordered-dictionary.d.ts +1 -1
  42. package/lib/Store/make-ordered-dictionary.js +2 -2
  43. package/lib/Types/Auth.d.ts +7 -0
  44. package/lib/Types/Call.d.ts +1 -1
  45. package/lib/Types/Chat.d.ts +7 -14
  46. package/lib/Types/Contact.d.ts +1 -5
  47. package/lib/Types/Events.d.ts +2 -44
  48. package/lib/Types/GroupMetadata.d.ts +2 -11
  49. package/lib/Types/Label.js +1 -1
  50. package/lib/Types/LabelAssociation.js +1 -1
  51. package/lib/Types/Message.d.ts +21 -148
  52. package/lib/Types/Message.js +2 -0
  53. package/lib/Types/Newsletter.d.ts +97 -73
  54. package/lib/Types/Newsletter.js +38 -18
  55. package/lib/Types/Socket.d.ts +9 -17
  56. package/lib/Types/index.d.ts +1 -8
  57. package/lib/Types/index.js +2 -2
  58. package/lib/Utils/auth-utils.d.ts +3 -3
  59. package/lib/Utils/auth-utils.js +13 -6
  60. package/lib/Utils/business.js +2 -2
  61. package/lib/Utils/chat-utils.d.ts +16 -15
  62. package/lib/Utils/chat-utils.js +35 -36
  63. package/lib/Utils/crypto.d.ts +16 -15
  64. package/lib/Utils/crypto.js +29 -71
  65. package/lib/Utils/decode-wa-message.d.ts +6 -22
  66. package/lib/Utils/decode-wa-message.js +56 -65
  67. package/lib/Utils/event-buffer.d.ts +2 -2
  68. package/lib/Utils/event-buffer.js +7 -11
  69. package/lib/Utils/generics.d.ts +20 -17
  70. package/lib/Utils/generics.js +84 -102
  71. package/lib/Utils/history.d.ts +0 -4
  72. package/lib/Utils/history.js +6 -4
  73. package/lib/Utils/link-preview.d.ts +2 -2
  74. package/lib/Utils/link-preview.js +1 -34
  75. package/lib/Utils/logger.d.ts +3 -10
  76. package/lib/Utils/lt-hash.d.ts +2 -2
  77. package/lib/Utils/lt-hash.js +6 -6
  78. package/lib/Utils/make-mutex.d.ts +2 -2
  79. package/lib/Utils/messages-media.d.ts +24 -28
  80. package/lib/Utils/messages-media.js +111 -272
  81. package/lib/Utils/messages.d.ts +10 -13
  82. package/lib/Utils/messages.js +53 -338
  83. package/lib/Utils/noise-handler.d.ts +12 -10
  84. package/lib/Utils/noise-handler.js +23 -18
  85. package/lib/Utils/process-message.d.ts +4 -5
  86. package/lib/Utils/process-message.js +25 -108
  87. package/lib/Utils/signal.d.ts +1 -2
  88. package/lib/Utils/signal.js +26 -26
  89. package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
  90. package/lib/Utils/use-multi-file-auth-state.js +0 -6
  91. package/lib/Utils/validate-connection.d.ts +4 -3
  92. package/lib/Utils/validate-connection.js +3 -3
  93. package/lib/WABinary/constants.d.ts +27 -24
  94. package/lib/WABinary/constants.js +13 -1276
  95. package/lib/WABinary/decode.d.ts +4 -3
  96. package/lib/WABinary/decode.js +13 -26
  97. package/lib/WABinary/encode.d.ts +2 -1
  98. package/lib/WABinary/encode.js +152 -137
  99. package/lib/WABinary/generic-utils.d.ts +4 -1
  100. package/lib/WABinary/generic-utils.js +125 -37
  101. package/lib/WABinary/jid-utils.d.ts +5 -11
  102. package/lib/WABinary/jid-utils.js +5 -28
  103. package/lib/WAM/BinaryInfo.d.ts +11 -2
  104. package/lib/WAM/encode.d.ts +2 -1
  105. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
  106. package/lib/index.d.ts +2 -6
  107. package/lib/index.js +15 -31
  108. package/package.json +101 -95
  109. package/WAProto/GenerateStatics.sh +0 -4
  110. package/WAProto/WAProto.proto +0 -4775
  111. package/WAProto/index.d.ts +0 -55057
  112. package/WAProto/index.ts.ts +0 -53473
  113. package/lib/Socket/setup.js +0 -481
  114. package/lib/Socket/setup.ts +0 -623
  115. package/lib/WABinary/jid-utils.js.bak +0 -83
  116. package/lib/WAUSync/index.d.ts +0 -3
  117. /package/lib/Socket/Client/{types.js → abstract-socket-client.js} +0 -0
@@ -1,481 +0,0 @@
1
- /* modified by alip clutch*/
2
- const WAProto = require('../../WAProto').proto;
3
- const crypto = require('crypto');
4
- const Utils_1 = require("../Utils");
5
-
6
- class yaoii {
7
- constructor(utils, waUploadToServer, relayMessageFn) {
8
- this.utils = utils;
9
- this.relayMessage = relayMessageFn
10
- this.waUploadToServer = waUploadToServer;
11
-
12
- this.bail = {
13
- generateWAMessageContent: this.utils.generateWAMessageContent || Utils_1.generateWAMessageContent,
14
- generateMessageID: Utils_1.generateMessageID,
15
- getContentType: (msg) => Object.keys(msg.message || {})[0]
16
- };
17
- }
18
-
19
- detectType(content) {
20
- if (content.requestPaymentMessage) return 'PAYMENT';
21
- if (content.productMessage) return 'PRODUCT';
22
- if (content.interactiveMessage) return 'INTERACTIVE';
23
- if (content.albumMessage) return 'ALBUM';
24
- if (content.eventMessage) return 'EVENT';
25
- if (content.pollResultMessage) return 'POLL_RESULT';
26
- if (content.groupStatusMessage) return 'GROUP_STORY';
27
- return null;
28
- }
29
-
30
- async handlePayment(content, quoted) {
31
- const data = content.requestPaymentMessage;
32
- let notes = {};
33
-
34
- if (data.sticker?.stickerMessage) {
35
- notes = {
36
- stickerMessage: {
37
- ...data.sticker.stickerMessage,
38
- contextInfo: {
39
- stanzaId: quoted?.key?.id,
40
- participant: quoted?.key?.participant || content.sender,
41
- quotedMessage: quoted?.message
42
- }
43
- }
44
- };
45
- } else if (data.note) {
46
- notes = {
47
- extendedTextMessage: {
48
- text: data.note,
49
- contextInfo: {
50
- stanzaId: quoted?.key?.id,
51
- participant: quoted?.key?.participant || content.sender,
52
- quotedMessage: quoted?.message
53
- }
54
- }
55
- };
56
- }
57
-
58
- return {
59
- requestPaymentMessage: WAProto.Message.RequestPaymentMessage.fromObject({
60
- expiryTimestamp: data.expiry || 0,
61
- amount1000: data.amount || 0,
62
- currencyCodeIso4217: data.currency || "IDR",
63
- requestFrom: data.from || "0@s.whatsapp.net",
64
- noteMessage: notes,
65
- background: data.background ?? {
66
- id: "DEFAULT",
67
- placeholderArgb: 0xFFF0F0F0
68
- }
69
- })
70
- };
71
- }
72
-
73
- async handleProduct(content, jid, quoted) {
74
- const {
75
- title,
76
- description,
77
- thumbnail,
78
- productId,
79
- retailerId,
80
- url,
81
- body = "",
82
- footer = "",
83
- buttons = [],
84
- priceAmount1000 = null,
85
- currencyCode = "IDR"
86
- } = content.productMessage;
87
-
88
- let productImage;
89
-
90
- if (Buffer.isBuffer(thumbnail)) {
91
- const { imageMessage } = await this.utils.generateWAMessageContent(
92
- { image: thumbnail },
93
- { upload: this.waUploadToServer }
94
- );
95
- productImage = imageMessage;
96
- } else if (typeof thumbnail === 'object' && thumbnail.url) {
97
- const { imageMessage } = await this.utils.generateWAMessageContent(
98
- { image: { url: thumbnail.url }},
99
- { upload: this.waUploadToServer }
100
- );
101
- productImage = imageMessage;
102
- }
103
-
104
- return {
105
- viewOnceMessage: {
106
- message: {
107
- interactiveMessage: {
108
- body: { text: body },
109
- footer: { text: footer },
110
- header: {
111
- title,
112
- hasMediaAttachment: true,
113
- productMessage: {
114
- product: {
115
- productImage,
116
- productId,
117
- title,
118
- description,
119
- currencyCode,
120
- priceAmount1000,
121
- retailerId,
122
- url,
123
- productImageCount: 1
124
- },
125
- businessOwnerJid: "0@s.whatsapp.net"
126
- }
127
- },
128
- nativeFlowMessage: { buttons }
129
- }
130
- }
131
- }
132
- };
133
- }
134
-
135
- async handleInteractive(content, jid, quoted) {
136
- const {
137
- title,
138
- footer,
139
- thumbnail,
140
- image,
141
- video,
142
- document,
143
- mimetype,
144
- fileName,
145
- jpegThumbnail,
146
- contextInfo,
147
- externalAdReply,
148
- buttons = [],
149
- nativeFlowMessage,
150
- header
151
- } = content.interactiveMessage;
152
-
153
- let media = null;
154
- let mediaType = null;
155
-
156
- if (thumbnail) {
157
- media = await this.utils.prepareWAMessageMedia(
158
- { image: { url: thumbnail } },
159
- { upload: this.waUploadToServer }
160
- );
161
- mediaType = 'image';
162
- } else if (image) {
163
- if (typeof image === 'object' && image.url) {
164
- media = await this.utils.prepareWAMessageMedia(
165
- { image: { url: image.url } },
166
- { upload: this.waUploadToServer }
167
- );
168
- } else {
169
- media = await this.utils.prepareWAMessageMedia(
170
- { image: image },
171
- { upload: this.waUploadToServer }
172
- );
173
- }
174
- mediaType = 'image';
175
- } else if (video) {
176
- if (typeof video === 'object' && video.url) {
177
- media = await this.utils.prepareWAMessageMedia(
178
- { video: { url: video.url } },
179
- { upload: this.waUploadToServer }
180
- );
181
- } else {
182
- media = await this.utils.prepareWAMessageMedia(
183
- { video: video },
184
- { upload: this.waUploadToServer }
185
- );
186
- }
187
- mediaType = 'video';
188
- } else if (document) {
189
- let documentPayload = {
190
- document: document
191
- };
192
- if (jpegThumbnail) {
193
- if (typeof jpegThumbnail === 'object' && jpegThumbnail.url) {
194
- documentPayload.jpegThumbnail = { url: jpegThumbnail.url };
195
- } else {
196
- documentPayload.jpegThumbnail = jpegThumbnail;
197
- }
198
- }
199
-
200
- media = await this.utils.prepareWAMessageMedia(
201
- documentPayload,
202
- { upload: this.waUploadToServer }
203
- );
204
- if (fileName) {
205
- media.documentMessage.fileName = fileName;
206
- }
207
- if (mimetype) {
208
- media.documentMessage.mimetype = mimetype;
209
- }
210
- mediaType = 'document';
211
- }
212
- let interactiveMessage = {
213
- body: { text: title || "" },
214
- footer: { text: footer || "" }
215
- };
216
- if (buttons && buttons.length > 0) {
217
- interactiveMessage.nativeFlowMessage = {
218
- buttons: buttons
219
- };
220
- if (nativeFlowMessage) {
221
- interactiveMessage.nativeFlowMessage = {
222
- ...interactiveMessage.nativeFlowMessage,
223
- ...nativeFlowMessage
224
- };
225
- }
226
- } else if (nativeFlowMessage) {
227
- interactiveMessage.nativeFlowMessage = nativeFlowMessage;
228
- }
229
-
230
- if (media) {
231
- interactiveMessage.header = {
232
- title: header || "",
233
- hasMediaAttachment: true,
234
- ...media
235
- };
236
- } else {
237
- interactiveMessage.header = {
238
- title: header || "",
239
- hasMediaAttachment: false
240
- };
241
- }
242
-
243
- let finalContextInfo = {};
244
- if (contextInfo) {
245
- finalContextInfo = {
246
- mentionedJid: contextInfo.mentionedJid || [],
247
- forwardingScore: contextInfo.forwardingScore || 0,
248
- isForwarded: contextInfo.isForwarded || false,
249
- ...contextInfo
250
- };
251
- }
252
-
253
- if (externalAdReply) {
254
- finalContextInfo.externalAdReply = {
255
- title: externalAdReply.title || "",
256
- body: externalAdReply.body || "",
257
- mediaType: externalAdReply.mediaType || 1,
258
- thumbnailUrl: externalAdReply.thumbnailUrl || "",
259
- mediaUrl: externalAdReply.mediaUrl || "",
260
- sourceUrl: externalAdReply.sourceUrl || "",
261
- showAdAttribution: externalAdReply.showAdAttribution || false,
262
- renderLargerThumbnail: externalAdReply.renderLargerThumbnail || false,
263
- ...externalAdReply
264
- };
265
- }
266
-
267
- if (Object.keys(finalContextInfo).length > 0) {
268
- interactiveMessage.contextInfo = finalContextInfo;
269
- }
270
- return {
271
- interactiveMessage: interactiveMessage
272
- };
273
- }
274
-
275
- async handleAlbum(content, jid, quoted) {
276
- const array = content.albumMessage;
277
- const album = await this.utils.generateWAMessageFromContent(jid, {
278
- messageContextInfo: {
279
- messageSecret: crypto.randomBytes(32),
280
- },
281
- albumMessage: {
282
- expectedImageCount: array.filter((a) => a.hasOwnProperty("image")).length,
283
- expectedVideoCount: array.filter((a) => a.hasOwnProperty("video")).length,
284
- },
285
- }, {
286
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
287
- quoted,
288
- upload: this.waUploadToServer
289
- });
290
-
291
- await this.relayMessage(jid, album.message, {
292
- messageId: album.key.id,
293
- });
294
-
295
- for (let content of array) {
296
- const img = await this.utils.generateWAMessage(jid, content, {
297
- upload: this.waUploadToServer,
298
- });
299
-
300
- img.message.messageContextInfo = {
301
- messageSecret: crypto.randomBytes(32),
302
- messageAssociation: {
303
- associationType: 1,
304
- parentMessageKey: album.key,
305
- },
306
- participant: "0@s.whatsapp.net",
307
- remoteJid: "status@broadcast",
308
- forwardingScore: 99999,
309
- isForwarded: true,
310
- mentionedJid: [jid],
311
- starred: true,
312
- labels: ["Y", "Important"],
313
- isHighlighted: true,
314
- businessMessageForwardInfo: {
315
- businessOwnerJid: jid,
316
- },
317
- dataSharingContext: {
318
- showMmDisclosure: true,
319
- },
320
- };
321
-
322
- img.message.forwardedNewsletterMessageInfo = {
323
- newsletterJid: "0@newsletter",
324
- serverMessageId: 1,
325
- newsletterName: `WhatsApp`,
326
- contentType: 1,
327
- timestamp: new Date().toISOString(),
328
- senderName: "Alip Clutch",
329
- content: "Text Message",
330
- priority: "high",
331
- status: "sent",
332
- };
333
-
334
- img.message.disappearingMode = {
335
- initiator: 3,
336
- trigger: 4,
337
- initiatorDeviceJid: jid,
338
- initiatedByExternalService: true,
339
- initiatedByUserDevice: true,
340
- initiatedBySystem: true,
341
- initiatedByServer: true,
342
- initiatedByAdmin: true,
343
- initiatedByUser: true,
344
- initiatedByApp: true,
345
- initiatedByBot: true,
346
- initiatedByMe: true,
347
- };
348
-
349
- await this.relayMessage(jid, img.message, {
350
- messageId: img.key.id,
351
- quoted: {
352
- key: {
353
- remoteJid: album.key.remoteJid,
354
- id: album.key.id,
355
- fromMe: true,
356
- participant: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
357
- },
358
- message: album.message,
359
- },
360
- });
361
- }
362
- return album;
363
- }
364
-
365
- async handleEvent(content, jid, quoted) {
366
- const eventData = content.eventMessage;
367
-
368
- const msg = await this.utils.generateWAMessageFromContent(jid, {
369
- viewOnceMessage: {
370
- message: {
371
- messageContextInfo: {
372
- deviceListMetadata: {},
373
- deviceListMetadataVersion: 2,
374
- messageSecret: crypto.randomBytes(32),
375
- supportPayload: JSON.stringify({
376
- version: 2,
377
- is_ai_message: true,
378
- should_show_system_message: true,
379
- ticket_id: crypto.randomBytes(16).toString('hex')
380
- })
381
- },
382
- eventMessage: {
383
- contextInfo: {
384
- mentionedJid: [jid],
385
- participant: jid,
386
- remoteJid: "status@broadcast",
387
- forwardedNewsletterMessageInfo: {
388
- newsletterName: "alip clutch.",
389
- newsletterJid: "120363401467939056@newsletter",
390
- serverMessageId: 1
391
- }
392
- },
393
- isCanceled: eventData.isCanceled || false,
394
- name: eventData.name,
395
- description: eventData.description,
396
- location: eventData.location || {
397
- degreesLatitude: 0,
398
- degreesLongitude: 0,
399
- name: "Location"
400
- },
401
- joinLink: eventData.joinLink || '',
402
- startTime: typeof eventData.startTime === 'string' ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
403
- endTime: typeof eventData.endTime === 'string' ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
404
- extraGuestsAllowed: eventData.extraGuestsAllowed !== false
405
- }
406
- }
407
- }
408
- }, { quoted });
409
-
410
- await this.relayMessage(jid, msg.message, {
411
- messageId: msg.key.id
412
- });
413
- return msg;
414
- }
415
-
416
- async handlePollResult(content, jid, quoted) {
417
- const pollData = content.pollResultMessage;
418
-
419
- const msg = await this.utils.generateWAMessageFromContent(jid, {
420
- pollResultSnapshotMessage: {
421
- name: pollData.name,
422
- pollVotes: pollData.pollVotes.map(vote => ({
423
- optionName: vote.optionName,
424
- optionVoteCount: typeof vote.optionVoteCount === 'number'
425
- ? vote.optionVoteCount.toString()
426
- : vote.optionVoteCount
427
- }))
428
- }
429
- }, {
430
- userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
431
- quoted
432
- });
433
-
434
- await this.relayMessage(jid, msg.message, {
435
- messageId: msg.key.id
436
- });
437
-
438
- return msg;
439
- }
440
-
441
- async handleGroupStory(content, jid, quoted) {
442
- const storyData = content.groupStatusMessage;
443
- let waMsgContent;
444
-
445
- if (storyData.message) {
446
- waMsgContent = storyData;
447
- } else {
448
- if (typeof this.bail?.generateWAMessageContent === "function") {
449
- waMsgContent = await this.bail.generateWAMessageContent(storyData, {
450
- upload: this.waUploadToServer
451
- });
452
- } else if (typeof this.utils?.generateWAMessageContent === "function") {
453
- waMsgContent = await this.utils.generateWAMessageContent(storyData, {
454
- upload: this.waUploadToServer
455
- });
456
- } else if (typeof this.utils?.prepareMessageContent === "function") {
457
- waMsgContent = await this.utils.prepareMessageContent(storyData, {
458
- upload: this.waUploadToServer
459
- });
460
- } else {
461
- waMsgContent = await Utils_1.generateWAMessageContent(storyData, {
462
- upload: this.waUploadToServer
463
- });
464
- }
465
- }
466
-
467
- let msg = {
468
- message: {
469
- groupStatusMessageV2: {
470
- message: waMsgContent.message || waMsgContent
471
- }
472
- }
473
- };
474
-
475
- return await this.relayMessage(jid, msg.message, {
476
- messageId: this.bail.generateMessageID()
477
- });
478
- }
479
- }
480
-
481
- module.exports = yaoii;