@elrayyxml/baileys 1.0.2 → 1.0.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.
- package/README.md +2485 -0
- package/lib/Defaults/index.js +5 -1
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Socket/messages-send.js +260 -55
- package/lib/Utils/generics.js +32 -4
- package/lib/Utils/messages.js +96 -4
- package/lib/WABinary/generic-utils.js +12 -1
- package/package.json +4 -10
- package/README.MD +0 -78
- package/lib/Socket/type.js +0 -405
package/lib/Utils/generics.js
CHANGED
|
@@ -54,7 +54,13 @@ const COMPANION_PLATFORM_MAP = {
|
|
|
54
54
|
'Edge': '50',
|
|
55
55
|
'Firefox': '51',
|
|
56
56
|
'Opera': '53',
|
|
57
|
-
'Safari': '54'
|
|
57
|
+
'Safari': '54',
|
|
58
|
+
'Brave': '1.79.112',
|
|
59
|
+
'Vivaldi': '6.2.3105.58',
|
|
60
|
+
'Tor': '12.5.3',
|
|
61
|
+
'Yandex': '23.7.1',
|
|
62
|
+
'Falkon': '22.08.3',
|
|
63
|
+
'Epiphany': '44.2'
|
|
58
64
|
};
|
|
59
65
|
const PLATFORM_MAP = {
|
|
60
66
|
'aix': 'AIX',
|
|
@@ -63,13 +69,35 @@ const PLATFORM_MAP = {
|
|
|
63
69
|
'android': 'Android',
|
|
64
70
|
'freebsd': 'FreeBSD',
|
|
65
71
|
'openbsd': 'OpenBSD',
|
|
66
|
-
'sunos': 'Solaris'
|
|
72
|
+
'sunos': 'Solaris',
|
|
73
|
+
'linux': 'Linux',
|
|
74
|
+
'ubuntu': 'Ubuntu',
|
|
75
|
+
'ios': 'iOS',
|
|
76
|
+
'baileys': 'Baileys',
|
|
77
|
+
'chromeos': 'Chrome OS',
|
|
78
|
+
'tizen': 'Tizen',
|
|
79
|
+
'watchos': 'watchOS',
|
|
80
|
+
'wearos': 'Wear OS',
|
|
81
|
+
'harmonyos': 'HarmonyOS',
|
|
82
|
+
'kaios': 'KaiOS',
|
|
83
|
+
'smarttv': 'Smart TV',
|
|
84
|
+
'raspberrypi': 'Raspberry Pi OS',
|
|
85
|
+
'symbian': 'Symbian',
|
|
86
|
+
'blackberry': 'Blackberry OS',
|
|
87
|
+
'windowsphone': 'Windows Phone'
|
|
67
88
|
};
|
|
68
89
|
exports.Browsers = {
|
|
69
90
|
ubuntu: (browser) => ['Ubuntu', browser, '22.04.4'],
|
|
70
91
|
macOS: (browser) => ['Mac OS', browser, '14.4.1'],
|
|
71
92
|
baileys: (browser) => ['Baileys', browser, '6.5.0'],
|
|
72
93
|
windows: (browser) => ['Windows', browser, '10.0.22631'],
|
|
94
|
+
elrayyxml: (browser) => ['ElrayyXml', browser, '20.08.0108'],
|
|
95
|
+
linux: (browser) => ['Linux', browser, '6.5'],
|
|
96
|
+
sunos: (browser) => ['Solaris', browser, '11'],
|
|
97
|
+
android: (browser) => ['Android', browser, '14.0.0'],
|
|
98
|
+
ios: (browser) => ['iOS', browser, '18.2'],
|
|
99
|
+
kaios: (browser) => ['KaiOS', browser, '3.1'],
|
|
100
|
+
chromeos: (browser) => ['Chrome OS', browser, '117.0.5938.132'],
|
|
73
101
|
/** The appropriate browser based on your OS & release */
|
|
74
102
|
appropriate: (browser) => [PLATFORM_MAP[(0, os_1.platform)()] || 'Ubuntu', browser, (0, os_1.release)()]
|
|
75
103
|
};
|
|
@@ -213,11 +241,11 @@ const generateMessageIDV2 = (userId) => {
|
|
|
213
241
|
const random = (0, crypto_1.randomBytes)(16);
|
|
214
242
|
random.copy(data, 28);
|
|
215
243
|
const hash = (0, crypto_1.createHash)('sha256').update(data).digest();
|
|
216
|
-
return 'ELRAYY
|
|
244
|
+
return 'ELRAYY' + hash.toString('hex').toUpperCase().substring(0, 15);
|
|
217
245
|
};
|
|
218
246
|
exports.generateMessageIDV2 = generateMessageIDV2;
|
|
219
247
|
// generate a random ID to attach to a message
|
|
220
|
-
const generateMessageID = () => 'ELRAYY
|
|
248
|
+
const generateMessageID = () => 'ELRAYY' + (0, crypto_1.randomBytes)(15).toString('hex').toUpperCase();
|
|
221
249
|
exports.generateMessageID = generateMessageID;
|
|
222
250
|
function bindWaitForEvent(ev, event) {
|
|
223
251
|
return async (check, timeoutMs) => {
|
package/lib/Utils/messages.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
6
|
+
exports.prepareAlbumMessageContent = exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
7
7
|
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
8
8
|
const boom_1 = require("@hapi/boom");
|
|
9
9
|
const axios_1 = __importDefault(require("axios"));
|
|
@@ -105,7 +105,7 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
105
105
|
newsletter: {
|
|
106
106
|
newsletterJid: "120363402530588049@newsletter",
|
|
107
107
|
serverMessageId: 0,
|
|
108
|
-
newsletterName: "
|
|
108
|
+
newsletterName: "elrayyxml notifier ",
|
|
109
109
|
contentType: "UPDATE",
|
|
110
110
|
}
|
|
111
111
|
}
|
|
@@ -227,6 +227,51 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
227
227
|
return obj;
|
|
228
228
|
};
|
|
229
229
|
exports.prepareWAMessageMedia = prepareWAMessageMedia;
|
|
230
|
+
const prepareAlbumMessageContent = async (jid, albums, options) => {
|
|
231
|
+
const array = albums;
|
|
232
|
+
|
|
233
|
+
const albumContent = {
|
|
234
|
+
messageContextInfo: {
|
|
235
|
+
messageSecret: crypto_1.randomBytes(32),
|
|
236
|
+
},
|
|
237
|
+
albumMessage: {
|
|
238
|
+
expectedImageCount: array.filter((a) => a.hasOwnProperty("image")).length,
|
|
239
|
+
expectedVideoCount: array.filter((a) => a.hasOwnProperty("video")).length,
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
const albumMsg = await generateWAMessageFromContent(jid, albumContent, {
|
|
243
|
+
userJid: options.userJid,
|
|
244
|
+
quoted: options.quoted,
|
|
245
|
+
ephemeralExpiration: options.ephemeralExpiration,
|
|
246
|
+
upload: options.sock.waUploadToServer
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
await options.sock.relayMessage(jid, albumMsg.message, {
|
|
250
|
+
messageId: albumMsg.key.id,
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
for (let contentItem of array) {
|
|
254
|
+
const mediaMsg = await generateWAMessage(jid, contentItem, {
|
|
255
|
+
upload: options.sock.waUploadToServer,
|
|
256
|
+
userJid: options.userJid
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
mediaMsg.message.messageContextInfo = {
|
|
260
|
+
messageSecret: crypto_1.randomBytes(32),
|
|
261
|
+
messageAssociation: {
|
|
262
|
+
associationType: 1,
|
|
263
|
+
parentMessageKey: albumMsg.key,
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
await options.sock.relayMessage(jid, mediaMsg.message, {
|
|
268
|
+
messageId: mediaMsg.key.id,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
return albumMsg;
|
|
273
|
+
};
|
|
274
|
+
exports.prepareAlbumMessageContent = prepareAlbumMessageContent;
|
|
230
275
|
const prepareDisappearingMessageSettingContent = (ephemeralExpiration) => {
|
|
231
276
|
ephemeralExpiration = ephemeralExpiration || 0;
|
|
232
277
|
const content = {
|
|
@@ -408,6 +453,19 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
408
453
|
type: WAProto_1.proto.Message.ButtonsResponseMessage.Type.DISPLAY_TEXT,
|
|
409
454
|
};
|
|
410
455
|
break;
|
|
456
|
+
case 'interactive':
|
|
457
|
+
m.interactiveResponseMessage = {
|
|
458
|
+
body: {
|
|
459
|
+
text: message.buttonReply.displayText,
|
|
460
|
+
format: WAProto_1.proto.Message.InteractiveResponseMessage.Body.Format.EXTENSIONS_1
|
|
461
|
+
},
|
|
462
|
+
nativeFlowResponseMessage: {
|
|
463
|
+
name: message.buttonReply.nativeFlows.name,
|
|
464
|
+
paramsJson: message.buttonReply.nativeFlows.paramsJson,
|
|
465
|
+
version: message.buttonReply.nativeFlows.version
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
break;
|
|
411
469
|
}
|
|
412
470
|
}
|
|
413
471
|
else if ('ptv' in message && message.ptv) {
|
|
@@ -442,6 +500,26 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
442
500
|
else if ('listReply' in message) {
|
|
443
501
|
m.listResponseMessage = { ...message.listReply };
|
|
444
502
|
}
|
|
503
|
+
else if ('pollResult' in message) {
|
|
504
|
+
if (!Array.isArray(message.pollResult.values)) {
|
|
505
|
+
throw new boom_1.Boom('Invalid pollResult values', { statusCode: 400 })
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
const pollResultSnapshotMessage = {
|
|
509
|
+
name: message.pollResult.name,
|
|
510
|
+
pollVotes: message.pollResult.values.map(([optionName, optionVoteCount]) => ({
|
|
511
|
+
optionName,
|
|
512
|
+
optionVoteCount
|
|
513
|
+
}))
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
pollResultSnapshotMessage.contextInfo = {
|
|
517
|
+
...(message.contextInfo || {}),
|
|
518
|
+
...(message.mentions ? { mentionedJid: message.mentions } : {})
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
m.pollResultSnapshotMessage = pollResultSnapshotMessage
|
|
522
|
+
}
|
|
445
523
|
else if ('poll' in message) {
|
|
446
524
|
(_p = message.poll).selectableCount || (_p.selectableCount = 0);
|
|
447
525
|
(_q = message.poll).toAnnouncementGroup || (_q.toAnnouncementGroup = false);
|
|
@@ -477,10 +555,24 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
477
555
|
}
|
|
478
556
|
}
|
|
479
557
|
else if ('event' in message) {
|
|
558
|
+
m.eventMessage = {};
|
|
559
|
+
const startTime = Math.floor(message.event.startDate.getTime() / 1000);
|
|
560
|
+
if (message.event.call && options.getCallLink) {
|
|
561
|
+
const token = await options.getCallLink(message.event.call, { startTime });
|
|
562
|
+
m.eventMessage.joinLink = (message.event.call === 'audio' ? CALL_AUDIO_PREFIX : CALL_VIDEO_PREFIX) + token;
|
|
563
|
+
}
|
|
480
564
|
m.messageContextInfo = {
|
|
481
|
-
|
|
565
|
+
// encKey
|
|
566
|
+
messageSecret: message.event.messageSecret || randomBytes(32)
|
|
482
567
|
};
|
|
483
|
-
m.eventMessage =
|
|
568
|
+
m.eventMessage.name = message.event.name;
|
|
569
|
+
m.eventMessage.description = message.event.description;
|
|
570
|
+
m.eventMessage.startTime = startTime;
|
|
571
|
+
m.eventMessage.endTime = message.event.endDate ? message.event.endDate.getTime() / 1000 : undefined;
|
|
572
|
+
m.eventMessage.isCanceled = message.event.isCancelled ?? false;
|
|
573
|
+
m.eventMessage.extraGuestsAllowed = message.event.extraGuestsAllowed;
|
|
574
|
+
m.eventMessage.isScheduleCall = message.event.isScheduleCall ?? false;
|
|
575
|
+
m.eventMessage.location = message.event.location;
|
|
484
576
|
}
|
|
485
577
|
else if ('inviteAdmin' in message) {
|
|
486
578
|
m.newsletterAdminInviteMessage = {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBinaryNodeMessages = exports.reduceBinaryNodeToDictionary = exports.assertNodeErrorFree = exports.getBinaryNodeChildUInt = exports.getBinaryNodeChildString = exports.getBinaryNodeChildBuffer = exports.getBinaryNodeChild = exports.getAllBinaryNodeChildren = exports.getBinaryNodeChildren = void 0;
|
|
3
|
+
exports.getBinaryNodeFilter = exports.getBinaryFilteredBizBot = exports.getBinaryNodeMessages = exports.reduceBinaryNodeToDictionary = exports.assertNodeErrorFree = exports.getBinaryNodeChildUInt = exports.getBinaryNodeChildString = exports.getBinaryNodeChildBuffer = exports.getBinaryNodeChild = exports.getAllBinaryNodeChildren = exports.getBinaryNodeChildren = void 0;
|
|
4
4
|
exports.binaryNodeToString = binaryNodeToString;
|
|
5
5
|
const boom_1 = require("@hapi/boom");
|
|
6
6
|
const WAProto_1 = require("../../WAProto");
|
|
@@ -109,6 +109,17 @@ function binaryNodeToString(node, i = 0) {
|
|
|
109
109
|
return tag + content;
|
|
110
110
|
}
|
|
111
111
|
exports.binaryNodeToString = binaryNodeToString;
|
|
112
|
+
const getBinaryNodeFilter = (node) => {
|
|
113
|
+
if (!Array.isArray(node)) return false
|
|
114
|
+
|
|
115
|
+
return node.some(item =>
|
|
116
|
+
['native_flow'].includes(item?.content?.[0]?.content?.[0]?.tag) ||
|
|
117
|
+
['interactive', 'buttons', 'list'].includes(item?.content?.[0]?.tag) ||
|
|
118
|
+
['hsm', 'biz'].includes(item?.tag) ||
|
|
119
|
+
['bot'].includes(item?.tag) && item?.attrs?.biz_bot === '1'
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
exports.getBinaryNodeFilter = getBinaryNodeFilter;
|
|
112
123
|
const getBinaryFilteredBizBot = (nodeContent) => {
|
|
113
124
|
if (!Array.isArray(nodeContent)) return false
|
|
114
125
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elrayyxml/baileys",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Baileys Modified ElrayyXml",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"baileys",
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"multi-device"
|
|
17
17
|
],
|
|
18
18
|
"homepage": "https://www.npmjs.com/package/@elrayyxml/baileys",
|
|
19
|
+
"repository": {
|
|
20
|
+
"url": "https://www.npmjs.com/package/@elrayyxml/baileys"
|
|
21
|
+
},
|
|
19
22
|
"license": "MIT",
|
|
20
23
|
"author": "ElrayyXml",
|
|
21
24
|
"main": "lib/index.js",
|
|
@@ -53,7 +56,6 @@
|
|
|
53
56
|
"cheerio": "^1.0.0-rc.10",
|
|
54
57
|
"jimp": "^0.16.1",
|
|
55
58
|
"libphonenumber-js": "^1.10.20",
|
|
56
|
-
"link-preview-js": "^3.0.0",
|
|
57
59
|
"libsignal": "github:ElrayyXml/signal-node",
|
|
58
60
|
"lodash": "^4.17.21",
|
|
59
61
|
"music-metadata": "^7.12.3",
|
|
@@ -117,11 +119,3 @@
|
|
|
117
119
|
"lib": "lib"
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
package/README.MD
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
[](#table-of-contents)
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
|
|
5
|
-
### @elrayyxml/baileys
|
|
6
|
-
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
[](#table-of-contents)
|
|
10
|
-
|
|
11
|
-
<div align="center">
|
|
12
|
-
|
|
13
|
-
<p><em>Baileys Modified</em></p>
|
|
14
|
-
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
<img src="https://files.catbox.moe/7m4cuw.jpg" width="300" alt="Cover Banner" />
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
- [x] Support Hosting (cPanel, Plesk, DirectAdmin, cyberPanel)
|
|
22
|
-
- [x] No Need For FFMPEG
|
|
23
|
-
- [x] Libsignal Updated
|
|
24
|
-
- [x] No Spam Console
|
|
25
|
-
- [x] Support send channel
|
|
26
|
-
- [x] Fix LID and Native LID
|
|
27
|
-
- [x] Support button
|
|
28
|
-
- [x] Fix Pairing
|
|
29
|
-
- [x] AI Private
|
|
30
|
-
- [x] Support Group SW and Album
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<div align="center">
|
|
34
|
-
|
|
35
|
-
[](https://www.npmjs.com/package/@elrayyxml/baileys)
|
|
36
|
-
[](https://opensource.org/licenses/MIT)
|
|
37
|
-
[](https://whatsapp.com)
|
|
38
|
-
[](https://nodejs.org)
|
|
39
|
-
[](https://www.npmjs.com/package/@elrayyxml/baileys)
|
|
40
|
-
[](https://api.elrayyxml.web.id)
|
|
41
|
-
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
### Installation
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npm install @elrayyxml/baileys
|
|
48
|
-
# or
|
|
49
|
-
yarn add @elrayyxml/baileys
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### `package.json` Fork Baileys
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
"dependencies": {
|
|
56
|
-
"baileys": "npm:@elrayyxml/baileys"
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Contact
|
|
61
|
-
|
|
62
|
-
<div align="center">
|
|
63
|
-
|
|
64
|
-
[](https://instagram.com/elrayyxml)
|
|
65
|
-
[](https://tik-tok.com/@elrayyxml)
|
|
66
|
-
[](mailto:elrayy68@gmail.com)
|
|
67
|
-
[](https://wa.me/6289526377530)
|
|
68
|
-
|
|
69
|
-
</div>
|
|
70
|
-
|
|
71
|
-
### Official Channel
|
|
72
|
-
|
|
73
|
-
<div align="center">
|
|
74
|
-
<a href="https://whatsapp.com/channel/0029Vb69z8n1dAvztHQTDu3r">
|
|
75
|
-
<img src="https://img.shields.io/badge/Join-WhatsApp%20Channel-25D366?logo=whatsapp&logoColor=white" alt="WhatsApp Channel" />
|
|
76
|
-
</a>
|
|
77
|
-
|
|
78
|
-
</div>
|