miaw-core 0.9.0 → 1.1.0
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/CHANGELOG.md +167 -0
- package/README.md +132 -11
- package/babel.config.js +2 -2
- package/dist/client/MiawClient.d.ts +111 -9
- package/dist/client/MiawClient.d.ts.map +1 -1
- package/dist/client/MiawClient.js +1136 -546
- package/dist/client/MiawClient.js.map +1 -1
- package/dist/handlers/AuthHandler.d.ts +5 -0
- package/dist/handlers/AuthHandler.d.ts.map +1 -1
- package/dist/handlers/AuthHandler.js +21 -10
- package/dist/handlers/AuthHandler.js.map +1 -1
- package/dist/handlers/MessageHandler.d.ts +1 -1
- package/dist/handlers/MessageHandler.d.ts.map +1 -1
- package/dist/handlers/MessageHandler.js +21 -25
- package/dist/handlers/MessageHandler.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -7
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +129 -24
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -7
- package/dist/types/index.js.map +1 -1
- package/docs/API_STABILITY_REVIEW.md +316 -0
- package/docs/BAILEYS_MIGRATION_v7.md +220 -0
- package/docs/BAILEYS_VS_MIAW_COMPARISON.md +522 -0
- package/docs/MIGRATION.md +307 -0
- package/docs/TEST_COVERAGE_ANALYSIS.md +256 -0
- package/{USAGE.md → docs/USAGE.md} +68 -11
- package/eslint.config.js +22 -0
- package/package.json +23 -6
- package/tsconfig.json +6 -5
- package/tsconfig.test.json +3 -1
- package/dist/utils/storage.d.ts +0 -25
- package/dist/utils/storage.d.ts.map +0 -1
- package/dist/utils/storage.js +0 -60
- package/dist/utils/storage.js.map +0 -1
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
# Baileys vs Miaw Core - Comprehensive Feature Comparison
|
|
2
|
+
|
|
3
|
+
**Last Updated:** January 2, 2026
|
|
4
|
+
**Baileys Version:** 7.0.0-rc.9
|
|
5
|
+
**Miaw Core Version:** 1.1.0
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
This document provides a comprehensive comparison between [Baileys](https://github.com/WhiskeySockets/Baileys) (the underlying WhatsApp Web API library) and Miaw Core (the simplified wrapper). The analysis covers all capabilities found in both libraries.
|
|
10
|
+
|
|
11
|
+
### Key Differences
|
|
12
|
+
|
|
13
|
+
| Aspect | Baileys | Miaw Core |
|
|
14
|
+
| ---------------------- | -------------------------------- | ------------------------------------- |
|
|
15
|
+
| **Complexity** | Low-level, complex API | Simplified, high-level API |
|
|
16
|
+
| **Learning Curve** | Steep | Gentle |
|
|
17
|
+
| **Message Format** | Raw WhatsApp protobuf structures | Normalized `MiawMessage` format |
|
|
18
|
+
| **Session Management** | Manual setup required | Automatic with `AuthHandler` |
|
|
19
|
+
| **Reconnection** | Manual implementation | Built-in auto-reconnect |
|
|
20
|
+
| **TypeScript** | Partial types | Full type safety |
|
|
21
|
+
| **Events** | Many granular events | Consolidated, simplified events |
|
|
22
|
+
| **Error Handling** | Exceptions, Boom errors | Structured `{success, error}` results |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Feature Comparison Tables
|
|
27
|
+
|
|
28
|
+
### Legend
|
|
29
|
+
|
|
30
|
+
| Symbol | Meaning |
|
|
31
|
+
| ------ | --------------------- |
|
|
32
|
+
| ✅ | Fully implemented |
|
|
33
|
+
| 🔶 | Partially implemented |
|
|
34
|
+
| ❌ | Not implemented |
|
|
35
|
+
| 🏗️ | Planned for future |
|
|
36
|
+
| N/A | Not applicable |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 1. Connection & Authentication
|
|
41
|
+
|
|
42
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
43
|
+
| ---------------------------------------- | ------- | --------- | ------------------------------------- |
|
|
44
|
+
| **QR Code Authentication** | ✅ | ✅ | Miaw emits `qr` event |
|
|
45
|
+
| **Pairing Code (Phone Number)** | ✅ | ❌ | Request pairing code via phone number |
|
|
46
|
+
| **Session Persistence (Multi-file)** | ✅ | ✅ | `AuthHandler` manages automatically |
|
|
47
|
+
| **Session Persistence (Single-file)** | ✅ | ❌ | Multi-file only in Miaw |
|
|
48
|
+
| **Session Persistence (External Store)** | ✅ | ❌ | Redis, MongoDB, etc. |
|
|
49
|
+
| **Auto-Reconnection** | ❌ | ✅ | Manual in Baileys, built-in in Miaw |
|
|
50
|
+
| **Connection State Events** | ✅ | ✅ | Simplified in Miaw |
|
|
51
|
+
| **Logout/Disconnect** | ✅ | ✅ | `disconnect()` method |
|
|
52
|
+
| **Clear Session** | ✅ | ✅ | `clearSession()` method |
|
|
53
|
+
| **Multiple Instances** | ✅ | ✅ | Full support in both |
|
|
54
|
+
| **Browser Config** | ✅ | 🔶 | Fixed browser config in Miaw |
|
|
55
|
+
| **Custom Logger** | ✅ | ✅ | Pino-based in both |
|
|
56
|
+
| **Proxy Support** | ✅ | ❌ | HTTP/SOCKS proxy |
|
|
57
|
+
| **WebSocket Options** | ✅ | ❌ | Custom WS configuration |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. Sending Messages
|
|
62
|
+
|
|
63
|
+
### 2.1 Text Messages
|
|
64
|
+
|
|
65
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
66
|
+
| -------------------------- | ------- | --------- | -------------------------------------- |
|
|
67
|
+
| **Send Text** | ✅ | ✅ | `sendText()` |
|
|
68
|
+
| **Send with Quote/Reply** | ✅ | ✅ | `options.quoted` |
|
|
69
|
+
| **Send with Mentions** | ✅ | ❌ | `@mentions` in text |
|
|
70
|
+
| **Send with Link Preview** | ✅ | 🔶 | Auto-generated in Baileys |
|
|
71
|
+
| **Send Extended Text** | ✅ | ❌ | Bold, italic, strikethrough, monospace |
|
|
72
|
+
|
|
73
|
+
### 2.2 Media Messages
|
|
74
|
+
|
|
75
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
76
|
+
| --------------------------- | ------- | --------- | --------------------------- |
|
|
77
|
+
| **Send Image** | ✅ | ✅ | `sendImage()` with caption |
|
|
78
|
+
| **Send Video** | ✅ | ✅ | `sendVideo()` with caption |
|
|
79
|
+
| **Send Audio** | ✅ | ✅ | `sendAudio()` |
|
|
80
|
+
| **Send Voice Note (PTT)** | ✅ | ✅ | `options.ptt: true` |
|
|
81
|
+
| **Send Video Note (PTV)** | ✅ | ✅ | `options.ptv: true` |
|
|
82
|
+
| **Send Document** | ✅ | ✅ | `sendDocument()` |
|
|
83
|
+
| **Send Sticker** | ✅ | ❌ | WebP sticker messages |
|
|
84
|
+
| **Send GIF** | ✅ | ✅ | `options.gifPlayback: true` |
|
|
85
|
+
| **View Once (Image/Video)** | ✅ | ✅ | `options.viewOnce: true` |
|
|
86
|
+
| **Media from URL** | ✅ | ✅ | Pass URL string |
|
|
87
|
+
| **Media from Buffer** | ✅ | ✅ | Pass Buffer |
|
|
88
|
+
| **Media from Stream** | ✅ | ❌ | Readable stream |
|
|
89
|
+
| **Custom Thumbnail** | ✅ | ❌ | `jpegThumbnail` option |
|
|
90
|
+
|
|
91
|
+
### 2.3 Special Messages
|
|
92
|
+
|
|
93
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
94
|
+
| -------------------------- | ------- | --------- | -------------------------------------- |
|
|
95
|
+
| **Send Location** | ✅ | ❌ | Latitude/longitude |
|
|
96
|
+
| **Send Live Location** | ✅ | ❌ | Live location sharing |
|
|
97
|
+
| **Send Contact (vCard)** | ✅ | ❌ | Contact cards |
|
|
98
|
+
| **Send Multiple Contacts** | ✅ | ❌ | Multiple vCards |
|
|
99
|
+
| **Send Poll** | ✅ | ❌ | Poll messages |
|
|
100
|
+
| **Send Product** | ✅ | ❌ | Product message |
|
|
101
|
+
| **Send Event** | ✅ | ❌ | Event/calendar messages |
|
|
102
|
+
| **Send Group Invite** | ✅ | ❌ | Group invite message |
|
|
103
|
+
| **Send Buttons** | ✅ | ❌ | Interactive buttons (deprecated by WA) |
|
|
104
|
+
| **Send List** | ✅ | ❌ | List messages (deprecated by WA) |
|
|
105
|
+
| **Send Template** | ✅ | ❌ | Template messages (deprecated by WA) |
|
|
106
|
+
|
|
107
|
+
### 2.4 Message Operations
|
|
108
|
+
|
|
109
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
110
|
+
| ----------------------- | ------- | --------- | ------------------------------------- |
|
|
111
|
+
| **Forward Message** | ✅ | ✅ | `forwardMessage()` |
|
|
112
|
+
| **Edit Message** | ✅ | ✅ | `editMessage()` (own messages, 15min) |
|
|
113
|
+
| **Delete for Everyone** | ✅ | ✅ | `deleteMessage()` |
|
|
114
|
+
| **Delete for Me** | ✅ | ✅ | `deleteMessageForMe()` |
|
|
115
|
+
| **Send Reaction** | ✅ | ✅ | `sendReaction()` |
|
|
116
|
+
| **Remove Reaction** | ✅ | ✅ | `removeReaction()` |
|
|
117
|
+
| **Pin Message** | ✅ | ❌ | Pin to chat/group |
|
|
118
|
+
| **Star Message** | ✅ | ❌ | Star/favorite message |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 3. Receiving & Events
|
|
123
|
+
|
|
124
|
+
### 3.1 Message Events
|
|
125
|
+
|
|
126
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
127
|
+
| ---------------------------- | ------- | --------- | ---------------------------------- |
|
|
128
|
+
| **Receive Messages** | ✅ | ✅ | `message` event with `MiawMessage` |
|
|
129
|
+
| **Message Edit Event** | ✅ | ✅ | `message_edit` event |
|
|
130
|
+
| **Message Delete Event** | ✅ | ✅ | `message_delete` event |
|
|
131
|
+
| **Message Reaction Event** | ✅ | ✅ | `message_reaction` event |
|
|
132
|
+
| **History Sync** | ✅ | 🔶 | Chats/contacts synced to stores |
|
|
133
|
+
| **Poll Updates** | ✅ | ❌ | Poll vote events |
|
|
134
|
+
| **Receipt Events** | ✅ | ❌ | Delivery/read receipts |
|
|
135
|
+
| **Call Events** | ✅ | ❌ | Incoming/outgoing calls |
|
|
136
|
+
| **Label Association Events** | ✅ | ❌ | Label add/remove events |
|
|
137
|
+
|
|
138
|
+
### 3.2 Connection Events
|
|
139
|
+
|
|
140
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
141
|
+
| ---------------------- | ------- | --------- | --------------------- |
|
|
142
|
+
| **Connection Update** | ✅ | ✅ | `connection` event |
|
|
143
|
+
| **QR Event** | ✅ | ✅ | `qr` event |
|
|
144
|
+
| **Ready Event** | ✅ | ✅ | `ready` event |
|
|
145
|
+
| **Disconnected Event** | ✅ | ✅ | `disconnected` event |
|
|
146
|
+
| **Reconnecting Event** | N/A | ✅ | Miaw-specific |
|
|
147
|
+
| **Credentials Update** | ✅ | ✅ | `session_saved` event |
|
|
148
|
+
| **Error Event** | ✅ | ✅ | `error` event |
|
|
149
|
+
|
|
150
|
+
### 3.3 Presence Events
|
|
151
|
+
|
|
152
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
153
|
+
| ---------------------- | ------- | --------- | ---------------------------------------------------- |
|
|
154
|
+
| **Presence Update** | ✅ | ✅ | `presence` event |
|
|
155
|
+
| **Subscribe Presence** | ✅ | ✅ | `subscribePresence()` |
|
|
156
|
+
| **Presence Types** | ✅ | ✅ | available, unavailable, composing, recording, paused |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 4. Media Download & Processing
|
|
161
|
+
|
|
162
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
163
|
+
| --------------------------- | ------- | --------- | --------------------------------- |
|
|
164
|
+
| **Download Media** | ✅ | ✅ | `downloadMedia()` |
|
|
165
|
+
| **Re-upload Expired Media** | ✅ | ✅ | Auto-handled in `downloadMedia()` |
|
|
166
|
+
| **Generate Thumbnail** | ✅ | ❌ | Auto-generate thumbnails |
|
|
167
|
+
| **Get Media Stream** | ✅ | ❌ | Stream instead of buffer |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 5. Chat Management
|
|
172
|
+
|
|
173
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
174
|
+
| ------------------------- | ------- | --------- | ------------------------- |
|
|
175
|
+
| **Mark as Read** | ✅ | ✅ | `markAsRead()` |
|
|
176
|
+
| **Send Typing** | ✅ | ✅ | `sendTyping()` |
|
|
177
|
+
| **Send Recording** | ✅ | ✅ | `sendRecording()` |
|
|
178
|
+
| **Stop Typing** | ✅ | ✅ | `stopTyping()` |
|
|
179
|
+
| **Set Presence** | ✅ | ✅ | `setPresence()` |
|
|
180
|
+
| **Archive Chat** | ✅ | ❌ | Archive/unarchive |
|
|
181
|
+
| **Mute Chat** | ✅ | ❌ | Mute/unmute notifications |
|
|
182
|
+
| **Pin Chat** | ✅ | ❌ | Pin chat to top |
|
|
183
|
+
| **Delete Chat** | ✅ | ❌ | Delete entire chat |
|
|
184
|
+
| **Clear Chat** | ✅ | ❌ | Clear all messages |
|
|
185
|
+
| **Disappearing Messages** | ✅ | ❌ | Set ephemeral timer |
|
|
186
|
+
| **Fetch Message History** | ✅ | ❌ | Load older messages |
|
|
187
|
+
| **Chat Modify** | ✅ | 🔶 | Used internally |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 6. User & Contact Operations
|
|
192
|
+
|
|
193
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
194
|
+
| ---------------------------- | ------- | --------- | --------------------------------- |
|
|
195
|
+
| **Check Number on WhatsApp** | ✅ | ✅ | `checkNumber()`, `checkNumbers()` |
|
|
196
|
+
| **Get Contact Info** | ✅ | ✅ | `getContactInfo()` |
|
|
197
|
+
| **Get Profile Picture** | ✅ | ✅ | `getProfilePicture()` |
|
|
198
|
+
| **Fetch Status/About** | ✅ | ✅ | In `getContactInfo()` |
|
|
199
|
+
| **Get Business Profile** | ✅ | ✅ | `getBusinessProfile()` |
|
|
200
|
+
| **Add/Edit Contact** | ✅ | ✅ | `addOrEditContact()` |
|
|
201
|
+
| **Remove Contact** | ✅ | ✅ | `removeContact()` |
|
|
202
|
+
| **Block User** | ✅ | ❌ | Block/unblock contacts |
|
|
203
|
+
| **Get Blocklist** | ✅ | ❌ | List blocked contacts |
|
|
204
|
+
| **Fetch All Contacts** | ✅ | ✅ | `fetchAllContacts()` |
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 7. Profile Management
|
|
209
|
+
|
|
210
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
211
|
+
| -------------------------- | ------- | --------- | ------------------------ |
|
|
212
|
+
| **Update Profile Picture** | ✅ | ✅ | `updateProfilePicture()` |
|
|
213
|
+
| **Remove Profile Picture** | ✅ | ✅ | `removeProfilePicture()` |
|
|
214
|
+
| **Update Profile Name** | ✅ | ✅ | `updateProfileName()` |
|
|
215
|
+
| **Update Profile Status** | ✅ | ✅ | `updateProfileStatus()` |
|
|
216
|
+
| **Get Own Profile** | ✅ | ✅ | `getOwnProfile()` |
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 8. Group Management
|
|
221
|
+
|
|
222
|
+
### 8.1 Group Operations
|
|
223
|
+
|
|
224
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
225
|
+
| -------------------------- | ------- | --------- | ------------------------ |
|
|
226
|
+
| **Create Group** | ✅ | ✅ | `createGroup()` |
|
|
227
|
+
| **Leave Group** | ✅ | ✅ | `leaveGroup()` |
|
|
228
|
+
| **Get Group Info** | ✅ | ✅ | `getGroupInfo()` |
|
|
229
|
+
| **Get Group Participants** | ✅ | ✅ | `getGroupParticipants()` |
|
|
230
|
+
| **Fetch All Groups** | ✅ | ✅ | `fetchAllGroups()` |
|
|
231
|
+
|
|
232
|
+
### 8.2 Group Participants
|
|
233
|
+
|
|
234
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
235
|
+
| ----------------------- | ------- | --------- | ---------------------- |
|
|
236
|
+
| **Add Participants** | ✅ | ✅ | `addParticipants()` |
|
|
237
|
+
| **Remove Participants** | ✅ | ✅ | `removeParticipants()` |
|
|
238
|
+
| **Promote to Admin** | ✅ | ✅ | `promoteToAdmin()` |
|
|
239
|
+
| **Demote from Admin** | ✅ | ✅ | `demoteFromAdmin()` |
|
|
240
|
+
| **Get Join Requests** | ✅ | ❌ | Pending join requests |
|
|
241
|
+
| **Approve/Reject Join** | ✅ | ❌ | Handle join requests |
|
|
242
|
+
|
|
243
|
+
### 8.3 Group Settings
|
|
244
|
+
|
|
245
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
246
|
+
| ---------------------------- | ------- | --------- | -------------------------- |
|
|
247
|
+
| **Update Group Name** | ✅ | ✅ | `updateGroupName()` |
|
|
248
|
+
| **Update Group Description** | ✅ | ✅ | `updateGroupDescription()` |
|
|
249
|
+
| **Update Group Picture** | ✅ | ✅ | `updateGroupPicture()` |
|
|
250
|
+
| **Announcement Mode** | ✅ | ❌ | Only admins can send |
|
|
251
|
+
| **Restrict Mode** | ✅ | ❌ | Only admins can edit info |
|
|
252
|
+
| **Member Add Mode** | ✅ | ❌ | Who can add members |
|
|
253
|
+
| **Ephemeral Mode** | ✅ | ❌ | Disappearing messages |
|
|
254
|
+
|
|
255
|
+
### 8.4 Group Invites
|
|
256
|
+
|
|
257
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
258
|
+
| --------------------------- | ------- | --------- | -------------------------- |
|
|
259
|
+
| **Get Invite Link** | ✅ | ✅ | `getGroupInviteLink()` |
|
|
260
|
+
| **Revoke Invite Link** | ✅ | ✅ | `revokeGroupInvite()` |
|
|
261
|
+
| **Accept Invite** | ✅ | ✅ | `acceptGroupInvite()` |
|
|
262
|
+
| **Get Invite Info** | ✅ | ✅ | `getGroupInviteInfo()` |
|
|
263
|
+
| **Join via Invite Message** | ✅ | ❌ | Join from received message |
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 9. Business Features (WhatsApp Business)
|
|
268
|
+
|
|
269
|
+
### 9.1 Labels
|
|
270
|
+
|
|
271
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
272
|
+
| ----------------------------- | ------- | --------- | ---------------------- |
|
|
273
|
+
| **Add/Edit Label** | ✅ | ✅ | `addLabel()` |
|
|
274
|
+
| **Fetch All Labels** | ✅ | ✅ | `fetchAllLabels()` |
|
|
275
|
+
| **Add Label to Chat** | ✅ | ✅ | `addChatLabel()` |
|
|
276
|
+
| **Remove Label from Chat** | ✅ | ✅ | `removeChatLabel()` |
|
|
277
|
+
| **Add Label to Message** | ✅ | ✅ | `addMessageLabel()` |
|
|
278
|
+
| **Remove Label from Message** | ✅ | ✅ | `removeMessageLabel()` |
|
|
279
|
+
|
|
280
|
+
### 9.2 Catalog & Products
|
|
281
|
+
|
|
282
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
283
|
+
| --------------------- | ------- | --------- | ------------------ |
|
|
284
|
+
| **Get Catalog** | ✅ | ✅ | `getCatalog()` |
|
|
285
|
+
| **Get Collections** | ✅ | ✅ | `getCollections()` |
|
|
286
|
+
| **Create Product** | ✅ | ✅ | `createProduct()` |
|
|
287
|
+
| **Update Product** | ✅ | ✅ | `updateProduct()` |
|
|
288
|
+
| **Delete Products** | ✅ | ✅ | `deleteProducts()` |
|
|
289
|
+
| **Get Order Details** | ✅ | ❌ | Order information |
|
|
290
|
+
|
|
291
|
+
### 9.3 Business Profile
|
|
292
|
+
|
|
293
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
294
|
+
| --------------------------- | ------- | --------- | --------------------------- |
|
|
295
|
+
| **Get Business Profile** | ✅ | ✅ | `getBusinessProfile()` |
|
|
296
|
+
| **Update Business Profile** | ✅ | ❌ | Update address, hours, etc. |
|
|
297
|
+
| **Update Cover Photo** | ✅ | ❌ | Business cover image |
|
|
298
|
+
| **Remove Cover Photo** | ✅ | ❌ | Remove business cover |
|
|
299
|
+
|
|
300
|
+
### 9.4 Quick Replies (Business)
|
|
301
|
+
|
|
302
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
303
|
+
| ---------------------- | ------- | --------- | ------------------ |
|
|
304
|
+
| **Add Quick Reply** | ✅ | ❌ | Create quick reply |
|
|
305
|
+
| **Remove Quick Reply** | ✅ | ❌ | Delete quick reply |
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## 10. Newsletter/Channel Features
|
|
310
|
+
|
|
311
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
312
|
+
| --------------------------------- | ------- | --------- | ------------------------------- |
|
|
313
|
+
| **Create Newsletter** | ✅ | ✅ | `createNewsletter()` |
|
|
314
|
+
| **Delete Newsletter** | ✅ | ✅ | `deleteNewsletter()` |
|
|
315
|
+
| **Get Newsletter Metadata** | ✅ | ✅ | `getNewsletterMetadata()` |
|
|
316
|
+
| **Follow Newsletter** | ✅ | ✅ | `followNewsletter()` |
|
|
317
|
+
| **Unfollow Newsletter** | ✅ | ✅ | `unfollowNewsletter()` |
|
|
318
|
+
| **Mute Newsletter** | ✅ | ✅ | `muteNewsletter()` |
|
|
319
|
+
| **Unmute Newsletter** | ✅ | ✅ | `unmuteNewsletter()` |
|
|
320
|
+
| **Update Newsletter Name** | ✅ | ✅ | `updateNewsletterName()` |
|
|
321
|
+
| **Update Newsletter Description** | ✅ | ✅ | `updateNewsletterDescription()` |
|
|
322
|
+
| **Update Newsletter Picture** | ✅ | ✅ | `updateNewsletterPicture()` |
|
|
323
|
+
| **Remove Newsletter Picture** | ✅ | ✅ | `removeNewsletterPicture()` |
|
|
324
|
+
| **Send Newsletter Message** | ✅ | ✅ | `sendNewsletterMessage()` |
|
|
325
|
+
| **Send Newsletter Image** | ✅ | ✅ | `sendNewsletterImage()` |
|
|
326
|
+
| **Send Newsletter Video** | ✅ | ✅ | `sendNewsletterVideo()` |
|
|
327
|
+
| **React to Newsletter Message** | ✅ | ✅ | `reactToNewsletterMessage()` |
|
|
328
|
+
| **Fetch Newsletter Messages** | ✅ | ✅ | `fetchNewsletterMessages()` |
|
|
329
|
+
| **Subscribe Newsletter Updates** | ✅ | ✅ | `subscribeNewsletterUpdates()` |
|
|
330
|
+
| **Get Newsletter Subscribers** | ✅ | ✅ | `getNewsletterSubscribers()` |
|
|
331
|
+
| **Get Newsletter Admin Count** | ✅ | ✅ | `getNewsletterAdminCount()` |
|
|
332
|
+
| **Change Newsletter Owner** | ✅ | ✅ | `changeNewsletterOwner()` |
|
|
333
|
+
| **Demote Newsletter Admin** | ✅ | ✅ | `demoteNewsletterAdmin()` |
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## 11. Privacy Settings
|
|
338
|
+
|
|
339
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
340
|
+
| ------------------------------------ | ------- | --------- | -------------------- |
|
|
341
|
+
| **Get Privacy Settings** | ✅ | ❌ | All privacy settings |
|
|
342
|
+
| **Update Last Seen Privacy** | ✅ | ❌ | all/contacts/none |
|
|
343
|
+
| **Update Online Privacy** | ✅ | ❌ | all/match_last_seen |
|
|
344
|
+
| **Update Profile Picture Privacy** | ✅ | ❌ | all/contacts/none |
|
|
345
|
+
| **Update Status Privacy** | ✅ | ❌ | all/contacts/none |
|
|
346
|
+
| **Update Read Receipts Privacy** | ✅ | ❌ | all/none |
|
|
347
|
+
| **Update Groups Add Privacy** | ✅ | ❌ | all/contacts/none |
|
|
348
|
+
| **Update Messages Privacy** | ✅ | ❌ | all/contacts |
|
|
349
|
+
| **Update Call Privacy** | ✅ | ❌ | all/known |
|
|
350
|
+
| **Update Default Disappearing Mode** | ✅ | ❌ | Default ephemeral |
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 12. Status/Stories & Broadcasts
|
|
355
|
+
|
|
356
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
357
|
+
| ------------------------------ | ------- | --------- | ------------------------- |
|
|
358
|
+
| **Send Status/Story** | ✅ | ❌ | Post to status |
|
|
359
|
+
| **Delete Status** | ✅ | ❌ | Delete status post |
|
|
360
|
+
| **Send Broadcast** | ✅ | ❌ | Send to broadcast list |
|
|
361
|
+
| **Query Broadcast Recipients** | ✅ | ❌ | List broadcast recipients |
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## 13. Communities
|
|
366
|
+
|
|
367
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
368
|
+
| ------------------------------ | ------- | --------- | ----------------------- |
|
|
369
|
+
| **Get Community Metadata** | ✅ | ❌ | Community information |
|
|
370
|
+
| **Get Community Sub-groups** | ✅ | ❌ | List linked groups |
|
|
371
|
+
| **Create Community** | ✅ | ❌ | Create new community |
|
|
372
|
+
| **Add Community Sub-group** | ✅ | ❌ | Link group to community |
|
|
373
|
+
| **Remove Community Sub-group** | ✅ | ❌ | Unlink group |
|
|
374
|
+
| **Deactivate Community** | ✅ | ❌ | Deactivate community |
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## 14. Calls
|
|
379
|
+
|
|
380
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
381
|
+
| -------------------- | ------- | --------- | -------------------------- |
|
|
382
|
+
| **Call Events** | ✅ | ❌ | Receive call notifications |
|
|
383
|
+
| **Reject Call** | ✅ | ❌ | Reject incoming call |
|
|
384
|
+
| **Offer Call** | ✅ | ❌ | Start audio/video call |
|
|
385
|
+
| **Terminate Call** | ✅ | ❌ | End active call |
|
|
386
|
+
| **Group Video Call** | ✅ | ❌ | Group video calls |
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 15. Utility Functions
|
|
391
|
+
|
|
392
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
393
|
+
| --------------------------------- | ------- | --------- | ----------------------------------- |
|
|
394
|
+
| **JID Encoding/Decoding** | ✅ | 🔶 | `MessageHandler.formatPhoneToJid()` |
|
|
395
|
+
| **Check JID Type** | ✅ | 🔶 | Group/user/newsletter/etc. |
|
|
396
|
+
| **LID to JID Resolution** | ✅ | ✅ | `resolveLidToJid()` |
|
|
397
|
+
| **Get Phone from JID** | ✅ | ✅ | `getPhoneFromJid()` |
|
|
398
|
+
| **Generate Message ID** | ✅ | ❌ | Custom message IDs |
|
|
399
|
+
| **Download Content from Message** | ✅ | ✅ | `downloadMedia()` |
|
|
400
|
+
| **Profile Picture Generation** | ✅ | ❌ | Crop/resize for profile |
|
|
401
|
+
| **App State Sync** | ✅ | 🔶 | For labels, used internally |
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## 16. Low-Level / Advanced
|
|
406
|
+
|
|
407
|
+
| Feature | Baileys | Miaw Core | Notes |
|
|
408
|
+
| ---------------------------- | ------- | --------- | ---------------------- |
|
|
409
|
+
| **Raw Query** | ✅ | ❌ | Send raw IQ queries |
|
|
410
|
+
| **Custom Binary Node** | ✅ | ❌ | Build custom nodes |
|
|
411
|
+
| **Event Buffering** | ✅ | ❌ | Batch event processing |
|
|
412
|
+
| **Signal Repository** | ✅ | ❌ | Low-level encryption |
|
|
413
|
+
| **USyncQuery** | ✅ | ❌ | User sync queries |
|
|
414
|
+
| **Custom WebSocket Handler** | ✅ | ❌ | WS event handling |
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Summary Statistics
|
|
419
|
+
|
|
420
|
+
### Implementation Coverage
|
|
421
|
+
|
|
422
|
+
| Category | Baileys Features | Miaw Core Implemented | Coverage |
|
|
423
|
+
| ------------------------- | ---------------- | --------------------- | -------- |
|
|
424
|
+
| **Connection & Auth** | 14 | 10 | 71% |
|
|
425
|
+
| **Sending Messages** | 33 | 19 | 58% |
|
|
426
|
+
| **Receiving & Events** | 17 | 12 | 71% |
|
|
427
|
+
| **Media** | 4 | 2 | 50% |
|
|
428
|
+
| **Chat Management** | 11 | 5 | 45% |
|
|
429
|
+
| **User & Contacts** | 10 | 8 | 80% |
|
|
430
|
+
| **Profile Management** | 5 | 5 | 100% |
|
|
431
|
+
| **Group Management** | 18 | 14 | 78% |
|
|
432
|
+
| **Business (Labels)** | 6 | 6 | 100% |
|
|
433
|
+
| **Business (Catalog)** | 6 | 5 | 83% |
|
|
434
|
+
| **Business (Profile/QR)** | 4 | 1 | 25% |
|
|
435
|
+
| **Newsletter/Channels** | 19 | 19 | 100% |
|
|
436
|
+
| **Privacy** | 10 | 0 | 0% |
|
|
437
|
+
| **Status/Broadcasts** | 4 | 0 | 0% |
|
|
438
|
+
| **Communities** | 5 | 0 | 0% |
|
|
439
|
+
| **Calls** | 5 | 0 | 0% |
|
|
440
|
+
| **Utilities** | 7 | 4 | 57% |
|
|
441
|
+
| **Low-Level** | 6 | 0 | 0% |
|
|
442
|
+
| **TOTAL** | ~175 | ~110 | ~63% |
|
|
443
|
+
|
|
444
|
+
### What Miaw Core Focuses On
|
|
445
|
+
|
|
446
|
+
Miaw Core prioritizes the features that **90% of WhatsApp bots actually need**:
|
|
447
|
+
|
|
448
|
+
1. ✅ **Core Messaging** - Text, media, reactions, editing, deletion
|
|
449
|
+
2. ✅ **Group Management** - Full admin capabilities
|
|
450
|
+
3. ✅ **Profile Management** - Complete profile control
|
|
451
|
+
4. ✅ **Business Features** - Labels, products, catalogs
|
|
452
|
+
5. ✅ **Newsletter/Channels** - Full channel support
|
|
453
|
+
6. ✅ **Contact Management** - Add/edit/remove contacts
|
|
454
|
+
7. ✅ **UX Features** - Typing indicators, read receipts, presence
|
|
455
|
+
|
|
456
|
+
### What Miaw Core Doesn't Implement (Yet)
|
|
457
|
+
|
|
458
|
+
These are deliberately excluded or planned for future:
|
|
459
|
+
|
|
460
|
+
1. ❌ **Privacy Settings** - Rarely needed by bots
|
|
461
|
+
2. ❌ **Status/Stories** - Not common for automation
|
|
462
|
+
3. ❌ **Communities** - Newer feature, less used
|
|
463
|
+
4. ❌ **Calls** - WhatsApp calls via bots are rare
|
|
464
|
+
5. ❌ **Polls** - Can be added if demand exists
|
|
465
|
+
6. ❌ **Location Messages** - Can be added
|
|
466
|
+
7. ❌ **Stickers** - Can be added
|
|
467
|
+
8. ❌ **Interactive Messages** - Buttons/lists deprecated by WhatsApp
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Design Philosophy Comparison
|
|
472
|
+
|
|
473
|
+
### Baileys Approach
|
|
474
|
+
|
|
475
|
+
- **Comprehensive** - Exposes nearly every WhatsApp Web feature
|
|
476
|
+
- **Low-level** - Direct access to protocol
|
|
477
|
+
- **Complex** - Requires understanding of WhatsApp internals
|
|
478
|
+
- **Flexible** - Can do anything WhatsApp Web can do
|
|
479
|
+
- **Events** - Many granular events to handle
|
|
480
|
+
|
|
481
|
+
### Miaw Core Approach
|
|
482
|
+
|
|
483
|
+
- **Focused** - Essential bot features only
|
|
484
|
+
- **High-level** - Simplified abstractions
|
|
485
|
+
- **Simple** - Easy to learn and use
|
|
486
|
+
- **Opinionated** - Best practices built-in
|
|
487
|
+
- **Events** - Consolidated, meaningful events
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
## Migration Considerations
|
|
492
|
+
|
|
493
|
+
### When to Use Baileys Directly
|
|
494
|
+
|
|
495
|
+
- Need low-level protocol access
|
|
496
|
+
- Implementing features Miaw doesn't have
|
|
497
|
+
- Custom session storage backends
|
|
498
|
+
- Need maximum control over behavior
|
|
499
|
+
- Building a full WhatsApp client
|
|
500
|
+
|
|
501
|
+
### When to Use Miaw Core
|
|
502
|
+
|
|
503
|
+
- Building WhatsApp bots
|
|
504
|
+
- Quick prototyping
|
|
505
|
+
- Don't want to handle reconnection logic
|
|
506
|
+
- Want simplified message handling
|
|
507
|
+
- Need normalized message format
|
|
508
|
+
- TypeScript with full type safety
|
|
509
|
+
- Multiple bot instances
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## References
|
|
514
|
+
|
|
515
|
+
- **Baileys Repository:** https://github.com/WhiskeySockets/Baileys
|
|
516
|
+
- **Baileys Documentation:** https://baileys.whiskeysockets.io/
|
|
517
|
+
- **Miaw Core Documentation:** [docs/USAGE.md](./USAGE.md)
|
|
518
|
+
- **Miaw Core Roadmap:** [docs/ROADMAP.md](./ROADMAP.md)
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
_This analysis was generated on January 2, 2026, based on Baileys v7.0.0-rc.9 and Miaw Core v1.1.0_
|