@gara31/void-baileys 7.0.0-rc.10
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/LICENSE +21 -0
- package/WAProto/index.js +117292 -0
- package/lib/Defaults/baileys-version.json +3 -0
- package/lib/Defaults/index.js +116 -0
- package/lib/Signal/Group/ciphertext-message.js +12 -0
- package/lib/Signal/Group/group-session-builder.js +42 -0
- package/lib/Signal/Group/group_cipher.js +109 -0
- package/lib/Signal/Group/index.js +12 -0
- package/lib/Signal/Group/keyhelper.js +18 -0
- package/lib/Signal/Group/sender-chain-key.js +32 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +67 -0
- package/lib/Signal/Group/sender-key-message.js +80 -0
- package/lib/Signal/Group/sender-key-name.js +50 -0
- package/lib/Signal/Group/sender-key-record.js +47 -0
- package/lib/Signal/Group/sender-key-state.js +105 -0
- package/lib/Signal/Group/sender-message-key.js +30 -0
- package/lib/Signal/libsignal.js +416 -0
- package/lib/Signal/lid-mapping.js +189 -0
- package/lib/Socket/Client/index.js +3 -0
- package/lib/Socket/Client/types.js +11 -0
- package/lib/Socket/Client/websocket.js +61 -0
- package/lib/Socket/business.js +404 -0
- package/lib/Socket/chats.js +1146 -0
- package/lib/Socket/communities.js +505 -0
- package/lib/Socket/groups.js +404 -0
- package/lib/Socket/index.js +18 -0
- package/lib/Socket/messages-recv.js +1600 -0
- package/lib/Socket/messages-send.js +1203 -0
- package/lib/Socket/mex.js +56 -0
- package/lib/Socket/newsletter.js +240 -0
- package/lib/Socket/socket.js +1060 -0
- package/lib/Types/Auth.js +2 -0
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Call.js +2 -0
- package/lib/Types/Chat.js +8 -0
- package/lib/Types/Contact.js +2 -0
- package/lib/Types/Events.js +2 -0
- package/lib/Types/GroupMetadata.js +2 -0
- package/lib/Types/Label.js +25 -0
- package/lib/Types/LabelAssociation.js +7 -0
- package/lib/Types/Message.js +11 -0
- package/lib/Types/Newsletter.js +31 -0
- package/lib/Types/Product.js +2 -0
- package/lib/Types/Signal.js +2 -0
- package/lib/Types/Socket.js +3 -0
- package/lib/Types/State.js +13 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Types/index.js +32 -0
- package/lib/Utils/auth-utils.js +276 -0
- package/lib/Utils/browser-utils.js +32 -0
- package/lib/Utils/business.js +262 -0
- package/lib/Utils/chat-utils.js +941 -0
- package/lib/Utils/crypto.js +179 -0
- package/lib/Utils/decode-wa-message.js +333 -0
- package/lib/Utils/event-buffer.js +580 -0
- package/lib/Utils/generics.js +436 -0
- package/lib/Utils/history.js +103 -0
- package/lib/Utils/index.js +19 -0
- package/lib/Utils/link-preview.js +105 -0
- package/lib/Utils/logger.js +3 -0
- package/lib/Utils/lt-hash.js +56 -0
- package/lib/Utils/make-mutex.js +38 -0
- package/lib/Utils/message-retry-manager.js +181 -0
- package/lib/Utils/messages-media.js +727 -0
- package/lib/Utils/messages.js +1309 -0
- package/lib/Utils/noise-handler.js +162 -0
- package/lib/Utils/pre-key-manager.js +125 -0
- package/lib/Utils/process-message.js +594 -0
- package/lib/Utils/signal.js +194 -0
- package/lib/Utils/use-multi-file-auth-state.js +118 -0
- package/lib/Utils/validate-connection.js +240 -0
- package/lib/WABinary/constants.js +1301 -0
- package/lib/WABinary/decode.js +240 -0
- package/lib/WABinary/encode.js +216 -0
- package/lib/WABinary/generic-utils.js +104 -0
- package/lib/WABinary/index.js +6 -0
- package/lib/WABinary/jid-utils.js +95 -0
- package/lib/WABinary/types.js +2 -0
- package/lib/WAM/BinaryInfo.js +10 -0
- package/lib/WAM/constants.js +22863 -0
- package/lib/WAM/encode.js +152 -0
- package/lib/WAM/index.js +4 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +29 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +59 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +36 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +60 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +28 -0
- package/lib/WAUSync/Protocols/index.js +5 -0
- package/lib/WAUSync/USyncQuery.js +104 -0
- package/lib/WAUSync/USyncUser.js +23 -0
- package/lib/WAUSync/index.js +4 -0
- package/lib/index.js +11 -0
- package/package.json +31 -0
- package/readme.md +522 -0
package/readme.md
ADDED
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="https://raw.githubusercontent.com/gara31/void-md/main/uploads/1778931942943_ajzmir7fupi.jpg" alt="void-baileys banner" width="100%" />
|
|
4
|
+
|
|
5
|
+
# @gara31/void-baileys
|
|
6
|
+
|
|
7
|
+
### Modded Baileys v7 — Pesan Interaktif, Album, AI Rich Response & Lebih
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@gara31/void-baileys)
|
|
10
|
+
[](https://www.npmjs.com/package/@gara31/void-baileys)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
[](https://nodejs.org)
|
|
13
|
+
[](#)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
**Build modifikasi dari [WhiskeySockets/Baileys](https://github.com/WhiskeySockets/Baileys)**
|
|
18
|
+
dengan dukungan native untuk pesan interaktif, album, AI rich response, newsletter, status mention, dan berbagai utilitas tambahan.
|
|
19
|
+
|
|
20
|
+
Package ini adalah **distribusi/build repo** untuk `@gara31/void-baileys`.
|
|
21
|
+
Berisi file runtime yang sudah dikompilasi di `lib/` dan protobuf di `WAProto/`, dirancang untuk digunakan langsung dari npm.
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Daftar Isi
|
|
28
|
+
|
|
29
|
+
- [Fitur](#-fitur)
|
|
30
|
+
- [Persyaratan](#-persyaratan)
|
|
31
|
+
- [Isi Package](#-isi-package)
|
|
32
|
+
- [Instalasi](#-instalasi)
|
|
33
|
+
- [Quick Start](#-quick-start)
|
|
34
|
+
- [Referensi API Socket](#-referensi-api-socket)
|
|
35
|
+
- [Referensi Event](#-referensi-event)
|
|
36
|
+
- [Utilitas](#-utilitas)
|
|
37
|
+
- [Lisensi](#-lisensi)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ✨ Fitur
|
|
42
|
+
|
|
43
|
+
| Fitur | Deskripsi | Status |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| **Pesan Interaktif** | Flow button native, list/select menu, carousel | ✅ |
|
|
46
|
+
| **Album Messages** | Multi-image/video album dengan metadata | ✅ |
|
|
47
|
+
| **AI Rich Response** | `sendTable`, `sendList`, `sendCodeBlock`, `sendRichMessage` | ✅ |
|
|
48
|
+
| **Unified Response V2** | `sendTableV2`, `sendCodeBlockV2`, `sendLinkV2` | ✅ |
|
|
49
|
+
| **Link Messages** | Link inline dengan kutipan dan verifikasi | ✅ |
|
|
50
|
+
| **Payment Messages** | Pesan pembayaran dengan catatan/stiker | ✅ |
|
|
51
|
+
| **Produk & Katalog** | Pesan produk bisnis, katalog lengkap | ✅ |
|
|
52
|
+
| **Event & Poll** | Builder pesan event dan hasil polling | ✅ |
|
|
53
|
+
| **Newsletter Extras** | Follow massal, metadata, admin utilities | ✅ |
|
|
54
|
+
| **Komunitas & Grup** | CRUD komunitas, undangan, persetujuan | ✅ |
|
|
55
|
+
| **Status Mention** | `sendStatusMention()` untuk mention di status | ✅ |
|
|
56
|
+
| **LID & Session** | Pemetaan LID↔PN, migrasi sesi | ✅ |
|
|
57
|
+
| **TypeScript** | File `.d.ts` tersedia untuk semua API | ✅ |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## ✅ Persyaratan
|
|
62
|
+
|
|
63
|
+
- **Node.js** `>= 20.0.0`
|
|
64
|
+
- **Proyek ESM** (`"type": "module"` di `package.json`)
|
|
65
|
+
- Auth store persisten untuk penggunaan produksi
|
|
66
|
+
- Opsional: `pino`, `qrcode-terminal`, `sharp`, `jimp`
|
|
67
|
+
|
|
68
|
+
> **Penting:** `@gara31/void-baileys` hanya mendukung ESM. Proyek CommonJS perlu migrasi atau dynamic import wrapper.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 📁 Isi Package
|
|
73
|
+
|
|
74
|
+
| Path | Kegunaan |
|
|
75
|
+
|---|---|
|
|
76
|
+
| `lib/` | Runtime utama, tipe, socket layer, utilitas |
|
|
77
|
+
| `WAProto/` | Protobuf runtime yang sudah digenerate |
|
|
78
|
+
| `package.json` | Metadata package |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 📦 Instalasi
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npm install @gara31/void-baileys
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Package pendamping yang disarankan:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm install pino qrcode-terminal
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Menggunakan Alias
|
|
95
|
+
|
|
96
|
+
Tambahkan ke `package.json`:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"dependencies": {
|
|
101
|
+
"baileys": "npm:@gara31/void-baileys@latest"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Lalu jalankan:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npm install
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 🛠️ Quick Start
|
|
115
|
+
|
|
116
|
+
### 1. Setup Proyek
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
mkdir bot-ku && cd bot-ku
|
|
120
|
+
npm init -y
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Pastikan `package.json` memiliki `"type": "module"`:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"name": "bot-ku",
|
|
128
|
+
"type": "module",
|
|
129
|
+
"dependencies": {
|
|
130
|
+
"baileys": "npm:@gara31/void-baileys@latest"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 2. Install Dependensi
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npm install @gara31/void-baileys pino qrcode-terminal
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 3. Buat `index.js`
|
|
142
|
+
|
|
143
|
+
```js
|
|
144
|
+
import makeWASocket, {
|
|
145
|
+
useMultiFileAuthState,
|
|
146
|
+
DisconnectReason,
|
|
147
|
+
Browsers,
|
|
148
|
+
} from '@gara31/void-baileys'
|
|
149
|
+
import pino from 'pino'
|
|
150
|
+
import qrcode from 'qrcode-terminal'
|
|
151
|
+
|
|
152
|
+
const logger = pino({ level: 'silent' })
|
|
153
|
+
|
|
154
|
+
async function startBot() {
|
|
155
|
+
const { state, saveCreds } = await useMultiFileAuthState('./session')
|
|
156
|
+
|
|
157
|
+
const sock = makeWASocket({
|
|
158
|
+
auth: state,
|
|
159
|
+
logger,
|
|
160
|
+
browser: Browsers.ubuntu('Chrome'),
|
|
161
|
+
syncFullHistory: false,
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
sock.ev.on('creds.update', saveCreds)
|
|
165
|
+
|
|
166
|
+
sock.ev.on('connection.update', ({ connection, lastDisconnect, qr }) => {
|
|
167
|
+
if (qr) qrcode.generate(qr, { small: true })
|
|
168
|
+
|
|
169
|
+
if (connection === 'close') {
|
|
170
|
+
const shouldReconnect =
|
|
171
|
+
lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut
|
|
172
|
+
if (shouldReconnect) startBot()
|
|
173
|
+
}
|
|
174
|
+
if (connection === 'open') console.log('Terhubung!')
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
sock.ev.on('messages.upsert', async ({ messages }) => {
|
|
178
|
+
const msg = messages[0]
|
|
179
|
+
if (!msg?.message || msg.key.fromMe) return
|
|
180
|
+
|
|
181
|
+
const text =
|
|
182
|
+
msg.message.conversation || msg.message.extendedTextMessage?.text || ''
|
|
183
|
+
|
|
184
|
+
if (text === '.ping') {
|
|
185
|
+
await sock.sendMessage(msg.key.remoteJid, { text: 'Pong!' })
|
|
186
|
+
}
|
|
187
|
+
})
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
startBot()
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 4. Jalankan
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
node index.js
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Scan QR code, tunggu hingga socket mencapai `connection: "open"`, lalu kirim `.ping` untuk tes.
|
|
200
|
+
|
|
201
|
+
### 5. Contoh Pairing Code
|
|
202
|
+
|
|
203
|
+
```js
|
|
204
|
+
const sock = makeWASocket({
|
|
205
|
+
auth: state,
|
|
206
|
+
logger,
|
|
207
|
+
browser: Browsers.windows('Chrome'),
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
sock.ev.on('connection.update', async ({ connection }) => {
|
|
211
|
+
if (connection === 'connecting') {
|
|
212
|
+
const code = await sock.requestPairingCode('628xxxxxxxxx')
|
|
213
|
+
console.log('Pairing code:', code)
|
|
214
|
+
}
|
|
215
|
+
})
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 📡 Referensi API Socket
|
|
221
|
+
|
|
222
|
+
### Koneksi & Autentikasi
|
|
223
|
+
|
|
224
|
+
```js
|
|
225
|
+
const sock = makeWASocket({
|
|
226
|
+
auth: state,
|
|
227
|
+
logger,
|
|
228
|
+
browser: Browsers.ubuntu('Chrome'),
|
|
229
|
+
connectTimeoutMs: 20_000,
|
|
230
|
+
defaultQueryTimeoutMs: 60_000,
|
|
231
|
+
syncFullHistory: false,
|
|
232
|
+
})
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Kirim Pesan
|
|
236
|
+
|
|
237
|
+
```js
|
|
238
|
+
// Teks
|
|
239
|
+
await sock.sendMessage(jid, { text: 'Halo!' })
|
|
240
|
+
|
|
241
|
+
// Gambar
|
|
242
|
+
await sock.sendMessage(jid, {
|
|
243
|
+
image: { url: './foto.jpg' },
|
|
244
|
+
caption: 'Sebuah foto',
|
|
245
|
+
})
|
|
246
|
+
|
|
247
|
+
// Video
|
|
248
|
+
await sock.sendMessage(jid, {
|
|
249
|
+
video: { url: './video.mp4' },
|
|
250
|
+
caption: 'Sebuah video',
|
|
251
|
+
})
|
|
252
|
+
|
|
253
|
+
// Audio / Voice Note
|
|
254
|
+
await sock.sendMessage(jid, {
|
|
255
|
+
audio: { url: './audio.ogg' },
|
|
256
|
+
mimetype: 'audio/ogg; codecs=opus',
|
|
257
|
+
ptt: true,
|
|
258
|
+
})
|
|
259
|
+
|
|
260
|
+
// Stiker
|
|
261
|
+
await sock.sendMessage(jid, {
|
|
262
|
+
sticker: { url: './stiker.webp' },
|
|
263
|
+
})
|
|
264
|
+
|
|
265
|
+
// Dokumen
|
|
266
|
+
await sock.sendMessage(jid, {
|
|
267
|
+
document: { url: './file.pdf' },
|
|
268
|
+
fileName: 'dokumen.pdf',
|
|
269
|
+
mimetype: 'application/pdf',
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
// Reaksi
|
|
273
|
+
await sock.sendMessage(jid, {
|
|
274
|
+
react: { key: msg.key, text: '👍' },
|
|
275
|
+
})
|
|
276
|
+
|
|
277
|
+
// Polling
|
|
278
|
+
await sock.sendMessage(jid, {
|
|
279
|
+
poll: {
|
|
280
|
+
name: 'Vote!',
|
|
281
|
+
values: ['Opsi A', 'Opsi B', 'Opsi C'],
|
|
282
|
+
selectableCount: 1,
|
|
283
|
+
},
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
// Hapus pesan
|
|
287
|
+
await sock.sendMessage(jid, { delete: msg.key })
|
|
288
|
+
|
|
289
|
+
// Edit pesan
|
|
290
|
+
await sock.sendMessage(jid, {
|
|
291
|
+
text: 'Teks yang sudah diedit',
|
|
292
|
+
edit: msg.key,
|
|
293
|
+
})
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Pesan Interaktif
|
|
297
|
+
|
|
298
|
+
```js
|
|
299
|
+
// Tombol Flow
|
|
300
|
+
await sock.sendMessage(jid, {
|
|
301
|
+
interactiveMessage: {
|
|
302
|
+
title: 'Selamat Datang!',
|
|
303
|
+
footer: 'Powered by Void',
|
|
304
|
+
buttons: [
|
|
305
|
+
{
|
|
306
|
+
name: 'quick_reply',
|
|
307
|
+
buttonParamsJson: JSON.stringify({
|
|
308
|
+
display_text: 'Menu',
|
|
309
|
+
id: 'menu',
|
|
310
|
+
}),
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: 'cta_url',
|
|
314
|
+
buttonParamsJson: JSON.stringify({
|
|
315
|
+
display_text: 'Website',
|
|
316
|
+
url: 'https://example.com',
|
|
317
|
+
}),
|
|
318
|
+
},
|
|
319
|
+
],
|
|
320
|
+
header: 'Pilih opsi',
|
|
321
|
+
},
|
|
322
|
+
})
|
|
323
|
+
|
|
324
|
+
// List Menu
|
|
325
|
+
await sock.sendMessage(jid, {
|
|
326
|
+
interactiveMessage: {
|
|
327
|
+
title: 'Pilih Kategori',
|
|
328
|
+
footer: 'Powered by Void',
|
|
329
|
+
buttons: [
|
|
330
|
+
{
|
|
331
|
+
name: 'single_select',
|
|
332
|
+
buttonParamsJson: JSON.stringify({
|
|
333
|
+
title: 'Menu',
|
|
334
|
+
sections: [
|
|
335
|
+
{
|
|
336
|
+
title: 'Game',
|
|
337
|
+
rows: [
|
|
338
|
+
{ title: 'Kuis', id: '.kuis' },
|
|
339
|
+
{ title: 'Tebak Gambar', id: '.tebakgambar' },
|
|
340
|
+
],
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
}),
|
|
344
|
+
},
|
|
345
|
+
],
|
|
346
|
+
header: 'Menu Bot',
|
|
347
|
+
},
|
|
348
|
+
})
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Album Messages
|
|
352
|
+
|
|
353
|
+
```js
|
|
354
|
+
await sock.sendMessage(jid, {
|
|
355
|
+
albumMessage: [
|
|
356
|
+
{ image: { url: './foto1.jpg' }, caption: 'Pertama' },
|
|
357
|
+
{ image: { url: './foto2.jpg' }, caption: 'Kedua' },
|
|
358
|
+
{ video: { url: './klip.mp4' }, caption: 'Video' },
|
|
359
|
+
],
|
|
360
|
+
})
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### AI Rich Response
|
|
364
|
+
|
|
365
|
+
```js
|
|
366
|
+
// Tabel
|
|
367
|
+
await sock.sendTable(
|
|
368
|
+
jid,
|
|
369
|
+
'Java vs JavaScript',
|
|
370
|
+
['Fitur', 'Java', 'JavaScript'],
|
|
371
|
+
[
|
|
372
|
+
['Tipe', 'Compiled', 'Interpreted'],
|
|
373
|
+
['Typing', 'Static', 'Dynamic'],
|
|
374
|
+
['Kegunaan', 'Enterprise', 'Web, Full-stack'],
|
|
375
|
+
],
|
|
376
|
+
quoted,
|
|
377
|
+
{ headerText: 'Perbandingan:', footer: 'Semoga membantu!' }
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
// List
|
|
381
|
+
await sock.sendList(
|
|
382
|
+
jid,
|
|
383
|
+
'Info Bot',
|
|
384
|
+
[
|
|
385
|
+
['Nama', 'Void AI'],
|
|
386
|
+
['Versi', '7.0.0'],
|
|
387
|
+
['Developer', 'gara31'],
|
|
388
|
+
],
|
|
389
|
+
quoted,
|
|
390
|
+
{ footer: '© Void AI' }
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
// Code Block
|
|
394
|
+
await sock.sendCodeBlock(
|
|
395
|
+
jid,
|
|
396
|
+
`const salam = "Halo Dunia"
|
|
397
|
+
function kataSalam(nama) {
|
|
398
|
+
return salam + " " + nama
|
|
399
|
+
}
|
|
400
|
+
kataSalam("Void")`,
|
|
401
|
+
quoted,
|
|
402
|
+
{
|
|
403
|
+
language: 'javascript',
|
|
404
|
+
title: 'Contoh Kode',
|
|
405
|
+
footer: 'Powered by Void',
|
|
406
|
+
}
|
|
407
|
+
)
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### Metode Newsletter
|
|
411
|
+
|
|
412
|
+
```js
|
|
413
|
+
await sock.newsletterFollow('id@newsletter')
|
|
414
|
+
await sock.newsletterUnfollow('id@newsletter')
|
|
415
|
+
await sock.newsletterMute('id@newsletter')
|
|
416
|
+
await sock.newsletterUnmute('id@newsletter')
|
|
417
|
+
await sock.newsletterCreate('Saluran Saya', 'Deskripsi')
|
|
418
|
+
await sock.newsletterUpdate('id@newsletter', { name: 'Nama Baru' })
|
|
419
|
+
const { subscribers } = await sock.newsletterSubscribers('id@newsletter')
|
|
420
|
+
await sock.newsletterMultipleFollow('id1@newsletter id2@newsletter')
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### Metode Grup
|
|
424
|
+
|
|
425
|
+
```js
|
|
426
|
+
const meta = await sock.groupMetadata('id@g.us')
|
|
427
|
+
const grup = await sock.groupCreate('Grup Baru', ['628xxx@s.whatsapp.net'])
|
|
428
|
+
await sock.groupLeave('id@g.us')
|
|
429
|
+
await sock.groupUpdateSubject('id@g.us', 'Nama Baru')
|
|
430
|
+
await sock.groupUpdateDescription('id@g.us', 'Deskripsi Baru')
|
|
431
|
+
await sock.groupParticipantsUpdate('id@g.us', ['628xxx@s.whatsapp.net'], 'add')
|
|
432
|
+
const kode = await sock.groupInviteCode('id@g.us')
|
|
433
|
+
await sock.groupRevokeInvite('id@g.us')
|
|
434
|
+
await sock.groupSettingUpdate('id@g.us', 'announcement')
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
### Metode Komunitas
|
|
438
|
+
|
|
439
|
+
```js
|
|
440
|
+
const komunitas = await sock.communityCreate('Komunitas Kami', 'Deskripsi')
|
|
441
|
+
await sock.communityLinkGroup('groupid@g.us', 'communityid@g.us')
|
|
442
|
+
await sock.communityUnlinkGroup('groupid@g.us', 'communityid@g.us')
|
|
443
|
+
await sock.communityLeave('communityid@g.us')
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Pengaturan Privasi
|
|
447
|
+
|
|
448
|
+
```js
|
|
449
|
+
await sock.updateLastSeenPrivacy('all') // 'all' | 'contacts' | 'nobody'
|
|
450
|
+
await sock.updateOnlinePrivacy('all')
|
|
451
|
+
await sock.updateProfilePicturePrivacy('contacts')
|
|
452
|
+
await sock.updateStatusPrivacy('contacts')
|
|
453
|
+
await sock.updateReadReceiptsPrivacy('all') // 'all' | 'none'
|
|
454
|
+
await sock.updateGroupsAddPrivacy('all')
|
|
455
|
+
await sock.updateCallPrivacy('everyone')
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## 📡 Referensi Event
|
|
461
|
+
|
|
462
|
+
```js
|
|
463
|
+
sock.ev.on('connection.update', ({ connection, lastDisconnect, qr }) => {})
|
|
464
|
+
sock.ev.on('creds.update', (update) => {})
|
|
465
|
+
sock.ev.on('messages.upsert', ({ messages, type }) => {})
|
|
466
|
+
sock.ev.on('messages.update', (updates) => {})
|
|
467
|
+
sock.ev.on('messages.delete', (keys) => {})
|
|
468
|
+
sock.ev.on('messages.reaction', (reactions) => {})
|
|
469
|
+
sock.ev.on('groups.update', (updates) => {})
|
|
470
|
+
sock.ev.on('group-participants.update', (update) => {})
|
|
471
|
+
sock.ev.on('contacts.upsert', (contacts) => {})
|
|
472
|
+
sock.ev.on('contacts.update', (updates) => {})
|
|
473
|
+
sock.ev.on('chats.upsert', (chats) => {})
|
|
474
|
+
sock.ev.on('chats.update', (updates) => {})
|
|
475
|
+
sock.ev.on('call', (calls) => {})
|
|
476
|
+
sock.ev.on('newsletter.update', (updates) => {})
|
|
477
|
+
sock.ev.on('settings.update', (settings) => {})
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## 🔧 Utilitas
|
|
483
|
+
|
|
484
|
+
```js
|
|
485
|
+
import {
|
|
486
|
+
// Auth
|
|
487
|
+
useMultiFileAuthState,
|
|
488
|
+
makeCacheableSignalKeyStore,
|
|
489
|
+
initAuthCreds,
|
|
490
|
+
BufferJSON,
|
|
491
|
+
fetchLatestBaileysVersion,
|
|
492
|
+
|
|
493
|
+
// JID
|
|
494
|
+
jidEncode,
|
|
495
|
+
jidDecode,
|
|
496
|
+
jidNormalizedUser,
|
|
497
|
+
areJidsSameUser,
|
|
498
|
+
isJidGroup,
|
|
499
|
+
isJidNewsletter,
|
|
500
|
+
isJidBroadcast,
|
|
501
|
+
|
|
502
|
+
// Koneksi
|
|
503
|
+
DisconnectReason,
|
|
504
|
+
Browsers,
|
|
505
|
+
} from '@gara31/void-baileys'
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## 📄 Lisensi
|
|
511
|
+
|
|
512
|
+
MIT © [gara31](https://github.com/gara31)
|
|
513
|
+
|
|
514
|
+
> **Peringatan:** Library ini untuk keperluan edukasi. Pastikan penggunaannya sesuai dengan Syarat Layanan WhatsApp.
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
<div align="center">
|
|
519
|
+
|
|
520
|
+
**Dibuat dengan 💚 oleh gara31**
|
|
521
|
+
|
|
522
|
+
</div>
|