@kyynotdevv/baileys 2.0.3

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 (195) hide show
  1. package/README.md +307 -0
  2. package/WAProto/engine-requirements.js +10 -0
  3. package/WAProto/index.js +97650 -0
  4. package/engine-requirements.js +10 -0
  5. package/lib/Defaults/baileys-version.json +3 -0
  6. package/lib/Defaults/index.d.ts +53 -0
  7. package/lib/Defaults/index.js +147 -0
  8. package/lib/Defaults/phonenumber-mcc.json +223 -0
  9. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  10. package/lib/Signal/Group/ciphertext-message.js +15 -0
  11. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  12. package/lib/Signal/Group/group-session-builder.js +64 -0
  13. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  14. package/lib/Signal/Group/group_cipher.js +96 -0
  15. package/lib/Signal/Group/index.d.ts +11 -0
  16. package/lib/Signal/Group/index.js +57 -0
  17. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  18. package/lib/Signal/Group/keyhelper.js +55 -0
  19. package/lib/Signal/Group/queue-job.d.ts +1 -0
  20. package/lib/Signal/Group/queue-job.js +57 -0
  21. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  22. package/lib/Signal/Group/sender-chain-key.js +34 -0
  23. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  24. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  25. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  26. package/lib/Signal/Group/sender-key-message.js +69 -0
  27. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  28. package/lib/Signal/Group/sender-key-name.js +51 -0
  29. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  30. package/lib/Signal/Group/sender-key-record.js +53 -0
  31. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  32. package/lib/Signal/Group/sender-key-state.js +99 -0
  33. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  34. package/lib/Signal/Group/sender-message-key.js +29 -0
  35. package/lib/Signal/libsignal.d.ts +3 -0
  36. package/lib/Signal/libsignal.js +174 -0
  37. package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
  38. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  39. package/lib/Socket/Client/index.d.ts +3 -0
  40. package/lib/Socket/Client/index.js +19 -0
  41. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  42. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  43. package/lib/Socket/Client/web-socket-client.d.ts +12 -0
  44. package/lib/Socket/Client/web-socket-client.js +62 -0
  45. package/lib/Socket/business.d.ts +171 -0
  46. package/lib/Socket/business.js +260 -0
  47. package/lib/Socket/chats.d.ts +267 -0
  48. package/lib/Socket/chats.js +970 -0
  49. package/lib/Socket/dugong.d.ts +254 -0
  50. package/lib/Socket/dugong.js +484 -0
  51. package/lib/Socket/groups.d.ts +115 -0
  52. package/lib/Socket/groups.js +380 -0
  53. package/lib/Socket/index.d.ts +173 -0
  54. package/lib/Socket/index.js +11 -0
  55. package/lib/Socket/messages-recv.d.ts +161 -0
  56. package/lib/Socket/messages-recv.js +1110 -0
  57. package/lib/Socket/messages-send.d.ts +149 -0
  58. package/lib/Socket/messages-send.js +909 -0
  59. package/lib/Socket/newsletter.d.ts +134 -0
  60. package/lib/Socket/newsletter.js +354 -0
  61. package/lib/Socket/registration.d.ts +267 -0
  62. package/lib/Socket/registration.js +166 -0
  63. package/lib/Socket/socket.d.ts +43 -0
  64. package/lib/Socket/socket.js +665 -0
  65. package/lib/Socket/usync.d.ts +36 -0
  66. package/lib/Socket/usync.js +70 -0
  67. package/lib/Store/index.d.ts +3 -0
  68. package/lib/Store/index.js +10 -0
  69. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  70. package/lib/Store/make-cache-manager-store.js +83 -0
  71. package/lib/Store/make-in-memory-store.d.ts +118 -0
  72. package/lib/Store/make-in-memory-store.js +427 -0
  73. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  74. package/lib/Store/make-ordered-dictionary.js +81 -0
  75. package/lib/Store/object-repository.d.ts +10 -0
  76. package/lib/Store/object-repository.js +27 -0
  77. package/lib/Types/Auth.d.ts +110 -0
  78. package/lib/Types/Auth.js +2 -0
  79. package/lib/Types/Call.d.ts +13 -0
  80. package/lib/Types/Call.js +2 -0
  81. package/lib/Types/Chat.d.ts +102 -0
  82. package/lib/Types/Chat.js +4 -0
  83. package/lib/Types/Contact.d.ts +19 -0
  84. package/lib/Types/Contact.js +2 -0
  85. package/lib/Types/Events.d.ts +157 -0
  86. package/lib/Types/Events.js +2 -0
  87. package/lib/Types/GroupMetadata.d.ts +55 -0
  88. package/lib/Types/GroupMetadata.js +2 -0
  89. package/lib/Types/Label.d.ts +35 -0
  90. package/lib/Types/Label.js +27 -0
  91. package/lib/Types/LabelAssociation.d.ts +29 -0
  92. package/lib/Types/LabelAssociation.js +9 -0
  93. package/lib/Types/Message.d.ts +273 -0
  94. package/lib/Types/Message.js +9 -0
  95. package/lib/Types/Newsletter.d.ts +103 -0
  96. package/lib/Types/Newsletter.js +38 -0
  97. package/lib/Types/Product.d.ts +78 -0
  98. package/lib/Types/Product.js +2 -0
  99. package/lib/Types/Signal.d.ts +57 -0
  100. package/lib/Types/Signal.js +2 -0
  101. package/lib/Types/Socket.d.ts +111 -0
  102. package/lib/Types/Socket.js +2 -0
  103. package/lib/Types/State.d.ts +27 -0
  104. package/lib/Types/State.js +2 -0
  105. package/lib/Types/USync.d.ts +25 -0
  106. package/lib/Types/USync.js +2 -0
  107. package/lib/Types/index.d.ts +57 -0
  108. package/lib/Types/index.js +42 -0
  109. package/lib/Utils/auth-utils.d.ts +18 -0
  110. package/lib/Utils/auth-utils.js +206 -0
  111. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  112. package/lib/Utils/baileys-event-stream.js +63 -0
  113. package/lib/Utils/business.d.ts +22 -0
  114. package/lib/Utils/business.js +234 -0
  115. package/lib/Utils/chat-utils.d.ts +71 -0
  116. package/lib/Utils/chat-utils.js +729 -0
  117. package/lib/Utils/crypto.d.ts +41 -0
  118. package/lib/Utils/crypto.js +151 -0
  119. package/lib/Utils/decode-wa-message.d.ts +19 -0
  120. package/lib/Utils/decode-wa-message.js +198 -0
  121. package/lib/Utils/event-buffer.d.ts +35 -0
  122. package/lib/Utils/event-buffer.js +514 -0
  123. package/lib/Utils/generics.d.ts +92 -0
  124. package/lib/Utils/generics.js +423 -0
  125. package/lib/Utils/history.d.ts +15 -0
  126. package/lib/Utils/history.js +96 -0
  127. package/lib/Utils/index.d.ts +17 -0
  128. package/lib/Utils/index.js +33 -0
  129. package/lib/Utils/link-preview.d.ts +21 -0
  130. package/lib/Utils/link-preview.js +93 -0
  131. package/lib/Utils/logger.d.ts +4 -0
  132. package/lib/Utils/logger.js +7 -0
  133. package/lib/Utils/lt-hash.d.ts +12 -0
  134. package/lib/Utils/lt-hash.js +51 -0
  135. package/lib/Utils/make-mutex.d.ts +7 -0
  136. package/lib/Utils/make-mutex.js +43 -0
  137. package/lib/Utils/messages-media.d.ts +116 -0
  138. package/lib/Utils/messages-media.js +819 -0
  139. package/lib/Utils/messages.d.ts +77 -0
  140. package/lib/Utils/messages.js +816 -0
  141. package/lib/Utils/noise-handler.d.ts +21 -0
  142. package/lib/Utils/noise-handler.js +155 -0
  143. package/lib/Utils/process-message.d.ts +41 -0
  144. package/lib/Utils/process-message.js +321 -0
  145. package/lib/Utils/signal.d.ts +32 -0
  146. package/lib/Utils/signal.js +153 -0
  147. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  148. package/lib/Utils/use-multi-file-auth-state.js +119 -0
  149. package/lib/Utils/validate-connection.d.ts +11 -0
  150. package/lib/Utils/validate-connection.js +229 -0
  151. package/lib/WABinary/constants.d.ts +30 -0
  152. package/lib/WABinary/constants.js +40 -0
  153. package/lib/WABinary/decode.d.ts +7 -0
  154. package/lib/WABinary/decode.js +252 -0
  155. package/lib/WABinary/encode.d.ts +3 -0
  156. package/lib/WABinary/encode.js +265 -0
  157. package/lib/WABinary/generic-utils.d.ts +17 -0
  158. package/lib/WABinary/generic-utils.js +198 -0
  159. package/lib/WABinary/index.d.ts +5 -0
  160. package/lib/WABinary/index.js +21 -0
  161. package/lib/WABinary/jid-utils.d.ts +31 -0
  162. package/lib/WABinary/jid-utils.js +62 -0
  163. package/lib/WABinary/types.d.ts +18 -0
  164. package/lib/WABinary/types.js +2 -0
  165. package/lib/WAM/BinaryInfo.d.ts +17 -0
  166. package/lib/WAM/BinaryInfo.js +13 -0
  167. package/lib/WAM/constants.d.ts +38 -0
  168. package/lib/WAM/constants.js +15350 -0
  169. package/lib/WAM/encode.d.ts +3 -0
  170. package/lib/WAM/encode.js +155 -0
  171. package/lib/WAM/index.d.ts +3 -0
  172. package/lib/WAM/index.js +19 -0
  173. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  174. package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
  175. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  176. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  177. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  178. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  179. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  180. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  181. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +25 -0
  182. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +53 -0
  183. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +8 -0
  184. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +24 -0
  185. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  186. package/lib/WAUSync/Protocols/index.js +20 -0
  187. package/lib/WAUSync/USyncQuery.d.ts +28 -0
  188. package/lib/WAUSync/USyncQuery.js +89 -0
  189. package/lib/WAUSync/USyncUser.d.ts +12 -0
  190. package/lib/WAUSync/USyncUser.js +26 -0
  191. package/lib/WAUSync/index.d.ts +3 -0
  192. package/lib/WAUSync/index.js +19 -0
  193. package/lib/index.d.ts +12 -0
  194. package/lib/index.js +68 -0
  195. package/package.json +103 -0
