@alannxd/baileys 6.0.6 → 6.0.9

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 (220) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +341 -286
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +6902 -0
  5. package/WAProto/fix-imports.js +85 -0
  6. package/WAProto/index.d.ts +79257 -0
  7. package/WAProto/index.js +205861 -60565
  8. package/engine-requirements.js +1 -1
  9. package/lib/Defaults/index.js +119 -136
  10. package/lib/Signal/Group/ciphertext-message.js +2 -5
  11. package/lib/Signal/Group/group-session-builder.js +7 -41
  12. package/lib/Signal/Group/group_cipher.js +37 -51
  13. package/lib/Signal/Group/index.js +12 -57
  14. package/lib/Signal/Group/keyhelper.js +7 -44
  15. package/lib/Signal/Group/sender-chain-key.js +7 -15
  16. package/lib/Signal/Group/sender-key-distribution-message.js +8 -11
  17. package/lib/Signal/Group/sender-key-message.js +9 -12
  18. package/lib/Signal/Group/sender-key-name.js +2 -5
  19. package/lib/Signal/Group/sender-key-record.js +9 -21
  20. package/lib/Signal/Group/sender-key-state.js +27 -42
  21. package/lib/Signal/Group/sender-message-key.js +4 -7
  22. package/lib/Signal/libsignal.js +347 -90
  23. package/lib/Signal/lid-mapping.js +277 -0
  24. package/lib/Socket/Client/index.js +3 -19
  25. package/lib/Socket/Client/types.js +11 -0
  26. package/lib/Socket/Client/websocket.js +54 -0
  27. package/lib/Socket/business.js +162 -43
  28. package/lib/Socket/chats.js +627 -427
  29. package/lib/Socket/communities.js +90 -80
  30. package/lib/Socket/groups.js +154 -161
  31. package/lib/Socket/index.js +11 -10
  32. package/lib/Socket/luxu.js +315 -469
  33. package/lib/Socket/messages-recv.js +1421 -615
  34. package/lib/Socket/messages-send.js +1150 -799
  35. package/lib/Socket/mex.js +42 -0
  36. package/lib/Socket/newsletter.js +152 -204
  37. package/lib/Socket/socket.js +544 -313
  38. package/lib/Store/index.js +10 -10
  39. package/lib/Store/keyed-db.js +108 -0
  40. package/lib/Store/make-cache-manager-store.js +43 -41
  41. package/lib/Store/make-in-memory-store.js +112 -341
  42. package/lib/Store/make-ordered-dictionary.js +14 -20
  43. package/lib/Store/object-repository.js +11 -6
  44. package/lib/Types/Auth.js +2 -2
  45. package/lib/Types/Bussines.js +2 -0
  46. package/lib/Types/Call.js +2 -2
  47. package/lib/Types/Chat.js +8 -4
  48. package/lib/Types/Contact.js +2 -2
  49. package/lib/Types/Events.js +2 -2
  50. package/lib/Types/GroupMetadata.js +2 -2
  51. package/lib/Types/Label.js +3 -5
  52. package/lib/Types/LabelAssociation.js +3 -5
  53. package/lib/Types/Message.js +11 -9
  54. package/lib/Types/Mex.js +37 -0
  55. package/lib/Types/Product.js +2 -2
  56. package/lib/Types/Signal.js +2 -2
  57. package/lib/Types/Socket.js +3 -2
  58. package/lib/Types/State.js +56 -2
  59. package/lib/Types/USync.js +2 -2
  60. package/lib/Types/index.js +15 -31
  61. package/lib/Utils/auth-utils.js +239 -143
  62. package/lib/Utils/browser-utils.js +48 -0
  63. package/lib/Utils/business.js +66 -69
  64. package/lib/Utils/chat-utils.js +396 -253
  65. package/lib/Utils/companion-reg-client-utils.js +35 -0
  66. package/lib/Utils/crypto.js +57 -90
  67. package/lib/Utils/decode-wa-message.js +236 -84
  68. package/lib/Utils/event-buffer.js +185 -77
  69. package/lib/Utils/generics.js +189 -209
  70. package/lib/Utils/history.js +93 -55
  71. package/lib/Utils/identity-change-handler.js +50 -0
  72. package/lib/Utils/index.js +23 -33
  73. package/lib/Utils/link-preview.js +16 -24
  74. package/lib/Utils/logger.js +3 -7
  75. package/lib/Utils/lt-hash.js +3 -46
  76. package/lib/Utils/make-mutex.js +24 -34
  77. package/lib/Utils/message-composer.js +273 -0
  78. package/lib/Utils/message-retry-manager.js +265 -0
  79. package/lib/Utils/messages-media.js +451 -482
  80. package/lib/Utils/messages.js +795 -369
  81. package/lib/Utils/noise-handler.js +145 -99
  82. package/lib/Utils/offline-node-processor.js +40 -0
  83. package/lib/Utils/pre-key-manager.js +106 -0
  84. package/lib/Utils/process-message.js +459 -150
  85. package/lib/Utils/reporting-utils.js +258 -0
  86. package/lib/Utils/signal.js +120 -72
  87. package/lib/Utils/stanza-ack.js +38 -0
  88. package/lib/Utils/sync-action-utils.js +49 -0
  89. package/lib/Utils/tc-token-utils.js +163 -0
  90. package/lib/Utils/use-multi-file-auth-state.js +29 -27
  91. package/lib/Utils/validate-connection.js +73 -99
  92. package/lib/WABinary/constants.js +1281 -20
  93. package/lib/WABinary/decode.js +52 -42
  94. package/lib/WABinary/encode.js +110 -155
  95. package/lib/WABinary/generic-utils.js +55 -49
  96. package/lib/WABinary/index.js +6 -21
  97. package/lib/WABinary/jid-utils.js +76 -40
  98. package/lib/WABinary/types.js +2 -2
  99. package/lib/WAM/BinaryInfo.js +2 -5
  100. package/lib/WAM/constants.js +19071 -11568
  101. package/lib/WAM/encode.js +17 -22
  102. package/lib/WAM/index.js +4 -19
  103. package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -13
  104. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +11 -14
  105. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +9 -12
  106. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +9 -13
  107. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  108. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +20 -22
  109. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +13 -8
  110. package/lib/WAUSync/Protocols/index.js +6 -20
  111. package/lib/WAUSync/USyncQuery.js +44 -35
  112. package/lib/WAUSync/USyncUser.js +10 -5
  113. package/lib/WAUSync/index.js +4 -19
  114. package/lib/index.js +13 -36
  115. package/package.json +85 -51
  116. package/WAProto/fix-import.js +0 -29
  117. package/lib/Defaults/baileys-version.json +0 -3
  118. package/lib/Defaults/index.d.ts +0 -53
  119. package/lib/Defaults/phonenumber-mcc.json +0 -223
  120. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  121. package/lib/Signal/Group/group-session-builder.d.ts +0 -14
  122. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  123. package/lib/Signal/Group/index.d.ts +0 -11
  124. package/lib/Signal/Group/keyhelper.d.ts +0 -10
  125. package/lib/Signal/Group/queue-job.d.ts +0 -1
  126. package/lib/Signal/Group/queue-job.js +0 -57
  127. package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
  128. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
  129. package/lib/Signal/Group/sender-key-message.d.ts +0 -18
  130. package/lib/Signal/Group/sender-key-name.d.ts +0 -17
  131. package/lib/Signal/Group/sender-key-record.d.ts +0 -30
  132. package/lib/Signal/Group/sender-key-state.d.ts +0 -38
  133. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  134. package/lib/Signal/libsignal.d.ts +0 -3
  135. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  136. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  137. package/lib/Socket/Client/index.d.ts +0 -3
  138. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  139. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  140. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  141. package/lib/Socket/Client/web-socket-client.js +0 -62
  142. package/lib/Socket/business.d.ts +0 -171
  143. package/lib/Socket/chats.d.ts +0 -267
  144. package/lib/Socket/communities.d.ts +0 -180
  145. package/lib/Socket/groups.d.ts +0 -115
  146. package/lib/Socket/index.d.ts +0 -173
  147. package/lib/Socket/luxu.d.ts +0 -266
  148. package/lib/Socket/messages-recv.d.ts +0 -161
  149. package/lib/Socket/messages-send.d.ts +0 -183
  150. package/lib/Socket/newsletter.d.ts +0 -134
  151. package/lib/Socket/registration.d.ts +0 -267
  152. package/lib/Socket/registration.js +0 -166
  153. package/lib/Socket/socket.d.ts +0 -44
  154. package/lib/Socket/usync.d.ts +0 -36
  155. package/lib/Socket/usync.js +0 -70
  156. package/lib/Store/index.d.ts +0 -3
  157. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  158. package/lib/Store/make-in-memory-store.d.ts +0 -118
  159. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  160. package/lib/Store/object-repository.d.ts +0 -10
  161. package/lib/Types/Auth.d.ts +0 -110
  162. package/lib/Types/Call.d.ts +0 -13
  163. package/lib/Types/Chat.d.ts +0 -102
  164. package/lib/Types/Contact.d.ts +0 -19
  165. package/lib/Types/Events.d.ts +0 -157
  166. package/lib/Types/GroupMetadata.d.ts +0 -55
  167. package/lib/Types/Label.d.ts +0 -35
  168. package/lib/Types/LabelAssociation.d.ts +0 -29
  169. package/lib/Types/Message.d.ts +0 -273
  170. package/lib/Types/Newsletter.d.ts +0 -103
  171. package/lib/Types/Newsletter.js +0 -38
  172. package/lib/Types/Product.d.ts +0 -78
  173. package/lib/Types/Signal.d.ts +0 -57
  174. package/lib/Types/Socket.d.ts +0 -111
  175. package/lib/Types/State.d.ts +0 -27
  176. package/lib/Types/USync.d.ts +0 -25
  177. package/lib/Types/index.d.ts +0 -57
  178. package/lib/Utils/auth-utils.d.ts +0 -18
  179. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  180. package/lib/Utils/baileys-event-stream.js +0 -63
  181. package/lib/Utils/business.d.ts +0 -22
  182. package/lib/Utils/chat-utils.d.ts +0 -71
  183. package/lib/Utils/crypto.d.ts +0 -41
  184. package/lib/Utils/decode-wa-message.d.ts +0 -19
  185. package/lib/Utils/event-buffer.d.ts +0 -35
  186. package/lib/Utils/generics.d.ts +0 -92
  187. package/lib/Utils/history.d.ts +0 -15
  188. package/lib/Utils/index.d.ts +0 -17
  189. package/lib/Utils/link-preview.d.ts +0 -21
  190. package/lib/Utils/logger.d.ts +0 -4
  191. package/lib/Utils/lt-hash.d.ts +0 -12
  192. package/lib/Utils/make-mutex.d.ts +0 -7
  193. package/lib/Utils/messages-media.d.ts +0 -116
  194. package/lib/Utils/messages.d.ts +0 -77
  195. package/lib/Utils/noise-handler.d.ts +0 -21
  196. package/lib/Utils/process-message.d.ts +0 -41
  197. package/lib/Utils/signal.d.ts +0 -32
  198. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  199. package/lib/Utils/validate-connection.d.ts +0 -11
  200. package/lib/WABinary/constants.d.ts +0 -30
  201. package/lib/WABinary/decode.d.ts +0 -7
  202. package/lib/WABinary/encode.d.ts +0 -3
  203. package/lib/WABinary/generic-utils.d.ts +0 -17
  204. package/lib/WABinary/index.d.ts +0 -5
  205. package/lib/WABinary/jid-utils.d.ts +0 -31
  206. package/lib/WABinary/types.d.ts +0 -18
  207. package/lib/WAM/BinaryInfo.d.ts +0 -17
  208. package/lib/WAM/constants.d.ts +0 -38
  209. package/lib/WAM/encode.d.ts +0 -3
  210. package/lib/WAM/index.d.ts +0 -3
  211. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  212. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  213. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  214. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  215. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
  216. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
  217. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  218. package/lib/WAUSync/USyncQuery.d.ts +0 -28
  219. package/lib/WAUSync/USyncUser.d.ts +0 -12
  220. package/lib/index.d.ts +0 -12
