baileys-joss 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -2,29 +2,33 @@
2
2
  <img src="https://raw.githubusercontent.com/firdausmntp/Baileys-Joss/main/Media/logo.png" alt="Baileys-Joss" width="200"/>
3
3
  </p>
4
4
 
5
- <h1 align="center">Baileys-Joss</h1>
5
+ <h1 align="center">🚀 Baileys-Joss</h1>
6
6
 
7
7
  <p align="center">
8
- <b>🚀 WhatsApp Web API Library dengan Fitur Ekstra</b><br>
9
- Fork dari <a href="https://github.com/WhiskeySockets/Baileys">Baileys</a> dengan penambahan fitur Interactive Button, LID/SenderPn Plotting, dan lainnya.
8
+ <b>WhatsApp Web API Library dengan Fitur Ekstra Premium</b><br>
9
+ Fork dari <a href="https://github.com/WhiskeySockets/Baileys">Baileys</a> dengan penambahan fitur Interactive Button, Albums, AI Message, LID Plotting, dan lainnya.
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/v/baileys-joss?color=green&label=npm&style=flat-square" alt="npm version"/></a>
14
- <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dm/baileys-joss?color=blue&style=flat-square" alt="npm downloads"/></a>
15
- <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dt/baileys-joss?color=blue&style=flat-square" alt="npm total downloads"/></a>
16
- <a href="https://github.com/firdausmntp/Baileys-Joss/blob/main/LICENSE"><img src="https://img.shields.io/github/license/firdausmntp/Baileys-Joss?style=flat-square" alt="license"/></a>
17
- <a href="https://github.com/firdausmntp/Baileys-Joss/stargazers"><img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=flat-square" alt="stars"/></a>
18
- <a href="https://github.com/firdausmntp/Baileys-Joss/network/members"><img src="https://img.shields.io/github/forks/firdausmntp/Baileys-Joss?style=flat-square" alt="forks"/></a>
19
- <a href="https://github.com/firdausmntp/Baileys-Joss/issues"><img src="https://img.shields.io/github/issues/firdausmntp/Baileys-Joss?style=flat-square" alt="issues"/></a>
13
+ <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/v/baileys-joss?color=brightgreen&label=npm&style=for-the-badge&logo=npm" alt="npm version"/></a>
14
+ <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dm/baileys-joss?color=blue&style=for-the-badge&logo=npm" alt="npm downloads"/></a>
15
+ <a href="https://www.npmjs.com/package/baileys-joss"><img src="https://img.shields.io/npm/dt/baileys-joss?color=blue&style=for-the-badge" alt="npm total downloads"/></a>
20
16
  </p>
21
17
 
22
18
  <p align="center">
23
- <a href="#-installation">Installation</a>
24
- <a href="#-features">Features</a>
25
- <a href="#-quick-start">Quick Start</a>
26
- <a href="#-api-reference">API</a>
27
- <a href="#-contributing">Contributing</a>
19
+ <a href="https://github.com/firdausmntp/Baileys-Joss/blob/main/LICENSE"><img src="https://img.shields.io/github/license/firdausmntp/Baileys-Joss?style=for-the-badge&logo=opensourceinitiative&logoColor=white" alt="license"/></a>
20
+ <a href="https://github.com/firdausmntp/Baileys-Joss/stargazers"><img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=gold" alt="stars"/></a>
21
+ <a href="https://github.com/firdausmntp/Baileys-Joss/network/members"><img src="https://img.shields.io/github/forks/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=purple" alt="forks"/></a>
22
+ <a href="https://github.com/firdausmntp/Baileys-Joss/issues"><img src="https://img.shields.io/github/issues/firdausmntp/Baileys-Joss?style=for-the-badge&logo=github&color=red" alt="issues"/></a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="#-installation">📦 Installation</a> •
27
+ <a href="#-features">✨ Features</a> •
28
+ <a href="#-quick-start">🚀 Quick Start</a> •
29
+ <a href="#-use-case-examples">💡 Examples</a> •
30
+ <a href="#-api-reference">📋 API</a> •
31
+ <a href="#-contributing">🤝 Contributing</a>
28
32
  </p>
