@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.
@@ -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-' + hash.toString('hex').toUpperCase().substring(0, 15);
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-' + (0, crypto_1.randomBytes)(15).toString('hex').toUpperCase();
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) => {
@@ -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: "𓅯 ᴇʟʀᴀʏʏxᴍʟ ɴᴏᴛɪꜰɪᴇʀ 🫟",
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
- messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
565
+ // encKey
566
+ messageSecret: message.event.messageSecret || randomBytes(32)
482
567
  };
483
- m.eventMessage = { ...message.event };
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.2",
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
- [![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#table-of-contents)
2
-
3
- <div align="center">
4
-
5
- ### @elrayyxml/baileys
6
-
7
- </div>
8
-
9
- [![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#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
- [![npm version](https://img.shields.io/npm/v/@elrayyxml/baileys.svg)](https://www.npmjs.com/package/@elrayyxml/baileys)
36
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
37
- [![WhatsApp](https://img.shields.io/badge/WhatsApp-API-green.svg?logo=whatsapp)](https://whatsapp.com)
38
- [![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org)
39
- [![npm downloads](https://img.shields.io/npm/dt/@elrayyxml/baileys.svg?color=blueviolet&label=Downloads&logo=npm)](https://www.npmjs.com/package/@elrayyxml/baileys)
40
- [![REST API](https://img.shields.io/badge/REST_API-green.svg)](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
- [![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://instagram.com/elrayyxml)
65
- [![TikTok](https://img.shields.io/badge/TikTok-000000?style=for-the-badge&logo=tiktok&logoColor=white)](https://tik-tok.com/@elrayyxml)
66
- [![Email](https://img.shields.io/badge/Email-elrayy68@gmail.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:elrayy68@gmail.com)
67
- [![WhatsApp](https://img.shields.io/badge/WhatsApp-6289526377530-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](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>