package/README.md CHANGED
@@ -45,364 +45,419 @@ Begin by installing the library via your preferred package manager, then follow
45
45
 
46
46
  ## Add Function ( Simple code )
47
47
 
48
- ### Label Group
49
- Tag/Label Member Grop
48
+ # AlannXD Baileys
49
+
50
+ Simple WhatsApp Web API Library Based On Baileys.
51
+
52
+ ---
53
+
54
+ # Installation
55
+
56
+ ### Install Package
57
+
58
+ Install package using npm.
59
+
60
+ ```bash
61
+ npm install @alannxd/baileys
62
+ ```
63
+
64
+ ---
65
+
66
+ # Import
67
+
68
+ ### CommonJS
69
+
70
+ Import package using require.
71
+
72
+ ```javascript
73
+ const {
74
+ default: makeWASocket
75
+ } = require("@alannxd/baileys");
76
+ ```
77
+
78
+ ---
79
+
80
+ ### ES Module
81
+
82
+ Import package using ES Module.
83
+
84
+ ```javascript
85
+ import makeWASocket from "@alannxd/baileys";
86
+ ```
87
+
88
+ ---
89
+
90
+ # Connection Documentation
91
+
92
+ ### Connect With QR Code
93
+
94
+ Connect WhatsApp using QR authentication.
95
+
96
+ ```javascript
97
+ const {
98
+ default: makeWASocket,
99
+ Browsers
100
+ } = require("@alannxd/baileys");
101
+
102
+ const client = makeWASocket({
103
+ browser: Browsers.ubuntu("Chrome"),
104
+ printQRInTerminal: true
105
+ });
106
+ ```
107
+
108
+ ---
109
+
110
+ ### Connect With Pairing Code
111
+
112
+ Connect WhatsApp using phone number.
113
+
114
+ ```javascript
115
+ const {
116
+ default: makeWASocket,
117
+ Browsers,
118
+ fetchLatestWAWebVersion
119
+ } = require("@alannxd/baileys");
120
+
121
+ const client = makeWASocket({
122
+ browser: Browsers.ubuntu("Chrome"),
123
+ printQRInTerminal: false,
124
+ version: fetchLatestWAWebVersion(),
125
+ aiLabel: false
126
+ });
127
+
128
+ const code = await client.requestPairingCode("628xxxxxxxxxx");
129
+
130
+ console.log(code);
131
+ ```
132
+
133
+ ---
134
+
135
+ # Store Documentation
136
+
137
+ ### In Memory Store
138
+
139
+ Store contacts, chats and messages in memory.
140
+
141
+ ```javascript
142
+ const {
143
+ default: makeWASocket,
144
+ makeInMemoryStore
145
+ } = require("@alannxd/baileys");
146
+
147
+ const pino = require("pino");
148
+
149
+ const store = makeInMemoryStore({
150
+ logger: pino().child({
151
+ level: "silent",
152
+ stream: "store"
153
+ })
154
+ });
155
+
156
+ store.bind(client.ev);
157
+ ```
158
+
159
+ ---
160
+
161
+ # Group Documentation
162
+
163
+ ### Member Label
164
+
165
+ Send member label inside group.
50
166
 
