@neelegirl/baileys 1.6.7 β†’ 1.6.9

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
@@ -1,786 +1,192 @@
1
- <div align="center">
2
-
3
- # 🌸 @neelegirl/baileys 🌸
4
-
5
- ### ✨ *Eine charmante WhatsApp Web API für TypeScript/JavaScript* ✨
6
- ### πŸ’– *Von einer Prinzessin fΓΌr alle, die Magie lieben* πŸ’–
7
-
8
- [![Version](https://img.shields.io/badge/Version-1.6.6-pink?style=for-the-badge&logo=github)](https://github.com/neelegirl/baileys)
9
- [![npm](https://img.shields.io/npm/v/@neelegirl/baileys?style=for-the-badge&color=pink&logo=npm)](https://www.npmjs.com/package/@neelegirl/baileys)
10
- [![Downloads](https://img.shields.io/npm/dw/@neelegirl/baileys?style=for-the-badge&color=pink&logo=npm)](https://www.npmjs.com/package/@neelegirl/baileys)
11
- [![License](https://img.shields.io/github/license/neelegirl/baileys?style=for-the-badge&color=pink)](LICENSE)
12
- [![Stars](https://img.shields.io/github/stars/neelegirl/baileys?style=for-the-badge&color=pink&logo=github)](https://github.com/neelegirl/baileys)
13
-
14
- ---
15
1
 
16
2
  <p align="center">
17
3
  <img src="https://files.catbox.moe/ru1msl.jpeg" width="720" alt="Neele Baileys Header" />
18
4
  </p>
19
5
 
20
- **πŸŽ€ Basierend auf @whiskeysockets/baileys 7.0.0-rc.9 – liebevoll erweitert & angepasst von @neelegirl πŸŽ€**
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
+ <p align="center"><strong>✨ Version 1.6.4 – Aktualisiert mit neuesten Features von @whiskeysockets/baileys ✨</strong></p>
21
9
 
22
- [πŸš€ Installation](#-installation) β€’ [πŸ“– Quickstart](#-quickstart-guide) β€’ [✨ Features](#-neue-features-in-version-166) β€’ [πŸ“š Dokumentation](#-dokumentation) β€’ [πŸ’¬ Support](#-support--community)
10
+ <div align="center">
11
+
12
+ <img src="https://img.shields.io/github/downloads/neelegirl/baileys/total?label=Downloads%20%E2%AD%90" />
13
+ <img src="https://img.shields.io/npm/dw/%40neelegirl%2Fbaileys?label=npm%20Downloads&color=pink" />
14
+ <img src="https://img.shields.io/github/languages/code-size/neelegirl/baileys" />
15
+ <img src="https://img.shields.io/github/license/neelegirl/baileys?color=lightpink" />
16
+ <img src="https://img.shields.io/github/stars/neelegirl/baileys?label=GitHub%20Stars%20%E2%9D%A4" />
17
+ <img src="https://img.shields.io/github/forks/neelegirl/baileys?label=Forks%20%E2%9C%A8" />
18
+ <img src="https://img.shields.io/badge/Multi‑Device-Ready-ff6fb5" />
19
+ <img src="https://img.shields.io/badge/LID‑Kompatibel-Yes-ff9ecf" />
23
20
 
24
21
  </div>
25
22
 
26
23
  ---
27
24
 
28
- ## πŸ“‹ Inhaltsverzeichnis
25
+ ## ❗ Wichtige Hinweise
29
26
 
30
- - [✨ Warum @neelegirl/baileys?](#-warum-neelegirlbaileys)
31
- - [πŸš€ Installation](#-installation)
32
- - [πŸ“– Quickstart Guide](#-quickstart-guide)
33
- - [✨ Neue Features in Version 1.6.6](#-neue-features-in-version-166)
34
- - [πŸ’‘ Grundlegende Verwendung](#-grundlegende-verwendung)
35
- - [🎯 Erweiterte Features](#-erweiterte-features)
36
- - [πŸ“š Dokumentation](#-dokumentation)
37
- - [⚠️ Wichtige Hinweise](#️-wichtige-hinweise)
38
- - [πŸ’¬ Support & Community](#-support--community)
27
+ Dieses Projekt ist eine zarte Eigenkreation von **@neelegirl** – es steht in keiner offiziellen Verbindung zu WhatsApp.
39
28
 
40
- ---
29
+ > ⚠️ Bitte benutze es **verantwortungsvoll**:
30
+ > βœ–οΈ Kein Spam, keine Massennachrichten
31
+ > βœ–οΈ Kein Missbrauch fΓΌr unethische Zwecke
32
+ > βœ”οΈ Stattdessen: Lasst uns **respektvoll Magie verbreiten**! 🌟
41
33
 
42
- ## ✨ Warum @neelegirl/baileys?
34
+ πŸ’¬ **Haftungshinweis:**
35
+ 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.
43
36
 
44
- <div align="center">
37
+ ---
45
38
 
46
- ### 🌟 **Zauberhafte Vorteile** 🌟
39
+ ## πŸ§šβ€β™€οΈ Warum <code>@neelegirl/baileys</code>?
47
40
 
48
- </div>
41
+ ✨ **Zauberhafte Vorteile**
49
42
 
50
- | Feature | Beschreibung | Status |
51
- |---------|-------------|--------|
52
- | 🧠 **Leichtgewichtig** | Keine Browser- oder Selenium-Monster nΓΆtig! | βœ… |
53
- | 🌈 **WebSocket-Magie** | Direkt, schnell & stabil | βœ… |
54
- | πŸ’– **Multi-Device** | VollstΓ€ndige UnterstΓΌtzung | βœ… |
55
- | 🧩 **LID-Kompatibel** | Linked ID Erkennung & Nutzung | βœ… |
56
- | 🧷 **TypeScript** | Saubere Typen, DX zum Verlieben | βœ… |
57
- | πŸ”„ **Auto-Updates** | Automatische Update-PrΓΌfung | βœ… |
58
- | πŸ“± **QR-Code** | SchΓΆne QR-Code-Anzeige | βœ… |
59
- | 🎯 **Message ID** | Verbesserte Message-ID-Generierung | βœ… |
43
+ - 🧠 Ultra leichtgewichtig – keine Browser- oder Selenium-Monster nΓΆtig!
44
+ - 🌈 Moderne **WebSocket-Magie** direkt, schnell & stabil
45
+ - πŸ’– VollstΓ€ndige **Multi‑Device** UnterstΓΌtzung
46
+ - 🧩 **LID‑kompatibel** (Linked ID Erkennung & Nutzung)
47
+ - 🧷 Saubere TypeScript‑Typen, DX zum Verlieben
48
+ - πŸ†• **Version 1.6.4** – Aktualisiert mit neuesten Features von @whiskeysockets/baileys
49
+ - ✨ **Neue Features**: `onWhatsApp()`, `executeUSyncQuery()`, `digestKeyBundle()`, `rotateSignedPreKey()`
50
+ - πŸš€ **Verbesserte Pre-Key-Verwaltung** mit automatischer Validierung
51
+ - πŸ’Ž **WAM Buffer Support** fΓΌr erweiterte Statistiken
60
52
 
61
53
  ---
62
54
 
63
- ## πŸš€ Installation
55
+ ## 🌈 Installation (Dein magisches Setup)
64
56
 
65
- ### πŸ“¦ Mit npm
57
+ Mit **yarn**:
66
58
 
67
59
  ```bash
68
- npm install @neelegirl/baileys
60
+ yarn add @neelegirl/baileys
69
61
  ```
70
62
 
71
- ### πŸ“¦ Mit yarn
63
+ Mit **npm**:
72
64
 
73
65
  ```bash
74
- yarn add @neelegirl/baileys
66
+ npm i @neelegirl/baileys
75
67
  ```
76
68
 
77
- ### πŸ“¦ Bleeding-Edge (GitHub)
69
+ Bleeding‑edge direkt von GitHub:
78
70
 
79
71
  ```bash
80
- npm install github:neelegirl/baileys
81
- # oder
82
72
  yarn add github:neelegirl/baileys
73
+ # oder
74
+ npm i github:neelegirl/baileys
83
75
  ```
84
76
 
85
- ### πŸ“₯ Import
86
-
87
- ```typescript
88
- // ES Modules
89
- import makeWASocket, {
90
- useMultiFileAuthState,
91
- DisconnectReason,
92
- fetchLatestBaileysVersion,
93
- Browsers
94
- } from '@neelegirl/baileys'
95
-
96
- // CommonJS
97
- const { default: makeWASocket, useMultiFileAuthState } = require('@neelegirl/baileys')
77
+ **Import** – ganz leicht:
78
+ ```ts
79
+ import makeWASocket, { useMultiFileAuthState, Browsers } from '@neelegirl/baileys'
98
80
  ```
99
81
 
100
82
  ---
101
83
 
102
- ## πŸ“– Quickstart Guide
84
+ ## 🌸 Quickstart (inkl. LID‑Magic)
103
85
 
104
- ### 🎯 **Für AnfÀnger: Dein erster Bot in 5 Minuten**
86
+ Ein kurzer, süßer Start in deinen Zauberwald – mit QR‑Login, Auto‑Reconnect und LID‑Handling. πŸ’«
105
87
 
106
- ```typescript
88
+ ```ts
107
89
  import makeWASocket, {
108
90
  useMultiFileAuthState,
109
91
  DisconnectReason,
110
- fetchLatestBaileysVersion
92
+ fetchLatestBaileysVersion,
93
+ jidDecode
111
94
  } from '@neelegirl/baileys'
112
- import { Boom } from '@hapi/boom'
113
95
 
114
- async function startBot() {
115
- // 1️⃣ Auth-State laden/speichern
116
- const { state, saveCreds } = await useMultiFileAuthState('./auth_info')
117
-
118
- // 2️⃣ Neueste WhatsApp-Version holen
96
+ async function start() {
97
+ const { state, saveCreds } = await useMultiFileAuthState('./auth_neele')
119
98
  const { version } = await fetchLatestBaileysVersion()
120
-
121
- // 3️⃣ Socket erstellen
99
+
122
100
  const sock = makeWASocket({
123
101
  version,
124
102
  auth: state,
125
- printQRInTerminal: true, // QR-Code im Terminal anzeigen
126
- browser: ['Neele Bot', 'Chrome', '1.0.0']
127
- })
128
-
129
- // 4️⃣ Credentials speichern wenn sie sich Γ€ndern
130
- sock.ev.on('creds.update', saveCreds)
131
-
132
- // 5️⃣ Verbindungs-Updates verarbeiten
133
- sock.ev.on('connection.update', (update) => {
134
- const { connection, lastDisconnect } = update
135
-
136
- if (connection === 'close') {
137
- const shouldReconnect =
138
- (lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut
139
-
140
- console.log('πŸ”Œ Verbindung geschlossen, reconnect:', shouldReconnect)
141
- if (shouldReconnect) {
142
- startBot() // Automatisch neu verbinden
143
- }
144
- } else if (connection === 'open') {
145
- console.log('βœ… Verbunden mit WhatsApp!')
146
- }
147
- })
148
-
149
- // 6️⃣ Nachrichten empfangen
150
- sock.ev.on('messages.upsert', async ({ messages }) => {
151
- const m = messages[0]
152
- if (!m.message) return
153
-
154
- const jid = m.key.remoteJid!
155
- const text = m.message.conversation || m.message.extendedTextMessage?.text || ''
156
-
157
- // Einfacher Echo-Bot
158
- if (text.toLowerCase() === 'hallo') {
159
- await sock.sendMessage(jid, {
160
- text: '🌸 Hallo! Ich bin ein Neele-Bot! ✨'
161
- })
162
- }
103
+ browser: ['Neele Princess','Safari','1.0'],
104
+ printQRInTerminal: true, // FΓΌr Desktop-Dev – mobil gern mit UI scannen
105
+ markOnlineOnConnect: false,
106
+ syncFullHistory: false
163
107
  })
164
- }
165
-
166
- // Bot starten
167
- startBot().catch(console.error)
168
- ```
169
-
170
- ### 🎨 **Was passiert hier?**
171
-
172
- 1. **`useMultiFileAuthState`**: Speichert deine WhatsApp-Session, damit du nicht jedes Mal den QR-Code scannen musst
173
- 2. **`fetchLatestBaileysVersion`**: Holt die neueste WhatsApp-Version automatisch
174
- 3. **`makeWASocket`**: Erstellt die Verbindung zu WhatsApp
175
- 4. **`connection.update`**: Event fΓΌr Verbindungsstatus (QR-Code, Verbindung, etc.)
176
- 5. **`messages.upsert`**: Event fΓΌr neue Nachrichten
177
-
178
- ---
179
-
180
- ## ✨ Neue Features in Version 1.6.6
181
-
182
- ### πŸ†• **Was ist neu?**
183
-
184
- <div align="center">
185
-
186
- | 🎯 Feature | πŸ“ Beschreibung | πŸš€ Status |
187
- |-----------|----------------|-----------|
188
- | **Auto-Update-Check** | Automatische PrΓΌfung auf neue Versionen | βœ… Neu |
189
- | **Verbesserte QR-Anzeige** | SchΓΆne QR-Code-Box mit Version-Info | βœ… Neu |
190
- | **Message ID System** | Verbesserte Message-ID-Generierung | βœ… Neu |
191
- | **WhatsApp Version** | Aktualisiert auf [2, 3000, 1032141294] | βœ… Neu |
192
- | **Pre-Key Management** | Automatische Validierung & Rotation | βœ… Verbessert |
193
- | **Socket-StabilitΓ€t** | Verbesserte VerbindungsstabilitΓ€t | βœ… Verbessert |
194
-
195
- </div>
196
-
197
- ### πŸ”₯ **Neue Funktionen**
198
-
199
- #### 1. **`onWhatsApp()`** - PrΓΌfe ob Nummer auf WhatsApp ist
200
108
 
201
- ```typescript
202
- const [result] = await sock.onWhatsApp('491234567890@s.whatsapp.net')
203
- if (result?.exists) {
204
- console.log(`βœ… ${result.jid} ist auf WhatsApp!`)
205
- }
206
- ```
207
-
208
- #### 2. **`executeUSyncQuery()`** - USync-Queries ausfΓΌhren
209
-
210
- ```typescript
211
- import { USyncQuery, USyncContactProtocol } from '@neelegirl/baileys'
212
-
213
- const query = new USyncQuery()
214
- .withContactProtocol()
215
- .withUser(new USyncUser().withPhone('+491234567890'))
216
-
217
- const result = await sock.executeUSyncQuery(query)
218
- console.log('Kontakt-Info:', result)
219
- ```
220
-
221
- #### 3. **`digestKeyBundle()`** - Key-Bundle validieren
222
-
223
- ```typescript
224
- try {
225
- await sock.digestKeyBundle()
226
- console.log('βœ… Key-Bundle ist gΓΌltig')
227
- } catch (error) {
228
- console.log('⚠️ Key-Bundle ungültig, Pre-Keys werden hochgeladen')
229
- }
230
- ```
231
-
232
- #### 4. **`rotateSignedPreKey()`** - Signed Pre-Key rotieren
233
-
234
- ```typescript
235
- await sock.rotateSignedPreKey()
236
- console.log('βœ… Signed Pre-Key wurde rotiert')
237
- ```
238
-
239
- ### πŸ”„ **Automatische Update-PrΓΌfung**
240
-
241
- Bei jedem Start wird automatisch geprΓΌft, ob eine neue Version verfΓΌgbar ist:
242
-
243
- ```
244
- ╔════════════════════════════════════════╗
245
- β•‘ πŸ”” NEUES UPDATE VERFÜGBAR! πŸ”” β•‘
246
- ╠════════════════════════════════════════╣
247
- β•‘ @neelegirl/baileys β•‘
248
- β•‘ Aktuelle Version: 1.6.6 β•‘
249
- β•‘ Neue Version: 1.6.7 β•‘
250
- β•‘ β•‘
251
- β•‘ Bitte aktualisiere: β•‘
252
- β•‘ npm install @neelegirl/baileys@latest β•‘
253
- β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
254
- ```
255
-
256
- ---
257
-
258
- ## πŸ’‘ Grundlegende Verwendung
259
-
260
- ### πŸ“± **Nachrichten senden**
261
-
262
- ```typescript
263
- // Text-Nachricht
264
- await sock.sendMessage(jid, { text: 'Hallo! 🌸' })
265
-
266
- // Mit Quote (Antwort)
267
- await sock.sendMessage(jid, {
268
- text: 'Das ist eine Antwort!'
269
- }, {
270
- quoted: originalMessage
271
- })
272
-
273
- // Mit ErwΓ€hnung
274
- await sock.sendMessage(jid, {
275
- text: '@491234567890 Hallo!',
276
- mentions: ['491234567890@s.whatsapp.net']
277
- })
278
- ```
279
-
280
- ### πŸ–ΌοΈ **Medien senden**
281
-
282
- ```typescript
283
- // Bild
284
- await sock.sendMessage(jid, {
285
- image: { url: './bild.jpg' },
286
- caption: 'Schânes Bild! 🌸'
287
- })
288
-
289
- // Video
290
- await sock.sendMessage(jid, {
291
- video: { url: './video.mp4' },
292
- caption: 'Mein Video! 🎬'
293
- })
294
-
295
- // GIF (als Video mit gifPlayback Flag)
296
- await sock.sendMessage(jid, {
297
- video: { url: './animation.mp4' },
298
- gifPlayback: true,
299
- caption: 'Kawaii GIF! ✨'
300
- })
301
-
302
- // Audio/Sprachnachricht
303
- await sock.sendMessage(jid, {
304
- audio: { url: './audio.ogg' },
305
- mimetype: 'audio/ogg',
306
- ptt: true // Push-to-Talk (Sprachnachricht)
307
- })
308
-
309
- // Dokument
310
- await sock.sendMessage(jid, {
311
- document: { url: './dokument.pdf' },
312
- mimetype: 'application/pdf',
313
- fileName: 'Wichtiges Dokument.pdf'
314
- })
315
-
316
- // Sticker
317
- await sock.sendMessage(jid, {
318
- sticker: { url: './sticker.webp' }
319
- })
320
- ```
321
-
322
- ### πŸ‘₯ **Gruppen**
323
-
324
- ```typescript
325
- // Gruppe erstellen
326
- const group = await sock.groupCreate('Meine Gruppe', [
327
- '491234567890@s.whatsapp.net',
328
- '499876543210@s.whatsapp.net'
329
- ])
330
-
331
- // Teilnehmer hinzufΓΌgen
332
- await sock.groupParticipantsUpdate(
333
- group.id,
334
- ['491111111111@s.whatsapp.net'],
335
- 'add'
336
- )
337
-
338
- // Gruppenname Γ€ndern
339
- await sock.groupUpdateSubject(group.id, 'Neuer Gruppenname')
340
-
341
- // Gruppenbeschreibung Γ€ndern
342
- await sock.groupUpdateDescription(group.id, 'Neue Beschreibung')
343
-
344
- // Gruppen-Einstellungen Γ€ndern
345
- await sock.groupSettingUpdate(group.id, 'announcement') // Nur Admins kΓΆnnen schreiben
346
- await sock.groupSettingUpdate(group.id, 'not_announcement') // Alle kΓΆnnen schreiben
347
- ```
348
-
349
- ### πŸ“Š **Umfragen (Polls)**
350
-
351
- ```typescript
352
- await sock.sendMessage(jid, {
353
- poll: {
354
- name: 'Was ist deine Lieblingsfarbe?',
355
- values: ['Rot', 'Blau', 'GrΓΌn', 'Gelb'],
356
- selectableCount: 1 // Anzahl der auswΓ€hlbaren Optionen
357
- }
358
- })
359
- ```
360
-
361
- ### ⭐ **Reaktionen**
362
-
363
- ```typescript
364
- // Reaktion hinzufΓΌgen
365
- await sock.sendMessage(jid, {
366
- react: {
367
- text: '❀️',
368
- key: message.key
109
+ // πŸ’– LID-kompatibel: extrahiere sichere Sender-IDs
110
+ const getSenderId = (m: any) => {
111
+ const participant = m?.key?.participant || m?.participant || m?.sender
112
+ const lid = participant || m?.key?.remoteJid
113
+ // Dekodiere LID/JID hΓΌbsch & sicher
114
+ const decoded = lid ? jidDecode(lid) : null
115
+ return decoded?.user ? `${decoded.user}@${decoded.server}` : (lid || 'anon')
369
116
  }
370
- })
371
-
372
- // Reaktion entfernen (leerer String)
373
- await sock.sendMessage(jid, {
374
- react: {
375
- text: '',
376
- key: message.key
377
- }
378
- })
379
- ```
380
-
381
- ---
382
117
 
383
- ## 🎯 Erweiterte Features
384
-
385
- ### πŸ’  **LID-KompatibilitΓ€t (Linked ID)**
386
-
387
- LID sorgt dafΓΌr, dass Benutzer auch ΓΌber gerΓ€teΓΌbergreifende IDs korrekt erkannt werden:
388
-
389
- ```typescript
390
- import { jidDecode, jidEncode, isLidUser } from '@neelegirl/baileys'
391
-
392
- // PrΓΌfe ob es eine LID ist
393
- if (isLidUser(someJid)) {
394
- console.log('Das ist eine LID!')
395
- }
396
-
397
- // JID dekodieren
398
- const decoded = jidDecode('491234567890@s.whatsapp.net')
399
- console.log(decoded) // { user: '491234567890', server: 's.whatsapp.net' }
400
-
401
- // JID encodieren
402
- const encoded = jidEncode('491234567890', 's.whatsapp.net')
403
- console.log(encoded) // '491234567890@s.whatsapp.net'
404
- ```
405
-
406
- ### πŸ” **Sichere Sender-ID-Extraktion**
407
-
408
- ```typescript
409
- import { jidDecode } from '@neelegirl/baileys'
410
-
411
- function getSenderId(message: any) {
412
- const participant = message?.key?.participant || message?.participant
413
- const lid = participant || message?.key?.remoteJid
414
-
415
- if (lid) {
416
- const decoded = jidDecode(lid)
417
- return decoded?.user
418
- ? `${decoded.user}@${decoded.server}`
419
- : lid
420
- }
421
-
422
- return 'unknown'
423
- }
424
-
425
- sock.ev.on('messages.upsert', ({ messages }) => {
426
- const sender = getSenderId(messages[0])
427
- console.log('Nachricht von:', sender)
428
- })
429
- ```
430
-
431
- ### πŸ“₯ **Medien herunterladen**
432
-
433
- ```typescript
434
- import { downloadMediaMessage } from '@neelegirl/baileys'
435
- import { writeFile } from 'fs/promises'
436
-
437
- sock.ev.on('messages.upsert', async ({ messages }) => {
438
- const m = messages[0]
439
-
440
- if (m.message?.imageMessage) {
441
- // Medien als Buffer herunterladen
442
- const buffer = await downloadMediaMessage(
443
- m,
444
- 'buffer',
445
- {},
446
- { logger: sock.logger }
447
- )
448
-
449
- // Speichern
450
- await writeFile('./downloaded-image.jpg', buffer)
451
- console.log('βœ… Bild gespeichert!')
452
- }
453
- })
454
- ```
455
-
456
- ### πŸ”„ **Nachrichten bearbeiten**
457
-
458
- ```typescript
459
- // Nachricht bearbeiten
460
- const sentMessage = await sock.sendMessage(jid, { text: 'UrsprΓΌnglicher Text' })
461
-
462
- // SpΓ€ter bearbeiten
463
- await sock.sendMessage(jid, {
464
- text: 'Bearbeiteter Text',
465
- edit: sentMessage.key
466
- })
467
- ```
468
-
469
- ### πŸ—‘οΈ **Nachrichten lΓΆschen**
470
-
471
- ```typescript
472
- // FΓΌr alle lΓΆschen
473
- await sock.sendMessage(jid, { delete: message.key })
474
-
475
- // Nur fΓΌr mich lΓΆschen (via chatModify)
476
- await sock.chatModify({
477
- clear: {
478
- messages: [{
479
- id: message.key.id,
480
- fromMe: true,
481
- timestamp: message.messageTimestamp
482
- }]
483
- }
484
- }, jid)
485
- ```
486
-
487
- ### πŸ“Œ **Nachrichten anpinnen**
488
-
489
- ```typescript
490
- // Nachricht anpinnen (24 Stunden)
491
- await sock.sendMessage(jid, {
492
- pin: {
493
- type: 1, // 0 = entfernen, 1 = anpinnen
494
- time: 86400, // Sekunden (24h)
495
- key: message.key
496
- }
497
- })
498
- ```
499
-
500
- ### πŸ“ **Standort senden**
501
-
502
- ```typescript
503
- await sock.sendMessage(jid, {
504
- location: {
505
- degreesLatitude: 52.520008,
506
- degreesLongitude: 13.404954
507
- }
508
- })
509
- ```
510
-
511
- ### πŸ“‡ **Kontakt teilen**
512
-
513
- ```typescript
514
- const vcard = `BEGIN:VCARD
515
- VERSION:3.0
516
- FN:Max Mustermann
517
- TEL;type=CELL;type=VOICE;waid=491234567890:+49 123 4567890
518
- END:VCARD`
519
-
520
- await sock.sendMessage(jid, {
521
- contacts: {
522
- displayName: 'Max Mustermann',
523
- contacts: [{ vcard }]
524
- }
525
- })
526
- ```
527
-
528
- ### πŸ”„ **Nachrichten weiterleiten**
529
-
530
- ```typescript
531
- await sock.sendMessage(jid, {
532
- forward: originalMessage
533
- })
534
- ```
535
-
536
- ---
118
+ sock.ev.on('messages.upsert', async ({ messages }) => {
119
+ const m = messages[0]
120
+ if (!m?.message) return
537
121
 
538
- ## πŸ“š Dokumentation
122
+ const from = m.key.remoteJid
123
+ const sender = getSenderId(m)
539
124
 
540
- ### 🎧 **Events (Event-Handler)**
125
+ // πŸŽ€ Kleiner Ping-Pong-Zauber
126
+ const body = m.message?.conversation
127
+ || m.message?.extendedTextMessage?.text
128
+ || m.message?.imageMessage?.caption
129
+ || ''
541
130
 
542
- ```typescript
543
- // Verbindungs-Updates
544
- sock.ev.on('connection.update', (update) => {
545
- if (update.qr) {
546
- console.log('πŸ“± QR-Code:', update.qr)
547
- }
548
- if (update.connection === 'open') {
549
- console.log('βœ… Verbunden!')
550
- }
551
- })
552
-
553
- // Neue Nachrichten
554
- sock.ev.on('messages.upsert', ({ messages, type }) => {
555
- console.log('πŸ“₯ Neue Nachricht:', messages[0])
556
- })
557
-
558
- // Nachrichten-Updates (z.B. gelesen, gelΓΆscht)
559
- sock.ev.on('messages.update', (updates) => {
560
- updates.forEach(({ key, update }) => {
561
- if (update.status) {
562
- console.log('πŸ“Š Status Update:', update.status)
131
+ if (/^!ping$/i.test(body)) {
132
+ await sock.sendMessage(from, { text: 'πŸ“ Pong! Neele‑Magic online ✨' }, { quoted: m })
563
133
  }
564
- })
565
- })
566
-
567
- // Credentials-Update (wichtig fΓΌr Session-Speicherung!)
568
- sock.ev.on('creds.update', saveCreds)
569
-
570
- // Kontakte-Update
571
- sock.ev.on('contacts.update', (updates) => {
572
- updates.forEach(update => {
573
- console.log('πŸ‘€ Kontakt-Update:', update)
574
- })
575
- })
576
134
 
577
- // Gruppen-Updates
578
- sock.ev.on('groups.update', (updates) => {
579
- updates.forEach(update => {
580
- console.log('πŸ‘₯ Gruppen-Update:', update)
135
+ // ✨ Sticker-Schnellzauber (antworte auf ein Bild)
136
+ if (/^!sticker$/i.test(body) && m.message?.imageMessage) {
137
+ const stream = await sock.downloadMediaMessage(m)
138
+ await sock.sendMessage(from, { sticker: stream }, { quoted: m })
139
+ }
581
140
  })
582
- })
583
-
584
- // Presence-Update (online, offline, typing)
585
- sock.ev.on('presence.update', ({ id, presences }) => {
586
- console.log('🟒 Presence:', id, presences)
587
- })
588
- ```
589
-
590
- ### πŸ”§ **Socket-Konfiguration**
591
-
592
- ```typescript
593
- const sock = makeWASocket({
594
- // Auth-State (wichtig!)
595
- auth: state,
596
-
597
- // WhatsApp-Version (automatisch oder manuell)
598
- version: [2, 3000, 1032141294],
599
-
600
- // Browser-Info
601
- browser: ['Mein Bot', 'Chrome', '1.0.0'],
602
- // Oder vordefinierte Browser:
603
- // browser: Browsers.macOS('Desktop')
604
- // browser: Browsers.ubuntu('Server')
605
- // browser: Browsers.iOS('Mobile')
606
-
607
- // QR-Code im Terminal anzeigen
608
- printQRInTerminal: true,
609
-
610
- // Online beim Verbinden markieren
611
- markOnlineOnConnect: true,
612
-
613
- // VollstΓ€ndige Historie synchronisieren
614
- syncFullHistory: false,
615
-
616
- // Logger (optional)
617
- logger: pino({ level: 'silent' }),
618
-
619
- // Message-Store (fΓΌr Retry & Poll-Votes)
620
- getMessage: async (key) => {
621
- // Hole Nachricht aus deinem Store
622
- return await yourMessageStore.get(key)
623
- },
624
-
625
- // Group-Metadata-Cache (empfohlen!)
626
- cachedGroupMetadata: async (jid) => {
627
- // Hole aus Cache
628
- return await groupCache.get(jid)
629
- },
630
-
631
- // Custom Upload Hosts
632
- customUploadHosts: [],
633
-
634
- // Retry-Konfiguration
635
- maxMsgRetryCount: 5,
636
- retryRequestDelayMs: 250,
637
-
638
- // Query-Timeout
639
- defaultQueryTimeoutMs: 60000,
640
-
641
- // QR-Timeout
642
- qrTimeout: 60000
643
- })
644
- ```
645
-
646
- ### πŸ’Ύ **Session-Speicherung**
647
141
 
648
- ```typescript
649
- import { useMultiFileAuthState, BufferJSON } from '@neelegirl/baileys'
650
- import { readFileSync, writeFileSync } from 'fs'
651
-
652
- // Option 1: Multi-File (einfach, empfohlen fΓΌr Entwicklung)
653
- const { state, saveCreds } = await useMultiFileAuthState('./auth_info')
654
-
655
- // Option 2: Single-File (fΓΌr Produktion)
656
- import { useSingleFileAuthState } from '@neelegirl/baileys'
657
-
658
- const { state, saveCreds } = await useSingleFileAuthState('./auth.json')
659
-
660
- // Option 3: Custom (fΓΌr Datenbanken)
661
- const authFile = './auth.json'
142
+ sock.ev.on('creds.update', saveCreds)
662
143
 
663
- const { state, saveCreds } = {
664
- state: {
665
- creds: JSON.parse(
666
- readFileSync(authFile, { encoding: 'utf-8' }),
667
- BufferJSON.reviver
668
- ),
669
- keys: {
670
- get: async (type, ids) => {
671
- // Hole Keys aus deiner DB
672
- },
673
- set: async (data) => {
674
- // Speichere Keys in deiner DB
675
- }
144
+ sock.ev.on('connection.update', (u) => {
145
+ const { connection, lastDisconnect } = u
146
+ if (connection === 'close') {
147
+ const shouldReconnect =
148
+ (lastDisconnect?.error as any)?.output?.statusCode !== DisconnectReason.loggedOut
149
+ if (shouldReconnect) start()
150
+ } else if (connection === 'open') {
151
+ console.log('🌸 Verbunden – bereit zum Glitzern!')
676
152
  }
677
- },
678
- saveCreds: async () => {
679
- const creds = state.creds
680
- writeFileSync(authFile, JSON.stringify(creds, BufferJSON.replacer, 2))
681
- }
153
+ })
682
154
  }
683
- ```
684
-
685
- ### πŸ—„οΈ **Message Store (fΓΌr Retry & Poll-Votes)**
686
-
687
- ```typescript
688
- import { makeInMemoryStore } from '@neelegirl/baileys'
689
155
 
690
- // In-Memory Store (fΓΌr Entwicklung)
691
- const store = makeInMemoryStore({ logger: pino().child({ level: 'silent' }) })
692
-
693
- // Aus Datei laden
694
- store.readFromFile('./baileys_store.json')
695
-
696
- // Socket binden
697
- store.bind(sock.ev)
698
-
699
- // Alle 10 Sekunden speichern
700
- setInterval(() => {
701
- store.writeToFile('./baileys_store.json')
702
- }, 10_000)
703
-
704
- // In Socket-Config verwenden
705
- const sock = makeWASocket({
706
- getMessage: async (key) => {
707
- return store.loadMessage(key.remoteJid!, key.id!)
708
- }
709
- })
156
+ start().catch(console.error)
710
157
  ```
711
158
 
712
159
  ---
713
160
 
714
- ## ⚠️ Wichtige Hinweise
715
-
716
- ### 🚨 **Disclaimer**
161
+ ## 🧁 HÀufige Rezepte
717
162
 
718
- > ⚠️ **WICHTIG**: Dieses Projekt steht in **keiner offiziellen Verbindung** zu WhatsApp.
719
- >
720
- > - βœ–οΈ **Kein Spam** oder Massennachrichten
721
- > - βœ–οΈ **Kein Missbrauch** fΓΌr unethische Zwecke
722
- > - βœ–οΈ **Keine Stalkerware** oder automatisierte Überwachung
723
- > - βœ”οΈ **Verantwortungsvoller Gebrauch** wird erwartet
724
- >
725
- > Die Entwickler:innen ΓΌbernehmen **keine Verantwortung** fΓΌr den Gebrauch.
726
-
727
- ### πŸ”’ **Sicherheit**
728
-
729
- - **Nie** deine Auth-Dateien ΓΆffentlich teilen
730
- - **Immer** `.gitignore` fΓΌr Auth-Ordner verwenden
731
- - **RegelmÀßig** Backups erstellen
732
- - **Sichere** PasswΓΆrter fΓΌr deine Server verwenden
733
-
734
- ### πŸ’‘ **Best Practices**
735
-
736
- 1. **Session-Speicherung**: Immer `useMultiFileAuthState` oder Γ€hnliches verwenden
737
- 2. **Error-Handling**: Immer try-catch fΓΌr wichtige Operationen
738
- 3. **Rate-Limiting**: Nicht zu viele Nachrichten auf einmal senden
739
- 4. **Logging**: Logger fΓΌr Debugging verwenden
740
- 5. **Updates**: RegelmÀßig auf Updates prüfen
163
+ - πŸ’Œ **Nachrichten**: `sock.sendMessage(jid, { text: 'Hello 🌸' })`
164
+ - πŸ“Έ **Medien**: `sock.sendMessage(jid, { image: fs.readFileSync('pic.jpg'), caption: 'Kawaii!' })`
165
+ - πŸŽ€ **Sticker**: Antwort auf `imageMessage` β†’ `{ sticker: stream }`
166
+ - πŸ‘₯ **Gruppen**: `sock.groupCreate('Neele Club', [user1, user2])`
167
+ - 🧲 **LID‑ID**: mit `jidDecode()` schΓΆn & sicher nutzen
741
168
 
742
169
  ---
743
170
 
744
- ## πŸ’¬ Support & Community
745
-
746
- <div align="center">
171
+ ## πŸ’  LID‑KompatibilitΓ€t (Kurz erklΓ€rt)
747
172
 
748
- ### 🌸 **Made with Love by @neelegirl** 🌸
173
+ **LID (Linked ID)** sorgt dafΓΌr, dass Benutzer:innen auch ΓΌber gerΓ€teΓΌbergreifende IDs korrekt erkannt werden.
174
+ Dieses Paket ist **voll LID‑kompatibel**:
175
+ - Extraktion & Normalisierung von Absender‑IDs
176
+ - Sicheres Antworten, auch wenn die Gegenstelle GerΓ€te wechselt
177
+ - Sanfte Fallbacks, wenn keine LID vorliegt
749
178
 
750
- [![GitHub](https://img.shields.io/badge/GitHub-@neelegirl-pink?style=for-the-badge&logo=github)](https://github.com/neelegirl)
751
- [![Email](https://img.shields.io/badge/Email-Support-pink?style=for-the-badge&logo=gmail)](mailto:neelehoven@gmail.com)
752
-
753
- **⭐ Wenn dir dieses Projekt gefÀllt, gib ihm ein Star auf GitHub! ⭐**
754
-
755
- </div>
179
+ > Ergebnis: stabilere Replies, weniger RÀtselraten, mehr Glitzer ✨
756
180
 
757
181
  ---
758
182
 
759
- ## πŸ“ Changelog
183
+ ## ❀️ Credits & Danksagung
760
184
 
761
- ### Version 1.6.6 (Aktuell)
185
+ Mit Liebe, Glitzer und rosa Codezeilen von **@neelegirl** erschaffen.
186
+ Wenn dir dieses Projekt gefΓ€llt:
762
187
 
763
- - ✨ **Automatische Update-Prüfung** hinzugefügt
764
- - 🎨 **Verbesserte QR-Code-Anzeige** mit Version-Info
765
- - πŸ”„ **WhatsApp-Version** aktualisiert auf [2, 3000, 1032141294]
766
- - πŸš€ **Basiert auf** @whiskeysockets/baileys 7.0.0-rc.9
767
- - πŸ› οΈ **Verbesserte Socket-StabilitΓ€t**
768
- - πŸ” **Verbesserte Pre-Key-Verwaltung**
769
-
770
- ### Version 1.6.5
771
-
772
- - πŸ†• Neue Funktionen: `onWhatsApp()`, `executeUSyncQuery()`
773
- - πŸ” `digestKeyBundle()` und `rotateSignedPreKey()` hinzugefΓΌgt
774
- - πŸ’Ž WAM Buffer Support
188
+ > ⭐ Gib ihm ein ⭐️ auf GitHub – das wΓ€r sooo süß! 🌟
775
189
 
776
190
  ---
777
191
 
778
- <div align="center">
779
-
780
- ### ✨ *Mâge dein Bot so bezaubernd sein wie ein Anime-MÀdchen mit Glitzeraugen* ✨
781
-
782
- **🌸 Stay kawaii, stay connected! 🌸**
783
-
784
- [⬆️ Nach oben](#-neelegirlbaileys)
785
-
786
- </div>
192
+ <p align="center"><i>✨ MΓΆge dein Bot so bezaubernd sein wie ein Anime‑MΓ€dchen mit Glitzeraugen ✨</i></p>
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": [2, 3000, 1032141294]
2
+ "version": [2, 3000, 1025995023]
3
3
  }
@@ -18,120 +18,6 @@ const Client_1 = require("./Client")
18
18
  const package_json_1 = require("../../package.json")
19
19
  const CURRENT_VERSION = package_json_1.version
20
20
 
21
- // Versions-Info auslesen
22
- const createRequire = require('module').createRequire || require('module').createRequire;
23
- const _require = createRequire(require.main ? require.main.filename : __filename);
24
- const _path = require('path');
25
- const _fs = require('fs');
26
- const _dir = _path.dirname(__filename);
27
-
28
- function readVersion(pkgPath) {
29
- try {
30
- if (pkgPath && _fs.existsSync(pkgPath)) {
31
- const p = _require(pkgPath);
32
- return p && typeof p.version === 'string' ? p.version : null;
33
- }
34
- } catch (_) {}
35
- return null;
36
- }
37
-
38
- const cwd = typeof process !== 'undefined' && process.cwd ? process.cwd() : '';
39
- const rootBaileys = cwd ? _path.join(cwd, 'node_modules', '@neelegirl', 'baileys', 'package.json') : '';
40
- const rootWaApi = cwd ? _path.join(cwd, 'node_modules', '@neelegirl', 'wa-api', 'package.json') : '';
41
- const BAILEYS_VERSION = readVersion(rootBaileys) || CURRENT_VERSION || '1.6.0';
42
- const WA_API_VERSION = readVersion(rootWaApi) || '1.0.0';
43
-
44
- // Globale Flag um sicherzustellen, dass Version-Anzeige nur einmal pro Prozess angezeigt wird
45
- if (typeof global !== 'undefined' && !global.__baileysVersionShown) {
46
- global.__baileysVersionShown = false;
47
- }
48
-
49
- // Version-Anzeige-Funktion
50
- const showVersionInfo = () => {
51
- if (typeof global !== 'undefined' && global.__baileysVersionShown) {
52
- return; // Bereits angezeigt
53
- }
54
- const boxWidth = 64;
55
- const centerText = (text, width) => {
56
- const pad = Math.floor((width - text.length - 2) / 2);
57
- const extra = (width - text.length - 2) % 2;
58
- return 'β•‘' + ' '.repeat(pad) + text + ' '.repeat(pad + extra) + 'β•‘';
59
- };
60
- console.log('\n');
61
- console.log('β•”' + '═'.repeat(boxWidth) + 'β•—');
62
- console.log(centerText(`🌸 OFFIZIELLE @NEELEGIRL/BAILEYS VERSION ${BAILEYS_VERSION} 🌸`, boxWidth));
63
- console.log(centerText(`πŸ¦‹ @neelegirl/wa-api v${WA_API_VERSION} πŸ¦‹`, boxWidth));
64
- console.log('β• ' + '═'.repeat(boxWidth) + 'β•£');
65
- console.log(centerText('✨ Powered By @neelegirl/baileys Β· wa-api πŸ¦‹ ✨', boxWidth));
66
- console.log('β•š' + '═'.repeat(boxWidth) + '╝');
67
- console.log('');
68
- if (typeof global !== 'undefined') {
69
- global.__baileysVersionShown = true;
70
- }
71
- };
72
-
73
- // Versionsvergleichsfunktion
74
- const compareVersions = (v1, v2) => {
75
- const parts1 = v1.split('.').map(Number);
76
- const parts2 = v2.split('.').map(Number);
77
- for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
78
- const part1 = parts1[i] || 0;
79
- const part2 = parts2[i] || 0;
80
- if (part1 > part2) return 1;
81
- if (part1 < part2) return -1;
82
- }
83
- return 0;
84
- };
85
-
86
- // Update-PrΓΌfungs-Funktion fΓΌr beide Pakete
87
- const checkForUpdates = () => {
88
- // PrΓΌfe nur einmal pro Prozess
89
- if (typeof global !== 'undefined' && global.__updateCheckDone) {
90
- return;
91
- }
92
-
93
- const https = require('https');
94
-
95
- // PrΓΌfe @neelegirl/baileys
96
- Utils_1.checkNpmVersion('@neelegirl/baileys', BAILEYS_VERSION).then((versionInfo) => {
97
- if (versionInfo && versionInfo.hasUpdate) {
98
- const updateMessage = `\n╔════════════════════════════════════════╗\nβ•‘ πŸ”” NEUES UPDATE VERFÜGBAR! πŸ”” β•‘\n╠════════════════════════════════════════╣\nβ•‘ @neelegirl/baileys β•‘\nβ•‘ Aktuelle Version: ${versionInfo.current.padEnd(20)} β•‘\nβ•‘ Neue Version: ${versionInfo.latest.padEnd(20)} β•‘\nβ•‘ β•‘\nβ•‘ Bitte aktualisiere: β•‘\nβ•‘ npm install @neelegirl/baileys@latest β•‘\nβ•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•\n`;
99
- console.log(updateMessage);
100
- }
101
- }).catch(() => {
102
- // Silently fail
103
- });
104
-
105
- // PrΓΌfe @neelegirl/wa-api
106
- const waApiUrl = `https://registry.npmjs.org/@neelegirl/wa-api/latest`;
107
- https.get(waApiUrl, { timeout: 5000 }, (res) => {
108
- let data = '';
109
- res.on('data', (chunk) => {
110
- data += chunk;
111
- });
112
- res.on('end', () => {
113
- try {
114
- const packageInfo = JSON.parse(data);
115
- const latestVersion = packageInfo.version;
116
- if (latestVersion && compareVersions(latestVersion, WA_API_VERSION) > 0) {
117
- const updateMessage = `\n╔════════════════════════════════════════╗\nβ•‘ πŸ”” NEUES UPDATE VERFÜGBAR! πŸ”” β•‘\n╠════════════════════════════════════════╣\nβ•‘ @neelegirl/wa-api β•‘\nβ•‘ Aktuelle Version: ${WA_API_VERSION.padEnd(20)} β•‘\nβ•‘ Neue Version: ${latestVersion.padEnd(20)} β•‘\nβ•‘ β•‘\nβ•‘ Bitte aktualisiere: β•‘\nβ•‘ npm install @neelegirl/wa-api@latest β•‘\nβ•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•\n`;
118
- console.log(updateMessage);
119
- }
120
- } catch (error) {
121
- // Silently fail
122
- }
123
- });
124
- }).on('error', () => {
125
- // Silently fail
126
- }).on('timeout', () => {
127
- // Silently fail
128
- });
129
-
130
- if (typeof global !== 'undefined') {
131
- global.__updateCheckDone = true;
132
- }
133
- };
134
-
135
21
  /**
136
22
  * Connects to WA servers and performs:
137
23
  * - simple queries (no retry mechanism, wait for connection establishment)
@@ -139,10 +25,6 @@ const checkForUpdates = () => {
139
25
  * - query phone connection
140
26
  */
141
27
  const makeSocket = (config) => {
142
- // Zeige Version-Info beim Start einmal an
143
- showVersionInfo();
144
- // PrΓΌfe auf Updates bei beiden Paketen
145
- checkForUpdates();
146
28
  const { waWebSocketUrl, connectTimeoutMs, logger, keepAliveIntervalMs, browser, auth: authState, printQRInTerminal, defaultQueryTimeoutMs, transactionOpts, qrTimeout, makeSignalRepository } = config
147
29
 
148
30
  const url = typeof waWebSocketUrl === 'string' ? new url_1.URL(waWebSocketUrl) : waWebSocketUrl
@@ -911,8 +793,6 @@ const makeSocket = (config) => {
911
793
  clearTimeout(qrTimer) // will never happen in all likelyhood -- but just in case WA sends success on first try
912
794
  ev.emit('creds.update', { me: { ...authState.creds.me, lid: node.attrs.lid } })
913
795
  ev.emit('connection.update', { connection: 'open' })
914
- // Zeige Version-Info auch bei erfolgreicher Verbindung (falls noch nicht angezeigt)
915
- showVersionInfo()
916
796
  if (node.attrs.lid && authState.creds.me?.id) {
917
797
  const myLID = node.attrs.lid
918
798
  process.nextTick(async () => {
@@ -8,19 +8,6 @@ const https_1 = require("https");
8
8
  * @param currentVersion - The current version installed
9
9
  * @returns Promise with version info or null if check fails
10
10
  */
11
- // Version-Vergleichsfunktion (semantische Versionierung)
12
- const compareVersions = (v1, v2) => {
13
- const parts1 = v1.split('.').map(Number);
14
- const parts2 = v2.split('.').map(Number);
15
- for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
16
- const part1 = parts1[i] || 0;
17
- const part2 = parts2[i] || 0;
18
- if (part1 > part2) return 1;
19
- if (part1 < part2) return -1;
20
- }
21
- return 0;
22
- };
23
-
24
11
  const checkNpmVersion = (packageName, currentVersion) => {
25
12
  return new Promise((resolve) => {
26
13
  const url = `https://registry.npmjs.org/${packageName}/latest`;
@@ -33,8 +20,7 @@ const checkNpmVersion = (packageName, currentVersion) => {
33
20
  try {
34
21
  const packageInfo = JSON.parse(data);
35
22
  const latestVersion = packageInfo.version;
36
- // Nur anzeigen wenn latestVersion wirklich NEUER ist als die aktuelle Version
37
- if (latestVersion && compareVersions(latestVersion, currentVersion) > 0) {
23
+ if (latestVersion && latestVersion !== currentVersion) {
38
24
  resolve({
39
25
  current: currentVersion,
40
26
  latest: latestVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neelegirl/baileys",
3
- "version": "1.6.7",
3
+ "version": "1.6.9",
4
4
  "description": "WhatsApp API for wa-api, a multi-device WhatsApp Web API client",
5
5
  "keywords": [
6
6
  "whatsapp",
@@ -41,9 +41,11 @@
41
41
  "cache-manager": "4.0.1",
42
42
  "futoin-hkdf": "^1.5.1",
43
43
  "libphonenumber-js": "^1.10.20",
44
- "music-metadata": "^7.12.3",
44
+ "lru-cache": "^11.1.0",
45
+ "music-metadata": "^11.7.0",
45
46
  "node-cache": "^5.1.2",
46
- "pino": "^7.0.0",
47
+ "p-queue": "^9.0.0",
48
+ "pino": "^9.6.0",
47
49
  "protobufjs": "^7.2.4",
48
50
  "uuid": "^9.0.0",
49
51
  "ws": "^8.13.0"