elynn-baileys 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +156 -69
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -673,17 +673,40 @@ async function sendLocation(sock, jid) {
673
673
  #### ◈ 5.14 · Live Location
674
674
 
675
675
  ```js
676
+ import { generateWAMessageFromContent } from 'elynn-baileys'
677
+
676
678
  async function sendLiveLocation(sock, jid) {
677
- await sock.sendMessage(jid, {
678
- liveLocation: {
679
+ const messageContent = {
680
+ locationMessage: {
679
681
  degreesLatitude: -6.2087634,
680
682
  degreesLongitude: 106.845599,
681
- accuracyInMeters: 10,
682
- speedInMps: 0,
683
- degreesClockwiseFromMagneticNorth: 0,
684
- caption: 'Saya sedang membagikan lokasi langsung',
685
- sequenceNumber: 1
683
+ name: 'Lokasi Terkini',
684
+ address: 'Berbagi Lokasi Langsung',
685
+ liveLocation: {
686
+ degreesLatitude: -6.2087634,
687
+ degreesLongitude: 106.845599,
688
+ accuracyInMeters: 10,
689
+ speedInMps: 0,
690
+ degreesClockwiseFromMagneticNorth: 0,
691
+ caption: 'Saya sedang membagikan lokasi langsung',
692
+ sequenceNumber: 1,
693
+ timeOffset: 3600
694
+ },
695
+ contextInfo: {
696
+ forwardingScore: 1,
697
+ isForwarded: false
698
+ }
686
699
  }
700
+ }
701
+
702
+ const generatedMessage = await generateWAMessageFromContent(
703
+ jid,
704
+ messageContent,
705
+ { userJid: sock.user.id }
706
+ )
707
+
708
+ await sock.relayMessage(jid, generatedMessage.message, {
709
+ messageId: generatedMessage.key.id
687
710
  })
688
711
  }
689
712
 
@@ -726,47 +749,69 @@ async function sendAlbum(sock, jid) {
726
749
  #### ◈ 5.17 · Interactive — Buttons (Native Flow)
727
750
 
728
751
  ```js
752
+ import { generateWAMessageFromContent } from 'elynn-baileys'
753
+
729
754
  async function sendInteractiveButtons(sock, jid) {
730
- await sock.sendMessage(jid, {
731
- interactive: {
732
- type: 'native_flow',
733
- header: { hasMediaAttachment: false },
734
- body: { text: 'Silakan pilih salah satu opsi di bawah ini untuk melanjutkan:' },
735
- footer: { text: 'elynn-baileys' },
736
- nativeFlowMessage: {
737
- buttons: [
738
- {
739
- name: 'quick_reply',
740
- buttonParamsJson: JSON.stringify({
741
- display_text: '✅ Konfirmasi Pesanan',
742
- id: 'btn_confirm_order'
743
- })
755
+ const messageContent = {
756
+ viewOnceMessage: {
757
+ message: {
758
+ interactiveMessage: {
759
+ header: {
760
+ hasMediaAttachment: false
744
761
  },
745
- {
746
- name: 'cta_url',
747
- buttonParamsJson: JSON.stringify({
748
- display_text: '🌐 Kunjungi Website Resmi',
749
- url: 'https://example.com',
750
- merchant_url: 'https://example.com'
751
- })
762
+ body: {
763
+ text: 'Silakan pilih salah satu opsi di bawah ini untuk melanjutkan:'
752
764
  },
753
- {
754
- name: 'cta_copy',
755
- buttonParamsJson: JSON.stringify({
756
- display_text: '📋 Salin Kode Promo',
757
- copy_code: 'ELYNN2026PROMO'
758
- })
765
+ footer: {
766
+ text: 'elynn-baileys'
759
767
  },
760
- {
761
- name: 'cta_call',
762
- buttonParamsJson: JSON.stringify({
763
- display_text: '📞 Hubungi Customer Service',
764
- phone_number: '+6281234567890'
765
- })
768
+ nativeFlowMessage: {
769
+ buttons: [
770
+ {
771
+ name: 'quick_reply',
772
+ buttonParamsJson: JSON.stringify({
773
+ display_text: '✅ Konfirmasi Pesanan',
774
+ id: 'btn_confirm_order'
775
+ })
776
+ },
777
+ {
778
+ name: 'cta_url',
779
+ buttonParamsJson: JSON.stringify({
780
+ display_text: '🌐 Kunjungi Website Resmi',
781
+ url: 'https://example.com',
782
+ merchant_url: 'https://example.com'
783
+ })
784
+ },
785
+ {
786
+ name: 'cta_copy',
787
+ buttonParamsJson: JSON.stringify({
788
+ display_text: '📋 Salin Kode Promo',
789
+ copy_code: 'ELYNN2026PROMO'
790
+ })
791
+ },
792
+ {
793
+ name: 'cta_call',
794
+ buttonParamsJson: JSON.stringify({
795
+ display_text: '📞 Hubungi Customer Service',
796
+ phone_number: '+6281234567890'
797
+ })
798
+ }
799
+ ],
800
+ messageVersion: 1
766
801
  }
767
- ]
802
+ }
768
803
  }
769
804
  }
805
+ }
806
+
807
+ const generatedMessage = await generateWAMessageFromContent(
808
+ jid,
809
+ messageContent,
810
+ { userJid: sock.user.id }
811
+ )
812
+
813
+ await sock.relayMessage(jid, generatedMessage.message, {
814
+ messageId: generatedMessage.key.id
770
815
  })
771
816
  }
772
817
 
@@ -775,37 +820,75 @@ async function sendInteractiveButtons(sock, jid) {
775
820
  #### ◈ 5.18 · Interactive — List
776
821
 
777
822
  ```js
823
+ import { generateWAMessageFromContent } from 'elynn-baileys'
824
+
778
825
  async function sendInteractiveList(sock, jid) {
779
- await sock.sendMessage(jid, {
780
- interactive: {
781
- type: 'native_flow',
782
- body: { text: 'Berikut adalah katalog produk kami. Silakan pilih kategori yang Anda inginkan:' },
783
- footer: { text: 'elynn-baileys' },
784
- nativeFlowMessage: {
785
- buttons: [{
786
- name: 'single_select',
787
- buttonParamsJson: JSON.stringify({
788
- title: '📋 Buka Katalog Menu',
789
- sections: [
790
- {
791
- title: '🍔 Makanan Utama',
792
- rows: [
793
- { id: 'menu_nasi_goreng', title: 'Nasi Goreng Spesial', description: 'Rp 25.000 - Ekstra Telur' },
794
- { id: 'menu_mie_goreng', title: 'Mie Goreng Seafood', description: 'Rp 30.000 - Udang & Cumi' }
795
- ]
796
- },
826
+ const messageContent = {
827
+ viewOnceMessage: {
828
+ message: {
829
+ interactiveMessage: {
830
+ body: {
831
+ text: 'Berikut adalah katalog produk kami. Silakan pilih kategori yang Anda inginkan:'
832
+ },
833
+ footer: {
834
+ text: 'elynn-baileys'
835
+ },
836
+ nativeFlowMessage: {
837
+ buttons: [
797
838
  {
798
- title: '🥤 Minuman Segar',
799
- rows: [
800
- { id: 'menu_es_teh', title: 'Es Teh Manis', description: 'Rp 5.000 - Gula Asli' },
801
- { id: 'menu_jus_jeruk', title: 'Jus Jeruk Peras', description: 'Rp 12.000 - Jeruk Murni' }
802
- ]
839
+ name: 'single_select',
840
+ buttonParamsJson: JSON.stringify({
841
+ title: '📋 Buka Katalog Menu',
842
+ sections: [
843
+ {
844
+ title: '🍔 Makanan Utama',
845
+ rows: [
846
+ {
847
+ id: 'menu_nasi_goreng',
848
+ title: 'Nasi Goreng Spesial',
849
+ description: 'Rp 25.000 - Ekstra Telur'
850
+ },
851
+ {
852
+ id: 'menu_mie_goreng',
853
+ title: 'Mie Goreng Seafood',
854
+ description: 'Rp 30.000 - Udang & Cumi'
855
+ }
856
+ ]
857
+ },
858
+ {
859
+ title: '🥤 Minuman Segar',
860
+ rows: [
861
+ {
862
+ id: 'menu_es_teh',
863
+ title: 'Es Teh Manis',
864
+ description: 'Rp 5.000 - Gula Asli'
865
+ },
866
+ {
867
+ id: 'menu_jus_jeruk',
868
+ title: 'Jus Jeruk Peras',
869
+ description: 'Rp 12.000 - Jeruk Murni'
870
+ }
871
+ ]
872
+ }
873
+ ]
874
+ })
803
875
  }
804
- ]
805
- })
806
- }]
876
+ ],
877
+ messageVersion: 1
878
+ }
879
+ }
807
880
  }
808
881
  }
882
+ }
883
+
884
+ const generatedMessage = await generateWAMessageFromContent(
885
+ jid,
886
+ messageContent,
887
+ { userJid: sock.user.id }
888
+ )
889
+
890
+ await sock.relayMessage(jid, generatedMessage.message, {
891
+ messageId: generatedMessage.key.id
809
892
  })
810
893
  }
811
894
 
@@ -1095,9 +1178,13 @@ async function sendEventWithReminder(sock, jid) {
1095
1178
  description: 'Kumpul bareng nonton final di basecamp ya, jangan telat!',
1096
1179
  startDate: new Date('2026-08-01T20:00:00+07:00'),
1097
1180
  endDate: new Date('2026-08-01T23:00:00+07:00'),
1098
- location: 'Basecamp Komunitas, Jl. Mawar No. 5',
1181
+ location: {
1182
+ degreesLatitude: -7.983908,
1183
+ degreesLongitude: 112.621391,
1184
+ name: 'Basecamp Komunitas, Jl. Mawar No. 5'
1185
+ },
1099
1186
  extraGuestsAllowed: true,
1100
- reminderOffsetSec: 3600 // ingatkan semua undangan 1 jam sebelum acara dimulai
1187
+ reminderOffsetSec: 3600
1101
1188
  }
1102
1189
  })
1103
1190
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elynn-baileys",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "elynn-baileys \u2014 WhatsApp + Telegram + Discord multi-platform library by elynn. Includes sessionGuard for IP-based session protection.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",