51
167
  ```javascript
52
- sock.setLabelGroup(jid, string)
168
+ await client.sendMessage(jid, {
169
+ groupLabel: {
170
+ labelText: "Premium Member"
171
+ }
172
+ });
53
173
  ```
174
+
54
175
  ---
55
- ### Check ID Channel
56
- Get ID Channel From Url
176
+
177
+ ### Message Members
178
+
179
+ Send message to all group members.
57
180
 
58
181
  ```javascript
59
- sock.newsletterFromUrl(url)
182
+ await client.sendMessageMembers(
183
+ jid,
184
+ {
185
+ extendedTextMessage: {
186
+ text: "Hello Members"
187
+ }
188
+ },
189
+ {}
190
+ );
60
191
  ```
61
- Result JSON
192
+
193
+ ---
194
+
195
+ # Utility Documentation
196
+
197
+ ### Check Channel Information
198
+
199
+ Get newsletter information from URL.
200
+
201
+ ```javascript
202
+ client.newsletterFromUrl(url);
203
+ ```
204
+
205
+ Result:
206
+
62
207
  ```json
63
208
  {
64
- "name": "Name Channel",
65
- "id": "Channel ID",
66
- "state": "Status Channel",
67
- "subscribers": "Followers",
68
- "verification": "UNVERIFIED",
69
- "creation_time": 1728547155,
70
- "description": "Description Channel"
209
+ "name": "Channel Name",
210
+ "id": "123456789",
211
+ "state": "ACTIVE",
212
+ "subscribers": "1000",
213
+ "verification": "UNVERIFIED",
214
+ "creation_time": 1728547155,
215
+ "description": "Channel Description"
71
216
  }
72
217
  ```