package/README.md ADDED
@@ -0,0 +1,307 @@
1
+ <div align="center">
2
+
3
+ <img src="https://files.catbox.moe/zcl82b.jpg" alt="WhatsApp Baileys Edgar" width="100%" />
4
+
5
+ <br/>
6
+ <br/>
7
+
8
+ # WhatsApp Baileys Edgar
9
+
10
+ <p>
11
+ <img src="https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white" />
12
+ <img src="https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white" />
13
+ <img src="https://img.shields.io/badge/WebSocket-010101?style=for-the-badge&logo=socketdotio&logoColor=white" />
14
+ <img src="https://img.shields.io/badge/Open%20Source-FF4500?style=for-the-badge&logo=github&logoColor=white" />
15
+ <img src="https://img.shields.io/badge/license-MIT-blue?style=for-the-badge" />
16
+ </p>
17
+
18
+ **Open-source WhatsApp automation library \u2014 no browser required.**
19
+ Built on WebSocket for speed, stability, and full multi-device support.
20
+
21
+ <br/>
22
+
23
+ [Installation](#getting-started) &nbsp;\u2022&nbsp; [Documentation](#sendmessage-documentation) &nbsp;\u2022&nbsp; [Features](#main-features) &nbsp;\u2022&nbsp; [Telegram](https://t.me/edgar)
24
+
25
+ </div>
26
+
27
+ ---
28
+
29
+ ## What is Baileys Edgar?
30
+
31
+ **WhatsApp Baileys Edgar** is a powerful, open-source library for developers who need reliable WhatsApp automation without the overhead of a browser. Powered by **WebSocket technology**, it supports message management, group administration, interactive messages, and action buttons \u2014 all in a lightweight and modular package.
32
+
33
+ Actively maintained with continuous improvements to **pairing stability**, **session management**, and **WhatsApp multi-device compatibility**.
34
+
35
+ Perfect for:
36
+ - Business bots & chat automation
37
+ - Customer service systems
38
+ - Broadcast & notification tools
39
+ - E-commerce integrations
40
+
41
+ ---
42
+
43
+ ## Main Features
44
+
45
+ | Feature | Description |
46
+ |---|---|
47
+ | **Custom Pairing** | Stable pairing with your own codes \u2014 no disconnection issues |
48
+ | **Interactive Messages** | Buttons, menus, native flows, and more |
49
+ | **Session Management** | Automatic, efficient, and long-term stable |
50
+ | **Multi-Device Support** | Fully compatible with WhatsApp's latest multi-device API |
51
+ | **Lightweight & Modular** | Easy to integrate into any Node.js project |
52
+ | **Rich Documentation** | Comprehensive guides and example code included |
53
+ | **Secure Auth** | Improved authentication flow with fixed prior vulnerabilities |
54
+
55
+ ---
56
+
57
+ ## Getting Started
58
+
59
+ Install via npm or yarn:
60
+
61
+ ```bash
62
+ npm install @whiskeysockets/baileys
63
+ # or
64
+ yarn add @whiskeysockets/baileys
65
+ ```
66
+
67
+ Then import and initialize:
68
+
69
+ ```javascript
70
+ const { makeWASocket, useMultiFileAuthState } = require("@whiskeysockets/baileys");
71
+
72
+ const { state, saveCreds } = await useMultiFileAuthState("auth_info");
73
+ const sock = makeWASocket({ auth: state });
74
+
75
+ sock.ev.on("creds.update", saveCreds);
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Additional Functions
81
+
82
+ ### Get Channel ID
83
+ ```javascript
84
+ await sock.newsletterId(url);
85
+ ```
86
+
87
+ ### Check Banned Number
88
+ ```javascript
89
+ await sock.checkWhatsApp(target);
90
+ ```
91
+
92
+ ---
93
+
94
+ ## SendMessage Documentation
95
+
96
+ <details>
97
+ <summary><b>Group Status Message (V2)</b></summary>
98
+ <br/>
99
+
100
+ ```javascript
101
+ await sock.sendMessage(target, {
102
+ groupStatusMessage: {
103
+ text: "Hello World"
104
+ }
105
+ });
106
+ ```
107
+ </details>
108
+
109
+ <details>
110
+ <summary><b>Album Message (Multiple Images)</b></summary>
111
+ <br/>
112
+
113
+ ```javascript
114
+ await sock.sendMessage(target, {
115
+ albumMessage: [
116
+ { image: cihuy, caption: "First photo" },
117
+ { image: { url: "IMAGE_URL" }, caption: "Second photo" }
118
+ ]
119
+ }, { quoted: m });
120
+ ```
121
+ </details>
122
+
123
+ <details>
124
+ <summary><b>Event Message</b></summary>
125
+ <br/>
126
+
127
+ ```javascript
128
+ await sock.sendMessage(target, {
129
+ eventMessage: {
130
+ isCanceled: false,
131
+ name: "Event Name",
132
+ description: "Event description here",
133
+ location: {
134
+ degreesLatitude: 0,
135
+ degreesLongitude: 0,
136
+ name: "Location Name"
137
+ },
138
+ joinLink: "https://call.whatsapp.com/video/example",
139
+ startTime: "1763019000",
140
+ endTime: "1763026200",
141
+ extraGuestsAllowed: false
142
+ }
143
+ }, { quoted: m });
144
+ ```
145
+ </details>
146
+
147
+ <details>
148
+ <summary><b>Poll Result Message</b></summary>
149
+ <br/>
150
+
151
+ ```javascript
152
+ await sock.sendMessage(target, {
153
+ pollResultMessage: {
154
+ name: "Poll Title",
155
+ pollVotes: [
156
+ { optionName: "Option A", optionVoteCount: "112233" },
157
+ { optionName: "Option B", optionVoteCount: "1" }
158
+ ]
159
+ }
160
+ }, { quoted: m });
161
+ ```
162
+ </details>
163
+
164
+ <details>
165
+ <summary><b>Simple Interactive Message</b></summary>
166
+ <br/>
167
+
168
+ ```javascript
169
+ await sock.sendMessage(target, {
170
+ interactiveMessage: {
171
+ header: "Hello World",
172
+ title: "Hello World",
173
+ footer: "telegram: @edgar",
174
+ buttons: [
175
+ {
176
+ name: "cta_copy",
177
+ buttonParamsJson: JSON.stringify({
178
+ display_text: "Copy Code",
179
+ id: "123456789",
180
+ copy_code: "ABC123XYZ"
181
+ })
182
+ }
183
+ ]
184
+ }
185
+ }, { quoted: m });
186
+ ```
187
+ </details>
188
+
189
+ <details>
190
+ <summary><b>Interactive Message with Native Flow</b></summary>
191
+ <br/>
192
+
193
+ ```javascript
194
+ await sock.sendMessage(target, {
195
+ interactiveMessage: {
196
+ header: "Hello World",
197
+ title: "Hello World",
198
+ footer: "telegram: @edgar",
199
+ image: { url: "https://example.com/image.jpg" },
200
+ nativeFlowMessage: {
201
+ messageParamsJson: JSON.stringify({
202
+ limited_time_offer: {
203
+ text: "Limited offer text",
204
+ url: "https://t.me/edgar",
205
+ copy_code: "PROMO2024",
206
+ expiration_time: Date.now() * 999
207
+ },
208
+ bottom_sheet: {
209
+ in_thread_buttons_limit: 2,
210
+ divider_indices: [1, 2, 3, 4, 5, 999],
211
+ list_title: "List Title",
212
+ button_title: "Button Title"
213
+ },
214
+ tap_target_configuration: {
215
+ title: "Title",
216
+ description: "Description text",
217
+ canonical_url: "https://t.me/edgar",
218
+ domain: "shop.example.com",
219
+ button_index: 0
220
+ }
221
+ }),
222
+ buttons: [
223
+ {
224
+ name: "single_select",
225
+ buttonParamsJson: JSON.stringify({ has_multiple_buttons: true })
226
+ },
227
+ {
228
+ name: "call_permission_request",
229
+ buttonParamsJson: JSON.stringify({ has_multiple_buttons: true })
230
+ },
231
+ {
232
+ name: "single_select",
233
+ buttonParamsJson: JSON.stringify({
234
+ title: "Select an Option",
235
+ sections: [
236
+ {
237
+ title: "Section Title",
238
+ highlight_label: "Label",
239
+ rows: [
240
+ {
241
+ title: "Row Title",
242
+ description: "Row description",
243
+ id: "row_1"
244
+ }
245
+ ]
246
+ }
247
+ ],
248
+ has_multiple_buttons: true
249
+ })
250
+ },
251
+ {
252
+ name: "cta_copy",
253
+ buttonParamsJson: JSON.stringify({
254
+ display_text: "Copy Code",
255
+ id: "123456789",
256
+ copy_code: "ABC123XYZ"
257
+ })
258
+ }
259
+ ]
260
+ }
261
+ }
262
+ }, { quoted: m });
263
+ ```
264
+ </details>
265
+
266
+ <details>
267
+ <summary><b>Interactive Message with Thumbnail</b></summary>
268
+ <br/>
269
+
270
+ ```javascript
271
+ await sock.sendMessage(target, {
272
+ interactiveMessage: {
273
+ header: "Hello World",
274
+ title: "Hello World",
275
+ footer: "telegram: @edgar",
276
+ image: { url: "https://example.com/image.jpg" },
277
+ buttons: [
278
+ {
279
+ name: "cta_copy",
280
+ buttonParamsJson: JSON.stringify({
281
+ display_text: "Copy Code",
282
+ id: "123456789",
283
+ copy_code: "ABC123XYZ"
284
+ })
285
+ }
286
+ ]
287
+ }
288
+ }, { quoted: m });
289
+ ```
290
+ </details>
291
+
292
+ <details>
293
+ <summary><b>Product Message</b></summary>
294
+ <br/>
295
+
296
+ ```javascript
297
+ await sock.sendMessage(target, {
298
+ productMessage: {
299
+ title: "Sample Product",
300
+ description: "This is the product description.",
301
+ thumbnail: { url: "https://example.com/image.jpg" },
302
+ productId: "PROD001",
303
+ retailerId: "RETAIL001",
304
+ url: "https://example.com/product",
305
+ body: "Product details",
306
+ footer: "Special price",
307
+ pr
@@ -0,0 +1,10 @@
1
+ const major = parseInt(process.versions.node.split('.')[0], 10);
2
+
3
+ if (major < 20) {
4
+ console.error(
5
+ `\n❌ This package requires Node.js 20+ to run reliably.\n` +
6
+ ` You are using Node.js ${process.versions.node}.\n` +
7
+ ` Please upgrade to Node.js 20+ to proceed.\n`
8
+ );
9
+ process.exit(1);
10
+ }