@neelegirl/baileys 1.5.2 → 1.5.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 (193) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +195 -187
  3. package/WAProto/WAProto.proto +537 -236
  4. package/WAProto/index.d.ts +5971 -2388
  5. package/WAProto/index.js +17298 -6513
  6. package/lib/Defaults/baileys-version.json +3 -3
  7. package/lib/Defaults/index.d.ts +77 -67
  8. package/lib/Defaults/index.js +148 -136
  9. package/lib/Defaults/phonenumber-mcc.json +223 -223
  10. package/lib/Signal/WASignalGroup/GroupProtocol.js +1908 -1908
  11. package/lib/Signal/WASignalGroup/ciphertext-message.d.ts +9 -0
  12. package/lib/Signal/WASignalGroup/ciphertext-message.js +19 -0
  13. package/lib/Signal/WASignalGroup/ciphertext_message.js +15 -15
  14. package/lib/Signal/WASignalGroup/group-session-builder.d.ts +17 -0
  15. package/lib/Signal/WASignalGroup/group-session-builder.js +72 -0
  16. package/lib/Signal/WASignalGroup/group.proto +41 -41
  17. package/lib/Signal/WASignalGroup/group_cipher.d.ts +19 -0
  18. package/lib/Signal/WASignalGroup/group_cipher.js +101 -110
  19. package/lib/Signal/WASignalGroup/group_session_builder.js +45 -45
  20. package/lib/Signal/WASignalGroup/index.d.ts +11 -0
  21. package/lib/Signal/WASignalGroup/index.js +61 -6
  22. package/lib/Signal/WASignalGroup/keyhelper.d.ts +16 -0
  23. package/lib/Signal/WASignalGroup/keyhelper.js +58 -13
  24. package/lib/Signal/WASignalGroup/protobufs.js +2 -2
  25. package/lib/Signal/WASignalGroup/queue_job.js +68 -68
  26. package/lib/Signal/WASignalGroup/readme.md +5 -5
  27. package/lib/Signal/WASignalGroup/sender-chain-key.d.ts +14 -0
  28. package/lib/Signal/WASignalGroup/sender-chain-key.js +47 -0
  29. package/lib/Signal/WASignalGroup/sender-key-distribution-message.d.ts +17 -0
  30. package/lib/Signal/WASignalGroup/sender-key-distribution-message.js +71 -0
  31. package/lib/Signal/WASignalGroup/sender-key-message.d.ts +19 -0
  32. package/lib/Signal/WASignalGroup/sender-key-message.js +73 -0
  33. package/lib/Signal/WASignalGroup/sender-key-name.d.ts +19 -0
  34. package/lib/Signal/WASignalGroup/sender-key-name.js +59 -0
  35. package/lib/Signal/WASignalGroup/sender-key-record.d.ts +32 -0
  36. package/lib/Signal/WASignalGroup/sender-key-record.js +58 -0
  37. package/lib/Signal/WASignalGroup/sender-key-state.d.ts +44 -0
  38. package/lib/Signal/WASignalGroup/sender-key-state.js +147 -0
  39. package/lib/Signal/WASignalGroup/sender-message-key.d.ts +11 -0
  40. package/lib/Signal/WASignalGroup/sender-message-key.js +33 -0
  41. package/lib/Signal/WASignalGroup/sender_chain_key.js +49 -49
  42. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +77 -77
  43. package/lib/Signal/WASignalGroup/sender_key_message.js +91 -91
  44. package/lib/Signal/WASignalGroup/sender_key_name.js +69 -69
  45. package/lib/Signal/WASignalGroup/sender_key_record.js +55 -55
  46. package/lib/Signal/WASignalGroup/sender_key_state.js +128 -128
  47. package/lib/Signal/WASignalGroup/sender_message_key.js +38 -38
  48. package/lib/Signal/libsignal.d.ts +5 -1
  49. package/lib/Signal/libsignal.js +390 -161
  50. package/lib/Signal/lid-mapping.d.ts +28 -0
  51. package/lib/Signal/lid-mapping.js +184 -0
  52. package/lib/Socket/Client/abstract-socket-client.d.ts +15 -15
  53. package/lib/Socket/Client/abstract-socket-client.js +13 -13
  54. package/lib/Socket/Client/index.d.ts +2 -2
  55. package/lib/Socket/Client/mobile-socket-client.d.ts +12 -12
  56. package/lib/Socket/Client/mobile-socket-client.js +65 -65
  57. package/lib/Socket/Client/types.d.ts +1 -1
  58. package/lib/Socket/Client/websocket.d.ts +1 -1
  59. package/lib/Socket/business.d.ts +6 -6
  60. package/lib/Socket/business.js +152 -5
  61. package/lib/Socket/chats.d.ts +3 -4
  62. package/lib/Socket/chats.js +31 -26
  63. package/lib/Socket/communities.d.ts +223 -223
  64. package/lib/Socket/communities.js +432 -432
  65. package/lib/Socket/groups.d.ts +2 -4
  66. package/lib/Socket/groups.js +22 -14
  67. package/lib/Socket/index.d.ts +69 -69
  68. package/lib/Socket/index.js +3 -2
  69. package/lib/Socket/messages-recv.d.ts +3 -6
  70. package/lib/Socket/messages-recv.js +1449 -1707
  71. package/lib/Socket/messages-send.d.ts +2 -4
  72. package/lib/Socket/messages-send.js +617 -126
  73. package/lib/Socket/mex.d.ts +2 -2
  74. package/lib/Socket/mex.js +46 -46
  75. package/lib/Socket/newsletter.d.ts +2 -4
  76. package/lib/Socket/newsletter.js +294 -285
  77. package/lib/Socket/socket.js +318 -132
  78. package/lib/Socket/usync.js +3 -3
  79. package/lib/Store/index.d.ts +4 -4
  80. package/lib/Store/index.js +23 -23
  81. package/lib/Store/make-cache-manager-store.d.ts +13 -13
  82. package/lib/Store/make-cache-manager-store.js +89 -89
  83. package/lib/Store/make-in-memory-store.d.ts +122 -122
  84. package/lib/Store/make-in-memory-store.js +428 -428
  85. package/lib/Store/make-ordered-dictionary.d.ts +11 -11
  86. package/lib/Store/make-ordered-dictionary.js +85 -85
  87. package/lib/Store/object-repository.d.ts +9 -9
  88. package/lib/Store/object-repository.js +30 -30
  89. package/lib/Types/Auth.d.ts +5 -4
  90. package/lib/Types/Bussines.js +3 -0
  91. package/lib/Types/Bussiness.d.ts +28 -0
  92. package/lib/Types/Chat.d.ts +13 -8
  93. package/lib/Types/Contact.d.ts +4 -1
  94. package/lib/Types/Events.d.ts +13 -16
  95. package/lib/Types/GroupMetadata.d.ts +1 -1
  96. package/lib/Types/Message.d.ts +18 -7
  97. package/lib/Types/Message.js +7 -1
  98. package/lib/Types/MexUpdates.d.ts +8 -8
  99. package/lib/Types/MexUpdates.js +17 -17
  100. package/lib/Types/Newsletter.d.ts +1 -1
  101. package/lib/Types/Product.d.ts +1 -1
  102. package/lib/Types/Signal.d.ts +31 -1
  103. package/lib/Types/Socket.d.ts +34 -13
  104. package/lib/Types/State.d.ts +1 -1
  105. package/lib/Types/USync.d.ts +2 -2
  106. package/lib/Types/index.d.ts +16 -15
  107. package/lib/Types/index.js +4 -2
  108. package/lib/Utils/auth-utils.d.ts +20 -20
  109. package/lib/Utils/auth-utils.js +527 -204
  110. package/lib/Utils/baileys-event-stream.d.ts +17 -17
  111. package/lib/Utils/baileys-event-stream.js +69 -69
  112. package/lib/Utils/business.d.ts +28 -28
  113. package/lib/Utils/business.js +254 -254
  114. package/lib/Utils/chat-utils.d.ts +81 -81
  115. package/lib/Utils/chat-utils.js +808 -780
  116. package/lib/Utils/crypto.d.ts +55 -55
  117. package/lib/Utils/crypto.js +188 -178
  118. package/lib/Utils/decode-wa-message.d.ts +52 -40
  119. package/lib/Utils/decode-wa-message.js +322 -252
  120. package/lib/Utils/event-buffer.d.ts +38 -38
  121. package/lib/Utils/event-buffer.js +594 -564
  122. package/lib/Utils/generics.d.ts +131 -129
  123. package/lib/Utils/generics.js +629 -623
  124. package/lib/Utils/history.d.ts +22 -22
  125. package/lib/Utils/history.js +103 -109
  126. package/lib/Utils/index.d.ts +20 -19
  127. package/lib/Utils/index.js +39 -38
  128. package/lib/Utils/link-preview.d.ts +22 -22
  129. package/lib/Utils/link-preview.js +119 -119
  130. package/lib/Utils/logger.d.ts +13 -13
  131. package/lib/Utils/logger.js +7 -7
  132. package/lib/Utils/lt-hash.d.ts +13 -13
  133. package/lib/Utils/lt-hash.js +57 -57
  134. package/lib/Utils/make-mutex.d.ts +8 -8
  135. package/lib/Utils/make-mutex.js +48 -48
  136. package/lib/Utils/message-retry-manager.d.ts +88 -0
  137. package/lib/Utils/message-retry-manager.js +160 -0
  138. package/lib/Utils/messages-media.d.ts +134 -128
  139. package/lib/Utils/messages-media.js +868 -805
  140. package/lib/Utils/messages.d.ts +104 -102
  141. package/lib/Utils/messages.js +1744 -1578
  142. package/lib/Utils/noise-handler.d.ts +20 -19
  143. package/lib/Utils/noise-handler.js +164 -154
  144. package/lib/Utils/process-message.d.ts +48 -48
  145. package/lib/Utils/process-message.js +427 -428
  146. package/lib/Utils/signal.d.ts +41 -41
  147. package/lib/Utils/signal.js +165 -165
  148. package/lib/Utils/use-mongo-file-auth-state.d.ts +5 -5
  149. package/lib/Utils/use-mongo-file-auth-state.js +83 -83
  150. package/lib/Utils/use-multi-file-auth-state.d.ts +17 -17
  151. package/lib/Utils/use-multi-file-auth-state.js +237 -237
  152. package/lib/Utils/use-single-file-auth-state.d.ts +12 -12
  153. package/lib/Utils/use-single-file-auth-state.js +79 -79
  154. package/lib/Utils/validate-connection.d.ts +12 -12
  155. package/lib/Utils/validate-connection.js +219 -186
  156. package/lib/WABinary/constants.d.ts +29 -29
  157. package/lib/WABinary/constants.js +1315 -1315
  158. package/lib/WABinary/decode.d.ts +8 -8
  159. package/lib/WABinary/decode.js +287 -287
  160. package/lib/WABinary/encode.d.ts +2 -2
  161. package/lib/WABinary/encode.js +264 -264
  162. package/lib/WABinary/generic-utils.d.ts +27 -27
  163. package/lib/WABinary/generic-utils.js +141 -141
  164. package/lib/WABinary/index.d.ts +5 -5
  165. package/lib/WABinary/index.js +24 -24
  166. package/lib/WABinary/jid-utils.d.ts +58 -53
  167. package/lib/WABinary/jid-utils.js +103 -91
  168. package/lib/WABinary/types.d.ts +21 -21
  169. package/lib/WABinary/types.js +2 -2
  170. package/lib/WAM/BinaryInfo.d.ts +15 -15
  171. package/lib/WAM/BinaryInfo.js +16 -16
  172. package/lib/WAM/constants.d.ts +46 -46
  173. package/lib/WAM/constants.js +15370 -15370
  174. package/lib/WAM/encode.d.ts +2 -2
  175. package/lib/WAM/encode.js +163 -164
  176. package/lib/WAM/index.d.ts +3 -3
  177. package/lib/WAM/index.js +22 -22
  178. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -27
  179. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +68 -68
  180. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +3 -3
  181. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +2 -2
  182. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +2 -2
  183. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +9 -8
  184. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +37 -29
  185. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +2 -2
  186. package/lib/WAUSync/Protocols/index.d.ts +6 -6
  187. package/lib/WAUSync/USyncQuery.d.ts +3 -3
  188. package/lib/WAUSync/index.d.ts +3 -3
  189. package/lib/index.d.ts +13 -13
  190. package/lib/index.js +33 -33
  191. package/package.json +96 -94
  192. package/lib/Socket/registration.d.ts +0 -266
  193. package/lib/Socket/registration.js +0 -166
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Neele
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Neele
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,187 +1,195 @@
1
-
2
- <p align="center">
3
- <img src="https://files.catbox.moe/68vl0n.jpg" width="720" alt="Neele Baileys Header" />
4
- </p>
5
-
6
- <h1 align="center">🌸 Willkommen bei <code>@neelegirl/baileys</code> 🌸</h1>
7
- <p align="center"><i>Eine charmante WhatsApp Web API für TypeScript/JavaScript – von einer Prinzessin für alle, die Magie lieben.</i></p>
8
-
9
- <div align="center">
10
-
11
- <img src="https://img.shields.io/github/downloads/neelegirl/baileys/total?label=Downloads%20%E2%AD%90" />
12
- <img src="https://img.shields.io/npm/dw/%40neelegirl%2Fbaileys?label=npm%20Downloads&color=pink" />
13
- <img src="https://img.shields.io/github/languages/code-size/neelegirl/baileys" />
14
- <img src="https://img.shields.io/github/license/neelegirl/baileys?color=lightpink" />
15
- <img src="https://img.shields.io/github/stars/neelegirl/baileys?label=GitHub%20Stars%20%E2%9D%A4" />
16
- <img src="https://img.shields.io/github/forks/neelegirl/baileys?label=Forks%20%E2%9C%A8" />
17
- <img src="https://img.shields.io/badge/Multi‑Device-Ready-ff6fb5" />
18
- <img src="https://img.shields.io/badge/LID‑Kompatibel-Yes-ff9ecf" />
19
-
20
- </div>
21
-
22
- ---
23
-
24
- ## Wichtige Hinweise
25
-
26
- Dieses Projekt ist eine zarte Eigenkreation von **@neelegirl** – es steht in keiner offiziellen Verbindung zu WhatsApp.
27
-
28
- > ⚠️ Bitte benutze es **verantwortungsvoll**:
29
- > ✖️ Kein Spam, keine Massennachrichten
30
- > ✖️ Kein Missbrauch für unethische Zwecke
31
- > ✔️ Stattdessen: Lasst uns **respektvoll Magie verbreiten**! 🌟
32
-
33
- 💬 **Haftungshinweis:**
34
- Die Entwickler:innen übernehmen keine Verantwortung für den Gebrauch. Lies die [MIT-Lizenz](https://github.com/neelegirl/baileys/blob/main/LICENSE) für Details.
35
-
36
- ---
37
-
38
- ## 🧚‍♀️ Warum <code>@neelegirl/baileys</code>?
39
-
40
- **Zauberhafte Vorteile**
41
-
42
- - 🧠 Ultra leichtgewichtig keine Browser- oder Selenium-Monster nötig!
43
- - 🌈 Moderne **WebSocket-Magie** direkt, schnell & stabil
44
- - 💖 Vollständige **Multi‑Device** Unterstützung
45
- - 🧩 **LID‑kompatibel** (Linked ID Erkennung & Nutzung)
46
- - 🧷 Saubere TypeScript‑Typen, DX zum Verlieben
47
-
48
- ---
49
-
50
- ## 🌈 Installation (Dein magisches Setup)
51
-
52
- Mit **yarn**:
53
-
54
- ```bash
55
- yarn add @neelegirl/baileys
56
- ```
57
-
58
- Mit **npm**:
59
-
60
- ```bash
61
- npm i @neelegirl/baileys
62
- ```
63
-
64
- Bleeding‑edge direkt von GitHub:
65
-
66
- ```bash
67
- yarn add github:neelegirl/baileys
68
- # oder
69
- npm i github:neelegirl/baileys
70
- ```
71
-
72
- **Import** ganz leicht:
73
- ```ts
74
- import makeWASocket, { useMultiFileAuthState, Browsers } from '@neelegirl/baileys'
75
- ```
76
-
77
- ---
78
-
79
- ## 🌸 Quickstart (inkl. LID‑Magic)
80
-
81
- Ein kurzer, süßer Start in deinen Zauberwald – mit QR‑Login, Auto‑Reconnect und LID‑Handling. 💫
82
-
83
- ```ts
84
- import makeWASocket, {
85
- useMultiFileAuthState,
86
- DisconnectReason,
87
- fetchLatestBaileysVersion,
88
- jidDecode
89
- } from '@neelegirl/baileys'
90
-
91
- async function start() {
92
- const { state, saveCreds } = await useMultiFileAuthState('./auth_neele')
93
- const { version } = await fetchLatestBaileysVersion()
94
-
95
- const sock = makeWASocket({
96
- version,
97
- auth: state,
98
- browser: ['Neele Princess','Safari','1.0'],
99
- printQRInTerminal: true, // Für Desktop-Dev – mobil gern mit UI scannen
100
- markOnlineOnConnect: false,
101
- syncFullHistory: false
102
- })
103
-
104
- // 💖 LID-kompatibel: extrahiere sichere Sender-IDs
105
- const getSenderId = (m: any) => {
106
- const participant = m?.key?.participant || m?.participant || m?.sender
107
- const lid = participant || m?.key?.remoteJid
108
- // Dekodiere LID/JID hübsch & sicher
109
- const decoded = lid ? jidDecode(lid) : null
110
- return decoded?.user ? `${decoded.user}@${decoded.server}` : (lid || 'anon')
111
- }
112
-
113
- sock.ev.on('messages.upsert', async ({ messages }) => {
114
- const m = messages[0]
115
- if (!m?.message) return
116
-
117
- const from = m.key.remoteJid
118
- const sender = getSenderId(m)
119
-
120
- // 🎀 Kleiner Ping-Pong-Zauber
121
- const body = m.message?.conversation
122
- || m.message?.extendedTextMessage?.text
123
- || m.message?.imageMessage?.caption
124
- || ''
125
-
126
- if (/^!ping$/i.test(body)) {
127
- await sock.sendMessage(from, { text: '🏓 Pong! Neele‑Magic online ✨' }, { quoted: m })
128
- }
129
-
130
- // Sticker-Schnellzauber (antworte auf ein Bild)
131
- if (/^!sticker$/i.test(body) && m.message?.imageMessage) {
132
- const stream = await sock.downloadMediaMessage(m)
133
- await sock.sendMessage(from, { sticker: stream }, { quoted: m })
134
- }
135
- })
136
-
137
- sock.ev.on('creds.update', saveCreds)
138
-
139
- sock.ev.on('connection.update', (u) => {
140
- const { connection, lastDisconnect } = u
141
- if (connection === 'close') {
142
- const shouldReconnect =
143
- (lastDisconnect?.error as any)?.output?.statusCode !== DisconnectReason.loggedOut
144
- if (shouldReconnect) start()
145
- } else if (connection === 'open') {
146
- console.log('🌸 Verbunden – bereit zum Glitzern!')
147
- }
148
- })
149
- }
150
-
151
- start().catch(console.error)
152
- ```
153
-
154
- ---
155
-
156
- ## 🧁 Häufige Rezepte
157
-
158
- - 💌 **Nachrichten**: `sock.sendMessage(jid, { text: 'Hello 🌸' })`
159
- - 📸 **Medien**: `sock.sendMessage(jid, { image: fs.readFileSync('pic.jpg'), caption: 'Kawaii!' })`
160
- - 🎀 **Sticker**: Antwort auf `imageMessage` → `{ sticker: stream }`
161
- - 👥 **Gruppen**: `sock.groupCreate('Neele Club', [user1, user2])`
162
- - 🧲 **LID‑ID**: mit `jidDecode()` schön & sicher nutzen
163
-
164
- ---
165
-
166
- ## 💠 LID‑Kompatibilität (Kurz erklärt)
167
-
168
- **LID (Linked ID)** sorgt dafür, dass Benutzer:innen auch über geräteübergreifende IDs korrekt erkannt werden.
169
- Dieses Paket ist **voll LID‑kompatibel**:
170
- - Extraktion & Normalisierung von Absender‑IDs
171
- - Sicheres Antworten, auch wenn die Gegenstelle Geräte wechselt
172
- - Sanfte Fallbacks, wenn keine LID vorliegt
173
-
174
- > Ergebnis: stabilere Replies, weniger Rätselraten, mehr Glitzer ✨
175
-
176
- ---
177
-
178
- ## ❤️ Credits & Danksagung
179
-
180
- Mit Liebe, Glitzer und rosa Codezeilen von **@neelegirl** erschaffen.
181
- Wenn dir dieses Projekt gefällt:
182
-
183
- > ⭐ Gib ihm ein ⭐️ auf GitHub – das wär sooo süß! 🌟
184
-
185
- ---
186
-
187
- <p align="center"><i>✨ Möge dein Bot so bezaubernd sein wie ein Anime‑Mädchen mit Glitzeraugen ✨</i></p>
1
+ <p align="center">
2
+ <img src="https://files.catbox.moe/68vl0n.jpg" width="720" alt="Neele Baileys Header" />
3
+ </p>
4
+
5
+ <h1 align="center">🌸 Willkommen bei <code>@neelegirl/baileys</code> 🌸</h1>
6
+ <p align="center"><i>Eine charmante WhatsApp Web API für TypeScript/JavaScript – von einer Prinzessin für alle, die Magie lieben.</i></p>
7
+
8
+ ---
9
+
10
+ <p align="center">
11
+ 🌟 <b>Ja, jetzt ist es offiziell raus – offiziell lit!</b> 🌟<br/>
12
+ 💫 <b>Offiziell out now: Version 1.5.3 – @Neelegirl/Baileys ist jetzt offiziell erhältlich!</b> 💫<br/>
13
+ Ihr müsst vielleicht ein kleines bisschen umändern und hier und da rumfischen,<br/>
14
+ aber keine Sorge – <b>Neele ist immer für euch da, Baby 💕</b><br/>
15
+ <sub><i>(Jetzt beginnt die Magie... powered by @neelegirl ✨)</i></sub>
16
+ </p>
17
+
18
+ ---
19
+
20
+ <div align="center">
21
+
22
+ <img src="https://img.shields.io/github/downloads/neelegirl/baileys/total?label=Downloads%20%E2%AD%90" />
23
+ <img src="https://img.shields.io/npm/dw/%40neelegirl%2Fbaileys?label=npm%20Downloads&color=pink" />
24
+ <img src="https://img.shields.io/github/languages/code-size/neelegirl/baileys" />
25
+ <img src="https://img.shields.io/github/license/neelegirl/baileys?color=lightpink" />
26
+ <img src="https://img.shields.io/github/stars/neelegirl/baileys?label=GitHub%20Stars%20%E2%9D%A4" />
27
+ <img src="https://img.shields.io/github/forks/neelegirl/baileys?label=Forks%20%E2%9C%A8" />
28
+ <img src="https://img.shields.io/badge/Multi-Device-Ready-ff6fb5" />
29
+ <img src="https://img.shields.io/badge/LID-Kompatibel-Yes-ff9ecf" />
30
+
31
+ </div>
32
+
33
+ ---
34
+
35
+ ## ❗ Wichtige Hinweise
36
+
37
+ Dieses Projekt ist eine zarte Eigenkreation von **@neelegirl** – es steht in keiner offiziellen Verbindung zu WhatsApp.
38
+
39
+ > ⚠️ Bitte benutze es **verantwortungsvoll**:
40
+ > ✖️ Kein Spam, keine Massennachrichten
41
+ > ✖️ Kein Missbrauch für unethische Zwecke
42
+ > ✔️ Stattdessen: Lasst uns **respektvoll Magie verbreiten**! 🌟
43
+
44
+ 💬 **Haftungshinweis:**
45
+ Die Entwickler:innen übernehmen keine Verantwortung für den Gebrauch. Lies die [MIT-Lizenz](https://github.com/neelegirl/baileys/blob/main/LICENSE) für Details.
46
+
47
+ ---
48
+
49
+ ## 🧚‍♀️ Warum <code>@neelegirl/baileys</code>?
50
+
51
+ ✨ **Zauberhafte Vorteile**
52
+
53
+ - 🧠 Ultra leichtgewichtig – keine Browser- oder Selenium-Monster nötig!
54
+ - 🌈 Moderne **WebSocket-Magie** direkt, schnell & stabil
55
+ - 💖 Vollständige **Multi-Device** Unterstützung
56
+ - 🧩 **LID-kompatibel** (Linked ID Erkennung & Nutzung)
57
+ - 🧷 Saubere TypeScript-Typen, DX zum Verlieben
58
+
59
+ ---
60
+
61
+ ## 🌈 Installation (Dein magisches Setup)
62
+
63
+ Mit **yarn**:
64
+
65
+ ```bash
66
+ yarn add @neelegirl/baileys
67
+ ```
68
+
69
+ Mit **npm**:
70
+
71
+ ```bash
72
+ npm i @neelegirl/baileys
73
+ ```
74
+
75
+ Bleeding-edge direkt von GitHub:
76
+
77
+ ```bash
78
+ yarn add github:neelegirl/baileys
79
+ # oder
80
+ npm i github:neelegirl/baileys
81
+ ```
82
+
83
+ **Import** – ganz leicht:
84
+ ```ts
85
+ import makeWASocket, { useMultiFileAuthState, Browsers } from '@neelegirl/baileys'
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 🌸 Quickstart (inkl. LID-Magic)
91
+
92
+ Ein kurzer, süßer Start in deinen Zauberwald – mit QR-Login, Auto-Reconnect und LID-Handling. 💫
93
+
94
+ ```ts
95
+ import makeWASocket, {
96
+ useMultiFileAuthState,
97
+ DisconnectReason,
98
+ fetchLatestBaileysVersion,
99
+ jidDecode
100
+ } from '@neelegirl/baileys'
101
+
102
+ async function start() {
103
+ const { state, saveCreds } = await useMultiFileAuthState('./auth_neele')
104
+ const { version } = await fetchLatestBaileysVersion()
105
+
106
+ const sock = makeWASocket({
107
+ version,
108
+ auth: state,
109
+ browser: ['Neele Princess','Safari','1.0'],
110
+ printQRInTerminal: true, // Für Desktop-Dev mobil gern mit UI scannen
111
+ markOnlineOnConnect: false,
112
+ syncFullHistory: false
113
+ })
114
+
115
+ // 💖 LID-kompatibel: extrahiere sichere Sender-IDs
116
+ const getSenderId = (m: any) => {
117
+ const participant = m?.key?.participant || m?.participant || m?.sender
118
+ const lid = participant || m?.key?.remoteJid
119
+ const decoded = lid ? jidDecode(lid) : null
120
+ return decoded?.user ? `${decoded.user}@${decoded.server}` : (lid || 'anon')
121
+ }
122
+
123
+ sock.ev.on('messages.upsert', async ({ messages }) => {
124
+ const m = messages[0]
125
+ if (!m?.message) return
126
+
127
+ const from = m.key.remoteJid
128
+ const sender = getSenderId(m)
129
+
130
+ const body = m.message?.conversation
131
+ || m.message?.extendedTextMessage?.text
132
+ || m.message?.imageMessage?.caption
133
+ || ''
134
+
135
+ if (/^!ping$/i.test(body)) {
136
+ await sock.sendMessage(from, { text: '🏓 Pong! Neele-Magic online ✨' }, { quoted: m })
137
+ }
138
+
139
+ if (/^!sticker$/i.test(body) && m.message?.imageMessage) {
140
+ const stream = await sock.downloadMediaMessage(m)
141
+ await sock.sendMessage(from, { sticker: stream }, { quoted: m })
142
+ }
143
+ })
144
+
145
+ sock.ev.on('creds.update', saveCreds)
146
+
147
+ sock.ev.on('connection.update', (u) => {
148
+ const { connection, lastDisconnect } = u
149
+ if (connection === 'close') {
150
+ const shouldReconnect =
151
+ (lastDisconnect?.error as any)?.output?.statusCode !== DisconnectReason.loggedOut
152
+ if (shouldReconnect) start()
153
+ } else if (connection === 'open') {
154
+ console.log('🌸 Verbunden – bereit zum Glitzern!')
155
+ }
156
+ })
157
+ }
158
+
159
+ start().catch(console.error)
160
+ ```
161
+
162
+ ---
163
+
164
+ ## 🧁 Häufige Rezepte
165
+
166
+ - 💌 **Nachrichten**: `sock.sendMessage(jid, { text: 'Hello 🌸' })`
167
+ - 📸 **Medien**: `sock.sendMessage(jid, { image: fs.readFileSync('pic.jpg'), caption: 'Kawaii!' })`
168
+ - 🎀 **Sticker**: Antwort auf `imageMessage` `{ sticker: stream }`
169
+ - 👥 **Gruppen**: `sock.groupCreate('Neele Club', [user1, user2])`
170
+ - 🧲 **LID-ID**: mit `jidDecode()` schön & sicher nutzen
171
+
172
+ ---
173
+
174
+ ## 💠 LID-Kompatibilität (Kurz erklärt)
175
+
176
+ **LID (Linked ID)** sorgt dafür, dass Benutzer:innen auch über geräteübergreifende IDs korrekt erkannt werden.
177
+ Dieses Paket ist **voll LID-kompatibel**:
178
+ - Extraktion & Normalisierung von Absender-IDs
179
+ - Sicheres Antworten, auch wenn die Gegenstelle Geräte wechselt
180
+ - Sanfte Fallbacks, wenn keine LID vorliegt
181
+
182
+ > Ergebnis: stabilere Replies, weniger Rätselraten, mehr Glitzer ✨
183
+
184
+ ---
185
+
186
+ ## ❤️ Credits & Danksagung
187
+
188
+ Mit Liebe, Glitzer und rosa Codezeilen von **@neelegirl** erschaffen.
189
+ Wenn dir dieses Projekt gefällt:
190
+
191
+ > ⭐ Gib ihm ein ⭐️ auf GitHub – das wär sooo süß! 🌟
192
+
193
+ ---
194
+
195
+ <p align="center"><i>✨ Möge dein Bot so bezaubernd sein wie ein Anime-Mädchen mit Glitzeraugen ✨</i></p>