218
+
73
219
  ---
74
- ### Check banned number
75
- You can see the status of blocked numbers here
220
+
221
+ ### Check WhatsApp Number
222
+
223
+ Check whether number exists on WhatsApp.
76
224
 
77
225
  ```javascript
78
- sock.checkWhatsApp(jid)
226
+ client.checkWhatsApp(jid);
79
227
  ```
228
+
80
229
  ---
81
230
 
82
- ## SendMessage Documentation
231
+ # SendMessage Documentation
232
+
233
+ ### Send Text
83
234
 
84
- ### Status Mention Group & Private Message
85
- Send Status Mention Group/Private Chat
235
+ Send text message.
86
236
 
87
237
  ```javascript
88
- await sock.sendStatusMention(content, jid);
238
+ await client.sendText(
239
+ jid,
240
+ "Hello World"
241
+ );
89
242
  ```
90
243
 
91
- ### Status Group Message V2
92
- Send Group Status With Version 2
244
+ ---
245
+
246
+ ### Send Image
247
+
248
+ Send image message.
93
249
 
94
250
  ```javascript
95
- await sock.sendMessage(jid, {
96
- groupStatusMessage: {
97
- text: "Hello World"
98
- }
99
- });
251
+ await client.sendImage(
252
+ jid,
253
+ {
254
+ url: "./image.jpg"
255
+ },
256
+ "Caption Here"
257
+ );
100
258
  ```