29
33
 
30
34
  <p align="center">
@@ -37,15 +41,83 @@
37
41
 
38
42
  ## ✨ Kenapa Baileys-Joss?
39
43
 
40
- | Feature | Baileys Original | Baileys-Joss |
41
- |---------|:----------------:|:------------:|
42
- | Interactive Buttons | ❌ | ✅ |
43
- | List Messages | ❌ | ✅ |
44
- | Copy Code Button | ❌ | ✅ |
45
- | URL Buttons | ❌ | ✅ |
46
- | LID/SenderPn Plotting | ❌ | ✅ |
47
- | Combined Button Types | ❌ | ✅ |
48
- | Native Flow Messages | ❌ | ✅ |
44
+ <table>
45
+ <tr>
46
+ <th align="center">🎯 Feature</th>
47
+ <th align="center">Baileys Original</th>
48
+ <th align="center">Baileys-Joss</th>
49
+ </tr>
50
+ <tr>
51
+ <td>🖱️ Interactive Buttons</td>
52
+ <td align="center">❌</td>
53
+ <td align="center">✅</td>
54
+ </tr>
55
+ <tr>
56
+ <td>📋 List Messages</td>
57
+ <td align="center">❌</td>
58
+ <td align="center">✅</td>
59
+ </tr>
60
+ <tr>
61
+ <td>📋 Copy Code Button</td>
62
+ <td align="center">❌</td>
63
+ <td align="center">✅</td>
64
+ </tr>
65
+ <tr>
66
+ <td>🔗 URL Buttons</td>
67
+ <td align="center">❌</td>
68
+ <td align="center">✅</td>
69
+ </tr>
70
+ <tr>
71
+ <td>🔄 Combined Button Types</td>
72
+ <td align="center">❌</td>
73
+ <td align="center">✅</td>
74
+ </tr>
75
+ <tr>
76
+ <td>🎨 Native Flow Messages</td>
77
+ <td align="center">❌</td>
78
+ <td align="center">✅</td>
79
+ </tr>
80
+ <tr>
81
+ <td>👤 LID/SenderPn Plotting</td>
82
+ <td align="center">❌</td>
83
+ <td align="center">✅</td>
84
+ </tr>
85
+ <tr>
86
+ <td>🖼️ Album Messages</td>
87
+ <td align="center">❌</td>
88
+ <td align="center">✅</td>
89
+ </tr>
90
+ <tr>
91
+ <td>🤖 AI Message Style</td>
92
+ <td align="center">❌</td>
93
+ <td align="center">✅</td>
94
+ </tr>
95
+ <tr>
96
+ <td>📊 Poll Creation</td>
97
+ <td align="center">✅</td>
98
+ <td align="center">✅ Enhanced</td>
99
+ </tr>
100
+ <tr>
101
+ <td>📢 Newsletter/Channel Control</td>
102
+ <td align="center">✅</td>
103
+ <td align="center">✅ Enhanced</td>
104
+ </tr>
105
+ <tr>
106
+ <td>🔐 Custom Pairing Code</td>
107
+ <td align="center">❌</td>
108
+ <td align="center">✅</td>
109
+ </tr>
110
+ <tr>
111
+ <td>📷 HD Profile Pictures</td>
112
+ <td align="center">✅</td>
113
+ <td align="center">✅</td>
114
+ </tr>
115
+ <tr>
116
+ <td>🔧 Fixed Button Delivery</td>
117
+ <td align="center">❌</td>
118
+ <td align="center">✅</td>
119
+ </tr>
120
+ </table>
49
121
 
50
122
  ---
51
123
 
@@ -62,11 +134,33 @@ yarn add baileys-joss
62
134
  pnpm add baileys-joss