101
259
 
102
- ### Album Message (Multiple Images)
103
- Send multiple images in a single album message:
260
+ ---
261
+
262
+ ### Send Video
263
+
264
+ Send video message.
104
265
 
105
266
  ```javascript
106
- await sock.sendMessage(jid, {
107
- albumMessage: [
108
- { image: haii, caption: "Foto pertama" },
109
- { image: { url: "URL IMAGE" }, caption: "Foto kedua" }
110
- ]
111
- }, { quoted: m });
267
+ await client.sendVideo(
268
+ jid,
269
+ {
270
+ url: "./video.mp4"
271
+ },
272
+ "Caption Here"
273
+ );
112
274
  ```
113
275
 
114
- ### Event Message
115
- Create and send WhatsApp event invitations:
276
+ ---
277
+
278
+ ### Send Audio
279
+
280
+ Send audio message.
116
281
 
117
282
  ```javascript
118
- await sock.sendMessage(jid, {
119
- eventMessage: {
120
- isCanceled: false,
121
- name: "Hello World",
122
- description: "alannxd",
123
- location: {
124
- degreesLatitude: 0,
125
- degreesLongitude: 0,
126
- name: "rowrrrr"
127
- },
128
- joinLink: "https://call.whatsapp.com/video/alannxd",
129
- startTime: "1763019000",
130
- endTime: "1763026200",
131
- extraGuestsAllowed: false
132
- }
133
- }, { quoted: m });
283
+ await client.sendAudio(
284
+ jid,
285
+ {
286
+ url: "./audio.mp3"
287
+ }
288
+ );
134
289
  ```
135
290
 
136
- ### Poll Result Message
137
- Display poll results with vote counts:
291
+ ---
292
+
293
+ ### Send Location
294
+
295
+ Send location message.
138
296
 