63
135
  ```
64
136
 
137
+ <details>
138
+ <summary><b>📦 Via package.json (Fork Override)</b></summary>
139
+
140
+ ```json
141
+ // Untuk mengganti @whiskeysockets/baileys
142
+ {
143
+ "dependencies": {
144
+ "@whiskeysockets/baileys": "npm:baileys-joss"
145
+ }
146
+ }
147
+
148
+ // Untuk mengganti @adiwajshing/baileys
149
+ {
150
+ "dependencies": {
151
+ "@adiwajshing/baileys": "npm:baileys-joss"
152
+ }
153
+ }
154
+ ```
155
+
156
+ </details>
157
+
65
158
  ---
66
159
 
67
160
  ## 🎯 Features
68
161
 
69
- ### 1. 🎛️ Interactive Messages & Buttons
162
+ <details open>
163
+ <summary><h3>🖱️ Interactive Messages & Buttons</h3></summary>
70
164
 
71
165
  Fitur button interactive yang lebih lengkap dan mudah digunakan:
72
166
 
@@ -153,7 +247,143 @@ const listMessage = generateInteractiveListMessage({
153
247
  await sock.sendMessage(jid, listMessage)
154
248
  ```
155
249
 
156
- ### 2. 📍 LID & SenderPn Plotting
250
+ </details>
251
+
252
+ <details>
253
+ <summary><h3>🖼️ Album Messages (Carousel)</h3></summary>
254
+
255
+ Kirim beberapa gambar/video sekaligus dalam format album:
256
+
257
+ ```typescript
258
+ // Send Album (grouped images/videos)
259
+ const albumMedia = [
260
+ { image: { url: 'https://example.com/pic1.jpg' }, caption: 'Photo 1' },
261
+ { image: { url: 'https://example.com/pic2.jpg' }, caption: 'Photo 2' },
262
+ { video: { url: 'https://example.com/video.mp4' }, caption: 'Video' }
263
+ ]
264
+
265
+ await sock.sendMessage(jid, {
266
+ album: albumMedia,
267
+ caption: 'My Album 📸'
268
+ })
269
+
270
+ // Album dari file lokal
271
+ const localAlbum = [
272
+ { image: fs.readFileSync('./image1.jpg') },
273
+ { image: fs.readFileSync('./image2.jpg') },
274
+ { video: fs.readFileSync('./video.mp4'), gifPlayback: true }
275
+ ]
276
+
277
+ await sock.sendMessage(jid, { album: localAlbum })
278
+ ```
279
+
280
+ </details>
281
+
282
+ <details>
283
+ <summary><h3>🤖 AI Message Style</h3></summary>
284
+
285
+ Tambahkan ikon AI stylish pada pesan:
286
+
287
+ ```typescript
288
+ // Kirim pesan dengan AI icon
289
+ await sock.sendMessage(jid, {
290
+ text: 'Halo! Saya adalah asisten AI Anda 🤖',
291
+ ai: true // Menampilkan ikon AI pada pesan
292
+ })
293
+
294
+ // AI dengan media
295
+ await sock.sendMessage(jid, {
296
+ image: { url: 'https://example.com/ai-generated.jpg' },
297
+ caption: 'Generated by AI',
298
+ ai: true
299
+ })
300
+ ```
301
+
302
+ </details>
303
+
304
+ <details>
305
+ <summary><h3>📊 Poll Creation</h3></summary>
306
+
307
+ Buat polling dengan mudah:
308
+
309
+ ```typescript
310
+ // Create a Poll
311
+ const pollMessage = {
312
+ name: '🎨 Warna Favorit?',
313
+ values: ['🔴 Merah', '🔵 Biru', '🟢 Hijau', '🟡 Kuning'],
314
+ selectableCount: 1 // Jumlah pilihan yang bisa dipilih
315
+ }
316
+
317
+ await sock.sendMessage(jid, { poll: pollMessage })
318
+
319
+ // Multi-select Poll
320
+ const multiPoll = {
321
+ name: '🍕 Topping Pizza Favorit?',
322
+ values: ['Pepperoni', 'Mushroom', 'Cheese', 'Olive', 'Bacon'],
323
+ selectableCount: 3 // Bisa pilih hingga 3 opsi
324
+ }
325
+
326
+ await sock.sendMessage(jid, { poll: multiPoll })
327
+ ```
328
+
329
+ </details>
330
+
331
+ <details>
332
+ <summary><h3>📢 Newsletter/Channel Control</h3></summary>
333
+
334
+ Kelola WhatsApp Channel dengan lengkap:
335
+
336
+ ```typescript
337
+ // Create Newsletter/Channel
338
+ await sock.newsletterCreate('My Channel', 'Channel description')
339
+
340
+ // Update channel info
341
+ await sock.newsletterUpdateName(channelJid, 'New Channel Name')
342
+ await sock.newsletterUpdateDescription(channelJid, 'Updated description')
343
+ await sock.newsletterUpdatePicture(channelJid, { url: 'https://example.com/pic.jpg' })
344
+
345
+ // Follow/Unfollow
346
+ await sock.newsletterFollow(channelJid)
347
+ await sock.newsletterUnfollow(channelJid)
348
+
349
+ // Mute/Unmute
350
+ await sock.newsletterMute(channelJid)
351
+ await sock.newsletterUnmute(channelJid)
352
+
353
+ // Send reaction to channel message
354
+ await sock.newsletterReactMessage(channelJid, 'server_id', '🔥')
355
+
356
+ // Get channel metadata
357
+ const metadata = await sock.newsletterMetadata('jid', channelJid)
358
+ console.log('Subscribers:', metadata.subscribers)
359
+
360
+ // Admin operations
361
+ await sock.newsletterChangeOwner(channelJid, newOwnerLid)
362
+ await sock.newsletterDemote(channelJid, adminLid)
363
+ const adminCount = await sock.newsletterAdminCount(channelJid)
364
+ ```
365
+
366
+ </details>
367
+
368
+ <details>
369
+ <summary><h3>🔐 Custom Pairing Code</h3></summary>
370
+
371
+ Generate custom alphanumeric pairing code:
372
+
373
+ ```typescript
374
+ // Standard pairing code
375
+ const code = await sock.requestPairingCode('6281234567890')
376
+ console.log('Your Pairing Code:', code)
377
+
378
+ // Custom alphanumeric pairing code
379
+ const customCode = await sock.requestPairingCode('6281234567890', 'MYCODE12')
380
+ console.log('Your Custom Code:', customCode)
381
+ ```
382
+
383
+ </details>
384
+
385
+ <details>
386
+ <summary><h3>📍 LID & SenderPn Plotting</h3></summary>
157
387
 