139
297
  ```javascript
140
- await sock.sendMessage(jid, {
141
- pollResultMessage: {
142
- name: "Hello World",
143
- pollVotes: [
144
- {
145
- optionName: "TEST 1",
146
- optionVoteCount: "112233"
147
- },
148
- {
149
- optionName: "TEST 2",
150
- optionVoteCount: "1"
151
- }
152
- ]
153
- }
154
- }, { quoted: m });
298
+ await client.sendLocation(
299
+ jid,
300
+ "AlannXD",
301
+ -6.2,
302
+ 106.8,
303
+ "https://example.com",
304
+ "123456789"
305
+ );
155
306
  ```
156
307
 
157
- ### Simple Interactive Message
158
- Send basic interactive messages with copy button functionality:
308
+ ---
309
+
310
+ ### Send Poll
311
+
312
+ Create poll message.
159
313
 
160
314
  ```javascript
161
- await sock.sendMessage(jid, {
162
- interactiveMessage: {
163
- header: "Hello World",
164
- title: "Hello World",
165
- footer: "telegram: @alannxd ",
166
- buttons: [
167
- {
168
- name: "cta_copy",
169
- buttonParamsJson: JSON.stringify({
170
- display_text: "copy code",
171
- id: "123456789",
172
- copy_code: "ABC123XYZ"
173
- })
174
- }
175
- ]
176
- }
177
- }, { quoted: m });
315
+ await client.sendPoll(
316
+ jid,
317
+ "Choose One",
318
+ [
319
+ "Option 1",
320
+ "Option 2",
321
+ "Option 3"
322
+ ],
323
+ true
324
+ );
178
325
  ```
179
326
 
180
- ### Interactive Message with Native Flow
181
- Send interactive messages with buttons, copy actions, and native flow features:
327
+ ---
328
+
329
+ ### Send Quiz
330
+
331
+ Create quiz poll message.
182
332
 
183
333
  ```javascript
184
- await sock.sendMessage(jid, {
185
- interactiveMessage: {
186
- header: "Hello World",
187
- title: "Hello World",
188
- footer: "telegram: @alannxd",
189
- image: { url: "https://example.com/image.jpg" },
190
- nativeFlowMessage: {
191
- messageParamsJson: JSON.stringify({
192
- limited_time_offer: {
193
- text: "idk hummmm?",
194
- url: "https://t.me/alannxd",
195
- copy_code: "alannxd",
196
- expiration_time: Date.now() * 999
197
- },
198
- bottom_sheet: {
199
- in_thread_buttons_limit: 2,
200
- divider_indices: [1, 2, 3, 4, 5, 999],
201
- list_title: "alannxd",
202
- button_title: "alannxd"
203
- },
204
- tap_target_configuration: {
205
- title: " X ",
206
- description: "bomboclard",
207
- canonical_url: "https://t.me/alannxd",
208
- domain: "shop.example.com",
209
- button_index: 0
210
- }
211
- }),
212
- buttons: [
213
- {
214
- name: "single_select",
215
- buttonParamsJson: JSON.stringify({
216
- has_multiple_buttons: true
217
- })
218
- },
219
- {
220
- name: "call_permission_request",
221
- buttonParamsJson: JSON.stringify({
222
- has_multiple_buttons: true
223
- })
224
- },
225
- {
226
- name: "single_select",
227
- buttonParamsJson: JSON.stringify({
228
- title: "Hello World",
229
- sections: [
230
- {
231
- title: "title",
232
- highlight_label: "label",
233
- rows: [
234
- {
235
- title: "@alannxd",
236
- description: "love you",
237
- id: "row_2"
238
- }
239
- ]
240
- }
241
- ],
242
- has_multiple_buttons: true
243
- })
244
- },
245
- {
246
- name: "cta_copy",
247
- buttonParamsJson: JSON.stringify({
248
- display_text: "copy code",
249
- id: "123456789",
250
- copy_code: "ABC123XYZ"
251
- })
252
- }
253
- ]
254
- }
255
- }
256
- }, { quoted: m });
334
+ await client.sendQuiz(
335
+ jid,
336
+ "Question Here",
337
+ [
338
+ "A",
339
+ "B",
340
+ "C"
341
+ ],
342
+ "B"
343
+ );
257
344
  ```
258
345
 
259
- ### Interactive Message with Thumbnail
260
- Send interactive messages with thumbnail image and copy button:
346
+ ---
347
+
348
+ ### Status Mention
349
+
350
+ Mention users through status.
261
351
 
262
352
  ```javascript
263
- await sock.sendMessage(jid, {
264
- interactiveMessage: {
265
- header: "Hello World",
266
- title: "Hello World",
267
- footer: "telegram: @alannxd",
268
- image: { url: "https://example.com/image.jpg" },
269
- buttons: [
270
- {
271
- name: "cta_copy",
272
- buttonParamsJson: JSON.stringify({
273
- display_text: "copy code",
274
- id: "123456789",
275
- copy_code: "ABC123XYZ"
276
- })
277
- }
278
- ]
353
+ await client.statusMention(
354
+ jid,
355
+ {
356
+ extendedTextMessage: {
357
+ text: "Hello World"
358
+ }
279
359
  }
280
- }, { quoted: m });
360
+ );
281
361
  ```
282
362
 
283
- ### Product Message
284
- Send product catalog messages with buttons and merchant information:
363
+ ---
364
+
365
+ ### Interactive Message
366
+
367
+ Send interactive message.
285
368
 
286
369
  ```javascript
287
- await sock.sendMessage(jid, {
288
- productMessage: {
289
- title: "Produk Contoh",
290
- description: "Ini adalah deskripsi produk",
291
- thumbnail: { url: "https://example.com/image.jpg" },
292
- productId: "PROD001",
293
- retailerId: "RETAIL001",
294
- url: "https://example.com/product",
295
- body: "Detail produk",
296
- footer: "Harga spesial",
297
- priceAmount1000: 50000,
298
- currencyCode: "USD",
299
- buttons: [
370
+ await client.sendMessage(
371
+ jid,
372
+ {
373
+ image: {
374
+ url: "./image.jpg"
375
+ },
376
+ text: "Body Message",
377
+ title: "Hello World",
378
+ footer: "AlannXD",
379
+ interactiveButtons: [
300
380
  {
301
- name: "cta_url",
381
+ name: "single_select",
302
382
  buttonParamsJson: JSON.stringify({
303
- display_text: "Beli Sekarang",
304
- url: "https://example.com/buy"
383
+ title: "Menu"
305
384
  })
306
385
  }
307
386
  ]
308
387
  }
309
- }, { quoted: m });
388
+ );
310
389
  ```
311
390
 
312
- ### Interactive Message with Document Buffer
313
- Send interactive messages with document from buffer (file system) - **Note: Documents only support buffer**:
391
+ ---
392
+
393
+ ### Product Message
394
+
395
+ Send product catalog message.
314
396
 
315
397
  ```javascript
316
- await sock.sendMessage(jid, {
317
- interactiveMessage: {
318
- header: "Hello World",
319
- title: "Hello World",
320
- footer: "telegram: @alannxd",
321
- document: fs.readFileSync("./package.json"),
322
- mimetype: "application/pdf",
323
- fileName: "alannxd.pdf",
324
- jpegThumbnail: fs.readFileSync("./document.jpeg"),
325
- contextInfo: {
326
- mentionedJid: [jid],
327
- forwardingScore: 777,
328
- isForwarded: false
329
- },
330
- externalAdReply: {
331
- title: "shenń Bot",
332
- body: "anu team",
333
- mediaType: 3,
334
- thumbnailUrl: "https://example.com/image.jpg",
335
- mediaUrl: " X ",
336
- sourceUrl: "https://t.me/alannxd",
337
- showAdAttribution: true,
338
- renderLargerThumbnail: false
339
- },
340
- buttons: [
341
- {
342
- name: "cta_url",
343
- buttonParamsJson: JSON.stringify({
344
- display_text: "Telegram",
345
- url: "https://t.me/alannxd",
346
- merchant_url: "https://t.me/alannxd"
347
- })
348
- }
349
- ]
398
+ await client.sendMessage(
399
+ jid,
400
+ {
401
+ productMessage: {
402
+ title: "AlannXD Product",
403
+ description: "Product Description",
404
+ thumbnail: {
405
+ url: "./thumbnail.jpg"
406
+ },
407
+ productId: "PRODUCT_ID",
408
+ retailerId: "RETAILER_ID",
409
+ url: "https://example.com",
410
+ body: "Product Body",
411
+ footer: "Footer Product",
412
+ priceAmount1000: 50000,
413
+ currencyCode: "IDR"
414
+ }
350
415
  }
351
- }, { quoted: m });
416
+ );
352
417
  ```