158
388
  Utilities untuk mengelola JID, LID (Linked ID), dan senderPn:
159
389
 
@@ -226,6 +456,63 @@ console.log('Phone:', plotted.pn)
226
456
  console.log('LID:', plotted.lid)
227
457
  ```
228
458
 
459
+ </details>
460
+
461
+ <details>
462
+ <summary><h3>📍 Location Sharing</h3></summary>
463
+
464
+ Kirim lokasi dengan mudah:
465
+
466
+ ```typescript
467
+ // Send location
468
+ await sock.sendMessage(jid, {
469
+ location: {
470
+ degreesLatitude: -6.2088,
471
+ degreesLongitude: 106.8456,
472
+ name: 'Jakarta, Indonesia',
473
+ address: 'Jl. Sudirman, Jakarta Pusat'
474
+ }
475
+ })
476
+ ```
477
+
478
+ </details>
479
+
480
+ <details>
481
+ <summary><h3>👥 Group Management</h3></summary>
482
+
483
+ Kelola grup dengan lengkap:
484
+
485
+ ```typescript
486
+ // Create group
487
+ const group = await sock.groupCreate('My Group', ['6281234567890@s.whatsapp.net'])
488
+
489
+ // Update group info
490
+ await sock.groupUpdateSubject(groupJid, 'New Group Name')
491
+ await sock.groupUpdateDescription(groupJid, 'New description')
492
+
493
+ // Manage participants
494
+ await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'add')
495
+ await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'remove')
496
+ await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'promote')
497
+ await sock.groupParticipantsUpdate(groupJid, ['6281234567890@s.whatsapp.net'], 'demote')
498
+
499
+ // Get group metadata
500
+ const metadata = await sock.groupMetadata(groupJid)
501
+ console.log('Group Name:', metadata.subject)
502
+ console.log('Members:', metadata.participants.length)
503
+
504
+ // Group settings
505
+ await sock.groupSettingUpdate(groupJid, 'announcement') // Only admins can send
506
+ await sock.groupSettingUpdate(groupJid, 'not_announcement') // Everyone can send
507
+ await sock.groupSettingUpdate(groupJid, 'locked') // Only admins can edit info
508
+ await sock.groupSettingUpdate(groupJid, 'unlocked') // Everyone can edit info
509
+
510
+ // Leave group
511
+ await sock.groupLeave(groupJid)
512
+ ```
513
+
514
+ </details>
515
+
229
516
  ---
230
517
 
231
518
  ## 🚀 Quick Start
@@ -263,11 +550,11 @@ async function startBot() {
263
550
  startBot()
264
551
  }
265
552
  } else if (connection === 'open') {
266
- console.log('Connected!')
553
+ console.log('Connected!')
267
554
 
268
555
  // Get sender info
269
556
  const sender = getCurrentSenderInfo(sock.authState)
270
- console.log('Logged in as:', sender?.phoneNumber)
557
+ console.log('📱 Logged in as:', sender?.phoneNumber)
271
558
  }
272
559
  })
273
560
 
@@ -292,6 +579,25 @@ async function startBot() {
292
579
 
293
580
  await sock.sendMessage(msg.key.remoteJid!, buttons)
294
581
  }
582
+
583
+ if (text === '/poll') {
584
+ // Kirim poll
585
+ await sock.sendMessage(msg.key.remoteJid!, {
586
+ poll: {
587
+ name: '🗳️ Vote sekarang!',
588
+ values: ['Option A', 'Option B', 'Option C'],
589
+ selectableCount: 1
590
+ }
591
+ })
592
+ }
593
+
594
+ if (text === '/ai') {
595
+ // Kirim pesan dengan AI style
596
+ await sock.sendMessage(msg.key.remoteJid!, {
597
+ text: 'Halo! Saya asisten AI Anda 🤖',
598
+ ai: true
599
+ })
600
+ }
295
601
  })
296
602
  }
297
603
 
@@ -300,9 +606,147 @@ startBot()
300
606
 
301
607
  ---
302
608
 
609
+ ## 💡 Use Case Examples
610
+
611
+ <details>
612
+ <summary><b>📬 Newsletter Control</b></summary>
613
+
614
+ ```typescript
615
+ // Create a newsletter
616
+ await sock.newsletterCreate('My Updates Channel', 'Stay updated!')
617
+
618
+ // Update description
619
+ await sock.newsletterUpdateDescription(channelJid, 'Fresh updates weekly 🔥')
620
+
621
+ // Send reaction to channel message
622
+ await sock.newsletterReactMessage(channelJid, 'server_id', '❤️')
623
+
624
+ // Fetch channel messages
625
+ const messages = await sock.newsletterFetchMessages('jid', channelJid, 10)
626
+ ```
627
+
628
+ </details>
629
+
630
+ <details>
631
+ <summary><b>📌 Interactive Messaging</b></summary>
632
+
633
+ ```typescript
634
+ // Native Flow Buttons
635
+ const buttons = generateCombinedButtons(
636
+ 'Welcome to our service! 🎉',
637
+ [
638
+ { type: 'reply', displayText: '📋 View Menu', id: 'menu' },
639
+ { type: 'url', displayText: '🌐 Visit Website', url: 'https://example.com' },
640
+ { type: 'call', displayText: '📞 Call Us', phoneNumber: '+1234567890' },
641
+ { type: 'copy', displayText: '📋 Copy Promo', copyCode: 'SAVE20' }
642
+ ],
643
+ { title: 'Welcome!', footer: 'Powered by Baileys-Joss' }
644
+ )
645
+
646
+ await sock.sendMessage(jid, buttons)
647
+ ```
648
+
649
+ </details>
650
+
651
+ <details>
652
+ <summary><b>🖼️ Send Album</b></summary>
653
+
654
+ ```typescript
655
+ const media = [
656
+ { image: { url: 'https://example.com/pic1.jpg' }, caption: 'Photo 1 📸' },
657
+ { image: { url: 'https://example.com/pic2.jpg' }, caption: 'Photo 2 📸' },
658
+ { video: { url: 'https://example.com/clip.mp4' }, caption: 'Video 🎬' }
659
+ ]
660
+
661
+ await sock.sendMessage(jid, {
662
+ album: media,
663
+ caption: 'My Vacation Memories 🌴'
664
+ })
665
+ ```
666
+
667
+ </details>
668
+
669
+ <details>
670
+ <summary><b>🔐 Pairing with Custom Code</b></summary>
671
+
672
+ ```typescript
673
+ // Request standard pairing code
674
+ const code = await sock.requestPairingCode('6281234567890')
675
+ console.log('Your Pairing Code:', code)
676
+
677
+ // Request custom pairing code
678
+ const customCode = await sock.requestPairingCode('6281234567890', 'BAILEYS1')
679
+ console.log('Your Custom Code:', customCode)
680
+ ```
681
+
682
+ </details>
683
+
684
+ <details>
685
+ <summary><b>📊 Poll Creation</b></summary>
686
+
687
+ ```typescript
688
+ const pollMessage = {
689
+ name: '🎬 Film Favorit Weekend Ini?',
690
+ values: [
691
+ '🦸 Superhero Movie',
692
+ '😂 Comedy',
693
+ '😱 Horror',
694
+ '💑 Romance'
695
+ ],
696
+ selectableCount: 1
697
+ }
698
+
699
+ await sock.sendMessage(jid, { poll: pollMessage })
700
+ ```
701
+
702
+ </details>
703
+
704
+ <details>
705
+ <summary><b>📍 Location Sharing</b></summary>
706
+
707
+ ```typescript
708
+ await sock.sendMessage(jid, {
709
+ location: {
710
+ degreesLatitude: -6.2088,
711
+ degreesLongitude: 106.8456,
712
+ name: 'Monas Jakarta',
713
+ address: 'Jalan Medan Merdeka, Jakarta Pusat'
714
+ }
715
+ })
716
+ ```
717
+
718
+ </details>
719
+
720
+ <details>
721
+ <summary><b>👥 Group Management</b></summary>
722
+
723
+ ```typescript
724
+ // Create group
725
+ const group = await sock.groupCreate('My Awesome Group', [
726
+ '6281234567890@s.whatsapp.net',
727
+ '6281234567891@s.whatsapp.net'
728
+ ])
729
+
730
+ console.log('Group created:', group.id)
731
+
732
+ // Update group settings
733
+ await sock.groupUpdateSubject(group.id, 'Updated Group Name')
734
+ await sock.groupSettingUpdate(group.id, 'announcement')
735
+
736
+ // Add members
737
+ await sock.groupParticipantsUpdate(group.id, [
738
+ '6281234567892@s.whatsapp.net'
739
+ ], 'add')
740
+ ```
741
+
742
+ </details>
743
+
744
+ ---
745
+
303
746
  ## 📋 API Reference
304
747
 
305
- ### Interactive Messages
748
+ <details>
749
+ <summary><b>🖱️ Interactive Messages</b></summary>
306
750
 
307
751
  | Function | Description |
308
752
  |----------|-------------|
@@ -315,7 +759,10 @@ startBot()
315
759
  | `generateQuickReplyButtons()` | Quick reply buttons |
316
760
  | `generateCombinedButtons()` | Gabungan berbagai jenis button |
317
761
 
318
- ### JID Plotting
762
+ </details>
763
+
764
+ <details>
765
+ <summary><b>📍 JID Plotting</b></summary>
319
766
 
320
767
  | Function | Description |
321
768
  |----------|-------------|
@@ -333,17 +780,112 @@ startBot()
333
780
  | `getRemoteJidFromMessage()` | Get remoteJid dari message |
334
781
  | `createJidPlotter()` | Create plotter dengan LID mapping support |
335
782
 
783
+ </details>
784
+
785
+ <details>
786
+ <summary><b>📢 Newsletter/Channel</b></summary>
787
+
788
+ | Function | Description |
789
+ |----------|-------------|
790
+ | `newsletterCreate()` | Buat channel baru |
791
+ | `newsletterUpdateName()` | Update nama channel |
792
+ | `newsletterUpdateDescription()` | Update deskripsi channel |
793
+ | `newsletterUpdatePicture()` | Update foto channel |
794
+ | `newsletterFollow()` | Follow channel |
795
+ | `newsletterUnfollow()` | Unfollow channel |
796
+ | `newsletterMute()` | Mute notifikasi channel |
797
+ | `newsletterUnmute()` | Unmute notifikasi channel |
798
+ | `newsletterReactMessage()` | React ke pesan channel |
799
+ | `newsletterMetadata()` | Get metadata channel |
800
+ | `newsletterAdminCount()` | Get jumlah admin |
801
+ | `newsletterChangeOwner()` | Ganti owner channel |
802
+ | `newsletterDemote()` | Demote admin channel |
803
+ | `newsletterDelete()` | Hapus channel |
804
+
805
+ </details>
806
+
807
+ <details>
808
+ <summary><b>👥 Group Management</b></summary>
809
+
810
+ | Function | Description |
811
+ |----------|-------------|
812
+ | `groupCreate()` | Buat grup baru |
813
+ | `groupUpdateSubject()` | Update nama grup |
814
+ | `groupUpdateDescription()` | Update deskripsi grup |
815
+ | `groupParticipantsUpdate()` | Add/remove/promote/demote member |
816
+ | `groupSettingUpdate()` | Update pengaturan grup |
817
+ | `groupMetadata()` | Get metadata grup |
818
+ | `groupLeave()` | Keluar dari grup |
819
+ | `groupInviteCode()` | Get kode invite grup |
820
+ | `groupAcceptInvite()` | Join grup via invite code |
821
+
822
+ </details>
823
+
824
+ <details>
825
+ <summary><b>💬 Message Types</b></summary>
826
+
827
+ | Type | Description |
828
+ |------|-------------|
829
+ | `text` | Pesan teks biasa |
830
+ | `image` | Kirim gambar |
831
+ | `video` | Kirim video |
832
+ | `audio` | Kirim audio |
833
+ | `document` | Kirim dokumen |
834
+ | `sticker` | Kirim sticker |
835
+ | `location` | Kirim lokasi |
836
+ | `contacts` | Kirim kontak |
837
+ | `poll` | Buat polling |
838
+ | `album` | Kirim album (multiple media) |
839
+ | `react` | React ke pesan |
840
+ | `edit` | Edit pesan |
841
+ | `delete` | Hapus pesan |
842
+
843
+ </details>
844
+
845
+ ---
846
+
847
+ ## 🔄 Changelog
848
+
849
+ <details>
850
+ <summary><b>v1.0.1</b> - Latest</summary>
851
+
852
+ - ✨ Added Album Messages support (carousel format)
853
+ - ✨ Added AI Message Style (`ai: true`) - shows AI indicator on messages
854
+ - ✨ Added Custom Pairing Code support
855
+ - ✨ Enhanced Newsletter/Channel control
856
+ - ✨ Enhanced Poll creation
857
+ - 🔧 **Fixed Interactive Buttons** - Added `biz` node for proper button rendering
858
+ - 🔧 Fixed List Messages delivery
859
+ - 🎨 Improved documentation with collapsible sections
860
+ - 🐛 Bug fixes and stability improvements
861
+
862
+ </details>
863
+
864
+ <details>
865
+ <summary><b>v1.0.0</b></summary>
866
+
867
+ - 🎉 Initial release
868
+ - ✨ Interactive Buttons support
869
+ - ✨ List Messages support
870
+ - ✨ Copy Code Button
871
+ - ✨ URL Buttons
872
+ - ✨ Combined Button Types
873
+ - ✨ Native Flow Messages
874
+ - ✨ LID/SenderPn Plotting utilities
875
+
876
+ </details>
877
+
336
878
  ---
337
879
 
338
880
  ## 🤝 Contributing
339
881
 
340
882
  Kontribusi sangat diterima! Silahkan:
341
883
 
342
- 1. Fork repository ini
343
- 2. Buat branch fitur (`git checkout -b feature/AmazingFeature`)
344
- 3. Commit changes (`git commit -m 'Add some AmazingFeature'`)
345
- 4. Push ke branch (`git push origin feature/AmazingFeature`)
346
- 5. Buka Pull Request
884
+ 1. 🍴 Fork repository ini
885
+ 2. 🌿 Buat branch fitur (`git checkout -b feature/AmazingFeature`)
886
+ 3. 💾 Commit changes (`git commit -m 'Add some AmazingFeature'`)
887
+ 4. 📤 Push ke branch (`git push origin feature/AmazingFeature`)
888
+ 5. 🔃 Buka Pull Request
347
889
 
348
890
  ---
349
891
 
@@ -351,11 +893,21 @@ Kontribusi sangat diterima! Silahkan:
351
893
 
352
894
  Jika project ini membantu, berikan ⭐ di [GitHub](https://github.com/firdausmntp/Baileys-Joss)!
353
895
 
896
+ <p align="center">
897
+ <a href="https://github.com/firdausmntp/Baileys-Joss/stargazers">
898
+ <img src="https://img.shields.io/github/stars/firdausmntp/Baileys-Joss?style=social" alt="GitHub Stars"/>
899
+ </a>
900
+ </p>
901
+
354
902
  ---
355
903
 
356
904
  ## ⚠️ Disclaimer
357
905
 
358
- Proyek ini tidak berafiliasi dengan WhatsApp. Gunakan dengan tanggung jawab dan sesuai dengan Terms of Service WhatsApp. **Jangan spam!**
906
+ > **Peringatan:** Proyek ini tidak berafiliasi dengan WhatsApp atau Meta. Gunakan dengan tanggung jawab dan sesuai dengan Terms of Service WhatsApp.
907
+ >
908
+ > ❌ **Jangan spam!**
909
+ > ❌ **Jangan abuse API!**
910
+ > ✅ **Gunakan untuk keperluan yang baik!**
359
911
 
360
912
  ---
361
913
 
@@ -367,11 +919,31 @@ MIT License - Lihat file [LICENSE](LICENSE) untuk detail.
367
919
 
368
920
  ## 🙏 Credits
369
921
 
370
- - [Baileys Original](https://github.com/WhiskeySockets/Baileys) - Base library
371
- - [WhiskeySockets](https://github.com/WhiskeySockets) - Maintainer Baileys
922
+ <table>
923
+ <tr>
924
+ <td align="center">
925
+ <a href="https://github.com/WhiskeySockets/Baileys">
926
+ <b>Baileys Original</b>
927
+ </a>
928
+ <br>Base library
929
+ </td>
930
+ <td align="center">
931
+ <a href="https://github.com/WhiskeySockets">
932
+ <b>WhiskeySockets</b>
933
+ </a>
934
+ <br>Maintainer Baileys
935
+ </td>
936
+ </tr>
937
+ </table>
372
938
 
373
939
  ---
374
940
 
375
941
  <p align="center">
376
- Made with ❤️ by <a href="https://github.com/firdausmntp">firdausmntp</a>
942
+ <b>Made with ❤️ by <a href="https://github.com/firdausmntp">firdausmntp</a></b>
943
+ </p>
944
+
945
+ <p align="center">
946
+ <img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript"/>
947
+ <img src="https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white" alt="Node.js"/>
948
+ <img src="https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white" alt="WhatsApp"/>
377
949
  </p>