353
418
 
354
- ### Interactive Message with Document Buffer (Simple)
355
- Send interactive messages with document from buffer (file system) without contextInfo and externalAdReply - **Note: Documents only support buffer**:
419
+ ---
420
+
421
+ ### Order Message
422
+
423
+ Send order message.
356
424
 
357
425
  ```javascript
358
- await sock.sendMessage(jid, {
359
- interactiveMessage: {
360
- header: "Hello World",
361
- title: "Hello World",
362
- footer: "telegram: @alannxd",
363
- document: fs.readFileSync("./package.json"),
364
- mimetype: "application/pdf",
365
- fileName: "alannxd.pdf",
366
- jpegThumbnail: fs.readFileSync("./document.jpeg"),
367
- buttons: [
368
- {
369
- name: "cta_url",
370
- buttonParamsJson: JSON.stringify({
371
- display_text: "Telegram",
372
- url: "https://t.me/alannxd",
373
- merchant_url: "https://t.me/alannxd"
374
- })
375
- }
376
- ]
426
+ await client.sendMessage(
427
+ jid,
428
+ {
429
+ thumbnail: thumbnailBuffer,
430
+ message: "Order Example",
431
+ orderTitle: "AlannXD Store",
432
+ totalAmount1000: 50000,
433
+ totalCurrencyCode: "IDR"
377
434
  }
378
- }, { quoted: m });
435
+ );
379
436
  ```
380
437
 
381
- ### Request Payment Message
382
- Send payment request messages with custom background and sticker:
438
+ ---
439
+
440
+ ### Poll Result Snapshot
441
+
442
+ Display poll result snapshot.
383
443
 
384
444
  ```javascript
385
- let quotedType = m.quoted?.mtype || '';
386
- let quotedContent = JSON.stringify({ [quotedType]: m.quoted }, null, 2);
387
-
388
- await sock.sendMessage(jid, {
389
- requestPaymentMessage: {
390
- currency: "IDR",
391
- amount: 10000000,
392
- from: m.sender,
393
- sticker: JSON.parse(quotedContent),
394
- background: {
395
- id: "100",
396
- fileLength: "0",
397
- width: 1000,
398
- height: 1000,
399
- mimetype: "image/webp",
400
- placeholderArgb: 0xFF00FFFF,
401
- textArgb: 0xFFFFFFFF,
402
- subtextArgb: 0xFFAA00FF
445
+ await client.sendMessage(
446
+ jid,
447
+ {
448
+ pollResultMessage: {
449
+ name: "Example Poll",
450
+ options: [
451
+ {
452
+ optionName: "Option 1"
453
+ },
454
+ {
455
+ optionName: "Option 2"
456
+ }
457
+ ]
403
458
  }
404
459
  }
405
- }, { quoted: m });
460
+ );
406
461
  ```
407
462
 
408
463
  ---
@@ -455,10 +510,10 @@ Thanks to the following awesome contributors who help improve this project 💖
455
510
  </a>
456
511
  </td>
457
512
  <td align="center">
458
- <a href="https://github.com/z4phdev">
459
- <img src="https://github.com/z4phdev.png" width="80px;" style="border-radius:50%;" alt="Developer"/>
513
+ <a href="https://github.com/tenka-san">
514
+ <img src="https://github.com/tenka-san.png" width="80px;" style="border-radius:50%;" alt="Developer"/>
460
515
  <br />
461
- <sub><b>z4phdev</b></sub>
516
+ <sub><b>D | Yuukey-7eppeli</b></sub>
462
517
  </a>
463
518
  </td>
464
519
  <td align="center">